@zeniai/client-epic-state 5.0.69-betaML51 → 5.0.69-betaML6

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 (34) hide show
  1. package/lib/epic.d.ts +2 -1
  2. package/lib/epic.js +2 -1
  3. package/lib/esm/epic.js +2 -1
  4. package/lib/esm/index.js +6 -6
  5. package/lib/esm/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +21 -1
  6. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +117 -14
  7. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +31 -0
  8. package/lib/esm/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.js +83 -0
  9. package/lib/esm/view/recommendation/recommendationHelper.js +29 -0
  10. package/lib/esm/view/recommendation/recommendationReducer.js +36 -1
  11. package/lib/esm/view/transactionDetail/transactionDetailReducer.js +94 -1
  12. package/lib/esm/view/transactionDetail/transactionDetailSelector.js +22 -0
  13. package/lib/index.d.ts +7 -6
  14. package/lib/index.js +35 -32
  15. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -0
  16. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +23 -2
  17. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +14 -1
  18. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +117 -14
  19. package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +2 -0
  20. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +3 -0
  21. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +32 -0
  22. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +1 -0
  23. package/lib/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.d.ts +9 -0
  24. package/lib/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.js +87 -0
  25. package/lib/view/recommendation/recommendationHelper.d.ts +9 -0
  26. package/lib/view/recommendation/recommendationHelper.js +31 -1
  27. package/lib/view/recommendation/recommendationReducer.d.ts +18 -1
  28. package/lib/view/recommendation/recommendationReducer.js +37 -2
  29. package/lib/view/transactionDetail/transactionDetailReducer.d.ts +11 -1
  30. package/lib/view/transactionDetail/transactionDetailReducer.js +95 -2
  31. package/lib/view/transactionDetail/transactionDetailSelector.d.ts +2 -0
  32. package/lib/view/transactionDetail/transactionDetailSelector.js +24 -1
  33. package/lib/view/transactionDetail/transactionDetailTypes.d.ts +1 -0
  34. package/package.json +1 -1
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  var _a;
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.setIsVendorUpdateAllChecked = exports.updateVendorBulkRecommendationsFetchStatus = exports.updateLatestSelectedEntity = exports.resetAllLineItemsToVendor = exports.updateVendorToAllLineItems = exports.updateLocalDataWithTransactionsUpdateWithVendorCheckbox = exports.resetSelectedCustomer = exports.resetVendor = exports.updateSelectedCustomer = exports.updateSelectedVendor = exports.removeEntityRecommendationForLineIdForTransactionDetail = exports.setEntityRecommendationForLineIdsForTransactionDetail = exports.setAllLineItemsLocalDataIsUpdateAllChecked = exports.setAllLineItemsToCategoryClassInLocalData = exports.resetLineItemsCategoryClassInLocalData = exports.clearTransactionDetailLocalData = exports.saveTransactionDetailLocalData = exports.initializeTransactionDetailLocalData = exports.saveTransactionDetail = exports.updateTransactionStateIfUpdateActionNotAllowed = exports.updateStatusConsolidatedSaveTransactionDetail = exports.updateStatusForTransactionNotMiscategorizedUpdate = exports.deleteTransactionAttachmentSuccess = exports.deleteTransactionAttachmentFailure = exports.deleteTransactionAttachment = exports.markTransactionAsNotMiscategorized = exports.clearTransactionDetailSaveStatus = exports.updateTransactionDetailSaveStatus = exports.updateTransactionDetail = exports.uploadMissingAttachmentSuccess = exports.clearTransactionDetail = exports.removeTransactionDetail = exports.updateTransactionDetailFetchState = exports.fetchTransactionDetail = exports.downloadAccountingProviderAttachmentFailure = exports.downloadAccountingProviderAttachmentSuccess = exports.downloadAccountingProviderAttachment = exports.initialState = void 0;
7
+ exports.setIsVendorUpdateAllChecked = exports.updateVendorBulkRecommendationsFetchStatus = exports.updateLatestSelectedEntity = exports.resetAllLineItemsToVendor = exports.updateVendorToAllLineItems = exports.updateLocalDataWithTransactionsUpdateWithVendorCheckbox = exports.resetSelectedCustomer = exports.resetVendor = exports.updateSelectedCustomer = exports.updateSelectedVendor = exports.removeEntityRecommendationForLineIdForTransactionDetail = exports.markCategoryClassRecommendationsFailureForTransactionDetail = exports.markCategoryClassRecommendationsCompletedForTransactionDetail = exports.markCategoryClassRecommendationsInProgressForTransactionDetail = exports.setEntityRecommendationForLineIdsForTransactionDetail = exports.setAllLineItemsLocalDataIsUpdateAllChecked = exports.setAllLineItemsToCategoryClassInLocalData = exports.resetLineItemsCategoryClassInLocalData = exports.clearTransactionDetailLocalData = exports.saveTransactionDetailLocalData = exports.initializeTransactionDetailLocalData = exports.saveTransactionDetail = exports.updateTransactionStateIfUpdateActionNotAllowed = exports.updateStatusConsolidatedSaveTransactionDetail = exports.updateStatusForTransactionNotMiscategorizedUpdate = exports.deleteTransactionAttachmentSuccess = exports.deleteTransactionAttachmentFailure = exports.deleteTransactionAttachment = exports.markTransactionAsNotMiscategorized = exports.clearTransactionDetailSaveStatus = exports.updateTransactionDetailSaveStatus = exports.updateTransactionDetail = exports.uploadMissingAttachmentSuccess = exports.clearTransactionDetail = exports.removeTransactionDetail = exports.updateTransactionDetailFetchState = exports.fetchTransactionDetail = exports.downloadAccountingProviderAttachmentFailure = exports.downloadAccountingProviderAttachmentSuccess = exports.downloadAccountingProviderAttachment = exports.initialState = void 0;
8
8
  const toolkit_1 = require("@reduxjs/toolkit");
9
9
  const get_1 = __importDefault(require("lodash/get"));
10
10
  const entity_1 = require("../../entity/genericEntity/entity");
@@ -372,6 +372,21 @@ const transactionDetail = (0, toolkit_1.createSlice)({
372
372
  const detail = (0, get_1.default)(draft.transactionDetailById, key, undefined);
373
373
  if (detail != null) {
374
374
  const newLocalData = (0, transactionDetailLocalDataHelper_1.setEntityRecommendationForLineIdInLocalData)(transaction, detail.transactionDetailLocalData, action.payload.entity, lineIds, uncategorizedIncomeExpense, recommendationWithCOTByLineId);
375
+ // Release the per-line fetch flag for every line this fetch
376
+ // covered so the inline skeleton resolves and the page-level
377
+ // Save button can re-enable.
378
+ lineIds.forEach((lineId) => {
379
+ const lineItem = newLocalData.lineItemById[lineId];
380
+ if (lineItem != null) {
381
+ newLocalData.lineItemById[lineId] = {
382
+ ...lineItem,
383
+ categoryClassRecommendationsFetchState: {
384
+ fetchState: 'Completed',
385
+ error: undefined,
386
+ },
387
+ };
388
+ }
389
+ });
375
390
  draft.transactionDetailById[key] = {
376
391
  ...detail,
377
392
  transactionDetailLocalData: newLocalData,
@@ -392,6 +407,84 @@ const transactionDetail = (0, toolkit_1.createSlice)({
392
407
  };
393
408
  },
394
409
  },
410
+ // Start arm of the line-update recommendations fetch for the detail
411
+ // page. Flips covered lines to In-Progress; detail page has no
412
+ // checkbox, so no auto-uncheck side effect.
413
+ markCategoryClassRecommendationsInProgressForTransactionDetail: {
414
+ reducer(draft, action) {
415
+ const { transactionId, lineIds } = action.payload;
416
+ const key = (0, transactionDetailState_1.getTransactionDetailKey)(transactionId);
417
+ const detail = (0, get_1.default)(draft.transactionDetailById, key, undefined);
418
+ if (detail != null) {
419
+ lineIds.forEach((lineId) => {
420
+ const lineItem = detail.transactionDetailLocalData.lineItemById[lineId];
421
+ if (lineItem != null) {
422
+ detail.transactionDetailLocalData.lineItemById[lineId] = {
423
+ ...lineItem,
424
+ categoryClassRecommendationsFetchState: {
425
+ fetchState: 'In-Progress',
426
+ error: undefined,
427
+ },
428
+ };
429
+ }
430
+ });
431
+ }
432
+ },
433
+ prepare(transactionId, lineIds) {
434
+ return { payload: { transactionId, lineIds } };
435
+ },
436
+ },
437
+ // Completed arm. Used when the HTTP call succeeded but the server
438
+ // returned no per-line recommendations — still need to release the
439
+ // In-Progress flag.
440
+ markCategoryClassRecommendationsCompletedForTransactionDetail: {
441
+ reducer(draft, action) {
442
+ const { transactionId, lineIds } = action.payload;
443
+ const key = (0, transactionDetailState_1.getTransactionDetailKey)(transactionId);
444
+ const detail = (0, get_1.default)(draft.transactionDetailById, key, undefined);
445
+ if (detail != null) {
446
+ lineIds.forEach((lineId) => {
447
+ const lineItem = detail.transactionDetailLocalData.lineItemById[lineId];
448
+ if (lineItem != null) {
449
+ detail.transactionDetailLocalData.lineItemById[lineId] = {
450
+ ...lineItem,
451
+ categoryClassRecommendationsFetchState: {
452
+ fetchState: 'Completed',
453
+ error: undefined,
454
+ },
455
+ };
456
+ }
457
+ });
458
+ }
459
+ },
460
+ prepare(transactionId, lineIds) {
461
+ return { payload: { transactionId, lineIds } };
462
+ },
463
+ },
464
+ markCategoryClassRecommendationsFailureForTransactionDetail: {
465
+ reducer(draft, action) {
466
+ const { transactionId, lineIds, error } = action.payload;
467
+ const key = (0, transactionDetailState_1.getTransactionDetailKey)(transactionId);
468
+ const detail = (0, get_1.default)(draft.transactionDetailById, key, undefined);
469
+ if (detail != null) {
470
+ lineIds.forEach((lineId) => {
471
+ const lineItem = detail.transactionDetailLocalData.lineItemById[lineId];
472
+ if (lineItem != null) {
473
+ detail.transactionDetailLocalData.lineItemById[lineId] = {
474
+ ...lineItem,
475
+ categoryClassRecommendationsFetchState: {
476
+ fetchState: 'Error',
477
+ error,
478
+ },
479
+ };
480
+ }
481
+ });
482
+ }
483
+ },
484
+ prepare(transactionId, lineIds, error) {
485
+ return { payload: { transactionId, lineIds, error } };
486
+ },
487
+ },
395
488
  removeEntityRecommendationForLineIdForTransactionDetail: {
396
489
  reducer(draft, action) {
397
490
  const { transaction, lineId } = action.payload;
@@ -663,7 +756,7 @@ const transactionDetail = (0, toolkit_1.createSlice)({
663
756
  },
664
757
  },
665
758
  });
666
- _a = transactionDetail.actions, exports.downloadAccountingProviderAttachment = _a.downloadAccountingProviderAttachment, exports.downloadAccountingProviderAttachmentSuccess = _a.downloadAccountingProviderAttachmentSuccess, exports.downloadAccountingProviderAttachmentFailure = _a.downloadAccountingProviderAttachmentFailure, exports.fetchTransactionDetail = _a.fetchTransactionDetail, exports.updateTransactionDetailFetchState = _a.updateTransactionDetailFetchState, exports.removeTransactionDetail = _a.removeTransactionDetail, exports.clearTransactionDetail = _a.clearTransactionDetail, exports.uploadMissingAttachmentSuccess = _a.uploadMissingAttachmentSuccess, exports.updateTransactionDetail = _a.updateTransactionDetail, exports.updateTransactionDetailSaveStatus = _a.updateTransactionDetailSaveStatus, exports.clearTransactionDetailSaveStatus = _a.clearTransactionDetailSaveStatus, exports.markTransactionAsNotMiscategorized = _a.markTransactionAsNotMiscategorized, exports.deleteTransactionAttachment = _a.deleteTransactionAttachment, exports.deleteTransactionAttachmentFailure = _a.deleteTransactionAttachmentFailure, exports.deleteTransactionAttachmentSuccess = _a.deleteTransactionAttachmentSuccess, exports.updateStatusForTransactionNotMiscategorizedUpdate = _a.updateStatusForTransactionNotMiscategorizedUpdate, exports.updateStatusConsolidatedSaveTransactionDetail = _a.updateStatusConsolidatedSaveTransactionDetail, exports.updateTransactionStateIfUpdateActionNotAllowed = _a.updateTransactionStateIfUpdateActionNotAllowed, exports.saveTransactionDetail = _a.saveTransactionDetail, exports.initializeTransactionDetailLocalData = _a.initializeTransactionDetailLocalData, exports.saveTransactionDetailLocalData = _a.saveTransactionDetailLocalData, exports.clearTransactionDetailLocalData = _a.clearTransactionDetailLocalData, exports.resetLineItemsCategoryClassInLocalData = _a.resetLineItemsCategoryClassInLocalData, exports.setAllLineItemsToCategoryClassInLocalData = _a.setAllLineItemsToCategoryClassInLocalData, exports.setAllLineItemsLocalDataIsUpdateAllChecked = _a.setAllLineItemsLocalDataIsUpdateAllChecked, exports.setEntityRecommendationForLineIdsForTransactionDetail = _a.setEntityRecommendationForLineIdsForTransactionDetail, exports.removeEntityRecommendationForLineIdForTransactionDetail = _a.removeEntityRecommendationForLineIdForTransactionDetail, exports.updateSelectedVendor = _a.updateSelectedVendor, exports.updateSelectedCustomer = _a.updateSelectedCustomer, exports.resetVendor = _a.resetVendor, exports.resetSelectedCustomer = _a.resetSelectedCustomer, exports.updateLocalDataWithTransactionsUpdateWithVendorCheckbox = _a.updateLocalDataWithTransactionsUpdateWithVendorCheckbox, exports.updateVendorToAllLineItems = _a.updateVendorToAllLineItems, exports.resetAllLineItemsToVendor = _a.resetAllLineItemsToVendor, exports.updateLatestSelectedEntity = _a.updateLatestSelectedEntity, exports.updateVendorBulkRecommendationsFetchStatus = _a.updateVendorBulkRecommendationsFetchStatus, exports.setIsVendorUpdateAllChecked = _a.setIsVendorUpdateAllChecked;
759
+ _a = transactionDetail.actions, exports.downloadAccountingProviderAttachment = _a.downloadAccountingProviderAttachment, exports.downloadAccountingProviderAttachmentSuccess = _a.downloadAccountingProviderAttachmentSuccess, exports.downloadAccountingProviderAttachmentFailure = _a.downloadAccountingProviderAttachmentFailure, exports.fetchTransactionDetail = _a.fetchTransactionDetail, exports.updateTransactionDetailFetchState = _a.updateTransactionDetailFetchState, exports.removeTransactionDetail = _a.removeTransactionDetail, exports.clearTransactionDetail = _a.clearTransactionDetail, exports.uploadMissingAttachmentSuccess = _a.uploadMissingAttachmentSuccess, exports.updateTransactionDetail = _a.updateTransactionDetail, exports.updateTransactionDetailSaveStatus = _a.updateTransactionDetailSaveStatus, exports.clearTransactionDetailSaveStatus = _a.clearTransactionDetailSaveStatus, exports.markTransactionAsNotMiscategorized = _a.markTransactionAsNotMiscategorized, exports.deleteTransactionAttachment = _a.deleteTransactionAttachment, exports.deleteTransactionAttachmentFailure = _a.deleteTransactionAttachmentFailure, exports.deleteTransactionAttachmentSuccess = _a.deleteTransactionAttachmentSuccess, exports.updateStatusForTransactionNotMiscategorizedUpdate = _a.updateStatusForTransactionNotMiscategorizedUpdate, exports.updateStatusConsolidatedSaveTransactionDetail = _a.updateStatusConsolidatedSaveTransactionDetail, exports.updateTransactionStateIfUpdateActionNotAllowed = _a.updateTransactionStateIfUpdateActionNotAllowed, exports.saveTransactionDetail = _a.saveTransactionDetail, exports.initializeTransactionDetailLocalData = _a.initializeTransactionDetailLocalData, exports.saveTransactionDetailLocalData = _a.saveTransactionDetailLocalData, exports.clearTransactionDetailLocalData = _a.clearTransactionDetailLocalData, exports.resetLineItemsCategoryClassInLocalData = _a.resetLineItemsCategoryClassInLocalData, exports.setAllLineItemsToCategoryClassInLocalData = _a.setAllLineItemsToCategoryClassInLocalData, exports.setAllLineItemsLocalDataIsUpdateAllChecked = _a.setAllLineItemsLocalDataIsUpdateAllChecked, exports.setEntityRecommendationForLineIdsForTransactionDetail = _a.setEntityRecommendationForLineIdsForTransactionDetail, exports.markCategoryClassRecommendationsInProgressForTransactionDetail = _a.markCategoryClassRecommendationsInProgressForTransactionDetail, exports.markCategoryClassRecommendationsCompletedForTransactionDetail = _a.markCategoryClassRecommendationsCompletedForTransactionDetail, exports.markCategoryClassRecommendationsFailureForTransactionDetail = _a.markCategoryClassRecommendationsFailureForTransactionDetail, exports.removeEntityRecommendationForLineIdForTransactionDetail = _a.removeEntityRecommendationForLineIdForTransactionDetail, exports.updateSelectedVendor = _a.updateSelectedVendor, exports.updateSelectedCustomer = _a.updateSelectedCustomer, exports.resetVendor = _a.resetVendor, exports.resetSelectedCustomer = _a.resetSelectedCustomer, exports.updateLocalDataWithTransactionsUpdateWithVendorCheckbox = _a.updateLocalDataWithTransactionsUpdateWithVendorCheckbox, exports.updateVendorToAllLineItems = _a.updateVendorToAllLineItems, exports.resetAllLineItemsToVendor = _a.resetAllLineItemsToVendor, exports.updateLatestSelectedEntity = _a.updateLatestSelectedEntity, exports.updateVendorBulkRecommendationsFetchStatus = _a.updateVendorBulkRecommendationsFetchStatus, exports.setIsVendorUpdateAllChecked = _a.setIsVendorUpdateAllChecked;
667
760
  exports.default = transactionDetail.reducer;
668
761
  function getUpdatedEntityLocalData(detail, updates, entity, resetRecommendations, type) {
669
762
  const key = type === 'customer' ? 'customerUpdates' : 'vendorUpdates';
@@ -18,6 +18,7 @@ export interface TransactionDetailReport extends SelectorView {
18
18
  classHierarchyList: NestedClassHierarchyForReport[];
19
19
  classList: ClassListSelectorView;
20
20
  deleteStatusByAttachmentName: Record<string, FetchStateAndError>;
21
+ hasInFlightCategoryClassRecommendations: boolean;
21
22
  isAccountingClassesEnabled: boolean;
22
23
  isAccountingProjectsEnabled: boolean;
23
24
  linkedTransactions: SupportedTransactionWithCOT[];
@@ -30,6 +31,7 @@ export interface TransactionDetailReport extends SelectorView {
30
31
  export interface VendorDetailsView extends SelectorView {
31
32
  vendors: Vendor[];
32
33
  }
34
+ export declare const getDetailInFlightRecommendations: (state: RootState, transactionId: TransactionID) => boolean;
33
35
  export declare const getTransactionDetail: (state: RootState, transactionId: TransactionID, fetchLinkedTransactions?: boolean) => TransactionDetailReport;
34
36
  export declare function getTransactionDetailForTransaction(rootState: RootState, transactionId: TransactionID): TransactionDetailReport | undefined;
35
37
  export declare const getInitialUpdatablePeriodsForTransactionRecommendations: (companyIncorporationDate?: ZeniDate, bookCloseDate?: ZeniDate) => {
@@ -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.getInitialUpdatablePeriodsForTransactionRecommendations = exports.getTransactionDetail = void 0;
6
+ exports.getInitialUpdatablePeriodsForTransactionRecommendations = exports.getTransactionDetail = exports.getDetailInFlightRecommendations = void 0;
7
7
  exports.getTransactionDetailForTransaction = getTransactionDetailForTransaction;
8
8
  const get_1 = __importDefault(require("lodash/get"));
9
9
  const reduceFetchState_1 = require("../../commonStateTypes/reduceFetchState");
@@ -17,6 +17,27 @@ const accountListSelector_1 = require("../accountList/accountListSelector");
17
17
  const classListSelector_1 = require("../classList/classListSelector");
18
18
  const projectListSelector_1 = require("../projectList/projectListSelector");
19
19
  const transactionDetailState_1 = require("./transactionDetailState");
20
+ // "Any line on this transaction is fetching category/class recommendations?"
21
+ // Inlined as a plain function because the upstream selector
22
+ // `getTransactionDetail` is also un-memoized and the iteration is O(lines)
23
+ // — typically <10. Exported standalone so consumers that only need the
24
+ // flag (e.g. footer save-disable) can avoid materializing the whole
25
+ // detail report.
26
+ const getDetailInFlightRecommendations = (state, transactionId) => {
27
+ const detailKey = (0, transactionDetailState_1.getTransactionDetailKey)(transactionId);
28
+ const detail = (0, get_1.default)(state.transactionDetailState.transactionDetailById, detailKey, undefined);
29
+ if (detail == null) {
30
+ return false;
31
+ }
32
+ for (const lineItem of Object.values(detail.transactionDetailLocalData.lineItemById)) {
33
+ if (lineItem.categoryClassRecommendationsFetchState?.fetchState ===
34
+ 'In-Progress') {
35
+ return true;
36
+ }
37
+ }
38
+ return false;
39
+ };
40
+ exports.getDetailInFlightRecommendations = getDetailInFlightRecommendations;
20
41
  const getTransactionDetail = (state, transactionId, fetchLinkedTransactions = true) => {
21
42
  const { transactionDetailState, transactionState, vendorState, vendorListState, accountState, classState, classListState, accountListState, projectState, projectListState, } = state;
22
43
  const detailKey = (0, transactionDetailState_1.getTransactionDetailKey)(transactionId);
@@ -85,6 +106,7 @@ const getTransactionDetail = (state, transactionId, fetchLinkedTransactions = tr
85
106
  : [];
86
107
  const transactionDetailAnyUpdateStatus = reduceUpdateFetchStates(transactionDetail);
87
108
  const vendors = (0, vendorSelector_1.getVendorsByVendorIds)(vendorState, vendorListState.vendorIds);
109
+ const hasInFlightCategoryClassRecommendations = (0, exports.getDetailInFlightRecommendations)(state, transactionId);
88
110
  return {
89
111
  reportId: 'transaction_detail',
90
112
  reportTitle: 'Transaction Detail',
@@ -100,6 +122,7 @@ const getTransactionDetail = (state, transactionId, fetchLinkedTransactions = tr
100
122
  classHierarchyList,
101
123
  accountsHierarchyList,
102
124
  classList: classList,
125
+ hasInFlightCategoryClassRecommendations,
103
126
  isAccountingClassesEnabled,
104
127
  isAccountingProjectsEnabled,
105
128
  projectList,
@@ -14,6 +14,7 @@ export interface TransactionDetailLineItemData extends TransactionLineBase {
14
14
  isClassMiscategorized: boolean;
15
15
  account?: AccountBase;
16
16
  billable?: BillableStatus;
17
+ categoryClassRecommendationsFetchState?: FetchStateAndError;
17
18
  class?: ClassBase;
18
19
  customer?: CustomerBase;
19
20
  isCategoryUpdateSelected?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.0.69-betaML51",
3
+ "version": "5.0.69-betaML6",
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
  "module": "lib/esm/index.js",