@zeniai/client-epic-state 4.19.86-betaSS2 → 4.19.87-beta0ND

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 (53) hide show
  1. package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +0 -35
  2. package/lib/entity/jeSchedules/jeSchedulesPayload.js +0 -44
  3. package/lib/entity/jeSchedules/jeSchedulesSelector.d.ts +1 -2
  4. package/lib/entity/jeSchedules/jeSchedulesSelector.js +1 -2
  5. package/lib/entity/jeSchedules/jeSchedulesState.d.ts +0 -13
  6. package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +0 -44
  7. package/lib/esm/entity/jeSchedules/jeSchedulesSelector.js +1 -2
  8. package/lib/esm/index.js +6 -6
  9. package/lib/esm/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +1 -17
  10. package/lib/esm/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +3 -46
  11. package/lib/esm/view/expenseAutomationView/types/jeSchedulesViewState.js +1 -15
  12. package/lib/esm/view/financeStatement/financeStatementSelector.js +5 -0
  13. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +282 -0
  14. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.js +1 -0
  15. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesViewReducer.js +5 -1
  16. package/lib/esm/view/spendManagement/billPay/billList/billListSelector.js +0 -10
  17. package/lib/esm/view/spendManagement/billPay/billList/billListState.js +0 -1
  18. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardList.js +0 -1
  19. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +0 -2
  20. package/lib/esm/view/spendManagement/reimbursement/remiListView/remiListSelector.js +0 -12
  21. package/lib/esm/view/spendManagement/reimbursement/remiListView/remiListState.js +0 -1
  22. package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +2 -2
  23. package/lib/index.d.ts +10 -9
  24. package/lib/index.js +28 -28
  25. package/lib/tsconfig.typecheck.tsbuildinfo +1 -0
  26. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.d.ts +2 -2
  27. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +2 -18
  28. package/lib/view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes.d.ts +0 -2
  29. package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +3 -46
  30. package/lib/view/expenseAutomationView/types/jeSchedulesViewState.d.ts +0 -5
  31. package/lib/view/expenseAutomationView/types/jeSchedulesViewState.js +0 -17
  32. package/lib/view/financeStatement/financeStatementSelector.d.ts +2 -0
  33. package/lib/view/financeStatement/financeStatementSelector.js +5 -0
  34. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.d.ts +13 -0
  35. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +286 -0
  36. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.d.ts +56 -0
  37. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.js +2 -0
  38. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewReducer.d.ts +4 -2
  39. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewReducer.js +6 -2
  40. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewState.d.ts +2 -0
  41. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
  42. package/lib/view/spendManagement/billPay/billList/billListSelector.js +0 -10
  43. package/lib/view/spendManagement/billPay/billList/billListState.d.ts +1 -1
  44. package/lib/view/spendManagement/billPay/billList/billListState.js +0 -1
  45. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +1 -1
  46. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.js +0 -1
  47. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +0 -2
  48. package/lib/view/spendManagement/reimbursement/remiListView/remiListSelector.d.ts +0 -1
  49. package/lib/view/spendManagement/reimbursement/remiListView/remiListSelector.js +0 -12
  50. package/lib/view/spendManagement/reimbursement/remiListView/remiListState.d.ts +1 -1
  51. package/lib/view/spendManagement/reimbursement/remiListView/remiListState.js +0 -1
  52. package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +2 -2
  53. package/package.json +1 -1
@@ -0,0 +1,282 @@
1
+ import { toAmountWC } from '../../commonStateTypes/amount';
2
+ import { getSectionClassesViewReport } from '../../entity/sectionClassesViewV2/sectionClassesViewSelector';
3
+ import { ALL_PANDL_REPORT_VIEW_SECTION_IDS, } from './profitAndLossClassesViewSelectorTypes';
4
+ const DEFAULT_CURRENCY = { currencyCode: 'USD', currencySymbol: '$' };
5
+ export const profitAndLossHorizontalIdsInOrder = [
6
+ 'income',
7
+ 'cogs',
8
+ 'grossProfit',
9
+ 'expenses',
10
+ 'earningsBeforeInterestAndTax',
11
+ 'otherIncome',
12
+ 'otherExpenses',
13
+ 'netOtherIncome',
14
+ 'netIncome',
15
+ ];
16
+ const SECTION_TITLES = {
17
+ income: 'Income',
18
+ cogs: 'Cost of Goods Sold',
19
+ grossProfit: 'Gross Profit',
20
+ expenses: 'Expenses',
21
+ earningsBeforeInterestAndTax: 'Net Operating Income',
22
+ otherIncome: 'Other Income',
23
+ otherExpenses: 'Other Expenses',
24
+ netOtherIncome: 'Net Other Income',
25
+ netIncome: 'Net Income',
26
+ };
27
+ export const getProfitAndLossClassesHorizontalView = (filter, accountState, classState, sectionsState, profitAndLossClassesViewState, selectedPeriod) => {
28
+ const fetchState = reduceFetchState([
29
+ profitAndLossClassesViewState.fetchState.month,
30
+ profitAndLossClassesViewState.fetchState.quarter,
31
+ profitAndLossClassesViewState.fetchState.year,
32
+ ]);
33
+ const reportId = 'profit_and_loss_by_classes';
34
+ // Build class columns from the class hierarchy (top-level only)
35
+ const classColumns = buildClassColumns(profitAndLossClassesViewState.classHierarchy, profitAndLossClassesViewState.uiState.classesToFilterOut);
36
+ const sections = {};
37
+ const calculatedSections = {};
38
+ if (fetchState.fetchState === 'Completed' && selectedPeriod != null) {
39
+ // Get section reports using existing selector infrastructure
40
+ const sectionReports = {};
41
+ ALL_PANDL_REPORT_VIEW_SECTION_IDS.forEach((sectionId) => {
42
+ sectionReports[sectionId] = getSectionClassesViewReport(accountState, classState, sectionsState, { reportId, sectionId }, filter);
43
+ });
44
+ // Pivot each section from class→account to account→class
45
+ const sectionIds = [
46
+ 'income',
47
+ 'cogs',
48
+ 'expenses',
49
+ 'otherIncome',
50
+ 'otherExpenses',
51
+ ];
52
+ sectionIds.forEach((sectionId) => {
53
+ const sectionReport = sectionReports[sectionId];
54
+ if (sectionReport != null) {
55
+ sections[sectionId] = pivotSectionToHorizontal(sectionReport, classColumns, selectedPeriod, SECTION_TITLES[sectionId] ?? sectionId);
56
+ }
57
+ });
58
+ // Calculate derived sections
59
+ const incomeSection = sections['income'];
60
+ const cogsSection = sections['cogs'];
61
+ const expensesSection = sections['expenses'];
62
+ const otherIncomeSection = sections['otherIncome'];
63
+ const otherExpensesSection = sections['otherExpenses'];
64
+ // Gross Profit = Income - COGS
65
+ if (incomeSection != null && cogsSection != null) {
66
+ calculatedSections['grossProfit'] = computeCalculatedSection(incomeSection.classTotals, cogsSection.classTotals, incomeSection.sectionTotal, cogsSection.sectionTotal, 'subtract', SECTION_TITLES['grossProfit']);
67
+ }
68
+ // EBIT = Gross Profit - Expenses
69
+ const grossProfit = calculatedSections['grossProfit'];
70
+ if (grossProfit != null && expensesSection != null) {
71
+ calculatedSections['earningsBeforeInterestAndTax'] =
72
+ computeCalculatedSection(grossProfit.classTotals, expensesSection.classTotals, grossProfit.sectionTotal, expensesSection.sectionTotal, 'subtract', SECTION_TITLES['earningsBeforeInterestAndTax']);
73
+ }
74
+ // Net Other Income = Other Income - Other Expenses
75
+ if (otherIncomeSection != null && otherExpensesSection != null) {
76
+ calculatedSections['netOtherIncome'] = computeCalculatedSection(otherIncomeSection.classTotals, otherExpensesSection.classTotals, otherIncomeSection.sectionTotal, otherExpensesSection.sectionTotal, 'subtract', SECTION_TITLES['netOtherIncome']);
77
+ }
78
+ // Net Income = EBIT + Net Other Income
79
+ const ebit = calculatedSections['earningsBeforeInterestAndTax'];
80
+ const netOtherIncome = calculatedSections['netOtherIncome'];
81
+ if (ebit != null && netOtherIncome != null) {
82
+ calculatedSections['netIncome'] = computeCalculatedSection(ebit.classTotals, netOtherIncome.classTotals, ebit.sectionTotal, netOtherIncome.sectionTotal, 'add', SECTION_TITLES['netIncome']);
83
+ }
84
+ }
85
+ // Build synthetic header COABalances for rendering class names as column headers
86
+ const headerBalances = buildHeaderBalances(classColumns, filter.timeframe, selectedPeriod);
87
+ return {
88
+ reportId,
89
+ reportTitle: 'Profit and Loss by Class',
90
+ firstMonthOfFY: profitAndLossClassesViewState.firstMonthOfFY,
91
+ fetchState: fetchState.fetchState,
92
+ bookCloseDate: profitAndLossClassesViewState.bookCloseDate,
93
+ dataAvailable: profitAndLossClassesViewState.dataAvailable,
94
+ selectedPeriod,
95
+ classColumns,
96
+ sections,
97
+ calculatedSections,
98
+ idsInOrder: profitAndLossHorizontalIdsInOrder,
99
+ uiState: profitAndLossClassesViewState.uiState,
100
+ headerBalances,
101
+ };
102
+ };
103
+ /**
104
+ * Build column definitions from class hierarchy (top-level classes only).
105
+ */
106
+ function buildClassColumns(classHierarchy, classesToFilterOut) {
107
+ return classHierarchy
108
+ .filter((c) => !classesToFilterOut.some((filteredId) => filteredId[0] === c.classId[0]))
109
+ .map((c) => ({
110
+ classId: c.classId[0],
111
+ className: c.className,
112
+ nestedClassId: c.classId,
113
+ qboId: c.qboId,
114
+ }));
115
+ }
116
+ /**
117
+ * Pivot a section from class→account→balances to account→class→balance (single period).
118
+ */
119
+ function pivotSectionToHorizontal(section, classColumns, selectedPeriod, title) {
120
+ // Map: accountId -> { accountName, classId -> balance }
121
+ const accountMap = new Map();
122
+ // Also track class totals
123
+ const classTotalMap = new Map();
124
+ classColumns.forEach((col) => classTotalMap.set(col.classId, 0));
125
+ // Iterate over each class in the section
126
+ section.classes.forEach((classReport) => {
127
+ const classId = classReport.id[0];
128
+ // Only process classes that are in our columns
129
+ if (!classColumns.some((col) => col.classId === classId)) {
130
+ return;
131
+ }
132
+ // Get the class-level balance for this period (total for the class in this section)
133
+ const classBalance = findBalanceForPeriod(classReport.childrenBalancesTotal.balances, selectedPeriod);
134
+ classTotalMap.set(classId, classBalance);
135
+ // Iterate through accounts in this class
136
+ collectAccountsFromClass(classReport, classId, selectedPeriod, accountMap);
137
+ });
138
+ // Build account rows
139
+ const accounts = [];
140
+ accountMap.forEach((accountData, accountId) => {
141
+ const classBalances = classColumns.map((col) => ({
142
+ classId: col.classId,
143
+ balance: toAmountWC(accountData.classBalances.get(col.classId) ?? 0, DEFAULT_CURRENCY),
144
+ }));
145
+ const rowTotal = classBalances.reduce((sum, cb) => sum + cb.balance.amount, 0);
146
+ accounts.push({
147
+ accountId,
148
+ accountName: accountData.accountName,
149
+ classBalances,
150
+ rowTotal: toAmountWC(rowTotal, DEFAULT_CURRENCY),
151
+ });
152
+ });
153
+ // Build class totals
154
+ const classTotals = classColumns.map((col) => ({
155
+ classId: col.classId,
156
+ balance: toAmountWC(classTotalMap.get(col.classId) ?? 0, DEFAULT_CURRENCY),
157
+ }));
158
+ const sectionTotal = classTotals.reduce((sum, ct) => sum + ct.balance.amount, 0);
159
+ return {
160
+ title,
161
+ accounts,
162
+ classTotals,
163
+ sectionTotal: toAmountWC(sectionTotal, DEFAULT_CURRENCY),
164
+ };
165
+ }
166
+ /**
167
+ * Recursively collect account balances from a NestedClassReportV2 into accountMap.
168
+ */
169
+ function collectAccountsFromClass(classReport, classId, selectedPeriod, accountMap) {
170
+ // Process accounts directly on this class
171
+ classReport.class.accounts.forEach((nestedAccount) => {
172
+ collectAccountsFromNestedAccount(nestedAccount, classId, selectedPeriod, accountMap);
173
+ });
174
+ }
175
+ /**
176
+ * Recursively collect accounts from NestedAccountReport (handles sub-accounts).
177
+ */
178
+ function collectAccountsFromNestedAccount(nestedAccount, classId, selectedPeriod, accountMap) {
179
+ const accountId = nestedAccount.account.accountId;
180
+ const accountName = nestedAccount.account.accountName;
181
+ const balance = findBalanceForPeriod(nestedAccount.account.balancesInTimeframe.balances, selectedPeriod);
182
+ if (!accountMap.has(accountId)) {
183
+ accountMap.set(accountId, {
184
+ accountName,
185
+ classBalances: new Map(),
186
+ });
187
+ }
188
+ const accountData = accountMap.get(accountId);
189
+ if (accountData == null) {
190
+ return;
191
+ }
192
+ const existing = accountData.classBalances.get(classId) ?? 0;
193
+ accountData.classBalances.set(classId, existing + balance);
194
+ // Process sub-accounts
195
+ nestedAccount.children.forEach((child) => {
196
+ collectAccountsFromNestedAccount(child, classId, selectedPeriod, accountMap);
197
+ });
198
+ }
199
+ /**
200
+ * Find the balance amount for a specific period from a COABalance array.
201
+ */
202
+ function findBalanceForPeriod(balances, selectedPeriod) {
203
+ for (const bal of balances) {
204
+ const b = bal;
205
+ if (b.startDate != null && b.endDate != null) {
206
+ if (b.startDate.isSame(selectedPeriod.startDate, 'day') &&
207
+ b.endDate.isSame(selectedPeriod.endDate, 'day')) {
208
+ return b.balance?.amount ?? 0;
209
+ }
210
+ }
211
+ }
212
+ return 0;
213
+ }
214
+ /**
215
+ * Compute a calculated section by adding or subtracting two sets of class totals.
216
+ */
217
+ function computeCalculatedSection(aTotals, bTotals, aTotal, bTotal, operation, title) {
218
+ const classTotals = aTotals.map((a) => {
219
+ const bMatch = bTotals.find((b) => b.classId === a.classId);
220
+ const bAmount = bMatch?.balance.amount ?? 0;
221
+ const resultAmount = operation === 'add'
222
+ ? a.balance.amount + bAmount
223
+ : a.balance.amount - bAmount;
224
+ return {
225
+ classId: a.classId,
226
+ balance: toAmountWC(resultAmount, DEFAULT_CURRENCY),
227
+ };
228
+ });
229
+ const sectionTotalAmount = operation === 'add'
230
+ ? aTotal.amount + bTotal.amount
231
+ : aTotal.amount - bTotal.amount;
232
+ return {
233
+ title,
234
+ classTotals,
235
+ sectionTotal: toAmountWC(sectionTotalAmount, DEFAULT_CURRENCY),
236
+ };
237
+ }
238
+ /**
239
+ * Build synthetic COABalance array for header rendering.
240
+ * One entry per class column + one for "Total".
241
+ */
242
+ function buildHeaderBalances(classColumns, timeframe, selectedPeriod) {
243
+ if (selectedPeriod == null) {
244
+ return [];
245
+ }
246
+ const { endDate, startDate } = selectedPeriod;
247
+ const balances = classColumns.map((col) => ({
248
+ balance: toAmountWC(0, DEFAULT_CURRENCY),
249
+ balanceTimeFrame: timeframe,
250
+ endDate,
251
+ startDate,
252
+ type: 'default',
253
+ label: col.className,
254
+ }));
255
+ // Add a "Total" column
256
+ balances.push({
257
+ balance: toAmountWC(0, DEFAULT_CURRENCY),
258
+ balanceTimeFrame: timeframe,
259
+ endDate,
260
+ startDate,
261
+ type: 'default',
262
+ label: 'Total',
263
+ });
264
+ return balances;
265
+ }
266
+ function reduceFetchState(fetchStateList) {
267
+ const isAnyProgress = fetchStateList.some((s) => s.fetchState === 'In-Progress');
268
+ const isAllCompleted = fetchStateList.every((s) => s.fetchState === 'Completed');
269
+ const isAnyError = fetchStateList.some((s) => s.fetchState === 'Error');
270
+ const error = fetchStateList.find((s) => s.error != null)?.error;
271
+ let fetchState = 'Not-Started';
272
+ if (isAnyProgress) {
273
+ fetchState = 'In-Progress';
274
+ }
275
+ else if (isAllCompleted) {
276
+ fetchState = 'Completed';
277
+ }
278
+ else if (isAnyError) {
279
+ fetchState = 'Error';
280
+ }
281
+ return { fetchState, error };
282
+ }
@@ -23,6 +23,7 @@ export const initialState = {
23
23
  nodeCollapseState: {},
24
24
  scrollPosition: undefined,
25
25
  accountViewMode: 'account_group',
26
+ classViewLayout: 'vertical',
26
27
  classesToFilterOut: [],
27
28
  },
28
29
  firstMonthOfFY: 1,
@@ -94,6 +95,9 @@ const profitAndLossClassesView = createSlice({
94
95
  updateAccountViewMode(draft, action) {
95
96
  draft.uiState.accountViewMode = action.payload.viewMode;
96
97
  },
98
+ updateClassViewLayout(draft, action) {
99
+ draft.uiState.classViewLayout = action.payload.classViewLayout;
100
+ },
97
101
  resetProfitAndLossClassesNodeCollapseState(draft) {
98
102
  draft.uiState.nodeCollapseState = {};
99
103
  },
@@ -102,7 +106,7 @@ const profitAndLossClassesView = createSlice({
102
106
  },
103
107
  },
104
108
  });
105
- export const { fetchProfitAndLossClassesView, fetchProfitAndLossForTimeframeClassesView, updateProfitAndLossForTimeframeClassesView, updateProfitAndLossForTimeframeClassesViewFailure, updateClassesToFilterOut, updateProfitAndLossClassesViewUIState, updateAccountViewMode, resetProfitAndLossClassesNodeCollapseState, clearProfitAndLossClassesView, } = profitAndLossClassesView.actions;
109
+ export const { fetchProfitAndLossClassesView, fetchProfitAndLossForTimeframeClassesView, updateProfitAndLossForTimeframeClassesView, updateProfitAndLossForTimeframeClassesViewFailure, updateClassesToFilterOut, updateProfitAndLossClassesViewUIState, updateAccountViewMode, updateClassViewLayout, resetProfitAndLossClassesNodeCollapseState, clearProfitAndLossClassesView, } = profitAndLossClassesView.actions;
106
110
  export default profitAndLossClassesView.reducer;
107
111
  const doUpdatedProfitAndLossClassesView = (draft, timeframe, pandLReport) => {
108
112
  const report = mapReportPayloadV2ToReportV2(pandLReport.report);
@@ -416,14 +416,6 @@ export const getBillListOnSort = (sortKey, sortOrder, currentTab, transactions)
416
416
  transactionsWithNoSortKeyValue.push(transaction);
417
417
  }
418
418
  break;
419
- case 'invoiceNumber':
420
- if (transaction.documentId != null) {
421
- transactionsWithSortKeyValue.push(transaction);
422
- }
423
- else {
424
- transactionsWithNoSortKeyValue.push(transaction);
425
- }
426
- break;
427
419
  case 'dueDate':
428
420
  if (currentTab === 'draft') {
429
421
  if (Boolean(transaction.dueDate) === true) {
@@ -526,8 +518,6 @@ export const getBillListOnSort = (sortKey, sortOrder, currentTab, transactions)
526
518
  return transaction.totalAmountInUSD?.amount ?? 0;
527
519
  case 'paymentMethod':
528
520
  return transaction.billPayInfo.billPaymentMethodType.name;
529
- case 'invoiceNumber':
530
- return transaction.documentId;
531
521
  }
532
522
  }, getColumnWiseSortOrder(sortOrder));
533
523
  return [
@@ -43,7 +43,6 @@ const ALL_BILL_PAY_SORT_KEYS = [
43
43
  'invoiceDate',
44
44
  'name',
45
45
  'paymentMethod',
46
- 'invoiceNumber',
47
46
  ];
48
47
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
49
48
  const toBillPaySortKeyType = (v) => stringToUnion(v, ALL_BILL_PAY_SORT_KEYS);
@@ -75,7 +75,6 @@ const ALL_CHARGE_CARD_SORT_KEYS = [
75
75
  'cardName',
76
76
  'department',
77
77
  'cardType',
78
- 'accountType',
79
78
  'status',
80
79
  'utilisation',
81
80
  'limit',
@@ -219,8 +219,6 @@ const getCardsBySortKey = (card, sortKey) => {
219
219
  return card.cardName.toLowerCase();
220
220
  case 'cardType':
221
221
  return card.type.code;
222
- case 'accountType':
223
- return card.type.code.includes('credit') ? 'credit' : 'debit';
224
222
  case 'status':
225
223
  return card.status.code;
226
224
  case 'utilisation':
@@ -45,7 +45,6 @@ export const getRemiList = (state, currentTimePeriod, isBulkActionFeatureEnabled
45
45
  return {
46
46
  ...reimbursement,
47
47
  submittedBy: getUserByUserId(userState, reimbursement.reimburseeUserId),
48
- createdByUser: getUserByUserId(userState, reimbursement.createdBy),
49
48
  approvers: approvers,
50
49
  };
51
50
  });
@@ -416,14 +415,6 @@ export const getRemiListOnSort = (sortKey, sortOrder, currentTab, reimbursements
416
415
  reimbursementsWithNoSortKeyValue.push(reimbursement);
417
416
  }
418
417
  break;
419
- case 'createdBy':
420
- if (reimbursement.createdByUser != null) {
421
- reimbursementsWithSortKeyValue.push(reimbursement);
422
- }
423
- else {
424
- reimbursementsWithNoSortKeyValue.push(reimbursement);
425
- }
426
- break;
427
418
  }
428
419
  });
429
420
  const getColumnWiseSortOrder = (sortOrder) => {
@@ -431,7 +422,6 @@ export const getRemiListOnSort = (sortKey, sortOrder, currentTab, reimbursements
431
422
  case 'reportName':
432
423
  case 'type':
433
424
  case 'status':
434
- case 'createdBy':
435
425
  return sortOrder === 'ascending' ? 'asc' : 'desc';
436
426
  default:
437
427
  return sortOrder === 'ascending' ? 'desc' : 'asc';
@@ -451,8 +441,6 @@ export const getRemiListOnSort = (sortKey, sortOrder, currentTab, reimbursements
451
441
  return getStatusPerTab(reimbursement);
452
442
  case 'amount':
453
443
  return reimbursement.amount.amount ?? 0;
454
- case 'createdBy':
455
- return `${reimbursement.createdByUser?.firstName ?? ''} ${reimbursement.createdByUser?.lastName ?? ''}`.toLowerCase();
456
444
  }
457
445
  }, getColumnWiseSortOrder(sortOrder));
458
446
  return [
@@ -55,7 +55,6 @@ export const toRemiSubTabUnderScoreType = (v) => stringToUnion(v, REMI_SUB_TAB_U
55
55
  const ALL_REIMBURSEMENT_SORT_KEYS = [
56
56
  'reportName',
57
57
  'submittedOn',
58
- 'createdBy',
59
58
  'type',
60
59
  'status',
61
60
  'amount',
@@ -91,11 +91,11 @@ export const allTaskStatus = [
91
91
  },
92
92
  {
93
93
  code: 'done',
94
- name: 'In Review',
94
+ name: 'Done',
95
95
  },
96
96
  {
97
97
  code: 'resolved',
98
- name: 'Complete',
98
+ name: 'Resolved',
99
99
  },
100
100
  ];
101
101
  export const allTaskPriority = [
package/lib/index.d.ts CHANGED
@@ -91,7 +91,6 @@ import { TrendChangeType } from './entity/insights/insightPayload';
91
91
  import { Insight } from './entity/insights/insightState';
92
92
  import { InsightSummary } from './entity/insights/insightSummary';
93
93
  import { JEAccruedSchedule, JEScheduledTransaction, ScheduledJournalEntry } from './entity/jeSchedules/jeSchedulesSelector';
94
- import { JEScheduleAIRecommendations, JEScheduleFieldRecommendation } from './entity/jeSchedules/jeSchedulesState';
95
94
  import { ALL_SCHEDULES_TYPES, JEScheduleKey, JEScheduleTransactionKey, JournalEntryErrorCodeType, ScheduleJournalEntryStatusCodeType, ScheduleStatusCodeType, ScheduleTypes, toScheduleTypesType, toScheduleTypesTypeStrict } from './entity/jeSchedules/jeSchedulesTypes';
96
95
  import { Merchant } from './entity/merchant/merchant';
97
96
  import { ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, MonthCloseCheckMetrics, MonthEndAuditSummary, MonthEndCloseCheck, MonthEndCloseCheckFrequency } from './entity/monthEndCloseChecks/monthEndCloseChecksState';
@@ -265,7 +264,7 @@ import { isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType
265
264
  import { MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount } from './view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper';
266
265
  import { UploadStatementDocumentAIPayload, UploadStatementDocumentAIResponse } from './view/expenseAutomationView/payload/reconciliationPayload';
267
266
  import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFluxAnalysisView, updateFluxAnalysisViewPageMetaData, updateFluxAnalysisViewUIState, updateOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview } from './view/expenseAutomationView/reducers/fluxAnalysisViewReducer';
268
- import { clearJeScheduleLocalData as clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchJeSchedulesPage as fetchExpenseAutomationJESchedulesPage, ignoreRecommendedJeSchedule as ignoreExpenseAutomationJESchedule, initializeAccountSettingsView as initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryJeSchedule as retryExpenseAutomationJESchedule, saveAccountSettings as saveJeAccountSettings, saveAccountSettingsLocalData as saveJeAccountSettingsLocalData, updateJESchedulesUIState as updateExpenseAutomationJESchedulesUIState, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
267
+ import { clearJeScheduleLocalData as clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchJeSchedulesPage as fetchExpenseAutomationJESchedulesPage, ignoreRecommendedJeSchedule as ignoreExpenseAutomationJESchedule, initializeAccountSettingsView as initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryJeSchedule as retryExpenseAutomationJESchedule, saveAccountSettings as saveJeAccountSettings, saveAccountSettingsLocalData as saveJeAccountSettingsLocalData, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
269
268
  import { fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
270
269
  import { deleteAccountStatement, fetchReconciliation as fetchReconciliationView, saveReconciliationDetail as saveExpenseAutomationReconciliationDetail, saveReconciliationReview as saveExpenseAutomationReconciliationReview, setConnectionInProgressForAccount as setConnectionInProgressForAccountReconciliation, setStatementParseInProgress, updateAccountReconciliationLocalData as updateExpenseAutomationAccountReconciliationLocalData, updateSelectedAccountId as updateExpenseAutomationAccountReconciliationSelectedAccountId, updateSelectedTab as updateExpenseAutomationAccountReconciliationSelectedTab, updateReconListScrollPosition as updateExpenseAutomationReconListScrollPosition, updateReviewTabSortState as updateExpenseAutomationReconReviewTabListSortState, updateReviewTabLocalData as updateExpenseAutomationReconReviewTabLocalData, updateReconcileTabListScrollState as updateExpenseAutomationReconcileTabListScrollState, updateReconcileTabListSortState as updateExpenseAutomationReconcileTabListSortState, updateReconcileTabLocalData as updateExpenseAutomationReconcileTabLocalData, updateSelectedDrawerAccountId as updateExpenseAutomationSelectedDrawerAccountId, updateStatementUploadChosen, uploadAccountStatement } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
271
270
  import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markTransactionAsNotMiscategorized, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess } from './view/expenseAutomationView/reducers/transactionsViewReducer';
@@ -281,7 +280,7 @@ import { JEScheduledTransactionWithFailedEntries } from './view/expenseAutomatio
281
280
  import { getExpenseAutomationReconciliationView, isAccountReconReport } from './view/expenseAutomationView/selectors/reconciliationViewSelector';
282
281
  import { getExpenseAutomationTransactionView } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
283
282
  import { FluxAnalysisActionType, FluxAnalysisReviewStatus, FluxAnalysisSortKey, FluxAnalysisViewUIState, FluxBalancesByMonth } from './view/expenseAutomationView/types/fluxAnalysisViewState';
284
- import { AccountSettingsLocalData, JEScheduleSortKey as ExpenseAutomationJEScheduleSortKey, JESchedulesViewUIState as ExpenseAutomationJESchedulesViewUIState, JEScheduleLocalData, toJEScheduleSortKey as toExpenseAutomationJEScheduleSortKey } from './view/expenseAutomationView/types/jeSchedulesViewState';
283
+ import { AccountSettingsLocalData, JEScheduleLocalData } from './view/expenseAutomationView/types/jeSchedulesViewState';
285
284
  import { MissingReceiptsSortKey as ExpenseAutomationMissingReceiptsSortKey, MissingReceiptsViewState as ExpenseAutomationMissingReceiptsViewState, MissingReceiptsViewUIState as ExpenseAutomationMissingReceiptsViewUIState, toMissingReceiptsSortKey as toExpenseAutomationMissingReceiptsSortKey } from './view/expenseAutomationView/types/missingReceiptsViewState';
286
285
  import { AccountReconciliationLocalData, ReconciliationViewTabType as ExpenseAutomationReconciliationViewTab, ReconReconcileSortKey, ReconReviewSortKey, ReconciliationReconcileTabLocalData, ReconciliationReviewTabLocalData, SaveReconcileDetailActionPayload as SaveExpenseAutomationReconciliationActionType, toReconciliationTabsType } from './view/expenseAutomationView/types/reconciliationViewState';
287
286
  import { TransactionsTab as ExpenseAutomationTransactionsTab, TransactionsViewState as ExpenseAutomationTransactionsViewState, TransactionsViewUIState as ExpenseAutomationTransactionsViewUIState, SupportedTransactionCategorization, TransactionCategorizationLineItemData, TransactionReviewLocalData, TransactionsSortKey, TransactionsTab, toTransactionsTabKey as toExpenseAutomationTransactionsTabKey, toTransactionsSortKey } from './view/expenseAutomationView/types/transactionsViewState';
@@ -345,10 +344,12 @@ import { PeopleViewSortKey } from './view/people/peopleTypes';
345
344
  import { fetchProfitAndLoss, fetchProfitAndLossForTimeframe, resetProfitAndLossNodeCollapseState, updateProfitAndLossUIState } from './view/profitAndLoss/profitAndLossReducer';
346
345
  import { ProfitAndLossReport, getPandLReportFetchState, getProfitAndLossReport } from './view/profitAndLoss/profitAndLossSelector';
347
346
  import { ProfitAndLossState, ProfitAndLossUIState } from './view/profitAndLoss/profitAndLossState';
348
- import { fetchProfitAndLossClassesView, resetProfitAndLossClassesNodeCollapseState, updateAccountViewMode as updateProfitAndLossAccountViewMode, updateClassesToFilterOut as updateProfitAndLossClassesToFilterOut, updateProfitAndLossClassesViewUIState } from './view/profitAndLossClassesView/profitAndLossClassesViewReducer';
347
+ import { fetchProfitAndLossClassesView, resetProfitAndLossClassesNodeCollapseState, updateAccountViewMode as updateProfitAndLossAccountViewMode, updateClassesToFilterOut as updateProfitAndLossClassesToFilterOut, updateClassViewLayout, updateProfitAndLossClassesViewUIState } from './view/profitAndLossClassesView/profitAndLossClassesViewReducer';
348
+ import { getProfitAndLossClassesHorizontalView } from './view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector';
349
+ import { ClassColumnDefinition, HorizontalAccountRow, HorizontalCalculatedSection, HorizontalClassBalance, HorizontalSectionReport, ProfitAndLossByClassHorizontalReport } from './view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes';
349
350
  import { getProfitAndLossClassesView } from './view/profitAndLossClassesView/profitAndLossClassesViewSelector';
350
351
  import { PandLReportViewCalculatedSectionID, PandLReportViewSectionID, ProfitAndLossClassesViewReport, isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID } from './view/profitAndLossClassesView/profitAndLossClassesViewSelectorTypes';
351
- import { ProfitAndLossClassesViewUIState } from './view/profitAndLossClassesView/profitAndLossClassesViewState';
352
+ import { ClassViewLayout, ProfitAndLossClassesViewUIState } from './view/profitAndLossClassesView/profitAndLossClassesViewState';
352
353
  import { fetchEntityRecommendationsByTransactionId, fetchRecommendationByEntityId, fetchRecommendationByEntityName } from './view/recommendation/recommendationReducer';
353
354
  import { clearReferrals, fetchReferrals, fetchRewardsPlan, resendReferralInvite, saveReferralFormDataInLocalStore, sendReferralInvite, updateReferViewed, updateReferralListSortUiState } from './view/referralView/referralReducer';
354
355
  import { ReferralListSelectorView, RewardsPlanCardReport, getInviteFormView, getReferralListView, getRewardsPlanCard } from './view/referralView/referralSelector';
@@ -622,7 +623,7 @@ export { TransactionsOrder, COABalancesSliceOrder, EntityOrder, Section, Section
622
623
  export { ClassesViewSelectorReportV2 };
623
624
  export { BalancesTimeseries, TrendTimeseries, BalanceKind };
624
625
  export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, MonthClosePerformanceTrend, MonthEndCloseCheck, getMonthEndCloseChecksViewByTenantId, MonthEndCloseChecksView, MonthEndCloseCheckFrequency, MonthCloseCheckMetrics, ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, MonthEndAuditSummary, };
625
- export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, UploadStatementDocumentAIPayload, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
626
+ 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, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, UploadStatementDocumentAIPayload, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
626
627
  export { JEScheduleLocalData };
627
628
  export { ExpenseAutomationJESchedulesViewSelector, JEAccountSettingsView, JEScheduledTransactionWithFailedEntries, };
628
629
  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, };
@@ -663,7 +664,7 @@ export { fetchDashboard, getDashboard, DashboardReport, updateTreasuryVideoClose
663
664
  export { updateDashboardLayout };
664
665
  export { PandLWithForecastView, getPandLWithForecast, } from './view/profitAndLoss/pAndLWithForecast/pAndLWithForecastSelector';
665
666
  export { fetchProfitAndLoss, resetProfitAndLossNodeCollapseState, updateProfitAndLossUIState, ProfitAndLossState, ProfitAndLossUIState, getProfitAndLossReport, ProfitAndLossReport, getPandLReportFetchState, fetchProfitAndLossForTimeframe, };
666
- export { fetchProfitAndLossClassesView, updateProfitAndLossClassesToFilterOut, resetProfitAndLossClassesNodeCollapseState, updateProfitAndLossClassesViewUIState, updateProfitAndLossAccountViewMode, ProfitAndLossClassesViewUIState, ProfitAndLossClassesViewReport, getProfitAndLossClassesView, PandLReportViewSectionID, PandLReportViewCalculatedSectionID, isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID, };
667
+ export { fetchProfitAndLossClassesView, updateProfitAndLossClassesToFilterOut, resetProfitAndLossClassesNodeCollapseState, updateProfitAndLossClassesViewUIState, updateProfitAndLossAccountViewMode, updateClassViewLayout, ProfitAndLossClassesViewUIState, ProfitAndLossClassesViewReport, getProfitAndLossClassesView, getProfitAndLossClassesHorizontalView, PandLReportViewSectionID, PandLReportViewCalculatedSectionID, isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID, ClassViewLayout, ProfitAndLossByClassHorizontalReport, ClassColumnDefinition, HorizontalAccountRow, HorizontalClassBalance, HorizontalSectionReport, HorizontalCalculatedSection, };
667
668
  export { AccountingProviderAttachmentSelector, getAccountingProviderAttachment };
668
669
  export { fetchUserListByType, getUserList, UserListSelectorView };
669
670
  export { fetchAllPeopleRequiredViews, fetchPeoplePage, fetchPeople, deletePerson, resendInvite, changeZeniPersonRoles, invitePeople, inviteZeniPeople, updatePeopleUIState, peopleSaveUpdates, resetUpdateErrorMessage, peopleSaveDataInLocalStore, peopleClearDataInLocalStore, PeopleSelectorView, PeopleLocalDataView, Person, getPeople, getPeopleLocalData, PeopleState, PersonUpdateType, PeoplePageMode, ZeniPersonUserRoleType, PeopleUIState, PeopleLocalData, initializeEditPerson, };
@@ -825,9 +826,9 @@ export { TIME_SERIES_DURATIONS, PerformanceReportKey, TimeSeriesDuration, conver
825
826
  export { fetchApAging, getApAgingReport, updateApAgingUIState, AgingReportId, ApAgingReport, AgingBalance, AgingPeriod, AgingReportSortKey, AgingBalancesByVendor, AgingReportUIState, AgingDetailReportUIState, AgingDetailReportInvoice, AgingDateSelectionType, };
826
827
  export { fetchApAgingDetail, AgingReportInvoice, ApAgingDetail, getApAgingDetailForVendor, updateApAgingDetailUIState, };
827
828
  export { LinkBillExpenseKey };
828
- export { clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchExpenseAutomationJESchedulesPage, ignoreExpenseAutomationJESchedule, initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryExpenseAutomationJESchedule, updateExpenseAutomationJESchedulesUIState, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys, };
829
+ export { clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchExpenseAutomationJESchedulesPage, ignoreExpenseAutomationJESchedule, initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryExpenseAutomationJESchedule, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys, };
829
830
  export { createNewSchedulesAccrued, deleteScheduleAccruedDetail, cancelScheduleAccruedJournalEntry, fetchScheduleAccruedDetails, fetchScheduleAccruedDetailsPage, resetJEAccruedLinkInLocalData, saveScheduleAccruedDetails, updateAmountsInScheduleAccruedDetail, updatedJEAccruedLinkWithRecommendedLocalData, updatedJELinkInLocalDataAccruedExpenses, fetchRecommendedTransactionRowIndex, clearSelectedJELinkRowIndex, updateLinkBillExpenseLocalData, updateScheduleAccruedDetailsLocalData, updateSelectedJEAccruedScheduleKey, resetSelectedJEAccruedScheduleKey, resetAccruedDetailNewScheduleState, };
830
- export { JEScheduleKey, JEScheduleTransactionKey, ALL_SCHEDULES_TYPES, JEScheduledTransaction, JEAccruedSchedule, JEScheduleAIRecommendations, JEScheduleFieldRecommendation, ScheduleTypes, ScheduleJournalEntryStatusCodeType, ScheduleListReport, ScheduleAccruedListReport, getScheduleListReport, getAccruedScheduleListReport, ScheduleSubTabType, ScheduleListSortKey, fetchScheduleList, fetchAccruedScheduleList, fetchDownloadSchedules, fetchSchedulesAccount, updateScheduleListLocalData, getFetchStateForScheduleAccountList, toScheduleTypesType, toScheduleTypesTypeStrict, toScheduleListTabsFileTypeStrict, ScheduleListLocalData, ScheduleDetailsLocalDataFixedAssets, ScheduleDetailsLocalDataAccruedExpenses, ScheduleDetailsView, ScheduleAccruedDetailsView, LinkBillExpenseView, LinkBillExpenseLocalData, JEScheduleDetailsLocalData, ScheduleDetailsLocalData, toScheduleSubTabType, ScheduleStatusCodeType, JournalEntryErrorCodeType, ScheduleTransaction, updateScheduleListSubTab, updateScheduleListSearchText, updateScheduleListScrollState, updateScheduleListSortState, ScheduleDetailSortKey, ScheduledJournalEntry, updateSelectedJEScheduleKey, fetchScheduleDetails, getScheduleDetailsView, getAccruedScheduleDetailsView, fetchScheduleDetailsPage, saveScheduleDetails, deleteScheduleDetail, createNewSchedules, updateScheduleDetailsLocalData, JETransactionLink, updateScheduleListDownloadState, updateAccruedJEScheduleAccruedByListKey, DownloadJEScheduleTabOptions, updatedSelectedJELinkRowIndex, ScheduleListTabsFileType, getQBOUrlForLink, getThirdPartyIDFromQBOURL, updatedJELinkInLocalData, updateAmountsInScheduleDetail, ScheduleDetailUIState, resetJELinkInLocalData, JEScheduledTransactionWithBalance, JEScheduleWithBalance, JELinkType, updatedJELinkWithRecommendedLocalData, getFetchStateForScheduleListByType, getDefaultSelectedTimeframeForScheduleType, markAsCompleteScheduleDetail, resetMarkAsCompleteStatus, fetchVendorTabView, updateVendorTabViewTab, VendorTabViewTabType, getVendorTabView, VendorTabViewSelectorView, };
831
+ export { JEScheduleKey, JEScheduleTransactionKey, ALL_SCHEDULES_TYPES, JEScheduledTransaction, JEAccruedSchedule, ScheduleTypes, ScheduleJournalEntryStatusCodeType, ScheduleListReport, ScheduleAccruedListReport, getScheduleListReport, getAccruedScheduleListReport, ScheduleSubTabType, ScheduleListSortKey, fetchScheduleList, fetchAccruedScheduleList, fetchDownloadSchedules, fetchSchedulesAccount, updateScheduleListLocalData, getFetchStateForScheduleAccountList, toScheduleTypesType, toScheduleTypesTypeStrict, toScheduleListTabsFileTypeStrict, ScheduleListLocalData, ScheduleDetailsLocalDataFixedAssets, ScheduleDetailsLocalDataAccruedExpenses, ScheduleDetailsView, ScheduleAccruedDetailsView, LinkBillExpenseView, LinkBillExpenseLocalData, JEScheduleDetailsLocalData, ScheduleDetailsLocalData, toScheduleSubTabType, ScheduleStatusCodeType, JournalEntryErrorCodeType, ScheduleTransaction, updateScheduleListSubTab, updateScheduleListSearchText, updateScheduleListScrollState, updateScheduleListSortState, ScheduleDetailSortKey, ScheduledJournalEntry, updateSelectedJEScheduleKey, fetchScheduleDetails, getScheduleDetailsView, getAccruedScheduleDetailsView, fetchScheduleDetailsPage, saveScheduleDetails, deleteScheduleDetail, createNewSchedules, updateScheduleDetailsLocalData, JETransactionLink, updateScheduleListDownloadState, updateAccruedJEScheduleAccruedByListKey, DownloadJEScheduleTabOptions, updatedSelectedJELinkRowIndex, ScheduleListTabsFileType, getQBOUrlForLink, getThirdPartyIDFromQBOURL, updatedJELinkInLocalData, updateAmountsInScheduleDetail, ScheduleDetailUIState, resetJELinkInLocalData, JEScheduledTransactionWithBalance, JEScheduleWithBalance, JELinkType, updatedJELinkWithRecommendedLocalData, getFetchStateForScheduleListByType, getDefaultSelectedTimeframeForScheduleType, markAsCompleteScheduleDetail, resetMarkAsCompleteStatus, fetchVendorTabView, updateVendorTabViewTab, VendorTabViewTabType, getVendorTabView, VendorTabViewSelectorView, };
831
832
  export { GlobalMerchant, GlobalMerchantBase, TenantMerchant };
832
833
  export { ReviewStatus, VendorTransactionAttachment, VendorTransactionAttachmentPayload, VendorFirstReviewViewSelectorView, VendorFirstReviewViewLocalData, VendorFirstReviewSelectorView, VendorFirstReviewSelectorAttachmentView, VendorFirstReviewViewUIState, VendorFirstReviewViewColumnKey, GlobalMerchantAutoCompleteView, VendorReviewRowCurrentSelection, toVendorFirstReviewViewColumnKeyType, RecommendedNonExistingGlobalMerchant, getGlobalMerchantAutoCompleteResults, VendorReviewRecommendationViewState, GlobalMerchantType, getVendorFirstReviewView, getVendorFirstReviewAttachmentView, fetchVendorFirstReviewView, fetchVendorFirstReviewAttachments, updateVendorFirstReviewViewScrollYOffset, resetVendorFirstReviewLocalData, updateVendorFirstReviewViewPageToken, clearRecentlySavedErroredVendorData, saveVendorFirstReviewView, updateVendorFirstReviewViewLocalData, updateVendorFirstReviewSortUiState, fetchGlobalMerchantAutoCompleteView, clearGlobalMerchantAutoCompleteResults, GlobalVendorReviewRowCurrentSelection, FirstReviewPageCurrentSelectionByColumn, updateReviewVendorDetailLocalData, saveVendorDetailsView, getVendorDetailSelectorView, FirstReviewVendorDetailSelectorView, VendorViewLocalData, };
833
834
  export { fetchGlobalMerchantRecommendation, createGlobalMerchant, updateCreateGlobalMerchantLocalData, clearGlobalMerchantView, getGlobalMerchantView, GlobalMerchantViewSelectorView, GlobalMerchantViewState, NewGlobalMerchantData, NewGlobalMerchantCurrentSelection, };