@zeniai/client-epic-state 4.13.99 → 4.14.1

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.
@@ -5,7 +5,7 @@ import { FilterCategoryValueType } from '../helpers/cockpitHelpers';
5
5
  import { CockpitDownloadTabsID, CockpitTabsFileType } from './cockpitTabsID';
6
6
  export declare const toPortfolioSortKeyType: (v: string) => "expenses" | "runway" | "cashBalance" | "netIncome" | "companyName" | "revenues";
7
7
  export declare const toManagementSortKeyType: (v: string) => "status" | "group" | "bookCloseDate" | "controller" | "preparer" | "reviewer" | "companyName" | "monthlyRecurringRevenue" | "annualRecurringRevenue" | "taxStatus" | "notes" | "plans" | "customerSuccessManager" | "task" | "apAnalyst" | "reportSent" | "taxLead" | "satisfaction";
8
- export declare const toOnboardingSortKeyType: (v: string) => "companyName" | "notes" | "bankAccountLinked" | "qboLinked" | "identityVerified" | "businessVerified" | "groupCreated" | "customerCreated" | "enroller" | "invite";
8
+ export declare const toOnboardingSortKeyType: (v: string) => "companyName" | "notes" | "bankAccountLinked" | "qboLinked" | "identityVerified" | "businessVerified" | "groupCreated" | "customerCreated" | "enroller" | "invite" | "latestCreated";
9
9
  export declare const toHealthSortKeyType: (v: string) => "group" | "runway" | "controller" | "companyName" | "monthlyRecurringRevenue" | "customerSatisfactionScore" | "netPromoterScore" | "customerSuccessManager" | "lastReportSent" | "externalProductServiceExposure" | "finOpsEngagementFrequency" | "companyEngagementMetricsUpdatedAt" | "issues" | "productVerticals" | "churnProbability" | "subscriptionDate" | "renewalDate";
10
10
  export declare const toTaskManagerSortKeyType: (v: string) => "priority" | "name" | "status" | "dueDate" | "taskName" | "assignee" | "tags" | "createdBy";
11
11
  export declare type PortfolioViewSortKey = ReturnType<typeof toPortfolioSortKeyType>;
@@ -41,6 +41,7 @@ const ALL_ONBOARDING_SORT_KEYS = [
41
41
  'enroller',
42
42
  'notes',
43
43
  'invite',
44
+ 'latestCreated',
44
45
  ];
45
46
  const ALL_HEALTH_SORT_KEYS = [
46
47
  'companyName',
@@ -36,7 +36,7 @@ exports.initialState = {
36
36
  selectedCompanyId: '',
37
37
  selectedStep: '',
38
38
  filterText: '',
39
- sortKey: 'companyName',
39
+ sortKey: 'latestCreated',
40
40
  sortOrder: 'ascending',
41
41
  },
42
42
  updateStatus: {
@@ -133,6 +133,7 @@ const getSortedOnboardingCustomers = (onboardingCustomers, sortKey, sortOrder, u
133
133
  var _a;
134
134
  switch (sortKey) {
135
135
  case 'companyName':
136
+ case 'latestCreated':
136
137
  case 'groupCreated':
137
138
  case 'customerCreated':
138
139
  case 'bankAccountLinked':
@@ -161,9 +162,19 @@ const getSortedOnboardingCustomers = (onboardingCustomers, sortKey, sortOrder, u
161
162
  break;
162
163
  }
163
164
  });
165
+ const appliedSortOrder = () => {
166
+ if (sortKey === 'latestCreated') {
167
+ return 'desc';
168
+ }
169
+ else {
170
+ return sortOrder === 'ascending' ? 'asc' : 'desc';
171
+ }
172
+ };
164
173
  const sortedCompaniesWithSortKeyValue = (0, orderBy_1.default)(companiesWithSortKeyValue, (company) => {
165
174
  var _a, _b, _c, _d, _e, _f;
166
175
  switch (sortKey) {
176
+ case 'latestCreated':
177
+ return company.company.company.companyInfo.createTime;
167
178
  case 'companyName':
168
179
  return Boolean(company.company.company.companyInfo.name) === true
169
180
  ? company.company.company.companyInfo.name.toLowerCase()
@@ -185,7 +196,7 @@ const getSortedOnboardingCustomers = (onboardingCustomers, sortKey, sortOrder, u
185
196
  default:
186
197
  return (_f = company.company.company.managementInfo.companyGroupId) === null || _f === void 0 ? void 0 : _f.toLowerCase();
187
198
  }
188
- }, sortOrder === 'ascending' ? 'asc' : 'desc');
199
+ }, appliedSortOrder());
189
200
  return [...sortedCompaniesWithSortKeyValue, ...companiesWithNoSortKeyValue];
190
201
  };
191
202
  /**
@@ -10,7 +10,6 @@ const operators_1 = require("rxjs/operators");
10
10
  const transactionDetailReducer_1 = require("../transactionDetailReducer");
11
11
  const transactionDetailState_1 = require("../transactionDetailState");
12
12
  const saveTransactionHelper_1 = require("./saveTransactionHelper");
13
- const accountListSelector_1 = require("../../accountList/accountListSelector");
14
13
  const transactionSelector_1 = require("../../../entity/transaction/transactionSelector");
15
14
  const saveTransactionDetailEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(transactionDetailReducer_1.saveTransactionDetail.match), (0, operators_1.mergeMap)((action) => {
16
15
  const transactionId = action.payload.transactionId;
@@ -22,9 +21,8 @@ const saveTransactionDetailEpic = (actions$, state$) => actions$.pipe((0, operat
22
21
  const detail = (0, get_1.default)(transactionDetailState.transactionDetailById, key, undefined);
23
22
  const transaction = (0, transactionSelector_1.getSupportedTransactionById)(transactionState, key);
24
23
  if (detail != null && transaction != null) {
25
- const uncategorizedIncomeExpense = (0, accountListSelector_1.getUncategorizedAccounts)(state$.value.accountState, state$.value.accountListState, 'accountList');
26
24
  const localData = detail.transactionDetailLocalData;
27
- const transactionSaveUpdates = (0, saveTransactionHelper_1.toTransactionUpdatesFromTransactionDetailLocalData)(localData, transaction, uncategorizedIncomeExpense, isExpenseAutomationEnabled);
25
+ const transactionSaveUpdates = (0, saveTransactionHelper_1.toTransactionUpdatesFromTransactionDetailLocalData)(localData, transaction, isExpenseAutomationEnabled);
28
26
  fetchActions.push((0, transactionDetailReducer_1.updateTransactionDetail)(transactionId, transactionSaveUpdates));
29
27
  return (0, rxjs_1.from)(fetchActions);
30
28
  }
@@ -21,7 +21,7 @@ import { TransactionDetailLocalData } from '../transactionDetailTypes';
21
21
  * 4. Only difference between this and Miscategorized will be that we will
22
22
  * additionally fire “Mark as not miscat” for every point above.
23
23
  */
24
- export declare const toTransactionUpdatesFromTransactionDetailLocalData: (transactionDetailLocalData: TransactionDetailLocalData, transaction: SupportedTransaction, uncategorizedIncomeExpense: UncategorizedAccounts, isExpenseAutomationEnabled: boolean) => TransactionSaveUpdates;
24
+ export declare const toTransactionUpdatesFromTransactionDetailLocalData: (transactionDetailLocalData: TransactionDetailLocalData, transaction: SupportedTransaction, isExpenseAutomationEnabled: boolean) => TransactionSaveUpdates;
25
25
  export declare const toRecommendedAccountBase: (amountValue: number, accountBase?: AccountBase | undefined, recommendationBase?: RecommendationBase | undefined) => RecommendedAccountBase | undefined;
26
26
  export declare const toRecommendedClassBase: (amountValue: number, classBase?: ClassBase | undefined, recommendationBase?: RecommendationBase | undefined) => RecommendedClassBase | undefined;
27
27
  export declare const isTransactionMiscategorized: (transaction: SupportedTransaction, isExpenseAutomationEnabled: boolean) => boolean;
@@ -24,7 +24,7 @@ const recommendationState_1 = require("../../recommendation/recommendationState"
24
24
  * 4. Only difference between this and Miscategorized will be that we will
25
25
  * additionally fire “Mark as not miscat” for every point above.
26
26
  */
27
- const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDetailLocalData, transaction, uncategorizedIncomeExpense, isExpenseAutomationEnabled) => {
27
+ const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDetailLocalData, transaction, isExpenseAutomationEnabled) => {
28
28
  var _a, _b, _c;
29
29
  const updates = {
30
30
  updatesByLineId: {},
@@ -32,7 +32,6 @@ const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDetailLoc
32
32
  const updatesByLineId = {};
33
33
  const entityUpdates = {};
34
34
  const isTransactionMisCategorized = (0, exports.isTransactionMiscategorized)(transaction, isExpenseAutomationEnabled);
35
- const isTransactionUnCategorized = (0, exports.isTransactionUncategorized)(transaction, uncategorizedIncomeExpense);
36
35
  updates.memo = transactionDetailLocalData.memo;
37
36
  const updatedEntityId = transactionDetailLocalData.updatePreviousTransactionsWithUpdatedVendor ===
38
37
  true
@@ -138,7 +137,7 @@ const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDetailLoc
138
137
  entityRelatedUpdates: entityUpdates,
139
138
  /*Note: We need to call `mark-miscategorized-as-correct` api only when any of the line item is miscategorized
140
139
  and all the line items are NOT uncategorized*/
141
- markAsMiscatUpdates: isTransactionMisCategorized && !isTransactionUnCategorized,
140
+ markAsMiscatUpdates: isTransactionMisCategorized,
142
141
  anyBulkUpdates: isBulkUpdate,
143
142
  };
144
143
  };
@@ -25,6 +25,9 @@ const vendorSelector_1 = require("../../../entity/vendor/vendorSelector");
25
25
  const vendorReducer_1 = require("../../../entity/vendor/vendorReducer");
26
26
  const transactionSelector_1 = require("../../../entity/transaction/transactionSelector");
27
27
  const transactionType_1 = require("../../../entity/transaction/stateTypes/transactionType");
28
+ const accountListSelector_1 = require("../../accountList/accountListSelector");
29
+ const toSupportedTransaction_1 = __importDefault(require("../../../entity/transaction/toSupportedTransaction"));
30
+ const saveTransactionHelper_1 = require("./saveTransactionHelper");
28
31
  const updateTransactionDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(transactionDetailReducer_1.updateTransactionDetail.match), (0, operators_1.mergeMap)((action) => {
29
32
  const { transactionState, vendorState, transactionDetailState } = state$.value;
30
33
  return zeniAPI
@@ -76,9 +79,13 @@ const updateTransactionDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe
76
79
  callMarkTransactionAsNotMiscategorized = false;
77
80
  }
78
81
  }
82
+ const uncategorizedIncomeExpense = (0, accountListSelector_1.getUncategorizedAccounts)(state$.value.accountState, state$.value.accountListState, 'accountList');
83
+ const transaction = (0, toSupportedTransaction_1.default)(response.data.transaction);
84
+ const isTransactionUnCategorized = (0, saveTransactionHelper_1.isTransactionUncategorized)(transaction, uncategorizedIncomeExpense);
79
85
  if (action.payload.transactionSaveUpdates.markAsMiscatUpdates ===
80
86
  true &&
81
- callMarkTransactionAsNotMiscategorized === true) {
87
+ callMarkTransactionAsNotMiscategorized === true &&
88
+ isTransactionUnCategorized === false) {
82
89
  actions.push((0, transactionDetailReducer_1.markTransactionAsNotMiscategorized)(transactionIdResp, action.payload.transactionSaveUpdates));
83
90
  }
84
91
  else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.13.99",
3
+ "version": "4.14.1",
4
4
  "description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",