@zeniai/client-epic-state 5.0.99 → 5.1.0-betaAK1

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 (25) hide show
  1. package/lib/entity/tenant/tenantPayload.d.ts +2 -2
  2. package/lib/entity/tenant/tenantReducer.d.ts +6 -5
  3. package/lib/entity/tenant/tenantReducer.js +67 -26
  4. package/lib/entity/tenant/tenantState.d.ts +2 -2
  5. package/lib/epic.d.ts +2 -2
  6. package/lib/epic.js +2 -2
  7. package/lib/esm/entity/tenant/tenantReducer.js +66 -25
  8. package/lib/esm/epic.js +2 -2
  9. package/lib/esm/index.js +2 -2
  10. package/lib/esm/view/companyView/companyViewReducer.js +11 -10
  11. package/lib/esm/view/companyView/epic/companyPassport/dismissCapitalizationOnboardingEpic.js +5 -5
  12. package/lib/esm/view/companyView/epic/companyPassport/{updateCapitalizationThresholdEpic.js → updateCapitalizationAccountThresholdEpic.js} +38 -19
  13. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +7 -5
  14. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +7 -20
  15. package/lib/index.d.ts +2 -2
  16. package/lib/index.js +2 -2
  17. package/lib/view/companyView/companyViewReducer.d.ts +8 -7
  18. package/lib/view/companyView/companyViewReducer.js +12 -11
  19. package/lib/view/companyView/epic/companyPassport/dismissCapitalizationOnboardingEpic.js +5 -5
  20. package/lib/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.d.ts +10 -0
  21. package/lib/view/companyView/epic/companyPassport/{updateCapitalizationThresholdEpic.js → updateCapitalizationAccountThresholdEpic.js} +38 -19
  22. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +7 -5
  23. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +7 -20
  24. package/package.json +1 -1
  25. package/lib/view/companyView/epic/companyPassport/updateCapitalizationThresholdEpic.d.ts +0 -10
@@ -68,16 +68,17 @@ export declare const fetchCompanyPassportView: import("@reduxjs/toolkit").Action
68
68
  enabled: boolean;
69
69
  }, "companyView/updateAccountingClassesEnabled", never, never>, updateAccountingClassesEnabledSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"companyView/updateAccountingClassesEnabledSuccess">, updateAccountingClassesEnabledFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
70
70
  status: ZeniAPIStatus;
71
- }, "companyView/updateAccountingClassesEnabledFailure">, updateCapitalizationThreshold: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[companyId: string, capitalizationThreshold: number | null, capitalizationThresholdMaxCeiling: number | null, dismissOnboardingForPopupType?: "prepaid" | "fixed_asset" | undefined], {
71
+ }, "companyView/updateAccountingClassesEnabledFailure">, updateCapitalizationAccountThreshold: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[companyId: string, accountId: string, threshold: number | null, dismissOnboardingForAccount?: boolean | undefined, allOverrides?: Record<string, number> | null | undefined], {
72
72
  companyId: string;
73
- capitalizationThreshold: number | null;
74
- capitalizationThresholdMaxCeiling: number | null;
75
- dismissOnboardingForPopupType: "prepaid" | "fixed_asset" | undefined;
76
- }, "companyView/updateCapitalizationThreshold", never, never>, updateCapitalizationThresholdSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"companyView/updateCapitalizationThresholdSuccess">, updateCapitalizationThresholdFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
73
+ accountId: string;
74
+ threshold: number | null;
75
+ dismissOnboardingForAccount: boolean | undefined;
76
+ allOverrides: Record<string, number> | null | undefined;
77
+ }, "companyView/updateCapitalizationAccountThreshold", never, never>, updateCapitalizationAccountThresholdSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"companyView/updateCapitalizationAccountThresholdSuccess">, updateCapitalizationAccountThresholdFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
77
78
  status: ZeniAPIStatus;
78
- }, "companyView/updateCapitalizationThresholdFailure">, dismissCapitalizationOnboarding: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[companyId: string, popupType: "prepaid" | "fixed_asset"], {
79
+ }, "companyView/updateCapitalizationAccountThresholdFailure">, dismissCapitalizationOnboarding: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[companyId: string, accountId: string], {
79
80
  companyId: string;
80
- popupType: "prepaid" | "fixed_asset";
81
+ accountId: string;
81
82
  }, "companyView/dismissCapitalizationOnboarding", never, never>, companyPassportUpdatePrimaryContact: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[companyId: string, primaryContact: PrimaryContactLocalData], {
82
83
  companyId: string;
83
84
  primaryContact: PrimaryContactLocalData;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.updateParentSubsidiaryViewOnFailure = exports.updateParentSubsidiaryView = exports.fetchParentSubsidiaryManagementView = exports.saveCompanyPassportDetails = exports.saveIndustryAndIncDateInCompanyPassportLocalStore = exports.updateCompanyPassportLocalStoreData = exports.companyPassportCreateCompanyOfficersFailure = exports.companyPassportCreateCompanyOfficersSuccess = exports.companyPassportCreateCompanyOfficers = exports.companyPassportUpdateCompanyOfficerFailure = exports.companyPassportUpdateCompanyOfficerSuccess = exports.companyPassportUpdateCompanyOfficer = exports.companyPassportUpdatePrimaryContactFailure = exports.companyPassportUpdatePrimaryContactSuccess = exports.companyPassportUpdatePrimaryContact = exports.dismissCapitalizationOnboarding = exports.updateCapitalizationThresholdFailure = exports.updateCapitalizationThresholdSuccess = exports.updateCapitalizationThreshold = exports.updateAccountingClassesEnabledFailure = exports.updateAccountingClassesEnabledSuccess = exports.updateAccountingClassesEnabled = exports.companyPassportUpdateCompanyDetailsFailure = exports.companyPassportUpdateCompanyDetailsSuccess = exports.companyPassportUpdateCompanyDetails = exports.companyPassportClearDataInLocalStore = exports.deleteCompanyOfficerInLocalStore = exports.companyPassportSaveDataInLocalStore = exports.updateCompanyManagementUIState = exports.updateCompanyPortfolioUIState = exports.clearCompanyView = exports.updateZeniUsersOnFailure = exports.updateZeniUsersOnSuccess = exports.fetchZeniUsers = exports.fetchCompanyPortfolioView = exports.updateCompanyViewOnFailure = exports.updateCompanyViewOnSuccess = exports.companyManagementSaveUpdatesFailure = exports.companyManagementSaveUpdatesSuccess = exports.companyManagementDiscardUpdates = exports.companyManagementSavePendingUpdates = exports.companyManagementSaveUpdates = exports.fetchCompanyManagementView = exports.fetchPortfolioView = exports.fetchSubscriptionView = exports.fetchManagementView = exports.fetchOnboardingView = exports.fetchAllCockpitViews = exports.fetchCompanyPassportView = exports.initialState = void 0;
4
+ exports.updateParentSubsidiaryViewOnFailure = exports.updateParentSubsidiaryView = exports.fetchParentSubsidiaryManagementView = exports.saveCompanyPassportDetails = exports.saveIndustryAndIncDateInCompanyPassportLocalStore = exports.updateCompanyPassportLocalStoreData = exports.companyPassportCreateCompanyOfficersFailure = exports.companyPassportCreateCompanyOfficersSuccess = exports.companyPassportCreateCompanyOfficers = exports.companyPassportUpdateCompanyOfficerFailure = exports.companyPassportUpdateCompanyOfficerSuccess = exports.companyPassportUpdateCompanyOfficer = exports.companyPassportUpdatePrimaryContactFailure = exports.companyPassportUpdatePrimaryContactSuccess = exports.companyPassportUpdatePrimaryContact = exports.dismissCapitalizationOnboarding = exports.updateCapitalizationAccountThresholdFailure = exports.updateCapitalizationAccountThresholdSuccess = exports.updateCapitalizationAccountThreshold = exports.updateAccountingClassesEnabledFailure = exports.updateAccountingClassesEnabledSuccess = exports.updateAccountingClassesEnabled = exports.companyPassportUpdateCompanyDetailsFailure = exports.companyPassportUpdateCompanyDetailsSuccess = exports.companyPassportUpdateCompanyDetails = exports.companyPassportClearDataInLocalStore = exports.deleteCompanyOfficerInLocalStore = exports.companyPassportSaveDataInLocalStore = exports.updateCompanyManagementUIState = exports.updateCompanyPortfolioUIState = exports.clearCompanyView = exports.updateZeniUsersOnFailure = exports.updateZeniUsersOnSuccess = exports.fetchZeniUsers = exports.fetchCompanyPortfolioView = exports.updateCompanyViewOnFailure = exports.updateCompanyViewOnSuccess = exports.companyManagementSaveUpdatesFailure = exports.companyManagementSaveUpdatesSuccess = exports.companyManagementDiscardUpdates = exports.companyManagementSavePendingUpdates = exports.companyManagementSaveUpdates = exports.fetchCompanyManagementView = exports.fetchPortfolioView = exports.fetchSubscriptionView = exports.fetchManagementView = exports.fetchOnboardingView = exports.fetchAllCockpitViews = exports.fetchCompanyPassportView = exports.initialState = void 0;
5
5
  exports.updateMetaDataOnSendMonthEndReport = exports.updateCompanyMetaDataOnFailure = exports.updateCompanyMetaDataOnSuccess = exports.fetchCompanyMetaData = exports.updateCompanyDownloadState = void 0;
6
6
  const toolkit_1 = require("@reduxjs/toolkit");
7
7
  const parentSubsidiaryViewState_1 = require("./parentSubsidiaryView/parentSubsidiaryViewState");
@@ -314,14 +314,15 @@ const companyView = (0, toolkit_1.createSlice)({
314
314
  error: action.payload.status,
315
315
  };
316
316
  },
317
- updateCapitalizationThreshold: {
318
- prepare(companyId, capitalizationThreshold, capitalizationThresholdMaxCeiling, dismissOnboardingForPopupType) {
317
+ updateCapitalizationAccountThreshold: {
318
+ prepare(companyId, accountId, threshold, dismissOnboardingForAccount, allOverrides) {
319
319
  return {
320
320
  payload: {
321
321
  companyId,
322
- capitalizationThreshold,
323
- capitalizationThresholdMaxCeiling,
324
- dismissOnboardingForPopupType,
322
+ accountId,
323
+ threshold,
324
+ dismissOnboardingForAccount,
325
+ allOverrides,
325
326
  },
326
327
  };
327
328
  },
@@ -334,21 +335,21 @@ const companyView = (0, toolkit_1.createSlice)({
334
335
  };
335
336
  },
336
337
  },
337
- updateCapitalizationThresholdSuccess(draft) {
338
+ updateCapitalizationAccountThresholdSuccess(draft) {
338
339
  draft.passportView.capitalizationThresholdUpdateStatus = {
339
340
  fetchState: 'Completed',
340
341
  error: undefined,
341
342
  };
342
343
  },
343
- updateCapitalizationThresholdFailure(draft, action) {
344
+ updateCapitalizationAccountThresholdFailure(draft, action) {
344
345
  draft.passportView.capitalizationThresholdUpdateStatus = {
345
346
  fetchState: 'Error',
346
347
  error: action.payload.status,
347
348
  };
348
349
  },
349
350
  dismissCapitalizationOnboarding: {
350
- prepare(companyId, popupType) {
351
- return { payload: { companyId, popupType } };
351
+ prepare(companyId, accountId) {
352
+ return { payload: { companyId, accountId } };
352
353
  },
353
354
  reducer(
354
355
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -631,5 +632,5 @@ const companyView = (0, toolkit_1.createSlice)({
631
632
  },
632
633
  },
633
634
  });
634
- _a = companyView.actions, exports.fetchCompanyPassportView = _a.fetchCompanyPassportView, exports.fetchAllCockpitViews = _a.fetchAllCockpitViews, exports.fetchOnboardingView = _a.fetchOnboardingView, exports.fetchManagementView = _a.fetchManagementView, exports.fetchSubscriptionView = _a.fetchSubscriptionView, exports.fetchPortfolioView = _a.fetchPortfolioView, exports.fetchCompanyManagementView = _a.fetchCompanyManagementView, exports.companyManagementSaveUpdates = _a.companyManagementSaveUpdates, exports.companyManagementSavePendingUpdates = _a.companyManagementSavePendingUpdates, exports.companyManagementDiscardUpdates = _a.companyManagementDiscardUpdates, exports.companyManagementSaveUpdatesSuccess = _a.companyManagementSaveUpdatesSuccess, exports.companyManagementSaveUpdatesFailure = _a.companyManagementSaveUpdatesFailure, exports.updateCompanyViewOnSuccess = _a.updateCompanyViewOnSuccess, exports.updateCompanyViewOnFailure = _a.updateCompanyViewOnFailure, exports.fetchCompanyPortfolioView = _a.fetchCompanyPortfolioView, exports.fetchZeniUsers = _a.fetchZeniUsers, exports.updateZeniUsersOnSuccess = _a.updateZeniUsersOnSuccess, exports.updateZeniUsersOnFailure = _a.updateZeniUsersOnFailure, exports.clearCompanyView = _a.clearCompanyView, exports.updateCompanyPortfolioUIState = _a.updateCompanyPortfolioUIState, exports.updateCompanyManagementUIState = _a.updateCompanyManagementUIState, exports.companyPassportSaveDataInLocalStore = _a.companyPassportSaveDataInLocalStore, exports.deleteCompanyOfficerInLocalStore = _a.deleteCompanyOfficerInLocalStore, exports.companyPassportClearDataInLocalStore = _a.companyPassportClearDataInLocalStore, exports.companyPassportUpdateCompanyDetails = _a.companyPassportUpdateCompanyDetails, exports.companyPassportUpdateCompanyDetailsSuccess = _a.companyPassportUpdateCompanyDetailsSuccess, exports.companyPassportUpdateCompanyDetailsFailure = _a.companyPassportUpdateCompanyDetailsFailure, exports.updateAccountingClassesEnabled = _a.updateAccountingClassesEnabled, exports.updateAccountingClassesEnabledSuccess = _a.updateAccountingClassesEnabledSuccess, exports.updateAccountingClassesEnabledFailure = _a.updateAccountingClassesEnabledFailure, exports.updateCapitalizationThreshold = _a.updateCapitalizationThreshold, exports.updateCapitalizationThresholdSuccess = _a.updateCapitalizationThresholdSuccess, exports.updateCapitalizationThresholdFailure = _a.updateCapitalizationThresholdFailure, exports.dismissCapitalizationOnboarding = _a.dismissCapitalizationOnboarding, exports.companyPassportUpdatePrimaryContact = _a.companyPassportUpdatePrimaryContact, exports.companyPassportUpdatePrimaryContactSuccess = _a.companyPassportUpdatePrimaryContactSuccess, exports.companyPassportUpdatePrimaryContactFailure = _a.companyPassportUpdatePrimaryContactFailure, exports.companyPassportUpdateCompanyOfficer = _a.companyPassportUpdateCompanyOfficer, exports.companyPassportUpdateCompanyOfficerSuccess = _a.companyPassportUpdateCompanyOfficerSuccess, exports.companyPassportUpdateCompanyOfficerFailure = _a.companyPassportUpdateCompanyOfficerFailure, exports.companyPassportCreateCompanyOfficers = _a.companyPassportCreateCompanyOfficers, exports.companyPassportCreateCompanyOfficersSuccess = _a.companyPassportCreateCompanyOfficersSuccess, exports.companyPassportCreateCompanyOfficersFailure = _a.companyPassportCreateCompanyOfficersFailure, exports.updateCompanyPassportLocalStoreData = _a.updateCompanyPassportLocalStoreData, exports.saveIndustryAndIncDateInCompanyPassportLocalStore = _a.saveIndustryAndIncDateInCompanyPassportLocalStore, exports.saveCompanyPassportDetails = _a.saveCompanyPassportDetails, exports.fetchParentSubsidiaryManagementView = _a.fetchParentSubsidiaryManagementView, exports.updateParentSubsidiaryView = _a.updateParentSubsidiaryView, exports.updateParentSubsidiaryViewOnFailure = _a.updateParentSubsidiaryViewOnFailure, exports.updateCompanyDownloadState = _a.updateCompanyDownloadState, exports.fetchCompanyMetaData = _a.fetchCompanyMetaData, exports.updateCompanyMetaDataOnSuccess = _a.updateCompanyMetaDataOnSuccess, exports.updateCompanyMetaDataOnFailure = _a.updateCompanyMetaDataOnFailure, exports.updateMetaDataOnSendMonthEndReport = _a.updateMetaDataOnSendMonthEndReport;
635
+ _a = companyView.actions, exports.fetchCompanyPassportView = _a.fetchCompanyPassportView, exports.fetchAllCockpitViews = _a.fetchAllCockpitViews, exports.fetchOnboardingView = _a.fetchOnboardingView, exports.fetchManagementView = _a.fetchManagementView, exports.fetchSubscriptionView = _a.fetchSubscriptionView, exports.fetchPortfolioView = _a.fetchPortfolioView, exports.fetchCompanyManagementView = _a.fetchCompanyManagementView, exports.companyManagementSaveUpdates = _a.companyManagementSaveUpdates, exports.companyManagementSavePendingUpdates = _a.companyManagementSavePendingUpdates, exports.companyManagementDiscardUpdates = _a.companyManagementDiscardUpdates, exports.companyManagementSaveUpdatesSuccess = _a.companyManagementSaveUpdatesSuccess, exports.companyManagementSaveUpdatesFailure = _a.companyManagementSaveUpdatesFailure, exports.updateCompanyViewOnSuccess = _a.updateCompanyViewOnSuccess, exports.updateCompanyViewOnFailure = _a.updateCompanyViewOnFailure, exports.fetchCompanyPortfolioView = _a.fetchCompanyPortfolioView, exports.fetchZeniUsers = _a.fetchZeniUsers, exports.updateZeniUsersOnSuccess = _a.updateZeniUsersOnSuccess, exports.updateZeniUsersOnFailure = _a.updateZeniUsersOnFailure, exports.clearCompanyView = _a.clearCompanyView, exports.updateCompanyPortfolioUIState = _a.updateCompanyPortfolioUIState, exports.updateCompanyManagementUIState = _a.updateCompanyManagementUIState, exports.companyPassportSaveDataInLocalStore = _a.companyPassportSaveDataInLocalStore, exports.deleteCompanyOfficerInLocalStore = _a.deleteCompanyOfficerInLocalStore, exports.companyPassportClearDataInLocalStore = _a.companyPassportClearDataInLocalStore, exports.companyPassportUpdateCompanyDetails = _a.companyPassportUpdateCompanyDetails, exports.companyPassportUpdateCompanyDetailsSuccess = _a.companyPassportUpdateCompanyDetailsSuccess, exports.companyPassportUpdateCompanyDetailsFailure = _a.companyPassportUpdateCompanyDetailsFailure, exports.updateAccountingClassesEnabled = _a.updateAccountingClassesEnabled, exports.updateAccountingClassesEnabledSuccess = _a.updateAccountingClassesEnabledSuccess, exports.updateAccountingClassesEnabledFailure = _a.updateAccountingClassesEnabledFailure, exports.updateCapitalizationAccountThreshold = _a.updateCapitalizationAccountThreshold, exports.updateCapitalizationAccountThresholdSuccess = _a.updateCapitalizationAccountThresholdSuccess, exports.updateCapitalizationAccountThresholdFailure = _a.updateCapitalizationAccountThresholdFailure, exports.dismissCapitalizationOnboarding = _a.dismissCapitalizationOnboarding, exports.companyPassportUpdatePrimaryContact = _a.companyPassportUpdatePrimaryContact, exports.companyPassportUpdatePrimaryContactSuccess = _a.companyPassportUpdatePrimaryContactSuccess, exports.companyPassportUpdatePrimaryContactFailure = _a.companyPassportUpdatePrimaryContactFailure, exports.companyPassportUpdateCompanyOfficer = _a.companyPassportUpdateCompanyOfficer, exports.companyPassportUpdateCompanyOfficerSuccess = _a.companyPassportUpdateCompanyOfficerSuccess, exports.companyPassportUpdateCompanyOfficerFailure = _a.companyPassportUpdateCompanyOfficerFailure, exports.companyPassportCreateCompanyOfficers = _a.companyPassportCreateCompanyOfficers, exports.companyPassportCreateCompanyOfficersSuccess = _a.companyPassportCreateCompanyOfficersSuccess, exports.companyPassportCreateCompanyOfficersFailure = _a.companyPassportCreateCompanyOfficersFailure, exports.updateCompanyPassportLocalStoreData = _a.updateCompanyPassportLocalStoreData, exports.saveIndustryAndIncDateInCompanyPassportLocalStore = _a.saveIndustryAndIncDateInCompanyPassportLocalStore, exports.saveCompanyPassportDetails = _a.saveCompanyPassportDetails, exports.fetchParentSubsidiaryManagementView = _a.fetchParentSubsidiaryManagementView, exports.updateParentSubsidiaryView = _a.updateParentSubsidiaryView, exports.updateParentSubsidiaryViewOnFailure = _a.updateParentSubsidiaryViewOnFailure, exports.updateCompanyDownloadState = _a.updateCompanyDownloadState, exports.fetchCompanyMetaData = _a.fetchCompanyMetaData, exports.updateCompanyMetaDataOnSuccess = _a.updateCompanyMetaDataOnSuccess, exports.updateCompanyMetaDataOnFailure = _a.updateCompanyMetaDataOnFailure, exports.updateMetaDataOnSendMonthEndReport = _a.updateMetaDataOnSendMonthEndReport;
635
636
  exports.default = companyView.reducer;
@@ -7,11 +7,11 @@ const tenantReducer_1 = require("../../../../entity/tenant/tenantReducer");
7
7
  const responsePayload_1 = require("../../../../responsePayload");
8
8
  const companyViewReducer_1 = require("../../companyViewReducer");
9
9
  const dismissCapitalizationOnboardingEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(companyViewReducer_1.dismissCapitalizationOnboarding.match), (0, operators_1.switchMap)((action) => {
10
- const { companyId, popupType } = action.payload;
10
+ const { companyId, accountId } = action.payload;
11
11
  const tenantId = Object.values(state$.value.tenantState.tenantsById).find((t) => t.companyId === companyId)?.tenantId;
12
- const body = popupType === 'prepaid'
13
- ? { capitalization_onboarding_shown_for_prepaid: true }
14
- : { capitalization_onboarding_shown_for_fixed_asset: true };
12
+ const body = {
13
+ capitalization_onboarding_dismissed_accounts: { [accountId]: true },
14
+ };
15
15
  return zeniAPI
16
16
  .putAndGetJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/companies/${companyId}`, body)
17
17
  .pipe((0, operators_1.mergeMap)((response) => {
@@ -19,7 +19,7 @@ const dismissCapitalizationOnboardingEpic = (actions$, state$, zeniAPI) => actio
19
19
  return (0, rxjs_1.from)([
20
20
  (0, tenantReducer_1.updateTenantCapitalizationOnboardingDismissed)({
21
21
  tenantId,
22
- popupType,
22
+ accountId,
23
23
  }),
24
24
  ]);
25
25
  }
@@ -0,0 +1,10 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { updateCompanies } from '../../../../entity/company/companyReducer';
4
+ import { openSnackbar } from '../../../../entity/snackbar/snackbarReducer';
5
+ import { updateTenantCapitalizationOnboardingDismissed, updateTenantCapitalizationAccountOverride } from '../../../../entity/tenant/tenantReducer';
6
+ import { RootState } from '../../../../reducer';
7
+ import { ZeniAPI } from '../../../../zeniAPI';
8
+ import { updateCapitalizationAccountThreshold, updateCapitalizationAccountThresholdFailure, updateCapitalizationAccountThresholdSuccess } from '../../companyViewReducer';
9
+ export type ActionType = ReturnType<typeof updateCompanies> | ReturnType<typeof updateTenantCapitalizationAccountOverride> | ReturnType<typeof updateTenantCapitalizationOnboardingDismissed> | ReturnType<typeof openSnackbar> | ReturnType<typeof updateCapitalizationAccountThreshold> | ReturnType<typeof updateCapitalizationAccountThresholdSuccess> | ReturnType<typeof updateCapitalizationAccountThresholdFailure>;
10
+ export declare const updateCapitalizationAccountThresholdEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateCapitalizationThresholdEpic = void 0;
3
+ exports.updateCapitalizationAccountThresholdEpic = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const operators_1 = require("rxjs/operators");
6
6
  const companyReducer_1 = require("../../../../entity/company/companyReducer");
@@ -8,18 +8,32 @@ const snackbarReducer_1 = require("../../../../entity/snackbar/snackbarReducer")
8
8
  const tenantReducer_1 = require("../../../../entity/tenant/tenantReducer");
9
9
  const responsePayload_1 = require("../../../../responsePayload");
10
10
  const companyViewReducer_1 = require("../../companyViewReducer");
11
- const updateCapitalizationThresholdEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(companyViewReducer_1.updateCapitalizationThreshold.match), (0, operators_1.switchMap)((action) => {
12
- const { companyId, capitalizationThreshold, capitalizationThresholdMaxCeiling, dismissOnboardingForPopupType, } = action.payload;
11
+ const updateCapitalizationAccountThresholdEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(companyViewReducer_1.updateCapitalizationAccountThreshold.match), (0, operators_1.switchMap)((action) => {
12
+ const { companyId, accountId, threshold, dismissOnboardingForAccount, allOverrides, } = action.payload;
13
13
  const tenantId = Object.values(state$.value.tenantState.tenantsById).find((t) => t.companyId === companyId)?.tenantId;
14
+ let finalOverrides;
15
+ if (allOverrides !== undefined) {
16
+ finalOverrides = allOverrides ?? {};
17
+ }
18
+ else {
19
+ finalOverrides = {
20
+ ...(tenantId != null
21
+ ? state$.value.tenantState.tenantsById[tenantId]
22
+ ?.capitalizableAccountOverrides
23
+ : {}),
24
+ };
25
+ if (threshold === null) {
26
+ delete finalOverrides[accountId];
27
+ }
28
+ else {
29
+ finalOverrides[accountId] = threshold;
30
+ }
31
+ }
14
32
  const body = {
15
- capitalization_threshold: capitalizationThreshold,
16
- capitalization_threshold_max_ceiling: capitalizationThresholdMaxCeiling,
33
+ capitalizable_account_overrides: Object.keys(finalOverrides).length > 0 ? finalOverrides : null,
17
34
  };
18
- if (dismissOnboardingForPopupType === 'prepaid') {
19
- body.capitalization_onboarding_shown_for_prepaid = true;
20
- }
21
- else if (dismissOnboardingForPopupType === 'fixed_asset') {
22
- body.capitalization_onboarding_shown_for_fixed_asset = true;
35
+ if (dismissOnboardingForAccount === true) {
36
+ body.capitalization_onboarding_dismissed_accounts = { [accountId]: true };
23
37
  }
24
38
  return zeniAPI
25
39
  .putAndGetJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/companies/${companyId}`, body)
@@ -34,19 +48,24 @@ const updateCapitalizationThresholdEpic = (actions$, state$, zeniAPI) => actions
34
48
  }));
35
49
  }
36
50
  if (tenantId != null) {
37
- actions.push((0, tenantReducer_1.updateTenantCapitalizationThreshold)({
51
+ actions.push((0, tenantReducer_1.updateTenantCapitalizationAccountOverride)({
38
52
  tenantId,
39
- capitalizationThreshold,
40
- capitalizationThresholdMaxCeiling,
53
+ accountId,
54
+ threshold,
55
+ allOverrides: allOverrides !== undefined
56
+ ? (Object.keys(finalOverrides).length > 0
57
+ ? finalOverrides
58
+ : null)
59
+ : undefined,
41
60
  }));
42
- if (dismissOnboardingForPopupType != null) {
61
+ if (dismissOnboardingForAccount === true) {
43
62
  actions.push((0, tenantReducer_1.updateTenantCapitalizationOnboardingDismissed)({
44
63
  tenantId,
45
- popupType: dismissOnboardingForPopupType,
64
+ accountId,
46
65
  }));
47
66
  }
48
67
  }
49
- actions.push((0, companyViewReducer_1.updateCapitalizationThresholdSuccess)());
68
+ actions.push((0, companyViewReducer_1.updateCapitalizationAccountThresholdSuccess)());
50
69
  actions.push((0, snackbarReducer_1.openSnackbar)({
51
70
  messageSection: 'capitalization_threshold_update',
52
71
  messageText: 'success',
@@ -56,7 +75,7 @@ const updateCapitalizationThresholdEpic = (actions$, state$, zeniAPI) => actions
56
75
  }
57
76
  else {
58
77
  return (0, rxjs_1.from)([
59
- (0, companyViewReducer_1.updateCapitalizationThresholdFailure)({
78
+ (0, companyViewReducer_1.updateCapitalizationAccountThresholdFailure)({
60
79
  status: response.status,
61
80
  }),
62
81
  (0, snackbarReducer_1.openSnackbar)({
@@ -67,7 +86,7 @@ const updateCapitalizationThresholdEpic = (actions$, state$, zeniAPI) => actions
67
86
  ]);
68
87
  }
69
88
  }), (0, operators_1.catchError)((error) => (0, rxjs_1.from)([
70
- (0, companyViewReducer_1.updateCapitalizationThresholdFailure)({
89
+ (0, companyViewReducer_1.updateCapitalizationAccountThresholdFailure)({
71
90
  status: (0, responsePayload_1.createZeniAPIStatus)('Unexpected error', 'Update Capitalization Threshold errored out' +
72
91
  (error instanceof Error
73
92
  ? error.message
@@ -80,4 +99,4 @@ const updateCapitalizationThresholdEpic = (actions$, state$, zeniAPI) => actions
80
99
  }),
81
100
  ])));
82
101
  }));
83
- exports.updateCapitalizationThresholdEpic = updateCapitalizationThresholdEpic;
102
+ exports.updateCapitalizationAccountThresholdEpic = updateCapitalizationAccountThresholdEpic;
@@ -20,14 +20,16 @@ const getAutoSweepFlow = (state) => {
20
20
  : undefined;
21
21
  const risk = (0, autoSweepFlowState_1.bufferAmountToRisk)(bufferAmount.amount);
22
22
  // The banner's recommended sweep assumes the default buffer band; shift it
23
- // by the delta between the user's selected band and that default so a
24
- // tighter buffer sweeps more and a looser buffer sweeps less.
23
+ // by the delta between the default buffer and the user's selected band so a
24
+ // tighter buffer (higher risk → smaller buffer) sweeps more and a looser
25
+ // buffer (lower risk → larger buffer) sweeps less. Clamp at zero so a buffer
26
+ // larger than the available surplus never yields a negative sweep.
25
27
  const baseSweepAmount = (0, cashManagementOverviewSelector_1.getCashManagementOverviewBanner)(state).amount;
26
28
  const sweepAmount = {
27
29
  ...baseSweepAmount,
28
- amount: baseSweepAmount.amount +
29
- autoSweepFlowState_1.RISK_BUFFER_AMOUNT[risk] -
30
- autoSweepFlowState_1.RISK_BUFFER_AMOUNT[DEFAULT_RISK_LEVEL],
30
+ amount: Math.max(0, baseSweepAmount.amount +
31
+ autoSweepFlowState_1.RISK_BUFFER_AMOUNT[DEFAULT_RISK_LEVEL] -
32
+ autoSweepFlowState_1.RISK_BUFFER_AMOUNT[risk]),
31
33
  };
32
34
  return {
33
35
  fetchState,
@@ -69,7 +69,7 @@ const pickLargestOutflow = (outflows) => {
69
69
  return outflows.reduce((largest, event) => event.amount.amount > largest.amount.amount ? event : largest);
70
70
  };
71
71
  const getCashManagementOverview = (state) => {
72
- const { cashManagementOverviewState, depositAccountListState, depositAccountState, paymentAccountListState, paymentAccountState, treasuryDetailState, } = state;
72
+ const { cashManagementOverviewState, depositAccountListState, paymentAccountListState, treasuryDetailState, } = state;
73
73
  const aggregate = (0, reduceFetchState_1.reduceAllFetchState)([
74
74
  {
75
75
  fetchState: paymentAccountListState.fetchState,
@@ -93,7 +93,11 @@ const getCashManagementOverview = (state) => {
93
93
  },
94
94
  ]);
95
95
  const treasuryBalance = treasuryDetailState.accountSummary?.totalBalance ?? (0, amount_1.zeroAmount)();
96
- const cashBalance = sumCashBalances(paymentAccountListState.paymentAccountIds, paymentAccountState, depositAccountListState.accountIds, depositAccountState);
96
+ const bannerView = (0, exports.getCashManagementOverviewBanner)(state);
97
+ // cashBalance is the primary (agent-managed) deposit account's available
98
+ // balance — the account the banner resolves as primaryFundingAccount — not
99
+ // the sum of all cash accounts. Zero until that account resolves.
100
+ const cashBalance = bannerView.primaryFundingAccount?.accountBalance?.available ?? (0, amount_1.zeroAmount)();
97
101
  const totalCash = addAmounts(treasuryBalance, cashBalance);
98
102
  const bannerData = cashManagementOverviewState.banner.data;
99
103
  const inflowEvents = bannerData?.inflows ?? [];
@@ -103,7 +107,7 @@ const getCashManagementOverview = (state) => {
103
107
  const cashflow = subtractAmounts(totalInFlow, totalOutFlow);
104
108
  const projectionData = buildProjectionData(cashBalance, inflowEvents, outflowEvents);
105
109
  return {
106
- banner: (0, exports.getCashManagementOverviewBanner)(state),
110
+ banner: bannerView,
107
111
  cashBalance,
108
112
  cashflow,
109
113
  inflowEvents,
@@ -211,20 +215,3 @@ const addAmounts = (a, b) => {
211
215
  currencySymbol: a.currencySymbol,
212
216
  };
213
217
  };
214
- const sumCashBalances = (paymentAccountIds, paymentAccountState, depositAccountIds, depositAccountState) => {
215
- let total = (0, amount_1.zeroAmount)();
216
- paymentAccountIds.forEach((id) => {
217
- const balance = paymentAccountState.paymentAccountByID[id]?.balances
218
- ?.available;
219
- if (balance != null) {
220
- total = addAmounts(total, balance);
221
- }
222
- });
223
- depositAccountIds.forEach((id) => {
224
- const balance = depositAccountState.depositAccountByID[id]?.accountBalance?.available;
225
- if (balance != null) {
226
- total = addAmounts(total, balance);
227
- }
228
- });
229
- return total;
230
- };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.0.99",
3
+ "version": "5.1.0-betaAK1",
4
4
  "description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",
@@ -1,10 +0,0 @@
1
- import { ActionsObservable, StateObservable } from 'redux-observable';
2
- import { Observable } from 'rxjs';
3
- import { updateCompanies } from '../../../../entity/company/companyReducer';
4
- import { openSnackbar } from '../../../../entity/snackbar/snackbarReducer';
5
- import { updateTenantCapitalizationOnboardingDismissed, updateTenantCapitalizationThreshold } from '../../../../entity/tenant/tenantReducer';
6
- import { RootState } from '../../../../reducer';
7
- import { ZeniAPI } from '../../../../zeniAPI';
8
- import { updateCapitalizationThreshold, updateCapitalizationThresholdFailure, updateCapitalizationThresholdSuccess } from '../../companyViewReducer';
9
- export type ActionType = ReturnType<typeof updateCompanies> | ReturnType<typeof updateTenantCapitalizationThreshold> | ReturnType<typeof updateTenantCapitalizationOnboardingDismissed> | ReturnType<typeof openSnackbar> | ReturnType<typeof updateCapitalizationThreshold> | ReturnType<typeof updateCapitalizationThresholdSuccess> | ReturnType<typeof updateCapitalizationThresholdFailure>;
10
- export declare const updateCapitalizationThresholdEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;