@mx-cartographer/experiences 7.0.9 → 7.0.11-alpha.al0

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 (100) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{Account-BW3-oYEs.mjs → Account-D_kRKI6x.mjs} +1 -1
  3. package/dist/{AccountDetailsContent-Dkpo7pw6.mjs → AccountDetailsContent-Dfja2v8K.mjs} +19 -19
  4. package/dist/{AccountDetailsHeader-2HU_fMWZ.mjs → AccountDetailsHeader-nc5mqlHm.mjs} +5 -5
  5. package/dist/{AccountFields-CIz-r3gP.mjs → AccountFields-DeebSePp.mjs} +2 -2
  6. package/dist/{AccountListItem-B-ZjJ4Gp.mjs → AccountListItem-dh03tivj.mjs} +3 -3
  7. package/dist/{AccountStore-BQKxAYSg.mjs → AccountStore-Cp7xWX8n.mjs} +68 -63
  8. package/dist/{Accounts-CA-nqAjT.mjs → Accounts-DppzmFak.mjs} +1 -1
  9. package/dist/{BeatApi-DLu87ijw.mjs → BeatApi-D0WcLW3O.mjs} +3 -3
  10. package/dist/{BeatStore-By4aGoRM.mjs → BeatStore-y6WVs07e.mjs} +17 -17
  11. package/dist/{BudgetUtil-CeSLAcsl.mjs → BudgetUtil-DmWvHV7C.mjs} +1 -1
  12. package/dist/{CategorySelectorDrawer-BPvjZ-Xo.mjs → CategorySelectorDrawer-uTU7Nwn2.mjs} +1 -1
  13. package/dist/{CategoryStore-BOyzQjQp.mjs → CategoryStore-BfYppD3g.mjs} +4 -4
  14. package/dist/{ConnectDrawer-phFH6OHt.mjs → ConnectDrawer-BfYwIgKa.mjs} +5 -5
  15. package/dist/{ConnectionsDrawer-ihxkAi1P.mjs → ConnectionsDrawer-BKG07Loi.mjs} +2 -2
  16. package/dist/{CurrencyInput-bEx2Mbd0.mjs → CurrencyInput-BtrNBP3z.mjs} +1 -1
  17. package/dist/{DebtsStore-Dp-CraCD.mjs → DebtsStore-BR1o55kk.mjs} +1 -1
  18. package/dist/{ExportCsvAction-CvyiKLTh.mjs → ExportCsvAction-BH369hls.mjs} +3 -3
  19. package/dist/{Fetch-CkFKy79O.mjs → Fetch-CJ9cgjgV.mjs} +9 -8
  20. package/dist/{FinstrongStore-mkALvztw.mjs → FinstrongStore-rC2F4Tq3.mjs} +4 -4
  21. package/dist/{GoalStore-BWHkOQ8o.mjs → GoalStore-rZKi2YjE.mjs} +21 -21
  22. package/dist/{Help-B3oENhkG.mjs → Help-t24Ldz-O.mjs} +1 -1
  23. package/dist/{LineChart-jpdaQX7x.mjs → LineChart-CfEEnHUy.mjs} +1 -1
  24. package/dist/{ListItemAction-DNZZ5fSa.mjs → ListItemAction-Cwadpg85.mjs} +1 -1
  25. package/dist/{ManageIncome-Bd14SWPF.mjs → ManageIncome-xksS_sWM.mjs} +4 -4
  26. package/dist/MerchantStore-h96aTml7.mjs +37 -0
  27. package/dist/{MicroWidgetContainer-Dxz8uBN9.mjs → MicroWidgetContainer-DwTAjSdX.mjs} +1 -1
  28. package/dist/{MiniWidgetContainer-CTyjmE1h.mjs → MiniWidgetContainer-CxggrnHk.mjs} +1 -1
  29. package/dist/{NetWorthStore-B6xF9eGH.mjs → NetWorthStore-5qSDIglU.mjs} +2 -2
  30. package/dist/{NotificationSettings-uXVwpIa1.mjs → NotificationSettings-Cny7J1hO.mjs} +2 -2
  31. package/dist/{NotificationStore-DHtSGySy.mjs → NotificationStore-DpV9hXSE.mjs} +8 -4
  32. package/dist/{OriginalBalanceAction-DepsKiJz.mjs → OriginalBalanceAction-DDMRgIBU.mjs} +3 -3
  33. package/dist/{RecurringSettings-4Y2RJy_M.mjs → RecurringSettings-DXQ64A8U.mjs} +3 -3
  34. package/dist/{RecurringTransactionsStore-D62XJtdL.mjs → RecurringTransactionsStore-CXhnipfd.mjs} +20 -16
  35. package/dist/{SettingsStore-B4gi6oOw.mjs → SettingsStore-CLLqNa_S.mjs} +33 -29
  36. package/dist/{Transaction-Dns0Kuuy.mjs → Transaction-CXMMfhz-.mjs} +1 -1
  37. package/dist/{TransactionApi-DbbcjI2L.mjs → TransactionApi-C0HMGDBV.mjs} +29 -29
  38. package/dist/{TransactionDetails-BSl6CpL8.mjs → TransactionDetails-v77agHHP.mjs} +5 -5
  39. package/dist/{TransactionStore-BVKUoEHj.mjs → TransactionStore-Cu_KM_J9.mjs} +29 -25
  40. package/dist/{TrendsStore-D6Un6Y4A.mjs → TrendsStore-B4Q-iLX0.mjs} +1 -1
  41. package/dist/{ViewMoreMicroCard-BZI5VMNW.mjs → ViewMoreMicroCard-DJoNOqkD.mjs} +5 -2
  42. package/dist/{WidgetContainer-C2NBfpDg.mjs → WidgetContainer-QcfqagZD.mjs} +2 -2
  43. package/dist/accounts/api/AccountApi.d.ts +2 -2
  44. package/dist/accounts/index.es.js +17 -17
  45. package/dist/analytics/index.es.js +2 -2
  46. package/dist/budgets/api/BudgetsApi.d.ts +2 -2
  47. package/dist/budgets/index.es.js +10 -10
  48. package/dist/cashflow/api/CashflowApi.d.ts +3 -2
  49. package/dist/cashflow/index.es.js +10 -10
  50. package/dist/categories/index.es.js +2 -2
  51. package/dist/common/api/AnalyticsApi.d.ts +2 -2
  52. package/dist/common/api/AppDataApi.d.ts +2 -2
  53. package/dist/common/api/BeatApi.d.ts +2 -2
  54. package/dist/common/api/CategoryApi.d.ts +2 -3
  55. package/dist/common/api/GlobalCopyApi.d.ts +2 -1
  56. package/dist/common/api/LocalizedCopyApi.d.ts +2 -1
  57. package/dist/common/api/NotificationApi.d.ts +2 -2
  58. package/dist/common/api/ScheduledPaymentsApi.d.ts +3 -2
  59. package/dist/common/api/UserApi.d.ts +2 -2
  60. package/dist/common/context/GlobalDataProvider.d.ts +3 -2
  61. package/dist/common/context/hooks.d.ts +4 -1
  62. package/dist/common/context/index.d.ts +1 -1
  63. package/dist/common/index.es.js +321 -315
  64. package/dist/common/stores/GlobalStore.d.ts +2 -1
  65. package/dist/common/types/Handlers.d.ts +2 -0
  66. package/dist/common/types/index.d.ts +1 -0
  67. package/dist/common/utils/Fetch.d.ts +3 -1
  68. package/dist/common/utils/User.d.ts +2 -0
  69. package/dist/dashboard/index.es.js +7 -7
  70. package/dist/debts/index.es.js +11 -11
  71. package/dist/{exportTransactionsToCSV-B4JW8rfR.mjs → exportTransactionsToCSV-DpP_a1g8.mjs} +1 -1
  72. package/dist/finstrong/api/FinstrongApi.d.ts +2 -1
  73. package/dist/finstrong/index.es.js +7 -7
  74. package/dist/goals/api/GoalApi.d.ts +3 -2
  75. package/dist/goals/index.es.js +11 -11
  76. package/dist/help/api/HelpApi.d.ts +2 -2
  77. package/dist/help/index.es.js +3 -3
  78. package/dist/hooks-DcS6DyRl.mjs +74 -0
  79. package/dist/insights/index.es.js +1 -1
  80. package/dist/investments/api/HoldingApi.d.ts +3 -2
  81. package/dist/investments/index.es.js +3 -3
  82. package/dist/merchants/api/MerchantApi.d.ts +2 -1
  83. package/dist/merchants/index.es.js +2 -2
  84. package/dist/microinsights/context/InsightsMicroWidgetDataProvider.d.ts +2 -1
  85. package/dist/microinsights/context/hooks.d.ts +1 -1
  86. package/dist/microinsights/index.es.js +1 -1
  87. package/dist/networth/index.es.js +7 -7
  88. package/dist/notifications/index.es.js +5 -5
  89. package/dist/recurringtransactions/api/RepeatingTransactionsApi.d.ts +2 -2
  90. package/dist/recurringtransactions/index.es.js +10 -10
  91. package/dist/settings/api/SettingsApi.d.ts +3 -2
  92. package/dist/settings/index.es.js +7 -7
  93. package/dist/spending/index.es.js +4 -4
  94. package/dist/transactions/api/TransactionApi.d.ts +3 -2
  95. package/dist/transactions/index.es.js +14 -14
  96. package/dist/trends/index.es.js +10 -10
  97. package/dist/{useCombineEvents-DaDBSR_1.mjs → useCombineEvents-Dbjzfwvo.mjs} +29 -29
  98. package/package.json +1 -1
  99. package/dist/MerchantStore-DVH-QOf0.mjs +0 -37
  100. package/dist/hooks-DkUqN6JE.mjs +0 -71
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## [7.0.10] - 09-19-2025
2
+
3
+ - **ADDED** - Support for excluding external accounts based on feature flag
4
+
1
5
  ## [7.0.9] - 09-19-2025
2
6
 
3
7
  - **FIXED** - `Retirement Goal` Projection month and year issue fixed
@@ -1,4 +1,4 @@
1
- import { A as C } from "./ConnectDrawer-phFH6OHt.mjs";
1
+ import { A as C } from "./ConnectDrawer-BfYwIgKa.mjs";
2
2
  const I = [
3
3
  C.ANY,
4
4
  C.CASH,
@@ -11,18 +11,18 @@ 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-2HU_fMWZ.mjs";
15
- import { c as z, u as E, e as O, f as X } from "./hooks-DkUqN6JE.mjs";
16
- import { A as at } from "./AccountListItem-B-ZjJ4Gp.mjs";
17
- import { A as k } from "./WidgetContainer-C2NBfpDg.mjs";
18
- import { a as V, f as B, D as j } from "./Dialog-CWW597AF.mjs";
14
+ import { u as D } from "./AccountDetailsHeader-nc5mqlHm.mjs";
15
+ import { c as z, u as E, e as O, f as X } from "./hooks-DcS6DyRl.mjs";
16
+ import { A as at } from "./AccountListItem-dh03tivj.mjs";
17
+ import { A as k } from "./WidgetContainer-QcfqagZD.mjs";
18
+ import { a as V, f as B, D as K } from "./Dialog-CWW597AF.mjs";
19
19
  import { b as h } from "./Localization-2MODESHW.mjs";
20
20
  import { D as J } from "./Drawer-kEE73B87.mjs";
21
21
  import R from "@mui/material/ListItemAvatar";
22
22
  import ct from "@mui/material/Stack";
23
23
  import st from "@mui/material/styles/useTheme";
24
24
  import { Error as q, CheckCircle as it, Language as rt } from "@mxenabled/mx-icons";
25
- import { k as m, N as Q, j as Z, F as P } from "./ConnectDrawer-phFH6OHt.mjs";
25
+ import { k as m, N as Q, h as Z, F as P } from "./ConnectDrawer-BfYwIgKa.mjs";
26
26
  import { fromUnixTime as lt } from "date-fns/fromUnixTime";
27
27
  import { isToday as dt } from "date-fns/isToday";
28
28
  import { isYesterday as ut } from "date-fns/isYesterday";
@@ -37,15 +37,15 @@ import { LocalizationProvider as ft } from "@mui/x-date-pickers-pro";
37
37
  import At from "@mui/material/MenuItem";
38
38
  import bt from "@mui/material/Select";
39
39
  import Tt from "@mui/material/TextField";
40
- import { C as St } from "./CurrencyInput-bEx2Mbd0.mjs";
41
- import { a as Dt } from "./AccountFields-CIz-r3gP.mjs";
40
+ import { C as St } from "./CurrencyInput-BtrNBP3z.mjs";
41
+ import { a as Dt } from "./AccountFields-DeebSePp.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-BSl6CpL8.mjs";
48
- import { T as K } from "./TabContentContainer-j01JYR_7.mjs";
47
+ import { T as vt, a as Lt } from "./TransactionDetails-v77agHHP.mjs";
48
+ import { T as j } from "./TabContentContainer-j01JYR_7.mjs";
49
49
  const U = ({
50
50
  children: e,
51
51
  isLast: o = !1,
@@ -314,11 +314,11 @@ const U = ({
314
314
  };
315
315
  default: {
316
316
  const c = () => {
317
- const i = e.successfully_aggregated_at ? lt(e.successfully_aggregated_at) : void 0, u = i && B(i, j.TIME_STAMP_HOUR_MINUTE);
317
+ const i = e.successfully_aggregated_at ? lt(e.successfully_aggregated_at) : void 0, u = i && B(i, K.TIME_STAMP_HOUR_MINUTE);
318
318
  if (u)
319
319
  return dt(i) ? h(o.last_updated_at, o.today, u) : ut(i) ? h(o.last_updated_at, o.yesterday, u) : h(
320
320
  o.last_updated_at,
321
- B(i, j.MONTH_DAY_YEAR),
321
+ B(i, K.MONTH_DAY_YEAR),
322
322
  u
323
323
  );
324
324
  };
@@ -341,12 +341,12 @@ const U = ({
341
341
  } = st(), { selectedMember: c } = D(), { accounts: i, connect: u } = E(), l = tt(c, u), s = Q.includes(c.connection_status) ? {
342
342
  color: "error.main",
343
343
  ctaCopy: l.cta ?? "",
344
- icon: /* @__PURE__ */ t(q, { sx: { ...W } }),
344
+ icon: /* @__PURE__ */ t(q, { filled: !0, sx: { ...W } }),
345
345
  mainMessage: l.statusName,
346
346
  secondaryMessage: `${l.title}.`
347
347
  } : {
348
348
  color: "success.main",
349
- icon: /* @__PURE__ */ t(it, { sx: { ...W } }),
349
+ icon: /* @__PURE__ */ t(it, { filled: !0, sx: { ...W } }),
350
350
  mainMessage: l.statusName,
351
351
  secondaryMessage: l.title
352
352
  };
@@ -571,7 +571,7 @@ const U = ({
571
571
  children: /* @__PURE__ */ d(
572
572
  Et,
573
573
  {
574
- icon: /* @__PURE__ */ t(q, {}),
574
+ icon: /* @__PURE__ */ t(q, { filled: !0 }),
575
575
  severity: "error",
576
576
  sx: {
577
577
  borderLeft: 5,
@@ -609,7 +609,7 @@ const U = ({
609
609
  }
610
610
  )
611
611
  ] });
612
- }, Bt = b(Gt), jt = () => {
612
+ }, Bt = b(Gt), Kt = () => {
613
613
  const [e, o] = _.useState(""), { onEvent: n } = O(), { selectedAccount: c } = D(), { accounts: i } = E(), { setFilter: u, sortedTransactions: l } = X(), s = _.useMemo(
614
614
  () => l.find((r) => r.guid === e),
615
615
  [e, l]
@@ -632,7 +632,7 @@ const U = ({
632
632
  }
633
633
  )
634
634
  ] });
635
- }, Kt = b(jt), Yt = () => {
635
+ }, jt = b(Kt), Yt = () => {
636
636
  const [e, o] = _.useState(0), { accounts: n } = E();
637
637
  return /* @__PURE__ */ d(g, { children: [
638
638
  /* @__PURE__ */ t(Bt, { setTabValue: o }),
@@ -665,8 +665,8 @@ const U = ({
665
665
  ]
666
666
  }
667
667
  ),
668
- /* @__PURE__ */ t(K, { index: 0, name: "transaction-details", value: e, children: /* @__PURE__ */ t(Kt, {}) }),
669
- /* @__PURE__ */ t(K, { index: 1, name: "account-details", value: e, children: /* @__PURE__ */ t(Ht, {}) })
668
+ /* @__PURE__ */ t(j, { index: 0, name: "transaction-details", value: e, children: /* @__PURE__ */ t(jt, {}) }),
669
+ /* @__PURE__ */ t(j, { index: 1, name: "account-details", value: e, children: /* @__PURE__ */ t(Ht, {}) })
670
670
  ] });
671
671
  }, He = b(Yt);
672
672
  export {
@@ -2,17 +2,17 @@ import { jsx as e, jsxs as u } from "react/jsx-runtime";
2
2
  import { observer as p } from "mobx-react-lite";
3
3
  import d from "@mui/material/Stack";
4
4
  import { H3 as w, InstitutionLogo as I, Text as m, H2 as L } from "@mxenabled/mxui";
5
- import { g as N } from "./AccountFields-CIz-r3gP.mjs";
5
+ import { g as N } from "./AccountFields-DeebSePp.mjs";
6
6
  import h from "react";
7
- import { G as v, c as S, k as y, u as _, l as E } from "./hooks-DkUqN6JE.mjs";
7
+ import { G as v, c as S, k as y, u as _, l as E } from "./hooks-DcS6DyRl.mjs";
8
8
  import G from "@mui/material/Card";
9
9
  import O from "@mui/material/CardContent";
10
10
  import P from "@mui/material/CardHeader";
11
11
  import { useTheme as M } from "@mui/material/styles";
12
12
  import { g as B, a as H, b as U } from "./SpendingData-D5vsfYKo.mjs";
13
- import { L as j } from "./LineChart-jpdaQX7x.mjs";
14
- import { I as f, P as g, S as C } from "./Account-BW3-oYEs.mjs";
15
- import { A } from "./ConnectDrawer-phFH6OHt.mjs";
13
+ import { L as j } from "./LineChart-CfEEnHUy.mjs";
14
+ import { I as f, P as g, S as C } from "./Account-D_kRKI6x.mjs";
15
+ import { A } from "./ConnectDrawer-BfYwIgKa.mjs";
16
16
  import { L as z } from "./Loader-Dp1P2gNw.mjs";
17
17
  import { f as Y, D as k } from "./Dialog-CWW597AF.mjs";
18
18
  import { f as R } from "./NumberFormatting-CtWHhyBX.mjs";
@@ -1,7 +1,7 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
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-phFH6OHt.mjs";
4
- import { i as D, u as T, a as A, b as O, c as g } from "./Accounts-CA-nqAjT.mjs";
3
+ import { F as m, A as b, a as v, P as h, b as F } from "./ConnectDrawer-BfYwIgKa.mjs";
4
+ import { i as D, u as T, a as A, b as O, c as g } from "./Accounts-DppzmFak.mjs";
5
5
  import { f as _, i as d, a as N, b as S } from "./NumberFormatting-CtWHhyBX.mjs";
6
6
  import { b as i } from "./Localization-2MODESHW.mjs";
7
7
  import { f, D as o } from "./Dialog-CWW597AF.mjs";
@@ -10,9 +10,9 @@ import C from "@mui/material/styles/useTheme";
10
10
  import { InstitutionLogo as B, Text as o } from "@mxenabled/mxui";
11
11
  import { Error as L } from "@mxenabled/mx-icons";
12
12
  import { I as A } from "./IconBacking-B9oC6uL2.mjs";
13
- import { g as j } from "./AccountFields-CIz-r3gP.mjs";
14
- import { d } from "./ConnectDrawer-phFH6OHt.mjs";
15
- import { u as T } from "./hooks-DkUqN6JE.mjs";
13
+ import { g as j } from "./AccountFields-DeebSePp.mjs";
14
+ import { d } from "./ConnectDrawer-BfYwIgKa.mjs";
15
+ import { u as T } from "./hooks-DcS6DyRl.mjs";
16
16
  import { f as X } from "./NumberFormatting-CtWHhyBX.mjs";
17
17
  const $ = {
18
18
  gridRow: 1,
@@ -1,33 +1,34 @@
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-phFH6OHt.mjs";
1
+ import { makeAutoObservable as _, runInAction as a } from "mobx";
2
+ import { F as g, A as i } from "./Fetch-CJ9cgjgV.mjs";
3
+ import { A as s, d, E as f, i as p, j as y } from "./ConnectDrawer-BfYwIgKa.mjs";
4
4
  class l {
5
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);
6
+ constructor(t, e, n) {
7
+ this.fetchInstance = new g(t, e, void 0, n);
8
+ }
9
+ createAccount = async (t) => this.fetchInstance.post(i.ACCOUNTS, t).then((e) => e.account).catch((e) => e);
10
+ deleteAccount = async (t) => this.fetchInstance.delete(`${i.ACCOUNTS}/${t}`).catch((e) => e);
11
+ getAccounts = async () => this.fetchInstance.get(i.ACCOUNTS).then((t) => t.accounts).catch((t) => t);
12
+ getInstitutions = async () => this.fetchInstance.get(i.INSTITUTIONS).then((t) => t).catch((t) => t);
13
+ getMembers = async () => this.fetchInstance.get(i.MEMBERS).then((t) => t.members).catch((t) => t);
14
+ getMonthlyAccountBalances = async (t) => this.fetchInstance.get(`${i.ACCOUNTS}/${t}/monthly_account_balances`).then((e) => e.monthly_account_balances).catch((e) => e);
15
+ mergeAccounts = async (t) => this.fetchInstance.put(`${i.ACCOUNTS}/merge`, { accounts: t }).then((e) => e).catch((e) => e);
16
+ refreshAllMembers = async () => this.fetchInstance.get(`${i.MEMBERS}/refresh_all`).then((t) => t).catch((t) => t);
17
+ updateAccount = async (t) => this.fetchInstance.put(`${i.ACCOUNTS}/${t.guid}`, t).then((e) => e.account).catch((e) => e);
18
18
  }
19
- class p {
19
+ const I = (h, t) => !!h.find((e) => e.feature_name === t)?.is_enabled;
20
+ class b {
20
21
  isLoading = !1;
21
22
  selectedAccount = {};
22
23
  selectedMember = {};
23
24
  constructor() {
24
- m(this);
25
+ _(this);
25
26
  }
26
27
  setIsLoading = (t) => this.isLoading = t;
27
28
  setSelectedAccount = (t) => this.selectedAccount = t;
28
29
  setSelectedMember = (t) => this.selectedMember = t;
29
30
  }
30
- class C {
31
+ class w {
31
32
  globalStore;
32
33
  api = new l("/", "");
33
34
  accounts = [];
@@ -35,7 +36,7 @@ class C {
35
36
  members = [];
36
37
  uiStore;
37
38
  constructor(t) {
38
- this.globalStore = t, this.uiStore = new p(), this.api = new l(t.endpoint, t.sessionToken), m(this);
39
+ this.globalStore = t, this.uiStore = new b(), this.api = new l(t.endpoint, t.sessionToken, t.onError), _(this);
39
40
  }
40
41
  loadAccountData = async ({
41
42
  accounts: t,
@@ -45,36 +46,36 @@ class C {
45
46
  };
46
47
  get cashAccounts() {
47
48
  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
+ (t) => t.account_type === s.CASH || t.account_type === s.CHECKING || t.account_type === s.PREPAID || t.account_type === s.SAVINGS || t.account_type === s.CHECKING_LINE_OF_CREDIT
49
50
  );
50
51
  }
51
52
  get cashBalance() {
52
53
  return this.cashAccounts.reduce((t, e) => t + (e?.balance || 0), 0);
53
54
  }
54
55
  get checkingAccounts() {
55
- return this.accounts.filter((t) => t.account_type === n.CHECKING);
56
+ return this.accounts.filter((t) => t.account_type === s.CHECKING);
56
57
  }
57
58
  get debtAccounts() {
58
59
  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
+ (t) => t.account_type === s.CREDIT_CARD || t.account_type === s.LOAN || t.account_type === s.MORTGAGE || t.account_type === s.LINE_OF_CREDIT || t.account_type === s.CHECKING_LINE_OF_CREDIT
60
61
  );
61
62
  }
62
63
  get finstrongAccounts() {
63
64
  const t = /* @__PURE__ */ new Set([
64
- n.CHECKING,
65
- n.SAVINGS,
66
- n.CREDIT_CARD,
67
- n.INVESTMENT
65
+ s.CHECKING,
66
+ s.SAVINGS,
67
+ s.CREDIT_CARD,
68
+ s.INVESTMENT
68
69
  ]);
69
70
  return this.accounts.filter((e) => t.has(e.account_type));
70
71
  }
71
72
  get investmentAccounts() {
72
73
  return this.accounts.filter(
73
- (t) => t.account_type === n.INVESTMENT
74
+ (t) => t.account_type === s.INVESTMENT
74
75
  );
75
76
  }
76
77
  get savingsAccounts() {
77
- return this.accounts.filter((t) => t.account_type === n.SAVINGS);
78
+ return this.accounts.filter((t) => t.account_type === s.SAVINGS);
78
79
  }
79
80
  get visibleAccounts() {
80
81
  return this.accounts.filter((t) => !t.is_hidden);
@@ -113,24 +114,28 @@ class C {
113
114
  }
114
115
  };
115
116
  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;
117
+ const e = [], n = this.globalStore.userStore.userFeatures, c = I(
118
+ n,
119
+ "MD_EXCLUDE_EXTERNAL_ACCOUNTS"
120
+ );
121
+ for (const r of t) {
122
+ if (c && r.member_is_managed_by_user) continue;
123
+ const o = this.members.find((m) => m.guid === r.member_guid);
124
+ if (!o) continue;
125
+ let u = d.Connected;
126
+ f.includes(o.connection_status) ? u = d.Error : p.includes(o.connection_status) ? u = d.Processing : y.includes(o.connection_status) && (u = d.RequiresMfa);
127
+ const A = [
128
+ r.user_name || r.feed_name || "",
129
+ r.account_number ? `*${r.account_number}` : ""
130
+ ].join(" ").trim();
131
+ e.push({
132
+ ...r,
133
+ connectionStatus: u,
134
+ institutionName: A,
135
+ memberName: o.name
136
+ }), o.connectionStatus = u;
137
+ }
138
+ return e;
134
139
  };
135
140
  loadAccounts = async (t) => {
136
141
  await this.loadMembers();
@@ -165,18 +170,18 @@ class C {
165
170
  };
166
171
  mergeAccounts = async (t) => {
167
172
  try {
168
- const e = await this.api.mergeAccounts(t), c = e[Object.keys(e)[0]];
173
+ const e = await this.api.mergeAccounts(t), n = e[Object.keys(e)[0]];
169
174
  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);
175
+ const c = this.accounts.findIndex((o) => o.guid === t[1]);
176
+ this.accounts.splice(c, 1);
177
+ const r = this.accounts.findIndex((o) => o.guid === t[0]);
178
+ this.accounts.splice(r, 1, n);
174
179
  });
175
180
  } catch (e) {
176
181
  console.error(`Error occurred while merging accounts: ${e}`);
177
182
  }
178
183
  };
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);
184
+ sortAccounts = (t = this.accounts) => t.sort((e, n) => e.account_type > n.account_type ? 1 : e.account_type < n.account_type ? -1 : (e.name || "") > (n.name || "") ? 1 : (e.name || "") < (n.name || "") ? -1 : 0);
180
185
  refreshAccounts = async () => {
181
186
  this.uiStore.setIsLoading(!0), await Promise.all([this.loadAccounts(), this.loadInstitutions()]), this.uiStore.setIsLoading(!1);
182
187
  };
@@ -190,7 +195,7 @@ class C {
190
195
  removeAccount = async (t) => {
191
196
  try {
192
197
  await this.api.deleteAccount(t), a(() => {
193
- const e = this.accounts.findIndex((c) => c.guid === t);
198
+ const e = this.accounts.findIndex((n) => n.guid === t);
194
199
  this.accounts.splice(e, 1);
195
200
  });
196
201
  } catch (e) {
@@ -201,24 +206,24 @@ class C {
201
206
  try {
202
207
  const e = await this.api.updateAccount(t);
203
208
  a(() => {
204
- const c = this.accounts.findIndex(
205
- (s) => s.guid === e.guid
209
+ const n = this.accounts.findIndex(
210
+ (c) => c.guid === e.guid
206
211
  );
207
- this.accounts.splice(c, 1, e), this.accounts = this.augmentAccounts(this.accounts);
212
+ this.accounts.splice(n, 1, e), this.accounts = this.augmentAccounts(this.accounts);
208
213
  });
209
214
  } catch (e) {
210
215
  console.error(`Error occurred while updating account: ${e}`);
211
216
  }
212
217
  };
213
218
  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;
219
+ for (const n of t) {
220
+ const c = this.accounts.find((r) => r.guid === n);
221
+ if (c) {
222
+ c.is_excluded_from_accounts = e, c.is_excluded_from_budgets = e, c.is_excluded_from_cash_flow = e, c.is_excluded_from_debts = e, c.is_excluded_from_goals = e, c.is_excluded_from_investments = e, c.is_excluded_from_net_worth = e, c.is_excluded_from_spending = e, c.is_excluded_from_transactions = e, c.is_excluded_from_trends = e;
218
223
  try {
219
- this.updateAccount(s);
224
+ this.updateAccount(c);
220
225
  } catch (r) {
221
- console.error(`Failed to update account ${c} (added):`, r);
226
+ console.error(`Failed to update account ${n} (added):`, r);
222
227
  }
223
228
  }
224
229
  }
@@ -226,5 +231,5 @@ class C {
226
231
  }
227
232
  export {
228
233
  l as A,
229
- C as a
234
+ w as a
230
235
  };
@@ -1,4 +1,4 @@
1
- import { A as _ } from "./ConnectDrawer-phFH6OHt.mjs";
1
+ import { A as _ } from "./ConnectDrawer-BfYwIgKa.mjs";
2
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
3
  export {
4
4
  s as a,
@@ -1,8 +1,8 @@
1
- import { F as c, A as s } from "./Fetch-CkFKy79O.mjs";
1
+ import { F as c, A as s } from "./Fetch-CJ9cgjgV.mjs";
2
2
  class i {
3
3
  fetchInstance;
4
- constructor(t, e) {
5
- this.fetchInstance = new c(t, e);
4
+ constructor(t, e, n) {
5
+ this.fetchInstance = new c(t, e, void 0, n);
6
6
  }
7
7
  getBeats = async (t, e) => {
8
8
  const n = `page=${t || 1}&per_page=${e || 5}`;
@@ -1,8 +1,8 @@
1
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);
2
+ import { B as l } from "./BeatApi-D0WcLW3O.mjs";
3
+ function d(t, e, s, i = "asc") {
4
+ const a = i === "desc" ? -1 : 1;
5
+ return [...t, ...e].sort((_, n) => _[s] < n[s] ? -1 * a : _[s] > n[s] ? 1 * a : 0);
6
6
  }
7
7
  const m = (t) => ({
8
8
  ...t,
@@ -49,31 +49,31 @@ const m = (t) => ({
49
49
  });
50
50
  class u {
51
51
  globalStore;
52
- api = new n("/", "");
52
+ api = new l("/", "");
53
53
  beats = [];
54
54
  isLoading = !1;
55
- constructor(a) {
56
- this.globalStore = a, this.api = new n(a.endpoint, a.sessionToken), c(this);
55
+ constructor(e) {
56
+ this.globalStore = e, this.api = new l(e.endpoint, e.sessionToken, e.onError), c(this);
57
57
  }
58
58
  loadBeats = async () => {
59
59
  this.isLoading = !0;
60
- const a = await this.api.getBeats(), i = (await this.api.getOffers()).map((e) => m(e));
60
+ const e = await this.api.getBeats(), i = (await this.api.getOffers()).map((a) => m(a));
61
61
  r(() => {
62
- this.beats = d(a, i, "active_at", "desc"), this.isLoading = !1;
62
+ this.beats = d(e, i, "active_at", "desc"), this.isLoading = !1;
63
63
  });
64
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;
65
+ getFilteredBeats(e) {
66
+ const { categoryGuids: s, templates: i } = e;
67
+ let a = this.beats;
68
+ return s && (a = this.filterBeatsByCategory(a, s)), i && (a = this.filterBeatsByTemplate(a, i)), a;
69
69
  }
70
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)));
71
+ filterBeatsByCategory(e, s) {
72
+ return e.filter((i) => i.category_guids?.some((a) => s.includes(a)));
73
73
  }
74
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));
75
+ filterBeatsByTemplate(e, s) {
76
+ return e.filter((i) => s.some((a) => i.template === a));
77
77
  }
78
78
  }
79
79
  export {
@@ -1,4 +1,4 @@
1
- import { g as _ } from "./hooks-DkUqN6JE.mjs";
1
+ import { g as _ } from "./hooks-DcS6DyRl.mjs";
2
2
  import { b as d } from "./Category-CevNQ03n.mjs";
3
3
  import { b as f } from "./Localization-2MODESHW.mjs";
4
4
  import { f as l } from "./NumberFormatting-CtWHhyBX.mjs";
@@ -2,7 +2,7 @@ import { jsx as t, jsxs as E } from "react/jsx-runtime";
2
2
  import { observer as g } from "mobx-react-lite";
3
3
  import C from "react";
4
4
  import $ from "@mui/material/Stack";
5
- import { G as K, k as y, u as b, e as D, a as U } from "./hooks-DkUqN6JE.mjs";
5
+ import { G as K, k as y, u as b, e as D, a as U } from "./hooks-DcS6DyRl.mjs";
6
6
  import Y from "@mui/material/List";
7
7
  import V from "@mui/material/Paper";
8
8
  import v from "@mui/material/Divider";
@@ -4,12 +4,12 @@ import { subMonths as g } from "date-fns/subMonths";
4
4
  import { startOfMonth as h } from "date-fns/startOfMonth";
5
5
  import { endOfMonth as d } from "date-fns/endOfMonth";
6
6
  import { a as T, g as m } from "./CategoryUtil-BR3H5i6n.mjs";
7
- import { F as p, A as i } from "./Fetch-CkFKy79O.mjs";
7
+ import { F as p, A as i } from "./Fetch-CJ9cgjgV.mjs";
8
8
  import { b as f, c as w } from "./Category-CevNQ03n.mjs";
9
9
  class y {
10
10
  fetchInstance;
11
- constructor(t, e) {
12
- this.fetchInstance = new p(t, e);
11
+ constructor(t, e, o) {
12
+ this.fetchInstance = new p(t, e, void 0, o);
13
13
  }
14
14
  addCategory = async (t) => this.fetchInstance.post(i.CATEGORIES, t).then((e) => e.category);
15
15
  getCategories = async () => this.fetchInstance.get(i.CATEGORIES).then((t) => t.categories);
@@ -65,7 +65,7 @@ class G {
65
65
  isLoadingCategoryTotals = !1;
66
66
  monthlyTotalsLoaded = !1;
67
67
  constructor(t) {
68
- this.globalStore = t, this.uiStore = new S(), this.api = new y(t.endpoint, t.sessionToken), u(this);
68
+ this.globalStore = t, this.uiStore = new S(), this.api = new y(t.endpoint, t.sessionToken, t.onError), u(this);
69
69
  }
70
70
  get detailedCategories() {
71
71
  return T(
@@ -14,7 +14,7 @@ import p from "@mui/material/ListItemText";
14
14
  import y from "@mui/material/Popover";
15
15
  import g from "@mui/material/Stack";
16
16
  import v from "@mui/material/Checkbox";
17
- import { u as B, c, d as u } from "./hooks-DkUqN6JE.mjs";
17
+ import { u as B, c, d as u } from "./hooks-DcS6DyRl.mjs";
18
18
  import { b as W } from "./Localization-2MODESHW.mjs";
19
19
  import { u as EE } from "./useScreenSize-B6JyS_Lj.mjs";
20
20
  import { observer as z } from "mobx-react-lite";
@@ -498,10 +498,10 @@ export {
498
498
  sE as d,
499
499
  ZE as e,
500
500
  CE as f,
501
- jE as g,
502
- LE as h,
503
- bE as i,
504
- yE as j,
501
+ bE as g,
502
+ yE as h,
503
+ jE as i,
504
+ LE as j,
505
505
  lE as k,
506
506
  iE as l,
507
507
  SE as m
@@ -3,8 +3,8 @@ import r from "react";
3
3
  import { observer as E } from "mobx-react-lite";
4
4
  import { useTheme as D } from "@mui/material/styles";
5
5
  import { ConnectionsWidget as L } from "@mxenabled/web-widget-sdk";
6
- import { C as a, c, M as i } from "./ConnectDrawer-phFH6OHt.mjs";
7
- import { c as b, d as w, u as _ } from "./hooks-DkUqN6JE.mjs";
6
+ import { C as a, c, M as i } from "./ConnectDrawer-BfYwIgKa.mjs";
7
+ import { c as b, d as w, u as _ } from "./hooks-DcS6DyRl.mjs";
8
8
  import { D as x } from "./Drawer-kEE73B87.mjs";
9
9
  const I = ({
10
10
  onClose: l,
@@ -5,7 +5,7 @@ import { v4 as B } from "uuid";
5
5
  import { useTokens as O, TextField as W, P as p } from "@mxenabled/mxui";
6
6
  import { b as _, g as d } from "./Localization-2MODESHW.mjs";
7
7
  import { g as j, C as D, f as y, M as C } from "./NumberFormatting-CtWHhyBX.mjs";
8
- import { u as F } from "./hooks-DkUqN6JE.mjs";
8
+ import { u as F } from "./hooks-DcS6DyRl.mjs";
9
9
  const G = ({
10
10
  allowDecimals: o = !0,
11
11
  ariaLabel: g,
@@ -1,6 +1,6 @@
1
1
  import { makeAutoObservable as l } from "mobx";
2
2
  import { getDate as o, fromUnixTime as m, startOfMonth as _ } from "date-fns";
3
- import { A as b } from "./ConnectDrawer-phFH6OHt.mjs";
3
+ import { A as b } from "./ConnectDrawer-BfYwIgKa.mjs";
4
4
  var u = /* @__PURE__ */ ((a) => (a[a.HIGHEST_INTEREST = 1] = "HIGHEST_INTEREST", a[a.LOWEST_BALANCE = 2] = "LOWEST_BALANCE", a[a.HIGHEST_BALANCE = 3] = "HIGHEST_BALANCE", a))(u || {});
5
5
  const p = {
6
6
  unnamed_label: "Unnamed Debt"
@@ -1,10 +1,10 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
2
  import { observer as c } from "mobx-react-lite";
3
3
  import { Icon as i } from "@mxenabled/mxui";
4
- import { e as p } from "./exportTransactionsToCSV-B4JW8rfR.mjs";
5
- import { O as m } from "./Transaction-Dns0Kuuy.mjs";
4
+ import { e as p } from "./exportTransactionsToCSV-DpP_a1g8.mjs";
5
+ import { O as m } from "./Transaction-CXMMfhz-.mjs";
6
6
  import { R as x } from "./ResponsiveButton-DZFp78fJ.mjs";
7
- import { e as _, f as C, u as l } from "./hooks-DkUqN6JE.mjs";
7
+ import { e as _, f as C, u as l } from "./hooks-DcS6DyRl.mjs";
8
8
  const v = ({ filter: t }) => {
9
9
  const { onEvent: r } = _(), { tags: e, sortedTransactions: s } = C(), { transactions: n } = l(), a = () => {
10
10
  r(m.ON_TRANSACTION_EXPORT_CSV_CLICK), p(t ? s.filter(t) : s, e);