@mx-cartographer/experiences 7.2.19 → 7.2.21
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.
- package/CHANGELOG.md +8 -0
- package/dist/{AccountDetailsContent-CsH1w_GZ.mjs → AccountDetailsContent-BkH9Yyot.mjs} +1 -1
- package/dist/{AccountDetailsHeader-Df1JkzYi.mjs → AccountDetailsHeader-vPzGb1RZ.mjs} +1 -1
- package/dist/{LineChart-D4GI7nVh.mjs → LineChart-4Zi8Z8PR.mjs} +1 -1
- package/dist/accounts/index.es.js +3 -3
- package/dist/common/index.es.js +1 -1
- package/dist/debts/index.es.js +282 -276
- package/dist/finstrong/index.es.js +1 -1
- package/dist/goals/index.es.js +2 -2
- package/dist/networth/index.es.js +1 -1
- package/dist/trends/index.es.js +1 -1
- package/package.json +1 -1
package/dist/debts/index.es.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { jsx as e, jsxs as s, Fragment as
|
|
1
|
+
import { jsx as e, jsxs as s, Fragment as H } from "react/jsx-runtime";
|
|
2
2
|
import g from "react";
|
|
3
3
|
import { observer as D } from "mobx-react-lite";
|
|
4
4
|
import w from "@mui/material/Stack";
|
|
5
|
-
import { useTheme as X, Card as _e, Stack as
|
|
5
|
+
import { useTheme as X, Card as _e, Stack as _, Box as W } from "@mui/material";
|
|
6
6
|
import { Text as l, H3 as De, InstitutionLogo as Te, Icon as te } from "@mxenabled/mxui";
|
|
7
7
|
import { intervalToDuration as Ae, formatDuration as Ee } from "date-fns";
|
|
8
8
|
import { addMonths as se } from "date-fns/addMonths";
|
|
9
9
|
import { fromUnixTime as ce } from "date-fns/fromUnixTime";
|
|
10
10
|
import { getUnixTime as de } from "date-fns/getUnixTime";
|
|
11
|
-
import { D as
|
|
11
|
+
import { D as P, M as Ie, I as Be } from "../DebtsStore-BD_XwsI7.mjs";
|
|
12
12
|
import { a as Lr } from "../DebtsStore-BD_XwsI7.mjs";
|
|
13
|
-
import { f as
|
|
13
|
+
import { f as k, a as Me } from "../NumberFormatting-Buh7u8Oi.mjs";
|
|
14
14
|
import { f as U, D as q } from "../Dialog-CWW597AF.mjs";
|
|
15
|
-
import { G as Pe, y as Z, u as
|
|
15
|
+
import { G as Pe, y as Z, u as S, l as V, g as F, d as J, n as ke, b as Ne } from "../hooks-D6XlXHf4.mjs";
|
|
16
16
|
import { u as Y } from "../useScreenSize-B6JyS_Lj.mjs";
|
|
17
17
|
import { D as re } from "../Drawer-kEE73B87.mjs";
|
|
18
|
-
import { b as
|
|
19
|
-
import { A as Fe, u as Re } from "../AccountDetailsHeader-
|
|
18
|
+
import { b as I } from "../Localization-2MODESHW.mjs";
|
|
19
|
+
import { A as Fe, u as Re } from "../AccountDetailsHeader-vPzGb1RZ.mjs";
|
|
20
20
|
import Le from "@mui/material/Card";
|
|
21
21
|
import $e from "@mui/material/CardContent";
|
|
22
22
|
import He from "@mui/material/CardHeader";
|
|
@@ -54,18 +54,18 @@ const tt = (a, n = 0, r = 0) => {
|
|
|
54
54
|
}, rt = (a, n, r, t, o) => {
|
|
55
55
|
const i = [];
|
|
56
56
|
if (r === 0) {
|
|
57
|
-
for (let
|
|
58
|
-
const
|
|
57
|
+
for (let c = 0; c < a; c++) {
|
|
58
|
+
const d = n - t * (c + 1), m = n - t * c, u = d >= 0 ? t : m;
|
|
59
59
|
i.push({
|
|
60
|
-
balance:
|
|
60
|
+
balance: d >= 0 ? d : 0,
|
|
61
61
|
interest: r,
|
|
62
|
-
payment:
|
|
63
|
-
principal:
|
|
62
|
+
payment: u,
|
|
63
|
+
principal: u,
|
|
64
64
|
timestamp: de(
|
|
65
65
|
se(
|
|
66
66
|
ce(o),
|
|
67
67
|
// convert seconds → Date
|
|
68
|
-
|
|
68
|
+
c + 1
|
|
69
69
|
// add (index + 1) months
|
|
70
70
|
)
|
|
71
71
|
)
|
|
@@ -74,14 +74,14 @@ const tt = (a, n = 0, r = 0) => {
|
|
|
74
74
|
return i;
|
|
75
75
|
}
|
|
76
76
|
const p = r / 1200;
|
|
77
|
-
for (let
|
|
78
|
-
const
|
|
77
|
+
for (let c = 0; c < a; c++) {
|
|
78
|
+
const d = de(se(ce(o), c + 1)), m = Math.pow(1 + p, c), u = n * m - t * ((m - 1) / p), x = Math.pow(1 + p, c + 1), h = n * x - t * ((x - 1) / p), v = t + Math.min(h, 0), B = u * p;
|
|
79
79
|
i.push({
|
|
80
80
|
balance: Math.max(0, h),
|
|
81
|
-
interest:
|
|
81
|
+
interest: B,
|
|
82
82
|
payment: v,
|
|
83
|
-
principal: v -
|
|
84
|
-
timestamp:
|
|
83
|
+
principal: v - B,
|
|
84
|
+
timestamp: d
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
return i;
|
|
@@ -92,10 +92,10 @@ const tt = (a, n = 0, r = 0) => {
|
|
|
92
92
|
r ?? 0,
|
|
93
93
|
n ?? 0,
|
|
94
94
|
o
|
|
95
|
-
),
|
|
95
|
+
), c = at(p);
|
|
96
96
|
return {
|
|
97
97
|
...a,
|
|
98
|
-
minimumFinalPayment:
|
|
98
|
+
minimumFinalPayment: c,
|
|
99
99
|
minimumPayments: p
|
|
100
100
|
};
|
|
101
101
|
}, ge = (a, n) => {
|
|
@@ -104,16 +104,16 @@ const tt = (a, n = 0, r = 0) => {
|
|
|
104
104
|
[[], []]
|
|
105
105
|
);
|
|
106
106
|
switch (n) {
|
|
107
|
-
case
|
|
107
|
+
case P.FASTEST_PAYOFF_FIRST:
|
|
108
108
|
r.sort((o, i) => (o.minimumFinalPayment ?? 0) - (i.minimumFinalPayment ?? 0));
|
|
109
109
|
break;
|
|
110
|
-
case
|
|
110
|
+
case P.HIGHEST_INTEREST:
|
|
111
111
|
r.sort((o, i) => (i.interest_rate ?? 0) - (o.interest_rate ?? 0));
|
|
112
112
|
break;
|
|
113
|
-
case
|
|
113
|
+
case P.LOWEST_BALANCE:
|
|
114
114
|
r.sort((o, i) => o.balance - i.balance);
|
|
115
115
|
break;
|
|
116
|
-
case
|
|
116
|
+
case P.HIGHEST_BALANCE:
|
|
117
117
|
r.sort((o, i) => i.balance - o.balance);
|
|
118
118
|
break;
|
|
119
119
|
default:
|
|
@@ -122,44 +122,44 @@ const tt = (a, n = 0, r = 0) => {
|
|
|
122
122
|
a.splice(0, a.length, ...r, ...t);
|
|
123
123
|
};
|
|
124
124
|
function ot(a, n, r = 0) {
|
|
125
|
-
const t = a.map((
|
|
126
|
-
(
|
|
125
|
+
const t = a.map((u) => ({ ...u })).filter(
|
|
126
|
+
(u) => u.interest_rate !== void 0 && u.monthly_payment !== void 0 && !u.is_paid_off
|
|
127
127
|
);
|
|
128
128
|
ge(t, n);
|
|
129
129
|
let o = 0, i = 0;
|
|
130
|
-
const p = /* @__PURE__ */ new Date(),
|
|
131
|
-
for (; t.some((
|
|
132
|
-
let
|
|
133
|
-
for (const [
|
|
130
|
+
const p = /* @__PURE__ */ new Date(), c = /* @__PURE__ */ new Date();
|
|
131
|
+
for (; t.some((u) => u.balance >= 0.01 && !u.is_impossible); ) {
|
|
132
|
+
let u = !1;
|
|
133
|
+
for (const [x, h] of t.entries()) {
|
|
134
134
|
if (h.balance <= 0.01 || h.is_impossible) continue;
|
|
135
|
-
const
|
|
136
|
-
let
|
|
137
|
-
|
|
138
|
-
const
|
|
139
|
-
if (
|
|
135
|
+
const B = (h.interest_rate ?? 0) / 100 / 12, N = h.balance * B;
|
|
136
|
+
let C = h.monthly_payment ?? 0;
|
|
137
|
+
x === 0 && r && (C += r), h.balance += N;
|
|
138
|
+
const A = Math.min(h.balance, C + i);
|
|
139
|
+
if (A <= N) {
|
|
140
140
|
h.is_impossible = !0;
|
|
141
141
|
continue;
|
|
142
142
|
}
|
|
143
|
-
h.balance -=
|
|
143
|
+
h.balance -= A, h.balance = h.balance < 0.01 ? 0 : h.balance, o += N, h.balance <= 0 && (i += C), A > 0 && (u = !0);
|
|
144
144
|
}
|
|
145
|
-
|
|
145
|
+
u && c.setMonth(c.getMonth() + 1);
|
|
146
146
|
}
|
|
147
|
-
const
|
|
147
|
+
const d = t.some((u) => u.is_impossible && u.balance > 0), m = Ae({ start: p, end: c });
|
|
148
148
|
return {
|
|
149
|
-
payoffSavings:
|
|
150
|
-
payoffDate:
|
|
151
|
-
payoffDuration:
|
|
149
|
+
payoffSavings: d ? "N/A" : k(o, "0,0.00"),
|
|
150
|
+
payoffDate: d ? "Never" : U(c, q.MONTH_YEAR),
|
|
151
|
+
payoffDuration: d ? "Stagnant" : Ee(m, { format: ["years", "months"] }) || "0 months"
|
|
152
152
|
};
|
|
153
153
|
}
|
|
154
|
-
const
|
|
154
|
+
const L = () => {
|
|
155
155
|
if (!g.useContext(Pe))
|
|
156
156
|
throw new Error("useCateUiStore() must be used within the GlobalDataContext");
|
|
157
157
|
return Z().uiStore;
|
|
158
158
|
}, it = ({ debts: a, onClickCta: n, sx: r }) => {
|
|
159
|
-
const t = X(), { isMobile: o } = Y(), { debts: i } =
|
|
160
|
-
const
|
|
161
|
-
return ot(a, p,
|
|
162
|
-
}, [a, p,
|
|
159
|
+
const t = X(), { isMobile: o } = Y(), { debts: i } = S(), { selectedDebtPriority: p } = L(), { monthlyCashFlowProfile: c } = V(), { payoffDate: d, payoffSavings: m, payoffDuration: u } = g.useMemo(() => {
|
|
160
|
+
const x = c?.extra_payment ?? 0;
|
|
161
|
+
return ot(a, p, x);
|
|
162
|
+
}, [a, p, c]);
|
|
163
163
|
return /* @__PURE__ */ e(
|
|
164
164
|
_e,
|
|
165
165
|
{
|
|
@@ -169,9 +169,9 @@ const F = () => {
|
|
|
169
169
|
minWidth: "186px",
|
|
170
170
|
...r
|
|
171
171
|
},
|
|
172
|
-
children: /* @__PURE__ */ s(
|
|
172
|
+
children: /* @__PURE__ */ s(_, { sx: { gap: "12px", p: "16px" }, children: [
|
|
173
173
|
/* @__PURE__ */ s(
|
|
174
|
-
|
|
174
|
+
_,
|
|
175
175
|
{
|
|
176
176
|
gap: o ? "4px" : "0",
|
|
177
177
|
sx: {
|
|
@@ -181,16 +181,16 @@ const F = () => {
|
|
|
181
181
|
},
|
|
182
182
|
children: [
|
|
183
183
|
/* @__PURE__ */ e(l, { variant: "XSmall", children: i.snowball_card_date_description }),
|
|
184
|
-
/* @__PURE__ */ e(l, { bold: !0, color: t.palette.primary.main, variant: "Small", children:
|
|
184
|
+
/* @__PURE__ */ e(l, { bold: !0, color: t.palette.primary.main, variant: "Small", children: d })
|
|
185
185
|
]
|
|
186
186
|
}
|
|
187
187
|
),
|
|
188
|
-
/* @__PURE__ */ s(
|
|
188
|
+
/* @__PURE__ */ s(_, { gap: o ? "4px" : "0", children: [
|
|
189
189
|
/* @__PURE__ */ e(l, { bold: !0, variant: "Small", children: m }),
|
|
190
190
|
/* @__PURE__ */ e(l, { sx: { whiteSpace: "normal" }, variant: "XSmall", children: i.snowball_card_amount_description })
|
|
191
191
|
] }),
|
|
192
|
-
/* @__PURE__ */ s(
|
|
193
|
-
/* @__PURE__ */ e(l, { bold: !0, variant: "Small", children:
|
|
192
|
+
/* @__PURE__ */ s(_, { gap: o ? "4px" : "0", children: [
|
|
193
|
+
/* @__PURE__ */ e(l, { bold: !0, variant: "Small", children: u }),
|
|
194
194
|
/* @__PURE__ */ e(l, { variant: "XSmall", children: i.snowball_card_duration_description })
|
|
195
195
|
] }),
|
|
196
196
|
/* @__PURE__ */ e(
|
|
@@ -208,7 +208,7 @@ const F = () => {
|
|
|
208
208
|
}
|
|
209
209
|
);
|
|
210
210
|
}, lt = D(it), st = ({ isOpen: a, onClose: n }) => {
|
|
211
|
-
const r = X(), { debts: t } =
|
|
211
|
+
const r = X(), { debts: t } = S(), [o, i] = g.useState(!1);
|
|
212
212
|
return /* @__PURE__ */ e(
|
|
213
213
|
re,
|
|
214
214
|
{
|
|
@@ -216,9 +216,9 @@ const F = () => {
|
|
|
216
216
|
isOpen: a,
|
|
217
217
|
onClose: n,
|
|
218
218
|
title: t.snowball_drawer_title,
|
|
219
|
-
children: /* @__PURE__ */ s(
|
|
220
|
-
/* @__PURE__ */ s(
|
|
221
|
-
/* @__PURE__ */ s(
|
|
219
|
+
children: /* @__PURE__ */ s(_, { bgcolor: r.palette.background.default, height: "100%", children: [
|
|
220
|
+
/* @__PURE__ */ s(_, { alignItems: "center", px: 24, py: 24, children: [
|
|
221
|
+
/* @__PURE__ */ s(_, { alignItems: "center", pb: 24, children: [
|
|
222
222
|
/* @__PURE__ */ e(l, { mb: 12, variant: "H3", children: t.snowball_drawer_subtitle }),
|
|
223
223
|
/* @__PURE__ */ e(l, { color: r.palette.secondary.main, variant: "Small", children: t.snowball_drawer_amount_description }),
|
|
224
224
|
/* @__PURE__ */ e(l, { variant: "H1", children: t.snowball_drawer_savings }),
|
|
@@ -249,7 +249,7 @@ const F = () => {
|
|
|
249
249
|
)
|
|
250
250
|
] })
|
|
251
251
|
] }),
|
|
252
|
-
/* @__PURE__ */ s(
|
|
252
|
+
/* @__PURE__ */ s(_, { children: [
|
|
253
253
|
/* @__PURE__ */ e(
|
|
254
254
|
l,
|
|
255
255
|
{
|
|
@@ -260,12 +260,12 @@ const F = () => {
|
|
|
260
260
|
children: t.snowball_drawer_disclaimer
|
|
261
261
|
}
|
|
262
262
|
),
|
|
263
|
-
/* @__PURE__ */ s(
|
|
264
|
-
/* @__PURE__ */ e(l, { bold: !0, variant: "XSmall", children:
|
|
263
|
+
/* @__PURE__ */ s(_, { flexDirection: "row", justifyContent: "space-between", sx: { pt: 12, px: 24, pb: 8 }, children: [
|
|
264
|
+
/* @__PURE__ */ e(l, { bold: !0, variant: "XSmall", children: I(t.snowball_drawer_month_header, 1) }),
|
|
265
265
|
/* @__PURE__ */ e(l, { bold: !0, variant: "XSmall", children: t.snowball_drawer_payment_header })
|
|
266
266
|
] }),
|
|
267
|
-
/* @__PURE__ */ s(
|
|
268
|
-
/* @__PURE__ */ s(
|
|
267
|
+
/* @__PURE__ */ s(_, { bgcolor: r.palette.background.paper, mb: 24, children: [
|
|
268
|
+
/* @__PURE__ */ s(_, { alignItems: "center", flexDirection: "row", pl: 24, children: [
|
|
269
269
|
/* @__PURE__ */ e(
|
|
270
270
|
W,
|
|
271
271
|
{
|
|
@@ -283,7 +283,7 @@ const F = () => {
|
|
|
283
283
|
}
|
|
284
284
|
),
|
|
285
285
|
/* @__PURE__ */ s(
|
|
286
|
-
|
|
286
|
+
_,
|
|
287
287
|
{
|
|
288
288
|
sx: {
|
|
289
289
|
borderBottom: `1px solid ${r.palette.border.light}`,
|
|
@@ -293,18 +293,18 @@ const F = () => {
|
|
|
293
293
|
pr: 24
|
|
294
294
|
},
|
|
295
295
|
children: [
|
|
296
|
-
/* @__PURE__ */ s(
|
|
297
|
-
/* @__PURE__ */ e(l, { variant: "Body", children:
|
|
296
|
+
/* @__PURE__ */ s(_, { flexGrow: 1, children: [
|
|
297
|
+
/* @__PURE__ */ e(l, { variant: "Body", children: I(t.snowball_drawer_debt_label, "A") }),
|
|
298
298
|
/* @__PURE__ */ s(l, { color: r.palette.secondary.main, variant: "XSmall", children: [
|
|
299
|
-
|
|
299
|
+
I(
|
|
300
300
|
t.snowball_drawer_rollover_explainer_pt1,
|
|
301
301
|
"$100"
|
|
302
302
|
),
|
|
303
|
-
/* @__PURE__ */ e("strong", { children:
|
|
303
|
+
/* @__PURE__ */ e("strong", { children: I(t.snowball_drawer_debt_label, "B") }),
|
|
304
304
|
t.snowball_drawer_rollover_explainer_pt2
|
|
305
305
|
] })
|
|
306
306
|
] }),
|
|
307
|
-
/* @__PURE__ */ s(
|
|
307
|
+
/* @__PURE__ */ s(_, { children: [
|
|
308
308
|
/* @__PURE__ */ e(l, { variant: "Body", children: "$100.00" }),
|
|
309
309
|
/* @__PURE__ */ e(
|
|
310
310
|
l,
|
|
@@ -321,7 +321,7 @@ const F = () => {
|
|
|
321
321
|
}
|
|
322
322
|
)
|
|
323
323
|
] }),
|
|
324
|
-
/* @__PURE__ */ s(
|
|
324
|
+
/* @__PURE__ */ s(_, { alignItems: "center", flexDirection: "row", pl: 24, children: [
|
|
325
325
|
/* @__PURE__ */ e(
|
|
326
326
|
W,
|
|
327
327
|
{
|
|
@@ -335,7 +335,7 @@ const F = () => {
|
|
|
335
335
|
}
|
|
336
336
|
),
|
|
337
337
|
/* @__PURE__ */ s(
|
|
338
|
-
|
|
338
|
+
_,
|
|
339
339
|
{
|
|
340
340
|
sx: {
|
|
341
341
|
borderBottom: `1px solid ${r.palette.border.light}`,
|
|
@@ -345,13 +345,13 @@ const F = () => {
|
|
|
345
345
|
pr: 24
|
|
346
346
|
},
|
|
347
347
|
children: [
|
|
348
|
-
/* @__PURE__ */ e(l, { flexGrow: 1, variant: "Body", children:
|
|
348
|
+
/* @__PURE__ */ e(l, { flexGrow: 1, variant: "Body", children: I(t.snowball_drawer_debt_label, "B") }),
|
|
349
349
|
/* @__PURE__ */ e(l, { variant: "Body", children: "$400.00" })
|
|
350
350
|
]
|
|
351
351
|
}
|
|
352
352
|
)
|
|
353
353
|
] }),
|
|
354
|
-
/* @__PURE__ */ s(
|
|
354
|
+
/* @__PURE__ */ s(_, { alignItems: "center", flexDirection: "row", pl: 24, py: 14, children: [
|
|
355
355
|
/* @__PURE__ */ e(
|
|
356
356
|
W,
|
|
357
357
|
{
|
|
@@ -364,13 +364,13 @@ const F = () => {
|
|
|
364
364
|
}
|
|
365
365
|
}
|
|
366
366
|
),
|
|
367
|
-
/* @__PURE__ */ s(
|
|
368
|
-
/* @__PURE__ */ e(l, { flexGrow: 1, variant: "Body", children:
|
|
367
|
+
/* @__PURE__ */ s(_, { flexDirection: "row", flexGrow: 1, pr: 24, children: [
|
|
368
|
+
/* @__PURE__ */ e(l, { flexGrow: 1, variant: "Body", children: I(t.snowball_drawer_debt_label, "C") }),
|
|
369
369
|
/* @__PURE__ */ e(l, { variant: "Body", children: "$1,000.00" })
|
|
370
370
|
] })
|
|
371
371
|
] }),
|
|
372
372
|
/* @__PURE__ */ s(
|
|
373
|
-
|
|
373
|
+
_,
|
|
374
374
|
{
|
|
375
375
|
sx: {
|
|
376
376
|
py: 8,
|
|
@@ -387,12 +387,12 @@ const F = () => {
|
|
|
387
387
|
}
|
|
388
388
|
)
|
|
389
389
|
] }),
|
|
390
|
-
/* @__PURE__ */ s(
|
|
391
|
-
/* @__PURE__ */ e(l, { bold: !0, variant: "XSmall", children:
|
|
390
|
+
/* @__PURE__ */ s(_, { flexDirection: "row", justifyContent: "space-between", sx: { pt: 12, px: 24, pb: 8 }, children: [
|
|
391
|
+
/* @__PURE__ */ e(l, { bold: !0, variant: "XSmall", children: I(t.snowball_drawer_month_header, 2) }),
|
|
392
392
|
/* @__PURE__ */ e(l, { bold: !0, variant: "XSmall", children: t.snowball_drawer_payment_header })
|
|
393
393
|
] }),
|
|
394
|
-
/* @__PURE__ */ s(
|
|
395
|
-
/* @__PURE__ */ s(
|
|
394
|
+
/* @__PURE__ */ s(_, { bgcolor: r.palette.background.paper, mb: 24, children: [
|
|
395
|
+
/* @__PURE__ */ s(_, { alignItems: "center", flexDirection: "row", pl: 24, children: [
|
|
396
396
|
/* @__PURE__ */ e(
|
|
397
397
|
W,
|
|
398
398
|
{
|
|
@@ -410,7 +410,7 @@ const F = () => {
|
|
|
410
410
|
}
|
|
411
411
|
),
|
|
412
412
|
/* @__PURE__ */ s(
|
|
413
|
-
|
|
413
|
+
_,
|
|
414
414
|
{
|
|
415
415
|
sx: {
|
|
416
416
|
borderBottom: `1px solid ${r.palette.border.light}`,
|
|
@@ -420,18 +420,18 @@ const F = () => {
|
|
|
420
420
|
pr: 24
|
|
421
421
|
},
|
|
422
422
|
children: [
|
|
423
|
-
/* @__PURE__ */ s(
|
|
424
|
-
/* @__PURE__ */ e(l, { variant: "Body", children:
|
|
423
|
+
/* @__PURE__ */ s(_, { flexGrow: 1, children: [
|
|
424
|
+
/* @__PURE__ */ e(l, { variant: "Body", children: I(t.snowball_drawer_debt_label, "B") }),
|
|
425
425
|
/* @__PURE__ */ s(l, { color: r.palette.secondary.main, variant: "XSmall", children: [
|
|
426
|
-
|
|
426
|
+
I(
|
|
427
427
|
t.snowball_drawer_rollover_explainer_pt1,
|
|
428
428
|
"$500"
|
|
429
429
|
),
|
|
430
|
-
/* @__PURE__ */ e("strong", { children:
|
|
430
|
+
/* @__PURE__ */ e("strong", { children: I(t.snowball_drawer_debt_label, "C") }),
|
|
431
431
|
t.snowball_drawer_rollover_explainer_pt2
|
|
432
432
|
] })
|
|
433
433
|
] }),
|
|
434
|
-
/* @__PURE__ */ s(
|
|
434
|
+
/* @__PURE__ */ s(_, { children: [
|
|
435
435
|
/* @__PURE__ */ e(l, { variant: "Body", children: "$500.00" }),
|
|
436
436
|
/* @__PURE__ */ e(
|
|
437
437
|
l,
|
|
@@ -448,7 +448,7 @@ const F = () => {
|
|
|
448
448
|
}
|
|
449
449
|
)
|
|
450
450
|
] }),
|
|
451
|
-
/* @__PURE__ */ s(
|
|
451
|
+
/* @__PURE__ */ s(_, { alignItems: "center", flexDirection: "row", pl: 24, children: [
|
|
452
452
|
/* @__PURE__ */ e(
|
|
453
453
|
W,
|
|
454
454
|
{
|
|
@@ -462,7 +462,7 @@ const F = () => {
|
|
|
462
462
|
}
|
|
463
463
|
),
|
|
464
464
|
/* @__PURE__ */ s(
|
|
465
|
-
|
|
465
|
+
_,
|
|
466
466
|
{
|
|
467
467
|
sx: {
|
|
468
468
|
flexDirection: "row",
|
|
@@ -471,14 +471,14 @@ const F = () => {
|
|
|
471
471
|
pr: 24
|
|
472
472
|
},
|
|
473
473
|
children: [
|
|
474
|
-
/* @__PURE__ */ e(l, { flexGrow: 1, variant: "Body", children:
|
|
474
|
+
/* @__PURE__ */ e(l, { flexGrow: 1, variant: "Body", children: I(t.snowball_drawer_debt_label, "C") }),
|
|
475
475
|
/* @__PURE__ */ e(l, { variant: "Body", children: "$1,000.00" })
|
|
476
476
|
]
|
|
477
477
|
}
|
|
478
478
|
)
|
|
479
479
|
] }),
|
|
480
480
|
/* @__PURE__ */ s(
|
|
481
|
-
|
|
481
|
+
_,
|
|
482
482
|
{
|
|
483
483
|
sx: {
|
|
484
484
|
py: 8,
|
|
@@ -495,12 +495,12 @@ const F = () => {
|
|
|
495
495
|
}
|
|
496
496
|
)
|
|
497
497
|
] }),
|
|
498
|
-
/* @__PURE__ */ s(
|
|
499
|
-
/* @__PURE__ */ e(l, { bold: !0, variant: "XSmall", children:
|
|
498
|
+
/* @__PURE__ */ s(_, { flexDirection: "row", justifyContent: "space-between", sx: { pt: 12, px: 24, pb: 8 }, children: [
|
|
499
|
+
/* @__PURE__ */ e(l, { bold: !0, variant: "XSmall", children: I(t.snowball_drawer_month_header, 3) }),
|
|
500
500
|
/* @__PURE__ */ e(l, { bold: !0, variant: "XSmall", children: t.snowball_drawer_payment_header })
|
|
501
501
|
] }),
|
|
502
|
-
/* @__PURE__ */ s(
|
|
503
|
-
/* @__PURE__ */ s(
|
|
502
|
+
/* @__PURE__ */ s(_, { bgcolor: r.palette.background.paper, mb: 24, children: [
|
|
503
|
+
/* @__PURE__ */ s(_, { alignItems: "center", flexDirection: "row", pl: 24, children: [
|
|
504
504
|
/* @__PURE__ */ e(
|
|
505
505
|
W,
|
|
506
506
|
{
|
|
@@ -518,7 +518,7 @@ const F = () => {
|
|
|
518
518
|
}
|
|
519
519
|
),
|
|
520
520
|
/* @__PURE__ */ s(
|
|
521
|
-
|
|
521
|
+
_,
|
|
522
522
|
{
|
|
523
523
|
sx: {
|
|
524
524
|
alignItems: "center",
|
|
@@ -528,8 +528,8 @@ const F = () => {
|
|
|
528
528
|
pr: 24
|
|
529
529
|
},
|
|
530
530
|
children: [
|
|
531
|
-
/* @__PURE__ */ e(
|
|
532
|
-
/* @__PURE__ */ s(
|
|
531
|
+
/* @__PURE__ */ e(_, { flexGrow: 1, children: /* @__PURE__ */ e(l, { variant: "Body", children: I(t.snowball_drawer_debt_label, "C") }) }),
|
|
532
|
+
/* @__PURE__ */ s(_, { children: [
|
|
533
533
|
/* @__PURE__ */ e(l, { variant: "Body", children: "$1,500.00" }),
|
|
534
534
|
/* @__PURE__ */ e(
|
|
535
535
|
l,
|
|
@@ -547,7 +547,7 @@ const F = () => {
|
|
|
547
547
|
)
|
|
548
548
|
] }),
|
|
549
549
|
/* @__PURE__ */ s(
|
|
550
|
-
|
|
550
|
+
_,
|
|
551
551
|
{
|
|
552
552
|
sx: {
|
|
553
553
|
py: 8,
|
|
@@ -586,32 +586,32 @@ const we = ({
|
|
|
586
586
|
onClickArea: i,
|
|
587
587
|
onHoverArea: p
|
|
588
588
|
}) => {
|
|
589
|
-
const
|
|
589
|
+
const c = We(), { onEvent: d } = F(), m = t.filter((b) => !b.is_impossible), u = [
|
|
590
590
|
...new Set(
|
|
591
|
-
m.flatMap((b) => b.dataset.map((
|
|
591
|
+
m.flatMap((b) => b.dataset.map((f) => new Date(f.x).getTime()))
|
|
592
592
|
)
|
|
593
|
-
].sort((b,
|
|
594
|
-
const
|
|
595
|
-
let E =
|
|
596
|
-
const
|
|
597
|
-
const z =
|
|
598
|
-
return E = z, { x:
|
|
593
|
+
].sort((b, f) => b - f).map((b) => new Date(b)), x = m.map((b) => {
|
|
594
|
+
const f = new Map(b.dataset.map((R) => [new Date(R.x).getTime(), R.y]));
|
|
595
|
+
let E = f.get(u[0].getTime()) ?? 0;
|
|
596
|
+
const $ = u.map((R) => {
|
|
597
|
+
const z = f.get(R.getTime()) ?? E;
|
|
598
|
+
return E = z, { x: R, y: z };
|
|
599
599
|
});
|
|
600
|
-
return { ...b, dataset:
|
|
601
|
-
}), h =
|
|
602
|
-
(b,
|
|
600
|
+
return { ...b, dataset: $ };
|
|
601
|
+
}), h = x.reduce(
|
|
602
|
+
(b, f) => b + (f.dataset[0]?.y ?? 0),
|
|
603
603
|
0
|
|
604
|
-
), v =
|
|
605
|
-
const E =
|
|
606
|
-
return { x: b, y:
|
|
607
|
-
}),
|
|
608
|
-
const E = 1 -
|
|
604
|
+
), v = u.map((b, f) => {
|
|
605
|
+
const E = f / (u.length - 1), $ = h * (1 - E);
|
|
606
|
+
return { x: b, y: $ };
|
|
607
|
+
}), B = Math.ceil(h / 100) * 100, N = u, C = x.map((b, f) => {
|
|
608
|
+
const E = 1 - f / x.length * 0.5, $ = pt(dt, E);
|
|
609
609
|
return {
|
|
610
|
-
id: `debt-${
|
|
610
|
+
id: `debt-${f}`,
|
|
611
611
|
guid: b.guid,
|
|
612
612
|
label: b.name,
|
|
613
|
-
data: b.dataset.map((
|
|
614
|
-
color:
|
|
613
|
+
data: b.dataset.map((R) => R.y),
|
|
614
|
+
color: $,
|
|
615
615
|
curve: "linear",
|
|
616
616
|
type: "line",
|
|
617
617
|
area: !0,
|
|
@@ -619,18 +619,18 @@ const we = ({
|
|
|
619
619
|
showMark: !1
|
|
620
620
|
};
|
|
621
621
|
});
|
|
622
|
-
|
|
622
|
+
C.push({
|
|
623
623
|
id: "payoff-line",
|
|
624
624
|
label: "Payoff Line",
|
|
625
625
|
data: v.map((b) => b.y),
|
|
626
|
-
color:
|
|
626
|
+
color: c.palette.grey[700],
|
|
627
627
|
curve: "linear",
|
|
628
628
|
type: "line",
|
|
629
629
|
stack: void 0,
|
|
630
630
|
showMark: !1,
|
|
631
631
|
disableHighlight: !0
|
|
632
632
|
});
|
|
633
|
-
const
|
|
633
|
+
const A = (b) => C.findIndex((f) => f?.guid === b);
|
|
634
634
|
return /* @__PURE__ */ e(
|
|
635
635
|
ae,
|
|
636
636
|
{
|
|
@@ -652,16 +652,16 @@ const we = ({
|
|
|
652
652
|
axisHighlight: { x: "none" },
|
|
653
653
|
disableLineItemHighlight: !0,
|
|
654
654
|
height: n,
|
|
655
|
-
onAreaClick: (b,
|
|
655
|
+
onAreaClick: (b, f) => {
|
|
656
656
|
i?.();
|
|
657
|
-
const E =
|
|
658
|
-
|
|
657
|
+
const E = C.find(($) => $.id === f.seriesId);
|
|
658
|
+
d(T.DEBTS_CLICK_CHART_AREA, { account_guid: E?.guid });
|
|
659
659
|
},
|
|
660
660
|
onHighlightChange: (b) => {
|
|
661
|
-
const
|
|
662
|
-
p?.(
|
|
661
|
+
const f = C.find((E) => E.id === b?.seriesId)?.guid;
|
|
662
|
+
p?.(f ?? "");
|
|
663
663
|
},
|
|
664
|
-
series:
|
|
664
|
+
series: C,
|
|
665
665
|
skipAnimation: !0,
|
|
666
666
|
slotProps: {
|
|
667
667
|
legend: {
|
|
@@ -685,14 +685,14 @@ const we = ({
|
|
|
685
685
|
strokeDasharray: "10 5",
|
|
686
686
|
strokeWidth: 1
|
|
687
687
|
},
|
|
688
|
-
[`& .MuiLineElement-series-debt-${
|
|
688
|
+
[`& .MuiLineElement-series-debt-${A(o ?? "0")}`]: {
|
|
689
689
|
opacity: 1
|
|
690
690
|
},
|
|
691
|
-
[`& .MuiAreaElement-series-debt-${
|
|
691
|
+
[`& .MuiAreaElement-series-debt-${A(o ?? "0")}`]: {
|
|
692
692
|
opacity: 1
|
|
693
693
|
},
|
|
694
694
|
"& .MuiChartsAxis-tickLabel > tspan": {
|
|
695
|
-
fontFamily:
|
|
695
|
+
fontFamily: c.typography.Small.fontFamily
|
|
696
696
|
},
|
|
697
697
|
...a
|
|
698
698
|
},
|
|
@@ -700,9 +700,9 @@ const we = ({
|
|
|
700
700
|
width: r,
|
|
701
701
|
xAxis: [
|
|
702
702
|
{
|
|
703
|
-
data:
|
|
703
|
+
data: N,
|
|
704
704
|
scaleType: "time",
|
|
705
|
-
min:
|
|
705
|
+
min: u[0],
|
|
706
706
|
disableTicks: !0,
|
|
707
707
|
valueFormatter: (b) => U(b, q.MONTH_SHORT_YEAR)
|
|
708
708
|
}
|
|
@@ -710,9 +710,9 @@ const we = ({
|
|
|
710
710
|
yAxis: [
|
|
711
711
|
{
|
|
712
712
|
min: 0,
|
|
713
|
-
max:
|
|
713
|
+
max: B,
|
|
714
714
|
disableTicks: !0,
|
|
715
|
-
valueFormatter: (b) =>
|
|
715
|
+
valueFormatter: (b) => k(b, "0a")
|
|
716
716
|
}
|
|
717
717
|
]
|
|
718
718
|
}
|
|
@@ -720,8 +720,8 @@ const we = ({
|
|
|
720
720
|
}
|
|
721
721
|
);
|
|
722
722
|
}, mt = () => {
|
|
723
|
-
const a = X(), { debts: n } =
|
|
724
|
-
return /* @__PURE__ */ s(
|
|
723
|
+
const a = X(), { debts: n } = S(), { selectedDebtChartData: r } = L();
|
|
724
|
+
return /* @__PURE__ */ s(H, { children: [
|
|
725
725
|
/* @__PURE__ */ s(
|
|
726
726
|
Le,
|
|
727
727
|
{
|
|
@@ -747,7 +747,7 @@ const we = ({
|
|
|
747
747
|
)
|
|
748
748
|
] });
|
|
749
749
|
}, ht = D(mt), ut = () => {
|
|
750
|
-
const a = X(), { onEvent: n } =
|
|
750
|
+
const a = X(), { onEvent: n } = F(), { debts: r } = S(), { selectedDebtChartData: t, showCompleted: o, showError: i } = L();
|
|
751
751
|
return g.useEffect(() => n(T.DEBT_SCHEDULE_VIEW), []), /* @__PURE__ */ e(ye, { children: i || o ? /* @__PURE__ */ e(
|
|
752
752
|
l,
|
|
753
753
|
{
|
|
@@ -757,12 +757,12 @@ const we = ({
|
|
|
757
757
|
variant: "Small",
|
|
758
758
|
children: i ? r.schedule_error_message : r.schedule_complete_message
|
|
759
759
|
}
|
|
760
|
-
) : /* @__PURE__ */ s(
|
|
760
|
+
) : /* @__PURE__ */ s(H, { children: [
|
|
761
761
|
/* @__PURE__ */ s(w, { flexDirection: "row", justifyContent: "space-between", sx: { pt: 12, px: 24, pb: 8 }, children: [
|
|
762
762
|
/* @__PURE__ */ e(l, { bold: !0, variant: "XSmall", children: r.schedule_month_heading }),
|
|
763
763
|
/* @__PURE__ */ e(l, { bold: !0, variant: "XSmall", children: r.schedule_amount_heading })
|
|
764
764
|
] }),
|
|
765
|
-
t.dataset.slice(1).map(({ x: p, y:
|
|
765
|
+
t.dataset.slice(1).map(({ x: p, y: c, payment: d }) => /* @__PURE__ */ e(w, { bgcolor: a.palette.background.paper, children: /* @__PURE__ */ e(w, { alignItems: "center", flexDirection: "row", pl: 24, children: /* @__PURE__ */ s(
|
|
766
766
|
w,
|
|
767
767
|
{
|
|
768
768
|
sx: {
|
|
@@ -778,7 +778,7 @@ const we = ({
|
|
|
778
778
|
/* @__PURE__ */ e(l, { color: a.palette.secondary.main, variant: "XSmall", children: r.schedule_month_label })
|
|
779
779
|
] }),
|
|
780
780
|
/* @__PURE__ */ s(w, { children: [
|
|
781
|
-
/* @__PURE__ */ e(l, { bold: !0, variant: "Body", children:
|
|
781
|
+
/* @__PURE__ */ e(l, { bold: !0, variant: "Body", children: k(c, "0,0.00") }),
|
|
782
782
|
/* @__PURE__ */ e(
|
|
783
783
|
l,
|
|
784
784
|
{
|
|
@@ -786,7 +786,7 @@ const we = ({
|
|
|
786
786
|
color: a.palette.success.main,
|
|
787
787
|
textAlign: "end",
|
|
788
788
|
variant: "Tiny",
|
|
789
|
-
children: `+${
|
|
789
|
+
children: `+${k(d, "0,0")}`
|
|
790
790
|
}
|
|
791
791
|
)
|
|
792
792
|
] })
|
|
@@ -811,9 +811,9 @@ const we = ({
|
|
|
811
811
|
) })
|
|
812
812
|
] }) });
|
|
813
813
|
}, bt = D(ut), _t = D(({ debt: a }) => {
|
|
814
|
-
const { debts: n } =
|
|
814
|
+
const { debts: n } = S(), { updateAccount: r } = J(), { onEvent: t } = F(), [o, i] = g.useState(a.interest_rate ?? 0), p = o < 0, c = async () => {
|
|
815
815
|
await r({ ...a.account, interest_rate: o }), a.interest_rate = o, t(T.DEBTS_SAVE_RATE_ACTION, { account_guid: a.guid });
|
|
816
|
-
},
|
|
816
|
+
}, d = () => {
|
|
817
817
|
setTimeout(() => {
|
|
818
818
|
i(a.interest_rate ?? 0);
|
|
819
819
|
}, 250);
|
|
@@ -823,8 +823,8 @@ const we = ({
|
|
|
823
823
|
{
|
|
824
824
|
isSaveDisabled: p,
|
|
825
825
|
label: `${n.details_interest_rate} (%)`,
|
|
826
|
-
onCancel:
|
|
827
|
-
onSave:
|
|
826
|
+
onCancel: d,
|
|
827
|
+
onSave: c,
|
|
828
828
|
primaryText: n.details_interest_rate,
|
|
829
829
|
secondaryText: Me(Number(a.interest_rate) / 100),
|
|
830
830
|
zeroStateText: a.interest_rate ? void 0 : n.add_interest_rate,
|
|
@@ -841,9 +841,9 @@ const we = ({
|
|
|
841
841
|
}
|
|
842
842
|
);
|
|
843
843
|
}), yt = D(({ debt: a }) => {
|
|
844
|
-
const { debts: n } =
|
|
844
|
+
const { debts: n } = S(), { updateAccount: r } = J(), { onEvent: t } = F(), [o, i] = g.useState(a.monthly_payment ?? 0), p = o < 0 || o > 9999999999e-2, c = async () => {
|
|
845
845
|
await r({ ...a.account, minimum_payment: o }), a.monthly_payment = o, t(T.DEBTS_SAVE_PAYMENT_ACTION, { account_guid: a.guid });
|
|
846
|
-
},
|
|
846
|
+
}, d = () => {
|
|
847
847
|
setTimeout(() => {
|
|
848
848
|
i(a.monthly_payment ?? 0);
|
|
849
849
|
}, 250);
|
|
@@ -853,10 +853,10 @@ const we = ({
|
|
|
853
853
|
{
|
|
854
854
|
isSaveDisabled: p,
|
|
855
855
|
label: n.details_monthly_payment,
|
|
856
|
-
onCancel:
|
|
857
|
-
onSave:
|
|
856
|
+
onCancel: d,
|
|
857
|
+
onSave: c,
|
|
858
858
|
primaryText: n.details_monthly_payment,
|
|
859
|
-
secondaryText:
|
|
859
|
+
secondaryText: k(a.monthly_payment, "0,0"),
|
|
860
860
|
zeroStateText: a.monthly_payment ? void 0 : n.add_monthly_payment,
|
|
861
861
|
children: /* @__PURE__ */ e(
|
|
862
862
|
ne,
|
|
@@ -873,9 +873,9 @@ const we = ({
|
|
|
873
873
|
}
|
|
874
874
|
);
|
|
875
875
|
}), ft = D(({ debt: a }) => {
|
|
876
|
-
const { debts: n } =
|
|
876
|
+
const { debts: n } = S(), { updateAccount: r } = J(), { onEvent: t } = F(), [o, i] = g.useState(a.original_balance ?? 0), p = o < 0 || o > 9999999999e-2, c = async () => {
|
|
877
877
|
await r({ ...a.account, original_balance: o }), a.original_balance = o, t(T.DEBTS_SAVE_BALANCE_ACTION, { account_guid: a.guid });
|
|
878
|
-
},
|
|
878
|
+
}, d = () => {
|
|
879
879
|
setTimeout(() => {
|
|
880
880
|
i(a.original_balance ?? 0);
|
|
881
881
|
}, 250);
|
|
@@ -885,10 +885,10 @@ const we = ({
|
|
|
885
885
|
{
|
|
886
886
|
isSaveDisabled: p,
|
|
887
887
|
label: n.details_original_balance,
|
|
888
|
-
onCancel:
|
|
889
|
-
onSave:
|
|
888
|
+
onCancel: d,
|
|
889
|
+
onSave: c,
|
|
890
890
|
primaryText: n.details_original_balance,
|
|
891
|
-
secondaryText:
|
|
891
|
+
secondaryText: k(a.original_balance, "0,0"),
|
|
892
892
|
zeroStateText: a.original_balance ? void 0 : n.add_original_balance,
|
|
893
893
|
children: /* @__PURE__ */ e(
|
|
894
894
|
ne,
|
|
@@ -905,9 +905,9 @@ const we = ({
|
|
|
905
905
|
}
|
|
906
906
|
);
|
|
907
907
|
}), xt = () => {
|
|
908
|
-
const { onEvent: a } =
|
|
908
|
+
const { onEvent: a } = F(), { selectedDebtChartData: n } = L();
|
|
909
909
|
return g.useEffect(() => a(T.DEBT_DETAILS_VIEW), []), /* @__PURE__ */ s(w, { bgcolor: "background.paper", children: [
|
|
910
|
-
n?.goal && /* @__PURE__ */ s(
|
|
910
|
+
n?.goal && /* @__PURE__ */ s(H, { children: [
|
|
911
911
|
/* @__PURE__ */ e(ze, { goal: n.goal }),
|
|
912
912
|
/* @__PURE__ */ e(G, {}),
|
|
913
913
|
/* @__PURE__ */ e(Xe, { goal: n.goal }),
|
|
@@ -915,7 +915,7 @@ const we = ({
|
|
|
915
915
|
/* @__PURE__ */ e(Ve, { goal: n.goal }),
|
|
916
916
|
/* @__PURE__ */ e(G, {})
|
|
917
917
|
] }),
|
|
918
|
-
!n?.goal && n?.account && /* @__PURE__ */ s(
|
|
918
|
+
!n?.goal && n?.account && /* @__PURE__ */ s(H, { children: [
|
|
919
919
|
/* @__PURE__ */ e(yt, { debt: n }),
|
|
920
920
|
/* @__PURE__ */ e(G, {}),
|
|
921
921
|
/* @__PURE__ */ e(_t, { debt: n }),
|
|
@@ -925,10 +925,10 @@ const we = ({
|
|
|
925
925
|
] })
|
|
926
926
|
] });
|
|
927
927
|
}, gt = D(xt), wt = ({ setTabValue: a, sx: n }) => {
|
|
928
|
-
const { debts: r } =
|
|
928
|
+
const { debts: r } = S(), { showError: t, showCompleted: o } = L();
|
|
929
929
|
return g.useEffect(() => {
|
|
930
930
|
t && a(1);
|
|
931
|
-
}, [t]), !t && !o ? /* @__PURE__ */ e(
|
|
931
|
+
}, [t]), !t && !o ? /* @__PURE__ */ e(H, {}) : /* @__PURE__ */ s(w, { gap: 16, children: [
|
|
932
932
|
/* @__PURE__ */ e(ue, { sx: { my: 16, mx: 24, ...n }, children: /* @__PURE__ */ s(
|
|
933
933
|
me,
|
|
934
934
|
{
|
|
@@ -953,7 +953,7 @@ const we = ({
|
|
|
953
953
|
t && /* @__PURE__ */ e(ue, { sx: { mb: 16, mt: 100, mx: 24, ...n }, children: /* @__PURE__ */ s(
|
|
954
954
|
me,
|
|
955
955
|
{
|
|
956
|
-
icon: /* @__PURE__ */ e(
|
|
956
|
+
icon: /* @__PURE__ */ e(H, {}),
|
|
957
957
|
severity: "error",
|
|
958
958
|
sx: {
|
|
959
959
|
borderRadius: 2,
|
|
@@ -970,8 +970,8 @@ const we = ({
|
|
|
970
970
|
) })
|
|
971
971
|
] });
|
|
972
972
|
}, Ct = D(wt), St = () => {
|
|
973
|
-
const { debts: a } =
|
|
974
|
-
return /* @__PURE__ */ s(
|
|
973
|
+
const { debts: a } = S(), { showError: n, showCompleted: r } = L(), [t, o] = g.useState(0);
|
|
974
|
+
return /* @__PURE__ */ s(H, { children: [
|
|
975
975
|
(n || r) && /* @__PURE__ */ e(Ct, { setTabValue: o, sx: { mt: -24 } }),
|
|
976
976
|
/* @__PURE__ */ s(
|
|
977
977
|
je,
|
|
@@ -1006,7 +1006,7 @@ const we = ({
|
|
|
1006
1006
|
/* @__PURE__ */ e(be, { index: 1, name: "debt-details", value: t, children: /* @__PURE__ */ e(gt, {}) })
|
|
1007
1007
|
] });
|
|
1008
1008
|
}, vt = D(St), Dt = ({ isOpen: a, onClose: n }) => {
|
|
1009
|
-
const { debts: r } =
|
|
1009
|
+
const { debts: r } = S(), { showError: t, showCompleted: o } = L(), i = t || o ? /* @__PURE__ */ e(H, {}) : /* @__PURE__ */ e(ht, {});
|
|
1010
1010
|
return /* @__PURE__ */ e(
|
|
1011
1011
|
re,
|
|
1012
1012
|
{
|
|
@@ -1021,11 +1021,11 @@ const we = ({
|
|
|
1021
1021
|
}
|
|
1022
1022
|
);
|
|
1023
1023
|
}, Tt = D(() => {
|
|
1024
|
-
const { debts: a } =
|
|
1024
|
+
const { debts: a } = S(), { monthlyCashFlowProfile: n, updateMonthlyCashFlowProfile: r } = V(), { onEvent: t } = F(), [o, i] = g.useState(n?.extra_payment ?? 0), p = o < 0 || o > 9999999999e-2, c = async () => {
|
|
1025
1025
|
n && (await r({ ...n, extra_payment: o }), n.extra_payment = o, t(T.DEBTS_SAVE_PAYDOWN_ACTION, {
|
|
1026
1026
|
user_guid: n?.user_guid
|
|
1027
1027
|
}));
|
|
1028
|
-
},
|
|
1028
|
+
}, d = () => {
|
|
1029
1029
|
setTimeout(() => {
|
|
1030
1030
|
i(n?.extra_payment ?? 0);
|
|
1031
1031
|
}, 250);
|
|
@@ -1035,10 +1035,10 @@ const we = ({
|
|
|
1035
1035
|
{
|
|
1036
1036
|
isSaveDisabled: p,
|
|
1037
1037
|
label: a.paydown_drawer_extra_payment,
|
|
1038
|
-
onCancel:
|
|
1039
|
-
onSave:
|
|
1038
|
+
onCancel: d,
|
|
1039
|
+
onSave: c,
|
|
1040
1040
|
primaryText: a.paydown_drawer_extra_payment,
|
|
1041
|
-
secondaryText:
|
|
1041
|
+
secondaryText: k(n?.extra_payment, "0,0"),
|
|
1042
1042
|
zeroStateText: n?.extra_payment ? void 0 : a.add_extra_payment,
|
|
1043
1043
|
children: /* @__PURE__ */ e(
|
|
1044
1044
|
ne,
|
|
@@ -1055,12 +1055,12 @@ const we = ({
|
|
|
1055
1055
|
}
|
|
1056
1056
|
);
|
|
1057
1057
|
}), At = () => {
|
|
1058
|
-
const { debts: a } =
|
|
1058
|
+
const { debts: a } = S(), { totalMonthlyPayments: n } = Z(), { monthlyCashFlowProfile: r } = V(), t = n + Number(r?.extra_payment);
|
|
1059
1059
|
return /* @__PURE__ */ s(w, { sx: { backgroundColor: "background.default", height: "100%" }, children: [
|
|
1060
1060
|
/* @__PURE__ */ s(w, { p: 24, children: [
|
|
1061
1061
|
/* @__PURE__ */ s(w, { alignItems: "center", gap: 4, mb: 24, children: [
|
|
1062
1062
|
/* @__PURE__ */ e(l, { variant: "Body", children: a.paydown_drawer_mimimum_label }),
|
|
1063
|
-
/* @__PURE__ */ e(l, { bold: !0, variant: "H1", children:
|
|
1063
|
+
/* @__PURE__ */ e(l, { bold: !0, variant: "H1", children: k(n, "0,0") }),
|
|
1064
1064
|
/* @__PURE__ */ e(l, { textAlign: "center", truncate: !1, variant: "Small", width: 208, children: a.paydown_drawer_minimum_info })
|
|
1065
1065
|
] }),
|
|
1066
1066
|
/* @__PURE__ */ s(w, { children: [
|
|
@@ -1071,11 +1071,11 @@ const we = ({
|
|
|
1071
1071
|
/* @__PURE__ */ e(w, { sx: { backgroundColor: "background.paper" }, children: /* @__PURE__ */ e(Tt, {}) }),
|
|
1072
1072
|
/* @__PURE__ */ e(w, { flexDirection: "row-reverse", px: 24, py: 12, children: /* @__PURE__ */ s(w, { gap: 4, children: [
|
|
1073
1073
|
/* @__PURE__ */ e(l, { variant: "Small", children: a.paydown_drawer_total_payment }),
|
|
1074
|
-
/* @__PURE__ */ e(l, { bold: !0, textAlign: "right", variant: "Body", children:
|
|
1074
|
+
/* @__PURE__ */ e(l, { bold: !0, textAlign: "right", variant: "Body", children: k(t, "0,0") })
|
|
1075
1075
|
] }) })
|
|
1076
1076
|
] });
|
|
1077
1077
|
}, Et = D(At), It = ({ isOpen: a, onClose: n }) => {
|
|
1078
|
-
const { debts: r } =
|
|
1078
|
+
const { debts: r } = S();
|
|
1079
1079
|
return /* @__PURE__ */ e(
|
|
1080
1080
|
re,
|
|
1081
1081
|
{
|
|
@@ -1145,12 +1145,12 @@ const Pt = (a) => {
|
|
|
1145
1145
|
onHoverRow: t,
|
|
1146
1146
|
onClickRow: o
|
|
1147
1147
|
}) => {
|
|
1148
|
-
const i = X(), { onEvent: p } =
|
|
1148
|
+
const i = X(), { onEvent: p } = F(), { isMobile: c } = Y(), { debts: d } = S(), [m, u] = g.useState([
|
|
1149
1149
|
{ field: "priority", sort: "asc" }
|
|
1150
|
-
]),
|
|
1150
|
+
]), x = [
|
|
1151
1151
|
{
|
|
1152
1152
|
field: "priority",
|
|
1153
|
-
headerName:
|
|
1153
|
+
headerName: d.table_column_priority,
|
|
1154
1154
|
renderHeader: j,
|
|
1155
1155
|
renderCell: kt,
|
|
1156
1156
|
sortComparator: Bt,
|
|
@@ -1159,41 +1159,41 @@ const Pt = (a) => {
|
|
|
1159
1159
|
type: "custom",
|
|
1160
1160
|
align: "left",
|
|
1161
1161
|
headerAlign: "left",
|
|
1162
|
-
minWidth:
|
|
1163
|
-
flex:
|
|
1162
|
+
minWidth: c ? 67 : 72,
|
|
1163
|
+
flex: c ? 0.2 : 0.4
|
|
1164
1164
|
},
|
|
1165
1165
|
{
|
|
1166
1166
|
field: "account",
|
|
1167
|
-
headerName:
|
|
1167
|
+
headerName: d.table_column_account,
|
|
1168
1168
|
renderHeader: j,
|
|
1169
1169
|
renderCell: Nt,
|
|
1170
1170
|
sortable: !1,
|
|
1171
1171
|
type: "custom",
|
|
1172
1172
|
align: "left",
|
|
1173
1173
|
headerAlign: "left",
|
|
1174
|
-
minWidth:
|
|
1174
|
+
minWidth: c ? 180 : 225,
|
|
1175
1175
|
flex: 1
|
|
1176
1176
|
},
|
|
1177
1177
|
{
|
|
1178
1178
|
field: "balance",
|
|
1179
|
-
headerName:
|
|
1179
|
+
headerName: d.table_column_balance,
|
|
1180
1180
|
renderHeader: j,
|
|
1181
|
-
renderCell: (
|
|
1181
|
+
renderCell: (y) => /* @__PURE__ */ e(l, { color: i.palette.text.primary, variant: "Small", children: k(y.value, "0,0") }),
|
|
1182
1182
|
sortable: !0,
|
|
1183
|
-
hideSortIcons:
|
|
1183
|
+
hideSortIcons: c,
|
|
1184
1184
|
type: "number",
|
|
1185
|
-
align:
|
|
1186
|
-
headerAlign:
|
|
1187
|
-
minWidth:
|
|
1188
|
-
flex:
|
|
1185
|
+
align: c ? "right" : "left",
|
|
1186
|
+
headerAlign: c ? "right" : "left",
|
|
1187
|
+
minWidth: c ? 70 : 122,
|
|
1188
|
+
flex: c ? 0.4 : 0.6
|
|
1189
1189
|
},
|
|
1190
1190
|
{
|
|
1191
1191
|
field: "interest_rate",
|
|
1192
|
-
headerName:
|
|
1192
|
+
headerName: d.table_column_interest_rate,
|
|
1193
1193
|
renderHeader: j,
|
|
1194
|
-
renderCell: (
|
|
1194
|
+
renderCell: (y) => /* @__PURE__ */ e(l, { color: i.palette.text.primary, variant: "Small", children: isNaN(y.value) ? "---" : `${Number(y.value).toFixed(2)}%` }),
|
|
1195
1195
|
sortable: !0,
|
|
1196
|
-
hideSortIcons:
|
|
1196
|
+
hideSortIcons: c,
|
|
1197
1197
|
type: "number",
|
|
1198
1198
|
align: "left",
|
|
1199
1199
|
headerAlign: "left",
|
|
@@ -1202,11 +1202,11 @@ const Pt = (a) => {
|
|
|
1202
1202
|
},
|
|
1203
1203
|
{
|
|
1204
1204
|
field: "projected_payoff_date",
|
|
1205
|
-
headerName:
|
|
1205
|
+
headerName: d.table_column_payoff_date,
|
|
1206
1206
|
renderHeader: j,
|
|
1207
|
-
renderCell: (
|
|
1207
|
+
renderCell: (y) => /* @__PURE__ */ e(l, { color: i.palette.text.primary, variant: "Small", children: y.value ? U(y.value, q.MONTH_SHORT_YEAR) : "---" }),
|
|
1208
1208
|
sortable: !0,
|
|
1209
|
-
hideSortIcons:
|
|
1209
|
+
hideSortIcons: c,
|
|
1210
1210
|
type: "number",
|
|
1211
1211
|
align: "left",
|
|
1212
1212
|
headerAlign: "left",
|
|
@@ -1215,11 +1215,11 @@ const Pt = (a) => {
|
|
|
1215
1215
|
},
|
|
1216
1216
|
{
|
|
1217
1217
|
field: "monthly_payment",
|
|
1218
|
-
headerName:
|
|
1218
|
+
headerName: d.table_column_amount_due,
|
|
1219
1219
|
renderHeader: j,
|
|
1220
|
-
renderCell: (
|
|
1220
|
+
renderCell: (y) => /* @__PURE__ */ e(l, { color: i.palette.text.primary, variant: "Small", children: typeof y.value == "number" ? k(y.value, "0,0") : "---" }),
|
|
1221
1221
|
sortable: !0,
|
|
1222
|
-
hideSortIcons:
|
|
1222
|
+
hideSortIcons: c,
|
|
1223
1223
|
type: "number",
|
|
1224
1224
|
align: "left",
|
|
1225
1225
|
headerAlign: "left",
|
|
@@ -1227,7 +1227,7 @@ const Pt = (a) => {
|
|
|
1227
1227
|
flex: 0.6
|
|
1228
1228
|
}
|
|
1229
1229
|
], h = [
|
|
1230
|
-
...
|
|
1230
|
+
...x.slice(0, 3),
|
|
1231
1231
|
{
|
|
1232
1232
|
field: "chevron",
|
|
1233
1233
|
headerName: "",
|
|
@@ -1240,14 +1240,18 @@ const Pt = (a) => {
|
|
|
1240
1240
|
headerAlign: "right",
|
|
1241
1241
|
width: 20
|
|
1242
1242
|
}
|
|
1243
|
-
], v = g.useMemo(() => n.map((
|
|
1244
|
-
...
|
|
1245
|
-
id:
|
|
1246
|
-
priority: Mt(
|
|
1247
|
-
})), [n]),
|
|
1248
|
-
const
|
|
1249
|
-
t?.(
|
|
1250
|
-
},
|
|
1243
|
+
], v = g.useMemo(() => n.map((y, M) => ({
|
|
1244
|
+
...y,
|
|
1245
|
+
id: M,
|
|
1246
|
+
priority: Mt(y)
|
|
1247
|
+
})), [n]), B = (y) => {
|
|
1248
|
+
const f = y.target.closest("[data-id]")?.getAttribute("data-id"), E = n[Number(f)];
|
|
1249
|
+
t?.(E?.guid ?? "");
|
|
1250
|
+
}, N = (y) => {
|
|
1251
|
+
c || B(y);
|
|
1252
|
+
}, C = (y) => {
|
|
1253
|
+
c && B(y);
|
|
1254
|
+
}, A = (y) => v.find((M) => M.guid === y)?.id;
|
|
1251
1255
|
return /* @__PURE__ */ e(
|
|
1252
1256
|
ae,
|
|
1253
1257
|
{
|
|
@@ -1262,29 +1266,31 @@ const Pt = (a) => {
|
|
|
1262
1266
|
children: /* @__PURE__ */ e(
|
|
1263
1267
|
Ue,
|
|
1264
1268
|
{
|
|
1265
|
-
columns:
|
|
1269
|
+
columns: c ? h : x,
|
|
1266
1270
|
disableColumnFilter: !0,
|
|
1267
1271
|
disableColumnMenu: !0,
|
|
1268
1272
|
hideFooter: !0,
|
|
1269
1273
|
initialState: { sorting: { sortModel: m } },
|
|
1270
|
-
onRowClick: (
|
|
1271
|
-
o(), p(T.DEBTS_CLICK_TABLE_ROW, { account_guid:
|
|
1274
|
+
onRowClick: (y) => {
|
|
1275
|
+
o(), p(T.DEBTS_CLICK_TABLE_ROW, { account_guid: y.row.guid });
|
|
1272
1276
|
},
|
|
1273
|
-
onSortModelChange: (
|
|
1274
|
-
|
|
1277
|
+
onSortModelChange: (y) => {
|
|
1278
|
+
u(y), p(T.DEBTS_CLICK_TABLE_SORT);
|
|
1275
1279
|
},
|
|
1276
1280
|
rows: v,
|
|
1277
1281
|
slotProps: {
|
|
1278
1282
|
baseIconButton: { color: "secondary", sx: { ml: 8 } },
|
|
1279
1283
|
row: {
|
|
1280
|
-
onMouseEnter:
|
|
1281
|
-
onMouseLeave: () => t?.("")
|
|
1284
|
+
onMouseEnter: N,
|
|
1285
|
+
onMouseLeave: () => !c && t?.(""),
|
|
1286
|
+
onTouchStart: C,
|
|
1287
|
+
onClick: c ? C : void 0
|
|
1282
1288
|
}
|
|
1283
1289
|
},
|
|
1284
1290
|
sortModel: m,
|
|
1285
1291
|
sortingOrder: ["asc", "desc"],
|
|
1286
1292
|
sx: {
|
|
1287
|
-
[`& .MuiDataGrid-row[data-id="${
|
|
1293
|
+
[`& .MuiDataGrid-row[data-id="${A(r)}"]`]: {
|
|
1288
1294
|
backgroundColor: i.palette.mode === "light" ? "#f8f9fb" : "#1f2329",
|
|
1289
1295
|
filter: "brightness(98%)"
|
|
1290
1296
|
}
|
|
@@ -1319,24 +1325,24 @@ const Pt = (a) => {
|
|
|
1319
1325
|
}
|
|
1320
1326
|
);
|
|
1321
1327
|
}, Lt = D(({ buttonEl: a, onClose: n }) => {
|
|
1322
|
-
const { onEvent: r } =
|
|
1328
|
+
const { onEvent: r } = F(), { debts: t } = S(), { selectedDebtPriority: o, setSelectedDebtPriority: i } = L(), p = !!a, c = [
|
|
1323
1329
|
{
|
|
1324
|
-
priority:
|
|
1330
|
+
priority: P.FASTEST_PAYOFF_FIRST,
|
|
1325
1331
|
text: t.priority_sort_fastest_payoff
|
|
1326
1332
|
},
|
|
1327
1333
|
{
|
|
1328
|
-
priority:
|
|
1334
|
+
priority: P.HIGHEST_INTEREST,
|
|
1329
1335
|
text: t.priority_sort_highest_interest
|
|
1330
1336
|
},
|
|
1331
1337
|
{
|
|
1332
|
-
priority:
|
|
1338
|
+
priority: P.LOWEST_BALANCE,
|
|
1333
1339
|
text: t.priority_sort_lowest_balance
|
|
1334
1340
|
},
|
|
1335
1341
|
{
|
|
1336
|
-
priority:
|
|
1342
|
+
priority: P.HIGHEST_BALANCE,
|
|
1337
1343
|
text: t.priority_sort_highest_balance
|
|
1338
1344
|
}
|
|
1339
|
-
],
|
|
1345
|
+
], d = (m) => {
|
|
1340
1346
|
i(m), r(T.DEBTS_CLICK_PRIORITY, { debts_priority: m });
|
|
1341
1347
|
};
|
|
1342
1348
|
return /* @__PURE__ */ e(
|
|
@@ -1354,10 +1360,10 @@ const Pt = (a) => {
|
|
|
1354
1360
|
vertical: "top",
|
|
1355
1361
|
horizontal: "left"
|
|
1356
1362
|
},
|
|
1357
|
-
children: /* @__PURE__ */ e(ye, { children:
|
|
1363
|
+
children: /* @__PURE__ */ e(ye, { children: c.map(({ priority: m, text: u }) => /* @__PURE__ */ s(
|
|
1358
1364
|
Je,
|
|
1359
1365
|
{
|
|
1360
|
-
onClick: () =>
|
|
1366
|
+
onClick: () => d(m),
|
|
1361
1367
|
sx: {
|
|
1362
1368
|
bgcolor: o === m ? "primary.main" : void 0,
|
|
1363
1369
|
color: o === m ? "#fff" : void 0,
|
|
@@ -1373,7 +1379,7 @@ const Pt = (a) => {
|
|
|
1373
1379
|
}
|
|
1374
1380
|
},
|
|
1375
1381
|
children: [
|
|
1376
|
-
/* @__PURE__ */ e(l, { color: "inherit", variant: "Small", children:
|
|
1382
|
+
/* @__PURE__ */ e(l, { color: "inherit", variant: "Small", children: u }),
|
|
1377
1383
|
o === m && /* @__PURE__ */ e(fe, { color: "inherit", filled: !0, fontSize: "small" })
|
|
1378
1384
|
]
|
|
1379
1385
|
},
|
|
@@ -1382,59 +1388,59 @@ const Pt = (a) => {
|
|
|
1382
1388
|
}
|
|
1383
1389
|
);
|
|
1384
1390
|
}), $t = D(() => {
|
|
1385
|
-
const { onEvent: a } =
|
|
1391
|
+
const { onEvent: a } = F(), { debts: n } = S(), { selectedDebtPriority: r } = L(), [t, o] = g.useState(null), i = (m) => {
|
|
1386
1392
|
o(m.currentTarget), a(T.DEBTS_CLICK_PRIORITIZE);
|
|
1387
1393
|
}, p = () => {
|
|
1388
1394
|
o(null);
|
|
1389
|
-
},
|
|
1390
|
-
[
|
|
1391
|
-
[
|
|
1392
|
-
[
|
|
1393
|
-
[
|
|
1395
|
+
}, c = !!t, d = g.useMemo(() => ({
|
|
1396
|
+
[P.FASTEST_PAYOFF_FIRST]: n.priority_sort_fastest_payoff,
|
|
1397
|
+
[P.HIGHEST_INTEREST]: n.priority_sort_highest_interest,
|
|
1398
|
+
[P.HIGHEST_BALANCE]: n.priority_sort_highest_balance,
|
|
1399
|
+
[P.LOWEST_BALANCE]: n.priority_sort_lowest_balance
|
|
1394
1400
|
})[r] ?? n.priority_sort_lowest_balance, [r]);
|
|
1395
|
-
return /* @__PURE__ */ s(
|
|
1396
|
-
/* @__PURE__ */ e(Rt, { buttonText:
|
|
1401
|
+
return /* @__PURE__ */ s(_, { children: [
|
|
1402
|
+
/* @__PURE__ */ e(Rt, { buttonText: d, isOpen: c, onClick: i }),
|
|
1397
1403
|
/* @__PURE__ */ e(Lt, { buttonEl: t, onClose: p })
|
|
1398
1404
|
] });
|
|
1399
1405
|
}), Ht = (a, n, r = 0) => {
|
|
1400
|
-
const t = a.map((
|
|
1406
|
+
const t = a.map((d) => ({ ...d }));
|
|
1401
1407
|
ge(t, n);
|
|
1402
1408
|
const o = /* @__PURE__ */ new Date(), i = [];
|
|
1403
|
-
let p = 0,
|
|
1404
|
-
for (const
|
|
1409
|
+
let p = 0, c = 1;
|
|
1410
|
+
for (const d of t)
|
|
1405
1411
|
i.push({
|
|
1406
|
-
...
|
|
1412
|
+
...d,
|
|
1407
1413
|
// Start with the initial balance
|
|
1408
|
-
dataset: [{ x: new Date(o), y:
|
|
1414
|
+
dataset: [{ x: new Date(o), y: d.balance }]
|
|
1409
1415
|
});
|
|
1410
|
-
for (; t.some((
|
|
1411
|
-
let
|
|
1412
|
-
for (const [
|
|
1416
|
+
for (; t.some((d) => d.balance >= 0.01 && !d.is_impossible); ) {
|
|
1417
|
+
let d = !1, m = !1, u = !1;
|
|
1418
|
+
for (const [x, h] of t.entries()) {
|
|
1413
1419
|
if (h.balance <= 0.01) continue;
|
|
1414
|
-
const v = i[
|
|
1415
|
-
let
|
|
1416
|
-
!
|
|
1417
|
-
const b = Math.min(h.balance,
|
|
1418
|
-
if (b <=
|
|
1419
|
-
h.is_impossible = !0, i[
|
|
1420
|
+
const v = i[x].dataset, N = (h.interest_rate ?? 0) / 100 / 12, C = h.balance * N, A = h.monthly_payment ?? 0;
|
|
1421
|
+
let y = A, M = 0;
|
|
1422
|
+
!u && r > 0 && (y += r, u = !0), !m && p > 0 && (M = p, m = !0), h.balance += C;
|
|
1423
|
+
const b = Math.min(h.balance, y + M);
|
|
1424
|
+
if (b <= C) {
|
|
1425
|
+
h.is_impossible = !0, i[x].is_impossible = !0, i[x].priority = void 0, v.push({ x: new Date(o), y: h.balance });
|
|
1420
1426
|
continue;
|
|
1421
1427
|
}
|
|
1422
1428
|
h.balance -= b, h.balance = h.balance < 0.01 ? 0 : h.balance, v.push({
|
|
1423
1429
|
x: new Date(o),
|
|
1424
1430
|
y: Math.max(0, h.balance),
|
|
1425
1431
|
payment: b,
|
|
1426
|
-
extra:
|
|
1427
|
-
}), h.balance <= 0 && (p +=
|
|
1432
|
+
extra: M
|
|
1433
|
+
}), h.balance <= 0 && (p += A, i[x].projected_payoff_date = new Date(o)), b > 0 && (d = !0);
|
|
1428
1434
|
}
|
|
1429
|
-
|
|
1435
|
+
d && o.setMonth(o.getMonth() + 1);
|
|
1430
1436
|
}
|
|
1431
|
-
return i.forEach((
|
|
1432
|
-
(
|
|
1433
|
-
}), i.forEach((
|
|
1434
|
-
|
|
1437
|
+
return i.forEach((d) => {
|
|
1438
|
+
(d.interest_rate === void 0 || d.monthly_payment === void 0) && (d.projected_payoff_date = void 0);
|
|
1439
|
+
}), i.forEach((d) => {
|
|
1440
|
+
d.priority = !d.is_paid_off && !d.is_impossible ? c++ : void 0;
|
|
1435
1441
|
}), i;
|
|
1436
1442
|
}, Ot = D(({ onClick: a }) => {
|
|
1437
|
-
const { debts: n } =
|
|
1443
|
+
const { debts: n } = S(), { isDesktop: r } = Y(), { totalMonthlyPayments: t } = Z(), { monthlyCashFlowProfile: o } = V(), i = t + Number(o?.extra_payment), p = r ? n.paydown_button_long : n.paydown_button_short;
|
|
1438
1444
|
return /* @__PURE__ */ e(
|
|
1439
1445
|
xe,
|
|
1440
1446
|
{
|
|
@@ -1444,35 +1450,35 @@ const Pt = (a) => {
|
|
|
1444
1450
|
"aria-label": "extra-paydown",
|
|
1445
1451
|
onClick: a,
|
|
1446
1452
|
sx: { justifyContent: "start", minWidth: 100, mx: 4 },
|
|
1447
|
-
children:
|
|
1453
|
+
children: I(p, k(i, "0,0"))
|
|
1448
1454
|
}
|
|
1449
1455
|
);
|
|
1450
1456
|
}), Wt = ({ onBackClick: a, sx: n }) => {
|
|
1451
|
-
const [r, t] = g.useState(!1), [o, i] = g.useState(!1), [p,
|
|
1452
|
-
const O =
|
|
1453
|
-
return Ht(z,
|
|
1454
|
-
}, [z,
|
|
1457
|
+
const [r, t] = g.useState(!1), [o, i] = g.useState(!1), [p, c] = g.useState(!1), [d, m] = g.useState(""), { isDesktop: u, isMobile: x } = Y(), { debts: h } = S(), { onEvent: v } = F(), { onLoad: B } = ke(), { isCopyLoaded: N, isInitialized: C, setSelectedAccounts: A } = Ne(), { setSelectedAccount: y } = Re(), { selectedDebtPriority: M, setSelectedDebtChartData: b } = L(), { visibleDebtAccounts: f } = J(), { goalsLoaded: E, loadGoals: $, monthlyCashFlowProfile: R } = V(), { debts: z } = Z(), K = g.useMemo(() => {
|
|
1458
|
+
const O = R?.extra_payment ?? 0;
|
|
1459
|
+
return Ht(z, M, O);
|
|
1460
|
+
}, [z, M, R]);
|
|
1455
1461
|
g.useEffect(() => {
|
|
1456
|
-
|
|
1462
|
+
A(f), v(T.DEBTS_VIEW);
|
|
1457
1463
|
}, []), g.useEffect(() => {
|
|
1458
|
-
|
|
1459
|
-
}, [
|
|
1460
|
-
|
|
1461
|
-
|
|
1464
|
+
A(f);
|
|
1465
|
+
}, [f]), g.useEffect(() => {
|
|
1466
|
+
C && $().finally(() => {
|
|
1467
|
+
B?.("DebtsWidget");
|
|
1462
1468
|
});
|
|
1463
|
-
}, [
|
|
1469
|
+
}, [C]);
|
|
1464
1470
|
const oe = (O) => m(O), ie = () => {
|
|
1465
|
-
const O =
|
|
1466
|
-
O &&
|
|
1471
|
+
const O = f.find((ee) => ee.guid === d), le = K.find((ee) => ee.guid === d);
|
|
1472
|
+
O && y(O), le && b(le), t(!0);
|
|
1467
1473
|
}, Ce = () => v(T.DEBTS_CLICK_FILTER), Se = () => {
|
|
1468
|
-
|
|
1474
|
+
c(!0), v(T.DEBTS_CLICK_SNOWBALL_CTA);
|
|
1469
1475
|
}, ve = () => {
|
|
1470
1476
|
i(!0), v(T.DEBTS_CLICK_PAYDOWN);
|
|
1471
1477
|
};
|
|
1472
|
-
return !E || !
|
|
1478
|
+
return !E || !N || !C ? /* @__PURE__ */ e(et, {}) : /* @__PURE__ */ s(
|
|
1473
1479
|
Ge,
|
|
1474
1480
|
{
|
|
1475
|
-
accountOptions:
|
|
1481
|
+
accountOptions: f,
|
|
1476
1482
|
actions: [
|
|
1477
1483
|
/* @__PURE__ */ e($t, {}, "prioritize-debts"),
|
|
1478
1484
|
/* @__PURE__ */ e(Ot, { onClick: ve }, "extra-paydown")
|
|
@@ -1482,25 +1488,25 @@ const Pt = (a) => {
|
|
|
1482
1488
|
sx: n,
|
|
1483
1489
|
title: h.title,
|
|
1484
1490
|
children: [
|
|
1485
|
-
/* @__PURE__ */ s(w, { sx: { px:
|
|
1491
|
+
/* @__PURE__ */ s(w, { sx: { px: u ? "48px" : "24px" }, children: [
|
|
1486
1492
|
/* @__PURE__ */ s(
|
|
1487
1493
|
w,
|
|
1488
1494
|
{
|
|
1489
1495
|
sx: {
|
|
1490
|
-
alignItems:
|
|
1491
|
-
flexDirection:
|
|
1492
|
-
mx:
|
|
1496
|
+
alignItems: x ? "flex-start" : "flex-end",
|
|
1497
|
+
flexDirection: x ? "column" : "row",
|
|
1498
|
+
mx: x ? "-12px" : 0
|
|
1493
1499
|
},
|
|
1494
1500
|
children: [
|
|
1495
1501
|
/* @__PURE__ */ e(
|
|
1496
1502
|
we,
|
|
1497
1503
|
{
|
|
1498
1504
|
debts: K,
|
|
1499
|
-
height:
|
|
1500
|
-
hoveredDebtGuid:
|
|
1505
|
+
height: x ? 250 : void 0,
|
|
1506
|
+
hoveredDebtGuid: d,
|
|
1501
1507
|
onClickArea: ie,
|
|
1502
1508
|
onHoverArea: oe,
|
|
1503
|
-
sx: { mr:
|
|
1509
|
+
sx: { mr: x ? "4px" : "-48px" }
|
|
1504
1510
|
}
|
|
1505
1511
|
),
|
|
1506
1512
|
/* @__PURE__ */ e(
|
|
@@ -1508,17 +1514,17 @@ const Pt = (a) => {
|
|
|
1508
1514
|
{
|
|
1509
1515
|
debts: K,
|
|
1510
1516
|
onClickCta: Se,
|
|
1511
|
-
sx: { mb:
|
|
1517
|
+
sx: { mb: x ? "0px" : "64px" }
|
|
1512
1518
|
}
|
|
1513
1519
|
)
|
|
1514
1520
|
]
|
|
1515
1521
|
}
|
|
1516
1522
|
),
|
|
1517
|
-
/* @__PURE__ */ e(w, { sx: { mx:
|
|
1523
|
+
/* @__PURE__ */ e(w, { sx: { mx: x ? "-24px" : 0 }, children: /* @__PURE__ */ e(
|
|
1518
1524
|
Ft,
|
|
1519
1525
|
{
|
|
1520
1526
|
debts: K,
|
|
1521
|
-
hoveredDebtGuid:
|
|
1527
|
+
hoveredDebtGuid: d,
|
|
1522
1528
|
onClickRow: ie,
|
|
1523
1529
|
onHoverRow: oe
|
|
1524
1530
|
}
|
|
@@ -1528,7 +1534,7 @@ const Pt = (a) => {
|
|
|
1528
1534
|
ct,
|
|
1529
1535
|
{
|
|
1530
1536
|
isOpen: p,
|
|
1531
|
-
onClose: () =>
|
|
1537
|
+
onClose: () => c(!1)
|
|
1532
1538
|
}
|
|
1533
1539
|
),
|
|
1534
1540
|
/* @__PURE__ */ e(Dt, { isOpen: r, onClose: () => t(!1) }),
|