@mx-cartographer/experiences 9.1.3 → 9.1.4-alpha.al1

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 (131) hide show
  1. package/CHANGELOG.md +0 -6
  2. package/dist/{AccountDetailsDrawer-Cq4kiiKD.mjs → AccountDetailsDrawer-Da1-Y86z.mjs} +10 -10
  3. package/dist/{AccountDetailsDrawer-Cq4kiiKD.mjs.map → AccountDetailsDrawer-Da1-Y86z.mjs.map} +1 -1
  4. package/dist/{AccountDetailsHeader-BliEZhz7.mjs → AccountDetailsHeader-CE0HYbRA.mjs} +4 -4
  5. package/dist/{AccountDetailsHeader-BliEZhz7.mjs.map → AccountDetailsHeader-CE0HYbRA.mjs.map} +1 -1
  6. package/dist/{Analytics-CkYXKvco.mjs → Analytics-BJDUP2qI.mjs} +2 -2
  7. package/dist/{Analytics-CkYXKvco.mjs.map → Analytics-BJDUP2qI.mjs.map} +1 -1
  8. package/dist/{CategorySelectorDrawer-NJsFsKP1.mjs → CategorySelectorDrawer-BM5mKt7P.mjs} +2 -2
  9. package/dist/{CategorySelectorDrawer-NJsFsKP1.mjs.map → CategorySelectorDrawer-BM5mKt7P.mjs.map} +1 -1
  10. package/dist/{Connect-BH0Pt6zc.mjs → Connect-JoOkCXSZ.mjs} +2 -2
  11. package/dist/{Connect-BH0Pt6zc.mjs.map → Connect-JoOkCXSZ.mjs.map} +1 -1
  12. package/dist/{ConnectCard-D7uxoH5Y.mjs → ConnectCard-DnZHCv3m.mjs} +2 -2
  13. package/dist/{ConnectCard-D7uxoH5Y.mjs.map → ConnectCard-DnZHCv3m.mjs.map} +1 -1
  14. package/dist/{ConnectDrawer-CW4LA3H3.mjs → ConnectDrawer-Btol_U7o.mjs} +3 -3
  15. package/dist/{ConnectDrawer-CW4LA3H3.mjs.map → ConnectDrawer-Btol_U7o.mjs.map} +1 -1
  16. package/dist/{ConnectionsDrawer-CZU9ku-k.mjs → ConnectionsDrawer-DGv6aJ6x.mjs} +3 -3
  17. package/dist/{ConnectionsDrawer-CZU9ku-k.mjs.map → ConnectionsDrawer-DGv6aJ6x.mjs.map} +1 -1
  18. package/dist/{CurrencyInput-DaGEQaLW.mjs → CurrencyInput-CxAsTGg2.mjs} +2 -2
  19. package/dist/{CurrencyInput-DaGEQaLW.mjs.map → CurrencyInput-CxAsTGg2.mjs.map} +1 -1
  20. package/dist/{EmbeddedCard-DCOQnTz-.mjs → EmbeddedCard-Dwj1CkBK.mjs} +3 -3
  21. package/dist/{EmbeddedCard-DCOQnTz-.mjs.map → EmbeddedCard-Dwj1CkBK.mjs.map} +1 -1
  22. package/dist/{Error-Dtw6yxkf.mjs → Error-BMVsnvtd.mjs} +2 -2
  23. package/dist/{Error-Dtw6yxkf.mjs.map → Error-BMVsnvtd.mjs.map} +1 -1
  24. package/dist/ErrorBoundary-C7BlHx04.mjs +27 -0
  25. package/dist/ErrorBoundary-C7BlHx04.mjs.map +1 -0
  26. package/dist/{ExportCsvAction-C-IisDcv.mjs → ExportCsvAction-B23U4xj8.mjs} +3 -3
  27. package/dist/{ExportCsvAction-C-IisDcv.mjs.map → ExportCsvAction-B23U4xj8.mjs.map} +1 -1
  28. package/dist/{GlobalAccountFilter-BhzR5Vb1.mjs → GlobalAccountFilter-1NlROwU8.mjs} +2 -2
  29. package/dist/{GlobalAccountFilter-BhzR5Vb1.mjs.map → GlobalAccountFilter-1NlROwU8.mjs.map} +1 -1
  30. package/dist/GlobalCopyApi-Tz10hezK.mjs +130 -0
  31. package/dist/GlobalCopyApi-Tz10hezK.mjs.map +1 -0
  32. package/dist/{Help-zVZdcmlk.mjs → Help-BC5OU0yX.mjs} +145 -145
  33. package/dist/Help-BC5OU0yX.mjs.map +1 -0
  34. package/dist/{LineChart-CUfiH86G.mjs → LineChart-YCIQN3ho.mjs} +2 -2
  35. package/dist/{LineChart-CUfiH86G.mjs.map → LineChart-YCIQN3ho.mjs.map} +1 -1
  36. package/dist/{ListItemAction-BqUCLj_w.mjs → ListItemAction-D-XYTjj4.mjs} +2 -2
  37. package/dist/{ListItemAction-BqUCLj_w.mjs.map → ListItemAction-D-XYTjj4.mjs.map} +1 -1
  38. package/dist/{ListItemWrapper-DRse79Iu.mjs → ListItemWrapper-XiustNlS.mjs} +2 -2
  39. package/dist/{ListItemWrapper-DRse79Iu.mjs.map → ListItemWrapper-XiustNlS.mjs.map} +1 -1
  40. package/dist/{ManageIncome-B_8i71mE.mjs → ManageIncome-CWr2Eij2.mjs} +32 -32
  41. package/dist/{ManageIncome-B_8i71mE.mjs.map → ManageIncome-CWr2Eij2.mjs.map} +1 -1
  42. package/dist/{MicroWidgetContainer-B2NnKBgW.mjs → MicroWidgetContainer-u1hE4nVI.mjs} +2 -2
  43. package/dist/{MicroWidgetContainer-B2NnKBgW.mjs.map → MicroWidgetContainer-u1hE4nVI.mjs.map} +1 -1
  44. package/dist/{MiniWidgetContainer-Bmv_WeUd.mjs → MiniWidgetContainer-DFUhI7Ok.mjs} +2 -2
  45. package/dist/{MiniWidgetContainer-Bmv_WeUd.mjs.map → MiniWidgetContainer-DFUhI7Ok.mjs.map} +1 -1
  46. package/dist/{NotificationSettings-CW7okUrk.mjs → NotificationSettings-1OxkZpn7.mjs} +33 -33
  47. package/dist/{NotificationSettings-CW7okUrk.mjs.map → NotificationSettings-1OxkZpn7.mjs.map} +1 -1
  48. package/dist/{OriginalBalanceAction-YrvxBYAl.mjs → OriginalBalanceAction-BmuKAlKl.mjs} +4 -4
  49. package/dist/{OriginalBalanceAction-YrvxBYAl.mjs.map → OriginalBalanceAction-BmuKAlKl.mjs.map} +1 -1
  50. package/dist/{RecurringSettings-hs0YUp83.mjs → RecurringSettings-CMspUOGC.mjs} +3 -3
  51. package/dist/{RecurringSettings-hs0YUp83.mjs.map → RecurringSettings-CMspUOGC.mjs.map} +1 -1
  52. package/dist/{SpendingLegend-CxvNOg3c.mjs → SpendingLegend-CqLSaAYE.mjs} +2 -2
  53. package/dist/{SpendingLegend-CxvNOg3c.mjs.map → SpendingLegend-CqLSaAYE.mjs.map} +1 -1
  54. package/dist/{TransactionDetails-DT-MQqOB.mjs → TransactionDetails-DsWYPMCj.mjs} +5 -5
  55. package/dist/{TransactionDetails-DT-MQqOB.mjs.map → TransactionDetails-DsWYPMCj.mjs.map} +1 -1
  56. package/dist/{UserStore-E5WvBXaY.mjs → UserStore-CL_kIDzt.mjs} +367 -317
  57. package/dist/UserStore-CL_kIDzt.mjs.map +1 -0
  58. package/dist/{ViewMoreMicroCard-fnwE0hqd.mjs → ViewMoreMicroCard-CJckyYda.mjs} +4 -4
  59. package/dist/{ViewMoreMicroCard-fnwE0hqd.mjs.map → ViewMoreMicroCard-CJckyYda.mjs.map} +1 -1
  60. package/dist/{WidgetContainer-CjdCY4sj.mjs → WidgetContainer-C4PFkL6g.mjs} +3 -3
  61. package/dist/{WidgetContainer-CjdCY4sj.mjs.map → WidgetContainer-C4PFkL6g.mjs.map} +1 -1
  62. package/dist/accounts/index.es.js +11 -11
  63. package/dist/analytics/index.es.js +2 -2
  64. package/dist/budgets/index.es.js +10 -10
  65. package/dist/cashflow/index.es.js +70 -70
  66. package/dist/categories/index.es.js +1 -1
  67. package/dist/common/components/ErrorBoundary.d.ts +2 -0
  68. package/dist/common/components/ErrorTestButtons.d.ts +3 -0
  69. package/dist/common/components/index.d.ts +1 -0
  70. package/dist/common/context/GlobalDataProvider.d.ts +2 -1
  71. package/dist/common/context/hooks.d.ts +3 -0
  72. package/dist/common/context/index.d.ts +1 -1
  73. package/dist/common/index.es.js +252 -224
  74. package/dist/common/index.es.js.map +1 -1
  75. package/dist/core/api/AccountApi.d.ts +2 -2
  76. package/dist/core/api/AnalyticsApi.d.ts +2 -2
  77. package/dist/core/api/AppDataApi.d.ts +2 -2
  78. package/dist/core/api/BeatApi.d.ts +2 -2
  79. package/dist/core/api/BudgetsApi.d.ts +2 -2
  80. package/dist/core/api/CategoryApi.d.ts +2 -2
  81. package/dist/core/api/FinstrongApi.d.ts +2 -2
  82. package/dist/core/api/GlobalCopyApi.d.ts +2 -2
  83. package/dist/core/api/GoalApi.d.ts +2 -2
  84. package/dist/core/api/HelpApi.d.ts +2 -2
  85. package/dist/core/api/HoldingApi.d.ts +2 -2
  86. package/dist/core/api/MerchantApi.d.ts +2 -2
  87. package/dist/core/api/NotificationApi.d.ts +2 -2
  88. package/dist/core/api/RepeatingTransactionsApi.d.ts +2 -2
  89. package/dist/core/api/ScheduledPaymentsApi.d.ts +2 -2
  90. package/dist/core/api/SettingsApi.d.ts +2 -2
  91. package/dist/core/api/TransactionApi.d.ts +2 -2
  92. package/dist/core/api/UserApi.d.ts +2 -2
  93. package/dist/core/index.es.js +95 -95
  94. package/dist/core/index.es.js.map +1 -1
  95. package/dist/core/stores/GlobalStore.d.ts +4 -2
  96. package/dist/core/types/Handlers.d.ts +1 -0
  97. package/dist/core/types/index.d.ts +1 -1
  98. package/dist/core/utils/Fetch.d.ts +3 -2
  99. package/dist/dashboard/index.es.js +4 -4
  100. package/dist/debts/index.es.js +8 -8
  101. package/dist/finstrong/index.es.js +12 -12
  102. package/dist/goals/index.es.js +9 -9
  103. package/dist/help/index.es.js +4 -4
  104. package/dist/hooks-Chcgk3F2.mjs +83 -0
  105. package/dist/hooks-Chcgk3F2.mjs.map +1 -0
  106. package/dist/insights/index.es.js +4 -4
  107. package/dist/investments/index.es.js +4 -4
  108. package/dist/merchants/index.es.js +1 -1
  109. package/dist/microinsights/index.es.js +1 -1
  110. package/dist/networth/index.es.js +6 -6
  111. package/dist/notifications/index.es.js +8 -8
  112. package/dist/recurringtransactions/index.es.js +38 -38
  113. package/dist/settings/index.es.js +27 -27
  114. package/dist/spending/index.es.js +7 -7
  115. package/dist/transactions/index.es.js +11 -11
  116. package/dist/trends/index.es.js +12 -12
  117. package/dist/{useAccountDisplayName-BsiXA0qf.mjs → useAccountDisplayName-BC5i7pMh.mjs} +2 -2
  118. package/dist/{useAccountDisplayName-BsiXA0qf.mjs.map → useAccountDisplayName-BC5i7pMh.mjs.map} +1 -1
  119. package/dist/{useInsightsEnabled-D5Sdm0TJ.mjs → useInsightsEnabled-BpBk6YYj.mjs} +2 -2
  120. package/dist/{useInsightsEnabled-D5Sdm0TJ.mjs.map → useInsightsEnabled-BpBk6YYj.mjs.map} +1 -1
  121. package/dist/{useWidgetLoadTimer-B0tB-yzL.mjs → useWidgetLoadTimer-D0bW29qj.mjs} +2 -2
  122. package/dist/{useWidgetLoadTimer-B0tB-yzL.mjs.map → useWidgetLoadTimer-D0bW29qj.mjs.map} +1 -1
  123. package/package.json +1 -1
  124. package/dist/ErrorBoundary-CsdOcnJ9.mjs +0 -24
  125. package/dist/ErrorBoundary-CsdOcnJ9.mjs.map +0 -1
  126. package/dist/GlobalCopyApi-wcnDUzMV.mjs +0 -129
  127. package/dist/GlobalCopyApi-wcnDUzMV.mjs.map +0 -1
  128. package/dist/Help-zVZdcmlk.mjs.map +0 -1
  129. package/dist/UserStore-E5WvBXaY.mjs.map +0 -1
  130. package/dist/hooks-97sNJ_lf.mjs +0 -78
  131. package/dist/hooks-97sNJ_lf.mjs.map +0 -1
@@ -1,25 +1,25 @@
1
- import { makeAutoObservable as d, runInAction as c, reaction as ut, autorun as St, observable as Tt } from "mobx";
2
- import { d as At, g as wt } from "./AccountUtils-Cbh8r9cP.mjs";
3
- import { i as bt, f as It, b as Ct, c as W } from "./BudgetUtil-Bg2AQJpQ.mjs";
4
- import { c as h, d as O } from "./Account-DR7Plrqy.mjs";
5
- import { F as g, B as $, G as V } from "./GlobalCopyApi-wcnDUzMV.mjs";
1
+ import { makeAutoObservable as h, runInAction as c, reaction as ut, autorun as mt, observable as Tt } from "mobx";
2
+ import { d as At, g as bt } from "./AccountUtils-Cbh8r9cP.mjs";
3
+ import { i as wt, f as Et, b as It, c as W } from "./BudgetUtil-Bg2AQJpQ.mjs";
4
+ import { c as d, d as O } from "./Account-DR7Plrqy.mjs";
5
+ import { F as g, B as v, G as V } from "./GlobalCopyApi-Tz10hezK.mjs";
6
6
  import { A as i } from "./ApiEndpoints-DXwIYNUV.mjs";
7
- import Et from "posthog-js";
7
+ import Ct from "posthog-js";
8
8
  import { endOfMonth as T } from "date-fns/endOfMonth";
9
- import { startOfMonth as E } from "date-fns/startOfMonth";
9
+ import { startOfMonth as C } from "date-fns/startOfMonth";
10
10
  import { startOfToday as y } from "date-fns/startOfToday";
11
- import { C as w, b as Rt } from "./Category-DEKZGLYe.mjs";
11
+ import { C as b, b as Rt } from "./Category-DEKZGLYe.mjs";
12
12
  import { addDays as Dt } from "date-fns/addDays";
13
- import { differenceInDays as Lt } from "date-fns/differenceInDays";
13
+ import { differenceInDays as xt } from "date-fns/differenceInDays";
14
14
  import { isBefore as H } from "date-fns/isBefore";
15
- import { getUnixTime as m } from "date-fns/getUnixTime";
15
+ import { getUnixTime as S } from "date-fns/getUnixTime";
16
16
  import { subMonths as G } from "date-fns/subMonths";
17
- import { c as vt, d as $t, C as Gt, h as Nt, i as Bt, s as xt, j as Mt, T as Ot, D as Pt } from "./TransactionUtils-BphBJBbU.mjs";
17
+ import { c as Lt, d as vt, C as Gt, h as $t, i as Nt, s as Bt, j as Mt, T as Ot, D as Pt } from "./TransactionUtils-BphBJBbU.mjs";
18
18
  import { l as Ft, D as Ut } from "./DebtUtils-i4pI2Uoe.mjs";
19
19
  import { format as kt } from "date-fns/format";
20
20
  import { fromUnixTime as Ht } from "date-fns/fromUnixTime";
21
21
  import { f as U, D as k } from "./DateFormats-HudZ3Bjs.mjs";
22
- import { T as S, c as z } from "./GoalsUtil-C9EnLWvC.mjs";
22
+ import { T as m, c as z } from "./GoalsUtil-C9EnLWvC.mjs";
23
23
  import { A as Wt, m as Vt, a as zt, b as Kt } from "./InvestmentUtil-BItV7uEs.mjs";
24
24
  import { f as Qt, b as qt, a as K, c as Yt, d as jt, e as Xt, s as Jt } from "./NetWorthUtils-Dj7CgAg2.mjs";
25
25
  import { f as Zt } from "./NotificationUtils-BRGFTePr.mjs";
@@ -27,20 +27,20 @@ import { isAfter as P } from "date-fns/isAfter";
27
27
  import { isSameDay as Q } from "date-fns/isSameDay";
28
28
  import { isWithinInterval as gt } from "date-fns/isWithinInterval";
29
29
  import { subDays as pt } from "date-fns/subDays";
30
- import { f as F, h as te, b as L, a as f } from "./RecurringTransactionsUtil-CHWmqvW5.mjs";
31
- import { I as u, A as _, B as N } from "./Notification-DTNYSd8P.mjs";
30
+ import { f as F, h as te, b as x, a as f } from "./RecurringTransactionsUtil-CHWmqvW5.mjs";
31
+ import { I as u, A as _, B as $ } from "./Notification-DTNYSd8P.mjs";
32
32
  import { endOfToday as q } from "date-fns/endOfToday";
33
33
  import { formatISO as ee } from "date-fns/formatISO";
34
34
  import { addSeconds as se } from "date-fns/addSeconds";
35
35
  import { differenceInCalendarMonths as ae } from "date-fns/differenceInCalendarMonths";
36
36
  import { f as ne, b as ie } from "./TrendsUtil-D9z3kIj_.mjs";
37
37
  import { addMonths as re } from "date-fns/addMonths";
38
- import { getMonth as v } from "date-fns/getMonth";
38
+ import { getMonth as L } from "date-fns/getMonth";
39
39
  import { a as oe } from "./Help-CkQTjORd.mjs";
40
- class B {
40
+ class N {
41
41
  fetchInstance;
42
- constructor(t, e, s) {
43
- this.fetchInstance = new g(t, e, void 0, s);
42
+ constructor(t, e, s, a) {
43
+ this.fetchInstance = new g(t, e, void 0, s, a);
44
44
  }
45
45
  createAccount = async (t) => this.fetchInstance.post(i.ACCOUNTS, t).then((e) => e.account).catch((e) => e);
46
46
  deleteAccount = async (t) => this.fetchInstance.delete(`${i.ACCOUNTS}/${t}`).catch((e) => e);
@@ -54,8 +54,8 @@ class B {
54
54
  }
55
55
  class Y {
56
56
  fetchInstance;
57
- constructor(t, e, s) {
58
- this.fetchInstance = new g(t, e, void 0, s);
57
+ constructor(t, e, s, a) {
58
+ this.fetchInstance = new g(t, e, void 0, s, a);
59
59
  }
60
60
  getAppData = async () => this.fetchInstance.get(i.APP_DATA).then((t) => t);
61
61
  }
@@ -78,8 +78,8 @@ class j {
78
78
  }
79
79
  class X {
80
80
  fetchInstance;
81
- constructor(t, e, s) {
82
- this.fetchInstance = new g(t, e, void 0, s);
81
+ constructor(t, e, s, a) {
82
+ this.fetchInstance = new g(t, e, void 0, s, a);
83
83
  }
84
84
  addBudget = async (t, e, s = null) => this.fetchInstance.post(i.BUDGETS, {
85
85
  amount: e,
@@ -113,8 +113,8 @@ class X {
113
113
  }
114
114
  class J {
115
115
  fetchInstance;
116
- constructor(t, e, s) {
117
- this.fetchInstance = new g(t, e, void 0, s);
116
+ constructor(t, e, s, a) {
117
+ this.fetchInstance = new g(t, e, void 0, s, a);
118
118
  }
119
119
  addCategory = async (t) => this.fetchInstance.post(i.CATEGORIES, t).then((e) => e.category);
120
120
  getCategories = async () => this.fetchInstance.get(i.CATEGORIES).then((t) => t.categories);
@@ -138,8 +138,8 @@ class J {
138
138
  }
139
139
  class Z {
140
140
  fetchInstance;
141
- constructor(t, e, s) {
142
- this.fetchInstance = new g(t, e, void 0, s);
141
+ constructor(t, e, s, a) {
142
+ this.fetchInstance = new g(t, e, void 0, s, a);
143
143
  }
144
144
  calculateHealthScore = async () => this.fetchInstance.post(`${i.HEALTH_SCORES}/calculate`).then((t) => t.health_score);
145
145
  getAverageHealthScores = async () => this.fetchInstance.get(`${i.HEALTH_SCORES}/monthly_averages`).then((t) => t);
@@ -153,8 +153,8 @@ class Z {
153
153
  }
154
154
  class tt {
155
155
  fetchInstance;
156
- constructor(t, e, s) {
157
- this.fetchInstance = new g(t, e, void 0, s);
156
+ constructor(t, e, s, a) {
157
+ this.fetchInstance = new g(t, e, void 0, s, a);
158
158
  }
159
159
  addGoal = async (t) => this.fetchInstance.post(i.GOALS, t).then((e) => e.goal);
160
160
  addRetirementGoal = async (t) => this.fetchInstance.post(i.RETIREMENT_GOALS, t).then((e) => e.retirement_goal);
@@ -174,23 +174,23 @@ class tt {
174
174
  }
175
175
  class et {
176
176
  fetchInstance;
177
- constructor(t, e, s) {
178
- this.fetchInstance = new g(t, e, void 0, s);
177
+ constructor(t, e, s, a) {
178
+ this.fetchInstance = new g(t, e, void 0, s, a);
179
179
  }
180
180
  createSupportTicket = async (t) => this.fetchInstance.post(i.SUPPORT_TICKETS, t).then((e) => e);
181
181
  }
182
182
  class st {
183
183
  fetchInstance;
184
- constructor(t, e, s) {
185
- this.fetchInstance = new g(t, e, void 0, s);
184
+ constructor(t, e, s, a) {
185
+ this.fetchInstance = new g(t, e, void 0, s, a);
186
186
  }
187
187
  getHoldings = async () => this.fetchInstance.get(i.HOLDINGS).then((t) => t.holdings);
188
188
  updateHoldings = async (t) => this.fetchInstance.put(`${i.HOLDINGS}/${t.guid}`, t).then((e) => e.holding);
189
189
  }
190
190
  class at {
191
191
  fetchInstance;
192
- constructor(t, e, s) {
193
- this.fetchInstance = new g(t, e, void 0, s);
192
+ constructor(t, e, s, a) {
193
+ this.fetchInstance = new g(t, e, void 0, s, a);
194
194
  }
195
195
  getMerchants = async (t = [], e = [], s = 1, a = 25) => {
196
196
  let o = i.MERCHANTS;
@@ -200,8 +200,8 @@ class at {
200
200
  }
201
201
  class nt {
202
202
  fetchInstance;
203
- constructor(t, e, s) {
204
- this.fetchInstance = new g(t, e, void 0, s);
203
+ constructor(t, e, s, a) {
204
+ this.fetchInstance = new g(t, e, void 0, s, a);
205
205
  }
206
206
  getNotifications = () => this.fetchInstance.get(i.NOTIFICATIONS).then(
207
207
  (t) => t.notifications.map((e) => e.notification)
@@ -216,8 +216,8 @@ class nt {
216
216
  }
217
217
  class it {
218
218
  fetchInstance;
219
- constructor(t, e, s) {
220
- this.fetchInstance = new g(t, e, void 0, s);
219
+ constructor(t, e, s, a) {
220
+ this.fetchInstance = new g(t, e, void 0, s, a);
221
221
  }
222
222
  addRepeatingTransaction = async (t) => this.fetchInstance.post(i.REPEATING_TRANSACTIONS, t).then((e) => e.repeating_transaction);
223
223
  getRepeatingTransactions = async () => this.fetchInstance.get(i.REPEATING_TRANSACTIONS).then((t) => t.repeating_transactions);
@@ -229,8 +229,8 @@ class it {
229
229
  }
230
230
  class rt {
231
231
  fetchInstance;
232
- constructor(t, e, s) {
233
- this.fetchInstance = new g(t, e, void 0, s);
232
+ constructor(t, e, s, a) {
233
+ this.fetchInstance = new g(t, e, void 0, s, a);
234
234
  }
235
235
  deleteDevice = async (t) => this.fetchInstance.delete(`${i.DEVICES}/${t}`).then((e) => e);
236
236
  generateDeviceToken = async () => this.fetchInstance.get(`${i.USER}/mobile_token`).then((t) => t.mobile_token);
@@ -245,10 +245,10 @@ class rt {
245
245
  updateUserCommunicationProfile = async (t) => this.fetchInstance.put(i.USER_COMMUNICATION_PROFILE, t).then((e) => e.user_communication_profile);
246
246
  getInsightsNotificationProfiles = async () => this.fetchInstance.get(`${i.NOTIFICATION_PROFILES}/${i.INSIGHTS_NOTIFICATION_PROFILES}`).then((t) => t);
247
247
  }
248
- class x {
248
+ class B {
249
249
  fetchInstance;
250
- constructor(t, e, s) {
251
- this.fetchInstance = new g(t, e, void 0, s);
250
+ constructor(t, e, s, a) {
251
+ this.fetchInstance = new g(t, e, void 0, s, a);
252
252
  }
253
253
  addTag = async (t) => this.fetchInstance.post(i.TAGS, t).then((e) => e.tag).catch((e) => e);
254
254
  addTagging = async (t) => this.fetchInstance.post(i.TAGGINGS, t).then((e) => e.tagging).catch((e) => e);
@@ -311,7 +311,7 @@ class x {
311
311
  let o = `${i.TRANSACTIONS}/by_top_level_category_guid/${t}/by_date/${e}/${s}`;
312
312
  if (a.length > 0) {
313
313
  const r = a.reduce(
314
- (l, p, b) => `${l}account_guids[]=${p}${b !== a.length - 1 ? "&" : ""}`,
314
+ (l, p, w) => `${l}account_guids[]=${p}${w !== a.length - 1 ? "&" : ""}`,
315
315
  ""
316
316
  );
317
317
  o += `?${r}`;
@@ -329,8 +329,8 @@ class x {
329
329
  }
330
330
  class ot {
331
331
  fetchInstance;
332
- constructor(t, e, s) {
333
- this.fetchInstance = new g(t, e, void 0, s);
332
+ constructor(t, e, s, a) {
333
+ this.fetchInstance = new g(t, e, void 0, s, a);
334
334
  }
335
335
  getUserFeatures = async () => this.fetchInstance.get(i.USER_FEATURES).then((t) => t.user_features).catch((t) => t);
336
336
  updateUser = async (t) => this.fetchInstance.put(i.USER, t).then((e) => e.user);
@@ -345,7 +345,7 @@ class ct {
345
345
  }
346
346
  class ce {
347
347
  globalStore;
348
- api = new B("/", "");
348
+ api = new N("/", "");
349
349
  accounts = [];
350
350
  accountsLoaded = !1;
351
351
  accountsLoading = !1;
@@ -357,7 +357,12 @@ class ce {
357
357
  membersLoading = !1;
358
358
  uiStore;
359
359
  constructor(t) {
360
- this.globalStore = t, this.uiStore = new le(), this.api = new B(t.endpoint, t.sessionToken, t.onError), d(this);
360
+ this.globalStore = t, this.uiStore = new le(), this.api = new N(
361
+ t.endpoint,
362
+ t.sessionToken,
363
+ t.onError,
364
+ t.onCaptureException
365
+ ), h(this);
361
366
  }
362
367
  loadAccountData = async () => {
363
368
  await Promise.all([this.loadAccounts(), this.loadMembers(), this.loadInstitutions()]);
@@ -366,7 +371,7 @@ class ce {
366
371
  return this.accountsLoaded && this.membersLoaded && this.institutionsLoaded;
367
372
  }
368
373
  get detailedAccounts() {
369
- const t = this.globalStore.userStore.userFeatures, e = bt(t, "MD_EXCLUDE_EXTERNAL_ACCOUNTS"), s = this.globalStore.appConfig.config.display_only_external_accounts_in_accounts && this.globalStore.appConfig.options.subtype === "accounts";
374
+ const t = this.globalStore.userStore.userFeatures, e = wt(t, "MD_EXCLUDE_EXTERNAL_ACCOUNTS"), s = this.globalStore.appConfig.config.display_only_external_accounts_in_accounts && this.globalStore.appConfig.options.subtype === "accounts";
370
375
  return At(
371
376
  this.accounts,
372
377
  this.institutions,
@@ -384,43 +389,43 @@ class ce {
384
389
  }
385
390
  get cashAccounts() {
386
391
  return this.detailedAccounts.filter(
387
- (t) => t.account_type === h.CASH || t.account_type === h.CHECKING || t.account_type === h.PREPAID || t.account_type === h.SAVINGS || t.account_type === h.CHECKING_LINE_OF_CREDIT
392
+ (t) => t.account_type === d.CASH || t.account_type === d.CHECKING || t.account_type === d.PREPAID || t.account_type === d.SAVINGS || t.account_type === d.CHECKING_LINE_OF_CREDIT
388
393
  );
389
394
  }
390
395
  get cashBalance() {
391
396
  return this.cashAccounts.reduce((t, e) => t + (e?.balance || 0), 0);
392
397
  }
393
398
  get checkingAccounts() {
394
- return this.detailedAccounts.filter((t) => t.account_type === h.CHECKING);
399
+ return this.detailedAccounts.filter((t) => t.account_type === d.CHECKING);
395
400
  }
396
401
  get debtAccounts() {
397
402
  return this.detailedAccounts.filter(
398
- (t) => t.account_type === h.CREDIT_CARD || t.account_type === h.LOAN || t.account_type === h.MORTGAGE || t.account_type === h.LINE_OF_CREDIT || t.account_type === h.CHECKING_LINE_OF_CREDIT
403
+ (t) => t.account_type === d.CREDIT_CARD || t.account_type === d.LOAN || t.account_type === d.MORTGAGE || t.account_type === d.LINE_OF_CREDIT || t.account_type === d.CHECKING_LINE_OF_CREDIT
399
404
  );
400
405
  }
401
406
  get finstrongAccounts() {
402
407
  const t = /* @__PURE__ */ new Set([
403
- h.CHECKING,
404
- h.SAVINGS,
405
- h.CREDIT_CARD,
406
- h.INVESTMENT
408
+ d.CHECKING,
409
+ d.SAVINGS,
410
+ d.CREDIT_CARD,
411
+ d.INVESTMENT
407
412
  ]);
408
413
  return this.detailedAccounts.filter((e) => t.has(e.account_type));
409
414
  }
410
415
  get investmentAccounts() {
411
416
  return this.detailedAccounts.filter(
412
- (t) => t.account_type === h.INVESTMENT
417
+ (t) => t.account_type === d.INVESTMENT
413
418
  );
414
419
  }
415
420
  get manualAccounts() {
416
421
  return this.detailedAccounts.filter((t) => t.is_manual);
417
422
  }
418
423
  get savingsAccounts() {
419
- return this.detailedAccounts.filter((t) => t.account_type === h.SAVINGS);
424
+ return this.detailedAccounts.filter((t) => t.account_type === d.SAVINGS);
420
425
  }
421
426
  get retirementAccounts() {
422
427
  return this.detailedAccounts.filter(
423
- (t) => t.account_type === h.INVESTMENT || t.account_type === h.SAVINGS || t.account_type === h.CHECKING || t.account_type === h.CASH || t.account_type === h.PROPERTY || t.account_type === h.INSURANCE && (t.account_subtype === O.WHOLE_LIFE || t.account_subtype === O.UNIVERSAL_LIFE || t.account_subtype === O.VARIABLE_UNIVERSAL_LIFE)
428
+ (t) => t.account_type === d.INVESTMENT || t.account_type === d.SAVINGS || t.account_type === d.CHECKING || t.account_type === d.CASH || t.account_type === d.PROPERTY || t.account_type === d.INSURANCE && (t.account_subtype === O.WHOLE_LIFE || t.account_subtype === O.UNIVERSAL_LIFE || t.account_subtype === O.VARIABLE_UNIVERSAL_LIFE)
424
429
  );
425
430
  }
426
431
  get visibleAccounts() {
@@ -460,7 +465,7 @@ class ce {
460
465
  }
461
466
  get savingsAndCheckingAccounts() {
462
467
  return this.accounts.filter(
463
- (e) => e.account_type === h.SAVINGS || e.account_type === h.CHECKING
468
+ (e) => e.account_type === d.SAVINGS || e.account_type === d.CHECKING
464
469
  );
465
470
  }
466
471
  setAccounts = (t) => {
@@ -479,7 +484,7 @@ class ce {
479
484
  this.accounts = [...this.accounts, e];
480
485
  });
481
486
  } catch (e) {
482
- console.error(`Error occurred while adding an account: ${e}`);
487
+ console.error(`Error occurred while adding an account: ${e}`), this.globalStore.captureException(e, { store: "AccountStore" });
483
488
  }
484
489
  };
485
490
  loadAccounts = async () => {
@@ -489,7 +494,7 @@ class ce {
489
494
  const t = await this.api.getAccounts();
490
495
  this.setAccounts(t);
491
496
  } catch (t) {
492
- console.error(`Error occurred while loading accounts: ${t}`);
497
+ console.error(`Error occurred while loading accounts: ${t}`), this.globalStore.captureException(t, { store: "AccountStore" });
493
498
  }
494
499
  }
495
500
  };
@@ -500,7 +505,7 @@ class ce {
500
505
  const t = await this.api.getInstitutions();
501
506
  this.setInstitutions(t);
502
507
  } catch (t) {
503
- console.error(`Error occurred while loading institutions: ${t}`);
508
+ console.error(`Error occurred while loading institutions: ${t}`), this.globalStore.captureException(t, { store: "AccountStore" });
504
509
  }
505
510
  }
506
511
  };
@@ -511,7 +516,7 @@ class ce {
511
516
  const t = await this.api.getMembers();
512
517
  this.setMembers(t);
513
518
  } catch (t) {
514
- console.error(`Error occurred while loading members: ${t}`);
519
+ console.error(`Error occurred while loading members: ${t}`), this.globalStore.captureException(t, { store: "AccountStore" });
515
520
  }
516
521
  }
517
522
  };
@@ -525,7 +530,7 @@ class ce {
525
530
  this.accounts.splice(o, 1, s);
526
531
  });
527
532
  } catch (e) {
528
- console.error(`Error occurred while merging accounts: ${e}`);
533
+ console.error(`Error occurred while merging accounts: ${e}`), this.globalStore.captureException(e, { store: "AccountStore" });
529
534
  }
530
535
  };
531
536
  /**
@@ -538,7 +543,7 @@ class ce {
538
543
  try {
539
544
  await this.api.refreshAllMembers();
540
545
  } catch (t) {
541
- console.error(`Error occurredwhile refreshing members: ${t}`);
546
+ console.error(`Error occurredwhile refreshing members: ${t}`), this.globalStore.captureException(t, { store: "AccountStore" });
542
547
  }
543
548
  };
544
549
  removeAccount = async (t) => {
@@ -547,7 +552,7 @@ class ce {
547
552
  const e = this.accounts.findIndex((s) => s.guid === t);
548
553
  this.accounts.splice(e, 1);
549
554
  } catch (e) {
550
- console.error(`Error occurred while removing an account: ${e}`);
555
+ console.error(`Error occurred while removing an account: ${e}`), this.globalStore.captureException(e, { store: "AccountStore" });
551
556
  }
552
557
  };
553
558
  updateAccount = async (t) => {
@@ -557,7 +562,7 @@ class ce {
557
562
  );
558
563
  this.accounts.splice(s, 1, e);
559
564
  } catch (e) {
560
- console.error(`Error occurred while updating account: ${e}`);
565
+ console.error(`Error occurred while updating account: ${e}`), this.globalStore.captureException(e, { store: "AccountStore" });
561
566
  }
562
567
  };
563
568
  updateAccountBalance = (t, e) => {
@@ -584,12 +589,12 @@ let le = class {
584
589
  selectedAccount = {};
585
590
  selectedMember = {};
586
591
  constructor() {
587
- d(this);
592
+ h(this);
588
593
  }
589
594
  setSelectedAccount = (t) => this.selectedAccount = t;
590
595
  setSelectedMember = (t) => this.selectedMember = t;
591
596
  };
592
- class de {
597
+ class he {
593
598
  globalStore;
594
599
  api = new Y("/", "");
595
600
  bannerApi = new j("/");
@@ -597,7 +602,12 @@ class de {
597
602
  isAppDataLoaded = !1;
598
603
  banner = {};
599
604
  constructor(t) {
600
- this.globalStore = t, this.api = new Y(t.endpoint, t.sessionToken, t.onError), d(this);
605
+ this.globalStore = t, this.api = new Y(
606
+ t.endpoint,
607
+ t.sessionToken,
608
+ t.onError,
609
+ t.onCaptureException
610
+ ), h(this);
601
611
  }
602
612
  get appConfig() {
603
613
  return this.globalStore.appConfig;
@@ -625,7 +635,7 @@ class de {
625
635
  const t = await this.api.getAppData();
626
636
  this.setAppData(t);
627
637
  } catch (t) {
628
- console.error(`Error loading app data: ${t}`);
638
+ console.error(`Error loading app data: ${t}`), this.globalStore.captureException(t, { store: "AppDataStore" });
629
639
  }
630
640
  };
631
641
  loadBanner = async () => {
@@ -635,14 +645,14 @@ class de {
635
645
  this.banner = e;
636
646
  });
637
647
  } catch (t) {
638
- console.error(`Error loading banner: ${t}`);
648
+ console.error(`Error loading banner: ${t}`), this.globalStore.captureException(t, { store: "AppDataStore" });
639
649
  }
640
650
  };
641
651
  setUser = (t) => this.appData.user = t;
642
652
  setUserCommunicationProfile = (t) => this.appData.user_communication_profile = t;
643
653
  setUserProfile = (t) => this.appData.user_profile = t;
644
654
  }
645
- class he {
655
+ class de {
646
656
  globalStore;
647
657
  survey = null;
648
658
  currentQuestionIndex = 0;
@@ -650,7 +660,7 @@ class he {
650
660
  response = null;
651
661
  responses = {};
652
662
  constructor(t) {
653
- this.globalStore = t, d(this);
663
+ this.globalStore = t, h(this);
654
664
  }
655
665
  get isLastQuestion() {
656
666
  return this.currentQuestionIndex === this.surveyQuestions.length - 1;
@@ -672,7 +682,7 @@ class he {
672
682
  return this.survey ? this.survey.questions : [];
673
683
  }
674
684
  loadSurvey = (t = !1) => {
675
- Et.getActiveMatchingSurveys((e) => {
685
+ Ct.getActiveMatchingSurveys((e) => {
676
686
  c(() => {
677
687
  if (e.length > 0) {
678
688
  const s = e.find((a) => a.id === this.surveyId);
@@ -740,11 +750,16 @@ const ge = (n) => ({
740
750
  });
741
751
  class pe {
742
752
  globalStore;
743
- api = new $("/", "");
753
+ api = new v("/", "");
744
754
  beats = [];
745
755
  isLoading = !1;
746
756
  constructor(t) {
747
- this.globalStore = t, this.api = new $(t.endpoint, t.sessionToken, t.onError), d(this);
757
+ this.globalStore = t, this.api = new v(
758
+ t.endpoint,
759
+ t.sessionToken,
760
+ t.onError,
761
+ t.onCaptureException
762
+ ), h(this);
748
763
  }
749
764
  loadBeats = async () => {
750
765
  this.isLoading = !0;
@@ -771,7 +786,7 @@ class _e {
771
786
  api = new X("/", "");
772
787
  globalStore;
773
788
  alert = "";
774
- dateRange = { start: E(y()), end: T(y()) };
789
+ dateRange = { start: C(y()), end: T(y()) };
775
790
  budgets = [];
776
791
  selectedBudget;
777
792
  selectedSubBudget;
@@ -779,7 +794,12 @@ class _e {
779
794
  theme = {};
780
795
  merchantBudgets = [];
781
796
  constructor(t) {
782
- this.globalStore = t, this.api = new X(t.endpoint, t.sessionToken, t.onError), d(this);
797
+ this.globalStore = t, this.api = new X(
798
+ t.endpoint,
799
+ t.sessionToken,
800
+ t.onError,
801
+ t.onCaptureException
802
+ ), h(this);
783
803
  }
784
804
  loadBudgetData = async () => {
785
805
  this.globalStore.recurringTransactionsStore.isDataLoaded || await this.globalStore.recurringTransactionsStore.loadRepeatingTransactionData(), await this.loadBudgets(), ut(
@@ -787,9 +807,9 @@ class _e {
787
807
  (t) => {
788
808
  if (t) {
789
809
  const e = this.selectedBudget;
790
- e && (this.selectedBudget = It(t, e.guid));
810
+ e && (this.selectedBudget = Et(t, e.guid));
791
811
  const s = this.selectedSubBudget;
792
- s && s.parent_guid && (this.selectedSubBudget = Ct(
812
+ s && s.parent_guid && (this.selectedSubBudget = It(
793
813
  t,
794
814
  s.guid,
795
815
  s.parent_guid
@@ -801,7 +821,7 @@ class _e {
801
821
  get detailedBudgets() {
802
822
  return W(
803
823
  this.budgets.filter(
804
- (t) => t.category_guid !== w.INCOME && t.category_guid !== w.TRANSFER && t.category_guid !== w.INVESTMENTS
824
+ (t) => t.category_guid !== b.INCOME && t.category_guid !== b.TRANSFER && t.category_guid !== b.INVESTMENTS
805
825
  ),
806
826
  this.globalStore.categoryStore.detailedCategories,
807
827
  this.globalStore.copyStore.copy.budgets,
@@ -816,7 +836,7 @@ class _e {
816
836
  this.globalStore.copyStore.copy.budgets,
817
837
  this.theme
818
838
  ).reduce(
819
- (s, a) => a.category_guid !== w.INCOME ? s : !s || a.percentage > s.percentage ? a : s,
839
+ (s, a) => a.category_guid !== b.INCOME ? s : !s || a.percentage > s.percentage ? a : s,
820
840
  void 0
821
841
  )?.amount;
822
842
  }
@@ -835,7 +855,7 @@ class _e {
835
855
  this.budgets.push(a);
836
856
  });
837
857
  } catch (a) {
838
- console.error(`Error adding budget: ${a}`);
858
+ console.error(`Error adding budget: ${a}`), this.globalStore.captureException(a, { store: "BudgetsStore" });
839
859
  }
840
860
  };
841
861
  deleteBudget = async (t) => {
@@ -845,7 +865,7 @@ class _e {
845
865
  e >= 0 && this.budgets.splice(e, 1);
846
866
  });
847
867
  } catch (e) {
848
- console.error(`Error deleting budget: ${e}`);
868
+ console.error(`Error deleting budget: ${e}`), this.globalStore.captureException(e, { store: "BudgetsStore" });
849
869
  }
850
870
  };
851
871
  loadBudgets = async () => {
@@ -853,7 +873,7 @@ class _e {
853
873
  const t = await this.api.getBudgets();
854
874
  this.setBudgets(t);
855
875
  } catch (t) {
856
- throw console.error(`Error occurred while loading budgets: ${t}`), t;
876
+ throw console.error(`Error occurred while loading budgets: ${t}`), this.globalStore.captureException(t, { store: "BudgetsStore" }), t;
857
877
  }
858
878
  };
859
879
  setAlert = (t) => this.alert = t;
@@ -884,7 +904,7 @@ class _e {
884
904
  await this.api.deleteBudget(s.guid);
885
905
  return await this.loadBudgets(), { data: this.budgets, isSuccess: !0 };
886
906
  } catch (e) {
887
- return console.error("error recalculating budgets", e), { data: [], isSuccess: !1 };
907
+ return console.error("error recalculating budgets", e), this.globalStore.captureException(e, { store: "BudgetsStore" }), { data: [], isSuccess: !1 };
888
908
  }
889
909
  };
890
910
  updateBudget = async (t) => {
@@ -895,7 +915,7 @@ class _e {
895
915
  s >= 0 && (this.budgets[s] = e);
896
916
  });
897
917
  } catch (e) {
898
- console.error(`Error updating budget: ${e}`);
918
+ console.error(`Error updating budget: ${e}`), this.globalStore.captureException(e, { store: "BudgetsStore" });
899
919
  }
900
920
  };
901
921
  getMerchantBudgetByMerchantGuid = (t) => this.merchantBudgets.find(
@@ -911,7 +931,7 @@ class _e {
911
931
  this.merchantBudgets.push(s);
912
932
  }), { isSuccess: !0 };
913
933
  } catch (s) {
914
- return console.error(`Error adding merchant budget: ${s}`), { isSuccess: !1 };
934
+ return console.error(`Error adding merchant budget: ${s}`), this.globalStore.captureException(s, { store: "BudgetsStore" }), { isSuccess: !1 };
915
935
  }
916
936
  };
917
937
  updateMerchantBudget = async (t) => {
@@ -922,7 +942,7 @@ class _e {
922
942
  o >= 0 && (this.merchantBudgets[o] = a);
923
943
  }), { isSuccess: !0 };
924
944
  } catch (e) {
925
- return console.error(`Error updating merchant budget: ${e}`), { isSuccess: !1 };
945
+ return console.error(`Error updating merchant budget: ${e}`), this.globalStore.captureException(e, { store: "BudgetsStore" }), { isSuccess: !1 };
926
946
  }
927
947
  };
928
948
  deleteMerchantBudget = async (t) => {
@@ -931,7 +951,7 @@ class _e {
931
951
  this.merchantBudgets = this.merchantBudgets.filter((e) => e.guid !== t);
932
952
  }), { isSuccess: !0 };
933
953
  } catch (e) {
934
- return console.error(`Error deleting merchant budget: ${e}`), { isSuccess: !1 };
954
+ return console.error(`Error deleting merchant budget: ${e}`), this.globalStore.captureException(e, { store: "BudgetsStore" }), { isSuccess: !1 };
935
955
  }
936
956
  };
937
957
  }
@@ -939,7 +959,7 @@ class fe {
939
959
  globalStore;
940
960
  uiStore;
941
961
  constructor(t) {
942
- this.globalStore = t, this.uiStore = new ye(t), d(this);
962
+ this.globalStore = t, this.uiStore = new ye(t), h(this);
943
963
  }
944
964
  completeOnboarding = async () => {
945
965
  const t = {
@@ -958,7 +978,7 @@ let ye = class {
958
978
  dateRange = { start: y(), end: Dt(y(), 30) };
959
979
  isDirty = !1;
960
980
  constructor(t) {
961
- this.globalStore = t, d(this);
981
+ this.globalStore = t, h(this);
962
982
  }
963
983
  // Recurrence data scoped to Cash Flow's own dateRange, sourced from the
964
984
  // range-parameterized helpers on RecurringTransactionsStore. Computeds (not
@@ -989,13 +1009,13 @@ let ye = class {
989
1009
  get selectedCashBalance() {
990
1010
  const t = this.globalStore.appConfig.config.display_available_balance_in_accounts;
991
1011
  return this.selectedCashAccounts.reduce(
992
- (e, s) => e + wt(s, t),
1012
+ (e, s) => e + bt(s, t),
993
1013
  0
994
1014
  );
995
1015
  }
996
1016
  // Returns the number of days until the next income activity or 0 if there is no income activity
997
1017
  get daysUntilNextIncome() {
998
- return this.nextIncome ? Math.abs(Lt(y(), this.nextIncome.expectedDate)) : 0;
1018
+ return this.nextIncome ? Math.abs(xt(y(), this.nextIncome.expectedDate)) : 0;
999
1019
  }
1000
1020
  // Returns the expenses (Activities) until the next income activity or the end of the month
1001
1021
  // if there is no income activity
@@ -1005,7 +1025,7 @@ let ye = class {
1005
1025
  );
1006
1026
  }
1007
1027
  };
1008
- class me {
1028
+ class Se {
1009
1029
  globalStore;
1010
1030
  uiStore;
1011
1031
  api = new J("/", "");
@@ -1019,10 +1039,15 @@ class me {
1019
1039
  monthlyTotalsLoaded = !1;
1020
1040
  monthlyTotalsLoading = !1;
1021
1041
  constructor(t) {
1022
- this.globalStore = t, this.uiStore = new Se(), this.api = new J(t.endpoint, t.sessionToken, t.onError), d(this);
1042
+ this.globalStore = t, this.uiStore = new me(), this.api = new J(
1043
+ t.endpoint,
1044
+ t.sessionToken,
1045
+ t.onError,
1046
+ t.onCaptureException
1047
+ ), h(this);
1023
1048
  }
1024
1049
  get detailedCategories() {
1025
- return this.globalStore.isInitialized ? vt(
1050
+ return this.globalStore.isInitialized ? Lt(
1026
1051
  this.categories,
1027
1052
  this.globalStore.copyStore.copy.categories,
1028
1053
  this.dateRangeCategoryTotals,
@@ -1030,7 +1055,7 @@ class me {
1030
1055
  ) : [];
1031
1056
  }
1032
1057
  get detailedCategoriesWithTransactions() {
1033
- return $t(
1058
+ return vt(
1034
1059
  this.detailedCategories,
1035
1060
  this.globalStore.transactionStore.sortedTransactions
1036
1061
  );
@@ -1040,7 +1065,7 @@ class me {
1040
1065
  }
1041
1066
  get spendCategories() {
1042
1067
  return this.detailedCategories.filter(
1043
- (t) => !t.is_income && !t.isTransfer && t.guid !== w.INVESTMENTS
1068
+ (t) => !t.is_income && !t.isTransfer && t.guid !== b.INVESTMENTS
1044
1069
  );
1045
1070
  }
1046
1071
  get transferCategories() {
@@ -1056,14 +1081,14 @@ class me {
1056
1081
  this.dateRangeCategoryTotals = t, this.dateRangeTotalsLoading = !1, this.dateRangeTotalsLoaded = !0;
1057
1082
  };
1058
1083
  get trendsCategories() {
1059
- return this.detailedCategories.filter((t) => t.totalAmount !== 0).filter((t) => t.guid !== w.INVESTMENTS && t.guid !== w.TRANSFER);
1084
+ return this.detailedCategories.filter((t) => t.totalAmount !== 0).filter((t) => t.guid !== b.INVESTMENTS && t.guid !== b.TRANSFER);
1060
1085
  }
1061
1086
  addCategory = async (t, e) => {
1062
1087
  const s = { name: t, parent_guid: e };
1063
1088
  try {
1064
1089
  await this.api.addCategory(s), await this.loadCategories();
1065
1090
  } catch (a) {
1066
- console.error(`Error occurred while adding category: ${a}`);
1091
+ console.error(`Error occurred while adding category: ${a}`), this.globalStore.captureException(a, { store: "CategoryStore" });
1067
1092
  }
1068
1093
  };
1069
1094
  loadCategories = async () => {
@@ -1073,7 +1098,7 @@ class me {
1073
1098
  const t = await this.api.getCategories();
1074
1099
  this.setCategories(t);
1075
1100
  } catch (t) {
1076
- console.error(`Error occurred while getting categories: ${t}`);
1101
+ console.error(`Error occurred while getting categories: ${t}`), this.globalStore.captureException(t, { store: "CategoryStore" });
1077
1102
  }
1078
1103
  }
1079
1104
  };
@@ -1082,25 +1107,25 @@ class me {
1082
1107
  this.dateRangeTotalsLoading = !0;
1083
1108
  try {
1084
1109
  const a = await this.api.getDateRangeCategoryTotals(
1085
- m(e),
1086
- m(s),
1110
+ S(e),
1111
+ S(s),
1087
1112
  t
1088
1113
  );
1089
1114
  this.setDateRangeCategoryTotals(a);
1090
1115
  } catch (a) {
1091
- console.error(`Error occurred while getting date range category totals: ${a}`);
1116
+ console.error(`Error occurred while getting date range category totals: ${a}`), this.globalStore.captureException(a, { store: "CategoryStore" });
1092
1117
  }
1093
1118
  }
1094
1119
  };
1095
1120
  loadMonthlyCategoryTotals = async (t = this.globalStore.globalUiStore.selectedAccounts, e, s) => {
1096
1121
  if (this.monthlyTotalsLoading) return;
1097
1122
  this.monthlyTotalsLoading = !0;
1098
- const a = m(E(e ?? G(/* @__PURE__ */ new Date(), 11))), o = m(T(s ?? /* @__PURE__ */ new Date()));
1123
+ const a = S(C(e ?? G(/* @__PURE__ */ new Date(), 11))), o = S(T(s ?? /* @__PURE__ */ new Date()));
1099
1124
  try {
1100
1125
  const r = await this.api.getMonthlyCategoryTotals(a, o, t);
1101
1126
  this.setMonthlyCategoryTotals(r);
1102
1127
  } catch (r) {
1103
- console.error(`Error occurred while getting monthly category totals: ${r}`);
1128
+ console.error(`Error occurred while getting monthly category totals: ${r}`), this.globalStore.captureException(r, { store: "CategoryStore" });
1104
1129
  }
1105
1130
  };
1106
1131
  reloadCategoryTotals = async (t, e, s) => {
@@ -1111,27 +1136,27 @@ class me {
1111
1136
  this.loadDateRangeCategoryTotals(t, a, o)
1112
1137
  ]);
1113
1138
  } catch (r) {
1114
- console.error(`Error occurred while getting category totals: ${r}`);
1139
+ console.error(`Error occurred while getting category totals: ${r}`), this.globalStore.captureException(r, { store: "CategoryStore" });
1115
1140
  }
1116
1141
  };
1117
1142
  removeCategory = async (t) => {
1118
1143
  try {
1119
1144
  await this.api.removeCategory(t), await this.loadCategories();
1120
1145
  } catch (e) {
1121
- console.error(`Error occurred while removing category: ${e}`);
1146
+ console.error(`Error occurred while removing category: ${e}`), this.globalStore.captureException(e, { store: "CategoryStore" });
1122
1147
  }
1123
1148
  };
1124
1149
  updateCategory = async (t) => {
1125
1150
  try {
1126
1151
  await this.api.updateCategory(t), await this.loadCategories();
1127
1152
  } catch (e) {
1128
- console.error(`Error occurred while updating category: ${e}`);
1153
+ console.error(`Error occurred while updating category: ${e}`), this.globalStore.captureException(e, { store: "CategoryStore" });
1129
1154
  }
1130
1155
  };
1131
1156
  // TODO: Remove this after refactoring Trends components to use detailedCategories
1132
1157
  getCategoryName = (t) => this.categories.find((s) => s.guid === t)?.name ?? Rt[t];
1133
1158
  }
1134
- let Se = class {
1159
+ let me = class {
1135
1160
  expandedGuid = null;
1136
1161
  selectedGuid = null;
1137
1162
  searchValue = "";
@@ -1142,7 +1167,7 @@ let Se = class {
1142
1167
  savedOnSelect;
1143
1168
  // todo
1144
1169
  constructor() {
1145
- d(this);
1170
+ h(this);
1146
1171
  }
1147
1172
  setExpandedGuid = (t) => this.expandedGuid = t;
1148
1173
  setSelectedGuid = (t) => this.selectedGuid = t;
@@ -1158,7 +1183,7 @@ class Te {
1158
1183
  globalStore;
1159
1184
  widgetApi = new ct("/", "");
1160
1185
  constructor(t) {
1161
- this.globalStore = t, this.widgetApi = new ct(t.endpoint, t.sessionToken), d(this);
1186
+ this.globalStore = t, this.widgetApi = new ct(t.endpoint, t.sessionToken), h(this);
1162
1187
  }
1163
1188
  loadWidget = async ({ widget: t = "connect_widget", mode: e = "light", ...s }) => await this.widgetApi.requestWidgetUrl({
1164
1189
  widget_url: { widget_type: t, color_scheme: e, ...s }
@@ -1168,7 +1193,7 @@ class Ae {
1168
1193
  globalStore;
1169
1194
  uiStore;
1170
1195
  constructor(t) {
1171
- this.globalStore = t, this.uiStore = new we(), d(this);
1196
+ this.globalStore = t, this.uiStore = new be(), h(this);
1172
1197
  }
1173
1198
  get debts() {
1174
1199
  const { visibleDebtAccounts: t } = this.globalStore.accountStore, { selectedAccountGuids: e } = this.globalStore.globalUiStore, { debtGoals: s } = this.globalStore.goalStore, a = e.length ? t.filter((o) => e.includes(o.guid)) : t;
@@ -1178,12 +1203,12 @@ class Ae {
1178
1203
  return this.debts.map((e) => Number(e.monthly_payment)).filter((e) => !isNaN(e)).reduce((e, s) => e + s, 0);
1179
1204
  }
1180
1205
  }
1181
- let we = class {
1206
+ let be = class {
1182
1207
  isLoading = !1;
1183
1208
  selectedDebtChartData = {};
1184
1209
  selectedDebtPriority = Ut.LOWEST_BALANCE;
1185
1210
  constructor() {
1186
- d(this);
1211
+ h(this);
1187
1212
  }
1188
1213
  get showError() {
1189
1214
  const { interest_rate: t, monthly_payment: e } = this.selectedDebtChartData;
@@ -1196,16 +1221,16 @@ let we = class {
1196
1221
  setSelectedDebtChartData = (t) => this.selectedDebtChartData = t;
1197
1222
  setSelectedDebtPriority = (t) => this.selectedDebtPriority = t;
1198
1223
  };
1199
- const be = (n) => n.sort((t, e) => t.monthly_health_score_average.year !== e.monthly_health_score_average.year ? t.monthly_health_score_average.year - e.monthly_health_score_average.year : t.monthly_health_score_average.month - e.monthly_health_score_average.month).map((t) => ({
1224
+ const we = (n) => n.sort((t, e) => t.monthly_health_score_average.year !== e.monthly_health_score_average.year ? t.monthly_health_score_average.year - e.monthly_health_score_average.year : t.monthly_health_score_average.month - e.monthly_health_score_average.month).map((t) => ({
1200
1225
  x: U(
1201
1226
  new Date(0, t.monthly_health_score_average.month - 1, 1),
1202
1227
  k.MONTH_SHORT
1203
1228
  ),
1204
1229
  y: Math.round(t.monthly_health_score_average.average_health_score)
1205
- })), Ie = (n) => n.map(({ transaction: e }) => ({
1230
+ })), Ee = (n) => n.map(({ transaction: e }) => ({
1206
1231
  ...e
1207
1232
  })).sort((e, s) => s.date - e.date);
1208
- class Ce {
1233
+ class Ie {
1209
1234
  api = new Z("/", "");
1210
1235
  augmentedChartData = [];
1211
1236
  averageHealthScores = [];
@@ -1222,7 +1247,12 @@ class Ce {
1222
1247
  isSpendingInitialized = !1;
1223
1248
  isIncomeInitialized = !1;
1224
1249
  constructor(t) {
1225
- this.globalStore = t, this.api = new Z(t.endpoint, t.sessionToken, t.onError), d(this);
1250
+ this.globalStore = t, this.api = new Z(
1251
+ t.endpoint,
1252
+ t.sessionToken,
1253
+ t.onError,
1254
+ t.onCaptureException
1255
+ ), h(this);
1226
1256
  }
1227
1257
  setSpendingInitialized = (t) => {
1228
1258
  this.isSpendingInitialized = t;
@@ -1240,7 +1270,7 @@ class Ce {
1240
1270
  this.healthScore = e, this.healthScoreChange = s;
1241
1271
  });
1242
1272
  } catch (e) {
1243
- console.error("Error calculating health score:", e);
1273
+ console.error("Error calculating health score:", e), this.globalStore.captureException(e, { store: "FinstrongStore" });
1244
1274
  }
1245
1275
  };
1246
1276
  loadAverageHealthScores = async () => {
@@ -1250,7 +1280,7 @@ class Ce {
1250
1280
  this.averageHealthScores = t;
1251
1281
  });
1252
1282
  } catch (t) {
1253
- console.error("Error loading average health scores:", t);
1283
+ console.error("Error loading average health scores:", t), this.globalStore.captureException(t, { store: "FinstrongStore" });
1254
1284
  }
1255
1285
  };
1256
1286
  loadMonthlySummaries = async () => {
@@ -1260,7 +1290,7 @@ class Ce {
1260
1290
  this.monthlySummaries = t;
1261
1291
  });
1262
1292
  } catch (t) {
1263
- console.error("Error loading monthly summaries:", t);
1293
+ console.error("Error loading monthly summaries:", t), this.globalStore.captureException(t, { store: "FinstrongStore" });
1264
1294
  }
1265
1295
  };
1266
1296
  loadDebtSpend = async () => {
@@ -1270,7 +1300,7 @@ class Ce {
1270
1300
  this.debtSpendTransactions = t;
1271
1301
  });
1272
1302
  } catch (t) {
1273
- console.error("Error loading debt spend:", t);
1303
+ console.error("Error loading debt spend:", t), this.globalStore.captureException(t, { store: "FinstrongStore" });
1274
1304
  }
1275
1305
  };
1276
1306
  loadIncome = async () => {
@@ -1281,11 +1311,11 @@ class Ce {
1281
1311
  this.incomeTransactions = t, this.setIncomeInitialized(!0);
1282
1312
  });
1283
1313
  } catch (t) {
1284
- console.error("Error loading income:", t);
1314
+ console.error("Error loading income:", t), this.globalStore.captureException(t, { store: "FinstrongStore" });
1285
1315
  }
1286
1316
  };
1287
1317
  loadHealthScoreChangeReports = async () => {
1288
- const t = m(G(/* @__PURE__ */ new Date(), 2)), e = m(/* @__PURE__ */ new Date());
1318
+ const t = S(G(/* @__PURE__ */ new Date(), 2)), e = S(/* @__PURE__ */ new Date());
1289
1319
  try {
1290
1320
  const s = await this.api.getHealthScoreChangeReports(
1291
1321
  t,
@@ -1295,7 +1325,7 @@ class Ce {
1295
1325
  this.healthScoreChangeReports = s;
1296
1326
  });
1297
1327
  } catch (s) {
1298
- console.error("Error loading health score change reports:", s);
1328
+ console.error("Error loading health score change reports:", s), this.globalStore.captureException(s, { store: "FinstrongStore" });
1299
1329
  }
1300
1330
  };
1301
1331
  loadPeerScore = async () => {
@@ -1306,27 +1336,27 @@ class Ce {
1306
1336
  this.peerScore = e;
1307
1337
  });
1308
1338
  } catch (e) {
1309
- console.error("Error loading peer score:", e);
1339
+ console.error("Error loading peer score:", e), this.globalStore.captureException(e, { store: "FinstrongStore" });
1310
1340
  }
1311
1341
  };
1312
1342
  loadAugmentedChartData = async () => {
1313
1343
  try {
1314
1344
  const t = await this.api.getAverageHealthScores();
1315
1345
  c(() => {
1316
- this.augmentedChartData = be(t);
1346
+ this.augmentedChartData = we(t);
1317
1347
  });
1318
1348
  } catch (t) {
1319
- console.error(`Error occurred while getting augmented chart data: ${t}`);
1349
+ console.error(`Error occurred while getting augmented chart data: ${t}`), this.globalStore.captureException(t, { store: "FinstrongStore" });
1320
1350
  }
1321
1351
  };
1322
1352
  getSpendingFeeTransactions = async () => {
1323
1353
  try {
1324
- const t = await this.api.getSpendingFeeTransactions(), e = Ie(t);
1354
+ const t = await this.api.getSpendingFeeTransactions(), e = Ee(t);
1325
1355
  c(() => {
1326
1356
  this.spendingFeeTransactions = e;
1327
1357
  });
1328
1358
  } catch (t) {
1329
- console.error(`Error occurred while getting spending fee transactions: ${t}`);
1359
+ console.error(`Error occurred while getting spending fee transactions: ${t}`), this.globalStore.captureException(t, { store: "FinstrongStore" });
1330
1360
  }
1331
1361
  };
1332
1362
  loadSpendTransactions = async () => {
@@ -1337,7 +1367,7 @@ class Ce {
1337
1367
  this.spendTransactions = [...t], this.setSpendingInitialized(!0);
1338
1368
  });
1339
1369
  } catch (t) {
1340
- console.error("Error loading spend transactions:", t);
1370
+ console.error("Error loading spend transactions:", t), this.globalStore.captureException(t, { store: "FinstrongStore" });
1341
1371
  }
1342
1372
  };
1343
1373
  get spendAndDebtTransactions() {
@@ -1458,11 +1488,12 @@ const lt = {
1458
1488
  postHogPublicKey: "phc_1fVYJICC69TpW4wagp9o2XqQ8E7X98cAmcR5psSpfkE",
1459
1489
  userFeatures: []
1460
1490
  };
1461
- class Ns {
1491
+ class $s {
1462
1492
  // Global properties
1463
1493
  appConfig = lt;
1464
1494
  endpoint = "/";
1465
1495
  sessionToken = "";
1496
+ onCaptureException;
1466
1497
  onError;
1467
1498
  onStoreUpdate;
1468
1499
  // Data Stores
@@ -1490,17 +1521,20 @@ class Ns {
1490
1521
  userStore;
1491
1522
  // UI Stores
1492
1523
  globalUiStore;
1493
- constructor(t = lt, e = "/", s, a) {
1494
- this.appConfig = t, this.endpoint = e, this.sessionToken = t.options.session_token ?? "", this.onError = s, this.onStoreUpdate = a, this.accountStore = new ce(this), this.appDataStore = new de(this), this.analyticsStore = new he(this), this.beatStore = new pe(this), this.budgetsStore = new _e(this), this.cashflowStore = new fe(this), this.categoryStore = new me(this), this.connectStore = new Te(this), this.copyStore = new Re(this), this.debtsStore = new Ae(this), this.finstrongStore = new Ce(this), this.goalStore = new De(this), this.helpStore = new $e(this), this.holdingStore = new Ge(this), this.merchantStore = new Ne(this), this.netWorthStore = new Be(this), this.notificationStore = new xe(this), this.recurringTransactionsStore = new Me(this), this.settingsStore = new Fe(this), this.transactionStore = new Ue(this), this.trendsStore = new He(this), this.userStore = new We(this), this.globalUiStore = new Ee(this), d(this), St(() => {
1495
- const { transactions: o } = this.transactionStore;
1524
+ constructor(t = lt, e = "/", s, a, o) {
1525
+ this.appConfig = t, this.endpoint = e, this.sessionToken = t.options.session_token ?? "", this.onCaptureException = o, this.onError = s, this.onStoreUpdate = a, this.accountStore = new ce(this), this.appDataStore = new he(this), this.analyticsStore = new de(this), this.beatStore = new pe(this), this.budgetsStore = new _e(this), this.cashflowStore = new fe(this), this.categoryStore = new Se(this), this.connectStore = new Te(this), this.copyStore = new Re(this), this.debtsStore = new Ae(this), this.finstrongStore = new Ie(this), this.goalStore = new De(this), this.helpStore = new ve(this), this.holdingStore = new Ge(this), this.merchantStore = new $e(this), this.netWorthStore = new Ne(this), this.notificationStore = new Be(this), this.recurringTransactionsStore = new Me(this), this.settingsStore = new Fe(this), this.transactionStore = new Ue(this), this.trendsStore = new He(this), this.userStore = new We(this), this.globalUiStore = new Ce(this), h(this), mt(() => {
1526
+ const { transactions: r } = this.transactionStore;
1496
1527
  this.emitUpdate({
1497
- transactions: o
1528
+ transactions: r
1498
1529
  });
1499
1530
  });
1500
1531
  }
1501
1532
  get isInitialized() {
1502
1533
  return this.globalUiStore.isInitialized;
1503
1534
  }
1535
+ captureException = (t, e) => {
1536
+ this.onCaptureException?.(t, e);
1537
+ };
1504
1538
  // emits change triggered in the autorun
1505
1539
  emitUpdate = (t) => {
1506
1540
  this.onStoreUpdate?.(t);
@@ -1523,21 +1557,21 @@ class Ns {
1523
1557
  transactionRules: r,
1524
1558
  transactions: l,
1525
1559
  userFeatures: p,
1526
- merchantBudgets: b
1560
+ merchantBudgets: w
1527
1561
  } = {}) => {
1528
- (!e || !p) && await this.loadConfigData(), e && this.appDataStore.setAppData(e), p && this.userStore.setUserFeatures(p), t && (await this.accountStore.loadMembers(), o && this.accountStore.setInstitutions(o), this.accountStore.setAccounts(t)), s && this.transactionStore.setAssociatedBeats(s), a && this.categoryStore.setCategories(a), l && this.transactionStore.setTransactions(l), r && this.transactionStore.setTransactionRules(r), b && this.budgetsStore.setMerchantBudgets(b);
1562
+ (!e || !p) && await this.loadConfigData(), e && this.appDataStore.setAppData(e), p && this.userStore.setUserFeatures(p), t && (await this.accountStore.loadMembers(), o && this.accountStore.setInstitutions(o), this.accountStore.setAccounts(t)), s && this.transactionStore.setAssociatedBeats(s), a && this.categoryStore.setCategories(a), l && this.transactionStore.setTransactions(l), r && this.transactionStore.setTransactionRules(r), w && this.budgetsStore.setMerchantBudgets(w);
1529
1563
  };
1530
1564
  }
1531
- class Ee {
1565
+ class Ce {
1532
1566
  globalStore;
1533
1567
  accountFilterMap = /* @__PURE__ */ new Map();
1534
1568
  displayedDate = /* @__PURE__ */ new Date();
1535
1569
  displayedDateRange = {
1536
- start: E(this.displayedDate),
1570
+ start: C(this.displayedDate),
1537
1571
  end: T(this.displayedDate)
1538
1572
  };
1539
1573
  constructor(t) {
1540
- d(this), this.globalStore = t, ut(
1574
+ h(this), this.globalStore = t, ut(
1541
1575
  () => this.globalStore.accountStore.visibleAccounts,
1542
1576
  (e) => {
1543
1577
  this.populateAccountFilterMap(e);
@@ -1587,11 +1621,11 @@ class Ee {
1587
1621
  };
1588
1622
  };
1589
1623
  get shouldDisableNextDate() {
1590
- const t = v(this.displayedDate), e = v(re(/* @__PURE__ */ new Date(), 1));
1624
+ const t = L(this.displayedDate), e = L(re(/* @__PURE__ */ new Date(), 1));
1591
1625
  return t === e;
1592
1626
  }
1593
1627
  get shouldDisablePrevDate() {
1594
- const t = v(this.displayedDate), e = v(/* @__PURE__ */ new Date());
1628
+ const t = L(this.displayedDate), e = L(/* @__PURE__ */ new Date());
1595
1629
  return t === e;
1596
1630
  }
1597
1631
  }
@@ -1605,8 +1639,9 @@ class Re {
1605
1639
  this.globalStore = t, this.api = new V(
1606
1640
  t.endpoint,
1607
1641
  t.sessionToken,
1608
- t.onError
1609
- ), d(this);
1642
+ t.onError,
1643
+ t.onCaptureException
1644
+ ), h(this);
1610
1645
  }
1611
1646
  loadCopy = async () => {
1612
1647
  await this.getCopy(this.featureNamespace), c(() => {
@@ -1620,7 +1655,7 @@ class Re {
1620
1655
  this.copy = s[t];
1621
1656
  });
1622
1657
  } catch (s) {
1623
- console.error(`Error occurred while fetching ${this.featureNamespace} copy: ${s}`);
1658
+ console.error(`Error occurred while fetching ${this.featureNamespace} copy: ${s}`), this.globalStore.captureException(s, { store: "GlobalCopyStore" });
1624
1659
  }
1625
1660
  };
1626
1661
  }
@@ -1639,7 +1674,12 @@ class De {
1639
1674
  alert = "";
1640
1675
  selectedGoal = void 0;
1641
1676
  constructor(t) {
1642
- this.globalStore = t, this.api = new tt(t.endpoint, t.sessionToken, t.onError), d(this);
1677
+ this.globalStore = t, this.api = new tt(
1678
+ t.endpoint,
1679
+ t.sessionToken,
1680
+ t.onError,
1681
+ t.onCaptureException
1682
+ ), h(this);
1643
1683
  }
1644
1684
  get allGoals() {
1645
1685
  if (!this.isAllGoalDataLoaded) return [];
@@ -1650,7 +1690,7 @@ class De {
1650
1690
  ...s,
1651
1691
  amount: s.target_amount,
1652
1692
  name: t.retirement,
1653
- track_type: S.RETIREMENT_TRACK,
1693
+ track_type: m.RETIREMENT_TRACK,
1654
1694
  projected_to_complete_at: s.retirement_age && e ? z(s.retirement_age, e) : void 0
1655
1695
  }))
1656
1696
  ];
@@ -1659,21 +1699,21 @@ class De {
1659
1699
  return this.allGoals.slice().sort((t, e) => t.position - e.position);
1660
1700
  }
1661
1701
  get debtGoals() {
1662
- return this.orderedGoals.filter((t) => t.track_type === S.DEBT_TRACK);
1702
+ return this.orderedGoals.filter((t) => t.track_type === m.DEBT_TRACK);
1663
1703
  }
1664
1704
  get retirmentGoals() {
1665
- return this.orderedGoals.filter((t) => t.track_type === S.RETIREMENT_TRACK);
1705
+ return this.orderedGoals.filter((t) => t.track_type === m.RETIREMENT_TRACK);
1666
1706
  }
1667
1707
  get savingGoals() {
1668
- return this.orderedGoals.filter((t) => t.track_type === S.SAVINGS_TRACK);
1708
+ return this.orderedGoals.filter((t) => t.track_type === m.SAVINGS_TRACK);
1669
1709
  }
1670
1710
  get ongoingGoalsForMicroWidget() {
1671
1711
  const t = this.allGoals.filter(
1672
- (s) => !s.is_complete && s.track_type !== S.EMERGENCY_FUND_TRACK && s.track_type !== null
1712
+ (s) => !s.is_complete && s.track_type !== m.EMERGENCY_FUND_TRACK && s.track_type !== null
1673
1713
  ), e = [
1674
- S.SAVINGS_TRACK,
1675
- S.DEBT_TRACK,
1676
- S.RETIREMENT_TRACK
1714
+ m.SAVINGS_TRACK,
1715
+ m.DEBT_TRACK,
1716
+ m.RETIREMENT_TRACK
1677
1717
  ];
1678
1718
  return t.sort((s, a) => {
1679
1719
  const o = s.track_type ? e.indexOf(s.track_type) : -1, r = a.track_type ? e.indexOf(a.track_type) : -1;
@@ -1708,7 +1748,7 @@ class De {
1708
1748
  const t = await this.api.getGoals();
1709
1749
  this.setGoals(t);
1710
1750
  } catch (t) {
1711
- console.error(`Error occured while getting goals: ${t}`);
1751
+ console.error(`Error occured while getting goals: ${t}`), this.globalStore.captureException(t, { store: "GoalStore" });
1712
1752
  }
1713
1753
  };
1714
1754
  loadRetirementGoals = async () => {
@@ -1716,7 +1756,7 @@ class De {
1716
1756
  const t = await this.api.getRetirementGoals();
1717
1757
  this.setRetirementGoals(t);
1718
1758
  } catch (t) {
1719
- console.error(`Error occurred while loading retirement goals: ${t}`);
1759
+ console.error(`Error occurred while loading retirement goals: ${t}`), this.globalStore.captureException(t, { store: "GoalStore" });
1720
1760
  }
1721
1761
  };
1722
1762
  loadRetirementGoalAccounts = async () => {
@@ -1724,7 +1764,7 @@ class De {
1724
1764
  const t = await this.api.getRetirementGoalAccounts();
1725
1765
  this.setRetirementGoalAccounts(t);
1726
1766
  } catch (t) {
1727
- console.error(`Error occurred while loading retirement goal accounts: ${t}`);
1767
+ console.error(`Error occurred while loading retirement goal accounts: ${t}`), this.globalStore.captureException(t, { store: "GoalStore" });
1728
1768
  }
1729
1769
  };
1730
1770
  loadMonthlyCashFlowProfile = async () => {
@@ -1732,7 +1772,7 @@ class De {
1732
1772
  const t = await this.api.getMonthlyCashFlowProfile();
1733
1773
  this.setMonthlyCashFlowProfile(t);
1734
1774
  } catch (t) {
1735
- console.error(`Error occurred while loading monthly cash flow profile: ${t}`);
1775
+ console.error(`Error occurred while loading monthly cash flow profile: ${t}`), this.globalStore.captureException(t, { store: "GoalStore" });
1736
1776
  }
1737
1777
  };
1738
1778
  addGoal = async (t) => {
@@ -1740,7 +1780,7 @@ class De {
1740
1780
  const e = await this.api.addGoal(t);
1741
1781
  this.setGoals([...this.goals, e]);
1742
1782
  } catch (e) {
1743
- console.error(`Error occurred while adding goal: ${e}`);
1783
+ console.error(`Error occurred while adding goal: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1744
1784
  }
1745
1785
  };
1746
1786
  addRetirementGoal = async (t) => {
@@ -1760,12 +1800,12 @@ class De {
1760
1800
  ...s,
1761
1801
  amount: s.target_amount,
1762
1802
  name: e.retirement,
1763
- track_type: S.RETIREMENT_TRACK,
1803
+ track_type: m.RETIREMENT_TRACK,
1764
1804
  projected_to_complete_at: s.retirement_age && o ? z(s.retirement_age, o) : void 0
1765
1805
  }
1766
1806
  ], this.setRetirementGoalAccounts([...this.retirementGoalAccounts, ...a]);
1767
1807
  } catch (s) {
1768
- console.error(`Error occurred while adding retirement goal: ${s}`);
1808
+ console.error(`Error occurred while adding retirement goal: ${s}`), this.globalStore.captureException(s, { store: "GoalStore" });
1769
1809
  }
1770
1810
  };
1771
1811
  addRetirementGoalAccount = async (t) => {
@@ -1775,7 +1815,7 @@ class De {
1775
1815
  this.retirementGoalAccounts = [...this.retirementGoalAccounts, e];
1776
1816
  });
1777
1817
  } catch (e) {
1778
- console.error(`Error occurred while adding retirement goal account: ${e}`);
1818
+ console.error(`Error occurred while adding retirement goal account: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1779
1819
  }
1780
1820
  };
1781
1821
  deleteGoal = async (t) => {
@@ -1784,7 +1824,7 @@ class De {
1784
1824
  const e = this.goals.findIndex((s) => s.guid === t);
1785
1825
  e >= 0 && this.goals.splice(e, 1);
1786
1826
  } catch (e) {
1787
- console.error(`Error occured while deleting goal: ${e}`);
1827
+ console.error(`Error occured while deleting goal: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1788
1828
  }
1789
1829
  };
1790
1830
  deleteRetirementGoal = async (t) => {
@@ -1798,7 +1838,7 @@ class De {
1798
1838
  const s = this.retirementGoals.findIndex((a) => a.guid === t.guid);
1799
1839
  s >= 0 && this.retirementGoals.splice(s, 1);
1800
1840
  } catch (e) {
1801
- console.error(`Error deleting retirement goal: ${e}`);
1841
+ console.error(`Error deleting retirement goal: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1802
1842
  }
1803
1843
  };
1804
1844
  deleteRetirementGoalAccount = async (t) => {
@@ -1807,7 +1847,7 @@ class De {
1807
1847
  const e = this.retirementGoalAccounts.findIndex((s) => s.guid === t);
1808
1848
  e >= 0 && this.retirementGoalAccounts.splice(e, 1);
1809
1849
  } catch (e) {
1810
- console.error(`Error deleting retirement goal account: ${e}`);
1850
+ console.error(`Error deleting retirement goal account: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1811
1851
  }
1812
1852
  };
1813
1853
  reorderGoals = async (t) => {
@@ -1820,7 +1860,7 @@ class De {
1820
1860
  }
1821
1861
  });
1822
1862
  } catch (e) {
1823
- console.error(`Error reordering goals: ${e}`);
1863
+ console.error(`Error reordering goals: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1824
1864
  }
1825
1865
  };
1826
1866
  setAlert = (t) => this.alert = t;
@@ -1836,7 +1876,7 @@ class De {
1836
1876
  s >= 0 && (this.goals[s] = e), this.selectedGoal?.guid === t.guid && this.setSelectedGoal(e);
1837
1877
  });
1838
1878
  } catch (e) {
1839
- console.error(`Error occurred while updating goal: ${e}`);
1879
+ console.error(`Error occurred while updating goal: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1840
1880
  }
1841
1881
  };
1842
1882
  updateRetirementGoal = async (t) => {
@@ -1850,7 +1890,7 @@ class De {
1850
1890
  s >= 0 && (this.retirementGoals[s] = e), this.selectedGoal?.guid === t.guid && this.setSelectedGoal(this.allGoals.find((a) => a.guid === t.guid));
1851
1891
  });
1852
1892
  } catch (e) {
1853
- console.error(`Error occurred while updating goal: ${e}`);
1893
+ console.error(`Error occurred while updating goal: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1854
1894
  }
1855
1895
  };
1856
1896
  updateMonthlyCashFlowProfile = async (t) => {
@@ -1858,11 +1898,11 @@ class De {
1858
1898
  const e = await this.api.updateMonthlyCashFlowProfile(t);
1859
1899
  this.setMonthlyCashFlowProfile(e);
1860
1900
  } catch (e) {
1861
- console.error(`Error occurred while updating monthly Cash Flow profile: ${e}`);
1901
+ console.error(`Error occurred while updating monthly Cash Flow profile: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1862
1902
  }
1863
1903
  };
1864
1904
  }
1865
- const Le = (n, t) => n.guid === "general" || n.guid === "insights" ? !0 : n.flags ? n.flags.every((e) => t[e]) : !1, ve = (n, t) => {
1905
+ const xe = (n, t) => n.guid === "general" || n.guid === "insights" ? !0 : n.flags ? n.flags.every((e) => t[e]) : !1, Le = (n, t) => {
1866
1906
  const e = [];
1867
1907
  for (const s of oe) {
1868
1908
  const a = t[s.guid];
@@ -1875,24 +1915,29 @@ const Le = (n, t) => n.guid === "general" || n.guid === "insights" ? !0 : n.flag
1875
1915
  label: a.topics[l]
1876
1916
  }))
1877
1917
  };
1878
- Le(o, n) && e.push(o);
1918
+ xe(o, n) && e.push(o);
1879
1919
  }
1880
1920
  return e;
1881
1921
  };
1882
- class $e {
1922
+ class ve {
1883
1923
  alert = { message: "", severity: void 0 };
1884
1924
  api = new et("/", "");
1885
1925
  appConfig;
1886
1926
  globalStore;
1887
1927
  isLoading = !1;
1888
1928
  constructor(t) {
1889
- this.globalStore = t, this.api = new et(t.endpoint, t.sessionToken, t.onError), d(this);
1929
+ this.globalStore = t, this.api = new et(
1930
+ t.endpoint,
1931
+ t.sessionToken,
1932
+ t.onError,
1933
+ t.onCaptureException
1934
+ ), h(this);
1890
1935
  }
1891
1936
  createSupportTicket = async (t) => {
1892
1937
  try {
1893
1938
  this.isLoading = !0, await this.api.createSupportTicket(t), this.setAlert(this.copy.request_support_submit_success_message, "success");
1894
1939
  } catch (e) {
1895
- this.setAlert(this.copy.request_support_submit_failure_message, "error"), console.error("Error occurred while submitting:", e);
1940
+ this.setAlert(this.copy.request_support_submit_failure_message, "error"), console.error("Error occurred while submitting:", e), this.globalStore.captureException(e, { store: "HelpStore" });
1896
1941
  } finally {
1897
1942
  this.isLoading = !1;
1898
1943
  }
@@ -1905,7 +1950,7 @@ class $e {
1905
1950
  const { client_communication_profile: t, client_profile: e } = this.globalStore.appDataStore.appData, {
1906
1951
  help: { category_list: s }
1907
1952
  } = this.globalStore.copyStore.copy;
1908
- return ve(
1953
+ return Le(
1909
1954
  {
1910
1955
  ...t,
1911
1956
  ...e,
@@ -1923,7 +1968,12 @@ class Ge {
1923
1968
  globalStore;
1924
1969
  showConnectionsWidget = !1;
1925
1970
  constructor(t) {
1926
- this.globalStore = t, this.api = new st(t.endpoint, t.sessionToken, t.onError), d(this);
1971
+ this.globalStore = t, this.api = new st(
1972
+ t.endpoint,
1973
+ t.sessionToken,
1974
+ t.onError,
1975
+ t.onCaptureException
1976
+ ), h(this);
1927
1977
  }
1928
1978
  get analysisChartData() {
1929
1979
  return Vt(zt(this.visibleHoldings), this.analysisType);
@@ -1947,7 +1997,7 @@ class Ge {
1947
1997
  const t = await this.api.getHoldings();
1948
1998
  this.setHoldings(t);
1949
1999
  } catch (t) {
1950
- console.error(`Error occured while getting holdings: ${t}`);
2000
+ console.error(`Error occured while getting holdings: ${t}`), this.globalStore.captureException(t, { store: "HoldingStore" });
1951
2001
  }
1952
2002
  };
1953
2003
  setAnalysisType = (t) => {
@@ -1964,18 +2014,23 @@ class Ge {
1964
2014
  });
1965
2015
  }
1966
2016
  } catch (e) {
1967
- console.error(`Error occurred while updating holding: ${e}`);
2017
+ console.error(`Error occurred while updating holding: ${e}`), this.globalStore.captureException(e, { store: "HoldingStore" });
1968
2018
  }
1969
2019
  };
1970
2020
  }
1971
- class Ne {
2021
+ class $e {
1972
2022
  globalStore;
1973
2023
  api = new at("/", "");
1974
2024
  merchant = null;
1975
2025
  merchants = [];
1976
2026
  isLoading = !1;
1977
2027
  constructor(t) {
1978
- this.globalStore = t, this.api = new at(t.endpoint, t.sessionToken, t.onError), d(this);
2028
+ this.globalStore = t, this.api = new at(
2029
+ t.endpoint,
2030
+ t.sessionToken,
2031
+ t.onError,
2032
+ t.onCaptureException
2033
+ ), h(this);
1979
2034
  }
1980
2035
  loadMerchants = async (t = "") => {
1981
2036
  this.isLoading = !0;
@@ -1989,9 +2044,9 @@ class Ne {
1989
2044
  c(() => this.merchant = e);
1990
2045
  };
1991
2046
  }
1992
- class Be {
2047
+ class Ne {
1993
2048
  globalStore;
1994
- accountsApi = new B("/", "");
2049
+ accountsApi = new N("/", "");
1995
2050
  monthlyAccountBalances = [];
1996
2051
  monthlyAccountBalancesLoaded = !1;
1997
2052
  hoveredIndex = -1;
@@ -1999,11 +2054,12 @@ class Be {
1999
2054
  timeframe = 6;
2000
2055
  // default timeframe is 6 months
2001
2056
  constructor(t) {
2002
- this.globalStore = t, this.accountsApi = new B(
2057
+ this.globalStore = t, this.accountsApi = new N(
2003
2058
  t.endpoint,
2004
2059
  t.sessionToken,
2005
- t.onError
2006
- ), d(this);
2060
+ t.onError,
2061
+ t.onCaptureException
2062
+ ), h(this);
2007
2063
  }
2008
2064
  get isNetWorthDataLoaded() {
2009
2065
  return this.globalStore.accountStore.isAccountDataLoaded && this.monthlyAccountBalancesLoaded;
@@ -2056,7 +2112,7 @@ class Be {
2056
2112
  try {
2057
2113
  return await this.accountsApi.getMonthlyAccountBalances(t);
2058
2114
  } catch (e) {
2059
- return console.error(`Error occured while fetching monthly account balances: ${e}`), [];
2115
+ return console.error(`Error occured while fetching monthly account balances: ${e}`), this.globalStore.captureException(e, { store: "NetWorthStore" }), [];
2060
2116
  }
2061
2117
  };
2062
2118
  setHoveredIndex = (t) => this.hoveredIndex = t;
@@ -2066,7 +2122,7 @@ class Be {
2066
2122
  setSelectedIndex = (t) => this.selectedIndex = t;
2067
2123
  setTimeframe = (t) => this.timeframe = t;
2068
2124
  }
2069
- class xe {
2125
+ class Be {
2070
2126
  globalStore;
2071
2127
  api = new nt("/", "");
2072
2128
  isLoading = !0;
@@ -2076,8 +2132,9 @@ class xe {
2076
2132
  this.globalStore = t, this.api = new nt(
2077
2133
  t.endpoint,
2078
2134
  t.sessionToken,
2079
- t.onError
2080
- ), d(this, { notifications: Tt });
2135
+ t.onError,
2136
+ t.onCaptureException
2137
+ ), h(this, { notifications: Tt });
2081
2138
  }
2082
2139
  // Used in Money Dashboard
2083
2140
  get newNotifications() {
@@ -2095,7 +2152,7 @@ class xe {
2095
2152
  const t = await this.api.getNotifications();
2096
2153
  this.setNotifications(t);
2097
2154
  } catch (t) {
2098
- console.error(`Error occurred while loading notifications: ${t}`);
2155
+ console.error(`Error occurred while loading notifications: ${t}`), this.globalStore.captureException(t, { store: "NotificationStore" });
2099
2156
  } finally {
2100
2157
  c(() => {
2101
2158
  this.isLoading = !1;
@@ -2109,14 +2166,14 @@ class xe {
2109
2166
  t.has_been_viewed = !0, await this.api.updateNotification(t);
2110
2167
  };
2111
2168
  }
2112
- const dt = (n, t) => gt(t.expectedDate, n), A = (n, t) => n + t.amount;
2169
+ const ht = (n, t) => gt(t.expectedDate, n), A = (n, t) => n + t.amount;
2113
2170
  class Me {
2114
2171
  globalStore;
2115
2172
  api = new it("/", "");
2116
2173
  repeatingTransactions = [];
2117
2174
  isDataLoaded = !1;
2118
2175
  selectedDay;
2119
- dateRange = { start: E(y()), end: T(y()) };
2176
+ dateRange = { start: C(y()), end: T(y()) };
2120
2177
  selectedRepeatingTransactionGuid = null;
2121
2178
  selectedRecurrence = null;
2122
2179
  alert = { message: "", severity: void 0 };
@@ -2125,7 +2182,7 @@ class Me {
2125
2182
  t.endpoint,
2126
2183
  t.sessionToken,
2127
2184
  t.onError
2128
- ), d(this, {
2185
+ ), h(this, {
2129
2186
  recurrencesForRange: !1,
2130
2187
  upcomingExpensesForRange: !1,
2131
2188
  upcomingIncomeForRange: !1,
@@ -2158,13 +2215,13 @@ class Me {
2158
2215
  * Returns the upcoming expense recurrences scoped to the supplied date range.
2159
2216
  */
2160
2217
  upcomingExpensesForRange = (t) => this.recurrencesForRange(t).filter(
2161
- (e) => e.type === L.Expense && e.status === f.Upcoming
2218
+ (e) => e.type === x.Expense && e.status === f.Upcoming
2162
2219
  );
2163
2220
  /**
2164
2221
  * Returns the income recurrences scoped to the supplied date range.
2165
2222
  */
2166
2223
  incomeForRange = (t) => this.recurrencesForRange(t).filter(
2167
- (e) => e.type === L.Income
2224
+ (e) => e.type === x.Income
2168
2225
  );
2169
2226
  /**
2170
2227
  * Returns the upcoming income recurrences scoped to the supplied date range.
@@ -2206,7 +2263,7 @@ class Me {
2206
2263
  */
2207
2264
  get expenses() {
2208
2265
  return this.recurrences.filter(
2209
- (t) => t.type === L.Expense
2266
+ (t) => t.type === x.Expense
2210
2267
  );
2211
2268
  }
2212
2269
  /**
@@ -2222,7 +2279,7 @@ class Me {
2222
2279
  */
2223
2280
  get income() {
2224
2281
  return this.recurrences.filter(
2225
- (t) => t.type === L.Income
2282
+ (t) => t.type === x.Income
2226
2283
  );
2227
2284
  }
2228
2285
  /**
@@ -2241,7 +2298,7 @@ class Me {
2241
2298
  */
2242
2299
  get currentMonthExpenses() {
2243
2300
  return this.expenses.filter(
2244
- (t) => dt(this.dateRange, t)
2301
+ (t) => ht(this.dateRange, t)
2245
2302
  );
2246
2303
  }
2247
2304
  /**
@@ -2249,7 +2306,7 @@ class Me {
2249
2306
  */
2250
2307
  get currentMonthIncome() {
2251
2308
  return this.income.filter(
2252
- (t) => dt(this.dateRange, t)
2309
+ (t) => ht(this.dateRange, t)
2253
2310
  );
2254
2311
  }
2255
2312
  /**
@@ -2339,7 +2396,7 @@ class Me {
2339
2396
  const t = await this.api.getRepeatingTransactions();
2340
2397
  this.setRepeatingTransactions(t);
2341
2398
  } catch (t) {
2342
- console.error(`Error occurred while getting repeating transactions: ${t}`);
2399
+ console.error(`Error occurred while getting repeating transactions: ${t}`), this.globalStore.captureException(t, { store: "RecurringTransactionsStore" });
2343
2400
  }
2344
2401
  };
2345
2402
  /**
@@ -2364,7 +2421,7 @@ class Me {
2364
2421
  ];
2365
2422
  });
2366
2423
  } catch (s) {
2367
- console.error(`Error occurred while adding repeating transaction: ${s}`);
2424
+ console.error(`Error occurred while adding repeating transaction: ${s}`), this.globalStore.captureException(s, { store: "RecurringTransactionsStore" });
2368
2425
  }
2369
2426
  };
2370
2427
  /**
@@ -2379,7 +2436,7 @@ class Me {
2379
2436
  ];
2380
2437
  });
2381
2438
  } catch (e) {
2382
- console.error(`Error occurred while deleting repeating transaction: ${e}`);
2439
+ console.error(`Error occurred while deleting repeating transaction: ${e}`), this.globalStore.captureException(e, { store: "RecurringTransactionsStore" });
2383
2440
  }
2384
2441
  };
2385
2442
  /**
@@ -2404,7 +2461,7 @@ class Me {
2404
2461
  ];
2405
2462
  });
2406
2463
  } catch (e) {
2407
- console.error(`Error occurred while updating repeating transaction: ${e}`);
2464
+ console.error(`Error occurred while updating repeating transaction: ${e}`), this.globalStore.captureException(e, { store: "RecurringTransactionsStore" });
2408
2465
  }
2409
2466
  };
2410
2467
  /**
@@ -2419,7 +2476,7 @@ class Me {
2419
2476
  repeating_transaction_guid: t
2420
2477
  }), await this.loadRepeatingTransactions(), this.setSelectedRecurrence(null), this.setAlert(this.copy.link_transaction_success, "success");
2421
2478
  } catch (s) {
2422
- console.error(`Error occurred while marking recurrence as paid: ${s}`), this.setAlert(this.copy.link_transaction_error, "error");
2479
+ console.error(`Error occurred while marking recurrence as paid: ${s}`), this.globalStore.captureException(s, { store: "RecurringTransactionsStore" }), this.setAlert(this.copy.link_transaction_error, "error");
2423
2480
  }
2424
2481
  };
2425
2482
  /**
@@ -2433,14 +2490,14 @@ class Me {
2433
2490
  repeating_transaction_guid: null
2434
2491
  }), await this.loadRepeatingTransactions(), this.setSelectedRecurrence(null), this.setAlert(this.copy.unlink_transaction_success, "success");
2435
2492
  } catch (e) {
2436
- console.error(`Error occurred while marking recurrence as unpaid: ${e}`), this.setAlert(this.copy.unlink_transaction_error, "error");
2493
+ console.error(`Error occurred while marking recurrence as unpaid: ${e}`), this.globalStore.captureException(e, { store: "RecurringTransactionsStore" }), this.setAlert(this.copy.unlink_transaction_error, "error");
2437
2494
  }
2438
2495
  };
2439
2496
  setAlert = (t, e = void 0) => this.alert = { message: t, severity: e };
2440
2497
  }
2441
- const ht = "PARENT-ENTITY", Oe = (n, t) => ({
2442
- [N.BudgetExceeded]: t.notification_budget_exceeded,
2443
- [N.BudgetOffTarget]: t.notification_budget_off_target,
2498
+ const dt = "PARENT-ENTITY", Oe = (n, t) => ({
2499
+ [$.BudgetExceeded]: t.notification_budget_exceeded,
2500
+ [$.BudgetOffTarget]: t.notification_budget_off_target,
2444
2501
  [_.DebtPaymentReminder]: t.notification_debt_payment_reminder,
2445
2502
  [_.AccountBalanceLow]: t.notification_low_balance,
2446
2503
  [_.AccountDepositLargePosted]: t.notification_large_deposit,
@@ -2475,21 +2532,21 @@ const ht = "PARENT-ENTITY", Oe = (n, t) => ({
2475
2532
  const r = [], {
2476
2533
  email_notifications_enabled: l,
2477
2534
  sms_notifications_enabled: p,
2478
- push_notifications_enabled: b
2535
+ push_notifications_enabled: w
2479
2536
  } = t, {
2480
2537
  opted_out_of_email_notifications: _t,
2481
2538
  opted_out_of_sms_notifications: ft,
2482
2539
  opted_out_of_push_notifications: yt
2483
2540
  } = a;
2484
- for (const I of s.filter((R) => R.entity_guid === ht)) {
2485
- const R = Oe(I.notification_type, e), mt = s.filter(
2486
- (C) => C.entity_guid !== ht && C.notification_type === I.notification_type && n.some((M) => M.guid === C.entity_guid)
2541
+ for (const E of s.filter((R) => R.entity_guid === dt)) {
2542
+ const R = Oe(E.notification_type, e), St = s.filter(
2543
+ (I) => I.entity_guid !== dt && I.notification_type === E.notification_type && n.some((M) => M.guid === I.entity_guid)
2487
2544
  ), D = [];
2488
- l && !_t && I.email_channel && o.email && D.push(e.delivery_method_email_label), p && !ft && I.sms_channel && o.phone && D.push(e.delivery_method_sms_label), b && !yt && I.push_channel && D.push(e.delivery_method_push_label), r.push({
2489
- ...I,
2490
- children: mt.map((C) => ({
2491
- ...C,
2492
- account: n.find((M) => M.guid === C.entity_guid),
2545
+ l && !_t && E.email_channel && o.email && D.push(e.delivery_method_email_label), p && !ft && E.sms_channel && o.phone && D.push(e.delivery_method_sms_label), w && !yt && E.push_channel && D.push(e.delivery_method_push_label), r.push({
2546
+ ...E,
2547
+ children: St.map((I) => ({
2548
+ ...I,
2549
+ account: n.find((M) => M.guid === I.entity_guid),
2493
2550
  label: R
2494
2551
  })),
2495
2552
  deliveryMethodsLabel: D.join(", "),
@@ -2501,18 +2558,24 @@ const ht = "PARENT-ENTITY", Oe = (n, t) => ({
2501
2558
  class Fe {
2502
2559
  globalStore;
2503
2560
  api = new rt("/", "");
2504
- transactionApi = new x("/", "");
2561
+ transactionApi = new B("/", "");
2505
2562
  alert = { message: "", severity: void 0 };
2506
2563
  devices = [];
2507
2564
  notificationProfiles = [];
2508
2565
  selectedRule = void 0;
2509
2566
  transactionRules = [];
2510
2567
  constructor(t) {
2511
- this.globalStore = t, this.api = new rt(t.endpoint, t.sessionToken, t.onError), this.transactionApi = new x(
2568
+ this.globalStore = t, this.api = new rt(
2512
2569
  t.endpoint,
2513
2570
  t.sessionToken,
2514
- t.onError
2515
- ), d(this);
2571
+ t.onError,
2572
+ t.onCaptureException
2573
+ ), this.transactionApi = new B(
2574
+ t.endpoint,
2575
+ t.sessionToken,
2576
+ t.onError,
2577
+ t.onCaptureException
2578
+ ), h(this);
2516
2579
  }
2517
2580
  get accountProfiles() {
2518
2581
  const t = this.globalStore.appDataStore.clientCommunicationProfile;
@@ -2523,7 +2586,7 @@ class Fe {
2523
2586
  get budgetProfiles() {
2524
2587
  const t = this.globalStore.appDataStore.clientCommunicationProfile;
2525
2588
  return this.detailedNotificationProfiles.filter(
2526
- (e) => e.notification_type === N.BudgetExceeded && t.budget_exceeded_notifications_enabled || e.notification_type === N.BudgetOffTarget && t.budget_off_target_notifications_enabled
2589
+ (e) => e.notification_type === $.BudgetExceeded && t.budget_exceeded_notifications_enabled || e.notification_type === $.BudgetOffTarget && t.budget_off_target_notifications_enabled
2527
2590
  );
2528
2591
  }
2529
2592
  get insightsProfiles() {
@@ -2557,22 +2620,22 @@ class Fe {
2557
2620
  return e >= 0 && c(() => {
2558
2621
  this.devices.splice(e, 1);
2559
2622
  }), { success: !0 };
2560
- } catch {
2561
- return console.error(`Error deleting device: ${t}`), { success: !1 };
2623
+ } catch (e) {
2624
+ return console.error(`Error deleting device: ${t}`), this.globalStore.captureException(e, { store: "SettingsStore" }), { success: !1 };
2562
2625
  }
2563
2626
  };
2564
2627
  deleteTransactionRule = async () => {
2565
2628
  this.selectedRule && this.transactionApi.removeTransactionRule(this.selectedRule?.guid).then(() => {
2566
2629
  this.setAlert(this.copy.delete_rule_success, "success"), this.loadTransactionRules();
2567
- }).catch(() => {
2568
- this.setAlert(this.copy.delete_rule_error, "error");
2630
+ }).catch((t) => {
2631
+ this.globalStore.captureException(t, { store: "SettingsStore" }), this.setAlert(this.copy.delete_rule_error, "error");
2569
2632
  });
2570
2633
  };
2571
2634
  generateDeviceToken = async () => {
2572
2635
  try {
2573
2636
  return await this.api.generateDeviceToken();
2574
2637
  } catch (t) {
2575
- console.error(`Error generating device token: ${t}`);
2638
+ console.error(`Error generating device token: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" });
2576
2639
  }
2577
2640
  };
2578
2641
  loadDevices = async () => {
@@ -2582,7 +2645,7 @@ class Fe {
2582
2645
  this.devices = t;
2583
2646
  });
2584
2647
  } catch (t) {
2585
- console.error(`Error loading devices: ${t}`);
2648
+ console.error(`Error loading devices: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" });
2586
2649
  }
2587
2650
  };
2588
2651
  loadNotificationProfiles = async () => {
@@ -2592,7 +2655,7 @@ class Fe {
2592
2655
  this.notificationProfiles = t;
2593
2656
  });
2594
2657
  } catch (t) {
2595
- console.error(`Error loading notification profiles: ${t}`);
2658
+ console.error(`Error loading notification profiles: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" });
2596
2659
  }
2597
2660
  };
2598
2661
  loadTransactionRules = async () => {
@@ -2602,21 +2665,21 @@ class Fe {
2602
2665
  this.transactionRules = t;
2603
2666
  });
2604
2667
  } catch (t) {
2605
- console.error(`Error loading transaction rules: ${t}`);
2668
+ console.error(`Error loading transaction rules: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" });
2606
2669
  }
2607
2670
  };
2608
2671
  sendEmailVerification = async () => {
2609
2672
  try {
2610
2673
  await this.api.sendEmailVerification(), this.setAlert(this.copy.verification_sent_success, "success");
2611
2674
  } catch (t) {
2612
- console.error(`Error sending email verification: ${t}`), this.setAlert(this.copy.verification_sent_error, "error");
2675
+ console.error(`Error sending email verification: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" }), this.setAlert(this.copy.verification_sent_error, "error");
2613
2676
  }
2614
2677
  };
2615
2678
  sendPhoneVerification = async () => {
2616
2679
  try {
2617
2680
  await this.api.sendPhoneVerification(), this.setAlert(this.copy.verification_sent_success, "success");
2618
2681
  } catch (t) {
2619
- console.error(`Error sending phone verification: ${t}`), this.setAlert(this.copy.verification_sent_error, "error");
2682
+ console.error(`Error sending phone verification: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" }), this.setAlert(this.copy.verification_sent_error, "error");
2620
2683
  }
2621
2684
  };
2622
2685
  setAlert = (t, e = void 0) => this.alert = { message: t, severity: e };
@@ -2630,7 +2693,7 @@ class Fe {
2630
2693
  this.devices[s] = e;
2631
2694
  }), { success: !0 };
2632
2695
  } catch (e) {
2633
- return console.error(`Error updating device: ${e}`), { success: !1 };
2696
+ return console.error(`Error updating device: ${e}`), this.globalStore.captureException(e, { store: "SettingsStore" }), { success: !1 };
2634
2697
  }
2635
2698
  };
2636
2699
  updateNotificationProfile = async (t) => {
@@ -2640,7 +2703,7 @@ class Fe {
2640
2703
  this.notificationProfiles[s] = e;
2641
2704
  });
2642
2705
  } catch (e) {
2643
- console.error(`Error updating notification profile: ${e}`);
2706
+ console.error(`Error updating notification profile: ${e}`), this.globalStore.captureException(e, { store: "SettingsStore" });
2644
2707
  }
2645
2708
  };
2646
2709
  updateRuleCategory = async (t) => {
@@ -2651,15 +2714,15 @@ class Fe {
2651
2714
  updateRulePayee = async (t) => {
2652
2715
  this.transactionApi.updateTransactionRule(t).then(() => {
2653
2716
  this.setAlert(this.copy.edit_payee_success, "success"), this.loadTransactionRules();
2654
- }).catch(() => {
2655
- this.setAlert(this.copy.edit_payee_error, "error");
2717
+ }).catch((e) => {
2718
+ this.globalStore.captureException(e, { store: "SettingsStore" }), this.setAlert(this.copy.edit_payee_error, "error");
2656
2719
  });
2657
2720
  };
2658
2721
  updateUser = async (t) => {
2659
2722
  this.globalStore.userStore.updateUser(t).then(() => {
2660
2723
  this.setAlert(this.copy.information_updated_success, "success");
2661
- }).catch(() => {
2662
- this.setAlert(this.copy.information_updated_error, "error");
2724
+ }).catch((e) => {
2725
+ this.globalStore.captureException(e, { store: "SettingsStore" }), this.setAlert(this.copy.information_updated_error, "error");
2663
2726
  });
2664
2727
  };
2665
2728
  updateUserCommunicationProfile = async (t) => {
@@ -2667,7 +2730,7 @@ class Fe {
2667
2730
  const e = await this.api.updateUserCommunicationProfile(t);
2668
2731
  this.globalStore.appDataStore.setUserCommunicationProfile(e);
2669
2732
  } catch (e) {
2670
- console.error(`Error occurred while updating user communication profile: ${e}`);
2733
+ console.error(`Error occurred while updating user communication profile: ${e}`), this.globalStore.captureException(e, { store: "SettingsStore" });
2671
2734
  }
2672
2735
  };
2673
2736
  verifyPhoneToken = async (t) => {
@@ -2677,15 +2740,15 @@ class Fe {
2677
2740
  throw new Error();
2678
2741
  this.setAlert(this.copy.verified_phone_success, "success");
2679
2742
  } catch (e) {
2680
- console.error(`Error verifying phone token: ${e}`), this.setAlert(this.copy.verified_phone_error, "error");
2743
+ console.error(`Error verifying phone token: ${e}`), this.globalStore.captureException(e, { store: "SettingsStore" }), this.setAlert(this.copy.verified_phone_error, "error");
2681
2744
  }
2682
2745
  };
2683
2746
  }
2684
2747
  class Ue {
2685
2748
  globalStore;
2686
2749
  uiStore;
2687
- api = new x("/", "");
2688
- beatApi = new $("/", "");
2750
+ api = new B("/", "");
2751
+ beatApi = new v("/", "");
2689
2752
  associatedBeats = [];
2690
2753
  associatedBeatsLoaded = !1;
2691
2754
  associatedBeatsLoading = !1;
@@ -2707,17 +2770,23 @@ class Ue {
2707
2770
  isLoading = !0;
2708
2771
  alert = "";
2709
2772
  sortColumn = Gt.DATE;
2710
- sortDirection = Nt.DESC;
2773
+ sortDirection = $t.DESC;
2711
2774
  constructor(t) {
2712
- this.globalStore = t, this.uiStore = new ke(), this.api = new x(
2775
+ this.globalStore = t, this.uiStore = new ke(), this.api = new B(
2713
2776
  t.endpoint,
2714
2777
  t.sessionToken,
2715
- t.onError
2716
- ), this.beatApi = new $(t.endpoint, t.sessionToken, t.onError), d(this);
2778
+ t.onError,
2779
+ t.onCaptureException
2780
+ ), this.beatApi = new v(
2781
+ t.endpoint,
2782
+ t.sessionToken,
2783
+ t.onError,
2784
+ t.onCaptureException
2785
+ ), h(this);
2717
2786
  }
2718
2787
  loadTransactionData = async () => {
2719
2788
  this.globalStore.accountStore.isAccountDataLoaded || await this.globalStore.accountStore.loadAccountData(), this.globalStore.categoryStore.categoriesLoaded || await this.globalStore.categoryStore.loadCategories(), await Promise.all([
2720
- this.loadAssociatedBeats(E(/* @__PURE__ */ new Date())),
2789
+ this.loadAssociatedBeats(C(/* @__PURE__ */ new Date())),
2721
2790
  this.loadTags(),
2722
2791
  this.loadTaggings(),
2723
2792
  this.loadTransactionRules(),
@@ -2729,7 +2798,7 @@ class Ue {
2729
2798
  return this.associatedBeatsLoaded && this.tagsLoaded && this.taggingsLoaded && this.transactionRulesLoaded && this.transactionsLoaded;
2730
2799
  }
2731
2800
  get detailedTransactions() {
2732
- return this.isTransactionDataLoaded ? Bt(
2801
+ return this.isTransactionDataLoaded ? Nt(
2733
2802
  this.transactions,
2734
2803
  this.globalStore.accountStore.visibleAccounts,
2735
2804
  this.globalStore.categoryStore.categories,
@@ -2737,7 +2806,7 @@ class Ue {
2737
2806
  ) : [];
2738
2807
  }
2739
2808
  get sortedTransactions() {
2740
- return xt(
2809
+ return Bt(
2741
2810
  this.filter,
2742
2811
  this.uiStore.expandedSplits,
2743
2812
  this.sortColumn,
@@ -2806,11 +2875,7 @@ class Ue {
2806
2875
  const s = await this.beatApi.getBeatsWithAssociatedTransaction(e);
2807
2876
  this.setAssociatedBeats(s);
2808
2877
  } catch (s) {
2809
- console.error(`Error occurred while loading associated beats: ${s}`);
2810
- } finally {
2811
- c(() => {
2812
- this.associatedBeatsLoading = !1;
2813
- });
2878
+ console.error(`Error occurred while loading associated beats: ${s}`), this.globalStore.captureException(s, { store: "TransactionStore" });
2814
2879
  }
2815
2880
  };
2816
2881
  loadTags = async () => {
@@ -2820,11 +2885,7 @@ class Ue {
2820
2885
  const t = await this.api.getTags();
2821
2886
  this.setTags(t);
2822
2887
  } catch (t) {
2823
- console.error(`Error occurred while loading tags: ${t}`);
2824
- } finally {
2825
- c(() => {
2826
- this.tagsLoading = !1;
2827
- });
2888
+ console.error(`Error occurred while loading tags: ${t}`), this.globalStore.captureException(t, { store: "TransactionStore" });
2828
2889
  }
2829
2890
  }
2830
2891
  };
@@ -2835,47 +2896,29 @@ class Ue {
2835
2896
  const t = await this.api.getTaggings();
2836
2897
  this.setTaggings(t);
2837
2898
  } catch (t) {
2838
- console.error(`Error occurred while loading taggings: ${t}`);
2839
- } finally {
2840
- c(() => {
2841
- this.taggingsLoading = !1;
2842
- });
2899
+ console.error(`Error occurred while loading taggings: ${t}`), this.globalStore.captureException(t, { store: "TransactionStore" });
2843
2900
  }
2844
2901
  }
2845
2902
  };
2846
2903
  loadTransactionRules = async () => {
2847
- if (!this.transactionRulesLoading) {
2848
- this.transactionRulesLoading = !0;
2849
- try {
2850
- const t = await this.api.getTransactionRules();
2851
- this.setTransactionRules(t);
2852
- } catch (t) {
2853
- console.error(`Error occurred while loading transaction rules: ${t}`);
2854
- } finally {
2855
- c(() => {
2856
- this.transactionRulesLoading = !1;
2857
- });
2858
- }
2859
- }
2904
+ if (this.transactionRulesLoading) return;
2905
+ this.transactionRulesLoading = !0;
2906
+ const t = await this.api.getTransactionRules();
2907
+ this.setTransactionRules(t);
2860
2908
  };
2861
2909
  loadTransactions = async (t = this.cachedStartDate) => {
2862
2910
  if (!this.transactionsLoading) {
2863
- this.setIsLoading(!0), this.transactionsLoading = !0;
2911
+ this.setIsLoading(!0), this.transactionsLoading = !0, this.transactions = [];
2864
2912
  try {
2865
2913
  const e = await this.api.getTransactionsByDateRange(
2866
- m(t),
2867
- m(q())
2914
+ S(t),
2915
+ S(q())
2868
2916
  );
2869
- this.setTransactions(e), c(() => {
2870
- this.cachedStartDate = t;
2871
- });
2917
+ this.setTransactions(e);
2872
2918
  } catch (e) {
2873
- console.error(`Error occurred while loading transactions: ${e}`);
2874
- } finally {
2875
- c(() => {
2876
- this.transactionsLoading = !1;
2877
- }), this.setIsLoading(!1);
2919
+ console.error(`Error occurred while loading transactions: ${e}`), this.globalStore.captureException(e, { store: "TransactionStore" });
2878
2920
  }
2921
+ this.setIsLoading(!1);
2879
2922
  }
2880
2923
  };
2881
2924
  modifyTransactionByAccountGuid = (t, e) => {
@@ -2898,7 +2941,9 @@ class Ue {
2898
2941
  }
2899
2942
  };
2900
2943
  setFilter = (t) => {
2901
- this.filter = t, t.dateRange && H(t.dateRange.start, this.cachedStartDate) && this.loadTransactions(t.dateRange.start);
2944
+ this.filter = t, t.dateRange && H(t.dateRange.start, this.cachedStartDate) && this.loadTransactions(t.dateRange.start).then(() => {
2945
+ t.dateRange && (this.cachedStartDate = t.dateRange.start);
2946
+ });
2902
2947
  };
2903
2948
  setIsLoading = (t) => this.isLoading = t;
2904
2949
  splitTransaction = async (t, e) => {
@@ -2965,17 +3010,17 @@ class Ue {
2965
3010
  loadEmbeddedInstanceTransactions = async (t) => {
2966
3011
  try {
2967
3012
  const e = await this.api.getTransactionsByDateRange(
2968
- m(t),
2969
- m(q())
3013
+ S(t),
3014
+ S(q())
2970
3015
  );
2971
3016
  this.cachedStartDate = t, this.transactions = e;
2972
3017
  } catch (e) {
2973
- console.error(`Error occurred while loading embedded instance transactions: ${e}`);
3018
+ console.error(`Error occurred while loading embedded instance transactions: ${e}`), this.globalStore.captureException(e, { store: "TransactionStore" });
2974
3019
  }
2975
3020
  };
2976
3021
  }
2977
3022
  class ke {
2978
- beginDate = E(/* @__PURE__ */ new Date());
3023
+ beginDate = C(/* @__PURE__ */ new Date());
2979
3024
  endDate = T(/* @__PURE__ */ new Date());
2980
3025
  expandedSplits = [];
2981
3026
  height = 550;
@@ -2987,7 +3032,7 @@ class ke {
2987
3032
  isAmountValid = !1;
2988
3033
  showInsights = !1;
2989
3034
  constructor() {
2990
- d(this);
3035
+ h(this);
2991
3036
  }
2992
3037
  setDateRange = (t, e) => {
2993
3038
  this.beginDate = t, this.endDate = e;
@@ -3022,7 +3067,7 @@ class He {
3022
3067
  this.globalStore = t, this.selectedDateRange = {
3023
3068
  start: se(T(G(/* @__PURE__ */ new Date(), 6)), 1),
3024
3069
  end: T(/* @__PURE__ */ new Date())
3025
- }, d(this);
3070
+ }, h(this);
3026
3071
  }
3027
3072
  setSelectedCategoryData = (t) => {
3028
3073
  this.selectedCategoryData = t;
@@ -3064,7 +3109,12 @@ class We {
3064
3109
  userFeatures = [];
3065
3110
  userFeaturesLoaded = !1;
3066
3111
  constructor(t) {
3067
- this.globalStore = t, this.api = new ot(t.endpoint, t.sessionToken, t.onError), d(this);
3112
+ this.globalStore = t, this.api = new ot(
3113
+ t.endpoint,
3114
+ t.sessionToken,
3115
+ t.onError,
3116
+ t.onCaptureException
3117
+ ), h(this);
3068
3118
  }
3069
3119
  get userProfile() {
3070
3120
  return this.globalStore.appDataStore.userProfile;
@@ -3080,7 +3130,7 @@ class We {
3080
3130
  const t = await this.api.getUserFeatures();
3081
3131
  this.setUserFeatures(t);
3082
3132
  } catch (t) {
3083
- console.error(`Error occurred while loading user features: ${t}`);
3133
+ console.error(`Error occurred while loading user features: ${t}`), this.globalStore.captureException(t, { store: "UserStore" });
3084
3134
  }
3085
3135
  };
3086
3136
  updateUser = async (t) => {
@@ -3088,7 +3138,7 @@ class We {
3088
3138
  const e = await this.api.updateUser(t);
3089
3139
  this.globalStore.appDataStore.setUser(e);
3090
3140
  } catch (e) {
3091
- console.error(`Error updating User: ${e}`);
3141
+ console.error(`Error updating User: ${e}`), this.globalStore.captureException(e, { store: "UserStore" });
3092
3142
  }
3093
3143
  };
3094
3144
  updateUserProfile = async (t) => {
@@ -3096,12 +3146,12 @@ class We {
3096
3146
  const e = await this.api.updateUserProfile(t);
3097
3147
  this.globalStore.appDataStore.setUserProfile(e);
3098
3148
  } catch (e) {
3099
- console.error(`Error occurred while updating user profile: ${e}`);
3149
+ console.error(`Error occurred while updating user profile: ${e}`), this.globalStore.captureException(e, { store: "UserStore" });
3100
3150
  }
3101
3151
  };
3102
3152
  }
3103
3153
  export {
3104
- B as A,
3154
+ N as A,
3105
3155
  j as B,
3106
3156
  fe as C,
3107
3157
  Ae as D,
@@ -3109,37 +3159,37 @@ export {
3109
3159
  Re as G,
3110
3160
  et as H,
3111
3161
  at as M,
3112
- Be as N,
3162
+ Ne as N,
3113
3163
  Me as R,
3114
3164
  rt as S,
3115
- x as T,
3165
+ B as T,
3116
3166
  ot as U,
3117
3167
  ct as W,
3118
3168
  ce as a,
3119
- he as b,
3169
+ de as b,
3120
3170
  Y as c,
3121
- de as d,
3171
+ he as d,
3122
3172
  pe as e,
3123
3173
  X as f,
3124
3174
  _e as g,
3125
3175
  J as h,
3126
- me as i,
3176
+ Se as i,
3127
3177
  Te as j,
3128
- Ce as k,
3129
- Ns as l,
3130
- Ee as m,
3178
+ Ie as k,
3179
+ $s as l,
3180
+ Ce as m,
3131
3181
  tt as n,
3132
3182
  De as o,
3133
- $e as p,
3183
+ ve as p,
3134
3184
  st as q,
3135
3185
  Ge as r,
3136
- Ne as s,
3186
+ $e as s,
3137
3187
  nt as t,
3138
- xe as u,
3188
+ Be as u,
3139
3189
  it as v,
3140
3190
  Fe as w,
3141
3191
  Ue as x,
3142
3192
  He as y,
3143
3193
  We as z
3144
3194
  };
3145
- //# sourceMappingURL=UserStore-E5WvBXaY.mjs.map
3195
+ //# sourceMappingURL=UserStore-CL_kIDzt.mjs.map