@zeniai/client-epic-state 5.2.22-betaRD0 → 5.2.23

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 (59) hide show
  1. package/lib/entity/aiCfo/aiCfoPayload.d.ts +0 -11
  2. package/lib/entity/aiCfo/aiCfoReducer.js +1 -32
  3. package/lib/entity/aiCfo/aiCfoState.d.ts +0 -14
  4. package/lib/epic.d.ts +1 -3
  5. package/lib/epic.js +0 -4
  6. package/lib/esm/entity/aiCfo/aiCfoReducer.js +1 -32
  7. package/lib/esm/epic.js +0 -4
  8. package/lib/esm/index.js +4 -4
  9. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +7 -45
  10. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/oneTimeAccrualActionsEpic.js +6 -13
  11. package/lib/esm/view/expenseAutomationView/payload/jeSchedulesPayload.js +1 -1
  12. package/lib/esm/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +7 -31
  13. package/lib/esm/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +2 -5
  14. package/lib/esm/view/invoicing/dataImportView/dataImportViewSelector.js +0 -2
  15. package/lib/esm/view/invoicing/settingsView/settingsViewSelector.js +1 -5
  16. package/lib/esm/view/recommendation/recommendationReducer.js +1 -13
  17. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +2 -18
  18. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +1 -0
  19. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +3 -0
  20. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +2 -18
  21. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +1 -0
  22. package/lib/index.d.ts +7 -8
  23. package/lib/index.js +23 -26
  24. package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.d.ts +1 -1
  25. package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +7 -45
  26. package/lib/view/expenseAutomationView/epics/jeSchedule/oneTimeAccrualActionsEpic.d.ts +2 -2
  27. package/lib/view/expenseAutomationView/epics/jeSchedule/oneTimeAccrualActionsEpic.js +5 -12
  28. package/lib/view/expenseAutomationView/payload/jeSchedulesPayload.d.ts +1 -54
  29. package/lib/view/expenseAutomationView/payload/jeSchedulesPayload.js +3 -3
  30. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.d.ts +6 -11
  31. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +9 -33
  32. package/lib/view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes.d.ts +3 -5
  33. package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.d.ts +5 -4
  34. package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +2 -5
  35. package/lib/view/expenseAutomationView/types/jeSchedulesViewState.d.ts +0 -2
  36. package/lib/view/invoicing/dataImportView/dataImportViewSelector.d.ts +0 -2
  37. package/lib/view/invoicing/dataImportView/dataImportViewSelector.js +0 -2
  38. package/lib/view/invoicing/settingsView/settingsViewSelector.d.ts +1 -5
  39. package/lib/view/invoicing/settingsView/settingsViewSelector.js +0 -4
  40. package/lib/view/recommendation/recommendationPayload.d.ts +0 -34
  41. package/lib/view/recommendation/recommendationReducer.d.ts +1 -2
  42. package/lib/view/recommendation/recommendationReducer.js +2 -14
  43. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.d.ts +1 -2
  44. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +2 -18
  45. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +1 -0
  46. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.d.ts +1 -0
  47. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +3 -0
  48. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonState.d.ts +1 -0
  49. package/lib/view/spendManagement/commonHistoryView/commonHistory.d.ts +1 -1
  50. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.d.ts +1 -2
  51. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +2 -18
  52. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +1 -0
  53. package/package.json +1 -1
  54. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/prefetchOtherJeSchedulesTabEpic.js +0 -35
  55. package/lib/esm/view/recommendation/submitRecommendationFeedbackEpic.js +0 -52
  56. package/lib/view/expenseAutomationView/epics/jeSchedule/prefetchOtherJeSchedulesTabEpic.d.ts +0 -12
  57. package/lib/view/expenseAutomationView/epics/jeSchedule/prefetchOtherJeSchedulesTabEpic.js +0 -39
  58. package/lib/view/recommendation/submitRecommendationFeedbackEpic.d.ts +0 -7
  59. package/lib/view/recommendation/submitRecommendationFeedbackEpic.js +0 -56
@@ -66,7 +66,6 @@ export const initialState = {
66
66
  ignoreStatusById: {},
67
67
  revertStatusById: {},
68
68
  jeScheduleLocalDataById: {},
69
- oneTimeAccrualLocalDataById: {},
70
69
  oneTimeAccrualActionStatusById: {},
71
70
  oneTimeAccrualFetchStatusById: {},
72
71
  uiState: {
@@ -128,15 +127,11 @@ const expenseAutomationJESchedulesView = createSlice({
128
127
  draft.error = undefined;
129
128
  }
130
129
  },
131
- // `selectedPageTab` is for the prefetch, which fetches the tab the user is NOT on. Everyone
132
- // else omits it and the epic uses the selected tab -- passing the visible tab explicitly
133
- // would be the same thing.
134
- prepare(period, refreshViewInBackground = false, selectedPageTab) {
130
+ prepare(period, refreshViewInBackground = false) {
135
131
  return {
136
132
  payload: {
137
133
  period,
138
134
  refreshViewInBackground,
139
- selectedPageTab,
140
135
  },
141
136
  };
142
137
  },
@@ -404,24 +399,6 @@ const expenseAutomationJESchedulesView = createSlice({
404
399
  const { scheduledJournalEntryID } = action.payload;
405
400
  delete draft.jeScheduleLocalDataById[scheduledJournalEntryID];
406
401
  },
407
- /**
408
- * Merge, not replace: the detail form reports one field at a time, so a full overwrite would
409
- * drop every other edit on each keystroke.
410
- */
411
- updateJeOneTimeAccrualLocalData(draft, action) {
412
- const { accrualId, localData } = action.payload;
413
- draft.oneTimeAccrualLocalDataById = {
414
- ...draft.oneTimeAccrualLocalDataById,
415
- [accrualId]: {
416
- ...draft.oneTimeAccrualLocalDataById[accrualId],
417
- ...localData,
418
- },
419
- };
420
- },
421
- /** Called when the detail page unmounts and after a successful promote. */
422
- removeJeOneTimeAccrualLocalData(draft, action) {
423
- delete draft.oneTimeAccrualLocalDataById[action.payload.accrualId];
424
- },
425
402
  initializeAccountSettingsView(draft) {
426
403
  draft.accountSettings.localData = accountSettingsInitialState.localData;
427
404
  },
@@ -598,14 +575,13 @@ const expenseAutomationJESchedulesView = createSlice({
598
575
  };
599
576
  },
600
577
  /**
601
- * Promote applies the body and posts in one step. The edits it applies come from
602
- * `oneTimeAccrualLocalDataById`, not from this action -- the list's inline Post has no form, so
603
- * it writes no local data and the epic falls back to the stored accrual. `amount` stays on the
604
- * action because both callers already have it and `OneTimeAccrualEdits` has no slot for it.
578
+ * Promote applies the body and posts in one step, so it carries whatever the user edited on the
579
+ * detail page. `edits` is absent when nothing was changed -- the epic then falls back to the
580
+ * stored accrual, which is what the list's inline Post does.
605
581
  */
606
582
  promoteOneTimeAccrual: {
607
- prepare(accrualId, amount) {
608
- return { payload: { accrualId, amount } };
583
+ prepare(accrualId, amount, edits) {
584
+ return { payload: { accrualId, amount, edits } };
609
585
  },
610
586
  reducer(draft, action) {
611
587
  draft.oneTimeAccrualActionStatusById[action.payload.accrualId] = {
@@ -709,7 +685,7 @@ const expenseAutomationJESchedulesView = createSlice({
709
685
  });
710
686
  },
711
687
  });
712
- export const { clearExpenseAutomationJESchedulesView, clearJeAccountSettingsLocalData, clearJeScheduleLocalData, clearSearchTransactionsForNewSchedule, createOneTimeAccrual, createOneTimeAccrualFailure, createOneTimeAccrualSuccess, ignoreOneTimeAccrual, oneTimeAccrualActionFailure, oneTimeAccrualActionSuccess, promoteOneTimeAccrual, revertJeSchedule, revertJeScheduleFailure, revertJeScheduleSuccess, revertOneTimeAccrual, fetchAccountSettingsListForAccountTypes, fetchJeSchedules, fetchJeSchedulesFailure, fetchJeSchedulesPage, fetchJeSchedulesSuccess, fetchOneTimeAccrual, fetchOneTimeAccrualFailure, fetchOneTimeAccrualSuccess, fetchRecommendationForAccountSettings, ignoreRecommendedJeSchedule, ignoreRecommendedJeScheduleFailure, ignoreRecommendedJeScheduleSuccess, initializeAccountSettingsView, initializeJeScheduleLocalData, initializeNewSchedule, removeFailedJeScheduleTransactionKey, removeJeOneTimeAccrualLocalData, removeJeScheduleLocalDataById, removeJeAccruedScheduleKey, removeJeScheduleTransactionKey, resetNewScheduleLocalData, retryJeSchedule, retryJeScheduleFailure, retryJeScheduleSuccess, saveAccountSettings, saveAccountSettingsFailure, saveAccountSettingsLocalData, saveAccountSettingsSuccess, saveNewSchedule, saveNewScheduleFailure, saveNewScheduleSuccess, searchTransactionsForNewSchedule, searchTransactionsForNewScheduleFailure, searchTransactionsForNewScheduleSuccess, toggleJECreatedGroupCollapsed, toggleJEPendingGroupCollapsed, updateAccountSettingsListForAccountTypes, updateAccountSettingsListForAccountTypesFailure, updateJESchedulesUIState, updateJEScheduleTypeFilter, updateJeOneTimeAccrualLocalData, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys, updateNewScheduleLocalData, updateRecommendationForAccountSettings, updateRecommendationForAccountSettingsFailure, } = expenseAutomationJESchedulesView.actions;
688
+ export const { clearExpenseAutomationJESchedulesView, clearJeAccountSettingsLocalData, clearJeScheduleLocalData, clearSearchTransactionsForNewSchedule, createOneTimeAccrual, createOneTimeAccrualFailure, createOneTimeAccrualSuccess, ignoreOneTimeAccrual, oneTimeAccrualActionFailure, oneTimeAccrualActionSuccess, promoteOneTimeAccrual, revertJeSchedule, revertJeScheduleFailure, revertJeScheduleSuccess, revertOneTimeAccrual, fetchAccountSettingsListForAccountTypes, fetchJeSchedules, fetchJeSchedulesFailure, fetchJeSchedulesPage, fetchJeSchedulesSuccess, fetchOneTimeAccrual, fetchOneTimeAccrualFailure, fetchOneTimeAccrualSuccess, fetchRecommendationForAccountSettings, ignoreRecommendedJeSchedule, ignoreRecommendedJeScheduleFailure, ignoreRecommendedJeScheduleSuccess, initializeAccountSettingsView, initializeJeScheduleLocalData, initializeNewSchedule, removeFailedJeScheduleTransactionKey, removeJeScheduleLocalDataById, removeJeAccruedScheduleKey, removeJeScheduleTransactionKey, resetNewScheduleLocalData, retryJeSchedule, retryJeScheduleFailure, retryJeScheduleSuccess, saveAccountSettings, saveAccountSettingsFailure, saveAccountSettingsLocalData, saveAccountSettingsSuccess, saveNewSchedule, saveNewScheduleFailure, saveNewScheduleSuccess, searchTransactionsForNewSchedule, searchTransactionsForNewScheduleFailure, searchTransactionsForNewScheduleSuccess, toggleJECreatedGroupCollapsed, toggleJEPendingGroupCollapsed, updateAccountSettingsListForAccountTypes, updateAccountSettingsListForAccountTypesFailure, updateJESchedulesUIState, updateJEScheduleTypeFilter, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys, updateNewScheduleLocalData, updateRecommendationForAccountSettings, updateRecommendationForAccountSettingsFailure, } = expenseAutomationJESchedulesView.actions;
713
689
  export default expenseAutomationJESchedulesView.reducer;
714
690
  const doUpdateRecommendationForAccountSettings = (draft, payload) => {
715
691
  const { prepaidExpensesRecommendations, fixedAssetsRecommendations, accruedExpensesRecommendations, } = mapAccountTypeRecommendationPayloadToAccountRecommendationByType(payload);
@@ -12,8 +12,8 @@ import { getClassList, getNestedClassListHierarchy, } from '../../classList/clas
12
12
  import { getAccountsTypesForScheduleDetails } from '../../scheduleView/scheduleDetailView/scheduleDetailLocalDataHelper';
13
13
  import { filterNestedAccountHierarchyById } from '../../scheduleView/scheduleDetailView/scheduleDetailSelector';
14
14
  import { getAccountLabelForScheduleType, getAccountsTypesForScheduleList, } from '../../scheduleView/scheduleListView/scheduleListHelper';
15
- import { ALL_JE_PAGE_TABS, getJESchedulePeriodTabKey, } from '../types/jeSchedulesViewState';
16
15
  import { getAllSteps } from './getAllStepsHelper';
16
+ import { ALL_JE_PAGE_TABS, getJESchedulePeriodTabKey, } from '../types/jeSchedulesViewState';
17
17
  import { getJEAccountSettingsView } from './jeAccountSettingsViewSelector';
18
18
  import { getNewScheduleView } from './jeNewScheduleViewSelector';
19
19
  // Matches the AI-automation user addresses webc's schedule list row already
@@ -330,9 +330,7 @@ export function getExpenseAutomationJESchedulesView(state) {
330
330
  */
331
331
  const sumToAmount = (schedules) => {
332
332
  const first = schedules[0];
333
- const currency = first != null
334
- ? getScheduleAmountObject(first)
335
- : allScheduleAmountFallback;
333
+ const currency = first != null ? getScheduleAmountObject(first) : allScheduleAmountFallback;
336
334
  return {
337
335
  ...currency,
338
336
  amount: sumAmount(schedules),
@@ -474,6 +472,5 @@ export function getExpenseAutomationJEOneTimeAccrualDetailView(state, accrualId)
474
472
  fetchState: 'Not-Started',
475
473
  error: undefined,
476
474
  },
477
- localData: state.expenseAutomationJESchedulesViewState.oneTimeAccrualLocalDataById[accrualId],
478
475
  };
479
476
  }
@@ -1,4 +1,3 @@
1
- import { invoicingFieldHelpForGroup } from '../invoicingConfigView/invoicingConfigViewSelector';
2
1
  /**
3
2
  * Single bundled view for the invoicing data-import surfaces — consumers read
4
3
  * only this. Carries the migration `sessions` list + `sessionsFetch`, the
@@ -8,7 +7,6 @@ import { invoicingFieldHelpForGroup } from '../invoicingConfigView/invoicingConf
8
7
  export const getInvoicingDataImportView = (state) => {
9
8
  const dataImportState = state.invoicingDataImportViewState;
10
9
  return {
11
- fieldHelp: invoicingFieldHelpForGroup(state, 'data_import'),
12
10
  activeMigrationSessionId: dataImportState.activeDetailId,
13
11
  sessionDetail: dataImportState.sessionDetail,
14
12
  sessionDetailFetch: dataImportState.sessionDetailFetch,
@@ -1,6 +1,6 @@
1
1
  import { getInvoicingQboAccountMappingId, } from '../../../entity/invoicing/invoicingCommonPayload';
2
2
  import { getFormattedAddress } from '../../addressView/addressViewSelector';
3
- import { getInvoicingConfigView, invoicingFieldHelpForGroup, } from '../invoicingConfigView/invoicingConfigViewSelector';
3
+ import { getInvoicingConfigView } from '../invoicingConfigView/invoicingConfigViewSelector';
4
4
  import { getInvoicingQboView, isInvoicingAccountingPickerDataLoading, } from '../invoicingQboView/invoicingQboViewSelector';
5
5
  import { INVOICING_BUSINESS_ADDRESS_TYPE, entityToInvoicingBrandingFormLocalData, } from './invoicingBrandingFormConfig';
6
6
  import { initialInvoicingQboSettingsLocalData, } from './invoicingQboSettingsFormConfig';
@@ -26,7 +26,6 @@ export const getInvoicingSettingsFetchState = (state) => ({
26
26
  export const getInvoicingSettingsView = (state) => {
27
27
  const { error, fetchState, saveFetchState, settings, stripeFetchState } = state.invoicingSettingsViewState;
28
28
  return {
29
- fieldHelp: invoicingFieldHelpForGroup(state, 'settings'),
30
29
  error,
31
30
  fetchState,
32
31
  saveState: saveFetchState,
@@ -79,7 +78,6 @@ export const getInvoicingSettingsHubView = (state) => {
79
78
  const { dunningScheduleActionOptions, enableState, error: configError, fetchState: configFetchState, qboAccountMappingKindOptions, qboCustomerMatchingOptions, qboSyncStatusOptions, status, } = getInvoicingConfigView(state);
80
79
  const { canEnable, isQboConfigured, isStripeConnected } = deriveInvoicingEnablePrerequisites(state.invoicingSettingsViewState.settings, state.invoicingQboViewState.connection?.connected === true, qboAccountMappingKindOptions);
81
80
  return {
82
- fieldHelp: invoicingFieldHelpForGroup(state, 'settings'),
83
81
  // Keeps the onboarding step in the gate: a tenant that has not accepted the
84
82
  // terms cannot enable invoicing, whatever the integrations say.
85
83
  canEnableInvoicing: status === 'settings' && canEnable,
@@ -110,7 +108,6 @@ export const getInvoicingQboSettingsFormView = (state) => {
110
108
  const { fetchState: configFetchState, qboAccountMappingKindOptions, qboCustomerMatchingOptions, qboSyncStatusOptions, } = getInvoicingConfigView(state);
111
109
  const qboView = getInvoicingQboView(state);
112
110
  return {
113
- fieldHelp: invoicingFieldHelpForGroup(state, 'settings'),
114
111
  accountMappingKindOptions: qboAccountMappingKindOptions,
115
112
  accounts: qboView.accounts,
116
113
  backfillState: qboView.backfillState,
@@ -150,7 +147,6 @@ export const getInvoicingBrandingFormView = (state) => {
150
147
  ? getFormattedAddress(newAddress.addressToCreate)
151
148
  : undefined;
152
149
  return {
153
- fieldHelp: invoicingFieldHelpForGroup(state, 'settings'),
154
150
  addressLabel,
155
151
  dateFormatOptions: getInvoicingConfigView(state).dateFormatOptions,
156
152
  localData: brandingDraft ?? entityToInvoicingBrandingFormLocalData(settings),
@@ -131,18 +131,6 @@ const recommendation = createSlice({
131
131
  };
132
132
  },
133
133
  },
134
- // Fire-and-forget human feedback on a recommendation (accept, ranked
135
- // override or outside override). Handled by submitRecommendationFeedbackEpic
136
- // which POSTs to the accounting recommendation-feedback endpoint. No state
137
- // mutation: the categorization UX must not depend on the feedback round-trip.
138
- submitRecommendationFeedback: {
139
- reducer() {
140
- // Fire-and-forget: no state mutation; the epic performs the POST.
141
- },
142
- prepare(args) {
143
- return { payload: args };
144
- },
145
- },
146
134
  },
147
135
  extraReducers: (builder) => {
148
136
  builder.addCase(clearAll, (draft) => {
@@ -150,7 +138,7 @@ const recommendation = createSlice({
150
138
  });
151
139
  },
152
140
  });
153
- export const { fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityName, fetchRecommendationByEntityId, updateRecommendationForEntity, updateRecommendationForEntityFailure, indicateReadyToInitializeRecommendation, submitRecommendationFeedback, } = recommendation.actions;
141
+ export const { fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityName, fetchRecommendationByEntityId, updateRecommendationForEntity, updateRecommendationForEntityFailure, indicateReadyToInitializeRecommendation, } = recommendation.actions;
154
142
  export default recommendation.reducer;
155
143
  const doUpdateRecommendationForEntity = (draft, entityId, entityType, payload) => {
156
144
  const key = getEntityRecommendationKey(entityType, entityId);
@@ -2,20 +2,13 @@ import { from, of } from 'rxjs';
2
2
  import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
3
  import { updateApprovalRules } from '../../../../../entity/approvalRule/approvalRuleReducer';
4
4
  import { getApprovalRulesByIds } from '../../../../../entity/approvalRule/approvalRuleSelector';
5
- import { getIsAccountingClassesEnabled } from '../../../../../entity/tenant/tenantSelector';
6
5
  import { updateAllUsers } from '../../../../../entity/user/userReducer';
7
6
  import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
8
- import { fetchClassList } from '../../../../classList/classListReducer';
9
7
  import { fetchBillPaySetupApproverView, fetchBillPaySetupApproverViewFailure, fetchBillPaySetupApproverViewSuccess, } from '../billPaySetupApproverViewReducer';
10
8
  export const fetchBillPaySetupApproverViewEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchBillPaySetupApproverView.match), switchMap((action) => {
11
9
  const { cacheOverride, useV3 } = action.payload;
12
- const { billPaySetupApproverViewState, approvalRuleState, classListState } = state$.value;
13
- const isAccountingClassesEnabled = getIsAccountingClassesEnabled(state$.value);
10
+ const { billPaySetupApproverViewState, approvalRuleState } = state$.value;
14
11
  const approvalRules = getApprovalRulesByIds(approvalRuleState, billPaySetupApproverViewState.approvalRuleIds);
15
- const shouldFetchClassList = isAccountingClassesEnabled &&
16
- (cacheOverride === true ||
17
- (classListState.hasValidState() === false &&
18
- classListState.fetchState !== 'In-Progress'));
19
12
  if (cacheOverride === true ||
20
13
  approvalRules.length !==
21
14
  billPaySetupApproverViewState.approvalRuleIds.length ||
@@ -35,9 +28,6 @@ export const fetchBillPaySetupApproverViewEpic = (actions$, state$, zeniAPI) =>
35
28
  updateApprovalRules(response.data.approval_rules),
36
29
  fetchBillPaySetupApproverViewSuccess(approvalRuleIds),
37
30
  ];
38
- if (shouldFetchClassList) {
39
- actions.push(fetchClassList());
40
- }
41
31
  return from(actions);
42
32
  }
43
33
  else {
@@ -47,12 +37,6 @@ export const fetchBillPaySetupApproverViewEpic = (actions$, state$, zeniAPI) =>
47
37
  }
48
38
  else {
49
39
  const { approvalRuleIds } = billPaySetupApproverViewState;
50
- const actions = [
51
- fetchBillPaySetupApproverViewSuccess(approvalRuleIds),
52
- ];
53
- if (shouldFetchClassList) {
54
- actions.push(fetchClassList());
55
- }
56
- return from(actions);
40
+ return of(fetchBillPaySetupApproverViewSuccess(approvalRuleIds));
57
41
  }
58
42
  }));
@@ -21,6 +21,7 @@ export const initializeBillPaySetupApproverViewUpdateDataEpic = (actions$, state
21
21
  name: approvalRule.name,
22
22
  description: approvalRule.description,
23
23
  separationOfDuties: approvalRule.separationOfDuties,
24
+ isFallback: approvalRule.isFallback,
24
25
  };
25
26
  fetchActions.push(clearBillPaySetupApproverViewUpdateData(), saveBillPaySetupApproverViewUpdateData(billPaySetupApproverViewUpdateData));
26
27
  }
@@ -86,6 +86,9 @@ export const toApprovalChangableInfoPayload = (approverViewUpdateData) => {
86
86
  payload.is_separation_of_duty_enabled =
87
87
  approverViewUpdateData.separationOfDuties;
88
88
  }
89
+ if (approverViewUpdateData.isFallback != null) {
90
+ payload.is_fallback = approverViewUpdateData.isFallback;
91
+ }
89
92
  if (isUpdate) {
90
93
  payload.approval_rule_id = approverViewUpdateData.approvalRuleId;
91
94
  }
@@ -2,20 +2,13 @@ import { from, of } from 'rxjs';
2
2
  import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
3
  import { updateApprovalRules } from '../../../../../entity/approvalRule/approvalRuleReducer';
4
4
  import { getApprovalRulesByIds } from '../../../../../entity/approvalRule/approvalRuleSelector';
5
- import { getIsAccountingClassesEnabled } from '../../../../../entity/tenant/tenantSelector';
6
5
  import { updateAllUsers } from '../../../../../entity/user/userReducer';
7
6
  import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
8
- import { fetchClassList } from '../../../../classList/classListReducer';
9
7
  import { fetchRemiSetupApproverView, fetchRemiSetupApproverViewFailure, fetchRemiSetupApproverViewSuccess, } from '../remiSetupApproverViewReducer';
10
8
  export const fetchRemiSetupApproverViewEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchRemiSetupApproverView.match), switchMap((action) => {
11
9
  const { cacheOverride, resolveAttributeToUser, includeImplicitActors, useV3, } = action.payload;
12
- const { remiSetupApproverViewState, approvalRuleState, classListState } = state$.value;
13
- const isAccountingClassesEnabled = getIsAccountingClassesEnabled(state$.value);
10
+ const { remiSetupApproverViewState, approvalRuleState } = state$.value;
14
11
  const approvalRules = getApprovalRulesByIds(approvalRuleState, remiSetupApproverViewState.approvalRuleIds);
15
- const shouldFetchClassList = isAccountingClassesEnabled &&
16
- (cacheOverride === true ||
17
- (classListState.hasValidState() === false &&
18
- classListState.fetchState !== 'In-Progress'));
19
12
  if (cacheOverride === true ||
20
13
  approvalRules.length !==
21
14
  remiSetupApproverViewState.approvalRuleIds.length ||
@@ -37,9 +30,6 @@ export const fetchRemiSetupApproverViewEpic = (actions$, state$, zeniAPI) => act
37
30
  updateApprovalRules(response.data.approval_rules),
38
31
  fetchRemiSetupApproverViewSuccess(approvalRuleIds),
39
32
  ];
40
- if (shouldFetchClassList) {
41
- actions.push(fetchClassList());
42
- }
43
33
  return from(actions);
44
34
  }
45
35
  else {
@@ -49,12 +39,6 @@ export const fetchRemiSetupApproverViewEpic = (actions$, state$, zeniAPI) => act
49
39
  }
50
40
  else {
51
41
  const { approvalRuleIds } = remiSetupApproverViewState;
52
- const actions = [
53
- fetchRemiSetupApproverViewSuccess(approvalRuleIds),
54
- ];
55
- if (shouldFetchClassList) {
56
- actions.push(fetchClassList());
57
- }
58
- return from(actions);
42
+ return of(fetchRemiSetupApproverViewSuccess(approvalRuleIds));
59
43
  }
60
44
  }));
@@ -21,6 +21,7 @@ export const initializeRemiSetupApproverViewUpdateDataEpic = (actions$, state$)
21
21
  name: approvalRule.name,
22
22
  description: approvalRule.description,
23
23
  separationOfDuties: approvalRule.separationOfDuties,
24
+ isFallback: approvalRule.isFallback,
24
25
  };
25
26
  fetchActions.push(clearRemiSetupApproverViewUpdateData(), saveRemiSetupApproverViewUpdateData(remiSetupApproverViewUpdateData));
26
27
  }
package/lib/index.d.ts CHANGED
@@ -303,7 +303,7 @@ import { isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType
303
303
  import { MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount } from './view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper';
304
304
  import { UploadStatementDocumentAIPayload, UploadStatementDocumentAIResponse } from './view/expenseAutomationView/payload/reconciliationPayload';
305
305
  import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFluxAnalysisView, updateFluxAnalysisViewPageMetaData, updateFluxAnalysisViewUIState, updateOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview } from './view/expenseAutomationView/reducers/fluxAnalysisViewReducer';
306
- import { clearJeScheduleLocalData as clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, clearSearchTransactionsForNewSchedule as clearJeSearchTransactionsForNewSchedule, createOneTimeAccrual, createOneTimeAccrualFailure, createOneTimeAccrualSuccess, fetchJeSchedulesPage as fetchExpenseAutomationJESchedulesPage, fetchOneTimeAccrual, ignoreRecommendedJeSchedule as ignoreExpenseAutomationJESchedule, ignoreOneTimeAccrual, initializeAccountSettingsView as initializeJeAccountSettingsView, initializeNewSchedule as initializeJeNewSchedule, initializeJeScheduleLocalData, promoteOneTimeAccrual, removeJeOneTimeAccrualLocalData, removeJeScheduleTransactionKey, resetNewScheduleLocalData as resetJeNewScheduleLocalData, retryJeSchedule as retryExpenseAutomationJESchedule, revertJeSchedule, revertOneTimeAccrual, saveAccountSettings as saveJeAccountSettings, saveAccountSettingsLocalData as saveJeAccountSettingsLocalData, saveNewSchedule as saveJeNewSchedule, saveNewScheduleFailure as saveJeNewScheduleFailure, saveNewScheduleSuccess as saveJeNewScheduleSuccess, searchTransactionsForNewSchedule as searchJeTransactionsForNewSchedule, searchTransactionsForNewScheduleFailure as searchJeTransactionsForNewScheduleFailure, searchTransactionsForNewScheduleSuccess as searchJeTransactionsForNewScheduleSuccess, toggleJECreatedGroupCollapsed, toggleJEPendingGroupCollapsed, updateJESchedulesUIState as updateExpenseAutomationJESchedulesUIState, updateJEScheduleTypeFilter, updateNewScheduleLocalData as updateJeNewScheduleLocalData, updateJeOneTimeAccrualLocalData, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
306
+ import { clearJeScheduleLocalData as clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, clearSearchTransactionsForNewSchedule as clearJeSearchTransactionsForNewSchedule, createOneTimeAccrual, createOneTimeAccrualFailure, createOneTimeAccrualSuccess, fetchJeSchedulesPage as fetchExpenseAutomationJESchedulesPage, fetchOneTimeAccrual, ignoreRecommendedJeSchedule as ignoreExpenseAutomationJESchedule, ignoreOneTimeAccrual, initializeAccountSettingsView as initializeJeAccountSettingsView, initializeNewSchedule as initializeJeNewSchedule, initializeJeScheduleLocalData, promoteOneTimeAccrual, removeJeScheduleTransactionKey, resetNewScheduleLocalData as resetJeNewScheduleLocalData, retryJeSchedule as retryExpenseAutomationJESchedule, revertJeSchedule, revertOneTimeAccrual, saveAccountSettings as saveJeAccountSettings, saveAccountSettingsLocalData as saveJeAccountSettingsLocalData, saveNewSchedule as saveJeNewSchedule, saveNewScheduleFailure as saveJeNewScheduleFailure, saveNewScheduleSuccess as saveJeNewScheduleSuccess, searchTransactionsForNewSchedule as searchJeTransactionsForNewSchedule, searchTransactionsForNewScheduleFailure as searchJeTransactionsForNewScheduleFailure, searchTransactionsForNewScheduleSuccess as searchJeTransactionsForNewScheduleSuccess, toggleJECreatedGroupCollapsed, toggleJEPendingGroupCollapsed, updateJESchedulesUIState as updateExpenseAutomationJESchedulesUIState, updateJEScheduleTypeFilter, updateNewScheduleLocalData as updateJeNewScheduleLocalData, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
307
307
  import { acknowledgeBulkUploadConfirmMatchComplete, bulkUploadAutomatchingTimedOut, bulkUploadReceipts, bulkUploadReceiptsFailure, bulkUploadReceiptsSuccess, clearBulkUpload, clearBulkUploadBatchDetailsForScopeChange, clearManualSearchResults, clearMissingReceiptsTabNavigation, confirmBulkUploadMatch, confirmBulkUploadMatchFailure, confirmBulkUploadMatchSuccess, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsFailure, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatches, fetchBulkUploadBatchesFailure, fetchBulkUploadBatchesSuccess, fetchCompletedTransactions, fetchCompletedTransactionsFailure, fetchCompletedTransactionsSuccess, fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, markBatchDetailRefreshAttempted, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, pusherBatchStatusUpdate, refreshBatchDetailsForBatchId, requestMissingReceiptsTabNavigation, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, searchTransactionsForManualMatch, searchTransactionsForManualMatchFailure, searchTransactionsForManualMatchSuccess, setBulkUploadCompletedSubTab, setBulkUploadResultsTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, storeBatchDetails, updateBulkUploadProgress, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
308
308
  import { clearStatementDateConflict, confirmStatementMapping, deleteAccountStatement, deleteCombinedStatement, excludeAccountFromReconciliation, fetchReconciliation as fetchReconciliationView, includeAccountInReconciliation, parseCombinedStatement, parseStatement, parseStatementFailure, parseStatementSuccess, reparseStatement, reparseStatementFailure, reparseStatementSuccess, resetReparseStatementStatus, saveReconciliationDetail as saveExpenseAutomationReconciliationDetail, saveReconciliationReview as saveExpenseAutomationReconciliationReview, setConnectionInProgressForAccount as setConnectionInProgressForAccountReconciliation, setStatementParseInProgress, setStatementProcessingDismissedToBackground, submitCombinedStatementUpdate, submitStatementUpdate, 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, updateNodeCollapseState, updateParsedStatementData, updateStatementProcessingBackgroundCompletedSteps, updateStatementProcessingFailed, updateStatementUpdateLocalData, updateStatementUploadChosen, uploadAccountStatement } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
309
309
  import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markCategoryClassRecommendationsFailureForCategorization, markTransactionAsNotMiscategorized, removeTransactionFromAllTabs, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationCompletedSubTab, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState, updateTransactionCategorizationUploadReceiptState, updateTransactionFilters, updateTransactionGroup, uploadTransactionCategorizationReceiptSuccess } from './view/expenseAutomationView/reducers/transactionsViewReducer';
@@ -311,15 +311,15 @@ import { ExpenseAutomationStepDetails, ExpenseAutomationViewSelector } from './v
311
311
  import { ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisOperatingExpenseView, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView } from './view/expenseAutomationView/selectorTypes/fluxAnalysisViewSelectorTypes';
312
312
  import { JEAccountSettingsView } from './view/expenseAutomationView/selectorTypes/jeAccountSettingsViewSelectorTypes';
313
313
  import { NewAccrualAccountsView, NewScheduleSearchTransactionsView, NewScheduleView } from './view/expenseAutomationView/selectorTypes/jeNewScheduleViewSelectorTypes';
314
- import { ExpenseAutomationJESchedulesViewSelector, JEKpiSummary, JEScheduleRow } from './view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes';
314
+ import { ExpenseAutomationJESchedulesViewSelector, JEKpiSummary } from './view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes';
315
315
  import { BulkUploadSelectorData, ExpenseAutomationMissingReceiptsViewSelector } from './view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes';
316
316
  import { CompletedTransactionsSelectorData, ResolvedBatchDetails, ResolvedBatchFile, ResolvedCandidate } from './view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes';
317
317
  import { AccountReconSectionID, AccountReconciliationByAccount, AccountReconciliationBySection, ExpenseAutomationReconciliationViewSelector } from './view/expenseAutomationView/selectorTypes/reconciliationViewSelectorTypes';
318
318
  import { ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView } from './view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes';
319
319
  import { getExpenseAutomationFluxAnalysisView } from './view/expenseAutomationView/selectors/fluxAnalysisViewSelector';
320
320
  import { getNewAccrualAccountsView as getJeNewAccrualAccountsView, getNewScheduleSearchTransactionsView as getJeNewScheduleSearchTransactionsView, getNewScheduleView as getJeNewScheduleView } from './view/expenseAutomationView/selectors/jeNewScheduleViewSelector';
321
+ import { ExpenseAutomationJEOneTimeAccrualDetailView, JEScheduleRow } from './view/expenseAutomationView/selectors/jeSchedulesViewSelector';
321
322
  import { JEScheduledTransactionWithFailedEntries } from './view/expenseAutomationView/selectors/jeScheduledTransactionWithFailedEntries';
322
- import { ExpenseAutomationJEOneTimeAccrualDetailView } from './view/expenseAutomationView/selectors/jeSchedulesViewSelector';
323
323
  import { getExpenseAutomationReconciliationView, getLedgerAccountIdsWithStatementOverrideWarning, getLedgerAccountsForCombinedStatementMapping, getReparseStatementStatusByAccountId, getUnavailableLedgerAccountIds, isAccountReconReport } from './view/expenseAutomationView/selectors/reconciliationViewSelector';
324
324
  import { getExpenseAutomationTransactionView, getLastTransferEntryReplacement } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
325
325
  import { applyTransactionFilters } from './view/expenseAutomationView/transactionFilterHelpers';
@@ -420,7 +420,7 @@ import { ProfitAndLossProjectViewReport } from './view/profitAndLossProjectView/
420
420
  import { ProfitAndLossProjectViewUIState } from './view/profitAndLossProjectView/profitAndLossProjectViewState';
421
421
  import { fetchProjectList } from './view/projectList/projectListReducer';
422
422
  import { ProjectListSelectorView, getProjectList } from './view/projectList/projectListSelector';
423
- import { fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityId, fetchRecommendationByEntityName, submitRecommendationFeedback } from './view/recommendation/recommendationReducer';
423
+ import { fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityId, fetchRecommendationByEntityName } from './view/recommendation/recommendationReducer';
424
424
  import { DEFAULT_REFERRER_AMOUNT, clearReferrals, fetchReferrals, fetchRewardsPlan, resendReferralInvite, saveReferralFormDataInLocalStore, sendReferralInvite, updateReferViewed, updateReferralListSortUiState } from './view/referralView/referralReducer';
425
425
  import { ReferralListSelectorView, RewardsPlanCardReport, getInviteFormView, getReferralListView, getRewardsPlanCard } from './view/referralView/referralSelector';
426
426
  import { AmountStatusTypes, InviteCompanyLocalData, ReferralAmountStatus, ReferralInvitation, ReferralListViewSortKey, ReferralStatus, ReferralViewState, ReferralViewUIState, RewardsPlanData, StatusTypes, toReferralListViewSortKeyType } from './view/referralView/referralState';
@@ -908,9 +908,8 @@ export { Filing1099TinType };
908
908
  export { BillPayCardReport };
909
909
  export { ReimbursementCardReport };
910
910
  export { VendorListViewSortKey, VendorViewUIState, VendorListSelectorView, VendorListQuery, getVendorList, VendorListView, updateSortUiState, updatePageToken, updateYTDSelectionUIState, VendorListViewYTDSpendSortKey, isColumnYTDSpend, isVendorsTabVisible, VendorViewType, VendorReportIDType, toVendorReportIDType, VendorFiling1099ListSelectorView, getVendorFiling1099List, VendorFiling1099ListViewSortKey, VendorFiling1099ViewUIState, VendorFiling1099DownloadData, fetchVendorsFiling1099Download, Type1099Download, VendorFiling1099DownloadDataForType, };
911
- export { fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityId, fetchRecommendationByEntityName, submitRecommendationFeedback, };
911
+ export { fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityId, fetchRecommendationByEntityName, };
912
912
  export type { FetchEntityRecommendationsForLineUpdatePayload, RecommendationLineUpdateFlowType, } from './view/recommendation/recommendationReducer';
913
- export type { RecommendationFeedbackDimension, RecommendationFeedbackOutcome, RecommendationFeedbackSource, RecommendationFeedbackValue, ShownRecommendationForFeedback, SubmitRecommendationFeedbackPayload, } from './view/recommendation/recommendationPayload';
914
913
  export { fetchOwnerList };
915
914
  export { ZeniAccountsConfigSelectorView, getZeniAccountsConfigDetail, ZeniAccountListSelectorView, getZeniAccountList, fetchZeniAccountList, fetchAccountList, DepositAccount, createCheckingAccount, fetchPaymentAccountList, unlinkPaymentAccount, getDepositAccountDetail, DepositAccountDetailSelectorView, DepositAccountListSelectorView, getAllDepositAccounts, getDepositAccountDetailForPDF, DepositAccountDetailForPDF, fetchDepositAccount, fetchZeniAccountsConfig, AccountHistoryWithBalances, TransferDetailLocalData, ReviewTransferDetail, updateTransferMoneyLocalData, updateTransferToLocalData, updateDepositToLocalData, transferMoney, getTransferDetail, TransferDetailSelectorView, clearTransferDetail, clearReviewTransferDetail, fetchReviewTransferDetail, fetchDepositAccountDetail, DepositAccountTransaction, DepositAccountWithAutoTransferRules, DepositTransactionStatusCode, DepositTransactionStatus, CheckDepositLocalData, depositCheck, updateCheckDepositLocalData, clearCheckDeposit, CheckDepositSelectorView, getCheckDepositDetail, updateDepositAccount, fetchDepositAccountHistorySuccess, fetchDepositAccountHistoryFailure, DepositAccountUpdateType, ZeniAccountSummaryWithBalance, fetchZeniAccStatementPage, getZeniAccStatements, ZeniAccStatementsSelectorView, ZeniAccountPaymentMethod, };
916
915
  export { CommonHistoryView, HistoricEvent, HistoricEventUpdate, ActivityHistorySelectorView, };
@@ -939,7 +938,7 @@ export { TIME_SERIES_DURATIONS, PerformanceReportKey, TimeSeriesDuration, conver
939
938
  export { fetchApAging, getApAgingReport, updateApAgingUIState, AgingReportId, ApAgingReport, AgingBalance, AgingPeriod, AgingReportSortKey, AgingBalancesByVendor, AgingReportUIState, AgingDetailReportUIState, AgingDetailReportInvoice, AgingDateSelectionType, };
940
939
  export { fetchApAgingDetail, AgingReportInvoice, ApAgingDetail, getApAgingDetailForVendor, updateApAgingDetailUIState, };
941
940
  export { LinkBillExpenseKey };
942
- export { clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, clearJeSearchTransactionsForNewSchedule, fetchExpenseAutomationJESchedulesPage, ignoreExpenseAutomationJESchedule, initializeJeAccountSettingsView, initializeJeNewSchedule, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, resetJeNewScheduleLocalData, retryExpenseAutomationJESchedule, saveJeNewSchedule, saveJeNewScheduleFailure, saveJeNewScheduleSuccess, searchJeTransactionsForNewSchedule, searchJeTransactionsForNewScheduleFailure, searchJeTransactionsForNewScheduleSuccess, updateExpenseAutomationJESchedulesUIState, updateJeNewScheduleLocalData, removeJeOneTimeAccrualLocalData, updateJeOneTimeAccrualLocalData, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys, };
941
+ export { clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, clearJeSearchTransactionsForNewSchedule, fetchExpenseAutomationJESchedulesPage, ignoreExpenseAutomationJESchedule, initializeJeAccountSettingsView, initializeJeNewSchedule, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, resetJeNewScheduleLocalData, retryExpenseAutomationJESchedule, saveJeNewSchedule, saveJeNewScheduleFailure, saveJeNewScheduleSuccess, searchJeTransactionsForNewSchedule, searchJeTransactionsForNewScheduleFailure, searchJeTransactionsForNewScheduleSuccess, updateExpenseAutomationJESchedulesUIState, updateJeNewScheduleLocalData, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys, };
943
942
  export { createNewSchedulesAccrued, deleteScheduleAccruedDetail, cancelScheduleAccruedJournalEntry, fetchScheduleAccruedDetails, fetchScheduleAccruedDetailsPage, resetJEAccruedLinkInLocalData, saveScheduleAccruedDetails, updateAmountsInScheduleAccruedDetail, updatedJEAccruedLinkWithRecommendedLocalData, updatedJELinkInLocalDataAccruedExpenses, fetchRecommendedTransactionRowIndex, clearSelectedJELinkRowIndex, updateLinkBillExpenseLocalData, updateScheduleAccruedDetailsLocalData, updateSelectedJEAccruedScheduleKey, resetSelectedJEAccruedScheduleKey, resetAccruedDetailNewScheduleState, };
944
943
  export { JEScheduleKey, JEScheduleTransactionKey, ScheduleTransactionID, getJEScheduleTransactionKey, ALL_JE_SCHEDULE_IGNORE_REASONS, ALL_JE_SCHEDULE_REVERT_REASONS, ALL_ONE_TIME_ACCRUAL_IGNORE_REASONS, ALL_ONE_TIME_ACCRUAL_REVERT_REASONS, ALL_SCHEDULES_TYPES, JEScheduledTransaction, JEAccruedSchedule, JEOneTimeAccrual, OneTimeAccrualEdits, JEOneTimeAccrualAiSuggestion, JEOneTimeAccrualBillingPattern, JEOneTimeAccrualMonthlyTotal, JEOneTimeAccrualProfileSnapshot, JEOneTimeAccrualKey, JEScheduleAISummaries, JEScheduleFieldRecommendation, JEScheduleSummary, ScheduleTypes, ScheduleJournalEntryStatusCodeType, ScheduleListReport, ScheduleAccruedListReport, getScheduleListReport, getAccruedScheduleListReport, ScheduleSubTabType, ScheduleListSortKey, fetchScheduleList, fetchAccruedScheduleList, fetchDownloadSchedules, fetchSchedulesAccount, updateScheduleListLocalData, getFetchStateForScheduleAccountList, toScheduleTypesType, toScheduleTypesTypeStrict, toScheduleListTabsFileTypeStrict, ScheduleListLocalData, ScheduleDetailsLocalDataFixedAssets, ScheduleDetailsLocalDataAccruedExpenses, ScheduleDetailsView, ScheduleAccruedDetailsView, LinkBillExpenseView, LinkBillExpenseLocalData, JEScheduleDetailsLocalData, ScheduleDetailsLocalData, toScheduleSubTabType, ScheduleStatusCodeType, JEScheduleIgnoreReasonType, JEScheduleRevertReasonType, JournalEntryErrorCodeType, OneTimeAccrualIgnoreReasonType, OneTimeAccrualRevertReasonType, ScheduleTransaction, updateScheduleListSubTab, updateScheduleListSearchText, updateScheduleListScrollState, updateScheduleListSortState, ScheduleDetailSortKey, ScheduledJournalEntry, updateSelectedJEScheduleKey, fetchScheduleDetails, getScheduleDetailsView, getAccruedScheduleDetailsView, fetchScheduleDetailsPage, saveScheduleDetails, deleteScheduleDetail, createNewSchedules, updateScheduleDetailsLocalData, JETransactionLink, updateScheduleListDownloadState, updateAccruedJEScheduleAccruedByListKey, DownloadJEScheduleTabOptions, updatedSelectedJELinkRowIndex, ScheduleListTabsFileType, getQBOUrlForLink, getThirdPartyIDFromQBOURL, updatedJELinkInLocalData, updateAmountsInScheduleDetail, ScheduleDetailUIState, resetJELinkInLocalData, JEScheduledTransactionWithBalance, JEScheduleWithBalance, JELinkType, updatedJELinkWithRecommendedLocalData, getFetchStateForScheduleListByType, getDefaultSelectedTimeframeForScheduleType, markAsCompleteScheduleDetail, resetMarkAsCompleteStatus, fetchVendorTabView, updateVendorTabViewTab, VendorTabViewTabType, getVendorTabView, VendorTabViewSelectorView, };
945
944
  export { GlobalMerchant, GlobalMerchantBase, TenantMerchant };
@@ -984,7 +983,7 @@ export { AiCfoViewSelector, getAiCfoView, getSuggestedQuestionsForPageContext, g
984
983
  export { MessagePayload, ChatSessionPayload, AiCfoAnswerPayload, } from './entity/aiCfo/aiCfoPayload';
985
984
  export { setNewSession, setSessions, updateAiCfoAnswerCardPolicyWizardPlan, upsertAnswerPayload, upsertOrAddQuestionAnswerPayload, addQuestionPayload, clearSession, toAiCfoExports, toAiCfoVisualization, appendSyntheticAiCfoAnswer, updateSyntheticAiCfoAnswer, removeSyntheticAiCfoAnswer, } from './entity/aiCfo/aiCfoReducer';
986
985
  export { AiCfoSelectorView, getAllQuestionAnswersForChatSession, getQuestionAnswerByIdForChatSession, getAllQuestionsForChatSession, getAiCfoSelectorView, getSyntheticAiCfoAnswersForChatSession, getSyntheticAiCfoAnswerByQuestionAnswerId, ChatSessionWithOrderedQuestionAnswers, } from './entity/aiCfo/aiCfoSelector';
987
- export { AiCfoQuestionWithAnswer, AiCfoAnswerParagraph, AiCfoAnswerStateType, AiCfoChartType, AiCfoAnswerResponseType, TableVisualization, ChartVisualization, CardNameOption, CardsCardKind, CardsCreationInitialData, CardPolicyDraftPolicy, CardPolicyDraftPolicyEntity, CardPolicyInitialData, CardPolicySpendLimits, CardPolicyStep5Review, CardPolicyUploadSource, CardPolicyWizardPlan, InteractiveFormType, InteractiveFormVisualization, AiCfoCapabilityPromo, AiCfoCapabilityPromoCta, AiCfoCapabilityPromoSurface, AiCfoExport, AiCfoVisualization, AiCfoVisualizationType, AiCfoState, ChatSession, ALL_AI_CFO_CHARTS_TYPES, ALL_AI_CFO_VISUALIZATION_TYPES, ALL_AI_CFO_ANSWER_STATE_TYPES, ALL_AI_CFO_ANSWER_RESPONSE_TYPES, ALL_INTERACTIVE_FORM_TYPES, toAiCfoVisualizationType, toAiCfoVisualizationTypeStrict, toAiCfoChartType, toAiCfoChartTypeStrict, toAiCfoAnswerStateType, toAiCfoAnswerStateTypeStrict, toAiCfoAnswerResponseType, toAiCfoAnswerResponseTypeStrict, toInteractiveFormType, toInteractiveFormTypeStrict, ChatSessionWithMessages, ResponseBlockBase, AnswerContentBlockBase, FileAttachmentMetadata, QuestionContentBlockBase, ResponseBlockType, SyntheticAiCfoAnswer, SyntheticAiCfoAnswerKind, ALL_SYNTHETIC_AI_CFO_ANSWER_KINDS, toMessageSender, toMessageType, MessageSender, MessageType, } from './entity/aiCfo/aiCfoState';
986
+ export { AiCfoQuestionWithAnswer, AiCfoAnswerParagraph, AiCfoAnswerStateType, AiCfoChartType, AiCfoAnswerResponseType, TableVisualization, ChartVisualization, CardNameOption, CardsCardKind, CardsCreationInitialData, CardPolicyDraftPolicy, CardPolicyDraftPolicyEntity, CardPolicyInitialData, CardPolicySpendLimits, CardPolicyStep5Review, CardPolicyUploadSource, CardPolicyWizardPlan, InteractiveFormType, InteractiveFormVisualization, AiCfoExport, AiCfoVisualization, AiCfoVisualizationType, AiCfoState, ChatSession, ALL_AI_CFO_CHARTS_TYPES, ALL_AI_CFO_VISUALIZATION_TYPES, ALL_AI_CFO_ANSWER_STATE_TYPES, ALL_AI_CFO_ANSWER_RESPONSE_TYPES, ALL_INTERACTIVE_FORM_TYPES, toAiCfoVisualizationType, toAiCfoVisualizationTypeStrict, toAiCfoChartType, toAiCfoChartTypeStrict, toAiCfoAnswerStateType, toAiCfoAnswerStateTypeStrict, toAiCfoAnswerResponseType, toAiCfoAnswerResponseTypeStrict, toInteractiveFormType, toInteractiveFormTypeStrict, ChatSessionWithMessages, ResponseBlockBase, AnswerContentBlockBase, FileAttachmentMetadata, QuestionContentBlockBase, ResponseBlockType, SyntheticAiCfoAnswer, SyntheticAiCfoAnswerKind, ALL_SYNTHETIC_AI_CFO_ANSWER_KINDS, toMessageSender, toMessageType, MessageSender, MessageType, } from './entity/aiCfo/aiCfoState';
988
987
  export { clearPolicyDocumentExtraction, extractPolicyDocument, fetchCardPolicyMccCategories, fetchCardPolicyRecommendationFromUpload, fetchCardPolicyVendorOptions, removeCardPolicyTemplate, updateCardPolicyMccCategories, updateCardPolicyMccCategoriesFailure, updateCardPolicyStats, updateCardPolicyTemplates, updateCardPolicyVendorOptions, updateCardPolicyVendorOptionsFailure, updateCreatedCardPolicyTemplate, updatePolicyDocumentExtractionFailure, updatePolicyDocumentExtractionSuccess, updatePolicyRecommendationFromUploadFailure, updatePolicyRecommendationFromUploadSuccess, } from './entity/cardPolicy/cardPolicyReducer';
989
988
  export { getAllCardPolicyTemplates, getCardPolicyMccCategories, getCardPolicyMccCategoriesError, getCardPolicyMccCategoriesFetchState, getCardPolicyStats, getCardPolicySuggestedAllowCategories, getCardPolicySuggestedAllowMerchants, getCardPolicySuggestedBlockCategories, getCardPolicySuggestedBlockMerchants, getCardPolicyTemplateById, getCardPolicyTemplatesByIds, getCardPolicyVendorSearchFetchState, getCardPolicyVendorSearchOptions, getCardPolicyVendorSearchString, getExtractedCardPolicyRules, getPolicyDocumentExtractionError, getPolicyDocumentExtractionFetchState, getPolicyRecommendationFromUploadAnswerId, getPolicyRecommendationFromUploadChatSessionId, getPolicyRecommendationFromUploadError, getPolicyRecommendationFromUploadFetchState, getUploadedPolicyDocumentFileName, } from './entity/cardPolicy/cardPolicySelector';
990
989
  export { ALL_CARD_POLICY_TEMPLATE_MODES, ALL_CARD_POLICY_TEMPLATE_STATUSES, CardPolicyState, CardPolicyStats, CardPolicyTemplate, CardPolicyTemplateEntityList, CardPolicyTemplateMode, CardPolicyTemplateSpendLimits, CardPolicyTemplateStatus, CardPolicyVendorSearchEntry, CardPolicyVendorSearchState, ExtractedCardPolicyRules, MccCategory, PolicyDocumentExtractionState, PolicyRecommendationFromUploadState, toCardPolicyTemplateMode, toCardPolicyTemplateStatus, } from './entity/cardPolicy/cardPolicyState';