@zeniai/client-epic-state 4.19.100 → 4.20.0-beta0RR

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.

Potentially problematic release.


This version of @zeniai/client-epic-state might be problematic. Click here for more details.

Files changed (177) hide show
  1. package/lib/commonStateTypes/coaBalance/coaBalanceType.d.ts +2 -0
  2. package/lib/commonStateTypes/coaBalance/coaBalanceType.js +6 -0
  3. package/lib/commonStateTypes/currencyHelper.d.ts +3 -0
  4. package/lib/commonStateTypes/currencyHelper.js +6 -1
  5. package/lib/commonStateTypes/reduceFetchState.d.ts +9 -0
  6. package/lib/commonStateTypes/reduceFetchState.js +26 -0
  7. package/lib/entity/account/accountPayload.d.ts +2 -0
  8. package/lib/entity/account/accountPayload.js +2 -0
  9. package/lib/entity/account/accountState.d.ts +2 -0
  10. package/lib/entity/customer/customerState.d.ts +0 -2
  11. package/lib/entity/customer/customerState.js +0 -5
  12. package/lib/entity/depositAccount/depositAccount.d.ts +1 -1
  13. package/lib/entity/depositAccount/depositAccount.js +8 -1
  14. package/lib/entity/reimbursement/reimbursementPayload.d.ts +2 -0
  15. package/lib/entity/reimbursement/reimbursementPayload.js +7 -0
  16. package/lib/entity/reimbursement/reimbursementState.d.ts +2 -0
  17. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  18. package/lib/entity/snackbar/snackbarTypes.js +1 -0
  19. package/lib/entity/task/taskPayload.d.ts +2 -0
  20. package/lib/entity/task/taskPayload.js +2 -0
  21. package/lib/entity/task/taskState.d.ts +2 -0
  22. package/lib/entity/userGroups/userGroupsPayload.d.ts +7 -0
  23. package/lib/entity/userGroups/userGroupsPayload.js +10 -0
  24. package/lib/entity/userGroups/userGroupsReducer.d.ts +8 -0
  25. package/lib/entity/userGroups/userGroupsReducer.js +29 -0
  26. package/lib/entity/userGroups/userGroupsSelector.d.ts +4 -0
  27. package/lib/entity/userGroups/userGroupsSelector.js +12 -0
  28. package/lib/entity/userGroups/userGroupsState.d.ts +9 -0
  29. package/lib/entity/userGroups/userGroupsState.js +2 -0
  30. package/lib/epic.d.ts +12 -1
  31. package/lib/epic.js +12 -1
  32. package/lib/esm/commonStateTypes/coaBalance/coaBalanceType.js +5 -0
  33. package/lib/esm/commonStateTypes/currencyHelper.js +5 -0
  34. package/lib/esm/commonStateTypes/reduceFetchState.js +25 -0
  35. package/lib/esm/entity/account/accountPayload.js +2 -0
  36. package/lib/esm/entity/customer/customerState.js +1 -4
  37. package/lib/esm/entity/depositAccount/depositAccount.js +8 -1
  38. package/lib/esm/entity/reimbursement/reimbursementPayload.js +7 -0
  39. package/lib/esm/entity/snackbar/snackbarTypes.js +1 -0
  40. package/lib/esm/entity/task/taskPayload.js +2 -0
  41. package/lib/esm/entity/userGroups/userGroupsPayload.js +7 -0
  42. package/lib/esm/entity/userGroups/userGroupsReducer.js +25 -0
  43. package/lib/esm/entity/userGroups/userGroupsSelector.js +8 -0
  44. package/lib/esm/entity/userGroups/userGroupsState.js +1 -0
  45. package/lib/esm/epic.js +12 -1
  46. package/lib/esm/index.js +18 -10
  47. package/lib/esm/reducer.js +6 -0
  48. package/lib/esm/view/arAgingView/arAgingReport/arAgingReducer.js +1 -1
  49. package/lib/esm/view/arAgingView/arAgingReport/arAgingSelector.js +1 -1
  50. package/lib/esm/view/companyView/types/cockpitTypes.js +1 -0
  51. package/lib/esm/view/expenseAutomationView/bulkUploadTiming.js +10 -0
  52. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +29 -0
  53. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.js +49 -0
  54. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.js +40 -0
  55. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +47 -0
  56. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +61 -0
  57. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.js +33 -0
  58. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.js +56 -0
  59. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +77 -0
  60. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/uploadMissingReceiptSuccessEpic.js +7 -5
  61. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +79 -0
  62. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.js +24 -0
  63. package/lib/esm/view/expenseAutomationView/payload/missingReceiptsPayload.js +189 -1
  64. package/lib/esm/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +433 -2
  65. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +23 -1
  66. package/lib/esm/view/expenseAutomationView/selectors/missingReceiptsSelector.js +244 -1
  67. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +2 -1
  68. package/lib/esm/view/expenseAutomationView/types/missingReceiptsViewState.js +44 -0
  69. package/lib/esm/view/expenseAutomationView/types/transactionsViewState.js +2 -1
  70. package/lib/esm/view/financeStatement/financeStatementReducer.js +11 -8
  71. package/lib/esm/view/financeStatement/financeStatementSelector.js +24 -9
  72. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +322 -0
  73. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.js +9 -0
  74. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesViewReducer.js +6 -1
  75. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesViewSelector.js +2 -29
  76. package/lib/esm/view/profitAndLossClassesView/profitAndLossForTimeframeClassesViewEpic.js +7 -5
  77. package/lib/esm/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.js +201 -0
  78. package/lib/esm/view/reportUIOptions/updateReportUIOptionCOABalancesRangeEpic.js +9 -7
  79. package/lib/esm/view/taskManager/taskDetailView/epics/initializeTaskToLocalStoreEpic.js +1 -0
  80. package/lib/esm/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.js +1 -0
  81. package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +1 -1
  82. package/lib/esm/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +1 -0
  83. package/lib/esm/view/taskManager/taskListView/taskList.js +1 -0
  84. package/lib/esm/view/taskManager/taskListView/taskListSelector.js +9 -3
  85. package/lib/esm/view/twoFactorAuthentication/resendOtpEpic.js +2 -16
  86. package/lib/esm/view/userGroupListView/userGroupListViewReducer.js +65 -0
  87. package/lib/esm/view/userGroupListView/userGroupListViewSelector.js +16 -0
  88. package/lib/esm/view/userGroupListView/userGroupListViewState.js +1 -0
  89. package/lib/esm/view/userListView/fetchUserListByTypeEpic.js +11 -0
  90. package/lib/esm/zeniAPI.js +0 -2
  91. package/lib/index.d.ts +19 -12
  92. package/lib/index.js +81 -23
  93. package/lib/reducer.d.ts +6 -0
  94. package/lib/reducer.js +6 -0
  95. package/lib/tsconfig.typecheck.tsbuildinfo +1 -0
  96. package/lib/view/arAgingView/arAgingReport/arAgingReducer.js +2 -2
  97. package/lib/view/arAgingView/arAgingReport/arAgingSelector.js +5 -5
  98. package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.d.ts +2 -2
  99. package/lib/view/companyView/types/cockpitTypes.d.ts +1 -1
  100. package/lib/view/companyView/types/cockpitTypes.js +1 -0
  101. package/lib/view/expenseAutomationView/bulkUploadTiming.d.ts +10 -0
  102. package/lib/view/expenseAutomationView/bulkUploadTiming.js +13 -0
  103. package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.d.ts +18 -0
  104. package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +33 -0
  105. package/lib/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.d.ts +7 -0
  106. package/lib/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.js +53 -0
  107. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.d.ts +8 -0
  108. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.js +44 -0
  109. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.d.ts +7 -0
  110. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +51 -0
  111. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.d.ts +8 -0
  112. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +65 -0
  113. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.d.ts +8 -0
  114. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.js +37 -0
  115. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.d.ts +9 -0
  116. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.js +61 -0
  117. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.d.ts +14 -0
  118. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +81 -0
  119. package/lib/view/expenseAutomationView/epics/missingReceipts/uploadMissingReceiptSuccessEpic.js +7 -5
  120. package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.d.ts +25 -0
  121. package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +85 -0
  122. package/lib/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.d.ts +7 -0
  123. package/lib/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.js +28 -0
  124. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  125. package/lib/view/expenseAutomationView/payload/missingReceiptsPayload.d.ts +118 -0
  126. package/lib/view/expenseAutomationView/payload/missingReceiptsPayload.js +201 -0
  127. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.d.ts +76 -3
  128. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +434 -2
  129. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +11 -3
  130. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +24 -2
  131. package/lib/view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes.d.ts +69 -1
  132. package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +1 -0
  133. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.d.ts +1 -1
  134. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.js +243 -0
  135. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +2 -1
  136. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.d.ts +142 -0
  137. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.js +54 -1
  138. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +2 -1
  139. package/lib/view/expenseAutomationView/types/transactionsViewState.js +2 -1
  140. package/lib/view/financeStatement/financeStatementReducer.js +11 -8
  141. package/lib/view/financeStatement/financeStatementSelector.d.ts +2 -0
  142. package/lib/view/financeStatement/financeStatementSelector.js +24 -9
  143. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.d.ts +13 -0
  144. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +326 -0
  145. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.d.ts +111 -0
  146. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.js +13 -0
  147. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewReducer.d.ts +4 -2
  148. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewReducer.js +7 -2
  149. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewSelector.js +2 -29
  150. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewState.d.ts +4 -0
  151. package/lib/view/profitAndLossClassesView/profitAndLossForTimeframeClassesViewEpic.js +7 -5
  152. package/lib/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.d.ts +6 -0
  153. package/lib/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.js +204 -0
  154. package/lib/view/reportUIOptions/updateReportUIOptionCOABalancesRangeEpic.js +8 -6
  155. package/lib/view/taskManager/taskDetailView/epics/initializeTaskToLocalStoreEpic.js +1 -0
  156. package/lib/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.js +1 -0
  157. package/lib/view/taskManager/taskDetailView/taskDetail.d.ts +1 -0
  158. package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +1 -1
  159. package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.d.ts +1 -0
  160. package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +1 -0
  161. package/lib/view/taskManager/taskListView/taskList.d.ts +1 -1
  162. package/lib/view/taskManager/taskListView/taskList.js +1 -0
  163. package/lib/view/taskManager/taskListView/taskListSelector.d.ts +2 -0
  164. package/lib/view/taskManager/taskListView/taskListSelector.js +9 -3
  165. package/lib/view/twoFactorAuthentication/resendOtpEpic.d.ts +1 -1
  166. package/lib/view/twoFactorAuthentication/resendOtpEpic.js +1 -15
  167. package/lib/view/userGroupListView/userGroupListViewReducer.d.ts +23 -0
  168. package/lib/view/userGroupListView/userGroupListViewReducer.js +69 -0
  169. package/lib/view/userGroupListView/userGroupListViewSelector.d.ts +7 -0
  170. package/lib/view/userGroupListView/userGroupListViewSelector.js +20 -0
  171. package/lib/view/userGroupListView/userGroupListViewState.d.ts +8 -0
  172. package/lib/view/userGroupListView/userGroupListViewState.js +2 -0
  173. package/lib/view/userListView/fetchUserListByTypeEpic.d.ts +3 -1
  174. package/lib/view/userListView/fetchUserListByTypeEpic.js +11 -0
  175. package/lib/view/userListView/userListViewPayload.d.ts +2 -0
  176. package/lib/zeniAPI.js +0 -2
  177. package/package.json +3 -3
@@ -25,6 +25,7 @@ export const initializeTaskToLocalStoreEpic = (actions$, state$) => actions$.pip
25
25
  savedRecurringEndDate: task.recurringEndDate,
26
26
  recurringStartDate: task.recurringStartDate,
27
27
  timeSpent: task.timeSpent,
28
+ isPrivate: task.isPrivate,
28
29
  };
29
30
  const actions = [
30
31
  saveTaskUpdatesToLocalStore({ taskDetailLocalData, taskId }),
@@ -94,5 +94,6 @@ const prepareTaskPayload = (state, taskId, taskGroupId) => {
94
94
  sync_token: syncToken,
95
95
  task_group_ids: taskGroupId != null ? [taskGroupId] : [],
96
96
  time_spent: convertHHMMStrToMinutes(localData.timeSpent),
97
+ is_private: localData.isPrivate ?? false,
97
98
  };
98
99
  };
@@ -109,7 +109,7 @@ export const allTaskPriority = [
109
109
  },
110
110
  {
111
111
  code: 'medium',
112
- name: 'Normal',
112
+ name: 'Medium',
113
113
  },
114
114
  {
115
115
  code: 'low',
@@ -70,6 +70,7 @@ const toTaskPayload = (state, task) => {
70
70
  name: task.name,
71
71
  assignees: task.assignees,
72
72
  description: task.description,
73
+ group_assignees: task.groupAssignees,
73
74
  due_date: task.dueDate != null ? task.dueDate.format(DEFAULT_DATE_FORMAT) : null,
74
75
  priority: task.priority.code,
75
76
  status: task.status.code,
@@ -26,6 +26,7 @@ const ALL_TASK_LIST_SORT_KEYS = [
26
26
  'status',
27
27
  'priority',
28
28
  'timeSpent',
29
+ 'visibility',
29
30
  ];
30
31
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
32
  const toTaskListSortKeyType = (v) => stringToUnion(v, ALL_TASK_LIST_SORT_KEYS);
@@ -11,13 +11,18 @@ import { getTaskGroupTemplateByIds } from '../../../entity/taskGroupTemplate/tas
11
11
  import { getUserName, getUsersByUserIds, } from '../../../entity/user/userSelector';
12
12
  import { getUserAndUserRole, } from '../../companyView/types/userAndRole';
13
13
  import { applyAdvancedFiltersOnList } from '../../spendManagement/spendManagementFilterHelpers';
14
+ import { getUserGroupList } from '../../userGroupListView/userGroupListViewSelector';
14
15
  import { getUserList, } from '../../userListView/userListViewSelector';
15
16
  import { allTaskPriority, allTaskStatus, } from '../taskDetailView/taskDetailSelector';
16
17
  import { DUE_DATE_GROUP_KEYS, } from './taskList';
17
18
  import { initialState } from './taskListReducer';
18
19
  const isDefaultFilters = (taskListState) => {
19
- return (isEqual(taskListState.filters, initialState.filters) &&
20
- initialState.uiState.searchText === taskListState.uiState.searchText);
20
+ if (taskListState.uiState.searchText !== initialState.uiState.searchText) {
21
+ return false;
22
+ }
23
+ const hasNoActiveFilters = taskListState.filters.categories == null ||
24
+ taskListState.filters.categories.length === 0;
25
+ return (hasNoActiveFilters || isEqual(taskListState.filters, initialState.filters));
21
26
  };
22
27
  const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
23
28
  const tasksInOrder = orderBy(tasksList, (task) => {
@@ -308,7 +313,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
308
313
  tagState,
309
314
  });
310
315
  };
311
- 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, isTaskTemplatesEnabled) => isTaskTemplatesEnabled, (taskListState, taskState, userState, userRoleState, userListViewState, addressState, taskGroupState, taskGroupViewState, tagViewState, tagState, taskGroupTemplateState, taskGroupTemplateViewState, isTaskTemplatesEnabled) => {
316
+ 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) => {
312
317
  const { localData } = taskListState;
313
318
  const taskGroupsWithTasksList = getTaskGroupsWithTaskList({
314
319
  taskListState,
@@ -336,6 +341,7 @@ export const getAllTasks = createSelector((state) => state.taskListState, (state
336
341
  taskGroupTemplates,
337
342
  fetchState: fetchState,
338
343
  userList: getUserList(userState, userRoleState, userListViewState, 'taskManagerCandidate'),
344
+ userGroupList: getUserGroupList(userGroupsState, userGroupListViewState, 'taskManagerCandidate'),
339
345
  error: error,
340
346
  version: 0,
341
347
  taskGroupsWithTasksList,
@@ -5,23 +5,14 @@ import { resendOtpVendorView, sendOtpVendorViewFailure, sendOtpVendorViewSuccess
5
5
  import { resendOnboardingOfficerOtp, sendOnboardingOfficerOtpFailure, sendOnboardingOfficerOtpSuccess, } from '../onboardingView/customerView/onboardingCustomerViewReducer';
6
6
  import { resendOtpMyProfile, sendOtpMyProfileFailure, sendOtpMyProfileSuccess, } from '../settingsView/settingsViewReducer';
7
7
  import { resendOtpCardUserOnboarding, sendOtpCardUserOnboardingFailure, sendOtpCardUserOnboardingSuccess, } from '../spendManagement/chargeCards/cardUserOnboarding/cardUserOnboardingReducer';
8
- import { resendOtpCardHolder, sendOtpCardHolderFailure, sendOtpCardHolderSuccess, } from '../spendManagement/chargeCards/chargeCardDetail/chargeCardDetailReducer';
8
+ import { sendOtpCardHolderFailure, sendOtpCardHolderSuccess, } from '../spendManagement/chargeCards/chargeCardDetail/chargeCardDetailReducer';
9
9
  import { resendOtpSpendManagementSetUp, sendOtpFailureSpendManagementSetUp, sendOtpSuccessSpendManagementSetUp, } from '../spendManagement/commonSetup/setupViewReducer';
10
10
  import { resendOtp, sendOtpFailure, sendOtpSuccess, } from './twoFactorAuthenticationReducer';
11
- export const resendOtpEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(resendOtp.match), mergeMap((action) => {
11
+ export const resendOtpEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(resendOtp.match), mergeMap((action) => {
12
12
  const resendOtpActions = [];
13
13
  const { otpChallenge, twoFASource, entityId } = action.payload;
14
- const chargeCard = twoFASource === 'ChargeCardHolder' && entityId != null
15
- ? state$.value.chargeCardState.chargeCardByID[entityId]
16
- : null;
17
14
  const payload = {
18
15
  otp_challenge: otpChallenge,
19
- ...(chargeCard != null
20
- ? {
21
- provider_card_id: chargeCard.cardProviderID,
22
- is_for_charge_cards: true,
23
- }
24
- : {}),
25
16
  };
26
17
  switch (twoFASource) {
27
18
  case 'SpendManagementSetup':
@@ -39,11 +30,6 @@ export const resendOtpEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter
39
30
  case 'CardUserOnboarding':
40
31
  resendOtpActions.push(resendOtpCardUserOnboarding());
41
32
  break;
42
- case 'ChargeCardHolder':
43
- if (entityId != null) {
44
- resendOtpActions.push(resendOtpCardHolder({ chargeCardId: entityId }));
45
- }
46
- break;
47
33
  }
48
34
  const resendOtp$ = zeniAPI
49
35
  .putAndGetJSON(`${zeniAPI.apiEndPoints.authMicroServiceBaseUrl}/1.0/otp/resend`, payload)
@@ -0,0 +1,65 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+ const initialUserGroupList = {
3
+ ids: [],
4
+ fetchState: 'Not-Started',
5
+ error: undefined,
6
+ hasValidState() {
7
+ return this.fetchState == 'Completed';
8
+ },
9
+ };
10
+ export const initialState = {
11
+ userGroupListByType: {
12
+ taskManagerCandidate: initialUserGroupList,
13
+ },
14
+ };
15
+ const userGroupListView = createSlice({
16
+ name: 'userGroupListView',
17
+ initialState,
18
+ reducers: {
19
+ fetchUserGroupListByType: {
20
+ reducer(draft, action) {
21
+ const { userGroupType } = action.payload;
22
+ draft.userGroupListByType[userGroupType].fetchState = 'In-Progress';
23
+ draft.userGroupListByType[userGroupType].error = undefined;
24
+ },
25
+ prepare(userGroupType, cacheOverride = false) {
26
+ return {
27
+ payload: {
28
+ userGroupType,
29
+ cacheOverride,
30
+ },
31
+ };
32
+ },
33
+ },
34
+ updateUserGroupIds(draft, action) {
35
+ const { userGroupType, userGroupsPayload } = action.payload;
36
+ draft.userGroupListByType[userGroupType].fetchState = 'Completed';
37
+ draft.userGroupListByType[userGroupType].error = undefined;
38
+ draft.userGroupListByType[userGroupType].ids = userGroupsPayload.map((userGroup) => userGroup.id);
39
+ },
40
+ addUserGroupId(draft, action) {
41
+ const { userGroupType, id } = action.payload;
42
+ const index = draft.userGroupListByType[userGroupType].ids.indexOf(id);
43
+ if (index < 0) {
44
+ draft.userGroupListByType[userGroupType].ids.push(id);
45
+ }
46
+ },
47
+ removeUserGroupId(draft, action) {
48
+ const { userGroupType, id } = action.payload;
49
+ const index = draft.userGroupListByType[userGroupType].ids.indexOf(id);
50
+ if (index > -1) {
51
+ draft.userGroupListByType[userGroupType].ids.splice(index, 1);
52
+ }
53
+ },
54
+ updateUserGroupListFetchFailure(draft, action) {
55
+ const { userGroupType, status } = action.payload;
56
+ draft.userGroupListByType[userGroupType].fetchState = 'Error';
57
+ draft.userGroupListByType[userGroupType].error = status;
58
+ },
59
+ clearUserGroupListView(draft) {
60
+ Object.assign(draft, initialState);
61
+ },
62
+ },
63
+ });
64
+ export const { fetchUserGroupListByType, updateUserGroupIds, addUserGroupId, removeUserGroupId, updateUserGroupListFetchFailure, clearUserGroupListView, } = userGroupListView.actions;
65
+ export default userGroupListView.reducer;
@@ -0,0 +1,16 @@
1
+ import { getUserGroupByUserGroupId } from '../../entity/userGroups/userGroupsSelector';
2
+ export const getUserGroupList = (userGroupsState, userGroupListViewState, userGroupType) => {
3
+ const listState = userGroupListViewState.userGroupListByType[userGroupType];
4
+ return {
5
+ userGroups: getUserGroupListByIds(userGroupsState, userGroupListViewState, userGroupType),
6
+ fetchState: listState?.fetchState,
7
+ error: listState?.error,
8
+ version: 0,
9
+ };
10
+ };
11
+ function getUserGroupListByIds(userGroupsState, userGroupListViewState, type) {
12
+ const userGroupIds = userGroupListViewState.userGroupListByType[type].ids;
13
+ return userGroupIds
14
+ .map((id) => getUserGroupByUserGroupId(userGroupsState, id))
15
+ .filter((value) => value != null);
16
+ }
@@ -3,9 +3,11 @@ import { catchError, filter, mergeMap } from 'rxjs/operators';
3
3
  import { updateAddresses } from '../../entity/address/addressReducer';
4
4
  import { getCurrentTenant, isZeniDomainTenant, } from '../../entity/tenant/tenantSelector';
5
5
  import { updateAllUsers } from '../../entity/user/userReducer';
6
+ import { updateAllUserGroups } from '../../entity/userGroups/userGroupsReducer';
6
7
  import { updateUserRoles } from '../../entity/userRole/userRoleReducer';
7
8
  import { createZeniAPIStatus, isSuccessResponse } from '../../responsePayload';
8
9
  import { updateChargeCardCount, updateDebitCardCount, } from '../spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer';
10
+ import { updateUserGroupIds } from '../userGroupListView/userGroupListViewReducer';
9
11
  import { fetchUserListByType, updateUserIds, updateUserListFetchFailure, } from './userListViewReducer';
10
12
  export const fetchUserListByTypeEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchUserListByType.match), mergeMap((action) => {
11
13
  const { userType, cacheOverride } = action.payload;
@@ -29,6 +31,15 @@ export const fetchUserListByTypeEpic = (actions$, state$, zeniAPI) => actions$.p
29
31
  usersPayload: response.data?.users ?? [],
30
32
  }),
31
33
  ];
34
+ if (response.data?.user_groups != null) {
35
+ userListAction.push(updateAllUserGroups({ userGroups: response.data.user_groups }));
36
+ if (userType === 'taskManagerCandidate') {
37
+ userListAction.push(updateUserGroupIds({
38
+ userGroupType: userType,
39
+ userGroupsPayload: response.data.user_groups,
40
+ }));
41
+ }
42
+ }
32
43
  if (userType === 'cardHolderCandidate') {
33
44
  userListAction.push(updateChargeCardCount(response.data?.cards_count_by_user_id ?? []));
34
45
  userListAction.push(updateDebitCardCount(response.data?.debit_cards_count_by_deposit_account_id ?? {}));
@@ -79,8 +79,6 @@ export class ZeniAPIClient {
79
79
  return from(promise);
80
80
  }
81
81
  postFormData(restEndPoint, formData, signal) {
82
- // Use apiHeaders for auth headers, then remove Content-Type
83
- // so the browser sets multipart/form-data with the correct boundary
84
82
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
85
83
  const { 'Content-Type': _contentType, ...headers } = this.apiHeaders();
86
84
  const promise = fetch(restEndPoint, {
package/lib/index.d.ts CHANGED
@@ -9,10 +9,11 @@ import { TimeFrameTickTag, getTimeframeTickTag, isIncompleteMonthPresentInTimefr
9
9
  import { NestedClassHierarchyForReport, NestedClassID, NestedClassIDHierarchy } from './commonStateTypes/classesView/nestedClassID';
10
10
  import { COABalance, COABalanceGrouped, COABalanceGroupedByPeriod, COABalanceMonthQuarterTimeframe, COABalanceTimeFrame, COABalanceWithPercent, toCOABalanceTimeframe } from './commonStateTypes/coaBalance/coaBalance';
11
11
  import { COABalanceByAdditionalPeriodGrouped } from './commonStateTypes/coaBalance/coaBalanceByAdditionalPeriod';
12
- import { COABalanceType, CalculatedBalance, CalculatedCompareBalance, CalculatedTotalBalance, isCalculatedBalanceType, toCOABalanceType, toCOABalanceTypeStrict } from './commonStateTypes/coaBalance/coaBalanceType';
12
+ import { COABalanceType, CalculatedBalance, CalculatedCompareBalance, CalculatedTotalBalance, isCalculatedBalanceType, stripCompareAdditionalBalanceTypes, toCOABalanceType, toCOABalanceTypeStrict } from './commonStateTypes/coaBalance/coaBalanceType';
13
13
  import { COABalancesFilter, COABalancesOrder, COABalancesRange, COABalancesRangeWithThisPeriod, COABalancesSlice, newBalancesFilter, newBalancesFilterForDateRange, toCOABalancesOrderStrict } from './commonStateTypes/coaBalance/coaBalancesFilter';
14
14
  import { COABalancesFilterClassesView, newBalancesFilterClassesView } from './commonStateTypes/coaBalance/coaBalancesFilterClassesView';
15
15
  import { AccountViewMode, CompletionStatusType, FetchState, FetchStateAndError, FetchedState, ID, Mode, UpdateType } from './commonStateTypes/common';
16
+ import { defaultCustomerCurrency } from './commonStateTypes/currencyHelper';
16
17
  import { NestedCustomerHierarchy, NestedCustomerID } from './commonStateTypes/customerView/nestedCustomerID';
17
18
  import { getNumberOfPeriods } from './commonStateTypes/dataAvailable';
18
19
  import { ALL_FILE_TYPES, FileType, toFileTypeStrict } from './commonStateTypes/fileType';
@@ -24,7 +25,7 @@ import { getFYMonths } from './commonStateTypes/fiscalYearHelpers/getFYMonths';
24
25
  import { getFYQuarterAndYear, getLastMonthOfFYQuarter, getLastMonthOfFYYear } from './commonStateTypes/fiscalYearHelpers/getFYQuarterAndYear';
25
26
  import { getStartOfAndEndOfTimeframeForFY } from './commonStateTypes/fiscalYearHelpers/getStartOfAndEndOfTimeframeFY';
26
27
  import { COTLineItemTracking, COTRecommendationTracking, COTTransactionTracking, COTTransactionTrackingByTransactionId, Recommendation, RecommendationWithCOT, TransactionLineRecommendationFieldTypes } from './commonStateTypes/recommendationBase';
27
- import { isAllFetchCompleted, isAnyFetchInProgress, reduceAllFetchState, reduceAnyCompletedFetchState, reduceAnyFetchState, reduceFetchState } from './commonStateTypes/reduceFetchState';
28
+ import { isAllFetchCompleted, isAnyFetchInProgress, reduceAllFetchState, reduceAnyCompletedFetchState, reduceAnyFetchState, reduceFetchState, reduceFetchStateParallelTimeframes } from './commonStateTypes/reduceFetchState';
28
29
  import { toReimbursementTypeCode } from './commonStateTypes/reimbursementTypeCode';
29
30
  import { ClassesViewSelectorReportV2 } from './commonStateTypes/selectorTypes/classesViewSelectorReport';
30
31
  import { COABalancesSliceOrder, CalculatedSection, EntityOrder, Section, SectionWithAccountOnly, TransactionsOrder } from './commonStateTypes/selectorTypes/selectorTypes';
@@ -70,7 +71,7 @@ import { AdditionalChurnFactor, AdditionalChurnFactors, CompanyHealthMetric, Com
70
71
  import { ConnectedAccount } from './entity/connectedAccount/connectedAccount';
71
72
  import { Country } from './entity/countryList/countryListState';
72
73
  import { CountryWithCurrency } from './entity/currency/currency';
73
- import { Customer, CustomerBase, defaultCustomerCurrency } from './entity/customer/customerState';
74
+ import { Customer, CustomerBase } from './entity/customer/customerState';
74
75
  import { CustomerIncomeTrend } from './entity/customerIncome/customerIncomeTrend';
75
76
  import { CustomerSatisfactionInfo } from './entity/customerSatisfaction/customerSatisfactionSelectorReducerTypes';
76
77
  import { CustomerRatingCodeType, TeamRatingCodeType } from './entity/customerSatisfaction/customerSatisfactionState';
@@ -265,14 +266,15 @@ import { MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLine
265
266
  import { UploadStatementDocumentAIPayload, UploadStatementDocumentAIResponse } from './view/expenseAutomationView/payload/reconciliationPayload';
266
267
  import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFluxAnalysisView, updateFluxAnalysisViewPageMetaData, updateFluxAnalysisViewUIState, updateOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview } from './view/expenseAutomationView/reducers/fluxAnalysisViewReducer';
267
268
  import { clearJeScheduleLocalData as clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchJeSchedulesPage as fetchExpenseAutomationJESchedulesPage, ignoreRecommendedJeSchedule as ignoreExpenseAutomationJESchedule, initializeAccountSettingsView as initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryJeSchedule as retryExpenseAutomationJESchedule, saveAccountSettings as saveJeAccountSettings, saveAccountSettingsLocalData as saveJeAccountSettingsLocalData, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
268
- import { fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
269
+ import { acknowledgeBulkUploadConfirmMatchComplete, bulkUploadAutomatchingTimedOut, bulkUploadReceipts, bulkUploadReceiptsFailure, bulkUploadReceiptsSuccess, clearBulkUpload, clearManualSearchResults, clearMissingReceiptsTabNavigation, confirmBulkUploadMatch, confirmBulkUploadMatchFailure, confirmBulkUploadMatchSuccess, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsFailure, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatches, fetchBulkUploadBatchesFailure, fetchBulkUploadBatchesSuccess, fetchCompletedTransactions, fetchCompletedTransactionsFailure, fetchCompletedTransactionsSuccess, fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, searchTransactionsForManualMatch, searchTransactionsForManualMatchFailure, searchTransactionsForManualMatchSuccess, setBulkUploadCompletedSubTab, setBulkUploadResultsTab, setBulkUploadSortConfig, storeBatchDetails, updateBulkUploadProgress, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
269
270
  import { deleteAccountStatement, fetchReconciliation as fetchReconciliationView, saveReconciliationDetail as saveExpenseAutomationReconciliationDetail, saveReconciliationReview as saveExpenseAutomationReconciliationReview, setConnectionInProgressForAccount as setConnectionInProgressForAccountReconciliation, setStatementParseInProgress, updateAccountReconciliationLocalData as updateExpenseAutomationAccountReconciliationLocalData, updateSelectedAccountId as updateExpenseAutomationAccountReconciliationSelectedAccountId, updateSelectedTab as updateExpenseAutomationAccountReconciliationSelectedTab, updateReconListScrollPosition as updateExpenseAutomationReconListScrollPosition, updateReviewTabSortState as updateExpenseAutomationReconReviewTabListSortState, updateReviewTabLocalData as updateExpenseAutomationReconReviewTabLocalData, updateReconcileTabListScrollState as updateExpenseAutomationReconcileTabListScrollState, updateReconcileTabListSortState as updateExpenseAutomationReconcileTabListSortState, updateReconcileTabLocalData as updateExpenseAutomationReconcileTabLocalData, updateSelectedDrawerAccountId as updateExpenseAutomationSelectedDrawerAccountId, updateStatementUploadChosen, uploadAccountStatement } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
270
- import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markTransactionAsNotMiscategorized, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState } from './view/expenseAutomationView/reducers/transactionsViewReducer';
271
+ import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markTransactionAsNotMiscategorized, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess } from './view/expenseAutomationView/reducers/transactionsViewReducer';
271
272
  import { ExpenseAutomationStepDetails, ExpenseAutomationViewSelector } from './view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes';
272
273
  import { ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView } from './view/expenseAutomationView/selectorTypes/fluxAnalysisViewSelectorTypes';
273
274
  import { JEAccountSettingsView } from './view/expenseAutomationView/selectorTypes/jeAccountSettingsViewSelectorTypes';
274
275
  import { ExpenseAutomationJESchedulesViewSelector } from './view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes';
275
- import { ExpenseAutomationMissingReceiptsViewSelector } from './view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes';
276
+ import { BulkUploadSelectorData, ExpenseAutomationMissingReceiptsViewSelector } from './view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes';
277
+ import { CompletedTransactionsSelectorData, ResolvedBatchDetails, ResolvedBatchFile, ResolvedCandidate } from './view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes';
276
278
  import { AccountReconSectionID, AccountReconciliationByAccount, AccountReconciliationBySection, ExpenseAutomationReconciliationViewSelector } from './view/expenseAutomationView/selectorTypes/reconciliationViewSelectorTypes';
277
279
  import { ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView } from './view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes';
278
280
  import { getExpenseAutomationFluxAnalysisView } from './view/expenseAutomationView/selectors/fluxAnalysisViewSelector';
@@ -281,6 +283,7 @@ import { getExpenseAutomationReconciliationView, isAccountReconReport } from './
281
283
  import { getExpenseAutomationTransactionView } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
282
284
  import { FluxAnalysisActionType, FluxAnalysisReviewStatus, FluxAnalysisSortKey, FluxAnalysisViewUIState, FluxBalancesByMonth } from './view/expenseAutomationView/types/fluxAnalysisViewState';
283
285
  import { AccountSettingsLocalData, JEScheduleLocalData } from './view/expenseAutomationView/types/jeSchedulesViewState';
286
+ import { BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, MatchCandidate, MatchSource, MissingReceiptsTab, isUnmatchedTabFileStatus, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab } from './view/expenseAutomationView/types/missingReceiptsViewState';
284
287
  import { MissingReceiptsSortKey as ExpenseAutomationMissingReceiptsSortKey, MissingReceiptsViewState as ExpenseAutomationMissingReceiptsViewState, MissingReceiptsViewUIState as ExpenseAutomationMissingReceiptsViewUIState, toMissingReceiptsSortKey as toExpenseAutomationMissingReceiptsSortKey } from './view/expenseAutomationView/types/missingReceiptsViewState';
285
288
  import { AccountReconciliationLocalData, ReconciliationViewTabType as ExpenseAutomationReconciliationViewTab, ReconReconcileSortKey, ReconReviewSortKey, ReconciliationReconcileTabLocalData, ReconciliationReviewTabLocalData, SaveReconcileDetailActionPayload as SaveExpenseAutomationReconciliationActionType, toReconciliationTabsType } from './view/expenseAutomationView/types/reconciliationViewState';
286
289
  import { TransactionsTab as ExpenseAutomationTransactionsTab, TransactionsViewState as ExpenseAutomationTransactionsViewState, TransactionsViewUIState as ExpenseAutomationTransactionsViewUIState, SupportedTransactionCategorization, TransactionCategorizationLineItemData, TransactionReviewLocalData, TransactionsSortKey, TransactionsTab, toTransactionsTabKey as toExpenseAutomationTransactionsTabKey, toTransactionsSortKey } from './view/expenseAutomationView/types/transactionsViewState';
@@ -344,10 +347,12 @@ import { PeopleViewSortKey } from './view/people/peopleTypes';
344
347
  import { fetchProfitAndLoss, fetchProfitAndLossForTimeframe, resetProfitAndLossNodeCollapseState, updateProfitAndLossUIState } from './view/profitAndLoss/profitAndLossReducer';
345
348
  import { ProfitAndLossReport, getPandLReportFetchState, getProfitAndLossReport } from './view/profitAndLoss/profitAndLossSelector';
346
349
  import { ProfitAndLossState, ProfitAndLossUIState } from './view/profitAndLoss/profitAndLossState';
347
- import { fetchProfitAndLossClassesView, resetProfitAndLossClassesNodeCollapseState, updateAccountViewMode as updateProfitAndLossAccountViewMode, updateClassesToFilterOut as updateProfitAndLossClassesToFilterOut, updateProfitAndLossClassesViewUIState } from './view/profitAndLossClassesView/profitAndLossClassesViewReducer';
350
+ import { getProfitAndLossClassesHorizontalView } from './view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector';
351
+ import { ClassColumnDefinition, HORIZONTAL_CLASS_TOTAL_BALANCE_ID, HorizontalAccountReportData, HorizontalAccountRow, HorizontalCalculatedSection, HorizontalClassBalance, HorizontalSectionReport, HorizontalSectionTreeLayout, ProfitAndLossByClassHorizontalReport, isHorizontalAccountReportData } from './view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes';
352
+ import { fetchProfitAndLossClassesView, resetProfitAndLossClassesNodeCollapseState, updateClassViewLayout, updateAccountViewMode as updateProfitAndLossAccountViewMode, updateClassesToFilterOut as updateProfitAndLossClassesToFilterOut, updateProfitAndLossClassesViewUIState } from './view/profitAndLossClassesView/profitAndLossClassesViewReducer';
348
353
  import { getProfitAndLossClassesView } from './view/profitAndLossClassesView/profitAndLossClassesViewSelector';
349
354
  import { PandLReportViewCalculatedSectionID, PandLReportViewSectionID, ProfitAndLossClassesViewReport, isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID } from './view/profitAndLossClassesView/profitAndLossClassesViewSelectorTypes';
350
- import { ProfitAndLossClassesViewUIState } from './view/profitAndLossClassesView/profitAndLossClassesViewState';
355
+ import { ClassViewLayout, ProfitAndLossClassesViewUIState } from './view/profitAndLossClassesView/profitAndLossClassesViewState';
351
356
  import { fetchEntityRecommendationsByTransactionId, fetchRecommendationByEntityId, fetchRecommendationByEntityName } from './view/recommendation/recommendationReducer';
352
357
  import { clearReferrals, fetchReferrals, fetchRewardsPlan, resendReferralInvite, saveReferralFormDataInLocalStore, sendReferralInvite, updateReferViewed, updateReferralListSortUiState } from './view/referralView/referralReducer';
353
358
  import { ReferralListSelectorView, RewardsPlanCardReport, getInviteFormView, getReferralListView, getRewardsPlanCard } from './view/referralView/referralSelector';
@@ -615,13 +620,13 @@ export { COABalance, COABalanceWithPercent, COABalanceTimeFrame, COABalanceGroup
615
620
  export { COABalanceByAdditionalPeriodGrouped };
616
621
  export { COABalancesOrder, toCOABalancesOrderStrict, COABalancesRange, COABalancesRangeWithThisPeriod, COABalancesFilter, newBalancesFilter, newBalancesFilterForDateRange, COABalancesSlice, };
617
622
  export { newBalancesFilterClassesView, COABalancesFilterClassesView };
618
- export { CalculatedCompareBalance, CalculatedTotalBalance, CalculatedBalance, COABalanceType, toCOABalanceTypeStrict, toCOABalanceType as toCOABlanaceType, isCalculatedBalanceType, };
623
+ export { CalculatedCompareBalance, CalculatedTotalBalance, CalculatedBalance, COABalanceType, toCOABalanceTypeStrict, toCOABalanceType as toCOABlanaceType, isCalculatedBalanceType, stripCompareAdditionalBalanceTypes, };
619
624
  export { stringToUnion, stringToUnionStrict };
620
625
  export { TransactionsOrder, COABalancesSliceOrder, EntityOrder, Section, SectionWithAccountOnly, CalculatedSection, };
621
626
  export { ClassesViewSelectorReportV2 };
622
627
  export { BalancesTimeseries, TrendTimeseries, BalanceKind };
623
628
  export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, MonthClosePerformanceTrend, MonthEndCloseCheck, getMonthEndCloseChecksViewByTenantId, MonthEndCloseChecksView, MonthEndCloseCheckFrequency, MonthCloseCheckMetrics, ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, MonthEndAuditSummary, };
624
- export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, UploadStatementDocumentAIPayload, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
629
+ export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, BulkUploadSelectorData, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, isUnmatchedTabFileStatus, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, CompletedTransactionsSelectorData, MatchCandidate, MatchSource, MissingReceiptsTab, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, ResolvedBatchFile, ResolvedBatchDetails, ResolvedCandidate, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, UploadStatementDocumentAIPayload, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
625
630
  export { JEScheduleLocalData };
626
631
  export { ExpenseAutomationJESchedulesViewSelector, JEAccountSettingsView, JEScheduledTransactionWithFailedEntries, };
627
632
  export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateSelectedCheckboxTransactionIds, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, TransactionsSortKey, toTransactionsSortKey, TransactionsTab, TransactionCategorizationLineItemData, TransactionReviewLocalData, SupportedTransactionCategorization, ExpenseAutomationTransactionsViewState, ExpenseAutomationTransactionsViewUIState, ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView, };
@@ -662,7 +667,7 @@ export { fetchDashboard, getDashboard, DashboardReport, updateTreasuryVideoClose
662
667
  export { updateDashboardLayout };
663
668
  export { PandLWithForecastView, getPandLWithForecast, } from './view/profitAndLoss/pAndLWithForecast/pAndLWithForecastSelector';
664
669
  export { fetchProfitAndLoss, resetProfitAndLossNodeCollapseState, updateProfitAndLossUIState, ProfitAndLossState, ProfitAndLossUIState, getProfitAndLossReport, ProfitAndLossReport, getPandLReportFetchState, fetchProfitAndLossForTimeframe, };
665
- export { fetchProfitAndLossClassesView, updateProfitAndLossClassesToFilterOut, resetProfitAndLossClassesNodeCollapseState, updateProfitAndLossClassesViewUIState, updateProfitAndLossAccountViewMode, ProfitAndLossClassesViewUIState, ProfitAndLossClassesViewReport, getProfitAndLossClassesView, PandLReportViewSectionID, PandLReportViewCalculatedSectionID, isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID, };
670
+ export { fetchProfitAndLossClassesView, updateProfitAndLossClassesToFilterOut, resetProfitAndLossClassesNodeCollapseState, updateProfitAndLossClassesViewUIState, updateProfitAndLossAccountViewMode, updateClassViewLayout, ProfitAndLossClassesViewUIState, ProfitAndLossClassesViewReport, getProfitAndLossClassesView, getProfitAndLossClassesHorizontalView, PandLReportViewSectionID, PandLReportViewCalculatedSectionID, isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID, ClassViewLayout, ProfitAndLossByClassHorizontalReport, ClassColumnDefinition, HORIZONTAL_CLASS_TOTAL_BALANCE_ID, HorizontalAccountReportData, HorizontalAccountRow, HorizontalClassBalance, HorizontalSectionReport, HorizontalSectionTreeLayout, HorizontalCalculatedSection, isHorizontalAccountReportData, };
666
671
  export { AccountingProviderAttachmentSelector, getAccountingProviderAttachment };
667
672
  export { fetchUserListByType, getUserList, UserListSelectorView };
668
673
  export { fetchAllPeopleRequiredViews, fetchPeoplePage, fetchPeople, deletePerson, resendInvite, changeZeniPersonRoles, invitePeople, inviteZeniPeople, updatePeopleUIState, peopleSaveUpdates, resetUpdateErrorMessage, peopleSaveDataInLocalStore, peopleClearDataInLocalStore, PeopleSelectorView, PeopleLocalDataView, Person, getPeople, getPeopleLocalData, PeopleState, PersonUpdateType, PeoplePageMode, ZeniPersonUserRoleType, PeopleUIState, PeopleLocalData, initializeEditPerson, };
@@ -778,7 +783,7 @@ export { RemiDetailLocalData, AutoFields, OutofPocketReimbursementLineWithRecomm
778
783
  export { Merchant };
779
784
  export { fetchEditRemiDetailPage, fetchRecommendationsAndUpdateMerchantRecommendations, fetchRemiAndInitializeLocalStore, initializeRemiToLocalStore, saveRemiUpdatesToLocalStore, fetchCurrencyConversionValue, discardRemiUpdatesInLocalStore, removeFileFromRemiUpdatesInLocalStore, saveRemiDetail, saveRemiSuccessOrFailure, parseReceiptsToRemi, clearEditRemiViewDetail, updateAddRemiAutoFields, updateUploadFetchState, updateTentativeMerchantNames, clearTentativeMerchantName, updateReimbursementType, updateHomeCurrencyConversion, clearAddRemiAutoFields, };
780
785
  export { AnimationFileName };
781
- export { reduceFetchState, reduceAnyFetchState, reduceAllFetchState, reduceAnyCompletedFetchState, isAnyFetchInProgress, isAllFetchCompleted, SortOrder, ALL_FILE_TYPES, FileType, toFileTypeStrict, };
786
+ export { reduceFetchState, reduceFetchStateParallelTimeframes, reduceAnyFetchState, reduceAllFetchState, reduceAnyCompletedFetchState, isAnyFetchInProgress, isAllFetchCompleted, SortOrder, ALL_FILE_TYPES, FileType, toFileTypeStrict, };
782
787
  export { getNextNthWorkingDay, getPreviousNthWorkingDay, isHolidayToday, filterDays, getYearsList, isHoliday, holidaysFormatted, PAYMENT_BUSINESS_DAYS, };
783
788
  export { CustomerRatingCodeType, TeamRatingCodeType };
784
789
  export { CustomerSatisfactionInfo };
@@ -868,5 +873,7 @@ export { fetchTreasuryTaxLetterList } from './view/spendManagement/treasury/trea
868
873
  export { TreasuryTaxLettersSelectorView, getTreasuryTaxLetters, } from './view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListSelector';
869
874
  export { TreasuryTransactionStatus } from './view/spendManagement/treasury/treasuryList/treasuryDetailPayload';
870
875
  export type { TransactionActivityLog } from './entity/transactionActivityLog/transactionActivityLogState';
876
+ export { BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS, BULK_UPLOAD_BAR_COMPLETE_HOLD_MS, } from './view/expenseAutomationView/bulkUploadTiming';
871
877
  export { fetchTransactionActivityLog } from './view/transactionActivityLogView/transactionActivityLogViewReducer';
872
878
  export { TransactionActivityLogViewSelectorView, getTransactionActivityLogView, } from './view/transactionActivityLogView/transactionActivityLogViewSelector';
879
+ export { UserGroup } from './entity/userGroups/userGroupsState';