@mx-cartographer/experiences 8.1.6 → 8.1.8

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 CHANGED
@@ -1,3 +1,11 @@
1
+ ## [8.1.8] - 04-28-2026
2
+
3
+ - **FIXED** - Issue causing retirement goals not to display unless there were savings and/or debt goals
4
+
5
+ ## [8.1.7] - 04-27-2026
6
+
7
+ - **UPDATED** - Control available balance display via flag
8
+
1
9
  ## [8.1.6] - 04-23-2026
2
10
 
3
11
  - **UPDATED** - Change hidden transactions to excluded transactions
@@ -0,0 +1,95 @@
1
+ import { jsx as t, jsxs as r } from "react/jsx-runtime";
2
+ import { observer as _ } from "mobx-react-lite";
3
+ import s from "@mui/material/Stack";
4
+ import { H3 as x, InstitutionLogo as D, Text as d, H2 as N } from "@mxenabled/mxui";
5
+ import p from "react";
6
+ import { G as P, d as f, l as G, f as O, a as R, u as v } from "./hooks-HwStH7q_.mjs";
7
+ import { g as w } from "./AccountFields-BWmpVsS3.mjs";
8
+ import { A as i } from "./Account-CMjOp7S2.mjs";
9
+ import L from "@mui/material/Card";
10
+ import H from "@mui/material/CardContent";
11
+ import M from "@mui/material/CardHeader";
12
+ import { L as U } from "./Loader-CxeBwuPG.mjs";
13
+ import { I as Y, P as j, S as z } from "./Account-BIKn4XEZ.mjs";
14
+ import { u as k } from "./useAccountDisplayName-SrQA7K_6.mjs";
15
+ import { f as B } from "./NumberFormatting-CyrvFgfd.mjs";
16
+ const C = () => {
17
+ if (!p.useContext(P))
18
+ throw new Error("useCategoryUiStore() must be used within the GlobalDataContext");
19
+ return f().uiStore;
20
+ }, F = (o, e) => {
21
+ const c = [i.LOAN, i.MORTGAGE, i.PROPERTY].includes(
22
+ o
23
+ ), n = [
24
+ i.CREDIT_CARD,
25
+ i.LINE_OF_CREDIT,
26
+ i.PREPAID,
27
+ i.CHECKING_LINE_OF_CREDIT
28
+ ].includes(o);
29
+ return c ? { title: e.label_payments, description: e.chart_title_payments } : n ? { title: e.label_payments_spend, description: e.chart_title_payments_spend } : { title: e.label_income_spend, description: e.chart_title_income_spend };
30
+ }, V = ({
31
+ sx: o,
32
+ ChartComponent: e,
33
+ header: c
34
+ }) => {
35
+ const { loadMonthlyCategoryTotals: n } = G(), { isInitialized: l } = O(), { selectedAccount: a } = C(), [u, m] = p.useState(!1);
36
+ return p.useEffect(() => {
37
+ l && n([a]).finally(() => {
38
+ m(!0);
39
+ });
40
+ }, [l, a]), !l || !u ? /* @__PURE__ */ t(U, {}) : /* @__PURE__ */ r(
41
+ L,
42
+ {
43
+ sx: {
44
+ "& .MuiCardContent-root:last-child": {
45
+ pb: 0
46
+ },
47
+ ...o
48
+ },
49
+ children: [
50
+ /* @__PURE__ */ t(M, { sx: { pb: 0 }, title: /* @__PURE__ */ t(x, { sx: { pb: 4 }, children: c }) }),
51
+ /* @__PURE__ */ t(H, { sx: { p: 0 }, children: e ? /* @__PURE__ */ t(e, {}) : null })
52
+ ]
53
+ }
54
+ );
55
+ }, W = _(V), $ = ({
56
+ customDetailsChart: o,
57
+ ChartComponent: e
58
+ }) => {
59
+ const { institutions: c } = f(), { selectedAccount: n } = C(), { config: l } = R(), { accounts: a } = v(), { firstSubtitle: u, firstValue: m, hasAvailableBalance: b, secondSubtitle: h, secondValue: A } = w(n, a, l.display_available_balance_in_accounts), y = c.find(
60
+ (T) => T.guid === n?.institution_guid
61
+ ), g = [
62
+ ...Y,
63
+ ...j,
64
+ ...z
65
+ ].includes(n.account_type), E = k(n), { title: S, description: I } = F(n.account_type, a);
66
+ return /* @__PURE__ */ r(s, { bgcolor: "background.default", p: 24, children: [
67
+ /* @__PURE__ */ r(s, { gap: 12, children: [
68
+ /* @__PURE__ */ t(
69
+ D,
70
+ {
71
+ alt: a.institution_logo_alt,
72
+ institutionGuid: n.institution_guid || "",
73
+ size: 64
74
+ }
75
+ ),
76
+ /* @__PURE__ */ t(d, { variant: "body2", children: y?.name })
77
+ ] }),
78
+ /* @__PURE__ */ r(s, { gap: 8, mb: 24, mt: 4, children: [
79
+ /* @__PURE__ */ t(N, { children: E }),
80
+ /* @__PURE__ */ r(s, { direction: "row", justifyContent: "space-between", children: [
81
+ /* @__PURE__ */ t(d, { bold: b, variant: "body1", children: u }),
82
+ /* @__PURE__ */ t(d, { bold: !0, variant: "body1", children: B(m, "0,0.00") })
83
+ ] }),
84
+ /* @__PURE__ */ r(s, { direction: "row", justifyContent: "space-between", children: [
85
+ /* @__PURE__ */ t(d, { variant: "body2", children: h }),
86
+ /* @__PURE__ */ t(d, { variant: "body2", children: A })
87
+ ] })
88
+ ] }),
89
+ g && /* @__PURE__ */ t(s, { "aria-label": I, role: "img", children: o || /* @__PURE__ */ t(W, { ChartComponent: e, header: S }) })
90
+ ] });
91
+ }, lt = _($);
92
+ export {
93
+ lt as A,
94
+ C as u
95
+ };
@@ -1,14 +1,14 @@
1
- import { jsx as u } from "react/jsx-runtime";
2
- import { Text as y, Icon as p } from "@mxenabled/mxui";
3
- import { A as b, a as v, P as h, b as F } from "./Account-CMjOp7S2.mjs";
4
- import { i as T, u as A, a as D, b as g, c as O } from "./Accounts-DX3xJE97.mjs";
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import { Text as v, Icon as b } from "@mxenabled/mxui";
3
+ import { A as d, a as h, P as F, b as T } from "./Account-CMjOp7S2.mjs";
4
+ import { i as A, u as D, a as g, b as O, c as C } from "./Accounts-DX3xJE97.mjs";
5
5
  import { F as m } from "./Accounts-CseLC3lL.mjs";
6
- import { f as C } from "./DateUtil-D0TO0DaZ.mjs";
6
+ import { f as N } from "./DateUtil-D0TO0DaZ.mjs";
7
7
  import { b as i } from "./Localization-CkQ49EKr.mjs";
8
- import { f as o, D as f } from "./DateFormats-CaOj_4eI.mjs";
9
- import { f as s, i as d, a as N, b as S } from "./NumberFormatting-CyrvFgfd.mjs";
10
- const U = (l, e) => {
11
- const r = [
8
+ import { f, D as c } from "./DateFormats-CaOj_4eI.mjs";
9
+ import { f as s, i as o, a as S, b as I } from "./NumberFormatting-CyrvFgfd.mjs";
10
+ const Y = (l, e) => {
11
+ const n = [
12
12
  {
13
13
  event: "account_details_click_account_name",
14
14
  label: e.account_name,
@@ -19,123 +19,123 @@ const U = (l, e) => {
19
19
  valueFormatter: (a) => a
20
20
  }
21
21
  ];
22
- if (T(l)) {
23
- r.unshift({
22
+ if (A(l)) {
23
+ n.unshift({
24
24
  label: e.account_balance,
25
25
  name: "balance",
26
26
  placeholder: i(e.enter_value, e.account_balance),
27
27
  type: m.Currency,
28
28
  valueFormatter: (t) => s(t, "0,0.00")
29
29
  });
30
- const a = Object.keys(b).filter((t) => Number(t)).map((t) => ({
30
+ const a = Object.keys(d).filter((t) => Number(t)).map((t) => ({
31
31
  label: e.account_types[t],
32
32
  value: Number(t),
33
- icon: /* @__PURE__ */ u(p, { name: v[t] })
33
+ icon: /* @__PURE__ */ p(b, { name: h[t] })
34
34
  }));
35
- r.push({
35
+ n.push({
36
36
  label: e.account_type,
37
37
  name: "account_type",
38
38
  options: a,
39
39
  placeholder: i(e.select_value, e.account_type),
40
40
  type: m.Select,
41
- valueFormatter: (t) => a.find((n) => n.value === t)?.label
41
+ valueFormatter: (t) => a.find((r) => r.value === t)?.label
42
42
  });
43
43
  }
44
- if (l.account_type === b.PROPERTY) {
45
- const a = Object.keys(h).filter((t) => Number(t)).map((t) => ({
44
+ if (l.account_type === d.PROPERTY) {
45
+ const a = Object.keys(F).filter((t) => Number(t)).map((t) => ({
46
46
  label: e.property_types[t],
47
47
  value: Number(t),
48
- icon: /* @__PURE__ */ u(p, { name: F[t] })
48
+ icon: /* @__PURE__ */ p(b, { name: T[t] })
49
49
  }));
50
- r.push({
50
+ n.push({
51
51
  label: e.property_type,
52
52
  name: "property_type",
53
53
  options: a,
54
54
  placeholder: i(e.select_value, e.property_type),
55
55
  type: m.Select,
56
- valueFormatter: (t) => a.find((n) => n.value === t)?.label
56
+ valueFormatter: (t) => a.find((r) => r.value === t)?.label
57
57
  });
58
58
  }
59
- if (A(l)) {
59
+ if (D(l)) {
60
60
  let a = e.interest_rate, t = "interest_rate";
61
- l.is_manual || (typeof l.apr == "number" && (a = e.apr, t = "apr"), typeof l.apy == "number" && (a = e.apy, t = "apy")), r.push({
61
+ l.is_manual || (typeof l.apr == "number" && (a = e.apr, t = "apr"), typeof l.apy == "number" && (a = e.apy, t = "apy")), n.push({
62
62
  event: "account_details_click_interest_rate",
63
63
  label: a,
64
64
  name: t,
65
65
  placeholder: i(e.enter_value, a),
66
66
  type: m.Input,
67
- validation: (n) => d(n) ? "" : e.error_amount_is_invalid,
68
- valueFormatter: (n) => d(n) ? N(n / 100) : n
67
+ validation: (r) => o(r) ? "" : e.error_amount_is_invalid,
68
+ valueFormatter: (r) => o(r) ? S(r / 100) : r
69
69
  });
70
70
  }
71
- return D(l) && (r.push({
71
+ return g(l) && (n.push({
72
72
  label: e.minimum_payment,
73
73
  name: "minimum_payment",
74
74
  placeholder: i(e.enter_value, e.minimum_payment),
75
75
  type: m.Currency,
76
76
  valueFormatter: (a) => s(a, "0,0.00")
77
- }), l.payment_due_at ? r.push({
77
+ }), l.payment_due_at ? n.push({
78
78
  label: e.next_payment,
79
79
  name: "payment_due_at",
80
80
  type: m.Date,
81
81
  valueFormatter: (a) => {
82
82
  const t = typeof a == "number" ? new Date(a * 1e3) : a;
83
- return o(t, f.MED_MONTH_SHORT_DAY_FULL_YEAR);
83
+ return f(t, c.MED_MONTH_SHORT_DAY_FULL_YEAR);
84
84
  }
85
- }) : r.push({
85
+ }) : n.push({
86
86
  label: e.day_payment_due,
87
87
  name: "day_payment_is_due",
88
88
  placeholder: i(e.enter_value, e.day_payment_due),
89
89
  type: m.Date,
90
90
  valueFormatter: (a) => i(
91
91
  e.day_of_every_month,
92
- S(a <= 31 ? a : new Date(a).getDate())
92
+ I(a <= 31 ? a : new Date(a).getDate())
93
93
  )
94
- })), g(l) && r.push({
94
+ })), O(l) && n.push({
95
95
  label: e.credit_limit,
96
96
  name: "credit_limit",
97
97
  placeholder: i(e.enter_value, e.credit_limit),
98
98
  type: m.Currency,
99
99
  valueFormatter: (a) => s(a, "0,0.00")
100
- }), O(l) && r.push({
100
+ }), C(l) && n.push({
101
101
  label: e.original_balance,
102
102
  minAmount: 1,
103
103
  name: "original_balance",
104
104
  placeholder: i(e.enter_value, e.original_balance),
105
105
  type: m.Currency,
106
106
  valueFormatter: (a) => s(a, "0,0.00")
107
- }), r;
108
- }, I = (l, e) => {
109
- let r = "", a = null, t = null, n = null, _ = !1;
107
+ }), n;
108
+ }, L = (l, e, n) => {
109
+ let a = "", t = null, r = null, _ = null, u = !1;
110
110
  switch (l.account_type) {
111
111
  case 1:
112
112
  case 2: {
113
- l.available_balance ? (r = e.available_balance, a = l.available_balance, t = l.available_balance ? e.current_balance : null, n = s(l.balance, "0,0.00"), _ = !0) : (r = e.current_balance, a = l.balance);
113
+ l.available_balance && n ? (a = e.available_balance, t = l.available_balance, r = l.available_balance ? e.current_balance : null, _ = s(l.balance, "0,0.00"), u = !0) : (a = e.current_balance, t = l.balance);
114
114
  break;
115
115
  }
116
116
  default:
117
- if (r = e.current_balance, a = l.balance, l.minimum_payment && l.payment_due_at) {
118
- const c = C(l.payment_due_at);
119
- t = /* @__PURE__ */ u(y, { component: "strong", variant: "caption", children: i(
117
+ if (a = e.current_balance, t = l.balance, l.minimum_payment && l.payment_due_at) {
118
+ const y = N(l.payment_due_at);
119
+ r = /* @__PURE__ */ p(v, { component: "strong", variant: "caption", children: i(
120
120
  e.payment_due_on,
121
121
  s(l.minimum_payment, "0,0.00"),
122
- o(c, f.FULL_MONTH_DAY)
122
+ f(y, c.FULL_MONTH_DAY)
123
123
  ) });
124
- } else l.credit_limit && (t = e.available_credit, n = s(l.credit_limit - (l?.balance ?? 0), "0,0.00"));
124
+ } else l.credit_limit && (r = e.available_credit, _ = s(l.credit_limit - (l?.balance ?? 0), "0,0.00"));
125
125
  }
126
126
  return {
127
- firstSubtitle: r,
128
- firstValue: a,
129
- secondSubtitle: t,
130
- secondValue: n,
131
- hasAvailableBalance: _
127
+ firstSubtitle: a,
128
+ firstValue: t,
129
+ secondSubtitle: r,
130
+ secondValue: _,
131
+ hasAvailableBalance: u
132
132
  };
133
- }, Y = (l, e) => l.reduce((a, t) => {
134
- const _ = I(t, e).firstValue || 0;
135
- return a + _;
133
+ }, j = (l, e, n) => l.reduce((t, r) => {
134
+ const u = L(r, e, n).firstValue || 0;
135
+ return t + u;
136
136
  }, 0);
137
137
  export {
138
- U as a,
139
- Y as b,
140
- I as g
138
+ Y as a,
139
+ j as b,
140
+ L as g
141
141
  };
@@ -0,0 +1,95 @@
1
+ import { jsx as e, jsxs as o, Fragment as c } from "react/jsx-runtime";
2
+ import { observer as _ } from "mobx-react-lite";
3
+ import I from "@mui/material/Badge";
4
+ import m from "@mui/material/Box";
5
+ import v from "@mui/material/ListItem";
6
+ import C from "@mui/material/ListItemAvatar";
7
+ import S from "@mui/material/ListItemButton";
8
+ import A from "@mui/material/ListItemText";
9
+ import L from "@mui/material/styles/useTheme";
10
+ import { InstitutionLogo as B, Text as r } from "@mxenabled/mxui";
11
+ import { Error as j } from "@mxenabled/mx-icons";
12
+ import { I as T } from "./IconBacking-DgT8DCeh.mjs";
13
+ import { g as $ } from "./AccountFields-BWmpVsS3.mjs";
14
+ import { u as k } from "./useAccountDisplayName-SrQA7K_6.mjs";
15
+ import { a as w, u as E } from "./hooks-HwStH7q_.mjs";
16
+ import { C as d } from "./Account-CMjOp7S2.mjs";
17
+ import { f as M } from "./NumberFormatting-CyrvFgfd.mjs";
18
+ const z = {
19
+ gridRow: 1,
20
+ gridColumn: 1,
21
+ zIndex: 2
22
+ }, D = ({ size: t = 20 }) => /* @__PURE__ */ e(T, { size: t, children: /* @__PURE__ */ e(j, { color: "error", filled: !0, sx: { fontSize: t, ...z } }) }), G = ({
23
+ account: t,
24
+ onRowClick: n,
25
+ listItemProps: s,
26
+ shouldShowConnectionStatus: p = !1
27
+ }) => {
28
+ const u = L(), f = k(t), { config: g } = w(), { accounts: i } = E(), { firstSubtitle: h, firstValue: x, secondSubtitle: b, secondValue: y } = $(
29
+ t,
30
+ i,
31
+ g.display_available_balance_in_accounts
32
+ );
33
+ let a;
34
+ (t.connectionStatus === d.Error || t.connectionStatus === d.RequiresMfa) && (a = /* @__PURE__ */ e(D, { size: 16 }));
35
+ const l = /* @__PURE__ */ o(c, { children: [
36
+ /* @__PURE__ */ e(C, { children: /* @__PURE__ */ e(
37
+ I,
38
+ {
39
+ badgeContent: p ? a : void 0,
40
+ sx: {
41
+ "& .MuiBadge-badge": {
42
+ right: -1
43
+ }
44
+ },
45
+ children: /* @__PURE__ */ e(B, { alt: "MX", institutionGuid: t.institution_guid || "" })
46
+ }
47
+ ) }),
48
+ /* @__PURE__ */ e(
49
+ A,
50
+ {
51
+ disableTypography: !0,
52
+ primary: /* @__PURE__ */ o(
53
+ r,
54
+ {
55
+ bold: !0,
56
+ color: t.is_hidden ? u.palette.text.secondary : void 0,
57
+ sx: { whiteSpace: "normal" },
58
+ variant: "body1",
59
+ children: [
60
+ `${f} ${t.account_number ? `*${t.account_number}` : ""}`,
61
+ " ",
62
+ t.is_hidden && !t.is_closed && i.is_hidden,
63
+ t.is_closed && i.is_closed
64
+ ]
65
+ }
66
+ ),
67
+ secondary: /* @__PURE__ */ o(c, { children: [
68
+ /* @__PURE__ */ o(m, { sx: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [
69
+ /* @__PURE__ */ e(r, { variant: "caption", children: h }),
70
+ /* @__PURE__ */ e(r, { bold: !0, variant: "body2", children: M(x, "0,0.00") })
71
+ ] }),
72
+ /* @__PURE__ */ o(m, { sx: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [
73
+ /* @__PURE__ */ e(r, { variant: "caption", children: b }),
74
+ /* @__PURE__ */ e(r, { ml: "auto", variant: "caption", children: y })
75
+ ] })
76
+ ] })
77
+ }
78
+ )
79
+ ] });
80
+ return /* @__PURE__ */ e(
81
+ v,
82
+ {
83
+ ...s,
84
+ sx: {
85
+ backgroundColor: "background.paper",
86
+ color: t.is_closed ? "grey.700" : "",
87
+ ...s?.sx
88
+ },
89
+ children: n ? /* @__PURE__ */ e(S, { alignItems: "flex-start", onClick: n, sx: { px: 24 }, children: l }) : l
90
+ }
91
+ );
92
+ }, et = _(G);
93
+ export {
94
+ et as A
95
+ };