@zeniai/client-epic-state 4.20.3-betaRR1 → 4.20.3-betaRR2

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.
@@ -1,7 +1,7 @@
1
1
  import { PageToken } from '../../commonStateTypes/viewAndReport/viewAndReport';
2
2
  import { ZeniAPIStatus } from '../../responsePayload';
3
3
  import { CompanyTaskManagerViewPayload } from './companyTaskManagerViewPayload';
4
- import { CompanyTaskManagerViewState, CompanyTaskManagerViewUIState } from './companyTaskManagerViewState';
4
+ import { CompanyTaskManagerViewState, CompanyTaskManagerViewUIState, TaskManagerMetrics } from './companyTaskManagerViewState';
5
5
  export declare const initialUIState: CompanyTaskManagerViewUIState;
6
6
  export declare const initialState: CompanyTaskManagerViewState;
7
7
  export declare const fetchCompanyTaskManagerView: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[pageToken: PageToken, sortKey: "status" | "name" | "tags" | "createdBy" | "dueDate" | "priority" | "assignee" | "taskName", sortOrder: "ascending" | "descending", keepExistingListItems?: any, searchString?: string | undefined], {
@@ -14,6 +14,6 @@ export declare const fetchCompanyTaskManagerView: import("@reduxjs/toolkit").Act
14
14
  data: CompanyTaskManagerViewPayload;
15
15
  }, "companyTaskManagerView/updateCompanyTaskManagerViewOnSuccess">, updateCompanyTaskManagerViewOnFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[error: ZeniAPIStatus<Record<string, unknown>>], {
16
16
  error: ZeniAPIStatus<Record<string, unknown>>;
17
- }, "companyTaskManagerView/updateCompanyTaskManagerViewOnFailure", never, never>, clearCompanyTaskManagerView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"companyTaskManagerView/clearCompanyTaskManagerView">;
17
+ }, "companyTaskManagerView/updateCompanyTaskManagerViewOnFailure", never, never>, fetchTaskManagerMetrics: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"companyTaskManagerView/fetchTaskManagerMetrics">, updateTaskManagerMetrics: import("@reduxjs/toolkit").ActionCreatorWithPayload<TaskManagerMetrics, "companyTaskManagerView/updateTaskManagerMetrics">, updateTaskManagerMetricsOnFailure: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"companyTaskManagerView/updateTaskManagerMetricsOnFailure">, clearCompanyTaskManagerView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"companyTaskManagerView/clearCompanyTaskManagerView">;
18
18
  declare const _default: import("redux").Reducer<CompanyTaskManagerViewState>;
19
19
  export default _default;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.clearCompanyTaskManagerView = exports.updateCompanyTaskManagerViewOnFailure = exports.updateCompanyTaskManagerViewOnSuccess = exports.fetchCompanyTaskManagerView = exports.initialState = exports.initialUIState = void 0;
4
+ exports.clearCompanyTaskManagerView = exports.updateTaskManagerMetricsOnFailure = exports.updateTaskManagerMetrics = exports.fetchTaskManagerMetrics = exports.updateCompanyTaskManagerViewOnFailure = exports.updateCompanyTaskManagerViewOnSuccess = exports.fetchCompanyTaskManagerView = exports.initialState = exports.initialUIState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  exports.initialUIState = {
7
7
  filterText: '',
@@ -9,10 +9,18 @@ exports.initialUIState = {
9
9
  sortOrder: 'descending',
10
10
  pageToken: null,
11
11
  };
12
+ const initialMetrics = {
13
+ closed: 0,
14
+ open: 0,
15
+ overdue: 0,
16
+ total: 0,
17
+ };
12
18
  exports.initialState = {
13
19
  taskIds: [],
14
20
  fetchState: 'Not-Started',
15
21
  error: undefined,
22
+ metrics: initialMetrics,
23
+ metricsFetchState: 'Not-Started',
16
24
  uiState: exports.initialUIState,
17
25
  hasValidState() {
18
26
  return this.fetchState == 'Completed';
@@ -71,10 +79,20 @@ const companyTaskManagerView = (0, toolkit_1.createSlice)({
71
79
  return { payload: { error } };
72
80
  },
73
81
  },
82
+ fetchTaskManagerMetrics(draft) {
83
+ draft.metricsFetchState = 'In-Progress';
84
+ },
85
+ updateTaskManagerMetrics(draft, action) {
86
+ draft.metrics = action.payload;
87
+ draft.metricsFetchState = 'Completed';
88
+ },
89
+ updateTaskManagerMetricsOnFailure(draft) {
90
+ draft.metricsFetchState = 'Error';
91
+ },
74
92
  clearCompanyTaskManagerView(draft) {
75
93
  Object.assign(draft, exports.initialState);
76
94
  },
77
95
  },
78
96
  });
79
- _a = companyTaskManagerView.actions, exports.fetchCompanyTaskManagerView = _a.fetchCompanyTaskManagerView, exports.updateCompanyTaskManagerViewOnSuccess = _a.updateCompanyTaskManagerViewOnSuccess, exports.updateCompanyTaskManagerViewOnFailure = _a.updateCompanyTaskManagerViewOnFailure, exports.clearCompanyTaskManagerView = _a.clearCompanyTaskManagerView;
97
+ _a = companyTaskManagerView.actions, exports.fetchCompanyTaskManagerView = _a.fetchCompanyTaskManagerView, exports.updateCompanyTaskManagerViewOnSuccess = _a.updateCompanyTaskManagerViewOnSuccess, exports.updateCompanyTaskManagerViewOnFailure = _a.updateCompanyTaskManagerViewOnFailure, exports.fetchTaskManagerMetrics = _a.fetchTaskManagerMetrics, exports.updateTaskManagerMetrics = _a.updateTaskManagerMetrics, exports.updateTaskManagerMetricsOnFailure = _a.updateTaskManagerMetricsOnFailure, exports.clearCompanyTaskManagerView = _a.clearCompanyTaskManagerView;
80
98
  exports.default = companyTaskManagerView.reducer;
@@ -4,7 +4,7 @@ import { Tag } from '../../entity/tag/tagState';
4
4
  import { Task } from '../../entity/task/taskState';
5
5
  import { User } from '../../entity/user/userState';
6
6
  import { RootState } from '../../reducer';
7
- import { CompanyTaskManagerViewUIState } from './companyTaskManagerViewState';
7
+ import { CompanyTaskManagerViewUIState, TaskManagerMetrics } from './companyTaskManagerViewState';
8
8
  export interface TaskWithCompanyDetail {
9
9
  assignees: User[];
10
10
  company: Company;
@@ -13,6 +13,7 @@ export interface TaskWithCompanyDetail {
13
13
  task: Task;
14
14
  }
15
15
  export interface CompanyTaskManagerSelectorView extends SelectorView {
16
+ metrics: TaskManagerMetrics;
16
17
  tasksList: TaskWithCompanyDetail[];
17
18
  totalTaskCount: number;
18
19
  uiState: CompanyTaskManagerViewUIState;
@@ -7,7 +7,7 @@ const tagSelector_1 = require("../../entity/tag/tagSelector");
7
7
  const taskSelector_1 = require("../../entity/task/taskSelector");
8
8
  const userSelector_1 = require("../../entity/user/userSelector");
9
9
  exports.getCompanyTaskManagerView = (0, toolkit_1.createSelector)((state) => state.companyTaskManagerViewState, (state) => state.companyState, (state) => state.userState, (state) => state.taskState, (state) => state.tagState, (companyTaskManagerViewState, companyState, userState, taskState, tagState) => {
10
- const { taskIds, uiState, fetchState, error, totalTaskCount } = companyTaskManagerViewState;
10
+ const { taskIds, uiState, fetchState, error, totalTaskCount, metrics } = companyTaskManagerViewState;
11
11
  const tasksList = [];
12
12
  taskIds.forEach((taskId) => {
13
13
  const task = (0, taskSelector_1.getTaskById)(taskState, taskId);
@@ -30,6 +30,7 @@ exports.getCompanyTaskManagerView = (0, toolkit_1.createSelector)((state) => sta
30
30
  }
31
31
  });
32
32
  return {
33
+ metrics,
33
34
  tasksList,
34
35
  uiState,
35
36
  fetchState,
@@ -1,7 +1,13 @@
1
- import { FetchedState, ID } from '../../commonStateTypes/common';
1
+ import { FetchState, FetchedState, ID } from '../../commonStateTypes/common';
2
2
  import { SortOrder } from '../../commonStateTypes/selectorTypes/sortOrderTypes';
3
3
  import { PageToken } from '../../commonStateTypes/viewAndReport/viewAndReport';
4
4
  import { TaskManagerViewSortKey } from '../companyView/types/cockpitTypes';
5
+ export interface TaskManagerMetrics {
6
+ closed: number;
7
+ open: number;
8
+ overdue: number;
9
+ total: number;
10
+ }
5
11
  export interface CompanyTaskManagerViewUIState {
6
12
  filterText: string;
7
13
  pageToken: PageToken;
@@ -9,6 +15,8 @@ export interface CompanyTaskManagerViewUIState {
9
15
  sortOrder: SortOrder;
10
16
  }
11
17
  export interface CompanyTaskManagerViewState extends FetchedState {
18
+ metrics: TaskManagerMetrics;
19
+ metricsFetchState: FetchState;
12
20
  taskIds: ID[];
13
21
  totalTaskCount: number;
14
22
  uiState: CompanyTaskManagerViewUIState;
@@ -0,0 +1,7 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { RootState } from '../../../reducer';
4
+ import { ZeniAPI } from '../../../zeniAPI';
5
+ import { fetchTaskManagerMetrics, updateTaskManagerMetrics, updateTaskManagerMetricsOnFailure } from '../companyTaskManagerViewReducer';
6
+ export type ActionType = ReturnType<typeof fetchTaskManagerMetrics> | ReturnType<typeof updateTaskManagerMetrics> | ReturnType<typeof updateTaskManagerMetricsOnFailure>;
7
+ export declare const fetchTaskManagerMetricsEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchTaskManagerMetricsEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const responsePayload_1 = require("../../../responsePayload");
7
+ const companyTaskManagerViewReducer_1 = require("../companyTaskManagerViewReducer");
8
+ const fetchTaskManagerMetricsEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(companyTaskManagerViewReducer_1.fetchTaskManagerMetrics.match), (0, operators_1.switchMap)(() => {
9
+ const query = JSON.stringify({ is_filter_by_logged_in_user: true });
10
+ return zeniAPI
11
+ .getJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/cockpit-panels/tasks-es-metrics?query=${encodeURIComponent(query)}`)
12
+ .pipe((0, operators_1.mergeMap)((response) => {
13
+ if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
14
+ return (0, rxjs_1.of)((0, companyTaskManagerViewReducer_1.updateTaskManagerMetrics)(response.data.summary));
15
+ }
16
+ else {
17
+ return (0, rxjs_1.of)((0, companyTaskManagerViewReducer_1.updateTaskManagerMetricsOnFailure)());
18
+ }
19
+ }), (0, operators_1.catchError)(() => (0, rxjs_1.of)((0, companyTaskManagerViewReducer_1.updateTaskManagerMetricsOnFailure)())));
20
+ }));
21
+ exports.fetchTaskManagerMetricsEpic = fetchTaskManagerMetricsEpic;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.20.3-betaRR1",
3
+ "version": "4.20.3-betaRR2",
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",