@mx-cartographer/experiences 9.3.0-alpha.bb2 → 9.3.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 (612) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/accounts/AccountsMiniWidget.es.js.map +1 -1
  3. package/dist/accounts/AccountsWidget.es.js.map +1 -1
  4. package/dist/accounts/ConnectMiniWidget.es.js.map +1 -1
  5. package/dist/accounts/components/AccountListItem.es.js.map +1 -1
  6. package/dist/accounts/components/AccountsList.es.js.map +1 -1
  7. package/dist/accounts/components/AccountsListCompact.es.js.map +1 -1
  8. package/dist/accounts/components/ConnectImage.es.js.map +1 -1
  9. package/dist/accounts/components/ConnectMiniWidgetCard.es.js.map +1 -1
  10. package/dist/accounts/components/ConnectionStatusIcons.es.js.map +1 -1
  11. package/dist/accounts/components/ConnectionsDrawer.es.js.map +1 -1
  12. package/dist/accounts/components/detailsdrawer/Accounts/AccountActions.es.js +40 -37
  13. package/dist/accounts/components/detailsdrawer/Accounts/AccountActions.es.js.map +1 -1
  14. package/dist/accounts/components/detailsdrawer/Accounts/AccountActionsRow.es.js.map +1 -1
  15. package/dist/accounts/components/detailsdrawer/Accounts/AccountConnection.es.js.map +1 -1
  16. package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailEdit.es.js.map +1 -1
  17. package/dist/accounts/components/detailsdrawer/Accounts/AccountDetails.es.js.map +1 -1
  18. package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsChart.es.js.map +1 -1
  19. package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsContent.es.js.map +1 -1
  20. package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsDrawer.es.js.map +1 -1
  21. package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsHeader.es.js.map +1 -1
  22. package/dist/accounts/components/detailsdrawer/Accounts/ConnectionErrorMessage.es.js.map +1 -1
  23. package/dist/accounts/components/detailsdrawer/Transactions/TransactionsTab.es.js.map +1 -1
  24. package/dist/accounts/utils/AccountFields.es.js +4 -1
  25. package/dist/accounts/utils/AccountFields.es.js.map +1 -1
  26. package/dist/analytics/SurveyMiniWidget.es.js.map +1 -1
  27. package/dist/analytics/components/RatingScale.es.js.map +1 -1
  28. package/dist/budgets/BubbleBudgetsMiniWidget.es.js +46 -44
  29. package/dist/budgets/BubbleBudgetsMiniWidget.es.js.map +1 -1
  30. package/dist/budgets/BubbleBudgetsWidget.es.js.map +1 -1
  31. package/dist/budgets/components/AddBudgets.es.js.map +1 -1
  32. package/dist/budgets/components/BubbleBudgets.es.js.map +1 -1
  33. package/dist/budgets/components/BubbleChart.es.js +12 -12
  34. package/dist/budgets/components/BubbleChart.es.js.map +1 -1
  35. package/dist/budgets/components/BudgetDetailsDrawer.es.js.map +1 -1
  36. package/dist/budgets/components/BudgetDetailsDrawerV2.es.js.map +1 -1
  37. package/dist/budgets/components/BudgetList.es.js.map +1 -1
  38. package/dist/budgets/components/MerchantBudgetDetailsDrawer.es.js.map +1 -1
  39. package/dist/budgets/components/Overview.es.js.map +1 -1
  40. package/dist/budgets/components/addbudget/Header.es.js.map +1 -1
  41. package/dist/budgets/components/addbudget/RecalculateBudgets.es.js.map +1 -1
  42. package/dist/budgets/components/addbudget/UnbudgetedRow.es.js.map +1 -1
  43. package/dist/budgets/components/bubblechart/Bubble.es.js.map +1 -1
  44. package/dist/budgets/components/bubblechart/Mercury.es.js +13 -11
  45. package/dist/budgets/components/bubblechart/Mercury.es.js.map +1 -1
  46. package/dist/budgets/components/budgetdetails/AddSubBudget.es.js.map +1 -1
  47. package/dist/budgets/components/budgetdetails/BudgetDetails.es.js.map +1 -1
  48. package/dist/budgets/components/budgetdetails/Header.es.js.map +1 -1
  49. package/dist/budgets/components/budgetdetails/SubBudgetList.es.js.map +1 -1
  50. package/dist/budgets/components/budgetlist/BudgetRow.es.js.map +1 -1
  51. package/dist/budgets/components/budgetlist/SubBudgetRow.es.js.map +1 -1
  52. package/dist/budgets/components/budgetlist/SubBudgetZeroState.es.js.map +1 -1
  53. package/dist/budgets/components/shared/BudgetAmount.es.js.map +1 -1
  54. package/dist/budgets/components/shared/BudgetDetailsTopSection.es.js.map +1 -1
  55. package/dist/budgets/utils/BubblesSVG.es.js +10 -10
  56. package/dist/budgets/utils/BubblesSVG.es.js.map +1 -1
  57. package/dist/cashflow/CashflowMiniWidget.es.js.map +1 -1
  58. package/dist/cashflow/CashflowOnboarding.es.js.map +1 -1
  59. package/dist/cashflow/CashflowWidget.es.js.map +1 -1
  60. package/dist/cashflow/components/CashflowAmountHeading.es.js.map +1 -1
  61. package/dist/cashflow/components/CashflowContent.es.js.map +1 -1
  62. package/dist/cashflow/components/CashflowHeading.es.js.map +1 -1
  63. package/dist/cashflow/components/CashflowWidgetContent.es.js.map +1 -1
  64. package/dist/cashflow/components/DetailsExpenseHeader.es.js.map +1 -1
  65. package/dist/cashflow/components/DetailsExpenseRow.es.js.map +1 -1
  66. package/dist/cashflow/components/DetailsFooter.es.js.map +1 -1
  67. package/dist/cashflow/components/DetailsTab.es.js.map +1 -1
  68. package/dist/cashflow/components/RemainingCash.es.js.map +1 -1
  69. package/dist/cashflow/components/SummaryTab.es.js.map +1 -1
  70. package/dist/cashflow/components/onboarding/StepOne.es.js.map +1 -1
  71. package/dist/cashflow/components/onboarding/StepTwo.es.js.map +1 -1
  72. package/dist/categories/components/CategoryList.es.js +24 -24
  73. package/dist/categories/components/CategoryList.es.js.map +1 -1
  74. package/dist/categories/components/CategoryRow.es.js +6 -6
  75. package/dist/categories/components/CategoryRow.es.js.map +1 -1
  76. package/dist/categories/components/CategorySelector.es.js +36 -32
  77. package/dist/categories/components/CategorySelector.es.js.map +1 -1
  78. package/dist/categories/components/CategorySelectorDrawer.es.js.map +1 -1
  79. package/dist/categories/components/CustomCategories/AddSubcategory.es.js.map +1 -1
  80. package/dist/categories/components/CustomCategories/CustomCategoryModal.es.js +0 -1
  81. package/dist/categories/components/CustomCategories/CustomCategoryModal.es.js.map +1 -1
  82. package/dist/categories/components/SubcategoryList.es.js.map +1 -1
  83. package/dist/categories/components/SubcategoryRow.es.js.map +1 -1
  84. package/dist/common/components/Banner.es.js.map +1 -1
  85. package/dist/common/components/ConnectCard.es.js.map +1 -1
  86. package/dist/common/components/ConnectDrawer.es.js.map +1 -1
  87. package/dist/common/components/ConnectStatus.es.js.map +1 -1
  88. package/dist/common/components/CurrencyDialog.es.js.map +1 -1
  89. package/dist/common/components/CurrencyInput.es.js +11 -11
  90. package/dist/common/components/CurrencyText.es.js.map +1 -1
  91. package/dist/common/components/DataRow.es.js +7 -7
  92. package/dist/common/components/DataRow.es.js.map +1 -1
  93. package/dist/common/components/EmptyState.es.js.map +1 -1
  94. package/dist/common/components/Error.es.js.map +1 -1
  95. package/dist/common/components/ErrorBoundary.es.js.map +1 -1
  96. package/dist/common/components/GlobalAccountFilter.es.js.map +1 -1
  97. package/dist/common/components/IconBacking.es.js.map +1 -1
  98. package/dist/common/components/InformationTooltip.es.js.map +1 -1
  99. package/dist/common/components/ListItemAction.es.js.map +1 -1
  100. package/dist/common/components/ListItemRow.es.js +1 -1
  101. package/dist/common/components/ListItemRow.es.js.map +1 -1
  102. package/dist/common/components/ListItemWrapper.es.js.map +1 -1
  103. package/dist/common/components/Loader.es.js.map +1 -1
  104. package/dist/common/components/MicroWidgetContainer.es.js.map +1 -1
  105. package/dist/common/components/MiniWidgetContainer.es.js.map +1 -1
  106. package/dist/common/components/ResponsiveButton.es.js.map +1 -1
  107. package/dist/common/components/SearchBox.es.js.map +1 -1
  108. package/dist/common/components/Select.es.js.map +1 -1
  109. package/dist/common/components/SelectionBox.es.js.map +1 -1
  110. package/dist/common/components/SkeletonLoader.es.js.map +1 -1
  111. package/dist/common/components/SubheaderRow.es.js.map +1 -1
  112. package/dist/common/components/TabContentContainer.es.js.map +1 -1
  113. package/dist/common/components/TinyBarChart.es.js.map +1 -1
  114. package/dist/common/components/WidgetContainer.es.js.map +1 -1
  115. package/dist/common/components/WidgetDateRangeSelector.es.js +28 -28
  116. package/dist/common/components/WidgetDateRangeSelector.es.js.map +1 -1
  117. package/dist/common/components/addaccounts/AddAccounts.es.js +13 -13
  118. package/dist/common/components/addaccounts/AddAccounts.es.js.map +1 -1
  119. package/dist/common/components/calendar/Calendar.es.js.map +1 -1
  120. package/dist/common/components/calendar/Day.es.js.map +1 -1
  121. package/dist/common/components/calendar/Header.es.js +26 -23
  122. package/dist/common/components/calendar/Header.es.js.map +1 -1
  123. package/dist/common/components/charts/Donut.es.js.map +1 -1
  124. package/dist/common/components/charts/LineChart.es.js.map +1 -1
  125. package/dist/common/components/charts/StackedLineChart.es.js.map +1 -1
  126. package/dist/common/components/charts/StatusBar.es.js.map +1 -1
  127. package/dist/common/components/charts/linechart/CustomLegend.es.js.map +1 -1
  128. package/dist/common/components/charts/linechart/CustomLine.es.js.map +1 -1
  129. package/dist/common/components/charts/linechart/CustomMark.es.js.map +1 -1
  130. package/dist/common/components/charts/linechart/CustomTooltip.es.js.map +1 -1
  131. package/dist/common/components/charts/stackedlinechart/CategoryIconLabel.es.js.map +1 -1
  132. package/dist/common/components/charts/stackedlinechart/CustomAreaTooltip.es.js.map +1 -1
  133. package/dist/common/components/charts/stackedlinechart/CustomLegend.es.js.map +1 -1
  134. package/dist/common/components/charts/stackedlinechart/CustomPointTooltip.es.js.map +1 -1
  135. package/dist/common/components/daterangeselector/DateRangeSelector.d.ts +14 -0
  136. package/dist/common/components/daterangeselector/DateRangeSelector.es.js +113 -101
  137. package/dist/common/components/daterangeselector/DateRangeSelector.es.js.map +1 -1
  138. package/dist/common/components/dialog/Dialog.es.js.map +1 -1
  139. package/dist/common/components/donuts/MultiSegmentDonut.es.js.map +1 -1
  140. package/dist/common/components/donuts/SingleSegmentDonut.es.js.map +1 -1
  141. package/dist/common/components/drawer/Drawer.es.js.map +1 -1
  142. package/dist/common/components/drawer/Footer.es.js.map +1 -1
  143. package/dist/common/components/drawer/Header.es.js.map +1 -1
  144. package/dist/common/components/globalaccountfilter/GlobalAccountFilterList.es.js +71 -87
  145. package/dist/common/components/globalaccountfilter/GlobalAccountFilterList.es.js.map +1 -1
  146. package/dist/common/components/listitems/CollapseExpandListItem.es.js +4 -4
  147. package/dist/common/components/listitems/CollapseExpandListItem.es.js.map +1 -1
  148. package/dist/common/components/listitems/ToggleButtonListItem.es.js +6 -6
  149. package/dist/common/components/listitems/ToggleButtonListItem.es.js.map +1 -1
  150. package/dist/common/components/listitems/ToggleListItem.es.js.map +1 -1
  151. package/dist/common/hooks/useAriaLive.es.js.map +1 -1
  152. package/dist/common/utils/AccountFilter.es.js.map +1 -1
  153. package/dist/core/constants/Category.es.js.map +1 -1
  154. package/dist/core/stores/CategoryStore.d.ts +2 -0
  155. package/dist/core/stores/CategoryStore.es.js +55 -47
  156. package/dist/core/stores/CategoryStore.es.js.map +1 -1
  157. package/dist/core/stores/DebtsStore.es.js +10 -10
  158. package/dist/core/stores/DebtsStore.es.js.map +1 -1
  159. package/dist/core/stores/FinstrongStore.es.js +4 -4
  160. package/dist/core/stores/FinstrongStore.es.js.map +1 -1
  161. package/dist/core/stores/TrendsStore.es.js +6 -6
  162. package/dist/core/types/Account.es.js.map +1 -1
  163. package/dist/core/utils/DateUtil.es.js +24 -23
  164. package/dist/core/utils/DateUtil.es.js.map +1 -1
  165. package/dist/core/utils/DebtUtils.es.js +28 -28
  166. package/dist/core/utils/DebtUtils.es.js.map +1 -1
  167. package/dist/core/utils/GoalsUtil.es.js +11 -8
  168. package/dist/core/utils/GoalsUtil.es.js.map +1 -1
  169. package/dist/core/utils/InvestmentUtil.es.js +26 -23
  170. package/dist/core/utils/InvestmentUtil.es.js.map +1 -1
  171. package/dist/core/utils/NotificationUtils.es.js +11 -8
  172. package/dist/core/utils/NotificationUtils.es.js.map +1 -1
  173. package/dist/core/utils/RecurringTransactionsUtil.es.js +5 -8
  174. package/dist/core/utils/RecurringTransactionsUtil.es.js.map +1 -1
  175. package/dist/core/utils/SettingsUtil.es.js.map +1 -1
  176. package/dist/core/utils/TransactionUtils.es.js.map +1 -1
  177. package/dist/dashboard/Dashboard.es.js.map +1 -1
  178. package/dist/dashboard/Greeting.es.js.map +1 -1
  179. package/dist/debts/DebtsWidget.es.js.map +1 -1
  180. package/dist/debts/components/DebtDrawer.es.js.map +1 -1
  181. package/dist/debts/components/DebtsChart.es.js +36 -36
  182. package/dist/debts/components/DebtsChart.es.js.map +1 -1
  183. package/dist/debts/components/DebtsTable.es.js +13 -13
  184. package/dist/debts/components/DebtsTable.es.js.map +1 -1
  185. package/dist/debts/components/PaydownDrawer.es.js.map +1 -1
  186. package/dist/debts/components/SnowballCard.es.js.map +1 -1
  187. package/dist/debts/components/SnowballDrawer.es.js.map +1 -1
  188. package/dist/debts/components/actions/DebtsPriorityAction.es.js +23 -23
  189. package/dist/debts/components/actions/DebtsPriorityAction.es.js.map +1 -1
  190. package/dist/debts/components/actions/ExtraPaymentAction.es.js.map +1 -1
  191. package/dist/debts/components/actions/InterestRateAction.es.js.map +1 -1
  192. package/dist/debts/components/actions/MonthlyPaymentAction.es.js.map +1 -1
  193. package/dist/debts/components/actions/OriginalBalanceAction.es.js.map +1 -1
  194. package/dist/debts/components/debtsdrawer/DebtDetailsChart.es.js.map +1 -1
  195. package/dist/debts/components/debtsdrawer/DebtDetailsContent.es.js.map +1 -1
  196. package/dist/debts/components/debtsdrawer/DebtDetailsTab.es.js.map +1 -1
  197. package/dist/debts/components/debtsdrawer/DebtScheduleTab.es.js.map +1 -1
  198. package/dist/debts/components/debtsdrawer/DebtStatusCard.es.js.map +1 -1
  199. package/dist/debts/components/debtspaydown/PaydownButton.es.js.map +1 -1
  200. package/dist/debts/components/debtspaydown/PaydownContent.es.js.map +1 -1
  201. package/dist/debts/components/debtspriority/DebtsPriorityButton.es.js.map +1 -1
  202. package/dist/debts/components/debtspriority/DebtsPrioriyPopover.es.js.map +1 -1
  203. package/dist/debts/components/debtstable/AccountCell.es.js.map +1 -1
  204. package/dist/debts/components/debtstable/PriorityCell.es.js.map +1 -1
  205. package/dist/finstrong/FinancialStrengthCard.es.js.map +1 -1
  206. package/dist/finstrong/FinstrongWidget.es.js.map +1 -1
  207. package/dist/finstrong/components/ConnectMoreAccountsCard.es.js.map +1 -1
  208. package/dist/finstrong/components/CreditScore/CreditScoreContent.es.js.map +1 -1
  209. package/dist/finstrong/components/CreditScore/CreditScoreHeader.es.js.map +1 -1
  210. package/dist/finstrong/components/HaveManageableDebt/DebtPaymentTabContent.es.js.map +1 -1
  211. package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtComponent.es.js.map +1 -1
  212. package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtProgressBar.es.js.map +1 -1
  213. package/dist/finstrong/components/HaveManageableDebt/IncomeTabContent.es.js.map +1 -1
  214. package/dist/finstrong/components/HealthChart.es.js.map +1 -1
  215. package/dist/finstrong/components/KeyIndicatorsBorrowTab.es.js.map +1 -1
  216. package/dist/finstrong/components/KeyIndicatorsDrawer.es.js.map +1 -1
  217. package/dist/finstrong/components/KeyIndicatorsSaveTab.es.js.map +1 -1
  218. package/dist/finstrong/components/KeyIndicatorsSpendTab.es.js.map +1 -1
  219. package/dist/finstrong/components/KeyIndicatorsTabItem.es.js.map +1 -1
  220. package/dist/finstrong/components/KeyIndicatorsTabItemDrawer.es.js.map +1 -1
  221. package/dist/finstrong/components/KeyIndicatorsTabsWidget.es.js.map +1 -1
  222. package/dist/finstrong/components/MaintainingEmergencySavings/EstimatedContributionCalculator.es.js.map +1 -1
  223. package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsContent.es.js.map +1 -1
  224. package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsSticky.es.js.map +1 -1
  225. package/dist/finstrong/components/ManageCreditScore.es.js.map +1 -1
  226. package/dist/finstrong/components/ManageDOB.es.js.map +1 -1
  227. package/dist/finstrong/components/MissingData.es.js.map +1 -1
  228. package/dist/finstrong/components/ProfileDrawer.es.js.map +1 -1
  229. package/dist/finstrong/components/ProfileList.es.js.map +1 -1
  230. package/dist/finstrong/components/ProfileProgressBar.es.js.map +1 -1
  231. package/dist/finstrong/components/ProgressBar.es.js.map +1 -1
  232. package/dist/finstrong/components/SaveEnoughToLiveOn/AvailableTabContent.es.js.map +1 -1
  233. package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnDrawerContent.es.js.map +1 -1
  234. package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnProgressBar.es.js.map +1 -1
  235. package/dist/finstrong/components/SaveEnoughToLiveOn/SpendingTabContent.es.js.map +1 -1
  236. package/dist/finstrong/components/ScoreHistoryDrawer.es.js.map +1 -1
  237. package/dist/finstrong/components/ScoreRubricDrawer.es.js.map +1 -1
  238. package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeComponent.es.js.map +1 -1
  239. package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeProgressBar.es.js.map +1 -1
  240. package/dist/finstrong/components/StatusChip.es.js.map +1 -1
  241. package/dist/finstrong/components/onboarding/Onboarding.es.js.map +1 -1
  242. package/dist/finstrong/components/onboarding/OnboardingAddMonthlyIncome.es.js.map +1 -1
  243. package/dist/finstrong/components/onboarding/OnboardingBirthday.es.js.map +1 -1
  244. package/dist/finstrong/components/onboarding/OnboardingCreditScore.es.js.map +1 -1
  245. package/dist/finstrong/components/onboarding/OnboardingStepsDrawer.es.js +15 -18
  246. package/dist/finstrong/components/onboarding/OnboardingStepsDrawer.es.js.map +1 -1
  247. package/dist/finstrong/components/onboarding/OnboardingStepsHeader.es.js.map +1 -1
  248. package/dist/finstrong/components/paybillsontime/PayBillsOnTimeDrawerComponent.es.js.map +1 -1
  249. package/dist/finstrong/components/paybillsontime/PayBillsOnTimeStickyComponent.es.js.map +1 -1
  250. package/dist/finstrong/components/shared/Accounts.es.js.map +1 -1
  251. package/dist/finstrong/components/shared/CustomDoubleBarPlot.es.js.map +1 -1
  252. package/dist/finstrong/components/shared/CustomPieArc.es.js.map +1 -1
  253. package/dist/finstrong/components/shared/DialScoreCard.es.js +27 -27
  254. package/dist/finstrong/components/shared/DialScoreCard.es.js.map +1 -1
  255. package/dist/finstrong/components/shared/DoubleBarChart.es.js.map +1 -1
  256. package/dist/finstrong/components/shared/LineGraph.es.js +20 -19
  257. package/dist/finstrong/components/shared/LineGraph.es.js.map +1 -1
  258. package/dist/finstrong/components/shared/ScoreHistoryTimeline.es.js +28 -28
  259. package/dist/finstrong/components/shared/ScoreHistoryTimeline.es.js.map +1 -1
  260. package/dist/finstrong/components/shared/ScoreHistoryTimelineItem.es.js.map +1 -1
  261. package/dist/finstrong/components/shared/TotalCard.es.js.map +1 -1
  262. package/dist/finstrong/components/shared/Transactions.es.js.map +1 -1
  263. package/dist/finstrong/util/finstrongUtils.es.js +4 -1
  264. package/dist/finstrong/util/finstrongUtils.es.js.map +1 -1
  265. package/dist/goals/GoalsMicroWidget.es.js.map +1 -1
  266. package/dist/goals/GoalsWidget.es.js.map +1 -1
  267. package/dist/goals/components/AccountSelectionDrawer.es.js.map +1 -1
  268. package/dist/goals/components/AddGoal.es.js.map +1 -1
  269. package/dist/goals/components/GoalDetails.es.js.map +1 -1
  270. package/dist/goals/components/GoalDetailsDrawer.es.js.map +1 -1
  271. package/dist/goals/components/GoalList.es.js.map +1 -1
  272. package/dist/goals/components/GoalStatusCard.es.js.map +1 -1
  273. package/dist/goals/components/ManageGoals.es.js.map +1 -1
  274. package/dist/goals/components/TabTitle.es.js.map +1 -1
  275. package/dist/goals/components/actions/AccountAction.es.js.map +1 -1
  276. package/dist/goals/components/actions/AddRetirementAccountAction.es.js.map +1 -1
  277. package/dist/goals/components/actions/AmountToSaveAction.es.js.map +1 -1
  278. package/dist/goals/components/actions/BirthdayAction.es.js.map +1 -1
  279. package/dist/goals/components/actions/ChangeAccountAction.es.js.map +1 -1
  280. package/dist/goals/components/actions/ContributionAction.es.js.map +1 -1
  281. package/dist/goals/components/actions/GoalNameAction.es.js.map +1 -1
  282. package/dist/goals/components/actions/InterestRateAction.es.js.map +1 -1
  283. package/dist/goals/components/actions/MonthlyPaymentAction.es.js.map +1 -1
  284. package/dist/goals/components/actions/OriginalBalanceAction.es.js.map +1 -1
  285. package/dist/goals/components/actions/RetirementAgeAction.es.js.map +1 -1
  286. package/dist/goals/components/addgoal/AddGoalListItem.es.js +5 -5
  287. package/dist/goals/components/addgoal/AddGoalListItem.es.js.map +1 -1
  288. package/dist/goals/components/managegoals/CompleteListItem.es.js.map +1 -1
  289. package/dist/goals/components/managegoals/OngoingListItem.es.js.map +1 -1
  290. package/dist/goals/components/micro/GoalMicroStatusCard.es.js.map +1 -1
  291. package/dist/goals/components/micro/GoalsMicroEmptyState.es.js.map +1 -1
  292. package/dist/help/HelpWidget.es.js.map +1 -1
  293. package/dist/help/components/Help.es.js.map +1 -1
  294. package/dist/help/components/HelpList.es.js +32 -32
  295. package/dist/help/components/HelpList.es.js.map +1 -1
  296. package/dist/help/components/content/BottomImageContent.es.js.map +1 -1
  297. package/dist/help/components/content/ContentItem.es.js.map +1 -1
  298. package/dist/help/components/content/Header.es.js.map +1 -1
  299. package/dist/help/components/content/LeftImageContent.es.js.map +1 -1
  300. package/dist/help/components/content/NoImageContent.es.js.map +1 -1
  301. package/dist/help/components/content/RightImageContent.es.js.map +1 -1
  302. package/dist/help/components/content/TopImageContent.es.js.map +1 -1
  303. package/dist/help/components/requestsupport/ContactSupport.es.js.map +1 -1
  304. package/dist/help/components/requestsupport/HelpByCategoryList.es.js.map +1 -1
  305. package/dist/help/components/requestsupport/MissingInstitution.es.js.map +1 -1
  306. package/dist/help/components/requestsupport/PopularTopicsDrawer.es.js.map +1 -1
  307. package/dist/help/components/requestsupport/PopularTopicsList.es.js.map +1 -1
  308. package/dist/help/components/requestsupport/PopularTopicsRow.es.js +6 -6
  309. package/dist/help/components/requestsupport/PopularTopicsRow.es.js.map +1 -1
  310. package/dist/help/components/requestsupport/RequestSupport.es.js.map +1 -1
  311. package/dist/help/components/requestsupport/RequestSupportFooter.es.js.map +1 -1
  312. package/dist/help/components/requestsupport/RequestSupportHeader.es.js.map +1 -1
  313. package/dist/help/components/requestsupport/RequestSupportInstitution.es.js.map +1 -1
  314. package/dist/help/components/requestsupport/SupportSuccessMessage.es.js.map +1 -1
  315. package/dist/insights/components/feed/Header.es.js.map +1 -1
  316. package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/AmericanUpcomingTaxDeadlineAlert.es.js.map +1 -1
  317. package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandard.es.js.map +1 -1
  318. package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandardMUI.es.js.map +1 -1
  319. package/dist/insights/components/insights/CashBack/CashBack.es.js.map +1 -1
  320. package/dist/insights/components/insights/CategoryBudget/CategoryBudget.es.js +17 -17
  321. package/dist/insights/components/insights/CategoryBudget/CategoryBudget.es.js.map +1 -1
  322. package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2.es.js.map +1 -1
  323. package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2MUI.es.js.map +1 -1
  324. package/dist/insights/components/insights/CelebrateCreditCardPayoff/CelebrateCreditCardPayoff.es.js.map +1 -1
  325. package/dist/insights/components/insights/CustomTransaction/CustomTransaction.es.js.map +1 -1
  326. package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsBody.es.js.map +1 -1
  327. package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsLearnMoreDrawerContent.es.js +6 -6
  328. package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsLearnMoreDrawerContent.es.js.map +1 -1
  329. package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsMiniInsight.es.js.map +1 -1
  330. package/dist/insights/components/insights/FederalBankHoliday/FederalBankHoliday.es.js.map +1 -1
  331. package/dist/insights/components/insights/FederalBankHoliday/FederalBankHolidayMUI.es.js.map +1 -1
  332. package/dist/insights/components/insights/MarketingHub/Offer.es.js.map +1 -1
  333. package/dist/insights/components/insights/MonthlyDebtToIncomeComparisonV2/MonthlyDebtToIncomeComparisonV2.es.js.map +1 -1
  334. package/dist/insights/components/insights/MonthlyEmergencyFundReview/LastMonthsContributionSection.es.js.map +1 -1
  335. package/dist/insights/components/insights/MonthlyEmergencyFundReview/MonthlyEmergencyFundReviewBody.es.js +38 -35
  336. package/dist/insights/components/insights/MonthlyEmergencyFundReview/MonthlyEmergencyFundReviewBody.es.js.map +1 -1
  337. package/dist/insights/components/insights/MonthlyEmergencyFundReview/ProjectedCompletionSection.es.js.map +1 -1
  338. package/dist/insights/components/insights/MonthlyEmergencyFundReview/TotalSection.es.js.map +1 -1
  339. package/dist/insights/components/insights/MonthlySavingsToIncomeComparison/MonthlySavingsToIncomeComparison.es.js.map +1 -1
  340. package/dist/insights/components/insights/MonthlySpendToIncomeComparisonV2/MonthlySpendToIncomeComparisonV2.es.js.map +1 -1
  341. package/dist/insights/components/insights/MonthlySpendingComparisonV2/MonthlySpendingComparisonV2.es.js.map +1 -1
  342. package/dist/insights/components/insights/P2pCategorization/P2pCategorization.es.js.map +1 -1
  343. package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationMultipleTransactions.es.js.map +1 -1
  344. package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationSingleTransaction.es.js.map +1 -1
  345. package/dist/insights/components/insights/SavingsAccountBalancesSummary/SavingsAccountBalancesSummary.es.js.map +1 -1
  346. package/dist/insights/components/insights/SharedDeposit/SharedDeposit.es.js.map +1 -1
  347. package/dist/insights/components/insights/SwitchDirectDeposit/AccountBox.es.js.map +1 -1
  348. package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositMainContainer.es.js.map +1 -1
  349. package/dist/insights/components/insights/UnifiedDeposit/UnifiedDeposit.es.js.map +1 -1
  350. package/dist/insights/components/insights/UnifiedDeposit/UnifiedDepositBody.es.js.map +1 -1
  351. package/dist/insights/components/insights/UserFeedback/UserFeedback.es.js.map +1 -1
  352. package/dist/insights/components/insights/WeeklyNoSpendDays/BubbleWeek.es.js.map +1 -1
  353. package/dist/insights/components/insights/WeeklyNoSpendDays/WeeklyNoSpendDays.es.js.map +1 -1
  354. package/dist/insights/components/shared/ChartDrawerTemplate/ChartDrawerTemplate.es.js +22 -22
  355. package/dist/insights/components/shared/ChartDrawerTemplate/ChartDrawerTemplate.es.js.map +1 -1
  356. package/dist/insights/components/shared/ChartDrawerTemplate/TipSection.es.js.map +1 -1
  357. package/dist/insights/components/shared/ChartTransactionWithDrillDown.es.js.map +1 -1
  358. package/dist/insights/components/shared/Charts/BarChart/BarChart.es.js.map +1 -1
  359. package/dist/insights/components/shared/Charts/BarChart/BarChartV2.es.js.map +1 -1
  360. package/dist/insights/components/shared/Charts/BarChart/ChartLegend.es.js.map +1 -1
  361. package/dist/insights/components/shared/Charts/BarChart/ChartLegendV2.es.js.map +1 -1
  362. package/dist/insights/components/shared/Charts/BarChart/CustomBarPlot.es.js.map +1 -1
  363. package/dist/insights/components/shared/Charts/BarChart/CustomBarPlotV2.es.js.map +1 -1
  364. package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlot.es.js.map +1 -1
  365. package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlotMXUI.es.js.map +1 -1
  366. package/dist/insights/components/shared/Charts/BarChart/DoubleBarChart.es.js.map +1 -1
  367. package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegend.es.js.map +1 -1
  368. package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegendMXUI.es.js.map +1 -1
  369. package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartMXUI.es.js.map +1 -1
  370. package/dist/insights/components/shared/ConnectionCard.es.js.map +1 -1
  371. package/dist/insights/components/shared/Coupon.es.js.map +1 -1
  372. package/dist/insights/components/shared/DeepLinks/DeepLinkDialog.es.js.map +1 -1
  373. package/dist/insights/components/shared/DeepLinks/DirectDeposit/DirectDepositDeepLink.es.js.map +1 -1
  374. package/dist/insights/components/shared/DeepLinks/DirectDeposit/Dot.es.js.map +1 -1
  375. package/dist/insights/components/shared/DirectDeposit/DirectDeposit.es.js.map +1 -1
  376. package/dist/insights/components/shared/DirectDeposit/DirectDepositSubHeader.es.js.map +1 -1
  377. package/dist/insights/components/shared/DirectDeposit/FullFeedBodyHeader.es.js.map +1 -1
  378. package/dist/insights/components/shared/DirectDeposit/LeftBox.es.js.map +1 -1
  379. package/dist/insights/components/shared/DirectDeposit/MiniBodyHeader.es.js.map +1 -1
  380. package/dist/insights/components/shared/DirectDeposit/RightBox.es.js.map +1 -1
  381. package/dist/insights/components/shared/DiscoveredAccountsConnect.es.js.map +1 -1
  382. package/dist/insights/components/shared/DrillDownCalculation/BalanceStepper.es.js.map +1 -1
  383. package/dist/insights/components/shared/DrillDownCalculation/DrillDownCalculation.es.js.map +1 -1
  384. package/dist/insights/components/shared/ErrorCard/ErrorCard.es.js.map +1 -1
  385. package/dist/insights/components/shared/GenericFeedback/FeedbackButtons.es.js.map +1 -1
  386. package/dist/insights/components/shared/GenericFeedback/FeedbackDescription.es.js.map +1 -1
  387. package/dist/insights/components/shared/GenericFeedback/FeedbackHeader.es.js.map +1 -1
  388. package/dist/insights/components/shared/GenericFeedback/FeedbackOptions.es.js.map +1 -1
  389. package/dist/insights/components/shared/GenericFeedback/FeedbackText.es.js.map +1 -1
  390. package/dist/insights/components/shared/GoalProgress.es.js.map +1 -1
  391. package/dist/insights/components/shared/GradientBox.es.js.map +1 -1
  392. package/dist/insights/components/shared/InsightsCard/BeatCard.es.js.map +1 -1
  393. package/dist/insights/components/shared/InsightsCard/BeatCardMUI.es.js.map +1 -1
  394. package/dist/insights/components/shared/InsightsCard/CardButtonSection.es.js.map +1 -1
  395. package/dist/insights/components/shared/InsightsCard/CardError.es.js.map +1 -1
  396. package/dist/insights/components/shared/InsightsCard/CardFooter.es.js.map +1 -1
  397. package/dist/insights/components/shared/InsightsCard/CardLoading.es.js.map +1 -1
  398. package/dist/insights/components/shared/InsightsCard/ClientConfigurableCta.es.js.map +1 -1
  399. package/dist/insights/components/shared/InsightsCard/ContentAndDescription.es.js.map +1 -1
  400. package/dist/insights/components/shared/InsightsCard/ContentAndDescriptionMUI.es.js.map +1 -1
  401. package/dist/insights/components/shared/InsightsCard/Description.es.js.map +1 -1
  402. package/dist/insights/components/shared/InsightsCard/DescriptionMUI.es.js.map +1 -1
  403. package/dist/insights/components/shared/InsightsCard/EmbeddedCard.es.js.map +1 -1
  404. package/dist/insights/components/shared/InsightsCard/FeedbackCard.es.js +4 -4
  405. package/dist/insights/components/shared/InsightsCard/FeedbackCard.es.js.map +1 -1
  406. package/dist/insights/components/shared/InsightsCard/InsightButton.es.js.map +1 -1
  407. package/dist/insights/components/shared/MenuAction.es.js +4 -4
  408. package/dist/insights/components/shared/MenuAction.es.js.map +1 -1
  409. package/dist/insights/components/shared/MiniInsightCard.es.js.map +1 -1
  410. package/dist/insights/components/shared/P2P/P2PMultipleCategorization.es.js +23 -23
  411. package/dist/insights/components/shared/P2P/P2PMultipleCategorization.es.js.map +1 -1
  412. package/dist/insights/components/shared/P2PCategorizationSingleAccount/P2PCategorizationSingleAccount.es.js +24 -24
  413. package/dist/insights/components/shared/P2PCategorizationSingleAccount/P2PCategorizationSingleAccount.es.js.map +1 -1
  414. package/dist/insights/components/shared/ProgressBar.es.js.map +1 -1
  415. package/dist/insights/components/shared/SaveAnExtra100/SaveAnExtra100.es.js.map +1 -1
  416. package/dist/insights/components/shared/SaveEnoughToLiveOnBottomSection.es.js.map +1 -1
  417. package/dist/insights/components/shared/StatusIndicator.es.js.map +1 -1
  418. package/dist/insights/components/shared/ThemedSVGImage.es.js.map +1 -1
  419. package/dist/insights/components/shared/TransactionCard.es.js.map +1 -1
  420. package/dist/insights/components/shared/ZeroState/LinedCardZeroState.es.js.map +1 -1
  421. package/dist/investments/InvestmentsWidget.es.js.map +1 -1
  422. package/dist/investments/components/Allocation.es.js.map +1 -1
  423. package/dist/investments/components/Analysis.es.js.map +1 -1
  424. package/dist/investments/components/AnalysisDetails.es.js.map +1 -1
  425. package/dist/investments/components/EmptyStateFooterComponent.es.js.map +1 -1
  426. package/dist/investments/components/HeaderCell.es.js.map +1 -1
  427. package/dist/investments/components/HoldingDrawer.es.js.map +1 -1
  428. package/dist/investments/components/HoldingTable.es.js +167 -164
  429. package/dist/investments/components/HoldingTable.es.js.map +1 -1
  430. package/dist/investments/components/InfoToolTip.es.js.map +1 -1
  431. package/dist/investments/components/Overview.es.js.map +1 -1
  432. package/dist/investments/components/TabTitle.es.js.map +1 -1
  433. package/dist/investments/components/allocation/InvestementAllocationList.es.js.map +1 -1
  434. package/dist/investments/components/allocation/InvestmentsAllocationChart.es.js.map +1 -1
  435. package/dist/merchants/components/MerchantLookup.es.js.map +1 -1
  436. package/dist/microinsights/InsightsMicroWidget.es.js.map +1 -1
  437. package/dist/microinsights/MicroCardTemplate.es.js.map +1 -1
  438. package/dist/microinsights/Spinner.es.js.map +1 -1
  439. package/dist/microinsights/beaticons/BeatCategoryIcon.es.js +8 -8
  440. package/dist/microinsights/beaticons/BeatCategoryIcon.es.js.map +1 -1
  441. package/dist/microinsights/beaticons/BeatMaterialIcon.es.js.map +1 -1
  442. package/dist/microinsights/beaticons/ChartFilledIcon.es.js.map +1 -1
  443. package/dist/microinsights/beaticons/ZeroStateIcon.es.js.map +1 -1
  444. package/dist/microinsights/cards/ViewMoreMicroCard.d.ts +1 -0
  445. package/dist/microinsights/cards/ViewMoreMicroCard.es.js.map +1 -1
  446. package/dist/microinsights/carousel/BeatList.es.js +17 -17
  447. package/dist/microinsights/carousel/BeatList.es.js.map +1 -1
  448. package/dist/microinsights/carousel/CarouselControls.es.js.map +1 -1
  449. package/dist/microinsights/carousel/CarouselHeader.es.js.map +1 -1
  450. package/dist/microinsights/carousel/MicroBeatCarousel.es.js.map +1 -1
  451. package/dist/microinsights/constants/Analytics.es.js.map +1 -1
  452. package/dist/networth/NetWorthMicroWidget.es.js.map +1 -1
  453. package/dist/networth/NetWorthWidget.es.js.map +1 -1
  454. package/dist/networth/components/AssetsLiabilitiesDetail.es.js +1 -1
  455. package/dist/networth/components/AssetsLiabilitiesDetail.es.js.map +1 -1
  456. package/dist/networth/components/GainsLossesDetail.es.js.map +1 -1
  457. package/dist/networth/components/NetWorthChange.es.js.map +1 -1
  458. package/dist/networth/components/NetWorthChart.es.js.map +1 -1
  459. package/dist/networth/components/NetWorthList.es.js.map +1 -1
  460. package/dist/networth/components/NetWorthListItem.es.js.map +1 -1
  461. package/dist/networth/components/NetWorthSummary.es.js.map +1 -1
  462. package/dist/networth/components/micro/NetworthData.es.js.map +1 -1
  463. package/dist/networth/components/micro/ZeroState.es.js.map +1 -1
  464. package/dist/notifications/components/DateRow.es.js.map +1 -1
  465. package/dist/notifications/components/NotificationBadge.es.js.map +1 -1
  466. package/dist/notifications/components/NotificationCard.es.js.map +1 -1
  467. package/dist/notifications/components/NotificationDrawer.es.js.map +1 -1
  468. package/dist/notifications/components/NotificationList.es.js +33 -30
  469. package/dist/notifications/components/NotificationList.es.js.map +1 -1
  470. package/dist/notifications/components/NotificationsEmptyState.es.js.map +1 -1
  471. package/dist/recurringtransactions/RecurringTransactionsMicroWidget.es.js.map +1 -1
  472. package/dist/recurringtransactions/RecurringTransactionsMiniWidget.es.js.map +1 -1
  473. package/dist/recurringtransactions/RecurringTransactionsWidget.es.js.map +1 -1
  474. package/dist/recurringtransactions/ZeroStateMicroWidget.es.js.map +1 -1
  475. package/dist/recurringtransactions/components/MicroWidgetContent.es.js.map +1 -1
  476. package/dist/recurringtransactions/components/MiniWidgetContent.es.js.map +1 -1
  477. package/dist/recurringtransactions/components/PaymentSchedule.es.js.map +1 -1
  478. package/dist/recurringtransactions/components/RecurrenceBadges.es.js.map +1 -1
  479. package/dist/recurringtransactions/components/RecurrenceList.es.js.map +1 -1
  480. package/dist/recurringtransactions/components/RecurrenceRow.es.js.map +1 -1
  481. package/dist/recurringtransactions/components/RecurringSettingsDrawer.es.js.map +1 -1
  482. package/dist/recurringtransactions/components/RecurringStatus.es.js.map +1 -1
  483. package/dist/recurringtransactions/components/RecurringTransactionDetails.es.js.map +1 -1
  484. package/dist/recurringtransactions/components/RecurringTransactionDetailsDrawer.es.js.map +1 -1
  485. package/dist/recurringtransactions/components/RecurringTransactionList.es.js.map +1 -1
  486. package/dist/recurringtransactions/components/RecurringTransactions.es.js.map +1 -1
  487. package/dist/recurringtransactions/components/UpcomingRecurrenceCard.es.js.map +1 -1
  488. package/dist/recurringtransactions/components/actions/LinkTransactionDrawer.es.js.map +1 -1
  489. package/dist/recurringtransactions/components/actions/MarkAsPaidDialog.es.js.map +1 -1
  490. package/dist/recurringtransactions/components/actions/MarkAsUnpaidDialog.es.js.map +1 -1
  491. package/dist/recurringtransactions/components/actions/PaymentScheduleAction.es.js.map +1 -1
  492. package/dist/recurringtransactions/components/micro/MerchantLogosRow.es.js.map +1 -1
  493. package/dist/recurringtransactions/components/micro/OverlappingMerchantLogos.es.js.map +1 -1
  494. package/dist/recurringtransactions/components/micro/RecurrenceLegend.es.js.map +1 -1
  495. package/dist/recurringtransactions/components/recurrencecalendar/Legend.es.js.map +1 -1
  496. package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceCalendar.es.js.map +1 -1
  497. package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceDay.es.js.map +1 -1
  498. package/dist/recurringtransactions/components/shared/RecurringSettings.es.js.map +1 -1
  499. package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js.map +1 -1
  500. package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransactionDetails.es.js.map +1 -1
  501. package/dist/recurringtransactions/components/shared/recurringsettings/ManageExpenses.es.js.map +1 -1
  502. package/dist/recurringtransactions/components/shared/recurringsettings/ManageIncome.es.js.map +1 -1
  503. package/dist/recurringtransactions/components/shared/recurringsettings/RecurringRow.es.js.map +1 -1
  504. package/dist/recurringtransactions/components/shared/recurringsettings/RecurringSettingsZeroState.es.js.map +1 -1
  505. package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js.map +1 -1
  506. package/dist/settings/NotificationSettingsWidget.es.js.map +1 -1
  507. package/dist/settings/SettingsWidget.es.js.map +1 -1
  508. package/dist/settings/TransactionRulesWidget.es.js.map +1 -1
  509. package/dist/settings/components/SettingsWidgetContents.es.js.map +1 -1
  510. package/dist/settings/components/devices/DeviceDialog.es.js.map +1 -1
  511. package/dist/settings/components/devices/DeviceList.es.js.map +1 -1
  512. package/dist/settings/components/devices/DeviceTab.es.js.map +1 -1
  513. package/dist/settings/components/devices/DeviceTable.es.js +82 -82
  514. package/dist/settings/components/devices/DeviceTable.es.js.map +1 -1
  515. package/dist/settings/components/notifications/AccountNotificationProfile.es.js.map +1 -1
  516. package/dist/settings/components/notifications/AccountNotificationProfiles.es.js.map +1 -1
  517. package/dist/settings/components/notifications/AccountProfileListItem.es.js.map +1 -1
  518. package/dist/settings/components/notifications/DeliveryMethods.es.js.map +1 -1
  519. package/dist/settings/components/notifications/NotificationProfile.es.js.map +1 -1
  520. package/dist/settings/components/notifications/NotificationSettings.es.js.map +1 -1
  521. package/dist/settings/components/notifications/PersonalDetails.es.js.map +1 -1
  522. package/dist/settings/components/profile/ProfileTab.es.js.map +1 -1
  523. package/dist/settings/components/profile/actions/VerifyEmailAction.es.js.map +1 -1
  524. package/dist/settings/components/profile/actions/VerifyPhoneAction.es.js.map +1 -1
  525. package/dist/settings/components/profile/actions/VerifyTokenAction.es.js.map +1 -1
  526. package/dist/settings/components/transactionrules/TransactionRulesTab.es.js.map +1 -1
  527. package/dist/settings/components/transactionrules/actions/DeleteRuleAction.es.js.map +1 -1
  528. package/dist/settings/components/transactionrules/actions/EditPayeeAction.es.js.map +1 -1
  529. package/dist/settings/components/transactionrules/components/EditRuleDetails.es.js.map +1 -1
  530. package/dist/settings/components/transactionrules/components/RuleListItem.es.js +24 -21
  531. package/dist/settings/components/transactionrules/components/RuleListItem.es.js.map +1 -1
  532. package/dist/spending/SpendingMiniWidget.es.js.map +1 -1
  533. package/dist/spending/SpendingWidget.es.js +48 -39
  534. package/dist/spending/SpendingWidget.es.js.map +1 -1
  535. package/dist/spending/components/MiniSpendingChart.es.js.map +1 -1
  536. package/dist/spending/components/Spending.es.js.map +1 -1
  537. package/dist/spending/components/SpendingChart.es.js.map +1 -1
  538. package/dist/spending/components/SpendingDonut.es.js.map +1 -1
  539. package/dist/spending/components/SpendingLegend.es.js.map +1 -1
  540. package/dist/spending/components/SpendingList.es.js.map +1 -1
  541. package/dist/spending/components/SpendingTabLabel.es.js.map +1 -1
  542. package/dist/transactions/TransactionWidget.es.js.map +1 -1
  543. package/dist/transactions/components/shared/TransactionDetails.es.js.map +1 -1
  544. package/dist/transactions/components/shared/TransactionList.es.js.map +1 -1
  545. package/dist/transactions/components/shared/TransactionTable.es.js.map +1 -1
  546. package/dist/transactions/components/shared/transactiondetails/Description.es.js.map +1 -1
  547. package/dist/transactions/components/shared/transactiondetails/FlagTransaction.es.js.map +1 -1
  548. package/dist/transactions/components/shared/transactiondetails/ManualTransactionDetails.es.js.map +1 -1
  549. package/dist/transactions/components/shared/transactiondetails/TransactionAmountHeader.es.js.map +1 -1
  550. package/dist/transactions/components/shared/transactiondetails/TransactionDetailsView.es.js.map +1 -1
  551. package/dist/transactions/components/shared/transactiondetails/actions/AddMerchantBudgetAction.es.js +7 -7
  552. package/dist/transactions/components/shared/transactiondetails/actions/AddMerchantBudgetAction.es.js.map +1 -1
  553. package/dist/transactions/components/shared/transactiondetails/actions/CategoryAction.es.js +29 -29
  554. package/dist/transactions/components/shared/transactiondetails/actions/CategoryAction.es.js.map +1 -1
  555. package/dist/transactions/components/shared/transactiondetails/actions/DateAction.es.js +36 -36
  556. package/dist/transactions/components/shared/transactiondetails/actions/DateAction.es.js.map +1 -1
  557. package/dist/transactions/components/shared/transactiondetails/actions/DeleteAction.es.js +7 -7
  558. package/dist/transactions/components/shared/transactiondetails/actions/DeleteAction.es.js.map +1 -1
  559. package/dist/transactions/components/shared/transactiondetails/actions/DeleteLogoAction.es.js +7 -7
  560. package/dist/transactions/components/shared/transactiondetails/actions/DeleteLogoAction.es.js.map +1 -1
  561. package/dist/transactions/components/shared/transactiondetails/actions/ExcludeAction.es.js +7 -7
  562. package/dist/transactions/components/shared/transactiondetails/actions/ExcludeAction.es.js.map +1 -1
  563. package/dist/transactions/components/shared/transactiondetails/actions/MemoAction.es.js +24 -24
  564. package/dist/transactions/components/shared/transactiondetails/actions/MemoAction.es.js.map +1 -1
  565. package/dist/transactions/components/shared/transactiondetails/actions/SplitAction.es.js +40 -40
  566. package/dist/transactions/components/shared/transactiondetails/actions/SplitAction.es.js.map +1 -1
  567. package/dist/transactions/components/shared/transactiondetails/actions/TagsAction.es.js +34 -34
  568. package/dist/transactions/components/shared/transactiondetails/actions/TagsAction.es.js.map +1 -1
  569. package/dist/transactions/components/shared/transactionlist/TransactionRow.es.js.map +1 -1
  570. package/dist/transactions/components/shared/transactionlist/ZeroState.es.js.map +1 -1
  571. package/dist/transactions/components/shared/transactiontable/cells/AccountCell.es.js.map +1 -1
  572. package/dist/transactions/components/shared/transactiontable/cells/AmountCell.es.js.map +1 -1
  573. package/dist/transactions/components/shared/transactiontable/cells/CategoryCell.es.js.map +1 -1
  574. package/dist/transactions/components/shared/transactiontable/cells/DateCell.es.js.map +1 -1
  575. package/dist/transactions/components/shared/transactiontable/cells/FlagCell.es.js.map +1 -1
  576. package/dist/transactions/components/shared/transactiontable/cells/HeaderCell.es.js.map +1 -1
  577. package/dist/transactions/components/shared/transactiontable/cells/PayeeCell.es.js.map +1 -1
  578. package/dist/transactions/components/splitmanager/SplitManager.es.js.map +1 -1
  579. package/dist/transactions/components/splitmanager/SplitRow.es.js.map +1 -1
  580. package/dist/transactions/components/tagmanager/Header.es.js.map +1 -1
  581. package/dist/transactions/components/tagmanager/SearchBox.es.js.map +1 -1
  582. package/dist/transactions/components/tagmanager/TagManager.es.js.map +1 -1
  583. package/dist/transactions/components/tagmanager/TagRow.es.js +4 -4
  584. package/dist/transactions/components/tagmanager/TagRow.es.js.map +1 -1
  585. package/dist/transactions/components/transactionwidget/AddAccountModal.es.js.map +1 -1
  586. package/dist/transactions/components/transactionwidget/actions/EditCategoryAction.es.js.map +1 -1
  587. package/dist/transactions/components/transactionwidget/actions/ExportCsvAction.es.js.map +1 -1
  588. package/dist/transactions/utils/Transactions.es.js +20 -12
  589. package/dist/transactions/utils/Transactions.es.js.map +1 -1
  590. package/dist/trends/TrendsFullWidget.es.js +47 -47
  591. package/dist/trends/TrendsFullWidget.es.js.map +1 -1
  592. package/dist/trends/TrendsMicroWidget.es.js.map +1 -1
  593. package/dist/trends/TrendsMiniWidget.es.js.map +1 -1
  594. package/dist/trends/TrendsWidget.es.js +88 -89
  595. package/dist/trends/TrendsWidget.es.js.map +1 -1
  596. package/dist/trends/ZeroStateMicroWidget.es.js.map +1 -1
  597. package/dist/trends/components/CategoriesList.es.js.map +1 -1
  598. package/dist/trends/components/CategoryDetailChart.es.js.map +1 -1
  599. package/dist/trends/components/CategoryDetails.es.js.map +1 -1
  600. package/dist/trends/components/DateRangeText.es.js.map +1 -1
  601. package/dist/trends/components/TrendsChart.es.js.map +1 -1
  602. package/dist/trends/components/TrendsDrawer.es.js.map +1 -1
  603. package/dist/trends/components/TrendsInsights.es.js +21 -21
  604. package/dist/trends/components/TrendsInsights.es.js.map +1 -1
  605. package/dist/trends/components/TrendsMicroSpendingIncomeBox.es.js.map +1 -1
  606. package/dist/trends/components/TrendsTableContainer.es.js.map +1 -1
  607. package/dist/trends/components/TrendsViewToggle.es.js.map +1 -1
  608. package/dist/trends/components/trendstable/AccessibleSortIcon.es.js.map +1 -1
  609. package/dist/trends/components/trendstable/AmountCell.es.js.map +1 -1
  610. package/dist/trends/components/trendstable/CategoryCell.es.js.map +1 -1
  611. package/dist/trends/components/trendstable/HeaderCell.es.js.map +1 -1
  612. package/package.json +36 -35
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselControls.es.js","names":[],"sources":["../../../src/microinsights/carousel/CarouselControls.tsx"],"sourcesContent":["import React from 'react'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport IconButton from '@mui/material/IconButton'\nimport { useTheme } from '@mui/material/styles'\n\nimport { ChevronLeft, ChevronRight } from '@mxenabled/mx-icons'\n\nimport { useCopyStore } from '../context/hooks'\n\nexport interface CarouselControlsProps {\n currentBeatIndex: number\n numBeats: number\n onNextClick: () => void\n onPreviousClick: () => void\n scrollRightBoundary: number\n scrollX: number\n shouldApplyDotAnimation?: boolean\n visibleCardsCount?: number\n}\n\nexport const CarouselControls: React.FC<CarouselControlsProps> = ({\n currentBeatIndex,\n numBeats,\n onNextClick,\n onPreviousClick,\n scrollRightBoundary,\n scrollX,\n shouldApplyDotAnimation = false,\n visibleCardsCount = 1,\n}) => {\n const theme = useTheme()\n // *************** Context functions *********************\n const { carouselCopy: copy } = useCopyStore()\n\n const disabledLeft =\n Math.floor(scrollX) > scrollRightBoundary || currentBeatIndex - visibleCardsCount + 1 === 0\n const disabledRight = scrollX < 0 || numBeats - 1 === currentBeatIndex\n\n const DISABLED_ICON_COLOR = theme.palette.grey[500]\n const ICON_COLOR = theme.palette.primary.main\n\n return (\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n justifyContent: 'center',\n pt: 4,\n width: '100%',\n // we were using `gap` instead of margin, but it doesn't work in safari browsers older than iOS 14.1\n '& button:first-of-type': {\n mr: 8,\n },\n }}\n >\n <IconButton\n aria-disabled={disabledLeft}\n aria-label={copy?.previous_insight_cta_aria}\n disabled={disabledLeft}\n onClick={onPreviousClick}\n >\n <ChevronLeft\n sx={{\n color: disabledLeft ? DISABLED_ICON_COLOR : ICON_COLOR,\n }}\n />\n </IconButton>\n {Array.from({ length: numBeats }).map((_, i) => {\n const isActive = i === currentBeatIndex\n return (\n <Box\n className=\"mx-insights-micro-carousel-dots\"\n key={`carousel-button-${i}`}\n sx={{\n bgcolor: isActive ? ICON_COLOR : DISABLED_ICON_COLOR,\n height: 8,\n mr: 8, // existing comment from meganthan \"we were using `gap` instead of margin, but it doesn't work in safari browsers older than iOS 14.1\"\n ...(shouldApplyDotAnimation\n ? {\n borderRadius: '4px',\n transformOrigin: 'center',\n transition: 'all 0.5s ease-out',\n willChange: 'width, background-color',\n }\n : {\n borderRadius: '50%',\n p: 0,\n }),\n width: isActive && shouldApplyDotAnimation ? 24 : 8,\n }}\n />\n )\n })}\n <IconButton\n aria-disabled={disabledRight}\n aria-label={copy?.next_insight_cta_aria}\n disabled={disabledRight}\n onClick={onNextClick}\n >\n <ChevronRight\n sx={{\n color: disabledRight ? DISABLED_ICON_COLOR : ICON_COLOR,\n }}\n />\n </IconButton>\n </Stack>\n )\n}\n"],"mappings":";;;;;;;;AAsBA,IAAa,IAAA,CAAqD,EAChE,kBAAA,GACA,UAAA,GACA,aAAA,GACA,iBAAA,GACA,qBAAA,GACA,SAAA,GACA,yBAAA,IAA0B,IAC1B,mBAAA,IAAoB,EAAA,MAChB;AACJ,QAAM,IAAQ,EAAS,GAEjB,EAAE,cAAc,EAAA,IAAS,EAAa,GAEtC,IACJ,KAAK,MAAM,CAAO,IAAI,KAAuB,IAAmB,IAAoB,MAAM,GACtF,IAAgB,IAAU,KAAK,IAAW,MAAM,GAEhD,IAAsB,EAAM,QAAQ,KAAK,GAAA,GACzC,IAAa,EAAM,QAAQ,QAAQ;AAEzC,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,WAAW;AAAA,IACX,IAAI;AAAA,MACF,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,IAAI;AAAA,MACJ,OAAO;AAAA,MAEP,0BAA0B,EACxB,IAAI,EACN;AAAA,IACF;AAAA,cAXF;AAAA,MAaE,gBAAA,EAAC,GAAD;AAAA,QACE,iBAAe;AAAA,QACf,cAAY,GAAM;AAAA,QAClB,UAAU;AAAA,QACV,SAAS;AAAA,kBAET,gBAAA,EAAC,GAAD,EACE,IAAI,EACF,OAAO,IAAe,IAAsB,EAC9C,EACD,CAAA;AAAA,MACS,CAAA;AAAA,MACX,MAAM,KAAK,EAAE,QAAQ,EAAS,CAAC,EAAE,IAAA,CAAK,GAAG,MAAM;AAC9C,cAAM,IAAW,MAAM;AACvB,eACE,gBAAA,EAAC,GAAD;AAAA,UACE,WAAU;AAAA,UAEV,IAAI;AAAA,YACF,SAAS,IAAW,IAAa;AAAA,YACjC,QAAQ;AAAA,YACR,IAAI;AAAA,YACJ,GAAI,IACA;AAAA,cACE,cAAc;AAAA,cACd,iBAAiB;AAAA,cACjB,YAAY;AAAA,cACZ,YAAY;AAAA,YACd,IACA;AAAA,cACE,cAAc;AAAA,cACd,GAAG;AAAA,YACL;AAAA,YACJ,OAAO,KAAY,IAA0B,KAAK;AAAA,UACpD;AAAA,QACD,GAlBM,mBAAmB,CAAA,EAkBzB;AAAA,MAEL,CAAC;AAAA,MACD,gBAAA,EAAC,GAAD;AAAA,QACE,iBAAe;AAAA,QACf,cAAY,GAAM;AAAA,QAClB,UAAU;AAAA,QACV,SAAS;AAAA,kBAET,gBAAA,EAAC,GAAD,EACE,IAAI,EACF,OAAO,IAAgB,IAAsB,EAC/C,EACD,CAAA;AAAA,MACS,CAAA;AAAA,IACP;AAAA;AAEX"}
1
+ {"version":3,"file":"CarouselControls.es.js","names":[],"sources":["../../../src/microinsights/carousel/CarouselControls.tsx"],"sourcesContent":["import React from 'react'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport IconButton from '@mui/material/IconButton'\nimport { useTheme } from '@mui/material/styles'\n\nimport { ChevronLeft, ChevronRight } from '@mxenabled/mx-icons'\n\nimport { useCopyStore } from '../context/hooks'\n\nexport interface CarouselControlsProps {\n currentBeatIndex: number\n numBeats: number\n onNextClick: () => void\n onPreviousClick: () => void\n scrollRightBoundary: number\n scrollX: number\n shouldApplyDotAnimation?: boolean\n visibleCardsCount?: number\n}\n\nexport const CarouselControls: React.FC<CarouselControlsProps> = ({\n currentBeatIndex,\n numBeats,\n onNextClick,\n onPreviousClick,\n scrollRightBoundary,\n scrollX,\n shouldApplyDotAnimation = false,\n visibleCardsCount = 1,\n}) => {\n const theme = useTheme()\n // *************** Context functions *********************\n const { carouselCopy: copy } = useCopyStore()\n\n const disabledLeft =\n Math.floor(scrollX) > scrollRightBoundary || currentBeatIndex - visibleCardsCount + 1 === 0\n const disabledRight = scrollX < 0 || numBeats - 1 === currentBeatIndex\n\n const DISABLED_ICON_COLOR = theme.palette.grey[500]\n const ICON_COLOR = theme.palette.primary.main\n\n return (\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n justifyContent: 'center',\n pt: 4,\n width: '100%',\n // we were using `gap` instead of margin, but it doesn't work in safari browsers older than iOS 14.1\n '& button:first-of-type': {\n mr: 8,\n },\n }}\n >\n <IconButton\n aria-disabled={disabledLeft}\n aria-label={copy?.previous_insight_cta_aria}\n disabled={disabledLeft}\n onClick={onPreviousClick}\n >\n <ChevronLeft\n sx={{\n color: disabledLeft ? DISABLED_ICON_COLOR : ICON_COLOR,\n }}\n />\n </IconButton>\n {Array.from({ length: numBeats }).map((_, i) => {\n const isActive = i === currentBeatIndex\n return (\n <Box\n className=\"mx-insights-micro-carousel-dots\"\n key={`carousel-button-${i}`}\n sx={{\n bgcolor: isActive ? ICON_COLOR : DISABLED_ICON_COLOR,\n height: 8,\n mr: 8, // existing comment from meganthan \"we were using `gap` instead of margin, but it doesn't work in safari browsers older than iOS 14.1\"\n ...(shouldApplyDotAnimation\n ? {\n borderRadius: '4px',\n transformOrigin: 'center',\n transition: 'all 0.5s ease-out',\n willChange: 'width, background-color',\n }\n : {\n borderRadius: '50%',\n p: 0,\n }),\n width: isActive && shouldApplyDotAnimation ? 24 : 8,\n }}\n />\n )\n })}\n <IconButton\n aria-disabled={disabledRight}\n aria-label={copy?.next_insight_cta_aria}\n disabled={disabledRight}\n onClick={onNextClick}\n >\n <ChevronRight\n sx={{\n color: disabledRight ? DISABLED_ICON_COLOR : ICON_COLOR,\n }}\n />\n </IconButton>\n </Stack>\n )\n}\n"],"mappings":";;;;;;;;AAsBA,IAAa,IAAA,CAAqD,EAChE,kBAAA,GACA,UAAA,GACA,aAAA,GACA,iBAAA,GACA,qBAAA,GACA,SAAA,GACA,yBAAA,IAA0B,IAC1B,mBAAA,IAAoB,EAAA,MAChB;AACJ,QAAM,IAAQ,EAAS,GAEjB,EAAE,cAAc,EAAA,IAAS,EAAa,GAEtC,IACJ,KAAK,MAAM,CAAO,IAAI,KAAuB,IAAmB,IAAoB,MAAM,GACtF,IAAgB,IAAU,KAAK,IAAW,MAAM,GAEhD,IAAsB,EAAM,QAAQ,KAAK,GAAA,GACzC,IAAa,EAAM,QAAQ,QAAQ;AAEzC,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,WAAW;AAAA,IACX,IAAI;AAAA,MACF,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,IAAI;AAAA,MACJ,OAAO;AAAA,MAEP,0BAA0B,EACxB,IAAI,EACN;AAAA,IACF;AAAA,IAXF,UAAA;AAAA,MAaE,gBAAA,EAAC,GAAD;AAAA,QACE,iBAAe;AAAA,QACf,cAAY,GAAM;AAAA,QAClB,UAAU;AAAA,QACV,SAAS;AAAA,QAET,UAAA,gBAAA,EAAC,GAAD,EACE,IAAI,EACF,OAAO,IAAe,IAAsB,EAC9C,EACD,CAAA;AAAA,MACS,CAAA;AAAA,MACX,MAAM,KAAK,EAAE,QAAQ,EAAS,CAAC,EAAE,IAAA,CAAK,GAAG,MAAM;AAC9C,cAAM,IAAW,MAAM;AACvB,eACE,gBAAA,EAAC,GAAD;AAAA,UACE,WAAU;AAAA,UAEV,IAAI;AAAA,YACF,SAAS,IAAW,IAAa;AAAA,YACjC,QAAQ;AAAA,YACR,IAAI;AAAA,YACJ,GAAI,IACA;AAAA,cACE,cAAc;AAAA,cACd,iBAAiB;AAAA,cACjB,YAAY;AAAA,cACZ,YAAY;AAAA,YACd,IACA;AAAA,cACE,cAAc;AAAA,cACd,GAAG;AAAA,YACL;AAAA,YACJ,OAAO,KAAY,IAA0B,KAAK;AAAA,UACpD;AAAA,QACD,GAlBM,mBAAmB,CAAA,EAkBzB;AAAA,MAEL,CAAC;AAAA,MACD,gBAAA,EAAC,GAAD;AAAA,QACE,iBAAe;AAAA,QACf,cAAY,GAAM;AAAA,QAClB,UAAU;AAAA,QACV,SAAS;AAAA,QAET,UAAA,gBAAA,EAAC,GAAD,EACE,IAAI,EACF,OAAO,IAAgB,IAAsB,EAC/C,EACD,CAAA;AAAA,MACS,CAAA;AAAA,IACP;AAAA;AAEX"}
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselHeader.es.js","names":[],"sources":["../../../src/microinsights/carousel/CarouselHeader.tsx"],"sourcesContent":["import React from 'react'\n\nimport { observer } from 'mobx-react-lite'\n\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport { H3 } from '@mxenabled/mxui'\n\nimport { ChevronRight as ChevronRightIcon } from '@mxenabled/mx-icons'\n\nimport { useCopyStore, useEvent } from '../context/hooks'\nimport { ANALYTICS_CLICK_EVENTS } from '../constants/Analytics'\n\nimport { Beat } from '../../core/types/Beat'\nimport { TheWholeHog } from '../interfaces'\nimport Loader from '../../common/components/Loader'\nimport { type SxProps } from '@mui/material/styles'\n\nexport interface CarouselHeaderProps {\n analyticsMetadata?: Record<string, string>\n onCardClick: (beat?: Beat | undefined) => void\n posthog?: TheWholeHog\n widthOverrides?: number | string\n headerSx?: SxProps\n}\n\nconst CarouselHeader: React.FC<CarouselHeaderProps> = ({\n analyticsMetadata,\n onCardClick,\n posthog,\n widthOverrides,\n headerSx,\n}) => {\n // *************** Context functions *********************\n const { carouselCopy: copy } = useCopyStore()\n const { onEvent } = useEvent()\n\n // *************** Click handlers ************************\n const handleViewAllClick = () => {\n if (onEvent) {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_VIEW_MORE_CLICKED, analyticsMetadata)\n\n onCardClick()\n\n posthog?.capture('clicked_view_more')\n }\n }\n\n if (!copy) {\n return <Loader />\n }\n\n return (\n <Stack\n alignItems=\"center\"\n direction=\"row\"\n justifyContent=\"space-between\"\n spacing={2}\n sx={{\n p: 16,\n pb: 8,\n width: widthOverrides ? widthOverrides : undefined,\n ...headerSx,\n }}\n >\n <H3>{copy.carousel_title}</H3>\n <Button\n endIcon={<ChevronRightIcon size={20} />}\n onClick={handleViewAllClick}\n size=\"small\"\n variant=\"text\"\n >\n {copy.view_all_insights_in_full_feed_cta_aria}\n </Button>\n </Stack>\n )\n}\n\nexport default observer(CarouselHeader)\n"],"mappings":";;;;;;;;;;AA0BA,IAAM,IAAA,CAAiD,EACrD,mBAAA,GACA,aAAA,GACA,SAAA,GACA,gBAAA,GACA,UAAA,EAAA,MACI;AAEJ,QAAM,EAAE,cAAc,EAAA,IAAS,EAAa,GACtC,EAAE,SAAA,EAAA,IAAY,EAAS,GAGvB,IAAA,MAA2B;AAC/B,IAAI,MACF,EAAQ,EAAuB,sBAAsB,CAAiB,GAEtE,EAAY,GAEZ,GAAS,QAAQ,mBAAmB;AAAA,EAExC;AAEA,SAAK,IAKH,gBAAA,EAAC,GAAD;AAAA,IACE,YAAW;AAAA,IACX,WAAU;AAAA,IACV,gBAAe;AAAA,IACf,SAAS;AAAA,IACT,IAAI;AAAA,MACF,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,OAAO,KAAkC;AAAA,MACzC,GAAG;AAAA,IACL;AAAA,cAVF,CAYE,gBAAA,EAAC,GAAD,EAAA,UAAK,EAAK,eAAmB,CAAA,GAC7B,gBAAA,EAAC,GAAD;AAAA,MACE,SAAS,gBAAA,EAAC,GAAD,EAAkB,MAAM,GAAK,CAAA;AAAA,MACtC,SAAS;AAAA,MACT,MAAK;AAAA,MACL,SAAQ;AAAA,gBAEP,EAAK;AAAA,IACA,CAAA,CACH;AAAA,OAzBA,gBAAA,EAAC,GAAD,CAAS,CAAA;AA2BpB,GAEA,IAAe,EAAS,CAAc"}
1
+ {"version":3,"file":"CarouselHeader.es.js","names":[],"sources":["../../../src/microinsights/carousel/CarouselHeader.tsx"],"sourcesContent":["import React from 'react'\n\nimport { observer } from 'mobx-react-lite'\n\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport { H3 } from '@mxenabled/mxui'\n\nimport { ChevronRight as ChevronRightIcon } from '@mxenabled/mx-icons'\n\nimport { useCopyStore, useEvent } from '../context/hooks'\nimport { ANALYTICS_CLICK_EVENTS } from '../constants/Analytics'\n\nimport { Beat } from '../../core/types/Beat'\nimport { TheWholeHog } from '../interfaces'\nimport Loader from '../../common/components/Loader'\nimport { type SxProps } from '@mui/material/styles'\n\nexport interface CarouselHeaderProps {\n analyticsMetadata?: Record<string, string>\n onCardClick: (beat?: Beat | undefined) => void\n posthog?: TheWholeHog\n widthOverrides?: number | string\n headerSx?: SxProps\n}\n\nconst CarouselHeader: React.FC<CarouselHeaderProps> = ({\n analyticsMetadata,\n onCardClick,\n posthog,\n widthOverrides,\n headerSx,\n}) => {\n // *************** Context functions *********************\n const { carouselCopy: copy } = useCopyStore()\n const { onEvent } = useEvent()\n\n // *************** Click handlers ************************\n const handleViewAllClick = () => {\n if (onEvent) {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_VIEW_MORE_CLICKED, analyticsMetadata)\n\n onCardClick()\n\n posthog?.capture('clicked_view_more')\n }\n }\n\n if (!copy) {\n return <Loader />\n }\n\n return (\n <Stack\n alignItems=\"center\"\n direction=\"row\"\n justifyContent=\"space-between\"\n spacing={2}\n sx={{\n p: 16,\n pb: 8,\n width: widthOverrides ? widthOverrides : undefined,\n ...headerSx,\n }}\n >\n <H3>{copy.carousel_title}</H3>\n <Button\n endIcon={<ChevronRightIcon size={20} />}\n onClick={handleViewAllClick}\n size=\"small\"\n variant=\"text\"\n >\n {copy.view_all_insights_in_full_feed_cta_aria}\n </Button>\n </Stack>\n )\n}\n\nexport default observer(CarouselHeader)\n"],"mappings":";;;;;;;;;;AA0BA,IAAM,IAAA,CAAiD,EACrD,mBAAA,GACA,aAAA,GACA,SAAA,GACA,gBAAA,GACA,UAAA,EAAA,MACI;AAEJ,QAAM,EAAE,cAAc,EAAA,IAAS,EAAa,GACtC,EAAE,SAAA,EAAA,IAAY,EAAS,GAGvB,IAAA,MAA2B;AAC/B,IAAI,MACF,EAAQ,EAAuB,sBAAsB,CAAiB,GAEtE,EAAY,GAEZ,GAAS,QAAQ,mBAAmB;AAAA,EAExC;AAEA,SAAK,IAKH,gBAAA,EAAC,GAAD;AAAA,IACE,YAAW;AAAA,IACX,WAAU;AAAA,IACV,gBAAe;AAAA,IACf,SAAS;AAAA,IACT,IAAI;AAAA,MACF,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,OAAO,KAAkC;AAAA,MACzC,GAAG;AAAA,IACL;AAAA,IAVF,UAAA,CAYE,gBAAA,EAAC,GAAD,EAAA,UAAK,EAAK,eAAmB,CAAA,GAC7B,gBAAA,EAAC,GAAD;AAAA,MACE,SAAS,gBAAA,EAAC,GAAD,EAAkB,MAAM,GAAK,CAAA;AAAA,MACtC,SAAS;AAAA,MACT,MAAK;AAAA,MACL,SAAQ;AAAA,MAEP,UAAA,EAAK;AAAA,IACA,CAAA,CACH;AAAA,OAzBA,gBAAA,EAAC,GAAD,CAAS,CAAA;AA2BpB,GAEA,IAAe,EAAS,CAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"MicroBeatCarousel.es.js","names":[],"sources":["../../../src/microinsights/carousel/MicroBeatCarousel.tsx"],"sourcesContent":["/* eslint-disable consistent-return */\nimport React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { CarouselControls } from './CarouselControls'\nimport BeatList from './BeatList'\n\nimport type { MicroWidgetProps } from '..'\n\nimport { useCopyStore, useEvent } from '../context/hooks'\n\nimport type { Beat } from '../../core/types/Beat'\n\nimport { ANALYTICS_CLICK_EVENTS } from '../constants/Analytics'\nimport { MINIMUM_SWIPE_DISTANCE } from '../constants/App'\n\ninterface MicroBeatCarouselProps {\n allowSingleCardPeeking?: boolean\n analyticsMetadata?: Record<string, string>\n beats?: Beat[]\n elevation?: number\n heightOverrides?: MicroWidgetProps['heightOverrides']\n onCardClick?: MicroWidgetProps['onCardClick']\n posthog?: MicroWidgetProps['posthog']\n showCarouselControls?: boolean\n showIcon?: boolean\n showWithMargin?: boolean\n variant?: 'outlined' | 'elevation' | undefined\n visibleCardsCount?: number\n widthOverrides?: number\n}\n\nconst MicroBeatCarousel: React.FC<MicroBeatCarouselProps> = ({\n analyticsMetadata,\n allowSingleCardPeeking,\n beats = [],\n elevation,\n heightOverrides,\n onCardClick,\n posthog,\n showCarouselControls,\n showIcon,\n showWithMargin = true,\n variant,\n widthOverrides,\n visibleCardsCount = 1, // Default to 1 card visible\n}) => {\n // ************** Use Ref Hooks **************************\n const ref = React.useRef<HTMLDivElement | null>(null)\n const carouselRef = React.useRef<HTMLDivElement | null>(null)\n\n // ************** Use States Hooks ***********************\n const [scrollX, setScrollX] = React.useState<number>(0)\n const [touchEnd, setTouchEnd] = React.useState<number | null>(null)\n const [touchStart, setTouchStart] = React.useState<number | null>(null)\n const [cardWidth, setCardWidth] = React.useState<number | null>(null)\n\n // *************** Context functions *********************\n const { carouselCopy: copy } = useCopyStore()\n const { onEvent } = useEvent()\n\n // ************** Use Effects Hooks **********************\n\n React.useEffect(() => {\n // Single source of truth for card-width sizing. The two layout modes\n // (breakpoint-based peeking vs. proportional visible-cards math) are\n // mutually exclusive on `allowSingleCardPeeking`, so they share one\n // ResizeObserver/effect to keep resize tracking in one place.\n //\n // Observe the outer, structurally stable container (carouselRef) rather\n // than the inner shrink-wrapped flex row (ref). The inner row's width\n // depends on cardWidth, so observing it would feed back into itself and\n // cause a shrinking ResizeObserver loop / stuck-small layout.\n const computeCardWidth = (observedWidth?: number) => {\n const node = carouselRef.current\n if (!node) return\n\n // Prefer the width reported by the ResizeObserver entry to avoid an\n // extra layout read (thrashing); fall back to a DOM read on mount and\n // on the window-resize fallback path.\n const rawWidth = observedWidth ?? node.offsetWidth\n\n if (allowSingleCardPeeking) {\n // Use until token sizes are actually implemented in the mxui repo\n const breakpoints = [\n { maxWidth: 320, cardWidth: 220 },\n { maxWidth: 375, cardWidth: 268 },\n { maxWidth: 444, cardWidth: 300 },\n { maxWidth: 599, cardWidth: 350 },\n { maxWidth: 749, cardWidth: 450 },\n { maxWidth: 900, cardWidth: 600 },\n ]\n\n const matchingBreakpoint = breakpoints.find((bp) => rawWidth <= bp.maxWidth)\n setCardWidth(matchingBreakpoint ? matchingBreakpoint.cardWidth : 750)\n return\n }\n\n // The inner row is constrained to `calc(100% - 32px)` when showWithMargin\n // is set, so subtract that margin to match the actual available width.\n // Clamp to 0 so a tiny/unmeasured container never yields a negative width.\n const containerWidth = showWithMargin ? Math.max(0, rawWidth - 32) : rawWidth\n const gap = 8 // gap between cards\n\n // When visibleCardsCount > 1, make each card narrower to fit multiple cards and show a peek of the next card\n // When visibleCardsCount is 1, use full container width\n let calculatedCardWidth\n if (visibleCardsCount > 1) {\n // First calculate what a single full card width would be\n const fullCardWidth = (containerWidth - (visibleCardsCount - 1) * gap) / visibleCardsCount\n // Set the peek area to be 1/3 of a card width instead of fixed 60px\n const peekAreaWidth = fullCardWidth / 3\n // Calculate final card width, accounting for the peek area and gaps\n calculatedCardWidth =\n (containerWidth - peekAreaWidth - (visibleCardsCount - 1) * gap) / visibleCardsCount\n } else {\n calculatedCardWidth = containerWidth\n }\n\n // Clamp to prevent negative widths.\n setCardWidth(Math.max(0, calculatedCardWidth))\n }\n\n computeCardWidth()\n\n // Recompute on container resize via ResizeObserver, falling back to the\n // window resize event only when ResizeObserver is unavailable.\n const handleResize = () => computeCardWidth()\n let observer: ResizeObserver | null = null\n if (typeof ResizeObserver !== 'undefined' && carouselRef.current) {\n observer = new ResizeObserver((entries) => {\n const entry = entries[0]\n if (!entry) return\n const width = entry.borderBoxSize?.[0]?.inlineSize ?? entry.contentRect.width\n computeCardWidth(width)\n })\n observer.observe(carouselRef.current)\n } else {\n window.addEventListener('resize', handleResize)\n }\n\n return () => {\n window.removeEventListener('resize', handleResize)\n observer?.disconnect()\n }\n }, [allowSingleCardPeeking, visibleCardsCount, showWithMargin])\n\n // *************** Click handlers ************************\n const handleNextClick = () => {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_CLICK, analyticsMetadata)\n\n if (ref.current && cardWidth) {\n // Scroll by one card width + gap\n ref.current.scrollTo({\n left: scrollX + cardWidth + 8,\n top: 0,\n behavior: 'smooth',\n })\n }\n }\n\n const handlePreviousClick = () => {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_CLICK, analyticsMetadata)\n\n if (ref.current && cardWidth) {\n // Scroll by one card width + gap\n ref.current.scrollTo({\n left: Math.max(0, scrollX - (cardWidth + 8)),\n top: 0,\n behavior: 'smooth',\n })\n }\n }\n\n const handleScroll = () => {\n if (ref.current) {\n setScrollX(ref.current.scrollLeft)\n }\n }\n\n // *************** Mobile handlers ************************\n const onTouchEnd = () => {\n if (!touchStart || !touchEnd) return\n const distance = touchStart - touchEnd\n\n // swiping left\n if (distance > MINIMUM_SWIPE_DISTANCE) {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_SWIPE, analyticsMetadata)\n } else {\n // swiping right\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_SWIPE, analyticsMetadata)\n }\n }\n\n const onTouchMove = (e: React.TouchEvent) => {\n setTouchEnd(e.targetTouches[0].clientX)\n }\n\n const onTouchStart = (e: React.TouchEvent) => {\n // otherwise the swipe is fired even with usual touch events\n setTouchEnd(null)\n setTouchStart(e.targetTouches[0].clientX)\n }\n\n // Calculate active card index based on scroll position and card width\n const activeCardIndex = cardWidth ? Math.round(scrollX / (cardWidth + 8)) : 0\n const scrollBoundry = ref.current ? ref.current.scrollWidth - ref.current.offsetWidth : 0\n\n return (\n <Stack\n aria-label={copy?.carousel_title}\n aria-roledescription=\"carousel\"\n ref={carouselRef}\n role=\"region\"\n sx={{\n alignItems: 'center',\n boxSizing: 'border-box',\n height: heightOverrides,\n width: widthOverrides ? widthOverrides : '100%',\n }}\n >\n <Stack\n direction=\"row\"\n onScroll={handleScroll}\n onTouchEnd={onTouchEnd}\n onTouchMove={onTouchMove}\n onTouchStart={onTouchStart}\n ref={ref}\n sx={{\n alignItems: 'center',\n height: heightOverrides && '100%',\n gap: 8,\n listStyleType: 'none',\n m: 0,\n maxWidth: showWithMargin ? `calc(100% - 32px)` : '100%',\n overflowX: 'auto',\n overflowY: 'hidden',\n p: 0,\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n WebkitOverflowScrolling: 'touch',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n >\n <BeatList\n activeCardIndex={activeCardIndex}\n beats={beats}\n cardWidth={cardWidth}\n elevation={elevation}\n heightOverrides={heightOverrides}\n onCardClick={onCardClick}\n posthog={posthog}\n showIcon={showIcon}\n variant={variant}\n />\n </Stack>\n {showCarouselControls && (\n <CarouselControls\n currentBeatIndex={activeCardIndex + visibleCardsCount - 1}\n numBeats={beats.length + 1}\n onNextClick={handleNextClick}\n onPreviousClick={handlePreviousClick}\n scrollRightBoundary={scrollBoundry}\n scrollX={scrollX}\n shouldApplyDotAnimation={allowSingleCardPeeking}\n visibleCardsCount={visibleCardsCount}\n />\n )}\n </Stack>\n )\n}\n\nexport default observer(MicroBeatCarousel)\n"],"mappings":"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"}
1
+ {"version":3,"file":"MicroBeatCarousel.es.js","names":[],"sources":["../../../src/microinsights/carousel/MicroBeatCarousel.tsx"],"sourcesContent":["/* eslint-disable consistent-return */\nimport React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { CarouselControls } from './CarouselControls'\nimport BeatList from './BeatList'\n\nimport type { MicroWidgetProps } from '..'\n\nimport { useCopyStore, useEvent } from '../context/hooks'\n\nimport type { Beat } from '../../core/types/Beat'\n\nimport { ANALYTICS_CLICK_EVENTS } from '../constants/Analytics'\nimport { MINIMUM_SWIPE_DISTANCE } from '../constants/App'\n\ninterface MicroBeatCarouselProps {\n allowSingleCardPeeking?: boolean\n analyticsMetadata?: Record<string, string>\n beats?: Beat[]\n elevation?: number\n heightOverrides?: MicroWidgetProps['heightOverrides']\n onCardClick?: MicroWidgetProps['onCardClick']\n posthog?: MicroWidgetProps['posthog']\n showCarouselControls?: boolean\n showIcon?: boolean\n showWithMargin?: boolean\n variant?: 'outlined' | 'elevation' | undefined\n visibleCardsCount?: number\n widthOverrides?: number\n}\n\nconst MicroBeatCarousel: React.FC<MicroBeatCarouselProps> = ({\n analyticsMetadata,\n allowSingleCardPeeking,\n beats = [],\n elevation,\n heightOverrides,\n onCardClick,\n posthog,\n showCarouselControls,\n showIcon,\n showWithMargin = true,\n variant,\n widthOverrides,\n visibleCardsCount = 1, // Default to 1 card visible\n}) => {\n // ************** Use Ref Hooks **************************\n const ref = React.useRef<HTMLDivElement | null>(null)\n const carouselRef = React.useRef<HTMLDivElement | null>(null)\n\n // ************** Use States Hooks ***********************\n const [scrollX, setScrollX] = React.useState<number>(0)\n const [touchEnd, setTouchEnd] = React.useState<number | null>(null)\n const [touchStart, setTouchStart] = React.useState<number | null>(null)\n const [cardWidth, setCardWidth] = React.useState<number | null>(null)\n\n // *************** Context functions *********************\n const { carouselCopy: copy } = useCopyStore()\n const { onEvent } = useEvent()\n\n // ************** Use Effects Hooks **********************\n\n React.useEffect(() => {\n // Single source of truth for card-width sizing. The two layout modes\n // (breakpoint-based peeking vs. proportional visible-cards math) are\n // mutually exclusive on `allowSingleCardPeeking`, so they share one\n // ResizeObserver/effect to keep resize tracking in one place.\n //\n // Observe the outer, structurally stable container (carouselRef) rather\n // than the inner shrink-wrapped flex row (ref). The inner row's width\n // depends on cardWidth, so observing it would feed back into itself and\n // cause a shrinking ResizeObserver loop / stuck-small layout.\n const computeCardWidth = (observedWidth?: number) => {\n const node = carouselRef.current\n if (!node) return\n\n // Prefer the width reported by the ResizeObserver entry to avoid an\n // extra layout read (thrashing); fall back to a DOM read on mount and\n // on the window-resize fallback path.\n const rawWidth = observedWidth ?? node.offsetWidth\n\n if (allowSingleCardPeeking) {\n // Use until token sizes are actually implemented in the mxui repo\n const breakpoints = [\n { maxWidth: 320, cardWidth: 220 },\n { maxWidth: 375, cardWidth: 268 },\n { maxWidth: 444, cardWidth: 300 },\n { maxWidth: 599, cardWidth: 350 },\n { maxWidth: 749, cardWidth: 450 },\n { maxWidth: 900, cardWidth: 600 },\n ]\n\n const matchingBreakpoint = breakpoints.find((bp) => rawWidth <= bp.maxWidth)\n setCardWidth(matchingBreakpoint ? matchingBreakpoint.cardWidth : 750)\n return\n }\n\n // The inner row is constrained to `calc(100% - 32px)` when showWithMargin\n // is set, so subtract that margin to match the actual available width.\n // Clamp to 0 so a tiny/unmeasured container never yields a negative width.\n const containerWidth = showWithMargin ? Math.max(0, rawWidth - 32) : rawWidth\n const gap = 8 // gap between cards\n\n // When visibleCardsCount > 1, make each card narrower to fit multiple cards and show a peek of the next card\n // When visibleCardsCount is 1, use full container width\n let calculatedCardWidth\n if (visibleCardsCount > 1) {\n // First calculate what a single full card width would be\n const fullCardWidth = (containerWidth - (visibleCardsCount - 1) * gap) / visibleCardsCount\n // Set the peek area to be 1/3 of a card width instead of fixed 60px\n const peekAreaWidth = fullCardWidth / 3\n // Calculate final card width, accounting for the peek area and gaps\n calculatedCardWidth =\n (containerWidth - peekAreaWidth - (visibleCardsCount - 1) * gap) / visibleCardsCount\n } else {\n calculatedCardWidth = containerWidth\n }\n\n // Clamp to prevent negative widths.\n setCardWidth(Math.max(0, calculatedCardWidth))\n }\n\n computeCardWidth()\n\n // Recompute on container resize via ResizeObserver, falling back to the\n // window resize event only when ResizeObserver is unavailable.\n const handleResize = () => computeCardWidth()\n let observer: ResizeObserver | null = null\n if (typeof ResizeObserver !== 'undefined' && carouselRef.current) {\n observer = new ResizeObserver((entries) => {\n const entry = entries[0]\n if (!entry) return\n const width = entry.borderBoxSize?.[0]?.inlineSize ?? entry.contentRect.width\n computeCardWidth(width)\n })\n observer.observe(carouselRef.current)\n } else {\n window.addEventListener('resize', handleResize)\n }\n\n return () => {\n window.removeEventListener('resize', handleResize)\n observer?.disconnect()\n }\n }, [allowSingleCardPeeking, visibleCardsCount, showWithMargin])\n\n // *************** Click handlers ************************\n const handleNextClick = () => {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_CLICK, analyticsMetadata)\n\n if (ref.current && cardWidth) {\n // Scroll by one card width + gap\n ref.current.scrollTo({\n left: scrollX + cardWidth + 8,\n top: 0,\n behavior: 'smooth',\n })\n }\n }\n\n const handlePreviousClick = () => {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_CLICK, analyticsMetadata)\n\n if (ref.current && cardWidth) {\n // Scroll by one card width + gap\n ref.current.scrollTo({\n left: Math.max(0, scrollX - (cardWidth + 8)),\n top: 0,\n behavior: 'smooth',\n })\n }\n }\n\n const handleScroll = () => {\n if (ref.current) {\n setScrollX(ref.current.scrollLeft)\n }\n }\n\n // *************** Mobile handlers ************************\n const onTouchEnd = () => {\n if (!touchStart || !touchEnd) return\n const distance = touchStart - touchEnd\n\n // swiping left\n if (distance > MINIMUM_SWIPE_DISTANCE) {\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_SWIPE, analyticsMetadata)\n } else {\n // swiping right\n onEvent(ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_SWIPE, analyticsMetadata)\n }\n }\n\n const onTouchMove = (e: React.TouchEvent) => {\n setTouchEnd(e.targetTouches[0].clientX)\n }\n\n const onTouchStart = (e: React.TouchEvent) => {\n // otherwise the swipe is fired even with usual touch events\n setTouchEnd(null)\n setTouchStart(e.targetTouches[0].clientX)\n }\n\n // Calculate active card index based on scroll position and card width\n const activeCardIndex = cardWidth ? Math.round(scrollX / (cardWidth + 8)) : 0\n const scrollBoundry = ref.current ? ref.current.scrollWidth - ref.current.offsetWidth : 0\n\n return (\n <Stack\n aria-label={copy?.carousel_title}\n aria-roledescription=\"carousel\"\n ref={carouselRef}\n role=\"region\"\n sx={{\n alignItems: 'center',\n boxSizing: 'border-box',\n height: heightOverrides,\n width: widthOverrides ? widthOverrides : '100%',\n }}\n >\n <Stack\n direction=\"row\"\n onScroll={handleScroll}\n onTouchEnd={onTouchEnd}\n onTouchMove={onTouchMove}\n onTouchStart={onTouchStart}\n ref={ref}\n sx={{\n alignItems: 'center',\n height: heightOverrides && '100%',\n gap: 8,\n listStyleType: 'none',\n m: 0,\n maxWidth: showWithMargin ? `calc(100% - 32px)` : '100%',\n overflowX: 'auto',\n overflowY: 'hidden',\n p: 0,\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n WebkitOverflowScrolling: 'touch',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n >\n <BeatList\n activeCardIndex={activeCardIndex}\n beats={beats}\n cardWidth={cardWidth}\n elevation={elevation}\n heightOverrides={heightOverrides}\n onCardClick={onCardClick}\n posthog={posthog}\n showIcon={showIcon}\n variant={variant}\n />\n </Stack>\n {showCarouselControls && (\n <CarouselControls\n currentBeatIndex={activeCardIndex + visibleCardsCount - 1}\n numBeats={beats.length + 1}\n onNextClick={handleNextClick}\n onPreviousClick={handlePreviousClick}\n scrollRightBoundary={scrollBoundry}\n scrollX={scrollX}\n shouldApplyDotAnimation={allowSingleCardPeeking}\n visibleCardsCount={visibleCardsCount}\n />\n )}\n </Stack>\n )\n}\n\nexport default observer(MicroBeatCarousel)\n"],"mappings":";;;;;;;;AAkCA,IAAM,KAAA,CAAuD,EAC3D,mBAAA,GACA,wBAAA,GACA,OAAA,IAAQ,CAAC,GACT,WAAA,GACA,iBAAA,GACA,aAAA,GACA,SAAA,GACA,sBAAA,GACA,UAAA,GACA,gBAAA,IAAiB,IACjB,SAAA,GACA,gBAAA,GACA,mBAAA,IAAoB,EAAA,MAChB;AAEJ,QAAM,IAAM,EAAM,OAA8B,IAAI,GAC9C,IAAc,EAAM,OAA8B,IAAI,GAGtD,CAAC,GAAS,CAAA,IAAc,EAAM,SAAiB,CAAC,GAChD,CAAC,GAAU,CAAA,IAAe,EAAM,SAAwB,IAAI,GAC5D,CAAC,GAAY,CAAA,IAAiB,EAAM,SAAwB,IAAI,GAChE,CAAC,GAAW,CAAA,IAAgB,EAAM,SAAwB,IAAI,GAG9D,EAAE,cAAc,EAAA,IAAS,EAAa,GACtC,EAAE,SAAA,EAAA,IAAY,EAAS;AAI7B,EAAA,EAAM,UAAA,MAAgB;AAUpB,UAAM,IAAA,CAAoB,MAA2B;AACnD,YAAM,IAAO,EAAY;AACzB,UAAI,CAAC,EAAM;AAKX,YAAM,IAAW,KAAiB,EAAK;AAEvC,UAAI,GAAwB;AAW1B,cAAM,IAAqB;AAAA,UARzB;AAAA,YAAE,UAAU;AAAA,YAAK,WAAW;AAAA,UAAI;AAAA,UAChC;AAAA,YAAE,UAAU;AAAA,YAAK,WAAW;AAAA,UAAI;AAAA,UAChC;AAAA,YAAE,UAAU;AAAA,YAAK,WAAW;AAAA,UAAI;AAAA,UAChC;AAAA,YAAE,UAAU;AAAA,YAAK,WAAW;AAAA,UAAI;AAAA,UAChC;AAAA,YAAE,UAAU;AAAA,YAAK,WAAW;AAAA,UAAI;AAAA,UAChC;AAAA,YAAE,UAAU;AAAA,YAAK,WAAW;AAAA,UAAI;AAAA,QAGP,EAAY,KAAA,CAAM,MAAO,KAAY,EAAG,QAAQ;AAC3E,QAAA,EAAa,IAAqB,EAAmB,YAAY,GAAG;AACpE;AAAA,MACF;AAKA,YAAM,IAAiB,IAAiB,KAAK,IAAI,GAAG,IAAW,EAAE,IAAI,GAC/D,IAAM;AAIZ,UAAI;AACJ,MAAI,IAAoB,IAMtB,KACG,KALoB,KAAkB,IAAoB,KAAK,KAAO,IAEnC,KAGD,IAAoB,KAAK,KAAO,IAErE,IAAsB,GAIxB,EAAa,KAAK,IAAI,GAAG,CAAmB,CAAC;AAAA,IAC/C;AAEA,IAAA,EAAiB;AAIjB,UAAM,IAAA,MAAqB,EAAiB;AAC5C,QAAI,IAAkC;AACtC,WAAI,OAAO,iBAAmB,OAAe,EAAY,WACvD,IAAW,IAAI,eAAA,CAAgB,MAAY;AACzC,YAAM,IAAQ,EAAQ,CAAA;AACtB,UAAI,CAAC,EAAO;AACZ,YAAM,IAAQ,EAAM,gBAAgB,CAAA,GAAI,cAAc,EAAM,YAAY;AACxE,MAAA,EAAiB,CAAK;AAAA,IACxB,CAAC,GACD,EAAS,QAAQ,EAAY,OAAO,KAEpC,OAAO,iBAAiB,UAAU,CAAY,GAGhD,MAAa;AACX,aAAO,oBAAoB,UAAU,CAAY,GACjD,GAAU,WAAW;AAAA,IACvB;AAAA,EACF,GAAG;AAAA,IAAC;AAAA,IAAwB;AAAA,IAAmB;AAAA,EAAc,CAAC;AAG9D,QAAM,IAAA,MAAwB;AAC5B,IAAA,EAAQ,EAAuB,2BAA2B,CAAiB,GAEvE,EAAI,WAAW,KAEjB,EAAI,QAAQ,SAAS;AAAA,MACnB,MAAM,IAAU,IAAY;AAAA,MAC5B,KAAK;AAAA,MACL,UAAU;AAAA,IACZ,CAAC;AAAA,EAEL,GAEM,IAAA,MAA4B;AAChC,IAAA,EAAQ,EAAuB,wBAAwB,CAAiB,GAEpE,EAAI,WAAW,KAEjB,EAAI,QAAQ,SAAS;AAAA,MACnB,MAAM,KAAK,IAAI,GAAG,KAAW,IAAY,EAAE;AAAA,MAC3C,KAAK;AAAA,MACL,UAAU;AAAA,IACZ,CAAC;AAAA,EAEL,GAEM,IAAA,MAAqB;AACzB,IAAI,EAAI,WACN,EAAW,EAAI,QAAQ,UAAU;AAAA,EAErC,GAGM,IAAA,MAAmB;AACvB,IAAI,CAAC,KAAc,CAAC,MACH,IAAa,IAAA,KAI5B,EAAQ,EAAuB,2BAA2B,CAAiB,IAG3E,EAAQ,EAAuB,wBAAwB,CAAiB;AAAA,EAE5E,GAEM,IAAA,CAAe,MAAwB;AAC3C,IAAA,EAAY,EAAE,cAAc,CAAA,EAAG,OAAO;AAAA,EACxC,GAEM,IAAA,CAAgB,MAAwB;AAE5C,IAAA,EAAY,IAAI,GAChB,EAAc,EAAE,cAAc,CAAA,EAAG,OAAO;AAAA,EAC1C,GAGM,IAAkB,IAAY,KAAK,MAAM,KAAW,IAAY,EAAE,IAAI,GACtE,IAAgB,EAAI,UAAU,EAAI,QAAQ,cAAc,EAAI,QAAQ,cAAc;AAExF,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,cAAY,GAAM;AAAA,IAClB,wBAAqB;AAAA,IACrB,KAAK;AAAA,IACL,MAAK;AAAA,IACL,IAAI;AAAA,MACF,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,OAAO,KAAkC;AAAA,IAC3C;AAAA,IAVF,UAAA,CAYE,gBAAA,EAAC,GAAD;AAAA,MACE,WAAU;AAAA,MACV,UAAU;AAAA,MACE,YAAA;AAAA,MACC,aAAA;AAAA,MACC,cAAA;AAAA,MACT,KAAA;AAAA,MACL,IAAI;AAAA,QACF,YAAY;AAAA,QACZ,QAAQ,KAAmB;AAAA,QAC3B,KAAK;AAAA,QACL,eAAe;AAAA,QACf,GAAG;AAAA,QACH,UAAU,IAAiB,sBAAsB;AAAA,QACjD,WAAW;AAAA,QACX,WAAW;AAAA,QACX,GAAG;AAAA,QACH,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,yBAAyB;AAAA,QACzB,wBAAwB,EACtB,SAAS,OACX;AAAA,MACF;AAAA,MAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,QACmB,iBAAA;AAAA,QACV,OAAA;AAAA,QACI,WAAA;AAAA,QACA,WAAA;AAAA,QACM,iBAAA;AAAA,QACJ,aAAA;AAAA,QACJ,SAAA;AAAA,QACC,UAAA;AAAA,QACD,SAAA;AAAA,MACV,CAAA;AAAA,IACI,CAAA,GACN,KACC,gBAAA,EAAC,GAAD;AAAA,MACE,kBAAkB,IAAkB,IAAoB;AAAA,MACxD,UAAU,EAAM,SAAS;AAAA,MACzB,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,qBAAqB;AAAA,MACZ,SAAA;AAAA,MACT,yBAAyB;AAAA,MACN,mBAAA;AAAA,IACpB,CAAA,CAEE;AAAA;AAEX,GAEA,KAAe,EAAS,EAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Analytics.es.js","names":[],"sources":["../../../src/microinsights/constants/Analytics.ts"],"sourcesContent":["import type { BasicAnalyticsEvent } from '../../core/types/Analytics'\n\nexport const TEMPLATE_NAMES = {\n BillAmountNotStandard: 'BillAmountNotStandard',\n CanadianUpcomingDeadlineAlert: 'CanadianUpcomingDeadlineAlert',\n DuplicatePaymentV2: 'DuplicatePaymentV2',\n IntroducePulse: 'IntroducePulse',\n LargeTransaction: 'LargeTransaction',\n MonthlySpendToIncomeComparisonV2: 'MonthlySpendToIncomeComparisonV2',\n QuarterlySummary: 'QuarterlySummary',\n SpendingPlanCategorySpending: 'SpendingPlanCategorySpending',\n SubscriptionPriceIncrease: 'SubscriptionPriceIncrease',\n UncategorizedTransactionsV2: 'UncategorizedTransactionsV2',\n UpcomingBill: 'UpcomingBill',\n UnifiedDeposit: 'UnifiedDeposit',\n WeeklySpendingPlanSummary: 'WeeklySpendingPlanSummary',\n WeeklyNewMerchantsV2: 'WeeklyNewMerchantsV2',\n MonthlySpendComparison: 'MonthlySpendComparison',\n MonthlySpendToIncomeComparison: 'MonthlySpendToIncomeComparison',\n}\n\nconst instanceId = (window as any)?.app?.clientConfig?.microwidget_instance_id || ''\n\nconst PATHS = {\n INSIGHTS_MICRO_WIDGET: '/micro-insights-carousel',\n}\n\nexport const ON_CLICK_EVENT = (name: string) => `on${name}Click`\nexport const ON_VIEW_EVENT = (name: string) => `on${name}View`\nexport const ON_VIEW_FIRST_TIME_EVENT = (name: string) => `on${name}ViewFirstTime`\nexport const readableTemplateName = (name: string) => name.replace(/([a-z])([A-Z])/g, '$1 $2')\nexport const onBeatClickedEvents = () => {\n return Object.values(TEMPLATE_NAMES).reduce(\n (acc, name) => ({\n ...acc,\n [ON_CLICK_EVENT(name)]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_CLICKED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: readableTemplateName(name),\n value: instanceId,\n },\n }),\n {},\n ) as Record<keyof AnalyticsEventsType, string>\n}\n\nexport const onBeatDisplayedEvents = () => {\n return Object.values(TEMPLATE_NAMES).reduce(\n (acc, name) => ({\n ...acc,\n [ON_VIEW_EVENT(name)]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_DISPLAYED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: readableTemplateName(name),\n value: instanceId,\n },\n }),\n {},\n ) as Record<keyof AnalyticsEventsType, string>\n}\n\nexport const onBeatDisplayedForFirstTimeEvents = () => {\n return Object.values(TEMPLATE_NAMES).reduce(\n (acc, name) => ({\n ...acc,\n [ON_VIEW_FIRST_TIME_EVENT(name)]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_DISPLAYED_FIRST_TIME,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: readableTemplateName(name),\n value: instanceId,\n },\n }),\n {},\n ) as Record<keyof AnalyticsEventsType, string>\n}\n\nexport const ANALYTICS_LABELS = {\n CARD: 'Card',\n CAROUSEL_CONTROL: 'Carousel Control',\n MICRO_WIDGET: 'Micro Widget',\n VIEW_MORE: 'View More',\n}\n\nexport const ANALYTICS_CATEGORIES = {\n MICRO_WIDGET_INTERACTION: 'Micro Widget Interaction',\n BEAT_INTERACTION: 'Beat Interaction',\n}\n\nexport const ANALYTICS_CLICK_EVENTS = {\n ON_CAROUSEL_BACK_CLICK: 'onCarouselBackClick',\n ON_CAROUSEL_BACK_SWIPE: 'onCarouselBackSwipe',\n ON_CAROUSEL_FORWARD_CLICK: 'onCarouselForwardClick',\n ON_CAROUSEL_FORWARD_SWIPE: 'onCarouselForwardSwipe',\n ON_NO_RELEVANT_INSIGHTS_CLICKED: 'onNoRelevantInsightsClicked',\n ON_VIEW_MORE_CLICKED: 'onViewMoreClicked',\n}\n\nexport const ANALYTICS_VIEW_EVENTS = {\n ON_VIEW_MORE_VIEWED: 'onViewMoreCardView',\n}\n\nexport const ANALYTICS_ACTIONS = {\n CONTROL_BACKWARD: 'Control Backward',\n CONTROL_FORWARD: 'Control Forward',\n MICRO_BEAT_CLICKED: 'Micro Beat Clicked',\n MICRO_BEAT_DISPLAYED: 'Micro Beat Displayed',\n MICRO_BEAT_DISPLAYED_FIRST_TIME: 'Micro Beat Displayed For First Time',\n SWIPE_BACKWARD: 'Swipe Backward',\n SWIPE_FORWARD: 'Swipe Forward',\n}\n\nexport const ANALYTICS_PAGE_NAMES = {\n MICRO_WIDGET_CAROUSEL: 'Micro Widget Carousel',\n MICRO_WIDGET_CAROUSEL_ZERO_STATE: 'Micro Widget Carousel Zero State',\n MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS: 'Micro Widget Carousel No Relevant Insights',\n}\n\nexport const ANALYTICS_PAGEVIEWS = {\n [ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL]: {\n label: ANALYTICS_LABELS.MICRO_WIDGET,\n name: ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL,\n path: PATHS.INSIGHTS_MICRO_WIDGET,\n value: instanceId,\n },\n // zero state\n [ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_ZERO_STATE]: {\n label: ANALYTICS_LABELS.MICRO_WIDGET,\n name: ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_ZERO_STATE,\n path: PATHS.INSIGHTS_MICRO_WIDGET,\n value: instanceId,\n },\n // no relevant cards\n [ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS]: {\n label: ANALYTICS_LABELS.MICRO_WIDGET,\n name: ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS,\n path: '/micro-widget',\n value: instanceId,\n },\n}\n\nexport const ANALYTICS_EVENTS = {\n // carousel control interaction events - clicks and swipes\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_CLICK]: {\n action: ANALYTICS_ACTIONS.CONTROL_BACKWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_CLICK]: {\n action: ANALYTICS_ACTIONS.CONTROL_FORWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_SWIPE]: {\n action: ANALYTICS_ACTIONS.SWIPE_BACKWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_SWIPE]: {\n action: ANALYTICS_ACTIONS.SWIPE_FORWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n // read more card events\n [ANALYTICS_CLICK_EVENTS.ON_VIEW_MORE_CLICKED]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_CLICKED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: ANALYTICS_LABELS.VIEW_MORE,\n value: instanceId,\n },\n [ANALYTICS_VIEW_EVENTS.ON_VIEW_MORE_VIEWED]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_DISPLAYED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: ANALYTICS_LABELS.VIEW_MORE,\n value: instanceId,\n },\n\n ...onBeatClickedEvents(),\n ...onBeatDisplayedEvents(),\n ...onBeatDisplayedForFirstTimeEvents(),\n}\n\nexport interface AnalyticsEventsObjectType extends BasicAnalyticsEvent {\n value: string\n}\n\nexport type AnalyticsEventsType = {\n [key: string]: AnalyticsEventsObjectType\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Analytics.es.js","names":[],"sources":["../../../src/microinsights/constants/Analytics.ts"],"sourcesContent":["import type { BasicAnalyticsEvent } from '../../core/types/Analytics'\n\nexport const TEMPLATE_NAMES = {\n BillAmountNotStandard: 'BillAmountNotStandard',\n CanadianUpcomingDeadlineAlert: 'CanadianUpcomingDeadlineAlert',\n DuplicatePaymentV2: 'DuplicatePaymentV2',\n IntroducePulse: 'IntroducePulse',\n LargeTransaction: 'LargeTransaction',\n MonthlySpendToIncomeComparisonV2: 'MonthlySpendToIncomeComparisonV2',\n QuarterlySummary: 'QuarterlySummary',\n SpendingPlanCategorySpending: 'SpendingPlanCategorySpending',\n SubscriptionPriceIncrease: 'SubscriptionPriceIncrease',\n UncategorizedTransactionsV2: 'UncategorizedTransactionsV2',\n UpcomingBill: 'UpcomingBill',\n UnifiedDeposit: 'UnifiedDeposit',\n WeeklySpendingPlanSummary: 'WeeklySpendingPlanSummary',\n WeeklyNewMerchantsV2: 'WeeklyNewMerchantsV2',\n MonthlySpendComparison: 'MonthlySpendComparison',\n MonthlySpendToIncomeComparison: 'MonthlySpendToIncomeComparison',\n}\n\nconst instanceId = (window as any)?.app?.clientConfig?.microwidget_instance_id || ''\n\nconst PATHS = {\n INSIGHTS_MICRO_WIDGET: '/micro-insights-carousel',\n}\n\nexport const ON_CLICK_EVENT = (name: string) => `on${name}Click`\nexport const ON_VIEW_EVENT = (name: string) => `on${name}View`\nexport const ON_VIEW_FIRST_TIME_EVENT = (name: string) => `on${name}ViewFirstTime`\nexport const readableTemplateName = (name: string) => name.replace(/([a-z])([A-Z])/g, '$1 $2')\nexport const onBeatClickedEvents = () => {\n return Object.values(TEMPLATE_NAMES).reduce(\n (acc, name) => ({\n ...acc,\n [ON_CLICK_EVENT(name)]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_CLICKED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: readableTemplateName(name),\n value: instanceId,\n },\n }),\n {},\n ) as Record<keyof AnalyticsEventsType, string>\n}\n\nexport const onBeatDisplayedEvents = () => {\n return Object.values(TEMPLATE_NAMES).reduce(\n (acc, name) => ({\n ...acc,\n [ON_VIEW_EVENT(name)]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_DISPLAYED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: readableTemplateName(name),\n value: instanceId,\n },\n }),\n {},\n ) as Record<keyof AnalyticsEventsType, string>\n}\n\nexport const onBeatDisplayedForFirstTimeEvents = () => {\n return Object.values(TEMPLATE_NAMES).reduce(\n (acc, name) => ({\n ...acc,\n [ON_VIEW_FIRST_TIME_EVENT(name)]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_DISPLAYED_FIRST_TIME,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: readableTemplateName(name),\n value: instanceId,\n },\n }),\n {},\n ) as Record<keyof AnalyticsEventsType, string>\n}\n\nexport const ANALYTICS_LABELS = {\n CARD: 'Card',\n CAROUSEL_CONTROL: 'Carousel Control',\n MICRO_WIDGET: 'Micro Widget',\n VIEW_MORE: 'View More',\n}\n\nexport const ANALYTICS_CATEGORIES = {\n MICRO_WIDGET_INTERACTION: 'Micro Widget Interaction',\n BEAT_INTERACTION: 'Beat Interaction',\n}\n\nexport const ANALYTICS_CLICK_EVENTS = {\n ON_CAROUSEL_BACK_CLICK: 'onCarouselBackClick',\n ON_CAROUSEL_BACK_SWIPE: 'onCarouselBackSwipe',\n ON_CAROUSEL_FORWARD_CLICK: 'onCarouselForwardClick',\n ON_CAROUSEL_FORWARD_SWIPE: 'onCarouselForwardSwipe',\n ON_NO_RELEVANT_INSIGHTS_CLICKED: 'onNoRelevantInsightsClicked',\n ON_VIEW_MORE_CLICKED: 'onViewMoreClicked',\n}\n\nexport const ANALYTICS_VIEW_EVENTS = {\n ON_VIEW_MORE_VIEWED: 'onViewMoreCardView',\n}\n\nexport const ANALYTICS_ACTIONS = {\n CONTROL_BACKWARD: 'Control Backward',\n CONTROL_FORWARD: 'Control Forward',\n MICRO_BEAT_CLICKED: 'Micro Beat Clicked',\n MICRO_BEAT_DISPLAYED: 'Micro Beat Displayed',\n MICRO_BEAT_DISPLAYED_FIRST_TIME: 'Micro Beat Displayed For First Time',\n SWIPE_BACKWARD: 'Swipe Backward',\n SWIPE_FORWARD: 'Swipe Forward',\n}\n\nexport const ANALYTICS_PAGE_NAMES = {\n MICRO_WIDGET_CAROUSEL: 'Micro Widget Carousel',\n MICRO_WIDGET_CAROUSEL_ZERO_STATE: 'Micro Widget Carousel Zero State',\n MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS: 'Micro Widget Carousel No Relevant Insights',\n}\n\nexport const ANALYTICS_PAGEVIEWS = {\n [ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL]: {\n label: ANALYTICS_LABELS.MICRO_WIDGET,\n name: ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL,\n path: PATHS.INSIGHTS_MICRO_WIDGET,\n value: instanceId,\n },\n // zero state\n [ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_ZERO_STATE]: {\n label: ANALYTICS_LABELS.MICRO_WIDGET,\n name: ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_ZERO_STATE,\n path: PATHS.INSIGHTS_MICRO_WIDGET,\n value: instanceId,\n },\n // no relevant cards\n [ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS]: {\n label: ANALYTICS_LABELS.MICRO_WIDGET,\n name: ANALYTICS_PAGE_NAMES.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS,\n path: '/micro-widget',\n value: instanceId,\n },\n}\n\nexport const ANALYTICS_EVENTS = {\n // carousel control interaction events - clicks and swipes\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_CLICK]: {\n action: ANALYTICS_ACTIONS.CONTROL_BACKWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_CLICK]: {\n action: ANALYTICS_ACTIONS.CONTROL_FORWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_BACK_SWIPE]: {\n action: ANALYTICS_ACTIONS.SWIPE_BACKWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n [ANALYTICS_CLICK_EVENTS.ON_CAROUSEL_FORWARD_SWIPE]: {\n action: ANALYTICS_ACTIONS.SWIPE_FORWARD,\n category: ANALYTICS_CATEGORIES.MICRO_WIDGET_INTERACTION,\n label: ANALYTICS_LABELS.CAROUSEL_CONTROL,\n value: instanceId,\n },\n // read more card events\n [ANALYTICS_CLICK_EVENTS.ON_VIEW_MORE_CLICKED]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_CLICKED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: ANALYTICS_LABELS.VIEW_MORE,\n value: instanceId,\n },\n [ANALYTICS_VIEW_EVENTS.ON_VIEW_MORE_VIEWED]: {\n action: ANALYTICS_ACTIONS.MICRO_BEAT_DISPLAYED,\n category: ANALYTICS_CATEGORIES.BEAT_INTERACTION,\n label: ANALYTICS_LABELS.VIEW_MORE,\n value: instanceId,\n },\n\n ...onBeatClickedEvents(),\n ...onBeatDisplayedEvents(),\n ...onBeatDisplayedForFirstTimeEvents(),\n}\n\nexport interface AnalyticsEventsObjectType extends BasicAnalyticsEvent {\n value: string\n}\n\nexport type AnalyticsEventsType = {\n [key: string]: AnalyticsEventsObjectType\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NetWorthMicroWidget.es.js","names":[],"sources":["../../src/networth/NetWorthMicroWidget.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport {\n ANALYTICS_EVENTS,\n Loader,\n MicroWidgetContainer,\n useAccountStore,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useNetWorthStore,\n useWidgetLoadTimer,\n} from '../common'\n\nimport NetworthData from './components/micro/NetworthData'\nimport ZeroState from './components/micro/ZeroState'\n\ninterface NetWorthMicroWidgetProps {\n onCTAClick: () => void\n}\n\nexport const NetWorthMicroWidget = observer(({ onCTAClick }: NetWorthMicroWidgetProps) => {\n const { visibleAccounts: accounts } = useAccountStore()\n const { onEvent } = useEvent()\n const { net_worth: copy, common: commonCopy } = useGlobalCopyStore()\n const { isInitialized } = useGlobalUiStore()\n const { isNetWorthDataLoaded, loadNetWorthData, netWorthData, selectedData } = useNetWorthStore()\n\n React.useEffect(() => {\n if (!isNetWorthDataLoaded) {\n loadNetWorthData().finally()\n }\n }, [])\n\n useWidgetLoadTimer({\n widgetName: 'NetWorthMicroWidget',\n isLoaded: isNetWorthDataLoaded,\n })\n\n React.useEffect(() => {\n if (isNetWorthDataLoaded) {\n onEvent(ANALYTICS_EVENTS.NET_WORTH_LOAD_WIDGET, {\n state: !accounts?.length ? 'zeroState' : 'default',\n })\n }\n }, [isNetWorthDataLoaded])\n\n if (!isInitialized || !isNetWorthDataLoaded) return <Loader height={100} />\n\n const handleCTAClick = () => {\n onEvent(\n !accounts.length\n ? ANALYTICS_EVENTS.NET_WORTH_CLICK_GET_STARTED\n : ANALYTICS_EVENTS.NET_WORTH_CLICK_VIEW_DETAILS,\n )\n onCTAClick()\n }\n\n return (\n <MicroWidgetContainer\n className=\"mx-networth-microwidget\"\n ctaLabel={commonCopy.see_details}\n onCTAClick={handleCTAClick}\n title={copy.net_worth}\n >\n {netWorthData.accounts.length ? (\n <NetworthData\n amount={selectedData?.y as number}\n copy={copy}\n trendValue={selectedData?.change as number}\n />\n ) : (\n <ZeroState copy={copy} />\n )}\n </MicroWidgetContainer>\n )\n})\n"],"mappings":";;;;;;;;;;AAsBA,IAAa,IAAsB,EAAA,CAAU,EAAE,YAAA,EAAA,MAA2C;AACxF,QAAM,EAAE,iBAAiB,EAAA,IAAa,EAAgB,GAChD,EAAE,SAAA,EAAA,IAAY,EAAS,GACvB,EAAE,WAAW,GAAM,QAAQ,EAAA,IAAe,EAAmB,GAC7D,EAAE,eAAA,EAAA,IAAkB,EAAiB,GACrC,EAAE,sBAAA,GAAsB,kBAAA,GAAkB,cAAA,GAAc,cAAA,EAAA,IAAiB,EAAiB;AAqBhG,MAnBA,EAAM,UAAA,MAAgB;AACpB,IAAK,KACH,EAAiB,EAAE,QAAQ;AAAA,EAE/B,GAAG,CAAC,CAAC,GAEL,EAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC,GAED,EAAM,UAAA,MAAgB;AACpB,IAAI,KACF,EAAQ,EAAiB,uBAAuB,EAC9C,OAAQ,GAAU,SAAuB,YAAd,YAC7B,CAAC;AAAA,EAEL,GAAG,CAAC,CAAoB,CAAC,GAErB,CAAC,KAAiB,CAAC,EAAsB,QAAO,gBAAA,EAAC,GAAD,EAAQ,QAAQ,IAAM,CAAA;AAE1E,QAAM,IAAA,MAAuB;AAC3B,IAAA,EACG,EAAS,SAEN,EAAiB,+BADjB,EAAiB,2BAEvB,GACA,EAAW;AAAA,EACb;AAEA,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,WAAU;AAAA,IACV,UAAU,EAAW;AAAA,IACrB,YAAY;AAAA,IACZ,OAAO,EAAK;AAAA,cAEX,EAAa,SAAS,SACrB,gBAAA,EAAC,GAAD;AAAA,MACE,QAAQ,GAAc;AAAA,MAChB,MAAA;AAAA,MACN,YAAY,GAAc;AAAA,IAC3B,CAAA,IAED,gBAAA,EAAC,GAAD,EAAiB,MAAA,EAAO,CAAA;AAAA,EAEN,CAAA;AAE1B,CAAC"}
1
+ {"version":3,"file":"NetWorthMicroWidget.es.js","names":[],"sources":["../../src/networth/NetWorthMicroWidget.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport {\n ANALYTICS_EVENTS,\n Loader,\n MicroWidgetContainer,\n useAccountStore,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useNetWorthStore,\n useWidgetLoadTimer,\n} from '../common'\n\nimport NetworthData from './components/micro/NetworthData'\nimport ZeroState from './components/micro/ZeroState'\n\ninterface NetWorthMicroWidgetProps {\n onCTAClick: () => void\n}\n\nexport const NetWorthMicroWidget = observer(({ onCTAClick }: NetWorthMicroWidgetProps) => {\n const { visibleAccounts: accounts } = useAccountStore()\n const { onEvent } = useEvent()\n const { net_worth: copy, common: commonCopy } = useGlobalCopyStore()\n const { isInitialized } = useGlobalUiStore()\n const { isNetWorthDataLoaded, loadNetWorthData, netWorthData, selectedData } = useNetWorthStore()\n\n React.useEffect(() => {\n if (!isNetWorthDataLoaded) {\n loadNetWorthData().finally()\n }\n }, [])\n\n useWidgetLoadTimer({\n widgetName: 'NetWorthMicroWidget',\n isLoaded: isNetWorthDataLoaded,\n })\n\n React.useEffect(() => {\n if (isNetWorthDataLoaded) {\n onEvent(ANALYTICS_EVENTS.NET_WORTH_LOAD_WIDGET, {\n state: !accounts?.length ? 'zeroState' : 'default',\n })\n }\n }, [isNetWorthDataLoaded])\n\n if (!isInitialized || !isNetWorthDataLoaded) return <Loader height={100} />\n\n const handleCTAClick = () => {\n onEvent(\n !accounts.length\n ? ANALYTICS_EVENTS.NET_WORTH_CLICK_GET_STARTED\n : ANALYTICS_EVENTS.NET_WORTH_CLICK_VIEW_DETAILS,\n )\n onCTAClick()\n }\n\n return (\n <MicroWidgetContainer\n className=\"mx-networth-microwidget\"\n ctaLabel={commonCopy.see_details}\n onCTAClick={handleCTAClick}\n title={copy.net_worth}\n >\n {netWorthData.accounts.length ? (\n <NetworthData\n amount={selectedData?.y as number}\n copy={copy}\n trendValue={selectedData?.change as number}\n />\n ) : (\n <ZeroState copy={copy} />\n )}\n </MicroWidgetContainer>\n )\n})\n"],"mappings":";;;;;;;;;;AAsBA,IAAa,IAAsB,EAAA,CAAU,EAAE,YAAA,EAAA,MAA2C;AACxF,QAAM,EAAE,iBAAiB,EAAA,IAAa,EAAgB,GAChD,EAAE,SAAA,EAAA,IAAY,EAAS,GACvB,EAAE,WAAW,GAAM,QAAQ,EAAA,IAAe,EAAmB,GAC7D,EAAE,eAAA,EAAA,IAAkB,EAAiB,GACrC,EAAE,sBAAA,GAAsB,kBAAA,GAAkB,cAAA,GAAc,cAAA,EAAA,IAAiB,EAAiB;AAqBhG,MAnBA,EAAM,UAAA,MAAgB;AACpB,IAAK,KACH,EAAiB,EAAE,QAAQ;AAAA,EAE/B,GAAG,CAAC,CAAC,GAEL,EAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC,GAED,EAAM,UAAA,MAAgB;AACpB,IAAI,KACF,EAAQ,EAAiB,uBAAuB,EAC9C,OAAQ,GAAU,SAAuB,YAAd,YAC7B,CAAC;AAAA,EAEL,GAAG,CAAC,CAAoB,CAAC,GAErB,CAAC,KAAiB,CAAC,EAAsB,QAAO,gBAAA,EAAC,GAAD,EAAQ,QAAQ,IAAM,CAAA;AAE1E,QAAM,IAAA,MAAuB;AAC3B,IAAA,EACG,EAAS,SAEN,EAAiB,+BADjB,EAAiB,2BAEvB,GACA,EAAW;AAAA,EACb;AAEA,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,WAAU;AAAA,IACV,UAAU,EAAW;AAAA,IACrB,YAAY;AAAA,IACZ,OAAO,EAAK;AAAA,IAEX,UAAA,EAAa,SAAS,SACrB,gBAAA,EAAC,GAAD;AAAA,MACE,QAAQ,GAAc;AAAA,MAChB,MAAA;AAAA,MACN,YAAY,GAAc;AAAA,IAC3B,CAAA,IAED,gBAAA,EAAC,GAAD,EAAiB,MAAA,EAAO,CAAA;AAAA,EAEN,CAAA;AAE1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"NetWorthWidget.es.js","names":[],"sources":["../../src/networth/NetWorthWidget.tsx"],"sourcesContent":["import React from 'react'\nimport { differenceInMonths } from 'date-fns'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\n\nimport type { DateRange } from '@mui/x-date-pickers-pro'\n\nimport ConnectionsDrawer from '../accounts/components/ConnectionsDrawer'\nimport {\n ANALYTICS_EVENTS,\n EmptyState,\n Loader,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useNetWorthStore,\n useScreenSize,\n useWidgetLoadTimer,\n WidgetContainer,\n} from '../common'\nimport { WidgetProps } from '../core'\n\nimport NetWorthChart from './components/NetWorthChart'\nimport NetWorthList from './components/NetWorthList'\nimport NetWorthSummary from './components/NetWorthSummary'\n\nexport const NetWorthWidget: React.FC<WidgetProps> = observer(({ onBackClick, onMenuClick }) => {\n const { isInitialized } = useGlobalUiStore()\n const { accounts: accountsCopy, net_worth: copy } = useGlobalCopyStore()\n const {\n hoveredData,\n isNetWorthDataLoaded,\n loadNetWorthData,\n netWorthChartData,\n selectedData,\n setTimeframe,\n } = useNetWorthStore()\n const { isMobile } = useScreenSize()\n const { onEvent } = useEvent()\n\n const [showConnectionsWidget, setShowConnectionsWidget] = React.useState(false)\n\n useWidgetLoadTimer({\n widgetName: 'NetWorthWidget',\n isLoaded: isNetWorthDataLoaded,\n })\n\n React.useEffect(() => {\n if (!isNetWorthDataLoaded) {\n loadNetWorthData().finally()\n }\n onEvent(ANALYTICS_EVENTS.NET_WORTH_VIEW)\n }, [])\n\n const handleRangeChanged = async (range: DateRange<Date>) => {\n const startDate = range[0]\n const endDate = range[1]\n\n if (startDate && endDate) {\n setTimeframe(differenceInMonths(endDate, startDate))\n }\n }\n\n const handleTimeframeClick = (months: number) => {\n onEvent(ANALYTICS_EVENTS.NET_WORTH_WIDGET_CLICK_TIMEFRAME, { time_period: months + 'M' })\n }\n\n const handleManageConnections = () => {\n setShowConnectionsWidget(true)\n onEvent(ANALYTICS_EVENTS.ACCOUNTS_CLICK_CONNECT)\n }\n\n if (!isInitialized || !isNetWorthDataLoaded) return <Loader />\n\n const showEmptyState = netWorthChartData.length === 0\n\n return (\n <WidgetContainer\n calendarActions={{\n onRangeChanged: handleRangeChanged,\n onTimeframeClick: handleTimeframeClick,\n }}\n dateRangeVariant={isMobile ? 'timeframetabs' : 'timeframebuttons'}\n onAccountsFilterClick={() => onEvent(ANALYTICS_EVENTS.NET_WORTH_WIDGET_CLICK_FILTER)}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n title={copy.net_worth}\n >\n {!showEmptyState ? (\n <>\n {selectedData && (\n <NetWorthSummary hoveredData={hoveredData} selectedData={selectedData} />\n )}\n <Stack\n alignItems={isMobile ? 'center' : 'flex-start'}\n direction={isMobile ? 'column' : 'row'}\n spacing={isMobile ? 0 : 48}\n >\n <NetWorthChart />\n <NetWorthList />\n </Stack>\n </>\n ) : (\n <Box sx={{ justifyItems: 'center' }}>\n <EmptyState\n header={copy.empty_widget_header}\n icon={'elevation'}\n onClick={handleManageConnections}\n primaryButton={copy.empty_widget_button}\n subText={copy.empty_widget_description}\n sx={{\n width: { sm: 432 },\n '.buttons-footer': {\n width: 167,\n },\n }}\n />\n </Box>\n )}\n\n <ConnectionsDrawer\n onClose={() => setShowConnectionsWidget(false)}\n showConnectionsWidget={showConnectionsWidget}\n title={accountsCopy.manage_connections}\n />\n </WidgetContainer>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;;;;AA4BA,IAAa,KAAwC,EAAA,CAAU,EAAE,aAAA,GAAa,aAAA,EAAA,MAAkB;AAC9F,QAAM,EAAE,eAAA,EAAA,IAAkB,EAAiB,GACrC,EAAE,UAAU,GAAc,WAAW,EAAA,IAAS,EAAmB,GACjE,EACJ,aAAA,GACA,sBAAA,GACA,kBAAA,GACA,mBAAA,GACA,cAAA,GACA,cAAA,EAAA,IACE,EAAiB,GACf,EAAE,UAAA,EAAA,IAAa,EAAc,GAC7B,EAAE,SAAA,EAAA,IAAY,EAAS,GAEvB,CAAC,GAAuB,CAAA,IAA4B,EAAM,SAAS,EAAK;AAE9E,EAAA,EAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC,GAED,EAAM,UAAA,MAAgB;AACpB,IAAK,KACH,EAAiB,EAAE,QAAQ,GAE7B,EAAQ,EAAiB,cAAc;AAAA,EACzC,GAAG,CAAC,CAAC;AAEL,QAAM,IAAqB,OAAO,MAA2B;AAC3D,UAAM,IAAY,EAAM,CAAA,GAClB,IAAU,EAAM,CAAA;AAEtB,IAAI,KAAa,KACf,EAAa,EAAmB,GAAS,CAAS,CAAC;AAAA,EAEvD,GAEM,IAAA,CAAwB,MAAmB;AAC/C,IAAA,EAAQ,EAAiB,kCAAkC,EAAE,aAAa,IAAS,IAAI,CAAC;AAAA,EAC1F,GAEM,IAAA,MAAgC;AACpC,IAAA,EAAyB,EAAI,GAC7B,EAAQ,EAAiB,sBAAsB;AAAA,EACjD;AAEA,MAAI,CAAC,KAAiB,CAAC,EAAsB,QAAO,gBAAA,EAAC,GAAD,CAAS,CAAA;AAE7D,QAAM,IAAiB,EAAkB,WAAW;AAEpD,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,iBAAiB;AAAA,MACf,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB,IAAW,kBAAkB;AAAA,IAC/C,uBAAA,MAA6B,EAAQ,EAAiB,6BAA6B;AAAA,IACtE,aAAA;AAAA,IACA,aAAA;AAAA,IACb,OAAO,EAAK;AAAA,cATd,CAWI,IAeA,gBAAA,EAAC,GAAD;AAAA,MAAK,IAAI,EAAE,cAAc,SAAS;AAAA,gBAChC,gBAAA,EAAC,GAAD;AAAA,QACE,QAAQ,EAAK;AAAA,QACb,MAAM;AAAA,QACN,SAAS;AAAA,QACT,eAAe,EAAK;AAAA,QACpB,SAAS,EAAK;AAAA,QACd,IAAI;AAAA,UACF,OAAO,EAAE,IAAI,IAAI;AAAA,UACjB,mBAAmB,EACjB,OAAO,IACT;AAAA,QACF;AAAA,MACD,CAAA;AAAA,IACE,CAAA,IA5BL,gBAAA,EAAA,GAAA,EAAA,UAAA,CACG,KACC,gBAAA,EAAC,GAAD;AAAA,MAA8B,aAAA;AAAA,MAA2B,cAAA;AAAA,IAAe,CAAA,GAE1E,gBAAA,EAAC,GAAD;AAAA,MACE,YAAY,IAAW,WAAW;AAAA,MAClC,WAAW,IAAW,WAAW;AAAA,MACjC,SAAS,IAAW,IAAI;AAAA,gBAH1B,CAKE,gBAAA,EAAC,GAAD,CAAgB,CAAA,GAChB,gBAAA,EAAC,GAAD,CAAe,CAAA,CACV;AAAA,MACP,EAAA,CAAA,GAmBJ,gBAAA,EAAC,GAAD;AAAA,MACE,SAAA,MAAe,EAAyB,EAAK;AAAA,MACtB,uBAAA;AAAA,MACvB,OAAO,EAAa;AAAA,IACrB,CAAA,CACc;AAAA;AAErB,CAAC"}
1
+ {"version":3,"file":"NetWorthWidget.es.js","names":[],"sources":["../../src/networth/NetWorthWidget.tsx"],"sourcesContent":["import React from 'react'\nimport { differenceInMonths } from 'date-fns'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\n\nimport type { DateRange } from '@mui/x-date-pickers-pro'\n\nimport ConnectionsDrawer from '../accounts/components/ConnectionsDrawer'\nimport {\n ANALYTICS_EVENTS,\n EmptyState,\n Loader,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useNetWorthStore,\n useScreenSize,\n useWidgetLoadTimer,\n WidgetContainer,\n} from '../common'\nimport { WidgetProps } from '../core'\n\nimport NetWorthChart from './components/NetWorthChart'\nimport NetWorthList from './components/NetWorthList'\nimport NetWorthSummary from './components/NetWorthSummary'\n\nexport const NetWorthWidget: React.FC<WidgetProps> = observer(({ onBackClick, onMenuClick }) => {\n const { isInitialized } = useGlobalUiStore()\n const { accounts: accountsCopy, net_worth: copy } = useGlobalCopyStore()\n const {\n hoveredData,\n isNetWorthDataLoaded,\n loadNetWorthData,\n netWorthChartData,\n selectedData,\n setTimeframe,\n } = useNetWorthStore()\n const { isMobile } = useScreenSize()\n const { onEvent } = useEvent()\n\n const [showConnectionsWidget, setShowConnectionsWidget] = React.useState(false)\n\n useWidgetLoadTimer({\n widgetName: 'NetWorthWidget',\n isLoaded: isNetWorthDataLoaded,\n })\n\n React.useEffect(() => {\n if (!isNetWorthDataLoaded) {\n loadNetWorthData().finally()\n }\n onEvent(ANALYTICS_EVENTS.NET_WORTH_VIEW)\n }, [])\n\n const handleRangeChanged = async (range: DateRange<Date>) => {\n const startDate = range[0]\n const endDate = range[1]\n\n if (startDate && endDate) {\n setTimeframe(differenceInMonths(endDate, startDate))\n }\n }\n\n const handleTimeframeClick = (months: number) => {\n onEvent(ANALYTICS_EVENTS.NET_WORTH_WIDGET_CLICK_TIMEFRAME, { time_period: months + 'M' })\n }\n\n const handleManageConnections = () => {\n setShowConnectionsWidget(true)\n onEvent(ANALYTICS_EVENTS.ACCOUNTS_CLICK_CONNECT)\n }\n\n if (!isInitialized || !isNetWorthDataLoaded) return <Loader />\n\n const showEmptyState = netWorthChartData.length === 0\n\n return (\n <WidgetContainer\n calendarActions={{\n onRangeChanged: handleRangeChanged,\n onTimeframeClick: handleTimeframeClick,\n }}\n dateRangeVariant={isMobile ? 'timeframetabs' : 'timeframebuttons'}\n onAccountsFilterClick={() => onEvent(ANALYTICS_EVENTS.NET_WORTH_WIDGET_CLICK_FILTER)}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n title={copy.net_worth}\n >\n {!showEmptyState ? (\n <>\n {selectedData && (\n <NetWorthSummary hoveredData={hoveredData} selectedData={selectedData} />\n )}\n <Stack\n alignItems={isMobile ? 'center' : 'flex-start'}\n direction={isMobile ? 'column' : 'row'}\n spacing={isMobile ? 0 : 48}\n >\n <NetWorthChart />\n <NetWorthList />\n </Stack>\n </>\n ) : (\n <Box sx={{ justifyItems: 'center' }}>\n <EmptyState\n header={copy.empty_widget_header}\n icon={'elevation'}\n onClick={handleManageConnections}\n primaryButton={copy.empty_widget_button}\n subText={copy.empty_widget_description}\n sx={{\n width: { sm: 432 },\n '.buttons-footer': {\n width: 167,\n },\n }}\n />\n </Box>\n )}\n\n <ConnectionsDrawer\n onClose={() => setShowConnectionsWidget(false)}\n showConnectionsWidget={showConnectionsWidget}\n title={accountsCopy.manage_connections}\n />\n </WidgetContainer>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;;;;AA4BA,IAAa,KAAwC,EAAA,CAAU,EAAE,aAAA,GAAa,aAAA,EAAA,MAAkB;AAC9F,QAAM,EAAE,eAAA,EAAA,IAAkB,EAAiB,GACrC,EAAE,UAAU,GAAc,WAAW,EAAA,IAAS,EAAmB,GACjE,EACJ,aAAA,GACA,sBAAA,GACA,kBAAA,GACA,mBAAA,GACA,cAAA,GACA,cAAA,EAAA,IACE,EAAiB,GACf,EAAE,UAAA,EAAA,IAAa,EAAc,GAC7B,EAAE,SAAA,EAAA,IAAY,EAAS,GAEvB,CAAC,GAAuB,CAAA,IAA4B,EAAM,SAAS,EAAK;AAE9E,EAAA,EAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC,GAED,EAAM,UAAA,MAAgB;AACpB,IAAK,KACH,EAAiB,EAAE,QAAQ,GAE7B,EAAQ,EAAiB,cAAc;AAAA,EACzC,GAAG,CAAC,CAAC;AAEL,QAAM,IAAqB,OAAO,MAA2B;AAC3D,UAAM,IAAY,EAAM,CAAA,GAClB,IAAU,EAAM,CAAA;AAEtB,IAAI,KAAa,KACf,EAAa,EAAmB,GAAS,CAAS,CAAC;AAAA,EAEvD,GAEM,IAAA,CAAwB,MAAmB;AAC/C,IAAA,EAAQ,EAAiB,kCAAkC,EAAE,aAAa,IAAS,IAAI,CAAC;AAAA,EAC1F,GAEM,IAAA,MAAgC;AACpC,IAAA,EAAyB,EAAI,GAC7B,EAAQ,EAAiB,sBAAsB;AAAA,EACjD;AAEA,MAAI,CAAC,KAAiB,CAAC,EAAsB,QAAO,gBAAA,EAAC,GAAD,CAAS,CAAA;AAE7D,QAAM,IAAiB,EAAkB,WAAW;AAEpD,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,iBAAiB;AAAA,MACf,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,IACpB;AAAA,IACA,kBAAkB,IAAW,kBAAkB;AAAA,IAC/C,uBAAA,MAA6B,EAAQ,EAAiB,6BAA6B;AAAA,IACtE,aAAA;AAAA,IACA,aAAA;AAAA,IACb,OAAO,EAAK;AAAA,IATd,UAAA,CAWI,IAeA,gBAAA,EAAC,GAAD;AAAA,MAAK,IAAI,EAAE,cAAc,SAAS;AAAA,MAChC,UAAA,gBAAA,EAAC,GAAD;AAAA,QACE,QAAQ,EAAK;AAAA,QACb,MAAM;AAAA,QACN,SAAS;AAAA,QACT,eAAe,EAAK;AAAA,QACpB,SAAS,EAAK;AAAA,QACd,IAAI;AAAA,UACF,OAAO,EAAE,IAAI,IAAI;AAAA,UACjB,mBAAmB,EACjB,OAAO,IACT;AAAA,QACF;AAAA,MACD,CAAA;AAAA,IACE,CAAA,IA5BL,gBAAA,EAAA,GAAA,EAAA,UAAA,CACG,KACC,gBAAA,EAAC,GAAD;AAAA,MAA8B,aAAA;AAAA,MAA2B,cAAA;AAAA,IAAe,CAAA,GAE1E,gBAAA,EAAC,GAAD;AAAA,MACE,YAAY,IAAW,WAAW;AAAA,MAClC,WAAW,IAAW,WAAW;AAAA,MACjC,SAAS,IAAW,IAAI;AAAA,MAH1B,UAAA,CAKE,gBAAA,EAAC,GAAD,CAAgB,CAAA,GAChB,gBAAA,EAAC,GAAD,CAAe,CAAA,CACV;AAAA,IACP,CAAA,CAAA,EAAA,CAAA,GAmBJ,gBAAA,EAAC,GAAD;AAAA,MACE,SAAA,MAAe,EAAyB,EAAK;AAAA,MACtB,uBAAA;AAAA,MACvB,OAAO,EAAa;AAAA,IACrB,CAAA,CACc;AAAA;AAErB,CAAC"}
@@ -13,8 +13,8 @@ import h from "@mui/material/Divider";
13
13
  import C from "@mui/material/List";
14
14
  import b from "@mui/material/ListItem";
15
15
  import k from "@mui/material/ListItemButton";
16
- import g from "@mui/material/ListItemIcon";
17
16
  import c from "@mui/material/ListItemText";
17
+ import g from "@mui/material/ListItemIcon";
18
18
  import y from "@mui/material/ListSubheader";
19
19
  import A from "@mui/material/Collapse";
20
20
  var T = ({ accounts: i, name: a, icon: n }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"AssetsLiabilitiesDetail.es.js","names":[],"sources":["../../../src/networth/components/AssetsLiabilitiesDetail.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Box from '@mui/material/Box'\nimport Collapse from '@mui/material/Collapse'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemIcon from '@mui/material/ListItemIcon'\nimport ListItemText from '@mui/material/ListItemText'\nimport ListSubheader from '@mui/material/ListSubheader'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Icon, Text } from '@mxenabled/mxui'\n\nimport { CurrencyText, useGlobalCopyStore } from '../../common/'\nimport NetWorthChange from './NetWorthChange'\nimport { AccountGroup, AssetsLiabilities } from '../../core/types/NetWorth'\nimport { groupAccounts } from '../../core/utils/NetWorthUtils'\n\nconst Group: React.FC<AccountGroup> = ({ accounts, name, icon }) => {\n const [isOpen, setIsOpen] = React.useState(false)\n\n return (\n <>\n <ListItem sx={(theme) => ({ backgroundColor: theme.palette.background.paper })}>\n <ListItemButton onClick={() => setIsOpen(!isOpen)}>\n {icon && (\n <ListItemIcon>\n <Icon name={icon} size={24} sx={{ mr: 12 }} />\n </ListItemIcon>\n )}\n <ListItemText\n primary={\n <Text sx={{ fontWeight: 700 }} variant=\"body1\">\n {name}\n </Text>\n }\n />\n <ListItemIcon>\n {isOpen ? <Icon name=\"expand_less\" size={24} /> : <Icon name=\"expand_more\" size={24} />}\n </ListItemIcon>\n </ListItemButton>\n </ListItem>\n <Divider />\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit={true}>\n {accounts.map((account, index) => (\n <List key={account.accountName}>\n <ListItem sx={() => ({ py: 14 })}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\" sx={{ fontWeight: 400 }}>\n <Text\n sx={{\n marginRight: 10,\n }}\n variant=\"body1\"\n >\n {account.accountName}\n </Text>\n <CurrencyText\n amount={account.balance}\n sx={{\n flexShrink: 0,\n }}\n variant=\"body2\"\n />\n </Stack>\n }\n sx={{ pl: 72, pr: 16 }}\n />\n </ListItem>\n {index < accounts.length - 1 ? <Divider variant=\"inset\" /> : <Divider />}\n </List>\n ))}\n </Collapse>\n </>\n )\n}\n\nconst ListGroup: React.FC<{\n groupedAccounts: AccountGroup[]\n}> = ({ groupedAccounts }) => (\n <>\n {groupedAccounts.map(({ accounts, icon, name }) => (\n <Group accounts={accounts} icon={icon} key={name} name={name} />\n ))}\n </>\n)\n\nconst AssetsLiabilitiesDetail: React.FC<AssetsLiabilities> = ({\n netWorth,\n assets,\n liabilities,\n totalAssets,\n totalLiabilities,\n}) => {\n const { net_worth: copy } = useGlobalCopyStore()\n\n const theme = useTheme()\n\n return (\n <>\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n paddingTop: 24,\n marginBottom: 8,\n }}\n >\n <Text variant=\"body1\">{copy.current_net_worth}</Text>\n <CurrencyText amount={netWorth?.y ?? 0} variant=\"h1\" />\n {netWorth && (\n <NetWorthChange\n currencyLabel={copy.this_month}\n iconSize={20}\n netWorth={netWorth}\n theme={theme}\n />\n )}\n </Box>\n <List>\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.assets}\n </Text>\n <CurrencyText amount={totalAssets} sx={{ fontWeight: 400 }} variant=\"caption\" />\n </Stack>\n }\n />\n </ListSubheader>\n <ListGroup groupedAccounts={groupAccounts(assets)} />\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.liabilities}\n </Text>\n <CurrencyText\n amount={totalLiabilities}\n sx={{ fontWeight: 400 }}\n variant=\"caption\"\n />\n </Stack>\n }\n />\n </ListSubheader>\n <ListGroup groupedAccounts={groupAccounts(liabilities)} />\n </List>\n </>\n )\n}\n\nexport default observer(AssetsLiabilitiesDetail)\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAsBA,IAAM,IAAA,CAAiC,EAAE,UAAA,GAAU,MAAA,GAAM,MAAA,EAAA,MAAW;AAClE,QAAM,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAK;AAEhD,SACE,gBAAA,EAAA,GAAA,EAAA,UAAA;AAAA,IACE,gBAAA,EAAC,GAAD;AAAA,MAAU,IAAA,CAAK,OAAW,EAAE,iBAAiB,EAAM,QAAQ,WAAW,MAAM;AAAA,gBAC1E,gBAAA,EAAC,GAAD;AAAA,QAAgB,SAAA,MAAe,EAAU,CAAC,CAAM;AAAA,kBAAhD;AAAA,UACG,KACC,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD;AAAA,YAAM,MAAM;AAAA,YAAM,MAAM;AAAA,YAAI,IAAI,EAAE,IAAI,GAAG;AAAA,UAAI,CAAA,EACjC,CAAA;AAAA,UAEhB,gBAAA,EAAC,GAAD,EACE,SACE,gBAAA,EAAC,GAAD;AAAA,YAAM,IAAI,EAAE,YAAY,IAAI;AAAA,YAAG,SAAQ;AAAA,sBACpC;AAAA,UACG,CAAA,EAET,CAAA;AAAA,UACD,gBAAA,EAAC,GAAD,EAAA,UACG,IAAS,gBAAA,EAAC,GAAD;AAAA,YAAM,MAAK;AAAA,YAAc,MAAM;AAAA,UAAK,CAAA,IAAI,gBAAA,EAAC,GAAD;AAAA,YAAM,MAAK;AAAA,YAAc,MAAM;AAAA,UAAK,CAAA,EAC1E,CAAA;AAAA,QACA;AAAA;IACR,CAAA;AAAA,IACV,gBAAA,EAAC,GAAD,CAAU,CAAA;AAAA,IACV,gBAAA,EAAC,GAAD;AAAA,MAAU,IAAI;AAAA,MAAQ,SAAQ;AAAA,MAAO,eAAe;AAAA,gBACjD,EAAS,IAAA,CAAK,GAAS,MACtB,gBAAA,EAAC,GAAD,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,QAAU,IAAA,OAAW,EAAE,IAAI,GAAG;AAAA,kBAC5B,gBAAA,EAAC,GAAD;AAAA,UACE,SACE,gBAAA,EAAC,GAAD;AAAA,YAAO,WAAU;AAAA,YAAM,gBAAe;AAAA,YAAgB,IAAI,EAAE,YAAY,IAAI;AAAA,sBAA5E,CACE,gBAAA,EAAC,GAAD;AAAA,cACE,IAAI,EACF,aAAa,GACf;AAAA,cACA,SAAQ;AAAA,wBAEP,EAAQ;AAAA,YACL,CAAA,GACN,gBAAA,EAAC,GAAD;AAAA,cACE,QAAQ,EAAQ;AAAA,cAChB,IAAI,EACF,YAAY,EACd;AAAA,cACA,SAAQ;AAAA,YACT,CAAA,CACI;AAAA;UAET,IAAI;AAAA,YAAE,IAAI;AAAA,YAAI,IAAI;AAAA,UAAG;AAAA,QACtB,CAAA;AAAA,MACO,CAAA,GACT,IAAQ,EAAS,SAAS,IAAI,gBAAA,EAAC,GAAD,EAAS,SAAQ,QAAS,CAAA,IAAI,gBAAA,EAAC,GAAD,CAAU,CAAA,CACnE,EAAA,GA1BK,EAAQ,WA0Bb,CACP;AAAA,IACO,CAAA;AAAA,EACV,EAAA,CAAA;AAEN,GAEM,IAAA,CAEA,EAAE,iBAAA,EAAA,MACN,gBAAA,EAAA,GAAA,EAAA,UACG,EAAgB,IAAA,CAAK,EAAE,UAAA,GAAU,MAAA,GAAM,MAAA,EAAA,MACtC,gBAAA,EAAC,GAAD;AAAA,EAAiB,UAAA;AAAA,EAAgB,MAAA;AAAA,EAAuB,MAAA;AAAO,GAAnB,CAAmB,CAChE,EACD,CAAA,GAGE,IAAA,CAAwD,EAC5D,UAAA,GACA,QAAA,GACA,aAAA,GACA,aAAA,GACA,kBAAA,EAAA,MACI;AACJ,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GAEzC,IAAQ,EAAS;AAEvB,SACE,gBAAA,EAAA,GAAA,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,cAAc;AAAA,IAChB;AAAA,cARF;AAAA,MAUE,gBAAA,EAAC,GAAD;AAAA,QAAM,SAAQ;AAAA,kBAAS,EAAK;AAAA,MAAwB,CAAA;AAAA,MACpD,gBAAA,EAAC,GAAD;AAAA,QAAc,QAAQ,GAAU,KAAK;AAAA,QAAG,SAAQ;AAAA,MAAM,CAAA;AAAA,MACrD,KACC,gBAAA,EAAC,GAAD;AAAA,QACE,eAAe,EAAK;AAAA,QACpB,UAAU;AAAA,QACA,UAAA;AAAA,QACH,OAAA;AAAA,MACR,CAAA;AAAA,IAEA;AAAA,MACL,gBAAA,EAAC,GAAD,EAAA,UAAA;AAAA,IACE,gBAAA,EAAC,GAAD;AAAA,MAAe,IAAI;AAAA,QAAE,IAAI;AAAA,QAAG,IAAI;AAAA,QAAI,IAAI;AAAA,MAAE;AAAA,gBACxC,gBAAA,EAAC,GAAD,EACE,SACE,gBAAA,EAAC,GAAD;AAAA,QAAO,WAAU;AAAA,QAAM,gBAAe;AAAA,kBAAtC,CACE,gBAAA,EAAC,GAAD;AAAA,UAAM,IAAI,EAAE,YAAY,IAAI;AAAA,UAAG,SAAQ;AAAA,oBACpC,EAAK;AAAA,QACF,CAAA,GACN,gBAAA,EAAC,GAAD;AAAA,UAAc,QAAQ;AAAA,UAAa,IAAI,EAAE,YAAY,IAAI;AAAA,UAAG,SAAQ;AAAA,QAAW,CAAA,CAC1E;AAAA,SAEV,CAAA;AAAA,IACY,CAAA;AAAA,IACf,gBAAA,EAAC,GAAD,EAAW,iBAAiB,EAAc,CAAM,EAAI,CAAA;AAAA,IACpD,gBAAA,EAAC,GAAD;AAAA,MAAe,IAAI;AAAA,QAAE,IAAI;AAAA,QAAG,IAAI;AAAA,QAAI,IAAI;AAAA,MAAE;AAAA,gBACxC,gBAAA,EAAC,GAAD,EACE,SACE,gBAAA,EAAC,GAAD;AAAA,QAAO,WAAU;AAAA,QAAM,gBAAe;AAAA,kBAAtC,CACE,gBAAA,EAAC,GAAD;AAAA,UAAM,IAAI,EAAE,YAAY,IAAI;AAAA,UAAG,SAAQ;AAAA,oBACpC,EAAK;AAAA,QACF,CAAA,GACN,gBAAA,EAAC,GAAD;AAAA,UACE,QAAQ;AAAA,UACR,IAAI,EAAE,YAAY,IAAI;AAAA,UACtB,SAAQ;AAAA,QACT,CAAA,CACI;AAAA,SAEV,CAAA;AAAA,IACY,CAAA;AAAA,IACf,gBAAA,EAAC,GAAD,EAAW,iBAAiB,EAAc,CAAW,EAAI,CAAA;AAAA,EACrD,EAAA,CAAA,CACN,EAAA,CAAA;AAEN,GAEA,IAAe,EAAS,CAAuB"}
1
+ {"version":3,"file":"AssetsLiabilitiesDetail.es.js","names":[],"sources":["../../../src/networth/components/AssetsLiabilitiesDetail.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Box from '@mui/material/Box'\nimport Collapse from '@mui/material/Collapse'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemIcon from '@mui/material/ListItemIcon'\nimport ListItemText from '@mui/material/ListItemText'\nimport ListSubheader from '@mui/material/ListSubheader'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Icon, Text } from '@mxenabled/mxui'\n\nimport { CurrencyText, useGlobalCopyStore } from '../../common/'\nimport NetWorthChange from './NetWorthChange'\nimport { AccountGroup, AssetsLiabilities } from '../../core/types/NetWorth'\nimport { groupAccounts } from '../../core/utils/NetWorthUtils'\n\nconst Group: React.FC<AccountGroup> = ({ accounts, name, icon }) => {\n const [isOpen, setIsOpen] = React.useState(false)\n\n return (\n <>\n <ListItem sx={(theme) => ({ backgroundColor: theme.palette.background.paper })}>\n <ListItemButton onClick={() => setIsOpen(!isOpen)}>\n {icon && (\n <ListItemIcon>\n <Icon name={icon} size={24} sx={{ mr: 12 }} />\n </ListItemIcon>\n )}\n <ListItemText\n primary={\n <Text sx={{ fontWeight: 700 }} variant=\"body1\">\n {name}\n </Text>\n }\n />\n <ListItemIcon>\n {isOpen ? <Icon name=\"expand_less\" size={24} /> : <Icon name=\"expand_more\" size={24} />}\n </ListItemIcon>\n </ListItemButton>\n </ListItem>\n <Divider />\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit={true}>\n {accounts.map((account, index) => (\n <List key={account.accountName}>\n <ListItem sx={() => ({ py: 14 })}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\" sx={{ fontWeight: 400 }}>\n <Text\n sx={{\n marginRight: 10,\n }}\n variant=\"body1\"\n >\n {account.accountName}\n </Text>\n <CurrencyText\n amount={account.balance}\n sx={{\n flexShrink: 0,\n }}\n variant=\"body2\"\n />\n </Stack>\n }\n sx={{ pl: 72, pr: 16 }}\n />\n </ListItem>\n {index < accounts.length - 1 ? <Divider variant=\"inset\" /> : <Divider />}\n </List>\n ))}\n </Collapse>\n </>\n )\n}\n\nconst ListGroup: React.FC<{\n groupedAccounts: AccountGroup[]\n}> = ({ groupedAccounts }) => (\n <>\n {groupedAccounts.map(({ accounts, icon, name }) => (\n <Group accounts={accounts} icon={icon} key={name} name={name} />\n ))}\n </>\n)\n\nconst AssetsLiabilitiesDetail: React.FC<AssetsLiabilities> = ({\n netWorth,\n assets,\n liabilities,\n totalAssets,\n totalLiabilities,\n}) => {\n const { net_worth: copy } = useGlobalCopyStore()\n\n const theme = useTheme()\n\n return (\n <>\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n paddingTop: 24,\n marginBottom: 8,\n }}\n >\n <Text variant=\"body1\">{copy.current_net_worth}</Text>\n <CurrencyText amount={netWorth?.y ?? 0} variant=\"h1\" />\n {netWorth && (\n <NetWorthChange\n currencyLabel={copy.this_month}\n iconSize={20}\n netWorth={netWorth}\n theme={theme}\n />\n )}\n </Box>\n <List>\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.assets}\n </Text>\n <CurrencyText amount={totalAssets} sx={{ fontWeight: 400 }} variant=\"caption\" />\n </Stack>\n }\n />\n </ListSubheader>\n <ListGroup groupedAccounts={groupAccounts(assets)} />\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.liabilities}\n </Text>\n <CurrencyText\n amount={totalLiabilities}\n sx={{ fontWeight: 400 }}\n variant=\"caption\"\n />\n </Stack>\n }\n />\n </ListSubheader>\n <ListGroup groupedAccounts={groupAccounts(liabilities)} />\n </List>\n </>\n )\n}\n\nexport default observer(AssetsLiabilitiesDetail)\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GainsLossesDetail.es.js","names":[],"sources":["../../../src/networth/components/GainsLossesDetail.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemText from '@mui/material/ListItemText'\nimport ListSubheader from '@mui/material/ListSubheader'\nimport Stack from '@mui/material/Stack'\n\nimport { useTheme } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { CurrencyText, useGlobalCopyStore } from '../../common/'\nimport { fromTimestampToMonthYear } from '../../core/utils/DateUtil'\n\nimport { GainsLosses } from '../../core/types/NetWorth'\nimport NetWorthChange from './NetWorthChange'\n\nconst GainsLossesDetail: React.FC<GainsLosses> = ({\n netWorth,\n gains,\n losses,\n totalGains,\n totalLosses,\n}) => {\n const { net_worth: copy } = useGlobalCopyStore()\n\n const theme = useTheme()\n\n return (\n <>\n <Stack alignItems=\"center\" justifyContent=\"space-between\" mb={8} pt={24}>\n <Text variant=\"body2\">{fromTimestampToMonthYear(netWorth?.x)}</Text>\n <Text variant=\"body1\">{copy.total_change}</Text>\n {netWorth && (\n <NetWorthChange currencyVariant=\"h1\" iconSize={32} netWorth={netWorth} theme={theme} />\n )}\n </Stack>\n <List>\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.gains}\n </Text>\n <CurrencyText amount={totalGains} sx={{ fontWeight: 400 }} variant=\"caption\" />\n </Stack>\n }\n />\n </ListSubheader>\n {gains?.map((gain) => (\n <React.Fragment key={gain.accountName}>\n <ListItem sx={{ backgroundColor: theme.palette.background.paper, py: 14 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ mr: 10 }} variant=\"body1\">\n {gain.accountName}\n </Text>\n <CurrencyText\n amount={gain.gain}\n sx={{ color: theme.palette.success.main, flexShrink: 0, fontWeight: 700 }}\n variant=\"body1\"\n />\n </Stack>\n }\n sx={{ px: 16 }}\n />\n </ListItem>\n <Divider />\n </React.Fragment>\n ))}\n\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.losses}\n </Text>\n <CurrencyText amount={totalLosses} sx={{ fontWeight: 400 }} variant=\"caption\" />\n </Stack>\n }\n />\n </ListSubheader>\n {losses?.map((loss) => (\n <React.Fragment key={loss.accountName}>\n <ListItem\n sx={{ backgroundColor: theme.palette.background.paper, py: 14 }}\n >\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text\n sx={{\n mr: 10,\n }}\n variant=\"body1\"\n >\n {loss.accountName}\n </Text>\n <CurrencyText\n amount={loss.loss}\n sx={{ flexShrink: 0, fontWeight: 700 }}\n variant=\"body1\"\n />\n </Stack>\n }\n sx={{ px: 16 }}\n />\n </ListItem>\n <Divider />\n </React.Fragment>\n ))}\n </List>\n </>\n )\n}\n\nexport default observer(GainsLossesDetail)\n"],"mappings":"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"}
1
+ {"version":3,"file":"GainsLossesDetail.es.js","names":[],"sources":["../../../src/networth/components/GainsLossesDetail.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemText from '@mui/material/ListItemText'\nimport ListSubheader from '@mui/material/ListSubheader'\nimport Stack from '@mui/material/Stack'\n\nimport { useTheme } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { CurrencyText, useGlobalCopyStore } from '../../common/'\nimport { fromTimestampToMonthYear } from '../../core/utils/DateUtil'\n\nimport { GainsLosses } from '../../core/types/NetWorth'\nimport NetWorthChange from './NetWorthChange'\n\nconst GainsLossesDetail: React.FC<GainsLosses> = ({\n netWorth,\n gains,\n losses,\n totalGains,\n totalLosses,\n}) => {\n const { net_worth: copy } = useGlobalCopyStore()\n\n const theme = useTheme()\n\n return (\n <>\n <Stack alignItems=\"center\" justifyContent=\"space-between\" mb={8} pt={24}>\n <Text variant=\"body2\">{fromTimestampToMonthYear(netWorth?.x)}</Text>\n <Text variant=\"body1\">{copy.total_change}</Text>\n {netWorth && (\n <NetWorthChange currencyVariant=\"h1\" iconSize={32} netWorth={netWorth} theme={theme} />\n )}\n </Stack>\n <List>\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.gains}\n </Text>\n <CurrencyText amount={totalGains} sx={{ fontWeight: 400 }} variant=\"caption\" />\n </Stack>\n }\n />\n </ListSubheader>\n {gains?.map((gain) => (\n <React.Fragment key={gain.accountName}>\n <ListItem sx={{ backgroundColor: theme.palette.background.paper, py: 14 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ mr: 10 }} variant=\"body1\">\n {gain.accountName}\n </Text>\n <CurrencyText\n amount={gain.gain}\n sx={{ color: theme.palette.success.main, flexShrink: 0, fontWeight: 700 }}\n variant=\"body1\"\n />\n </Stack>\n }\n sx={{ px: 16 }}\n />\n </ListItem>\n <Divider />\n </React.Fragment>\n ))}\n\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.losses}\n </Text>\n <CurrencyText amount={totalLosses} sx={{ fontWeight: 400 }} variant=\"caption\" />\n </Stack>\n }\n />\n </ListSubheader>\n {losses?.map((loss) => (\n <React.Fragment key={loss.accountName}>\n <ListItem sx={{ backgroundColor: theme.palette.background.paper, py: 14 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text\n sx={{\n mr: 10,\n }}\n variant=\"body1\"\n >\n {loss.accountName}\n </Text>\n <CurrencyText\n amount={loss.loss}\n sx={{ flexShrink: 0, fontWeight: 700 }}\n variant=\"body1\"\n />\n </Stack>\n }\n sx={{ px: 16 }}\n />\n </ListItem>\n <Divider />\n </React.Fragment>\n ))}\n </List>\n </>\n )\n}\n\nexport default observer(GainsLossesDetail)\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NetWorthChange.es.js","names":[],"sources":["../../../src/networth/components/NetWorthChange.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport { Stack, Theme } from '@mui/material'\nimport { TypographyProps } from '@mui/material/Typography'\nimport { Icon, Text } from '@mxenabled/mxui'\nimport { CurrencyText } from '../../common/components/CurrencyText'\nimport { NetWorth } from '../../core/types/NetWorth'\n\ninterface NetWorthChangeProps {\n netWorth: NetWorth\n currencyVariant?: TypographyProps['variant']\n currencyLabel?: string\n iconSize?: number\n theme: Theme\n}\n\nconst NetWorthChange: React.FC<NetWorthChangeProps> = ({\n currencyLabel,\n currencyVariant = 'body2',\n iconSize,\n netWorth,\n theme,\n}) => {\n let iconColor = theme.palette.secondary.main\n let currencyTextColor = theme.palette.secondary.main\n let iconName = 'trending_flat'\n\n if (netWorth.change < 0) {\n iconName = 'trending_down'\n } else if (netWorth.change > 0) {\n iconColor = theme.palette.success.main\n currencyTextColor = theme.palette.success.main\n iconName = 'trending_up'\n }\n\n return (\n <Stack alignItems=\"center\" direction=\"row\" spacing={4}>\n <Icon\n name={iconName}\n size={iconSize}\n sx={{\n color: iconColor,\n }}\n />\n <CurrencyText amount={netWorth.change} color={currencyTextColor} variant={currencyVariant} />\n <Text variant=\"body2\">{currencyLabel}</Text>\n </Stack>\n )\n}\n\nexport default observer(NetWorthChange)\n"],"mappings":";;;;;AAgBA,IAAM,IAAA,CAAiD,EACrD,eAAA,GACA,iBAAA,IAAkB,SAClB,UAAA,GACA,UAAA,GACA,OAAA,EAAA,MACI;AACJ,MAAI,IAAY,EAAM,QAAQ,UAAU,MACpC,IAAoB,EAAM,QAAQ,UAAU,MAC5C,IAAW;AAEf,SAAI,EAAS,SAAS,IACpB,IAAW,kBACF,EAAS,SAAS,MAC3B,IAAY,EAAM,QAAQ,QAAQ,MAClC,IAAoB,EAAM,QAAQ,QAAQ,MAC1C,IAAW,gBAIX,gBAAA,EAAC,GAAD;AAAA,IAAO,YAAW;AAAA,IAAS,WAAU;AAAA,IAAM,SAAS;AAAA,cAApD;AAAA,MACE,gBAAA,EAAC,GAAD;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,IAAI,EACF,OAAO,EACT;AAAA,MACD,CAAA;AAAA,MACD,gBAAA,EAAC,GAAD;AAAA,QAAc,QAAQ,EAAS;AAAA,QAAQ,OAAO;AAAA,QAAmB,SAAS;AAAA,MAAkB,CAAA;AAAA,MAC5F,gBAAA,EAAC,GAAD;AAAA,QAAM,SAAQ;AAAA,kBAAS;AAAA,MAAoB,CAAA;AAAA,IACtC;AAAA;AAEX,GAEA,IAAe,EAAS,CAAc"}
1
+ {"version":3,"file":"NetWorthChange.es.js","names":[],"sources":["../../../src/networth/components/NetWorthChange.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport { Stack, Theme } from '@mui/material'\nimport { TypographyProps } from '@mui/material/Typography'\nimport { Icon, Text } from '@mxenabled/mxui'\nimport { CurrencyText } from '../../common/components/CurrencyText'\nimport { NetWorth } from '../../core/types/NetWorth'\n\ninterface NetWorthChangeProps {\n netWorth: NetWorth\n currencyVariant?: TypographyProps['variant']\n currencyLabel?: string\n iconSize?: number\n theme: Theme\n}\n\nconst NetWorthChange: React.FC<NetWorthChangeProps> = ({\n currencyLabel,\n currencyVariant = 'body2',\n iconSize,\n netWorth,\n theme,\n}) => {\n let iconColor = theme.palette.secondary.main\n let currencyTextColor = theme.palette.secondary.main\n let iconName = 'trending_flat'\n\n if (netWorth.change < 0) {\n iconName = 'trending_down'\n } else if (netWorth.change > 0) {\n iconColor = theme.palette.success.main\n currencyTextColor = theme.palette.success.main\n iconName = 'trending_up'\n }\n\n return (\n <Stack alignItems=\"center\" direction=\"row\" spacing={4}>\n <Icon\n name={iconName}\n size={iconSize}\n sx={{\n color: iconColor,\n }}\n />\n <CurrencyText amount={netWorth.change} color={currencyTextColor} variant={currencyVariant} />\n <Text variant=\"body2\">{currencyLabel}</Text>\n </Stack>\n )\n}\n\nexport default observer(NetWorthChange)\n"],"mappings":";;;;;AAgBA,IAAM,IAAA,CAAiD,EACrD,eAAA,GACA,iBAAA,IAAkB,SAClB,UAAA,GACA,UAAA,GACA,OAAA,EAAA,MACI;AACJ,MAAI,IAAY,EAAM,QAAQ,UAAU,MACpC,IAAoB,EAAM,QAAQ,UAAU,MAC5C,IAAW;AAEf,SAAI,EAAS,SAAS,IACpB,IAAW,kBACF,EAAS,SAAS,MAC3B,IAAY,EAAM,QAAQ,QAAQ,MAClC,IAAoB,EAAM,QAAQ,QAAQ,MAC1C,IAAW,gBAIX,gBAAA,EAAC,GAAD;AAAA,IAAO,YAAW;AAAA,IAAS,WAAU;AAAA,IAAM,SAAS;AAAA,IAApD,UAAA;AAAA,MACE,gBAAA,EAAC,GAAD;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,IAAI,EACF,OAAO,EACT;AAAA,MACD,CAAA;AAAA,MACD,gBAAA,EAAC,GAAD;AAAA,QAAc,QAAQ,EAAS;AAAA,QAAQ,OAAO;AAAA,QAAmB,SAAS;AAAA,MAAkB,CAAA;AAAA,MAC5F,gBAAA,EAAC,GAAD;AAAA,QAAM,SAAQ;AAAA,QAAS,UAAA;AAAA,MAAoB,CAAA;AAAA,IACtC;AAAA;AAEX,GAEA,IAAe,EAAS,CAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"NetWorthChart.es.js","names":[],"sources":["../../../src/networth/components/NetWorthChart.tsx"],"sourcesContent":["import React from 'react'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { useNetWorthStore, useScreenSize, useWidgetContainerProvider } from '../../common'\nimport { LineChart } from '../../common/components/charts/LineChart'\n\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\n\nconst NetWorthChart = () => {\n const { isMobile } = useScreenSize()\n const { availableWidth } = useWidgetContainerProvider()\n const theme = useTheme()\n const {\n hoveredData,\n netWorthChartData: chartData,\n selectedData,\n setHoveredIndex,\n setSelectedIndex,\n } = useNetWorthStore()\n\n // on mobile, chart is same width as list; on desktop, chart takes up what the list does not\n const chartWidthNotMobile = availableWidth - 320\n\n const datasets = chartData.map((point) => {\n return {\n x: formatDate(fromUnixTime(point.x), DATE_FORMATS_INTL.MONTH_SHORT),\n y: point.y,\n }\n })\n\n const selectedMark = selectedData\n ? { index: chartData.findIndex((point) => point.x === selectedData.x) }\n : undefined\n\n const hoveredMark = hoveredData\n ? { index: chartData.findIndex((point) => point.x === hoveredData.x) }\n : undefined\n\n const getMarkStyles = (markIndex: number) => {\n return {\n fill: markIndex === selectedMark?.index ? theme.palette.success.main : '',\n filter:\n markIndex === hoveredMark?.index\n ? `drop-shadow(0px 0px 10px ${theme.palette.success.main})`\n : 'none',\n stroke: theme.palette.success.main,\n }\n }\n\n const onMarkClick = (_event: React.MouseEvent<SVGPathElement, MouseEvent>, dataIndex: number) => {\n setSelectedIndex(dataIndex)\n }\n\n const onMouseEnter = (dataIndex: number) => {\n setHoveredIndex(dataIndex)\n }\n\n const onMouseLeave = () => {\n setHoveredIndex(-1)\n }\n\n return (\n <Stack sx={{ width: '100%' }}>\n <LineChart\n baseline=\"min\" // causes the area below the line to be shaded\n chartFor={'networthChart'}\n chartXaxisSx={{ '& .MuiChartsAxis-tickLabel': { transform: 'translateX(8px)' } }}\n chartYaxisSx={{ '& .MuiChartsAxis-tickLabel': { transform: 'translateX(-8px)' } }}\n colors={[theme.palette.success.main]}\n datasets={[datasets]}\n height={350}\n labels={[]}\n margin={{ right: 20, left: 38 }}\n markHandlers={{ onMarkClick, onMouseEnter, onMouseLeave }}\n markStyles={getMarkStyles}\n showArea={true}\n useCustomMark={true}\n valueFormatterString=\"0.0[0]a\" // formatting example -'109,000' -> '109k', 1,092,742 → $1.1m, $1,236 → $1.2k\n width={isMobile ? availableWidth - 48 : chartWidthNotMobile}\n />\n </Stack>\n )\n}\n\nexport default observer(NetWorthChart)\n"],"mappings":";;;;;;;;;;AAYA,IAAM,IAAA,MAAsB;AAC1B,QAAM,EAAE,UAAA,EAAA,IAAa,EAAc,GAC7B,EAAE,gBAAA,EAAA,IAAmB,EAA2B,GAChD,IAAQ,EAAS,GACjB,EACJ,aAAA,GACA,mBAAmB,GACnB,cAAA,GACA,iBAAA,GACA,kBAAA,EAAA,IACE,EAAiB,GAGf,IAAsB,IAAiB,KAEvC,IAAW,EAAU,IAAA,CAAK,OACvB;AAAA,IACL,GAAG,EAAW,EAAa,EAAM,CAAC,GAAG,EAAkB,WAAW;AAAA,IAClE,GAAG,EAAM;AAAA,EACX,EACD,GAEK,IAAe,IACjB,EAAE,OAAO,EAAU,UAAA,CAAW,MAAU,EAAM,MAAM,EAAa,CAAC,EAAE,IACpE,QAEE,IAAc,IAChB,EAAE,OAAO,EAAU,UAAA,CAAW,MAAU,EAAM,MAAM,EAAY,CAAC,EAAE,IACnE,QAEE,IAAA,CAAiB,OACd;AAAA,IACL,MAAM,MAAc,GAAc,QAAQ,EAAM,QAAQ,QAAQ,OAAO;AAAA,IACvE,QACE,MAAc,GAAa,QACvB,4BAA4B,EAAM,QAAQ,QAAQ,IAAA,MAClD;AAAA,IACN,QAAQ,EAAM,QAAQ,QAAQ;AAAA,EAChC,IAGI,IAAA,CAAe,GAAsD,MAAsB;AAC/F,IAAA,EAAiB,CAAS;AAAA,EAC5B,GAEM,IAAA,CAAgB,MAAsB;AAC1C,IAAA,EAAgB,CAAS;AAAA,EAC3B,GAEM,IAAA,MAAqB;AACzB,IAAA,EAAgB,EAAE;AAAA,EACpB;AAEA,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI,EAAE,OAAO,OAAO;AAAA,cACzB,gBAAA,EAAC,GAAD;AAAA,MACE,UAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc,EAAE,8BAA8B,EAAE,WAAW,kBAAkB,EAAE;AAAA,MAC/E,cAAc,EAAE,8BAA8B,EAAE,WAAW,mBAAmB,EAAE;AAAA,MAChF,QAAQ,CAAC,EAAM,QAAQ,QAAQ,IAAI;AAAA,MACnC,UAAU,CAAC,CAAQ;AAAA,MACnB,QAAQ;AAAA,MACR,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,QAAE,OAAO;AAAA,QAAI,MAAM;AAAA,MAAG;AAAA,MAC9B,cAAc;AAAA,QAAE,aAAA;AAAA,QAAa,cAAA;AAAA,QAAc,cAAA;AAAA,MAAa;AAAA,MACxD,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,eAAe;AAAA,MACf,sBAAqB;AAAA,MACrB,OAAO,IAAW,IAAiB,KAAK;AAAA,IACzC,CAAA;AAAA,EACI,CAAA;AAEX,GAEA,IAAe,EAAS,CAAa"}
1
+ {"version":3,"file":"NetWorthChart.es.js","names":[],"sources":["../../../src/networth/components/NetWorthChart.tsx"],"sourcesContent":["import React from 'react'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { useNetWorthStore, useScreenSize, useWidgetContainerProvider } from '../../common'\nimport { LineChart } from '../../common/components/charts/LineChart'\n\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\n\nconst NetWorthChart = () => {\n const { isMobile } = useScreenSize()\n const { availableWidth } = useWidgetContainerProvider()\n const theme = useTheme()\n const {\n hoveredData,\n netWorthChartData: chartData,\n selectedData,\n setHoveredIndex,\n setSelectedIndex,\n } = useNetWorthStore()\n\n // on mobile, chart is same width as list; on desktop, chart takes up what the list does not\n const chartWidthNotMobile = availableWidth - 320\n\n const datasets = chartData.map((point) => {\n return {\n x: formatDate(fromUnixTime(point.x), DATE_FORMATS_INTL.MONTH_SHORT),\n y: point.y,\n }\n })\n\n const selectedMark = selectedData\n ? { index: chartData.findIndex((point) => point.x === selectedData.x) }\n : undefined\n\n const hoveredMark = hoveredData\n ? { index: chartData.findIndex((point) => point.x === hoveredData.x) }\n : undefined\n\n const getMarkStyles = (markIndex: number) => {\n return {\n fill: markIndex === selectedMark?.index ? theme.palette.success.main : '',\n filter:\n markIndex === hoveredMark?.index\n ? `drop-shadow(0px 0px 10px ${theme.palette.success.main})`\n : 'none',\n stroke: theme.palette.success.main,\n }\n }\n\n const onMarkClick = (_event: React.MouseEvent<SVGPathElement, MouseEvent>, dataIndex: number) => {\n setSelectedIndex(dataIndex)\n }\n\n const onMouseEnter = (dataIndex: number) => {\n setHoveredIndex(dataIndex)\n }\n\n const onMouseLeave = () => {\n setHoveredIndex(-1)\n }\n\n return (\n <Stack sx={{ width: '100%' }}>\n <LineChart\n baseline=\"min\" // causes the area below the line to be shaded\n chartFor={'networthChart'}\n chartXaxisSx={{ '& .MuiChartsAxis-tickLabel': { transform: 'translateX(8px)' } }}\n chartYaxisSx={{ '& .MuiChartsAxis-tickLabel': { transform: 'translateX(-8px)' } }}\n colors={[theme.palette.success.main]}\n datasets={[datasets]}\n height={350}\n labels={[]}\n margin={{ right: 20, left: 38 }}\n markHandlers={{ onMarkClick, onMouseEnter, onMouseLeave }}\n markStyles={getMarkStyles}\n showArea={true}\n useCustomMark={true}\n valueFormatterString=\"0.0[0]a\" // formatting example -'109,000' -> '109k', 1,092,742 → $1.1m, $1,236 → $1.2k\n width={isMobile ? availableWidth - 48 : chartWidthNotMobile}\n />\n </Stack>\n )\n}\n\nexport default observer(NetWorthChart)\n"],"mappings":";;;;;;;;;;AAYA,IAAM,IAAA,MAAsB;AAC1B,QAAM,EAAE,UAAA,EAAA,IAAa,EAAc,GAC7B,EAAE,gBAAA,EAAA,IAAmB,EAA2B,GAChD,IAAQ,EAAS,GACjB,EACJ,aAAA,GACA,mBAAmB,GACnB,cAAA,GACA,iBAAA,GACA,kBAAA,EAAA,IACE,EAAiB,GAGf,IAAsB,IAAiB,KAEvC,IAAW,EAAU,IAAA,CAAK,OACvB;AAAA,IACL,GAAG,EAAW,EAAa,EAAM,CAAC,GAAG,EAAkB,WAAW;AAAA,IAClE,GAAG,EAAM;AAAA,EACX,EACD,GAEK,IAAe,IACjB,EAAE,OAAO,EAAU,UAAA,CAAW,MAAU,EAAM,MAAM,EAAa,CAAC,EAAE,IACpE,QAEE,IAAc,IAChB,EAAE,OAAO,EAAU,UAAA,CAAW,MAAU,EAAM,MAAM,EAAY,CAAC,EAAE,IACnE,QAEE,IAAA,CAAiB,OACd;AAAA,IACL,MAAM,MAAc,GAAc,QAAQ,EAAM,QAAQ,QAAQ,OAAO;AAAA,IACvE,QACE,MAAc,GAAa,QACvB,4BAA4B,EAAM,QAAQ,QAAQ,IAAA,MAClD;AAAA,IACN,QAAQ,EAAM,QAAQ,QAAQ;AAAA,EAChC,IAGI,IAAA,CAAe,GAAsD,MAAsB;AAC/F,IAAA,EAAiB,CAAS;AAAA,EAC5B,GAEM,IAAA,CAAgB,MAAsB;AAC1C,IAAA,EAAgB,CAAS;AAAA,EAC3B,GAEM,IAAA,MAAqB;AACzB,IAAA,EAAgB,EAAE;AAAA,EACpB;AAEA,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI,EAAE,OAAO,OAAO;AAAA,IACzB,UAAA,gBAAA,EAAC,GAAD;AAAA,MACE,UAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc,EAAE,8BAA8B,EAAE,WAAW,kBAAkB,EAAE;AAAA,MAC/E,cAAc,EAAE,8BAA8B,EAAE,WAAW,mBAAmB,EAAE;AAAA,MAChF,QAAQ,CAAC,EAAM,QAAQ,QAAQ,IAAI;AAAA,MACnC,UAAU,CAAC,CAAQ;AAAA,MACnB,QAAQ;AAAA,MACR,QAAQ,CAAC;AAAA,MACT,QAAQ;AAAA,QAAE,OAAO;AAAA,QAAI,MAAM;AAAA,MAAG;AAAA,MAC9B,cAAc;AAAA,QAAE,aAAA;AAAA,QAAa,cAAA;AAAA,QAAc,cAAA;AAAA,MAAa;AAAA,MACxD,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,eAAe;AAAA,MACf,sBAAqB;AAAA,MACrB,OAAO,IAAW,IAAiB,KAAK;AAAA,IACzC,CAAA;AAAA,EACI,CAAA;AAEX,GAEA,IAAe,EAAS,CAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"NetWorthList.es.js","names":[],"sources":["../../../src/networth/components/NetWorthList.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Button from '@mui/material/Button'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListSubheader from '@mui/material/ListSubheader'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport {\n ANALYTICS_EVENTS,\n Drawer,\n useEvent,\n useGlobalCopyStore,\n useNetWorthStore,\n} from '../../common'\n\nimport type { NetWorth } from '../../core/types/NetWorth'\n\nimport NetWorthListItem from './NetWorthListItem'\nimport GainsLossesDetail from './GainsLossesDetail'\nimport AssetsLiabilitiesDetail from './AssetsLiabilitiesDetail'\n\nconst NetWorthList = () => {\n const { net_worth: copy } = useGlobalCopyStore()\n const theme = useTheme()\n const { onEvent } = useEvent()\n\n const {\n assetsLiabilities,\n gainsLosses,\n hoveredData,\n netWorthChartData: chartData,\n selectedData,\n setHoveredIndex,\n setSelectedIndex,\n } = useNetWorthStore()\n\n const [isGlDrawerOpen, setIsGlDrawerOpen] = React.useState(false)\n const [isAlDrawerOpen, setIsAlDrawerOpen] = React.useState(false)\n\n const buildStyles = (lineItem: NetWorth) => {\n const isHovered = lineItem.x === hoveredData?.x\n const isSelected = lineItem.x === selectedData?.x\n\n const listItemStyles = {\n backgroundColor: 'inherit',\n borderBottom: 'inherit',\n color: 'inherit',\n }\n\n if (isHovered) {\n listItemStyles.color = isSelected ? 'inherit' : listItemStyles.color\n listItemStyles.backgroundColor = theme.palette.action.hover\n }\n\n if (isSelected) {\n listItemStyles.backgroundColor = theme.palette.primary.main\n listItemStyles.borderBottom = theme.palette.neutral.light\n listItemStyles.color = theme.palette.common.white\n }\n\n return listItemStyles\n }\n\n const handleListItemClick = (\n event: React.MouseEvent<SVGPathElement | HTMLDivElement, MouseEvent>,\n dataIndex: number,\n ) => {\n setSelectedIndex(dataIndex)\n if (event.currentTarget instanceof HTMLDivElement) {\n setIsGlDrawerOpen(true)\n }\n }\n\n const handleOpenALDrawer = () => {\n setIsAlDrawerOpen(true)\n onEvent(ANALYTICS_EVENTS.NET_WORTH_WIDGET_CLICK_ASSETS_LIABILITIES)\n }\n\n const handleMouseEnter = (dataIndex: number) => {\n setHoveredIndex(dataIndex)\n }\n\n const handleMouseLeave = () => {\n setHoveredIndex(-1)\n }\n\n return (\n <Stack direction=\"column\" sx={{ width: 320 }}>\n <List>\n <ListSubheader sx={{ backgroundColor: 'transparent', mb: 8, mt: 12, px: 12 }}>\n <Text bold={true} component=\"h2\" variant=\"body1\">\n {copy.monthly_totals}\n </Text>\n </ListSubheader>\n <Divider />\n {chartData.map((dataPoint: NetWorth, index: number) => {\n return (\n <NetWorthListItem\n getStyles={buildStyles}\n isHovered={dataPoint.x === hoveredData?.x}\n isSelected={dataPoint.x === selectedData?.x}\n item={dataPoint}\n key={dataPoint.x}\n onItemClick={(event) => handleListItemClick(event, index)}\n onMouseEnter={() => handleMouseEnter(index)}\n onMouseLeave={() => handleMouseLeave()}\n />\n )\n })}\n </List>\n <Button\n onClick={() => handleOpenALDrawer()}\n sx={{ alignSelf: 'center', marginTop: 16, width: 'fit-content' }}\n variant=\"outlined\"\n >\n {copy.view_assets_and_liabilities}\n </Button>\n\n <Drawer\n ariaLabelClose={'Close'}\n isOpen={isGlDrawerOpen}\n onClose={() => setIsGlDrawerOpen(false)}\n shouldShowHeaderBorders={false}\n shouldShowHeaderShadow={true}\n title={copy.gains_and_losses}\n >\n {gainsLosses && <GainsLossesDetail {...gainsLosses} />}\n </Drawer>\n <Drawer\n ariaLabelClose={'Close'}\n isOpen={isAlDrawerOpen}\n onClose={() => setIsAlDrawerOpen(false)}\n shouldShowHeaderBorders={false}\n shouldShowHeaderShadow={true}\n title={copy.assets_and_liabilities}\n >\n {assetsLiabilities && <AssetsLiabilitiesDetail {...assetsLiabilities} />}\n </Drawer>\n </Stack>\n )\n}\n\nexport default observer(NetWorthList)\n"],"mappings":"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"}
1
+ {"version":3,"file":"NetWorthList.es.js","names":[],"sources":["../../../src/networth/components/NetWorthList.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Button from '@mui/material/Button'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListSubheader from '@mui/material/ListSubheader'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport {\n ANALYTICS_EVENTS,\n Drawer,\n useEvent,\n useGlobalCopyStore,\n useNetWorthStore,\n} from '../../common'\n\nimport type { NetWorth } from '../../core/types/NetWorth'\n\nimport NetWorthListItem from './NetWorthListItem'\nimport GainsLossesDetail from './GainsLossesDetail'\nimport AssetsLiabilitiesDetail from './AssetsLiabilitiesDetail'\n\nconst NetWorthList = () => {\n const { net_worth: copy } = useGlobalCopyStore()\n const theme = useTheme()\n const { onEvent } = useEvent()\n\n const {\n assetsLiabilities,\n gainsLosses,\n hoveredData,\n netWorthChartData: chartData,\n selectedData,\n setHoveredIndex,\n setSelectedIndex,\n } = useNetWorthStore()\n\n const [isGlDrawerOpen, setIsGlDrawerOpen] = React.useState(false)\n const [isAlDrawerOpen, setIsAlDrawerOpen] = React.useState(false)\n\n const buildStyles = (lineItem: NetWorth) => {\n const isHovered = lineItem.x === hoveredData?.x\n const isSelected = lineItem.x === selectedData?.x\n\n const listItemStyles = {\n backgroundColor: 'inherit',\n borderBottom: 'inherit',\n color: 'inherit',\n }\n\n if (isHovered) {\n listItemStyles.color = isSelected ? 'inherit' : listItemStyles.color\n listItemStyles.backgroundColor = theme.palette.action.hover\n }\n\n if (isSelected) {\n listItemStyles.backgroundColor = theme.palette.primary.main\n listItemStyles.borderBottom = theme.palette.neutral.light\n listItemStyles.color = theme.palette.common.white\n }\n\n return listItemStyles\n }\n\n const handleListItemClick = (\n event: React.MouseEvent<SVGPathElement | HTMLDivElement, MouseEvent>,\n dataIndex: number,\n ) => {\n setSelectedIndex(dataIndex)\n if (event.currentTarget instanceof HTMLDivElement) {\n setIsGlDrawerOpen(true)\n }\n }\n\n const handleOpenALDrawer = () => {\n setIsAlDrawerOpen(true)\n onEvent(ANALYTICS_EVENTS.NET_WORTH_WIDGET_CLICK_ASSETS_LIABILITIES)\n }\n\n const handleMouseEnter = (dataIndex: number) => {\n setHoveredIndex(dataIndex)\n }\n\n const handleMouseLeave = () => {\n setHoveredIndex(-1)\n }\n\n return (\n <Stack direction=\"column\" sx={{ width: 320 }}>\n <List>\n <ListSubheader sx={{ backgroundColor: 'transparent', mb: 8, mt: 12, px: 12 }}>\n <Text bold={true} component=\"h2\" variant=\"body1\">\n {copy.monthly_totals}\n </Text>\n </ListSubheader>\n <Divider />\n {chartData.map((dataPoint: NetWorth, index: number) => {\n return (\n <NetWorthListItem\n getStyles={buildStyles}\n isHovered={dataPoint.x === hoveredData?.x}\n isSelected={dataPoint.x === selectedData?.x}\n item={dataPoint}\n key={dataPoint.x}\n onItemClick={(event) => handleListItemClick(event, index)}\n onMouseEnter={() => handleMouseEnter(index)}\n onMouseLeave={() => handleMouseLeave()}\n />\n )\n })}\n </List>\n <Button\n onClick={() => handleOpenALDrawer()}\n sx={{ alignSelf: 'center', marginTop: 16, width: 'fit-content' }}\n variant=\"outlined\"\n >\n {copy.view_assets_and_liabilities}\n </Button>\n\n <Drawer\n ariaLabelClose={'Close'}\n isOpen={isGlDrawerOpen}\n onClose={() => setIsGlDrawerOpen(false)}\n shouldShowHeaderBorders={false}\n shouldShowHeaderShadow={true}\n title={copy.gains_and_losses}\n >\n {gainsLosses && <GainsLossesDetail {...gainsLosses} />}\n </Drawer>\n <Drawer\n ariaLabelClose={'Close'}\n isOpen={isAlDrawerOpen}\n onClose={() => setIsAlDrawerOpen(false)}\n shouldShowHeaderBorders={false}\n shouldShowHeaderShadow={true}\n title={copy.assets_and_liabilities}\n >\n {assetsLiabilities && <AssetsLiabilitiesDetail {...assetsLiabilities} />}\n </Drawer>\n </Stack>\n )\n}\n\nexport default observer(NetWorthList)\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NetWorthListItem.es.js","names":[],"sources":["../../../src/networth/components/NetWorthListItem.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Divider from '@mui/material/Divider'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { CurrencyText } from '../../common/'\n\nimport { fromTimestampToMonthYear } from '../../core/utils/DateUtil'\n\nimport { NetWorth } from '../../core/types/NetWorth'\n\ninterface NetWorthListItemProps {\n item: NetWorth\n getStyles: (item: NetWorth) => { backgroundColor: string; borderBottom: string; color: string }\n isHovered: boolean\n isSelected: boolean\n onItemClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>, dataIndex: number) => void\n onMouseEnter: (dataIndex: number) => void\n onMouseLeave: () => void\n}\n\nconst NetWorthListItem: React.FC<NetWorthListItemProps> = ({\n item: dataPoint,\n getStyles,\n isHovered = false,\n isSelected = false,\n onItemClick,\n onMouseEnter,\n onMouseLeave,\n}) => {\n const [listItemStyles, setListItemStyles] = React.useState({\n color: '',\n })\n\n React.useEffect(() => {\n setListItemStyles(getStyles(dataPoint))\n }, [isHovered, isSelected])\n\n return (\n <React.Fragment key={dataPoint.x}>\n <ListItem\n sx={{\n ...listItemStyles,\n minHeight: 44,\n '&:hover': { color: isSelected ? 'inherit' : listItemStyles.color },\n }}\n >\n <ListItemButton\n onClick={(event) => onItemClick?.(event, dataPoint.x)}\n onMouseEnter={() => onMouseEnter(dataPoint.x)}\n onMouseLeave={() => onMouseLeave()}\n sx={{ minHeight: 20, padding: 12 }}\n >\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\" sx={{ fontWeight: 400 }}>\n <Text variant=\"body1\">{fromTimestampToMonthYear(dataPoint.x)}</Text>\n <CurrencyText amount={dataPoint.y} sx={{ color: 'inherit' }} variant=\"body1\" />\n </Stack>\n }\n />\n </ListItemButton>\n </ListItem>\n <Divider />\n </React.Fragment>\n )\n}\n\nexport default observer(NetWorthListItem)\n"],"mappings":";;;;;;;;;;;AA2BA,IAAM,IAAA,CAAqD,EACzD,MAAM,GACN,WAAA,GACA,WAAA,IAAY,IACZ,YAAA,IAAa,IACb,aAAA,GACA,cAAA,GACA,cAAA,EAAA,MACI;AACJ,QAAM,CAAC,GAAgB,CAAA,IAAqB,EAAM,SAAS,EACzD,OAAO,GACT,CAAC;AAED,SAAA,EAAM,UAAA,MAAgB;AACpB,IAAA,EAAkB,EAAU,CAAS,CAAC;AAAA,EACxC,GAAG,CAAC,GAAW,CAAU,CAAC,GAGxB,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,GAAG;AAAA,MACH,WAAW;AAAA,MACX,WAAW,EAAE,OAAO,IAAa,YAAY,EAAe,MAAM;AAAA,IACpE;AAAA,cAEA,gBAAA,EAAC,GAAD;AAAA,MACE,SAAA,CAAU,MAAU,IAAc,GAAO,EAAU,CAAC;AAAA,MACpD,cAAA,MAAoB,EAAa,EAAU,CAAC;AAAA,MAC5C,cAAA,MAAoB,EAAa;AAAA,MACjC,IAAI;AAAA,QAAE,WAAW;AAAA,QAAI,SAAS;AAAA,MAAG;AAAA,gBAEjC,gBAAA,EAAC,GAAD,EACE,SACE,gBAAA,EAAC,GAAD;AAAA,QAAO,WAAU;AAAA,QAAM,gBAAe;AAAA,QAAgB,IAAI,EAAE,YAAY,IAAI;AAAA,kBAA5E,CACE,gBAAA,EAAC,GAAD;AAAA,UAAM,SAAQ;AAAA,oBAAS,EAAyB,EAAU,CAAC;AAAA,QAAQ,CAAA,GACnE,gBAAA,EAAC,GAAD;AAAA,UAAc,QAAQ,EAAU;AAAA,UAAG,IAAI,EAAE,OAAO,UAAU;AAAA,UAAG,SAAQ;AAAA,QAAS,CAAA,CACzE;AAAA,SAEV,CAAA;AAAA,IACa,CAAA;AAAA,EACR,CAAA,GACV,gBAAA,EAAC,GAAD,CAAU,CAAA,CACI,EAAA,GAzBK,EAAU,CAyBf;AAEpB,GAEA,IAAe,EAAS,CAAgB"}
1
+ {"version":3,"file":"NetWorthListItem.es.js","names":[],"sources":["../../../src/networth/components/NetWorthListItem.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Divider from '@mui/material/Divider'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { CurrencyText } from '../../common/'\n\nimport { fromTimestampToMonthYear } from '../../core/utils/DateUtil'\n\nimport { NetWorth } from '../../core/types/NetWorth'\n\ninterface NetWorthListItemProps {\n item: NetWorth\n getStyles: (item: NetWorth) => { backgroundColor: string; borderBottom: string; color: string }\n isHovered: boolean\n isSelected: boolean\n onItemClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>, dataIndex: number) => void\n onMouseEnter: (dataIndex: number) => void\n onMouseLeave: () => void\n}\n\nconst NetWorthListItem: React.FC<NetWorthListItemProps> = ({\n item: dataPoint,\n getStyles,\n isHovered = false,\n isSelected = false,\n onItemClick,\n onMouseEnter,\n onMouseLeave,\n}) => {\n const [listItemStyles, setListItemStyles] = React.useState({\n color: '',\n })\n\n React.useEffect(() => {\n setListItemStyles(getStyles(dataPoint))\n }, [isHovered, isSelected])\n\n return (\n <React.Fragment key={dataPoint.x}>\n <ListItem\n sx={{\n ...listItemStyles,\n minHeight: 44,\n '&:hover': { color: isSelected ? 'inherit' : listItemStyles.color },\n }}\n >\n <ListItemButton\n onClick={(event) => onItemClick?.(event, dataPoint.x)}\n onMouseEnter={() => onMouseEnter(dataPoint.x)}\n onMouseLeave={() => onMouseLeave()}\n sx={{ minHeight: 20, padding: 12 }}\n >\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\" sx={{ fontWeight: 400 }}>\n <Text variant=\"body1\">{fromTimestampToMonthYear(dataPoint.x)}</Text>\n <CurrencyText amount={dataPoint.y} sx={{ color: 'inherit' }} variant=\"body1\" />\n </Stack>\n }\n />\n </ListItemButton>\n </ListItem>\n <Divider />\n </React.Fragment>\n )\n}\n\nexport default observer(NetWorthListItem)\n"],"mappings":";;;;;;;;;;;AA2BA,IAAM,IAAA,CAAqD,EACzD,MAAM,GACN,WAAA,GACA,WAAA,IAAY,IACZ,YAAA,IAAa,IACb,aAAA,GACA,cAAA,GACA,cAAA,EAAA,MACI;AACJ,QAAM,CAAC,GAAgB,CAAA,IAAqB,EAAM,SAAS,EACzD,OAAO,GACT,CAAC;AAED,SAAA,EAAM,UAAA,MAAgB;AACpB,IAAA,EAAkB,EAAU,CAAS,CAAC;AAAA,EACxC,GAAG,CAAC,GAAW,CAAU,CAAC,GAGxB,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,GAAG;AAAA,MACH,WAAW;AAAA,MACX,WAAW,EAAE,OAAO,IAAa,YAAY,EAAe,MAAM;AAAA,IACpE;AAAA,IAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,MACE,SAAA,CAAU,MAAU,IAAc,GAAO,EAAU,CAAC;AAAA,MACpD,cAAA,MAAoB,EAAa,EAAU,CAAC;AAAA,MAC5C,cAAA,MAAoB,EAAa;AAAA,MACjC,IAAI;AAAA,QAAE,WAAW;AAAA,QAAI,SAAS;AAAA,MAAG;AAAA,MAEjC,UAAA,gBAAA,EAAC,GAAD,EACE,SACE,gBAAA,EAAC,GAAD;AAAA,QAAO,WAAU;AAAA,QAAM,gBAAe;AAAA,QAAgB,IAAI,EAAE,YAAY,IAAI;AAAA,QAA5E,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,UAAM,SAAQ;AAAA,UAAS,UAAA,EAAyB,EAAU,CAAC;AAAA,QAAQ,CAAA,GACnE,gBAAA,EAAC,GAAD;AAAA,UAAc,QAAQ,EAAU;AAAA,UAAG,IAAI,EAAE,OAAO,UAAU;AAAA,UAAG,SAAQ;AAAA,QAAS,CAAA,CACzE;AAAA,MAEV,CAAA,EAAA,CAAA;AAAA,IACa,CAAA;AAAA,EACR,CAAA,GACV,gBAAA,EAAC,GAAD,CAAU,CAAA,CACI,EAAA,GAzBK,EAAU,CAyBf;AAEpB,GAEA,IAAe,EAAS,CAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"NetWorthSummary.es.js","names":[],"sources":["../../../src/networth/components/NetWorthSummary.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport { fromUnixTime, format } from 'date-fns'\n\nimport { useTheme } from '@mui/material/styles'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { CurrencyText, useGlobalCopyStore } from '../../common/'\nimport NetWorthChange from './NetWorthChange'\nimport { NetWorth } from '../../core/types/NetWorth'\n\ninterface NetWorthSummaryProps {\n hoveredData?: NetWorth\n selectedData: NetWorth\n}\n\nconst NetWorthSummary: React.FC<NetWorthSummaryProps> = ({ hoveredData, selectedData }) => {\n const { net_worth: copy } = useGlobalCopyStore()\n const theme = useTheme()\n const summary = hoveredData ? hoveredData : selectedData\n\n const formattedMonth = format(fromUnixTime(summary.x), 'MMMM')\n\n return (\n <Stack alignItems=\"center\" direction=\"column\" m={24}>\n <Text color={theme.palette.secondary.main} variant=\"body2\">\n {`${formattedMonth} ${copy.net_worth}`}\n </Text>\n <CurrencyText amount={summary.y} variant=\"h2\" />\n <NetWorthChange currencyLabel={copy.this_month} netWorth={summary} theme={theme} />\n </Stack>\n )\n}\n\nexport default observer(NetWorthSummary)\n"],"mappings":";;;;;;;;;AAiBA,IAAM,IAAA,CAAmD,EAAE,aAAA,GAAa,cAAA,EAAA,MAAmB;AACzF,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,IAAQ,EAAS,GACjB,IAAU,KAA4B,GAEtC,IAAiB,EAAO,EAAa,EAAQ,CAAC,GAAG,MAAM;AAE7D,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,YAAW;AAAA,IAAS,WAAU;AAAA,IAAS,GAAG;AAAA,cAAjD;AAAA,MACE,gBAAA,EAAC,GAAD;AAAA,QAAM,OAAO,EAAM,QAAQ,UAAU;AAAA,QAAM,SAAQ;AAAA,kBAChD,GAAG,CAAA,IAAkB,EAAK,SAAA;AAAA,MACvB,CAAA;AAAA,MACN,gBAAA,EAAC,GAAD;AAAA,QAAc,QAAQ,EAAQ;AAAA,QAAG,SAAQ;AAAA,MAAM,CAAA;AAAA,MAC/C,gBAAA,EAAC,GAAD;AAAA,QAAgB,eAAe,EAAK;AAAA,QAAY,UAAU;AAAA,QAAgB,OAAA;AAAA,MAAQ,CAAA;AAAA,IAC7E;AAAA;AAEX,GAEA,IAAe,EAAS,CAAe"}
1
+ {"version":3,"file":"NetWorthSummary.es.js","names":[],"sources":["../../../src/networth/components/NetWorthSummary.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport { fromUnixTime, format } from 'date-fns'\n\nimport { useTheme } from '@mui/material/styles'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { CurrencyText, useGlobalCopyStore } from '../../common/'\nimport NetWorthChange from './NetWorthChange'\nimport { NetWorth } from '../../core/types/NetWorth'\n\ninterface NetWorthSummaryProps {\n hoveredData?: NetWorth\n selectedData: NetWorth\n}\n\nconst NetWorthSummary: React.FC<NetWorthSummaryProps> = ({ hoveredData, selectedData }) => {\n const { net_worth: copy } = useGlobalCopyStore()\n const theme = useTheme()\n const summary = hoveredData ? hoveredData : selectedData\n\n const formattedMonth = format(fromUnixTime(summary.x), 'MMMM')\n\n return (\n <Stack alignItems=\"center\" direction=\"column\" m={24}>\n <Text color={theme.palette.secondary.main} variant=\"body2\">\n {`${formattedMonth} ${copy.net_worth}`}\n </Text>\n <CurrencyText amount={summary.y} variant=\"h2\" />\n <NetWorthChange currencyLabel={copy.this_month} netWorth={summary} theme={theme} />\n </Stack>\n )\n}\n\nexport default observer(NetWorthSummary)\n"],"mappings":";;;;;;;;;AAiBA,IAAM,IAAA,CAAmD,EAAE,aAAA,GAAa,cAAA,EAAA,MAAmB;AACzF,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,IAAQ,EAAS,GACjB,IAAU,KAA4B,GAEtC,IAAiB,EAAO,EAAa,EAAQ,CAAC,GAAG,MAAM;AAE7D,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,YAAW;AAAA,IAAS,WAAU;AAAA,IAAS,GAAG;AAAA,IAAjD,UAAA;AAAA,MACE,gBAAA,EAAC,GAAD;AAAA,QAAM,OAAO,EAAM,QAAQ,UAAU;AAAA,QAAM,SAAQ;AAAA,QAChD,UAAA,GAAG,CAAA,IAAkB,EAAK,SAAA;AAAA,MACvB,CAAA;AAAA,MACN,gBAAA,EAAC,GAAD;AAAA,QAAc,QAAQ,EAAQ;AAAA,QAAG,SAAQ;AAAA,MAAM,CAAA;AAAA,MAC/C,gBAAA,EAAC,GAAD;AAAA,QAAgB,eAAe,EAAK;AAAA,QAAY,UAAU;AAAA,QAAgB,OAAA;AAAA,MAAQ,CAAA;AAAA,IAC7E;AAAA;AAEX,GAEA,IAAe,EAAS,CAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"NetworthData.es.js","names":[],"sources":["../../../../src/networth/components/micro/NetworthData.tsx"],"sourcesContent":["import Stack from '@mui/material/Stack'\n\nimport { P, Text } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport { NetWorthCopy } from '../../../core'\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\n\ninterface NetworthDataProps {\n amount: number\n copy: NetWorthCopy\n trendValue: number\n}\n\nconst NetworthData = ({ amount, copy, trendValue }: NetworthDataProps) => {\n const isTrendUp = trendValue > 0\n const trendDirectionIcon = isTrendUp ? 'trending_up' : 'trending_down'\n const trendIcon = trendValue === 0 ? 'trending_flat' : trendDirectionIcon\n\n return (\n <Stack sx={{ flexDirection: 'row', justifyContent: 'space-between' }}>\n <P variant=\"h1\">{formatCurrency(amount, '0,0')}</P>\n {amount !== 0 && (\n <Stack sx={{ color: isTrendUp ? 'success.main' : 'text.secondary' }}>\n <Stack sx={{ flexDirection: 'row', gap: 8 }}>\n <Icon name={trendIcon} size={20} />\n <Text sx={{ fontWeight: 600, textAlign: 'right' }} variant=\"body1\">\n {formatCurrency(trendValue, '0,0.00')}\n </Text>\n </Stack>\n <Text sx={{ display: 'block', textAlign: 'right' }} variant=\"caption\">\n {copy.this_month}\n </Text>\n </Stack>\n )}\n </Stack>\n )\n}\n\nexport default NetworthData\n"],"mappings":";;;;;AAcA,IAAM,IAAA,CAAgB,EAAE,QAAA,GAAQ,MAAA,GAAM,YAAA,EAAA,MAAoC;AACxE,QAAM,IAAY,IAAa,GAEzB,IAAY,MAAe,IAAI,kBADV,IAAY,gBAAgB;AAGvD,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI;AAAA,MAAE,eAAe;AAAA,MAAO,gBAAgB;AAAA,IAAgB;AAAA,cAAnE,CACE,gBAAA,EAAC,GAAD;AAAA,MAAG,SAAQ;AAAA,gBAAM,EAAe,GAAQ,KAAK;AAAA,IAAK,CAAA,GACjD,MAAW,KACV,gBAAA,EAAC,GAAD;AAAA,MAAO,IAAI,EAAE,OAAO,IAAY,iBAAiB,iBAAiB;AAAA,gBAAlE,CACE,gBAAA,EAAC,GAAD;AAAA,QAAO,IAAI;AAAA,UAAE,eAAe;AAAA,UAAO,KAAK;AAAA,QAAE;AAAA,kBAA1C,CACE,gBAAA,EAAC,GAAD;AAAA,UAAM,MAAM;AAAA,UAAW,MAAM;AAAA,QAAK,CAAA,GAClC,gBAAA,EAAC,GAAD;AAAA,UAAM,IAAI;AAAA,YAAE,YAAY;AAAA,YAAK,WAAW;AAAA,UAAQ;AAAA,UAAG,SAAQ;AAAA,oBACxD,EAAe,GAAY,QAAQ;AAAA,QAChC,CAAA,CACD;AAAA,UACP,gBAAA,EAAC,GAAD;AAAA,QAAM,IAAI;AAAA,UAAE,SAAS;AAAA,UAAS,WAAW;AAAA,QAAQ;AAAA,QAAG,SAAQ;AAAA,kBACzD,EAAK;AAAA,MACF,CAAA,CACD;AAAA,MAEJ;AAAA;AAEX"}
1
+ {"version":3,"file":"NetworthData.es.js","names":[],"sources":["../../../../src/networth/components/micro/NetworthData.tsx"],"sourcesContent":["import Stack from '@mui/material/Stack'\n\nimport { P, Text } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport { NetWorthCopy } from '../../../core'\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\n\ninterface NetworthDataProps {\n amount: number\n copy: NetWorthCopy\n trendValue: number\n}\n\nconst NetworthData = ({ amount, copy, trendValue }: NetworthDataProps) => {\n const isTrendUp = trendValue > 0\n const trendDirectionIcon = isTrendUp ? 'trending_up' : 'trending_down'\n const trendIcon = trendValue === 0 ? 'trending_flat' : trendDirectionIcon\n\n return (\n <Stack sx={{ flexDirection: 'row', justifyContent: 'space-between' }}>\n <P variant=\"h1\">{formatCurrency(amount, '0,0')}</P>\n {amount !== 0 && (\n <Stack sx={{ color: isTrendUp ? 'success.main' : 'text.secondary' }}>\n <Stack sx={{ flexDirection: 'row', gap: 8 }}>\n <Icon name={trendIcon} size={20} />\n <Text sx={{ fontWeight: 600, textAlign: 'right' }} variant=\"body1\">\n {formatCurrency(trendValue, '0,0.00')}\n </Text>\n </Stack>\n <Text sx={{ display: 'block', textAlign: 'right' }} variant=\"caption\">\n {copy.this_month}\n </Text>\n </Stack>\n )}\n </Stack>\n )\n}\n\nexport default NetworthData\n"],"mappings":";;;;;AAcA,IAAM,IAAA,CAAgB,EAAE,QAAA,GAAQ,MAAA,GAAM,YAAA,EAAA,MAAoC;AACxE,QAAM,IAAY,IAAa,GAEzB,IAAY,MAAe,IAAI,kBADV,IAAY,gBAAgB;AAGvD,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI;AAAA,MAAE,eAAe;AAAA,MAAO,gBAAgB;AAAA,IAAgB;AAAA,IAAnE,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,MAAG,SAAQ;AAAA,MAAM,UAAA,EAAe,GAAQ,KAAK;AAAA,IAAK,CAAA,GACjD,MAAW,KACV,gBAAA,EAAC,GAAD;AAAA,MAAO,IAAI,EAAE,OAAO,IAAY,iBAAiB,iBAAiB;AAAA,MAAlE,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,QAAO,IAAI;AAAA,UAAE,eAAe;AAAA,UAAO,KAAK;AAAA,QAAE;AAAA,QAA1C,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,UAAM,MAAM;AAAA,UAAW,MAAM;AAAA,QAAK,CAAA,GAClC,gBAAA,EAAC,GAAD;AAAA,UAAM,IAAI;AAAA,YAAE,YAAY;AAAA,YAAK,WAAW;AAAA,UAAQ;AAAA,UAAG,SAAQ;AAAA,UACxD,UAAA,EAAe,GAAY,QAAQ;AAAA,QAChC,CAAA,CACD;AAAA,MACP,CAAA,GAAA,gBAAA,EAAC,GAAD;AAAA,QAAM,IAAI;AAAA,UAAE,SAAS;AAAA,UAAS,WAAW;AAAA,QAAQ;AAAA,QAAG,SAAQ;AAAA,QACzD,UAAA,EAAK;AAAA,MACF,CAAA,CACD;AAAA,IAEJ,CAAA,CAAA;AAAA;AAEX"}
@@ -1 +1 @@
1
- {"version":3,"file":"ZeroState.es.js","names":[],"sources":["../../../../src/networth/components/micro/ZeroState.tsx"],"sourcesContent":["import Stack from '@mui/material/Stack'\n\nimport { P, Text } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport { NetWorthCopy } from '../../../core'\n\ninterface ZeroStateProps {\n copy: NetWorthCopy\n}\n\nconst ZeroState = ({ copy }: ZeroStateProps) => {\n return (\n <Stack sx={{ flexDirection: 'row', gap: 12 }}>\n <Icon name=\"elevation\" size={32} sx={{ color: 'text.primary' }} />\n <Stack>\n <Text sx={{ display: 'block', fontWeight: 600 }} variant=\"body1\">\n {copy.empty_widget_header}\n </Text>\n <P sx={{ color: 'text.secondary' }} variant=\"body2\">\n {copy.zero_state_description}\n </P>\n </Stack>\n </Stack>\n )\n}\n\nexport default ZeroState\n"],"mappings":";;;;AAWA,IAAM,IAAA,CAAa,EAAE,MAAA,EAAA,MAEjB,gBAAA,EAAC,GAAD;AAAA,EAAO,IAAI;AAAA,IAAE,eAAe;AAAA,IAAO,KAAK;AAAA,EAAG;AAAA,YAA3C,CACE,gBAAA,EAAC,GAAD;AAAA,IAAM,MAAK;AAAA,IAAY,MAAM;AAAA,IAAI,IAAI,EAAE,OAAO,eAAe;AAAA,EAAI,CAAA,GACjE,gBAAA,EAAC,GAAD,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IAAM,IAAI;AAAA,MAAE,SAAS;AAAA,MAAS,YAAY;AAAA,IAAI;AAAA,IAAG,SAAQ;AAAA,cACtD,EAAK;AAAA,EACF,CAAA,GACN,gBAAA,EAAC,GAAD;AAAA,IAAG,IAAI,EAAE,OAAO,iBAAiB;AAAA,IAAG,SAAQ;AAAA,cACzC,EAAK;AAAA,EACL,CAAA,CACE,EAAA,CAAA,CACF"}
1
+ {"version":3,"file":"ZeroState.es.js","names":[],"sources":["../../../../src/networth/components/micro/ZeroState.tsx"],"sourcesContent":["import Stack from '@mui/material/Stack'\n\nimport { P, Text } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport { NetWorthCopy } from '../../../core'\n\ninterface ZeroStateProps {\n copy: NetWorthCopy\n}\n\nconst ZeroState = ({ copy }: ZeroStateProps) => {\n return (\n <Stack sx={{ flexDirection: 'row', gap: 12 }}>\n <Icon name=\"elevation\" size={32} sx={{ color: 'text.primary' }} />\n <Stack>\n <Text sx={{ display: 'block', fontWeight: 600 }} variant=\"body1\">\n {copy.empty_widget_header}\n </Text>\n <P sx={{ color: 'text.secondary' }} variant=\"body2\">\n {copy.zero_state_description}\n </P>\n </Stack>\n </Stack>\n )\n}\n\nexport default ZeroState\n"],"mappings":";;;;AAWA,IAAM,IAAA,CAAa,EAAE,MAAA,EAAA,MAEjB,gBAAA,EAAC,GAAD;AAAA,EAAO,IAAI;AAAA,IAAE,eAAe;AAAA,IAAO,KAAK;AAAA,EAAG;AAAA,EAA3C,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IAAM,MAAK;AAAA,IAAY,MAAM;AAAA,IAAI,IAAI,EAAE,OAAO,eAAe;AAAA,EAAI,CAAA,GACjE,gBAAA,EAAC,GAAD,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IAAM,IAAI;AAAA,MAAE,SAAS;AAAA,MAAS,YAAY;AAAA,IAAI;AAAA,IAAG,SAAQ;AAAA,IACtD,UAAA,EAAK;AAAA,EACF,CAAA,GACN,gBAAA,EAAC,GAAD;AAAA,IAAG,IAAI,EAAE,OAAO,iBAAiB;AAAA,IAAG,SAAQ;AAAA,IACzC,UAAA,EAAK;AAAA,EACL,CAAA,CACE,EAAA,CAAA,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateRow.es.js","names":[],"sources":["../../../src/notifications/components/DateRow.tsx"],"sourcesContent":["import React from 'react'\nimport Box from '@mui/material/Box'\nimport { Text } from '@mxenabled/mxui'\n\nimport { fromUnixToDayOfWeekAndDate } from '../../core/utils/DateUtil'\n\ninterface DateRowProps {\n date: number\n}\n\nconst DateRow: React.FC<DateRowProps> = ({ date }) => {\n return (\n <Box sx={{ display: 'flex', justifyContent: 'center', mt: 12, py: 8 }}>\n <Text bold={true} variant=\"body2\">\n {fromUnixToDayOfWeekAndDate(date)}\n </Text>\n </Box>\n )\n}\n\nexport default DateRow\n"],"mappings":";;;;;AAUA,IAAM,IAAA,CAAmC,EAAE,MAAA,EAAA,MAEvC,gBAAA,EAAC,GAAD;AAAA,EAAK,IAAI;AAAA,IAAE,SAAS;AAAA,IAAQ,gBAAgB;AAAA,IAAU,IAAI;AAAA,IAAI,IAAI;AAAA,EAAE;AAAA,YAClE,gBAAA,EAAC,GAAD;AAAA,IAAM,MAAM;AAAA,IAAM,SAAQ;AAAA,cACvB,EAA2B,CAAI;AAAA,EAC5B,CAAA;AACH,CAAA"}
1
+ {"version":3,"file":"DateRow.es.js","names":[],"sources":["../../../src/notifications/components/DateRow.tsx"],"sourcesContent":["import React from 'react'\nimport Box from '@mui/material/Box'\nimport { Text } from '@mxenabled/mxui'\n\nimport { fromUnixToDayOfWeekAndDate } from '../../core/utils/DateUtil'\n\ninterface DateRowProps {\n date: number\n}\n\nconst DateRow: React.FC<DateRowProps> = ({ date }) => {\n return (\n <Box sx={{ display: 'flex', justifyContent: 'center', mt: 12, py: 8 }}>\n <Text bold={true} variant=\"body2\">\n {fromUnixToDayOfWeekAndDate(date)}\n </Text>\n </Box>\n )\n}\n\nexport default DateRow\n"],"mappings":";;;;;AAUA,IAAM,IAAA,CAAmC,EAAE,MAAA,EAAA,MAEvC,gBAAA,EAAC,GAAD;AAAA,EAAK,IAAI;AAAA,IAAE,SAAS;AAAA,IAAQ,gBAAgB;AAAA,IAAU,IAAI;AAAA,IAAI,IAAI;AAAA,EAAE;AAAA,EAClE,UAAA,gBAAA,EAAC,GAAD;AAAA,IAAM,MAAM;AAAA,IAAM,SAAQ;AAAA,IACvB,UAAA,EAA2B,CAAI;AAAA,EAC5B,CAAA;AACH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationBadge.es.js","names":[],"sources":["../../../src/notifications/components/NotificationBadge.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { InstitutionLogo, CategoryIcon } from '@mxenabled/mxui'\n\nimport { useAccountStore, useBudgetsStore, useGlobalCopyStore } from '../../common'\nimport { type Notification } from '../../core'\n\ninterface NotificationBadgeProps {\n notification: Notification\n}\n\nconst NotificationBadge: React.FC<NotificationBadgeProps> = ({ notification }) => {\n // Show notifications for all accounts (including hidden)\n const { accounts } = useAccountStore()\n const { budgets } = useBudgetsStore()\n const { accounts: accountsCopy } = useGlobalCopyStore()\n\n const account = accounts.find((account) => account.guid === notification.entity_guid)\n const budget = budgets.find((budget) => budget.guid === notification.entity_guid)\n const isGoal = notification.entity_guid.includes('GOL')\n\n const styles = {\n badge: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4,\n marginRight: 12,\n },\n }\n\n if (account || isGoal) {\n return (\n <div style={styles.badge}>\n <InstitutionLogo\n alt={account?.institutionName || accountsCopy.institution_logo_alt}\n institutionGuid={account?.institution_guid ?? ''}\n size={33}\n />\n </div>\n )\n } else {\n return (\n <div style={styles.badge}>\n <CategoryIcon categoryGuid={budget?.category_guid} size={36} />\n </div>\n )\n }\n}\n\nexport default observer(NotificationBadge)\n"],"mappings":";;;;;AAYA,IAAM,IAAA,CAAuD,EAAE,cAAA,EAAA,MAAmB;AAEhF,QAAM,EAAE,UAAA,EAAA,IAAa,EAAgB,GAC/B,EAAE,SAAA,EAAA,IAAY,EAAgB,GAC9B,EAAE,UAAU,EAAA,IAAiB,EAAmB,GAEhD,IAAU,EAAS,KAAA,CAAM,MAAY,EAAQ,SAAS,EAAa,WAAW,GAC9E,IAAS,EAAQ,KAAA,CAAM,MAAW,EAAO,SAAS,EAAa,WAAW,GAC1E,IAAS,EAAa,YAAY,SAAS,KAAK,GAEhD,IAAS,EACb,OAAO;AAAA,IACL,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,aAAa;AAAA,EACf,EACF;AAEA,SAAI,KAAW,IAEX,gBAAA,EAAC,OAAD;AAAA,IAAK,OAAO,EAAO;AAAA,cACjB,gBAAA,EAAC,GAAD;AAAA,MACE,KAAK,GAAS,mBAAmB,EAAa;AAAA,MAC9C,iBAAiB,GAAS,oBAAoB;AAAA,MAC9C,MAAM;AAAA,IACP,CAAA;AAAA,EACE,CAAA,IAIL,gBAAA,EAAC,OAAD;AAAA,IAAK,OAAO,EAAO;AAAA,cACjB,gBAAA,EAAC,GAAD;AAAA,MAAc,cAAc,GAAQ;AAAA,MAAe,MAAM;AAAA,IAAK,CAAA;AAAA,EAC3D,CAAA;AAGX,GAEA,IAAe,EAAS,CAAiB"}
1
+ {"version":3,"file":"NotificationBadge.es.js","names":[],"sources":["../../../src/notifications/components/NotificationBadge.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { InstitutionLogo, CategoryIcon } from '@mxenabled/mxui'\n\nimport { useAccountStore, useBudgetsStore, useGlobalCopyStore } from '../../common'\nimport { type Notification } from '../../core'\n\ninterface NotificationBadgeProps {\n notification: Notification\n}\n\nconst NotificationBadge: React.FC<NotificationBadgeProps> = ({ notification }) => {\n // Show notifications for all accounts (including hidden)\n const { accounts } = useAccountStore()\n const { budgets } = useBudgetsStore()\n const { accounts: accountsCopy } = useGlobalCopyStore()\n\n const account = accounts.find((account) => account.guid === notification.entity_guid)\n const budget = budgets.find((budget) => budget.guid === notification.entity_guid)\n const isGoal = notification.entity_guid.includes('GOL')\n\n const styles = {\n badge: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4,\n marginRight: 12,\n },\n }\n\n if (account || isGoal) {\n return (\n <div style={styles.badge}>\n <InstitutionLogo\n alt={account?.institutionName || accountsCopy.institution_logo_alt}\n institutionGuid={account?.institution_guid ?? ''}\n size={33}\n />\n </div>\n )\n } else {\n return (\n <div style={styles.badge}>\n <CategoryIcon categoryGuid={budget?.category_guid} size={36} />\n </div>\n )\n }\n}\n\nexport default observer(NotificationBadge)\n"],"mappings":";;;;;AAYA,IAAM,IAAA,CAAuD,EAAE,cAAA,EAAA,MAAmB;AAEhF,QAAM,EAAE,UAAA,EAAA,IAAa,EAAgB,GAC/B,EAAE,SAAA,EAAA,IAAY,EAAgB,GAC9B,EAAE,UAAU,EAAA,IAAiB,EAAmB,GAEhD,IAAU,EAAS,KAAA,CAAM,MAAY,EAAQ,SAAS,EAAa,WAAW,GAC9E,IAAS,EAAQ,KAAA,CAAM,MAAW,EAAO,SAAS,EAAa,WAAW,GAC1E,IAAS,EAAa,YAAY,SAAS,KAAK,GAEhD,IAAS,EACb,OAAO;AAAA,IACL,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,aAAa;AAAA,EACf,EACF;AAEA,SAAI,KAAW,IAEX,gBAAA,EAAC,OAAD;AAAA,IAAK,OAAO,EAAO;AAAA,IACjB,UAAA,gBAAA,EAAC,GAAD;AAAA,MACE,KAAK,GAAS,mBAAmB,EAAa;AAAA,MAC9C,iBAAiB,GAAS,oBAAoB;AAAA,MAC9C,MAAM;AAAA,IACP,CAAA;AAAA,EACE,CAAA,IAIL,gBAAA,EAAC,OAAD;AAAA,IAAK,OAAO,EAAO;AAAA,IACjB,UAAA,gBAAA,EAAC,GAAD;AAAA,MAAc,cAAc,GAAQ;AAAA,MAAe,MAAM;AAAA,IAAK,CAAA;AAAA,EAC3D,CAAA;AAGX,GAEA,IAAe,EAAS,CAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationCard.es.js","names":[],"sources":["../../../src/notifications/components/NotificationCard.tsx"],"sourcesContent":["import React from 'react'\nimport { Card, useTheme } from '@mui/material'\nimport { Text } from '@mxenabled/mxui'\n\nimport { type Notification } from '../../core'\nimport { useNotificationStore } from '../../common'\nimport NotificationBadge from './NotificationBadge'\n\ninterface NotificationCardProps {\n notification: Notification\n onClick: (notification: Notification) => void\n}\n\nconst NotificationCard: React.FC<NotificationCardProps> = ({ notification, onClick }) => {\n const { updateNotification } = useNotificationStore()\n const theme = useTheme()\n\n const styles = {\n card: {\n alignItems: 'center',\n cursor: 'pointer',\n display: 'flex',\n marginBottom: 12,\n paddingX: 24,\n paddingY: 12,\n '&:focus': {\n backgroundColor: theme.palette.background.default,\n },\n '&:hover': {\n backgroundColor: theme.palette.background.default,\n },\n },\n dot: {\n backgroundColor: theme.palette.primary.main,\n borderRadius: '100%',\n flex: '0 0 auto',\n marginLeft: -8,\n marginRight: 8,\n height: 8,\n width: 8,\n },\n }\n\n const handleOnClick = () => {\n onClick(notification)\n updateNotification({ ...notification, has_been_viewed: true }).finally()\n }\n\n return (\n <Card onClick={handleOnClick} sx={styles.card}>\n {!notification.has_been_viewed ? (\n <div data-testid=\"new-message-dot\" style={styles.dot} />\n ) : null}\n <NotificationBadge notification={notification} />\n <Text bold={!notification.has_been_viewed} truncate={false} variant={'body2'}>\n {notification.content}\n </Text>\n </Card>\n )\n}\n\nexport default NotificationCard\n"],"mappings":";;;;;;AAaA,IAAM,IAAA,CAAqD,EAAE,cAAA,GAAc,SAAA,EAAA,MAAc;AACvF,QAAM,EAAE,oBAAA,EAAA,IAAuB,EAAqB,GAC9C,IAAQ,EAAS,GAEjB,IAAS;AAAA,IACb,MAAM;AAAA,MACJ,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,cAAc;AAAA,MACd,UAAU;AAAA,MACV,UAAU;AAAA,MACV,WAAW,EACT,iBAAiB,EAAM,QAAQ,WAAW,QAC5C;AAAA,MACA,WAAW,EACT,iBAAiB,EAAM,QAAQ,WAAW,QAC5C;AAAA,IACF;AAAA,IACA,KAAK;AAAA,MACH,iBAAiB,EAAM,QAAQ,QAAQ;AAAA,MACvC,cAAc;AAAA,MACd,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AAOA,SACE,gBAAA,EAAC,GAAD;AAAA,IAAM,SANF,MAAsB;AAC1B,MAAA,EAAQ,CAAY,GACpB,EAAmB;AAAA,QAAE,GAAG;AAAA,QAAc,iBAAiB;AAAA,MAAK,CAAC,EAAE,QAAQ;AAAA,IACzE;AAAA,IAGgC,IAAI,EAAO;AAAA,cAAzC;AAAA,MACI,EAAa,kBAEX,OADF,gBAAA,EAAC,OAAD;AAAA,QAAK,eAAY;AAAA,QAAkB,OAAO,EAAO;AAAA,MAAM,CAAA;AAAA,MAEzD,gBAAA,EAAC,GAAD,EAAiC,cAAA,EAAe,CAAA;AAAA,MAChD,gBAAA,EAAC,GAAD;AAAA,QAAM,MAAM,CAAC,EAAa;AAAA,QAAiB,UAAU;AAAA,QAAO,SAAS;AAAA,kBAClE,EAAa;AAAA,MACV,CAAA;AAAA,IACF;AAAA;AAEV"}
1
+ {"version":3,"file":"NotificationCard.es.js","names":[],"sources":["../../../src/notifications/components/NotificationCard.tsx"],"sourcesContent":["import React from 'react'\nimport { Card, useTheme } from '@mui/material'\nimport { Text } from '@mxenabled/mxui'\n\nimport { type Notification } from '../../core'\nimport { useNotificationStore } from '../../common'\nimport NotificationBadge from './NotificationBadge'\n\ninterface NotificationCardProps {\n notification: Notification\n onClick: (notification: Notification) => void\n}\n\nconst NotificationCard: React.FC<NotificationCardProps> = ({ notification, onClick }) => {\n const { updateNotification } = useNotificationStore()\n const theme = useTheme()\n\n const styles = {\n card: {\n alignItems: 'center',\n cursor: 'pointer',\n display: 'flex',\n marginBottom: 12,\n paddingX: 24,\n paddingY: 12,\n '&:focus': {\n backgroundColor: theme.palette.background.default,\n },\n '&:hover': {\n backgroundColor: theme.palette.background.default,\n },\n },\n dot: {\n backgroundColor: theme.palette.primary.main,\n borderRadius: '100%',\n flex: '0 0 auto',\n marginLeft: -8,\n marginRight: 8,\n height: 8,\n width: 8,\n },\n }\n\n const handleOnClick = () => {\n onClick(notification)\n updateNotification({ ...notification, has_been_viewed: true }).finally()\n }\n\n return (\n <Card onClick={handleOnClick} sx={styles.card}>\n {!notification.has_been_viewed ? (\n <div data-testid=\"new-message-dot\" style={styles.dot} />\n ) : null}\n <NotificationBadge notification={notification} />\n <Text bold={!notification.has_been_viewed} truncate={false} variant={'body2'}>\n {notification.content}\n </Text>\n </Card>\n )\n}\n\nexport default NotificationCard\n"],"mappings":";;;;;;AAaA,IAAM,IAAA,CAAqD,EAAE,cAAA,GAAc,SAAA,EAAA,MAAc;AACvF,QAAM,EAAE,oBAAA,EAAA,IAAuB,EAAqB,GAC9C,IAAQ,EAAS,GAEjB,IAAS;AAAA,IACb,MAAM;AAAA,MACJ,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,cAAc;AAAA,MACd,UAAU;AAAA,MACV,UAAU;AAAA,MACV,WAAW,EACT,iBAAiB,EAAM,QAAQ,WAAW,QAC5C;AAAA,MACA,WAAW,EACT,iBAAiB,EAAM,QAAQ,WAAW,QAC5C;AAAA,IACF;AAAA,IACA,KAAK;AAAA,MACH,iBAAiB,EAAM,QAAQ,QAAQ;AAAA,MACvC,cAAc;AAAA,MACd,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AAOA,SACE,gBAAA,EAAC,GAAD;AAAA,IAAM,SANF,MAAsB;AAC1B,MAAA,EAAQ,CAAY,GACpB,EAAmB;AAAA,QAAE,GAAG;AAAA,QAAc,iBAAiB;AAAA,MAAK,CAAC,EAAE,QAAQ;AAAA,IACzE;AAAA,IAGgC,IAAI,EAAO;AAAA,IAAzC,UAAA;AAAA,MACI,EAAa,kBAEX,OADF,gBAAA,EAAC,OAAD;AAAA,QAAK,eAAY;AAAA,QAAkB,OAAO,EAAO;AAAA,MAAM,CAAA;AAAA,MAEzD,gBAAA,EAAC,GAAD,EAAiC,cAAA,EAAe,CAAA;AAAA,MAChD,gBAAA,EAAC,GAAD;AAAA,QAAM,MAAM,CAAC,EAAa;AAAA,QAAiB,UAAU;AAAA,QAAO,SAAS;AAAA,QAClE,UAAA,EAAa;AAAA,MACV,CAAA;AAAA,IACF;AAAA;AAEV"}
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationDrawer.es.js","names":[],"sources":["../../../src/notifications/components/NotificationDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport IconButton from '@mui/material/IconButton'\n\nimport { Settings as SettingsIcon } from '@mxenabled/mx-icons'\n\nimport { Drawer, Loader, useAppConfig, useGlobalCopyStore, useGlobalUiStore } from '../../common'\nimport { type Notification, NotificationTypes } from '../../core'\n\nimport { NotificationSettings } from '../../settings'\n\nimport NotificationList from './NotificationList'\n\ninterface NotificationDrawerProps {\n notificationTypes?: NotificationTypes[]\n isOpen: boolean\n onClose: () => void\n onNotificationClick?: (notification: Notification) => void\n}\n\nexport const NotificationDrawer = observer(\n ({ notificationTypes, isOpen, onClose, onNotificationClick }: NotificationDrawerProps) => {\n const { config } = useAppConfig()\n const { notifications: copy, settings: settingsCopy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n\n const [shouldShowSettings, setShouldShowSettings] = React.useState(false)\n\n if (!isCopyLoaded) return <Loader />\n\n return (\n <>\n <Drawer\n ariaLabelClose={copy.close_notifications}\n isOpen={isOpen}\n onClose={onClose}\n title={copy.notifications_title}\n >\n <IconButton\n aria-label={settingsCopy.open_notification_settings_btn_aria}\n onClick={() => setShouldShowSettings(true)}\n sx={{\n position: 'absolute',\n right: 8,\n top: 8,\n }}\n >\n <SettingsIcon size={24} />\n </IconButton>\n\n <NotificationList\n notificationTypes={notificationTypes}\n onClick={onNotificationClick}\n onManageNotifications={() => setShouldShowSettings(true)}\n />\n </Drawer>\n <Drawer\n ariaLabelClose={copy.close_notification_settings}\n isOpen={shouldShowSettings}\n onClose={() => setShouldShowSettings(false)}\n title={settingsCopy.notification_settings_title}\n >\n <NotificationSettings\n notificationTypes={notificationTypes}\n showPersonalDetails={!config.display_user_profile_in_settings}\n />\n </Drawer>\n </>\n )\n },\n)\n"],"mappings":";;;;;;;;;;AAqBA,IAAa,IAAqB,EAAA,CAC/B,EAAE,mBAAA,GAAmB,QAAA,GAAQ,SAAA,GAAS,qBAAA,EAAA,MAAmD;AACxF,QAAM,EAAE,QAAA,EAAA,IAAW,EAAa,GAC1B,EAAE,eAAe,GAAM,UAAU,EAAA,IAAiB,EAAmB,GACrE,EAAE,cAAA,EAAA,IAAiB,EAAiB,GAEpC,CAAC,GAAoB,CAAA,IAAyB,EAAM,SAAS,EAAK;AAExE,SAAK,IAGH,gBAAA,EAAA,GAAA,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IACE,gBAAgB,EAAK;AAAA,IACb,QAAA;AAAA,IACC,SAAA;AAAA,IACT,OAAO,EAAK;AAAA,cAJd,CAME,gBAAA,EAAC,GAAD;AAAA,MACE,cAAY,EAAa;AAAA,MACzB,SAAA,MAAe,EAAsB,EAAI;AAAA,MACzC,IAAI;AAAA,QACF,UAAU;AAAA,QACV,OAAO;AAAA,QACP,KAAK;AAAA,MACP;AAAA,gBAEA,gBAAA,EAAC,GAAD,EAAc,MAAM,GAAK,CAAA;AAAA,IACf,CAAA,GAEZ,gBAAA,EAAC,GAAD;AAAA,MACqB,mBAAA;AAAA,MACnB,SAAS;AAAA,MACT,uBAAA,MAA6B,EAAsB,EAAI;AAAA,IACxD,CAAA,CACK;AAAA,MACR,gBAAA,EAAC,GAAD;AAAA,IACE,gBAAgB,EAAK;AAAA,IACrB,QAAQ;AAAA,IACR,SAAA,MAAe,EAAsB,EAAK;AAAA,IAC1C,OAAO,EAAa;AAAA,cAEpB,gBAAA,EAAC,GAAD;AAAA,MACqB,mBAAA;AAAA,MACnB,qBAAqB,CAAC,EAAO;AAAA,IAC9B,CAAA;AAAA,EACK,CAAA,CACR,EAAA,CAAA,IAvCsB,gBAAA,EAAC,GAAD,CAAS,CAAA;AAyCrC,CACF"}
1
+ {"version":3,"file":"NotificationDrawer.es.js","names":[],"sources":["../../../src/notifications/components/NotificationDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport IconButton from '@mui/material/IconButton'\n\nimport { Settings as SettingsIcon } from '@mxenabled/mx-icons'\n\nimport { Drawer, Loader, useAppConfig, useGlobalCopyStore, useGlobalUiStore } from '../../common'\nimport { type Notification, NotificationTypes } from '../../core'\n\nimport { NotificationSettings } from '../../settings'\n\nimport NotificationList from './NotificationList'\n\ninterface NotificationDrawerProps {\n notificationTypes?: NotificationTypes[]\n isOpen: boolean\n onClose: () => void\n onNotificationClick?: (notification: Notification) => void\n}\n\nexport const NotificationDrawer = observer(\n ({ notificationTypes, isOpen, onClose, onNotificationClick }: NotificationDrawerProps) => {\n const { config } = useAppConfig()\n const { notifications: copy, settings: settingsCopy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n\n const [shouldShowSettings, setShouldShowSettings] = React.useState(false)\n\n if (!isCopyLoaded) return <Loader />\n\n return (\n <>\n <Drawer\n ariaLabelClose={copy.close_notifications}\n isOpen={isOpen}\n onClose={onClose}\n title={copy.notifications_title}\n >\n <IconButton\n aria-label={settingsCopy.open_notification_settings_btn_aria}\n onClick={() => setShouldShowSettings(true)}\n sx={{\n position: 'absolute',\n right: 8,\n top: 8,\n }}\n >\n <SettingsIcon size={24} />\n </IconButton>\n\n <NotificationList\n notificationTypes={notificationTypes}\n onClick={onNotificationClick}\n onManageNotifications={() => setShouldShowSettings(true)}\n />\n </Drawer>\n <Drawer\n ariaLabelClose={copy.close_notification_settings}\n isOpen={shouldShowSettings}\n onClose={() => setShouldShowSettings(false)}\n title={settingsCopy.notification_settings_title}\n >\n <NotificationSettings\n notificationTypes={notificationTypes}\n showPersonalDetails={!config.display_user_profile_in_settings}\n />\n </Drawer>\n </>\n )\n },\n)\n"],"mappings":";;;;;;;;;;AAqBA,IAAa,IAAqB,EAAA,CAC/B,EAAE,mBAAA,GAAmB,QAAA,GAAQ,SAAA,GAAS,qBAAA,EAAA,MAAmD;AACxF,QAAM,EAAE,QAAA,EAAA,IAAW,EAAa,GAC1B,EAAE,eAAe,GAAM,UAAU,EAAA,IAAiB,EAAmB,GACrE,EAAE,cAAA,EAAA,IAAiB,EAAiB,GAEpC,CAAC,GAAoB,CAAA,IAAyB,EAAM,SAAS,EAAK;AAExE,SAAK,IAGH,gBAAA,EAAA,GAAA,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IACE,gBAAgB,EAAK;AAAA,IACb,QAAA;AAAA,IACC,SAAA;AAAA,IACT,OAAO,EAAK;AAAA,IAJd,UAAA,CAME,gBAAA,EAAC,GAAD;AAAA,MACE,cAAY,EAAa;AAAA,MACzB,SAAA,MAAe,EAAsB,EAAI;AAAA,MACzC,IAAI;AAAA,QACF,UAAU;AAAA,QACV,OAAO;AAAA,QACP,KAAK;AAAA,MACP;AAAA,MAEA,UAAA,gBAAA,EAAC,GAAD,EAAc,MAAM,GAAK,CAAA;AAAA,IACf,CAAA,GAEZ,gBAAA,EAAC,GAAD;AAAA,MACqB,mBAAA;AAAA,MACnB,SAAS;AAAA,MACT,uBAAA,MAA6B,EAAsB,EAAI;AAAA,IACxD,CAAA,CACK;AAAA,EACR,CAAA,GAAA,gBAAA,EAAC,GAAD;AAAA,IACE,gBAAgB,EAAK;AAAA,IACrB,QAAQ;AAAA,IACR,SAAA,MAAe,EAAsB,EAAK;AAAA,IAC1C,OAAO,EAAa;AAAA,IAEpB,UAAA,gBAAA,EAAC,GAAD;AAAA,MACqB,mBAAA;AAAA,MACnB,qBAAqB,CAAC,EAAO;AAAA,IAC9B,CAAA;AAAA,EACK,CAAA,CACR,EAAA,CAAA,IAvCsB,gBAAA,EAAC,GAAD,CAAS,CAAA;AAyCrC,CACF"}