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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/CHANGELOG.md +0 -6
  2. package/dist/{AccountDetailsDrawer-Cq4kiiKD.mjs → AccountDetailsDrawer-Dae8eUXt.mjs} +10 -10
  3. package/dist/{AccountDetailsDrawer-Cq4kiiKD.mjs.map → AccountDetailsDrawer-Dae8eUXt.mjs.map} +1 -1
  4. package/dist/{AccountDetailsHeader-BliEZhz7.mjs → AccountDetailsHeader-D_UjMD99.mjs} +4 -4
  5. package/dist/{AccountDetailsHeader-BliEZhz7.mjs.map → AccountDetailsHeader-D_UjMD99.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-k8AZYC8I.mjs} +2 -2
  9. package/dist/{CategorySelectorDrawer-NJsFsKP1.mjs.map → CategorySelectorDrawer-k8AZYC8I.mjs.map} +1 -1
  10. package/dist/{Connect-BH0Pt6zc.mjs → Connect-tID_S_5e.mjs} +2 -2
  11. package/dist/{Connect-BH0Pt6zc.mjs.map → Connect-tID_S_5e.mjs.map} +1 -1
  12. package/dist/{ConnectCard-D7uxoH5Y.mjs → ConnectCard-DcM6tUOX.mjs} +2 -2
  13. package/dist/{ConnectCard-D7uxoH5Y.mjs.map → ConnectCard-DcM6tUOX.mjs.map} +1 -1
  14. package/dist/{ConnectDrawer-CW4LA3H3.mjs → ConnectDrawer-BQy4YYuc.mjs} +3 -3
  15. package/dist/{ConnectDrawer-CW4LA3H3.mjs.map → ConnectDrawer-BQy4YYuc.mjs.map} +1 -1
  16. package/dist/{ConnectionsDrawer-CZU9ku-k.mjs → ConnectionsDrawer-C73ASLMj.mjs} +3 -3
  17. package/dist/{ConnectionsDrawer-CZU9ku-k.mjs.map → ConnectionsDrawer-C73ASLMj.mjs.map} +1 -1
  18. package/dist/{CurrencyInput-DaGEQaLW.mjs → CurrencyInput-CABYmqBh.mjs} +2 -2
  19. package/dist/{CurrencyInput-DaGEQaLW.mjs.map → CurrencyInput-CABYmqBh.mjs.map} +1 -1
  20. package/dist/{EmbeddedCard-DCOQnTz-.mjs → EmbeddedCard-BwfkCsUN.mjs} +3 -3
  21. package/dist/{EmbeddedCard-DCOQnTz-.mjs.map → EmbeddedCard-BwfkCsUN.mjs.map} +1 -1
  22. package/dist/{Error-Dtw6yxkf.mjs → Error-BFJ3BnfS.mjs} +2 -2
  23. package/dist/{Error-Dtw6yxkf.mjs.map → Error-BFJ3BnfS.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-B1257a3M.mjs} +3 -3
  27. package/dist/{ExportCsvAction-C-IisDcv.mjs.map → ExportCsvAction-B1257a3M.mjs.map} +1 -1
  28. package/dist/{GlobalAccountFilter-BhzR5Vb1.mjs → GlobalAccountFilter-DEEc3Bc5.mjs} +2 -2
  29. package/dist/{GlobalAccountFilter-BhzR5Vb1.mjs.map → GlobalAccountFilter-DEEc3Bc5.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-BAj_yo3q.mjs} +145 -145
  33. package/dist/Help-BAj_yo3q.mjs.map +1 -0
  34. package/dist/{LineChart-CUfiH86G.mjs → LineChart-BxEIZHht.mjs} +2 -2
  35. package/dist/{LineChart-CUfiH86G.mjs.map → LineChart-BxEIZHht.mjs.map} +1 -1
  36. package/dist/{ListItemAction-BqUCLj_w.mjs → ListItemAction-GDU5z4BN.mjs} +2 -2
  37. package/dist/{ListItemAction-BqUCLj_w.mjs.map → ListItemAction-GDU5z4BN.mjs.map} +1 -1
  38. package/dist/{ListItemWrapper-DRse79Iu.mjs → ListItemWrapper-D6b-6m4t.mjs} +2 -2
  39. package/dist/{ListItemWrapper-DRse79Iu.mjs.map → ListItemWrapper-D6b-6m4t.mjs.map} +1 -1
  40. package/dist/{ManageIncome-B_8i71mE.mjs → ManageIncome-BJWVPAly.mjs} +32 -32
  41. package/dist/{ManageIncome-B_8i71mE.mjs.map → ManageIncome-BJWVPAly.mjs.map} +1 -1
  42. package/dist/{MicroWidgetContainer-B2NnKBgW.mjs → MicroWidgetContainer-IUZQlml1.mjs} +2 -2
  43. package/dist/{MicroWidgetContainer-B2NnKBgW.mjs.map → MicroWidgetContainer-IUZQlml1.mjs.map} +1 -1
  44. package/dist/{MiniWidgetContainer-Bmv_WeUd.mjs → MiniWidgetContainer-CIswJui8.mjs} +2 -2
  45. package/dist/{MiniWidgetContainer-Bmv_WeUd.mjs.map → MiniWidgetContainer-CIswJui8.mjs.map} +1 -1
  46. package/dist/{NotificationSettings-CW7okUrk.mjs → NotificationSettings-DltXMrnb.mjs} +33 -33
  47. package/dist/{NotificationSettings-CW7okUrk.mjs.map → NotificationSettings-DltXMrnb.mjs.map} +1 -1
  48. package/dist/{OriginalBalanceAction-YrvxBYAl.mjs → OriginalBalanceAction-KuJSsZCA.mjs} +4 -4
  49. package/dist/{OriginalBalanceAction-YrvxBYAl.mjs.map → OriginalBalanceAction-KuJSsZCA.mjs.map} +1 -1
  50. package/dist/{RecurringSettings-hs0YUp83.mjs → RecurringSettings-D2Aaqz7d.mjs} +3 -3
  51. package/dist/{RecurringSettings-hs0YUp83.mjs.map → RecurringSettings-D2Aaqz7d.mjs.map} +1 -1
  52. package/dist/{SpendingLegend-CxvNOg3c.mjs → SpendingLegend-C_dMdqbe.mjs} +2 -2
  53. package/dist/{SpendingLegend-CxvNOg3c.mjs.map → SpendingLegend-C_dMdqbe.mjs.map} +1 -1
  54. package/dist/{TransactionDetails-DT-MQqOB.mjs → TransactionDetails-CDZNsKv7.mjs} +5 -5
  55. package/dist/{TransactionDetails-DT-MQqOB.mjs.map → TransactionDetails-CDZNsKv7.mjs.map} +1 -1
  56. package/dist/{UserStore-E5WvBXaY.mjs → UserStore-DzGgxsKk.mjs} +302 -317
  57. package/dist/UserStore-DzGgxsKk.mjs.map +1 -0
  58. package/dist/{ViewMoreMicroCard-fnwE0hqd.mjs → ViewMoreMicroCard-DXaJ-56q.mjs} +4 -4
  59. package/dist/{ViewMoreMicroCard-fnwE0hqd.mjs.map → ViewMoreMicroCard-DXaJ-56q.mjs.map} +1 -1
  60. package/dist/{WidgetContainer-CjdCY4sj.mjs → WidgetContainer-5O6N88mr.mjs} +3 -3
  61. package/dist/{WidgetContainer-CjdCY4sj.mjs.map → WidgetContainer-5O6N88mr.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/context/GlobalDataProvider.d.ts +2 -1
  69. package/dist/common/context/hooks.d.ts +3 -0
  70. package/dist/common/context/index.d.ts +1 -1
  71. package/dist/common/index.es.js +66 -65
  72. package/dist/core/api/AccountApi.d.ts +2 -2
  73. package/dist/core/api/AnalyticsApi.d.ts +2 -2
  74. package/dist/core/api/AppDataApi.d.ts +2 -2
  75. package/dist/core/api/BeatApi.d.ts +2 -2
  76. package/dist/core/api/BudgetsApi.d.ts +2 -2
  77. package/dist/core/api/CategoryApi.d.ts +2 -2
  78. package/dist/core/api/FinstrongApi.d.ts +2 -2
  79. package/dist/core/api/GlobalCopyApi.d.ts +2 -2
  80. package/dist/core/api/GoalApi.d.ts +2 -2
  81. package/dist/core/api/HelpApi.d.ts +2 -2
  82. package/dist/core/api/HoldingApi.d.ts +2 -2
  83. package/dist/core/api/MerchantApi.d.ts +2 -2
  84. package/dist/core/api/NotificationApi.d.ts +2 -2
  85. package/dist/core/api/RepeatingTransactionsApi.d.ts +2 -2
  86. package/dist/core/api/ScheduledPaymentsApi.d.ts +2 -2
  87. package/dist/core/api/SettingsApi.d.ts +2 -2
  88. package/dist/core/api/TransactionApi.d.ts +2 -2
  89. package/dist/core/api/UserApi.d.ts +2 -2
  90. package/dist/core/index.es.js +95 -95
  91. package/dist/core/index.es.js.map +1 -1
  92. package/dist/core/stores/GlobalStore.d.ts +4 -2
  93. package/dist/core/types/Handlers.d.ts +1 -0
  94. package/dist/core/types/index.d.ts +1 -1
  95. package/dist/core/utils/Fetch.d.ts +3 -2
  96. package/dist/dashboard/index.es.js +4 -4
  97. package/dist/debts/index.es.js +8 -8
  98. package/dist/finstrong/index.es.js +12 -12
  99. package/dist/goals/index.es.js +9 -9
  100. package/dist/help/index.es.js +4 -4
  101. package/dist/hooks-DWOrMnfZ.mjs +83 -0
  102. package/dist/hooks-DWOrMnfZ.mjs.map +1 -0
  103. package/dist/insights/index.es.js +4 -4
  104. package/dist/investments/index.es.js +4 -4
  105. package/dist/merchants/index.es.js +1 -1
  106. package/dist/microinsights/index.es.js +1 -1
  107. package/dist/networth/index.es.js +6 -6
  108. package/dist/notifications/index.es.js +8 -8
  109. package/dist/recurringtransactions/index.es.js +38 -38
  110. package/dist/settings/index.es.js +27 -27
  111. package/dist/spending/index.es.js +7 -7
  112. package/dist/transactions/index.es.js +11 -11
  113. package/dist/trends/index.es.js +12 -12
  114. package/dist/{useAccountDisplayName-BsiXA0qf.mjs → useAccountDisplayName-DHXXCFYZ.mjs} +2 -2
  115. package/dist/{useAccountDisplayName-BsiXA0qf.mjs.map → useAccountDisplayName-DHXXCFYZ.mjs.map} +1 -1
  116. package/dist/{useInsightsEnabled-D5Sdm0TJ.mjs → useInsightsEnabled-B_UpjpE6.mjs} +2 -2
  117. package/dist/{useInsightsEnabled-D5Sdm0TJ.mjs.map → useInsightsEnabled-B_UpjpE6.mjs.map} +1 -1
  118. package/dist/{useWidgetLoadTimer-B0tB-yzL.mjs → useWidgetLoadTimer-C0Mr0eRf.mjs} +2 -2
  119. package/dist/{useWidgetLoadTimer-B0tB-yzL.mjs.map → useWidgetLoadTimer-C0Mr0eRf.mjs.map} +1 -1
  120. package/package.json +1 -1
  121. package/dist/ErrorBoundary-CsdOcnJ9.mjs +0 -24
  122. package/dist/ErrorBoundary-CsdOcnJ9.mjs.map +0 -1
  123. package/dist/GlobalCopyApi-wcnDUzMV.mjs +0 -129
  124. package/dist/GlobalCopyApi-wcnDUzMV.mjs.map +0 -1
  125. package/dist/Help-zVZdcmlk.mjs.map +0 -1
  126. package/dist/UserStore-E5WvBXaY.mjs.map +0 -1
  127. package/dist/hooks-97sNJ_lf.mjs +0 -78
  128. 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,7 @@ 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(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
361
361
  }
362
362
  loadAccountData = async () => {
363
363
  await Promise.all([this.loadAccounts(), this.loadMembers(), this.loadInstitutions()]);
@@ -366,7 +366,7 @@ class ce {
366
366
  return this.accountsLoaded && this.membersLoaded && this.institutionsLoaded;
367
367
  }
368
368
  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";
369
+ 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
370
  return At(
371
371
  this.accounts,
372
372
  this.institutions,
@@ -384,43 +384,43 @@ class ce {
384
384
  }
385
385
  get cashAccounts() {
386
386
  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
387
+ (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
388
  );
389
389
  }
390
390
  get cashBalance() {
391
391
  return this.cashAccounts.reduce((t, e) => t + (e?.balance || 0), 0);
392
392
  }
393
393
  get checkingAccounts() {
394
- return this.detailedAccounts.filter((t) => t.account_type === h.CHECKING);
394
+ return this.detailedAccounts.filter((t) => t.account_type === d.CHECKING);
395
395
  }
396
396
  get debtAccounts() {
397
397
  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
398
+ (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
399
  );
400
400
  }
401
401
  get finstrongAccounts() {
402
402
  const t = /* @__PURE__ */ new Set([
403
- h.CHECKING,
404
- h.SAVINGS,
405
- h.CREDIT_CARD,
406
- h.INVESTMENT
403
+ d.CHECKING,
404
+ d.SAVINGS,
405
+ d.CREDIT_CARD,
406
+ d.INVESTMENT
407
407
  ]);
408
408
  return this.detailedAccounts.filter((e) => t.has(e.account_type));
409
409
  }
410
410
  get investmentAccounts() {
411
411
  return this.detailedAccounts.filter(
412
- (t) => t.account_type === h.INVESTMENT
412
+ (t) => t.account_type === d.INVESTMENT
413
413
  );
414
414
  }
415
415
  get manualAccounts() {
416
416
  return this.detailedAccounts.filter((t) => t.is_manual);
417
417
  }
418
418
  get savingsAccounts() {
419
- return this.detailedAccounts.filter((t) => t.account_type === h.SAVINGS);
419
+ return this.detailedAccounts.filter((t) => t.account_type === d.SAVINGS);
420
420
  }
421
421
  get retirementAccounts() {
422
422
  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)
423
+ (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
424
  );
425
425
  }
426
426
  get visibleAccounts() {
@@ -460,7 +460,7 @@ class ce {
460
460
  }
461
461
  get savingsAndCheckingAccounts() {
462
462
  return this.accounts.filter(
463
- (e) => e.account_type === h.SAVINGS || e.account_type === h.CHECKING
463
+ (e) => e.account_type === d.SAVINGS || e.account_type === d.CHECKING
464
464
  );
465
465
  }
466
466
  setAccounts = (t) => {
@@ -479,7 +479,7 @@ class ce {
479
479
  this.accounts = [...this.accounts, e];
480
480
  });
481
481
  } catch (e) {
482
- console.error(`Error occurred while adding an account: ${e}`);
482
+ console.error(`Error occurred while adding an account: ${e}`), this.globalStore.captureException(e, { store: "AccountStore" });
483
483
  }
484
484
  };
485
485
  loadAccounts = async () => {
@@ -489,7 +489,7 @@ class ce {
489
489
  const t = await this.api.getAccounts();
490
490
  this.setAccounts(t);
491
491
  } catch (t) {
492
- console.error(`Error occurred while loading accounts: ${t}`);
492
+ console.error(`Error occurred while loading accounts: ${t}`), this.globalStore.captureException(t, { store: "AccountStore" });
493
493
  }
494
494
  }
495
495
  };
@@ -500,7 +500,7 @@ class ce {
500
500
  const t = await this.api.getInstitutions();
501
501
  this.setInstitutions(t);
502
502
  } catch (t) {
503
- console.error(`Error occurred while loading institutions: ${t}`);
503
+ console.error(`Error occurred while loading institutions: ${t}`), this.globalStore.captureException(t, { store: "AccountStore" });
504
504
  }
505
505
  }
506
506
  };
@@ -511,7 +511,7 @@ class ce {
511
511
  const t = await this.api.getMembers();
512
512
  this.setMembers(t);
513
513
  } catch (t) {
514
- console.error(`Error occurred while loading members: ${t}`);
514
+ console.error(`Error occurred while loading members: ${t}`), this.globalStore.captureException(t, { store: "AccountStore" });
515
515
  }
516
516
  }
517
517
  };
@@ -525,7 +525,7 @@ class ce {
525
525
  this.accounts.splice(o, 1, s);
526
526
  });
527
527
  } catch (e) {
528
- console.error(`Error occurred while merging accounts: ${e}`);
528
+ console.error(`Error occurred while merging accounts: ${e}`), this.globalStore.captureException(e, { store: "AccountStore" });
529
529
  }
530
530
  };
531
531
  /**
@@ -538,7 +538,7 @@ class ce {
538
538
  try {
539
539
  await this.api.refreshAllMembers();
540
540
  } catch (t) {
541
- console.error(`Error occurredwhile refreshing members: ${t}`);
541
+ console.error(`Error occurredwhile refreshing members: ${t}`), this.globalStore.captureException(t, { store: "AccountStore" });
542
542
  }
543
543
  };
544
544
  removeAccount = async (t) => {
@@ -547,7 +547,7 @@ class ce {
547
547
  const e = this.accounts.findIndex((s) => s.guid === t);
548
548
  this.accounts.splice(e, 1);
549
549
  } catch (e) {
550
- console.error(`Error occurred while removing an account: ${e}`);
550
+ console.error(`Error occurred while removing an account: ${e}`), this.globalStore.captureException(e, { store: "AccountStore" });
551
551
  }
552
552
  };
553
553
  updateAccount = async (t) => {
@@ -557,7 +557,7 @@ class ce {
557
557
  );
558
558
  this.accounts.splice(s, 1, e);
559
559
  } catch (e) {
560
- console.error(`Error occurred while updating account: ${e}`);
560
+ console.error(`Error occurred while updating account: ${e}`), this.globalStore.captureException(e, { store: "AccountStore" });
561
561
  }
562
562
  };
563
563
  updateAccountBalance = (t, e) => {
@@ -584,12 +584,12 @@ let le = class {
584
584
  selectedAccount = {};
585
585
  selectedMember = {};
586
586
  constructor() {
587
- d(this);
587
+ h(this);
588
588
  }
589
589
  setSelectedAccount = (t) => this.selectedAccount = t;
590
590
  setSelectedMember = (t) => this.selectedMember = t;
591
591
  };
592
- class de {
592
+ class he {
593
593
  globalStore;
594
594
  api = new Y("/", "");
595
595
  bannerApi = new j("/");
@@ -597,7 +597,7 @@ class de {
597
597
  isAppDataLoaded = !1;
598
598
  banner = {};
599
599
  constructor(t) {
600
- this.globalStore = t, this.api = new Y(t.endpoint, t.sessionToken, t.onError), d(this);
600
+ this.globalStore = t, this.api = new Y(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
601
601
  }
602
602
  get appConfig() {
603
603
  return this.globalStore.appConfig;
@@ -625,7 +625,7 @@ class de {
625
625
  const t = await this.api.getAppData();
626
626
  this.setAppData(t);
627
627
  } catch (t) {
628
- console.error(`Error loading app data: ${t}`);
628
+ console.error(`Error loading app data: ${t}`), this.globalStore.captureException(t, { store: "AppDataStore" });
629
629
  }
630
630
  };
631
631
  loadBanner = async () => {
@@ -635,14 +635,14 @@ class de {
635
635
  this.banner = e;
636
636
  });
637
637
  } catch (t) {
638
- console.error(`Error loading banner: ${t}`);
638
+ console.error(`Error loading banner: ${t}`), this.globalStore.captureException(t, { store: "AppDataStore" });
639
639
  }
640
640
  };
641
641
  setUser = (t) => this.appData.user = t;
642
642
  setUserCommunicationProfile = (t) => this.appData.user_communication_profile = t;
643
643
  setUserProfile = (t) => this.appData.user_profile = t;
644
644
  }
645
- class he {
645
+ class de {
646
646
  globalStore;
647
647
  survey = null;
648
648
  currentQuestionIndex = 0;
@@ -650,7 +650,7 @@ class he {
650
650
  response = null;
651
651
  responses = {};
652
652
  constructor(t) {
653
- this.globalStore = t, d(this);
653
+ this.globalStore = t, h(this);
654
654
  }
655
655
  get isLastQuestion() {
656
656
  return this.currentQuestionIndex === this.surveyQuestions.length - 1;
@@ -672,7 +672,7 @@ class he {
672
672
  return this.survey ? this.survey.questions : [];
673
673
  }
674
674
  loadSurvey = (t = !1) => {
675
- Et.getActiveMatchingSurveys((e) => {
675
+ Ct.getActiveMatchingSurveys((e) => {
676
676
  c(() => {
677
677
  if (e.length > 0) {
678
678
  const s = e.find((a) => a.id === this.surveyId);
@@ -740,11 +740,11 @@ const ge = (n) => ({
740
740
  });
741
741
  class pe {
742
742
  globalStore;
743
- api = new $("/", "");
743
+ api = new v("/", "");
744
744
  beats = [];
745
745
  isLoading = !1;
746
746
  constructor(t) {
747
- this.globalStore = t, this.api = new $(t.endpoint, t.sessionToken, t.onError), d(this);
747
+ this.globalStore = t, this.api = new v(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
748
748
  }
749
749
  loadBeats = async () => {
750
750
  this.isLoading = !0;
@@ -771,7 +771,7 @@ class _e {
771
771
  api = new X("/", "");
772
772
  globalStore;
773
773
  alert = "";
774
- dateRange = { start: E(y()), end: T(y()) };
774
+ dateRange = { start: C(y()), end: T(y()) };
775
775
  budgets = [];
776
776
  selectedBudget;
777
777
  selectedSubBudget;
@@ -779,7 +779,7 @@ class _e {
779
779
  theme = {};
780
780
  merchantBudgets = [];
781
781
  constructor(t) {
782
- this.globalStore = t, this.api = new X(t.endpoint, t.sessionToken, t.onError), d(this);
782
+ this.globalStore = t, this.api = new X(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
783
783
  }
784
784
  loadBudgetData = async () => {
785
785
  this.globalStore.recurringTransactionsStore.isDataLoaded || await this.globalStore.recurringTransactionsStore.loadRepeatingTransactionData(), await this.loadBudgets(), ut(
@@ -787,9 +787,9 @@ class _e {
787
787
  (t) => {
788
788
  if (t) {
789
789
  const e = this.selectedBudget;
790
- e && (this.selectedBudget = It(t, e.guid));
790
+ e && (this.selectedBudget = Et(t, e.guid));
791
791
  const s = this.selectedSubBudget;
792
- s && s.parent_guid && (this.selectedSubBudget = Ct(
792
+ s && s.parent_guid && (this.selectedSubBudget = It(
793
793
  t,
794
794
  s.guid,
795
795
  s.parent_guid
@@ -801,7 +801,7 @@ class _e {
801
801
  get detailedBudgets() {
802
802
  return W(
803
803
  this.budgets.filter(
804
- (t) => t.category_guid !== w.INCOME && t.category_guid !== w.TRANSFER && t.category_guid !== w.INVESTMENTS
804
+ (t) => t.category_guid !== b.INCOME && t.category_guid !== b.TRANSFER && t.category_guid !== b.INVESTMENTS
805
805
  ),
806
806
  this.globalStore.categoryStore.detailedCategories,
807
807
  this.globalStore.copyStore.copy.budgets,
@@ -816,7 +816,7 @@ class _e {
816
816
  this.globalStore.copyStore.copy.budgets,
817
817
  this.theme
818
818
  ).reduce(
819
- (s, a) => a.category_guid !== w.INCOME ? s : !s || a.percentage > s.percentage ? a : s,
819
+ (s, a) => a.category_guid !== b.INCOME ? s : !s || a.percentage > s.percentage ? a : s,
820
820
  void 0
821
821
  )?.amount;
822
822
  }
@@ -835,7 +835,7 @@ class _e {
835
835
  this.budgets.push(a);
836
836
  });
837
837
  } catch (a) {
838
- console.error(`Error adding budget: ${a}`);
838
+ console.error(`Error adding budget: ${a}`), this.globalStore.captureException(a, { store: "BudgetsStore" });
839
839
  }
840
840
  };
841
841
  deleteBudget = async (t) => {
@@ -845,7 +845,7 @@ class _e {
845
845
  e >= 0 && this.budgets.splice(e, 1);
846
846
  });
847
847
  } catch (e) {
848
- console.error(`Error deleting budget: ${e}`);
848
+ console.error(`Error deleting budget: ${e}`), this.globalStore.captureException(e, { store: "BudgetsStore" });
849
849
  }
850
850
  };
851
851
  loadBudgets = async () => {
@@ -853,7 +853,7 @@ class _e {
853
853
  const t = await this.api.getBudgets();
854
854
  this.setBudgets(t);
855
855
  } catch (t) {
856
- throw console.error(`Error occurred while loading budgets: ${t}`), t;
856
+ throw console.error(`Error occurred while loading budgets: ${t}`), this.globalStore.captureException(t, { store: "BudgetsStore" }), t;
857
857
  }
858
858
  };
859
859
  setAlert = (t) => this.alert = t;
@@ -884,7 +884,7 @@ class _e {
884
884
  await this.api.deleteBudget(s.guid);
885
885
  return await this.loadBudgets(), { data: this.budgets, isSuccess: !0 };
886
886
  } catch (e) {
887
- return console.error("error recalculating budgets", e), { data: [], isSuccess: !1 };
887
+ return console.error("error recalculating budgets", e), this.globalStore.captureException(e, { store: "BudgetsStore" }), { data: [], isSuccess: !1 };
888
888
  }
889
889
  };
890
890
  updateBudget = async (t) => {
@@ -895,7 +895,7 @@ class _e {
895
895
  s >= 0 && (this.budgets[s] = e);
896
896
  });
897
897
  } catch (e) {
898
- console.error(`Error updating budget: ${e}`);
898
+ console.error(`Error updating budget: ${e}`), this.globalStore.captureException(e, { store: "BudgetsStore" });
899
899
  }
900
900
  };
901
901
  getMerchantBudgetByMerchantGuid = (t) => this.merchantBudgets.find(
@@ -911,7 +911,7 @@ class _e {
911
911
  this.merchantBudgets.push(s);
912
912
  }), { isSuccess: !0 };
913
913
  } catch (s) {
914
- return console.error(`Error adding merchant budget: ${s}`), { isSuccess: !1 };
914
+ return console.error(`Error adding merchant budget: ${s}`), this.globalStore.captureException(s, { store: "BudgetsStore" }), { isSuccess: !1 };
915
915
  }
916
916
  };
917
917
  updateMerchantBudget = async (t) => {
@@ -922,7 +922,7 @@ class _e {
922
922
  o >= 0 && (this.merchantBudgets[o] = a);
923
923
  }), { isSuccess: !0 };
924
924
  } catch (e) {
925
- return console.error(`Error updating merchant budget: ${e}`), { isSuccess: !1 };
925
+ return console.error(`Error updating merchant budget: ${e}`), this.globalStore.captureException(e, { store: "BudgetsStore" }), { isSuccess: !1 };
926
926
  }
927
927
  };
928
928
  deleteMerchantBudget = async (t) => {
@@ -931,7 +931,7 @@ class _e {
931
931
  this.merchantBudgets = this.merchantBudgets.filter((e) => e.guid !== t);
932
932
  }), { isSuccess: !0 };
933
933
  } catch (e) {
934
- return console.error(`Error deleting merchant budget: ${e}`), { isSuccess: !1 };
934
+ return console.error(`Error deleting merchant budget: ${e}`), this.globalStore.captureException(e, { store: "BudgetsStore" }), { isSuccess: !1 };
935
935
  }
936
936
  };
937
937
  }
@@ -939,7 +939,7 @@ class fe {
939
939
  globalStore;
940
940
  uiStore;
941
941
  constructor(t) {
942
- this.globalStore = t, this.uiStore = new ye(t), d(this);
942
+ this.globalStore = t, this.uiStore = new ye(t), h(this);
943
943
  }
944
944
  completeOnboarding = async () => {
945
945
  const t = {
@@ -958,7 +958,7 @@ let ye = class {
958
958
  dateRange = { start: y(), end: Dt(y(), 30) };
959
959
  isDirty = !1;
960
960
  constructor(t) {
961
- this.globalStore = t, d(this);
961
+ this.globalStore = t, h(this);
962
962
  }
963
963
  // Recurrence data scoped to Cash Flow's own dateRange, sourced from the
964
964
  // range-parameterized helpers on RecurringTransactionsStore. Computeds (not
@@ -989,13 +989,13 @@ let ye = class {
989
989
  get selectedCashBalance() {
990
990
  const t = this.globalStore.appConfig.config.display_available_balance_in_accounts;
991
991
  return this.selectedCashAccounts.reduce(
992
- (e, s) => e + wt(s, t),
992
+ (e, s) => e + bt(s, t),
993
993
  0
994
994
  );
995
995
  }
996
996
  // Returns the number of days until the next income activity or 0 if there is no income activity
997
997
  get daysUntilNextIncome() {
998
- return this.nextIncome ? Math.abs(Lt(y(), this.nextIncome.expectedDate)) : 0;
998
+ return this.nextIncome ? Math.abs(xt(y(), this.nextIncome.expectedDate)) : 0;
999
999
  }
1000
1000
  // Returns the expenses (Activities) until the next income activity or the end of the month
1001
1001
  // if there is no income activity
@@ -1005,7 +1005,7 @@ let ye = class {
1005
1005
  );
1006
1006
  }
1007
1007
  };
1008
- class me {
1008
+ class Se {
1009
1009
  globalStore;
1010
1010
  uiStore;
1011
1011
  api = new J("/", "");
@@ -1019,10 +1019,10 @@ class me {
1019
1019
  monthlyTotalsLoaded = !1;
1020
1020
  monthlyTotalsLoading = !1;
1021
1021
  constructor(t) {
1022
- this.globalStore = t, this.uiStore = new Se(), this.api = new J(t.endpoint, t.sessionToken, t.onError), d(this);
1022
+ this.globalStore = t, this.uiStore = new me(), this.api = new J(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
1023
1023
  }
1024
1024
  get detailedCategories() {
1025
- return this.globalStore.isInitialized ? vt(
1025
+ return this.globalStore.isInitialized ? Lt(
1026
1026
  this.categories,
1027
1027
  this.globalStore.copyStore.copy.categories,
1028
1028
  this.dateRangeCategoryTotals,
@@ -1030,7 +1030,7 @@ class me {
1030
1030
  ) : [];
1031
1031
  }
1032
1032
  get detailedCategoriesWithTransactions() {
1033
- return $t(
1033
+ return vt(
1034
1034
  this.detailedCategories,
1035
1035
  this.globalStore.transactionStore.sortedTransactions
1036
1036
  );
@@ -1040,7 +1040,7 @@ class me {
1040
1040
  }
1041
1041
  get spendCategories() {
1042
1042
  return this.detailedCategories.filter(
1043
- (t) => !t.is_income && !t.isTransfer && t.guid !== w.INVESTMENTS
1043
+ (t) => !t.is_income && !t.isTransfer && t.guid !== b.INVESTMENTS
1044
1044
  );
1045
1045
  }
1046
1046
  get transferCategories() {
@@ -1056,14 +1056,14 @@ class me {
1056
1056
  this.dateRangeCategoryTotals = t, this.dateRangeTotalsLoading = !1, this.dateRangeTotalsLoaded = !0;
1057
1057
  };
1058
1058
  get trendsCategories() {
1059
- return this.detailedCategories.filter((t) => t.totalAmount !== 0).filter((t) => t.guid !== w.INVESTMENTS && t.guid !== w.TRANSFER);
1059
+ return this.detailedCategories.filter((t) => t.totalAmount !== 0).filter((t) => t.guid !== b.INVESTMENTS && t.guid !== b.TRANSFER);
1060
1060
  }
1061
1061
  addCategory = async (t, e) => {
1062
1062
  const s = { name: t, parent_guid: e };
1063
1063
  try {
1064
1064
  await this.api.addCategory(s), await this.loadCategories();
1065
1065
  } catch (a) {
1066
- console.error(`Error occurred while adding category: ${a}`);
1066
+ console.error(`Error occurred while adding category: ${a}`), this.globalStore.captureException(a, { store: "CategoryStore" });
1067
1067
  }
1068
1068
  };
1069
1069
  loadCategories = async () => {
@@ -1073,7 +1073,7 @@ class me {
1073
1073
  const t = await this.api.getCategories();
1074
1074
  this.setCategories(t);
1075
1075
  } catch (t) {
1076
- console.error(`Error occurred while getting categories: ${t}`);
1076
+ console.error(`Error occurred while getting categories: ${t}`), this.globalStore.captureException(t, { store: "CategoryStore" });
1077
1077
  }
1078
1078
  }
1079
1079
  };
@@ -1082,25 +1082,25 @@ class me {
1082
1082
  this.dateRangeTotalsLoading = !0;
1083
1083
  try {
1084
1084
  const a = await this.api.getDateRangeCategoryTotals(
1085
- m(e),
1086
- m(s),
1085
+ S(e),
1086
+ S(s),
1087
1087
  t
1088
1088
  );
1089
1089
  this.setDateRangeCategoryTotals(a);
1090
1090
  } catch (a) {
1091
- console.error(`Error occurred while getting date range category totals: ${a}`);
1091
+ console.error(`Error occurred while getting date range category totals: ${a}`), this.globalStore.captureException(a, { store: "CategoryStore" });
1092
1092
  }
1093
1093
  }
1094
1094
  };
1095
1095
  loadMonthlyCategoryTotals = async (t = this.globalStore.globalUiStore.selectedAccounts, e, s) => {
1096
1096
  if (this.monthlyTotalsLoading) return;
1097
1097
  this.monthlyTotalsLoading = !0;
1098
- const a = m(E(e ?? G(/* @__PURE__ */ new Date(), 11))), o = m(T(s ?? /* @__PURE__ */ new Date()));
1098
+ const a = S(C(e ?? G(/* @__PURE__ */ new Date(), 11))), o = S(T(s ?? /* @__PURE__ */ new Date()));
1099
1099
  try {
1100
1100
  const r = await this.api.getMonthlyCategoryTotals(a, o, t);
1101
1101
  this.setMonthlyCategoryTotals(r);
1102
1102
  } catch (r) {
1103
- console.error(`Error occurred while getting monthly category totals: ${r}`);
1103
+ console.error(`Error occurred while getting monthly category totals: ${r}`), this.globalStore.captureException(r, { store: "CategoryStore" });
1104
1104
  }
1105
1105
  };
1106
1106
  reloadCategoryTotals = async (t, e, s) => {
@@ -1111,27 +1111,27 @@ class me {
1111
1111
  this.loadDateRangeCategoryTotals(t, a, o)
1112
1112
  ]);
1113
1113
  } catch (r) {
1114
- console.error(`Error occurred while getting category totals: ${r}`);
1114
+ console.error(`Error occurred while getting category totals: ${r}`), this.globalStore.captureException(r, { store: "CategoryStore" });
1115
1115
  }
1116
1116
  };
1117
1117
  removeCategory = async (t) => {
1118
1118
  try {
1119
1119
  await this.api.removeCategory(t), await this.loadCategories();
1120
1120
  } catch (e) {
1121
- console.error(`Error occurred while removing category: ${e}`);
1121
+ console.error(`Error occurred while removing category: ${e}`), this.globalStore.captureException(e, { store: "CategoryStore" });
1122
1122
  }
1123
1123
  };
1124
1124
  updateCategory = async (t) => {
1125
1125
  try {
1126
1126
  await this.api.updateCategory(t), await this.loadCategories();
1127
1127
  } catch (e) {
1128
- console.error(`Error occurred while updating category: ${e}`);
1128
+ console.error(`Error occurred while updating category: ${e}`), this.globalStore.captureException(e, { store: "CategoryStore" });
1129
1129
  }
1130
1130
  };
1131
1131
  // TODO: Remove this after refactoring Trends components to use detailedCategories
1132
1132
  getCategoryName = (t) => this.categories.find((s) => s.guid === t)?.name ?? Rt[t];
1133
1133
  }
1134
- let Se = class {
1134
+ let me = class {
1135
1135
  expandedGuid = null;
1136
1136
  selectedGuid = null;
1137
1137
  searchValue = "";
@@ -1142,7 +1142,7 @@ let Se = class {
1142
1142
  savedOnSelect;
1143
1143
  // todo
1144
1144
  constructor() {
1145
- d(this);
1145
+ h(this);
1146
1146
  }
1147
1147
  setExpandedGuid = (t) => this.expandedGuid = t;
1148
1148
  setSelectedGuid = (t) => this.selectedGuid = t;
@@ -1158,7 +1158,7 @@ class Te {
1158
1158
  globalStore;
1159
1159
  widgetApi = new ct("/", "");
1160
1160
  constructor(t) {
1161
- this.globalStore = t, this.widgetApi = new ct(t.endpoint, t.sessionToken), d(this);
1161
+ this.globalStore = t, this.widgetApi = new ct(t.endpoint, t.sessionToken), h(this);
1162
1162
  }
1163
1163
  loadWidget = async ({ widget: t = "connect_widget", mode: e = "light", ...s }) => await this.widgetApi.requestWidgetUrl({
1164
1164
  widget_url: { widget_type: t, color_scheme: e, ...s }
@@ -1168,7 +1168,7 @@ class Ae {
1168
1168
  globalStore;
1169
1169
  uiStore;
1170
1170
  constructor(t) {
1171
- this.globalStore = t, this.uiStore = new we(), d(this);
1171
+ this.globalStore = t, this.uiStore = new be(), h(this);
1172
1172
  }
1173
1173
  get debts() {
1174
1174
  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 +1178,12 @@ class Ae {
1178
1178
  return this.debts.map((e) => Number(e.monthly_payment)).filter((e) => !isNaN(e)).reduce((e, s) => e + s, 0);
1179
1179
  }
1180
1180
  }
1181
- let we = class {
1181
+ let be = class {
1182
1182
  isLoading = !1;
1183
1183
  selectedDebtChartData = {};
1184
1184
  selectedDebtPriority = Ut.LOWEST_BALANCE;
1185
1185
  constructor() {
1186
- d(this);
1186
+ h(this);
1187
1187
  }
1188
1188
  get showError() {
1189
1189
  const { interest_rate: t, monthly_payment: e } = this.selectedDebtChartData;
@@ -1196,16 +1196,16 @@ let we = class {
1196
1196
  setSelectedDebtChartData = (t) => this.selectedDebtChartData = t;
1197
1197
  setSelectedDebtPriority = (t) => this.selectedDebtPriority = t;
1198
1198
  };
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) => ({
1199
+ 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
1200
  x: U(
1201
1201
  new Date(0, t.monthly_health_score_average.month - 1, 1),
1202
1202
  k.MONTH_SHORT
1203
1203
  ),
1204
1204
  y: Math.round(t.monthly_health_score_average.average_health_score)
1205
- })), Ie = (n) => n.map(({ transaction: e }) => ({
1205
+ })), Ee = (n) => n.map(({ transaction: e }) => ({
1206
1206
  ...e
1207
1207
  })).sort((e, s) => s.date - e.date);
1208
- class Ce {
1208
+ class Ie {
1209
1209
  api = new Z("/", "");
1210
1210
  augmentedChartData = [];
1211
1211
  averageHealthScores = [];
@@ -1222,7 +1222,7 @@ class Ce {
1222
1222
  isSpendingInitialized = !1;
1223
1223
  isIncomeInitialized = !1;
1224
1224
  constructor(t) {
1225
- this.globalStore = t, this.api = new Z(t.endpoint, t.sessionToken, t.onError), d(this);
1225
+ this.globalStore = t, this.api = new Z(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
1226
1226
  }
1227
1227
  setSpendingInitialized = (t) => {
1228
1228
  this.isSpendingInitialized = t;
@@ -1240,7 +1240,7 @@ class Ce {
1240
1240
  this.healthScore = e, this.healthScoreChange = s;
1241
1241
  });
1242
1242
  } catch (e) {
1243
- console.error("Error calculating health score:", e);
1243
+ console.error("Error calculating health score:", e), this.globalStore.captureException(e, { store: "FinstrongStore" });
1244
1244
  }
1245
1245
  };
1246
1246
  loadAverageHealthScores = async () => {
@@ -1250,7 +1250,7 @@ class Ce {
1250
1250
  this.averageHealthScores = t;
1251
1251
  });
1252
1252
  } catch (t) {
1253
- console.error("Error loading average health scores:", t);
1253
+ console.error("Error loading average health scores:", t), this.globalStore.captureException(t, { store: "FinstrongStore" });
1254
1254
  }
1255
1255
  };
1256
1256
  loadMonthlySummaries = async () => {
@@ -1260,7 +1260,7 @@ class Ce {
1260
1260
  this.monthlySummaries = t;
1261
1261
  });
1262
1262
  } catch (t) {
1263
- console.error("Error loading monthly summaries:", t);
1263
+ console.error("Error loading monthly summaries:", t), this.globalStore.captureException(t, { store: "FinstrongStore" });
1264
1264
  }
1265
1265
  };
1266
1266
  loadDebtSpend = async () => {
@@ -1270,7 +1270,7 @@ class Ce {
1270
1270
  this.debtSpendTransactions = t;
1271
1271
  });
1272
1272
  } catch (t) {
1273
- console.error("Error loading debt spend:", t);
1273
+ console.error("Error loading debt spend:", t), this.globalStore.captureException(t, { store: "FinstrongStore" });
1274
1274
  }
1275
1275
  };
1276
1276
  loadIncome = async () => {
@@ -1281,11 +1281,11 @@ class Ce {
1281
1281
  this.incomeTransactions = t, this.setIncomeInitialized(!0);
1282
1282
  });
1283
1283
  } catch (t) {
1284
- console.error("Error loading income:", t);
1284
+ console.error("Error loading income:", t), this.globalStore.captureException(t, { store: "FinstrongStore" });
1285
1285
  }
1286
1286
  };
1287
1287
  loadHealthScoreChangeReports = async () => {
1288
- const t = m(G(/* @__PURE__ */ new Date(), 2)), e = m(/* @__PURE__ */ new Date());
1288
+ const t = S(G(/* @__PURE__ */ new Date(), 2)), e = S(/* @__PURE__ */ new Date());
1289
1289
  try {
1290
1290
  const s = await this.api.getHealthScoreChangeReports(
1291
1291
  t,
@@ -1295,7 +1295,7 @@ class Ce {
1295
1295
  this.healthScoreChangeReports = s;
1296
1296
  });
1297
1297
  } catch (s) {
1298
- console.error("Error loading health score change reports:", s);
1298
+ console.error("Error loading health score change reports:", s), this.globalStore.captureException(s, { store: "FinstrongStore" });
1299
1299
  }
1300
1300
  };
1301
1301
  loadPeerScore = async () => {
@@ -1306,27 +1306,27 @@ class Ce {
1306
1306
  this.peerScore = e;
1307
1307
  });
1308
1308
  } catch (e) {
1309
- console.error("Error loading peer score:", e);
1309
+ console.error("Error loading peer score:", e), this.globalStore.captureException(e, { store: "FinstrongStore" });
1310
1310
  }
1311
1311
  };
1312
1312
  loadAugmentedChartData = async () => {
1313
1313
  try {
1314
1314
  const t = await this.api.getAverageHealthScores();
1315
1315
  c(() => {
1316
- this.augmentedChartData = be(t);
1316
+ this.augmentedChartData = we(t);
1317
1317
  });
1318
1318
  } catch (t) {
1319
- console.error(`Error occurred while getting augmented chart data: ${t}`);
1319
+ console.error(`Error occurred while getting augmented chart data: ${t}`), this.globalStore.captureException(t, { store: "FinstrongStore" });
1320
1320
  }
1321
1321
  };
1322
1322
  getSpendingFeeTransactions = async () => {
1323
1323
  try {
1324
- const t = await this.api.getSpendingFeeTransactions(), e = Ie(t);
1324
+ const t = await this.api.getSpendingFeeTransactions(), e = Ee(t);
1325
1325
  c(() => {
1326
1326
  this.spendingFeeTransactions = e;
1327
1327
  });
1328
1328
  } catch (t) {
1329
- console.error(`Error occurred while getting spending fee transactions: ${t}`);
1329
+ console.error(`Error occurred while getting spending fee transactions: ${t}`), this.globalStore.captureException(t, { store: "FinstrongStore" });
1330
1330
  }
1331
1331
  };
1332
1332
  loadSpendTransactions = async () => {
@@ -1337,7 +1337,7 @@ class Ce {
1337
1337
  this.spendTransactions = [...t], this.setSpendingInitialized(!0);
1338
1338
  });
1339
1339
  } catch (t) {
1340
- console.error("Error loading spend transactions:", t);
1340
+ console.error("Error loading spend transactions:", t), this.globalStore.captureException(t, { store: "FinstrongStore" });
1341
1341
  }
1342
1342
  };
1343
1343
  get spendAndDebtTransactions() {
@@ -1458,11 +1458,12 @@ const lt = {
1458
1458
  postHogPublicKey: "phc_1fVYJICC69TpW4wagp9o2XqQ8E7X98cAmcR5psSpfkE",
1459
1459
  userFeatures: []
1460
1460
  };
1461
- class Ns {
1461
+ class $s {
1462
1462
  // Global properties
1463
1463
  appConfig = lt;
1464
1464
  endpoint = "/";
1465
1465
  sessionToken = "";
1466
+ onCaptureException;
1466
1467
  onError;
1467
1468
  onStoreUpdate;
1468
1469
  // Data Stores
@@ -1490,17 +1491,20 @@ class Ns {
1490
1491
  userStore;
1491
1492
  // UI Stores
1492
1493
  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;
1494
+ constructor(t = lt, e = "/", s, a, o) {
1495
+ 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(() => {
1496
+ const { transactions: r } = this.transactionStore;
1496
1497
  this.emitUpdate({
1497
- transactions: o
1498
+ transactions: r
1498
1499
  });
1499
1500
  });
1500
1501
  }
1501
1502
  get isInitialized() {
1502
1503
  return this.globalUiStore.isInitialized;
1503
1504
  }
1505
+ captureException = (t, e) => {
1506
+ this.onCaptureException?.(t, e);
1507
+ };
1504
1508
  // emits change triggered in the autorun
1505
1509
  emitUpdate = (t) => {
1506
1510
  this.onStoreUpdate?.(t);
@@ -1523,21 +1527,21 @@ class Ns {
1523
1527
  transactionRules: r,
1524
1528
  transactions: l,
1525
1529
  userFeatures: p,
1526
- merchantBudgets: b
1530
+ merchantBudgets: w
1527
1531
  } = {}) => {
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);
1532
+ (!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
1533
  };
1530
1534
  }
1531
- class Ee {
1535
+ class Ce {
1532
1536
  globalStore;
1533
1537
  accountFilterMap = /* @__PURE__ */ new Map();
1534
1538
  displayedDate = /* @__PURE__ */ new Date();
1535
1539
  displayedDateRange = {
1536
- start: E(this.displayedDate),
1540
+ start: C(this.displayedDate),
1537
1541
  end: T(this.displayedDate)
1538
1542
  };
1539
1543
  constructor(t) {
1540
- d(this), this.globalStore = t, ut(
1544
+ h(this), this.globalStore = t, ut(
1541
1545
  () => this.globalStore.accountStore.visibleAccounts,
1542
1546
  (e) => {
1543
1547
  this.populateAccountFilterMap(e);
@@ -1587,11 +1591,11 @@ class Ee {
1587
1591
  };
1588
1592
  };
1589
1593
  get shouldDisableNextDate() {
1590
- const t = v(this.displayedDate), e = v(re(/* @__PURE__ */ new Date(), 1));
1594
+ const t = L(this.displayedDate), e = L(re(/* @__PURE__ */ new Date(), 1));
1591
1595
  return t === e;
1592
1596
  }
1593
1597
  get shouldDisablePrevDate() {
1594
- const t = v(this.displayedDate), e = v(/* @__PURE__ */ new Date());
1598
+ const t = L(this.displayedDate), e = L(/* @__PURE__ */ new Date());
1595
1599
  return t === e;
1596
1600
  }
1597
1601
  }
@@ -1605,8 +1609,9 @@ class Re {
1605
1609
  this.globalStore = t, this.api = new V(
1606
1610
  t.endpoint,
1607
1611
  t.sessionToken,
1608
- t.onError
1609
- ), d(this);
1612
+ t.onError,
1613
+ t.onCaptureException
1614
+ ), h(this);
1610
1615
  }
1611
1616
  loadCopy = async () => {
1612
1617
  await this.getCopy(this.featureNamespace), c(() => {
@@ -1620,7 +1625,7 @@ class Re {
1620
1625
  this.copy = s[t];
1621
1626
  });
1622
1627
  } catch (s) {
1623
- console.error(`Error occurred while fetching ${this.featureNamespace} copy: ${s}`);
1628
+ console.error(`Error occurred while fetching ${this.featureNamespace} copy: ${s}`), this.globalStore.captureException(s, { store: "GlobalCopyStore" });
1624
1629
  }
1625
1630
  };
1626
1631
  }
@@ -1639,7 +1644,7 @@ class De {
1639
1644
  alert = "";
1640
1645
  selectedGoal = void 0;
1641
1646
  constructor(t) {
1642
- this.globalStore = t, this.api = new tt(t.endpoint, t.sessionToken, t.onError), d(this);
1647
+ this.globalStore = t, this.api = new tt(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
1643
1648
  }
1644
1649
  get allGoals() {
1645
1650
  if (!this.isAllGoalDataLoaded) return [];
@@ -1650,7 +1655,7 @@ class De {
1650
1655
  ...s,
1651
1656
  amount: s.target_amount,
1652
1657
  name: t.retirement,
1653
- track_type: S.RETIREMENT_TRACK,
1658
+ track_type: m.RETIREMENT_TRACK,
1654
1659
  projected_to_complete_at: s.retirement_age && e ? z(s.retirement_age, e) : void 0
1655
1660
  }))
1656
1661
  ];
@@ -1659,21 +1664,21 @@ class De {
1659
1664
  return this.allGoals.slice().sort((t, e) => t.position - e.position);
1660
1665
  }
1661
1666
  get debtGoals() {
1662
- return this.orderedGoals.filter((t) => t.track_type === S.DEBT_TRACK);
1667
+ return this.orderedGoals.filter((t) => t.track_type === m.DEBT_TRACK);
1663
1668
  }
1664
1669
  get retirmentGoals() {
1665
- return this.orderedGoals.filter((t) => t.track_type === S.RETIREMENT_TRACK);
1670
+ return this.orderedGoals.filter((t) => t.track_type === m.RETIREMENT_TRACK);
1666
1671
  }
1667
1672
  get savingGoals() {
1668
- return this.orderedGoals.filter((t) => t.track_type === S.SAVINGS_TRACK);
1673
+ return this.orderedGoals.filter((t) => t.track_type === m.SAVINGS_TRACK);
1669
1674
  }
1670
1675
  get ongoingGoalsForMicroWidget() {
1671
1676
  const t = this.allGoals.filter(
1672
- (s) => !s.is_complete && s.track_type !== S.EMERGENCY_FUND_TRACK && s.track_type !== null
1677
+ (s) => !s.is_complete && s.track_type !== m.EMERGENCY_FUND_TRACK && s.track_type !== null
1673
1678
  ), e = [
1674
- S.SAVINGS_TRACK,
1675
- S.DEBT_TRACK,
1676
- S.RETIREMENT_TRACK
1679
+ m.SAVINGS_TRACK,
1680
+ m.DEBT_TRACK,
1681
+ m.RETIREMENT_TRACK
1677
1682
  ];
1678
1683
  return t.sort((s, a) => {
1679
1684
  const o = s.track_type ? e.indexOf(s.track_type) : -1, r = a.track_type ? e.indexOf(a.track_type) : -1;
@@ -1708,7 +1713,7 @@ class De {
1708
1713
  const t = await this.api.getGoals();
1709
1714
  this.setGoals(t);
1710
1715
  } catch (t) {
1711
- console.error(`Error occured while getting goals: ${t}`);
1716
+ console.error(`Error occured while getting goals: ${t}`), this.globalStore.captureException(t, { store: "GoalStore" });
1712
1717
  }
1713
1718
  };
1714
1719
  loadRetirementGoals = async () => {
@@ -1716,7 +1721,7 @@ class De {
1716
1721
  const t = await this.api.getRetirementGoals();
1717
1722
  this.setRetirementGoals(t);
1718
1723
  } catch (t) {
1719
- console.error(`Error occurred while loading retirement goals: ${t}`);
1724
+ console.error(`Error occurred while loading retirement goals: ${t}`), this.globalStore.captureException(t, { store: "GoalStore" });
1720
1725
  }
1721
1726
  };
1722
1727
  loadRetirementGoalAccounts = async () => {
@@ -1724,7 +1729,7 @@ class De {
1724
1729
  const t = await this.api.getRetirementGoalAccounts();
1725
1730
  this.setRetirementGoalAccounts(t);
1726
1731
  } catch (t) {
1727
- console.error(`Error occurred while loading retirement goal accounts: ${t}`);
1732
+ console.error(`Error occurred while loading retirement goal accounts: ${t}`), this.globalStore.captureException(t, { store: "GoalStore" });
1728
1733
  }
1729
1734
  };
1730
1735
  loadMonthlyCashFlowProfile = async () => {
@@ -1732,7 +1737,7 @@ class De {
1732
1737
  const t = await this.api.getMonthlyCashFlowProfile();
1733
1738
  this.setMonthlyCashFlowProfile(t);
1734
1739
  } catch (t) {
1735
- console.error(`Error occurred while loading monthly cash flow profile: ${t}`);
1740
+ console.error(`Error occurred while loading monthly cash flow profile: ${t}`), this.globalStore.captureException(t, { store: "GoalStore" });
1736
1741
  }
1737
1742
  };
1738
1743
  addGoal = async (t) => {
@@ -1740,7 +1745,7 @@ class De {
1740
1745
  const e = await this.api.addGoal(t);
1741
1746
  this.setGoals([...this.goals, e]);
1742
1747
  } catch (e) {
1743
- console.error(`Error occurred while adding goal: ${e}`);
1748
+ console.error(`Error occurred while adding goal: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1744
1749
  }
1745
1750
  };
1746
1751
  addRetirementGoal = async (t) => {
@@ -1760,12 +1765,12 @@ class De {
1760
1765
  ...s,
1761
1766
  amount: s.target_amount,
1762
1767
  name: e.retirement,
1763
- track_type: S.RETIREMENT_TRACK,
1768
+ track_type: m.RETIREMENT_TRACK,
1764
1769
  projected_to_complete_at: s.retirement_age && o ? z(s.retirement_age, o) : void 0
1765
1770
  }
1766
1771
  ], this.setRetirementGoalAccounts([...this.retirementGoalAccounts, ...a]);
1767
1772
  } catch (s) {
1768
- console.error(`Error occurred while adding retirement goal: ${s}`);
1773
+ console.error(`Error occurred while adding retirement goal: ${s}`), this.globalStore.captureException(s, { store: "GoalStore" });
1769
1774
  }
1770
1775
  };
1771
1776
  addRetirementGoalAccount = async (t) => {
@@ -1775,7 +1780,7 @@ class De {
1775
1780
  this.retirementGoalAccounts = [...this.retirementGoalAccounts, e];
1776
1781
  });
1777
1782
  } catch (e) {
1778
- console.error(`Error occurred while adding retirement goal account: ${e}`);
1783
+ console.error(`Error occurred while adding retirement goal account: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1779
1784
  }
1780
1785
  };
1781
1786
  deleteGoal = async (t) => {
@@ -1784,7 +1789,7 @@ class De {
1784
1789
  const e = this.goals.findIndex((s) => s.guid === t);
1785
1790
  e >= 0 && this.goals.splice(e, 1);
1786
1791
  } catch (e) {
1787
- console.error(`Error occured while deleting goal: ${e}`);
1792
+ console.error(`Error occured while deleting goal: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1788
1793
  }
1789
1794
  };
1790
1795
  deleteRetirementGoal = async (t) => {
@@ -1798,7 +1803,7 @@ class De {
1798
1803
  const s = this.retirementGoals.findIndex((a) => a.guid === t.guid);
1799
1804
  s >= 0 && this.retirementGoals.splice(s, 1);
1800
1805
  } catch (e) {
1801
- console.error(`Error deleting retirement goal: ${e}`);
1806
+ console.error(`Error deleting retirement goal: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1802
1807
  }
1803
1808
  };
1804
1809
  deleteRetirementGoalAccount = async (t) => {
@@ -1807,7 +1812,7 @@ class De {
1807
1812
  const e = this.retirementGoalAccounts.findIndex((s) => s.guid === t);
1808
1813
  e >= 0 && this.retirementGoalAccounts.splice(e, 1);
1809
1814
  } catch (e) {
1810
- console.error(`Error deleting retirement goal account: ${e}`);
1815
+ console.error(`Error deleting retirement goal account: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1811
1816
  }
1812
1817
  };
1813
1818
  reorderGoals = async (t) => {
@@ -1820,7 +1825,7 @@ class De {
1820
1825
  }
1821
1826
  });
1822
1827
  } catch (e) {
1823
- console.error(`Error reordering goals: ${e}`);
1828
+ console.error(`Error reordering goals: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1824
1829
  }
1825
1830
  };
1826
1831
  setAlert = (t) => this.alert = t;
@@ -1836,7 +1841,7 @@ class De {
1836
1841
  s >= 0 && (this.goals[s] = e), this.selectedGoal?.guid === t.guid && this.setSelectedGoal(e);
1837
1842
  });
1838
1843
  } catch (e) {
1839
- console.error(`Error occurred while updating goal: ${e}`);
1844
+ console.error(`Error occurred while updating goal: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1840
1845
  }
1841
1846
  };
1842
1847
  updateRetirementGoal = async (t) => {
@@ -1850,7 +1855,7 @@ class De {
1850
1855
  s >= 0 && (this.retirementGoals[s] = e), this.selectedGoal?.guid === t.guid && this.setSelectedGoal(this.allGoals.find((a) => a.guid === t.guid));
1851
1856
  });
1852
1857
  } catch (e) {
1853
- console.error(`Error occurred while updating goal: ${e}`);
1858
+ console.error(`Error occurred while updating goal: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1854
1859
  }
1855
1860
  };
1856
1861
  updateMonthlyCashFlowProfile = async (t) => {
@@ -1858,11 +1863,11 @@ class De {
1858
1863
  const e = await this.api.updateMonthlyCashFlowProfile(t);
1859
1864
  this.setMonthlyCashFlowProfile(e);
1860
1865
  } catch (e) {
1861
- console.error(`Error occurred while updating monthly Cash Flow profile: ${e}`);
1866
+ console.error(`Error occurred while updating monthly Cash Flow profile: ${e}`), this.globalStore.captureException(e, { store: "GoalStore" });
1862
1867
  }
1863
1868
  };
1864
1869
  }
1865
- const Le = (n, t) => n.guid === "general" || n.guid === "insights" ? !0 : n.flags ? n.flags.every((e) => t[e]) : !1, ve = (n, t) => {
1870
+ const xe = (n, t) => n.guid === "general" || n.guid === "insights" ? !0 : n.flags ? n.flags.every((e) => t[e]) : !1, Le = (n, t) => {
1866
1871
  const e = [];
1867
1872
  for (const s of oe) {
1868
1873
  const a = t[s.guid];
@@ -1875,24 +1880,24 @@ const Le = (n, t) => n.guid === "general" || n.guid === "insights" ? !0 : n.flag
1875
1880
  label: a.topics[l]
1876
1881
  }))
1877
1882
  };
1878
- Le(o, n) && e.push(o);
1883
+ xe(o, n) && e.push(o);
1879
1884
  }
1880
1885
  return e;
1881
1886
  };
1882
- class $e {
1887
+ class ve {
1883
1888
  alert = { message: "", severity: void 0 };
1884
1889
  api = new et("/", "");
1885
1890
  appConfig;
1886
1891
  globalStore;
1887
1892
  isLoading = !1;
1888
1893
  constructor(t) {
1889
- this.globalStore = t, this.api = new et(t.endpoint, t.sessionToken, t.onError), d(this);
1894
+ this.globalStore = t, this.api = new et(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
1890
1895
  }
1891
1896
  createSupportTicket = async (t) => {
1892
1897
  try {
1893
1898
  this.isLoading = !0, await this.api.createSupportTicket(t), this.setAlert(this.copy.request_support_submit_success_message, "success");
1894
1899
  } catch (e) {
1895
- this.setAlert(this.copy.request_support_submit_failure_message, "error"), console.error("Error occurred while submitting:", e);
1900
+ this.setAlert(this.copy.request_support_submit_failure_message, "error"), console.error("Error occurred while submitting:", e), this.globalStore.captureException(e, { store: "HelpStore" });
1896
1901
  } finally {
1897
1902
  this.isLoading = !1;
1898
1903
  }
@@ -1905,7 +1910,7 @@ class $e {
1905
1910
  const { client_communication_profile: t, client_profile: e } = this.globalStore.appDataStore.appData, {
1906
1911
  help: { category_list: s }
1907
1912
  } = this.globalStore.copyStore.copy;
1908
- return ve(
1913
+ return Le(
1909
1914
  {
1910
1915
  ...t,
1911
1916
  ...e,
@@ -1923,7 +1928,7 @@ class Ge {
1923
1928
  globalStore;
1924
1929
  showConnectionsWidget = !1;
1925
1930
  constructor(t) {
1926
- this.globalStore = t, this.api = new st(t.endpoint, t.sessionToken, t.onError), d(this);
1931
+ this.globalStore = t, this.api = new st(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
1927
1932
  }
1928
1933
  get analysisChartData() {
1929
1934
  return Vt(zt(this.visibleHoldings), this.analysisType);
@@ -1947,7 +1952,7 @@ class Ge {
1947
1952
  const t = await this.api.getHoldings();
1948
1953
  this.setHoldings(t);
1949
1954
  } catch (t) {
1950
- console.error(`Error occured while getting holdings: ${t}`);
1955
+ console.error(`Error occured while getting holdings: ${t}`), this.globalStore.captureException(t, { store: "HoldingStore" });
1951
1956
  }
1952
1957
  };
1953
1958
  setAnalysisType = (t) => {
@@ -1964,18 +1969,18 @@ class Ge {
1964
1969
  });
1965
1970
  }
1966
1971
  } catch (e) {
1967
- console.error(`Error occurred while updating holding: ${e}`);
1972
+ console.error(`Error occurred while updating holding: ${e}`), this.globalStore.captureException(e, { store: "HoldingStore" });
1968
1973
  }
1969
1974
  };
1970
1975
  }
1971
- class Ne {
1976
+ class $e {
1972
1977
  globalStore;
1973
1978
  api = new at("/", "");
1974
1979
  merchant = null;
1975
1980
  merchants = [];
1976
1981
  isLoading = !1;
1977
1982
  constructor(t) {
1978
- this.globalStore = t, this.api = new at(t.endpoint, t.sessionToken, t.onError), d(this);
1983
+ this.globalStore = t, this.api = new at(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
1979
1984
  }
1980
1985
  loadMerchants = async (t = "") => {
1981
1986
  this.isLoading = !0;
@@ -1989,9 +1994,9 @@ class Ne {
1989
1994
  c(() => this.merchant = e);
1990
1995
  };
1991
1996
  }
1992
- class Be {
1997
+ class Ne {
1993
1998
  globalStore;
1994
- accountsApi = new B("/", "");
1999
+ accountsApi = new N("/", "");
1995
2000
  monthlyAccountBalances = [];
1996
2001
  monthlyAccountBalancesLoaded = !1;
1997
2002
  hoveredIndex = -1;
@@ -1999,11 +2004,12 @@ class Be {
1999
2004
  timeframe = 6;
2000
2005
  // default timeframe is 6 months
2001
2006
  constructor(t) {
2002
- this.globalStore = t, this.accountsApi = new B(
2007
+ this.globalStore = t, this.accountsApi = new N(
2003
2008
  t.endpoint,
2004
2009
  t.sessionToken,
2005
- t.onError
2006
- ), d(this);
2010
+ t.onError,
2011
+ t.onCaptureException
2012
+ ), h(this);
2007
2013
  }
2008
2014
  get isNetWorthDataLoaded() {
2009
2015
  return this.globalStore.accountStore.isAccountDataLoaded && this.monthlyAccountBalancesLoaded;
@@ -2056,7 +2062,7 @@ class Be {
2056
2062
  try {
2057
2063
  return await this.accountsApi.getMonthlyAccountBalances(t);
2058
2064
  } catch (e) {
2059
- return console.error(`Error occured while fetching monthly account balances: ${e}`), [];
2065
+ return console.error(`Error occured while fetching monthly account balances: ${e}`), this.globalStore.captureException(e, { store: "NetWorthStore" }), [];
2060
2066
  }
2061
2067
  };
2062
2068
  setHoveredIndex = (t) => this.hoveredIndex = t;
@@ -2066,7 +2072,7 @@ class Be {
2066
2072
  setSelectedIndex = (t) => this.selectedIndex = t;
2067
2073
  setTimeframe = (t) => this.timeframe = t;
2068
2074
  }
2069
- class xe {
2075
+ class Be {
2070
2076
  globalStore;
2071
2077
  api = new nt("/", "");
2072
2078
  isLoading = !0;
@@ -2076,8 +2082,9 @@ class xe {
2076
2082
  this.globalStore = t, this.api = new nt(
2077
2083
  t.endpoint,
2078
2084
  t.sessionToken,
2079
- t.onError
2080
- ), d(this, { notifications: Tt });
2085
+ t.onError,
2086
+ t.onCaptureException
2087
+ ), h(this, { notifications: Tt });
2081
2088
  }
2082
2089
  // Used in Money Dashboard
2083
2090
  get newNotifications() {
@@ -2095,7 +2102,7 @@ class xe {
2095
2102
  const t = await this.api.getNotifications();
2096
2103
  this.setNotifications(t);
2097
2104
  } catch (t) {
2098
- console.error(`Error occurred while loading notifications: ${t}`);
2105
+ console.error(`Error occurred while loading notifications: ${t}`), this.globalStore.captureException(t, { store: "NotificationStore" });
2099
2106
  } finally {
2100
2107
  c(() => {
2101
2108
  this.isLoading = !1;
@@ -2109,14 +2116,14 @@ class xe {
2109
2116
  t.has_been_viewed = !0, await this.api.updateNotification(t);
2110
2117
  };
2111
2118
  }
2112
- const dt = (n, t) => gt(t.expectedDate, n), A = (n, t) => n + t.amount;
2119
+ const ht = (n, t) => gt(t.expectedDate, n), A = (n, t) => n + t.amount;
2113
2120
  class Me {
2114
2121
  globalStore;
2115
2122
  api = new it("/", "");
2116
2123
  repeatingTransactions = [];
2117
2124
  isDataLoaded = !1;
2118
2125
  selectedDay;
2119
- dateRange = { start: E(y()), end: T(y()) };
2126
+ dateRange = { start: C(y()), end: T(y()) };
2120
2127
  selectedRepeatingTransactionGuid = null;
2121
2128
  selectedRecurrence = null;
2122
2129
  alert = { message: "", severity: void 0 };
@@ -2125,7 +2132,7 @@ class Me {
2125
2132
  t.endpoint,
2126
2133
  t.sessionToken,
2127
2134
  t.onError
2128
- ), d(this, {
2135
+ ), h(this, {
2129
2136
  recurrencesForRange: !1,
2130
2137
  upcomingExpensesForRange: !1,
2131
2138
  upcomingIncomeForRange: !1,
@@ -2158,13 +2165,13 @@ class Me {
2158
2165
  * Returns the upcoming expense recurrences scoped to the supplied date range.
2159
2166
  */
2160
2167
  upcomingExpensesForRange = (t) => this.recurrencesForRange(t).filter(
2161
- (e) => e.type === L.Expense && e.status === f.Upcoming
2168
+ (e) => e.type === x.Expense && e.status === f.Upcoming
2162
2169
  );
2163
2170
  /**
2164
2171
  * Returns the income recurrences scoped to the supplied date range.
2165
2172
  */
2166
2173
  incomeForRange = (t) => this.recurrencesForRange(t).filter(
2167
- (e) => e.type === L.Income
2174
+ (e) => e.type === x.Income
2168
2175
  );
2169
2176
  /**
2170
2177
  * Returns the upcoming income recurrences scoped to the supplied date range.
@@ -2206,7 +2213,7 @@ class Me {
2206
2213
  */
2207
2214
  get expenses() {
2208
2215
  return this.recurrences.filter(
2209
- (t) => t.type === L.Expense
2216
+ (t) => t.type === x.Expense
2210
2217
  );
2211
2218
  }
2212
2219
  /**
@@ -2222,7 +2229,7 @@ class Me {
2222
2229
  */
2223
2230
  get income() {
2224
2231
  return this.recurrences.filter(
2225
- (t) => t.type === L.Income
2232
+ (t) => t.type === x.Income
2226
2233
  );
2227
2234
  }
2228
2235
  /**
@@ -2241,7 +2248,7 @@ class Me {
2241
2248
  */
2242
2249
  get currentMonthExpenses() {
2243
2250
  return this.expenses.filter(
2244
- (t) => dt(this.dateRange, t)
2251
+ (t) => ht(this.dateRange, t)
2245
2252
  );
2246
2253
  }
2247
2254
  /**
@@ -2249,7 +2256,7 @@ class Me {
2249
2256
  */
2250
2257
  get currentMonthIncome() {
2251
2258
  return this.income.filter(
2252
- (t) => dt(this.dateRange, t)
2259
+ (t) => ht(this.dateRange, t)
2253
2260
  );
2254
2261
  }
2255
2262
  /**
@@ -2339,7 +2346,7 @@ class Me {
2339
2346
  const t = await this.api.getRepeatingTransactions();
2340
2347
  this.setRepeatingTransactions(t);
2341
2348
  } catch (t) {
2342
- console.error(`Error occurred while getting repeating transactions: ${t}`);
2349
+ console.error(`Error occurred while getting repeating transactions: ${t}`), this.globalStore.captureException(t, { store: "RecurringTransactionsStore" });
2343
2350
  }
2344
2351
  };
2345
2352
  /**
@@ -2364,7 +2371,7 @@ class Me {
2364
2371
  ];
2365
2372
  });
2366
2373
  } catch (s) {
2367
- console.error(`Error occurred while adding repeating transaction: ${s}`);
2374
+ console.error(`Error occurred while adding repeating transaction: ${s}`), this.globalStore.captureException(s, { store: "RecurringTransactionsStore" });
2368
2375
  }
2369
2376
  };
2370
2377
  /**
@@ -2379,7 +2386,7 @@ class Me {
2379
2386
  ];
2380
2387
  });
2381
2388
  } catch (e) {
2382
- console.error(`Error occurred while deleting repeating transaction: ${e}`);
2389
+ console.error(`Error occurred while deleting repeating transaction: ${e}`), this.globalStore.captureException(e, { store: "RecurringTransactionsStore" });
2383
2390
  }
2384
2391
  };
2385
2392
  /**
@@ -2404,7 +2411,7 @@ class Me {
2404
2411
  ];
2405
2412
  });
2406
2413
  } catch (e) {
2407
- console.error(`Error occurred while updating repeating transaction: ${e}`);
2414
+ console.error(`Error occurred while updating repeating transaction: ${e}`), this.globalStore.captureException(e, { store: "RecurringTransactionsStore" });
2408
2415
  }
2409
2416
  };
2410
2417
  /**
@@ -2419,7 +2426,7 @@ class Me {
2419
2426
  repeating_transaction_guid: t
2420
2427
  }), await this.loadRepeatingTransactions(), this.setSelectedRecurrence(null), this.setAlert(this.copy.link_transaction_success, "success");
2421
2428
  } catch (s) {
2422
- console.error(`Error occurred while marking recurrence as paid: ${s}`), this.setAlert(this.copy.link_transaction_error, "error");
2429
+ 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
2430
  }
2424
2431
  };
2425
2432
  /**
@@ -2433,14 +2440,14 @@ class Me {
2433
2440
  repeating_transaction_guid: null
2434
2441
  }), await this.loadRepeatingTransactions(), this.setSelectedRecurrence(null), this.setAlert(this.copy.unlink_transaction_success, "success");
2435
2442
  } catch (e) {
2436
- console.error(`Error occurred while marking recurrence as unpaid: ${e}`), this.setAlert(this.copy.unlink_transaction_error, "error");
2443
+ 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
2444
  }
2438
2445
  };
2439
2446
  setAlert = (t, e = void 0) => this.alert = { message: t, severity: e };
2440
2447
  }
2441
- const ht = "PARENT-ENTITY", Oe = (n, t) => ({
2442
- [N.BudgetExceeded]: t.notification_budget_exceeded,
2443
- [N.BudgetOffTarget]: t.notification_budget_off_target,
2448
+ const dt = "PARENT-ENTITY", Oe = (n, t) => ({
2449
+ [$.BudgetExceeded]: t.notification_budget_exceeded,
2450
+ [$.BudgetOffTarget]: t.notification_budget_off_target,
2444
2451
  [_.DebtPaymentReminder]: t.notification_debt_payment_reminder,
2445
2452
  [_.AccountBalanceLow]: t.notification_low_balance,
2446
2453
  [_.AccountDepositLargePosted]: t.notification_large_deposit,
@@ -2475,21 +2482,21 @@ const ht = "PARENT-ENTITY", Oe = (n, t) => ({
2475
2482
  const r = [], {
2476
2483
  email_notifications_enabled: l,
2477
2484
  sms_notifications_enabled: p,
2478
- push_notifications_enabled: b
2485
+ push_notifications_enabled: w
2479
2486
  } = t, {
2480
2487
  opted_out_of_email_notifications: _t,
2481
2488
  opted_out_of_sms_notifications: ft,
2482
2489
  opted_out_of_push_notifications: yt
2483
2490
  } = 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)
2491
+ for (const E of s.filter((R) => R.entity_guid === dt)) {
2492
+ const R = Oe(E.notification_type, e), St = s.filter(
2493
+ (I) => I.entity_guid !== dt && I.notification_type === E.notification_type && n.some((M) => M.guid === I.entity_guid)
2487
2494
  ), 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),
2495
+ 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({
2496
+ ...E,
2497
+ children: St.map((I) => ({
2498
+ ...I,
2499
+ account: n.find((M) => M.guid === I.entity_guid),
2493
2500
  label: R
2494
2501
  })),
2495
2502
  deliveryMethodsLabel: D.join(", "),
@@ -2501,18 +2508,19 @@ const ht = "PARENT-ENTITY", Oe = (n, t) => ({
2501
2508
  class Fe {
2502
2509
  globalStore;
2503
2510
  api = new rt("/", "");
2504
- transactionApi = new x("/", "");
2511
+ transactionApi = new B("/", "");
2505
2512
  alert = { message: "", severity: void 0 };
2506
2513
  devices = [];
2507
2514
  notificationProfiles = [];
2508
2515
  selectedRule = void 0;
2509
2516
  transactionRules = [];
2510
2517
  constructor(t) {
2511
- this.globalStore = t, this.api = new rt(t.endpoint, t.sessionToken, t.onError), this.transactionApi = new x(
2518
+ this.globalStore = t, this.api = new rt(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), this.transactionApi = new B(
2512
2519
  t.endpoint,
2513
2520
  t.sessionToken,
2514
- t.onError
2515
- ), d(this);
2521
+ t.onError,
2522
+ t.onCaptureException
2523
+ ), h(this);
2516
2524
  }
2517
2525
  get accountProfiles() {
2518
2526
  const t = this.globalStore.appDataStore.clientCommunicationProfile;
@@ -2523,7 +2531,7 @@ class Fe {
2523
2531
  get budgetProfiles() {
2524
2532
  const t = this.globalStore.appDataStore.clientCommunicationProfile;
2525
2533
  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
2534
+ (e) => e.notification_type === $.BudgetExceeded && t.budget_exceeded_notifications_enabled || e.notification_type === $.BudgetOffTarget && t.budget_off_target_notifications_enabled
2527
2535
  );
2528
2536
  }
2529
2537
  get insightsProfiles() {
@@ -2557,22 +2565,22 @@ class Fe {
2557
2565
  return e >= 0 && c(() => {
2558
2566
  this.devices.splice(e, 1);
2559
2567
  }), { success: !0 };
2560
- } catch {
2561
- return console.error(`Error deleting device: ${t}`), { success: !1 };
2568
+ } catch (e) {
2569
+ return console.error(`Error deleting device: ${t}`), this.globalStore.captureException(e, { store: "SettingsStore" }), { success: !1 };
2562
2570
  }
2563
2571
  };
2564
2572
  deleteTransactionRule = async () => {
2565
2573
  this.selectedRule && this.transactionApi.removeTransactionRule(this.selectedRule?.guid).then(() => {
2566
2574
  this.setAlert(this.copy.delete_rule_success, "success"), this.loadTransactionRules();
2567
- }).catch(() => {
2568
- this.setAlert(this.copy.delete_rule_error, "error");
2575
+ }).catch((t) => {
2576
+ this.globalStore.captureException(t, { store: "SettingsStore" }), this.setAlert(this.copy.delete_rule_error, "error");
2569
2577
  });
2570
2578
  };
2571
2579
  generateDeviceToken = async () => {
2572
2580
  try {
2573
2581
  return await this.api.generateDeviceToken();
2574
2582
  } catch (t) {
2575
- console.error(`Error generating device token: ${t}`);
2583
+ console.error(`Error generating device token: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" });
2576
2584
  }
2577
2585
  };
2578
2586
  loadDevices = async () => {
@@ -2582,7 +2590,7 @@ class Fe {
2582
2590
  this.devices = t;
2583
2591
  });
2584
2592
  } catch (t) {
2585
- console.error(`Error loading devices: ${t}`);
2593
+ console.error(`Error loading devices: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" });
2586
2594
  }
2587
2595
  };
2588
2596
  loadNotificationProfiles = async () => {
@@ -2592,7 +2600,7 @@ class Fe {
2592
2600
  this.notificationProfiles = t;
2593
2601
  });
2594
2602
  } catch (t) {
2595
- console.error(`Error loading notification profiles: ${t}`);
2603
+ console.error(`Error loading notification profiles: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" });
2596
2604
  }
2597
2605
  };
2598
2606
  loadTransactionRules = async () => {
@@ -2602,21 +2610,21 @@ class Fe {
2602
2610
  this.transactionRules = t;
2603
2611
  });
2604
2612
  } catch (t) {
2605
- console.error(`Error loading transaction rules: ${t}`);
2613
+ console.error(`Error loading transaction rules: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" });
2606
2614
  }
2607
2615
  };
2608
2616
  sendEmailVerification = async () => {
2609
2617
  try {
2610
2618
  await this.api.sendEmailVerification(), this.setAlert(this.copy.verification_sent_success, "success");
2611
2619
  } catch (t) {
2612
- console.error(`Error sending email verification: ${t}`), this.setAlert(this.copy.verification_sent_error, "error");
2620
+ console.error(`Error sending email verification: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" }), this.setAlert(this.copy.verification_sent_error, "error");
2613
2621
  }
2614
2622
  };
2615
2623
  sendPhoneVerification = async () => {
2616
2624
  try {
2617
2625
  await this.api.sendPhoneVerification(), this.setAlert(this.copy.verification_sent_success, "success");
2618
2626
  } catch (t) {
2619
- console.error(`Error sending phone verification: ${t}`), this.setAlert(this.copy.verification_sent_error, "error");
2627
+ console.error(`Error sending phone verification: ${t}`), this.globalStore.captureException(t, { store: "SettingsStore" }), this.setAlert(this.copy.verification_sent_error, "error");
2620
2628
  }
2621
2629
  };
2622
2630
  setAlert = (t, e = void 0) => this.alert = { message: t, severity: e };
@@ -2630,7 +2638,7 @@ class Fe {
2630
2638
  this.devices[s] = e;
2631
2639
  }), { success: !0 };
2632
2640
  } catch (e) {
2633
- return console.error(`Error updating device: ${e}`), { success: !1 };
2641
+ return console.error(`Error updating device: ${e}`), this.globalStore.captureException(e, { store: "SettingsStore" }), { success: !1 };
2634
2642
  }
2635
2643
  };
2636
2644
  updateNotificationProfile = async (t) => {
@@ -2640,7 +2648,7 @@ class Fe {
2640
2648
  this.notificationProfiles[s] = e;
2641
2649
  });
2642
2650
  } catch (e) {
2643
- console.error(`Error updating notification profile: ${e}`);
2651
+ console.error(`Error updating notification profile: ${e}`), this.globalStore.captureException(e, { store: "SettingsStore" });
2644
2652
  }
2645
2653
  };
2646
2654
  updateRuleCategory = async (t) => {
@@ -2651,15 +2659,15 @@ class Fe {
2651
2659
  updateRulePayee = async (t) => {
2652
2660
  this.transactionApi.updateTransactionRule(t).then(() => {
2653
2661
  this.setAlert(this.copy.edit_payee_success, "success"), this.loadTransactionRules();
2654
- }).catch(() => {
2655
- this.setAlert(this.copy.edit_payee_error, "error");
2662
+ }).catch((e) => {
2663
+ this.globalStore.captureException(e, { store: "SettingsStore" }), this.setAlert(this.copy.edit_payee_error, "error");
2656
2664
  });
2657
2665
  };
2658
2666
  updateUser = async (t) => {
2659
2667
  this.globalStore.userStore.updateUser(t).then(() => {
2660
2668
  this.setAlert(this.copy.information_updated_success, "success");
2661
- }).catch(() => {
2662
- this.setAlert(this.copy.information_updated_error, "error");
2669
+ }).catch((e) => {
2670
+ this.globalStore.captureException(e, { store: "SettingsStore" }), this.setAlert(this.copy.information_updated_error, "error");
2663
2671
  });
2664
2672
  };
2665
2673
  updateUserCommunicationProfile = async (t) => {
@@ -2667,7 +2675,7 @@ class Fe {
2667
2675
  const e = await this.api.updateUserCommunicationProfile(t);
2668
2676
  this.globalStore.appDataStore.setUserCommunicationProfile(e);
2669
2677
  } catch (e) {
2670
- console.error(`Error occurred while updating user communication profile: ${e}`);
2678
+ console.error(`Error occurred while updating user communication profile: ${e}`), this.globalStore.captureException(e, { store: "SettingsStore" });
2671
2679
  }
2672
2680
  };
2673
2681
  verifyPhoneToken = async (t) => {
@@ -2677,15 +2685,15 @@ class Fe {
2677
2685
  throw new Error();
2678
2686
  this.setAlert(this.copy.verified_phone_success, "success");
2679
2687
  } catch (e) {
2680
- console.error(`Error verifying phone token: ${e}`), this.setAlert(this.copy.verified_phone_error, "error");
2688
+ console.error(`Error verifying phone token: ${e}`), this.globalStore.captureException(e, { store: "SettingsStore" }), this.setAlert(this.copy.verified_phone_error, "error");
2681
2689
  }
2682
2690
  };
2683
2691
  }
2684
2692
  class Ue {
2685
2693
  globalStore;
2686
2694
  uiStore;
2687
- api = new x("/", "");
2688
- beatApi = new $("/", "");
2695
+ api = new B("/", "");
2696
+ beatApi = new v("/", "");
2689
2697
  associatedBeats = [];
2690
2698
  associatedBeatsLoaded = !1;
2691
2699
  associatedBeatsLoading = !1;
@@ -2707,17 +2715,18 @@ class Ue {
2707
2715
  isLoading = !0;
2708
2716
  alert = "";
2709
2717
  sortColumn = Gt.DATE;
2710
- sortDirection = Nt.DESC;
2718
+ sortDirection = $t.DESC;
2711
2719
  constructor(t) {
2712
- this.globalStore = t, this.uiStore = new ke(), this.api = new x(
2720
+ this.globalStore = t, this.uiStore = new ke(), this.api = new B(
2713
2721
  t.endpoint,
2714
2722
  t.sessionToken,
2715
- t.onError
2716
- ), this.beatApi = new $(t.endpoint, t.sessionToken, t.onError), d(this);
2723
+ t.onError,
2724
+ t.onCaptureException
2725
+ ), this.beatApi = new v(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
2717
2726
  }
2718
2727
  loadTransactionData = async () => {
2719
2728
  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())),
2729
+ this.loadAssociatedBeats(C(/* @__PURE__ */ new Date())),
2721
2730
  this.loadTags(),
2722
2731
  this.loadTaggings(),
2723
2732
  this.loadTransactionRules(),
@@ -2729,7 +2738,7 @@ class Ue {
2729
2738
  return this.associatedBeatsLoaded && this.tagsLoaded && this.taggingsLoaded && this.transactionRulesLoaded && this.transactionsLoaded;
2730
2739
  }
2731
2740
  get detailedTransactions() {
2732
- return this.isTransactionDataLoaded ? Bt(
2741
+ return this.isTransactionDataLoaded ? Nt(
2733
2742
  this.transactions,
2734
2743
  this.globalStore.accountStore.visibleAccounts,
2735
2744
  this.globalStore.categoryStore.categories,
@@ -2737,7 +2746,7 @@ class Ue {
2737
2746
  ) : [];
2738
2747
  }
2739
2748
  get sortedTransactions() {
2740
- return xt(
2749
+ return Bt(
2741
2750
  this.filter,
2742
2751
  this.uiStore.expandedSplits,
2743
2752
  this.sortColumn,
@@ -2806,11 +2815,7 @@ class Ue {
2806
2815
  const s = await this.beatApi.getBeatsWithAssociatedTransaction(e);
2807
2816
  this.setAssociatedBeats(s);
2808
2817
  } catch (s) {
2809
- console.error(`Error occurred while loading associated beats: ${s}`);
2810
- } finally {
2811
- c(() => {
2812
- this.associatedBeatsLoading = !1;
2813
- });
2818
+ console.error(`Error occurred while loading associated beats: ${s}`), this.globalStore.captureException(s, { store: "TransactionStore" });
2814
2819
  }
2815
2820
  };
2816
2821
  loadTags = async () => {
@@ -2820,11 +2825,7 @@ class Ue {
2820
2825
  const t = await this.api.getTags();
2821
2826
  this.setTags(t);
2822
2827
  } catch (t) {
2823
- console.error(`Error occurred while loading tags: ${t}`);
2824
- } finally {
2825
- c(() => {
2826
- this.tagsLoading = !1;
2827
- });
2828
+ console.error(`Error occurred while loading tags: ${t}`), this.globalStore.captureException(t, { store: "TransactionStore" });
2828
2829
  }
2829
2830
  }
2830
2831
  };
@@ -2835,47 +2836,29 @@ class Ue {
2835
2836
  const t = await this.api.getTaggings();
2836
2837
  this.setTaggings(t);
2837
2838
  } catch (t) {
2838
- console.error(`Error occurred while loading taggings: ${t}`);
2839
- } finally {
2840
- c(() => {
2841
- this.taggingsLoading = !1;
2842
- });
2839
+ console.error(`Error occurred while loading taggings: ${t}`), this.globalStore.captureException(t, { store: "TransactionStore" });
2843
2840
  }
2844
2841
  }
2845
2842
  };
2846
2843
  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
- }
2844
+ if (this.transactionRulesLoading) return;
2845
+ this.transactionRulesLoading = !0;
2846
+ const t = await this.api.getTransactionRules();
2847
+ this.setTransactionRules(t);
2860
2848
  };
2861
2849
  loadTransactions = async (t = this.cachedStartDate) => {
2862
2850
  if (!this.transactionsLoading) {
2863
- this.setIsLoading(!0), this.transactionsLoading = !0;
2851
+ this.setIsLoading(!0), this.transactionsLoading = !0, this.transactions = [];
2864
2852
  try {
2865
2853
  const e = await this.api.getTransactionsByDateRange(
2866
- m(t),
2867
- m(q())
2854
+ S(t),
2855
+ S(q())
2868
2856
  );
2869
- this.setTransactions(e), c(() => {
2870
- this.cachedStartDate = t;
2871
- });
2857
+ this.setTransactions(e);
2872
2858
  } catch (e) {
2873
- console.error(`Error occurred while loading transactions: ${e}`);
2874
- } finally {
2875
- c(() => {
2876
- this.transactionsLoading = !1;
2877
- }), this.setIsLoading(!1);
2859
+ console.error(`Error occurred while loading transactions: ${e}`), this.globalStore.captureException(e, { store: "TransactionStore" });
2878
2860
  }
2861
+ this.setIsLoading(!1);
2879
2862
  }
2880
2863
  };
2881
2864
  modifyTransactionByAccountGuid = (t, e) => {
@@ -2898,7 +2881,9 @@ class Ue {
2898
2881
  }
2899
2882
  };
2900
2883
  setFilter = (t) => {
2901
- this.filter = t, t.dateRange && H(t.dateRange.start, this.cachedStartDate) && this.loadTransactions(t.dateRange.start);
2884
+ this.filter = t, t.dateRange && H(t.dateRange.start, this.cachedStartDate) && this.loadTransactions(t.dateRange.start).then(() => {
2885
+ t.dateRange && (this.cachedStartDate = t.dateRange.start);
2886
+ });
2902
2887
  };
2903
2888
  setIsLoading = (t) => this.isLoading = t;
2904
2889
  splitTransaction = async (t, e) => {
@@ -2965,17 +2950,17 @@ class Ue {
2965
2950
  loadEmbeddedInstanceTransactions = async (t) => {
2966
2951
  try {
2967
2952
  const e = await this.api.getTransactionsByDateRange(
2968
- m(t),
2969
- m(q())
2953
+ S(t),
2954
+ S(q())
2970
2955
  );
2971
2956
  this.cachedStartDate = t, this.transactions = e;
2972
2957
  } catch (e) {
2973
- console.error(`Error occurred while loading embedded instance transactions: ${e}`);
2958
+ console.error(`Error occurred while loading embedded instance transactions: ${e}`), this.globalStore.captureException(e, { store: "TransactionStore" });
2974
2959
  }
2975
2960
  };
2976
2961
  }
2977
2962
  class ke {
2978
- beginDate = E(/* @__PURE__ */ new Date());
2963
+ beginDate = C(/* @__PURE__ */ new Date());
2979
2964
  endDate = T(/* @__PURE__ */ new Date());
2980
2965
  expandedSplits = [];
2981
2966
  height = 550;
@@ -2987,7 +2972,7 @@ class ke {
2987
2972
  isAmountValid = !1;
2988
2973
  showInsights = !1;
2989
2974
  constructor() {
2990
- d(this);
2975
+ h(this);
2991
2976
  }
2992
2977
  setDateRange = (t, e) => {
2993
2978
  this.beginDate = t, this.endDate = e;
@@ -3022,7 +3007,7 @@ class He {
3022
3007
  this.globalStore = t, this.selectedDateRange = {
3023
3008
  start: se(T(G(/* @__PURE__ */ new Date(), 6)), 1),
3024
3009
  end: T(/* @__PURE__ */ new Date())
3025
- }, d(this);
3010
+ }, h(this);
3026
3011
  }
3027
3012
  setSelectedCategoryData = (t) => {
3028
3013
  this.selectedCategoryData = t;
@@ -3064,7 +3049,7 @@ class We {
3064
3049
  userFeatures = [];
3065
3050
  userFeaturesLoaded = !1;
3066
3051
  constructor(t) {
3067
- this.globalStore = t, this.api = new ot(t.endpoint, t.sessionToken, t.onError), d(this);
3052
+ this.globalStore = t, this.api = new ot(t.endpoint, t.sessionToken, t.onError, t.onCaptureException), h(this);
3068
3053
  }
3069
3054
  get userProfile() {
3070
3055
  return this.globalStore.appDataStore.userProfile;
@@ -3080,7 +3065,7 @@ class We {
3080
3065
  const t = await this.api.getUserFeatures();
3081
3066
  this.setUserFeatures(t);
3082
3067
  } catch (t) {
3083
- console.error(`Error occurred while loading user features: ${t}`);
3068
+ console.error(`Error occurred while loading user features: ${t}`), this.globalStore.captureException(t, { store: "UserStore" });
3084
3069
  }
3085
3070
  };
3086
3071
  updateUser = async (t) => {
@@ -3088,7 +3073,7 @@ class We {
3088
3073
  const e = await this.api.updateUser(t);
3089
3074
  this.globalStore.appDataStore.setUser(e);
3090
3075
  } catch (e) {
3091
- console.error(`Error updating User: ${e}`);
3076
+ console.error(`Error updating User: ${e}`), this.globalStore.captureException(e, { store: "UserStore" });
3092
3077
  }
3093
3078
  };
3094
3079
  updateUserProfile = async (t) => {
@@ -3096,12 +3081,12 @@ class We {
3096
3081
  const e = await this.api.updateUserProfile(t);
3097
3082
  this.globalStore.appDataStore.setUserProfile(e);
3098
3083
  } catch (e) {
3099
- console.error(`Error occurred while updating user profile: ${e}`);
3084
+ console.error(`Error occurred while updating user profile: ${e}`), this.globalStore.captureException(e, { store: "UserStore" });
3100
3085
  }
3101
3086
  };
3102
3087
  }
3103
3088
  export {
3104
- B as A,
3089
+ N as A,
3105
3090
  j as B,
3106
3091
  fe as C,
3107
3092
  Ae as D,
@@ -3109,37 +3094,37 @@ export {
3109
3094
  Re as G,
3110
3095
  et as H,
3111
3096
  at as M,
3112
- Be as N,
3097
+ Ne as N,
3113
3098
  Me as R,
3114
3099
  rt as S,
3115
- x as T,
3100
+ B as T,
3116
3101
  ot as U,
3117
3102
  ct as W,
3118
3103
  ce as a,
3119
- he as b,
3104
+ de as b,
3120
3105
  Y as c,
3121
- de as d,
3106
+ he as d,
3122
3107
  pe as e,
3123
3108
  X as f,
3124
3109
  _e as g,
3125
3110
  J as h,
3126
- me as i,
3111
+ Se as i,
3127
3112
  Te as j,
3128
- Ce as k,
3129
- Ns as l,
3130
- Ee as m,
3113
+ Ie as k,
3114
+ $s as l,
3115
+ Ce as m,
3131
3116
  tt as n,
3132
3117
  De as o,
3133
- $e as p,
3118
+ ve as p,
3134
3119
  st as q,
3135
3120
  Ge as r,
3136
- Ne as s,
3121
+ $e as s,
3137
3122
  nt as t,
3138
- xe as u,
3123
+ Be as u,
3139
3124
  it as v,
3140
3125
  Fe as w,
3141
3126
  Ue as x,
3142
3127
  He as y,
3143
3128
  We as z
3144
3129
  };
3145
- //# sourceMappingURL=UserStore-E5WvBXaY.mjs.map
3130
+ //# sourceMappingURL=UserStore-DzGgxsKk.mjs.map