@mx-cartographer/experiences 9.5.0 → 9.5.2

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 (93) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/dist/accounts/components/AccountListItem.es.js +1 -1
  3. package/dist/accounts/components/AccountsList.es.js +1 -1
  4. package/dist/accounts/components/detailsdrawer/Accounts/AccountConnection.es.js +3 -3
  5. package/dist/accounts/components/detailsdrawer/Accounts/ConnectionErrorMessage.es.js +3 -3
  6. package/dist/accounts/utils/AccountFields.es.js +11 -11
  7. package/dist/budgets/BubbleBudgetsMiniWidget.es.js +1 -1
  8. package/dist/budgets/components/Overview.es.js +1 -1
  9. package/dist/budgets/components/addbudget/UnbudgetedRow.es.js +4 -4
  10. package/dist/budgets/components/shared/BudgetDetailsTopSection.es.js +1 -1
  11. package/dist/cashflow/CashflowOnboarding.es.js +57 -55
  12. package/dist/cashflow/CashflowOnboarding.es.js.map +1 -1
  13. package/dist/cashflow/CashflowWidget.es.js +1 -1
  14. package/dist/cashflow/components/SummaryTab.es.js +1 -1
  15. package/dist/common/hooks/index.d.ts +1 -0
  16. package/dist/common/hooks/useRepeatingTransactionEligibility.d.ts +6 -0
  17. package/dist/common/hooks/useRepeatingTransactionEligibility.es.js +12 -0
  18. package/dist/common/hooks/useRepeatingTransactionEligibility.es.js.map +1 -0
  19. package/dist/common/index.es.js +114 -112
  20. package/dist/core/constants/repeatingTransactions.d.ts +5 -2
  21. package/dist/core/constants/repeatingTransactions.es.js +24 -9
  22. package/dist/core/constants/repeatingTransactions.es.js.map +1 -1
  23. package/dist/core/index.es.js +79 -79
  24. package/dist/core/stores/AccountStore.es.js +1 -1
  25. package/dist/core/stores/CashflowStore.es.js +1 -1
  26. package/dist/core/stores/CategoryStore.es.js +1 -1
  27. package/dist/core/stores/FinstrongStore.es.js +4 -4
  28. package/dist/core/stores/GoalStore.es.js +1 -1
  29. package/dist/core/stores/RecurringTransactionsStore.es.js +9 -9
  30. package/dist/core/stores/SettingsStore.es.js +7 -7
  31. package/dist/core/stores/TransactionStore.es.js +13 -13
  32. package/dist/core/utils/BudgetUtil.es.js +1 -1
  33. package/dist/core/utils/DateUtil.es.js +5 -5
  34. package/dist/core/utils/DebtUtils.es.js +6 -6
  35. package/dist/core/utils/RecurringTransactionsUtil.d.ts +13 -1
  36. package/dist/core/utils/RecurringTransactionsUtil.es.js +111 -106
  37. package/dist/core/utils/RecurringTransactionsUtil.es.js.map +1 -1
  38. package/dist/core/utils/TransactionUtils.es.js +6 -6
  39. package/dist/debts/DebtsWidget.es.js +1 -1
  40. package/dist/debts/components/DebtsChart.es.js +4 -4
  41. package/dist/debts/components/DebtsTable.es.js +6 -6
  42. package/dist/debts/components/actions/ExtraPaymentAction.es.js +4 -4
  43. package/dist/debts/components/actions/InterestRateAction.es.js +4 -4
  44. package/dist/debts/components/actions/MonthlyPaymentAction.es.js +4 -4
  45. package/dist/debts/components/actions/OriginalBalanceAction.es.js +4 -4
  46. package/dist/debts/components/debtsdrawer/DebtScheduleTab.es.js +1 -1
  47. package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsContent.es.js +4 -4
  48. package/dist/finstrong/components/ProfileDrawer.es.js +1 -1
  49. package/dist/finstrong/components/SaveEnoughToLiveOn/AvailableTabContent.es.js +1 -1
  50. package/dist/finstrong/components/onboarding/OnboardingStepsDrawer.es.js +106 -104
  51. package/dist/finstrong/components/onboarding/OnboardingStepsDrawer.es.js.map +1 -1
  52. package/dist/finstrong/components/shared/Accounts.es.js +4 -4
  53. package/dist/finstrong/components/shared/Transactions.es.js +4 -4
  54. package/dist/goals/GoalsWidget.es.js +7 -7
  55. package/dist/goals/components/AccountSelectionDrawer.es.js +4 -4
  56. package/dist/goals/components/AddGoal.es.js +1 -1
  57. package/dist/goals/components/GoalDetailsDrawer.es.js +1 -1
  58. package/dist/goals/components/ManageGoals.es.js +1 -1
  59. package/dist/goals/components/actions/ChangeAccountAction.es.js +1 -1
  60. package/dist/goals/components/managegoals/OngoingListItem.es.js +4 -4
  61. package/dist/insights/components/shared/DrillDownCalculation/DrillDownCalculation.es.js +1 -1
  62. package/dist/insights-v2/actionBlocks/TransactionHistoryBlock/TransactionHistoryBlock.es.js +4 -4
  63. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/utils.es.js +1 -1
  64. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/BudgetBlock.es.js +1 -1
  65. package/dist/investments/InvestmentsWidget.es.js +7 -7
  66. package/dist/recurringtransactions/components/RecurringTransactionDetails.es.js +10 -10
  67. package/dist/recurringtransactions/components/RecurringTransactionDetailsDrawer.es.js +4 -4
  68. package/dist/recurringtransactions/components/RecurringTransactionList.es.js +10 -10
  69. package/dist/recurringtransactions/components/actions/LinkTransactionDrawer.es.js +4 -4
  70. package/dist/recurringtransactions/components/actions/PaymentScheduleAction.es.js +6 -6
  71. package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js +45 -43
  72. package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js.map +1 -1
  73. package/dist/recurringtransactions/components/shared/recurringsettings/ManageExpenses.es.js +1 -1
  74. package/dist/recurringtransactions/components/shared/recurringsettings/ManageIncome.es.js +1 -1
  75. package/dist/recurringtransactions/components/shared/recurringsettings/RecurringRow.es.js +6 -6
  76. package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.d.ts +7 -1
  77. package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js +15 -16
  78. package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js.map +1 -1
  79. package/dist/settings/components/devices/DeviceList.es.js +1 -1
  80. package/dist/settings/components/devices/DeviceTable.es.js +1 -1
  81. package/dist/settings/components/notifications/AccountProfileListItem.es.js +5 -5
  82. package/dist/settings/components/notifications/NotificationSettings.es.js +1 -1
  83. package/dist/spending/components/SpendingDonut.es.js +1 -1
  84. package/dist/transactions/components/shared/TransactionDetails.es.js +8 -8
  85. package/dist/transactions/components/shared/TransactionList.es.js +4 -4
  86. package/dist/transactions/components/shared/transactiondetails/actions/AddMerchantBudgetAction.es.js +1 -1
  87. package/dist/transactions/components/shared/transactiondetails/actions/DateAction.es.js +6 -6
  88. package/dist/transactions/components/splitmanager/SplitManager.es.js +4 -4
  89. package/dist/transactions/utils/Transactions.es.js +1 -1
  90. package/dist/trends/components/CategoriesListItem.es.js +4 -4
  91. package/dist/trends/components/CategoryDetails.es.js +6 -6
  92. package/dist/trends/components/TrendsChart.es.js +1 -1
  93. package/package.json +2 -2
@@ -1,94 +1,95 @@
1
- import { useAccountStore as bt, useFinstrongStore as St, useGlobalCopyStore as Ct, useRecurringTransactionsStore as xt, useTransactionStore as Tt, useUserStore as At } from "../../../common/context/hooks.es.js";
2
- import Dt from "../../../common/components/drawer/Drawer.es.js";
1
+ import { useAccountStore as St, useFinstrongStore as Ct, useGlobalCopyStore as xt, useRecurringTransactionsStore as Tt, useTransactionStore as At, useUserStore as Dt } from "../../../common/context/hooks.es.js";
3
2
  import { Frequency as It, RepeatingType as wt } from "../../../core/types/RepeatingTransaction.es.js";
4
3
  import { getNextPaymentDate as Mt } from "../../../core/utils/RecurringTransactionsUtil.es.js";
5
- import Ot from "../../../common/components/ConnectDrawer.es.js";
6
- import { incomeFilter as L, incomeFilterSearch as Bt } from "../../../transactions/utils/Filters.es.js";
7
- import { SelectTransaction as Pt } from "../../../recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js";
4
+ import { useRepeatingTransactionEligibility as Ot } from "../../../common/hooks/useRepeatingTransactionEligibility.es.js";
5
+ import Bt from "../../../common/components/drawer/Drawer.es.js";
6
+ import Ft from "../../../common/components/ConnectDrawer.es.js";
7
+ import { incomeFilter as E, incomeFilterSearch as Pt } from "../../../transactions/utils/Filters.es.js";
8
+ import { SelectTransaction as Rt } from "../../../recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js";
8
9
  import "../../constants/index.es.js";
9
- import Ft from "../../../accounts/components/AccountsListCompact.es.js";
10
+ import kt from "../../../accounts/components/AccountsListCompact.es.js";
10
11
  import { OnboardingSteps as e } from "../../../core/types/Finstrong.es.js";
11
- import kt from "./OnboardingAddMonthlyIncome.es.js";
12
- import vt from "./OnboardingBirthday.es.js";
13
- import Rt from "./OnboardingCreditScore.es.js";
14
- import Lt from "./OnboardingStepsHeader.es.js";
12
+ import vt from "./OnboardingAddMonthlyIncome.es.js";
13
+ import Et from "./OnboardingBirthday.es.js";
14
+ import Lt from "./OnboardingCreditScore.es.js";
15
+ import Ut from "./OnboardingStepsHeader.es.js";
15
16
  import r from "react";
16
- import { observer as Et } from "mobx-react-lite";
17
+ import { observer as Nt } from "mobx-react-lite";
17
18
  import D from "@mui/material/Stack";
18
- import { H2 as Ut, P as Nt } from "@mxenabled/mxui";
19
- import { endOfMonth as qt } from "date-fns/endOfMonth";
20
- import { startOfMonth as Gt } from "date-fns/startOfMonth";
21
- import { startOfToday as E } from "date-fns/startOfToday";
22
- import Ht from "@mui/material/Button";
23
- import { Add as Wt } from "@mxenabled/mx-icons";
24
- import { jsx as i, jsxs as g } from "react/jsx-runtime";
25
- import jt from "@mui/material/Box";
26
- import { subDays as $t } from "date-fns/subDays";
27
- import { fromUnixTime as zt } from "date-fns/fromUnixTime";
28
- import { formatISO as Jt } from "date-fns/formatISO";
19
+ import { H2 as qt, P as Gt } from "@mxenabled/mxui";
20
+ import { endOfMonth as Ht } from "date-fns/endOfMonth";
21
+ import { startOfMonth as Wt } from "date-fns/startOfMonth";
22
+ import { startOfToday as L } from "date-fns/startOfToday";
23
+ import jt from "@mui/material/Button";
24
+ import { Add as $t } from "@mxenabled/mx-icons";
25
+ import { jsx as a, jsxs as g } from "react/jsx-runtime";
26
+ import zt from "@mui/material/Box";
27
+ import { subDays as Jt } from "date-fns/subDays";
28
+ import { formatISO as Kt } from "date-fns/formatISO";
29
+ import { fromUnixTime as Qt } from "date-fns/fromUnixTime";
29
30
  var U = {
30
31
  step: e.ConnectAccounts,
31
32
  type: "main"
32
- }, Kt = ({ isOpen: N, onClose: q }) => {
33
- const { visibleAccounts: b } = bt(), { calculateHealthScore: G } = St(), { finstrong: n } = Ct(), { addRepeatingTransaction: H, setDateRange: W } = xt(), { filter: j, setFilter: I, transactions: S } = Tt(), { user: a, userProfile: $, updateUser: w, updateUserProfile: z } = At(), [l, J] = r.useState(a.credit_score || 0), [c, d] = r.useState(U), [C, K] = r.useState(1), [x, Q] = r.useState(It.EveryMonth), [y, M] = r.useState([]), [T, O] = r.useState(!1), [V, B] = r.useState(!1), [f, X] = r.useState(a.birthday), [A, Y] = r.useState(15), [s, P] = r.useState("");
33
+ }, Vt = ({ isOpen: N, onClose: q }) => {
34
+ const { visibleAccounts: b } = St(), { calculateHealthScore: G } = Ct(), { finstrong: n } = xt(), { addRepeatingTransaction: H, setDateRange: W } = Tt(), { filter: j, setFilter: I, transactions: S } = At(), { user: i, userProfile: $, updateUser: w, updateUserProfile: z } = Dt(), J = Ot(), [l, K] = r.useState(i.credit_score || 0), [c, d] = r.useState(U), [C, Q] = r.useState(1), [x, V] = r.useState(It.EveryMonth), [y, M] = r.useState([]), [T, O] = r.useState(!1), [X, B] = r.useState(!1), [f, Y] = r.useState(i.birthday), [A, Z] = r.useState(15), [s, F] = r.useState("");
34
35
  r.useEffect(() => {
35
36
  W({
36
- start: Gt(E()),
37
- end: qt(E())
37
+ start: Wt(L()),
38
+ end: Ht(L())
38
39
  });
39
40
  }, []), r.useEffect(() => {
40
41
  I({
41
42
  accounts: b.map((t) => t.guid),
42
43
  dateRange: {
43
- start: $t(/* @__PURE__ */ new Date(), 90),
44
+ start: Jt(/* @__PURE__ */ new Date(), 90),
44
45
  end: /* @__PURE__ */ new Date()
45
46
  },
46
- custom: L
47
+ custom: E
47
48
  });
48
49
  }, [b]);
49
- const F = r.useMemo(() => S.find((t) => t.guid === s), [s, S]), Z = r.useMemo(() => ({
50
+ const P = r.useMemo(() => S.find((t) => t.guid === s), [s, S]), tt = r.useMemo(() => ({
50
51
  [e.ConnectAccounts]: !0,
51
52
  [e.MonthlyIncome]: !!s,
52
- [e.Birthday]: !!a.birthday || !!f,
53
- [e.CreditScore]: !!a.credit_score || !!l
53
+ [e.Birthday]: !!i.birthday || !!f,
54
+ [e.CreditScore]: !!i.credit_score || !!l
54
55
  })[c.step], [
55
56
  l,
56
57
  c,
57
58
  f,
58
59
  s,
59
- a
60
- ]), u = b.length > 0, tt = r.useMemo(() => {
60
+ i
61
+ ]), p = b.length > 0, et = r.useMemo(() => {
61
62
  const { step: t } = c;
62
63
  let o = 0;
63
- return t >= e.MonthlyIncome && u && o++, t >= e.Birthday && y.length && o++, t >= e.CreditScore && (a.birthday || a.credit_score) && o++, o;
64
+ return t >= e.MonthlyIncome && p && o++, t >= e.Birthday && y.length && o++, t >= e.CreditScore && (i.birthday || i.credit_score) && o++, o;
64
65
  }, [
65
66
  c.step,
66
- u,
67
+ p,
67
68
  y.length,
68
- a.birthday,
69
- a.credit_score
70
- ]), et = (t) => {
69
+ i.birthday,
70
+ i.credit_score
71
+ ]), nt = (t) => {
71
72
  I({
72
73
  ...j,
73
- custom: (o) => t ? Bt(o, t) : L(o)
74
+ custom: (o) => t ? Pt(o, t) : E(o)
74
75
  });
75
- }, nt = {
76
+ }, ot = {
76
77
  [e.ConnectAccounts]: {
77
- main: u ? /* @__PURE__ */ i(Ft, { shouldShowBalance: !1 }) : null,
78
- mainActionContent: u ? n.onboarding_next : n.onboarding_add_accounts,
78
+ main: p ? /* @__PURE__ */ a(kt, { shouldShowBalance: !1 }) : null,
79
+ mainActionContent: p ? n.onboarding_next : n.onboarding_add_accounts,
79
80
  primaryText: n.connect_your_accounts,
80
81
  secondaryText: n.onboarding_connect_your_accounts_secondary
81
82
  },
82
83
  [e.MonthlyIncome]: {
83
- detail: /* @__PURE__ */ i(kt, {
84
+ detail: /* @__PURE__ */ a(vt, {
84
85
  firstDay: C,
85
86
  frequency: x,
86
87
  incomeTransactions: y,
87
88
  secondDay: A,
88
89
  setCurrentStep: (t) => {
89
90
  d(t), M((o) => {
90
- if (o.some((p) => p.guid === s)) return o.filter((p) => p.guid !== s);
91
- const m = S.find((p) => p.guid === s);
91
+ if (o.some((u) => u.guid === s)) return o.filter((u) => u.guid !== s);
92
+ const m = S.find((u) => u.guid === s);
92
93
  return m ? [...o, {
93
94
  ...m,
94
95
  firstDay: C,
@@ -97,19 +98,20 @@ var U = {
97
98
  }] : o;
98
99
  });
99
100
  },
100
- setFirstDay: K,
101
- setFrequency: Q,
102
- setSecondDay: Y,
103
- transaction: F
101
+ setFirstDay: Q,
102
+ setFrequency: V,
103
+ setSecondDay: Z,
104
+ transaction: P
104
105
  }),
105
106
  detailActionContent: n.onboarding_confirm_income,
106
- main: /* @__PURE__ */ i(Pt, {
107
- onSearch: et,
107
+ main: /* @__PURE__ */ a(Rt, {
108
+ eligibilityFilter: J,
109
+ onSearch: nt,
108
110
  onSelected: (t) => {
109
111
  d({
110
112
  step: e.MonthlyIncome,
111
113
  type: "detail"
112
- }), P(t);
114
+ }), F(t);
113
115
  }
114
116
  }),
115
117
  mainActionContent: n.onboarding_confirm_income,
@@ -117,64 +119,64 @@ var U = {
117
119
  secondaryText: n.onboarding_add_income_secondary
118
120
  },
119
121
  [e.Birthday]: {
120
- main: /* @__PURE__ */ i(vt, {
122
+ main: /* @__PURE__ */ a(Et, {
121
123
  selectedDate: f,
122
- setSelectedDate: X
124
+ setSelectedDate: Y
123
125
  }),
124
126
  mainActionContent: n.onboarding_next,
125
127
  primaryText: n.onboarding_birthday_primary,
126
128
  secondaryText: n.onboarding_birthday_secondary
127
129
  },
128
130
  [e.CreditScore]: {
129
- main: /* @__PURE__ */ i(Rt, {
131
+ main: /* @__PURE__ */ a(Lt, {
130
132
  creditScore: l,
131
- setCreditScore: J
133
+ setCreditScore: K
132
134
  }),
133
135
  mainActionContent: n.onboarding_next,
134
136
  primaryText: n.onboarding_credit_score_primary,
135
137
  secondaryText: n.onboarding_credit_score_secondary
136
138
  }
137
- }, k = () => {
138
- d(U), O(!1), P(""), q();
139
- }, v = async () => {
140
- O(!0), await it(y), await G(), await z({
139
+ }, R = () => {
140
+ d(U), O(!1), F(""), q();
141
+ }, k = async () => {
142
+ O(!0), await ct(y), await G(), await z({
141
143
  ...$,
142
144
  has_completed_finstrong_onboarding: !0
143
- }), k();
144
- }, ot = () => {
145
+ }), R();
146
+ }, rt = () => {
145
147
  if (c.step === e.CreditScore) {
146
- v();
148
+ k();
147
149
  return;
148
150
  }
149
151
  d({
150
152
  step: c.step + 1,
151
153
  type: "main"
152
154
  });
153
- }, rt = () => {
155
+ }, it = () => {
154
156
  const { step: t } = c, o = t + 1;
155
157
  switch (t) {
156
158
  case e.Birthday:
157
- f && f !== a.birthday && w({
158
- ...a,
159
+ f && f !== i.birthday && w({
160
+ ...i,
159
161
  birthday: f
160
162
  });
161
163
  break;
162
164
  case e.CreditScore:
163
- l && l !== a.credit_score && w({
164
- ...a,
165
+ l && l !== i.credit_score && w({
166
+ ...i,
165
167
  credit_score: l
166
- }), v();
168
+ }), k();
167
169
  return;
168
170
  case e.MonthlyIncome:
169
171
  s && y.findIndex(({ guid: m }) => m === s) === -1 && M((m) => [...m, {
170
- ...F,
172
+ ...P,
171
173
  firstDay: C,
172
174
  frequency: x,
173
175
  secondDay: A
174
176
  }]);
175
177
  break;
176
178
  case e.ConnectAccounts:
177
- if (!u) {
179
+ if (!p) {
178
180
  B(!0);
179
181
  return;
180
182
  }
@@ -203,29 +205,29 @@ var U = {
203
205
  step: t - 1,
204
206
  type: "main"
205
207
  });
206
- }, it = async (t) => {
208
+ }, ct = async (t) => {
207
209
  for (const o of t) {
208
- const { account_guid: m, amount: p, date: dt, description: mt, feed_description: ut, firstDay: pt, frequency: R, secondDay: lt, merchant_guid: yt, payee: ft, transaction_type: _t } = o, gt = Mt(R, zt(dt)), ht = {
210
+ const { account_guid: m, amount: u, date: mt, description: pt, feed_description: ut, firstDay: lt, frequency: v, secondDay: yt, merchant_guid: ft, payee: _t, transaction_type: gt } = o, ht = Mt(v, Qt(mt)), bt = {
209
211
  account_guid: m,
210
- amount: p,
212
+ amount: u,
211
213
  created_by: 0,
212
- description: ft || mt || ut,
213
- merchant_guid: yt,
214
- predicted_occurs_on: Jt(gt, { representation: "date" }),
215
- recurrence_day: pt,
216
- recurrence_type: R,
214
+ description: _t || pt || ut,
215
+ merchant_guid: ft,
216
+ predicted_occurs_on: Kt(ht, { representation: "date" }),
217
+ recurrence_day: lt,
218
+ recurrence_type: v,
217
219
  repeating_transaction_type: wt.Income,
218
- second_recurrence_day: lt,
219
- transaction_type: _t,
220
- user_guid: a.guid
220
+ second_recurrence_day: yt,
221
+ transaction_type: gt,
222
+ user_guid: i.guid
221
223
  };
222
- await H(ht, o);
224
+ await H(bt, o);
223
225
  }
224
- }, _ = nt[c.step], h = c.step === e.ConnectAccounts, ct = {
226
+ }, _ = ot[c.step], h = c.step === e.ConnectAccounts, st = {
225
227
  fullWidth: !0,
226
- ...h && !u && { startIcon: /* @__PURE__ */ i(Wt, {}) }
227
- }, st = !h || h && !u;
228
- return /* @__PURE__ */ g(r.Fragment, { children: [/* @__PURE__ */ i(Dt, {
228
+ ...h && !p && { startIcon: /* @__PURE__ */ a($t, {}) }
229
+ }, dt = !h || h && !p;
230
+ return /* @__PURE__ */ g(r.Fragment, { children: [/* @__PURE__ */ a(Bt, {
229
231
  footerStyles: {
230
232
  borderTop: 1,
231
233
  borderColor: "divider",
@@ -234,15 +236,15 @@ var U = {
234
236
  },
235
237
  hasSecondaryAction: !h,
236
238
  isOpen: N,
237
- isPrimaryDisabled: !Z,
238
- onClose: k,
239
+ isPrimaryDisabled: !tt,
240
+ onClose: R,
239
241
  onSecondaryAction: at,
240
- primaryButtonProps: ct,
242
+ primaryButtonProps: st,
241
243
  primaryText: _?.mainActionContent,
242
244
  secondaryColor: "primary",
243
245
  secondaryText: n.onboarding_back,
244
246
  title: n.title,
245
- ...!T && { onPrimaryAction: rt },
247
+ ...!T && { onPrimaryAction: it },
246
248
  children: /* @__PURE__ */ g(D, {
247
249
  sx: {
248
250
  bgcolor: "background.default",
@@ -257,7 +259,7 @@ var U = {
257
259
  top: 126
258
260
  },
259
261
  children: [
260
- /* @__PURE__ */ i("img", {
262
+ /* @__PURE__ */ a("img", {
261
263
  alt: "",
262
264
  src: "https://content.moneydesktop.com/storage/MD_Assets/serenity/loading_animation_final.gif",
263
265
  style: {
@@ -265,31 +267,31 @@ var U = {
265
267
  width: 211
266
268
  }
267
269
  }),
268
- /* @__PURE__ */ i(Ut, { children: n.onboarding_calculate_primary }),
269
- /* @__PURE__ */ i(Nt, {
270
+ /* @__PURE__ */ a(qt, { children: n.onboarding_calculate_primary }),
271
+ /* @__PURE__ */ a(Gt, {
270
272
  sx: { textAlign: "center" },
271
273
  variant: "subtitle1",
272
274
  children: n.onboarding_calculate_secondary
273
275
  })
274
276
  ]
275
277
  }), _ && !T && /* @__PURE__ */ g(r.Fragment, { children: [
276
- /* @__PURE__ */ i(Lt, {
278
+ /* @__PURE__ */ a(Ut, {
277
279
  completeCopy: n.complete,
278
280
  primaryText: _.primaryText,
279
281
  secondaryText: _.secondaryText,
280
- value: tt
282
+ value: et
281
283
  }),
282
- c.type === "main" && /* @__PURE__ */ g(jt, {
284
+ c.type === "main" && /* @__PURE__ */ g(zt, {
283
285
  sx: { bgcolor: "background.default" },
284
- children: [_.main, st && /* @__PURE__ */ i(D, {
286
+ children: [_.main, dt && /* @__PURE__ */ a(D, {
285
287
  sx: {
286
288
  alignItems: "center",
287
289
  px: 24,
288
290
  py: 12
289
291
  },
290
- children: /* @__PURE__ */ i(Ht, {
292
+ children: /* @__PURE__ */ a(jt, {
291
293
  fullWidth: !0,
292
- onClick: ot,
294
+ onClick: rt,
293
295
  children: n.onboarding_do_it_later
294
296
  })
295
297
  })]
@@ -297,14 +299,14 @@ var U = {
297
299
  c.type === "detail" && _.detail
298
300
  ] })]
299
301
  })
300
- }), /* @__PURE__ */ i(Ot, {
302
+ }), /* @__PURE__ */ a(Ft, {
301
303
  onClose: () => B(!1),
302
- showConnectWidget: V,
304
+ showConnectWidget: X,
303
305
  title: n.connect_more_accounts_button
304
306
  })] });
305
- }, Ae = Et(Kt);
307
+ }, we = Nt(Vt);
306
308
  export {
307
- Ae as default
309
+ we as default
308
310
  };
309
311
 
310
312
  //# sourceMappingURL=OnboardingStepsDrawer.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OnboardingStepsDrawer.es.js","names":[],"sources":["../../../../src/finstrong/components/onboarding/OnboardingStepsDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { formatISO } from 'date-fns/formatISO'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { subDays } from 'date-fns/subDays'\n\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\n\nimport { H2, P } from '@mxenabled/mxui'\nimport { Add } from '@mxenabled/mx-icons'\n\nimport AccountsListCompact from '../../../accounts/components/AccountsListCompact'\nimport {\n ConnectDrawer,\n Drawer,\n useAccountStore,\n useFinstrongStore,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n useTransactionStore,\n useUserStore,\n} from '../../../common'\nimport {\n Frequency,\n type RepeatingTransaction,\n RepeatingType,\n type Transaction,\n} from '../../../core'\nimport { OnboardingSteps } from '../../../core/types/Finstrong'\nimport { SelectTransaction } from '../../../recurringtransactions'\nimport { getNextPaymentDate } from '../../../core/utils/RecurringTransactionsUtil'\nimport { incomeFilter, incomeFilterSearch } from '../../../transactions/utils/Filters'\n\nimport { CALCULATING_ANIMATION_URL } from '../../constants'\n\nimport OnboardingAddMonthlyIncome from './OnboardingAddMonthlyIncome'\nimport OnboardingBirthday from './OnboardingBirthday'\nimport OnboardingCreditScore from './OnboardingCreditScore'\nimport OnboardingStepsHeader from './OnboardingStepsHeader'\n\ninterface IncomeTransaction extends Transaction {\n firstDay: number\n frequency: Frequency\n secondDay: number\n}\n\ninterface OnboardingStepsDrawerProps {\n isOpen: boolean\n onClose: () => void\n}\n\ninterface Steps {\n detail?: React.ReactNode\n detailActionContent?: string\n main: React.ReactNode\n mainActionContent: string\n primaryText: string\n secondaryText: string\n}\n\ntype StepType = 'main' | 'detail'\nexport interface StepState {\n step: OnboardingSteps\n type: StepType\n}\n\nconst INITIAL_STEP_STATE: StepState = {\n step: OnboardingSteps.ConnectAccounts,\n type: 'main',\n}\n\nconst OnboardingStepsDrawer = ({ isOpen, onClose }: OnboardingStepsDrawerProps) => {\n const { visibleAccounts: accounts } = useAccountStore()\n const { calculateHealthScore } = useFinstrongStore()\n const { finstrong: copy } = useGlobalCopyStore()\n const { addRepeatingTransaction, setDateRange } = useRecurringTransactionsStore()\n const { filter, setFilter, transactions } = useTransactionStore()\n const { user, userProfile, updateUser, updateUserProfile } = useUserStore()\n\n const [creditScore, setCreditScore] = React.useState<number>(user.credit_score || 0)\n const [currentStep, setCurrentStep] = React.useState<{ step: OnboardingSteps; type: StepType }>(\n INITIAL_STEP_STATE,\n )\n const [firstDay, setFirstDay] = React.useState(1)\n const [frequency, setFrequency] = React.useState(Frequency.EveryMonth)\n const [incomeTransactions, setIncomeTransactions] = React.useState<IncomeTransaction[]>([])\n const [isComplete, setIsComplete] = React.useState(false)\n const [isConnectDrawerOpen, setIsConnectDrawerOpen] = React.useState(false)\n const [selectedDate, setSelectedDate] = React.useState<number | null | undefined>(user.birthday)\n const [secondDay, setSecondDay] = React.useState(15)\n const [transactionGuid, setTransactionGuid] = React.useState('')\n\n React.useEffect(() => {\n setDateRange({ start: startOfMonth(startOfToday()), end: endOfMonth(startOfToday()) })\n }, [])\n\n React.useEffect(() => {\n setFilter({\n accounts: accounts.map((account) => account.guid),\n dateRange: {\n start: subDays(new Date(), 90),\n end: new Date(),\n },\n custom: incomeFilter,\n })\n }, [accounts])\n\n const transaction = React.useMemo(\n () => transactions.find((t) => t.guid === transactionGuid),\n [transactionGuid, transactions],\n )\n\n const isPrimaryActionEnabled = React.useMemo(() => {\n const isValid: Partial<Record<OnboardingSteps, boolean>> = {\n [OnboardingSteps.ConnectAccounts]: true,\n [OnboardingSteps.MonthlyIncome]: !!transactionGuid,\n [OnboardingSteps.Birthday]: !!user.birthday || !!selectedDate,\n [OnboardingSteps.CreditScore]: !!user.credit_score || !!creditScore,\n }\n\n return isValid[currentStep.step]\n }, [creditScore, currentStep, selectedDate, transactionGuid, user])\n\n const hasAccounts = accounts.length > 0\n const progressValue = React.useMemo(() => {\n const { step } = currentStep\n\n let value = 0\n\n if (step >= OnboardingSteps.MonthlyIncome && hasAccounts) value++\n if (step >= OnboardingSteps.Birthday && !!incomeTransactions.length) value++\n if (step >= OnboardingSteps.CreditScore && (user.birthday || user.credit_score)) value++\n\n return value\n }, [currentStep.step, hasAccounts, incomeTransactions.length, user.birthday, user.credit_score])\n\n const handleSelectTransaction = (searchValue: string) => {\n setFilter({\n ...filter,\n custom: (transaction: Transaction) => {\n if (searchValue) return incomeFilterSearch(transaction, searchValue)\n\n return incomeFilter(transaction)\n },\n })\n }\n\n const steps: Partial<Record<OnboardingSteps, Steps>> = {\n [OnboardingSteps.ConnectAccounts]: {\n main: hasAccounts ? <AccountsListCompact shouldShowBalance={false} /> : null,\n mainActionContent: hasAccounts ? copy.onboarding_next : copy.onboarding_add_accounts,\n primaryText: copy.connect_your_accounts,\n secondaryText: copy.onboarding_connect_your_accounts_secondary,\n },\n [OnboardingSteps.MonthlyIncome]: {\n detail: (\n <OnboardingAddMonthlyIncome\n firstDay={firstDay}\n frequency={frequency}\n incomeTransactions={incomeTransactions}\n secondDay={secondDay}\n setCurrentStep={(step) => {\n setCurrentStep(step)\n setIncomeTransactions((prev) => {\n const exists = prev.some((t) => t.guid === transactionGuid)\n if (exists) return prev.filter((t) => t.guid !== transactionGuid)\n\n const newTransaction = transactions.find((t) => t.guid === transactionGuid)\n return newTransaction\n ? [...prev, { ...newTransaction, firstDay, frequency, secondDay }]\n : prev\n })\n }}\n setFirstDay={setFirstDay}\n setFrequency={setFrequency}\n setSecondDay={setSecondDay}\n transaction={transaction!}\n />\n ),\n detailActionContent: copy.onboarding_confirm_income,\n main: (\n <SelectTransaction\n onSearch={handleSelectTransaction}\n onSelected={(guid) => {\n setCurrentStep({ step: OnboardingSteps.MonthlyIncome, type: 'detail' })\n setTransactionGuid(guid)\n }}\n />\n ),\n mainActionContent: copy.onboarding_confirm_income,\n primaryText: copy.onboarding_add_income_primary,\n secondaryText: copy.onboarding_add_income_secondary,\n },\n [OnboardingSteps.Birthday]: {\n main: <OnboardingBirthday selectedDate={selectedDate} setSelectedDate={setSelectedDate} />,\n mainActionContent: copy.onboarding_next,\n primaryText: copy.onboarding_birthday_primary,\n secondaryText: copy.onboarding_birthday_secondary,\n },\n [OnboardingSteps.CreditScore]: {\n main: <OnboardingCreditScore creditScore={creditScore} setCreditScore={setCreditScore} />,\n mainActionContent: copy.onboarding_next,\n primaryText: copy.onboarding_credit_score_primary,\n secondaryText: copy.onboarding_credit_score_secondary,\n },\n }\n\n const handleClose = () => {\n setCurrentStep(INITIAL_STEP_STATE)\n setIsComplete(false)\n setTransactionGuid('')\n\n onClose()\n }\n\n const handleComplete = async () => {\n setIsComplete(true)\n\n await addRecurringIncome(incomeTransactions)\n await calculateHealthScore()\n await updateUserProfile({ ...userProfile, has_completed_finstrong_onboarding: true })\n\n handleClose()\n }\n\n const handleDoItLater = () => {\n if (currentStep.step === OnboardingSteps.CreditScore) {\n handleComplete()\n return\n }\n\n setCurrentStep({ step: currentStep.step + 1, type: 'main' })\n }\n\n const handlePrimaryAction = () => {\n const { step } = currentStep\n const nextStep = step + 1\n\n switch (step) {\n case OnboardingSteps.Birthday:\n if (selectedDate && selectedDate !== user.birthday) {\n updateUser({ ...user, birthday: selectedDate })\n }\n break\n\n case OnboardingSteps.CreditScore:\n if (creditScore && creditScore !== user.credit_score) {\n updateUser({ ...user, credit_score: creditScore })\n }\n handleComplete()\n return\n\n case OnboardingSteps.MonthlyIncome:\n if (\n transactionGuid &&\n incomeTransactions.findIndex(({ guid }) => guid === transactionGuid) === -1\n ) {\n setIncomeTransactions((prev) => [\n ...prev,\n { ...transaction!, firstDay, frequency, secondDay },\n ])\n }\n break\n\n case OnboardingSteps.ConnectAccounts:\n if (!hasAccounts) {\n setIsConnectDrawerOpen(true)\n return\n }\n break\n\n default:\n break\n }\n\n if (nextStep in OnboardingSteps) setCurrentStep({ step: nextStep, type: 'main' })\n }\n\n const handleSecondaryAction = () => {\n const { step, type } = currentStep\n\n if (type === 'detail') {\n setCurrentStep({ step, type: 'main' })\n return\n }\n\n if (step === OnboardingSteps.Birthday && incomeTransactions.length) {\n setCurrentStep({ step: step - 1, type: 'detail' })\n return\n }\n\n if (step > OnboardingSteps.ConnectAccounts) setCurrentStep({ step: step - 1, type: 'main' })\n }\n\n const addRecurringIncome = async (transactions: IncomeTransaction[]) => {\n for (const t of transactions) {\n const {\n account_guid,\n amount,\n date,\n description,\n feed_description,\n firstDay,\n frequency,\n secondDay,\n merchant_guid,\n payee,\n transaction_type,\n } = t\n\n const nextDate = getNextPaymentDate(frequency, fromUnixTime(date))\n\n const repeatingTransaction = {\n account_guid,\n amount,\n created_by: 0,\n description: payee || description || feed_description,\n merchant_guid,\n predicted_occurs_on: formatISO(nextDate, { representation: 'date' }),\n recurrence_day: firstDay,\n recurrence_type: frequency,\n repeating_transaction_type: RepeatingType.Income,\n second_recurrence_day: secondDay,\n transaction_type,\n user_guid: user.guid,\n } as RepeatingTransaction\n\n await addRepeatingTransaction(repeatingTransaction, t)\n }\n }\n\n const currentStepData = steps[currentStep.step]\n const isConnectAccountsStep = currentStep.step === OnboardingSteps.ConnectAccounts\n const primaryButtonProps = {\n fullWidth: true,\n ...(isConnectAccountsStep && !hasAccounts && { startIcon: <Add /> }),\n }\n const showDoItLaterButton = !isConnectAccountsStep || (isConnectAccountsStep && !hasAccounts)\n\n return (\n <React.Fragment>\n <Drawer\n footerStyles={{ borderTop: 1, borderColor: 'divider', px: 24, py: 16 }}\n hasSecondaryAction={!isConnectAccountsStep}\n isOpen={isOpen}\n isPrimaryDisabled={!isPrimaryActionEnabled}\n onClose={handleClose}\n onSecondaryAction={handleSecondaryAction}\n primaryButtonProps={primaryButtonProps}\n primaryText={currentStepData?.mainActionContent}\n secondaryColor=\"primary\"\n secondaryText={copy.onboarding_back}\n title={copy.title}\n {...(!isComplete && { onPrimaryAction: handlePrimaryAction })}\n >\n <Stack sx={{ bgcolor: 'background.default', height: '100%' }}>\n {isComplete && (\n <Stack sx={{ alignItems: 'center', gap: 24, position: 'relative', px: 16, top: 126 }}>\n <img alt=\"\" src={CALCULATING_ANIMATION_URL} style={{ minHeight: 100, width: 211 }} />\n <H2>{copy.onboarding_calculate_primary}</H2>\n <P sx={{ textAlign: 'center' }} variant=\"subtitle1\">\n {copy.onboarding_calculate_secondary}\n </P>\n </Stack>\n )}\n {currentStepData && !isComplete && (\n <React.Fragment>\n <OnboardingStepsHeader\n completeCopy={copy.complete}\n primaryText={currentStepData.primaryText}\n secondaryText={currentStepData.secondaryText}\n value={progressValue}\n />\n {currentStep.type === 'main' && (\n <Box sx={{ bgcolor: 'background.default' }}>\n {currentStepData.main}\n {showDoItLaterButton && (\n <Stack sx={{ alignItems: 'center', px: 24, py: 12 }}>\n <Button fullWidth={true} onClick={handleDoItLater}>\n {copy.onboarding_do_it_later}\n </Button>\n </Stack>\n )}\n </Box>\n )}\n {currentStep.type === 'detail' && currentStepData.detail}\n </React.Fragment>\n )}\n </Stack>\n </Drawer>\n\n <ConnectDrawer\n onClose={() => setIsConnectDrawerOpen(false)}\n showConnectWidget={isConnectDrawerOpen}\n title={copy.connect_more_accounts_button}\n />\n </React.Fragment>\n )\n}\n\nexport default observer(OnboardingStepsDrawer)\n"],"mappings":"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"}
1
+ {"version":3,"file":"OnboardingStepsDrawer.es.js","names":[],"sources":["../../../../src/finstrong/components/onboarding/OnboardingStepsDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { formatISO } from 'date-fns/formatISO'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { subDays } from 'date-fns/subDays'\n\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\n\nimport { H2, P } from '@mxenabled/mxui'\nimport { Add } from '@mxenabled/mx-icons'\n\nimport AccountsListCompact from '../../../accounts/components/AccountsListCompact'\nimport {\n ConnectDrawer,\n Drawer,\n useAccountStore,\n useFinstrongStore,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n useRepeatingTransactionEligibility,\n useTransactionStore,\n useUserStore,\n} from '../../../common'\nimport {\n Frequency,\n type RepeatingTransaction,\n RepeatingType,\n type Transaction,\n} from '../../../core'\nimport { OnboardingSteps } from '../../../core/types/Finstrong'\nimport { SelectTransaction } from '../../../recurringtransactions'\nimport { getNextPaymentDate } from '../../../core/utils/RecurringTransactionsUtil'\nimport { incomeFilter, incomeFilterSearch } from '../../../transactions/utils/Filters'\n\nimport { CALCULATING_ANIMATION_URL } from '../../constants'\n\nimport OnboardingAddMonthlyIncome from './OnboardingAddMonthlyIncome'\nimport OnboardingBirthday from './OnboardingBirthday'\nimport OnboardingCreditScore from './OnboardingCreditScore'\nimport OnboardingStepsHeader from './OnboardingStepsHeader'\n\ninterface IncomeTransaction extends Transaction {\n firstDay: number\n frequency: Frequency\n secondDay: number\n}\n\ninterface OnboardingStepsDrawerProps {\n isOpen: boolean\n onClose: () => void\n}\n\ninterface Steps {\n detail?: React.ReactNode\n detailActionContent?: string\n main: React.ReactNode\n mainActionContent: string\n primaryText: string\n secondaryText: string\n}\n\ntype StepType = 'main' | 'detail'\nexport interface StepState {\n step: OnboardingSteps\n type: StepType\n}\n\nconst INITIAL_STEP_STATE: StepState = {\n step: OnboardingSteps.ConnectAccounts,\n type: 'main',\n}\n\nconst OnboardingStepsDrawer = ({ isOpen, onClose }: OnboardingStepsDrawerProps) => {\n const { visibleAccounts: accounts } = useAccountStore()\n const { calculateHealthScore } = useFinstrongStore()\n const { finstrong: copy } = useGlobalCopyStore()\n const { addRepeatingTransaction, setDateRange } = useRecurringTransactionsStore()\n const { filter, setFilter, transactions } = useTransactionStore()\n const { user, userProfile, updateUser, updateUserProfile } = useUserStore()\n const eligibilityFilter = useRepeatingTransactionEligibility()\n\n const [creditScore, setCreditScore] = React.useState<number>(user.credit_score || 0)\n const [currentStep, setCurrentStep] = React.useState<{ step: OnboardingSteps; type: StepType }>(\n INITIAL_STEP_STATE,\n )\n const [firstDay, setFirstDay] = React.useState(1)\n const [frequency, setFrequency] = React.useState(Frequency.EveryMonth)\n const [incomeTransactions, setIncomeTransactions] = React.useState<IncomeTransaction[]>([])\n const [isComplete, setIsComplete] = React.useState(false)\n const [isConnectDrawerOpen, setIsConnectDrawerOpen] = React.useState(false)\n const [selectedDate, setSelectedDate] = React.useState<number | null | undefined>(user.birthday)\n const [secondDay, setSecondDay] = React.useState(15)\n const [transactionGuid, setTransactionGuid] = React.useState('')\n\n React.useEffect(() => {\n setDateRange({ start: startOfMonth(startOfToday()), end: endOfMonth(startOfToday()) })\n }, [])\n\n React.useEffect(() => {\n setFilter({\n accounts: accounts.map((account) => account.guid),\n dateRange: {\n start: subDays(new Date(), 90),\n end: new Date(),\n },\n custom: incomeFilter,\n })\n }, [accounts])\n\n const transaction = React.useMemo(\n () => transactions.find((t) => t.guid === transactionGuid),\n [transactionGuid, transactions],\n )\n\n const isPrimaryActionEnabled = React.useMemo(() => {\n const isValid: Partial<Record<OnboardingSteps, boolean>> = {\n [OnboardingSteps.ConnectAccounts]: true,\n [OnboardingSteps.MonthlyIncome]: !!transactionGuid,\n [OnboardingSteps.Birthday]: !!user.birthday || !!selectedDate,\n [OnboardingSteps.CreditScore]: !!user.credit_score || !!creditScore,\n }\n\n return isValid[currentStep.step]\n }, [creditScore, currentStep, selectedDate, transactionGuid, user])\n\n const hasAccounts = accounts.length > 0\n const progressValue = React.useMemo(() => {\n const { step } = currentStep\n\n let value = 0\n\n if (step >= OnboardingSteps.MonthlyIncome && hasAccounts) value++\n if (step >= OnboardingSteps.Birthday && !!incomeTransactions.length) value++\n if (step >= OnboardingSteps.CreditScore && (user.birthday || user.credit_score)) value++\n\n return value\n }, [currentStep.step, hasAccounts, incomeTransactions.length, user.birthday, user.credit_score])\n\n const handleSelectTransaction = (searchValue: string) => {\n setFilter({\n ...filter,\n custom: (transaction: Transaction) => {\n if (searchValue) return incomeFilterSearch(transaction, searchValue)\n\n return incomeFilter(transaction)\n },\n })\n }\n\n const steps: Partial<Record<OnboardingSteps, Steps>> = {\n [OnboardingSteps.ConnectAccounts]: {\n main: hasAccounts ? <AccountsListCompact shouldShowBalance={false} /> : null,\n mainActionContent: hasAccounts ? copy.onboarding_next : copy.onboarding_add_accounts,\n primaryText: copy.connect_your_accounts,\n secondaryText: copy.onboarding_connect_your_accounts_secondary,\n },\n [OnboardingSteps.MonthlyIncome]: {\n detail: (\n <OnboardingAddMonthlyIncome\n firstDay={firstDay}\n frequency={frequency}\n incomeTransactions={incomeTransactions}\n secondDay={secondDay}\n setCurrentStep={(step) => {\n setCurrentStep(step)\n setIncomeTransactions((prev) => {\n const exists = prev.some((t) => t.guid === transactionGuid)\n if (exists) return prev.filter((t) => t.guid !== transactionGuid)\n\n const newTransaction = transactions.find((t) => t.guid === transactionGuid)\n return newTransaction\n ? [...prev, { ...newTransaction, firstDay, frequency, secondDay }]\n : prev\n })\n }}\n setFirstDay={setFirstDay}\n setFrequency={setFrequency}\n setSecondDay={setSecondDay}\n transaction={transaction!}\n />\n ),\n detailActionContent: copy.onboarding_confirm_income,\n main: (\n <SelectTransaction\n eligibilityFilter={eligibilityFilter}\n onSearch={handleSelectTransaction}\n onSelected={(guid) => {\n setCurrentStep({ step: OnboardingSteps.MonthlyIncome, type: 'detail' })\n setTransactionGuid(guid)\n }}\n />\n ),\n mainActionContent: copy.onboarding_confirm_income,\n primaryText: copy.onboarding_add_income_primary,\n secondaryText: copy.onboarding_add_income_secondary,\n },\n [OnboardingSteps.Birthday]: {\n main: <OnboardingBirthday selectedDate={selectedDate} setSelectedDate={setSelectedDate} />,\n mainActionContent: copy.onboarding_next,\n primaryText: copy.onboarding_birthday_primary,\n secondaryText: copy.onboarding_birthday_secondary,\n },\n [OnboardingSteps.CreditScore]: {\n main: <OnboardingCreditScore creditScore={creditScore} setCreditScore={setCreditScore} />,\n mainActionContent: copy.onboarding_next,\n primaryText: copy.onboarding_credit_score_primary,\n secondaryText: copy.onboarding_credit_score_secondary,\n },\n }\n\n const handleClose = () => {\n setCurrentStep(INITIAL_STEP_STATE)\n setIsComplete(false)\n setTransactionGuid('')\n\n onClose()\n }\n\n const handleComplete = async () => {\n setIsComplete(true)\n\n await addRecurringIncome(incomeTransactions)\n await calculateHealthScore()\n await updateUserProfile({ ...userProfile, has_completed_finstrong_onboarding: true })\n\n handleClose()\n }\n\n const handleDoItLater = () => {\n if (currentStep.step === OnboardingSteps.CreditScore) {\n handleComplete()\n return\n }\n\n setCurrentStep({ step: currentStep.step + 1, type: 'main' })\n }\n\n const handlePrimaryAction = () => {\n const { step } = currentStep\n const nextStep = step + 1\n\n switch (step) {\n case OnboardingSteps.Birthday:\n if (selectedDate && selectedDate !== user.birthday) {\n updateUser({ ...user, birthday: selectedDate })\n }\n break\n\n case OnboardingSteps.CreditScore:\n if (creditScore && creditScore !== user.credit_score) {\n updateUser({ ...user, credit_score: creditScore })\n }\n handleComplete()\n return\n\n case OnboardingSteps.MonthlyIncome:\n if (\n transactionGuid &&\n incomeTransactions.findIndex(({ guid }) => guid === transactionGuid) === -1\n ) {\n setIncomeTransactions((prev) => [\n ...prev,\n { ...transaction!, firstDay, frequency, secondDay },\n ])\n }\n break\n\n case OnboardingSteps.ConnectAccounts:\n if (!hasAccounts) {\n setIsConnectDrawerOpen(true)\n return\n }\n break\n\n default:\n break\n }\n\n if (nextStep in OnboardingSteps) setCurrentStep({ step: nextStep, type: 'main' })\n }\n\n const handleSecondaryAction = () => {\n const { step, type } = currentStep\n\n if (type === 'detail') {\n setCurrentStep({ step, type: 'main' })\n return\n }\n\n if (step === OnboardingSteps.Birthday && incomeTransactions.length) {\n setCurrentStep({ step: step - 1, type: 'detail' })\n return\n }\n\n if (step > OnboardingSteps.ConnectAccounts) setCurrentStep({ step: step - 1, type: 'main' })\n }\n\n const addRecurringIncome = async (transactions: IncomeTransaction[]) => {\n for (const t of transactions) {\n const {\n account_guid,\n amount,\n date,\n description,\n feed_description,\n firstDay,\n frequency,\n secondDay,\n merchant_guid,\n payee,\n transaction_type,\n } = t\n\n const nextDate = getNextPaymentDate(frequency, fromUnixTime(date))\n\n const repeatingTransaction = {\n account_guid,\n amount,\n created_by: 0,\n description: payee || description || feed_description,\n merchant_guid,\n predicted_occurs_on: formatISO(nextDate, { representation: 'date' }),\n recurrence_day: firstDay,\n recurrence_type: frequency,\n repeating_transaction_type: RepeatingType.Income,\n second_recurrence_day: secondDay,\n transaction_type,\n user_guid: user.guid,\n } as RepeatingTransaction\n\n await addRepeatingTransaction(repeatingTransaction, t)\n }\n }\n\n const currentStepData = steps[currentStep.step]\n const isConnectAccountsStep = currentStep.step === OnboardingSteps.ConnectAccounts\n const primaryButtonProps = {\n fullWidth: true,\n ...(isConnectAccountsStep && !hasAccounts && { startIcon: <Add /> }),\n }\n const showDoItLaterButton = !isConnectAccountsStep || (isConnectAccountsStep && !hasAccounts)\n\n return (\n <React.Fragment>\n <Drawer\n footerStyles={{ borderTop: 1, borderColor: 'divider', px: 24, py: 16 }}\n hasSecondaryAction={!isConnectAccountsStep}\n isOpen={isOpen}\n isPrimaryDisabled={!isPrimaryActionEnabled}\n onClose={handleClose}\n onSecondaryAction={handleSecondaryAction}\n primaryButtonProps={primaryButtonProps}\n primaryText={currentStepData?.mainActionContent}\n secondaryColor=\"primary\"\n secondaryText={copy.onboarding_back}\n title={copy.title}\n {...(!isComplete && { onPrimaryAction: handlePrimaryAction })}\n >\n <Stack sx={{ bgcolor: 'background.default', height: '100%' }}>\n {isComplete && (\n <Stack sx={{ alignItems: 'center', gap: 24, position: 'relative', px: 16, top: 126 }}>\n <img alt=\"\" src={CALCULATING_ANIMATION_URL} style={{ minHeight: 100, width: 211 }} />\n <H2>{copy.onboarding_calculate_primary}</H2>\n <P sx={{ textAlign: 'center' }} variant=\"subtitle1\">\n {copy.onboarding_calculate_secondary}\n </P>\n </Stack>\n )}\n {currentStepData && !isComplete && (\n <React.Fragment>\n <OnboardingStepsHeader\n completeCopy={copy.complete}\n primaryText={currentStepData.primaryText}\n secondaryText={currentStepData.secondaryText}\n value={progressValue}\n />\n {currentStep.type === 'main' && (\n <Box sx={{ bgcolor: 'background.default' }}>\n {currentStepData.main}\n {showDoItLaterButton && (\n <Stack sx={{ alignItems: 'center', px: 24, py: 12 }}>\n <Button fullWidth={true} onClick={handleDoItLater}>\n {copy.onboarding_do_it_later}\n </Button>\n </Stack>\n )}\n </Box>\n )}\n {currentStep.type === 'detail' && currentStepData.detail}\n </React.Fragment>\n )}\n </Stack>\n </Drawer>\n\n <ConnectDrawer\n onClose={() => setIsConnectDrawerOpen(false)}\n showConnectWidget={isConnectDrawerOpen}\n title={copy.connect_more_accounts_button}\n />\n </React.Fragment>\n )\n}\n\nexport default observer(OnboardingStepsDrawer)\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import I from "../../../common/utils/AccountDisplayName.es.js";
2
2
  import { useAppConfig as D, useGlobalCopyStore as h, useGlobalUiStore as $ } from "../../../common/context/hooks.es.js";
3
- import B from "../../../common/components/drawer/Drawer.es.js";
4
- import { formatCurrency as L } from "../../../core/utils/NumberFormatting.es.js";
3
+ import { formatCurrency as B } from "../../../core/utils/NumberFormatting.es.js";
4
+ import L from "../../../common/components/drawer/Drawer.es.js";
5
5
  import k from "../../../common/components/ConnectDrawer.es.js";
6
6
  import { getAccountBalanceDetails as O } from "../../../accounts/utils/AccountFields.es.js";
7
7
  import S from "../../../accounts/components/AccountsListCompact.es.js";
@@ -46,7 +46,7 @@ var W = ({ loadAccounts: i, loadMoreLabel: y }) => {
46
46
  /* @__PURE__ */ t(M, {
47
47
  bold: !0,
48
48
  variant: "body2",
49
- children: L(w(e), "0,0.00")
49
+ children: B(w(e), "0,0.00")
50
50
  })
51
51
  ]
52
52
  }), c < f.length - 1 && /* @__PURE__ */ t(j, { variant: "inset" })] }, e.guid))
@@ -69,7 +69,7 @@ var W = ({ loadAccounts: i, loadMoreLabel: y }) => {
69
69
  y
70
70
  ]
71
71
  })
72
- }) }), /* @__PURE__ */ t(B, {
72
+ }) }), /* @__PURE__ */ t(L, {
73
73
  isOpen: C,
74
74
  onClose: () => p(!1),
75
75
  title: l.accounts,
@@ -1,7 +1,7 @@
1
1
  import { useCategoryStore as T, useGlobalCopyStore as A } from "../../../common/context/hooks.es.js";
2
- import $ from "../../../common/components/drawer/Drawer.es.js";
2
+ import { fromUnixToDayOfWeekAndDate as $ } from "../../../core/utils/DateUtil.es.js";
3
3
  import { formatCurrency as j } from "../../../core/utils/NumberFormatting.es.js";
4
- import { fromUnixToDayOfWeekAndDate as z } from "../../../core/utils/DateUtil.es.js";
4
+ import z from "../../../common/components/drawer/Drawer.es.js";
5
5
  import B from "../../../common/components/ConnectDrawer.es.js";
6
6
  import G from "../../../transactions/components/shared/TransactionList.es.js";
7
7
  import _ from "react";
@@ -12,7 +12,7 @@ import { ChevronRight as R } from "@mxenabled/mx-icons";
12
12
  import { Fragment as y, jsx as e, jsxs as o } from "react/jsx-runtime";
13
13
  import { useTheme as F } from "@mui/material/styles";
14
14
  import d from "@mui/material/Box";
15
- var Z = ({ transactions: r = [], amountColor: x = "success.main", amountPosition: v = "center", formatDate: C = z, secondaryIcon: s }) => {
15
+ var Z = ({ transactions: r = [], amountColor: x = "success.main", amountPosition: v = "center", formatDate: C = $, secondaryIcon: s }) => {
16
16
  const m = F(), { connect: w, finstrong: l, categories: k } = A(), [D, p] = _.useState(!1), [S, g] = _.useState(!1), { getCategoryName: I } = T(), i = 3, h = r.length > i, O = r.length - i;
17
17
  let u = r;
18
18
  return h && (u = r.map((t) => ({
@@ -114,7 +114,7 @@ var Z = ({ transactions: r = [], amountColor: x = "success.main", amountPosition
114
114
  l.key_indicators_borrow.have_manageable_debt_drawer.have_manageable_debt_more_transactions
115
115
  ]
116
116
  })
117
- }) }), /* @__PURE__ */ e($, {
117
+ }) }), /* @__PURE__ */ e(z, {
118
118
  isOpen: D,
119
119
  onClose: () => p(!1),
120
120
  title: l.key_indicators_borrow.have_manageable_debt_drawer.have_manageable_debt_transactions,
@@ -1,11 +1,11 @@
1
1
  import { buildDynamicCopy as p } from "../core/utils/Localization.es.js";
2
2
  import { useAccountStore as P, useEvent as U, useGlobalCopyStore as Y, useGlobalUiStore as $, useGoalStore as q } from "../common/context/hooks.es.js";
3
3
  import { useScreenSize as H } from "../common/hooks/useScreenSize.es.js";
4
+ import { TrackType as o } from "../core/types/Goal.es.js";
5
+ import { formatCurrency as T } from "../core/utils/NumberFormatting.es.js";
4
6
  import { useWidgetLoadTimer as J } from "../common/hooks/useWidgetLoadTimer.es.js";
5
7
  import Q from "../common/components/drawer/Drawer.es.js";
6
- import { ANALYTICS_EVENTS as T } from "../common/constants/Analytics.es.js";
7
- import { TrackType as o } from "../core/types/Goal.es.js";
8
- import { formatCurrency as C } from "../core/utils/NumberFormatting.es.js";
8
+ import { ANALYTICS_EVENTS as C } from "../common/constants/Analytics.es.js";
9
9
  import X from "../common/components/Loader.es.js";
10
10
  import { WidgetContainer as Z } from "../common/components/WidgetContainer.es.js";
11
11
  import { EmptyState as tt } from "../common/components/EmptyState.es.js";
@@ -27,14 +27,14 @@ var xt = at(({ onBackClick: E, onMenuClick: L, sx: D }) => {
27
27
  widgetName: "GoalsWidget",
28
28
  isLoaded: s
29
29
  }), i.useEffect(() => {
30
- v || R().finally(), b(T.GOALS_VIEW);
30
+ v || R().finally(), b(C.GOALS_VIEW);
31
31
  }, []), i.useEffect(() => {
32
32
  _ && K().finally();
33
33
  }, [_]);
34
34
  const B = () => {
35
- b(T.GOALS_CLICK_FILTER);
35
+ b(C.GOALS_CLICK_FILTER);
36
36
  }, a = () => {
37
- u(!0), b(T.GOALS_CLICK_ADD);
37
+ u(!0), b(C.GOALS_CLICK_ADD);
38
38
  }, y = (d) => {
39
39
  u(!1), d === o.SAVINGS_TRACK ? m(0) : d === o.DEBT_TRACK ? m(1) : d === o.RETIREMENT_TRACK && m(2);
40
40
  }, l = i.useMemo(() => s && k.length === 0, [
@@ -43,7 +43,7 @@ var xt = at(({ onBackClick: E, onMenuClick: L, sx: D }) => {
43
43
  N
44
44
  ]);
45
45
  if (!_ || !s) return /* @__PURE__ */ t(X, {});
46
- const M = p(r ? e.tab_subtitle_mobile : e.tab_subtitle, C(F, "0,0")), V = p(r ? e.tab_subtitle_mobile : e.tab_subtitle, C(O, "0,0")), j = p(r ? e.tab_subtitle_mobile : e.tab_subtitle, C(W, "0,0"));
46
+ const M = p(r ? e.tab_subtitle_mobile : e.tab_subtitle, T(F, "0,0")), V = p(r ? e.tab_subtitle_mobile : e.tab_subtitle, T(O, "0,0")), j = p(r ? e.tab_subtitle_mobile : e.tab_subtitle, T(W, "0,0"));
47
47
  return /* @__PURE__ */ c(Z, {
48
48
  actions: [{
49
49
  iconName: "add",
@@ -1,7 +1,7 @@
1
1
  import x from "../../common/utils/AccountDisplayName.es.js";
2
2
  import { useAppConfig as y, useGlobalCopyStore as b } from "../../common/context/hooks.es.js";
3
- import k from "../../common/components/drawer/Drawer.es.js";
4
- import { formatCurrency as w } from "../../core/utils/NumberFormatting.es.js";
3
+ import { formatCurrency as k } from "../../core/utils/NumberFormatting.es.js";
4
+ import w from "../../common/components/drawer/Drawer.es.js";
5
5
  import { ConnectCard as A } from "../../common/components/ConnectCard.es.js";
6
6
  import l from "react";
7
7
  import { InstitutionLogo as L } from "@mxenabled/mxui";
@@ -18,7 +18,7 @@ var O = ({ accounts: s, isOpen: d, onClose: p, onSave: f, title: u }) => {
18
18
  const r = e.findIndex((C) => C.guid === t.guid), i = [...e];
19
19
  r >= 0 ? i.splice(r, 1) : i.push(t), h(i);
20
20
  };
21
- return /* @__PURE__ */ n(k, {
21
+ return /* @__PURE__ */ n(w, {
22
22
  ariaLabelClose: g.close_aria,
23
23
  isOpen: d,
24
24
  onClose: p,
@@ -35,7 +35,7 @@ var O = ({ accounts: s, isOpen: d, onClose: p, onSave: f, title: u }) => {
35
35
  }) }),
36
36
  /* @__PURE__ */ o(B, {
37
37
  primary: x(t, { allowNickname: c?.show_account_nicknames_in_master }),
38
- secondary: w(t.balance || 0, "0,0.00")
38
+ secondary: k(t.balance || 0, "0,0.00")
39
39
  }),
40
40
  /* @__PURE__ */ o(I, { checked: e.some((i) => i.guid === t.guid) })
41
41
  ]
@@ -1,6 +1,6 @@
1
+ import { AccountType as i } from "../../core/types/Account.es.js";
1
2
  import E from "../../common/utils/AccountDisplayName.es.js";
2
3
  import { useAccountStore as D, useAppConfig as S, useGlobalCopyStore as b, useGoalStore as k } from "../../common/context/hooks.es.js";
3
- import { AccountType as i } from "../../core/types/Account.es.js";
4
4
  import { GoalType as l, MetaType as n, TrackType as r } from "../../core/types/Goal.es.js";
5
5
  import { getGoalTypes as G } from "../../core/utils/GoalsUtil.es.js";
6
6
  import { AddGoalListItem as O } from "./addgoal/AddGoalListItem.es.js";