@zeniai/client-epic-state 5.0.35 → 5.0.36-betaRD1

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 (58) hide show
  1. package/lib/coreEpics.js +4 -1
  2. package/lib/entity/tenant/clearAllEpic.d.ts +2 -1
  3. package/lib/entity/tenant/clearAllEpic.js +2 -0
  4. package/lib/entity/tenant/epic/deleteConnectionEpic.d.ts +19 -0
  5. package/lib/entity/tenant/epic/deleteConnectionEpic.js +29 -0
  6. package/lib/entity/tenant/epic/saveAPIKeyConnectionEpic.d.ts +19 -0
  7. package/lib/entity/tenant/epic/saveAPIKeyConnectionEpic.js +31 -0
  8. package/lib/entity/tenant/epic/saveOAuthConnectionEpic.d.ts +19 -0
  9. package/lib/entity/tenant/epic/saveOAuthConnectionEpic.js +33 -0
  10. package/lib/entity/tenant/tenantPayload.d.ts +1 -0
  11. package/lib/entity/tenant/tenantReducer.d.ts +59 -1
  12. package/lib/entity/tenant/tenantReducer.js +139 -4
  13. package/lib/entity/tenant/tenantState.d.ts +7 -0
  14. package/lib/epic.d.ts +3 -1
  15. package/lib/epic.js +6 -1
  16. package/lib/esm/coreEpics.js +4 -1
  17. package/lib/esm/entity/tenant/clearAllEpic.js +2 -0
  18. package/lib/esm/entity/tenant/epic/deleteConnectionEpic.js +25 -0
  19. package/lib/esm/entity/tenant/epic/saveAPIKeyConnectionEpic.js +27 -0
  20. package/lib/esm/entity/tenant/epic/saveOAuthConnectionEpic.js +29 -0
  21. package/lib/esm/entity/tenant/tenantReducer.js +135 -2
  22. package/lib/esm/epic.js +6 -1
  23. package/lib/esm/index.js +5 -2
  24. package/lib/esm/reducer.js +3 -0
  25. package/lib/esm/view/commonVendorView/transactionVendorView/epics/saveTransactionVendorEpic.js +2 -0
  26. package/lib/esm/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +11 -8
  27. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +13 -11
  28. package/lib/esm/view/featureNotificationView/epics/fetchRegisteredInterestsEpic.js +23 -0
  29. package/lib/esm/view/featureNotificationView/epics/notifyMeForFeatureEpic.js +25 -0
  30. package/lib/esm/view/featureNotificationView/featureNotificationViewPayload.js +11 -0
  31. package/lib/esm/view/featureNotificationView/featureNotificationViewReducer.js +106 -0
  32. package/lib/esm/view/featureNotificationView/featureNotificationViewSelector.js +4 -0
  33. package/lib/esm/view/featureNotificationView/featureNotificationViewState.js +1 -0
  34. package/lib/esm/view/recommendation/fetchEntityRecommendationsByTransactionIdEpic.js +2 -1
  35. package/lib/index.d.ts +6 -2
  36. package/lib/index.js +51 -31
  37. package/lib/reducer.d.ts +3 -0
  38. package/lib/reducer.js +3 -0
  39. package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
  40. package/lib/view/commonVendorView/transactionVendorView/epics/saveTransactionVendorEpic.js +2 -0
  41. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +3 -3
  42. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +11 -8
  43. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +6 -2
  44. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +13 -11
  45. package/lib/view/featureNotificationView/epics/fetchRegisteredInterestsEpic.d.ts +16 -0
  46. package/lib/view/featureNotificationView/epics/fetchRegisteredInterestsEpic.js +27 -0
  47. package/lib/view/featureNotificationView/epics/notifyMeForFeatureEpic.d.ts +14 -0
  48. package/lib/view/featureNotificationView/epics/notifyMeForFeatureEpic.js +29 -0
  49. package/lib/view/featureNotificationView/featureNotificationViewPayload.d.ts +23 -0
  50. package/lib/view/featureNotificationView/featureNotificationViewPayload.js +15 -0
  51. package/lib/view/featureNotificationView/featureNotificationViewReducer.d.ts +19 -0
  52. package/lib/view/featureNotificationView/featureNotificationViewReducer.js +110 -0
  53. package/lib/view/featureNotificationView/featureNotificationViewSelector.d.ts +6 -0
  54. package/lib/view/featureNotificationView/featureNotificationViewSelector.js +11 -0
  55. package/lib/view/featureNotificationView/featureNotificationViewState.d.ts +26 -0
  56. package/lib/view/featureNotificationView/featureNotificationViewState.js +2 -0
  57. package/lib/view/recommendation/fetchEntityRecommendationsByTransactionIdEpic.js +2 -1
  58. package/package.json +1 -1
@@ -0,0 +1,25 @@
1
+ import { from } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
4
+ import { notifyMeForFeature, notifyMeForFeatureFailure, notifyMeForFeatureSuccess, } from '../featureNotificationViewReducer';
5
+ export const notifyMeForFeatureEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(notifyMeForFeature.match), switchMap((action) => zeniAPI
6
+ .postAndGetJSON(`${zeniAPI.apiEndPoints.notificationMicroServiceBaseUrl}/1.0/feature-interests`, {
7
+ additional_info: action.payload.additionalInfo,
8
+ email: action.payload.email,
9
+ feature: action.payload.feature,
10
+ })
11
+ .pipe(mergeMap((response) => {
12
+ if (isSuccessResponse(response) && response.data != null) {
13
+ return from([notifyMeForFeatureSuccess(response.data)]);
14
+ }
15
+ const status = response.status ??
16
+ createZeniAPIStatus('Failed to register interest. Please try again.');
17
+ return from([notifyMeForFeatureFailure(status)]);
18
+ }), catchError((error) => {
19
+ const message = error instanceof Error
20
+ ? error.message
21
+ : 'Unexpected error registering interest.';
22
+ return from([
23
+ notifyMeForFeatureFailure(createZeniAPIStatus(message)),
24
+ ]);
25
+ }))));
@@ -0,0 +1,11 @@
1
+ import { date } from '../../zeniDayJS';
2
+ export const toFeatureInterest = (payload) => ({
3
+ interestId: payload.interest_id,
4
+ feature: payload.feature,
5
+ notified: payload.notified,
6
+ createTime: date(payload.create_time),
7
+ updateTime: date(payload.update_time),
8
+ additionalInfo: payload.additional_info ?? undefined,
9
+ email: payload.email ?? undefined,
10
+ notifiedTime: payload.notified_time != null ? date(payload.notified_time) : undefined,
11
+ });
@@ -0,0 +1,106 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+ import { toFeatureInterest, } from './featureNotificationViewPayload';
3
+ export const initialState = {
4
+ fetchRegisteredInterestsState: {
5
+ fetchState: 'Not-Started',
6
+ error: undefined,
7
+ },
8
+ notifyMeForFeatureState: {
9
+ fetchState: 'Not-Started',
10
+ error: undefined,
11
+ },
12
+ registeredInterests: [],
13
+ };
14
+ const featureNotificationView = createSlice({
15
+ name: 'featureNotificationView',
16
+ initialState,
17
+ reducers: {
18
+ notifyMeForFeature: {
19
+ prepare(feature, additionalInfo, email) {
20
+ return { payload: { feature, additionalInfo, email } };
21
+ },
22
+ reducer(draft,
23
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
24
+ _action) {
25
+ draft.notifyMeForFeatureState = {
26
+ fetchState: 'In-Progress',
27
+ error: undefined,
28
+ };
29
+ },
30
+ },
31
+ notifyMeForFeatureSuccess: {
32
+ prepare(payload) {
33
+ return { payload };
34
+ },
35
+ reducer(draft, action) {
36
+ draft.notifyMeForFeatureState = {
37
+ fetchState: 'Completed',
38
+ error: undefined,
39
+ };
40
+ const interest = toFeatureInterest(action.payload);
41
+ // Idempotent: if a row for this (feature, additional_info) already
42
+ // exists in the slice, replace it; otherwise append.
43
+ const existingIndex = draft.registeredInterests.findIndex((r) => r.feature === interest.feature &&
44
+ r.additionalInfo === interest.additionalInfo);
45
+ if (existingIndex >= 0) {
46
+ draft.registeredInterests[existingIndex] = interest;
47
+ }
48
+ else {
49
+ draft.registeredInterests.push(interest);
50
+ }
51
+ },
52
+ },
53
+ notifyMeForFeatureFailure: {
54
+ prepare(status) {
55
+ return { payload: { status } };
56
+ },
57
+ reducer(draft, action) {
58
+ draft.notifyMeForFeatureState = {
59
+ fetchState: 'Error',
60
+ error: action.payload.status,
61
+ };
62
+ },
63
+ },
64
+ fetchRegisteredInterests: {
65
+ prepare(feature) {
66
+ return { payload: { feature } };
67
+ },
68
+ reducer(draft,
69
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
70
+ _action) {
71
+ draft.fetchRegisteredInterestsState = {
72
+ fetchState: 'In-Progress',
73
+ error: undefined,
74
+ };
75
+ },
76
+ },
77
+ fetchRegisteredInterestsSuccess: {
78
+ prepare(interests) {
79
+ return { payload: { interests } };
80
+ },
81
+ reducer(draft, action) {
82
+ draft.fetchRegisteredInterestsState = {
83
+ fetchState: 'Completed',
84
+ error: undefined,
85
+ };
86
+ draft.registeredInterests = action.payload.interests;
87
+ },
88
+ },
89
+ fetchRegisteredInterestsFailure: {
90
+ prepare(status) {
91
+ return { payload: { status } };
92
+ },
93
+ reducer(draft, action) {
94
+ draft.fetchRegisteredInterestsState = {
95
+ fetchState: 'Error',
96
+ error: action.payload.status,
97
+ };
98
+ },
99
+ },
100
+ clearFeatureNotificationView(draft) {
101
+ Object.assign(draft, initialState);
102
+ },
103
+ },
104
+ });
105
+ export const { clearFeatureNotificationView, fetchRegisteredInterests, fetchRegisteredInterestsFailure, fetchRegisteredInterestsSuccess, notifyMeForFeature, notifyMeForFeatureFailure, notifyMeForFeatureSuccess, } = featureNotificationView.actions;
106
+ export default featureNotificationView.reducer;
@@ -0,0 +1,4 @@
1
+ export const getFeatureNotificationView = (state) => state.featureNotificationViewState;
2
+ export const getRegisteredInterests = (state) => state.featureNotificationViewState.registeredInterests;
3
+ export const getRegisteredInterestsByFeature = (state, feature) => state.featureNotificationViewState.registeredInterests.filter((interest) => interest.feature === feature);
4
+ export const isFeatureInterestRegistered = (state, feature, additionalInfo) => state.featureNotificationViewState.registeredInterests.some((interest) => interest.feature === feature && interest.additionalInfo === additionalInfo);
@@ -1,5 +1,6 @@
1
1
  import { from, of } from 'rxjs';
2
2
  import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { getIsAccountingClassesEnabled } from '../../entity/tenant/tenantSelector';
3
4
  import { getTransactionWithCOT, getTransactionWithCOTFromRecommendations, } from '../../entity/transaction/transactionHelper';
4
5
  import { createZeniAPIStatus, isSuccessResponse } from '../../responsePayload';
5
6
  import { setEntityRecommendationForLineIdsForCategorization } from '../../view/expenseAutomationView/reducers/transactionsViewReducer';
@@ -51,7 +52,7 @@ export const fetchEntityRecommendationsByTransactionIdEpic = (actions$, state$,
51
52
  if (recommendationWithCOTByLineId != null) {
52
53
  const uncategorizedIncomeExpense = getUncategorizedAccounts(state$.value.accountState, state$.value.accountListState, 'accountList');
53
54
  if (isTransactionCategorizationFlow === true) {
54
- actions.push(setEntityRecommendationForLineIdsForCategorization(selectedTransactionCategorizationTab, transactionId, transactionWithCOT, lineIds, entity, amount, recommendationWithCOTByLineId, uncategorizedIncomeExpense, isUncategorizedExpenseCategoryEnabled));
55
+ actions.push(setEntityRecommendationForLineIdsForCategorization(selectedTransactionCategorizationTab, transactionId, transactionWithCOT, lineIds, entity, amount, recommendationWithCOTByLineId, uncategorizedIncomeExpense, isUncategorizedExpenseCategoryEnabled, getIsAccountingClassesEnabled(state$.value)));
55
56
  }
56
57
  else {
57
58
  actions.push(setEntityRecommendationForLineIdsForTransactionDetail(transactionId, transactionWithCOT, lineIds, entity, amount, recommendationWithCOTByLineId, uncategorizedIncomeExpense));
package/lib/index.d.ts CHANGED
@@ -123,7 +123,7 @@ import { PriorityCodeType, Task, TaskCodeType, TaskPriority, TaskStatus, TaskSta
123
123
  import { getTaskGroupById } from './entity/taskGroup/taskGroupSelector';
124
124
  import { TaskGroupState } from './entity/taskGroup/taskGroupState';
125
125
  import { TaskGroupTemplate } from './entity/taskGroupTemplate/taskGroupTemplateState';
126
- import { DoSignInPayload, clearAll, doMagicLinkSignIn, doSignIn, doSignOut, sendSessionHeartbeat, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, saveExternalConnection as saveExternalConnectionForTenant, sendEmailMagicLinkToUser, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA } from './entity/tenant/tenantReducer';
126
+ import { DoSignInPayload, ExternalIntegrationType, ExternalSupportedTool, clearAll, doMagicLinkSignIn, doSignIn, doSignOut, sendSessionHeartbeat, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, deleteConnection, deleteConnectionFailure, deleteConnectionSuccess, saveAPIKeyConnection, saveAPIKeyConnectionFailure, saveAPIKeyConnectionSuccess, saveExternalConnection as saveExternalConnectionForTenant, saveOAuthConnection, saveOAuthConnectionFailure, saveOAuthConnectionSuccess, sendEmailMagicLinkToUser, toExternalIntegrationType, toExternalSupportedTool, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA } from './entity/tenant/tenantReducer';
127
127
  import { CurrentTenant, TenantBaseView, TenantCoreDetailsView, TenantView, TenantsBaseOrdered, TenantsOrdered, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantBaseById, getTenantBaseViewForTenantId, getTenantBaseViewForTenantView, getTenantsBaseByCheckInDateSelector, getTenantsByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, isOtherProductsEnabledForTenant, isTenantBankingOnly, isTenantBookkeepingEnabled, isTenantCardsOnly, isTenantUsingZeniCOA, isZeniDomainTenant, toTenantCoreDetailsView } from './entity/tenant/tenantSelector';
128
128
  import { Connection, LoggedInUser, RoleResource, Tenant, TenantProductSettings } from './entity/tenant/tenantState';
129
129
  import { ToastNotificationPayload } from './entity/toastNotification/toastNotificationPayload';
@@ -322,6 +322,9 @@ import { AverageMonthsCount, NetBurnOrIncomeRunway, NetBurnOrIncomeStoryCardStat
322
322
  import { fetchNotificationUnreadCount, fetchNotificationUnreadCountSuccess, fetchNotificationView, updateNotificationViewAllNotificationsStatus, updateNotificationViewCurrentTabAndSubTab, updateNotificationViewNotificationStatus, updateNotificationViewSubTab, updateNotificationViewTabState, updateNotificationViewUIState } from './view/notificationView/notificationViewReducer';
323
323
  import { NotificationView, getExternalNotificationsForSelectedSubTab, getNotificationView, getNotificationsForSelectedSubTab } from './view/notificationView/notificationViewSelector';
324
324
  import { NotificationSubTabType, NotificationTabState, NotificationTabType, NotificationViewUIState, toNotificationSubTabTypeStrict, toNotificationTabTypeStrict } from './view/notificationView/notificationViewState';
325
+ import { clearFeatureNotificationView, fetchRegisteredInterests, notifyMeForFeature } from './view/featureNotificationView/featureNotificationViewReducer';
326
+ import { getFeatureNotificationView, getRegisteredInterests, getRegisteredInterestsByFeature, isFeatureInterestRegistered } from './view/featureNotificationView/featureNotificationViewSelector';
327
+ import { FeatureInterest, FeatureNotificationViewState } from './view/featureNotificationView/featureNotificationViewState';
325
328
  import { clearOnboardingCustomerViewUpdateData, fetchCompanyOnboardingView, fetchOnboardingCompletedCompanies, fetchQBOConnectionPool, getOnboardingEmailGroup, initializeOnboardingCustomerViewUpdateData, resetNewOnboardedCustomerId, retryBankAccountConnectionForOnboarding, saveOnboardingCustomerCompletedStatus, saveOnboardingCustomerDataInLocalStore, saveOnboardingCustomerNotes, saveOnboardingCustomerViewUpdateData, saveOnboardingCustomerViewUpdates, sendOnboardingCustomerViewInvite, updateCustomerCreationStatus, updateOnboardingCustomerDataInLocalStore, updateOnboardingCustomerListUIState, updateQBOConnectionPoolExternalConnection, updateStatusAfterOnboardingCompleted } from './view/onboardingView/cockpitView/onboardingCockpitViewReducer';
326
329
  import { NewOnboardingCustomerLocalData, NewOnboardingCustomerView, OnboardingCockpitView, ProductInfo, getNewOnboardingCustomerView, getOnboardingCockpitView } from './view/onboardingView/cockpitView/onboardingCockpitViewSelector';
327
330
  import { OnboardingCustomerListUIState, QBOConnectionPool } from './view/onboardingView/cockpitView/onboardingCockpitViewState';
@@ -650,7 +653,7 @@ export { TimeframeTick, TimeframeTickWithMetaData, toTimeframeTick, mapTimePerio
650
653
  export { VendorSpendTrendFilterTabType, toVendorSpendTrendFilterTabsTypeStrict, } from './entity/vendorExpense/vendorExpenseSelector';
651
654
  export { getNumberOfPeriods };
652
655
  export { SCHEDULE_DAYS_OF_MONTH, ScheduleDaysOfMonth, toScheduleDaysOfMonth, Day, Month, toMonth, toMonthStrict, Quarter, toQuarter, toQuarterStrict, AbsoluteDay, TimePeriod, };
653
- export { Tenant, TenantView, LoggedInUser, TenantBaseView, CurrentTenant, TenantProductSettings, getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, TenantsBaseOrdered, TenantsOrdered, TenantCoreDetailsView, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, DoSignInPayload, doSignOut, sendSessionHeartbeat, resetSignInState, RoleResource, Connection, fetchExcludedResourcesForTenant, fetchExternalConnectionsForTenant, saveExternalConnectionForTenant, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
656
+ export { Tenant, TenantView, LoggedInUser, TenantBaseView, CurrentTenant, TenantProductSettings, getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, TenantsBaseOrdered, TenantsOrdered, TenantCoreDetailsView, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, DoSignInPayload, doSignOut, sendSessionHeartbeat, resetSignInState, RoleResource, Connection, fetchExcludedResourcesForTenant, fetchExternalConnectionsForTenant, saveExternalConnectionForTenant, deleteConnection, deleteConnectionFailure, deleteConnectionSuccess, saveAPIKeyConnection, saveAPIKeyConnectionFailure, saveAPIKeyConnectionSuccess, saveOAuthConnection, saveOAuthConnectionFailure, saveOAuthConnectionSuccess, toExternalIntegrationType, toExternalSupportedTool, ExternalIntegrationType, ExternalSupportedTool, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
654
657
  export { Account, AccountType, AccountBase, StatementCloseDay, toAccountType, AccountReport, NestedAccountReport, AccountWithBalanceReport, AccountGroup, AccountGroupReportV2, AccountGroupType, toAccountGroupType, AccountGroupReport, getAccountGroupKey, AccountGroupKey, RecommendedAccountBase, };
655
658
  export { Class, ClassBase, RecommendedClassBase, } from './entity/class/classState';
656
659
  export { getClassById } from './entity/class/classSelector';
@@ -863,6 +866,7 @@ export { ZeniAccountsPromoCardState, getZeniAccountsPromoCard, ZeniAccountsPromo
863
866
  export { ApproveOAuthConsentPayload, OAuthParams, ParseOAuthParamsResult, ZeniOAuthViewState, approveOAuthConsent, approveOAuthConsentFailure, approveOAuthConsentSuccess, clearZeniOAuthView, getZeniOAuthApproveError, getZeniOAuthApproveFetchState, getZeniOAuthApproveRedirectUrl, parseOAuthParams, };
864
867
  export { ExternalNotificationData, NotificationGroup, NotificationActivityType, NotificationIdentifierType, NotificationUpdateValue, NotificationMode, NotificationStatus, Notification, NotificationWithAuthors, NotificationMetaData, NotificationEventData, NotificationActivity, NotificationUpdates, NotificationValueFormat, toNotificationModeStrict, updateCommentsNotifications, updateCommentsNotificationsStatuses, };
865
868
  export { NotificationView, NotificationViewUIState, NotificationTabState, NotificationTabType, NotificationSubTabType, toNotificationSubTabTypeStrict, toNotificationTabTypeStrict, fetchNotificationView, fetchNotificationUnreadCount, fetchNotificationUnreadCountSuccess, updateNotificationViewAllNotificationsStatus, updateNotificationViewNotificationStatus, updateNotificationViewTabState, updateNotificationViewCurrentTabAndSubTab, updateNotificationViewSubTab, updateNotificationViewUIState, getNotificationView, getExternalNotificationsForSelectedSubTab, getNotificationsForSelectedSubTab, };
869
+ export { clearFeatureNotificationView, fetchRegisteredInterests, notifyMeForFeature, getFeatureNotificationView, getRegisteredInterests, getRegisteredInterestsByFeature, isFeatureInterestRegistered, FeatureInterest, FeatureNotificationViewState, };
866
870
  export { pushToastNotification, ToastNotification, ToastNotificationPayload, getLastNotificationTime, getNotifications, };
867
871
  export { getReferralListView, getInviteFormView, ReferralListSelectorView, ReferralViewState, InviteCompanyLocalData, ReferralInvitation, ReferralListViewSortKey, ReferralViewUIState, toReferralListViewSortKeyType, ReferralStatus, ReferralAmountStatus, StatusTypes, AmountStatusTypes, fetchReferrals, sendReferralInvite, clearReferrals, saveReferralFormDataInLocalStore, updateReferralListSortUiState, resendReferralInvite, fetchRewardsPlan, RewardsPlanCardReport, getRewardsPlanCard, updateReferViewed, RewardsPlanData, };
868
872
  export { RecurringFrequencyType, getRecurringEndDateFromCount, toRecurringFrequency, getMinAllowedEndDate, RecurringDatePickerOptions, };