@zeniai/client-epic-state 5.0.11-betaND1 → 5.0.11-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.
- package/lib/entity/file/fileState.d.ts +4 -4
- package/lib/entity/file/fileState.js +4 -0
- package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +2 -0
- package/lib/entity/task/taskPayload.d.ts +3 -1
- package/lib/entity/task/taskPayload.js +5 -3
- package/lib/entity/task/taskState.d.ts +3 -1
- package/lib/entity/transaction/stateTypes/attachment.d.ts +2 -2
- package/lib/epic.d.ts +3 -2
- package/lib/epic.js +3 -2
- package/lib/esm/entity/file/fileState.js +4 -0
- package/lib/esm/entity/snackbar/snackbarTypes.js +2 -0
- package/lib/esm/entity/task/taskPayload.js +5 -3
- package/lib/esm/epic.js +3 -2
- package/lib/esm/index.js +4 -4
- package/lib/esm/view/spendManagement/billPay/billDetailView/epics/fetchBillDetailEpic.js +5 -5
- package/lib/esm/view/taskManager/taskDetailView/epics/archiveTaskEpic.js +3 -0
- package/lib/esm/view/taskManager/taskDetailView/epics/deleteTaskEpic.js +5 -0
- package/lib/esm/view/taskManager/taskDetailView/epics/initializeTaskToLocalStoreEpic.js +1 -0
- package/lib/esm/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.js +1 -0
- package/lib/esm/view/taskManager/taskDetailView/epics/snoozeTaskEpic.js +65 -0
- package/lib/esm/view/taskManager/taskDetailView/epics/unsnoozeTaskEpic.js +56 -0
- package/lib/esm/view/taskManager/taskDetailView/taskDetail.js +4 -0
- package/lib/esm/view/taskManager/taskDetailView/taskDetailReducer.js +51 -1
- package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +15 -2
- package/lib/esm/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +56 -21
- package/lib/esm/view/taskManager/taskListView/epics/dragNDropTasksEpic.js +1 -0
- package/lib/esm/view/taskManager/taskListView/epics/fetchTaskListEpic.js +12 -5
- package/lib/esm/view/taskManager/taskListView/epics/updateTaskFromListViewEpic.js +3 -2
- package/lib/esm/view/taskManager/taskListView/taskList.js +7 -0
- package/lib/esm/view/taskManager/taskListView/taskListPayload.js +1 -5
- package/lib/esm/view/taskManager/taskListView/taskListReducer.js +89 -39
- package/lib/esm/view/taskManager/taskListView/taskListSelector.js +51 -65
- package/lib/index.d.ts +4 -4
- package/lib/index.js +9 -6
- package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/spendManagement/billPay/billDetailView/epics/fetchBillDetailEpic.js +5 -5
- package/lib/view/taskManager/taskDetailView/epics/archiveTaskEpic.d.ts +2 -1
- package/lib/view/taskManager/taskDetailView/epics/archiveTaskEpic.js +3 -0
- package/lib/view/taskManager/taskDetailView/epics/deleteTaskEpic.d.ts +2 -1
- package/lib/view/taskManager/taskDetailView/epics/deleteTaskEpic.js +5 -0
- package/lib/view/taskManager/taskDetailView/epics/initializeTaskToLocalStoreEpic.js +1 -0
- package/lib/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.js +1 -0
- package/lib/view/taskManager/taskDetailView/epics/snoozeTaskEpic.d.ts +9 -0
- package/lib/view/taskManager/taskDetailView/epics/snoozeTaskEpic.js +69 -0
- package/lib/view/taskManager/taskDetailView/epics/unsnoozeTaskEpic.d.ts +9 -0
- package/lib/view/taskManager/taskDetailView/epics/unsnoozeTaskEpic.js +60 -0
- package/lib/view/taskManager/taskDetailView/taskDetail.d.ts +2 -0
- package/lib/view/taskManager/taskDetailView/taskDetail.js +4 -0
- package/lib/view/taskManager/taskDetailView/taskDetailReducer.d.ts +10 -1
- package/lib/view/taskManager/taskDetailView/taskDetailReducer.js +52 -2
- package/lib/view/taskManager/taskDetailView/taskDetailSelector.d.ts +5 -0
- package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +15 -2
- package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.d.ts +6 -7
- package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +56 -22
- package/lib/view/taskManager/taskListView/epics/dragNDropTasksEpic.js +1 -0
- package/lib/view/taskManager/taskListView/epics/fetchTaskListEpic.js +12 -5
- package/lib/view/taskManager/taskListView/epics/updateTaskFromListViewEpic.js +3 -2
- package/lib/view/taskManager/taskListView/taskList.d.ts +14 -3
- package/lib/view/taskManager/taskListView/taskList.js +8 -1
- package/lib/view/taskManager/taskListView/taskListPayload.d.ts +4 -31
- package/lib/view/taskManager/taskListView/taskListPayload.js +0 -7
- package/lib/view/taskManager/taskListView/taskListReducer.d.ts +9 -9
- package/lib/view/taskManager/taskListView/taskListReducer.js +90 -40
- package/lib/view/taskManager/taskListView/taskListSelector.d.ts +10 -7
- package/lib/view/taskManager/taskListView/taskListSelector.js +51 -65
- package/package.json +2 -2
- package/lib/esm/view/taskManager/taskListView/epics/createSubtaskFromListViewEpic.js +0 -31
- package/lib/view/taskManager/taskListView/epics/createSubtaskFromListViewEpic.d.ts +0 -8
- package/lib/view/taskManager/taskListView/epics/createSubtaskFromListViewEpic.js +0 -35
|
@@ -8,9 +8,10 @@ export const updateTaskFromListViewEpic = (actions$, state$, zeniAPI) => actions
|
|
|
8
8
|
const state = state$.value;
|
|
9
9
|
const { task, updates } = action.payload;
|
|
10
10
|
const taskId = task.id;
|
|
11
|
-
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
12
|
+
const { snoozed_until: _snoozedUntil, ...taskData } = getTaskPayload(state, taskId, updates);
|
|
12
13
|
return zeniAPI
|
|
13
|
-
.putAndGetJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks/${taskId}`,
|
|
14
|
+
.putAndGetJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks/${taskId}`, taskData)
|
|
14
15
|
.pipe(mergeMap((response) => {
|
|
15
16
|
if (isSuccessResponse(response) && response.data != null) {
|
|
16
17
|
return from([
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { stringToUnion, stringToUnionStrict, } from '../../../commonStateTypes/stringToUnion';
|
|
2
|
+
export const ALL_TASK_LIST_TABS = [
|
|
3
|
+
'live',
|
|
4
|
+
'archived',
|
|
5
|
+
'deleted',
|
|
6
|
+
'snoozed',
|
|
7
|
+
];
|
|
2
8
|
export const DUE_DATE_GROUP_KEYS = [
|
|
3
9
|
'overdue',
|
|
4
10
|
'today',
|
|
@@ -26,6 +32,7 @@ const ALL_TASK_LIST_SORT_KEYS = [
|
|
|
26
32
|
'status',
|
|
27
33
|
'priority',
|
|
28
34
|
'timeSpent',
|
|
35
|
+
'visibility',
|
|
29
36
|
];
|
|
30
37
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
31
38
|
const toTaskListSortKeyType = (v) => stringToUnion(v, ALL_TASK_LIST_SORT_KEYS);
|
|
@@ -29,8 +29,23 @@ const initialTaskIdsByDueDate = {
|
|
|
29
29
|
today: [],
|
|
30
30
|
upcoming: [],
|
|
31
31
|
};
|
|
32
|
+
const initialTabData = {
|
|
33
|
+
taskIds: [],
|
|
34
|
+
taskIdsByAssignees: {},
|
|
35
|
+
taskIdsByDueDate: { ...initialTaskIdsByDueDate },
|
|
36
|
+
taskIdsByGroupsIds: {},
|
|
37
|
+
taskIdsByPriority: { ...initialTaskIdsByPriority },
|
|
38
|
+
taskIdsByStatus: { ...initialTaskIdsByStatus },
|
|
39
|
+
taskIdsByTags: {},
|
|
40
|
+
};
|
|
32
41
|
export const initialState = {
|
|
33
|
-
|
|
42
|
+
currentTab: 'live',
|
|
43
|
+
byTab: {
|
|
44
|
+
live: { ...initialTabData },
|
|
45
|
+
archived: { ...initialTabData },
|
|
46
|
+
deleted: { ...initialTabData },
|
|
47
|
+
snoozed: { ...initialTabData },
|
|
48
|
+
},
|
|
34
49
|
taskIds: [],
|
|
35
50
|
taskIdsByGroupsIds: {},
|
|
36
51
|
taskIdsByPriority: initialTaskIdsByPriority,
|
|
@@ -87,18 +102,30 @@ const taskList = createSlice({
|
|
|
87
102
|
draft.error = undefined;
|
|
88
103
|
},
|
|
89
104
|
updateTaskList(draft, action) {
|
|
90
|
-
const { data } = action.payload;
|
|
105
|
+
const { data, archived, deleted, snoozed } = action.payload;
|
|
91
106
|
draft.fetchState = 'Completed';
|
|
92
107
|
draft.error = undefined;
|
|
93
|
-
|
|
94
|
-
const
|
|
95
|
-
draft.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
108
|
+
// Group live tasks
|
|
109
|
+
const liveGrouped = getGroupedTaskIds(data);
|
|
110
|
+
draft.byTab.live = toTabData(liveGrouped);
|
|
111
|
+
// Group other tabs if provided
|
|
112
|
+
if (archived != null) {
|
|
113
|
+
draft.byTab.archived = toTabData(getGroupedTaskIds(archived));
|
|
114
|
+
}
|
|
115
|
+
if (deleted != null) {
|
|
116
|
+
draft.byTab.deleted = toTabData(getGroupedTaskIds(deleted));
|
|
117
|
+
}
|
|
118
|
+
if (snoozed != null) {
|
|
119
|
+
draft.byTab.snoozed = toTabData(getGroupedTaskIds(snoozed));
|
|
120
|
+
}
|
|
121
|
+
// Copy active tab data to top-level fields
|
|
122
|
+
const activeTabData = draft.byTab[draft.currentTab];
|
|
123
|
+
copyTabDataToTopLevel(draft, activeTabData);
|
|
124
|
+
},
|
|
125
|
+
updateTaskListTab(draft, action) {
|
|
126
|
+
draft.currentTab = action.payload;
|
|
127
|
+
const activeTabData = draft.byTab[action.payload];
|
|
128
|
+
copyTabDataToTopLevel(draft, activeTabData);
|
|
102
129
|
},
|
|
103
130
|
initiateTaskListLocalData(draft, action) {
|
|
104
131
|
const { taskGroupById } = action.payload;
|
|
@@ -186,10 +213,13 @@ const taskList = createSlice({
|
|
|
186
213
|
},
|
|
187
214
|
},
|
|
188
215
|
updateTasksListOnBulkUpdateTasksSuccess(draft, action) {
|
|
189
|
-
const { taskIds, groupId } = action.payload;
|
|
216
|
+
const { taskIds, groupId, removeFromList } = action.payload;
|
|
190
217
|
draft.updateTasksFetchState.fetchState = 'Completed';
|
|
191
218
|
draft.updateTasksFetchState.error = undefined;
|
|
192
|
-
if (
|
|
219
|
+
if (removeFromList) {
|
|
220
|
+
removeTaskIds(draft, taskIds);
|
|
221
|
+
}
|
|
222
|
+
else if (groupId != null) {
|
|
193
223
|
const { groupByKey } = draft.uiState;
|
|
194
224
|
if (groupByKey === 'groupName') {
|
|
195
225
|
Object.keys(draft.taskIdsByGroupsIds).forEach((gId) => {
|
|
@@ -342,17 +372,6 @@ const taskList = createSlice({
|
|
|
342
372
|
[taskGroupId]: taskGroupName,
|
|
343
373
|
};
|
|
344
374
|
},
|
|
345
|
-
createSubtaskFromListView: {
|
|
346
|
-
reducer(draft) {
|
|
347
|
-
draft.updateTasksFetchState = {
|
|
348
|
-
fetchState: 'In-Progress',
|
|
349
|
-
error: undefined,
|
|
350
|
-
};
|
|
351
|
-
},
|
|
352
|
-
prepare(payload) {
|
|
353
|
-
return { payload };
|
|
354
|
-
},
|
|
355
|
-
},
|
|
356
375
|
updateTaskFromListView(draft, action) {
|
|
357
376
|
const { updates, task } = action.payload;
|
|
358
377
|
const taskId = task.id;
|
|
@@ -409,13 +428,6 @@ const taskList = createSlice({
|
|
|
409
428
|
}
|
|
410
429
|
}
|
|
411
430
|
},
|
|
412
|
-
updateTasksListOnCreateSubtaskFromListViewSuccess(draft, action) {
|
|
413
|
-
const { parentTaskId, subtaskId } = action.payload;
|
|
414
|
-
draft.updateTasksFetchState.fetchState = 'Completed';
|
|
415
|
-
draft.updateTasksFetchState.error = undefined;
|
|
416
|
-
const existing = draft.subtaskIdsByParentTaskId[parentTaskId] ?? [];
|
|
417
|
-
draft.subtaskIdsByParentTaskId[parentTaskId] = [...existing, subtaskId];
|
|
418
|
-
},
|
|
419
431
|
updateTasksListOnUpdateTaskSuccess(draft) {
|
|
420
432
|
draft.updateTasksFetchState.fetchState = 'Completed';
|
|
421
433
|
draft.updateTasksFetchState.error = undefined;
|
|
@@ -424,12 +436,15 @@ const taskList = createSlice({
|
|
|
424
436
|
draft.updateTasksFetchState.fetchState = 'Error';
|
|
425
437
|
draft.updateTasksFetchState.error = action.payload.error;
|
|
426
438
|
},
|
|
439
|
+
removeTaskFromList(draft, action) {
|
|
440
|
+
removeTaskIds(draft, [action.payload]);
|
|
441
|
+
},
|
|
427
442
|
clearTaskList(draft) {
|
|
428
443
|
Object.assign(draft, initialState);
|
|
429
444
|
},
|
|
430
445
|
},
|
|
431
446
|
});
|
|
432
|
-
export const { fetchTaskListPage, fetchTaskList, updateTaskList, updateTaskListFetchStatus, updateTaskListSearchText, updateTaskListUIState, updateTaskFilters, updateTaskListOnNewGroupCreationSuccess, bulkUpdateTaskList, updateTasksListOnBulkUpdateTasksSuccess, updateTasksListOnBulkUpdateTasksFailure, initiateTaskListLocalData, updateTaskListLocalData, updateTaskListOnTaskGroupDeletion, dragNDropTasks, updateTaskListOnNewTaskCreationSuccess, updateTaskListOnTaskGroupNameUpdate,
|
|
447
|
+
export const { fetchTaskListPage, fetchTaskList, updateTaskList, updateTaskListTab, updateTaskListFetchStatus, updateTaskListSearchText, updateTaskListUIState, updateTaskFilters, updateTaskListOnNewGroupCreationSuccess, bulkUpdateTaskList, updateTasksListOnBulkUpdateTasksSuccess, updateTasksListOnBulkUpdateTasksFailure, initiateTaskListLocalData, updateTaskListLocalData, updateTaskListOnTaskGroupDeletion, dragNDropTasks, updateTaskListOnNewTaskCreationSuccess, updateTaskListOnTaskGroupNameUpdate, updateTaskFromListView, updateTasksListOnUpdateTaskSuccess, updateTasksListOnUpdateTaskFailure, updateTaskListOnCreateTaskFromTemplateSuccess, removeTaskFromList, clearTaskList, } = taskList.actions;
|
|
433
448
|
export default taskList.reducer;
|
|
434
449
|
/**
|
|
435
450
|
* helpers
|
|
@@ -508,14 +523,49 @@ const getTagsGroupKey = (tags) => {
|
|
|
508
523
|
tagIds.sort();
|
|
509
524
|
return tagIds.join(',');
|
|
510
525
|
};
|
|
511
|
-
const
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
526
|
+
const toTabData = (grouped) => ({
|
|
527
|
+
taskIds: grouped.taskIds,
|
|
528
|
+
taskIdsByAssignees: grouped.taskIdsByAssignees,
|
|
529
|
+
taskIdsByDueDate: grouped.taskIdsByDueDate,
|
|
530
|
+
taskIdsByGroupsIds: grouped.taskIdsByGroupIds,
|
|
531
|
+
taskIdsByPriority: grouped.taskIdsGroupedByPriority,
|
|
532
|
+
taskIdsByStatus: grouped.taskIdsGroupedByStatus,
|
|
533
|
+
taskIdsByTags: grouped.taskIdsByTags,
|
|
534
|
+
});
|
|
535
|
+
const copyTabDataToTopLevel = (draft, tabData) => {
|
|
536
|
+
draft.taskIds = tabData.taskIds;
|
|
537
|
+
draft.taskIdsByGroupsIds = tabData.taskIdsByGroupsIds;
|
|
538
|
+
draft.taskIdsByPriority = tabData.taskIdsByPriority;
|
|
539
|
+
draft.taskIdsByStatus = tabData.taskIdsByStatus;
|
|
540
|
+
draft.taskIdsByAssignees = tabData.taskIdsByAssignees;
|
|
541
|
+
draft.taskIdsByDueDate = tabData.taskIdsByDueDate;
|
|
542
|
+
draft.taskIdsByTags = tabData.taskIdsByTags;
|
|
543
|
+
};
|
|
544
|
+
const removeIdsFromTabData = (tabData, taskIds) => {
|
|
545
|
+
const isRemoved = (id) => taskIds.includes(id);
|
|
546
|
+
tabData.taskIds = tabData.taskIds.filter((id) => !isRemoved(id));
|
|
547
|
+
Object.keys(tabData.taskIdsByGroupsIds).forEach((gId) => {
|
|
548
|
+
tabData.taskIdsByGroupsIds[gId] = tabData.taskIdsByGroupsIds[gId].filter((id) => !isRemoved(id));
|
|
549
|
+
});
|
|
550
|
+
Object.keys(tabData.taskIdsByPriority).forEach((key) => {
|
|
551
|
+
tabData.taskIdsByPriority[key] = tabData.taskIdsByPriority[key].filter((id) => !isRemoved(id));
|
|
552
|
+
});
|
|
553
|
+
Object.keys(tabData.taskIdsByStatus).forEach((key) => {
|
|
554
|
+
tabData.taskIdsByStatus[key] = tabData.taskIdsByStatus[key].filter((id) => !isRemoved(id));
|
|
517
555
|
});
|
|
518
|
-
|
|
556
|
+
Object.keys(tabData.taskIdsByDueDate).forEach((key) => {
|
|
557
|
+
tabData.taskIdsByDueDate[key] = tabData.taskIdsByDueDate[key].filter((id) => !isRemoved(id));
|
|
558
|
+
});
|
|
559
|
+
Object.keys(tabData.taskIdsByAssignees).forEach((key) => {
|
|
560
|
+
tabData.taskIdsByAssignees[key] = tabData.taskIdsByAssignees[key].filter((id) => !isRemoved(id));
|
|
561
|
+
});
|
|
562
|
+
Object.keys(tabData.taskIdsByTags).forEach((key) => {
|
|
563
|
+
tabData.taskIdsByTags[key] = tabData.taskIdsByTags[key].filter((id) => !isRemoved(id));
|
|
564
|
+
});
|
|
565
|
+
};
|
|
566
|
+
const removeTaskIds = (draft, taskIds) => {
|
|
567
|
+
removeIdsFromTabData(draft, taskIds);
|
|
568
|
+
removeIdsFromTabData(draft.byTab[draft.currentTab], taskIds);
|
|
519
569
|
};
|
|
520
570
|
const getGroupedTaskIds = (tasks) => {
|
|
521
571
|
const taskIds = [];
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { createSelector } from '@reduxjs/toolkit';
|
|
2
|
-
import isEqual from 'lodash/isEqual';
|
|
3
2
|
import orderBy from 'lodash/orderBy';
|
|
4
3
|
import { getSortOrder, } from '../../../commonPayloadTypes/sortOrderPayload';
|
|
5
4
|
import { reduceAnyFetchState } from '../../../commonStateTypes/reduceFetchState';
|
|
@@ -15,11 +14,6 @@ import { getUserGroupList } from '../../userGroupListView/userGroupListViewSelec
|
|
|
15
14
|
import { getUserList, } from '../../userListView/userListViewSelector';
|
|
16
15
|
import { allTaskPriority, allTaskStatus, } from '../taskDetailView/taskDetailSelector';
|
|
17
16
|
import { DUE_DATE_GROUP_KEYS, } from './taskList';
|
|
18
|
-
import { initialState } from './taskListReducer';
|
|
19
|
-
const isDefaultFilters = (taskListState) => {
|
|
20
|
-
return (isEqual(taskListState.filters, initialState.filters) &&
|
|
21
|
-
initialState.uiState.searchText === taskListState.uiState.searchText);
|
|
22
|
-
};
|
|
23
17
|
const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
|
|
24
18
|
const tasksInOrder = orderBy(tasksList, (task) => {
|
|
25
19
|
const tagsByIds = getTagsByIds(tagState, task.tagIds);
|
|
@@ -34,8 +28,12 @@ const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
|
|
|
34
28
|
return task.status.name;
|
|
35
29
|
case 'priority':
|
|
36
30
|
return ALL_PRIORITY_CODE.indexOf(task.priority.code);
|
|
31
|
+
case 'assignee':
|
|
32
|
+
return task.firstAssigneeSortName;
|
|
37
33
|
case 'timeSpent':
|
|
38
34
|
return task.timeSpent;
|
|
35
|
+
case 'visibility':
|
|
36
|
+
return task.isPrivate === true ? 1 : 0;
|
|
39
37
|
case 'name':
|
|
40
38
|
default:
|
|
41
39
|
return task.name.toLowerCase();
|
|
@@ -43,39 +41,25 @@ const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
|
|
|
43
41
|
}, sortOrder);
|
|
44
42
|
return tasksInOrder;
|
|
45
43
|
};
|
|
46
|
-
const
|
|
47
|
-
...task,
|
|
48
|
-
assigneeUsers: task.assignees
|
|
49
|
-
.map((userId) => getUserAndUserRole(userState, userRoleState, addressState, userId))
|
|
50
|
-
.filter((value) => value != null),
|
|
51
|
-
subtasks: [],
|
|
52
|
-
});
|
|
53
|
-
const attachSubtasksForTask = (taskWithAssignees, taskListState, taskState, userState, userRoleState, addressState) => {
|
|
54
|
-
const subtaskIds = taskListState.subtaskIdsByParentTaskId[taskWithAssignees.id] ?? [];
|
|
55
|
-
if (subtaskIds.length === 0) {
|
|
56
|
-
return { ...taskWithAssignees, subtasks: [] };
|
|
57
|
-
}
|
|
58
|
-
const subtasks = subtaskIds
|
|
59
|
-
.map((subtaskId) => {
|
|
60
|
-
const subtask = getTaskById(taskState, subtaskId);
|
|
61
|
-
if (subtask == null) {
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
const withAssignees = taskToTaskWithUserDetails(subtask, userState, userRoleState, addressState);
|
|
65
|
-
return attachSubtasksForTask(withAssignees, taskListState, taskState, userState, userRoleState, addressState);
|
|
66
|
-
})
|
|
67
|
-
.filter((value) => value != null);
|
|
68
|
-
return { ...taskWithAssignees, subtasks };
|
|
69
|
-
};
|
|
70
|
-
const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRoleState, addressState, taskIds, tagState, }) => {
|
|
44
|
+
const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRoleState, addressState, taskIds, tagState, userGroupsState, }) => {
|
|
71
45
|
const { sortKey, searchText } = taskListState.uiState;
|
|
72
46
|
const sortOrder = getSortOrder(taskListState.uiState.sortOrder);
|
|
73
47
|
const tasks = taskIds
|
|
74
48
|
.map((taskId) => {
|
|
75
49
|
const task = getTaskById(taskState, taskId);
|
|
76
50
|
if (task != null) {
|
|
77
|
-
const
|
|
78
|
-
|
|
51
|
+
const assigneeUsers = task.assignees
|
|
52
|
+
.map((userId) => getUserAndUserRole(userState, userRoleState, addressState, userId))
|
|
53
|
+
.filter((value) => value != null);
|
|
54
|
+
const firstUser = assigneeUsers[0]?.user;
|
|
55
|
+
const firstUserName = (firstUser != null ? getUserName(firstUser) : '') ||
|
|
56
|
+
firstUser?.email ||
|
|
57
|
+
'';
|
|
58
|
+
const firstGroupName = task.groupAssignees
|
|
59
|
+
.map((gId) => userGroupsState.userGroupByUserGroupId[gId]?.name)
|
|
60
|
+
.find((name) => name != null && name !== '');
|
|
61
|
+
const firstAssigneeSortName = (firstUserName !== '' ? firstUserName : (firstGroupName ?? '')).toLowerCase();
|
|
62
|
+
return { ...task, assigneeUsers, firstAssigneeSortName };
|
|
79
63
|
}
|
|
80
64
|
return undefined;
|
|
81
65
|
})
|
|
@@ -84,7 +68,7 @@ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRole
|
|
|
84
68
|
const sortedTaskList = sortTasksList(tagState, filteredTaskList, sortKey, sortOrder);
|
|
85
69
|
return sortedTaskList;
|
|
86
70
|
};
|
|
87
|
-
const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState, }) => {
|
|
71
|
+
const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
88
72
|
const { taskGroupsIds } = taskGroupViewState;
|
|
89
73
|
const taskGroupsWithTasksList = taskGroupsIds
|
|
90
74
|
.map((taskGroupId) => {
|
|
@@ -98,6 +82,7 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
|
|
|
98
82
|
addressState,
|
|
99
83
|
taskIds,
|
|
100
84
|
tagState,
|
|
85
|
+
userGroupsState,
|
|
101
86
|
});
|
|
102
87
|
if (taskGroup != null) {
|
|
103
88
|
return {
|
|
@@ -126,12 +111,9 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
|
|
|
126
111
|
if (defaultTaskGroup != null) {
|
|
127
112
|
sortedTaskGroupsWithTasksList.push(defaultTaskGroup);
|
|
128
113
|
}
|
|
129
|
-
|
|
130
|
-
return sortedTaskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
131
|
-
}
|
|
132
|
-
return sortedTaskGroupsWithTasksList;
|
|
114
|
+
return sortedTaskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
133
115
|
};
|
|
134
|
-
export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
116
|
+
export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
135
117
|
const assigneeGroups = Object.keys(taskListState.taskIdsByAssignees);
|
|
136
118
|
const taskGroupsWithTasksList = assigneeGroups.map((groupKey) => {
|
|
137
119
|
const taskIds = taskListState.taskIdsByAssignees[groupKey];
|
|
@@ -143,6 +125,7 @@ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userSt
|
|
|
143
125
|
addressState,
|
|
144
126
|
taskIds,
|
|
145
127
|
tagState,
|
|
128
|
+
userGroupsState,
|
|
146
129
|
});
|
|
147
130
|
const assigneeIds = groupKey.split(',');
|
|
148
131
|
const groupName = getUsersByUserIds(userState, assigneeIds)
|
|
@@ -158,12 +141,9 @@ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userSt
|
|
|
158
141
|
tasks: tasksWithUserDetails,
|
|
159
142
|
};
|
|
160
143
|
});
|
|
161
|
-
|
|
162
|
-
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
163
|
-
}
|
|
164
|
-
return taskGroupsWithTasksList;
|
|
144
|
+
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
165
145
|
};
|
|
166
|
-
export const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
146
|
+
export const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
167
147
|
const taskGroupsWithTasksList = ALL_PRIORITY_CODE.map((groupKey) => {
|
|
168
148
|
const taskIds = taskListState.taskIdsByPriority[groupKey] ?? [];
|
|
169
149
|
const tasksWithUserDetails = getTasksWithUserDetails({
|
|
@@ -174,6 +154,7 @@ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userSta
|
|
|
174
154
|
addressState,
|
|
175
155
|
taskIds,
|
|
176
156
|
tagState,
|
|
157
|
+
userGroupsState,
|
|
177
158
|
});
|
|
178
159
|
return {
|
|
179
160
|
groupName: allTaskPriority.find((priority) => priority.code === groupKey)?.name ??
|
|
@@ -183,12 +164,9 @@ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userSta
|
|
|
183
164
|
tasks: tasksWithUserDetails,
|
|
184
165
|
};
|
|
185
166
|
});
|
|
186
|
-
|
|
187
|
-
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
188
|
-
}
|
|
189
|
-
return taskGroupsWithTasksList;
|
|
167
|
+
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
190
168
|
};
|
|
191
|
-
const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
169
|
+
const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
192
170
|
const taskGroupsWithTasksList = ALL_TASK_STATUS_CODE.map((groupKey) => {
|
|
193
171
|
const taskIds = taskListState.taskIdsByStatus[groupKey] ?? [];
|
|
194
172
|
const tasksWithUserDetails = getTasksWithUserDetails({
|
|
@@ -199,6 +177,7 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
|
|
|
199
177
|
addressState,
|
|
200
178
|
taskIds,
|
|
201
179
|
tagState,
|
|
180
|
+
userGroupsState,
|
|
202
181
|
});
|
|
203
182
|
return {
|
|
204
183
|
groupName: allTaskStatus.find((taskStatus) => taskStatus.code === groupKey)
|
|
@@ -208,12 +187,9 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
|
|
|
208
187
|
tasks: tasksWithUserDetails,
|
|
209
188
|
};
|
|
210
189
|
});
|
|
211
|
-
|
|
212
|
-
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
213
|
-
}
|
|
214
|
-
return taskGroupsWithTasksList;
|
|
190
|
+
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
215
191
|
};
|
|
216
|
-
const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
192
|
+
const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
217
193
|
const tagGroups = Object.keys(taskListState.taskIdsByTags);
|
|
218
194
|
const taskGroupsWithTasksList = tagGroups.map((groupKey) => {
|
|
219
195
|
const taskIds = taskListState.taskIdsByTags[groupKey];
|
|
@@ -225,6 +201,7 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
|
|
|
225
201
|
addressState,
|
|
226
202
|
taskIds,
|
|
227
203
|
tagState,
|
|
204
|
+
userGroupsState,
|
|
228
205
|
});
|
|
229
206
|
const tagIds = groupKey.split(',');
|
|
230
207
|
const groupName = getTagsByIds(tagState, tagIds)
|
|
@@ -239,12 +216,9 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
|
|
|
239
216
|
tasks: tasksWithUserDetails,
|
|
240
217
|
};
|
|
241
218
|
});
|
|
242
|
-
|
|
243
|
-
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
244
|
-
}
|
|
245
|
-
return taskGroupsWithTasksList;
|
|
219
|
+
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
246
220
|
};
|
|
247
|
-
const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
221
|
+
const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
248
222
|
const taskGroupsWithTasksList = DUE_DATE_GROUP_KEYS.map((groupKey) => {
|
|
249
223
|
const taskIds = taskListState.taskIdsByDueDate[groupKey];
|
|
250
224
|
const tasksWithUserDetails = getTasksWithUserDetails({
|
|
@@ -255,6 +229,7 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
|
|
|
255
229
|
addressState,
|
|
256
230
|
taskIds,
|
|
257
231
|
tagState,
|
|
232
|
+
userGroupsState,
|
|
258
233
|
});
|
|
259
234
|
return {
|
|
260
235
|
groupName: groupKey,
|
|
@@ -263,12 +238,9 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
|
|
|
263
238
|
tasks: tasksWithUserDetails,
|
|
264
239
|
};
|
|
265
240
|
});
|
|
266
|
-
|
|
267
|
-
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
268
|
-
}
|
|
269
|
-
return taskGroupsWithTasksList;
|
|
241
|
+
return taskGroupsWithTasksList.filter((group) => group.tasks.length > 0);
|
|
270
242
|
};
|
|
271
|
-
const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState, }) => {
|
|
243
|
+
const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState, userGroupsState, }) => {
|
|
272
244
|
const { groupByKey } = taskListState.uiState;
|
|
273
245
|
if (groupByKey === 'groupName') {
|
|
274
246
|
return getTaskListGroupedByGroupName({
|
|
@@ -280,6 +252,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
280
252
|
taskGroupState,
|
|
281
253
|
taskGroupViewState,
|
|
282
254
|
tagState,
|
|
255
|
+
userGroupsState,
|
|
283
256
|
});
|
|
284
257
|
}
|
|
285
258
|
if (groupByKey === 'assignee') {
|
|
@@ -290,6 +263,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
290
263
|
userRoleState,
|
|
291
264
|
addressState,
|
|
292
265
|
tagState,
|
|
266
|
+
userGroupsState,
|
|
293
267
|
});
|
|
294
268
|
}
|
|
295
269
|
if (groupByKey === 'priority') {
|
|
@@ -300,6 +274,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
300
274
|
userRoleState,
|
|
301
275
|
addressState,
|
|
302
276
|
tagState,
|
|
277
|
+
userGroupsState,
|
|
303
278
|
});
|
|
304
279
|
}
|
|
305
280
|
if (groupByKey === 'status') {
|
|
@@ -310,6 +285,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
310
285
|
userRoleState,
|
|
311
286
|
addressState,
|
|
312
287
|
tagState,
|
|
288
|
+
userGroupsState,
|
|
313
289
|
});
|
|
314
290
|
}
|
|
315
291
|
if (groupByKey === 'tag') {
|
|
@@ -320,6 +296,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
320
296
|
userRoleState,
|
|
321
297
|
addressState,
|
|
322
298
|
tagState,
|
|
299
|
+
userGroupsState,
|
|
323
300
|
});
|
|
324
301
|
}
|
|
325
302
|
return getTaskListGroupedByDueDate({
|
|
@@ -329,6 +306,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
329
306
|
userRoleState,
|
|
330
307
|
addressState,
|
|
331
308
|
tagState,
|
|
309
|
+
userGroupsState,
|
|
332
310
|
});
|
|
333
311
|
};
|
|
334
312
|
export const getAllTasks = 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) => {
|
|
@@ -342,6 +320,7 @@ export const getAllTasks = createSelector((state) => state.taskListState, (state
|
|
|
342
320
|
taskGroupState,
|
|
343
321
|
taskGroupViewState,
|
|
344
322
|
tagState,
|
|
323
|
+
userGroupsState,
|
|
345
324
|
});
|
|
346
325
|
const fetchStateVariables = [
|
|
347
326
|
taskListState,
|
|
@@ -353,10 +332,17 @@ export const getAllTasks = createSelector((state) => state.taskListState, (state
|
|
|
353
332
|
}
|
|
354
333
|
const { fetchState, error } = reduceAnyFetchState(fetchStateVariables);
|
|
355
334
|
const taskGroupTemplates = getTaskGroupTemplateByIds(taskGroupTemplateState, taskGroupTemplateViewState.taskGroupTemplateIds);
|
|
335
|
+
const tabCounts = {
|
|
336
|
+
live: taskListState.byTab.live.taskIds.length,
|
|
337
|
+
archived: taskListState.byTab.archived.taskIds.length,
|
|
338
|
+
deleted: taskListState.byTab.deleted.taskIds.length,
|
|
339
|
+
snoozed: taskListState.byTab.snoozed.taskIds.length,
|
|
340
|
+
};
|
|
356
341
|
return {
|
|
342
|
+
currentTab: taskListState.currentTab,
|
|
343
|
+
tabCounts,
|
|
357
344
|
uiState: taskListState.uiState,
|
|
358
345
|
filters: taskListState.filters,
|
|
359
|
-
subtaskIdsByParentTaskId: taskListState.subtaskIdsByParentTaskId,
|
|
360
346
|
taskGroupTemplates,
|
|
361
347
|
fetchState: fetchState,
|
|
362
348
|
userList: getUserList(userState, userRoleState, userListViewState, 'taskManagerCandidate'),
|
package/lib/index.d.ts
CHANGED
|
@@ -537,12 +537,12 @@ import { createTag, deleteTag, fetchTagList } from './view/tagView/tagViewReduce
|
|
|
537
537
|
import { TagViewSelectorView, getAllTags } from './view/tagView/tagViewSelector';
|
|
538
538
|
import { TagViewState } from './view/tagView/tagViewState';
|
|
539
539
|
import { EditTaskLocalData, initialTaskDetail, initialTaskDetailLocalData } from './view/taskManager/taskDetailView/taskDetail';
|
|
540
|
-
import { archiveTask, deleteTask, discardTaskUpdatesInLocalStore, fetchTaskDetailPage, saveTaskDetail, saveTaskUpdatesToLocalStore } from './view/taskManager/taskDetailView/taskDetailReducer';
|
|
540
|
+
import { archiveTask, deleteTask, discardTaskUpdatesInLocalStore, fetchTaskDetailPage, saveTaskDetail, saveTaskUpdatesToLocalStore, snoozeTask, unsnoozeTask } from './view/taskManager/taskDetailView/taskDetailReducer';
|
|
541
541
|
import { TaskDetailSelectorView, allTaskPriority, allTaskStatus, getTaskDetail } from './view/taskManager/taskDetailView/taskDetailSelector';
|
|
542
542
|
import { createTaskFromTaskGroupTemplate } from './view/taskManager/taskGroupTemplateView/taskGroupTemplateViewReducer';
|
|
543
543
|
import { createNewTaskGroup, deleteTaskGroup, fetchAllTaskGroups, updateTaskGroupName } from './view/taskManager/taskGroupView/taskGroupViewReducer';
|
|
544
|
-
import { DueDateGroupKey, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CATEGORIES, TaskFilterCategory, TaskGroupKey, TaskListFilterCategoryField, TaskListFilters, TaskListLocalData, TaskListUIState, TaskListViewSortKey, toDueDateGroupKeyType, toTaskListGroupByKeyType, toTaskListGroupByKeyTypeStrict } from './view/taskManager/taskListView/taskList';
|
|
545
|
-
import { bulkUpdateTaskList,
|
|
544
|
+
import { DueDateGroupKey, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CATEGORIES, TaskFilterCategory, TaskGroupKey, TaskListFilterCategoryField, TaskListFilters, TaskListLocalData, TaskListUIState, TaskListViewSortKey, toDueDateGroupKeyType, toTaskListGroupByKeyType, toTaskListGroupByKeyTypeStrict, ALL_TASK_LIST_TABS, TaskListTab } from './view/taskManager/taskListView/taskList';
|
|
545
|
+
import { bulkUpdateTaskList, dragNDropTasks, fetchTaskListPage, initiateTaskListLocalData, removeTaskFromList, updateTaskFilters, updateTaskFromListView, updateTaskListLocalData, updateTaskListSearchText, updateTaskListTab, updateTaskListUIState } from './view/taskManager/taskListView/taskListReducer';
|
|
546
546
|
import { TaskGroupWithTasksList, TaskListSelectorView, TaskWithUserDetails, getAllTasks } from './view/taskManager/taskListView/taskListSelector';
|
|
547
547
|
import { getDueDateValueFromDueDateGroupId, getTaskUpdates } from './view/taskManager/taskListView/taskListViewHelpers';
|
|
548
548
|
import { fetchTasksCard } from './view/tasksCard/tasksCardReducer';
|
|
@@ -847,7 +847,7 @@ export { fetchGlobalMerchantRecommendation, createGlobalMerchant, updateCreateGl
|
|
|
847
847
|
export { approveVendorGlobalReview, rejectVendorGlobalReview, fetchVendorGlobalReviewView, updateSelectedGlobalMerchant, updateVendorGlobalReviewViewUIState, getVendorGlobalReviewView, getTenantMerchantByMerchantId, toVendorGlobalReviewColumnSortKeyType, VendorGlobalReview, VendorGlobalReviewViewUIState, VendorGlobalReviewViewColumnSortKey, VendorGlobalReviewViewSelectorView, VendorGlobalReviewViewState, VendorGlobalReviewViewLocalData, updateVendorGlobalReviewViewLocalData, GlobalReviewPageCurrentSelectionByColumn, GlobalRecommendationFetchSource, };
|
|
848
848
|
export { fetchArAging, updateArAgingUIState, fetchArAgingDetail, updateArAgingDetailUIState, ArAgingReport, ArAgingDetail, NestedAgingBalancesByCustomer, getArAgingReport, getArAgingDetailForCustomer, updateArAgingNodeCollapseState, };
|
|
849
849
|
export { toRecurringBillFrequency, toRecurringBillFrequencyStrict, RecurringBillFrequency, RecurringBillDetail, RecurringBillConfig, RecurringBillStatus, RecurringBillPaymentStatus, };
|
|
850
|
-
export { Task, TaskListSelectorView, TaskWithUserDetails, TaskListViewSortKey, TaskListUIState, TaskDetailSelectorView, EditTaskLocalData, TaskStatusCodeType, PriorityCodeType, getTaskGroupById, TaskStatus, TaskPriority, TaskCodeType, getAllTasks, fetchTaskListPage, getTaskDetail, fetchTaskDetailPage, saveTaskUpdatesToLocalStore, saveTaskDetail, archiveTask, updateTaskListSearchText, updateTaskListUIState, allTaskStatus, allTaskPriority, TaskListFilters, updateTaskFilters, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CATEGORIES, TaskListFilterCategoryField, deleteTask, discardTaskUpdatesInLocalStore, TaskFilterCategory, TaskType, TaskGroupWithTasksList, TaskListLocalData, bulkUpdateTaskList, createNewTaskGroup, initiateTaskListLocalData, deleteTaskGroup, updateTaskListLocalData, dragNDropTasks, updateTaskGroupName, TaskGroupState, TaskGroupKey, toTaskListGroupByKeyType, toTaskListGroupByKeyTypeStrict, getTaskUpdates, fetchAllTaskGroups, initialTaskDetail, getDueDateValueFromDueDateGroupId, toPriorityCodeType, toTaskStatusCodeType, DueDateGroupKey, toDueDateGroupKeyType,
|
|
850
|
+
export { Task, TaskListSelectorView, TaskWithUserDetails, TaskListViewSortKey, TaskListUIState, TaskDetailSelectorView, EditTaskLocalData, TaskStatusCodeType, PriorityCodeType, getTaskGroupById, TaskStatus, TaskPriority, TaskCodeType, getAllTasks, fetchTaskListPage, getTaskDetail, fetchTaskDetailPage, saveTaskUpdatesToLocalStore, saveTaskDetail, archiveTask, updateTaskListSearchText, updateTaskListUIState, allTaskStatus, allTaskPriority, TaskListFilters, updateTaskFilters, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CATEGORIES, TaskListFilterCategoryField, deleteTask, discardTaskUpdatesInLocalStore, TaskFilterCategory, TaskType, TaskGroupWithTasksList, TaskListLocalData, bulkUpdateTaskList, createNewTaskGroup, initiateTaskListLocalData, deleteTaskGroup, updateTaskListLocalData, dragNDropTasks, updateTaskGroupName, TaskGroupState, TaskGroupKey, toTaskListGroupByKeyType, toTaskListGroupByKeyTypeStrict, getTaskUpdates, fetchAllTaskGroups, initialTaskDetail, getDueDateValueFromDueDateGroupId, toPriorityCodeType, toTaskStatusCodeType, DueDateGroupKey, toDueDateGroupKeyType, updateTaskFromListView, updateTaskListTab, removeTaskFromList, snoozeTask, unsnoozeTask, convertHHMMStrToMinutes, initialTaskDetailLocalData, TaskListTab, ALL_TASK_LIST_TABS, };
|
|
851
851
|
export { Tag, TagState, TagViewState, getAllTags, TagViewSelectorView, fetchTagList, createTag, deleteTag, };
|
|
852
852
|
export { CardPayment, CardPaymentViewState, SetupIntentData, CardPaymentSelectorView, getAllCardsAndBankPaymentMethods, createCardSetupIntent, confirmCardSetupIntent, addCardPaymentSource, fetchPaymentSources, resetCardPaymentErrorStatuses, clearCardPaymentView, AddCardPaymentSourceType, };
|
|
853
853
|
export { getAuditReportGroupViewSelectorView, getAuditRuleGroupViewSelectorView, getUserFromAllUsers, AuditReportGroupSelectorView, AuditReportGroupViewSelectorView, AuditRuleGroupViewSelectorView, fetchAuditRuleGroupView, fetchAuditReportGroupView, saveReasonForAuditRule, AuditRuleGroup, AuditRuleGroupReport, AuditReportRule, AuditRuleEntityType, AuditRuleEntityIdType, AuditRuleBypassReason, clearAuditReportGroupViewByCompanyId, };
|