@zeniai/client-epic-state 5.0.41 → 5.0.43-betaRD1

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 (51) hide show
  1. package/lib/commonStateTypes/recommendationBase.d.ts +1 -1
  2. package/lib/entity/project/projectPayload.d.ts +7 -0
  3. package/lib/entity/project/projectPayload.js +15 -1
  4. package/lib/entity/tenant/clearAllEpic.d.ts +2 -1
  5. package/lib/entity/tenant/clearAllEpic.js +2 -0
  6. package/lib/entity/tenant/tenantReducer.js +28 -2
  7. package/lib/entity/transaction/payloadTypes/transactionLinePayload.d.ts +2 -0
  8. package/lib/entity/transaction/payloadTypes/transactionLinePayload.js +9 -0
  9. package/lib/entity/transaction/stateTypes/transactionLine.d.ts +2 -0
  10. package/lib/epic.d.ts +2 -1
  11. package/lib/epic.js +2 -1
  12. package/lib/esm/entity/project/projectPayload.js +12 -0
  13. package/lib/esm/entity/tenant/clearAllEpic.js +2 -0
  14. package/lib/esm/entity/tenant/tenantReducer.js +28 -2
  15. package/lib/esm/entity/transaction/payloadTypes/transactionLinePayload.js +9 -0
  16. package/lib/esm/epic.js +2 -1
  17. package/lib/esm/index.js +3 -1
  18. package/lib/esm/reducer.js +3 -0
  19. package/lib/esm/view/projectList/fetchProjectListEpic.js +38 -0
  20. package/lib/esm/view/projectList/projectListPayload.js +1 -0
  21. package/lib/esm/view/projectList/projectListReducer.js +39 -0
  22. package/lib/esm/view/projectList/projectListSelector.js +9 -0
  23. package/lib/esm/view/projectList/projectListState.js +1 -0
  24. package/lib/esm/view/transactionDetail/epics/saveTransactionHelper.js +1 -0
  25. package/lib/esm/view/transactionDetail/epics/transactionDetailEpic.js +6 -0
  26. package/lib/esm/view/transactionDetail/epics/updateTransactionDetailEpic.js +3 -0
  27. package/lib/esm/view/transactionDetail/transactionDetailSelector.js +14 -2
  28. package/lib/index.d.ts +3 -1
  29. package/lib/index.js +21 -17
  30. package/lib/reducer.d.ts +3 -0
  31. package/lib/reducer.js +3 -0
  32. package/lib/view/projectList/fetchProjectListEpic.d.ts +8 -0
  33. package/lib/view/projectList/fetchProjectListEpic.js +42 -0
  34. package/lib/view/projectList/projectListPayload.d.ts +7 -0
  35. package/lib/view/projectList/projectListPayload.js +2 -0
  36. package/lib/view/projectList/projectListReducer.d.ts +9 -0
  37. package/lib/view/projectList/projectListReducer.js +43 -0
  38. package/lib/view/projectList/projectListSelector.d.ts +8 -0
  39. package/lib/view/projectList/projectListSelector.js +13 -0
  40. package/lib/view/projectList/projectListState.d.ts +4 -0
  41. package/lib/view/projectList/projectListState.js +2 -0
  42. package/lib/view/transactionDetail/epics/saveTransactionHelper.js +1 -0
  43. package/lib/view/transactionDetail/epics/transactionDetailEpic.d.ts +2 -1
  44. package/lib/view/transactionDetail/epics/transactionDetailEpic.js +6 -0
  45. package/lib/view/transactionDetail/epics/updateTransactionDetailEpic.js +3 -0
  46. package/lib/view/transactionDetail/transactionDetailSelector.d.ts +3 -0
  47. package/lib/view/transactionDetail/transactionDetailSelector.js +13 -1
  48. package/lib/view/transactionDetail/transactionDetailState.d.ts +2 -0
  49. package/lib/view/transactionDetail/transactionDetailTypes.d.ts +2 -0
  50. package/package.json +1 -1
  51. package/lib/tsconfig.typecheck.tsbuildinfo +0 -1
package/lib/reducer.d.ts CHANGED
@@ -128,6 +128,7 @@ import { PeopleState } from './view/people/peopleState';
128
128
  import { ProfitAndLossWithForecastState } from './view/profitAndLoss/profitAndLossState';
129
129
  import { ProfitAndLossClassesViewState } from './view/profitAndLossClassesView/profitAndLossClassesViewState';
130
130
  import { ProfitAndLossProjectViewState } from './view/profitAndLossProjectView/profitAndLossProjectViewState';
131
+ import { ProjectListState } from './view/projectList/projectListState';
131
132
  import { EntityRecommendationState } from './view/recommendation/recommendationState';
132
133
  import { ReferralViewState } from './view/referralView/referralState';
133
134
  import { ReimbursementCardState } from './view/reimbursementCard/reimbursementCardState';
@@ -387,6 +388,7 @@ type ViewsState = {
387
388
  profitAndLossClassesViewState: ProfitAndLossClassesViewState;
388
389
  profitAndLossProjectViewState: ProfitAndLossProjectViewState;
389
390
  profitAndLossState: ProfitAndLossWithForecastState;
391
+ projectListState: ProjectListState;
390
392
  realTimeApprovalState: RealTimeApprovalState;
391
393
  referralViewState: ReferralViewState;
392
394
  reimbursementCardState: ReimbursementCardState;
@@ -547,6 +549,7 @@ declare const reducers: import("redux").Reducer<import("redux").CombinedState<{
547
549
  profitAndLossClassesViewState: ProfitAndLossClassesViewState;
548
550
  profitAndLossProjectViewState: ProfitAndLossProjectViewState;
549
551
  profitAndLossState: ProfitAndLossWithForecastState;
552
+ projectListState: ProjectListState;
550
553
  realTimeApprovalState: RealTimeApprovalState;
551
554
  referralViewState: ReferralViewState;
552
555
  reimbursementCardState: ReimbursementCardState;
package/lib/reducer.js CHANGED
@@ -169,6 +169,7 @@ const peopleReducer_1 = __importStar(require("./view/people/peopleReducer"));
169
169
  const profitAndLossReducer_1 = __importStar(require("./view/profitAndLoss/profitAndLossReducer"));
170
170
  const profitAndLossClassesViewReducer_1 = __importStar(require("./view/profitAndLossClassesView/profitAndLossClassesViewReducer"));
171
171
  const profitAndLossProjectViewReducer_1 = __importStar(require("./view/profitAndLossProjectView/profitAndLossProjectViewReducer"));
172
+ const projectListReducer_1 = __importStar(require("./view/projectList/projectListReducer"));
172
173
  const recommendationReducer_1 = __importStar(require("./view/recommendation/recommendationReducer"));
173
174
  const referralReducer_1 = __importStar(require("./view/referralView/referralReducer"));
174
175
  const reimbursementCardReducer_1 = __importStar(require("./view/reimbursementCard/reimbursementCardReducer"));
@@ -429,6 +430,7 @@ const initialViewsState = {
429
430
  profitAndLossClassesViewState: profitAndLossClassesViewReducer_1.initialState,
430
431
  profitAndLossProjectViewState: profitAndLossProjectViewReducer_1.initialState,
431
432
  profitAndLossState: profitAndLossReducer_1.initialState,
433
+ projectListState: projectListReducer_1.initialState,
432
434
  realTimeApprovalState: realTimeApprovalReducer_1.initialState,
433
435
  referralViewState: referralReducer_1.initialState,
434
436
  reimbursementCardState: reimbursementCardReducer_1.initialState,
@@ -664,6 +666,7 @@ const viewReducers = {
664
666
  profitAndLossClassesViewState: profitAndLossClassesViewReducer_1.default,
665
667
  profitAndLossProjectViewState: profitAndLossProjectViewReducer_1.default,
666
668
  profitAndLossState: profitAndLossReducer_1.default,
669
+ projectListState: projectListReducer_1.default,
667
670
  realTimeApprovalState: realTimeApprovalReducer_1.default,
668
671
  referralViewState: referralReducer_1.default,
669
672
  reimbursementCardState: reimbursementCardReducer_1.default,
@@ -0,0 +1,8 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { updateProjects } from '../../entity/project/projectReducer';
4
+ import { RootState } from '../../reducer';
5
+ import { ZeniAPI } from '../../zeniAPI';
6
+ import { fetchProjectList, updateProjectList, updateProjectListFailure } from './projectListReducer';
7
+ export type ActionType = ReturnType<typeof fetchProjectList> | ReturnType<typeof updateProjects> | ReturnType<typeof updateProjectList> | ReturnType<typeof updateProjectListFailure>;
8
+ export declare const fetchProjectListEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchProjectListEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const projectReducer_1 = require("../../entity/project/projectReducer");
7
+ const tenantSelector_1 = require("../../entity/tenant/tenantSelector");
8
+ const responsePayload_1 = require("../../responsePayload");
9
+ const projectListReducer_1 = require("./projectListReducer");
10
+ const buildProjectListQuery = (isIncludeDeleted) => {
11
+ const query = {
12
+ is_deleted: isIncludeDeleted,
13
+ sort_by: 'project_name',
14
+ sort_order: 'asc',
15
+ is_full: true,
16
+ };
17
+ return `?query=${encodeURIComponent(JSON.stringify(query))}`;
18
+ };
19
+ const fetchProjectListEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(projectListReducer_1.fetchProjectList.match), (0, operators_1.withLatestFrom)(state$), (0, operators_1.switchMap)(([action, state]) => {
20
+ if (!(0, tenantSelector_1.getIsAccountingProjectsEnabled)(state)) {
21
+ return (0, rxjs_1.of)((0, projectListReducer_1.updateProjectList)({
22
+ status: (0, responsePayload_1.createZeniAPIStatus)('Success', ''),
23
+ data: { projects: [] },
24
+ }));
25
+ }
26
+ const { isIncludeDeleted } = action.payload;
27
+ const queryParams = buildProjectListQuery(isIncludeDeleted);
28
+ return zeniAPI
29
+ .getJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/projects${queryParams}`)
30
+ .pipe((0, operators_1.mergeMap)((response) => {
31
+ if ((0, responsePayload_1.isSuccessResponse)(response)) {
32
+ return (0, rxjs_1.of)((0, projectReducer_1.updateProjects)(response.data?.projects ?? []), (0, projectListReducer_1.updateProjectList)(response));
33
+ }
34
+ else {
35
+ return (0, rxjs_1.of)((0, projectListReducer_1.updateProjectListFailure)(response.status));
36
+ }
37
+ }), (0, operators_1.catchError)((error) => {
38
+ return (0, rxjs_1.of)((0, projectListReducer_1.updateProjectListFailure)((0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Fetch Projects REST API call errored out' +
39
+ JSON.stringify(error))));
40
+ }));
41
+ }));
42
+ exports.fetchProjectListEpic = fetchProjectListEpic;
@@ -0,0 +1,7 @@
1
+ import { ProjectMetadataPayload } from '../../entity/project/projectPayload';
2
+ import { ZeniAPIResponse } from '../../responsePayload';
3
+ interface ProjectListPayloadData {
4
+ projects: ProjectMetadataPayload[];
5
+ }
6
+ export type ProjectListResponse = ZeniAPIResponse<ProjectListPayloadData>;
7
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { ZeniAPIStatus } from '../../responsePayload';
2
+ import { ProjectListResponse } from './projectListPayload';
3
+ import { ProjectListState } from './projectListState';
4
+ export declare const initialState: ProjectListState;
5
+ export declare const fetchProjectList: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[isIncludeDeleted?: boolean | undefined], {
6
+ isIncludeDeleted: boolean;
7
+ }, "projectList/fetchProjectList", never, never>, updateProjectList: import("@reduxjs/toolkit").ActionCreatorWithPayload<ProjectListResponse, "projectList/updateProjectList">, updateProjectListFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "projectList/updateProjectListFailure">, clearProjectList: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"projectList/clearProjectList">;
8
+ declare const _default: import("redux").Reducer<ProjectListState>;
9
+ export default _default;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.clearProjectList = exports.updateProjectListFailure = exports.updateProjectList = exports.fetchProjectList = exports.initialState = void 0;
5
+ const toolkit_1 = require("@reduxjs/toolkit");
6
+ exports.initialState = {
7
+ fetchState: 'Not-Started',
8
+ error: undefined,
9
+ projectIds: [],
10
+ hasValidState() {
11
+ return this.fetchState == 'Completed';
12
+ },
13
+ };
14
+ const projectList = (0, toolkit_1.createSlice)({
15
+ name: 'projectList',
16
+ initialState: exports.initialState,
17
+ reducers: {
18
+ fetchProjectList: {
19
+ reducer(draft) {
20
+ draft.fetchState = 'In-Progress';
21
+ draft.error = undefined;
22
+ },
23
+ prepare(isIncludeDeleted) {
24
+ return { payload: { isIncludeDeleted: isIncludeDeleted ?? false } };
25
+ },
26
+ },
27
+ updateProjectList(draft, action) {
28
+ draft.projectIds =
29
+ action.payload.data?.projects.map((project) => project.zeni_project_id) ?? [];
30
+ draft.fetchState = 'Completed';
31
+ draft.error = undefined;
32
+ },
33
+ updateProjectListFailure(draft, action) {
34
+ draft.fetchState = 'Error';
35
+ draft.error = action.payload;
36
+ },
37
+ clearProjectList(draft) {
38
+ Object.assign(draft, exports.initialState);
39
+ },
40
+ },
41
+ });
42
+ _a = projectList.actions, exports.fetchProjectList = _a.fetchProjectList, exports.updateProjectList = _a.updateProjectList, exports.updateProjectListFailure = _a.updateProjectListFailure, exports.clearProjectList = _a.clearProjectList;
43
+ exports.default = projectList.reducer;
@@ -0,0 +1,8 @@
1
+ import { SelectorView } from '../../commonStateTypes/viewAndReport/viewAndReport';
2
+ import { ProjectState } from '../../entity/project/projectReducer';
3
+ import { Project } from '../../entity/project/projectState';
4
+ import { ProjectListState } from './projectListState';
5
+ export interface ProjectListSelectorView extends SelectorView {
6
+ projects: Project[];
7
+ }
8
+ export declare const getProjectList: (projectState: ProjectState, projectListState: ProjectListState) => ProjectListSelectorView;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProjectList = void 0;
4
+ const projectSelector_1 = require("../../entity/project/projectSelector");
5
+ const getProjectList = (projectState, projectListState) => {
6
+ return {
7
+ projects: (0, projectSelector_1.getProjectsByIds)(projectState, projectListState.projectIds),
8
+ fetchState: projectListState.fetchState,
9
+ error: projectListState.error,
10
+ version: 0,
11
+ };
12
+ };
13
+ exports.getProjectList = getProjectList;
@@ -0,0 +1,4 @@
1
+ import { FetchedState, ID } from '../../commonStateTypes/common';
2
+ export interface ProjectListState extends FetchedState {
3
+ projectIds: ID[];
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -54,6 +54,7 @@ const toTransactionUpdatesFromTransactionDetailLocalData = (transactionDetailLoc
54
54
  lineDescription: lineItem.lineDescription,
55
55
  class: lineItem.class,
56
56
  account: lineItem.account,
57
+ project: lineItem.project,
57
58
  recommendation: (0, transactionHelper_1.convertCOTRecommendationsToRegular)(lineItem.recommendationsWithCOT),
58
59
  };
59
60
  if (line.type === 'journal_entry_transaction_line' ||
@@ -8,7 +8,8 @@ import { fetchAccountList } from '../../accountList/accountListReducer';
8
8
  import { fetchClassList } from '../../classList/classListReducer';
9
9
  import { updateTransactionVendorLocalData } from '../../commonVendorView/transactionVendorView/transactionVendorViewReducer';
10
10
  import { fetchOwnerList } from '../../ownerList/ownerListReducer';
11
+ import { fetchProjectList } from '../../projectList/projectListReducer';
11
12
  import { updateSortUiState } from '../../vendorList/vendorListReducer';
12
13
  import { fetchTransactionDetail, initializeTransactionDetailLocalData, removeTransactionDetail, updateTransactionDetailFetchState } from '../transactionDetailReducer';
13
- export type ActionType = ReturnType<typeof fetchTransactionDetail> | ReturnType<typeof updateTransaction> | ReturnType<typeof updateTransactionDetailFetchState> | ReturnType<typeof initializeTransactionDetailLocalData> | ReturnType<typeof removeTransaction> | ReturnType<typeof removeTransactionDetail> | ReturnType<typeof fetchClassList> | ReturnType<typeof fetchAccountList> | ReturnType<typeof updateSortUiState> | ReturnType<typeof updateVendors> | ReturnType<typeof updateTransactionVendorLocalData> | ReturnType<typeof fetchOwnerList>;
14
+ export type ActionType = ReturnType<typeof fetchTransactionDetail> | ReturnType<typeof updateTransaction> | ReturnType<typeof updateTransactionDetailFetchState> | ReturnType<typeof initializeTransactionDetailLocalData> | ReturnType<typeof removeTransaction> | ReturnType<typeof removeTransactionDetail> | ReturnType<typeof fetchClassList> | ReturnType<typeof fetchProjectList> | ReturnType<typeof fetchAccountList> | ReturnType<typeof updateSortUiState> | ReturnType<typeof updateVendors> | ReturnType<typeof updateTransactionVendorLocalData> | ReturnType<typeof fetchOwnerList>;
14
15
  export declare const fetchTransactionDetailEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -20,6 +20,7 @@ const classListReducer_1 = require("../../classList/classListReducer");
20
20
  const transactionVendorLocalDataHelper_1 = require("../../commonVendorView/transactionVendorView/transactionVendorLocalDataHelper");
21
21
  const transactionVendorViewReducer_1 = require("../../commonVendorView/transactionVendorView/transactionVendorViewReducer");
22
22
  const ownerListReducer_1 = require("../../ownerList/ownerListReducer");
23
+ const projectListReducer_1 = require("../../projectList/projectListReducer");
23
24
  const transactionDetailReducer_1 = require("../transactionDetailReducer");
24
25
  const transactionDetailState_1 = require("../transactionDetailState");
25
26
  const fetchTransactionDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(transactionDetailReducer_1.fetchTransactionDetail.match), (0, operators_1.mergeMap)((action) => {
@@ -45,6 +46,11 @@ const fetchTransactionDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe(
45
46
  classList.fetchState !== 'In-Progress') {
46
47
  transactionActions.push((0, classListReducer_1.fetchClassList)());
47
48
  }
49
+ const projectList = state$.value.projectListState;
50
+ if (projectList.hasValidState() === false &&
51
+ projectList.fetchState !== 'In-Progress') {
52
+ transactionActions.push((0, projectListReducer_1.fetchProjectList)());
53
+ }
48
54
  transactionActions.push((0, transactionDetailReducer_1.updateTransactionDetailFetchState)(transactionId, 'In-Progress'));
49
55
  const query = { transaction_type: transactionId.type };
50
56
  const getTransactionDetail$ = zeniAPI
@@ -188,6 +188,9 @@ const toTransactionUpdatePayload = (updates, detail, cotTransactionTracking, ven
188
188
  if (lineUpdates.account != null) {
189
189
  lineTobeUpdated.account = lineUpdates.account;
190
190
  }
191
+ if (lineUpdates.project != null) {
192
+ lineTobeUpdated.project = lineUpdates.project;
193
+ }
191
194
  if (lineUpdates.customer != null) {
192
195
  lineTobeUpdated.customer = lineUpdates.customer;
193
196
  }
@@ -9,6 +9,7 @@ import { RootState } from '../../reducer';
9
9
  import { ZeniDate } from '../../zeniDayJS';
10
10
  import { AccountListSelectorView } from '../accountList/accountListSelector';
11
11
  import { ClassListSelectorView } from '../classList/classListSelector';
12
+ import { ProjectListSelectorView } from '../projectList/projectListSelector';
12
13
  import { TransactionDetailLocalData } from './transactionDetailTypes';
13
14
  export interface TransactionDetailReport extends SelectorView {
14
15
  accountList: AccountListSelectorView;
@@ -18,7 +19,9 @@ export interface TransactionDetailReport extends SelectorView {
18
19
  classList: ClassListSelectorView;
19
20
  deleteStatusByAttachmentName: Record<string, FetchStateAndError>;
20
21
  isAccountingClassesEnabled: boolean;
22
+ isAccountingProjectsEnabled: boolean;
21
23
  linkedTransactions: SupportedTransactionWithCOT[];
24
+ projectList: ProjectListSelectorView;
22
25
  transactionDetailLocalData: TransactionDetailLocalData;
23
26
  transactionDetailUpdateStatus: FetchStateAndError;
24
27
  isUpdateNotAllowed?: boolean;
@@ -15,9 +15,10 @@ const vendorSelector_1 = require("../../entity/vendor/vendorSelector");
15
15
  const zeniDayJS_1 = require("../../zeniDayJS");
16
16
  const accountListSelector_1 = require("../accountList/accountListSelector");
17
17
  const classListSelector_1 = require("../classList/classListSelector");
18
+ const projectListSelector_1 = require("../projectList/projectListSelector");
18
19
  const transactionDetailState_1 = require("./transactionDetailState");
19
20
  const getTransactionDetail = (state, transactionId, fetchLinkedTransactions = true) => {
20
- const { transactionDetailState, transactionState, vendorState, vendorListState, accountState, classState, classListState, accountListState, } = state;
21
+ const { transactionDetailState, transactionState, vendorState, vendorListState, accountState, classState, classListState, accountListState, projectState, projectListState, } = state;
21
22
  const detailKey = (0, transactionDetailState_1.getTransactionDetailKey)(transactionId);
22
23
  const transactionDetail = (0, get_1.default)(transactionDetailState.transactionDetailById, detailKey);
23
24
  let fetchState = {
@@ -63,6 +64,15 @@ const getTransactionDetail = (state, transactionId, fetchLinkedTransactions = tr
63
64
  const classList = isAccountingClassesEnabled
64
65
  ? (0, classListSelector_1.getClassList)(classState, classListState)
65
66
  : { classes: [], nestedClassHierarchy: [], fetchState: 'Completed', error: undefined, version: 0 };
67
+ const isAccountingProjectsEnabled = (0, tenantSelector_1.getIsAccountingProjectsEnabled)(state);
68
+ const projectList = isAccountingProjectsEnabled
69
+ ? (0, projectListSelector_1.getProjectList)(projectState, projectListState)
70
+ : {
71
+ projects: [],
72
+ fetchState: 'Completed',
73
+ error: undefined,
74
+ version: 0,
75
+ };
66
76
  const accountsHierarchyList = (0, accountListSelector_1.getNestedAccountListHierarchy)(accountListState, 'accountList');
67
77
  const classHierarchyList = isAccountingClassesEnabled
68
78
  ? (0, classListSelector_1.getNestedClassListHierarchy)(classListState)
@@ -85,6 +95,8 @@ const getTransactionDetail = (state, transactionId, fetchLinkedTransactions = tr
85
95
  accountsHierarchyList,
86
96
  classList: classList,
87
97
  isAccountingClassesEnabled,
98
+ isAccountingProjectsEnabled,
99
+ projectList,
88
100
  isUpdateNotAllowed: transactionDetail?.isUpdateNotAllowed,
89
101
  transactionDetailLocalData: transactionDetail?.transactionDetailLocalData ??
90
102
  transactionDetailState_1.initialSupportedTransactionDetail.transactionDetailLocalData,
@@ -4,6 +4,7 @@ import { AccountBase } from '../../entity/account/accountState';
4
4
  import { ClassBase } from '../../entity/class/classState';
5
5
  import { CustomerBase } from '../../entity/customer/customerState';
6
6
  import { EntityType } from '../../entity/genericEntity/entity';
7
+ import { Project } from '../../entity/project/projectState';
7
8
  import { Transaction, TransactionID } from '../../entity/transaction/stateTypes/transaction';
8
9
  import { VendorBase } from '../../entity/vendor/vendorState';
9
10
  import { EntityRecommendationKey } from '../recommendation/recommendationState';
@@ -52,6 +53,7 @@ export interface TransactionLineUpdates {
52
53
  class?: ClassBase;
53
54
  customer?: CustomerBase;
54
55
  lineDescription?: string;
56
+ project?: Project;
55
57
  recommendation?: Recommendation[];
56
58
  vendor?: VendorBase;
57
59
  }
@@ -4,6 +4,7 @@ import { AccountBase, RecommendedAccountBase } from '../../entity/account/accoun
4
4
  import { ClassBase, RecommendedClassBase } from '../../entity/class/classState';
5
5
  import { CustomerBase } from '../../entity/customer/customerState';
6
6
  import { Entity } from '../../entity/genericEntity/entity';
7
+ import { Project } from '../../entity/project/projectState';
7
8
  import { TransactionID } from '../../entity/transaction/stateTypes/transaction';
8
9
  import { BillableStatus, PlatformLineDetailType, ProductOrService, TransactionLineBase } from '../../entity/transaction/stateTypes/transactionLine';
9
10
  import { TransactionCategory, TransactionType } from '../../entity/transaction/stateTypes/transactionType';
@@ -29,6 +30,7 @@ export interface TransactionDetailLineItemData extends TransactionLineBase {
29
30
  linkedTransactions?: TransactionID[];
30
31
  postingType?: TransactionCategory;
31
32
  postingTypeName?: string;
33
+ project?: Project;
32
34
  recommendationsWithCOT?: RecommendationWithCOT[];
33
35
  recommendedAccount?: RecommendedAccountBase;
34
36
  recommendedClass?: RecommendedClassBase;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.0.41",
3
+ "version": "5.0.43-betaRD1",
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",