@mx-cartographer/experiences 7.4.2 → 7.4.4
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-gke-5zMF.mjs → AccountDetailsContent-COMjOzwr.mjs} +5 -5
- package/dist/{AccountDetailsHeader-CRzfuFA2.mjs → AccountDetailsHeader-Cbi5G6fJ.mjs} +2 -2
- package/dist/{AccountFields-CPkGZ3SD.mjs → AccountFields-Cd_nOWmf.mjs} +1 -1
- package/dist/{AccountListItem-D4uG9yC-.mjs → AccountListItem-DxY4cCF1.mjs} +2 -2
- package/dist/{BudgetUtil-wjoNuj7B.mjs → BudgetUtil-Df2nII9u.mjs} +1 -1
- package/dist/{CurrencyInput-xH-hqry9.mjs → CurrencyInput-BFKcs-_K.mjs} +1 -1
- package/dist/{CurrencyText-kyC1aseI.mjs → CurrencyText-Dr0EZ7bp.mjs} +1 -1
- package/dist/{FinstrongStore-CfD6bbJk.mjs → FinstrongStore-BIrX0Xg2.mjs} +126 -116
- package/dist/{GoalStore-j6QYHgEa.mjs → GoalStore-CrNhjvNc.mjs} +1 -1
- package/dist/{LineChart-DttMO7uS.mjs → LineChart-bc1D9xBE.mjs} +81 -81
- package/dist/{ManageIncome-CU5C0AeO.mjs → ManageIncome-A69EUO5u.mjs} +3 -3
- package/dist/{NotificationSettings-DI5B1spM.mjs → NotificationSettings-CNmJWVeI.mjs} +2 -2
- package/dist/{NumberFormatting-Buh7u8Oi.mjs → NumberFormatting-DjTD0t3W.mjs} +9 -9
- package/dist/{OriginalBalanceAction-CCmnsd7y.mjs → OriginalBalanceAction-DK8_LkPz.mjs} +2 -2
- package/dist/{RecurringSettings-Cm5Bqcai.mjs → RecurringSettings-B0uObPlD.mjs} +2 -2
- package/dist/{RecurringTransactions-CngsRZ3K.mjs → RecurringTransactions-BqijW_8S.mjs} +1 -1
- package/dist/{RecurringTransactionsStore-Bc1wCiNB.mjs → RecurringTransactionsStore-BhBUVm9a.mjs} +1 -1
- package/dist/{SpendingLegend-B2BYr8B4.mjs → SpendingLegend-BbrZWbFX.mjs} +2 -2
- package/dist/{TransactionDetails-CtbBBSoU.mjs → TransactionDetails-COH0OKNG.mjs} +2 -2
- package/dist/accounts/index.es.js +8 -8
- package/dist/budgets/index.es.js +5 -5
- package/dist/cashflow/index.es.js +7 -7
- package/dist/common/index.es.js +11 -11
- package/dist/debts/index.es.js +4 -4
- package/dist/finstrong/constants/index.d.ts +0 -11
- package/dist/finstrong/index.es.js +685 -684
- package/dist/finstrong/stores/FinstrongStore.d.ts +4 -0
- package/dist/goals/index.es.js +7 -7
- package/dist/investments/index.es.js +1 -1
- package/dist/networth/index.es.js +3 -3
- package/dist/notifications/index.es.js +1 -1
- package/dist/recurringtransactions/index.es.js +8 -8
- package/dist/settings/index.es.js +2 -2
- package/dist/spending/index.es.js +3 -3
- package/dist/transactions/index.es.js +4 -4
- package/dist/trends/index.es.js +4 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [7.4.4] - 12-11-2025
|
|
2
|
+
|
|
3
|
+
- **FIXED** - `FinStrong` - Missing data issue and loading issue fix
|
|
4
|
+
|
|
5
|
+
## [7.4.3] - 12-11-2025
|
|
6
|
+
|
|
7
|
+
- **FIXED** - `FinStrong` - Cosmetic Changes
|
|
8
|
+
|
|
1
9
|
## [7.4.2] - 12-10-2025
|
|
2
10
|
|
|
3
11
|
- **UPDATED** - `InsightsMicroWidget` - width bug on zero state fixed
|
|
@@ -11,9 +11,9 @@ import M from "@mui/material/Divider";
|
|
|
11
11
|
import v from "@mui/material/ListItem";
|
|
12
12
|
import N from "@mui/material/ListItemButton";
|
|
13
13
|
import w from "@mui/material/ListItemText";
|
|
14
|
-
import { u as D } from "./AccountDetailsHeader-
|
|
14
|
+
import { u as D } from "./AccountDetailsHeader-Cbi5G6fJ.mjs";
|
|
15
15
|
import { d as z, u as E, g as O, h as X } from "./hooks-C41HAxM5.mjs";
|
|
16
|
-
import { A as at } from "./AccountListItem-
|
|
16
|
+
import { A as at } from "./AccountListItem-DxY4cCF1.mjs";
|
|
17
17
|
import { A as k } from "./WidgetContainer-6dsjtOVg.mjs";
|
|
18
18
|
import { D as V, f as B, a as K } from "./Dialog-BPTr3qHE.mjs";
|
|
19
19
|
import { b as h } from "./Localization-2MODESHW.mjs";
|
|
@@ -37,14 +37,14 @@ import { LocalizationProvider as ft } from "@mui/x-date-pickers-pro";
|
|
|
37
37
|
import bt from "@mui/material/MenuItem";
|
|
38
38
|
import At from "@mui/material/Select";
|
|
39
39
|
import Tt from "@mui/material/TextField";
|
|
40
|
-
import { C as St } from "./CurrencyInput-
|
|
41
|
-
import { b as Dt } from "./AccountFields-
|
|
40
|
+
import { C as St } from "./CurrencyInput-BFKcs-_K.mjs";
|
|
41
|
+
import { b as Dt } from "./AccountFields-Cd_nOWmf.mjs";
|
|
42
42
|
import Et from "@mui/material/Alert";
|
|
43
43
|
import yt from "@mui/material/AlertTitle";
|
|
44
44
|
import xt from "@mui/material/Link";
|
|
45
45
|
import wt from "@mui/material/Paper";
|
|
46
46
|
import { subDays as kt, startOfToday as It, endOfToday as Mt } from "date-fns";
|
|
47
|
-
import { T as vt, a as Lt } from "./TransactionDetails-
|
|
47
|
+
import { T as vt, a as Lt } from "./TransactionDetails-COH0OKNG.mjs";
|
|
48
48
|
import { T as j } from "./TabContentContainer-j01JYR_7.mjs";
|
|
49
49
|
const U = ({
|
|
50
50
|
children: e,
|
|
@@ -4,7 +4,7 @@ import e from "@mui/material/Stack";
|
|
|
4
4
|
import { H3 as _, InstitutionLogo as x, Text as a, H2 as T } from "@mxenabled/mxui";
|
|
5
5
|
import d from "react";
|
|
6
6
|
import { G as N, d as f, m as D, f as w, u as E } from "./hooks-C41HAxM5.mjs";
|
|
7
|
-
import { g as I } from "./AccountFields-
|
|
7
|
+
import { g as I } from "./AccountFields-Cd_nOWmf.mjs";
|
|
8
8
|
import G from "@mui/material/Card";
|
|
9
9
|
import v from "@mui/material/CardContent";
|
|
10
10
|
import O from "@mui/material/CardHeader";
|
|
@@ -12,7 +12,7 @@ import { L as H } from "./Loader-DUaFpDGv.mjs";
|
|
|
12
12
|
import { f as M, a as P } from "./Dialog-BPTr3qHE.mjs";
|
|
13
13
|
import { I as L, P as U, S as j } from "./Account-01wOyrH1.mjs";
|
|
14
14
|
import { u as z } from "./useAccountDisplayName-CMMlIOXF.mjs";
|
|
15
|
-
import { f as B } from "./NumberFormatting-
|
|
15
|
+
import { f as B } from "./NumberFormatting-DjTD0t3W.mjs";
|
|
16
16
|
const p = () => {
|
|
17
17
|
if (!d.useContext(N))
|
|
18
18
|
throw new Error("useCategoryUiStore() must be used within the GlobalDataContext");
|
|
@@ -2,7 +2,7 @@ import { jsx as u } from "react/jsx-runtime";
|
|
|
2
2
|
import { Icon as p, Text as y } from "@mxenabled/mxui";
|
|
3
3
|
import { F as m, A as d, a as v, P as h, b as F } from "./ConnectDrawer-CuUj16NH.mjs";
|
|
4
4
|
import { i as T, u as A, a as D, b as g, c as O } from "./Accounts-D7QljYas.mjs";
|
|
5
|
-
import { f as _, i as b, a as N, b as S } from "./NumberFormatting-
|
|
5
|
+
import { f as _, i as b, a as N, b as S } from "./NumberFormatting-DjTD0t3W.mjs";
|
|
6
6
|
import { b as i } from "./Localization-2MODESHW.mjs";
|
|
7
7
|
import { f as o, a as f } from "./Dialog-BPTr3qHE.mjs";
|
|
8
8
|
const w = (l, e) => {
|
|
@@ -10,11 +10,11 @@ import B from "@mui/material/styles/useTheme";
|
|
|
10
10
|
import { InstitutionLogo as L, Text as o } from "@mxenabled/mxui";
|
|
11
11
|
import { Error as A } from "@mxenabled/mx-icons";
|
|
12
12
|
import { I as j } from "./IconBacking-B9oC6uL2.mjs";
|
|
13
|
-
import { g as T } from "./AccountFields-
|
|
13
|
+
import { g as T } from "./AccountFields-Cd_nOWmf.mjs";
|
|
14
14
|
import { u as X } from "./useAccountDisplayName-CMMlIOXF.mjs";
|
|
15
15
|
import { d } from "./ConnectDrawer-CuUj16NH.mjs";
|
|
16
16
|
import { u as $ } from "./hooks-C41HAxM5.mjs";
|
|
17
|
-
import { f as k } from "./NumberFormatting-
|
|
17
|
+
import { f as k } from "./NumberFormatting-DjTD0t3W.mjs";
|
|
18
18
|
const w = {
|
|
19
19
|
gridRow: 1,
|
|
20
20
|
gridColumn: 1,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { i as _ } from "./hooks-C41HAxM5.mjs";
|
|
2
2
|
import { b as d } from "./Category-CevNQ03n.mjs";
|
|
3
3
|
import { b as f } from "./Localization-2MODESHW.mjs";
|
|
4
|
-
import { f as l } from "./NumberFormatting-
|
|
4
|
+
import { f as l } from "./NumberFormatting-DjTD0t3W.mjs";
|
|
5
5
|
const p = (n, e) => n.find((t) => t.guid === e), B = (n, e) => n.find((t) => t.guid === e), T = (n, e) => {
|
|
6
6
|
const t = n.find((r) => r.subCategories.find((a) => a.guid === e));
|
|
7
7
|
if (t)
|
|
@@ -4,7 +4,7 @@ import { css as q } from "@mxenabled/cssinjs";
|
|
|
4
4
|
import { v4 as B } from "uuid";
|
|
5
5
|
import { useTokens as L, TextField as O, P as _ } from "@mxenabled/mxui";
|
|
6
6
|
import { b as y, g as C } from "./Localization-2MODESHW.mjs";
|
|
7
|
-
import { g as W, C as j, f as g, M as b } from "./NumberFormatting-
|
|
7
|
+
import { g as W, C as j, f as g, M as b } from "./NumberFormatting-DjTD0t3W.mjs";
|
|
8
8
|
import { u as D } from "./hooks-C41HAxM5.mjs";
|
|
9
9
|
const F = ({
|
|
10
10
|
allowDecimals: o = !0,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { makeAutoObservable as D, runInAction as d } from "mobx";
|
|
2
2
|
import { format as R } from "date-fns/format";
|
|
3
3
|
import { fromUnixTime as b } from "date-fns/fromUnixTime";
|
|
4
|
-
import { getUnixTime as
|
|
4
|
+
import { getUnixTime as _ } from "date-fns/getUnixTime";
|
|
5
5
|
import { subMonths as H } from "date-fns/subMonths";
|
|
6
6
|
import { F as x, A as h } from "./Fetch-DecPFeGU.mjs";
|
|
7
|
-
import { jsx as c, jsxs as
|
|
7
|
+
import { jsx as c, jsxs as C } from "react/jsx-runtime";
|
|
8
8
|
import { addDays as v } from "date-fns/addDays";
|
|
9
9
|
import { addMonths as M } from "date-fns/addMonths";
|
|
10
10
|
import { addYears as G } from "date-fns/addYears";
|
|
@@ -14,18 +14,18 @@ import { differenceInWeeks as A } from "date-fns/differenceInWeeks";
|
|
|
14
14
|
import { startOfToday as N } from "date-fns/startOfToday";
|
|
15
15
|
import { ChevronRight as P, Check as k } from "@mxenabled/mx-icons";
|
|
16
16
|
import $ from "react";
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import
|
|
23
|
-
import
|
|
24
|
-
import
|
|
17
|
+
import z from "@mui/material/Avatar";
|
|
18
|
+
import K from "@mui/material/Box";
|
|
19
|
+
import B from "@mui/material/Divider";
|
|
20
|
+
import Y from "@mui/material/List";
|
|
21
|
+
import U from "@mui/material/ListItem";
|
|
22
|
+
import X from "@mui/material/ListItemAvatar";
|
|
23
|
+
import V from "@mui/material/ListItemButton";
|
|
24
|
+
import W from "@mui/material/ListItemText";
|
|
25
25
|
import { Text as y } from "@mxenabled/mxui";
|
|
26
|
-
import { f as
|
|
27
|
-
import { b as
|
|
28
|
-
import { f as q } from "./NumberFormatting-
|
|
26
|
+
import { f as O, a as T } from "./Dialog-BPTr3qHE.mjs";
|
|
27
|
+
import { b as j } from "./Localization-2MODESHW.mjs";
|
|
28
|
+
import { f as q } from "./NumberFormatting-DjTD0t3W.mjs";
|
|
29
29
|
const m = {
|
|
30
30
|
creditScore: {
|
|
31
31
|
poor: 600,
|
|
@@ -53,9 +53,9 @@ const m = {
|
|
|
53
53
|
OFF_TRACK: "OFF TRACK",
|
|
54
54
|
MISSING: "MISSING DATA"
|
|
55
55
|
};
|
|
56
|
-
var
|
|
57
|
-
const J = ({ list: e, onClickItem: t }) => /* @__PURE__ */ c(
|
|
58
|
-
|
|
56
|
+
var I = /* @__PURE__ */ ((e) => (e.Connections = "connections", e.CreditScore = "credit_score", e.DateOfBirth = "date_of_birth", e.MonthlyIncome = "monthly_income", e))(I || {});
|
|
57
|
+
const J = ({ list: e, onClickItem: t }) => /* @__PURE__ */ c(K, { sx: { bgcolor: "background.paper" }, children: /* @__PURE__ */ c(
|
|
58
|
+
Y,
|
|
59
59
|
{
|
|
60
60
|
sx: {
|
|
61
61
|
"& .MuiListItemSecondaryAction-root": {
|
|
@@ -63,14 +63,14 @@ const J = ({ list: e, onClickItem: t }) => /* @__PURE__ */ c(B, { sx: { bgcolor:
|
|
|
63
63
|
pr: 24
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
|
-
children: e.map((
|
|
67
|
-
/* @__PURE__ */ c(
|
|
68
|
-
/* @__PURE__ */ c(
|
|
69
|
-
|
|
66
|
+
children: e.map((n, r) => /* @__PURE__ */ C($.Fragment, { children: [
|
|
67
|
+
/* @__PURE__ */ c(U, { secondaryAction: /* @__PURE__ */ c(P, {}), children: /* @__PURE__ */ C(V, { onClick: () => t(n.key), children: [
|
|
68
|
+
/* @__PURE__ */ c(X, { children: /* @__PURE__ */ c(
|
|
69
|
+
z,
|
|
70
70
|
{
|
|
71
71
|
sx: {
|
|
72
72
|
bgcolor: "primary.main",
|
|
73
|
-
...!
|
|
73
|
+
...!n.isComplete && {
|
|
74
74
|
bgcolor: "transparent",
|
|
75
75
|
borderColor: "action.active",
|
|
76
76
|
borderStyle: "solid",
|
|
@@ -78,19 +78,19 @@ const J = ({ list: e, onClickItem: t }) => /* @__PURE__ */ c(B, { sx: { bgcolor:
|
|
|
78
78
|
color: "action.active"
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
|
-
children:
|
|
81
|
+
children: n.icon
|
|
82
82
|
}
|
|
83
83
|
) }),
|
|
84
84
|
/* @__PURE__ */ c(
|
|
85
|
-
|
|
85
|
+
W,
|
|
86
86
|
{
|
|
87
|
-
primary: /* @__PURE__ */ c(y, { sx: { color: "text.secondary" }, variant: "caption", children:
|
|
88
|
-
secondary: /* @__PURE__ */ c(y, { sx: { color: "text.primary", fontWeight: 600 }, variant: "body1", children:
|
|
87
|
+
primary: /* @__PURE__ */ c(y, { sx: { color: "text.secondary" }, variant: "caption", children: n.primaryText }),
|
|
88
|
+
secondary: /* @__PURE__ */ c(y, { sx: { color: "text.primary", fontWeight: 600 }, variant: "body1", children: n.secondaryText })
|
|
89
89
|
}
|
|
90
90
|
)
|
|
91
91
|
] }) }),
|
|
92
|
-
|
|
93
|
-
] },
|
|
92
|
+
r < e.length - 1 && /* @__PURE__ */ c(B, { sx: { color: "divider", ml: 68 } })
|
|
93
|
+
] }, n.key))
|
|
94
94
|
}
|
|
95
95
|
) }), Gt = J, Lt = (e) => e * (180 / Math.PI), wt = (e, t) => [
|
|
96
96
|
{
|
|
@@ -129,86 +129,86 @@ const J = ({ list: e, onClickItem: t }) => /* @__PURE__ */ c(B, { sx: { bgcolor:
|
|
|
129
129
|
GOOD: "#FFC02C",
|
|
130
130
|
VERY_GOOD: "#29C76B",
|
|
131
131
|
EXCEPTIONAL: "#008A5A"
|
|
132
|
-
}, Nt = (e, t,
|
|
133
|
-
status:
|
|
132
|
+
}, Nt = (e, t, n) => e >= 300 && e < 580 ? {
|
|
133
|
+
status: n.poor,
|
|
134
134
|
color: t ? u.POOR : g.POOR
|
|
135
135
|
} : e >= 580 && e < 670 ? {
|
|
136
|
-
status:
|
|
136
|
+
status: n.fair,
|
|
137
137
|
color: t ? u.FAIR : g.FAIR
|
|
138
138
|
} : e >= 670 && e < 740 ? {
|
|
139
|
-
status:
|
|
139
|
+
status: n.good,
|
|
140
140
|
color: t ? u.GOOD : g.GOOD
|
|
141
141
|
} : e >= 740 && e < 800 ? {
|
|
142
|
-
status:
|
|
142
|
+
status: n.very_good,
|
|
143
143
|
color: t ? u.VERY_GOOD : g.VERY_GOOD
|
|
144
144
|
} : e >= 800 && e <= 850 ? {
|
|
145
|
-
status:
|
|
145
|
+
status: n.exceptional,
|
|
146
146
|
color: t ? u.EXCEPTIONAL : g.EXCEPTIONAL
|
|
147
|
-
} : { status:
|
|
147
|
+
} : { status: n.missing_data }, Pt = (e, t, n, r) => {
|
|
148
148
|
const o = e.reduce((i, l) => i + l.value, 0);
|
|
149
149
|
let a = 0;
|
|
150
150
|
const s = e.map((i) => {
|
|
151
|
-
const l = i.value / o * t, p =
|
|
151
|
+
const l = i.value / o * t, p = n + a, f = p + l;
|
|
152
152
|
return a += l, {
|
|
153
153
|
...i,
|
|
154
154
|
startAngle: p,
|
|
155
155
|
endAngle: f
|
|
156
156
|
};
|
|
157
157
|
});
|
|
158
|
-
return [s[
|
|
159
|
-
}, kt = (e, t,
|
|
158
|
+
return [s[r].startAngle, s[r].endAngle];
|
|
159
|
+
}, kt = (e, t, n, r, o) => {
|
|
160
160
|
let a = 0, s = 0;
|
|
161
|
-
const i = Math.floor(
|
|
162
|
-
return i >
|
|
163
|
-
}, $t = (e, t,
|
|
164
|
-
const
|
|
165
|
-
return [
|
|
166
|
-
},
|
|
161
|
+
const i = Math.floor(r), l = r - i;
|
|
162
|
+
return i > n ? (a = e, s = t) : i === n && l > 0 && (a = e, s = o), [a, s];
|
|
163
|
+
}, $t = (e, t, n = 0) => {
|
|
164
|
+
const r = e * Math.sin(t - n), o = -e * Math.cos(t - n);
|
|
165
|
+
return [r, o];
|
|
166
|
+
}, zt = ({
|
|
167
167
|
dynamicCopy: e,
|
|
168
168
|
fallbackLabel: t,
|
|
169
|
-
icon:
|
|
170
|
-
key:
|
|
169
|
+
icon: n,
|
|
170
|
+
key: r,
|
|
171
171
|
label: o,
|
|
172
172
|
value: a
|
|
173
173
|
}) => {
|
|
174
|
-
const s = !!a, i = s ? Q(
|
|
174
|
+
const s = !!a, i = s ? Q(r, a) : e && j(e, t) || t;
|
|
175
175
|
return {
|
|
176
|
-
icon: s ? /* @__PURE__ */ c(k, {}) :
|
|
176
|
+
icon: s ? /* @__PURE__ */ c(k, {}) : n,
|
|
177
177
|
isComplete: s,
|
|
178
|
-
key:
|
|
178
|
+
key: r,
|
|
179
179
|
primaryText: o,
|
|
180
180
|
secondaryText: i
|
|
181
181
|
};
|
|
182
182
|
}, Q = (e, t) => ({
|
|
183
|
-
[
|
|
184
|
-
[
|
|
185
|
-
})[e]?.(t) ?? String(t),
|
|
183
|
+
[I.DateOfBirth]: (r) => R(new Date(Number(r) * 1e3), "MMM d, yyyy"),
|
|
184
|
+
[I.MonthlyIncome]: (r) => q(Number(r), "0.00")
|
|
185
|
+
})[e]?.(t) ?? String(t), Kt = (e) => e !== null ? Math.round(e * 100) : null, Bt = (e) => {
|
|
186
186
|
const t = new Date((/* @__PURE__ */ new Date()).getFullYear(), e - 1, 1);
|
|
187
|
-
return
|
|
187
|
+
return O(t, T.MONTH_SHORT);
|
|
188
|
+
}, Yt = (e) => {
|
|
189
|
+
const { good: t, poor: n } = m.daysOfCashOnHand;
|
|
190
|
+
return e === null ? "MISSING" : e >= t ? "GOOD" : e >= n ? "FAIR" : "OFF_TRACK";
|
|
188
191
|
}, Ut = (e) => {
|
|
189
|
-
const { good: t, poor:
|
|
190
|
-
return e === null ? "MISSING" : e >= t ? "GOOD" : e >=
|
|
192
|
+
const { good: t, poor: n } = m.emergencySavings;
|
|
193
|
+
return e === null ? "MISSING" : e >= t ? "GOOD" : e >= n ? "FAIR" : "OFF_TRACK";
|
|
191
194
|
}, Xt = (e) => {
|
|
192
|
-
const { good: t, poor:
|
|
193
|
-
return e === null ? "MISSING" : e
|
|
195
|
+
const { good: t, poor: n } = m.spendToIncomeRatio;
|
|
196
|
+
return e === null ? "MISSING" : e < t ? "GOOD" : e < n ? "FAIR" : "OFF_TRACK";
|
|
194
197
|
}, Vt = (e) => {
|
|
195
|
-
const { good: t, poor:
|
|
196
|
-
return e === null ? "MISSING" : e
|
|
198
|
+
const { good: t, poor: n } = m.debtToIncomeRatio;
|
|
199
|
+
return e === null ? "MISSING" : e <= t ? "GOOD" : e <= n ? "FAIR" : "OFF_TRACK";
|
|
197
200
|
}, Wt = (e) => {
|
|
198
|
-
const { good: t, poor:
|
|
199
|
-
return e === null ? "MISSING" : e
|
|
200
|
-
}, jt = (e) => {
|
|
201
|
-
const
|
|
202
|
-
return e === null ? "MISSING" : e >= t ? "GOOD" : e >= r ? "FAIR" : "OFF_TRACK";
|
|
203
|
-
}, Z = (e) => e === null ? "MISSING" : e === 0 ? "GOOD" : "OFF_TRACK", zt = (e, t) => {
|
|
204
|
-
const r = Z(e), n = {
|
|
201
|
+
const { good: t, poor: n } = m.creditScore;
|
|
202
|
+
return e === null ? "MISSING" : e >= t ? "GOOD" : e >= n ? "FAIR" : "OFF_TRACK";
|
|
203
|
+
}, Z = (e) => e === null ? "MISSING" : e === 0 ? "GOOD" : "OFF_TRACK", jt = (e, t) => {
|
|
204
|
+
const n = Z(e), r = {
|
|
205
205
|
GOOD: t.count_good_description,
|
|
206
206
|
OFF_TRACK: t.count_off_track_description,
|
|
207
207
|
MISSING: t.count_missing_description
|
|
208
208
|
};
|
|
209
209
|
return {
|
|
210
|
-
cardState:
|
|
211
|
-
description: n
|
|
210
|
+
cardState: n,
|
|
211
|
+
description: r[n],
|
|
212
212
|
title: t.count_card_title
|
|
213
213
|
};
|
|
214
214
|
}, qt = (e) => ({
|
|
@@ -216,11 +216,11 @@ const J = ({ list: e, onClickItem: t }) => /* @__PURE__ */ c(B, { sx: { bgcolor:
|
|
|
216
216
|
[S.FAIR]: { backgroundColor: "warning.lighter", color: "warning.dark" },
|
|
217
217
|
[S.OFF_TRACK]: { backgroundColor: "error.lighter", color: "error.dark" },
|
|
218
218
|
[S.MISSING]: { backgroundColor: "divider", color: "text.secondary" }
|
|
219
|
-
})[e], tt = 1, et = 1,
|
|
219
|
+
})[e], tt = 1, et = 1, nt = {
|
|
220
220
|
1: M,
|
|
221
221
|
2: G,
|
|
222
222
|
3: v
|
|
223
|
-
},
|
|
223
|
+
}, rt = {
|
|
224
224
|
1: w,
|
|
225
225
|
2: (e, t) => A(e, t) / 2,
|
|
226
226
|
3: A,
|
|
@@ -232,44 +232,44 @@ const J = ({ list: e, onClickItem: t }) => /* @__PURE__ */ c(B, { sx: { bgcolor:
|
|
|
232
232
|
], Jt = ({
|
|
233
233
|
contribution: e,
|
|
234
234
|
goalAmount: t,
|
|
235
|
-
goalPeriod:
|
|
236
|
-
targetPeriod:
|
|
235
|
+
goalPeriod: n,
|
|
236
|
+
targetPeriod: r,
|
|
237
237
|
totalSaved: o
|
|
238
238
|
}) => {
|
|
239
239
|
const a = t - o;
|
|
240
240
|
if (a <= 0) return 0;
|
|
241
|
-
const s = N(), i =
|
|
241
|
+
const s = N(), i = nt[r], l = rt[e];
|
|
242
242
|
if (!i || !l) return a;
|
|
243
|
-
const p = i(s,
|
|
243
|
+
const p = i(s, n), f = l(p, s);
|
|
244
244
|
return Math.max(a / (f || 1), 1);
|
|
245
|
-
}, Qt = (e) => !e || e <= 0 ? "0%" : e >= 1e3 ? "100%" : `${Math.round(e / 10)}%`, Zt = (e) => E.find((
|
|
246
|
-
x:
|
|
247
|
-
y:
|
|
248
|
-
})), ot = (e) => e.sort((t,
|
|
249
|
-
x:
|
|
245
|
+
}, Qt = (e) => !e || e <= 0 ? "0%" : e >= 1e3 ? "100%" : `${Math.round(e / 10)}%`, Zt = (e) => E.find((n) => e < n.upperLimit)?.targetAmount ?? et, te = (e) => E.find((r) => e < r.upperLimit)?.contributionPeriodIndex ?? tt, ee = (e, t) => [...e].sort((r, o) => r.year === o.year ? r.month - o.month : r.year - o.year).map((r) => ({
|
|
246
|
+
x: O(new Date(0, r.month - 1, 1), T.MONTH_SHORT),
|
|
247
|
+
y: r[t]
|
|
248
|
+
})), ot = (e) => e.sort((t, n) => t.monthly_health_score_average.month - n.monthly_health_score_average.month).map((t) => ({
|
|
249
|
+
x: O(
|
|
250
250
|
new Date(0, t.monthly_health_score_average.month - 1, 1),
|
|
251
|
-
|
|
251
|
+
T.MONTH_SHORT
|
|
252
252
|
),
|
|
253
253
|
y: Math.round(t.monthly_health_score_average.average_health_score)
|
|
254
|
-
})), at = (e) => e.map(({ transaction:
|
|
255
|
-
...
|
|
256
|
-
})).sort((
|
|
254
|
+
})), at = (e) => e.map(({ transaction: n }) => ({
|
|
255
|
+
...n
|
|
256
|
+
})).sort((n, r) => r.date - n.date);
|
|
257
257
|
class F {
|
|
258
258
|
fetchInstance;
|
|
259
|
-
constructor(t,
|
|
260
|
-
this.fetchInstance = new x(t,
|
|
259
|
+
constructor(t, n, r) {
|
|
260
|
+
this.fetchInstance = new x(t, n, void 0, r);
|
|
261
261
|
}
|
|
262
262
|
calculateHealthScore = async () => this.fetchInstance.post(`${h.HEALTH_SCORES}/calculate`).then((t) => t.health_score);
|
|
263
263
|
getAverageHealthScores = async () => this.fetchInstance.get(`${h.HEALTH_SCORES}/monthly_averages`).then((t) => t);
|
|
264
264
|
getDebtSpend = async () => this.fetchInstance.get(`${h.HEALTH_SCORES}/transactions/debt_spend`).then((t) => t);
|
|
265
265
|
getIncome = async () => this.fetchInstance.get(`${h.HEALTH_SCORES}/transactions/income`).then((t) => t);
|
|
266
266
|
getMonthlySummaries = async () => this.fetchInstance.get(`${h.HEALTH_SCORES}/monthly_summaries`).then((t) => t);
|
|
267
|
-
getHealthScoreChangeReports = async (t,
|
|
268
|
-
getPeerScore = async (t) => this.fetchInstance.get(`${h.HEALTH_SCORES}/average/${t}`).then((
|
|
267
|
+
getHealthScoreChangeReports = async (t, n) => this.fetchInstance.get(`${h.HEALTH_SCORES}/change_report/from/${t}/to/${n}`).then((r) => r);
|
|
268
|
+
getPeerScore = async (t) => this.fetchInstance.get(`${h.HEALTH_SCORES}/average/${t}`).then((n) => n);
|
|
269
269
|
getSpendingFeeTransactions = async () => this.fetchInstance.get(`${h.HEALTH_SCORES}/transactions/spending_fee`).then((t) => t);
|
|
270
270
|
getStandardSpend = async () => this.fetchInstance.get(`${h.HEALTH_SCORES}/transactions/standard_spend`).then((t) => t);
|
|
271
271
|
}
|
|
272
|
-
class
|
|
272
|
+
class ne {
|
|
273
273
|
api = new F("/", "");
|
|
274
274
|
augmentedChartData = [];
|
|
275
275
|
averageHealthScores = [];
|
|
@@ -283,17 +283,25 @@ class re {
|
|
|
283
283
|
healthScoreChange;
|
|
284
284
|
healthScoreChangeReports = [];
|
|
285
285
|
peerScore = null;
|
|
286
|
+
isSpendingInitialized = !1;
|
|
287
|
+
isIncomeInitialized = !1;
|
|
286
288
|
constructor(t) {
|
|
287
289
|
this.globalStore = t, this.api = new F(t.endpoint, t.sessionToken, t.onError), D(this);
|
|
288
290
|
}
|
|
291
|
+
setSpendingInitialized = (t) => {
|
|
292
|
+
this.isSpendingInitialized = t;
|
|
293
|
+
};
|
|
294
|
+
setIncomeInitialized = (t) => {
|
|
295
|
+
this.isIncomeInitialized = t;
|
|
296
|
+
};
|
|
289
297
|
calculateHealthScore = async () => {
|
|
290
298
|
try {
|
|
291
299
|
const t = await this.api.calculateHealthScore();
|
|
292
|
-
let
|
|
300
|
+
let n = 0;
|
|
293
301
|
await this.loadHealthScoreChangeReports();
|
|
294
|
-
const
|
|
295
|
-
|
|
296
|
-
this.healthScore = t, this.healthScoreChange =
|
|
302
|
+
const r = t?.health_score || 0, o = this.healthScoreChangeReports.at(-1)?.older_health_score || 0;
|
|
303
|
+
n = r - o, d(() => {
|
|
304
|
+
this.healthScore = t, this.healthScoreChange = n;
|
|
297
305
|
});
|
|
298
306
|
} catch (t) {
|
|
299
307
|
console.error("Error calculating health score:", t);
|
|
@@ -330,38 +338,39 @@ class re {
|
|
|
330
338
|
}
|
|
331
339
|
};
|
|
332
340
|
loadIncome = async () => {
|
|
341
|
+
this.setIncomeInitialized(!1);
|
|
333
342
|
try {
|
|
334
343
|
const t = await this.api.getIncome();
|
|
335
344
|
d(() => {
|
|
336
|
-
this.incomeTransactions = t;
|
|
345
|
+
this.incomeTransactions = t, this.setIncomeInitialized(!0);
|
|
337
346
|
});
|
|
338
347
|
} catch (t) {
|
|
339
348
|
console.error("Error loading income:", t);
|
|
340
349
|
}
|
|
341
350
|
};
|
|
342
351
|
loadHealthScoreChangeReports = async () => {
|
|
343
|
-
const t =
|
|
352
|
+
const t = _(H(/* @__PURE__ */ new Date(), 2)), n = _(/* @__PURE__ */ new Date());
|
|
344
353
|
try {
|
|
345
|
-
const
|
|
354
|
+
const r = await this.api.getHealthScoreChangeReports(
|
|
346
355
|
t,
|
|
347
|
-
|
|
356
|
+
n
|
|
348
357
|
);
|
|
349
358
|
d(() => {
|
|
350
|
-
this.healthScoreChangeReports =
|
|
359
|
+
this.healthScoreChangeReports = r;
|
|
351
360
|
});
|
|
352
|
-
} catch (
|
|
353
|
-
console.error("Error loading health score change reports:",
|
|
361
|
+
} catch (r) {
|
|
362
|
+
console.error("Error loading health score change reports:", r);
|
|
354
363
|
}
|
|
355
364
|
};
|
|
356
365
|
loadPeerScore = async () => {
|
|
357
366
|
const t = R(b(this.globalStore.appDataStore.user.birthday), "yyyy");
|
|
358
367
|
try {
|
|
359
|
-
const
|
|
368
|
+
const n = await this.api.getPeerScore(t);
|
|
360
369
|
d(() => {
|
|
361
|
-
this.peerScore =
|
|
370
|
+
this.peerScore = n;
|
|
362
371
|
});
|
|
363
|
-
} catch (
|
|
364
|
-
console.error("Error loading peer score:",
|
|
372
|
+
} catch (n) {
|
|
373
|
+
console.error("Error loading peer score:", n);
|
|
365
374
|
}
|
|
366
375
|
};
|
|
367
376
|
loadAugmentedChartData = async () => {
|
|
@@ -376,19 +385,20 @@ class re {
|
|
|
376
385
|
};
|
|
377
386
|
getSpendingFeeTransactions = async () => {
|
|
378
387
|
try {
|
|
379
|
-
const t = await this.api.getSpendingFeeTransactions(),
|
|
388
|
+
const t = await this.api.getSpendingFeeTransactions(), n = at(t);
|
|
380
389
|
d(() => {
|
|
381
|
-
this.spendingFeeTransactions =
|
|
390
|
+
this.spendingFeeTransactions = n;
|
|
382
391
|
});
|
|
383
392
|
} catch (t) {
|
|
384
393
|
console.error(`Error occurred while getting spending fee transactions: ${t}`);
|
|
385
394
|
}
|
|
386
395
|
};
|
|
387
396
|
loadSpendTransactions = async () => {
|
|
397
|
+
this.setSpendingInitialized(!1);
|
|
388
398
|
try {
|
|
389
399
|
const t = await this.api.getStandardSpend();
|
|
390
400
|
d(() => {
|
|
391
|
-
this.spendTransactions = [...t];
|
|
401
|
+
this.spendTransactions = [...t], this.setSpendingInitialized(!0);
|
|
392
402
|
});
|
|
393
403
|
} catch (t) {
|
|
394
404
|
console.error("Error loading spend transactions:", t);
|
|
@@ -409,9 +419,9 @@ class re {
|
|
|
409
419
|
};
|
|
410
420
|
}
|
|
411
421
|
export {
|
|
412
|
-
|
|
422
|
+
I as A,
|
|
413
423
|
u as C,
|
|
414
|
-
|
|
424
|
+
ne as F,
|
|
415
425
|
Gt as P,
|
|
416
426
|
kt as a,
|
|
417
427
|
$t as b,
|
|
@@ -422,20 +432,20 @@ export {
|
|
|
422
432
|
Pt as g,
|
|
423
433
|
qt as h,
|
|
424
434
|
S as i,
|
|
425
|
-
|
|
435
|
+
Wt as j,
|
|
426
436
|
te as k,
|
|
427
437
|
Zt as l,
|
|
428
438
|
Jt as m,
|
|
429
439
|
Qt as n,
|
|
430
|
-
|
|
440
|
+
Ut as o,
|
|
431
441
|
Z as p,
|
|
432
|
-
|
|
442
|
+
Yt as q,
|
|
433
443
|
Lt as r,
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
444
|
+
Kt as s,
|
|
445
|
+
Vt as t,
|
|
446
|
+
Bt as u,
|
|
447
|
+
Xt as v,
|
|
448
|
+
jt as w,
|
|
449
|
+
zt as x,
|
|
440
450
|
F as y
|
|
441
451
|
};
|
|
@@ -15,7 +15,7 @@ import { fromUnixTime as G } from "date-fns/fromUnixTime";
|
|
|
15
15
|
import { addYears as x } from "date-fns/addYears";
|
|
16
16
|
import { getUnixTime as K } from "date-fns/getUnixTime";
|
|
17
17
|
import { b as E } from "./Localization-2MODESHW.mjs";
|
|
18
|
-
import { a as F } from "./NumberFormatting-
|
|
18
|
+
import { a as F } from "./NumberFormatting-DjTD0t3W.mjs";
|
|
19
19
|
import { f as B, a as U } from "./Dialog-BPTr3qHE.mjs";
|
|
20
20
|
var a = /* @__PURE__ */ ((e) => (e[e.DEBT_TRACK = 1] = "DEBT_TRACK", e[e.SAVINGS_TRACK = 2] = "SAVINGS_TRACK", e[e.RETIREMENT_TRACK = 3] = "RETIREMENT_TRACK", e[e.EMERGENCY_FUND_TRACK = 4] = "EMERGENCY_FUND_TRACK", e))(a || {}), $ = /* @__PURE__ */ ((e) => (e[e.SAVE_AMOUNT = 1] = "SAVE_AMOUNT", e[e.KEEP_BALANCE_BELOW = 2] = "KEEP_BALANCE_BELOW", e[e.KEEP_BALANCE_ABOVE = 3] = "KEEP_BALANCE_ABOVE", e[e.ACTION = 4] = "ACTION", e))($ || {}), l = /* @__PURE__ */ ((e) => (e[e.AUTOMOBILE = 1] = "AUTOMOBILE", e[e.COLLEGE = 2] = "COLLEGE", e[e.HOUSE = 3] = "HOUSE", e[e.RECREATIONAL_VEHICLE = 4] = "RECREATIONAL_VEHICLE", e[e.VACATION = 5] = "VACATION", e[e.ELECTRONIC = 6] = "ELECTRONIC", e[e.OTHER = 7] = "OTHER", e[e.RETIREMENT = 8] = "RETIREMENT", e[e.EMERGENCY_FUND = 9] = "EMERGENCY_FUND", e[e.SETUP_BUDGETS = 10] = "SETUP_BUDGETS", e[e.START_MONEY_MANAGEMENT = 11] = "START_MONEY_MANAGEMENT", e[e.CREDIT_CARD = 12] = "CREDIT_CARD", e[e.LINE_OF_CREDIT = 13] = "LINE_OF_CREDIT", e[e.LOANS = 14] = "LOANS", e))(l || {});
|
|
21
21
|
const at = ({ description: e, label: t, title: o }) => {
|