@mx-cartographer/experiences 9.0.0-alpha.mega1 → 9.0.0

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 (773) hide show
  1. package/CHANGELOG.md +676 -9
  2. package/README.md +216 -47
  3. package/dist/{Account-CMjOp7S2.mjs → Account-BaJmiJAG.mjs} +4 -4
  4. package/dist/{Account-BIKn4XEZ.mjs → Account-BxHMlV9R.mjs} +1 -1
  5. package/dist/AccountDetailsHeader-DIysk_4w.mjs +95 -0
  6. package/dist/AccountFields-mwJ8NXsX.mjs +141 -0
  7. package/dist/AccountListItem-BDXHs4tV.mjs +94 -0
  8. package/dist/AccountUtils-T5_Odvos.mjs +27 -0
  9. package/dist/Accounts-CseLC3lL.mjs +5 -0
  10. package/dist/Analytics-CkYXKvco.mjs +53 -0
  11. package/dist/Analytics-CzGzz_sE.mjs +136 -0
  12. package/dist/ApiEndpoints-DXwIYNUV.mjs +49 -0
  13. package/dist/BudgetUtil-Bg2AQJpQ.mjs +74 -0
  14. package/dist/{Category-Ccoew_sA.mjs → Category-DEKZGLYe.mjs} +3 -3
  15. package/dist/{CategorySelectorDrawer-C4aZYP4N.mjs → CategorySelectorDrawer-CmaDLhnf.mjs} +131 -119
  16. package/dist/Connect-Dk6GZEsA.mjs +39 -0
  17. package/dist/ConnectCard-CCep7Zqe.mjs +54 -0
  18. package/dist/ConnectDrawer-Cnjr3Ddg.mjs +58 -0
  19. package/dist/{ConnectionsDrawer-BExzgE16.mjs → ConnectionsDrawer-CtfPXk0M.mjs} +13 -12
  20. package/dist/CurrencyDialog-DumQCTPO.mjs +373 -0
  21. package/dist/CurrencyInput-adTIRtL3.mjs +87 -0
  22. package/dist/{CurrencyText-C-85TnUF.mjs → CurrencyText-CCbE6MmF.mjs} +1 -1
  23. package/dist/DateFormats-HudZ3Bjs.mjs +64 -0
  24. package/dist/DateUtil-Bhq59ZVg.mjs +58 -0
  25. package/dist/DebtUtils-DD3186U-.mjs +153 -0
  26. package/dist/Dialog-CwWc0AbH.mjs +63 -0
  27. package/dist/Donut-SzzfZDHF.mjs +88 -0
  28. package/dist/{Drawer-Bet2ZPJo.mjs → Drawer-BXqqBMxg.mjs} +32 -34
  29. package/dist/EmbeddedCard-DPwJjqMH.mjs +856 -0
  30. package/dist/{EmptyState-DoxNUae-.mjs → EmptyState-CJUDc3kD.mjs} +21 -22
  31. package/dist/Error-Dogaw2jO.mjs +84 -0
  32. package/dist/ErrorBoundary-CsdOcnJ9.mjs +23 -0
  33. package/dist/{ExportCsvAction-oG_Mn66T.mjs → ExportCsvAction-Bw02ZJEj.mjs} +6 -6
  34. package/dist/GlobalAccountFilter-7Cg2-9A5.mjs +237 -0
  35. package/dist/GlobalCopyApi-wcnDUzMV.mjs +128 -0
  36. package/dist/GoalsUtil-C9EnLWvC.mjs +107 -0
  37. package/dist/HeaderCell-P8w6CmfO.mjs +6 -0
  38. package/dist/{Help-c-zHlDbv.mjs → Help-CkQTjORd.mjs} +6 -27
  39. package/dist/{Help-BW_ar-4B.mjs → Help-DJ8PrVHX.mjs} +594 -562
  40. package/dist/InformationTooltip-4su8bn1e.mjs +41 -0
  41. package/dist/{InvestmentUtil-jOyOgzIB.mjs → InvestmentUtil-BItV7uEs.mjs} +17 -17
  42. package/dist/LineChart-CejWS_rh.mjs +612 -0
  43. package/dist/{ListItemAction-Cbr3417C.mjs → ListItemAction-CwspSmQi.mjs} +26 -26
  44. package/dist/ListItemRow-kH1rn8Xu.mjs +67 -0
  45. package/dist/ListItemWrapper-B5r-YQQ_.mjs +42 -0
  46. package/dist/Loader-CxeBwuPG.mjs +21 -0
  47. package/dist/Localization-DnoVyBNK.mjs +38 -0
  48. package/dist/ManageIncome-B1JfqslT.mjs +595 -0
  49. package/dist/{MicroWidgetContainer-DSyYwRCU.mjs → MicroWidgetContainer-CfKdQfhi.mjs} +2 -2
  50. package/dist/MiniWidgetContainer-BdPiUU-u.mjs +66 -0
  51. package/dist/NetWorthUtils-DilGN1nW.mjs +95 -0
  52. package/dist/Notification-DTNYSd8P.mjs +7 -0
  53. package/dist/{NotificationSettings-e789PcRb.mjs → NotificationSettings-6p-h5phZ.mjs} +143 -142
  54. package/dist/NotificationUtils-BRGFTePr.mjs +23 -0
  55. package/dist/{NumberFormatting-DjTD0t3W.mjs → NumberFormatting--XMeeBfr.mjs} +2 -1
  56. package/dist/OriginalBalanceAction-CkJPnp2c.mjs +114 -0
  57. package/dist/{RecurringSettings-BpCUcE8w.mjs → RecurringSettings-cm6MK_aS.mjs} +4 -4
  58. package/dist/RecurringTransactionsUtil-B3rLEx_g.mjs +253 -0
  59. package/dist/{ResponsiveButton-C6KH8JH4.mjs → ResponsiveButton-CC9F_Ezk.mjs} +4 -4
  60. package/dist/SearchBox-Cpgu_gdO.mjs +50 -0
  61. package/dist/Select-BFt-HD-L.mjs +55 -0
  62. package/dist/SelectionBox-B4xELRgp.mjs +48 -0
  63. package/dist/{SingleSegmentDonut-PsRQPkmV.mjs → SingleSegmentDonut-7Uy6VEld.mjs} +1 -1
  64. package/dist/Sizes-DISGrlUg.mjs +6 -0
  65. package/dist/{SpendingData-B7NuTQ9s.mjs → SpendingData-PKlh8caU.mjs} +6 -6
  66. package/dist/SpendingLegend-5Ct_FZ8o.mjs +193 -0
  67. package/dist/ToggleListItem-Dl1lXNwj.mjs +91 -0
  68. package/dist/TransactionDetails-C3dlAzYf.mjs +1714 -0
  69. package/dist/TransactionUtils-BphBJBbU.mjs +234 -0
  70. package/dist/TrendsUtil-D9z3kIj_.mjs +69 -0
  71. package/dist/UserStore-CRpKQjpP.mjs +3002 -0
  72. package/dist/ViewMoreMicroCard-BD_MNc2z.mjs +1295 -0
  73. package/dist/WidgetContainer-DNuz_s7W.mjs +479 -0
  74. package/dist/accounts/AccountsMiniWidget.d.ts +1 -1
  75. package/dist/accounts/AccountsWidget.d.ts +1 -1
  76. package/dist/accounts/components/AccountListItem.d.ts +1 -1
  77. package/dist/accounts/components/AccountsListCompact.d.ts +1 -1
  78. package/dist/accounts/components/detailsdrawer/Accounts/AccountActionsRow.d.ts +1 -0
  79. package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsChart.d.ts +1 -1
  80. package/dist/accounts/hooks/useGetMergeableAccounts.d.ts +1 -1
  81. package/dist/accounts/hooks/useUiStore.d.ts +6 -1
  82. package/dist/accounts/index.d.ts +0 -2
  83. package/dist/accounts/index.es.js +628 -527
  84. package/dist/accounts/utils/AccountDetails.d.ts +1 -1
  85. package/dist/accounts/utils/AccountFields.d.ts +3 -3
  86. package/dist/analytics/index.es.js +93 -112
  87. package/dist/budgets/BubbleBudgetsMiniWidget.d.ts +1 -1
  88. package/dist/budgets/BubbleBudgetsWidget.d.ts +1 -1
  89. package/dist/budgets/components/BubbleChart.d.ts +1 -1
  90. package/dist/budgets/components/BudgetDetailsDrawerV2.d.ts +11 -0
  91. package/dist/budgets/components/MerchantBudgetDetailsDrawer.d.ts +17 -0
  92. package/dist/budgets/components/addbudget/RecalculateBudgetRow.d.ts +1 -1
  93. package/dist/budgets/components/addbudget/UnbudgetedRow.d.ts +1 -1
  94. package/dist/budgets/components/bubblechart/Bubble.d.ts +1 -1
  95. package/dist/budgets/components/budgetdetails/AddSubBudget.d.ts +1 -1
  96. package/dist/budgets/components/budgetdetails/BudgetDetails.d.ts +1 -1
  97. package/dist/budgets/components/budgetdetails/Header.d.ts +1 -1
  98. package/dist/budgets/components/budgetdetails/SubBudgetList.d.ts +1 -1
  99. package/dist/budgets/components/budgetlist/BudgetRow.d.ts +1 -1
  100. package/dist/budgets/components/budgetlist/SubBudgetRow.d.ts +1 -1
  101. package/dist/budgets/components/shared/BudgetDetailsTopSection.d.ts +13 -0
  102. package/dist/budgets/index.d.ts +2 -1
  103. package/dist/budgets/index.es.js +989 -813
  104. package/dist/budgets/utils/BubblesSVG.d.ts +3 -3
  105. package/dist/cashflow/CashflowMiniWidget.d.ts +1 -1
  106. package/dist/cashflow/CashflowWidget.d.ts +1 -1
  107. package/dist/cashflow/components/DetailsExpenseRow.d.ts +1 -1
  108. package/dist/cashflow/context/hooks.d.ts +15 -1
  109. package/dist/cashflow/index.d.ts +0 -2
  110. package/dist/cashflow/index.es.js +461 -490
  111. package/dist/cashflow/util/Filters.d.ts +1 -1
  112. package/dist/categories/components/CategoryRow.d.ts +1 -1
  113. package/dist/categories/components/CustomCategories/AddSubcategory.d.ts +1 -1
  114. package/dist/categories/components/CustomCategories/DeleteSubcategory.d.ts +1 -1
  115. package/dist/categories/components/CustomCategories/RenameSubcategory.d.ts +1 -1
  116. package/dist/categories/components/SubcategoryList.d.ts +1 -1
  117. package/dist/categories/components/SubcategoryRow.d.ts +1 -1
  118. package/dist/categories/context/hooks.d.ts +19 -1
  119. package/dist/categories/index.d.ts +0 -1
  120. package/dist/categories/index.es.js +4 -6
  121. package/dist/common/components/CurrencyDialog.d.ts +19 -0
  122. package/dist/common/components/CurrencyInput.d.ts +1 -1
  123. package/dist/common/components/EmptyState.d.ts +0 -1
  124. package/dist/common/components/Error.d.ts +13 -0
  125. package/dist/common/components/GlobalAccountFilter.d.ts +3 -2
  126. package/dist/common/components/Loader.d.ts +1 -2
  127. package/dist/common/components/MiniWidgetContainer.d.ts +1 -0
  128. package/dist/common/components/TinyBarChart.d.ts +10 -0
  129. package/dist/common/components/WidgetContainer.d.ts +4 -3
  130. package/dist/common/components/WidgetDateRangeSelector.d.ts +12 -0
  131. package/dist/common/components/charts/LineChart.d.ts +1 -0
  132. package/dist/common/components/charts/index.d.ts +1 -0
  133. package/dist/common/components/charts/linechart/CustomTooltip.d.ts +2 -1
  134. package/dist/common/components/charts/linechart/utils/markerShapes.d.ts +3 -0
  135. package/dist/common/components/charts/stackedlinechart/CustomAreaTooltip.d.ts +1 -1
  136. package/dist/common/components/daterangeselector/DateRangeSelector.d.ts +1 -0
  137. package/dist/common/components/globalaccountfilter/GlobalAccountFilterList.d.ts +1 -1
  138. package/dist/common/components/index.d.ts +2 -1
  139. package/dist/common/constants/Account.d.ts +1 -1
  140. package/dist/common/constants/Analytics.d.ts +12 -0
  141. package/dist/common/constants/ScheduledPayment.d.ts +1 -10
  142. package/dist/common/constants/SpendingPlan.d.ts +0 -10
  143. package/dist/common/constants/index.d.ts +2 -6
  144. package/dist/common/context/GlobalDataProvider.d.ts +2 -1
  145. package/dist/common/context/hooks.d.ts +24 -24
  146. package/dist/common/hooks/index.d.ts +2 -0
  147. package/dist/common/hooks/useAccountDisplayName.d.ts +1 -1
  148. package/dist/common/hooks/useCombineEvents.d.ts +1 -1
  149. package/dist/common/hooks/usePrevious.d.ts +2 -0
  150. package/dist/common/hooks/useWidgetHeaderStyles.d.ts +34 -0
  151. package/dist/common/index.d.ts +3 -3
  152. package/dist/common/index.es.js +254 -1348
  153. package/dist/common/utils/AccountDisplayName.d.ts +1 -1
  154. package/dist/common/utils/AccountFilter.d.ts +2 -2
  155. package/dist/common/utils/Analytics.d.ts +1 -1
  156. package/dist/common/utils/PostMessage.d.ts +1 -0
  157. package/dist/common/utils/Theme.d.ts +7 -6
  158. package/dist/common/utils/index.d.ts +1 -6
  159. package/dist/{accounts → core}/api/AccountApi.d.ts +2 -2
  160. package/dist/{common → core}/api/AnalyticsApi.d.ts +1 -1
  161. package/dist/{common → core}/api/AppDataApi.d.ts +2 -2
  162. package/dist/{common → core}/api/BannerApi.d.ts +1 -1
  163. package/dist/{common → core}/api/BeatApi.d.ts +2 -2
  164. package/dist/{budgets → core}/api/BudgetsApi.d.ts +5 -1
  165. package/dist/{common → core}/api/CategoryApi.d.ts +2 -2
  166. package/dist/{finstrong → core}/api/FinstrongApi.d.ts +2 -2
  167. package/dist/{common → core}/api/GlobalCopyApi.d.ts +2 -2
  168. package/dist/{goals → core}/api/GoalApi.d.ts +2 -2
  169. package/dist/{help → core}/api/HelpApi.d.ts +2 -2
  170. package/dist/{investments → core}/api/HoldingApi.d.ts +2 -2
  171. package/dist/{merchants → core}/api/MerchantApi.d.ts +2 -2
  172. package/dist/{common → core}/api/NotificationApi.d.ts +2 -2
  173. package/dist/{recurringtransactions → core}/api/RepeatingTransactionsApi.d.ts +2 -1
  174. package/dist/{common → core}/api/ScheduledPaymentsApi.d.ts +2 -2
  175. package/dist/{settings → core}/api/SettingsApi.d.ts +2 -3
  176. package/dist/{transactions → core}/api/TransactionApi.d.ts +2 -2
  177. package/dist/{common → core}/api/UserApi.d.ts +2 -2
  178. package/dist/{common → core}/api/WidgetApi.d.ts +1 -1
  179. package/dist/core/api/index.d.ts +20 -0
  180. package/dist/{common → core}/constants/ApiEndpoints.d.ts +1 -2
  181. package/dist/{common → core}/constants/DefaultConfig.d.ts +1 -1
  182. package/dist/core/constants/Transaction.d.ts +10 -0
  183. package/dist/core/constants/index.d.ts +4 -0
  184. package/dist/core/constants/repeatingTransactions.d.ts +10 -0
  185. package/dist/core/index.d.ts +4 -0
  186. package/dist/core/index.es.js +108 -0
  187. package/dist/{accounts → core}/stores/AccountStore.d.ts +15 -3
  188. package/dist/{analytics → core}/stores/AnalyticsStore.d.ts +1 -1
  189. package/dist/{common → core}/stores/AppDataStore.d.ts +1 -2
  190. package/dist/{insights/store → core/stores}/BeatStore.d.ts +3 -3
  191. package/dist/{budgets/store → core/stores}/BudgetsStore.d.ts +15 -2
  192. package/dist/{cashflow/stores/UiStore.d.ts → core/stores/CashflowStore.d.ts} +10 -2
  193. package/dist/{categories → core}/stores/CategoryStore.d.ts +24 -2
  194. package/dist/{common → core}/stores/ConnectStore.d.ts +1 -1
  195. package/dist/core/stores/DebtsStore.d.ts +22 -0
  196. package/dist/{finstrong → core}/stores/FinstrongStore.d.ts +5 -4
  197. package/dist/{common → core}/stores/GlobalStore.d.ts +4 -25
  198. package/dist/{goals → core}/stores/GoalStore.d.ts +3 -2
  199. package/dist/{help/store → core/stores}/HelpStore.d.ts +4 -5
  200. package/dist/{investments → core}/stores/HoldingStore.d.ts +4 -3
  201. package/dist/{merchants → core}/stores/MerchantStore.d.ts +3 -2
  202. package/dist/{networth → core}/stores/NetWorthStore.d.ts +3 -3
  203. package/dist/{notifications → core}/stores/NotificationStore.d.ts +3 -1
  204. package/dist/{recurringtransactions → core}/stores/RecurringTransactionsStore.d.ts +3 -2
  205. package/dist/{settings → core}/stores/SettingsStore.d.ts +4 -4
  206. package/dist/{transactions → core}/stores/TransactionStore.d.ts +30 -4
  207. package/dist/{trends → core}/stores/TrendsStore.d.ts +11 -4
  208. package/dist/core/stores/index.d.ts +24 -0
  209. package/dist/{common → core}/types/Analytics.d.ts +6 -3
  210. package/dist/{common → core}/types/AppData.d.ts +8 -2
  211. package/dist/{common → core}/types/Beat.d.ts +2 -0
  212. package/dist/{common → core}/types/Budget.d.ts +8 -0
  213. package/dist/{common → core}/types/Client.d.ts +1 -0
  214. package/dist/{common → core}/types/Expense.d.ts +2 -1
  215. package/dist/{common → core}/types/Finstrong.d.ts +0 -2
  216. package/dist/{networth → core}/types/NetWorth.d.ts +1 -10
  217. package/dist/{common → core}/types/Notification.d.ts +15 -5
  218. package/dist/core/types/Offer.d.ts +32 -0
  219. package/dist/{common → core}/types/Widgets.d.ts +1 -0
  220. package/dist/{common → core}/types/index.d.ts +4 -3
  221. package/dist/{common → core}/types/localization/BudgetsCopy.d.ts +26 -0
  222. package/dist/{common → core}/types/localization/CashflowCopy.d.ts +1 -0
  223. package/dist/{common → core}/types/localization/CommonCopy.d.ts +3 -0
  224. package/dist/{common → core}/types/localization/DebtsCopy.d.ts +5 -0
  225. package/dist/{common → core}/types/localization/GoalsCopy.d.ts +0 -1
  226. package/dist/{common → core}/types/localization/InsightsFeedCopy.d.ts +11 -0
  227. package/dist/{common → core}/types/localization/RecurringCopy.d.ts +2 -0
  228. package/dist/{common → core}/types/localization/SpendingCopy.d.ts +1 -0
  229. package/dist/{common → core}/types/localization/TransactionsCopy.d.ts +11 -6
  230. package/dist/{common → core}/types/localization/TrendsCopy.d.ts +2 -0
  231. package/dist/{accounts/utils/Accounts.d.ts → core/utils/AccountUtils.d.ts} +2 -2
  232. package/dist/{microinsights/utils/beatUtils.d.ts → core/utils/BeatUtils.d.ts} +1 -1
  233. package/dist/{budgets → core}/utils/BudgetUtil.d.ts +7 -2
  234. package/dist/{categories/util → core/utils}/CategoryUtil.d.ts +6 -1
  235. package/dist/core/utils/DebtUtils.d.ts +31 -0
  236. package/dist/core/utils/FinstrongUtils.d.ts +7 -0
  237. package/dist/{goals/util → core/utils}/GoalsUtil.d.ts +1 -1
  238. package/dist/core/utils/HelpUtil.d.ts +3 -0
  239. package/dist/{investments/util → core/utils}/InvestmentUtil.d.ts +2 -2
  240. package/dist/{common → core}/utils/Localization.d.ts +9 -1
  241. package/dist/{networth → core}/utils/NetWorthUtils.d.ts +1 -2
  242. package/dist/{notifications → core}/utils/NotificationUtils.d.ts +2 -1
  243. package/dist/{common → core}/utils/NumberFormatting.d.ts +1 -1
  244. package/dist/{recurringtransactions/util/RecurringTransactions.d.ts → core/utils/RecurringTransactionsUtil.d.ts} +2 -2
  245. package/dist/{settings/util/Notifications.d.ts → core/utils/SettingsUtil.d.ts} +1 -1
  246. package/dist/{transactions/utils/buildDetailedTransactions.d.ts → core/utils/TransactionUtils.d.ts} +12 -2
  247. package/dist/{trends/utils/TrendsData.d.ts → core/utils/TrendsUtil.d.ts} +1 -1
  248. package/dist/core/utils/index.d.ts +2 -0
  249. package/dist/dashboard/index.es.js +39 -38
  250. package/dist/debts/DebtsWidget.d.ts +1 -1
  251. package/dist/debts/components/DebtsChart.d.ts +1 -1
  252. package/dist/debts/components/DebtsTable.d.ts +1 -1
  253. package/dist/debts/components/SnowballCard.d.ts +1 -1
  254. package/dist/debts/components/actions/DebtsPriorityAction.d.ts +6 -1
  255. package/dist/debts/components/actions/InterestRateAction.d.ts +1 -1
  256. package/dist/debts/components/actions/MonthlyPaymentAction.d.ts +1 -1
  257. package/dist/debts/components/actions/OriginalBalanceAction.d.ts +1 -1
  258. package/dist/debts/components/debtspaydown/PaydownButton.d.ts +2 -1
  259. package/dist/debts/components/debtspriority/DebtsPriorityButton.d.ts +3 -1
  260. package/dist/debts/hooks/useDebtsUiStore.d.ts +1 -1
  261. package/dist/debts/index.d.ts +0 -1
  262. package/dist/debts/index.es.js +715 -775
  263. package/dist/debts/utils/DebtsTable.d.ts +1 -1
  264. package/dist/debts/utils/SnowballCard.d.ts +2 -2
  265. package/dist/finstrong/FinstrongWidget.d.ts +2 -2
  266. package/dist/finstrong/components/HealthChart.d.ts +1 -1
  267. package/dist/finstrong/components/onboarding/OnboardingAddMonthlyIncome.d.ts +1 -1
  268. package/dist/finstrong/components/onboarding/OnboardingStepsDrawer.d.ts +1 -1
  269. package/dist/finstrong/components/shared/Accounts.d.ts +1 -1
  270. package/dist/finstrong/components/shared/DoubleBarChart.d.ts +1 -0
  271. package/dist/finstrong/components/shared/ScoreHistoryTimeline.d.ts +1 -1
  272. package/dist/finstrong/components/shared/Transactions.d.ts +1 -1
  273. package/dist/finstrong/index.d.ts +0 -2
  274. package/dist/finstrong/index.es.js +1587 -1349
  275. package/dist/finstrong/util/finstrongUtils.d.ts +3 -9
  276. package/dist/goals/GoalsWidget.d.ts +2 -2
  277. package/dist/goals/components/AccountSelectionDrawer.d.ts +1 -1
  278. package/dist/goals/components/AddGoal.d.ts +1 -1
  279. package/dist/goals/components/GoalDetails.d.ts +1 -1
  280. package/dist/goals/components/GoalDetailsDrawer.d.ts +1 -1
  281. package/dist/goals/components/GoalList.d.ts +1 -1
  282. package/dist/goals/components/GoalStatusCard.d.ts +1 -1
  283. package/dist/goals/components/ManageGoals.d.ts +1 -1
  284. package/dist/goals/components/actions/AccountAction.d.ts +1 -1
  285. package/dist/goals/components/actions/AddRetirementAccountAction.d.ts +1 -1
  286. package/dist/goals/components/actions/AmountToSaveAction.d.ts +1 -1
  287. package/dist/goals/components/actions/BirthdayAction.d.ts +1 -1
  288. package/dist/goals/components/actions/ChangeAccountAction.d.ts +1 -1
  289. package/dist/goals/components/actions/ContributionAction.d.ts +1 -1
  290. package/dist/goals/components/actions/GoalNameAction.d.ts +1 -1
  291. package/dist/goals/components/actions/InterestRateAction.d.ts +1 -1
  292. package/dist/goals/components/actions/MonthlyPaymentAction.d.ts +1 -1
  293. package/dist/goals/components/actions/OriginalBalanceAction.d.ts +1 -1
  294. package/dist/goals/components/actions/RetirementAgeAction.d.ts +1 -1
  295. package/dist/goals/components/addgoal/AddGoalListItem.d.ts +2 -2
  296. package/dist/goals/components/managegoals/CompleteListItem.d.ts +1 -1
  297. package/dist/goals/components/managegoals/OngoingListItem.d.ts +3 -2
  298. package/dist/goals/components/managegoals/ReorderGoals.d.ts +1 -1
  299. package/dist/goals/components/micro/GoalMicroStatusCard.d.ts +1 -1
  300. package/dist/goals/index.d.ts +0 -2
  301. package/dist/goals/index.es.js +707 -787
  302. package/dist/help/HelpWidget.d.ts +2 -2
  303. package/dist/help/components/HelpContent.d.ts +1 -1
  304. package/dist/help/components/HelpList.d.ts +1 -1
  305. package/dist/help/components/content/BottomImageContent.d.ts +1 -1
  306. package/dist/help/components/content/ContentItem.d.ts +1 -1
  307. package/dist/help/components/content/LeftImageContent.d.ts +1 -1
  308. package/dist/help/components/content/NoImageContent.d.ts +1 -1
  309. package/dist/help/components/content/RightImageContent.d.ts +1 -1
  310. package/dist/help/components/content/TopImageContent.d.ts +1 -1
  311. package/dist/help/components/content/section/Accounts.d.ts +1 -1
  312. package/dist/help/components/content/section/Budgets.d.ts +1 -1
  313. package/dist/help/components/content/section/CashFlow.d.ts +1 -1
  314. package/dist/help/components/content/section/Debts.d.ts +1 -1
  315. package/dist/help/components/content/section/General.d.ts +1 -1
  316. package/dist/help/components/content/section/Goals.d.ts +1 -1
  317. package/dist/help/components/content/section/Insights.d.ts +1 -1
  318. package/dist/help/components/content/section/Investments.d.ts +1 -1
  319. package/dist/help/components/content/section/Mobile.d.ts +1 -1
  320. package/dist/help/components/content/section/NetWorth.d.ts +1 -1
  321. package/dist/help/components/content/section/Notifications.d.ts +1 -1
  322. package/dist/help/components/content/section/RecurringTransactions.d.ts +1 -1
  323. package/dist/help/components/content/section/Spending.d.ts +1 -1
  324. package/dist/help/components/content/section/Transactions.d.ts +1 -1
  325. package/dist/help/components/content/section/Trends.d.ts +1 -1
  326. package/dist/help/components/content/section/index.d.ts +15 -15
  327. package/dist/help/components/requestsupport/ContactSupport.d.ts +1 -1
  328. package/dist/help/components/requestsupport/HelpByCategoryList.d.ts +1 -1
  329. package/dist/help/components/requestsupport/MissingInstitution.d.ts +1 -1
  330. package/dist/help/components/requestsupport/PopularTopicsDrawer.d.ts +1 -1
  331. package/dist/help/components/requestsupport/PopularTopicsList.d.ts +1 -1
  332. package/dist/help/components/requestsupport/RequestSupport.d.ts +1 -1
  333. package/dist/help/components/requestsupport/RequestSupportFooter.d.ts +1 -1
  334. package/dist/help/components/requestsupport/RequestSupportInstitution.d.ts +1 -1
  335. package/dist/help/components/requestsupport/SupportSuccessMessage.d.ts +1 -1
  336. package/dist/help/index.es.js +19 -10
  337. package/dist/help/utils/index.d.ts +0 -1
  338. package/dist/{hooks-fY_n74f7.mjs → hooks-BaO_gOI6.mjs} +23 -23
  339. package/dist/insights/components/feed/Header.d.ts +8 -0
  340. package/dist/insights/components/index.d.ts +53 -0
  341. package/dist/insights/components/insights/AccountDiscoverability/AccountDiscoverability.d.ts +3 -0
  342. package/dist/insights/components/insights/AccountDiscoverability/index.d.ts +1 -0
  343. package/dist/insights/components/insights/AccountDiscoverability/types/AccountDiscoverability.d.ts +3 -0
  344. package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/AmericanUpcomingTaxDeadlineAlert.d.ts +2 -0
  345. package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/index.d.ts +1 -0
  346. package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/types/AmericanUpcomingTaxDeadlineProps.d.ts +4 -0
  347. package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandard.d.ts +3 -0
  348. package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandardMUI.d.ts +3 -0
  349. package/dist/insights/components/insights/BillAmountNotStandard/index.d.ts +2 -0
  350. package/dist/insights/components/insights/BillAmountNotStandard/types/BillAmountNotStandard.d.ts +4 -0
  351. package/dist/insights/components/insights/CashBack/CashBack.d.ts +3 -0
  352. package/dist/insights/components/insights/CashBack/index.d.ts +1 -0
  353. package/dist/insights/components/insights/CashBack/types/CashBack.d.ts +7 -0
  354. package/dist/insights/components/insights/CategoryBudget/CategoryBudget.d.ts +3 -0
  355. package/dist/insights/components/insights/CategoryBudget/index.d.ts +1 -0
  356. package/dist/insights/components/insights/CategoryBudget/types/CategoryBudget.d.ts +10 -0
  357. package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2.d.ts +2 -0
  358. package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2MUI.d.ts +2 -0
  359. package/dist/insights/components/insights/CategorySpendingV2/index.d.ts +2 -0
  360. package/dist/insights/components/insights/CategorySpendingV2/types/CategorySpendingV2.d.ts +7 -0
  361. package/dist/insights/components/insights/CelebrateCreditCardPayoff/CelebrateCreditCardPayoff.d.ts +3 -0
  362. package/dist/insights/components/insights/CelebrateCreditCardPayoff/index.d.ts +1 -0
  363. package/dist/insights/components/insights/CelebrateCreditCardPayoff/types/CelebrateCreditCardPayoffProps.d.ts +9 -0
  364. package/dist/insights/components/insights/CustomTransaction/CustomTransaction.d.ts +3 -0
  365. package/dist/insights/components/insights/CustomTransaction/index.d.ts +1 -0
  366. package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsBody.d.ts +9 -0
  367. package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsLearnMoreDrawerContent.d.ts +21 -0
  368. package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsMiniInsight.d.ts +6 -0
  369. package/dist/insights/components/insights/DiscoveredAccounts/index.d.ts +3 -0
  370. package/dist/insights/components/insights/FederalBankHoliday/FederalBankHoliday.d.ts +3 -0
  371. package/dist/insights/components/insights/FederalBankHoliday/FederalBankHolidayMUI.d.ts +3 -0
  372. package/dist/insights/components/insights/FederalBankHoliday/index.d.ts +2 -0
  373. package/dist/insights/components/insights/FederalBankHoliday/types/FederalBankHoliday.d.ts +4 -0
  374. package/dist/insights/components/insights/MarketingHub/Offer.d.ts +3 -0
  375. package/dist/insights/components/insights/MarketingHub/Types.d.ts +33 -0
  376. package/dist/insights/components/insights/MarketingHub/index.d.ts +2 -0
  377. package/dist/insights/components/insights/MonthlyDebtToIncomeComparisonV2/MonthlyDebtToIncomeComparisonV2.d.ts +2 -0
  378. package/dist/insights/components/insights/MonthlyDebtToIncomeComparisonV2/index.d.ts +1 -0
  379. package/dist/insights/components/insights/MonthlyDebtToIncomeComparisonV2/types/index.d.ts +4 -0
  380. package/dist/insights/components/insights/MonthlyEmergencyFundReview/LastMonthsContributionSection.d.ts +6 -0
  381. package/dist/insights/components/insights/MonthlyEmergencyFundReview/MonthlyEmergencyFundReviewBody.d.ts +21 -0
  382. package/dist/insights/components/insights/MonthlyEmergencyFundReview/ProjectedCompletionSection.d.ts +6 -0
  383. package/dist/insights/components/insights/MonthlyEmergencyFundReview/TotalSection.d.ts +7 -0
  384. package/dist/insights/components/insights/MonthlyEmergencyFundReview/index.d.ts +4 -0
  385. package/dist/insights/components/insights/MonthlySavingsToIncomeComparison/MonthlySavingsToIncomeComparison.d.ts +2 -0
  386. package/dist/insights/components/insights/MonthlySavingsToIncomeComparison/index.d.ts +1 -0
  387. package/dist/insights/components/insights/MonthlySavingsToIncomeComparison/types/index.d.ts +4 -0
  388. package/dist/insights/components/insights/MonthlySpendToIncomeComparisonV2/MonthlySpendToIncomeComparisonV2.d.ts +2 -0
  389. package/dist/insights/components/insights/MonthlySpendToIncomeComparisonV2/index.d.ts +1 -0
  390. package/dist/insights/components/insights/MonthlySpendToIncomeComparisonV2/types/index.d.ts +4 -0
  391. package/dist/insights/components/insights/MonthlySpendingComparisonV2/MonthlySpendingComparisonV2.d.ts +3 -0
  392. package/dist/insights/components/insights/MonthlySpendingComparisonV2/__test__/MonthlySpendComparisonV2.test.d.ts +1 -0
  393. package/dist/insights/components/insights/MonthlySpendingComparisonV2/index.d.ts +1 -0
  394. package/dist/insights/components/insights/MonthlySpendingComparisonV2/types/MonthlySpendComparisonV2.d.ts +4 -0
  395. package/dist/insights/components/insights/P2pCategorization/P2pCategorization.d.ts +3 -0
  396. package/dist/insights/components/insights/P2pCategorization/_tests_/P2pCategorizationMultipleTransaction.test.d.ts +0 -0
  397. package/dist/insights/components/insights/P2pCategorization/_tests_/P2pCategorizationSingleTransaction.test.d.ts +0 -0
  398. package/dist/insights/components/insights/P2pCategorization/index.d.ts +4 -0
  399. package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationMultipleTransactions.d.ts +3 -0
  400. package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationSingleTransaction.d.ts +3 -0
  401. package/dist/insights/components/insights/P2pCategorization/types/P2pCategorization.d.ts +17 -0
  402. package/dist/insights/components/insights/SavingsAccountBalancesSummary/SavingsAccountBalancesSummary.d.ts +2 -0
  403. package/dist/insights/components/insights/SavingsAccountBalancesSummary/index.d.ts +1 -0
  404. package/dist/insights/components/insights/SavingsAccountBalancesSummary/types/SavingsAccountBalancesSummary.d.ts +4 -0
  405. package/dist/insights/components/insights/SetUpDirectDeposit/SetUpDirectDepositBody.d.ts +3 -0
  406. package/dist/insights/components/insights/SetUpDirectDeposit/index.d.ts +1 -0
  407. package/dist/insights/components/insights/SharedDeposit/SharedDeposit.d.ts +2 -0
  408. package/dist/insights/components/insights/SharedDeposit/index.d.ts +1 -0
  409. package/dist/insights/components/insights/SharedDeposit/types/index.d.ts +7 -0
  410. package/dist/insights/components/insights/SwitchDirectDeposit/AccountBox.d.ts +7 -0
  411. package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositBody.d.ts +10 -0
  412. package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositMainContainer.d.ts +9 -0
  413. package/dist/insights/components/insights/SwitchDirectDeposit/index.d.ts +3 -0
  414. package/dist/insights/components/insights/UnifiedDeposit/UnifiedDeposit.d.ts +7 -0
  415. package/dist/insights/components/insights/UnifiedDeposit/UnifiedDepositBody.d.ts +11 -0
  416. package/dist/insights/components/insights/UnifiedDeposit/index.d.ts +1 -0
  417. package/dist/insights/components/insights/UserFeedback/StyledToggleButton.d.ts +7 -0
  418. package/dist/insights/components/insights/UserFeedback/Types.d.ts +27 -0
  419. package/dist/insights/components/insights/UserFeedback/UserFeedback.d.ts +3 -0
  420. package/dist/insights/components/insights/UserFeedback/index.d.ts +1 -0
  421. package/dist/insights/components/insights/WeeklyNoSpendDays/BubbleWeek.d.ts +9 -0
  422. package/dist/insights/components/insights/WeeklyNoSpendDays/NoSpendIcons.d.ts +1 -0
  423. package/dist/insights/components/insights/WeeklyNoSpendDays/WeeklyNoSpendDays.d.ts +12 -0
  424. package/dist/insights/components/insights/WeeklyNoSpendDays/_tests_/WeeklyNoSpendDays.test.d.ts +0 -0
  425. package/dist/insights/components/insights/WeeklyNoSpendDays/index.d.ts +1 -0
  426. package/dist/insights/components/insights/index.d.ts +25 -0
  427. package/dist/insights/components/shared/AccountBalanceCard.d.ts +13 -0
  428. package/dist/insights/components/shared/BottomSheet.d.ts +13 -0
  429. package/dist/insights/components/shared/CarouselControls.d.ts +14 -0
  430. package/dist/insights/components/shared/ChartDrawerTemplate/ChartDrawerTemplate.d.ts +30 -0
  431. package/dist/insights/components/shared/ChartDrawerTemplate/TipSection.d.ts +9 -0
  432. package/dist/insights/components/shared/ChartTransactionWithDrillDown.d.ts +22 -0
  433. package/dist/insights/components/shared/Charts/BarChart/BarChart.d.ts +2 -0
  434. package/dist/insights/components/shared/Charts/BarChart/BarChartV2.d.ts +2 -0
  435. package/dist/insights/components/shared/Charts/BarChart/ChartLegend.d.ts +9 -0
  436. package/dist/insights/components/shared/Charts/BarChart/ChartLegendV2.d.ts +10 -0
  437. package/dist/insights/components/shared/Charts/BarChart/CustomBarPlot.d.ts +18 -0
  438. package/dist/insights/components/shared/Charts/BarChart/CustomBarPlotV2.d.ts +18 -0
  439. package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlot.d.ts +18 -0
  440. package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlotMXUI.d.ts +18 -0
  441. package/dist/insights/components/shared/Charts/BarChart/DoubleBarChart.d.ts +2 -0
  442. package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegend.d.ts +10 -0
  443. package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegendMXUI.d.ts +10 -0
  444. package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartMXUI.d.ts +2 -0
  445. package/dist/insights/components/shared/Charts/BarChart/index.d.ts +4 -0
  446. package/dist/insights/components/shared/Charts/EmptyBarChart.d.ts +1 -0
  447. package/dist/insights/components/shared/Charts/index.d.ts +2 -0
  448. package/dist/insights/components/shared/Confetti.d.ts +5 -0
  449. package/dist/insights/components/shared/ConnectionCard.d.ts +14 -0
  450. package/dist/insights/components/shared/ConnectionDetailDrillDown.d.ts +25 -0
  451. package/dist/insights/components/shared/Coupon.d.ts +8 -0
  452. package/dist/insights/components/shared/DeepLinks/DeepLinkDialog.d.ts +11 -0
  453. package/dist/insights/components/shared/DeepLinks/DirectDeposit/Circle.d.ts +6 -0
  454. package/dist/insights/components/shared/DeepLinks/DirectDeposit/DirectDepositDeepLink.d.ts +24 -0
  455. package/dist/insights/components/shared/DeepLinks/DirectDeposit/Dot.d.ts +1 -0
  456. package/dist/insights/components/shared/DeepLinks/DirectDeposit/Oval.d.ts +1 -0
  457. package/dist/insights/components/shared/DirectDeposit/DirectDeposit.d.ts +3 -0
  458. package/dist/insights/components/shared/DirectDeposit/DirectDepositSubHeader.d.ts +14 -0
  459. package/dist/insights/components/shared/DirectDeposit/FullFeedBodyHeader.d.ts +10 -0
  460. package/dist/insights/components/shared/DirectDeposit/LeftBox.d.ts +7 -0
  461. package/dist/insights/components/shared/DirectDeposit/MiniBodyHeader.d.ts +10 -0
  462. package/dist/insights/components/shared/DirectDeposit/RightBox.d.ts +8 -0
  463. package/dist/insights/components/shared/DiscoveredAccountsConnect.d.ts +8 -0
  464. package/dist/insights/components/shared/DonutChartV2.d.ts +13 -0
  465. package/dist/insights/components/shared/DrillDownCalculation/BalanceStepper.d.ts +12 -0
  466. package/dist/insights/components/shared/DrillDownCalculation/DrillDownCalculation.d.ts +31 -0
  467. package/dist/insights/components/shared/ErrorCard/ErrorCard.d.ts +8 -0
  468. package/dist/insights/components/shared/GenericFeedback/FeedbackButtons.d.ts +15 -0
  469. package/dist/insights/components/shared/GenericFeedback/FeedbackDescription.d.ts +5 -0
  470. package/dist/insights/components/shared/GenericFeedback/FeedbackHeader.d.ts +15 -0
  471. package/dist/insights/components/shared/GenericFeedback/FeedbackOptions.d.ts +12 -0
  472. package/dist/insights/components/shared/GenericFeedback/FeedbackText.d.ts +13 -0
  473. package/dist/insights/components/shared/GoalProgress.d.ts +10 -0
  474. package/dist/insights/components/shared/GradientBox.d.ts +8 -0
  475. package/dist/insights/components/shared/InsightsCard/BeatCard.d.ts +20 -0
  476. package/dist/insights/components/shared/InsightsCard/BeatCardMUI.d.ts +20 -0
  477. package/dist/insights/components/shared/InsightsCard/CardButtonSection.d.ts +7 -0
  478. package/dist/insights/components/shared/InsightsCard/CardError.d.ts +5 -0
  479. package/dist/insights/components/shared/InsightsCard/CardFooter.d.ts +7 -0
  480. package/dist/insights/components/shared/InsightsCard/CardHeader.d.ts +11 -0
  481. package/dist/insights/components/shared/InsightsCard/CardHeaderMUI.d.ts +11 -0
  482. package/dist/insights/components/shared/InsightsCard/CardLoading.d.ts +5 -0
  483. package/dist/insights/components/shared/InsightsCard/ClientConfigurableCta.d.ts +5 -0
  484. package/dist/insights/components/shared/InsightsCard/ContentAndDescription.d.ts +15 -0
  485. package/dist/insights/components/shared/InsightsCard/ContentAndDescriptionMUI.d.ts +15 -0
  486. package/dist/insights/components/shared/InsightsCard/Description.d.ts +10 -0
  487. package/dist/insights/components/shared/InsightsCard/DescriptionMUI.d.ts +10 -0
  488. package/dist/insights/components/shared/InsightsCard/EmbeddedCard.d.ts +9 -0
  489. package/dist/insights/components/shared/InsightsCard/FeedbackCard.d.ts +13 -0
  490. package/dist/insights/components/shared/InsightsCard/InsightButton.d.ts +12 -0
  491. package/dist/insights/components/shared/InsightsCard/MiniDescription.d.ts +9 -0
  492. package/dist/insights/components/shared/InsightsCard/MiniDescriptionMUI.d.ts +9 -0
  493. package/dist/insights/components/shared/MenuAction.d.ts +15 -0
  494. package/dist/insights/components/shared/MiniInsightCard.d.ts +16 -0
  495. package/dist/insights/components/shared/P2P/P2PMultipleCategorization.d.ts +12 -0
  496. package/dist/insights/components/shared/P2PCategorizationSingleAccount/P2PCategorizationSingleAccount.d.ts +10 -0
  497. package/dist/insights/components/shared/ProgressBar.d.ts +9 -0
  498. package/dist/insights/components/shared/SaveAnExtra100/SaveAnExtra100.d.ts +9 -0
  499. package/dist/insights/components/shared/SaveEnoughToLiveOnBottomSection.d.ts +11 -0
  500. package/dist/insights/components/shared/SaveEnoughToLiveOnTopSection.d.ts +2 -0
  501. package/dist/insights/components/shared/StatusIndicator.d.ts +15 -0
  502. package/dist/insights/components/shared/TabContainer.d.ts +8 -0
  503. package/dist/insights/components/shared/ThemedSVGImage.d.ts +2 -0
  504. package/dist/insights/components/shared/TransactionCard.d.ts +14 -0
  505. package/dist/insights/components/shared/ZeroState/LinedCardZeroState.d.ts +1 -0
  506. package/dist/insights/components/shared/index.d.ts +2 -0
  507. package/dist/insights/hooks/useContainerDimensions.d.ts +5 -0
  508. package/dist/insights/index.d.ts +1 -1
  509. package/dist/insights/index.es.js +4843 -2
  510. package/dist/insights/themes/Typography.d.ts +1 -0
  511. package/dist/insights/themes/index.d.ts +1 -0
  512. package/dist/insights/types/Charts/BarChart.d.ts +96 -0
  513. package/dist/insights/types/CommonBeat.d.ts +367 -0
  514. package/dist/insights/types/DirectDeposit.d.ts +16 -0
  515. package/dist/insights/types/ThemedSVGImage.d.ts +5 -0
  516. package/dist/investments/InvestmentsWidget.d.ts +2 -2
  517. package/dist/investments/components/AnalysisDetails.d.ts +1 -1
  518. package/dist/investments/components/allocation/util/createInvestementsAllocationData.d.ts +2 -2
  519. package/dist/investments/index.es.js +574 -574
  520. package/dist/merchants/index.d.ts +0 -1
  521. package/dist/merchants/index.es.js +18 -20
  522. package/dist/microinsights/InsightsMicroWidget.d.ts +1 -14
  523. package/dist/microinsights/MicroCardTemplate.d.ts +2 -4
  524. package/dist/microinsights/beaticons/AreaChartIcon.d.ts +3 -0
  525. package/dist/microinsights/beaticons/AverageSpendComparisonIcon.d.ts +3 -0
  526. package/dist/microinsights/beaticons/BeatMaterialIcon.d.ts +5 -1
  527. package/dist/microinsights/beaticons/InstitutionLogoIcon.d.ts +5 -0
  528. package/dist/microinsights/beaticons/MonthlySpendComparisonIcon.d.ts +0 -2
  529. package/dist/microinsights/beaticons/index.d.ts +3 -0
  530. package/dist/microinsights/cards/InsightCard.d.ts +3 -3
  531. package/dist/microinsights/cards/NoRelevantInsightsCard.d.ts +3 -3
  532. package/dist/microinsights/cards/ViewMoreMicroCard.d.ts +3 -3
  533. package/dist/microinsights/cards/ZeroStateCard.d.ts +3 -3
  534. package/dist/microinsights/carousel/BeatList.d.ts +3 -3
  535. package/dist/microinsights/carousel/CarouselHeader.d.ts +4 -2
  536. package/dist/microinsights/carousel/MicroBeatCarousel.d.ts +12 -12
  537. package/dist/microinsights/constants/Analytics.d.ts +1 -1
  538. package/dist/microinsights/context/InsightsMicroWidgetDataProvider.d.ts +1 -1
  539. package/dist/microinsights/context/hooks.d.ts +1 -1
  540. package/dist/microinsights/index.d.ts +1 -1
  541. package/dist/microinsights/index.es.js +1 -1
  542. package/dist/microinsights/interfaces.d.ts +23 -40
  543. package/dist/microinsights/stores/CopyStore.d.ts +2 -2
  544. package/dist/microinsights/stores/InsightsMicroWidgetStore.d.ts +2 -2
  545. package/dist/microinsights/utils/DataSeries.d.ts +1 -1
  546. package/dist/microinsights/utils/colorType.d.ts +22 -0
  547. package/dist/networth/NetWorthWidget.d.ts +1 -1
  548. package/dist/networth/components/AssetsLiabilitiesDetail.d.ts +1 -1
  549. package/dist/networth/components/GainsLossesDetail.d.ts +1 -1
  550. package/dist/networth/components/NetWorthChange.d.ts +1 -1
  551. package/dist/networth/components/NetWorthListItem.d.ts +1 -1
  552. package/dist/networth/components/NetWorthSummary.d.ts +1 -1
  553. package/dist/networth/components/micro/NetworthData.d.ts +1 -1
  554. package/dist/networth/components/micro/ZeroState.d.ts +1 -1
  555. package/dist/networth/index.d.ts +0 -4
  556. package/dist/networth/index.es.js +302 -314
  557. package/dist/notifications/components/NotificationBadge.d.ts +1 -1
  558. package/dist/notifications/components/NotificationCard.d.ts +1 -1
  559. package/dist/notifications/components/NotificationDrawer.d.ts +1 -1
  560. package/dist/notifications/components/NotificationList.d.ts +2 -1
  561. package/dist/notifications/index.d.ts +0 -2
  562. package/dist/notifications/index.es.js +101 -93
  563. package/dist/recurringtransactions/RecurringTransactionsMiniWidget.d.ts +1 -1
  564. package/dist/recurringtransactions/RecurringTransactionsWidget.d.ts +2 -2
  565. package/dist/recurringtransactions/components/PaymentSchedule.d.ts +1 -1
  566. package/dist/recurringtransactions/components/RecurrenceList.d.ts +1 -1
  567. package/dist/recurringtransactions/components/RecurrenceRow.d.ts +1 -1
  568. package/dist/recurringtransactions/components/RecurringTransactionDetails.d.ts +1 -1
  569. package/dist/recurringtransactions/components/actions/PaymentScheduleAction.d.ts +1 -1
  570. package/dist/recurringtransactions/components/micro/MerchantLogosRow.d.ts +1 -1
  571. package/dist/recurringtransactions/components/micro/OverlappingMerchantLogos.d.ts +1 -1
  572. package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransactionDetails.d.ts +1 -1
  573. package/dist/recurringtransactions/components/shared/recurringsettings/RecurringRow.d.ts +1 -1
  574. package/dist/recurringtransactions/index.d.ts +0 -1
  575. package/dist/recurringtransactions/index.es.js +489 -462
  576. package/dist/settings/NotificationSettingsWidget.d.ts +1 -1
  577. package/dist/settings/SettingsWidget.d.ts +2 -2
  578. package/dist/settings/TransactionRulesWidget.d.ts +1 -1
  579. package/dist/settings/components/devices/DeviceDialog.d.ts +1 -1
  580. package/dist/settings/components/devices/DeviceList.d.ts +1 -1
  581. package/dist/settings/components/devices/DeviceTable.d.ts +1 -1
  582. package/dist/settings/components/notifications/AccountNotificationProfile.d.ts +1 -1
  583. package/dist/settings/components/notifications/AccountProfileListItem.d.ts +1 -1
  584. package/dist/settings/components/notifications/NotificationProfile.d.ts +1 -1
  585. package/dist/settings/components/notifications/NotificationSettings.d.ts +1 -1
  586. package/dist/settings/components/transactionrules/actions/EditRuleAction.d.ts +1 -1
  587. package/dist/settings/index.d.ts +0 -2
  588. package/dist/settings/index.es.js +419 -430
  589. package/dist/spending/SpendingMiniWidget.d.ts +1 -1
  590. package/dist/spending/SpendingWidget.d.ts +1 -1
  591. package/dist/spending/index.es.js +229 -222
  592. package/dist/spending/utils/SpendingData.d.ts +1 -1
  593. package/dist/transactions/TransactionWidget.d.ts +1 -1
  594. package/dist/transactions/components/shared/TransactionDetails.d.ts +1 -1
  595. package/dist/transactions/components/shared/TransactionList.d.ts +3 -4
  596. package/dist/transactions/components/shared/getEmbeddedInstanceSlotByBeatTemplates.d.ts +17 -0
  597. package/dist/transactions/components/shared/transactiondetails/Description.d.ts +1 -1
  598. package/dist/transactions/components/shared/transactiondetails/FlagTransaction.d.ts +1 -1
  599. package/dist/transactions/components/shared/transactiondetails/TransactionAmountHeader.d.ts +1 -1
  600. package/dist/transactions/components/shared/transactiondetails/TransactionDetailsView.d.ts +1 -1
  601. package/dist/transactions/components/shared/transactiondetails/actions/AddMerchantBudgetAction.d.ts +13 -0
  602. package/dist/transactions/components/shared/transactiondetails/actions/CategoryAction.d.ts +1 -1
  603. package/dist/transactions/components/shared/transactiondetails/actions/DateAction.d.ts +1 -1
  604. package/dist/transactions/components/shared/transactiondetails/actions/DeleteAction.d.ts +1 -1
  605. package/dist/transactions/components/shared/transactiondetails/actions/DeleteLogoAction.d.ts +1 -1
  606. package/dist/transactions/components/shared/transactiondetails/actions/ExcludeAction.d.ts +7 -0
  607. package/dist/transactions/components/shared/transactiondetails/actions/MemoAction.d.ts +1 -1
  608. package/dist/transactions/components/shared/transactiondetails/actions/SplitAction.d.ts +1 -1
  609. package/dist/transactions/components/shared/transactiondetails/actions/TagsAction.d.ts +1 -1
  610. package/dist/transactions/components/shared/transactiondetails/actions/index.d.ts +2 -1
  611. package/dist/transactions/components/shared/transactionlist/TransactionRow.d.ts +1 -1
  612. package/dist/transactions/components/shared/transactiontable/cells/PayeeCell.d.ts +4 -1
  613. package/dist/transactions/components/splitmanager/SplitManager.d.ts +1 -1
  614. package/dist/transactions/components/splitmanager/SplitRow.d.ts +1 -1
  615. package/dist/transactions/components/tagmanager/TagRow.d.ts +1 -1
  616. package/dist/transactions/components/transactionwidget/actions/EditCategoryAction.d.ts +1 -1
  617. package/dist/transactions/components/transactionwidget/actions/ExportCsvAction.d.ts +1 -1
  618. package/dist/transactions/constants/Actions.d.ts +4 -3
  619. package/dist/transactions/context/hooks.d.ts +1 -1
  620. package/dist/transactions/index.d.ts +0 -5
  621. package/dist/transactions/index.es.js +344 -351
  622. package/dist/transactions/utils/Filters.d.ts +1 -1
  623. package/dist/transactions/utils/Transactions.d.ts +17 -1
  624. package/dist/trends/TrendsFullWidget.d.ts +1 -1
  625. package/dist/trends/TrendsMiniWidget.d.ts +1 -1
  626. package/dist/trends/TrendsWidget.d.ts +1 -1
  627. package/dist/trends/components/CategoriesList.d.ts +1 -1
  628. package/dist/trends/components/CategoriesListItem.d.ts +1 -1
  629. package/dist/trends/components/CategoryDetails.d.ts +3 -0
  630. package/dist/trends/components/TrendsChartTotals.d.ts +1 -1
  631. package/dist/trends/components/TrendsInsights.d.ts +1 -1
  632. package/dist/trends/components/{TrendsTable.d.ts → TrendsTableContainer.d.ts} +2 -2
  633. package/dist/trends/components/trendstable/AccessibleSortIcon.d.ts +13 -0
  634. package/dist/trends/components/trendstable/TrendsTable.d.ts +12 -0
  635. package/dist/trends/index.d.ts +0 -1
  636. package/dist/trends/index.es.js +987 -874
  637. package/dist/trends/utils/SpendingData.d.ts +1 -1
  638. package/dist/trends/utils/TrendsTable.d.ts +5 -3
  639. package/dist/trends/utils/TrendsWidget.d.ts +7 -0
  640. package/dist/trends/utils/shared.d.ts +2 -2
  641. package/dist/{useAccountDisplayName-DbkgGLdg.mjs → useAccountDisplayName-CFa_MrS6.mjs} +5 -5
  642. package/dist/{useAriaLive-B3_pRUio.mjs → useAriaLive-MkYebyUR.mjs} +4 -4
  643. package/dist/{useDimensions-27p2evRx.mjs → useDimensions-CeDR9V8N.mjs} +6 -6
  644. package/dist/{useInsightsEnabled-dhmXeSyF.mjs → useInsightsEnabled-DaNLPmUU.mjs} +1 -1
  645. package/dist/{useScreenSize-B6JyS_Lj.mjs → useScreenSize-mWpmnh5w.mjs} +3 -3
  646. package/dist/{useWidgetLoadTimer-CrUzxN-P.mjs → useWidgetLoadTimer-CJb-RELP.mjs} +1 -1
  647. package/package.json +65 -43
  648. package/dist/AccountApi-DgZ8ILj1.mjs +0 -19
  649. package/dist/AccountDetailsHeader-BOV91g1o.mjs +0 -95
  650. package/dist/AccountFields-BRRH37K1.mjs +0 -140
  651. package/dist/AccountListItem-Ds5C0mOT.mjs +0 -90
  652. package/dist/AccountStore-BFKvXJSD.mjs +0 -244
  653. package/dist/Accounts-CuE8aSZN.mjs +0 -27
  654. package/dist/BeatApi-De2IaqH2.mjs +0 -21
  655. package/dist/BeatStore-D_NYuBSz.mjs +0 -81
  656. package/dist/BudgetUtil-CDSOZXem.mjs +0 -101
  657. package/dist/CashflowStore-naOtJcwo.mjs +0 -91
  658. package/dist/CategoryStore-DEqAnHbi.mjs +0 -186
  659. package/dist/CategoryUtil-CFHBvaV4.mjs +0 -80
  660. package/dist/CurrencyInput-DDQ4DBrE.mjs +0 -85
  661. package/dist/DateUtil-CVsMhbZU.mjs +0 -48
  662. package/dist/DebtsStore-Dv_T7Dts.mjs +0 -63
  663. package/dist/Dialog-CWymUiuO.mjs +0 -120
  664. package/dist/Donut-Dmy3JTWd.mjs +0 -86
  665. package/dist/Fetch-DecPFeGU.mjs +0 -119
  666. package/dist/FinstrongStore-BjFkMTIL.mjs +0 -451
  667. package/dist/GlobalAccountFilter-BpWlPAl5.mjs +0 -316
  668. package/dist/GoalStore-Dbjgft2i.mjs +0 -422
  669. package/dist/HeaderCell-DjuifqHJ.mjs +0 -6
  670. package/dist/LineChart-DHj-Bufi.mjs +0 -580
  671. package/dist/Loader-BSWSYqvn.mjs +0 -24
  672. package/dist/Localization-2MODESHW.mjs +0 -30
  673. package/dist/ManageIncome-DIIyqDTp.mjs +0 -585
  674. package/dist/MerchantStore-WvZ4gnQe.mjs +0 -37
  675. package/dist/MiniWidgetContainer-DKn7ndO6.mjs +0 -56
  676. package/dist/NetWorthStore-B6ziBtaH.mjs +0 -168
  677. package/dist/Notification-Bs1fdbzI.mjs +0 -95
  678. package/dist/NotificationStore-Ck2KdNmT.mjs +0 -79
  679. package/dist/OriginalBalanceAction-DFoG79Ba.mjs +0 -115
  680. package/dist/RecurringTransactionsStore-D_--5PWH.mjs +0 -277
  681. package/dist/RepeatingTransaction-C2txVA9O.mjs +0 -292
  682. package/dist/SearchBox-B2_zLv8-.mjs +0 -42
  683. package/dist/SettingsStore-CInvh-rQ.mjs +0 -269
  684. package/dist/SpendingLegend-BxefXiQd.mjs +0 -193
  685. package/dist/TransactionApi-CjBoLleL.mjs +0 -86
  686. package/dist/TransactionDetails-CPwv9xtZ.mjs +0 -1374
  687. package/dist/TransactionStore-D2aMUClq.mjs +0 -688
  688. package/dist/TrendsStore-BdsYfCc7.mjs +0 -183
  689. package/dist/User-CulNdZUr.mjs +0 -314
  690. package/dist/ViewMoreMicroCard-CDWR16_h.mjs +0 -1147
  691. package/dist/WidgetContainer-mzejMmz2.mjs +0 -555
  692. package/dist/accounts/stores/UiStore.d.ts +0 -10
  693. package/dist/accounts/utils/index.d.ts +0 -1
  694. package/dist/cashflow/api/CashflowApi.d.ts +0 -13
  695. package/dist/cashflow/stores/CashflowStore.d.ts +0 -8
  696. package/dist/categories/stores/UiStore.d.ts +0 -20
  697. package/dist/common/api/LocalizedCopyApi.d.ts +0 -8
  698. package/dist/common/api/index.d.ts +0 -10
  699. package/dist/common/components/barchart/Bar.d.ts +0 -25
  700. package/dist/common/components/barchart/BarChart.d.ts +0 -34
  701. package/dist/common/components/barchart/BarColumn.d.ts +0 -37
  702. package/dist/common/components/barchart/Legend.d.ts +0 -8
  703. package/dist/common/components/barchart/Util.d.ts +0 -42
  704. package/dist/common/components/barchart/index.d.ts +0 -1
  705. package/dist/common/stores/index.d.ts +0 -3
  706. package/dist/common/types/SpendingPlan.d.ts +0 -44
  707. package/dist/common/utils/Categories.d.ts +0 -6
  708. package/dist/debts/store/DebtsStore.d.ts +0 -9
  709. package/dist/debts/store/DebtsUiStore.d.ts +0 -13
  710. package/dist/debts/utils/DebtStore.d.ts +0 -4
  711. package/dist/debts/utils/DebtsWidget.d.ts +0 -14
  712. package/dist/debts/utils/shared.d.ts +0 -12
  713. package/dist/exportTransactionsToCSV-BU1jTY0Q.mjs +0 -48
  714. package/dist/help/constants/index.d.ts +0 -1
  715. package/dist/help/utils/getAccessibleHelpCategories.d.ts +0 -3
  716. package/dist/transactions/analytics.d.ts +0 -3
  717. package/dist/transactions/components/shared/transactiondetails/actions/HideAction.d.ts +0 -7
  718. package/dist/transactions/components/shared/transactionlist/DateRow.d.ts +0 -7
  719. package/dist/transactions/constants/Transaction.d.ts +0 -2
  720. package/dist/transactions/constants/TransactionsTable.d.ts +0 -17
  721. package/dist/transactions/stores/UiStore.d.ts +0 -25
  722. package/dist/transactions/utils/exportTransactionsToCSV.d.ts +0 -9
  723. package/dist/transactions/utils/sortAndFilterTransactions.d.ts +0 -3
  724. package/dist/trends/components/CategoryDetailDrawer.d.ts +0 -7
  725. package/dist/useCombineEvents-CRwX-qWE.mjs +0 -92
  726. package/dist/{common → core}/constants/Category.d.ts +0 -0
  727. package/dist/{common → core}/constants/DateFormats.d.ts +0 -0
  728. package/dist/{debts/constants/index.d.ts → core/constants/Debts.d.ts} +0 -0
  729. package/dist/{help → core}/constants/Help.d.ts +0 -0
  730. package/dist/{investments/constants/index.d.ts → core/constants/Investments.d.ts} +0 -0
  731. package/dist/{common → core}/constants/Numbers.d.ts +0 -0
  732. package/dist/{common → core}/constants/Table.d.ts +0 -0
  733. package/dist/{common → core}/stores/GlobalCopyStore.d.ts +0 -0
  734. package/dist/{common → core}/stores/GlobalUiStore.d.ts +0 -0
  735. package/dist/{common → core}/stores/UserStore.d.ts +1 -1
  736. /package/dist/{common → core}/types/Account.d.ts +0 -0
  737. /package/dist/{common → core}/types/Cashflow.d.ts +0 -0
  738. /package/dist/{common → core}/types/Category.d.ts +0 -0
  739. /package/dist/{common → core}/types/Date.d.ts +0 -0
  740. /package/dist/{common → core}/types/Debt.d.ts +0 -0
  741. /package/dist/{common → core}/types/Global.d.ts +0 -0
  742. /package/dist/{common → core}/types/GlobalCopy.d.ts +0 -0
  743. /package/dist/{common → core}/types/Goal.d.ts +0 -0
  744. /package/dist/{common → core}/types/Handlers.d.ts +0 -0
  745. /package/dist/{common → core}/types/Help.d.ts +0 -0
  746. /package/dist/{common → core}/types/Holding.d.ts +0 -0
  747. /package/dist/{common → core}/types/Institution.d.ts +0 -0
  748. /package/dist/{common → core}/types/LocalizedContent.d.ts +0 -0
  749. /package/dist/{common → core}/types/Merchant.d.ts +0 -0
  750. /package/dist/{common → core}/types/RepeatingTransaction.d.ts +0 -0
  751. /package/dist/{common → core}/types/ScheduledPayment.d.ts +0 -0
  752. /package/dist/{common → core}/types/ScreenSize.d.ts +0 -0
  753. /package/dist/{common → core}/types/Transaction.d.ts +0 -0
  754. /package/dist/{common → core}/types/User.d.ts +0 -0
  755. /package/dist/{common → core}/types/localization/AccountFilterCopy.d.ts +0 -0
  756. /package/dist/{common → core}/types/localization/AccountTypeCopy.d.ts +0 -0
  757. /package/dist/{common → core}/types/localization/AccountsCopy.d.ts +0 -0
  758. /package/dist/{common → core}/types/localization/AnalyticsCopy.d.ts +0 -0
  759. /package/dist/{common → core}/types/localization/CategoryCopy.d.ts +0 -0
  760. /package/dist/{common → core}/types/localization/ConnectCopy.d.ts +0 -0
  761. /package/dist/{common → core}/types/localization/CurrencyInputCopy.d.ts +0 -0
  762. /package/dist/{common → core}/types/localization/DateRangePickerCopy.d.ts +0 -0
  763. /package/dist/{common → core}/types/localization/FinstrongCopy.d.ts +0 -0
  764. /package/dist/{common → core}/types/localization/HelpCopy.d.ts +0 -0
  765. /package/dist/{common → core}/types/localization/InvestmentsCopy.d.ts +0 -0
  766. /package/dist/{common → core}/types/localization/MicroInsightsCopy.d.ts +0 -0
  767. /package/dist/{common → core}/types/localization/NetWorthCopy.d.ts +0 -0
  768. /package/dist/{common → core}/types/localization/NotificationsCopy.d.ts +0 -0
  769. /package/dist/{common → core}/types/localization/SettingsCopy.d.ts +0 -0
  770. /package/dist/{common → core}/types/localization/index.d.ts +0 -0
  771. /package/dist/{common → core}/utils/DateUtil.d.ts +0 -0
  772. /package/dist/{common → core}/utils/Fetch.d.ts +0 -0
  773. /package/dist/{common/utils/User.d.ts → core/utils/UserUtils.d.ts} +0 -0
@@ -0,0 +1,3002 @@
1
+ import { makeAutoObservable as d, runInAction as c, reaction as ut, autorun as St, observable as Tt } from "mobx";
2
+ import { d as At } from "./AccountUtils-T5_Odvos.mjs";
3
+ import { i as wt, f as bt, b as It, c as k } from "./BudgetUtil-Bg2AQJpQ.mjs";
4
+ import { A as h, f as M } from "./Account-BaJmiJAG.mjs";
5
+ import { F as g, B as v, G as H } from "./GlobalCopyApi-wcnDUzMV.mjs";
6
+ import { A as i } from "./ApiEndpoints-DXwIYNUV.mjs";
7
+ import Ct from "posthog-js";
8
+ import { endOfMonth as T } from "date-fns/endOfMonth";
9
+ import { startOfMonth as E } from "date-fns/startOfMonth";
10
+ import { startOfToday as y } from "date-fns/startOfToday";
11
+ import { C as w, b as Et } from "./Category-DEKZGLYe.mjs";
12
+ import { addDays as Dt } from "date-fns/addDays";
13
+ import { differenceInDays as Rt } from "date-fns/differenceInDays";
14
+ import { isBefore as F } from "date-fns/isBefore";
15
+ import { getUnixTime as m } from "date-fns/getUnixTime";
16
+ import { subMonths as $ } from "date-fns/subMonths";
17
+ import { c as Lt, d as vt, C as $t, h as Nt, i as Gt, s as Bt, j as xt, T as Mt, D as Ot } from "./TransactionUtils-BphBJBbU.mjs";
18
+ import { l as Pt, D as Ut } from "./DebtUtils-DD3186U-.mjs";
19
+ import { format as Ft } from "date-fns/format";
20
+ import { fromUnixTime as kt } from "date-fns/fromUnixTime";
21
+ import { f as P, D as U } from "./DateFormats-HudZ3Bjs.mjs";
22
+ import { T as S, c as W } from "./GoalsUtil-C9EnLWvC.mjs";
23
+ import { A as Ht, m as Wt, a as Vt, b as zt } from "./InvestmentUtil-BItV7uEs.mjs";
24
+ import { f as Kt, b as Qt, a as V, c as qt, d as Yt, e as jt, s as Xt } from "./NetWorthUtils-DilGN1nW.mjs";
25
+ import { f as Jt } from "./NotificationUtils-BRGFTePr.mjs";
26
+ import { isAfter as z } from "date-fns/isAfter";
27
+ import { isSameDay as K } from "date-fns/isSameDay";
28
+ import { isWithinInterval as gt } from "date-fns/isWithinInterval";
29
+ import { subDays as pt } from "date-fns/subDays";
30
+ import { e as O, f as Zt, a as f, b as Q } from "./RecurringTransactionsUtil-B3rLEx_g.mjs";
31
+ import { I as u, A as _, B as N } from "./Notification-DTNYSd8P.mjs";
32
+ import { endOfToday as q } from "date-fns/endOfToday";
33
+ import { formatISO as te } from "date-fns/formatISO";
34
+ import { addSeconds as ee } from "date-fns/addSeconds";
35
+ import { differenceInCalendarMonths as se } from "date-fns/differenceInCalendarMonths";
36
+ import { f as ae, b as ne } from "./TrendsUtil-D9z3kIj_.mjs";
37
+ import { addMonths as ie } from "date-fns/addMonths";
38
+ import { getMonth as L } from "date-fns/getMonth";
39
+ import { a as re } from "./Help-CkQTjORd.mjs";
40
+ class G {
41
+ fetchInstance;
42
+ constructor(t, e, s) {
43
+ this.fetchInstance = new g(t, e, void 0, s);
44
+ }
45
+ createAccount = async (t) => this.fetchInstance.post(i.ACCOUNTS, t).then((e) => e.account).catch((e) => e);
46
+ deleteAccount = async (t) => this.fetchInstance.delete(`${i.ACCOUNTS}/${t}`).catch((e) => e);
47
+ getAccounts = async () => this.fetchInstance.get(i.ACCOUNTS).then((t) => t.accounts).catch((t) => t);
48
+ getInstitutions = async () => this.fetchInstance.get(i.INSTITUTIONS).then((t) => t).catch((t) => t);
49
+ getMembers = async () => this.fetchInstance.get(i.MEMBERS).then((t) => t.members).catch((t) => t);
50
+ getMonthlyAccountBalances = async (t) => this.fetchInstance.get(`${i.ACCOUNTS}/${t}/monthly_account_balances`).then((e) => e.monthly_account_balances).catch((e) => e);
51
+ mergeAccounts = async (t) => this.fetchInstance.put(`${i.ACCOUNTS}/merge`, { accounts: t }).then((e) => e).catch((e) => e);
52
+ refreshAllMembers = async () => this.fetchInstance.get(`${i.MEMBERS}/refresh_all`).then((t) => t).catch((t) => t);
53
+ updateAccount = async (t) => this.fetchInstance.put(`${i.ACCOUNTS}/${t.guid}`, t).then((e) => e.account).catch((e) => e);
54
+ }
55
+ class Y {
56
+ fetchInstance;
57
+ constructor(t, e, s) {
58
+ this.fetchInstance = new g(t, e, void 0, s);
59
+ }
60
+ getAppData = async () => this.fetchInstance.get(i.APP_DATA).then((t) => t);
61
+ }
62
+ class j {
63
+ fetchInstance;
64
+ constructor(t) {
65
+ this.fetchInstance = new g(t, "", {
66
+ Accept: "application/json",
67
+ "Content-Type": "application/json"
68
+ });
69
+ }
70
+ getBanner = async (t) => {
71
+ try {
72
+ const e = `/banner/${t}/account_widget_banner`;
73
+ return this.fetchInstance?.get(e).then((s) => s.banner) ?? {};
74
+ } catch (e) {
75
+ return console.error("Error fetching banner:", e), null;
76
+ }
77
+ };
78
+ }
79
+ class X {
80
+ fetchInstance;
81
+ constructor(t, e, s) {
82
+ this.fetchInstance = new g(t, e, void 0, s);
83
+ }
84
+ addBudget = async (t, e, s = null) => this.fetchInstance.post(i.BUDGETS, {
85
+ amount: e,
86
+ category_guid: t.guid,
87
+ category_name: t.name,
88
+ parent_guid: s
89
+ }).then((a) => a.budget).catch((a) => {
90
+ throw a;
91
+ });
92
+ deleteBudget = async (t) => this.fetchInstance.delete(`${i.BUDGETS}/${t}`).then((e) => e).catch((e) => {
93
+ throw e;
94
+ });
95
+ getBudgets = async () => this.fetchInstance.get(i.BUDGETS).then((t) => t.budgets).catch((t) => t);
96
+ updateBudget = async (t) => this.fetchInstance.put(`${i.BUDGETS}/${t.guid}`, t).then((e) => e.budget).catch((e) => {
97
+ throw e;
98
+ });
99
+ addMerchantBudget = async (t, e) => this.fetchInstance.post(i.MERCHANT_BUDGETS, {
100
+ amount: e,
101
+ merchant_guid: t
102
+ }).then((s) => s.merchant_budget).catch((s) => {
103
+ throw s;
104
+ });
105
+ updateMerchantBudget = async (t, e) => this.fetchInstance.put(`${i.MERCHANT_BUDGETS}/${t}`, {
106
+ amount: e
107
+ }).then((s) => s.merchant_budget).catch((s) => {
108
+ throw s;
109
+ });
110
+ deleteMerchantBudget = async (t) => this.fetchInstance.delete(`${i.MERCHANT_BUDGETS}/${t}`).then((e) => e).catch((e) => {
111
+ throw e;
112
+ });
113
+ }
114
+ class J {
115
+ fetchInstance;
116
+ constructor(t, e, s) {
117
+ this.fetchInstance = new g(t, e, void 0, s);
118
+ }
119
+ addCategory = async (t) => this.fetchInstance.post(i.CATEGORIES, t).then((e) => e.category);
120
+ getCategories = async () => this.fetchInstance.get(i.CATEGORIES).then((t) => t.categories);
121
+ getDateRangeCategoryTotals = async (t, e, s) => s.length === 0 ? [] : this.fetchInstance.post(`${i.DATE_RANGE_CATEGORY_TOTALS}/from/${t}/to/${e}`, {
122
+ account_guid: s.map((a) => a.guid)
123
+ }).then((a) => a.date_range_category_totals);
124
+ getMonthlyCategoryTotals = async (t, e, s) => {
125
+ try {
126
+ const a = `${i.MONTHLY_CATEGORY_TOTALS}/from/${t}/to/${e}`;
127
+ if (s) {
128
+ const o = s.length === 0 ? [""] : s.map((l) => l.guid);
129
+ return (await this.fetchInstance.post(a, { account_guid: o })).monthly_category_totals;
130
+ } else
131
+ return (await this.fetchInstance.get(a)).monthly_category_totals;
132
+ } catch (a) {
133
+ throw console.error("Error fetching monthly category totals:", a), a;
134
+ }
135
+ };
136
+ removeCategory = async (t) => this.fetchInstance.delete(`${i.CATEGORIES}/${t}`);
137
+ updateCategory = async (t) => this.fetchInstance.put(`${i.CATEGORIES}/${t.guid}`, t).then((e) => e.category);
138
+ }
139
+ class Z {
140
+ fetchInstance;
141
+ constructor(t, e, s) {
142
+ this.fetchInstance = new g(t, e, void 0, s);
143
+ }
144
+ calculateHealthScore = async () => this.fetchInstance.post(`${i.HEALTH_SCORES}/calculate`).then((t) => t.health_score);
145
+ getAverageHealthScores = async () => this.fetchInstance.get(`${i.HEALTH_SCORES}/monthly_averages`).then((t) => t);
146
+ getDebtSpend = async () => this.fetchInstance.get(`${i.HEALTH_SCORES}/transactions/debt_spend`).then((t) => t);
147
+ getIncome = async () => this.fetchInstance.get(`${i.HEALTH_SCORES}/transactions/income`).then((t) => t);
148
+ getMonthlySummaries = async () => this.fetchInstance.get(`${i.HEALTH_SCORES}/monthly_summaries`).then((t) => t);
149
+ getHealthScoreChangeReports = async (t, e) => this.fetchInstance.get(`${i.HEALTH_SCORES}/change_report/from/${t}/to/${e}`).then((s) => s);
150
+ getPeerScore = async (t) => this.fetchInstance.get(`${i.HEALTH_SCORES}/average/${t}`).then((e) => e);
151
+ getSpendingFeeTransactions = async () => this.fetchInstance.get(`${i.HEALTH_SCORES}/transactions/spending_fee`).then((t) => t);
152
+ getStandardSpend = async () => this.fetchInstance.get(`${i.HEALTH_SCORES}/transactions/standard_spend`).then((t) => t);
153
+ }
154
+ class tt {
155
+ fetchInstance;
156
+ constructor(t, e, s) {
157
+ this.fetchInstance = new g(t, e, void 0, s);
158
+ }
159
+ addGoal = async (t) => this.fetchInstance.post(i.GOALS, t).then((e) => e.goal);
160
+ addRetirementGoal = async (t) => this.fetchInstance.post(i.RETIREMENT_GOALS, t).then((e) => e.retirement_goal);
161
+ addRetirementGoalAccount = async (t) => this.fetchInstance.post(i.RETIREMENT_GOAL_ACCOUNTS, t).then((e) => e.retirement_goal_account);
162
+ getGoalByGuid = async (t) => this.fetchInstance.get(`${i.GOALS}/${t}`).then((e) => e.goal);
163
+ getGoals = async () => this.fetchInstance.get(i.GOALS).then((t) => t.goals);
164
+ getMonthlyCashFlowProfile = async () => this.fetchInstance.get(i.MONTHLY_CASH_FLOW_PROFILE).then((t) => t.monthly_cash_flow_profile);
165
+ getRetirementGoals = async () => this.fetchInstance.get(i.RETIREMENT_GOALS).then((t) => t.retirement_goals);
166
+ getRetirementGoalAccounts = async () => this.fetchInstance.get(i.RETIREMENT_GOAL_ACCOUNTS).then((t) => t.retirement_goal_accounts);
167
+ removeGoal = async (t) => this.fetchInstance.delete(`${i.GOALS}/${t}`).then((e) => e);
168
+ removeRetirementGoal = async (t) => this.fetchInstance.delete(`${i.RETIREMENT_GOALS}/${t}`).then((e) => e);
169
+ removeRetirementGoalAccount = async (t) => this.fetchInstance.delete(`${i.RETIREMENT_GOAL_ACCOUNTS}/${t}`).then((e) => e);
170
+ reorderGoals = async (t) => this.fetchInstance.post(`${i.GOALS}/reposition`, { goals: t }).then((e) => e.goals);
171
+ updateGoal = async (t) => this.fetchInstance.put(`${i.GOALS}/${t.guid}`, t).then((e) => e.goal);
172
+ updateMonthlyCashFlowProfile = async (t) => this.fetchInstance.put(`${i.MONTHLY_CASH_FLOW_PROFILE}`, t).then((e) => e.monthly_cash_flow_profile);
173
+ updateRetirementGoal = async (t) => this.fetchInstance.put(`${i.RETIREMENT_GOALS}/${t.guid}`, t).then((e) => e.retirement_goal);
174
+ }
175
+ class et {
176
+ fetchInstance;
177
+ constructor(t, e, s) {
178
+ this.fetchInstance = new g(t, e, void 0, s);
179
+ }
180
+ createSupportTicket = async (t) => this.fetchInstance.post(i.SUPPORT_TICKETS, t).then((e) => e);
181
+ }
182
+ class st {
183
+ fetchInstance;
184
+ constructor(t, e, s) {
185
+ this.fetchInstance = new g(t, e, void 0, s);
186
+ }
187
+ getHoldings = async () => this.fetchInstance.get(i.HOLDINGS).then((t) => t.holdings);
188
+ updateHoldings = async (t) => this.fetchInstance.put(`${i.HOLDINGS}/${t.guid}`, t).then((e) => e.holding);
189
+ }
190
+ class at {
191
+ fetchInstance;
192
+ constructor(t, e, s) {
193
+ this.fetchInstance = new g(t, e, void 0, s);
194
+ }
195
+ getMerchants = async (t = [], e = [], s = 1, a = 25) => {
196
+ let o = i.MERCHANTS;
197
+ return o += `?page=${s}&per_page=${a}`, t.length && t.forEach((r) => o += `&fuzzy_name[]=${r}`), e.length && e.forEach((r) => o += `&guid[]=${r}`), this.fetchInstance.get(o).then((r) => r.merchants);
198
+ };
199
+ getMerchantByGuid = async (t) => this.fetchInstance.get(`${i.MERCHANTS}/${t}`).then((e) => e.merchant);
200
+ }
201
+ class nt {
202
+ fetchInstance;
203
+ constructor(t, e, s) {
204
+ this.fetchInstance = new g(t, e, void 0, s);
205
+ }
206
+ getNotifications = () => this.fetchInstance.get(i.NOTIFICATIONS).then(
207
+ (t) => t.notifications.map((e) => e.notification)
208
+ ).finally();
209
+ updateNotification = (t) => this.fetchInstance.put(`${i.NOTIFICATIONS}/${t.guid}`, {
210
+ guid: t.guid,
211
+ has_been_viewed: t.has_been_viewed
212
+ }).then((e) => e.notification).finally();
213
+ // Note: The notifications/mark_all_as_viewed endpoint is broken, but still returns 202.
214
+ // A bug ticket has been filed to fix it, but should not require any changes here.
215
+ markAllAsViewed = (t) => this.fetchInstance.put(`${i.NOTIFICATIONS}/mark_all_as_viewed`, { channel: t }).finally();
216
+ }
217
+ class it {
218
+ fetchInstance;
219
+ constructor(t, e, s) {
220
+ this.fetchInstance = new g(t, e, void 0, s);
221
+ }
222
+ addRepeatingTransaction = async (t) => this.fetchInstance.post(i.REPEATING_TRANSACTIONS, t).then((e) => e.repeating_transaction);
223
+ getRepeatingTransactions = async () => this.fetchInstance.get(i.REPEATING_TRANSACTIONS).then((t) => t.repeating_transactions);
224
+ updateRepeatingTransaction = async (t) => this.fetchInstance.put(
225
+ `${i.REPEATING_TRANSACTIONS}/${t.guid}`,
226
+ t
227
+ ).then((e) => e.repeating_transaction);
228
+ deleteRepeatingTransaction = async (t) => this.fetchInstance.delete(`${i.REPEATING_TRANSACTIONS}/${t}`).then((e) => e);
229
+ }
230
+ class rt {
231
+ fetchInstance;
232
+ constructor(t, e, s) {
233
+ this.fetchInstance = new g(t, e, void 0, s);
234
+ }
235
+ deleteDevice = async (t) => this.fetchInstance.delete(`${i.DEVICES}/${t}`).then((e) => e);
236
+ generateDeviceToken = async () => this.fetchInstance.get(`${i.USER}/mobile_token`).then((t) => t.mobile_token);
237
+ getDevices = async () => this.fetchInstance.get(i.DEVICES).then((t) => t.map((e) => e.device));
238
+ getNotificationProfiles = async () => this.fetchInstance.get(i.NOTIFICATION_PROFILES).then((t) => t.notification_profiles);
239
+ // verifications endpoints respond with HTTP status codes; they error otherwise
240
+ sendEmailVerification = async () => this.fetchInstance.post(i.EMAIL_VERIFICATIONS);
241
+ sendPhoneVerification = async () => this.fetchInstance.post(i.PHONE_VERIFICATIONS + "/deliver");
242
+ verifyPhoneToken = async (t) => this.fetchInstance.post(i.PHONE_VERIFICATIONS + "/verify", { sms_verification_token: t }).then((e) => ({ verified: e.verified }));
243
+ updateDevice = async (t) => this.fetchInstance.put(`${i.DEVICES}/${t.guid}`, t).then((e) => e.device);
244
+ updateNotificationProfile = async (t) => this.fetchInstance.put(`${i.NOTIFICATION_PROFILES}/${t.guid}`, t).then((e) => e.notification_profile);
245
+ updateUserCommunicationProfile = async (t) => this.fetchInstance.put(i.USER_COMMUNICATION_PROFILE, t).then((e) => e.user_communication_profile);
246
+ getInsightsNotificationProfiles = async () => this.fetchInstance.get(`${i.NOTIFICATION_PROFILES}/${i.INSIGHTS_NOTIFICATION_PROFILES}`).then((t) => t);
247
+ }
248
+ class B {
249
+ fetchInstance;
250
+ constructor(t, e, s) {
251
+ this.fetchInstance = new g(t, e, void 0, s);
252
+ }
253
+ addTag = async (t) => this.fetchInstance.post(i.TAGS, t).then((e) => e.tag).catch((e) => e);
254
+ addTagging = async (t) => this.fetchInstance.post(i.TAGGINGS, t).then((e) => e.tagging).catch((e) => e);
255
+ addTransaction = async (t) => this.fetchInstance.post(i.TRANSACTIONS, t).then((e) => e.transaction).catch((e) => e);
256
+ addTransactionRule = async (t) => this.fetchInstance.post(i.TRANSACTION_RULES, t).then((e) => e).catch((e) => e);
257
+ getTaggings = async () => this.fetchInstance.get(i.TAGGINGS).then((t) => t.map((e) => e.tagging));
258
+ getTags = async () => this.fetchInstance.get(i.TAGS).then((t) => t.map((e) => e.tag));
259
+ getTransactionRules = async () => this.fetchInstance.get(i.TRANSACTION_RULES).then((t) => t.transaction_rules);
260
+ getTransactionsByDateRange = async (t, e) => this.fetchInstance.get(`${i.TRANSACTIONS}/by_date/${t}/${e}`).then((s) => s.map((a) => a.transaction));
261
+ // DEPRECATED
262
+ getTransactionsByAccountsAndDateRange = async (t, e, s) => {
263
+ console.warn("DEPRECATED: getTransactionsByAccountsAndDateRange will be removed");
264
+ const a = t.reduce(
265
+ (o, r, l) => `${o}account_guids[]=${r}${l !== t.length - 1 ? "&" : ""}`,
266
+ ""
267
+ );
268
+ return this.fetchInstance.get(`${i.TRANSACTIONS}/by_date/${e}/${s}?${a}`).then((o) => o.map((r) => r.transaction));
269
+ };
270
+ // DEPRECATED
271
+ getTransactionsByGuids = async (t) => (console.warn("DEPRECATED: getTransactionsByGuids will be removed"), this.fetchInstance.post(`${i.TRANSACTIONS}/by_guids`, { guids: t.join("+") }).then((e) => e.map((s) => s.transaction)));
272
+ // DEPRECATED
273
+ getTransactionsByCategoryAndDate = async (t, e, s) => (console.warn("DEPRECATED: getTransactionsByCategoryAndDate will be removed"), this.fetchInstance.get(
274
+ `${i.TRANSACTIONS}/by_category_guid/${t}/by_date/${e}/${s}`
275
+ ).then((a) => a.map((o) => o.transaction)));
276
+ // DEPRECATED
277
+ getTransactionsByCategoryDateAndAccounts = async (t, e, s, a) => {
278
+ console.warn("DEPRECATED: getTransactionsByCategoryDateAndAccounts will be removed");
279
+ const o = a.reduce(
280
+ (r, l, p) => `${r}account_guids[]=${l}${p !== a.length - 1 ? "&" : ""}`,
281
+ ""
282
+ );
283
+ return this.fetchInstance.get(
284
+ `${i.TRANSACTIONS}/by_category_guid/${t}/by_date/${e}/${s}?${o}`
285
+ ).then((r) => r.map((l) => l.transaction));
286
+ };
287
+ // DEPRECATED
288
+ getTransactionsByCategoriesDateAndAccounts = async (t, e, s, a) => {
289
+ console.warn("DEPRECATED: getTransactionsByCategoriesDateAndAccounts will be removed");
290
+ const o = a.reduce(
291
+ (r, l, p) => `${r}account_guids[]=${l}${p !== a.length - 1 ? "&" : ""}`,
292
+ ""
293
+ );
294
+ return this.fetchInstance.get(
295
+ `${i.TRANSACTIONS}/by_category_guids/${t.join(
296
+ "+"
297
+ )}/by_date/${e}/${s}?${o}`
298
+ ).then((r) => r.map((l) => l.transaction));
299
+ };
300
+ /**
301
+ * DEPRECATED
302
+ * Get all transactions by the top level category, between begin date and end date, and optionally
303
+ * filtered by accounts
304
+ * @param categoryGuid The top level category guid
305
+ * @param beginDate the start date
306
+ * @param endDate the end date
307
+ * @param accountGuids an optional list of account guids
308
+ */
309
+ getTransactionsByTopLevelCategoryAndDate = async (t, e, s, a = []) => {
310
+ console.warn("DEPRECATED: getTransactionsByTopLevelCategoryAndDate will be removed");
311
+ let o = `${i.TRANSACTIONS}/by_top_level_category_guid/${t}/by_date/${e}/${s}`;
312
+ if (a.length > 0) {
313
+ const r = a.reduce(
314
+ (l, p, b) => `${l}account_guids[]=${p}${b !== a.length - 1 ? "&" : ""}`,
315
+ ""
316
+ );
317
+ o += `?${r}`;
318
+ }
319
+ return this.fetchInstance.get(o).then((r) => r.map((l) => l.transaction));
320
+ };
321
+ removeTag = async (t) => this.fetchInstance.delete(`${i.TAGS}/${t}`).then((e) => e).catch((e) => e);
322
+ removeTagging = async (t) => this.fetchInstance.delete(`${i.TAGGINGS}/${t}`).then((e) => e).catch((e) => e);
323
+ removeTransaction = async (t) => this.fetchInstance.delete(`${i.TRANSACTIONS}/${t}`).then((e) => e);
324
+ removeTransactionRule = async (t) => this.fetchInstance.delete(`${i.TRANSACTION_RULES}/${t}`).catch((e) => e);
325
+ removeTransactionSplit = async (t) => this.fetchInstance.delete(`${i.TRANSACTIONS}/${t}/unsplit`).then((e) => e).catch((e) => e);
326
+ updateTransactionRule = async (t) => this.fetchInstance.put(`${i.TRANSACTION_RULES}/${t.guid}`, t).then((e) => e).catch((e) => e);
327
+ updateTag = async (t) => this.fetchInstance.put(`${i.TAGS}/${t.guid}`, t).then((e) => e.tag).catch((e) => e);
328
+ updateTransaction = async (t) => this.fetchInstance.put(`${i.TRANSACTIONS}/${t.guid}`, t).then((e) => e.transaction).catch((e) => e);
329
+ }
330
+ class ot {
331
+ fetchInstance;
332
+ constructor(t, e, s) {
333
+ this.fetchInstance = new g(t, e, void 0, s);
334
+ }
335
+ getUserFeatures = async () => this.fetchInstance.get(i.USER_FEATURES).then((t) => t.user_features).catch((t) => t);
336
+ updateUser = async (t) => this.fetchInstance.put(i.USER, t).then((e) => e.user);
337
+ updateUserProfile = async (t) => this.fetchInstance.put(`${i.USER_PROFILES}/${t.guid}`, t).then((e) => e.user_profile);
338
+ }
339
+ class ct {
340
+ fetchInstance;
341
+ constructor(t, e) {
342
+ this.fetchInstance = new g(t, e);
343
+ }
344
+ requestWidgetUrl = async (t) => this.fetchInstance.post(i.WIDGET_URLS, t).then((e) => e.widget_url);
345
+ }
346
+ class oe {
347
+ globalStore;
348
+ api = new G("/", "");
349
+ accounts = [];
350
+ accountsLoaded = !1;
351
+ accountsLoading = !1;
352
+ institutions = [];
353
+ institutionsLoaded = !1;
354
+ institutionsLoading = !1;
355
+ members = [];
356
+ membersLoaded = !1;
357
+ membersLoading = !1;
358
+ uiStore;
359
+ constructor(t) {
360
+ this.globalStore = t, this.uiStore = new ce(), this.api = new G(t.endpoint, t.sessionToken, t.onError), d(this);
361
+ }
362
+ loadAccountData = async () => {
363
+ await Promise.all([this.loadAccounts(), this.loadMembers(), this.loadInstitutions()]);
364
+ };
365
+ get isAccountDataLoaded() {
366
+ return this.accountsLoaded && this.membersLoaded && this.institutionsLoaded;
367
+ }
368
+ get detailedAccounts() {
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
+ return At(
371
+ this.accounts,
372
+ this.institutions,
373
+ this.members,
374
+ e,
375
+ s
376
+ );
377
+ }
378
+ get accountsByTypeMap() {
379
+ return this.detailedAccounts.reduce((t, e) => {
380
+ const s = e.account_type;
381
+ let a = t.get(s);
382
+ return a || (a = []), a.push(e), t.set(s, a), t;
383
+ }, /* @__PURE__ */ new Map());
384
+ }
385
+ get cashAccounts() {
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
388
+ );
389
+ }
390
+ get cashBalance() {
391
+ return this.cashAccounts.reduce((t, e) => t + (e?.balance || 0), 0);
392
+ }
393
+ get checkingAccounts() {
394
+ return this.detailedAccounts.filter((t) => t.account_type === h.CHECKING);
395
+ }
396
+ get debtAccounts() {
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
399
+ );
400
+ }
401
+ get finstrongAccounts() {
402
+ const t = /* @__PURE__ */ new Set([
403
+ h.CHECKING,
404
+ h.SAVINGS,
405
+ h.CREDIT_CARD,
406
+ h.INVESTMENT
407
+ ]);
408
+ return this.detailedAccounts.filter((e) => t.has(e.account_type));
409
+ }
410
+ get investmentAccounts() {
411
+ return this.detailedAccounts.filter(
412
+ (t) => t.account_type === h.INVESTMENT
413
+ );
414
+ }
415
+ get manualAccounts() {
416
+ return this.detailedAccounts.filter((t) => t.is_manual);
417
+ }
418
+ get savingsAccounts() {
419
+ return this.detailedAccounts.filter((t) => t.account_type === h.SAVINGS);
420
+ }
421
+ get retirementAccounts() {
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 === M.WHOLE_LIFE || t.account_subtype === M.UNIVERSAL_LIFE || t.account_subtype === M.VARIABLE_UNIVERSAL_LIFE)
424
+ );
425
+ }
426
+ get visibleAccounts() {
427
+ return this.detailedAccounts.filter((t) => !t.is_hidden && !t.is_closed);
428
+ }
429
+ get visibleCashAccounts() {
430
+ return this.cashAccounts.filter((t) => !t.is_hidden);
431
+ }
432
+ get visibleCashBalance() {
433
+ return this.visibleCashAccounts.reduce((t, e) => t + (e?.balance || 0), 0);
434
+ }
435
+ get visibleCheckingAccounts() {
436
+ return this.checkingAccounts.filter((t) => !t.is_hidden);
437
+ }
438
+ get visibleDebtAccounts() {
439
+ return this.debtAccounts.filter((t) => !t.is_hidden);
440
+ }
441
+ get visibleFinstrongAccounts() {
442
+ return this.finstrongAccounts.filter(
443
+ (t) => !(t.is_closed || t.is_deleted || t.is_hidden)
444
+ );
445
+ }
446
+ get visibleRetirementAccounts() {
447
+ return this.retirementAccounts.filter((t) => !t.is_hidden);
448
+ }
449
+ get visibleInvestmentAccounts() {
450
+ return this.investmentAccounts.filter((t) => !t.is_hidden);
451
+ }
452
+ get visibleSavingsAccounts() {
453
+ return this.savingsAccounts.filter((t) => !t.is_hidden);
454
+ }
455
+ get savingsAndCheckingAccountsBalance() {
456
+ return this.savingsAndCheckingAccounts.reduce(
457
+ (e, s) => e + (s?.balance || 0),
458
+ 0
459
+ );
460
+ }
461
+ get savingsAndCheckingAccounts() {
462
+ return this.accounts.filter(
463
+ (e) => e.account_type === h.SAVINGS || e.account_type === h.CHECKING
464
+ );
465
+ }
466
+ setAccounts = (t) => {
467
+ this.accounts = t, this.accountsLoading = !1, this.accountsLoaded = !0;
468
+ };
469
+ setMembers = (t) => {
470
+ this.members = t, this.membersLoading = !1, this.membersLoaded = !0;
471
+ };
472
+ setInstitutions = (t) => {
473
+ this.institutions = t, this.institutionsLoading = !1, this.institutionsLoaded = !0;
474
+ };
475
+ addAccount = async (t) => {
476
+ try {
477
+ const e = await this.api.createAccount(t);
478
+ c(() => {
479
+ this.accounts = [...this.accounts, e];
480
+ });
481
+ } catch (e) {
482
+ console.error(`Error occurred while adding an account: ${e}`);
483
+ }
484
+ };
485
+ loadAccounts = async () => {
486
+ if (!this.accountsLoading) {
487
+ this.accountsLoading = !0;
488
+ try {
489
+ const t = await this.api.getAccounts();
490
+ this.setAccounts(t);
491
+ } catch (t) {
492
+ console.error(`Error occurred while loading accounts: ${t}`);
493
+ }
494
+ }
495
+ };
496
+ loadInstitutions = async () => {
497
+ if (!this.institutionsLoading) {
498
+ this.institutionsLoading = !0;
499
+ try {
500
+ const t = await this.api.getInstitutions();
501
+ this.setInstitutions(t);
502
+ } catch (t) {
503
+ console.error(`Error occurred while loading institutions: ${t}`);
504
+ }
505
+ }
506
+ };
507
+ loadMembers = async () => {
508
+ if (!this.membersLoading) {
509
+ this.membersLoading = !0;
510
+ try {
511
+ const t = await this.api.getMembers();
512
+ this.setMembers(t);
513
+ } catch (t) {
514
+ console.error(`Error occurred while loading members: ${t}`);
515
+ }
516
+ }
517
+ };
518
+ mergeAccounts = async (t) => {
519
+ try {
520
+ const e = await this.api.mergeAccounts(t), s = e[Object.keys(e)[0]];
521
+ c(() => {
522
+ const a = this.accounts.findIndex((r) => r.guid === t[1]);
523
+ this.accounts.splice(a, 1);
524
+ const o = this.accounts.findIndex((r) => r.guid === t[0]);
525
+ this.accounts.splice(o, 1, s);
526
+ });
527
+ } catch (e) {
528
+ console.error(`Error occurred while merging accounts: ${e}`);
529
+ }
530
+ };
531
+ /**
532
+ * DEPRECATED: Use loadAccountData instead
533
+ */
534
+ refreshAccounts = async () => {
535
+ await Promise.all([this.loadAccounts(), this.loadInstitutions(), this.loadMembers()]);
536
+ };
537
+ refreshMembers = async () => {
538
+ try {
539
+ await this.api.refreshAllMembers();
540
+ } catch (t) {
541
+ console.error(`Error occurredwhile refreshing members: ${t}`);
542
+ }
543
+ };
544
+ removeAccount = async (t) => {
545
+ try {
546
+ await this.api.deleteAccount(t);
547
+ const e = this.accounts.findIndex((s) => s.guid === t);
548
+ this.accounts.splice(e, 1);
549
+ } catch (e) {
550
+ console.error(`Error occurred while removing an account: ${e}`);
551
+ }
552
+ };
553
+ updateAccount = async (t) => {
554
+ try {
555
+ const e = await this.api.updateAccount(t), s = this.accounts.findIndex(
556
+ (a) => a.guid === e.guid
557
+ );
558
+ this.accounts.splice(s, 1, e);
559
+ } catch (e) {
560
+ console.error(`Error occurred while updating account: ${e}`);
561
+ }
562
+ };
563
+ updateAccountBalance = (t, e) => {
564
+ const s = this.accounts.find((a) => a.guid === t);
565
+ s && c(() => {
566
+ s.balance = (s.balance || 0) + e;
567
+ });
568
+ };
569
+ updateAccountFilter = async (t) => {
570
+ const e = [];
571
+ for (const [o, r] of t.entries()) {
572
+ const l = this.accounts.find((p) => p.guid === o);
573
+ l && l.is_excluded_from_accounts === r && (l.is_excluded_from_accounts = !r, e.push(this.api.updateAccount(l)));
574
+ }
575
+ const s = await Promise.all(e), a = [...this.accounts];
576
+ for (const o of s) {
577
+ const r = a.findIndex((l) => l.guid === o.guid);
578
+ r !== -1 && a.splice(r, 1, o);
579
+ }
580
+ this.setAccounts(a);
581
+ };
582
+ }
583
+ let ce = class {
584
+ selectedAccount = {};
585
+ selectedMember = {};
586
+ constructor() {
587
+ d(this);
588
+ }
589
+ setSelectedAccount = (t) => this.selectedAccount = t;
590
+ setSelectedMember = (t) => this.selectedMember = t;
591
+ };
592
+ class le {
593
+ globalStore;
594
+ api = new Y("/", "");
595
+ bannerApi = new j("/");
596
+ appData = {};
597
+ isAppDataLoaded = !1;
598
+ banner = {};
599
+ constructor(t) {
600
+ this.globalStore = t, this.api = new Y(t.endpoint, t.sessionToken, t.onError), d(this);
601
+ }
602
+ get appConfig() {
603
+ return this.globalStore.appConfig;
604
+ }
605
+ get clientCommunicationProfile() {
606
+ return this.appData.client_communication_profile;
607
+ }
608
+ get clientInsightProfile() {
609
+ return this.appData.client_insight_profile;
610
+ }
611
+ get user() {
612
+ return this.appData.user;
613
+ }
614
+ get userCommunicationProfile() {
615
+ return this.appData.user_communication_profile;
616
+ }
617
+ get userProfile() {
618
+ return this.appData.user_profile;
619
+ }
620
+ setAppData = (t) => {
621
+ this.appData = t, this.bannerApi = new j(t.address?.bullseye || "/"), this.isAppDataLoaded = !0;
622
+ };
623
+ loadAppData = async () => {
624
+ try {
625
+ const t = await this.api.getAppData();
626
+ this.setAppData(t);
627
+ } catch (t) {
628
+ console.error(`Error loading app data: ${t}`);
629
+ }
630
+ };
631
+ loadBanner = async () => {
632
+ try {
633
+ const t = this.user?.guid ?? null, e = t ? await this.bannerApi.getBanner(t) : {};
634
+ c(() => {
635
+ this.banner = e;
636
+ });
637
+ } catch (t) {
638
+ console.error(`Error loading banner: ${t}`);
639
+ }
640
+ };
641
+ setUser = (t) => this.appData.user = t;
642
+ setUserCommunicationProfile = (t) => this.appData.user_communication_profile = t;
643
+ setUserProfile = (t) => this.appData.user_profile = t;
644
+ }
645
+ class de {
646
+ globalStore;
647
+ survey = null;
648
+ currentQuestionIndex = 0;
649
+ question = null;
650
+ response = null;
651
+ responses = {};
652
+ constructor(t) {
653
+ this.globalStore = t, d(this);
654
+ }
655
+ get isLastQuestion() {
656
+ return this.currentQuestionIndex === this.surveyQuestions.length - 1;
657
+ }
658
+ get questionCount() {
659
+ return `${this.currentQuestionIndex + 1}/${this.surveyQuestions.length}`;
660
+ }
661
+ get responsePayload() {
662
+ return {
663
+ $survey_id: this.surveyId,
664
+ ...this.responses
665
+ };
666
+ }
667
+ // TODO hardcode elsewhere
668
+ get surveyId() {
669
+ return window.app?.postHogPublicKey === "phc_KclQGnOZEaYCttkpiVpuyOYeBlixGo6xNphYgWV4CXo" ? "0196caa6-9b37-0000-98a7-f04e8d56faf5" : "0196a6b0-ccde-0000-b980-0b84ea2fef4a";
670
+ }
671
+ get surveyQuestions() {
672
+ return this.survey ? this.survey.questions : [];
673
+ }
674
+ loadSurvey = (t = !1) => {
675
+ Ct.getActiveMatchingSurveys((e) => {
676
+ c(() => {
677
+ if (e.length > 0) {
678
+ const s = e.find((a) => a.id === this.surveyId);
679
+ s && (this.survey = s, this.currentQuestionIndex = 0, this.question = s.questions[0], this.response = null, this.responses = {});
680
+ }
681
+ });
682
+ }, t);
683
+ };
684
+ nextQuestion = () => {
685
+ this.currentQuestionIndex < this.surveyQuestions.length - 1 && (this.currentQuestionIndex += 1), this.response = null, this.question = this.surveyQuestions[this.currentQuestionIndex];
686
+ };
687
+ resetStore = () => {
688
+ this.survey = null, this.currentQuestionIndex = 0, this.question = null, this.response = null, this.responses = {};
689
+ };
690
+ setResponse = (t) => {
691
+ this.response = t, this.question && (this.responses[`$survey_response_${this.question.id}`] = t);
692
+ };
693
+ }
694
+ function he(n, t, e, s = "asc") {
695
+ const a = s === "desc" ? -1 : 1;
696
+ return [...n, ...t].sort((o, r) => o[e] < r[e] ? -1 * a : o[e] > r[e] ? 1 * a : 0);
697
+ }
698
+ const ue = (n) => ({
699
+ ...n,
700
+ //fields that are offer specific, adding here for visibility
701
+ image_url: n.image_url,
702
+ guid: n.guid,
703
+ created_at: n.created_at,
704
+ dismissed_at: n.dismissed_at,
705
+ active_at: n.campaign_activated_at,
706
+ displayed_at: n.has_been_viewed,
707
+ post_message_secondary: n.pulse_post_message_secondary,
708
+ //offer fields mapped to beat fields for functionality
709
+ title: n.pulse_title || n.campaign_name,
710
+ html_title: n.pulse_title || n.campaign_name,
711
+ short_title: n.pulse_title || n.campaign_name,
712
+ html_short_title: n.pulse_title || n.campaign_name,
713
+ micro_title: n.pulse_title || n.campaign_name,
714
+ html_micro_title: n.pulse_title || n.campaign_name,
715
+ supporting_action: n.pulse_call_to_action_text_secondary,
716
+ description: n.pulse_body,
717
+ html_description: n.pulse_body,
718
+ micro_description: n.pulse_body,
719
+ html_micro_description: n.pulse_body,
720
+ call_to_action: n.pulse_call_to_action_text,
721
+ html_micro_call_to_action: n.pulse_call_to_action_text,
722
+ micro_call_to_action: n.pulse_call_to_action_text,
723
+ is_dismissed: n.has_been_dismissed,
724
+ icon_type: 5,
725
+ template: "MarketingOffer",
726
+ //beat fields we null out
727
+ account_guids: [],
728
+ data_series: {},
729
+ has_been_displayed: !1,
730
+ is_obsolete: !1,
731
+ is_refreshable: !1,
732
+ is_sampled: !1,
733
+ merchant_guids: [],
734
+ payload: {},
735
+ pulse_campaign_name: n.campaign_name,
736
+ scheduled_payment_guids: [],
737
+ transaction_guids: [],
738
+ user_guid: "",
739
+ user_verification: 0
740
+ });
741
+ class ge {
742
+ globalStore;
743
+ api = new v("/", "");
744
+ beats = [];
745
+ isLoading = !1;
746
+ constructor(t) {
747
+ this.globalStore = t, this.api = new v(t.endpoint, t.sessionToken, t.onError), d(this);
748
+ }
749
+ loadBeats = async () => {
750
+ this.isLoading = !0;
751
+ const t = await this.api.getBeats(), s = (await this.api.getOffers()).map((a) => ue(a));
752
+ c(() => {
753
+ this.beats = he(t, s, "active_at", "desc"), this.isLoading = !1;
754
+ });
755
+ };
756
+ getFilteredBeats(t) {
757
+ const { categoryGuids: e, templates: s } = t;
758
+ let a = this.beats;
759
+ return e && (a = this.filterBeatsByCategory(a, e)), s && (a = this.filterBeatsByTemplate(a, s)), a;
760
+ }
761
+ // Return beats with any beat.category_guids that are in categoryGuids
762
+ filterBeatsByCategory(t, e) {
763
+ return t.filter((s) => s.category_guids?.some((a) => e.includes(a)));
764
+ }
765
+ // Return beats with a beat.template that is in templates
766
+ filterBeatsByTemplate(t, e) {
767
+ return t.filter((s) => e.some((a) => s.template === a));
768
+ }
769
+ }
770
+ class pe {
771
+ api = new X("/", "");
772
+ globalStore;
773
+ alert = "";
774
+ dateRange = { start: E(y()), end: T(y()) };
775
+ budgets = [];
776
+ selectedBudget;
777
+ selectedSubBudget;
778
+ isDataLoaded = !1;
779
+ theme = {};
780
+ merchantBudgets = [];
781
+ constructor(t) {
782
+ this.globalStore = t, this.api = new X(t.endpoint, t.sessionToken, t.onError), d(this);
783
+ }
784
+ loadBudgetData = async () => {
785
+ this.globalStore.recurringTransactionsStore.isDataLoaded || await this.globalStore.recurringTransactionsStore.loadRepeatingTransactionData(), await this.loadBudgets(), ut(
786
+ () => this.detailedBudgets,
787
+ (t) => {
788
+ if (t) {
789
+ const e = this.selectedBudget;
790
+ e && (this.selectedBudget = bt(t, e.guid));
791
+ const s = this.selectedSubBudget;
792
+ s && s.parent_guid && (this.selectedSubBudget = It(
793
+ t,
794
+ s.guid,
795
+ s.parent_guid
796
+ ));
797
+ }
798
+ }
799
+ );
800
+ };
801
+ get detailedBudgets() {
802
+ return k(
803
+ this.budgets.filter(
804
+ (t) => t.category_guid !== w.INCOME && t.category_guid !== w.TRANSFER && t.category_guid !== w.INVESTMENTS
805
+ ),
806
+ this.globalStore.categoryStore.detailedCategories,
807
+ this.globalStore.copyStore.copy.budgets,
808
+ this.theme
809
+ ).sort((t, e) => t.percentage > e.percentage ? -1 : t.percentage < e.percentage ? 1 : 0);
810
+ }
811
+ // TODO: Replace this with income from recurring transactions. Income budgets are deprecated.
812
+ get incomeBudget() {
813
+ return k(
814
+ this.budgets.filter((s) => !s.parent_guid),
815
+ this.globalStore.categoryStore.detailedCategories,
816
+ this.globalStore.copyStore.copy.budgets,
817
+ this.theme
818
+ ).reduce(
819
+ (s, a) => a.category_guid !== w.INCOME ? s : !s || a.percentage > s.percentage ? a : s,
820
+ void 0
821
+ )?.amount;
822
+ }
823
+ get unbudgetedCategories() {
824
+ return this.globalStore.categoryStore.spendCategories.filter(
825
+ (t) => !this.detailedBudgets.find((e) => e.category_guid === t.guid)
826
+ );
827
+ }
828
+ get totalBudgeted() {
829
+ return this.detailedBudgets.reduce((t, e) => t + e.amount, 0);
830
+ }
831
+ addBudget = async (t, e, s = null) => {
832
+ try {
833
+ const a = await this.api.addBudget(t, e, s);
834
+ c(() => {
835
+ this.budgets.push(a);
836
+ });
837
+ } catch (a) {
838
+ console.error(`Error adding budget: ${a}`);
839
+ }
840
+ };
841
+ deleteBudget = async (t) => {
842
+ try {
843
+ await this.api.deleteBudget(t), c(() => {
844
+ const e = this.budgets.findIndex((s) => s.guid === t);
845
+ e >= 0 && this.budgets.splice(e, 1);
846
+ });
847
+ } catch (e) {
848
+ console.error(`Error deleting budget: ${e}`);
849
+ }
850
+ };
851
+ loadBudgets = async () => {
852
+ try {
853
+ const t = await this.api.getBudgets();
854
+ this.setBudgets(t);
855
+ } catch (t) {
856
+ throw console.error(`Error occurred while loading budgets: ${t}`), t;
857
+ }
858
+ };
859
+ setAlert = (t) => this.alert = t;
860
+ setBudgets = (t) => {
861
+ this.budgets = t, this.isDataLoaded = !0;
862
+ };
863
+ setDateRange = (t) => this.dateRange = t;
864
+ setSelectedBudget = (t) => this.selectedBudget = t;
865
+ setSelectedSubBudget = (t) => this.selectedSubBudget = t;
866
+ setTheme = (t) => this.theme = t;
867
+ /**
868
+ * Recalculate budget by using the average amount from top-level categories
869
+ * @param categories Detailed categories
870
+ */
871
+ recalculateBudgets = async (t) => {
872
+ try {
873
+ for (const s of t) {
874
+ const a = this.budgets.find((o) => o.category_guid === s.guid);
875
+ a ? await this.api.updateBudget({
876
+ ...a,
877
+ amount: s.totalAverageAmount
878
+ }) : await this.api.addBudget(s, s.totalAverageAmount);
879
+ }
880
+ const e = this.budgets.filter(
881
+ (s) => !t.find((a) => a.guid === s.category_guid)
882
+ );
883
+ for (const s of e)
884
+ await this.api.deleteBudget(s.guid);
885
+ return await this.loadBudgets(), { data: this.budgets, isSuccess: !0 };
886
+ } catch (e) {
887
+ return console.error("error recalculating budgets", e), { data: [], isSuccess: !1 };
888
+ }
889
+ };
890
+ updateBudget = async (t) => {
891
+ try {
892
+ const e = await this.api.updateBudget(t);
893
+ c(() => {
894
+ const s = this.budgets.findIndex((a) => a.guid === t.guid);
895
+ s >= 0 && (this.budgets[s] = e);
896
+ });
897
+ } catch (e) {
898
+ console.error(`Error updating budget: ${e}`);
899
+ }
900
+ };
901
+ getMerchantBudgetByMerchantGuid = (t) => this.merchantBudgets.find(
902
+ (e) => e?.merchant_guid === t
903
+ );
904
+ setMerchantBudgets = (t) => {
905
+ this.merchantBudgets = t;
906
+ };
907
+ addMerchantBudget = async (t, e) => {
908
+ try {
909
+ const s = await this.api.addMerchantBudget(t, e);
910
+ return c(() => {
911
+ this.merchantBudgets.push(s);
912
+ }), { isSuccess: !0 };
913
+ } catch (s) {
914
+ return console.error(`Error adding merchant budget: ${s}`), { isSuccess: !1 };
915
+ }
916
+ };
917
+ updateMerchantBudget = async (t) => {
918
+ try {
919
+ const { guid: e, amount: s } = t, a = await this.api.updateMerchantBudget(e, s);
920
+ return c(() => {
921
+ const o = this.merchantBudgets.findIndex((r) => r.guid === t.guid);
922
+ o >= 0 && (this.merchantBudgets[o] = a);
923
+ }), { isSuccess: !0 };
924
+ } catch (e) {
925
+ return console.error(`Error updating merchant budget: ${e}`), { isSuccess: !1 };
926
+ }
927
+ };
928
+ deleteMerchantBudget = async (t) => {
929
+ try {
930
+ return await this.api.deleteMerchantBudget(t), c(() => {
931
+ this.merchantBudgets = this.merchantBudgets.filter((e) => e.guid !== t);
932
+ }), { isSuccess: !0 };
933
+ } catch (e) {
934
+ return console.error(`Error deleting merchant budget: ${e}`), { isSuccess: !1 };
935
+ }
936
+ };
937
+ }
938
+ class _e {
939
+ globalStore;
940
+ uiStore;
941
+ constructor(t) {
942
+ this.globalStore = t, this.uiStore = new fe(), d(this);
943
+ }
944
+ completeOnboarding = async () => {
945
+ const t = {
946
+ ...this.globalStore.userStore.userProfile,
947
+ has_completed_cash_flow_onboarding: !0
948
+ };
949
+ await this.globalStore.userStore.updateUserProfile(t);
950
+ };
951
+ }
952
+ let fe = class {
953
+ // Cashflow is hard-coded to display 30 days starting from today
954
+ dateRange = { start: y(), end: Dt(y(), 30) };
955
+ isDirty = !1;
956
+ nextIncome = void 0;
957
+ upcomingExpenses = [];
958
+ selectedCashAccounts = [];
959
+ constructor() {
960
+ d(this);
961
+ }
962
+ // Returns the number of days until the next income activity or 0 if there is no income activity
963
+ get daysUntilNextIncome() {
964
+ return this.nextIncome ? Math.abs(Rt(y(), this.nextIncome.expectedDate)) : 0;
965
+ }
966
+ // Returns the expenses (Activities) until the next income activity or the end of the month
967
+ // if there is no income activity
968
+ get expensesTilNextIncome() {
969
+ return this.upcomingExpenses.filter(
970
+ (t) => F(t.expectedDate, this.nextIncome?.expectedDate || T(/* @__PURE__ */ new Date()))
971
+ );
972
+ }
973
+ setNextIncome = (t) => {
974
+ this.nextIncome = t;
975
+ };
976
+ setUpcomingExpenses = (t) => {
977
+ this.upcomingExpenses = t;
978
+ };
979
+ setSelectedCashAccounts = (t) => this.selectedCashAccounts = t;
980
+ };
981
+ class ye {
982
+ globalStore;
983
+ uiStore;
984
+ api = new J("/", "");
985
+ categories = [];
986
+ categoriesLoaded = !1;
987
+ categoriesLoading = !1;
988
+ dateRangeCategoryTotals = [];
989
+ monthlyCategoryTotals = [];
990
+ dateRangeTotalsLoaded = !1;
991
+ dateRangeTotalsLoading = !1;
992
+ monthlyTotalsLoaded = !1;
993
+ monthlyTotalsLoading = !1;
994
+ constructor(t) {
995
+ this.globalStore = t, this.uiStore = new me(), this.api = new J(t.endpoint, t.sessionToken, t.onError), d(this);
996
+ }
997
+ get detailedCategories() {
998
+ return this.globalStore.isInitialized ? Lt(
999
+ this.categories,
1000
+ this.globalStore.copyStore.copy.categories,
1001
+ this.dateRangeCategoryTotals,
1002
+ this.monthlyCategoryTotals
1003
+ ) : [];
1004
+ }
1005
+ get detailedCategoriesWithTransactions() {
1006
+ return vt(
1007
+ this.detailedCategories,
1008
+ this.globalStore.transactionStore.sortedTransactions
1009
+ );
1010
+ }
1011
+ get incomeCategories() {
1012
+ return this.detailedCategories.filter((t) => t.is_income);
1013
+ }
1014
+ get spendCategories() {
1015
+ return this.detailedCategories.filter(
1016
+ (t) => !t.is_income && !t.isTransfer && t.guid !== w.INVESTMENTS
1017
+ );
1018
+ }
1019
+ get transferCategories() {
1020
+ return this.detailedCategories.filter((t) => t.isTransfer);
1021
+ }
1022
+ setCategories = (t) => {
1023
+ this.categories = t, this.categoriesLoading = !1, this.categoriesLoaded = !0;
1024
+ };
1025
+ setMonthlyCategoryTotals = (t) => {
1026
+ this.monthlyCategoryTotals = t, this.monthlyTotalsLoading = !1, this.monthlyTotalsLoaded = !0;
1027
+ };
1028
+ setDateRangeCategoryTotals = (t) => {
1029
+ this.dateRangeCategoryTotals = t, this.dateRangeTotalsLoading = !1, this.dateRangeTotalsLoaded = !0;
1030
+ };
1031
+ get trendsCategories() {
1032
+ return this.detailedCategories.filter((t) => t.totalAmount !== 0).filter((t) => t.guid !== w.INVESTMENTS && t.guid !== w.TRANSFER);
1033
+ }
1034
+ addCategory = async (t, e) => {
1035
+ const s = { name: t, parent_guid: e };
1036
+ try {
1037
+ await this.api.addCategory(s), await this.loadCategories();
1038
+ } catch (a) {
1039
+ console.error(`Error occurred while adding category: ${a}`);
1040
+ }
1041
+ };
1042
+ loadCategories = async () => {
1043
+ if (!this.categoriesLoading) {
1044
+ this.categoriesLoading = !0;
1045
+ try {
1046
+ const t = await this.api.getCategories();
1047
+ this.setCategories(t);
1048
+ } catch (t) {
1049
+ console.error(`Error occurred while getting categories: ${t}`);
1050
+ }
1051
+ }
1052
+ };
1053
+ loadDateRangeCategoryTotals = async (t, e, s) => {
1054
+ if (!this.dateRangeTotalsLoading) {
1055
+ this.dateRangeTotalsLoading = !0;
1056
+ try {
1057
+ const a = await this.api.getDateRangeCategoryTotals(
1058
+ m(e),
1059
+ m(s),
1060
+ t
1061
+ );
1062
+ this.setDateRangeCategoryTotals(a);
1063
+ } catch (a) {
1064
+ console.error(`Error occurred while getting date range category totals: ${a}`);
1065
+ }
1066
+ }
1067
+ };
1068
+ loadMonthlyCategoryTotals = async (t = this.globalStore.globalUiStore.selectedAccounts, e, s) => {
1069
+ if (this.monthlyTotalsLoading) return;
1070
+ this.monthlyTotalsLoading = !0;
1071
+ const a = m(E(e ?? $(/* @__PURE__ */ new Date(), 11))), o = m(T(s ?? /* @__PURE__ */ new Date()));
1072
+ try {
1073
+ const r = await this.api.getMonthlyCategoryTotals(a, o, t);
1074
+ this.setMonthlyCategoryTotals(r);
1075
+ } catch (r) {
1076
+ console.error(`Error occurred while getting monthly category totals: ${r}`);
1077
+ }
1078
+ };
1079
+ reloadCategoryTotals = async (t, e, s) => {
1080
+ const a = e ?? $(/* @__PURE__ */ new Date(), 11), o = s ?? T(/* @__PURE__ */ new Date());
1081
+ try {
1082
+ await Promise.all([
1083
+ this.loadMonthlyCategoryTotals(t, a, o),
1084
+ this.loadDateRangeCategoryTotals(t, a, o)
1085
+ ]);
1086
+ } catch (r) {
1087
+ console.error(`Error occurred while getting category totals: ${r}`);
1088
+ }
1089
+ };
1090
+ removeCategory = async (t) => {
1091
+ try {
1092
+ await this.api.removeCategory(t), await this.loadCategories();
1093
+ } catch (e) {
1094
+ console.error(`Error occurred while removing category: ${e}`);
1095
+ }
1096
+ };
1097
+ updateCategory = async (t) => {
1098
+ try {
1099
+ await this.api.updateCategory(t), await this.loadCategories();
1100
+ } catch (e) {
1101
+ console.error(`Error occurred while updating category: ${e}`);
1102
+ }
1103
+ };
1104
+ // TODO: Remove this after refactoring Trends components to use detailedCategories
1105
+ getCategoryName = (t) => this.categories.find((s) => s.guid === t)?.name ?? Et[t];
1106
+ }
1107
+ let me = class {
1108
+ expandedGuid = null;
1109
+ selectedGuid = null;
1110
+ searchValue = "";
1111
+ showSelected = !0;
1112
+ shouldDisableDrawerScroll = !1;
1113
+ unselectable = [];
1114
+ unselectableText = "";
1115
+ savedOnSelect;
1116
+ // todo
1117
+ constructor() {
1118
+ d(this);
1119
+ }
1120
+ setExpandedGuid = (t) => this.expandedGuid = t;
1121
+ setSelectedGuid = (t) => this.selectedGuid = t;
1122
+ setSearchValue = (t) => this.searchValue = t;
1123
+ setShouldDisableDrawerScroll = (t) => this.shouldDisableDrawerScroll = t;
1124
+ setShowSelected = (t) => this.showSelected = t;
1125
+ setUnselectable = (t) => this.unselectable = t;
1126
+ setUnselectableText = (t) => this.unselectableText = t;
1127
+ onSelect = (t) => this.savedOnSelect(t);
1128
+ setOnSelect = (t) => this.savedOnSelect = t;
1129
+ };
1130
+ class Se {
1131
+ globalStore;
1132
+ widgetApi = new ct("/", "");
1133
+ constructor(t) {
1134
+ this.globalStore = t, this.widgetApi = new ct(t.endpoint, t.sessionToken), d(this);
1135
+ }
1136
+ loadWidget = async ({ widget: t = "connect_widget", mode: e = "light", ...s }) => await this.widgetApi.requestWidgetUrl({
1137
+ widget_url: { widget_type: t, color_scheme: e, ...s }
1138
+ });
1139
+ }
1140
+ class Te {
1141
+ globalStore;
1142
+ uiStore;
1143
+ constructor(t) {
1144
+ this.globalStore = t, this.uiStore = new Ae(), d(this);
1145
+ }
1146
+ get debts() {
1147
+ 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;
1148
+ return Pt(a, s);
1149
+ }
1150
+ get totalMonthlyPayments() {
1151
+ return this.debts.map((e) => Number(e.monthly_payment)).filter((e) => !isNaN(e)).reduce((e, s) => e + s, 0);
1152
+ }
1153
+ }
1154
+ let Ae = class {
1155
+ isLoading = !1;
1156
+ selectedDebtChartData = {};
1157
+ selectedDebtPriority = Ut.LOWEST_BALANCE;
1158
+ constructor() {
1159
+ d(this);
1160
+ }
1161
+ get showError() {
1162
+ const { interest_rate: t, monthly_payment: e } = this.selectedDebtChartData;
1163
+ return t === void 0 || e === void 0;
1164
+ }
1165
+ get showCompleted() {
1166
+ return this.selectedDebtChartData.is_paid_off;
1167
+ }
1168
+ setIsLoading = (t) => this.isLoading = t;
1169
+ setSelectedDebtChartData = (t) => this.selectedDebtChartData = t;
1170
+ setSelectedDebtPriority = (t) => this.selectedDebtPriority = t;
1171
+ };
1172
+ 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) => ({
1173
+ x: P(
1174
+ new Date(0, t.monthly_health_score_average.month - 1, 1),
1175
+ U.MONTH_SHORT
1176
+ ),
1177
+ y: Math.round(t.monthly_health_score_average.average_health_score)
1178
+ })), be = (n) => n.map(({ transaction: e }) => ({
1179
+ ...e
1180
+ })).sort((e, s) => s.date - e.date);
1181
+ class Ie {
1182
+ api = new Z("/", "");
1183
+ augmentedChartData = [];
1184
+ averageHealthScores = [];
1185
+ monthlySummaries = [];
1186
+ incomeTransactions = [];
1187
+ debtSpendTransactions = [];
1188
+ spendingFeeTransactions = [];
1189
+ spendTransactions = [];
1190
+ globalStore;
1191
+ healthScore = {};
1192
+ healthScoreChange;
1193
+ healthScoreChangeReports = [];
1194
+ peerScore = null;
1195
+ isSpendingInitialized = !1;
1196
+ isIncomeInitialized = !1;
1197
+ constructor(t) {
1198
+ this.globalStore = t, this.api = new Z(t.endpoint, t.sessionToken, t.onError), d(this);
1199
+ }
1200
+ setSpendingInitialized = (t) => {
1201
+ this.isSpendingInitialized = t;
1202
+ };
1203
+ setIncomeInitialized = (t) => {
1204
+ this.isIncomeInitialized = t;
1205
+ };
1206
+ calculateHealthScore = async (t = !0) => {
1207
+ try {
1208
+ const e = await this.api.calculateHealthScore();
1209
+ let s = 0;
1210
+ t && await this.loadHealthScoreChangeReports();
1211
+ const a = e?.health_score || 0, o = this.healthScoreChangeReports.at(-1)?.older_health_score || 0;
1212
+ s = a - o, c(() => {
1213
+ this.healthScore = e, this.healthScoreChange = s;
1214
+ });
1215
+ } catch (e) {
1216
+ console.error("Error calculating health score:", e);
1217
+ }
1218
+ };
1219
+ loadAverageHealthScores = async () => {
1220
+ try {
1221
+ const t = await this.api.getAverageHealthScores();
1222
+ c(() => {
1223
+ this.averageHealthScores = t;
1224
+ });
1225
+ } catch (t) {
1226
+ console.error("Error loading average health scores:", t);
1227
+ }
1228
+ };
1229
+ loadMonthlySummaries = async () => {
1230
+ try {
1231
+ const t = await this.api.getMonthlySummaries();
1232
+ c(() => {
1233
+ this.monthlySummaries = t;
1234
+ });
1235
+ } catch (t) {
1236
+ console.error("Error loading monthly summaries:", t);
1237
+ }
1238
+ };
1239
+ loadDebtSpend = async () => {
1240
+ try {
1241
+ const t = await this.api.getDebtSpend();
1242
+ c(() => {
1243
+ this.debtSpendTransactions = t;
1244
+ });
1245
+ } catch (t) {
1246
+ console.error("Error loading debt spend:", t);
1247
+ }
1248
+ };
1249
+ loadIncome = async () => {
1250
+ this.setIncomeInitialized(!1);
1251
+ try {
1252
+ const t = await this.api.getIncome();
1253
+ c(() => {
1254
+ this.incomeTransactions = t, this.setIncomeInitialized(!0);
1255
+ });
1256
+ } catch (t) {
1257
+ console.error("Error loading income:", t);
1258
+ }
1259
+ };
1260
+ loadHealthScoreChangeReports = async () => {
1261
+ const t = m($(/* @__PURE__ */ new Date(), 2)), e = m(/* @__PURE__ */ new Date());
1262
+ try {
1263
+ const s = await this.api.getHealthScoreChangeReports(
1264
+ t,
1265
+ e
1266
+ );
1267
+ c(() => {
1268
+ this.healthScoreChangeReports = s;
1269
+ });
1270
+ } catch (s) {
1271
+ console.error("Error loading health score change reports:", s);
1272
+ }
1273
+ };
1274
+ loadPeerScore = async () => {
1275
+ const t = Ft(kt(this.globalStore.appDataStore.user.birthday), "yyyy");
1276
+ try {
1277
+ const e = await this.api.getPeerScore(t);
1278
+ c(() => {
1279
+ this.peerScore = e;
1280
+ });
1281
+ } catch (e) {
1282
+ console.error("Error loading peer score:", e);
1283
+ }
1284
+ };
1285
+ loadAugmentedChartData = async () => {
1286
+ try {
1287
+ const t = await this.api.getAverageHealthScores();
1288
+ c(() => {
1289
+ this.augmentedChartData = we(t);
1290
+ });
1291
+ } catch (t) {
1292
+ console.error(`Error occurred while getting augmented chart data: ${t}`);
1293
+ }
1294
+ };
1295
+ getSpendingFeeTransactions = async () => {
1296
+ try {
1297
+ const t = await this.api.getSpendingFeeTransactions(), e = be(t);
1298
+ c(() => {
1299
+ this.spendingFeeTransactions = e;
1300
+ });
1301
+ } catch (t) {
1302
+ console.error(`Error occurred while getting spending fee transactions: ${t}`);
1303
+ }
1304
+ };
1305
+ loadSpendTransactions = async () => {
1306
+ this.setSpendingInitialized(!1);
1307
+ try {
1308
+ const t = await this.api.getStandardSpend();
1309
+ c(() => {
1310
+ this.spendTransactions = [...t], this.setSpendingInitialized(!0);
1311
+ });
1312
+ } catch (t) {
1313
+ console.error("Error loading spend transactions:", t);
1314
+ }
1315
+ };
1316
+ get spendAndDebtTransactions() {
1317
+ return [...this.spendTransactions, ...this.debtSpendTransactions];
1318
+ }
1319
+ get allTransactions() {
1320
+ return {
1321
+ income: this.incomeTransactions,
1322
+ debtSpend: this.debtSpendTransactions,
1323
+ spendingFee: this.spendingFeeTransactions,
1324
+ spend: this.spendTransactions
1325
+ };
1326
+ }
1327
+ handleFinstrongWidgetPrimaryCtaClick = (t) => () => {
1328
+ };
1329
+ }
1330
+ const lt = {
1331
+ clientConfig: {},
1332
+ clientStyleProfile: {},
1333
+ config: {
1334
+ assets_prefix: "/assets",
1335
+ bundle: "widgetLoader",
1336
+ client_guid: "",
1337
+ dashboard_accounts_index: 6,
1338
+ dashboard_accounts_location: 0,
1339
+ dashboard_activity_index: 2,
1340
+ dashboard_activity_location: 0,
1341
+ dashboard_budgets_index: 5,
1342
+ dashboard_budgets_location: 1,
1343
+ dashboard_cash_flow_index: 0,
1344
+ dashboard_cash_flow_location: 0,
1345
+ dashboard_connect_index: 7,
1346
+ dashboard_connect_location: 1,
1347
+ dashboard_insights_index: 3,
1348
+ dashboard_insights_location: 1,
1349
+ dashboard_spending_index: 1,
1350
+ dashboard_spending_location: 1,
1351
+ dashboard_survey_index: 8,
1352
+ dashboard_survey_location: 1,
1353
+ dashboard_trends_index: 4,
1354
+ dashboard_trends_location: 0,
1355
+ display_account_number_in_accounts: !0,
1356
+ display_add_manual_transaction_in_transactions: !0,
1357
+ display_available_balance_in_accounts: !0,
1358
+ display_email_edit_field_in_settings: !0,
1359
+ display_mobile_devices_in_settings: !0,
1360
+ display_notification_settings_in_settings: !0,
1361
+ display_only_external_accounts_in_accounts: !1,
1362
+ display_password_options_in_settings: !0,
1363
+ display_sms_edit_field_in_settings: !0,
1364
+ display_terms_and_conditions: !0,
1365
+ display_user_profile_in_settings: !0,
1366
+ display_user_transaction_rules_in_settings: !0,
1367
+ display_widget_headings: !0,
1368
+ enable_add_account_in_zero_state: !0,
1369
+ enable_aggregation_prompts: !0,
1370
+ enable_external_accounts_in_goals_widget: !0,
1371
+ enable_funds_transfers_in_goals_widget: !1,
1372
+ enable_manual_accounts: !0,
1373
+ enable_mark_account_closed_for_held_accounts: !0,
1374
+ enable_mark_account_duplicate_for_held_accounts: !0,
1375
+ enable_renaming_home_accounts: !0,
1376
+ enable_support_requests: !1,
1377
+ language: "en-US",
1378
+ product_name: "Money Dashboard",
1379
+ session_token: "",
1380
+ show_account_nicknames_in_master: !1,
1381
+ show_accounts_widget_in_master: !0,
1382
+ show_budgets_widget_in_master: !0,
1383
+ show_carousel_card_border_in_pulse_micro_widget: !1,
1384
+ show_cash_flow_widget_in_master: !0,
1385
+ show_connections_widget_in_master: !0,
1386
+ show_debts_widget_in_master: !0,
1387
+ show_finstrong_widget_in_master: !0,
1388
+ show_full_experience_link_in_pulse_micro_widget: !1,
1389
+ show_full_experience_link_in_pulse_mini_widget: !1,
1390
+ show_goals_widget_in_master: !0,
1391
+ show_help_widget_in_master: !0,
1392
+ show_horizontal_padding_in_pulse_micro_widget: !0,
1393
+ show_icon_in_pulse_micro_widget: !0,
1394
+ show_insights_widget_in_master: !0,
1395
+ show_investments_widget_in_master: !1,
1396
+ show_mx_branding: !0,
1397
+ show_navigation_controls_in_pulse_micro_widget: !0,
1398
+ show_net_worth_widget_in_master: !0,
1399
+ show_notifications_widget_in_master: !0,
1400
+ show_recurring_transactions_widget_in_master: !0,
1401
+ show_settings_widget_in_master: !0,
1402
+ show_spending_plan_widget_in_master: !1,
1403
+ show_spending_widget_in_master: !0,
1404
+ show_transactions_widget_in_master: !0,
1405
+ show_trends_widget_in_master: !0,
1406
+ type: "money-dashboard",
1407
+ websocket: {
1408
+ hmac: "",
1409
+ token: "",
1410
+ url: ""
1411
+ },
1412
+ widgets_display_name: "Money Dashboard "
1413
+ },
1414
+ honeyBadgerPublicKey: "",
1415
+ options: {
1416
+ assets_prefix: "/assets",
1417
+ brokaw_auth: {
1418
+ token: "",
1419
+ hmac: "",
1420
+ url: ""
1421
+ },
1422
+ brokaw_websocket_url: "",
1423
+ bundle: "widgetLoader",
1424
+ custom_copy_namespace: "",
1425
+ language: "en-US",
1426
+ product_name: "Master Widget",
1427
+ session_token: "",
1428
+ subtype: "master",
1429
+ type: "money_dashboard"
1430
+ },
1431
+ postHogPublicKey: "phc_1fVYJICC69TpW4wagp9o2XqQ8E7X98cAmcR5psSpfkE",
1432
+ userFeatures: []
1433
+ };
1434
+ class Ns {
1435
+ // Global properties
1436
+ appConfig = lt;
1437
+ endpoint = "/";
1438
+ sessionToken = "";
1439
+ onError;
1440
+ onStoreUpdate;
1441
+ // Data Stores
1442
+ accountStore;
1443
+ appDataStore;
1444
+ analyticsStore;
1445
+ beatStore;
1446
+ budgetsStore;
1447
+ cashflowStore;
1448
+ categoryStore;
1449
+ connectStore;
1450
+ copyStore;
1451
+ debtsStore;
1452
+ finstrongStore;
1453
+ goalStore;
1454
+ helpStore;
1455
+ holdingStore;
1456
+ merchantStore;
1457
+ netWorthStore;
1458
+ notificationStore;
1459
+ recurringTransactionsStore;
1460
+ settingsStore;
1461
+ transactionStore;
1462
+ trendsStore;
1463
+ userStore;
1464
+ // UI Stores
1465
+ globalUiStore;
1466
+ constructor(t = lt, e = "/", s, a) {
1467
+ this.appConfig = t, this.endpoint = e, this.sessionToken = t.options.session_token ?? "", this.onError = s, this.onStoreUpdate = a, this.accountStore = new oe(this), this.appDataStore = new le(this), this.analyticsStore = new de(this), this.beatStore = new ge(this), this.budgetsStore = new pe(this), this.cashflowStore = new _e(this), this.categoryStore = new ye(this), this.connectStore = new Se(this), this.copyStore = new Ee(this), this.debtsStore = new Te(this), this.finstrongStore = new Ie(this), this.goalStore = new De(this), this.helpStore = new ve(this), this.holdingStore = new $e(this), this.merchantStore = new Ne(this), this.netWorthStore = new Ge(this), this.notificationStore = new Be(this), this.recurringTransactionsStore = new xe(this), this.settingsStore = new Pe(this), this.transactionStore = new Ue(this), this.trendsStore = new ke(this), this.userStore = new He(this), this.globalUiStore = new Ce(this), d(this), St(() => {
1468
+ const { transactions: o } = this.transactionStore;
1469
+ this.emitUpdate({
1470
+ transactions: o
1471
+ });
1472
+ });
1473
+ }
1474
+ get isInitialized() {
1475
+ return this.globalUiStore.isInitialized;
1476
+ }
1477
+ // emits change triggered in the autorun
1478
+ emitUpdate = (t) => {
1479
+ this.onStoreUpdate?.(t);
1480
+ };
1481
+ loadConfigData = async () => {
1482
+ await Promise.all([
1483
+ // Load copy, config and user data
1484
+ this.copyStore.loadCopy(),
1485
+ this.appDataStore.loadAppData(),
1486
+ this.accountStore.refreshMembers(),
1487
+ this.userStore.loadUserFeatures()
1488
+ ]);
1489
+ };
1490
+ loadData = async ({
1491
+ accounts: t,
1492
+ appData: e,
1493
+ associatedBeats: s,
1494
+ categories: a,
1495
+ institutions: o,
1496
+ transactionRules: r,
1497
+ transactions: l,
1498
+ userFeatures: p,
1499
+ merchantBudgets: b
1500
+ } = {}) => {
1501
+ (!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);
1502
+ };
1503
+ }
1504
+ class Ce {
1505
+ globalStore;
1506
+ accountFilterMap = /* @__PURE__ */ new Map();
1507
+ displayedDate = /* @__PURE__ */ new Date();
1508
+ displayedDateRange = {
1509
+ start: E(this.displayedDate),
1510
+ end: T(this.displayedDate)
1511
+ };
1512
+ constructor(t) {
1513
+ d(this), this.globalStore = t, ut(
1514
+ () => this.globalStore.accountStore.visibleAccounts,
1515
+ (e) => {
1516
+ this.populateAccountFilterMap(e);
1517
+ }
1518
+ );
1519
+ }
1520
+ get allSelectedAccounts() {
1521
+ return this.globalStore.accountStore.detailedAccounts.filter(
1522
+ (t) => !t.is_excluded_from_accounts
1523
+ );
1524
+ }
1525
+ get selectedAccounts() {
1526
+ return this.globalStore.accountStore.visibleAccounts.filter(
1527
+ (t) => !t.is_excluded_from_accounts
1528
+ );
1529
+ }
1530
+ get selectedAccountGuids() {
1531
+ return this.selectedAccounts.map((t) => t.guid);
1532
+ }
1533
+ get isCopyLoaded() {
1534
+ return this.globalStore.copyStore.isInitialized;
1535
+ }
1536
+ get isConfigLoaded() {
1537
+ return this.globalStore.appDataStore.isAppDataLoaded;
1538
+ }
1539
+ get areUserFeaturesLoaded() {
1540
+ return this.globalStore.userStore.userFeaturesLoaded;
1541
+ }
1542
+ get isInitialized() {
1543
+ return this.isCopyLoaded && this.isConfigLoaded && this.areUserFeaturesLoaded;
1544
+ }
1545
+ populateAccountFilterMap = (t) => {
1546
+ t && t.forEach((e) => {
1547
+ this.accountFilterMap.set(e.guid, !e.is_excluded_from_accounts);
1548
+ });
1549
+ };
1550
+ resetAccountFilterMap = () => {
1551
+ this.accountFilterMap.clear(), this.populateAccountFilterMap(this.globalStore.accountStore.visibleAccounts);
1552
+ };
1553
+ updateAccountFilterMap = (t, e) => {
1554
+ this.accountFilterMap.set(t, e);
1555
+ };
1556
+ setDisplayedDate = (t, e) => {
1557
+ this.displayedDate = e, this.displayedDateRange = {
1558
+ start: t,
1559
+ end: e
1560
+ };
1561
+ };
1562
+ get shouldDisableNextDate() {
1563
+ const t = L(this.displayedDate), e = L(ie(/* @__PURE__ */ new Date(), 1));
1564
+ return t === e;
1565
+ }
1566
+ get shouldDisablePrevDate() {
1567
+ const t = L(this.displayedDate), e = L(/* @__PURE__ */ new Date());
1568
+ return t === e;
1569
+ }
1570
+ }
1571
+ class Ee {
1572
+ globalStore;
1573
+ api = new H("/", "");
1574
+ copy = {};
1575
+ featureNamespace = "experiences";
1576
+ isInitialized = !1;
1577
+ constructor(t) {
1578
+ this.globalStore = t, this.api = new H(
1579
+ t.endpoint,
1580
+ t.sessionToken,
1581
+ t.onError
1582
+ ), d(this);
1583
+ }
1584
+ loadCopy = async () => {
1585
+ await this.getCopy(this.featureNamespace), c(() => {
1586
+ this.isInitialized = !0;
1587
+ });
1588
+ };
1589
+ getCopy = async (t, e = "") => {
1590
+ try {
1591
+ const s = await this.api.getGlobalCopy(t, e);
1592
+ c(() => {
1593
+ this.copy = s[t];
1594
+ });
1595
+ } catch (s) {
1596
+ console.error(`Error occurred while fetching ${this.featureNamespace} copy: ${s}`);
1597
+ }
1598
+ };
1599
+ }
1600
+ class De {
1601
+ globalStore;
1602
+ api = new tt("/", "");
1603
+ goals = [];
1604
+ goalsLoaded = !1;
1605
+ retirementGoals = [];
1606
+ retirementGoalsLoaded = !1;
1607
+ retirementGoalAccounts = [];
1608
+ retirementGoalAccountsLoaded = !1;
1609
+ monthlyCashFlowProfile = void 0;
1610
+ monthlyCashFlowProfileLoaded = !1;
1611
+ newRetirementGoalAccounts = [];
1612
+ alert = "";
1613
+ selectedGoal = void 0;
1614
+ constructor(t) {
1615
+ this.globalStore = t, this.api = new tt(t.endpoint, t.sessionToken, t.onError), d(this);
1616
+ }
1617
+ get allGoals() {
1618
+ if (!this.isAllGoalDataLoaded) return [];
1619
+ const t = this.globalStore.copyStore.copy.goals, e = this.globalStore.userStore.user.birthday;
1620
+ return [
1621
+ ...this.goals,
1622
+ ...this.retirementGoals.map((s) => ({
1623
+ ...s,
1624
+ amount: s.target_amount,
1625
+ name: t.retirement,
1626
+ track_type: S.RETIREMENT_TRACK,
1627
+ projected_to_complete_at: s.retirement_age && e ? W(s.retirement_age, e) : void 0
1628
+ }))
1629
+ ];
1630
+ }
1631
+ get orderedGoals() {
1632
+ return this.allGoals.slice().sort((t, e) => t.position - e.position);
1633
+ }
1634
+ get debtGoals() {
1635
+ return this.orderedGoals.filter((t) => t.track_type === S.DEBT_TRACK);
1636
+ }
1637
+ get retirmentGoals() {
1638
+ return this.orderedGoals.filter((t) => t.track_type === S.RETIREMENT_TRACK);
1639
+ }
1640
+ get savingGoals() {
1641
+ return this.orderedGoals.filter((t) => t.track_type === S.SAVINGS_TRACK);
1642
+ }
1643
+ get ongoingGoalsForMicroWidget() {
1644
+ const t = this.allGoals.filter(
1645
+ (s) => !s.is_complete && s.track_type !== S.EMERGENCY_FUND_TRACK && s.track_type !== null
1646
+ ), e = [
1647
+ S.SAVINGS_TRACK,
1648
+ S.DEBT_TRACK,
1649
+ S.RETIREMENT_TRACK
1650
+ ];
1651
+ return t.sort((s, a) => {
1652
+ const o = s.track_type ? e.indexOf(s.track_type) : -1, r = a.track_type ? e.indexOf(a.track_type) : -1;
1653
+ return o - r;
1654
+ }).slice(0, 3);
1655
+ }
1656
+ get isAllGoalDataLoaded() {
1657
+ return this.goalsLoaded && this.retirementGoalsLoaded && this.retirementGoalAccountsLoaded && this.monthlyCashFlowProfileLoaded;
1658
+ }
1659
+ setGoals = (t) => {
1660
+ this.goals = t, this.goalsLoaded = !0;
1661
+ };
1662
+ setRetirementGoals = (t) => {
1663
+ this.retirementGoals = t, this.retirementGoalsLoaded = !0;
1664
+ };
1665
+ setRetirementGoalAccounts = (t) => {
1666
+ this.retirementGoalAccounts = t, this.retirementGoalAccountsLoaded = !0;
1667
+ };
1668
+ setMonthlyCashFlowProfile = (t) => {
1669
+ this.monthlyCashFlowProfile = t, this.monthlyCashFlowProfileLoaded = !0;
1670
+ };
1671
+ loadGoalData = async () => {
1672
+ await Promise.all([
1673
+ this.loadGoals(),
1674
+ this.loadRetirementGoals(),
1675
+ this.loadRetirementGoalAccounts(),
1676
+ this.loadMonthlyCashFlowProfile()
1677
+ ]);
1678
+ };
1679
+ loadGoals = async () => {
1680
+ try {
1681
+ const t = await this.api.getGoals();
1682
+ this.setGoals(t);
1683
+ } catch (t) {
1684
+ console.error(`Error occured while getting goals: ${t}`);
1685
+ }
1686
+ };
1687
+ loadRetirementGoals = async () => {
1688
+ try {
1689
+ const t = await this.api.getRetirementGoals();
1690
+ this.setRetirementGoals(t);
1691
+ } catch (t) {
1692
+ console.error(`Error occurred while loading retirement goals: ${t}`);
1693
+ }
1694
+ };
1695
+ loadRetirementGoalAccounts = async () => {
1696
+ try {
1697
+ const t = await this.api.getRetirementGoalAccounts();
1698
+ this.setRetirementGoalAccounts(t);
1699
+ } catch (t) {
1700
+ console.error(`Error occurred while loading retirement goal accounts: ${t}`);
1701
+ }
1702
+ };
1703
+ loadMonthlyCashFlowProfile = async () => {
1704
+ try {
1705
+ const t = await this.api.getMonthlyCashFlowProfile();
1706
+ this.setMonthlyCashFlowProfile(t);
1707
+ } catch (t) {
1708
+ console.error(`Error occurred while loading monthly cash flow profile: ${t}`);
1709
+ }
1710
+ };
1711
+ addGoal = async (t) => {
1712
+ try {
1713
+ const e = await this.api.addGoal(t);
1714
+ this.setGoals([...this.goals, e]);
1715
+ } catch (e) {
1716
+ console.error(`Error occurred while adding goal: ${e}`);
1717
+ }
1718
+ };
1719
+ addRetirementGoal = async (t) => {
1720
+ const e = this.globalStore.copyStore.copy.goals;
1721
+ try {
1722
+ const s = await this.api.addRetirementGoal(t), a = [], o = this.globalStore.userStore.user.birthday;
1723
+ for (const r of this.newRetirementGoalAccounts) {
1724
+ const l = await this.api.addRetirementGoalAccount({
1725
+ ...r,
1726
+ retirement_goal_guid: s.guid
1727
+ });
1728
+ a.push(l);
1729
+ }
1730
+ this.setNewRetirementGoalAccounts([]), this.retirementGoals = [
1731
+ ...this.retirementGoals,
1732
+ {
1733
+ ...s,
1734
+ amount: s.target_amount,
1735
+ name: e.retirement,
1736
+ track_type: S.RETIREMENT_TRACK,
1737
+ projected_to_complete_at: s.retirement_age && o ? W(s.retirement_age, o) : void 0
1738
+ }
1739
+ ], this.setRetirementGoalAccounts([...this.retirementGoalAccounts, ...a]);
1740
+ } catch (s) {
1741
+ console.error(`Error occurred while adding retirement goal: ${s}`);
1742
+ }
1743
+ };
1744
+ addRetirementGoalAccount = async (t) => {
1745
+ try {
1746
+ const e = await this.api.addRetirementGoalAccount(t);
1747
+ c(() => {
1748
+ this.retirementGoalAccounts = [...this.retirementGoalAccounts, e];
1749
+ });
1750
+ } catch (e) {
1751
+ console.error(`Error occurred while adding retirement goal account: ${e}`);
1752
+ }
1753
+ };
1754
+ deleteGoal = async (t) => {
1755
+ try {
1756
+ await this.api.removeGoal(t);
1757
+ const e = this.goals.findIndex((s) => s.guid === t);
1758
+ e >= 0 && this.goals.splice(e, 1);
1759
+ } catch (e) {
1760
+ console.error(`Error occured while deleting goal: ${e}`);
1761
+ }
1762
+ };
1763
+ deleteRetirementGoal = async (t) => {
1764
+ try {
1765
+ const e = this.retirementGoalAccounts.filter(
1766
+ (a) => a.retirement_goal_guid === t.guid
1767
+ );
1768
+ for (const a of e)
1769
+ await this.deleteRetirementGoalAccount(a.guid);
1770
+ await this.api.removeRetirementGoal(t.guid);
1771
+ const s = this.retirementGoals.findIndex((a) => a.guid === t.guid);
1772
+ s >= 0 && this.retirementGoals.splice(s, 1);
1773
+ } catch (e) {
1774
+ console.error(`Error deleting retirement goal: ${e}`);
1775
+ }
1776
+ };
1777
+ deleteRetirementGoalAccount = async (t) => {
1778
+ try {
1779
+ await this.api.removeRetirementGoalAccount(t);
1780
+ const e = this.retirementGoalAccounts.findIndex((s) => s.guid === t);
1781
+ e >= 0 && this.retirementGoalAccounts.splice(e, 1);
1782
+ } catch (e) {
1783
+ console.error(`Error deleting retirement goal account: ${e}`);
1784
+ }
1785
+ };
1786
+ reorderGoals = async (t) => {
1787
+ try {
1788
+ const e = await this.api.reorderGoals(t);
1789
+ c(() => {
1790
+ for (const s of e) {
1791
+ const a = this.goals.findIndex((o) => o.guid === s.guid);
1792
+ a >= 0 && (this.goals[a].position = s.position);
1793
+ }
1794
+ });
1795
+ } catch (e) {
1796
+ console.error(`Error reordering goals: ${e}`);
1797
+ }
1798
+ };
1799
+ setAlert = (t) => this.alert = t;
1800
+ setNewRetirementGoalAccounts = (t) => {
1801
+ this.newRetirementGoalAccounts = t;
1802
+ };
1803
+ setSelectedGoal = (t) => this.selectedGoal = t;
1804
+ updateGoal = async (t) => {
1805
+ try {
1806
+ const e = await this.api.updateGoal(t);
1807
+ c(() => {
1808
+ const s = this.goals.findIndex((a) => a.guid === t.guid);
1809
+ s >= 0 && (this.goals[s] = e), this.selectedGoal?.guid === t.guid && this.setSelectedGoal(e);
1810
+ });
1811
+ } catch (e) {
1812
+ console.error(`Error occurred while updating goal: ${e}`);
1813
+ }
1814
+ };
1815
+ updateRetirementGoal = async (t) => {
1816
+ try {
1817
+ const e = await this.api.updateRetirementGoal({
1818
+ ...t,
1819
+ target_amount: t.amount
1820
+ });
1821
+ c(() => {
1822
+ const s = this.retirementGoals.findIndex((a) => a.guid === t.guid);
1823
+ s >= 0 && (this.retirementGoals[s] = e), this.selectedGoal?.guid === t.guid && this.setSelectedGoal(this.allGoals.find((a) => a.guid === t.guid));
1824
+ });
1825
+ } catch (e) {
1826
+ console.error(`Error occurred while updating goal: ${e}`);
1827
+ }
1828
+ };
1829
+ updateMonthlyCashFlowProfile = async (t) => {
1830
+ try {
1831
+ const e = await this.api.updateMonthlyCashFlowProfile(t);
1832
+ this.setMonthlyCashFlowProfile(e);
1833
+ } catch (e) {
1834
+ console.error(`Error occurred while updating monthly Cash Flow profile: ${e}`);
1835
+ }
1836
+ };
1837
+ }
1838
+ const Re = (n, t) => n.guid === "general" || n.guid === "insights" ? !0 : n.flags ? n.flags.every((e) => t[e]) : !1, Le = (n, t) => {
1839
+ const e = [];
1840
+ for (const s of re) {
1841
+ const a = t[s.guid];
1842
+ if (!a) continue;
1843
+ const o = {
1844
+ ...s,
1845
+ title: a.label,
1846
+ topics: s.topics.map(({ topicKey: r }, l) => ({
1847
+ topicKey: r,
1848
+ label: a.topics[l]
1849
+ }))
1850
+ };
1851
+ Re(o, n) && e.push(o);
1852
+ }
1853
+ return e;
1854
+ };
1855
+ class ve {
1856
+ alert = { message: "", severity: void 0 };
1857
+ api = new et("/", "");
1858
+ appConfig;
1859
+ globalStore;
1860
+ isLoading = !1;
1861
+ constructor(t) {
1862
+ this.globalStore = t, this.api = new et(t.endpoint, t.sessionToken, t.onError), d(this);
1863
+ }
1864
+ createSupportTicket = async (t) => {
1865
+ try {
1866
+ this.isLoading = !0, await this.api.createSupportTicket(t), this.setAlert(this.copy.request_support_submit_success_message, "success");
1867
+ } catch (e) {
1868
+ this.setAlert(this.copy.request_support_submit_failure_message, "error"), console.error("Error occurred while submitting:", e);
1869
+ } finally {
1870
+ this.isLoading = !1;
1871
+ }
1872
+ };
1873
+ setAlert = (t, e = void 0) => this.alert = { message: t, severity: e };
1874
+ get copy() {
1875
+ return this.globalStore.copyStore.copy.help;
1876
+ }
1877
+ get helpCategories() {
1878
+ const { client_communication_profile: t, client_profile: e } = this.globalStore.appDataStore.appData, {
1879
+ help: { category_list: s }
1880
+ } = this.globalStore.copyStore.copy;
1881
+ return Le(
1882
+ {
1883
+ ...t,
1884
+ ...e,
1885
+ ...this.globalStore.appConfig.config
1886
+ },
1887
+ s
1888
+ );
1889
+ }
1890
+ }
1891
+ class $e {
1892
+ analysisType = Ht.Stocks;
1893
+ api = new st("/", "");
1894
+ holdings = [];
1895
+ holdingsLoaded = !1;
1896
+ globalStore;
1897
+ showConnectionsWidget = !1;
1898
+ constructor(t) {
1899
+ this.globalStore = t, this.api = new st(t.endpoint, t.sessionToken, t.onError), d(this);
1900
+ }
1901
+ get analysisChartData() {
1902
+ return Wt(Vt(this.visibleHoldings), this.analysisType);
1903
+ }
1904
+ get analysisDetails() {
1905
+ return zt(this.visibleHoldings)[this.analysisType] || {};
1906
+ }
1907
+ get visibleHoldings() {
1908
+ return this.holdings.filter(
1909
+ (t) => this.globalStore.globalUiStore.selectedAccountGuids.includes(t.account_guid)
1910
+ );
1911
+ }
1912
+ setHoldings = (t) => {
1913
+ this.holdings = t, this.holdingsLoaded = !0;
1914
+ };
1915
+ setShowConnectionsWidget = (t) => {
1916
+ this.showConnectionsWidget = t;
1917
+ };
1918
+ loadHoldings = async () => {
1919
+ try {
1920
+ const t = await this.api.getHoldings();
1921
+ this.setHoldings(t);
1922
+ } catch (t) {
1923
+ console.error(`Error occured while getting holdings: ${t}`);
1924
+ }
1925
+ };
1926
+ setAnalysisType = (t) => {
1927
+ this.analysisType = t;
1928
+ };
1929
+ updateHoldings = async (t) => {
1930
+ this.holdingsLoaded = !1;
1931
+ try {
1932
+ const e = await this.api.updateHoldings(t), s = this.holdings.findIndex(({ guid: a }) => a === t.guid);
1933
+ if (s >= 0) {
1934
+ const a = [...this.holdings];
1935
+ a[s] = e, c(() => {
1936
+ this.holdings = a, this.holdingsLoaded = !0;
1937
+ });
1938
+ }
1939
+ } catch (e) {
1940
+ console.error(`Error occurred while updating holding: ${e}`);
1941
+ }
1942
+ };
1943
+ }
1944
+ class Ne {
1945
+ globalStore;
1946
+ api = new at("/", "");
1947
+ merchant = null;
1948
+ merchants = [];
1949
+ isLoading = !1;
1950
+ constructor(t) {
1951
+ this.globalStore = t, this.api = new at(t.endpoint, t.sessionToken, t.onError), d(this);
1952
+ }
1953
+ loadMerchants = async (t = "") => {
1954
+ this.isLoading = !0;
1955
+ const e = await this.api.getMerchants([t]);
1956
+ c(() => {
1957
+ this.merchants = e, this.isLoading = !1;
1958
+ });
1959
+ };
1960
+ loadMerchantByGuid = async (t) => {
1961
+ const e = await this.api.getMerchantByGuid(t);
1962
+ c(() => this.merchant = e);
1963
+ };
1964
+ }
1965
+ class Ge {
1966
+ globalStore;
1967
+ accountsApi = new G("/", "");
1968
+ monthlyAccountBalances = [];
1969
+ monthlyAccountBalancesLoaded = !1;
1970
+ hoveredIndex = -1;
1971
+ selectedIndex = -1;
1972
+ timeframe = 6;
1973
+ // default timeframe is 6 months
1974
+ constructor(t) {
1975
+ this.globalStore = t, this.accountsApi = new G(
1976
+ t.endpoint,
1977
+ t.sessionToken,
1978
+ t.onError
1979
+ ), d(this);
1980
+ }
1981
+ get isNetWorthDataLoaded() {
1982
+ return this.globalStore.accountStore.isAccountDataLoaded && this.monthlyAccountBalancesLoaded;
1983
+ }
1984
+ get netWorthAccounts() {
1985
+ return Kt(
1986
+ this.globalStore.globalUiStore.selectedAccounts,
1987
+ this.globalStore.accountStore.members
1988
+ );
1989
+ }
1990
+ get netWorthData() {
1991
+ return {
1992
+ accounts: this.netWorthAccounts,
1993
+ monthlyAccountBalances: this.monthlyAccountBalances
1994
+ };
1995
+ }
1996
+ get netWorthChartData() {
1997
+ return Qt(this.netWorthAccounts, this.monthlyAccountBalances, this.timeframe);
1998
+ }
1999
+ get selectedData() {
2000
+ if (!(!this.netWorthChartData || this.netWorthChartData.length === 0))
2001
+ return this.selectedIndex === -1 ? V(this.netWorthChartData) : this.netWorthChartData[this.selectedIndex];
2002
+ }
2003
+ get hoveredData() {
2004
+ return this.hoveredIndex >= 0 ? this.netWorthChartData[this.hoveredIndex] : void 0;
2005
+ }
2006
+ get gainsLosses() {
2007
+ return qt(this.selectedData);
2008
+ }
2009
+ get assetsLiabilities() {
2010
+ const { assets: t, liabilities: e, totalAssets: s, totalLiabilities: a } = Yt(
2011
+ this.netWorthData.accounts
2012
+ );
2013
+ return {
2014
+ netWorth: V(this.netWorthChartData),
2015
+ assets: t,
2016
+ liabilities: e,
2017
+ totalAssets: s,
2018
+ totalLiabilities: a
2019
+ };
2020
+ }
2021
+ loadNetWorthData = async () => {
2022
+ this.globalStore.accountStore.isAccountDataLoaded || await this.globalStore.accountStore.loadAccountData();
2023
+ const e = (await Promise.all(
2024
+ this.netWorthAccounts.map((s) => this.getMonthlyAccountBalances(s.guid))
2025
+ )).reduce(jt, []).sort(Xt);
2026
+ this.setMonthlyAccountBalances(e);
2027
+ };
2028
+ getMonthlyAccountBalances = async (t) => {
2029
+ try {
2030
+ return await this.accountsApi.getMonthlyAccountBalances(t);
2031
+ } catch (e) {
2032
+ return console.error(`Error occured while fetching monthly account balances: ${e}`), [];
2033
+ }
2034
+ };
2035
+ setHoveredIndex = (t) => this.hoveredIndex = t;
2036
+ setMonthlyAccountBalances = (t) => {
2037
+ this.monthlyAccountBalances = t, this.monthlyAccountBalancesLoaded = !0;
2038
+ };
2039
+ setSelectedIndex = (t) => this.selectedIndex = t;
2040
+ setTimeframe = (t) => this.timeframe = t;
2041
+ }
2042
+ class Be {
2043
+ globalStore;
2044
+ api = new nt("/", "");
2045
+ isLoading = !0;
2046
+ notifications = [];
2047
+ notificationsLoaded = !1;
2048
+ constructor(t) {
2049
+ this.globalStore = t, this.api = new nt(
2050
+ t.endpoint,
2051
+ t.sessionToken,
2052
+ t.onError
2053
+ ), d(this, { notifications: Tt });
2054
+ }
2055
+ // Used in Money Dashboard
2056
+ get newNotifications() {
2057
+ return this.recentNotifications.filter((t) => !t.has_been_viewed);
2058
+ }
2059
+ get recentNotifications() {
2060
+ return Jt(this.notifications);
2061
+ }
2062
+ setNotifications = (t) => {
2063
+ this.notifications = t, this.notificationsLoaded = !0;
2064
+ };
2065
+ loadNotifications = async () => {
2066
+ this.isLoading = !0;
2067
+ try {
2068
+ const t = await this.api.getNotifications();
2069
+ this.setNotifications(t);
2070
+ } catch (t) {
2071
+ console.error(`Error occurred while loading notifications: ${t}`);
2072
+ } finally {
2073
+ c(() => {
2074
+ this.isLoading = !1;
2075
+ });
2076
+ }
2077
+ };
2078
+ markAllAsViewed = async () => {
2079
+ await this.api.markAllAsViewed();
2080
+ };
2081
+ updateNotification = async (t) => {
2082
+ t.has_been_viewed = !0, await this.api.updateNotification(t);
2083
+ };
2084
+ }
2085
+ const dt = (n, t) => gt(t.expectedDate, n), A = (n, t) => n + t.amount;
2086
+ class xe {
2087
+ globalStore;
2088
+ api = new it("/", "");
2089
+ repeatingTransactions = [];
2090
+ isDataLoaded = !1;
2091
+ selectedDay;
2092
+ dateRange = { start: E(y()), end: T(y()) };
2093
+ constructor(t) {
2094
+ this.globalStore = t, this.api = new it(
2095
+ t.endpoint,
2096
+ t.sessionToken,
2097
+ t.onError
2098
+ ), d(this);
2099
+ }
2100
+ get detailedRepeatingTransactions() {
2101
+ return O(
2102
+ this.globalStore.accountStore.visibleAccounts,
2103
+ this.repeatingTransactions,
2104
+ this.globalStore.transactionStore.transactions
2105
+ );
2106
+ }
2107
+ /**
2108
+ * Returns all recurrences built from repeating transactions and filtered by accounts.
2109
+ */
2110
+ get recurrences() {
2111
+ const t = this.globalStore.accountStore.visibleAccounts;
2112
+ return Zt(this.detailedRepeatingTransactions, this.dateRange).filter((e) => t.some((s) => s.guid === e.accountGuid && !s.is_excluded_from_accounts)).filter((e) => gt(e.expectedDate, this.dateRange));
2113
+ }
2114
+ /**
2115
+ * Returns all recurrences that have occurred in the past, including those that are paid or missed
2116
+ */
2117
+ get pastRecurrences() {
2118
+ return this.recurrences.filter(
2119
+ (t) => t.status === f.Paid || t.status === f.Missed
2120
+ );
2121
+ }
2122
+ /**
2123
+ * Returns all recurrences that are expected to occur through the end of the month
2124
+ * or should have occurred in the last 3 days.
2125
+ */
2126
+ get upcomingRecurrences() {
2127
+ return this.recurrences.filter(
2128
+ (t) => z(t.expectedDate, pt(y(), 3)) && F(t.expectedDate, this.dateRange.end) && t.status === f.Upcoming
2129
+ );
2130
+ }
2131
+ /**
2132
+ * Returns all expense recurrences.
2133
+ */
2134
+ get expenses() {
2135
+ return this.recurrences.filter(
2136
+ (t) => t.type === Q.Expense
2137
+ );
2138
+ }
2139
+ /**
2140
+ * Returns the upcoming expense recurrences.
2141
+ */
2142
+ get upcomingExpenses() {
2143
+ return this.expenses.filter(
2144
+ (t) => t.status === f.Upcoming
2145
+ );
2146
+ }
2147
+ /**
2148
+ * Returns all income recurrences.
2149
+ */
2150
+ get income() {
2151
+ return this.recurrences.filter(
2152
+ (t) => t.type === Q.Income
2153
+ );
2154
+ }
2155
+ /**
2156
+ * Returns the upcoming income recurrences.
2157
+ */
2158
+ get upcomingIncome() {
2159
+ return this.income.filter(
2160
+ (t) => t.status === f.Upcoming
2161
+ );
2162
+ }
2163
+ get nextIncomeRecurrence() {
2164
+ return this.upcomingIncome.find((t) => z(t.expectedDate, y()));
2165
+ }
2166
+ /**
2167
+ * Returns the expense recurrences for the current month.
2168
+ */
2169
+ get currentMonthExpenses() {
2170
+ return this.expenses.filter(
2171
+ (t) => dt(this.dateRange, t)
2172
+ );
2173
+ }
2174
+ /**
2175
+ * Returns the income recurrences for the current month.
2176
+ */
2177
+ get currentMonthIncome() {
2178
+ return this.income.filter(
2179
+ (t) => dt(this.dateRange, t)
2180
+ );
2181
+ }
2182
+ /**
2183
+ * Calculates the total amount of all expenses for the current month.
2184
+ */
2185
+ get expenseTotal() {
2186
+ return this.currentMonthExpenses.reduce(A, 0);
2187
+ }
2188
+ /**
2189
+ * Calculates the total amount of all paid expenses for the current month.
2190
+ */
2191
+ get paidExpenseTotal() {
2192
+ return this.currentMonthExpenses.filter((t) => t.status === f.Paid).reduce(A, 0);
2193
+ }
2194
+ /**
2195
+ * Calculates the total amount of all missed expenses for the current month.
2196
+ */
2197
+ get missedExpenseTotal() {
2198
+ return this.currentMonthExpenses.filter((t) => t.status === f.Missed).reduce(A, 0);
2199
+ }
2200
+ /**
2201
+ * Calculates the total amount of all upcoming expenses for the current month.
2202
+ */
2203
+ get upcomingExpenseTotal() {
2204
+ return this.currentMonthExpenses.filter((t) => t.status === f.Upcoming).reduce(A, 0);
2205
+ }
2206
+ /**
2207
+ * Calculates the total amount of all income for the current month.
2208
+ */
2209
+ get incomeTotal() {
2210
+ return this.currentMonthIncome.reduce(A, 0);
2211
+ }
2212
+ /**
2213
+ * Calculates the total amount of all paid income for the current month.
2214
+ */
2215
+ get paidIncomeTotal() {
2216
+ return this.currentMonthIncome.filter((t) => t.status === f.Paid).reduce(A, 0);
2217
+ }
2218
+ /**
2219
+ * Calculates the total amount of all upcoming income for the current month.
2220
+ */
2221
+ get upcomingIncomeTotal() {
2222
+ return this.currentMonthIncome.filter((t) => t.status === f.Upcoming).reduce(A, 0);
2223
+ }
2224
+ /**
2225
+ * Get the recurrences for the currently selected day.
2226
+ */
2227
+ get selectedDayRecurrences() {
2228
+ return this.selectedDay && this.recurrences.filter(
2229
+ (t) => this.selectedDay && K(t.occurredOnDate || t.expectedDate, this.selectedDay)
2230
+ );
2231
+ }
2232
+ setRepeatingTransactions = (t) => {
2233
+ this.repeatingTransactions = t, this.isDataLoaded = !0;
2234
+ };
2235
+ /**
2236
+ * Set the date range for filtering recurrences.
2237
+ * @param dateRange - The date range to set.
2238
+ */
2239
+ setDateRange = (t) => this.dateRange = t;
2240
+ /**
2241
+ * Set the currently selected day.
2242
+ * @param day - The day to select.
2243
+ */
2244
+ setSelectedDay = (t) => {
2245
+ this.selectedDay = this.selectedDay && K(t, this.selectedDay) ? void 0 : t;
2246
+ };
2247
+ loadRepeatingTransactionData = async () => {
2248
+ await Promise.all([
2249
+ this.globalStore.accountStore.loadAccountData(),
2250
+ this.globalStore.categoryStore.loadCategories(),
2251
+ this.globalStore.transactionStore.loadTransactionData()
2252
+ ]), await this.loadRepeatingTransactions();
2253
+ };
2254
+ /**
2255
+ * Load repeating transactions and augment them with additional data.
2256
+ */
2257
+ loadRepeatingTransactions = async () => {
2258
+ try {
2259
+ const t = await this.api.getRepeatingTransactions();
2260
+ this.setRepeatingTransactions(t);
2261
+ } catch (t) {
2262
+ console.error(`Error occurred while getting repeating transactions: ${t}`);
2263
+ }
2264
+ };
2265
+ /**
2266
+ * Add a new repeating transaction and link it to the associated transaction.
2267
+ * @param repeatingTransaction - The repeating transaction to add.
2268
+ * @param transaction - The transaction associated with the repeating transaction.
2269
+ */
2270
+ addRepeatingTransaction = async (t, e) => {
2271
+ try {
2272
+ const s = await this.api.addRepeatingTransaction(t);
2273
+ await this.globalStore.transactionStore.updateTransaction({
2274
+ ...e,
2275
+ repeating_transaction_guid: s.guid
2276
+ }), c(() => {
2277
+ this.repeatingTransactions = [
2278
+ ...this.repeatingTransactions,
2279
+ ...O(
2280
+ this.globalStore.accountStore.visibleAccounts,
2281
+ [s],
2282
+ this.globalStore.transactionStore.transactions
2283
+ )
2284
+ ];
2285
+ });
2286
+ } catch (s) {
2287
+ console.error(`Error occurred while adding repeating transaction: ${s}`);
2288
+ }
2289
+ };
2290
+ /**
2291
+ * Delete a repeating transaction by its GUID.
2292
+ * @param guid - The GUID of the repeating transaction to delete.
2293
+ */
2294
+ deleteRepeatingTransaction = async (t) => {
2295
+ try {
2296
+ await this.api.deleteRepeatingTransaction(t), c(() => {
2297
+ this.repeatingTransactions = [
2298
+ ...this.repeatingTransactions.filter((e) => e.guid !== t)
2299
+ ];
2300
+ });
2301
+ } catch (e) {
2302
+ console.error(`Error occurred while deleting repeating transaction: ${e}`);
2303
+ }
2304
+ };
2305
+ /**
2306
+ * Update an existing repeating transaction.
2307
+ * @param transaction - The repeating transaction to update.
2308
+ */
2309
+ updateRepeatingTransaction = async (t) => {
2310
+ try {
2311
+ const e = await this.api.updateRepeatingTransaction(t), s = this.repeatingTransactions.findIndex(
2312
+ (a) => a.guid === e.guid
2313
+ );
2314
+ if (s < 0) return;
2315
+ c(() => {
2316
+ this.repeatingTransactions = [
2317
+ ...this.repeatingTransactions.slice(0, s),
2318
+ ...O(
2319
+ this.globalStore.accountStore.visibleAccounts,
2320
+ [e],
2321
+ this.globalStore.transactionStore.transactions
2322
+ ),
2323
+ ...this.repeatingTransactions.slice(s + 1)
2324
+ ];
2325
+ });
2326
+ } catch (e) {
2327
+ console.error(`Error occurred while updating repeating transaction: ${e}`);
2328
+ }
2329
+ };
2330
+ }
2331
+ const ht = "PARENT-ENTITY", Me = (n, t) => ({
2332
+ [N.BudgetExceeded]: t.notification_budget_exceeded,
2333
+ [N.BudgetOffTarget]: t.notification_budget_off_target,
2334
+ [_.DebtPaymentReminder]: t.notification_debt_payment_reminder,
2335
+ [_.AccountBalanceLow]: t.notification_low_balance,
2336
+ [_.AccountDepositLargePosted]: t.notification_large_deposit,
2337
+ [_.AccountDepositLarge]: t.notification_large_deposit,
2338
+ [_.TransactionExpenseLarge]: t.notification_large_expense,
2339
+ [_.TransactionFeeCharge]: t.notification_transaction_fee,
2340
+ [_.InternationalTransaction]: t.notification_transaction_is_international,
2341
+ [u.AccountBalanceLow]: t.account_balance_low,
2342
+ [u.BillAmountNotStandard]: t.bill_amount_not_standard,
2343
+ [u.CategorySpending]: t.category_spending,
2344
+ [u.CreditCardCloseToLimit]: t.credit_card_close_to_limit,
2345
+ [u.DebtPaymentReminder]: t.debt_payment_reminder,
2346
+ [u.DuplicatePayment]: t.duplicate_payment,
2347
+ [u.MonthlySpendComparison]: t.monthly_spend_comparison,
2348
+ [u.MonthlySpendToIncomeComparison]: t.monthly_spend_to_income_comparison,
2349
+ [u.MonthlySubscriptionAggregate]: t.monthly_subscription_aggregate,
2350
+ [u.MonthlyTopMerchantSpending]: t.monthly_top_merchant_spending,
2351
+ [u.SaveAnExtra100Dollars]: t.save_an_extra_100_dollars,
2352
+ [u.SavingsOpportunity]: t.savings_opportunity,
2353
+ [u.SetUpDirectDeposit]: t.set_up_direct_deposit,
2354
+ [u.SwitchDirectDeposit]: t.switch_direct_deposit,
2355
+ [u.UncategorizedTransactions]: t.uncategorized_transactions,
2356
+ [u.UnifiedDeposit]: t.unified_deposit,
2357
+ [u.UpcomingBill]: t.upcoming_bill,
2358
+ [u.WeekendSpendingSummary]: t.weekend_spending_summary,
2359
+ [u.WeeklyNewMerchants]: t.weekly_new_merchants,
2360
+ [u.DiscoveredAccounts]: t.discovered_account,
2361
+ [u.TransactionExpenseLarge]: t.large_transaction,
2362
+ [u.PromotionalCampaignMessages]: t.promotional_campaign_messages,
2363
+ [u.TransparentOverdraft]: t.transparent_overdraft
2364
+ })[n] || "", Oe = (n, t, e, s, a, o) => {
2365
+ const r = [], {
2366
+ email_notifications_enabled: l,
2367
+ sms_notifications_enabled: p,
2368
+ push_notifications_enabled: b
2369
+ } = t, {
2370
+ opted_out_of_email_notifications: _t,
2371
+ opted_out_of_sms_notifications: ft,
2372
+ opted_out_of_push_notifications: yt
2373
+ } = a;
2374
+ for (const I of s.filter((D) => D.entity_guid === ht)) {
2375
+ const D = Me(I.notification_type, e), mt = s.filter(
2376
+ (C) => C.entity_guid !== ht && C.notification_type === I.notification_type && n.some((x) => x.guid === C.entity_guid)
2377
+ ), R = [];
2378
+ l && !_t && I.email_channel && o.email && R.push(e.delivery_method_email_label), p && !ft && I.sms_channel && o.phone && R.push(e.delivery_method_sms_label), b && !yt && I.push_channel && R.push(e.delivery_method_push_label), r.push({
2379
+ ...I,
2380
+ children: mt.map((C) => ({
2381
+ ...C,
2382
+ account: n.find((x) => x.guid === C.entity_guid),
2383
+ label: D
2384
+ })),
2385
+ deliveryMethodsLabel: R.join(", "),
2386
+ label: D
2387
+ });
2388
+ }
2389
+ return r;
2390
+ };
2391
+ class Pe {
2392
+ globalStore;
2393
+ api = new rt("/", "");
2394
+ transactionApi = new B("/", "");
2395
+ alert = { message: "", severity: void 0 };
2396
+ devices = [];
2397
+ notificationProfiles = [];
2398
+ selectedRule = void 0;
2399
+ transactionRules = [];
2400
+ constructor(t) {
2401
+ this.globalStore = t, this.api = new rt(t.endpoint, t.sessionToken, t.onError), this.transactionApi = new B(
2402
+ t.endpoint,
2403
+ t.sessionToken,
2404
+ t.onError
2405
+ ), d(this);
2406
+ }
2407
+ get accountProfiles() {
2408
+ const t = this.globalStore.appDataStore.clientCommunicationProfile;
2409
+ return this.detailedNotificationProfiles.filter(
2410
+ (e) => e.notification_type === _.DebtPaymentReminder && t.debt_payment_reminder_notifications_enabled || e.notification_type === _.AccountBalanceLow && t.low_balance_notifications_enabled || e.notification_type === _.AccountDepositLarge && t.large_deposit_notifications_enabled || e.notification_type === _.TransactionExpenseLarge && t.large_expense_notifications_enabled || e.notification_type === _.TransactionFeeCharge && t.transaction_fee_notifications_enabled || e.notification_type === _.InternationalTransaction && t.transaction_is_international_notifications_enabled || e.notification_type === _.AccountDepositLargePosted && t.large_deposit_posted_notifications_enabled
2411
+ );
2412
+ }
2413
+ get budgetProfiles() {
2414
+ const t = this.globalStore.appDataStore.clientCommunicationProfile;
2415
+ return this.detailedNotificationProfiles.filter(
2416
+ (e) => e.notification_type === N.BudgetExceeded && t.budget_exceeded_notifications_enabled || e.notification_type === N.BudgetOffTarget && t.budget_off_target_notifications_enabled
2417
+ );
2418
+ }
2419
+ get insightsProfiles() {
2420
+ return this.detailedNotificationProfiles.filter(
2421
+ (t) => Object.values(u).includes(t.notification_type)
2422
+ );
2423
+ }
2424
+ get clientCommunicationProfile() {
2425
+ return this.globalStore.appDataStore.clientCommunicationProfile;
2426
+ }
2427
+ get copy() {
2428
+ return this.globalStore.copyStore.copy.settings;
2429
+ }
2430
+ get detailedNotificationProfiles() {
2431
+ return this.globalStore.isInitialized ? Oe(
2432
+ this.globalStore.accountStore.accounts,
2433
+ this.clientCommunicationProfile,
2434
+ this.copy,
2435
+ this.notificationProfiles,
2436
+ this.userCommunicationsProfile,
2437
+ this.globalStore.userStore.user
2438
+ ) : [];
2439
+ }
2440
+ get userCommunicationsProfile() {
2441
+ return this.globalStore.appDataStore.userCommunicationProfile;
2442
+ }
2443
+ deleteDevice = async (t) => {
2444
+ try {
2445
+ await this.api.deleteDevice(t);
2446
+ const e = this.devices.findIndex((s) => s.guid === t);
2447
+ return e >= 0 && c(() => {
2448
+ this.devices.splice(e, 1);
2449
+ }), { success: !0 };
2450
+ } catch {
2451
+ return console.error(`Error deleting device: ${t}`), { success: !1 };
2452
+ }
2453
+ };
2454
+ deleteTransactionRule = async () => {
2455
+ this.selectedRule && this.transactionApi.removeTransactionRule(this.selectedRule?.guid).then(() => {
2456
+ this.setAlert(this.copy.delete_rule_success, "success"), this.loadTransactionRules();
2457
+ }).catch(() => {
2458
+ this.setAlert(this.copy.delete_rule_error, "error");
2459
+ });
2460
+ };
2461
+ generateDeviceToken = async () => {
2462
+ try {
2463
+ return await this.api.generateDeviceToken();
2464
+ } catch (t) {
2465
+ console.error(`Error generating device token: ${t}`);
2466
+ }
2467
+ };
2468
+ loadDevices = async () => {
2469
+ try {
2470
+ const t = await this.api.getDevices();
2471
+ c(() => {
2472
+ this.devices = t;
2473
+ });
2474
+ } catch (t) {
2475
+ console.error(`Error loading devices: ${t}`);
2476
+ }
2477
+ };
2478
+ loadNotificationProfiles = async () => {
2479
+ try {
2480
+ const t = await this.api.getNotificationProfiles();
2481
+ c(() => {
2482
+ this.notificationProfiles = t;
2483
+ });
2484
+ } catch (t) {
2485
+ console.error(`Error loading notification profiles: ${t}`);
2486
+ }
2487
+ };
2488
+ loadTransactionRules = async () => {
2489
+ try {
2490
+ const t = await this.transactionApi.getTransactionRules();
2491
+ c(() => {
2492
+ this.transactionRules = t;
2493
+ });
2494
+ } catch (t) {
2495
+ console.error(`Error loading transaction rules: ${t}`);
2496
+ }
2497
+ };
2498
+ sendEmailVerification = async () => {
2499
+ try {
2500
+ await this.api.sendEmailVerification(), this.setAlert(this.copy.verification_sent_success, "success");
2501
+ } catch (t) {
2502
+ console.error(`Error sending email verification: ${t}`), this.setAlert(this.copy.verification_sent_error, "error");
2503
+ }
2504
+ };
2505
+ sendPhoneVerification = async () => {
2506
+ try {
2507
+ await this.api.sendPhoneVerification(), this.setAlert(this.copy.verification_sent_success, "success");
2508
+ } catch (t) {
2509
+ console.error(`Error sending phone verification: ${t}`), this.setAlert(this.copy.verification_sent_error, "error");
2510
+ }
2511
+ };
2512
+ setAlert = (t, e = void 0) => this.alert = { message: t, severity: e };
2513
+ setSelectedRule = (t) => {
2514
+ this.selectedRule = t;
2515
+ };
2516
+ updateDevice = async (t) => {
2517
+ try {
2518
+ const e = await this.api.updateDevice(t), s = this.devices.findIndex((a) => a.guid === t.guid);
2519
+ return s >= 0 && c(() => {
2520
+ this.devices[s] = e;
2521
+ }), { success: !0 };
2522
+ } catch (e) {
2523
+ return console.error(`Error updating device: ${e}`), { success: !1 };
2524
+ }
2525
+ };
2526
+ updateNotificationProfile = async (t) => {
2527
+ try {
2528
+ const e = await this.api.updateNotificationProfile(t), s = this.notificationProfiles.findIndex((a) => a.guid === t.guid);
2529
+ s >= 0 && c(() => {
2530
+ this.notificationProfiles[s] = e;
2531
+ });
2532
+ } catch (e) {
2533
+ console.error(`Error updating notification profile: ${e}`);
2534
+ }
2535
+ };
2536
+ updateRuleCategory = async (t) => {
2537
+ this.transactionApi.updateTransactionRule(t).then(() => {
2538
+ this.loadTransactionRules();
2539
+ });
2540
+ };
2541
+ updateRulePayee = async (t) => {
2542
+ this.transactionApi.updateTransactionRule(t).then(() => {
2543
+ this.setAlert(this.copy.edit_payee_success, "success"), this.loadTransactionRules();
2544
+ }).catch(() => {
2545
+ this.setAlert(this.copy.edit_payee_error, "error");
2546
+ });
2547
+ };
2548
+ updateUser = async (t) => {
2549
+ this.globalStore.userStore.updateUser(t).then(() => {
2550
+ this.setAlert(this.copy.information_updated_success, "success");
2551
+ }).catch(() => {
2552
+ this.setAlert(this.copy.information_updated_error, "error");
2553
+ });
2554
+ };
2555
+ updateUserCommunicationProfile = async (t) => {
2556
+ try {
2557
+ const e = await this.api.updateUserCommunicationProfile(t);
2558
+ this.globalStore.appDataStore.setUserCommunicationProfile(e);
2559
+ } catch (e) {
2560
+ console.error(`Error occurred while updating user communication profile: ${e}`);
2561
+ }
2562
+ };
2563
+ verifyPhoneToken = async (t) => {
2564
+ try {
2565
+ const { verified: e } = await this.api.verifyPhoneToken(t);
2566
+ if (!e)
2567
+ throw new Error();
2568
+ this.setAlert(this.copy.verified_phone_success, "success");
2569
+ } catch (e) {
2570
+ console.error(`Error verifying phone token: ${e}`), this.setAlert(this.copy.verified_phone_error, "error");
2571
+ }
2572
+ };
2573
+ }
2574
+ class Ue {
2575
+ globalStore;
2576
+ uiStore;
2577
+ api = new B("/", "");
2578
+ beatApi = new v("/", "");
2579
+ associatedBeats = [];
2580
+ associatedBeatsLoaded = !1;
2581
+ associatedBeatsLoading = !1;
2582
+ transactions = [];
2583
+ transactionsLoaded = !1;
2584
+ transactionsLoading = !1;
2585
+ taggings = [];
2586
+ taggingsLoaded = !1;
2587
+ taggingsLoading = !1;
2588
+ tags = [];
2589
+ tagsLoaded = !1;
2590
+ tagsLoading = !1;
2591
+ transactionRules = [];
2592
+ transactionRulesLoaded = !1;
2593
+ transactionRulesLoading = !1;
2594
+ cachedStartDate = pt(y(), 90);
2595
+ filter = {};
2596
+ isLoading = !0;
2597
+ alert = "";
2598
+ sortColumn = $t.DATE;
2599
+ sortDirection = Nt.DESC;
2600
+ constructor(t) {
2601
+ this.globalStore = t, this.uiStore = new Fe(), this.api = new B(
2602
+ t.endpoint,
2603
+ t.sessionToken,
2604
+ t.onError
2605
+ ), this.beatApi = new v(t.endpoint, t.sessionToken, t.onError), d(this);
2606
+ }
2607
+ loadTransactionData = async () => {
2608
+ this.globalStore.accountStore.isAccountDataLoaded || await this.globalStore.accountStore.loadAccountData(), this.globalStore.categoryStore.categoriesLoaded || await this.globalStore.categoryStore.loadCategories(), await Promise.all([
2609
+ this.loadAssociatedBeats(E(/* @__PURE__ */ new Date())),
2610
+ this.loadTags(),
2611
+ this.loadTaggings(),
2612
+ this.loadTransactionRules(),
2613
+ // By default loads 90 days of transactions
2614
+ this.loadTransactions(this.cachedStartDate)
2615
+ ]);
2616
+ };
2617
+ get isTransactionDataLoaded() {
2618
+ return this.associatedBeatsLoaded && this.tagsLoaded && this.taggingsLoaded && this.transactionRulesLoaded && this.transactionsLoaded;
2619
+ }
2620
+ get detailedTransactions() {
2621
+ return this.isTransactionDataLoaded ? Gt(
2622
+ this.transactions,
2623
+ this.globalStore.accountStore.visibleAccounts,
2624
+ this.globalStore.categoryStore.categories,
2625
+ this.taggings
2626
+ ) : [];
2627
+ }
2628
+ get sortedTransactions() {
2629
+ return Bt(
2630
+ this.filter,
2631
+ this.uiStore.expandedSplits,
2632
+ this.sortColumn,
2633
+ this.sortDirection,
2634
+ this.tags,
2635
+ this.detailedTransactions
2636
+ );
2637
+ }
2638
+ get sortedTransactionsWithSplits() {
2639
+ return xt(this.sortedTransactions, this.detailedTransactions);
2640
+ }
2641
+ setAssociatedBeats = (t) => {
2642
+ this.associatedBeats = t, this.associatedBeatsLoading = !1, this.associatedBeatsLoaded = !0;
2643
+ };
2644
+ setTaggings = (t) => {
2645
+ this.taggings = t, this.taggingsLoading = !1, this.taggingsLoaded = !0;
2646
+ };
2647
+ setTags = (t) => {
2648
+ this.tags = t, this.tagsLoading = !1, this.tagsLoaded = !0;
2649
+ };
2650
+ setTransactionRules = (t) => {
2651
+ this.transactionRules = t, this.transactionRulesLoading = !1, this.transactionRulesLoaded = !0;
2652
+ };
2653
+ setTransactions = (t) => {
2654
+ this.transactions = t, this.transactionsLoading = !1, this.transactionsLoaded = !0;
2655
+ };
2656
+ setAlert = (t) => {
2657
+ this.alert = t;
2658
+ };
2659
+ addTag = async (t) => {
2660
+ await this.api.addTag({ name: t }), await this.loadTags();
2661
+ };
2662
+ addTagging = async (t, e) => {
2663
+ await this.api.addTagging({
2664
+ tag_guid: t,
2665
+ transaction_guid: e
2666
+ });
2667
+ };
2668
+ addOrUpdateTransactionRule = async (t, e) => {
2669
+ const s = this.transactionRules.find(
2670
+ (a) => a.guid === e.user_transaction_rule_guid
2671
+ );
2672
+ s ? await this.api.updateTransactionRule({
2673
+ ...s,
2674
+ category_guid: t,
2675
+ description: e.description
2676
+ }) : await this.api.addTransactionRule({
2677
+ category_guid: t,
2678
+ description: e.description,
2679
+ match_description: e.description
2680
+ }), await this.loadTransactionRules();
2681
+ };
2682
+ addTransaction = async (t) => {
2683
+ const e = await this.api.addTransaction(t);
2684
+ if (e) {
2685
+ this.setTransactions([e, ...this.transactions]);
2686
+ const s = e.transaction_type === Mt.CREDIT ? e.amount : -e.amount;
2687
+ this.globalStore.accountStore.updateAccountBalance(e.account_guid, s);
2688
+ }
2689
+ };
2690
+ loadAssociatedBeats = async (t) => {
2691
+ if (this.associatedBeatsLoading) return;
2692
+ this.associatedBeatsLoading = !0;
2693
+ const e = t ? te(t, { representation: "date" }) : void 0;
2694
+ try {
2695
+ const s = await this.beatApi.getBeatsWithAssociatedTransaction(e);
2696
+ this.setAssociatedBeats(s);
2697
+ } catch (s) {
2698
+ console.error(`Error occurred while loading associated beats: ${s}`);
2699
+ }
2700
+ };
2701
+ loadTags = async () => {
2702
+ if (!this.tagsLoading) {
2703
+ this.tagsLoading = !0;
2704
+ try {
2705
+ const t = await this.api.getTags();
2706
+ this.setTags(t);
2707
+ } catch (t) {
2708
+ console.error(`Error occurred while loading tags: ${t}`);
2709
+ }
2710
+ }
2711
+ };
2712
+ loadTaggings = async () => {
2713
+ if (!this.taggingsLoading) {
2714
+ this.taggingsLoading = !0;
2715
+ try {
2716
+ const t = await this.api.getTaggings();
2717
+ this.setTaggings(t);
2718
+ } catch (t) {
2719
+ console.error(`Error occurred while loading taggings: ${t}`);
2720
+ }
2721
+ }
2722
+ };
2723
+ loadTransactionRules = async () => {
2724
+ if (this.transactionRulesLoading) return;
2725
+ this.transactionRulesLoading = !0;
2726
+ const t = await this.api.getTransactionRules();
2727
+ this.setTransactionRules(t);
2728
+ };
2729
+ loadTransactions = async (t = this.cachedStartDate) => {
2730
+ if (!this.transactionsLoading) {
2731
+ this.setIsLoading(!0), this.transactionsLoading = !0, this.transactions = [];
2732
+ try {
2733
+ const e = await this.api.getTransactionsByDateRange(
2734
+ m(t),
2735
+ m(q())
2736
+ );
2737
+ this.setTransactions(e);
2738
+ } catch (e) {
2739
+ console.error(`Error occurred while loading transactions: ${e}`);
2740
+ }
2741
+ this.setIsLoading(!1);
2742
+ }
2743
+ };
2744
+ modifyTransactionByAccountGuid = (t, e) => {
2745
+ this.transactions = this.transactions.map(
2746
+ (s) => s.account_guid === t ? { ...s, ...e } : s
2747
+ );
2748
+ };
2749
+ removeTag = async (t) => {
2750
+ await this.api.removeTag(t), await this.loadTags();
2751
+ };
2752
+ removeTagging = async (t) => {
2753
+ await this.api.removeTagging(t);
2754
+ };
2755
+ removeTransaction = async (t) => {
2756
+ await this.api.removeTransaction(t);
2757
+ const e = this.transactions.findIndex((s) => s.guid === t);
2758
+ if (e >= 0) {
2759
+ const s = [...this.transactions];
2760
+ s.splice(e, 1), this.setTransactions(s);
2761
+ }
2762
+ };
2763
+ setFilter = (t) => {
2764
+ this.filter = t, t.dateRange && F(t.dateRange.start, this.cachedStartDate) && this.loadTransactions(t.dateRange.start).then(() => {
2765
+ t.dateRange && (this.cachedStartDate = t.dateRange.start);
2766
+ });
2767
+ };
2768
+ setIsLoading = (t) => this.isLoading = t;
2769
+ splitTransaction = async (t, e) => {
2770
+ const s = await this.api.updateTransaction(t), a = [];
2771
+ for (let r = 0; r < e.length; r++) {
2772
+ const l = await this.api.addTransaction(e[r]);
2773
+ a.push(l);
2774
+ }
2775
+ const o = this.transactions.findIndex((r) => r.guid === t.guid);
2776
+ if (o >= 0) {
2777
+ const r = this.transactions.filter(
2778
+ (l) => l.guid !== t.guid && l.parent_guid !== t.guid
2779
+ );
2780
+ this.setTransactions([
2781
+ ...r.slice(0, o),
2782
+ s,
2783
+ ...a,
2784
+ ...r.slice(o)
2785
+ ]);
2786
+ }
2787
+ };
2788
+ unSplitTransaction = async (t) => {
2789
+ const e = this.transactions.filter((r) => r.parent_guid === t);
2790
+ await this.api.removeTransactionSplit(t);
2791
+ const s = [...this.transactions];
2792
+ e.forEach((r) => {
2793
+ const l = s.findIndex((p) => p.guid === r.guid);
2794
+ l >= 0 && s.splice(l, 1);
2795
+ });
2796
+ const a = s.findIndex((r) => r.guid === t), o = s[a];
2797
+ o.has_been_split = !1, a >= 0 && this.setTransactions([
2798
+ ...s.slice(0, a),
2799
+ o,
2800
+ ...s.slice(a + 1)
2801
+ ]);
2802
+ };
2803
+ updateTaggings = async (t, e) => {
2804
+ const s = this.taggings.filter((r) => r.transaction_guid === e), a = new Set(s.map((r) => r.tag_guid)), o = new Set(t);
2805
+ for (const r of t)
2806
+ a.has(r) || await this.addTagging(r, e);
2807
+ for (const r of s)
2808
+ o.has(r.tag_guid) || await this.removeTagging(r.guid);
2809
+ await this.loadTaggings();
2810
+ };
2811
+ updateTag = async (t) => {
2812
+ await this.api.updateTag(t), await this.loadTags();
2813
+ };
2814
+ updateTransaction = async (t) => {
2815
+ const e = await this.api.updateTransaction(t), s = this.transactions.findIndex((a) => a.guid === t.guid);
2816
+ s >= 0 && this.setTransactions([
2817
+ ...this.transactions.slice(0, s),
2818
+ e,
2819
+ ...this.transactions.slice(s + 1)
2820
+ ]);
2821
+ };
2822
+ // This is used for loading the transactions list on demand, on clicking the different transactions of the insightful beats.
2823
+ loadEmbeddedInstanceTransactions = async (t) => {
2824
+ try {
2825
+ const e = await this.api.getTransactionsByDateRange(
2826
+ m(t),
2827
+ m(q())
2828
+ );
2829
+ this.cachedStartDate = t, this.transactions = e;
2830
+ } catch (e) {
2831
+ console.error(`Error occurred while loading embedded instance transactions: ${e}`);
2832
+ }
2833
+ };
2834
+ }
2835
+ class Fe {
2836
+ beginDate = E(/* @__PURE__ */ new Date());
2837
+ endDate = T(/* @__PURE__ */ new Date());
2838
+ expandedSplits = [];
2839
+ height = 550;
2840
+ width = 1e3;
2841
+ shouldDisableDrawerScroll = !1;
2842
+ searchValue = "";
2843
+ selectedAccountGuids = [];
2844
+ manualTransaction = Ot;
2845
+ isAmountValid = !1;
2846
+ showInsights = !1;
2847
+ constructor() {
2848
+ d(this);
2849
+ }
2850
+ setDateRange = (t, e) => {
2851
+ this.beginDate = t, this.endDate = e;
2852
+ };
2853
+ setIsAmountValid = (t) => this.isAmountValid = t;
2854
+ setSearchValue = (t) => this.searchValue = t;
2855
+ setSelectedAccountGuids = (t) => this.selectedAccountGuids = t;
2856
+ setShouldDisableDrawerScroll = (t) => this.shouldDisableDrawerScroll = t;
2857
+ setShowInsights = (t) => {
2858
+ this.showInsights = t;
2859
+ };
2860
+ setSize = (t, e) => {
2861
+ this.height = t, this.width = e;
2862
+ };
2863
+ toggleSplit = (t) => {
2864
+ const e = [...this.expandedSplits], s = this.expandedSplits.findIndex((a) => a === t);
2865
+ s >= 0 ? e.splice(s, 1) : e.push(t), this.expandedSplits = e;
2866
+ };
2867
+ clearExpandedSplits = () => {
2868
+ this.expandedSplits.length !== 0 && (this.expandedSplits = []);
2869
+ };
2870
+ updateManualTransaction = (t) => {
2871
+ this.manualTransaction = t;
2872
+ };
2873
+ }
2874
+ class ke {
2875
+ globalStore;
2876
+ selectedCategoryData = null;
2877
+ selectedDateRange;
2878
+ visibleListLength = 5;
2879
+ constructor(t) {
2880
+ this.globalStore = t, this.selectedDateRange = {
2881
+ start: ee(T($(/* @__PURE__ */ new Date(), 6)), 1),
2882
+ end: T(/* @__PURE__ */ new Date())
2883
+ }, d(this);
2884
+ }
2885
+ setSelectedCategoryData = (t) => {
2886
+ this.selectedCategoryData = t;
2887
+ };
2888
+ setSelectedDateRange = (t) => {
2889
+ this.selectedDateRange = t;
2890
+ };
2891
+ setVisibleListLength = (t) => {
2892
+ this.visibleListLength = t;
2893
+ };
2894
+ get sortedDetailedCategoriesWithTransactions() {
2895
+ return ae(
2896
+ this.globalStore.categoryStore.detailedCategoriesWithTransactions
2897
+ );
2898
+ }
2899
+ get selectedDateRangeMonthCount() {
2900
+ return se(this.selectedDateRange.end, this.selectedDateRange.start) + 1;
2901
+ }
2902
+ get selectedDateRangeMonthRange() {
2903
+ const t = P(this.selectedDateRange.start, U.MONTH_LONG), e = P(this.selectedDateRange.end, U.MONTH_LONG);
2904
+ return `${t} - ${e}`;
2905
+ }
2906
+ get visibleCategories() {
2907
+ return this.sortedDetailedCategoriesWithTransactions.slice(0, this.visibleListLength);
2908
+ }
2909
+ get collapsedCategories() {
2910
+ return this.sortedDetailedCategoriesWithTransactions.slice(this.visibleListLength);
2911
+ }
2912
+ get categoryDetailsChartData() {
2913
+ return ne(
2914
+ this.selectedCategoryData,
2915
+ this.selectedDateRangeMonthCount
2916
+ );
2917
+ }
2918
+ }
2919
+ class He {
2920
+ globalStore;
2921
+ api = new ot("/", "");
2922
+ userFeatures = [];
2923
+ userFeaturesLoaded = !1;
2924
+ constructor(t) {
2925
+ this.globalStore = t, this.api = new ot(t.endpoint, t.sessionToken, t.onError), d(this);
2926
+ }
2927
+ get userProfile() {
2928
+ return this.globalStore.appDataStore.userProfile;
2929
+ }
2930
+ get user() {
2931
+ return this.globalStore.appDataStore.user;
2932
+ }
2933
+ setUserFeatures = (t) => {
2934
+ this.userFeatures = t, this.userFeaturesLoaded = !0;
2935
+ };
2936
+ loadUserFeatures = async () => {
2937
+ try {
2938
+ const t = await this.api.getUserFeatures();
2939
+ this.setUserFeatures(t);
2940
+ } catch (t) {
2941
+ console.error(`Error occurred while loading user features: ${t}`);
2942
+ }
2943
+ };
2944
+ updateUser = async (t) => {
2945
+ try {
2946
+ const e = await this.api.updateUser(t);
2947
+ this.globalStore.appDataStore.setUser(e);
2948
+ } catch (e) {
2949
+ console.error(`Error updating User: ${e}`);
2950
+ }
2951
+ };
2952
+ updateUserProfile = async (t) => {
2953
+ try {
2954
+ const e = await this.api.updateUserProfile(t);
2955
+ this.globalStore.appDataStore.setUserProfile(e);
2956
+ } catch (e) {
2957
+ console.error(`Error occurred while updating user profile: ${e}`);
2958
+ }
2959
+ };
2960
+ }
2961
+ export {
2962
+ G as A,
2963
+ j as B,
2964
+ _e as C,
2965
+ Te as D,
2966
+ Z as F,
2967
+ Ee as G,
2968
+ et as H,
2969
+ at as M,
2970
+ Ge as N,
2971
+ xe as R,
2972
+ rt as S,
2973
+ B as T,
2974
+ ot as U,
2975
+ ct as W,
2976
+ oe as a,
2977
+ de as b,
2978
+ Y as c,
2979
+ le as d,
2980
+ ge as e,
2981
+ X as f,
2982
+ pe as g,
2983
+ J as h,
2984
+ ye as i,
2985
+ Se as j,
2986
+ Ie as k,
2987
+ Ns as l,
2988
+ Ce as m,
2989
+ tt as n,
2990
+ De as o,
2991
+ ve as p,
2992
+ st as q,
2993
+ $e as r,
2994
+ Ne as s,
2995
+ nt as t,
2996
+ Be as u,
2997
+ it as v,
2998
+ Pe as w,
2999
+ Ue as x,
3000
+ ke as y,
3001
+ He as z
3002
+ };