@mx-cartographer/experiences 6.26.18-alpha.mega4 → 6.26.18-alpha.sms1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/common/context/hooks.d.ts +13 -13
  2. package/dist/help/components/content/section/index.d.ts +15 -15
  3. package/dist/index.d.ts +22 -0
  4. package/dist/index.es.js +30335 -0
  5. package/dist/index.es.js.map +1 -0
  6. package/package.json +3 -155
  7. package/dist/Account-DM32_5k9.mjs +0 -30
  8. package/dist/AccountDetailsContent-B_qRSB8l.mjs +0 -677
  9. package/dist/AccountDetailsHeader-CAm6ADMq.mjs +0 -119
  10. package/dist/AccountFields-Bb4pds0q.mjs +0 -135
  11. package/dist/AccountListItem-G7iAesaO.mjs +0 -90
  12. package/dist/AccountStore-RSanus_m.mjs +0 -230
  13. package/dist/Accounts-BfAQRG8R.mjs +0 -9
  14. package/dist/BeatApi-DLu87ijw.mjs +0 -21
  15. package/dist/BeatStore-By4aGoRM.mjs +0 -81
  16. package/dist/BudgetUtil-DcqclhiQ.mjs +0 -101
  17. package/dist/CashflowStore-D9Dpuz7X.mjs +0 -91
  18. package/dist/Category-5S6uwuXz.mjs +0 -301
  19. package/dist/CategorySelectorDrawer-DgrePTRg.mjs +0 -397
  20. package/dist/CategoryStore-B5EW6I1d.mjs +0 -183
  21. package/dist/CategoryUtil-DRyruNgi.mjs +0 -78
  22. package/dist/ConnectDrawer-DPnfeIfn.mjs +0 -508
  23. package/dist/ConnectionsDrawer-BCzpuNsK.mjs +0 -52
  24. package/dist/CurrencyInput-DzsPiUsU.mjs +0 -83
  25. package/dist/CurrencyText-YUhH2caW.mjs +0 -20
  26. package/dist/DateUtil-BcuH7ErC.mjs +0 -48
  27. package/dist/DebtsStore-C6VcBnpG.mjs +0 -60
  28. package/dist/Dialog-CWW597AF.mjs +0 -123
  29. package/dist/Donut-1UMNcG67.mjs +0 -57
  30. package/dist/Drawer-kEE73B87.mjs +0 -113
  31. package/dist/EmptyState-Dcb-o2tl.mjs +0 -55
  32. package/dist/Fetch-CkFKy79O.mjs +0 -116
  33. package/dist/FinstrongStore-mkALvztw.mjs +0 -101
  34. package/dist/GoalStore-DyCr4wNc.mjs +0 -263
  35. package/dist/HeaderCell-DjuifqHJ.mjs +0 -6
  36. package/dist/Help-DhcC-C05.mjs +0 -320
  37. package/dist/Help-toqAK5eD.mjs +0 -3173
  38. package/dist/IconBacking-B9oC6uL2.mjs +0 -39
  39. package/dist/InvestmentUtil-jOyOgzIB.mjs +0 -134
  40. package/dist/LineChart-CQWu5KoO.mjs +0 -403
  41. package/dist/ListItemAction-Df3OPMOW.mjs +0 -69
  42. package/dist/Loader-Dp1P2gNw.mjs +0 -14
  43. package/dist/Localization-2MODESHW.mjs +0 -30
  44. package/dist/ManageIncome-BVt_XQbo.mjs +0 -535
  45. package/dist/MerchantStore-DVH-QOf0.mjs +0 -37
  46. package/dist/MicroWidgetContainer-DaLW43tE.mjs +0 -45
  47. package/dist/MiniWidgetContainer-BcNPxZt2.mjs +0 -39
  48. package/dist/NetWorthStore-DE8CQBMM.mjs +0 -150
  49. package/dist/Notification-AMGWM1Al.mjs +0 -78
  50. package/dist/NotificationSettings-CPZN0l8X.mjs +0 -667
  51. package/dist/NotificationStore-DHtSGySy.mjs +0 -67
  52. package/dist/NumberFormatting-CtWHhyBX.mjs +0 -40
  53. package/dist/OriginalBalanceAction-s9sUxofR.mjs +0 -115
  54. package/dist/RecurringSettings-DIEsympT.mjs +0 -57
  55. package/dist/RecurringTransactionsStore-BKLD3OWo.mjs +0 -263
  56. package/dist/RepeatingTransaction-BPWfaB3f.mjs +0 -282
  57. package/dist/SearchBox-B2_zLv8-.mjs +0 -42
  58. package/dist/SettingsStore-CE7jDVFL.mjs +0 -265
  59. package/dist/SingleSegmentDonut-BgbLgwHi.mjs +0 -69
  60. package/dist/SpendingData-ByFCw95X.mjs +0 -53
  61. package/dist/StatusBar-BK_uYHAB.mjs +0 -30
  62. package/dist/TabContentContainer-j01JYR_7.mjs +0 -21
  63. package/dist/Transaction-C-5-Iuab.mjs +0 -312
  64. package/dist/TransactionApi-DbbcjI2L.mjs +0 -86
  65. package/dist/TransactionDetails-B5qfs9Zh.mjs +0 -1283
  66. package/dist/TransactionStore-BWi6_2Ny.mjs +0 -669
  67. package/dist/TrendsStore-Borh98aN.mjs +0 -448
  68. package/dist/ViewMoreMicroCard-CAPFNz-J.mjs +0 -1959
  69. package/dist/WidgetContainer-CmGNZW0M.mjs +0 -548
  70. package/dist/accounts/index.es.js +0 -752
  71. package/dist/analytics/index.es.js +0 -171
  72. package/dist/budgets/index.es.js +0 -1070
  73. package/dist/cashflow/index.es.js +0 -1098
  74. package/dist/categories/index.es.js +0 -9
  75. package/dist/common/index.es.js +0 -1451
  76. package/dist/dashboard/index.es.js +0 -181
  77. package/dist/debts/index.es.js +0 -1460
  78. package/dist/exportTransactionsToCSV-j4g8bdVZ.mjs +0 -47
  79. package/dist/finstrong/index.es.js +0 -1455
  80. package/dist/goals/index.es.js +0 -1209
  81. package/dist/help/index.es.js +0 -14
  82. package/dist/hooks-ClhFlg78.mjs +0 -71
  83. package/dist/insights/index.d.ts +0 -1
  84. package/dist/insights/index.es.js +0 -4
  85. package/dist/investments/index.es.js +0 -1638
  86. package/dist/merchants/index.es.js +0 -79
  87. package/dist/microinsights/index.es.js +0 -16
  88. package/dist/networth/index.es.js +0 -542
  89. package/dist/notifications/index.es.js +0 -192
  90. package/dist/recurringtransactions/index.es.js +0 -879
  91. package/dist/settings/index.es.js +0 -879
  92. package/dist/spending/index.es.js +0 -570
  93. package/dist/transactions/index.es.js +0 -587
  94. package/dist/trends/index.es.js +0 -1103
  95. package/dist/useCombineEvents-DaDBSR_1.mjs +0 -92
  96. package/dist/useDimensions-27p2evRx.mjs +0 -36
  97. package/dist/useScreenSize-B6JyS_Lj.mjs +0 -36
@@ -1,119 +0,0 @@
1
- import { jsx as e, jsxs as u } from "react/jsx-runtime";
2
- import { observer as p } from "mobx-react-lite";
3
- import d from "@mui/material/Stack";
4
- import { H3 as w, InstitutionLogo as I, Text as m, H2 as L } from "@mxenabled/mxui";
5
- import { g as N } from "./AccountFields-Bb4pds0q.mjs";
6
- import h from "react";
7
- import { G as v, c as S, k as y, u as _, l as E } from "./hooks-ClhFlg78.mjs";
8
- import G from "@mui/material/Card";
9
- import O from "@mui/material/CardContent";
10
- import P from "@mui/material/CardHeader";
11
- import { useTheme as M } from "@mui/material/styles";
12
- import { g as B, a as H, b as U } from "./SpendingData-ByFCw95X.mjs";
13
- import { L as j } from "./LineChart-CQWu5KoO.mjs";
14
- import { I as f, P as g, S as C } from "./Account-DM32_5k9.mjs";
15
- import { A } from "./ConnectDrawer-DPnfeIfn.mjs";
16
- import { L as z } from "./Loader-Dp1P2gNw.mjs";
17
- import { f as Y, D as k } from "./Dialog-CWW597AF.mjs";
18
- import { f as R } from "./NumberFormatting-CtWHhyBX.mjs";
19
- const b = () => {
20
- if (!h.useContext(v))
21
- throw new Error("useCategoryUiStore() must be used within the GlobalDataContext");
22
- return S().uiStore;
23
- }, $ = (o, n) => {
24
- const t = f.includes(n) ? B(o) : [], a = g.includes(n) ? H(o) : [], r = C.includes(n) ? U(o) : [];
25
- return [t, a, r].filter((s) => s.length > 0);
26
- }, F = (o, n, t) => {
27
- const [a, r] = o, s = a, c = r ?? a, i = [];
28
- if (s && c && f.includes(n)) {
29
- const l = s[s.length - 1].y;
30
- i.push({ label: t.income_label, amount: l });
31
- } else if (g.includes(n)) {
32
- const l = s[s.length - 1].y;
33
- i.push({ label: t.payments_label, amount: l });
34
- }
35
- if (c && C.includes(n)) {
36
- const l = c[c.length - 1].y;
37
- i.push({ label: t.spending_label, amount: l });
38
- }
39
- return i;
40
- }, V = () => {
41
- const o = M(), { selectedAccount: n } = b(), { monthlyCategoryTotals: t } = y(), { trends: a } = _(), r = [o.palette.chart?.chart1, o.palette.chart?.chart2], s = $(t, n.account_type), c = F(s, n.account_type, a), i = [A.LOAN, A.MORTGAGE].includes(n.account_type);
42
- return /* @__PURE__ */ e("div", { "data-testid": "TrendsChart", children: /* @__PURE__ */ e(
43
- j,
44
- {
45
- colors: r,
46
- datasets: s,
47
- height: 185,
48
- labels: c,
49
- showAverage: i,
50
- showBars: i,
51
- showLegend: !0,
52
- valueFormatterString: "0,0"
53
- }
54
- ) });
55
- }, W = p(V), q = ({ sx: o }) => {
56
- const { loadMonthlyCategoryTotals: n } = y(), { isInitialized: t } = E(), { selectedAccount: a } = b(), [r, s] = h.useState(!1);
57
- return h.useEffect(() => {
58
- t && n([a]).finally(() => {
59
- s(!0);
60
- });
61
- }, [t, a]), !t || !r ? /* @__PURE__ */ e(z, {}) : /* @__PURE__ */ u(
62
- G,
63
- {
64
- sx: {
65
- "& .MuiCardContent-root:last-child": {
66
- pb: 0
67
- },
68
- ...o
69
- },
70
- children: [
71
- /* @__PURE__ */ e(
72
- P,
73
- {
74
- sx: { pb: 0 },
75
- title: /* @__PURE__ */ e(w, { sx: { pb: 4 }, children: Y(/* @__PURE__ */ new Date(), k.MONTH_LONG) })
76
- }
77
- ),
78
- /* @__PURE__ */ e(O, { sx: { p: 0 }, children: /* @__PURE__ */ e(W, {}) })
79
- ]
80
- }
81
- );
82
- }, J = p(q), K = ({ customDetailsChart: o }) => {
83
- const { institutions: n } = S(), { selectedAccount: t } = b(), { accounts: a } = _(), { firstSubtitle: r, firstValue: s, hasAvailableBalance: c, secondSubtitle: i, secondValue: l } = N(t, a), T = n.find(
84
- (x) => x.guid === t?.institution_guid
85
- ), D = [
86
- ...f,
87
- ...g,
88
- ...C
89
- ].includes(t.account_type);
90
- return /* @__PURE__ */ u(d, { bgcolor: "background.default", p: 24, children: [
91
- /* @__PURE__ */ u(d, { gap: 12, children: [
92
- /* @__PURE__ */ e(
93
- I,
94
- {
95
- alt: a.institution_logo_alt,
96
- institutionGuid: t.institution_guid || "",
97
- size: 64
98
- }
99
- ),
100
- /* @__PURE__ */ e(m, { variant: "Small", children: T?.name })
101
- ] }),
102
- /* @__PURE__ */ u(d, { gap: 8, mb: 24, mt: 4, children: [
103
- /* @__PURE__ */ e(L, { children: t.name || t.feed_name }),
104
- /* @__PURE__ */ u(d, { direction: "row", justifyContent: "space-between", children: [
105
- /* @__PURE__ */ e(m, { bold: c, variant: "Body", children: r }),
106
- /* @__PURE__ */ e(m, { bold: !0, variant: "Body", children: R(s, "0,0.00") })
107
- ] }),
108
- /* @__PURE__ */ u(d, { direction: "row", justifyContent: "space-between", children: [
109
- /* @__PURE__ */ e(m, { variant: "Small", children: i }),
110
- /* @__PURE__ */ e(m, { variant: "Small", children: l })
111
- ] })
112
- ] }),
113
- D && /* @__PURE__ */ e(d, { children: o || /* @__PURE__ */ e(J, {}) })
114
- ] });
115
- }, ft = p(K);
116
- export {
117
- ft as A,
118
- b as u
119
- };
@@ -1,135 +0,0 @@
1
- import { jsx as u } from "react/jsx-runtime";
2
- import { Icon as p, Text as c } from "@mxenabled/mxui";
3
- import { F as m, A as b, a as v, P as h, b as F } from "./ConnectDrawer-DPnfeIfn.mjs";
4
- import { i as D, u as T, a as A, b as O, c as g } from "./Accounts-BfAQRG8R.mjs";
5
- import { f as _, i as d, a as N, b as S } from "./NumberFormatting-CtWHhyBX.mjs";
6
- import { b as i } from "./Localization-2MODESHW.mjs";
7
- import { f, D as o } from "./Dialog-CWW597AF.mjs";
8
- const w = (l, e) => {
9
- const r = [
10
- {
11
- event: "account_details_click_account_name",
12
- label: e.account_name,
13
- name: "user_name",
14
- placeholder: i(e.enter_value, e.account_name),
15
- type: m.Input,
16
- validation: (a) => a ? "" : i(e.field_is_required, e.account_name),
17
- valueFormatter: (a) => a
18
- }
19
- ];
20
- if (D(l)) {
21
- r.unshift({
22
- label: e.account_balance,
23
- name: "balance",
24
- placeholder: i(e.enter_value, e.account_balance),
25
- type: m.Currency,
26
- valueFormatter: (t) => _(t, "0,0.00")
27
- });
28
- const a = Object.keys(b).filter((t) => Number(t)).map((t) => ({
29
- label: e.account_types[t],
30
- value: Number(t),
31
- icon: /* @__PURE__ */ u(p, { name: v[t] })
32
- }));
33
- r.push({
34
- label: e.account_type,
35
- name: "account_type",
36
- options: a,
37
- placeholder: i(e.select_value, e.account_type),
38
- type: m.Select,
39
- valueFormatter: (t) => a.find((n) => n.value === t)?.label
40
- });
41
- }
42
- if (l.account_type === b.PROPERTY) {
43
- const a = Object.keys(h).filter((t) => Number(t)).map((t) => ({
44
- label: e.property_types[t],
45
- value: Number(t),
46
- icon: /* @__PURE__ */ u(p, { name: F[t] })
47
- }));
48
- r.push({
49
- label: e.property_type,
50
- name: "property_type",
51
- options: a,
52
- placeholder: i(e.select_value, e.property_type),
53
- type: m.Select,
54
- valueFormatter: (t) => a.find((n) => n.value === t)?.label
55
- });
56
- }
57
- if (T(l)) {
58
- let a = e.interest_rate, t = "interest_rate";
59
- l.is_manual || (typeof l.apr == "number" && (a = e.apr, t = "apr"), typeof l.apy == "number" && (a = e.apy, t = "apy")), r.push({
60
- event: "account_details_click_interest_rate",
61
- label: a,
62
- name: t,
63
- placeholder: i(e.enter_value, a),
64
- type: m.Input,
65
- validation: (n) => d(n) ? "" : e.error_amount_is_invalid,
66
- valueFormatter: (n) => d(n) ? N(n / 100) : n
67
- });
68
- }
69
- return A(l) && (r.push({
70
- label: e.minimum_payment,
71
- name: "minimum_payment",
72
- placeholder: i(e.enter_value, e.minimum_payment),
73
- type: m.Currency,
74
- valueFormatter: (a) => _(a, "0,0.00")
75
- }), l.payment_due_at ? r.push({
76
- label: e.next_payment,
77
- name: "payment_due_at",
78
- type: m.Date,
79
- valueFormatter: (a) => {
80
- const t = typeof a == "number" ? new Date(a * 1e3) : a;
81
- return f(t, o.MED_MONTH_SHORT_DAY_FULL_YEAR);
82
- }
83
- }) : r.push({
84
- label: e.day_payment_due,
85
- name: "day_payment_is_due",
86
- placeholder: i(e.enter_value, e.day_payment_due),
87
- type: m.Date,
88
- valueFormatter: (a) => i(
89
- e.day_of_every_month,
90
- S(a <= 31 ? a : new Date(a).getDate())
91
- )
92
- })), O(l) && r.push({
93
- label: e.credit_limit,
94
- name: "credit_limit",
95
- placeholder: i(e.enter_value, e.credit_limit),
96
- type: m.Currency,
97
- valueFormatter: (a) => _(a, "0,0.00")
98
- }), g(l) && r.push({
99
- label: e.original_balance,
100
- minAmount: 1,
101
- name: "original_balance",
102
- placeholder: i(e.enter_value, e.original_balance),
103
- type: m.Currency,
104
- valueFormatter: (a) => _(a, "0,0.00")
105
- }), r;
106
- }, x = (l, e) => {
107
- let r = "", a = null, t = null, n = null, s = !1;
108
- switch (l.account_type) {
109
- case 1:
110
- case 2: {
111
- l.available_balance ? (r = e.available_balance, a = l.available_balance, t = l.available_balance ? e.current_balance : null, n = _(l.balance, "0,0.00"), s = !0) : (r = e.current_balance, a = l.balance);
112
- break;
113
- }
114
- default:
115
- if (r = e.current_balance, a = l.balance, l.minimum_payment && l.payment_due_at) {
116
- const y = typeof l.payment_due_at == "number" ? new Date(l.payment_due_at * 1e3) : l.payment_due_at;
117
- t = /* @__PURE__ */ u(c, { component: "strong", variant: "XSmall", children: i(
118
- e.payment_due_on,
119
- _(l.minimum_payment, "0,0.00"),
120
- f(y, o.FULL_MONTH_DAY)
121
- ) });
122
- } else l.credit_limit && (t = e.available_credit, n = _(l.credit_limit, "0,0.00"));
123
- }
124
- return {
125
- firstSubtitle: r,
126
- firstValue: a,
127
- secondSubtitle: t,
128
- secondValue: n,
129
- hasAvailableBalance: s
130
- };
131
- };
132
- export {
133
- w as a,
134
- x as g
135
- };
@@ -1,90 +0,0 @@
1
- import { jsx as e, jsxs as r, Fragment as a } from "react/jsx-runtime";
2
- import { observer as b } from "mobx-react-lite";
3
- import y from "@mui/material/Badge";
4
- import l from "@mui/material/Box";
5
- import I from "@mui/material/ListItem";
6
- import S from "@mui/material/ListItemAvatar";
7
- import _ from "@mui/material/ListItemButton";
8
- import v from "@mui/material/ListItemText";
9
- import C from "@mui/material/styles/useTheme";
10
- import { InstitutionLogo as B, Text as o } from "@mxenabled/mxui";
11
- import "@mui/icons-material/CheckCircle";
12
- import L from "@mui/icons-material/Error";
13
- import { I as A } from "./IconBacking-B9oC6uL2.mjs";
14
- import { g as j } from "./AccountFields-Bb4pds0q.mjs";
15
- import { d } from "./ConnectDrawer-DPnfeIfn.mjs";
16
- import { u as T } from "./hooks-ClhFlg78.mjs";
17
- import { f as X } from "./NumberFormatting-CtWHhyBX.mjs";
18
- const $ = {
19
- gridRow: 1,
20
- gridColumn: 1,
21
- zIndex: 2
22
- }, k = ({ size: t = 20 }) => /* @__PURE__ */ e(A, { size: t, children: /* @__PURE__ */ e(L, { color: "error", sx: { fontSize: t, ...$ } }) }), w = ({
23
- account: t,
24
- onRowClick: n,
25
- listItemProps: c,
26
- shouldShowConnectionStatus: p = !1
27
- }) => {
28
- const f = C(), { accounts: i } = T(), { firstSubtitle: u, firstValue: h, secondSubtitle: g, secondValue: x } = j(
29
- t,
30
- i
31
- );
32
- let s;
33
- (t.connectionStatus === d.Error || t.connectionStatus === d.RequiresMfa) && (s = /* @__PURE__ */ e(k, { size: 16 }));
34
- const m = /* @__PURE__ */ r(a, { children: [
35
- /* @__PURE__ */ e(S, { children: /* @__PURE__ */ e(
36
- y,
37
- {
38
- badgeContent: p ? s : void 0,
39
- sx: {
40
- "& .MuiBadge-badge": {
41
- right: -1
42
- }
43
- },
44
- children: /* @__PURE__ */ e(B, { alt: "MX", institutionGuid: t.institution_guid || "" })
45
- }
46
- ) }),
47
- /* @__PURE__ */ e(
48
- v,
49
- {
50
- disableTypography: !0,
51
- primary: /* @__PURE__ */ r(
52
- o,
53
- {
54
- bold: !0,
55
- color: t.is_hidden ? f.palette.text.secondary : void 0,
56
- sx: { whiteSpace: "normal" },
57
- variant: "Body",
58
- children: [
59
- `${t.name || t.feed_name} ${t.account_number ? `*${t.account_number}` : ""}`,
60
- " ",
61
- t.is_hidden && !t.is_closed && i.is_hidden,
62
- t.is_closed && i.is_closed
63
- ]
64
- }
65
- ),
66
- secondary: /* @__PURE__ */ r(a, { children: [
67
- /* @__PURE__ */ r(l, { sx: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [
68
- /* @__PURE__ */ e(o, { variant: "XSmall", children: u }),
69
- /* @__PURE__ */ e(o, { bold: !0, variant: "Small", children: X(h, "0,0.00") })
70
- ] }),
71
- /* @__PURE__ */ r(l, { sx: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [
72
- /* @__PURE__ */ e(o, { variant: "XSmall", children: g }),
73
- /* @__PURE__ */ e(o, { ml: "auto", variant: "XSmall", children: x })
74
- ] })
75
- ] })
76
- }
77
- )
78
- ] });
79
- return /* @__PURE__ */ e(
80
- I,
81
- {
82
- sx: { backgroundColor: "background.paper", color: t.is_closed ? "grey.700" : "" },
83
- ...c,
84
- children: n ? /* @__PURE__ */ e(_, { alignItems: "flex-start", onClick: n, sx: { px: 24 }, children: m }) : m
85
- }
86
- );
87
- }, W = b(w);
88
- export {
89
- W as A
90
- };
@@ -1,230 +0,0 @@
1
- import { makeAutoObservable as m, runInAction as a } from "mobx";
2
- import { F as A, A as o } from "./Fetch-CkFKy79O.mjs";
3
- import { A as n, d as u, E as _, g, h as f } from "./ConnectDrawer-DPnfeIfn.mjs";
4
- class l {
5
- fetchInstance;
6
- constructor(t, e) {
7
- this.fetchInstance = new A(t, e);
8
- }
9
- createAccount = async (t) => this.fetchInstance.post(o.ACCOUNTS, t).then((e) => e.account).catch((e) => e);
10
- deleteAccount = async (t) => this.fetchInstance.delete(`${o.ACCOUNTS}/${t}`).catch((e) => e);
11
- getAccounts = async () => this.fetchInstance.get(o.ACCOUNTS).then((t) => t.accounts).catch((t) => t);
12
- getInstitutions = async () => this.fetchInstance.get(o.INSTITUTIONS).then((t) => t).catch((t) => t);
13
- getMembers = async () => this.fetchInstance.get(o.MEMBERS).then((t) => t.members).catch((t) => t);
14
- getMonthlyAccountBalances = async (t) => this.fetchInstance.get(`${o.ACCOUNTS}/${t}/monthly_account_balances`).then((e) => e.monthly_account_balances).catch((e) => e);
15
- mergeAccounts = async (t) => this.fetchInstance.put(`${o.ACCOUNTS}/merge`, { accounts: t }).then((e) => e).catch((e) => e);
16
- refreshAllMembers = async () => this.fetchInstance.get(`${o.MEMBERS}/refresh_all`).then((t) => t).catch((t) => t);
17
- updateAccount = async (t) => this.fetchInstance.put(`${o.ACCOUNTS}/${t.guid}`, t).then((e) => e.account).catch((e) => e);
18
- }
19
- class p {
20
- isLoading = !1;
21
- selectedAccount = {};
22
- selectedMember = {};
23
- constructor() {
24
- m(this);
25
- }
26
- setIsLoading = (t) => this.isLoading = t;
27
- setSelectedAccount = (t) => this.selectedAccount = t;
28
- setSelectedMember = (t) => this.selectedMember = t;
29
- }
30
- class C {
31
- globalStore;
32
- api = new l("/", "");
33
- accounts = [];
34
- institutions = [];
35
- members = [];
36
- uiStore;
37
- constructor(t) {
38
- this.globalStore = t, this.uiStore = new p(), this.api = new l(t.endpoint, t.sessionToken), m(this);
39
- }
40
- loadAccountData = async ({
41
- accounts: t,
42
- institutions: e
43
- } = {}) => {
44
- await Promise.all([this.loadAccounts(t), this.loadInstitutions(e)]);
45
- };
46
- get cashAccounts() {
47
- return this.accounts.filter(
48
- (t) => t.account_type === n.CASH || t.account_type === n.CHECKING || t.account_type === n.PREPAID || t.account_type === n.SAVINGS || t.account_type === n.CHECKING_LINE_OF_CREDIT
49
- );
50
- }
51
- get cashBalance() {
52
- return this.cashAccounts.reduce((t, e) => t + (e?.balance || 0), 0);
53
- }
54
- get checkingAccounts() {
55
- return this.accounts.filter((t) => t.account_type === n.CHECKING);
56
- }
57
- get debtAccounts() {
58
- return this.accounts.filter(
59
- (t) => t.account_type === n.CREDIT_CARD || t.account_type === n.LOAN || t.account_type === n.MORTGAGE || t.account_type === n.LINE_OF_CREDIT || t.account_type === n.CHECKING_LINE_OF_CREDIT
60
- );
61
- }
62
- get finstrongAccounts() {
63
- const t = /* @__PURE__ */ new Set([
64
- n.CHECKING,
65
- n.SAVINGS,
66
- n.CREDIT_CARD,
67
- n.INVESTMENT
68
- ]);
69
- return this.accounts.filter((e) => t.has(e.account_type));
70
- }
71
- get investmentAccounts() {
72
- return this.accounts.filter(
73
- (t) => t.account_type === n.INVESTMENT
74
- );
75
- }
76
- get savingsAccounts() {
77
- return this.accounts.filter((t) => t.account_type === n.SAVINGS);
78
- }
79
- get visibleAccounts() {
80
- return this.accounts.filter((t) => !t.is_hidden);
81
- }
82
- get visibleCashAccounts() {
83
- return this.cashAccounts.filter((t) => !t.is_hidden);
84
- }
85
- get visibleCashBalance() {
86
- return this.visibleCashAccounts.reduce((t, e) => t + (e?.balance || 0), 0);
87
- }
88
- get visibleCheckingAccounts() {
89
- return this.checkingAccounts.filter((t) => !t.is_hidden);
90
- }
91
- get visibleDebtAccounts() {
92
- return this.debtAccounts.filter((t) => !t.is_hidden);
93
- }
94
- get visibleFinstrongAccounts() {
95
- return this.finstrongAccounts.filter(
96
- (t) => !(t.is_closed || t.is_deleted || t.is_hidden)
97
- );
98
- }
99
- get visibleInvestmentAccounts() {
100
- return this.investmentAccounts.filter((t) => !t.is_hidden);
101
- }
102
- get visibleSavingsAccounts() {
103
- return this.savingsAccounts.filter((t) => !t.is_hidden);
104
- }
105
- addAccount = async (t) => {
106
- try {
107
- const e = await this.api.createAccount(t);
108
- a(() => {
109
- this.accounts = [...this.accounts, e];
110
- });
111
- } catch (e) {
112
- console.error(`Error occurred while adding an account: ${e}`);
113
- }
114
- };
115
- augmentAccounts = (t = this.accounts) => {
116
- const e = [];
117
- return t.forEach((c) => {
118
- const s = this.members.findIndex(
119
- (r) => r.guid === c.member_guid
120
- );
121
- if (s > -1) {
122
- let r = u.Connected;
123
- const i = this.members[s];
124
- _.includes(i.connection_status) ? r = u.Error : g.includes(i.connection_status) ? r = u.Processing : f.includes(i.connection_status) && (r = u.RequiresMfa);
125
- let h = c.user_name || c.feed_name || "";
126
- c.account_number && (h = `${h} *${c.account_number}`), e.push({
127
- ...c,
128
- institutionName: h,
129
- memberName: i.name,
130
- connectionStatus: r
131
- }), this.members[s].connectionStatus = r;
132
- }
133
- }), e;
134
- };
135
- loadAccounts = async (t) => {
136
- await this.loadMembers();
137
- try {
138
- const e = t || await this.api.getAccounts();
139
- a(() => {
140
- this.accounts = this.sortAccounts(this.augmentAccounts(e));
141
- });
142
- } catch (e) {
143
- console.error(`Error occurred while loading accounts: ${e}`);
144
- }
145
- };
146
- loadInstitutions = async (t) => {
147
- try {
148
- const e = t || await this.api.getInstitutions();
149
- a(() => {
150
- this.institutions = e;
151
- });
152
- } catch (e) {
153
- console.error(`Error occurred while loading institutions: ${e}`);
154
- }
155
- };
156
- loadMembers = async () => {
157
- try {
158
- const t = await this.api.getMembers();
159
- a(() => {
160
- this.members = t;
161
- });
162
- } catch (t) {
163
- console.error(`Error occurred while loading members: ${t}`);
164
- }
165
- };
166
- mergeAccounts = async (t) => {
167
- try {
168
- const e = await this.api.mergeAccounts(t), c = e[Object.keys(e)[0]];
169
- a(() => {
170
- const s = this.accounts.findIndex((i) => i.guid === t[1]);
171
- this.accounts.splice(s, 1);
172
- const r = this.accounts.findIndex((i) => i.guid === t[0]);
173
- this.accounts.splice(r, 1, c);
174
- });
175
- } catch (e) {
176
- console.error(`Error occurred while merging accounts: ${e}`);
177
- }
178
- };
179
- sortAccounts = (t = this.accounts) => t.sort((e, c) => e.account_type > c.account_type ? 1 : e.account_type < c.account_type ? -1 : (e.name || "") > (c.name || "") ? 1 : (e.name || "") < (c.name || "") ? -1 : 0);
180
- refreshAccounts = async () => {
181
- this.uiStore.setIsLoading(!0), await Promise.all([this.loadAccounts(), this.loadInstitutions()]), this.uiStore.setIsLoading(!1);
182
- };
183
- refreshMembers = async () => {
184
- try {
185
- await this.api.refreshAllMembers(), await this.loadMembers();
186
- } catch (t) {
187
- console.error(`Error occurredwhile refreshing members: ${t}`);
188
- }
189
- };
190
- removeAccount = async (t) => {
191
- try {
192
- await this.api.deleteAccount(t), a(() => {
193
- const e = this.accounts.findIndex((c) => c.guid === t);
194
- this.accounts.splice(e, 1);
195
- });
196
- } catch (e) {
197
- console.error(`Error occurred while removing an account: ${e}`);
198
- }
199
- };
200
- updateAccount = async (t) => {
201
- try {
202
- const e = await this.api.updateAccount(t);
203
- a(() => {
204
- const c = this.accounts.findIndex(
205
- (s) => s.guid === e.guid
206
- );
207
- this.accounts.splice(c, 1, e), this.accounts = this.augmentAccounts(this.accounts);
208
- });
209
- } catch (e) {
210
- console.error(`Error occurred while updating account: ${e}`);
211
- }
212
- };
213
- updateAccountFiltering = async (t, e) => {
214
- for (const c of t) {
215
- const s = this.accounts.find((r) => r.guid === c);
216
- if (s) {
217
- s.is_excluded_from_accounts = e, s.is_excluded_from_budgets = e, s.is_excluded_from_cash_flow = e, s.is_excluded_from_debts = e, s.is_excluded_from_goals = e, s.is_excluded_from_investments = e, s.is_excluded_from_net_worth = e, s.is_excluded_from_spending = e, s.is_excluded_from_transactions = e, s.is_excluded_from_trends = e;
218
- try {
219
- this.updateAccount(s);
220
- } catch (r) {
221
- console.error(`Failed to update account ${c} (added):`, r);
222
- }
223
- }
224
- }
225
- };
226
- }
227
- export {
228
- l as A,
229
- C as a
230
- };
@@ -1,9 +0,0 @@
1
- import { A as _ } from "./ConnectDrawer-DPnfeIfn.mjs";
2
- const s = (t) => t && (t.account_type === _.CREDIT_CARD || t.account_type === _.LOAN || t.account_type === _.MORTGAGE || t.account_type === _.LINE_OF_CREDIT || t.account_type === _.CHECKING_LINE_OF_CREDIT), p = (t) => t.is_manual || !t.guid, E = (t) => t.account_type === _.LINE_OF_CREDIT || t.account_type === _.CREDIT_CARD || t.account_type === _.CHECKING_LINE_OF_CREDIT, a = (t) => t.account_type === _.SAVINGS || t.account_type === _.CHECKING || t.account_type === _.LINE_OF_CREDIT || t.account_type === _.CREDIT_CARD || t.account_type === _.LOAN || t.account_type === _.MORTGAGE, y = (t) => t.account_type === _.LOAN || t.account_type === _.MORTGAGE;
3
- export {
4
- s as a,
5
- E as b,
6
- y as c,
7
- p as i,
8
- a as u
9
- };
@@ -1,21 +0,0 @@
1
- import { F as c, A as s } from "./Fetch-CkFKy79O.mjs";
2
- class i {
3
- fetchInstance;
4
- constructor(t, e) {
5
- this.fetchInstance = new c(t, e);
6
- }
7
- getBeats = async (t, e) => {
8
- const n = `page=${t || 1}&per_page=${e || 5}`;
9
- return this.fetchInstance.get(`${s.BEATS}?${n}`).then((a) => a.beats);
10
- };
11
- getBeatsWithAssociatedTransaction = async (t) => {
12
- let e = "has_associated_transaction_guid=true";
13
- return e += t ? `&from_date=${t}` : "", this.fetchInstance.get(`${s.BEATS}?${e}`).then((n) => n.beats);
14
- };
15
- getOffers = async () => this.fetchInstance.get(`${s.OFFERS}/${s.PULSE_COMMUNICATIONS}`).then((t) => t.pulse_communications);
16
- updateBeat = async (t) => this.fetchInstance.put(`${s.BEATS}/${t.guid}`, t).then((e) => e.beat);
17
- updateOffer = async (t) => this.fetchInstance.put(`${s.OFFERS}/${t.guid}`, t).then((e) => e.beat);
18
- }
19
- export {
20
- i as B
21
- };
@@ -1,81 +0,0 @@
1
- import { makeAutoObservable as c, runInAction as r } from "mobx";
2
- import { B as n } from "./BeatApi-DLu87ijw.mjs";
3
- function d(t, a, s, i = "asc") {
4
- const e = i === "desc" ? -1 : 1;
5
- return [...t, ...a].sort((_, l) => _[s] < l[s] ? -1 * e : _[s] > l[s] ? 1 * e : 0);
6
- }
7
- const m = (t) => ({
8
- ...t,
9
- //fields that are offer specific, adding here for visibility
10
- image_url: t.image_url,
11
- guid: t.guid,
12
- created_at: t.created_at,
13
- dismissed_at: t.dismissed_at,
14
- active_at: t.campaign_activated_at,
15
- displayed_at: t.has_been_viewed,
16
- post_message_secondary: t.pulse_post_message_secondary,
17
- //offer fields mapped to beat fields for functionality
18
- title: t.pulse_title || t.campaign_name,
19
- html_title: t.pulse_title || t.campaign_name,
20
- short_title: t.pulse_title || t.campaign_name,
21
- html_short_title: t.pulse_title || t.campaign_name,
22
- micro_title: t.pulse_title || t.campaign_name,
23
- html_micro_title: t.pulse_title || t.campaign_name,
24
- supporting_action: t.pulse_call_to_action_text_secondary,
25
- description: t.pulse_body,
26
- html_description: t.pulse_body,
27
- micro_description: t.pulse_body,
28
- html_micro_description: t.pulse_body,
29
- call_to_action: t.pulse_call_to_action_text,
30
- html_micro_call_to_action: t.pulse_call_to_action_text,
31
- micro_call_to_action: t.pulse_call_to_action_text,
32
- is_dismissed: t.has_been_dismissed,
33
- icon_type: 5,
34
- template: "MarketingOffer",
35
- //beat fields we null out
36
- account_guids: [],
37
- data_series: {},
38
- has_been_displayed: !1,
39
- is_obsolete: !1,
40
- is_refreshable: !1,
41
- is_sampled: !1,
42
- merchant_guids: [],
43
- payload: {},
44
- pulse_campaign_name: t.campaign_name,
45
- scheduled_payment_guids: [],
46
- transaction_guids: [],
47
- user_guid: "",
48
- user_verification: 0
49
- });
50
- class u {
51
- globalStore;
52
- api = new n("/", "");
53
- beats = [];
54
- isLoading = !1;
55
- constructor(a) {
56
- this.globalStore = a, this.api = new n(a.endpoint, a.sessionToken), c(this);
57
- }
58
- loadBeats = async () => {
59
- this.isLoading = !0;
60
- const a = await this.api.getBeats(), i = (await this.api.getOffers()).map((e) => m(e));
61
- r(() => {
62
- this.beats = d(a, i, "active_at", "desc"), this.isLoading = !1;
63
- });
64
- };
65
- getFilteredBeats(a) {
66
- const { categoryGuids: s, templates: i } = a;
67
- let e = this.beats;
68
- return s && (e = this.filterBeatsByCategory(e, s)), i && (e = this.filterBeatsByTemplate(e, i)), e;
69
- }
70
- // Return beats with any beat.category_guids that are in categoryGuids
71
- filterBeatsByCategory(a, s) {
72
- return a.filter((i) => i.category_guids?.some((e) => s.includes(e)));
73
- }
74
- // Return beats with a beat.template that is in templates
75
- filterBeatsByTemplate(a, s) {
76
- return a.filter((i) => s.some((e) => i.template === e));
77
- }
78
- }
79
- export {
80
- u as B
81
- };