@zeniai/client-epic-state 5.1.51 → 5.1.52

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 (72) hide show
  1. package/lib/commonStateTypes/amount.d.ts +1 -0
  2. package/lib/commonStateTypes/amount.js +9 -1
  3. package/lib/commonStateTypes/workingDayHelper.d.ts +4 -3
  4. package/lib/commonStateTypes/workingDayHelper.js +4 -3
  5. package/lib/entity/aiCfo/aiCfoPayload.d.ts +0 -1
  6. package/lib/entity/aiCfo/aiCfoReducer.js +1 -3
  7. package/lib/entity/aiCfo/aiCfoState.d.ts +0 -1
  8. package/lib/entity/tenant/clearAllEpic.d.ts +3 -1
  9. package/lib/entity/tenant/clearAllEpic.js +4 -0
  10. package/lib/epic.d.ts +7 -1
  11. package/lib/epic.js +7 -1
  12. package/lib/esm/commonStateTypes/amount.js +7 -0
  13. package/lib/esm/commonStateTypes/workingDayHelper.js +4 -3
  14. package/lib/esm/entity/aiCfo/aiCfoReducer.js +1 -3
  15. package/lib/esm/entity/tenant/clearAllEpic.js +4 -0
  16. package/lib/esm/epic.js +7 -1
  17. package/lib/esm/index.js +5 -0
  18. package/lib/esm/reducer.js +6 -0
  19. package/lib/esm/view/expenseAutomationView/reducers/reconciliationViewReducer.js +24 -7
  20. package/lib/esm/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +22 -2
  21. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +29 -0
  22. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +78 -0
  23. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +49 -0
  24. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +47 -0
  25. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +32 -0
  26. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +32 -0
  27. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +54 -0
  28. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +92 -0
  29. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +212 -0
  30. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +10 -0
  31. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +23 -0
  32. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +36 -0
  33. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +27 -0
  34. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +28 -0
  35. package/lib/index.d.ts +10 -1
  36. package/lib/index.js +20 -1
  37. package/lib/reducer.d.ts +6 -0
  38. package/lib/reducer.js +6 -0
  39. package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.js +24 -7
  40. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.d.ts +8 -1
  41. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +21 -1
  42. package/lib/view/spendManagement/autotransferRules/autoTransferRulesState.d.ts +22 -0
  43. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.d.ts +47 -0
  44. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +34 -0
  45. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.d.ts +23 -0
  46. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +82 -0
  47. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.d.ts +40 -0
  48. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +53 -0
  49. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.d.ts +37 -0
  50. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +53 -0
  51. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.d.ts +14 -0
  52. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +36 -0
  53. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.d.ts +7 -0
  54. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +36 -0
  55. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.d.ts +56 -0
  56. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +60 -0
  57. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.d.ts +22 -0
  58. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +96 -0
  59. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.d.ts +59 -0
  60. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +217 -0
  61. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.d.ts +122 -0
  62. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +13 -0
  63. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.d.ts +7 -0
  64. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +27 -0
  65. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.d.ts +9 -0
  66. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +40 -0
  67. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.d.ts +7 -0
  68. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +31 -0
  69. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.d.ts +15 -0
  70. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +32 -0
  71. package/lib/zeniAPI.d.ts +1 -0
  72. package/package.json +1 -1
@@ -0,0 +1,92 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+ import { toCashManagementBannerData, toCashManagementTransfer, } from './cashManagementOverviewPayload';
3
+ import { initialCashManagementBannerState, initialCashManagementRecentTransferState, } from './cashManagementOverviewState';
4
+ export const initialState = {
5
+ banner: initialCashManagementBannerState,
6
+ recentTransfer: initialCashManagementRecentTransferState,
7
+ };
8
+ const cashManagementOverview = createSlice({
9
+ name: 'cashManagementOverview',
10
+ initialState,
11
+ reducers: {
12
+ fetchCashManagementOverviewPage: {
13
+ reducer() { },
14
+ prepare(cacheOverride) {
15
+ return { payload: { cacheOverride } };
16
+ },
17
+ },
18
+ /**
19
+ * Public banner-fetch entry point. Triggers an orchestrator epic that
20
+ * fans out to the recommend, settings, and recent-transfer API calls
21
+ * in parallel. No reducer-side state change — each inner action drives
22
+ * its own sub-state.
23
+ *
24
+ * `cacheOverride === true` forces all three inner fetches regardless
25
+ * of current slice state; `false` keeps the per-slice dedup so repeat
26
+ * dispatches are no-ops once a slice is loaded or in-flight.
27
+ */
28
+ fetchCashManagementBanner: {
29
+ reducer() { },
30
+ prepare(cacheOverride) {
31
+ return { payload: { cacheOverride } };
32
+ },
33
+ },
34
+ /**
35
+ * Internal trigger for the recommend API (`/cash-agent/recommend`).
36
+ * Dispatched by the orchestrator; not exported.
37
+ */
38
+ fetchCashManagementRecommendation(draft) {
39
+ // Keep `draft.banner.data` so the projection chart renders the last
40
+ // good payload while the refetch is in flight, instead of flickering
41
+ // to the empty/skeleton state on every page revisit.
42
+ draft.banner.fetchState = 'In-Progress';
43
+ draft.banner.error = undefined;
44
+ },
45
+ updateCashManagementRecommendation(draft, action) {
46
+ draft.banner = {
47
+ fetchState: 'Completed',
48
+ error: undefined,
49
+ data: toCashManagementBannerData(action.payload.data),
50
+ };
51
+ },
52
+ updateCashManagementRecommendationFetchStatus(draft, action) {
53
+ draft.banner = {
54
+ ...draft.banner,
55
+ fetchState: action.payload.fetchState,
56
+ error: action.payload.error,
57
+ };
58
+ },
59
+ /**
60
+ * Internal trigger for the recent-transfer API
61
+ * (`/cash-management/transfers`). Dispatched by the orchestrator; not
62
+ * exported.
63
+ */
64
+ fetchRecentTransfer(draft) {
65
+ // Same anti-flicker pattern as the recommend fetch: keep prior data
66
+ // while the refetch is in flight.
67
+ draft.recentTransfer.fetchState = 'In-Progress';
68
+ draft.recentTransfer.error = undefined;
69
+ },
70
+ updateRecentTransfer(draft, action) {
71
+ draft.recentTransfer = {
72
+ fetchState: 'Completed',
73
+ error: undefined,
74
+ data: action.payload.data != null
75
+ ? toCashManagementTransfer(action.payload.data)
76
+ : undefined,
77
+ };
78
+ },
79
+ updateRecentTransferFetchStatus(draft, action) {
80
+ draft.recentTransfer = {
81
+ ...draft.recentTransfer,
82
+ fetchState: action.payload.fetchState,
83
+ error: action.payload.error,
84
+ };
85
+ },
86
+ clearCashManagementOverview(draft) {
87
+ Object.assign(draft, initialState);
88
+ },
89
+ },
90
+ });
91
+ export const { fetchCashManagementOverviewPage, fetchCashManagementBanner, fetchCashManagementRecommendation, updateCashManagementRecommendation, updateCashManagementRecommendationFetchStatus, fetchRecentTransfer, updateRecentTransfer, updateRecentTransferFetchStatus, clearCashManagementOverview, } = cashManagementOverview.actions;
92
+ export default cashManagementOverview.reducer;
@@ -0,0 +1,212 @@
1
+ import { zeroAmount } from '../../../../commonStateTypes/amount';
2
+ import { reduceAllFetchState } from '../../../../commonStateTypes/reduceFetchState';
3
+ import { getDepositAccountByDepositAccountId } from '../../../../entity/depositAccount/depositAccountSelector';
4
+ import { mapDepositAccToFundingAccount, } from '../../commonSetup/setupViewSelector';
5
+ /**
6
+ * Default account type used when the recommend payload has no movement to
7
+ * expose yet (e.g. before the first fetch resolves). Callers that care about
8
+ * the movement should also gate on `fetchState === 'Completed'`.
9
+ */
10
+ const DEFAULT_BANK_ACCOUNT_TYPE = 'deposit_account';
11
+ const DEFAULT_SUB_MOVEMENT_TYPE = 'push';
12
+ export const getCashManagementOverviewBanner = (state) => {
13
+ const { banner, recentTransfer } = state.cashManagementOverviewState;
14
+ const autoSweep = state.autoSweepFlowState;
15
+ // The banner today surfaces a single recommended movement (the first one
16
+ // returned by the agent). When the agent returns multiple groups/movements
17
+ // we'll need to broaden this — for now consumers only render one.
18
+ const movement = banner.data?.moneyMovements[0]?.movements[0];
19
+ const aggregate = reduceAllFetchState([
20
+ { fetchState: banner.fetchState, error: banner.error },
21
+ { fetchState: autoSweep.fetchState, error: autoSweep.error },
22
+ { fetchState: recentTransfer.fetchState, error: recentTransfer.error },
23
+ ]);
24
+ const subMovementType = movement?.subMovementType ?? DEFAULT_SUB_MOVEMENT_TYPE;
25
+ // The "primary" account is the deposit-account side of the movement —
26
+ // source for a push (money leaving primary → treasury) and destination
27
+ // for a pull (money returning to primary).
28
+ const primaryAccountId = subMovementType === 'pull'
29
+ ? movement?.destinationBankAccountId
30
+ : movement?.sourceBankAccountId;
31
+ const primaryDepositAccount = primaryAccountId != null && primaryAccountId !== ''
32
+ ? getDepositAccountByDepositAccountId(state.depositAccountState, primaryAccountId)
33
+ : undefined;
34
+ const primaryFundingAccount = primaryDepositAccount != null
35
+ ? mapDepositAccToFundingAccount(primaryDepositAccount)
36
+ : undefined;
37
+ // For pull, surface the largest outflow in the horizon as the
38
+ // "triggering" event. This is a heuristic — the agent doesn't tag a
39
+ // specific outflow today, but the largest one is the most likely cause
40
+ // of the buffer breach and matches what the design wants to highlight.
41
+ const triggeringOutflow = subMovementType === 'pull'
42
+ ? pickLargestOutflow(banner.data?.outflows)
43
+ : undefined;
44
+ return {
45
+ fetchState: aggregate.fetchState,
46
+ error: aggregate.error,
47
+ amount: movement?.amount ?? zeroAmount(),
48
+ cashManagementSettingsId: autoSweep.settingsId,
49
+ destinationBankAccountId: movement?.destinationBankAccountId ?? '',
50
+ destinationBankAccountType: movement?.destinationBankAccountType ?? DEFAULT_BANK_ACCOUNT_TYPE,
51
+ reasoning: movement?.reasoning ?? '',
52
+ sourceBankAccountId: movement?.sourceBankAccountId ?? '',
53
+ sourceBankAccountType: movement?.sourceBankAccountType ?? DEFAULT_BANK_ACCOUNT_TYPE,
54
+ subMovementType,
55
+ primaryFundingAccount,
56
+ triggeringOutflow,
57
+ recentTransfer: recentTransfer.data,
58
+ version: 0,
59
+ };
60
+ };
61
+ const pickLargestOutflow = (outflows) => {
62
+ if (outflows == null || outflows.length === 0) {
63
+ return undefined;
64
+ }
65
+ return outflows.reduce((largest, event) => event.amount.amount > largest.amount.amount ? event : largest);
66
+ };
67
+ export const getCashManagementOverview = (state) => {
68
+ const { cashManagementOverviewState, depositAccountListState, paymentAccountListState, treasuryDetailState, } = state;
69
+ const aggregate = reduceAllFetchState([
70
+ {
71
+ fetchState: paymentAccountListState.fetchState,
72
+ error: paymentAccountListState.error,
73
+ },
74
+ {
75
+ fetchState: depositAccountListState.fetchState,
76
+ error: depositAccountListState.error,
77
+ },
78
+ {
79
+ fetchState: treasuryDetailState.fetchState,
80
+ error: treasuryDetailState.error,
81
+ },
82
+ {
83
+ fetchState: cashManagementOverviewState.banner.fetchState,
84
+ error: cashManagementOverviewState.banner.error,
85
+ },
86
+ {
87
+ fetchState: state.autoSweepFlowState.fetchState,
88
+ error: state.autoSweepFlowState.error,
89
+ },
90
+ ]);
91
+ const treasuryBalance = treasuryDetailState.accountSummary?.totalBalance ?? zeroAmount();
92
+ const bannerView = getCashManagementOverviewBanner(state);
93
+ // cashBalance is the primary (agent-managed) deposit account's available
94
+ // balance — the account the banner resolves as primaryFundingAccount — not
95
+ // the sum of all cash accounts. Zero until that account resolves.
96
+ const cashBalance = bannerView.primaryFundingAccount?.accountBalance?.available ?? zeroAmount();
97
+ const totalCash = addAmounts(treasuryBalance, cashBalance);
98
+ const bannerData = cashManagementOverviewState.banner.data;
99
+ const inflowEvents = bannerData?.inflows ?? [];
100
+ const outflowEvents = bannerData?.outflows ?? [];
101
+ const totalInFlow = sumEventAmounts(inflowEvents);
102
+ const totalOutFlow = sumEventAmounts(outflowEvents);
103
+ const cashflow = subtractAmounts(totalInFlow, totalOutFlow);
104
+ const projectionData = buildProjectionData(cashBalance, inflowEvents, outflowEvents);
105
+ return {
106
+ banner: bannerView,
107
+ cashBalance,
108
+ cashflow,
109
+ inflowEvents,
110
+ outflowEvents,
111
+ projectionData,
112
+ totalCash,
113
+ totalInFlow,
114
+ totalOutFlow,
115
+ treasuryBalance,
116
+ fetchState: aggregate.fetchState,
117
+ error: aggregate.error,
118
+ version: 0,
119
+ };
120
+ };
121
+ /**
122
+ * Walks the inflow / outflow events in chronological order, stepping the
123
+ * running balance from today's `cashBalance`. Emits a point per event so the
124
+ * chart can render colored markers at each cash event. Events with the same
125
+ * payment date are kept as separate steps (preserves the marker count even
126
+ * if Recharts overlays them at the same X position).
127
+ */
128
+ const buildProjectionData = (cashBalance, inflowEvents, outflowEvents) => {
129
+ const events = [
130
+ ...inflowEvents.map((e) => ({
131
+ amount: e.amount,
132
+ date: e.paymentDate,
133
+ isInflow: true,
134
+ })),
135
+ ...outflowEvents.map((e) => ({
136
+ amount: e.amount,
137
+ date: e.paymentDate,
138
+ isInflow: false,
139
+ })),
140
+ ].sort((a, b) => {
141
+ const diff = a.date.valueOf() - b.date.valueOf();
142
+ if (diff !== 0) {
143
+ return diff;
144
+ }
145
+ // Same-day tie-breaker: apply outflows before inflows so the projection
146
+ // shows the worst-case low first, then the recovery — matches the
147
+ // "show me the dip" framing on the cash management overview.
148
+ if (a.isInflow === b.isInflow) {
149
+ return 0;
150
+ }
151
+ return a.isInflow ? 1 : -1;
152
+ });
153
+ let balance = cashBalance;
154
+ const points = [{ balance, date: 'Today' }];
155
+ events.forEach((event) => {
156
+ balance = event.isInflow
157
+ ? addAmounts(balance, event.amount)
158
+ : subtractAmounts(balance, event.amount);
159
+ points.push({
160
+ balance,
161
+ date: event.date.format('MMM D'),
162
+ isInflow: event.isInflow ? true : undefined,
163
+ isOutflow: event.isInflow ? undefined : true,
164
+ });
165
+ });
166
+ return points;
167
+ };
168
+ const sumEventAmounts = (events) => events.reduce((acc, event) => addAmounts(acc, event.amount), zeroAmount());
169
+ /**
170
+ * Subtracts `b` from `a`, sharing the currency-match guard with `addAmounts`.
171
+ * Used to compute net cash flow (`inflow - outflow`).
172
+ */
173
+ const subtractAmounts = (a, b) => {
174
+ if (isZeroAmount(b)) {
175
+ return { ...a };
176
+ }
177
+ if (isZeroAmount(a)) {
178
+ return { ...b, amount: -b.amount };
179
+ }
180
+ if (a.currencyCode !== b.currencyCode ||
181
+ a.currencySymbol !== b.currencySymbol) {
182
+ console.warn(`cashManagementOverview: skipping balance with mismatched currency. Expected ${a.currencyCode} (${a.currencySymbol}), got ${b.currencyCode} (${b.currencySymbol}).`);
183
+ return a;
184
+ }
185
+ return {
186
+ amount: a.amount - b.amount,
187
+ currencyCode: a.currencyCode,
188
+ currencySymbol: a.currencySymbol,
189
+ };
190
+ };
191
+ const isZeroAmount = (a) => a.amount === 0 && a.currencyCode === 'USD' && a.currencySymbol === '$';
192
+ /**
193
+ * Adds two Amounts. Currencies must match (the seeded zeroAmount() counts as
194
+ * "no currency yet" and adopts `b`'s currency). Mismatches return `a`
195
+ * unchanged and warn — mixing currencies in a total is a bug, not silent
196
+ * conversion.
197
+ */
198
+ const addAmounts = (a, b) => {
199
+ if (isZeroAmount(a)) {
200
+ return { ...b };
201
+ }
202
+ if (a.currencyCode !== b.currencyCode ||
203
+ a.currencySymbol !== b.currencySymbol) {
204
+ console.warn(`cashManagementOverview: skipping balance with mismatched currency. Expected ${a.currencyCode} (${a.currencySymbol}), got ${b.currencyCode} (${b.currencySymbol}).`);
205
+ return a;
206
+ }
207
+ return {
208
+ amount: a.amount + b.amount,
209
+ currencyCode: a.currencyCode,
210
+ currencySymbol: a.currencySymbol,
211
+ };
212
+ };
@@ -0,0 +1,10 @@
1
+ export const initialCashManagementBannerState = {
2
+ fetchState: 'Not-Started',
3
+ error: undefined,
4
+ data: undefined,
5
+ };
6
+ export const initialCashManagementRecentTransferState = {
7
+ fetchState: 'Not-Started',
8
+ error: undefined,
9
+ data: undefined,
10
+ };
@@ -0,0 +1,23 @@
1
+ import { from } from 'rxjs';
2
+ import { filter, mergeMap } from 'rxjs/operators';
3
+ import { fetchCashManagementSettings } from '../../autoSweepFlow/autoSweepFlowReducer';
4
+ import { fetchCashManagementBanner, fetchCashManagementRecommendation, fetchRecentTransfer, } from '../cashManagementOverviewReducer';
5
+ export const fetchCashManagementBannerEpic = (actions$, state$) => actions$.pipe(filter(fetchCashManagementBanner.match), mergeMap((action) => {
6
+ const { cacheOverride } = action.payload;
7
+ const state = state$.value;
8
+ const actions = [];
9
+ if (cacheOverride === true ||
10
+ needsFetch(state.cashManagementOverviewState.banner.fetchState)) {
11
+ actions.push(fetchCashManagementRecommendation());
12
+ }
13
+ if (cacheOverride === true ||
14
+ needsFetch(state.autoSweepFlowState.fetchState)) {
15
+ actions.push(fetchCashManagementSettings());
16
+ }
17
+ if (cacheOverride === true ||
18
+ needsFetch(state.cashManagementOverviewState.recentTransfer.fetchState)) {
19
+ actions.push(fetchRecentTransfer());
20
+ }
21
+ return from(actions);
22
+ }));
23
+ const needsFetch = (fetchState) => fetchState !== 'Completed' && fetchState !== 'In-Progress';
@@ -0,0 +1,36 @@
1
+ import { concat, from } from 'rxjs';
2
+ import { filter, mergeMap } from 'rxjs/operators';
3
+ import { fetchAutoTransferRules } from '../../../autotransferRules/autoTransferRulesReducer';
4
+ import { fetchTreasuryOverviewDetail } from '../../../treasury/treasuryList/treasuryDetailReducer';
5
+ import { fetchZeniAccountList } from '../../../zeniAccounts/zeniAccountList/zeniAccountListReducer';
6
+ import { fetchCashManagementBanner, fetchCashManagementOverviewPage, } from '../cashManagementOverviewReducer';
7
+ export const fetchCashManagementOverviewPageEpic = (actions$, state$) => actions$.pipe(filter(fetchCashManagementOverviewPage.match), mergeMap((action) => {
8
+ const { cacheOverride } = action.payload;
9
+ const state = state$.value;
10
+ const pageActions = [];
11
+ if (cacheOverride === true) {
12
+ // Banner orchestrator (fetchCashManagementBannerEpic) fans out to
13
+ // recommendation + settings + recent-transfer internally.
14
+ pageActions.push(fetchTreasuryOverviewDetail(true), fetchZeniAccountList(true), fetchCashManagementBanner(true), fetchAutoTransferRules(true));
15
+ }
16
+ else {
17
+ const treasuryDetailState = state.treasuryDetailState;
18
+ if (treasuryDetailState.hasValidState() === false &&
19
+ treasuryDetailState.fetchState !== 'In-Progress') {
20
+ pageActions.push(fetchTreasuryOverviewDetail(false));
21
+ }
22
+ // zeniAccountListState has no top-level fetchState to dedup against
23
+ // (only `newCheckingAccount.fetchState`), and the downstream epic is
24
+ // cheap. Always re-dispatch so the summary stays fresh on page entry.
25
+ pageActions.push(fetchZeniAccountList(false));
26
+ // Banner orchestrator handles its own per-slice dedup across
27
+ // recommendation, settings, and recent-transfer.
28
+ pageActions.push(fetchCashManagementBanner(false));
29
+ const autoTransferRules = state.autotransferRulesState;
30
+ if (autoTransferRules.fetchState !== 'Completed' &&
31
+ autoTransferRules.fetchState !== 'In-Progress') {
32
+ pageActions.push(fetchAutoTransferRules(false));
33
+ }
34
+ }
35
+ return concat(from(pageActions));
36
+ }));
@@ -0,0 +1,27 @@
1
+ import { of } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
4
+ import { fetchCashManagementRecommendation, updateCashManagementRecommendation, updateCashManagementRecommendationFetchStatus, } from '../cashManagementOverviewReducer';
5
+ /**
6
+ * Hits the cash agent's recommend endpoint and stores the full response on
7
+ * the banner state — `inflows[]`, `outflows[]`, and `money_movements[]` all
8
+ * live there, so consumers can read them directly without an entity-bucket
9
+ * lookup.
10
+ */
11
+ const DEFAULT_RECOMMEND_HORIZON_DAYS = 30;
12
+ export const fetchCashManagementRecommendationEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchCashManagementRecommendation.match), switchMap(() => {
13
+ const endpoint = `${zeniAPI.apiEndPoints.cashManagementAgentBaseUrl}/1.0/cash-agent/recommend?horizon_days=${DEFAULT_RECOMMEND_HORIZON_DAYS}`;
14
+ return zeniAPI.getJSON(endpoint).pipe(mergeMap((response) => {
15
+ if (isSuccessResponse(response) && response.data != null) {
16
+ return of(updateCashManagementRecommendation({ data: response.data }));
17
+ }
18
+ return of(updateCashManagementRecommendationFetchStatus({
19
+ fetchState: 'Error',
20
+ error: response.status,
21
+ }));
22
+ }), catchError((error) => of(updateCashManagementRecommendationFetchStatus({
23
+ fetchState: 'Error',
24
+ error: createZeniAPIStatus('Unexpected Error', 'Fetch cash management recommendation REST API call errored out: ' +
25
+ (error?.message ?? String(error))),
26
+ }))));
27
+ }));
@@ -0,0 +1,28 @@
1
+ import { of } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
4
+ import { fetchRecentTransfer, updateRecentTransfer, updateRecentTransferFetchStatus, } from '../cashManagementOverviewReducer';
5
+ /**
6
+ * Hits `GET /cash-management/transfers` and stores the most recent actual
7
+ * cash-management transfer on `recentTransfer.data`. Used by the banner
8
+ * surface to render the "transfer scheduled / in-progress / complete"
9
+ * variant for existing users who have a settings id. The API returns the
10
+ * single most-relevant transfer under `transfer`; that field is optional
11
+ * (fresh users with no transfer history get `undefined`).
12
+ */
13
+ export const fetchRecentTransferEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchRecentTransfer.match), switchMap(() => {
14
+ const endpoint = `${zeniAPI.apiEndPoints.cashManagementAgentBaseUrl}/1.0/cash-management/transfers/latest`;
15
+ return zeniAPI.getJSON(endpoint).pipe(mergeMap((response) => {
16
+ if (isSuccessResponse(response) && response.data != null) {
17
+ return of(updateRecentTransfer({ data: response.data.transfer }));
18
+ }
19
+ return of(updateRecentTransferFetchStatus({
20
+ fetchState: 'Error',
21
+ error: response.status,
22
+ }));
23
+ }), catchError((error) => of(updateRecentTransferFetchStatus({
24
+ fetchState: 'Error',
25
+ error: createZeniAPIStatus('Unexpected Error', 'Fetch recent cash-management transfer REST API call errored out: ' +
26
+ (error?.message ?? String(error))),
27
+ }))));
28
+ }));
package/lib/index.d.ts CHANGED
@@ -972,7 +972,7 @@ export { TreasuryTaxLettersSelectorView, getTreasuryTaxLetters, } from './view/s
972
972
  export { TreasuryTransactionStatus } from './view/spendManagement/treasury/treasuryList/treasuryDetailPayload';
973
973
  export { fetchAutoTransferRules, createAutoTransferRule, updateAutoTransferRule, deleteAutoTransferRule, fetchAutoTransferRuleHistory, fetchAutoTransferReviewDetail, updateRuleLocalData, clearRuleUpdateLocalData, } from './view/spendManagement/autotransferRules/autoTransferRulesReducer';
974
974
  export { AutoTransferRulesSelectorView, getAutoTransferRules, getAutoTransferRuleById, getAutoTransferRuleHistory, } from './view/spendManagement/autotransferRules/autoTransferRulesSelector';
975
- export { AutoTransferRule, } from './view/spendManagement/autotransferRules/autoTransferRulesState';
975
+ export { AutoTransferRule, CashManagementRule, } from './view/spendManagement/autotransferRules/autoTransferRulesState';
976
976
  export { AutoTransferRuleType, AutoTransferRuleFrequency, AutoTransferRuleLocalData, } from './view/spendManagement/autotransferRules/autoTransferRulesPayload';
977
977
  export type { TransactionActivityLog } from './entity/transactionActivityLog/transactionActivityLogState';
978
978
  export { BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS, BULK_UPLOAD_BAR_COMPLETE_HOLD_MS, } from './view/expenseAutomationView/helpers/bulkUploadTiming';
@@ -984,3 +984,12 @@ export type { SessionCallbacks, SessionConfig, } from './entity/tenant/sessionTy
984
984
  export { DEFAULT_SESSION_CONFIG } from './entity/tenant/sessionTypes';
985
985
  export type { KybProvidedDocumentType, KycKybAutofillTarget, KycKybProvidedDocumentType, KycProvidedDocumentType, KycSelectDocumentType, } from './view/spendManagement/commonSetup/types/kycKybAutofill';
986
986
  export { toKycProvidedDocumentType, toKycProvidedDocumentTypeFromAllowed, } from './view/spendManagement/commonSetup/types/kycKybAutofill';
987
+ export { fetchCashManagementBanner, fetchCashManagementOverviewPage, } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer';
988
+ export { clearAutoSweepFlow, saveAutoSweepSettings, updateAutoSweepDraft, updateAutoSweepRisk, updateAutoSweepSettingsFetchStatus, updateCashManagementSettings, updateCashManagementSettingsFetchStatus, } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer';
989
+ export { getAutoSweepFlow } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector';
990
+ export type { AutoSweepFlowFormData, AutoSweepFlowSelectorView, } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector';
991
+ export { RISK_BUFFER_AMOUNT, bufferAmountToRisk, } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState';
992
+ export type { AutoSweepFlowState, AutoSweepFrequency, RiskLevel, } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState';
993
+ export { getCashManagementOverview, getCashManagementOverviewBanner, } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector';
994
+ export type { CashManagementOverviewBannerSelectorView, CashManagementOverviewSelectorView, CashProjectionPoint, } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector';
995
+ export type { CashManagementScenario, CashManagementTransfer, CashManagementTransferStatus, UpcomingPaymentEvent, UpcomingPaymentEventAccountType, } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState';
package/lib/index.js CHANGED
@@ -76,7 +76,7 @@ exports.toAiCfoVisualizationType = exports.ALL_INTERACTIVE_FORM_TYPES = exports.
76
76
  exports.getPolicyRecommendationFromUploadError = exports.getPolicyRecommendationFromUploadChatSessionId = exports.getPolicyRecommendationFromUploadAnswerId = exports.getPolicyDocumentExtractionFetchState = exports.getPolicyDocumentExtractionError = exports.getExtractedCardPolicyRules = exports.getCardPolicyVendorSearchString = exports.getCardPolicyVendorSearchOptions = exports.getCardPolicyVendorSearchFetchState = exports.getCardPolicyTemplatesByIds = exports.getCardPolicyTemplateById = exports.getCardPolicySuggestedBlockMerchants = exports.getCardPolicySuggestedBlockCategories = exports.getCardPolicySuggestedAllowMerchants = exports.getCardPolicySuggestedAllowCategories = exports.getCardPolicyStats = exports.getCardPolicyMccCategoriesFetchState = exports.getCardPolicyMccCategoriesError = exports.getCardPolicyMccCategories = exports.getAllCardPolicyTemplates = exports.clearCardPolicy = exports.updatePolicyRecommendationFromUploadSuccess = exports.updatePolicyRecommendationFromUploadFailure = exports.updatePolicyDocumentExtractionSuccess = exports.updatePolicyDocumentExtractionFailure = exports.updateCreatedCardPolicyTemplate = exports.updateCardPolicyVendorOptionsFailure = exports.updateCardPolicyVendorOptions = exports.updateCardPolicyTemplates = exports.updateCardPolicyStats = exports.updateCardPolicyMccCategoriesFailure = exports.updateCardPolicyMccCategories = exports.removeCardPolicyTemplate = exports.fetchCardPolicyVendorOptions = exports.fetchCardPolicyRecommendationFromUpload = exports.fetchCardPolicyMccCategories = exports.extractPolicyDocument = exports.clearPolicyDocumentExtraction = exports.toMessageType = exports.toMessageSender = exports.ALL_SYNTHETIC_AI_CFO_ANSWER_KINDS = exports.toInteractiveFormTypeStrict = exports.toInteractiveFormType = exports.toAiCfoAnswerResponseTypeStrict = exports.toAiCfoAnswerResponseType = exports.toAiCfoAnswerStateTypeStrict = exports.toAiCfoAnswerStateType = exports.toAiCfoChartTypeStrict = exports.toAiCfoChartType = exports.toAiCfoVisualizationTypeStrict = void 0;
77
77
  exports.applyAiCardPolicyFormDraftUpdate = exports.deriveAiPolicyReviewRowsFromInputs = exports.buildManualCardPolicyFormDraftSeed = exports.buildUploadReviewRows = exports.buildEmptyLimitRows = exports.buildAiCardPolicyFormDraftSeed = exports.toVendorChipFieldValue = exports.toMccCategoryChipFieldValue = exports.buildVendorChipId = exports.buildMccCategoryChipId = exports.VENDOR_CHIP_ID_PREFIX = exports.MCC_CHIP_ID_PREFIX = exports.toMccCategoryLike = exports.CARD_POLICY_LIMIT_ROW_ID_TRANSACTION = exports.CARD_POLICY_LIMIT_ROW_ID_REQUIRE_RECEIPT = exports.getManualCardPolicyFormDraft = exports.getLastCreatedCardPolicyTemplateIds = exports.getLastCreatedCardPolicyTemplateId = exports.getLastCreateCardPolicyTemplateErrors = exports.getLastCreateCardPolicySourceChatSessionId = exports.getCreateCardPolicyTemplateRequestState = exports.getAiCardPolicyFormDraft = exports.updateManualCardPolicyFormDraft = exports.updateCreateCardPolicyTemplateRequestState = exports.updateAiCardPolicyFormDraftFromUploadPlan = exports.updateAiCardPolicyFormDraft = exports.seedManualCardPolicyFormDraft = exports.seedAiCardPolicyFormDraft = exports.createCardPolicyTemplates = exports.clearManualCardPolicyFormDraft = exports.clearCreateCardPolicy = exports.clearAiCardPolicyFormDraft = exports.applyExtractedPolicyToManualCardPolicyDraft = exports.applyExtractedPolicyToAiCardPolicyDraft = exports.toUpdateCardPolicyTemplateRequestBody = exports.toExtractedCardPolicyRules = exports.toCreateCardPolicyTemplatesRequestBody = exports.toCreateCardPolicyTemplateRequestBody = exports.toCardPolicyVendorSearchOption = exports.toCardPolicyTemplateList = exports.toCardPolicyTemplate = exports.toCardPolicyStats = exports.toCardPolicyEditFormDraft = exports.toBulkCreateCardPolicyTemplateError = exports.toCardPolicyTemplateStatus = exports.toCardPolicyTemplateMode = exports.ALL_CARD_POLICY_TEMPLATE_STATUSES = exports.ALL_CARD_POLICY_TEMPLATE_MODES = exports.getUploadedPolicyDocumentFileName = exports.getPolicyRecommendationFromUploadFetchState = void 0;
78
78
  exports.getTransactionActivityLogView = exports.fetchTransactionActivityLog = exports.BULK_UPLOAD_BAR_COMPLETE_HOLD_MS = exports.BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS = exports.getAutoTransferRuleHistory = exports.getAutoTransferRuleById = exports.getAutoTransferRules = exports.clearRuleUpdateLocalData = exports.updateRuleLocalData = exports.fetchAutoTransferReviewDetail = exports.fetchAutoTransferRuleHistory = exports.deleteAutoTransferRule = exports.updateAutoTransferRule = exports.createAutoTransferRule = exports.fetchAutoTransferRules = exports.getTreasuryTaxLetters = exports.fetchTreasuryTaxLetterList = exports.getTreasuryStatements = exports.fetchTreasuryStatementList = exports.getTreasuryTransferMoney = exports.clearTreasuryTransferMoney = exports.updateTreasuryTransferMoneyLocalData = exports.executeTreasuryTransferMoney = exports.getTreasuryDetail = exports.updateTreasuryTransactionListUIState = exports.fetchTreasuryTransactionList = exports.fetchTreasuryOverviewDetail = exports.getUpdateCardPolicyFetchState = exports.getCardPolicyFormDraft = exports.getCardPolicyDetailView = exports.getCardPolicyDetailFetchState = exports.updateCardPolicyFormDraft = exports.updateCardPolicyFetchStatus = exports.updateCardPolicyDetailFetchStatus = exports.updateCardPolicy = exports.fetchCardPolicyDetail = exports.clearCardPolicyDetail = exports.getCardPolicyTemplateIds = exports.getCardPolicyListView = exports.getCardPolicyListFetchState = exports.getArchiveCardPolicyFetchState = exports.updateCardPolicyListFetchStatus = exports.updateArchiveCardPolicyFetchStatus = exports.prependCardPolicyTemplateIds = exports.fetchCardPolicyList = exports.clearCardPolicyList = exports.archiveCardPolicy = exports.toManualCardPolicyTemplateRequestFromDraft = exports.toBulkCardPolicyTemplateRequestsFromDraft = exports.toCardPolicyTemplateRequestFromDraft = void 0;
79
- exports.toKycProvidedDocumentTypeFromAllowed = exports.toKycProvidedDocumentType = exports.DEFAULT_SESSION_CONFIG = exports.SessionManager = void 0;
79
+ exports.getCashManagementOverviewBanner = exports.getCashManagementOverview = exports.bufferAmountToRisk = exports.RISK_BUFFER_AMOUNT = exports.getAutoSweepFlow = exports.updateCashManagementSettingsFetchStatus = exports.updateCashManagementSettings = exports.updateAutoSweepSettingsFetchStatus = exports.updateAutoSweepRisk = exports.updateAutoSweepDraft = exports.saveAutoSweepSettings = exports.clearAutoSweepFlow = exports.fetchCashManagementOverviewPage = exports.fetchCashManagementBanner = exports.toKycProvidedDocumentTypeFromAllowed = exports.toKycProvidedDocumentType = exports.DEFAULT_SESSION_CONFIG = exports.SessionManager = void 0;
80
80
  const allowedValue_1 = require("./commonStateTypes/allowedValue");
81
81
  Object.defineProperty(exports, "isAllowedValueWithCode", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithCode; } });
82
82
  Object.defineProperty(exports, "isAllowedValueWithID", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithID; } });
@@ -2595,3 +2595,22 @@ Object.defineProperty(exports, "DEFAULT_SESSION_CONFIG", { enumerable: true, get
2595
2595
  var kycKybAutofill_1 = require("./view/spendManagement/commonSetup/types/kycKybAutofill");
2596
2596
  Object.defineProperty(exports, "toKycProvidedDocumentType", { enumerable: true, get: function () { return kycKybAutofill_1.toKycProvidedDocumentType; } });
2597
2597
  Object.defineProperty(exports, "toKycProvidedDocumentTypeFromAllowed", { enumerable: true, get: function () { return kycKybAutofill_1.toKycProvidedDocumentTypeFromAllowed; } });
2598
+ var cashManagementOverviewReducer_1 = require("./view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer");
2599
+ Object.defineProperty(exports, "fetchCashManagementBanner", { enumerable: true, get: function () { return cashManagementOverviewReducer_1.fetchCashManagementBanner; } });
2600
+ Object.defineProperty(exports, "fetchCashManagementOverviewPage", { enumerable: true, get: function () { return cashManagementOverviewReducer_1.fetchCashManagementOverviewPage; } });
2601
+ var autoSweepFlowReducer_1 = require("./view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer");
2602
+ Object.defineProperty(exports, "clearAutoSweepFlow", { enumerable: true, get: function () { return autoSweepFlowReducer_1.clearAutoSweepFlow; } });
2603
+ Object.defineProperty(exports, "saveAutoSweepSettings", { enumerable: true, get: function () { return autoSweepFlowReducer_1.saveAutoSweepSettings; } });
2604
+ Object.defineProperty(exports, "updateAutoSweepDraft", { enumerable: true, get: function () { return autoSweepFlowReducer_1.updateAutoSweepDraft; } });
2605
+ Object.defineProperty(exports, "updateAutoSweepRisk", { enumerable: true, get: function () { return autoSweepFlowReducer_1.updateAutoSweepRisk; } });
2606
+ Object.defineProperty(exports, "updateAutoSweepSettingsFetchStatus", { enumerable: true, get: function () { return autoSweepFlowReducer_1.updateAutoSweepSettingsFetchStatus; } });
2607
+ Object.defineProperty(exports, "updateCashManagementSettings", { enumerable: true, get: function () { return autoSweepFlowReducer_1.updateCashManagementSettings; } });
2608
+ Object.defineProperty(exports, "updateCashManagementSettingsFetchStatus", { enumerable: true, get: function () { return autoSweepFlowReducer_1.updateCashManagementSettingsFetchStatus; } });
2609
+ var autoSweepFlowSelector_1 = require("./view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector");
2610
+ Object.defineProperty(exports, "getAutoSweepFlow", { enumerable: true, get: function () { return autoSweepFlowSelector_1.getAutoSweepFlow; } });
2611
+ var autoSweepFlowState_1 = require("./view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState");
2612
+ Object.defineProperty(exports, "RISK_BUFFER_AMOUNT", { enumerable: true, get: function () { return autoSweepFlowState_1.RISK_BUFFER_AMOUNT; } });
2613
+ Object.defineProperty(exports, "bufferAmountToRisk", { enumerable: true, get: function () { return autoSweepFlowState_1.bufferAmountToRisk; } });
2614
+ var cashManagementOverviewSelector_1 = require("./view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector");
2615
+ Object.defineProperty(exports, "getCashManagementOverview", { enumerable: true, get: function () { return cashManagementOverviewSelector_1.getCashManagementOverview; } });
2616
+ Object.defineProperty(exports, "getCashManagementOverviewBanner", { enumerable: true, get: function () { return cashManagementOverviewSelector_1.getCashManagementOverviewBanner; } });
package/lib/reducer.d.ts CHANGED
@@ -157,6 +157,8 @@ import { InternationalWireVerificationState } from './view/spendManagement/billP
157
157
  import { MagicLinkViewState } from './view/spendManagement/billPay/magicLinkView/magicLinkViewState';
158
158
  import { PreviousBillsState } from './view/spendManagement/billPay/previousBills/previousBillsState';
159
159
  import { WiseRedirectState } from './view/spendManagement/billPay/wiseRedirectView/wiseRedirectState';
160
+ import { AutoSweepFlowState } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState';
161
+ import { CashManagementOverviewState } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState';
160
162
  import { CardPolicyDetailState } from './view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState';
161
163
  import { CardPolicyListState } from './view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState';
162
164
  import { CreateCardPolicyState } from './view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState';
@@ -310,6 +312,7 @@ type ViewsState = {
310
312
  arAgingState: ArAgingState;
311
313
  auditReportViewState: AuditReportViewState;
312
314
  authenticationViewState: AuthenticationViewState;
315
+ autoSweepFlowState: AutoSweepFlowState;
313
316
  autotransferRulesState: AutoTransferRulesState;
314
317
  balanceSheetState: BalanceSheetState;
315
318
  bankAccountViewState: BankAccountViewState;
@@ -331,6 +334,7 @@ type ViewsState = {
331
334
  cashBalanceState: CashBalanceState;
332
335
  cashFlowState: CashFlowState;
333
336
  cashInCashOutState: CashInCashOutState;
337
+ cashManagementOverviewState: CashManagementOverviewState;
334
338
  cashPositionState: CashPositionState;
335
339
  chargeCardConfigState: ChargeCardConfigState;
336
340
  chargeCardDetailState: ChargeCardDetailState;
@@ -476,6 +480,7 @@ declare const reducers: import("redux").Reducer<import("redux").CombinedState<{
476
480
  arAgingState: ArAgingState;
477
481
  auditReportViewState: AuditReportViewState;
478
482
  authenticationViewState: AuthenticationViewState;
483
+ autoSweepFlowState: AutoSweepFlowState;
479
484
  autotransferRulesState: AutoTransferRulesState;
480
485
  balanceSheetState: BalanceSheetState;
481
486
  bankAccountViewState: BankAccountViewState;
@@ -495,6 +500,7 @@ declare const reducers: import("redux").Reducer<import("redux").CombinedState<{
495
500
  cashBalanceState: CashBalanceState;
496
501
  cashFlowState: CashFlowState;
497
502
  cashInCashOutState: CashInCashOutState;
503
+ cashManagementOverviewState: CashManagementOverviewState;
498
504
  cashPositionState: CashPositionState;
499
505
  chargeCardConfigState: ChargeCardConfigState;
500
506
  chargeCardDetailState: ChargeCardDetailState;
package/lib/reducer.js CHANGED
@@ -198,6 +198,8 @@ const internationalWireVerificationReducer_1 = __importStar(require("./view/spen
198
198
  const magicLinkViewReducer_1 = __importStar(require("./view/spendManagement/billPay/magicLinkView/magicLinkViewReducer"));
199
199
  const previousBillsReducer_1 = __importStar(require("./view/spendManagement/billPay/previousBills/previousBillsReducer"));
200
200
  const wiseRedirectReducer_1 = __importStar(require("./view/spendManagement/billPay/wiseRedirectView/wiseRedirectReducer"));
201
+ const autoSweepFlowReducer_1 = __importStar(require("./view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer"));
202
+ const cashManagementOverviewReducer_1 = __importStar(require("./view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer"));
201
203
  const cardPolicyDetailReducer_1 = __importStar(require("./view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer"));
202
204
  const cardPolicyListReducer_1 = __importStar(require("./view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer"));
203
205
  const createCardPolicyReducer_1 = __importStar(require("./view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer"));
@@ -353,6 +355,7 @@ const initialViewsState = {
353
355
  arAgingState: arAgingReducer_1.initialState,
354
356
  auditReportViewState: auditReportViewReducer_1.initialState,
355
357
  authenticationViewState: authenticationViewReducer_1.initialState,
358
+ autoSweepFlowState: autoSweepFlowReducer_1.initialState,
356
359
  autotransferRulesState: autoTransferRulesReducer_1.initialState,
357
360
  balanceSheetState: balanceSheetReducer_1.initialState,
358
361
  bankAccountViewState: bankAccountViewReducer_1.initialState,
@@ -373,6 +376,7 @@ const initialViewsState = {
373
376
  cashBalanceState: cashBalanceReducer_1.initialState,
374
377
  cashFlowState: cashFlowReducer_1.initialState,
375
378
  cashInCashOutState: cashInCashOutReducer_1.initialState,
379
+ cashManagementOverviewState: cashManagementOverviewReducer_1.initialState,
376
380
  cashPositionState: cashPositionReducer_1.initialState,
377
381
  chargeCardConfigState: chargeCardConfigReducer_1.initialState,
378
382
  chargeCardDetailState: chargeCardDetailReducer_1.initialState,
@@ -594,6 +598,7 @@ const viewReducers = {
594
598
  arAgingState: arAgingReducer_1.default,
595
599
  auditReportViewState: auditReportViewReducer_1.default,
596
600
  authenticationViewState: authenticationViewReducer_1.default,
601
+ autoSweepFlowState: autoSweepFlowReducer_1.default,
597
602
  autotransferRulesState: autoTransferRulesReducer_1.default,
598
603
  balanceSheetState: balanceSheetReducer_1.default,
599
604
  bankAccountViewState: bankAccountViewReducer_1.default,
@@ -613,6 +618,7 @@ const viewReducers = {
613
618
  cashBalanceState: cashBalanceReducer_1.default,
614
619
  cashFlowState: cashFlowReducer_1.default,
615
620
  cashInCashOutState: cashInCashOutReducer_1.default,
621
+ cashManagementOverviewState: cashManagementOverviewReducer_1.default,
616
622
  cashPositionState: cashPositionReducer_1.default,
617
623
  chargeCardConfigState: chargeCardConfigReducer_1.default,
618
624
  chargeCardDetailState: chargeCardDetailReducer_1.default,