@zeniai/client-epic-state 5.3.8-beta0DI → 5.3.9

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 (78) hide show
  1. package/lib/entity/task/taskPayload.d.ts +0 -1
  2. package/lib/entity/task/taskPayload.js +0 -1
  3. package/lib/entity/task/taskReducer.d.ts +1 -4
  4. package/lib/entity/task/taskReducer.js +2 -19
  5. package/lib/entity/task/taskState.d.ts +0 -3
  6. package/lib/entity/tenant/epic/fetchAllTenantsEpic.js +45 -38
  7. package/lib/epic.d.ts +1 -4
  8. package/lib/epic.js +0 -9
  9. package/lib/esm/entity/task/taskPayload.js +0 -1
  10. package/lib/esm/entity/task/taskReducer.js +1 -18
  11. package/lib/esm/entity/tenant/epic/fetchAllTenantsEpic.js +46 -39
  12. package/lib/esm/epic.js +0 -9
  13. package/lib/esm/index.js +3 -6
  14. package/lib/esm/init.js +14 -3
  15. package/lib/esm/reducer.js +0 -6
  16. package/lib/esm/sessionEndpointsLoader.js +7 -0
  17. package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +0 -3
  18. package/lib/esm/view/taskManager/taskListView/taskList.js +0 -5
  19. package/lib/esm/view/taskManager/taskListView/taskListFilterHelpers.js +0 -2
  20. package/lib/esm/view/taskManager/taskListView/taskListViewHelpers.js +0 -37
  21. package/lib/esm/view/transactionDetail/createTransaction/createTransactionPayload.js +14 -2
  22. package/lib/esm/view/transactionDetail/createTransaction/createTransactionSelector.js +21 -2
  23. package/lib/index.d.ts +4 -7
  24. package/lib/index.js +53 -66
  25. package/lib/init.d.ts +9 -0
  26. package/lib/init.js +17 -4
  27. package/lib/reducer.d.ts +0 -2
  28. package/lib/reducer.js +0 -6
  29. package/lib/rootStateTypes.d.ts +0 -4
  30. package/lib/sessionEndpointsLoader.d.ts +9 -0
  31. package/lib/sessionEndpointsLoader.js +11 -0
  32. package/lib/view/taskManager/taskDetailView/taskDetailSelector.d.ts +0 -4
  33. package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +0 -3
  34. package/lib/view/taskManager/taskListView/taskList.d.ts +1 -1
  35. package/lib/view/taskManager/taskListView/taskList.js +0 -5
  36. package/lib/view/taskManager/taskListView/taskListFilterHelpers.js +0 -2
  37. package/lib/view/taskManager/taskListView/taskListViewHelpers.d.ts +1 -1
  38. package/lib/view/taskManager/taskListView/taskListViewHelpers.js +0 -37
  39. package/lib/view/transactionDetail/createTransaction/createTransactionPayload.d.ts +10 -6
  40. package/lib/view/transactionDetail/createTransaction/createTransactionPayload.js +14 -2
  41. package/lib/view/transactionDetail/createTransaction/createTransactionSelector.d.ts +4 -1
  42. package/lib/view/transactionDetail/createTransaction/createTransactionSelector.js +21 -2
  43. package/lib/view/transactionDetail/createTransaction/createTransactionState.d.ts +1 -1
  44. package/lib/zeniAPI.d.ts +2 -2
  45. package/package.json +1 -1
  46. package/lib/entity/timeEntry/timeEntryPayload.d.ts +0 -26
  47. package/lib/entity/timeEntry/timeEntryPayload.js +0 -2
  48. package/lib/entity/timeEntry/timeEntryReducer.d.ts +0 -8
  49. package/lib/entity/timeEntry/timeEntryReducer.js +0 -76
  50. package/lib/entity/timeEntry/timeEntrySelector.d.ts +0 -10
  51. package/lib/entity/timeEntry/timeEntrySelector.js +0 -32
  52. package/lib/entity/timeEntry/timeEntryState.d.ts +0 -43
  53. package/lib/entity/timeEntry/timeEntryState.js +0 -13
  54. package/lib/esm/entity/timeEntry/timeEntryPayload.js +0 -1
  55. package/lib/esm/entity/timeEntry/timeEntryReducer.js +0 -70
  56. package/lib/esm/entity/timeEntry/timeEntrySelector.js +0 -23
  57. package/lib/esm/entity/timeEntry/timeEntryState.js +0 -8
  58. package/lib/esm/view/taskManager/timeEntryView/epic/fetchTaskCategoriesEpic.js +0 -24
  59. package/lib/esm/view/taskManager/timeEntryView/epic/fetchTimeEntriesEpic.js +0 -73
  60. package/lib/esm/view/taskManager/timeEntryView/epic/writeTimeEntryEpic.js +0 -77
  61. package/lib/esm/view/taskManager/timeEntryView/timeEntryViewPayload.js +0 -1
  62. package/lib/esm/view/taskManager/timeEntryView/timeEntryViewReducer.js +0 -160
  63. package/lib/esm/view/taskManager/timeEntryView/timeEntryViewSelector.js +0 -41
  64. package/lib/esm/view/taskManager/timeEntryView/timeEntryViewState.js +0 -1
  65. package/lib/view/taskManager/timeEntryView/epic/fetchTaskCategoriesEpic.d.ts +0 -18
  66. package/lib/view/taskManager/timeEntryView/epic/fetchTaskCategoriesEpic.js +0 -28
  67. package/lib/view/taskManager/timeEntryView/epic/fetchTimeEntriesEpic.d.ts +0 -23
  68. package/lib/view/taskManager/timeEntryView/epic/fetchTimeEntriesEpic.js +0 -78
  69. package/lib/view/taskManager/timeEntryView/epic/writeTimeEntryEpic.d.ts +0 -23
  70. package/lib/view/taskManager/timeEntryView/epic/writeTimeEntryEpic.js +0 -83
  71. package/lib/view/taskManager/timeEntryView/timeEntryViewPayload.d.ts +0 -27
  72. package/lib/view/taskManager/timeEntryView/timeEntryViewPayload.js +0 -2
  73. package/lib/view/taskManager/timeEntryView/timeEntryViewReducer.d.ts +0 -48
  74. package/lib/view/taskManager/timeEntryView/timeEntryViewReducer.js +0 -164
  75. package/lib/view/taskManager/timeEntryView/timeEntryViewSelector.d.ts +0 -24
  76. package/lib/view/taskManager/timeEntryView/timeEntryViewSelector.js +0 -46
  77. package/lib/view/taskManager/timeEntryView/timeEntryViewState.d.ts +0 -21
  78. package/lib/view/taskManager/timeEntryView/timeEntryViewState.js +0 -5
package/lib/esm/index.js CHANGED
@@ -75,7 +75,6 @@ import { getTaskGroupById } from './entity/taskGroup/taskGroupSelector';
75
75
  import { deleteConnection, doMagicLinkSignIn, doSignIn, doSignOut, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, initEmailConnectOAuth, resendVerifyDeviceOTP, resetSignInState, saveAPIKeyConnection, saveConnectorCredentials, saveExternalConnection as saveExternalConnectionForTenant, saveOAuthConnection, sendEmailMagicLinkToUser, sendSessionHeartbeat, toExternalIntegrationType, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA, } from './entity/tenant/tenantReducer';
76
76
  import { DEFAULT_RECEIPTS_EMAIL, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getIsAutoReviewIncomeWithoutCustomerEnabled, getReceiptsEmail, getTenantBaseById, getTenantBaseViewForTenantId, getTenantBaseViewForTenantView, getTenantsBaseByCheckInDateSelector, getTenantsByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, isOtherProductsEnabledForTenant, isTenantBankingOnly, isTenantBookkeepingEnabled, isTenantCardsOnly, isTenantUsingZeniCOA, isZeniDomainTenant, toTenantCoreDetailsView, } from './entity/tenant/tenantSelector';
77
77
  import { toExternalSupportedTool } from './entity/tenant/tenantTypes';
78
- import { getTaskCategories, getTaskCategoryById, } from './entity/timeEntry/timeEntrySelector';
79
78
  import { pushToastNotification } from './entity/toastNotification/toastNotificationReducer';
80
79
  import { getLastNotificationTime, getNotifications, } from './entity/toastNotification/toastNotificationSelector';
81
80
  import { mapFileEntityToAttachment, toContentType, toContentTypeStrict, } from './entity/transaction/stateTypes/attachment';
@@ -91,7 +90,7 @@ import { getUserRoleMap, hasAICFOAccess, hasAdminLevelAccess, hasAnyCompanyRole,
91
90
  import { updateVendors } from './entity/vendor/vendorReducer';
92
91
  import { defaultVendorCurrency, } from './entity/vendor/vendorState';
93
92
  import { VendorExpenseTrend } from './entity/vendorExpense/vendorExpenseTrend';
94
- import initialize, { disconnectPusher, initializePusher, initializeWithNewStore, injectFeatureEpics, injectFeatureModules, updateZeniAPIClientConfig, zeniAPIClientConfig, } from './init';
93
+ import initialize, { disconnectPusher, initializePusher, initializeWithNewStore, injectFeatureEpics, injectFeatureModules, setSessionEndpointsLoader, updateZeniAPIClientConfig, updateZeniAPIEndpoints, zeniAPIClientConfig, } from './init';
95
94
  import { isAccessDeniedError, isInvalidSessionError, isSuccessResponse, } from './responsePayload';
96
95
  import { clearAll } from './rootActions';
97
96
  import { fetchAccountList } from './view/accountList/accountListReducer';
@@ -422,8 +421,6 @@ import { ALL_TASK_LIST_TABS, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CAT
422
421
  import { bulkUpdateTaskList, dragNDropTasks, fetchTaskList, fetchTaskListPage, initiateTaskListLocalData, removeTaskFromList, updateTaskFilters, updateTaskFromListView, updateTaskListLocalData, updateTaskListSearchText, updateTaskListTab, updateTaskListUIState, } from './view/taskManager/taskListView/taskListReducer';
423
422
  import { getAllTasks, } from './view/taskManager/taskListView/taskListSelector';
424
423
  import { getDueDateValueFromDueDateGroupId, getTaskUpdates, sortSubtasks, } from './view/taskManager/taskListView/taskListViewHelpers';
425
- import { deleteTimeEntry, fetchTaskCategories, fetchTimeEntriesForRange, fetchTimeEntriesForTask, logTime, updateTimeEntryMinutes, } from './view/taskManager/timeEntryView/timeEntryViewReducer';
426
- import { getTimeEntriesForRange, getTimeEntriesForTask, getTimeEntrySaveState, } from './view/taskManager/timeEntryView/timeEntryViewSelector';
427
424
  import { fetchTasksCard } from './view/tasksCard/tasksCardReducer';
428
425
  import { fetchTopEx, updateTopExDownloadState, updateTopExTimeFrame, } from './view/topEx/topExReducer';
429
426
  import { getAllTopExpenses, getTop6Expenses, getTopExpenses, } from './view/topEx/topExSelector';
@@ -488,7 +485,7 @@ export { updateCreditAgentMacro, updateCreditAgentRow, updateCreditAgentRows, }
488
485
  export { getCreditAgentRows, getCreditAgentMacroEntity, } from './entity/creditAgent/creditAgentSelector';
489
486
  export { saveJeAccountSettings, saveJeAccountSettingsLocalData };
490
487
  export default initialize;
491
- export { initializePusher, disconnectPusher, Dayjs, dateInLocal as zeniDateInLocal, date as zeniDate, dateLocal, dateNow, getBusinessDayOfDate, formatZeniDateFY as formatZeniDate, getFYMonths, getFYQuarterAndYear, getStartOfAndEndOfTimeframeForFY, getActualPeriodOfFYQtr, getActualPeriodOfFY, getLocalTimezone, addPeriod, subtractPeriod, setLocalTimezone, updateZeniDateLocaleID, toZeniUrl, toZeniUrlWithoutBaseURL, updateZeniAPIClientConfig, zeniAPIClientConfig, injectFeatureEpics, injectFeatureModules, initializeWithNewStore, getTimeframeTickTag, isIncompleteMonthPresentInTimeframeTick, getLastMonthOfFYQuarter, getLastMonthOfFYYear, getMonthIndex, dateFromYearMonthDate, getMinDate, };
488
+ export { initializePusher, disconnectPusher, Dayjs, dateInLocal as zeniDateInLocal, date as zeniDate, dateLocal, dateNow, getBusinessDayOfDate, formatZeniDateFY as formatZeniDate, getFYMonths, getFYQuarterAndYear, getStartOfAndEndOfTimeframeForFY, getActualPeriodOfFYQtr, getActualPeriodOfFY, getLocalTimezone, addPeriod, subtractPeriod, setLocalTimezone, updateZeniDateLocaleID, toZeniUrl, toZeniUrlWithoutBaseURL, updateZeniAPIClientConfig, updateZeniAPIEndpoints, setSessionEndpointsLoader, zeniAPIClientConfig, injectFeatureEpics, injectFeatureModules, initializeWithNewStore, getTimeframeTickTag, isIncompleteMonthPresentInTimeframeTick, getLastMonthOfFYQuarter, getLastMonthOfFYYear, getMonthIndex, dateFromYearMonthDate, getMinDate, };
492
489
  export { toAmount };
493
490
  export { toReportID, toReportFormatStrict, isCashFlowOrBalanceSheetReport, isBalanceSheetReport, isBalanceSheetClassesViewReport, isBalanceSheetProjectViewReport, isCashFlowClassesViewReport, isCashFlowProjectViewReport, isCashFlowReport, isGroupedCashFlowReport, isGroupedBalanceSheetReport, isDashboardReport, isDashboardClassesViewReport, isDashboardProjectViewReport, isPAndLReport, isPAndLClassesViewReport, isPAndLProjectViewReport, isAgingReport, isOpExByVendorReport, isFluxAnalysisOpExReport, };
494
491
  export { toCOABalanceTimeframe, };
@@ -681,7 +678,7 @@ export { fetchGlobalMerchantRecommendation, createGlobalMerchant, updateCreateGl
681
678
  export { approveVendorGlobalReview, rejectVendorGlobalReview, fetchVendorGlobalReviewView, updateSelectedGlobalMerchant, updateVendorGlobalReviewViewUIState, getVendorGlobalReviewView, getTenantMerchantByMerchantId, toVendorGlobalReviewColumnSortKeyType, updateVendorGlobalReviewViewLocalData, };
682
679
  export { fetchArAging, updateArAgingUIState, fetchArAgingDetail, updateArAgingDetailUIState, getArAgingReport, getArAgingDetailForCustomer, updateArAgingNodeCollapseState, };
683
680
  export { toRecurringBillFrequency, toRecurringBillFrequencyStrict, };
684
- export { getTaskGroupById, getAllTasks, getTaskCategories, getTaskCategoryById, getTimeEntriesForRange, getTimeEntriesForTask, getTimeEntrySaveState, fetchTimeEntriesForTask, fetchTimeEntriesForRange, fetchTaskCategories, logTime, updateTimeEntryMinutes, deleteTimeEntry, fetchTaskList, fetchTaskListPage, getTaskDetail, fetchTaskDetailPage, saveTaskUpdatesToLocalStore, saveTaskDetail, createSubTask, resetSubTaskCreateStatus, fetchSubTasks, archiveTask, fetchCannedResponses, saveCannedResponse, deleteCannedResponse, getCannedResponsesView, updateTaskListSearchText, updateTaskListUIState, allTaskStatus, allTaskPriority, updateTaskFilters, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CATEGORIES, deleteTask, discardTaskUpdatesInLocalStore, bulkUpdateTaskList, createNewTaskGroup, initiateTaskListLocalData, deleteTaskGroup, updateTaskListLocalData, dragNDropTasks, updateTaskGroupName, toTaskListGroupByKeyType, toTaskListGroupByKeyTypeStrict, getTaskUpdates, sortSubtasks, fetchAllTaskGroups, initialTaskDetail, getDueDateValueFromDueDateGroupId, toPriorityCodeType, toTaskStatusCodeType, toDueDateGroupKeyType, updateTaskFromListView, updateTaskListTab, removeTaskFromList, snoozeTask, unsnoozeTask, convertHHMMStrToMinutes, initialTaskDetailLocalData, ALL_TASK_LIST_TABS, };
681
+ export { getTaskGroupById, getAllTasks, fetchTaskList, fetchTaskListPage, getTaskDetail, fetchTaskDetailPage, saveTaskUpdatesToLocalStore, saveTaskDetail, createSubTask, resetSubTaskCreateStatus, fetchSubTasks, archiveTask, fetchCannedResponses, saveCannedResponse, deleteCannedResponse, getCannedResponsesView, updateTaskListSearchText, updateTaskListUIState, allTaskStatus, allTaskPriority, updateTaskFilters, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CATEGORIES, deleteTask, discardTaskUpdatesInLocalStore, bulkUpdateTaskList, createNewTaskGroup, initiateTaskListLocalData, deleteTaskGroup, updateTaskListLocalData, dragNDropTasks, updateTaskGroupName, toTaskListGroupByKeyType, toTaskListGroupByKeyTypeStrict, getTaskUpdates, sortSubtasks, fetchAllTaskGroups, initialTaskDetail, getDueDateValueFromDueDateGroupId, toPriorityCodeType, toTaskStatusCodeType, toDueDateGroupKeyType, updateTaskFromListView, updateTaskListTab, removeTaskFromList, snoozeTask, unsnoozeTask, convertHHMMStrToMinutes, initialTaskDetailLocalData, ALL_TASK_LIST_TABS, };
685
682
  export { getAllTags, fetchTagList, createTag, deleteTag, };
686
683
  export { getAllCardsAndBankPaymentMethods, createCardSetupIntent, confirmCardSetupIntent, addCardPaymentSource, fetchPaymentSources, resetCardPaymentErrorStatuses, clearCardPaymentView, };
687
684
  export { getAuditReportGroupViewSelectorView, getAuditRuleGroupViewSelectorView, getUserFromAllUsers, fetchAuditRuleGroupView, fetchAuditReportGroupView, saveReasonForAuditRule, clearAuditReportGroupViewByCompanyId, };
package/lib/esm/init.js CHANGED
@@ -2,6 +2,7 @@ import configureNewStore from './configureStore';
2
2
  import { ZeniAPIClient } from './zeniAPI';
3
3
  import { setZeniAPIClient, zeniAPI } from './zeniAPIClientState';
4
4
  export { zeniAPI } from './zeniAPIClientState';
5
+ export { setSessionEndpointsLoader } from './sessionEndpointsLoader';
5
6
  export { disconnectPusher, initializePusher, pusher } from './pusherClient';
6
7
  export let store;
7
8
  let initialized = false;
@@ -13,11 +14,10 @@ let initialized = false;
13
14
  */
14
15
  export default function initialize(restEndPoints, userId, sessionId, tenantId, isSandboxEnv, onSessionInvalidated) {
15
16
  if (initialized) {
16
- console.warn(`Already initialized with url ${JSON.stringify(zeniAPI.apiEndPoints)}`);
17
+ console.warn('client-epic-state is already initialized');
17
18
  return store;
18
19
  }
19
20
  initialized = true;
20
- console.info(`initializing with ${JSON.stringify(restEndPoints)}`);
21
21
  initialize3rdPartyExtensions();
22
22
  setZeniAPIClient(new ZeniAPIClient(restEndPoints, userId, sessionId, tenantId, onSessionInvalidated));
23
23
  store = configureNewStore(zeniAPI, isSandboxEnv);
@@ -35,6 +35,18 @@ export { injectFeatureModules, injectFeatureEpics } from './configureStore';
35
35
  export function updateZeniAPIClientConfig(userId, sessionId, tenantId) {
36
36
  zeniAPI.update(userId, sessionId, tenantId);
37
37
  }
38
+ /**
39
+ * Replace the REST endpoints the API client calls. Epics read the endpoints
40
+ * at request time, so every request made after this uses the new ones.
41
+ * Note: This version SHOULD BE used only in the client side.
42
+ * @param restEndPoints
43
+ */
44
+ export function updateZeniAPIEndpoints(restEndPoints) {
45
+ if (zeniAPI == null) {
46
+ throw new Error('Call initialize() before updateZeniAPIEndpoints()');
47
+ }
48
+ zeniAPI.apiEndPoints = restEndPoints;
49
+ }
38
50
  /**
39
51
  * Returns current Zeni REST API client config.
40
52
  * @returns
@@ -61,7 +73,6 @@ export function zeniAPIClientConfig() {
61
73
  * @param tenantId tenant id
62
74
  */
63
75
  export async function initializeWithNewStore(restEndPoints, userId, sessionId, tenantId) {
64
- console.info(`initializeWithNewStore with ${JSON.stringify(restEndPoints)}`);
65
76
  initialize3rdPartyExtensions();
66
77
  const zeniHttpClient = new ZeniAPIClient(restEndPoints, userId, sessionId, tenantId);
67
78
  const store = configureNewStore(zeniHttpClient, false);
@@ -70,7 +70,6 @@ import taskGroup, { initialState as initialTaskGroupState, } from './entity/task
70
70
  import taskGroupTemplate, { initialState as initialTaskGroupTemplateState, } from './entity/taskGroupTemplate/taskGroupTemplateReducer';
71
71
  import taskSummary, { initialState as initailTaskSummaryState, } from './entity/taskSummary/taskSummaryReducer';
72
72
  import tenant, { initialState as initialTenantState, } from './entity/tenant/tenantReducer';
73
- import timeEntry, { initialState as initialTimeEntryState, } from './entity/timeEntry/timeEntryReducer';
74
73
  import toastNotification, { initialState as initialToastNotificationState, } from './entity/toastNotification/toastNotificationReducer';
75
74
  import transaction, { initialState as initialTransactionState, } from './entity/transaction/transactionReducer';
76
75
  import transactionActivityLog, { initialState as initialTransactionActivityLogState, } from './entity/transactionActivityLog/transactionActivityLogReducer';
@@ -256,7 +255,6 @@ import taskDetailView, { initialState as initialTaskDetailState, } from './view/
256
255
  import taskGroupTemplateView, { initialState as initialTaskGroupTemplateViewState, } from './view/taskManager/taskGroupTemplateView/taskGroupTemplateViewReducer';
257
256
  import taskGroupView, { initialState as initialTaskGroupViewState, } from './view/taskManager/taskGroupView/taskGroupViewReducer';
258
257
  import taskList, { initialState as initialTaskListState, } from './view/taskManager/taskListView/taskListReducer';
259
- import timeEntryView, { initialState as initialTimeEntryViewState, } from './view/taskManager/timeEntryView/timeEntryViewReducer';
260
258
  import tasksCard, { initialState as initialTasksCardState, } from './view/tasksCard/tasksCardReducer';
261
259
  import topEx, { initialState as initialTopExState, } from './view/topEx/topExReducer';
262
260
  import transactionActivityLogView, { initialState as initialTransactionActivityLogViewState, } from './view/transactionActivityLogView/transactionActivityLogViewReducer';
@@ -345,7 +343,6 @@ const initialEntitiesState = {
345
343
  subscriptionState: initialSubscriptionState,
346
344
  subscriptionSummaryState: initialSubscriptionSummaryState,
347
345
  tagState: initialTagState,
348
- timeEntryState: initialTimeEntryState,
349
346
  taskGroupState: initialTaskGroupState,
350
347
  taskGroupTemplateState: initialTaskGroupTemplateState,
351
348
  taskState: initialTaskState,
@@ -527,7 +524,6 @@ const initialViewsState = {
527
524
  taskGroupTemplateViewState: initialTaskGroupTemplateViewState,
528
525
  taskGroupViewState: initialTaskGroupViewState,
529
526
  taskListState: initialTaskListState,
530
- timeEntryViewState: initialTimeEntryViewState,
531
527
  tasksCardState: initialTasksCardState,
532
528
  topExState: initialTopExState,
533
529
  transactionActivityLogViewState: initialTransactionActivityLogViewState,
@@ -636,7 +632,6 @@ const entityReducers = {
636
632
  subscriptionState: subscription,
637
633
  subscriptionSummaryState: subscriptionSummary,
638
634
  tagState: tag,
639
- timeEntryState: timeEntry,
640
635
  taskGroupState: taskGroup,
641
636
  taskGroupTemplateState: taskGroupTemplate,
642
637
  taskState: task,
@@ -817,7 +812,6 @@ const viewReducers = {
817
812
  taskGroupTemplateViewState: taskGroupTemplateView,
818
813
  taskGroupViewState: taskGroupView,
819
814
  taskListState: taskList,
820
- timeEntryViewState: timeEntryView,
821
815
  tagViewState: tagView,
822
816
  tasksCardState: tasksCard,
823
817
  topExState: topEx,
@@ -0,0 +1,7 @@
1
+ let sessionEndpointsLoader;
2
+ export function setSessionEndpointsLoader(loader) {
3
+ sessionEndpointsLoader = loader;
4
+ }
5
+ export function getSessionEndpointsLoader() {
6
+ return sessionEndpointsLoader;
7
+ }
@@ -26,7 +26,6 @@ export const getTaskDetail = (state, taskId) => {
26
26
  let isDeleted = undefined;
27
27
  let depth = undefined;
28
28
  let recurringSourceTaskId = undefined;
29
- let taskCategoryId = undefined;
30
29
  let snoozedUntil = undefined;
31
30
  let taskGroupId = undefined;
32
31
  let subtasks = [];
@@ -40,7 +39,6 @@ export const getTaskDetail = (state, taskId) => {
40
39
  if (taskEntity != null) {
41
40
  createdByUser = getUserAndUserRole(userState, userRoleState, addressState, taskEntity.createdBy);
42
41
  depth = taskEntity.depth;
43
- taskCategoryId = taskEntity.taskCategoryId;
44
42
  isArchived = taskEntity.isArchived;
45
43
  isDeleted = taskEntity.isDeleted;
46
44
  recurringSourceTaskId = taskEntity.recurringSourceTaskId;
@@ -105,7 +103,6 @@ export const getTaskDetail = (state, taskId) => {
105
103
  version: 0,
106
104
  createdByUser,
107
105
  depth,
108
- taskCategoryId,
109
106
  isArchived,
110
107
  isDeleted,
111
108
  recurringSourceTaskId,
@@ -47,11 +47,6 @@ export const TASK_LIST_FILTER_CATEGORIES = [
47
47
  type: 'user',
48
48
  multiple: true,
49
49
  },
50
- {
51
- value: 'createdBy',
52
- type: 'user',
53
- multiple: true,
54
- },
55
50
  { value: 'creationDate', type: 'dateRange', multiple: true },
56
51
  ];
57
52
  export const TASK_LIST_GROUP_BY_CATEGORIES = [
@@ -12,8 +12,6 @@ export const getCategoryValueForTaskList = (key, task) => {
12
12
  return task.createTime;
13
13
  case 'assignee':
14
14
  return task.assignees;
15
- case 'createdBy':
16
- return task.createdBy;
17
15
  default:
18
16
  return undefined;
19
17
  }
@@ -1,4 +1,3 @@
1
- import { convertHHMMStrToMinutes } from '../../../commonStateTypes/fiscalYearHelpers/formatMinutesToFromHHMM';
2
1
  import { dateNow } from '../../../zeniDayJS';
3
2
  import { allTaskPriority, allTaskStatus, } from '../taskDetailView/taskDetailSelector';
4
3
  import { toDueDateGroupKeyType } from './taskList';
@@ -64,11 +63,6 @@ export const sortSubtasks = (subtasks, sortKey, sortOrder, userList, tagList) =>
64
63
  return acc;
65
64
  }, {});
66
65
  const unknownStatusRank = allTaskStatus.length;
67
- const priorityOrder = allTaskPriority.reduce((acc, priority, index) => {
68
- acc[priority.code] = index;
69
- return acc;
70
- }, {});
71
- const unknownPriorityRank = allTaskPriority.length;
72
66
  const cmpStr = (a, b) => a.localeCompare(b, undefined, { sensitivity: 'base' });
73
67
  const keyFn = (task) => {
74
68
  if (sortKey === 'name') {
@@ -95,37 +89,6 @@ export const sortSubtasks = (subtasks, sortKey, sortOrder, userList, tagList) =>
95
89
  const tag = tagList.find((candidate) => candidate.tagId === firstTagId);
96
90
  return tag?.name ?? '';
97
91
  }
98
- if (sortKey === 'priority') {
99
- // Rank by the canonical order, not the code string: alphabetical would
100
- // sort "high" before "urgent" and read as wrong to anyone scanning it.
101
- return priorityOrder[task.priority?.code] ?? unknownPriorityRank;
102
- }
103
- if (sortKey === 'dueDate') {
104
- // A task with no date is not "earliest", so undated rows belong at the
105
- // bottom in BOTH directions. The comparator negates for 'desc', so one
106
- // fixed sentinel would flip them to the top — the sentinel has to flip
107
- // with the order to survive that negation.
108
- // `dueDate` is already a ZeniDate (dayjs), so valueOf() is the epoch.
109
- // An unparseable date yields NaN, and a NaN comparator leaves the array
110
- // untouched -- the same silent failure the timeSpent branch guards.
111
- // Treat it as undated rather than as a date.
112
- const due = task.dueDate;
113
- const epoch = due?.valueOf();
114
- if (epoch == null || Number.isNaN(epoch)) {
115
- return sortOrder === 'asc'
116
- ? Number.MAX_SAFE_INTEGER
117
- : Number.MIN_SAFE_INTEGER;
118
- }
119
- return epoch;
120
- }
121
- if (sortKey === 'timeSpent') {
122
- // `timeSpent` is an "HHMM" STRING (no colon). Comparing it as text puts
123
- // "1000" before "0900" only by luck of padding, and any malformed value
124
- // makes the converter return NaN -- which a comparator turns into "no
125
- // sort at all", silently. Coerce that to 0.
126
- const minutes = convertHHMMStrToMinutes(task.timeSpent ?? '');
127
- return Number.isFinite(minutes) ? minutes : 0;
128
- }
129
92
  return '';
130
93
  };
131
94
  const copy = [...subtasks];
@@ -4,6 +4,10 @@ import { getClassById } from '../../../entity/class/classSelector';
4
4
  import { toProjectBasePayload, } from '../../../entity/project/projectPayload';
5
5
  import { getProjectById } from '../../../entity/project/projectSelector';
6
6
  import { getVendorByQboId, getVendorByVendorId, } from '../../../entity/vendor/vendorSelector';
7
+ const POSTING_TYPE_NAME = {
8
+ credit: 'Credit',
9
+ debit: 'Debit',
10
+ };
7
11
  const toRemitToAddressPayload = (address) => {
8
12
  if (address == null) {
9
13
  return undefined;
@@ -35,10 +39,12 @@ const toLinePayload = (state, line, transactionType) => {
35
39
  });
36
40
  }
37
41
  if (transactionType === 'journal_entry') {
38
- lineDetail.posting_type = line.postingType;
42
+ if (line.postingType != null) {
43
+ lineDetail.posting_type_name = POSTING_TYPE_NAME[line.postingType];
44
+ }
39
45
  const vendorQboId = toQboLineVendorId(state, line.vendorQboId);
40
46
  if (vendorQboId != null) {
41
- lineDetail.vendor = { qbo_id: vendorQboId };
47
+ lineDetail.vendor = { vendor_id: vendorQboId };
42
48
  }
43
49
  }
44
50
  return {
@@ -128,6 +134,10 @@ export const prepareCreateTransactionPayload = (state, localData) => {
128
134
  if (transactionType === 'journal_entry') {
129
135
  return {
130
136
  ...base,
137
+ ...(localData.documentNumber != null &&
138
+ localData.documentNumber !== '' && {
139
+ document_id: localData.documentNumber,
140
+ }),
131
141
  lines,
132
142
  };
133
143
  }
@@ -141,6 +151,8 @@ export const prepareCreateTransactionPayload = (state, localData) => {
141
151
  if (transactionType === 'check') {
142
152
  return {
143
153
  ...purchaseBase,
154
+ // The form has no payment method field for a check; qbo_purchase.py still requires it.
155
+ payment_type: 'check',
144
156
  document_number: localData.documentNumber,
145
157
  print_status: localData.printStatus,
146
158
  remit_to_address: toRemitToAddressPayload(localData.remitToAddress),
@@ -1,4 +1,5 @@
1
1
  import { createSelector } from '@reduxjs/toolkit';
2
+ import { getAccountBase } from '../../../entity/account/accountSelector';
2
3
  import { getAccountListFetchState, getNestedAccountListHierarchy, } from '../../accountList/accountListSelector';
3
4
  import { getNestedClassListHierarchy } from '../../classList/classListSelector';
4
5
  import { getResolvedTransferAccounts } from '../../createTransferEntry/createTransferEntrySelector';
@@ -22,6 +23,23 @@ export const getCreateTransactionVendorRecommendations = (state, vendorQboId) =>
22
23
  recommendations: view.recommendations,
23
24
  };
24
25
  };
26
+ /**
27
+ * QBO sub-accounts share their parent's type, so filtering the root nodes keeps whole subtrees.
28
+ *
29
+ * Memoized on its own: createTransactionsState changes on every keystroke, which re-runs the view
30
+ * projection, and the filter would otherwise hand the dropdown a new array each time.
31
+ */
32
+ const getPaymentAccountListNestedAccountHierarchy = createSelector([
33
+ (state) => getNestedAccountListHierarchy(state.accountListState, 'createTransactionPaymentAccountList'),
34
+ (state) => state.accountState,
35
+ (_state, transactionType) => transactionType,
36
+ ], (hierarchy, accountState, transactionType) => {
37
+ if (transactionType !== 'check') {
38
+ return hierarchy;
39
+ }
40
+ return hierarchy.filter((node) => getAccountBase(accountState, node.accountId[0], 'account_list')
41
+ ?.accountType === 'bank');
42
+ });
25
43
  /**
26
44
  * Memoized: app-ui reads this straight from useSelector, and the vendor list and hierarchies are
27
45
  * rebuilt on every call, so an unmemoized version re-renders the page on every store action.
@@ -30,10 +48,11 @@ export const getCreateTransactionView = createSelector([
30
48
  (state) => state.transactionDetailState.createTransactionsState,
31
49
  (state) => state.vendorState.vendorByID,
32
50
  (state) => state.accountListState,
51
+ getPaymentAccountListNestedAccountHierarchy,
33
52
  (state) => state.classListState,
34
53
  (state) => getResolvedTransferAccounts(state).transferAccountsList,
35
54
  (_state, transactionType) => transactionType,
36
- ], (createTransactionsState, vendorByID, accountListState, classListState, transferAccountsList, transactionType) => ({
55
+ ], (createTransactionsState, vendorByID, accountListState, paymentAccountListNestedAccountHierarchy, classListState, transferAccountsList, transactionType) => ({
37
56
  transactionType,
38
57
  localData: createTransactionsState.newTransactionState[transactionType],
39
58
  createStatus: createTransactionsState.createStatus,
@@ -43,7 +62,7 @@ export const getCreateTransactionView = createSelector([
43
62
  lineAccountListFetchState: getAccountListFetchState(accountListState, 'createTransactionLineAccountList'),
44
63
  paymentAccountListFetchState: getAccountListFetchState(accountListState, 'createTransactionPaymentAccountList'),
45
64
  accountListNestedAccountHierarchy: getNestedAccountListHierarchy(accountListState, 'createTransactionLineAccountList'),
46
- paymentAccountListNestedAccountHierarchy: getNestedAccountListHierarchy(accountListState, 'createTransactionPaymentAccountList'),
65
+ paymentAccountListNestedAccountHierarchy,
47
66
  classListNestedAccountHierarchy: getNestedClassListHierarchy(classListState),
48
67
  transferAccountsList: transactionType === 'transfer' ? transferAccountsList : [],
49
68
  fetchState: createTransactionsState.createStatus.fetchState,
package/lib/index.d.ts CHANGED
@@ -150,8 +150,6 @@ import { DoSignInPayload, deleteConnection, doMagicLinkSignIn, doSignIn, doSignO
150
150
  import { CurrentTenant, DEFAULT_RECEIPTS_EMAIL, TenantBaseView, TenantCoreDetailsView, TenantView, TenantsBaseOrdered, TenantsOrdered, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getIsAutoReviewIncomeWithoutCustomerEnabled, getReceiptsEmail, getTenantBaseById, getTenantBaseViewForTenantId, getTenantBaseViewForTenantView, getTenantsBaseByCheckInDateSelector, getTenantsByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, isOtherProductsEnabledForTenant, isTenantBankingOnly, isTenantBookkeepingEnabled, isTenantCardsOnly, isTenantUsingZeniCOA, isZeniDomainTenant, toTenantCoreDetailsView } from './entity/tenant/tenantSelector';
151
151
  import { CapitalizableAccount, CapitalizableAccounts, CapitalizableClassificationType, CapitalizableMatchPattern, Connection, LoggedInUser, RoleResource, Tenant, TenantProductSettings } from './entity/tenant/tenantState';
152
152
  import { toExternalSupportedTool } from './entity/tenant/tenantTypes';
153
- import { getTaskCategories, getTaskCategoryById } from './entity/timeEntry/timeEntrySelector';
154
- import { BillingType, TaskCategory, TimeEntry, TimeEntrySource } from './entity/timeEntry/timeEntryState';
155
153
  import { ToastNotificationPayload } from './entity/toastNotification/toastNotificationPayload';
156
154
  import { pushToastNotification } from './entity/toastNotification/toastNotificationReducer';
157
155
  import { getLastNotificationTime, getNotifications } from './entity/toastNotification/toastNotificationSelector';
@@ -177,7 +175,7 @@ import { Filing1099TinType } from './entity/vendor/vendorType';
177
175
  import { VendorExpenseState, VendorSpend } from './entity/vendorExpense/vendorExpenseState';
178
176
  import { VendorExpenseTrend } from './entity/vendorExpense/vendorExpenseTrend';
179
177
  import { ExternalAPIEndpoints } from './externalAPI';
180
- import initialize, { ZeniStore, disconnectPusher, initializePusher, initializeWithNewStore, injectFeatureEpics, injectFeatureModules, updateZeniAPIClientConfig, zeniAPIClientConfig } from './init';
178
+ import initialize, { ZeniStore, disconnectPusher, initializePusher, initializeWithNewStore, injectFeatureEpics, injectFeatureModules, setSessionEndpointsLoader, updateZeniAPIClientConfig, updateZeniAPIEndpoints, zeniAPIClientConfig } from './init';
181
179
  import { ZeniAPIStatus, isAccessDeniedError, isInvalidSessionError, isSuccessResponse } from './responsePayload';
182
180
  import { clearAll } from './rootActions';
183
181
  import { RootState } from './rootStateTypes';
@@ -637,8 +635,6 @@ import { ALL_TASK_LIST_TABS, DueDateGroupKey, TASK_LIST_FILTER_CATEGORIES, TASK_
637
635
  import { bulkUpdateTaskList, dragNDropTasks, fetchTaskList, fetchTaskListPage, initiateTaskListLocalData, removeTaskFromList, updateTaskFilters, updateTaskFromListView, updateTaskListLocalData, updateTaskListSearchText, updateTaskListTab, updateTaskListUIState } from './view/taskManager/taskListView/taskListReducer';
638
636
  import { TaskGroupWithTasksList, TaskListSelectorView, TaskWithUserDetails, getAllTasks } from './view/taskManager/taskListView/taskListSelector';
639
637
  import { SubtaskSortKey, SubtaskSortOrder, getDueDateValueFromDueDateGroupId, getTaskUpdates, sortSubtasks } from './view/taskManager/taskListView/taskListViewHelpers';
640
- import { deleteTimeEntry, fetchTaskCategories, fetchTimeEntriesForRange, fetchTimeEntriesForTask, logTime, updateTimeEntryMinutes } from './view/taskManager/timeEntryView/timeEntryViewReducer';
641
- import { TimeEntryListView, TimesheetWeekView, getTimeEntriesForRange, getTimeEntriesForTask, getTimeEntrySaveState } from './view/taskManager/timeEntryView/timeEntryViewSelector';
642
638
  import { fetchTasksCard } from './view/tasksCard/tasksCardReducer';
643
639
  import { TasksCardReport } from './view/tasksCard/tasksCardSelector';
644
640
  import { fetchTopEx, updateTopExDownloadState, updateTopExTimeFrame } from './view/topEx/topExReducer';
@@ -726,7 +722,7 @@ export type { CreditAgentFocusFilter, CreditAgentSortDir, CreditAgentSortKey, Cr
726
722
  export { AccountSettingsLocalData };
727
723
  export { saveJeAccountSettings, saveJeAccountSettingsLocalData };
728
724
  export default initialize;
729
- export { initializePusher, disconnectPusher, Dayjs, ZeniDate, dateInLocal as zeniDateInLocal, date as zeniDate, dateLocal, dateNow, getBusinessDayOfDate, formatZeniDateFY as formatZeniDate, getFYMonths, getFYQuarterAndYear, getStartOfAndEndOfTimeframeForFY, getActualPeriodOfFYQtr, getActualPeriodOfFY, getLocalTimezone, addPeriod, subtractPeriod, setLocalTimezone, updateZeniDateLocaleID, ZeniUrl, toZeniUrl, toZeniUrlWithoutBaseURL, RESTAPIEndpoints, RootState, updateZeniAPIClientConfig, zeniAPIClientConfig, injectFeatureEpics, injectFeatureModules, initializeWithNewStore, ZeniStore, ZeniAPIStatus, getTimeframeTickTag, TimeFrameTickTag, isIncompleteMonthPresentInTimeframeTick, getLastMonthOfFYQuarter, getLastMonthOfFYYear, getMonthIndex, dateFromYearMonthDate, getMinDate, ExternalAPIEndpoints, };
725
+ export { initializePusher, disconnectPusher, Dayjs, ZeniDate, dateInLocal as zeniDateInLocal, date as zeniDate, dateLocal, dateNow, getBusinessDayOfDate, formatZeniDateFY as formatZeniDate, getFYMonths, getFYQuarterAndYear, getStartOfAndEndOfTimeframeForFY, getActualPeriodOfFYQtr, getActualPeriodOfFY, getLocalTimezone, addPeriod, subtractPeriod, setLocalTimezone, updateZeniDateLocaleID, ZeniUrl, toZeniUrl, toZeniUrlWithoutBaseURL, RESTAPIEndpoints, RootState, updateZeniAPIClientConfig, updateZeniAPIEndpoints, setSessionEndpointsLoader, zeniAPIClientConfig, injectFeatureEpics, injectFeatureModules, initializeWithNewStore, ZeniStore, ZeniAPIStatus, getTimeframeTickTag, TimeFrameTickTag, isIncompleteMonthPresentInTimeframeTick, getLastMonthOfFYQuarter, getLastMonthOfFYYear, getMonthIndex, dateFromYearMonthDate, getMinDate, ExternalAPIEndpoints, };
730
726
  export { ID, FetchState, FetchStateAndError, FetchedState, UpdateType, Mode, AccountViewMode, CompletionStatusType, };
731
727
  export { Amount, toAmount, Currency };
732
728
  export { View, SelectorView, Report, ReportID, toReportID, ReportIDPlusForecastID, SelectorReport, ReportFormat, toReportFormatStrict, isCashFlowOrBalanceSheetReport, isBalanceSheetReport, isBalanceSheetClassesViewReport, isBalanceSheetProjectViewReport, isCashFlowClassesViewReport, isCashFlowProjectViewReport, isCashFlowReport, isGroupedCashFlowReport, isGroupedBalanceSheetReport, isDashboardReport, isDashboardClassesViewReport, isDashboardProjectViewReport, isPAndLReport, isPAndLClassesViewReport, isPAndLProjectViewReport, isAgingReport, isOpExByVendorReport, isFluxAnalysisOpExReport, PageToken, };
@@ -976,7 +972,7 @@ export { fetchGlobalMerchantRecommendation, createGlobalMerchant, updateCreateGl
976
972
  export { approveVendorGlobalReview, rejectVendorGlobalReview, fetchVendorGlobalReviewView, updateSelectedGlobalMerchant, updateVendorGlobalReviewViewUIState, getVendorGlobalReviewView, getTenantMerchantByMerchantId, toVendorGlobalReviewColumnSortKeyType, VendorGlobalReview, VendorGlobalReviewViewUIState, VendorGlobalReviewViewColumnSortKey, VendorGlobalReviewViewSelectorView, VendorGlobalReviewViewState, VendorGlobalReviewViewLocalData, updateVendorGlobalReviewViewLocalData, GlobalReviewPageCurrentSelectionByColumn, GlobalRecommendationFetchSource, };
977
973
  export { fetchArAging, updateArAgingUIState, fetchArAgingDetail, updateArAgingDetailUIState, ArAgingReport, ArAgingDetail, NestedAgingBalancesByCustomer, getArAgingReport, getArAgingDetailForCustomer, updateArAgingNodeCollapseState, };
978
974
  export { toRecurringBillFrequency, toRecurringBillFrequencyStrict, RecurringBillFrequency, RecurringBillDetail, RecurringBillConfig, RecurringBillStatus, RecurringBillPaymentStatus, };
979
- export { Task, TaskPayload, TaskListSelectorView, TaskWithUserDetails, TaskListViewSortKey, TaskListUIState, TaskDetailSelectorView, EditTaskLocalData, TaskStatusCodeType, PriorityCodeType, getTaskGroupById, TaskStatus, TaskPriority, TaskCodeType, getAllTasks, BillingType, TaskCategory, TimeEntry, TimeEntrySource, TimeEntryListView, TimesheetWeekView, getTaskCategories, getTaskCategoryById, getTimeEntriesForRange, getTimeEntriesForTask, getTimeEntrySaveState, fetchTimeEntriesForTask, fetchTimeEntriesForRange, fetchTaskCategories, logTime, updateTimeEntryMinutes, deleteTimeEntry, fetchTaskList, fetchTaskListPage, getTaskDetail, fetchTaskDetailPage, saveTaskUpdatesToLocalStore, saveTaskDetail, createSubTask, resetSubTaskCreateStatus, fetchSubTasks, CreateSubTaskPayload, archiveTask, CannedResponse, CannedResponsesViewState, fetchCannedResponses, saveCannedResponse, deleteCannedResponse, getCannedResponsesView, updateTaskListSearchText, updateTaskListUIState, allTaskStatus, allTaskPriority, TaskListFilters, updateTaskFilters, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CATEGORIES, TaskListFilterCategoryField, deleteTask, discardTaskUpdatesInLocalStore, TaskFilterCategory, TaskType, TaskGroupWithTasksList, TaskListLocalData, bulkUpdateTaskList, createNewTaskGroup, initiateTaskListLocalData, deleteTaskGroup, updateTaskListLocalData, dragNDropTasks, updateTaskGroupName, TaskGroupState, TaskGroupKey, toTaskListGroupByKeyType, toTaskListGroupByKeyTypeStrict, SubtaskSortKey, SubtaskSortOrder, getTaskUpdates, sortSubtasks, fetchAllTaskGroups, initialTaskDetail, getDueDateValueFromDueDateGroupId, toPriorityCodeType, toTaskStatusCodeType, DueDateGroupKey, toDueDateGroupKeyType, updateTaskFromListView, updateTaskListTab, removeTaskFromList, snoozeTask, unsnoozeTask, convertHHMMStrToMinutes, initialTaskDetailLocalData, TaskListTab, ALL_TASK_LIST_TABS, };
975
+ export { Task, TaskPayload, TaskListSelectorView, TaskWithUserDetails, TaskListViewSortKey, TaskListUIState, TaskDetailSelectorView, EditTaskLocalData, TaskStatusCodeType, PriorityCodeType, getTaskGroupById, TaskStatus, TaskPriority, TaskCodeType, getAllTasks, fetchTaskList, fetchTaskListPage, getTaskDetail, fetchTaskDetailPage, saveTaskUpdatesToLocalStore, saveTaskDetail, createSubTask, resetSubTaskCreateStatus, fetchSubTasks, CreateSubTaskPayload, archiveTask, CannedResponse, CannedResponsesViewState, fetchCannedResponses, saveCannedResponse, deleteCannedResponse, getCannedResponsesView, updateTaskListSearchText, updateTaskListUIState, allTaskStatus, allTaskPriority, TaskListFilters, updateTaskFilters, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CATEGORIES, TaskListFilterCategoryField, deleteTask, discardTaskUpdatesInLocalStore, TaskFilterCategory, TaskType, TaskGroupWithTasksList, TaskListLocalData, bulkUpdateTaskList, createNewTaskGroup, initiateTaskListLocalData, deleteTaskGroup, updateTaskListLocalData, dragNDropTasks, updateTaskGroupName, TaskGroupState, TaskGroupKey, toTaskListGroupByKeyType, toTaskListGroupByKeyTypeStrict, SubtaskSortKey, SubtaskSortOrder, getTaskUpdates, sortSubtasks, fetchAllTaskGroups, initialTaskDetail, getDueDateValueFromDueDateGroupId, toPriorityCodeType, toTaskStatusCodeType, DueDateGroupKey, toDueDateGroupKeyType, updateTaskFromListView, updateTaskListTab, removeTaskFromList, snoozeTask, unsnoozeTask, convertHHMMStrToMinutes, initialTaskDetailLocalData, TaskListTab, ALL_TASK_LIST_TABS, };
980
976
  export { Tag, TagState, TagViewState, getAllTags, TagViewSelectorView, fetchTagList, createTag, deleteTag, };
981
977
  export { CardPayment, CardPaymentViewState, SetupIntentData, CardPaymentSelectorView, getAllCardsAndBankPaymentMethods, createCardSetupIntent, confirmCardSetupIntent, addCardPaymentSource, fetchPaymentSources, resetCardPaymentErrorStatuses, clearCardPaymentView, AddCardPaymentSourceType, };
982
978
  export { getAuditReportGroupViewSelectorView, getAuditRuleGroupViewSelectorView, getUserFromAllUsers, AuditReportGroupSelectorView, AuditReportGroupViewSelectorView, AuditRuleGroupViewSelectorView, fetchAuditRuleGroupView, fetchAuditReportGroupView, saveReasonForAuditRule, AuditRuleGroup, AuditRuleGroupReport, AuditReportRule, AuditRuleEntityType, AuditRuleEntityIdType, AuditRuleBypassReason, clearAuditReportGroupViewByCompanyId, };
@@ -1274,6 +1270,7 @@ export { getActualMatchingAmount, getActualMatchingReversalDate, getActualMatchi
1274
1270
  export type { ExpenseAutomationActualMatchingMatchView } from './view/expenseAutomationView/selectors/actualMatchingViewSelector';
1275
1271
  export type { ActualMatchingMatch, ActualMatchingMatchKind, } from './entity/actualMatching/actualMatchingState';
1276
1272
  export type { ActualMatchingMatchId } from './entity/actualMatching/actualMatchingTypes';
1273
+ export type { SessionEndpointsLoader } from './sessionEndpointsLoader';
1277
1274
  export type { DisplayCurrencyFallback } from './entity/actualMatching/actualMatchingPayload';
1278
1275
  export { fetchCustomerSummaryDetail, fetchCustomerSummaryList, resetCustomerSummaryDetailUiState, saveCustomerSummaryDetail, updateCustomerAllTransactionsTabData, updateCustomerDetailSelectedTab, updateCustomerSummaryRevenueSelection, updateCustomerSummaryScrollYOffset, updateCustomerSummarySortUiState, updateCustomerTrendFilter, } from './view/customerSummaryView/customerSummaryViewReducer';
1279
1276
  export { getCustomerSummaryAllTransactionsTabData, getCustomerSummaryDetail, getCustomerSummaryList, getCustomerSummarySelectedTabType, getCustomerSummaryTrendFilter, isCustomersTabVisible, } from './view/customerSummaryView/customerSummaryViewSelector';