@zeniai/client-epic-state 4.14.44 → 4.14.46

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 (54) hide show
  1. package/lib/entity/chargeCardTransaction/chargeCardTransactionReducer.d.ts +4 -1
  2. package/lib/entity/chargeCardTransaction/chargeCardTransactionReducer.js +13 -2
  3. package/lib/entity/task/taskState.d.ts +3 -3
  4. package/lib/entity/task/taskState.js +7 -1
  5. package/lib/entity/taskGroupTemplate/taskGroupTemplatePayload.d.ts +8 -0
  6. package/lib/entity/taskGroupTemplate/taskGroupTemplatePayload.js +2 -0
  7. package/lib/entity/taskGroupTemplate/taskGroupTemplateReducer.d.ts +6 -0
  8. package/lib/entity/taskGroupTemplate/taskGroupTemplateReducer.js +28 -0
  9. package/lib/entity/taskGroupTemplate/taskGroupTemplateSelector.d.ts +4 -0
  10. package/lib/entity/taskGroupTemplate/taskGroupTemplateSelector.js +17 -0
  11. package/lib/entity/taskGroupTemplate/taskGroupTemplateState.d.ts +13 -0
  12. package/lib/entity/taskGroupTemplate/taskGroupTemplateState.js +2 -0
  13. package/lib/entity/tenant/clearAllEpic.d.ts +4 -2
  14. package/lib/entity/tenant/clearAllEpic.js +4 -0
  15. package/lib/entity/transaction/transactionReducer.d.ts +4 -1
  16. package/lib/entity/transaction/transactionReducer.js +10 -2
  17. package/lib/epic.d.ts +5 -2
  18. package/lib/epic.js +5 -2
  19. package/lib/index.d.ts +7 -5
  20. package/lib/index.js +24 -20
  21. package/lib/reducer.d.ts +6 -0
  22. package/lib/reducer.js +6 -0
  23. package/lib/view/taskManager/taskDetailView/taskDetail.d.ts +1 -0
  24. package/lib/view/taskManager/taskDetailView/taskDetail.js +18 -17
  25. package/lib/view/taskManager/taskGroupTemplateView/epics/createTaskFromTaskGroupTemplateEpic.d.ts +12 -0
  26. package/lib/view/taskManager/taskGroupTemplateView/epics/createTaskFromTaskGroupTemplateEpic.js +54 -0
  27. package/lib/view/taskManager/taskGroupTemplateView/epics/fetchTaskGroupTemplatesEpic.d.ts +8 -0
  28. package/lib/view/taskManager/taskGroupTemplateView/epics/fetchTaskGroupTemplatesEpic.js +34 -0
  29. package/lib/view/taskManager/taskGroupTemplateView/taskGroupTemplateViewPayload.d.ts +14 -0
  30. package/lib/view/taskManager/taskGroupTemplateView/taskGroupTemplateViewPayload.js +2 -0
  31. package/lib/view/taskManager/taskGroupTemplateView/taskGroupTemplateViewReducer.d.ts +10 -0
  32. package/lib/view/taskManager/taskGroupTemplateView/taskGroupTemplateViewReducer.js +59 -0
  33. package/lib/view/taskManager/taskGroupTemplateView/taskGroupTemplateViewSelector.d.ts +7 -0
  34. package/lib/view/taskManager/taskGroupTemplateView/taskGroupTemplateViewSelector.js +10 -0
  35. package/lib/view/taskManager/taskGroupTemplateView/taskGroupTemplateViewState.d.ts +5 -0
  36. package/lib/view/taskManager/taskGroupTemplateView/taskGroupTemplateViewState.js +2 -0
  37. package/lib/view/taskManager/taskListView/epics/fetchTaskListPageEpic.d.ts +2 -1
  38. package/lib/view/taskManager/taskListView/epics/fetchTaskListPageEpic.js +6 -0
  39. package/lib/view/taskManager/taskListView/taskListReducer.d.ts +3 -1
  40. package/lib/view/taskManager/taskListView/taskListReducer.js +57 -46
  41. package/lib/view/taskManager/taskListView/taskListSelector.d.ts +4 -1
  42. package/lib/view/taskManager/taskListView/taskListSelector.js +6 -1
  43. package/lib/view/transactionDetail/epics/deleteTransactionAttachmentEpic.d.ts +9 -0
  44. package/lib/view/transactionDetail/epics/deleteTransactionAttachmentEpic.js +45 -0
  45. package/lib/view/transactionDetail/epics/{uploadMissingReceiptSuccessEpic.d.ts → uploadMissingAttachmentSuccessEpic.d.ts} +3 -3
  46. package/lib/view/transactionDetail/epics/{uploadMissingReceiptSuccessEpic.js → uploadMissingAttachmentSuccessEpic.js} +3 -3
  47. package/lib/view/transactionDetail/transactionDetailPayload.d.ts +5 -0
  48. package/lib/view/transactionDetail/transactionDetailReducer.d.ts +13 -3
  49. package/lib/view/transactionDetail/transactionDetailReducer.js +43 -3
  50. package/lib/view/transactionDetail/transactionDetailSelector.d.ts +1 -0
  51. package/lib/view/transactionDetail/transactionDetailSelector.js +3 -2
  52. package/lib/view/transactionDetail/transactionDetailState.d.ts +1 -0
  53. package/lib/view/transactionDetail/transactionDetailState.js +1 -0
  54. package/package.json +1 -1
@@ -0,0 +1,10 @@
1
+ import { ZeniAPIStatus } from '../../../responsePayload';
2
+ import { FetchTaskGroupTemplatesPayload } from './taskGroupTemplateViewPayload';
3
+ import { TaskGroupTemplateViewState } from './taskGroupTemplateViewState';
4
+ export declare const initialState: TaskGroupTemplateViewState;
5
+ export declare const fetchTaskGroupTemplates: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"taskGroupTemplateView/fetchTaskGroupTemplates">, updateTaskGroupTemplatesViewOnFetchSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<FetchTaskGroupTemplatesPayload, "taskGroupTemplateView/updateTaskGroupTemplatesViewOnFetchSuccess">, updateTaskGroupTemplatesViewOnFetchFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "taskGroupTemplateView/updateTaskGroupTemplatesViewOnFetchFailure">, clearTaskGroupTemplatesView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"taskGroupTemplateView/clearTaskGroupTemplatesView">, createTaskFromTaskGroupTemplate: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[taskGroupTemplateId: string, taskIds: string[]], {
6
+ taskGroupTemplateId: string;
7
+ taskIds: string[];
8
+ }, "taskGroupTemplateView/createTaskFromTaskGroupTemplate", never, never>, updateTaskGroupTemplatesViewOnCreateTaskSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"taskGroupTemplateView/updateTaskGroupTemplatesViewOnCreateTaskSuccess">, updateTaskGroupTemplatesViewOnCreateTaskFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "taskGroupTemplateView/updateTaskGroupTemplatesViewOnCreateTaskFailure">;
9
+ declare const _default: import("redux").Reducer<TaskGroupTemplateViewState>;
10
+ export default _default;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.updateTaskGroupTemplatesViewOnCreateTaskFailure = exports.updateTaskGroupTemplatesViewOnCreateTaskSuccess = exports.createTaskFromTaskGroupTemplate = exports.clearTaskGroupTemplatesView = exports.updateTaskGroupTemplatesViewOnFetchFailure = exports.updateTaskGroupTemplatesViewOnFetchSuccess = exports.fetchTaskGroupTemplates = exports.initialState = void 0;
5
+ const toolkit_1 = require("@reduxjs/toolkit");
6
+ exports.initialState = {
7
+ taskGroupTemplateIds: [],
8
+ fetchState: 'Not-Started',
9
+ error: undefined,
10
+ hasValidState() {
11
+ return this.fetchState === 'Completed';
12
+ },
13
+ createTaskFetchState: {
14
+ fetchState: 'Not-Started',
15
+ error: undefined,
16
+ },
17
+ };
18
+ const taskGroupTemplateView = (0, toolkit_1.createSlice)({
19
+ name: 'taskGroupTemplateView',
20
+ initialState: exports.initialState,
21
+ reducers: {
22
+ fetchTaskGroupTemplates(draft) {
23
+ draft.fetchState = 'In-Progress';
24
+ draft.error = undefined;
25
+ },
26
+ updateTaskGroupTemplatesViewOnFetchSuccess(draft, action) {
27
+ draft.fetchState = 'Completed';
28
+ draft.error = undefined;
29
+ const { templates } = action.payload;
30
+ draft.taskGroupTemplateIds = templates.map((template) => template.group_name);
31
+ },
32
+ updateTaskGroupTemplatesViewOnFetchFailure(draft, action) {
33
+ draft.fetchState = 'Error';
34
+ draft.error = action.payload;
35
+ },
36
+ createTaskFromTaskGroupTemplate: {
37
+ prepare(taskGroupTemplateId, taskIds) {
38
+ return { payload: { taskGroupTemplateId, taskIds } };
39
+ },
40
+ reducer(draft) {
41
+ draft.createTaskFetchState.fetchState = 'In-Progress';
42
+ draft.createTaskFetchState.error = undefined;
43
+ },
44
+ },
45
+ updateTaskGroupTemplatesViewOnCreateTaskSuccess(draft) {
46
+ draft.createTaskFetchState.fetchState = 'Completed';
47
+ draft.createTaskFetchState.error = undefined;
48
+ },
49
+ updateTaskGroupTemplatesViewOnCreateTaskFailure(draft, action) {
50
+ draft.createTaskFetchState.fetchState = 'Error';
51
+ draft.createTaskFetchState.error = action.payload;
52
+ },
53
+ clearTaskGroupTemplatesView(draft) {
54
+ Object.assign(draft, exports.initialState);
55
+ },
56
+ },
57
+ });
58
+ _a = taskGroupTemplateView.actions, exports.fetchTaskGroupTemplates = _a.fetchTaskGroupTemplates, exports.updateTaskGroupTemplatesViewOnFetchSuccess = _a.updateTaskGroupTemplatesViewOnFetchSuccess, exports.updateTaskGroupTemplatesViewOnFetchFailure = _a.updateTaskGroupTemplatesViewOnFetchFailure, exports.clearTaskGroupTemplatesView = _a.clearTaskGroupTemplatesView, exports.createTaskFromTaskGroupTemplate = _a.createTaskFromTaskGroupTemplate, exports.updateTaskGroupTemplatesViewOnCreateTaskSuccess = _a.updateTaskGroupTemplatesViewOnCreateTaskSuccess, exports.updateTaskGroupTemplatesViewOnCreateTaskFailure = _a.updateTaskGroupTemplatesViewOnCreateTaskFailure;
59
+ exports.default = taskGroupTemplateView.reducer;
@@ -0,0 +1,7 @@
1
+ import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndReport';
2
+ import { TaskGroupTemplate } from '../../../entity/taskGroupTemplate/taskGroupTemplateState';
3
+ import { RootState } from '../../../reducer';
4
+ export interface TaskGroupTemplateView extends SelectorView {
5
+ templates: TaskGroupTemplate[];
6
+ }
7
+ export declare const getTaskGroupTemplateView: (state: RootState) => TaskGroupTemplateView;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTaskGroupTemplateView = void 0;
4
+ const toolkit_1 = require("@reduxjs/toolkit");
5
+ const taskGroupTemplateSelector_1 = require("../../../entity/taskGroupTemplate/taskGroupTemplateSelector");
6
+ exports.getTaskGroupTemplateView = (0, toolkit_1.createSelector)((state) => state.taskGroupTemplateState, (state) => state.taskGroupTemplateViewState, (taskGroupTemplateState, taskGroupTemplateViewState) => {
7
+ const { fetchState, error, taskGroupTemplateIds } = taskGroupTemplateViewState;
8
+ const taskGroupTemplates = (0, taskGroupTemplateSelector_1.getTaskGroupTemplateByIds)(taskGroupTemplateState, taskGroupTemplateIds);
9
+ return { fetchState, error, templates: taskGroupTemplates };
10
+ });
@@ -0,0 +1,5 @@
1
+ import { FetchStateAndError, FetchedState, ID } from '../../../commonStateTypes/common';
2
+ export interface TaskGroupTemplateViewState extends FetchedState {
3
+ taskGroupTemplateIds: ID[];
4
+ createTaskFetchState: FetchStateAndError;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -4,7 +4,8 @@ import { RootState } from '../../../../reducer';
4
4
  import { fetchClassList } from '../../../classList/classListReducer';
5
5
  import { fetchTagList } from '../../../tagView/tagViewReducer';
6
6
  import { fetchUserListByType } from '../../../userListView/userListViewReducer';
7
+ import { fetchTaskGroupTemplates } from '../../taskGroupTemplateView/taskGroupTemplateViewReducer';
7
8
  import { fetchAllTaskGroups } from '../../taskGroupView/taskGroupViewReducer';
8
9
  import { fetchTaskList, fetchTaskListPage } from '../taskListReducer';
9
- export type ActionType = ReturnType<typeof fetchTaskListPage> | ReturnType<typeof fetchTaskList> | ReturnType<typeof fetchUserListByType> | ReturnType<typeof fetchTagList> | ReturnType<typeof fetchAllTaskGroups> | ReturnType<typeof fetchClassList>;
10
+ export type ActionType = ReturnType<typeof fetchTaskListPage> | ReturnType<typeof fetchTaskList> | ReturnType<typeof fetchUserListByType> | ReturnType<typeof fetchTagList> | ReturnType<typeof fetchAllTaskGroups> | ReturnType<typeof fetchTaskGroupTemplates> | ReturnType<typeof fetchClassList>;
10
11
  export declare const fetchTaskListPageEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>) => Observable<ActionType>;
@@ -6,6 +6,7 @@ const operators_1 = require("rxjs/operators");
6
6
  const classListReducer_1 = require("../../../classList/classListReducer");
7
7
  const tagViewReducer_1 = require("../../../tagView/tagViewReducer");
8
8
  const userListViewReducer_1 = require("../../../userListView/userListViewReducer");
9
+ const taskGroupTemplateViewReducer_1 = require("../../taskGroupTemplateView/taskGroupTemplateViewReducer");
9
10
  const taskGroupViewReducer_1 = require("../../taskGroupView/taskGroupViewReducer");
10
11
  const taskListReducer_1 = require("../taskListReducer");
11
12
  const fetchTaskListPageEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(taskListReducer_1.fetchTaskListPage.match), (0, operators_1.mergeMap)((action) => {
@@ -18,6 +19,7 @@ const fetchTaskListPageEpic = (actions$, state$) => actions$.pipe((0, operators_
18
19
  taskListPageActions.push((0, userListViewReducer_1.fetchUserListByType)('taskManagerCandidate', true));
19
20
  taskListPageActions.push((0, tagViewReducer_1.fetchTagList)());
20
21
  taskListPageActions.push((0, taskGroupViewReducer_1.fetchAllTaskGroups)());
22
+ taskListPageActions.push((0, taskGroupTemplateViewReducer_1.fetchTaskGroupTemplates)());
21
23
  }
22
24
  else {
23
25
  if (state.taskListState.fetchState !== 'In-Progress' &&
@@ -41,6 +43,10 @@ const fetchTaskListPageEpic = (actions$, state$) => actions$.pipe((0, operators_
41
43
  state.taskGroupViewState.fetchState !== 'In-Progress') {
42
44
  taskListPageActions.push((0, taskGroupViewReducer_1.fetchAllTaskGroups)());
43
45
  }
46
+ if (state.taskGroupTemplateViewState.hasValidState() === false &&
47
+ state.taskGroupTemplateViewState.fetchState !== 'In-Progress') {
48
+ taskListPageActions.push((0, taskGroupTemplateViewReducer_1.fetchTaskGroupTemplates)());
49
+ }
44
50
  }
45
51
  return (0, rxjs_1.concat)((0, rxjs_1.from)(taskListPageActions));
46
52
  }));
@@ -52,6 +52,8 @@ export declare const fetchTaskListPage: import("@reduxjs/toolkit").ActionCreator
52
52
  updates: Partial<Task>;
53
53
  }, "taskList/updateTaskFromListView">, updateTasksListOnUpdateTaskSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"taskList/updateTasksListOnUpdateTaskSuccess">, updateTasksListOnUpdateTaskFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
54
54
  error: ZeniAPIStatus;
55
- }, "taskList/updateTasksListOnUpdateTaskFailure">, clearTaskList: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"taskList/clearTaskList">;
55
+ }, "taskList/updateTasksListOnUpdateTaskFailure">, updateTaskListOnCreateTaskFromTemplateSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
56
+ tasks: TaskPayload[];
57
+ }, "taskList/updateTaskListOnCreateTaskFromTemplateSuccess">, clearTaskList: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"taskList/clearTaskList">;
56
58
  declare const _default: import("redux").Reducer<TaskListState>;
57
59
  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.clearTaskList = exports.updateTasksListOnUpdateTaskFailure = exports.updateTasksListOnUpdateTaskSuccess = exports.updateTaskFromListView = exports.updateTaskListOnTaskGroupNameUpdate = exports.updateTaskListOnNewTaskCreationSuccess = exports.dragNDropTasks = exports.updateTaskListOnTaskGroupDeletion = exports.updateTaskListLocalData = exports.initiateTaskListLocalData = exports.updateTasksListOnBulkUpdateTasksFailure = exports.updateTasksListOnBulkUpdateTasksSuccess = exports.bulkUpdateTaskList = exports.updateTaskListOnNewGroupCreationSuccess = exports.updateTaskFilters = exports.updateTaskListUIState = exports.updateTaskListSearchText = exports.updateTaskListFetchStatus = exports.updateTaskList = exports.fetchTaskList = exports.fetchTaskListPage = exports.initialState = void 0;
4
+ exports.clearTaskList = exports.updateTaskListOnCreateTaskFromTemplateSuccess = exports.updateTasksListOnUpdateTaskFailure = exports.updateTasksListOnUpdateTaskSuccess = exports.updateTaskFromListView = exports.updateTaskListOnTaskGroupNameUpdate = exports.updateTaskListOnNewTaskCreationSuccess = exports.dragNDropTasks = exports.updateTaskListOnTaskGroupDeletion = exports.updateTaskListLocalData = exports.initiateTaskListLocalData = exports.updateTasksListOnBulkUpdateTasksFailure = exports.updateTasksListOnBulkUpdateTasksSuccess = exports.bulkUpdateTaskList = exports.updateTaskListOnNewGroupCreationSuccess = exports.updateTaskFilters = exports.updateTaskListUIState = exports.updateTaskListSearchText = exports.updateTaskListFetchStatus = exports.updateTaskList = exports.fetchTaskList = exports.fetchTaskListPage = exports.initialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const taskState_1 = require("../../../entity/task/taskState");
7
7
  const zeniDayJS_1 = require("../../../zeniDayJS");
@@ -17,6 +17,7 @@ const initialTaskIdsByPriority = {
17
17
  high: [],
18
18
  medium: [],
19
19
  low: [],
20
+ normal: [],
20
21
  };
21
22
  const initialTaskIdsByStatus = {
22
23
  done: [],
@@ -302,50 +303,16 @@ const taskList = (0, toolkit_1.createSlice)({
302
303
  draft.taskIdsByDueDate[dueDateKey] = draft.taskIdsByDueDate[dueDateKey].filter((taskId) => taskId !== currentTaskState.id);
303
304
  draft.taskIdsByGroupsIds[taskGroupId] = draft.taskIdsByGroupsIds[taskGroupId].filter((taskId) => taskId !== currentTaskState.id);
304
305
  }
305
- const priorityKey = (0, taskState_1.toPriorityCodeType)(task.priority.code);
306
- const statusKey = (0, taskState_1.toTaskStatusCodeType)(task.status.code);
307
- const assigneeKey = getAssigneesGroupKey(task.assignees);
308
- const dueDateKey = getDueDateGroupKey(task.due_date);
309
- const tagsKey = getTagsGroupKey(task.tags);
310
- draft.taskIdsByPriority[priorityKey] = [
311
- taskId,
312
- ...draft.taskIdsByPriority[priorityKey],
313
- ];
314
- draft.taskIdsByStatus[statusKey] = [
315
- taskId,
316
- ...draft.taskIdsByStatus[statusKey],
317
- ];
318
- draft.taskIdsByDueDate[dueDateKey] = [
319
- taskId,
320
- ...draft.taskIdsByDueDate[dueDateKey],
321
- ];
322
- if (draft.taskIdsByAssignees[assigneeKey] != null) {
323
- draft.taskIdsByAssignees[assigneeKey] = [
324
- taskId,
325
- ...draft.taskIdsByAssignees[assigneeKey],
326
- ];
327
- }
328
- else {
329
- draft.taskIdsByAssignees[assigneeKey] = [taskId];
330
- }
331
- if (draft.taskIdsByTags[tagsKey] != null) {
332
- draft.taskIdsByTags[tagsKey] = [
333
- taskId,
334
- ...draft.taskIdsByTags[tagsKey],
335
- ];
336
- }
337
- else {
338
- draft.taskIdsByTags[tagsKey] = [taskId];
339
- }
340
- if (draft.taskIdsByGroupsIds[taskGroupId] != null) {
341
- draft.taskIdsByGroupsIds[taskGroupId] = [
342
- taskId,
343
- ...draft.taskIdsByGroupsIds[taskGroupId],
344
- ];
345
- }
346
- else {
347
- draft.taskIdsByGroupsIds[taskGroupId] = [taskId];
348
- }
306
+ doUpdateTaskList(draft, task, taskGroupId);
307
+ },
308
+ updateTaskListOnCreateTaskFromTemplateSuccess(draft, action) {
309
+ const { tasks } = action.payload;
310
+ tasks.forEach((task) => {
311
+ const taskGroupId = task.task_group_ids != null ? task.task_group_ids[0] : null;
312
+ if (taskGroupId != null) {
313
+ doUpdateTaskList(draft, task, taskGroupId);
314
+ }
315
+ });
349
316
  },
350
317
  updateTaskListOnTaskGroupNameUpdate(draft, action) {
351
318
  const { taskGroupName, taskGroupId } = action.payload;
@@ -415,11 +382,55 @@ const taskList = (0, toolkit_1.createSlice)({
415
382
  },
416
383
  },
417
384
  });
418
- _a = taskList.actions, exports.fetchTaskListPage = _a.fetchTaskListPage, exports.fetchTaskList = _a.fetchTaskList, exports.updateTaskList = _a.updateTaskList, exports.updateTaskListFetchStatus = _a.updateTaskListFetchStatus, exports.updateTaskListSearchText = _a.updateTaskListSearchText, exports.updateTaskListUIState = _a.updateTaskListUIState, exports.updateTaskFilters = _a.updateTaskFilters, exports.updateTaskListOnNewGroupCreationSuccess = _a.updateTaskListOnNewGroupCreationSuccess, exports.bulkUpdateTaskList = _a.bulkUpdateTaskList, exports.updateTasksListOnBulkUpdateTasksSuccess = _a.updateTasksListOnBulkUpdateTasksSuccess, exports.updateTasksListOnBulkUpdateTasksFailure = _a.updateTasksListOnBulkUpdateTasksFailure, exports.initiateTaskListLocalData = _a.initiateTaskListLocalData, exports.updateTaskListLocalData = _a.updateTaskListLocalData, exports.updateTaskListOnTaskGroupDeletion = _a.updateTaskListOnTaskGroupDeletion, exports.dragNDropTasks = _a.dragNDropTasks, exports.updateTaskListOnNewTaskCreationSuccess = _a.updateTaskListOnNewTaskCreationSuccess, exports.updateTaskListOnTaskGroupNameUpdate = _a.updateTaskListOnTaskGroupNameUpdate, exports.updateTaskFromListView = _a.updateTaskFromListView, exports.updateTasksListOnUpdateTaskSuccess = _a.updateTasksListOnUpdateTaskSuccess, exports.updateTasksListOnUpdateTaskFailure = _a.updateTasksListOnUpdateTaskFailure, exports.clearTaskList = _a.clearTaskList;
385
+ _a = taskList.actions, exports.fetchTaskListPage = _a.fetchTaskListPage, exports.fetchTaskList = _a.fetchTaskList, exports.updateTaskList = _a.updateTaskList, exports.updateTaskListFetchStatus = _a.updateTaskListFetchStatus, exports.updateTaskListSearchText = _a.updateTaskListSearchText, exports.updateTaskListUIState = _a.updateTaskListUIState, exports.updateTaskFilters = _a.updateTaskFilters, exports.updateTaskListOnNewGroupCreationSuccess = _a.updateTaskListOnNewGroupCreationSuccess, exports.bulkUpdateTaskList = _a.bulkUpdateTaskList, exports.updateTasksListOnBulkUpdateTasksSuccess = _a.updateTasksListOnBulkUpdateTasksSuccess, exports.updateTasksListOnBulkUpdateTasksFailure = _a.updateTasksListOnBulkUpdateTasksFailure, exports.initiateTaskListLocalData = _a.initiateTaskListLocalData, exports.updateTaskListLocalData = _a.updateTaskListLocalData, exports.updateTaskListOnTaskGroupDeletion = _a.updateTaskListOnTaskGroupDeletion, exports.dragNDropTasks = _a.dragNDropTasks, exports.updateTaskListOnNewTaskCreationSuccess = _a.updateTaskListOnNewTaskCreationSuccess, exports.updateTaskListOnTaskGroupNameUpdate = _a.updateTaskListOnTaskGroupNameUpdate, exports.updateTaskFromListView = _a.updateTaskFromListView, exports.updateTasksListOnUpdateTaskSuccess = _a.updateTasksListOnUpdateTaskSuccess, exports.updateTasksListOnUpdateTaskFailure = _a.updateTasksListOnUpdateTaskFailure, exports.updateTaskListOnCreateTaskFromTemplateSuccess = _a.updateTaskListOnCreateTaskFromTemplateSuccess, exports.clearTaskList = _a.clearTaskList;
419
386
  exports.default = taskList.reducer;
420
387
  /**
421
388
  * helpers
422
389
  */
390
+ const doUpdateTaskList = (draft, task, taskGroupId) => {
391
+ const taskId = task.task_id;
392
+ const priorityKey = (0, taskState_1.toPriorityCodeType)(task.priority.code);
393
+ const statusKey = (0, taskState_1.toTaskStatusCodeType)(task.status.code);
394
+ const assigneeKey = getAssigneesGroupKey(task.assignees);
395
+ const dueDateKey = getDueDateGroupKey(task.due_date);
396
+ const tagsKey = getTagsGroupKey(task.tags);
397
+ draft.taskIdsByPriority[priorityKey] = [
398
+ taskId,
399
+ ...draft.taskIdsByPriority[priorityKey],
400
+ ];
401
+ draft.taskIdsByStatus[statusKey] = [
402
+ taskId,
403
+ ...draft.taskIdsByStatus[statusKey],
404
+ ];
405
+ draft.taskIdsByDueDate[dueDateKey] = [
406
+ taskId,
407
+ ...draft.taskIdsByDueDate[dueDateKey],
408
+ ];
409
+ if (draft.taskIdsByAssignees[assigneeKey] != null) {
410
+ draft.taskIdsByAssignees[assigneeKey] = [
411
+ taskId,
412
+ ...draft.taskIdsByAssignees[assigneeKey],
413
+ ];
414
+ }
415
+ else {
416
+ draft.taskIdsByAssignees[assigneeKey] = [taskId];
417
+ }
418
+ if (draft.taskIdsByTags[tagsKey] != null) {
419
+ draft.taskIdsByTags[tagsKey] = [taskId, ...draft.taskIdsByTags[tagsKey]];
420
+ }
421
+ else {
422
+ draft.taskIdsByTags[tagsKey] = [taskId];
423
+ }
424
+ if (draft.taskIdsByGroupsIds[taskGroupId] != null) {
425
+ draft.taskIdsByGroupsIds[taskGroupId] = [
426
+ taskId,
427
+ ...draft.taskIdsByGroupsIds[taskGroupId],
428
+ ];
429
+ }
430
+ else {
431
+ draft.taskIdsByGroupsIds[taskGroupId] = [taskId];
432
+ }
433
+ };
423
434
  const getDueDateGroupKey = (due_date) => {
424
435
  if (due_date != null) {
425
436
  const dueDate = (0, zeniDayJS_1.date)(due_date);
@@ -3,6 +3,7 @@ import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndRep
3
3
  import { AddressState } from '../../../entity/address/addressState';
4
4
  import { TagState } from '../../../entity/tag/tagState';
5
5
  import { Task, TaskState } from '../../../entity/task/taskState';
6
+ import { TaskGroupTemplate } from '../../../entity/taskGroupTemplate/taskGroupTemplateState';
6
7
  import { UserState } from '../../../entity/user/userState';
7
8
  import { UserRoleState } from '../../../entity/userRole/userRoleState';
8
9
  import { RootState } from '../../../reducer';
@@ -24,10 +25,12 @@ export interface TaskListSelectorView extends SelectorView {
24
25
  filters: TaskListFilters;
25
26
  userList: UserListSelectorView;
26
27
  localData: TaskListLocalData;
28
+ taskGroupTemplates: TaskGroupTemplate[];
27
29
  updateTasksFetchState: FetchStateAndError;
28
30
  taskGroupDeleteStatus: FetchStateAndError;
29
31
  taskGroupUpdateStatus: FetchStateAndError;
30
32
  taskGroupCreationStatus: FetchStateAndError;
33
+ taskCreationFromTemplateStatus: FetchStateAndError;
31
34
  }
32
35
  export declare const getTaskListGroupedByAssignees: ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }: {
33
36
  taskListState: TaskListState;
@@ -51,7 +54,7 @@ export declare const getTaskListGroupedByPriority: ({ taskListState, taskState,
51
54
  tagState: TagState;
52
55
  }) => {
53
56
  groupName: string;
54
- id: "high" | "low" | "medium" | "urgent";
57
+ id: "normal" | "high" | "low" | "medium" | "urgent";
55
58
  isDefault: boolean;
56
59
  tasks: TaskWithUserDetails[];
57
60
  }[];
@@ -13,6 +13,7 @@ const tagSelector_1 = require("../../../entity/tag/tagSelector");
13
13
  const taskSelector_1 = require("../../../entity/task/taskSelector");
14
14
  const taskState_1 = require("../../../entity/task/taskState");
15
15
  const taskGroupSelector_1 = require("../../../entity/taskGroup/taskGroupSelector");
16
+ const taskGroupTemplateSelector_1 = require("../../../entity/taskGroupTemplate/taskGroupTemplateSelector");
16
17
  const userSelector_1 = require("../../../entity/user/userSelector");
17
18
  const userAndRole_1 = require("../../companyView/types/userAndRole");
18
19
  const spendManagementFilterHelpers_1 = require("../../spendManagement/spendManagementFilterHelpers");
@@ -317,7 +318,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
317
318
  tagState,
318
319
  });
319
320
  };
320
- 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, (taskListState, taskState, userState, userRoleState, userListViewState, addressState, taskGroupState, taskGroupViewState, tagViewState, tagState) => {
321
+ 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, (taskListState, taskState, userState, userRoleState, userListViewState, addressState, taskGroupState, taskGroupViewState, tagViewState, tagState, taskGroupTemplateState, taskGroupTemplateViewState) => {
321
322
  const { localData } = taskListState;
322
323
  const taskGroupsWithTasksList = getTaskGroupsWithTaskList({
323
324
  taskListState,
@@ -333,10 +334,13 @@ exports.getAllTasks = (0, toolkit_1.createSelector)((state) => state.taskListSta
333
334
  taskListState,
334
335
  taskGroupViewState,
335
336
  tagViewState,
337
+ taskGroupTemplateViewState,
336
338
  ]);
339
+ const taskGroupTemplates = (0, taskGroupTemplateSelector_1.getTaskGroupTemplateByIds)(taskGroupTemplateState, taskGroupTemplateViewState.taskGroupTemplateIds);
337
340
  return {
338
341
  uiState: taskListState.uiState,
339
342
  filters: taskListState.filters,
343
+ taskGroupTemplates,
340
344
  fetchState: fetchState,
341
345
  userList: (0, userListViewSelector_1.getUserList)(userState, userRoleState, userListViewState, 'taskManagerCandidate'),
342
346
  error: error,
@@ -347,5 +351,6 @@ exports.getAllTasks = (0, toolkit_1.createSelector)((state) => state.taskListSta
347
351
  taskGroupDeleteStatus: taskGroupViewState.taskGroupDeleteStatus,
348
352
  taskGroupUpdateStatus: taskGroupViewState.taskGroupUpdateStatus,
349
353
  taskGroupCreationStatus: taskGroupViewState.taskGroupCreationStatus,
354
+ taskCreationFromTemplateStatus: taskGroupTemplateViewState.createTaskFetchState,
350
355
  };
351
356
  });
@@ -0,0 +1,9 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { removeChargeCardTransactionAttachmentByThirdPartyTransactionId } from '../../../entity/chargeCardTransaction/chargeCardTransactionReducer';
4
+ import { removeTransactionAttachment } from '../../../entity/transaction/transactionReducer';
5
+ import { RootState } from '../../../reducer';
6
+ import { ZeniAPI } from '../../../zeniAPI';
7
+ import { deleteTransactionAttachment, deleteTransactionAttachmentFailure, deleteTransactionAttachmentSuccess } from '../transactionDetailReducer';
8
+ export type ActionType = ReturnType<typeof deleteTransactionAttachment> | ReturnType<typeof removeChargeCardTransactionAttachmentByThirdPartyTransactionId> | ReturnType<typeof removeTransactionAttachment> | ReturnType<typeof deleteTransactionAttachmentFailure> | ReturnType<typeof deleteTransactionAttachmentSuccess>;
9
+ export declare const deleteTransactionAttachmentEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteTransactionAttachmentEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const chargeCardTransactionReducer_1 = require("../../../entity/chargeCardTransaction/chargeCardTransactionReducer");
7
+ const transactionReducer_1 = require("../../../entity/transaction/transactionReducer");
8
+ const responsePayload_1 = require("../../../responsePayload");
9
+ const transactionDetailReducer_1 = require("../transactionDetailReducer");
10
+ const transactionDetailState_1 = require("../transactionDetailState");
11
+ const deleteTransactionAttachmentEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(transactionDetailReducer_1.deleteTransactionAttachment.match), (0, operators_1.switchMap)((action) => {
12
+ const { attachmentFileName, transactionId } = action.payload;
13
+ const queryParam = {
14
+ transaction_type: transactionId.type,
15
+ attachment_file_names: [attachmentFileName],
16
+ };
17
+ const request = zeniAPI.deleteAndGetJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/transactions/${transactionId.id}/attachments?query=${encodeURIComponent(JSON.stringify(queryParam))}`);
18
+ return request.pipe((0, operators_1.mergeMap)((response) => {
19
+ if ((0, responsePayload_1.isSuccessResponse)(response)) {
20
+ const key = (0, transactionDetailState_1.getTransactionDetailKey)(transactionId);
21
+ return (0, rxjs_1.of)((0, chargeCardTransactionReducer_1.removeChargeCardTransactionAttachmentByThirdPartyTransactionId)({
22
+ thirdPartyTransactionId: transactionId.id,
23
+ attachmentFileName,
24
+ }), (0, transactionReducer_1.removeTransactionAttachment)({ id: key, attachmentFileName }), (0, transactionDetailReducer_1.deleteTransactionAttachmentSuccess)({
25
+ transactionId,
26
+ attachmentFileName,
27
+ }));
28
+ }
29
+ else {
30
+ return (0, rxjs_1.of)((0, transactionDetailReducer_1.deleteTransactionAttachmentFailure)({
31
+ transactionId,
32
+ attachmentFileName,
33
+ status: response.status,
34
+ }));
35
+ }
36
+ }), (0, operators_1.catchError)((error) => {
37
+ return (0, rxjs_1.of)((0, transactionDetailReducer_1.deleteTransactionAttachmentFailure)({
38
+ transactionId,
39
+ attachmentFileName,
40
+ status: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Delete Transaction Attachment REST API call errored out' +
41
+ JSON.stringify(error)),
42
+ }));
43
+ }));
44
+ }));
45
+ exports.deleteTransactionAttachmentEpic = deleteTransactionAttachmentEpic;
@@ -1,9 +1,9 @@
1
1
  import { ActionsObservable } from 'redux-observable';
2
2
  import { openSnackbar } from '../../../entity/snackbar/snackbarReducer';
3
3
  import { updateTransaction } from '../../../entity/transaction/transactionReducer';
4
- import { uploadMissingReceiptSuccess } from '../transactionDetailReducer';
5
- export type ActionType = ReturnType<typeof uploadMissingReceiptSuccess> | ReturnType<typeof openSnackbar> | ReturnType<typeof updateTransaction>;
6
- export declare const uploadMissingReceiptSuccessEpic: (actions$: ActionsObservable<ActionType>) => import("rxjs").Observable<{
4
+ import { uploadMissingAttachmentSuccess } from '../transactionDetailReducer';
5
+ export type ActionType = ReturnType<typeof uploadMissingAttachmentSuccess> | ReturnType<typeof openSnackbar> | ReturnType<typeof updateTransaction>;
6
+ export declare const uploadMissingAttachmentSuccessEpic: (actions$: ActionsObservable<ActionType>) => import("rxjs").Observable<{
7
7
  payload: {
8
8
  messageSection: import("../../..").SnackbarMessageSections;
9
9
  messageText: import("../../..").SnackbarMessageSectionTexts;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uploadMissingReceiptSuccessEpic = void 0;
3
+ exports.uploadMissingAttachmentSuccessEpic = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const operators_1 = require("rxjs/operators");
6
6
  const snackbarReducer_1 = require("../../../entity/snackbar/snackbarReducer");
@@ -8,7 +8,7 @@ const transactionIDPayload_1 = require("../../../entity/transaction/payloadTypes
8
8
  const transactionReducer_1 = require("../../../entity/transaction/transactionReducer");
9
9
  const transactionDetailReducer_1 = require("../transactionDetailReducer");
10
10
  const transactionDetailState_1 = require("../transactionDetailState");
11
- const uploadMissingReceiptSuccessEpic = (actions$) => actions$.pipe((0, operators_1.filter)(transactionDetailReducer_1.uploadMissingReceiptSuccess.match), (0, operators_1.switchMap)((action) => {
11
+ const uploadMissingAttachmentSuccessEpic = (actions$) => actions$.pipe((0, operators_1.filter)(transactionDetailReducer_1.uploadMissingAttachmentSuccess.match), (0, operators_1.switchMap)((action) => {
12
12
  const transactionId = (0, transactionIDPayload_1.toTransactionID)(action.payload.payload);
13
13
  const transactionDetailKeyForResponse = (0, transactionDetailState_1.getTransactionDetailKey)(transactionId);
14
14
  return (0, rxjs_1.of)((0, snackbarReducer_1.openSnackbar)({
@@ -17,4 +17,4 @@ const uploadMissingReceiptSuccessEpic = (actions$) => actions$.pipe((0, operator
17
17
  type: 'success',
18
18
  }), (0, transactionReducer_1.updateTransaction)(transactionDetailKeyForResponse, action.payload.payload));
19
19
  }));
20
- exports.uploadMissingReceiptSuccessEpic = uploadMissingReceiptSuccessEpic;
20
+ exports.uploadMissingAttachmentSuccessEpic = uploadMissingAttachmentSuccessEpic;
@@ -31,4 +31,9 @@ interface UpdateTransactionDetailResponsePayload {
31
31
  vendors?: VendorPayload[];
32
32
  }
33
33
  export type TransactionDetailUpdateResponse = ZeniAPIResponse<UpdateTransactionDetailResponsePayload>;
34
+ interface DeleteTransactionAttachmentResponsePayload {
35
+ message: string;
36
+ deleted_filenames: string[];
37
+ }
38
+ export type TransactionAttachmentDeleteResponse = ZeniAPIResponse<DeleteTransactionAttachmentResponsePayload>;
34
39
  export {};
@@ -22,9 +22,9 @@ export declare const downloadAccountingProviderAttachment: import("@reduxjs/tool
22
22
  transactionId: TransactionID;
23
23
  fetchState: FetchState;
24
24
  error: ZeniAPIStatus<Record<string, unknown>> | undefined;
25
- }, "transactionDetail/updateTransactionDetailFetchState", never, never>, removeTransactionDetail: import("@reduxjs/toolkit").ActionCreatorWithPayload<TransactionID, "transactionDetail/removeTransactionDetail">, clearTransactionDetail: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"transactionDetail/clearTransactionDetail">, uploadMissingReceiptSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: SupportedTransactionPayload, updateType?: UpdateType | undefined], {
25
+ }, "transactionDetail/updateTransactionDetailFetchState", never, never>, removeTransactionDetail: import("@reduxjs/toolkit").ActionCreatorWithPayload<TransactionID, "transactionDetail/removeTransactionDetail">, clearTransactionDetail: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"transactionDetail/clearTransactionDetail">, uploadMissingAttachmentSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: SupportedTransactionPayload, updateType?: UpdateType | undefined], {
26
26
  payload: SupportedTransactionPayload;
27
- }, "transactionDetail/uploadMissingReceiptSuccess", never, {
27
+ }, "transactionDetail/uploadMissingAttachmentSuccess", never, {
28
28
  updateType: UpdateType;
29
29
  }>, updateTransactionDetail: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionId: TransactionID, transactionSaveUpdates: TransactionSaveUpdates], {
30
30
  transactionId: TransactionID;
@@ -38,7 +38,17 @@ export declare const downloadAccountingProviderAttachment: import("@reduxjs/tool
38
38
  }, "transactionDetail/clearTransactionDetailSaveStatus", never, never>, markTransactionAsNotMiscategorized: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionId: TransactionID, transactionSaveUpdates: TransactionSaveUpdates], {
39
39
  transactionId: TransactionID;
40
40
  transactionSaveUpdates: TransactionSaveUpdates;
41
- }, "transactionDetail/markTransactionAsNotMiscategorized", never, never>, updateStatusForTransactionNotMiscategorizedUpdate: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionId: TransactionID, fetchState: FetchState, error?: ZeniAPIStatus<Record<string, unknown>> | undefined], {
41
+ }, "transactionDetail/markTransactionAsNotMiscategorized", never, never>, deleteTransactionAttachment: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[attachmentFileName: string, transactionId: TransactionID], {
42
+ attachmentFileName: string;
43
+ transactionId: TransactionID;
44
+ }, "transactionDetail/deleteTransactionAttachment", never, never>, deleteTransactionAttachmentFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
45
+ attachmentFileName: string;
46
+ status: ZeniAPIStatus;
47
+ transactionId: TransactionID;
48
+ }, "transactionDetail/deleteTransactionAttachmentFailure">, deleteTransactionAttachmentSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
49
+ attachmentFileName: string;
50
+ transactionId: TransactionID;
51
+ }, "transactionDetail/deleteTransactionAttachmentSuccess">, updateStatusForTransactionNotMiscategorizedUpdate: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionId: TransactionID, fetchState: FetchState, error?: ZeniAPIStatus<Record<string, unknown>> | undefined], {
42
52
  transactionId: TransactionID;
43
53
  fetchState: FetchState;
44
54
  error: ZeniAPIStatus<Record<string, unknown>> | undefined;
@@ -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.resetVendor = 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.markTransactionAsNotMiscategorized = exports.clearTransactionDetailSaveStatus = exports.updateTransactionDetailSaveStatus = exports.updateTransactionDetail = exports.uploadMissingReceiptSuccess = 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.resetVendor = 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;
8
8
  const toolkit_1 = require("@reduxjs/toolkit");
9
9
  const get_1 = __importDefault(require("lodash/get"));
10
10
  const transactionDetailLocalDataHelper_1 = require("./transactionDetailLocalDataHelper");
@@ -456,7 +456,7 @@ const transactionDetail = (0, toolkit_1.createSlice)({
456
456
  draft.transactionDetailById[key] = Object.assign(Object.assign({}, transactionDraft), { isUpdateNotAllowed: true });
457
457
  }
458
458
  },
459
- uploadMissingReceiptSuccess: {
459
+ uploadMissingAttachmentSuccess: {
460
460
  reducer() {
461
461
  // Do nothing..
462
462
  },
@@ -464,6 +464,46 @@ const transactionDetail = (0, toolkit_1.createSlice)({
464
464
  return { payload: { payload }, meta: { updateType } };
465
465
  },
466
466
  },
467
+ deleteTransactionAttachment: {
468
+ reducer(draft, action) {
469
+ var _a;
470
+ const { attachmentFileName, transactionId } = action.payload;
471
+ const key = (0, transactionDetailState_1.getTransactionDetailKey)(transactionId);
472
+ const detail = (0, get_1.default)(draft.transactionDetailById, key, undefined);
473
+ if (detail != null) {
474
+ draft.transactionDetailById[key] = Object.assign(Object.assign({}, detail), { deleteStatusByAttachmentName: Object.assign(Object.assign({}, (_a = draft.transactionDetailById[key]) === null || _a === void 0 ? void 0 : _a.deleteStatusByAttachmentName), { [attachmentFileName]: {
475
+ fetchState: 'In-Progress',
476
+ error: undefined,
477
+ } }) });
478
+ }
479
+ },
480
+ prepare(attachmentFileName, transactionId) {
481
+ return {
482
+ payload: {
483
+ attachmentFileName,
484
+ transactionId,
485
+ },
486
+ };
487
+ },
488
+ },
489
+ deleteTransactionAttachmentFailure(draft, action) {
490
+ var _a;
491
+ const { attachmentFileName, status, transactionId } = action.payload;
492
+ const key = (0, transactionDetailState_1.getTransactionDetailKey)(transactionId);
493
+ const detail = (0, get_1.default)(draft.transactionDetailById, key, undefined);
494
+ if (detail != null) {
495
+ draft.transactionDetailById[key] = Object.assign(Object.assign({}, detail), { deleteStatusByAttachmentName: Object.assign(Object.assign({}, (_a = draft.transactionDetailById[key]) === null || _a === void 0 ? void 0 : _a.deleteStatusByAttachmentName), { [attachmentFileName]: { fetchState: 'Error', error: status } }) });
496
+ }
497
+ },
498
+ deleteTransactionAttachmentSuccess(draft, action) {
499
+ var _a;
500
+ const { attachmentFileName, transactionId } = action.payload;
501
+ const key = (0, transactionDetailState_1.getTransactionDetailKey)(transactionId);
502
+ const detail = (0, get_1.default)(draft.transactionDetailById, key, undefined);
503
+ if (detail != null) {
504
+ draft.transactionDetailById[key] = Object.assign(Object.assign({}, detail), { deleteStatusByAttachmentName: Object.assign(Object.assign({}, (_a = draft.transactionDetailById[key]) === null || _a === void 0 ? void 0 : _a.deleteStatusByAttachmentName), { [attachmentFileName]: { fetchState: 'Completed', error: undefined } }) });
505
+ }
506
+ },
467
507
  updateVendorBulkRecommendationsFetchStatus: {
468
508
  reducer(draft, action) {
469
509
  const key = (0, transactionDetailState_1.getTransactionDetailKey)(action.payload.transactionId);
@@ -487,5 +527,5 @@ const transactionDetail = (0, toolkit_1.createSlice)({
487
527
  },
488
528
  },
489
529
  });
490
- _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.uploadMissingReceiptSuccess = _a.uploadMissingReceiptSuccess, exports.updateTransactionDetail = _a.updateTransactionDetail, exports.updateTransactionDetailSaveStatus = _a.updateTransactionDetailSaveStatus, exports.clearTransactionDetailSaveStatus = _a.clearTransactionDetailSaveStatus, exports.markTransactionAsNotMiscategorized = _a.markTransactionAsNotMiscategorized, 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.resetVendor = _a.resetVendor, exports.updateLocalDataWithTransactionsUpdateWithVendorCheckbox = _a.updateLocalDataWithTransactionsUpdateWithVendorCheckbox, exports.updateVendorToAllLineItems = _a.updateVendorToAllLineItems, exports.resetAllLineItemsToVendor = _a.resetAllLineItemsToVendor, exports.updateLatestSelectedEntity = _a.updateLatestSelectedEntity, exports.updateVendorBulkRecommendationsFetchStatus = _a.updateVendorBulkRecommendationsFetchStatus, exports.setIsVendorUpdateAllChecked = _a.setIsVendorUpdateAllChecked;
530
+ _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.resetVendor = _a.resetVendor, exports.updateLocalDataWithTransactionsUpdateWithVendorCheckbox = _a.updateLocalDataWithTransactionsUpdateWithVendorCheckbox, exports.updateVendorToAllLineItems = _a.updateVendorToAllLineItems, exports.resetAllLineItemsToVendor = _a.resetAllLineItemsToVendor, exports.updateLatestSelectedEntity = _a.updateLatestSelectedEntity, exports.updateVendorBulkRecommendationsFetchStatus = _a.updateVendorBulkRecommendationsFetchStatus, exports.setIsVendorUpdateAllChecked = _a.setIsVendorUpdateAllChecked;
491
531
  exports.default = transactionDetail.reducer;
@@ -13,6 +13,7 @@ import { TransactionDetailLocalData } from './transactionDetailTypes';
13
13
  export interface TransactionDetailReport extends SelectorView {
14
14
  transaction?: SupportedTransaction;
15
15
  transactionDetailUpdateStatus: FetchStateAndError;
16
+ deleteStatusByAttachmentName: Record<string, FetchStateAndError>;
16
17
  linkedTransactions: SupportedTransaction[];
17
18
  accountList: AccountListSelectorView;
18
19
  classList: ClassListSelectorView;