@zeniai/client-epic-state 5.0.2-betaRR7 → 5.0.2-betaRR9

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,6 +5,7 @@ import { TagState } from '../../../entity/tag/tagState';
5
5
  import { Task, TaskState } from '../../../entity/task/taskState';
6
6
  import { TaskGroupTemplate } from '../../../entity/taskGroupTemplate/taskGroupTemplateState';
7
7
  import { UserState } from '../../../entity/user/userState';
8
+ import { UserGroupsState } from '../../../entity/userGroups/userGroupsState';
8
9
  import { UserRoleState } from '../../../entity/userRole/userRoleState';
9
10
  import { RootState } from '../../../reducer';
10
11
  import { UserAndRole } from '../../companyView/types/userAndRole';
@@ -13,6 +14,7 @@ import { UserListSelectorView } from '../../userListView/userListViewSelector';
13
14
  import { TaskListFilters, TaskListLocalData, TaskListState, TaskListTab, TaskListUIState } from './taskList';
14
15
  export interface TaskWithUserDetails extends Task {
15
16
  assigneeUsers: UserAndRole[];
17
+ firstAssigneeSortName: string;
16
18
  }
17
19
  export interface TaskGroupWithTasksList {
18
20
  groupName: string;
@@ -36,11 +38,12 @@ export interface TaskListSelectorView extends SelectorView {
36
38
  userGroupList: UserGroupListSelectorView;
37
39
  userList: UserListSelectorView;
38
40
  }
39
- export declare const getTaskListGroupedByAssignees: ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }: {
41
+ export declare const getTaskListGroupedByAssignees: ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }: {
40
42
  addressState: AddressState;
41
43
  tagState: TagState;
42
44
  taskListState: TaskListState;
43
45
  taskState: TaskState;
46
+ userGroupsState: UserGroupsState;
44
47
  userRoleState: UserRoleState;
45
48
  userState: UserState;
46
49
  }) => {
@@ -49,11 +52,12 @@ export declare const getTaskListGroupedByAssignees: ({ taskListState, taskState,
49
52
  isDefault: boolean;
50
53
  tasks: TaskWithUserDetails[];
51
54
  }[];
52
- export declare const getTaskListGroupedByPriority: ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }: {
55
+ export declare const getTaskListGroupedByPriority: ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }: {
53
56
  addressState: AddressState;
54
57
  tagState: TagState;
55
58
  taskListState: TaskListState;
56
59
  taskState: TaskState;
60
+ userGroupsState: UserGroupsState;
57
61
  userRoleState: UserRoleState;
58
62
  userState: UserState;
59
63
  }) => {
@@ -40,6 +40,8 @@ const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
40
40
  return task.status.name;
41
41
  case 'priority':
42
42
  return taskState_1.ALL_PRIORITY_CODE.indexOf(task.priority.code);
43
+ case 'assignee':
44
+ return task.firstAssigneeSortName;
43
45
  case 'timeSpent':
44
46
  return task.timeSpent;
45
47
  case 'visibility':
@@ -51,7 +53,7 @@ const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
51
53
  }, sortOrder);
52
54
  return tasksInOrder;
53
55
  };
54
- const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRoleState, addressState, taskIds, tagState, }) => {
56
+ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRoleState, addressState, taskIds, tagState, userGroupsState, }) => {
55
57
  const { sortKey, searchText } = taskListState.uiState;
56
58
  const sortOrder = (0, sortOrderPayload_1.getSortOrder)(taskListState.uiState.sortOrder);
57
59
  const tasks = taskIds
@@ -61,7 +63,17 @@ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRole
61
63
  const assigneeUsers = task.assignees
62
64
  .map((userId) => (0, userAndRole_1.getUserAndUserRole)(userState, userRoleState, addressState, userId))
63
65
  .filter((value) => value != null);
64
- return { ...task, assigneeUsers };
66
+ const firstUser = assigneeUsers[0]?.user;
67
+ const firstUserName = (firstUser != null ? (0, userSelector_1.getUserName)(firstUser) : '') ||
68
+ firstUser?.email ||
69
+ '';
70
+ const firstGroupName = task.groupAssignees
71
+ .map((gId) => userGroupsState.userGroupByUserGroupId[gId]?.name)
72
+ .find((name) => name != null && name !== '');
73
+ const firstAssigneeSortName = (firstUserName ||
74
+ firstGroupName ||
75
+ '').toLowerCase();
76
+ return { ...task, assigneeUsers, firstAssigneeSortName };
65
77
  }
66
78
  return undefined;
67
79
  })
@@ -70,7 +82,7 @@ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRole
70
82
  const sortedTaskList = sortTasksList(tagState, filteredTaskList, sortKey, sortOrder);
71
83
  return sortedTaskList;
72
84
  };
73
- const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState, }) => {
85
+ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
74
86
  const { taskGroupsIds } = taskGroupViewState;
75
87
  const taskGroupsWithTasksList = taskGroupsIds
76
88
  .map((taskGroupId) => {
@@ -84,6 +96,7 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
84
96
  addressState,
85
97
  taskIds,
86
98
  tagState,
99
+ userGroupsState,
87
100
  });
88
101
  if (taskGroup != null) {
89
102
  return {
@@ -118,7 +131,7 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
118
131
  }
119
132
  return sortedTaskGroupsWithTasksList;
120
133
  };
121
- const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
134
+ const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
122
135
  const assigneeGroups = Object.keys(taskListState.taskIdsByAssignees);
123
136
  const taskGroupsWithTasksList = assigneeGroups.map((groupKey) => {
124
137
  const taskIds = taskListState.taskIdsByAssignees[groupKey];
@@ -130,6 +143,7 @@ const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, us
130
143
  addressState,
131
144
  taskIds,
132
145
  tagState,
146
+ userGroupsState,
133
147
  });
134
148
  const assigneeIds = groupKey.split(',');
135
149
  const groupName = (0, userSelector_1.getUsersByUserIds)(userState, assigneeIds)
@@ -152,7 +166,7 @@ const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, us
152
166
  return taskGroupsWithTasksList;
153
167
  };
154
168
  exports.getTaskListGroupedByAssignees = getTaskListGroupedByAssignees;
155
- const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
169
+ const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
156
170
  const taskGroupsWithTasksList = taskState_1.ALL_PRIORITY_CODE.map((groupKey) => {
157
171
  const taskIds = taskListState.taskIdsByPriority[groupKey] ?? [];
158
172
  const tasksWithUserDetails = getTasksWithUserDetails({
@@ -163,6 +177,7 @@ const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, use
163
177
  addressState,
164
178
  taskIds,
165
179
  tagState,
180
+ userGroupsState,
166
181
  });
167
182
  return {
168
183
  groupName: taskDetailSelector_1.allTaskPriority.find((priority) => priority.code === groupKey)?.name ??
@@ -179,7 +194,7 @@ const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, use
179
194
  return taskGroupsWithTasksList;
180
195
  };
181
196
  exports.getTaskListGroupedByPriority = getTaskListGroupedByPriority;
182
- const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
197
+ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
183
198
  const taskGroupsWithTasksList = taskState_1.ALL_TASK_STATUS_CODE.map((groupKey) => {
184
199
  const taskIds = taskListState.taskIdsByStatus[groupKey] ?? [];
185
200
  const tasksWithUserDetails = getTasksWithUserDetails({
@@ -190,6 +205,7 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
190
205
  addressState,
191
206
  taskIds,
192
207
  tagState,
208
+ userGroupsState,
193
209
  });
194
210
  return {
195
211
  groupName: taskDetailSelector_1.allTaskStatus.find((taskStatus) => taskStatus.code === groupKey)
@@ -205,7 +221,7 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
205
221
  }
206
222
  return taskGroupsWithTasksList;
207
223
  };
208
- const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
224
+ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
209
225
  const tagGroups = Object.keys(taskListState.taskIdsByTags);
210
226
  const taskGroupsWithTasksList = tagGroups.map((groupKey) => {
211
227
  const taskIds = taskListState.taskIdsByTags[groupKey];
@@ -217,6 +233,7 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
217
233
  addressState,
218
234
  taskIds,
219
235
  tagState,
236
+ userGroupsState,
220
237
  });
221
238
  const tagIds = groupKey.split(',');
222
239
  const groupName = (0, tagSelector_1.getTagsByIds)(tagState, tagIds)
@@ -237,7 +254,7 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
237
254
  }
238
255
  return taskGroupsWithTasksList;
239
256
  };
240
- const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
257
+ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
241
258
  const taskGroupsWithTasksList = taskList_1.DUE_DATE_GROUP_KEYS.map((groupKey) => {
242
259
  const taskIds = taskListState.taskIdsByDueDate[groupKey];
243
260
  const tasksWithUserDetails = getTasksWithUserDetails({
@@ -248,6 +265,7 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
248
265
  addressState,
249
266
  taskIds,
250
267
  tagState,
268
+ userGroupsState,
251
269
  });
252
270
  return {
253
271
  groupName: groupKey,
@@ -262,7 +280,7 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
262
280
  }
263
281
  return taskGroupsWithTasksList;
264
282
  };
265
- const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState, }) => {
283
+ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState, userGroupsState, }) => {
266
284
  const { groupByKey } = taskListState.uiState;
267
285
  if (groupByKey === 'groupName') {
268
286
  return getTaskListGroupedByGroupName({
@@ -274,6 +292,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
274
292
  taskGroupState,
275
293
  taskGroupViewState,
276
294
  tagState,
295
+ userGroupsState,
277
296
  });
278
297
  }
279
298
  if (groupByKey === 'assignee') {
@@ -284,6 +303,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
284
303
  userRoleState,
285
304
  addressState,
286
305
  tagState,
306
+ userGroupsState,
287
307
  });
288
308
  }
289
309
  if (groupByKey === 'priority') {
@@ -294,6 +314,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
294
314
  userRoleState,
295
315
  addressState,
296
316
  tagState,
317
+ userGroupsState,
297
318
  });
298
319
  }
299
320
  if (groupByKey === 'status') {
@@ -304,6 +325,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
304
325
  userRoleState,
305
326
  addressState,
306
327
  tagState,
328
+ userGroupsState,
307
329
  });
308
330
  }
309
331
  if (groupByKey === 'tag') {
@@ -314,6 +336,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
314
336
  userRoleState,
315
337
  addressState,
316
338
  tagState,
339
+ userGroupsState,
317
340
  });
318
341
  }
319
342
  return getTaskListGroupedByDueDate({
@@ -323,6 +346,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
323
346
  userRoleState,
324
347
  addressState,
325
348
  tagState,
349
+ userGroupsState,
326
350
  });
327
351
  };
328
352
  exports.getAllTasks = (0, toolkit_1.createSelector)((state) => state.taskListState, (state) => state.taskState, (state) => state.userState, (state) => state.userRoleState, (state) => state.userListViewState, (state) => state.addressState, (state) => state.taskGroupState, (state) => state.taskGroupViewState, (state) => state.tagViewState, (state) => state.tagState, (state) => state.taskGroupTemplateState, (state) => state.taskGroupTemplateViewState, (state) => state.userGroupsState, (state) => state.userGroupListViewState, (_state, isTaskTemplatesEnabled) => isTaskTemplatesEnabled, (taskListState, taskState, userState, userRoleState, userListViewState, addressState, taskGroupState, taskGroupViewState, tagViewState, tagState, taskGroupTemplateState, taskGroupTemplateViewState, userGroupsState, userGroupListViewState, isTaskTemplatesEnabled) => {
@@ -336,6 +360,7 @@ exports.getAllTasks = (0, toolkit_1.createSelector)((state) => state.taskListSta
336
360
  taskGroupState,
337
361
  taskGroupViewState,
338
362
  tagState,
363
+ userGroupsState,
339
364
  });
340
365
  const fetchStateVariables = [
341
366
  taskListState,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.0.2-betaRR7",
3
+ "version": "5.0.2-betaRR9",
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",