@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":"NotificationSettings.es.js","names":[],"sources":["../../../../src/settings/components/notifications/NotificationSettings.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\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 ListItemButton from '@mui/material/ListItemButton'\nimport Stack from '@mui/material/Stack'\n\nimport { ChevronRight } from '@mxenabled/mx-icons'\n\nimport { H3 } from '@mxenabled/mxui'\n\nimport {\n Drawer,\n Loader,\n useAccountStore,\n useAppConfig,\n useGlobalCopyStore,\n useGlobalUiStore,\n useInsightsEnabled,\n useSettingsStore,\n useWidgetLoadTimer,\n} from '../../../common'\nimport { NotificationTypes } from '../../../core'\n\nimport { AccountNotificationProfiles } from './AccountNotificationProfiles'\nimport { BudgetNotificationProfiles } from './BudgetNotificationProfiles'\nimport { DeliveryMethods } from './DeliveryMethods'\nimport { InsightsNotificationProfiles } from './InsightsNotificationProfiles'\nimport PersonalDetails from './PersonalDetails'\n\nexport interface NotificationSettingsProps {\n notificationTypes?: NotificationTypes[]\n showPersonalDetails?: boolean\n view?: string | undefined\n}\n\nexport const NotificationSettings: React.FC<NotificationSettingsProps> = observer(\n ({\n notificationTypes = [NotificationTypes.Accounts, NotificationTypes.Budgets],\n showPersonalDetails = false,\n view,\n }) => {\n const { config } = useAppConfig()\n const { settings: copy } = useGlobalCopyStore()\n const { isInitialized } = useGlobalUiStore()\n const { isAccountDataLoaded, loadAccountData } = useAccountStore()\n const { clientCommunicationProfile: ccp, loadNotificationProfiles } = useSettingsStore()\n const isInsightsEnabled = useInsightsEnabled()\n\n const [isLoaded, setIsLoaded] = React.useState(false)\n const [profileTypeOpen, setProfileTypeOpen] = React.useState<NotificationTypes | undefined>(\n undefined,\n )\n\n if (notificationTypes.length > 0 && isInsightsEnabled)\n notificationTypes.push(NotificationTypes.Insights)\n\n useWidgetLoadTimer({\n widgetName: 'NotificationSettingsWidget',\n isLoaded: isLoaded,\n })\n\n React.useEffect(() => {\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n }, [])\n\n React.useEffect(() => {\n if (isInitialized) {\n loadNotificationProfiles().finally(() => setIsLoaded(true))\n }\n }, [isInitialized])\n\n if (!isInitialized) {\n return <Loader />\n }\n\n let drawerTitle = copy.manage_account_notifications\n if (profileTypeOpen === NotificationTypes.Budgets) {\n drawerTitle = copy.manage_budget_notifications\n } else if (profileTypeOpen === NotificationTypes.Insights) {\n drawerTitle = copy.manage_insights_notifications\n }\n\n const {\n email_notifications_enabled: emailEnabled,\n sms_notifications_enabled: smsEnabled,\n push_notifications_enabled: pushEnabled,\n } = ccp\n\n const hasDeliveryMethods = emailEnabled || smsEnabled || pushEnabled\n\n if (view === 'accounts') {\n return <AccountNotificationProfiles />\n } else if (view === 'budgets') {\n return <BudgetNotificationProfiles />\n } else if (view === 'insights') {\n return <InsightsNotificationProfiles />\n }\n\n const canEditFields =\n config.display_email_edit_field_in_settings || config.display_sms_edit_field_in_settings\n const shouldShowPersonalDetails =\n showPersonalDetails && ccp.can_edit_contact_info && canEditFields\n\n return (\n <Stack sx={{ pt: hasDeliveryMethods ? 0 : 24 }}>\n <Stack sx={{ px: 24 }}>\n {hasDeliveryMethods && (\n <>\n <DeliveryMethods />\n <Divider sx={{ my: 24 }} />\n </>\n )}\n\n <H3 sx={{ mb: 4 }}>{copy.notification_types_title}</H3>\n </Stack>\n <List>\n {notificationTypes.includes(NotificationTypes.Accounts) && (\n <ListItem>\n <ListItemButton onClick={() => setProfileTypeOpen(NotificationTypes.Accounts)}>\n <ListItemText primary={copy.accounts_title} secondary={copy.accounts_subtitle} />\n <ChevronRight />\n </ListItemButton>\n </ListItem>\n )}\n {notificationTypes.includes(NotificationTypes.Budgets) && (\n <ListItem>\n <ListItemButton onClick={() => setProfileTypeOpen(NotificationTypes.Budgets)}>\n <ListItemText primary={copy.budgets_title} secondary={copy.budgets_subtitle} />\n <ChevronRight />\n </ListItemButton>\n </ListItem>\n )}\n {notificationTypes.includes(NotificationTypes.Insights) && (\n <ListItem>\n <ListItemButton onClick={() => setProfileTypeOpen(NotificationTypes.Insights)}>\n <ListItemText primary={copy.insights_title} secondary={copy.insights_subtitle} />\n <ChevronRight />\n </ListItemButton>\n </ListItem>\n )}\n </List>\n\n {shouldShowPersonalDetails && (\n <Stack sx={{ px: 24 }}>\n <PersonalDetails />\n </Stack>\n )}\n\n <Drawer\n isOpen={Boolean(profileTypeOpen)}\n onClose={() => setProfileTypeOpen(undefined)}\n title={drawerTitle}\n >\n <Stack>\n {profileTypeOpen === NotificationTypes.Accounts && <AccountNotificationProfiles />}\n {profileTypeOpen === NotificationTypes.Budgets && <BudgetNotificationProfiles />}\n {profileTypeOpen === NotificationTypes.Insights && <InsightsNotificationProfiles />}\n </Stack>\n </Drawer>\n </Stack>\n )\n },\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"NotificationSettings.es.js","names":[],"sources":["../../../../src/settings/components/notifications/NotificationSettings.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\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 ListItemButton from '@mui/material/ListItemButton'\nimport Stack from '@mui/material/Stack'\n\nimport { ChevronRight } from '@mxenabled/mx-icons'\n\nimport { H3 } from '@mxenabled/mxui'\n\nimport {\n Drawer,\n Loader,\n useAccountStore,\n useAppConfig,\n useGlobalCopyStore,\n useGlobalUiStore,\n useInsightsEnabled,\n useSettingsStore,\n useWidgetLoadTimer,\n} from '../../../common'\nimport { NotificationTypes } from '../../../core'\n\nimport { AccountNotificationProfiles } from './AccountNotificationProfiles'\nimport { BudgetNotificationProfiles } from './BudgetNotificationProfiles'\nimport { DeliveryMethods } from './DeliveryMethods'\nimport { InsightsNotificationProfiles } from './InsightsNotificationProfiles'\nimport PersonalDetails from './PersonalDetails'\n\nexport interface NotificationSettingsProps {\n notificationTypes?: NotificationTypes[]\n showPersonalDetails?: boolean\n view?: string | undefined\n}\n\nexport const NotificationSettings: React.FC<NotificationSettingsProps> = observer(\n ({\n notificationTypes = [NotificationTypes.Accounts, NotificationTypes.Budgets],\n showPersonalDetails = false,\n view,\n }) => {\n const { config } = useAppConfig()\n const { settings: copy } = useGlobalCopyStore()\n const { isInitialized } = useGlobalUiStore()\n const { isAccountDataLoaded, loadAccountData } = useAccountStore()\n const { clientCommunicationProfile: ccp, loadNotificationProfiles } = useSettingsStore()\n const isInsightsEnabled = useInsightsEnabled()\n\n const [isLoaded, setIsLoaded] = React.useState(false)\n const [profileTypeOpen, setProfileTypeOpen] = React.useState<NotificationTypes | undefined>(\n undefined,\n )\n\n if (notificationTypes.length > 0 && isInsightsEnabled)\n notificationTypes.push(NotificationTypes.Insights)\n\n useWidgetLoadTimer({\n widgetName: 'NotificationSettingsWidget',\n isLoaded: isLoaded,\n })\n\n React.useEffect(() => {\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n }, [])\n\n React.useEffect(() => {\n if (isInitialized) {\n loadNotificationProfiles().finally(() => setIsLoaded(true))\n }\n }, [isInitialized])\n\n if (!isInitialized) {\n return <Loader />\n }\n\n let drawerTitle = copy.manage_account_notifications\n if (profileTypeOpen === NotificationTypes.Budgets) {\n drawerTitle = copy.manage_budget_notifications\n } else if (profileTypeOpen === NotificationTypes.Insights) {\n drawerTitle = copy.manage_insights_notifications\n }\n\n const {\n email_notifications_enabled: emailEnabled,\n sms_notifications_enabled: smsEnabled,\n push_notifications_enabled: pushEnabled,\n } = ccp\n\n const hasDeliveryMethods = emailEnabled || smsEnabled || pushEnabled\n\n if (view === 'accounts') {\n return <AccountNotificationProfiles />\n } else if (view === 'budgets') {\n return <BudgetNotificationProfiles />\n } else if (view === 'insights') {\n return <InsightsNotificationProfiles />\n }\n\n const canEditFields =\n config.display_email_edit_field_in_settings || config.display_sms_edit_field_in_settings\n const shouldShowPersonalDetails =\n showPersonalDetails && ccp.can_edit_contact_info && canEditFields\n\n return (\n <Stack sx={{ pt: hasDeliveryMethods ? 0 : 24 }}>\n <Stack sx={{ px: 24 }}>\n {hasDeliveryMethods && (\n <>\n <DeliveryMethods />\n <Divider sx={{ my: 24 }} />\n </>\n )}\n\n <H3 sx={{ mb: 4 }}>{copy.notification_types_title}</H3>\n </Stack>\n <List>\n {notificationTypes.includes(NotificationTypes.Accounts) && (\n <ListItem>\n <ListItemButton onClick={() => setProfileTypeOpen(NotificationTypes.Accounts)}>\n <ListItemText primary={copy.accounts_title} secondary={copy.accounts_subtitle} />\n <ChevronRight />\n </ListItemButton>\n </ListItem>\n )}\n {notificationTypes.includes(NotificationTypes.Budgets) && (\n <ListItem>\n <ListItemButton onClick={() => setProfileTypeOpen(NotificationTypes.Budgets)}>\n <ListItemText primary={copy.budgets_title} secondary={copy.budgets_subtitle} />\n <ChevronRight />\n </ListItemButton>\n </ListItem>\n )}\n {notificationTypes.includes(NotificationTypes.Insights) && (\n <ListItem>\n <ListItemButton onClick={() => setProfileTypeOpen(NotificationTypes.Insights)}>\n <ListItemText primary={copy.insights_title} secondary={copy.insights_subtitle} />\n <ChevronRight />\n </ListItemButton>\n </ListItem>\n )}\n </List>\n\n {shouldShowPersonalDetails && (\n <Stack sx={{ px: 24 }}>\n <PersonalDetails />\n </Stack>\n )}\n\n <Drawer\n isOpen={Boolean(profileTypeOpen)}\n onClose={() => setProfileTypeOpen(undefined)}\n title={drawerTitle}\n >\n <Stack>\n {profileTypeOpen === NotificationTypes.Accounts && <AccountNotificationProfiles />}\n {profileTypeOpen === NotificationTypes.Budgets && <BudgetNotificationProfiles />}\n {profileTypeOpen === NotificationTypes.Insights && <InsightsNotificationProfiles />}\n </Stack>\n </Drawer>\n </Stack>\n )\n },\n)\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PersonalDetails.es.js","names":[],"sources":["../../../../src/settings/components/notifications/PersonalDetails.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Divider from '@mui/material/Divider'\nimport Stack from '@mui/material/Stack'\nimport TextField from '@mui/material/TextField'\n\nimport { H3 } from '@mxenabled/mxui'\n\nimport { useAppConfig, useGlobalCopyStore, useSettingsStore, useUserStore } from '../../../common'\nimport { type EditableUser } from '../../../core'\nimport { useDimensions } from '../../../common/hooks/useDimensions'\n\nimport VerifyEmailAction from '../profile/actions/VerifyEmailAction'\nimport VerifyPhoneAction from '../profile/actions/VerifyPhoneAction'\n\nconst PersonalDetails = () => {\n const { config } = useAppConfig()\n const [containerRef, { width }] = useDimensions()\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { updateUser } = useSettingsStore()\n const { user } = useUserStore()\n\n const [hasUnsavedChanges, setHasUnsavedChanges] = React.useState(false)\n const [modifiedUser, setModifiedUser] = React.useState<EditableUser>({\n email: user.email,\n phone: user.phone,\n })\n\n const showVerifyEmail = modifiedUser.email && !user.email_is_verified && !hasUnsavedChanges\n const showVerifyPhone = modifiedUser.phone && !user.phone_is_verified && !hasUnsavedChanges\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { name, value } = event.target\n const changedUser = { ...modifiedUser, [name]: value }\n\n setModifiedUser(changedUser)\n setHasUnsavedChanges(JSON.stringify({ ...user, ...changedUser }) !== JSON.stringify(user))\n }\n\n const handleSave = async () => {\n await updateUser({ ...user, ...modifiedUser })\n setHasUnsavedChanges(false)\n }\n\n return (\n <Stack ref={containerRef}>\n <Divider />\n <Stack sx={{ pt: 12 }}>\n <H3 sx={{ lineHeight: '20px', pb: 4, pt: 16 }}>{settingsCopy.personal_details}</H3>\n <Stack sx={{ flexDirection: width <= 768 ? 'column' : 'row', gap: 24, py: 16 }}>\n {config.display_email_edit_field_in_settings && (\n <Stack sx={{ flex: 1, pb: 14 }}>\n <TextField\n defaultValue={user.email}\n fullWidth={true}\n label={settingsCopy.email_address}\n name=\"email\"\n onChange={handleChange}\n />\n {showVerifyEmail && (\n <Box\n sx={{\n height: 20,\n '.MuiButton-root': {\n px: 0,\n ':hover': {\n bgcolor: 'transparent',\n },\n },\n }}\n >\n <VerifyEmailAction />\n </Box>\n )}\n </Stack>\n )}\n {config.display_sms_edit_field_in_settings && (\n <Stack sx={{ flex: 1, pb: 14 }}>\n <TextField\n defaultValue={user.phone}\n fullWidth={true}\n label={settingsCopy.mobile_number}\n name=\"phone\"\n onChange={handleChange}\n />\n {showVerifyPhone && (\n <Box\n sx={{\n height: 20,\n '.MuiButton-root': {\n px: 0,\n ':hover': {\n bgcolor: 'transparent',\n },\n },\n }}\n >\n <VerifyPhoneAction />\n </Box>\n )}\n </Stack>\n )}\n </Stack>\n <Button\n disabled={!hasUnsavedChanges}\n onClick={handleSave}\n sx={{ width: 84 }}\n variant=\"contained\"\n >\n {commonCopy.save_button}\n </Button>\n </Stack>\n </Stack>\n )\n}\n\nexport default observer(PersonalDetails)\n"],"mappings":";;;;;;;;;;;;;AAkBA,IAAM,IAAA,MAAwB;AAC5B,QAAM,EAAE,QAAA,EAAA,IAAW,EAAa,GAC1B,CAAC,GAAc,EAAE,OAAA,EAAA,CAAA,IAAW,EAAc,GAC1C,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB,GACpE,EAAE,YAAA,EAAA,IAAe,EAAiB,GAClC,EAAE,MAAA,EAAA,IAAS,EAAa,GAExB,CAAC,GAAmB,CAAA,IAAwB,EAAM,SAAS,EAAK,GAChE,CAAC,GAAc,CAAA,IAAmB,EAAM,SAAuB;AAAA,IACnE,OAAO,EAAK;AAAA,IACZ,OAAO,EAAK;AAAA,EACd,CAAC,GAEK,IAAkB,EAAa,SAAS,CAAC,EAAK,qBAAqB,CAAC,GACpE,IAAkB,EAAa,SAAS,CAAC,EAAK,qBAAqB,CAAC,GAEpE,IAAA,CAAgB,MAA+C;AACnE,UAAM,EAAE,MAAA,GAAM,OAAA,EAAA,IAAU,EAAM,QACxB,IAAc;AAAA,MAAE,GAAG;AAAA,OAAe,CAAA,GAAO;AAAA,IAAM;AAErD,IAAA,EAAgB,CAAW,GAC3B,EAAqB,KAAK,UAAU;AAAA,MAAE,GAAG;AAAA,MAAM,GAAG;AAAA,IAAY,CAAC,MAAM,KAAK,UAAU,CAAI,CAAC;AAAA,EAC3F,GAEM,IAAa,YAAY;AAC7B,UAAM,EAAW;AAAA,MAAE,GAAG;AAAA,MAAM,GAAG;AAAA,IAAa,CAAC,GAC7C,EAAqB,EAAK;AAAA,EAC5B;AAEA,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,KAAK;AAAA,cAAZ,CACE,gBAAA,EAAC,GAAD,CAAU,CAAA,GACV,gBAAA,EAAC,GAAD;AAAA,MAAO,IAAI,EAAE,IAAI,GAAG;AAAA,gBAApB;AAAA,QACE,gBAAA,EAAC,GAAD;AAAA,UAAI,IAAI;AAAA,YAAE,YAAY;AAAA,YAAQ,IAAI;AAAA,YAAG,IAAI;AAAA,UAAG;AAAA,oBAAI,EAAa;AAAA,QAAqB,CAAA;AAAA,QAClF,gBAAA,EAAC,GAAD;AAAA,UAAO,IAAI;AAAA,YAAE,eAAe,KAAS,MAAM,WAAW;AAAA,YAAO,KAAK;AAAA,YAAI,IAAI;AAAA,UAAG;AAAA,oBAA7E,CACG,EAAO,wCACN,gBAAA,EAAC,GAAD;AAAA,YAAO,IAAI;AAAA,cAAE,MAAM;AAAA,cAAG,IAAI;AAAA,YAAG;AAAA,sBAA7B,CACE,gBAAA,EAAC,GAAD;AAAA,cACE,cAAc,EAAK;AAAA,cACnB,WAAW;AAAA,cACX,OAAO,EAAa;AAAA,cACpB,MAAK;AAAA,cACL,UAAU;AAAA,YACX,CAAA,GACA,KACC,gBAAA,EAAC,GAAD;AAAA,cACE,IAAI;AAAA,gBACF,QAAQ;AAAA,gBACR,mBAAmB;AAAA,kBACjB,IAAI;AAAA,kBACJ,UAAU,EACR,SAAS,cACX;AAAA,gBACF;AAAA,cACF;AAAA,wBAEA,gBAAA,EAAC,GAAD,CAAoB,CAAA;AAAA,YACjB,CAAA,CAEF;AAAA,cAER,EAAO,sCACN,gBAAA,EAAC,GAAD;AAAA,YAAO,IAAI;AAAA,cAAE,MAAM;AAAA,cAAG,IAAI;AAAA,YAAG;AAAA,sBAA7B,CACE,gBAAA,EAAC,GAAD;AAAA,cACE,cAAc,EAAK;AAAA,cACnB,WAAW;AAAA,cACX,OAAO,EAAa;AAAA,cACpB,MAAK;AAAA,cACL,UAAU;AAAA,YACX,CAAA,GACA,KACC,gBAAA,EAAC,GAAD;AAAA,cACE,IAAI;AAAA,gBACF,QAAQ;AAAA,gBACR,mBAAmB;AAAA,kBACjB,IAAI;AAAA,kBACJ,UAAU,EACR,SAAS,cACX;AAAA,gBACF;AAAA,cACF;AAAA,wBAEA,gBAAA,EAAC,GAAD,CAAoB,CAAA;AAAA,YACjB,CAAA,CAEF;AAAA,YAEJ;AAAA;QACP,gBAAA,EAAC,GAAD;AAAA,UACE,UAAU,CAAC;AAAA,UACX,SAAS;AAAA,UACT,IAAI,EAAE,OAAO,GAAG;AAAA,UAChB,SAAQ;AAAA,oBAEP,EAAW;AAAA,QACN,CAAA;AAAA,MACH;AAAA,MACF;AAAA;AAEX,GAEA,IAAe,EAAS,CAAe"}
1
+ {"version":3,"file":"PersonalDetails.es.js","names":[],"sources":["../../../../src/settings/components/notifications/PersonalDetails.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Divider from '@mui/material/Divider'\nimport Stack from '@mui/material/Stack'\nimport TextField from '@mui/material/TextField'\n\nimport { H3 } from '@mxenabled/mxui'\n\nimport { useAppConfig, useGlobalCopyStore, useSettingsStore, useUserStore } from '../../../common'\nimport { type EditableUser } from '../../../core'\nimport { useDimensions } from '../../../common/hooks/useDimensions'\n\nimport VerifyEmailAction from '../profile/actions/VerifyEmailAction'\nimport VerifyPhoneAction from '../profile/actions/VerifyPhoneAction'\n\nconst PersonalDetails = () => {\n const { config } = useAppConfig()\n const [containerRef, { width }] = useDimensions()\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { updateUser } = useSettingsStore()\n const { user } = useUserStore()\n\n const [hasUnsavedChanges, setHasUnsavedChanges] = React.useState(false)\n const [modifiedUser, setModifiedUser] = React.useState<EditableUser>({\n email: user.email,\n phone: user.phone,\n })\n\n const showVerifyEmail = modifiedUser.email && !user.email_is_verified && !hasUnsavedChanges\n const showVerifyPhone = modifiedUser.phone && !user.phone_is_verified && !hasUnsavedChanges\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { name, value } = event.target\n const changedUser = { ...modifiedUser, [name]: value }\n\n setModifiedUser(changedUser)\n setHasUnsavedChanges(JSON.stringify({ ...user, ...changedUser }) !== JSON.stringify(user))\n }\n\n const handleSave = async () => {\n await updateUser({ ...user, ...modifiedUser })\n setHasUnsavedChanges(false)\n }\n\n return (\n <Stack ref={containerRef}>\n <Divider />\n <Stack sx={{ pt: 12 }}>\n <H3 sx={{ lineHeight: '20px', pb: 4, pt: 16 }}>{settingsCopy.personal_details}</H3>\n <Stack sx={{ flexDirection: width <= 768 ? 'column' : 'row', gap: 24, py: 16 }}>\n {config.display_email_edit_field_in_settings && (\n <Stack sx={{ flex: 1, pb: 14 }}>\n <TextField\n defaultValue={user.email}\n fullWidth={true}\n label={settingsCopy.email_address}\n name=\"email\"\n onChange={handleChange}\n />\n {showVerifyEmail && (\n <Box\n sx={{\n height: 20,\n '.MuiButton-root': {\n px: 0,\n ':hover': {\n bgcolor: 'transparent',\n },\n },\n }}\n >\n <VerifyEmailAction />\n </Box>\n )}\n </Stack>\n )}\n {config.display_sms_edit_field_in_settings && (\n <Stack sx={{ flex: 1, pb: 14 }}>\n <TextField\n defaultValue={user.phone}\n fullWidth={true}\n label={settingsCopy.mobile_number}\n name=\"phone\"\n onChange={handleChange}\n />\n {showVerifyPhone && (\n <Box\n sx={{\n height: 20,\n '.MuiButton-root': {\n px: 0,\n ':hover': {\n bgcolor: 'transparent',\n },\n },\n }}\n >\n <VerifyPhoneAction />\n </Box>\n )}\n </Stack>\n )}\n </Stack>\n <Button\n disabled={!hasUnsavedChanges}\n onClick={handleSave}\n sx={{ width: 84 }}\n variant=\"contained\"\n >\n {commonCopy.save_button}\n </Button>\n </Stack>\n </Stack>\n )\n}\n\nexport default observer(PersonalDetails)\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileTab.es.js","names":[],"sources":["../../../../src/settings/components/profile/ProfileTab.tsx"],"sourcesContent":["/* eslint-disable no-nested-ternary */\n\nimport React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { getUnixTime } from 'date-fns/getUnixTime'\n\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3'\nimport { DatePicker } from '@mui/x-date-pickers'\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'\n\nimport { alpha, useTheme } from '@mui/material/styles'\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport TextField from '@mui/material/TextField'\n\nimport { H3, P } from '@mxenabled/mxui'\n\nimport {\n useAppConfig,\n useGlobalCopyStore,\n useScreenSize,\n useSettingsStore,\n useUserStore,\n Dialog,\n} from '../../../common'\nimport { type EditableUser } from '../../../core'\nimport VerifyEmailAction from './actions/VerifyEmailAction'\nimport VerifyPhoneAction from './actions/VerifyPhoneAction'\n\ninterface ProfileFormProps {\n availableWidth?: number\n handleOnLeavClick?: () => void\n}\n\ntype UserInput = {\n [U in keyof EditableUser]: EditableUser[U]\n}\n\nconst ProfileForm: React.FC<ProfileFormProps> = ({ availableWidth, handleOnLeavClick }) => {\n const theme = useTheme()\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { isDesktop, isMobile, isSmallMobile, isTablet } = useScreenSize(availableWidth)\n const { config } = useAppConfig()\n const { updateUser } = useSettingsStore()\n const { user } = useUserStore()\n\n const [modifiedUser, setModifiedUser] = React.useState<EditableUser>({\n first_name: user.first_name,\n last_name: user.last_name,\n email: user.email,\n phone: user.phone,\n birthday: user.birthday,\n postal_code: user.postal_code,\n credit_score: user.credit_score,\n })\n const [hasUnsavedChanges, setHasUnsavedChanges] = React.useState(false)\n const [showLeaveDialog, setShowLeaveDialog] = React.useState(false)\n const boxRef = React.useRef<HTMLDivElement>(null)\n\n const showVerifyEmail = modifiedUser.email && !user.email_is_verified && !hasUnsavedChanges\n const showVerifyPhone = modifiedUser.phone && !user.phone_is_verified && !hasUnsavedChanges\n\n React.useEffect(() => {\n if (handleOnLeavClick) {\n const handleClickOutside = (event: MouseEvent) => {\n if (boxRef.current && !boxRef.current.contains(event.target as Node) && hasUnsavedChanges) {\n setShowLeaveDialog(true)\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }\n return undefined\n }, [hasUnsavedChanges])\n\n // eslint-disable-next-line consistent-return\n const formatReadableBirthday = () => {\n if (modifiedUser.birthday) {\n const utc = new Date(modifiedUser.birthday * 1000)\n const year = utc.getUTCFullYear()\n const month = utc.getUTCMonth()\n const day = utc.getUTCDate()\n return new Date(year, month, day)\n }\n }\n\n const handleSave = async () => {\n await updateUser({ ...user, ...modifiedUser })\n setHasUnsavedChanges(false)\n }\n\n const handleLeaveDialog = () => {\n setShowLeaveDialog(false)\n\n if (handleOnLeavClick) {\n handleOnLeavClick()\n }\n }\n\n const handleKeepEditing = () => {\n setShowLeaveDialog(false)\n }\n\n const handleInput = (update: UserInput) => {\n const changedUser = {\n ...modifiedUser,\n ...update,\n }\n setModifiedUser(changedUser)\n setHasUnsavedChanges(JSON.stringify({ ...user, ...changedUser }) !== JSON.stringify(user))\n }\n\n return (\n <>\n <Box\n component=\"form\"\n ref={boxRef}\n sx={{\n backgroundColor: 'background.paper',\n p: 24,\n width: isSmallMobile ? 320 : isTablet ? 680 : isDesktop ? 990 : 400,\n '& .MuiTextField-root': {\n width: isSmallMobile ? 272 : isTablet ? 328 : isDesktop ? 483 : 352,\n },\n }}\n >\n <H3>{settingsCopy.personal_details}</H3>\n <P variant=\"body1\">{settingsCopy.update_information}</P>\n <Stack\n direction={isMobile ? 'column' : 'row'}\n spacing={isMobile ? 44 : 24}\n sx={{ mb: 44, pt: 32 }}\n >\n <TextField\n defaultValue={modifiedUser.first_name}\n label={settingsCopy.first_name}\n onChange={(e) => handleInput({ first_name: e.target.value })}\n />\n <TextField\n defaultValue={modifiedUser.last_name}\n label={settingsCopy.last_name}\n onChange={(e) => handleInput({ last_name: e.target.value })}\n />\n </Stack>\n <Stack direction={isMobile ? 'column' : 'row'}>\n {config.display_email_edit_field_in_settings && (\n <Stack sx={{ mb: showVerifyEmail ? 20 : 44, mr: isMobile ? 0 : 24 }}>\n <TextField\n defaultValue={modifiedUser.email}\n label={settingsCopy.email_address}\n onChange={(e) => handleInput({ email: e.target.value })}\n />\n {showVerifyEmail && <VerifyEmailAction />}\n </Stack>\n )}\n {config.display_sms_edit_field_in_settings && (\n <Stack sx={{ mb: showVerifyPhone ? 20 : 44 }}>\n <TextField\n defaultValue={modifiedUser.phone}\n label={settingsCopy.mobile_number}\n onChange={(e) => handleInput({ phone: e.target.value })}\n type=\"tel\"\n />\n {showVerifyPhone && <VerifyPhoneAction />}\n </Stack>\n )}\n </Stack>\n <Stack direction={isMobile ? 'column' : 'row'} spacing={isMobile ? 44 : 24} sx={{ mb: 44 }}>\n <LocalizationProvider dateAdapter={AdapterDateFns}>\n <DatePicker\n label={settingsCopy.birthdate}\n onChange={(value) => handleInput({ birthday: getUnixTime(value as Date) })}\n slotProps={{\n nextIconButton: {\n sx: {\n color: 'primary.main',\n '&:hover': { backgroundColor: alpha(theme.palette.primary.light, 0.1) },\n },\n },\n previousIconButton: {\n sx: {\n color: 'primary.main',\n '&:hover': { backgroundColor: alpha(theme.palette.primary.light, 0.1) },\n },\n },\n }}\n sx={{\n width: '100%',\n '& .MuiIconButton-edgeEnd': {\n color: 'primary.main',\n '&:hover': { backgroundColor: alpha(theme.palette.primary.light, 0.1) },\n },\n }}\n value={formatReadableBirthday()}\n />\n </LocalizationProvider>\n <TextField\n defaultValue={modifiedUser.postal_code}\n label={settingsCopy.zip_code}\n onChange={(e) => handleInput({ postal_code: e.target.value })}\n />\n </Stack>\n <Stack>\n <TextField\n defaultValue={modifiedUser.credit_score}\n label={settingsCopy.credit_score}\n onChange={(e) => handleInput({ credit_score: Number(e.target.value) })}\n sx={{ mb: 44 }}\n />\n <Button\n disabled={!hasUnsavedChanges}\n onClick={handleSave}\n sx={{ width: isSmallMobile ? 272 : 124 }}\n variant=\"contained\"\n >\n {commonCopy.save_button}\n </Button>\n </Stack>\n </Box>\n <Dialog\n copy={{ title: settingsCopy.discard_changes }}\n isOpen={showLeaveDialog}\n onClose={handleKeepEditing}\n onSecondaryAction={handleLeaveDialog}\n primaryText={settingsCopy.keep_editing}\n secondaryText={settingsCopy.leave}\n >\n {settingsCopy.discard_changes_message}\n </Dialog>\n </>\n )\n}\n\nexport default observer(ProfileForm)\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProfileTab.es.js","names":[],"sources":["../../../../src/settings/components/profile/ProfileTab.tsx"],"sourcesContent":["/* eslint-disable no-nested-ternary */\n\nimport React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { getUnixTime } from 'date-fns/getUnixTime'\n\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3'\nimport { DatePicker } from '@mui/x-date-pickers'\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'\n\nimport { alpha, useTheme } from '@mui/material/styles'\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport TextField from '@mui/material/TextField'\n\nimport { H3, P } from '@mxenabled/mxui'\n\nimport {\n useAppConfig,\n useGlobalCopyStore,\n useScreenSize,\n useSettingsStore,\n useUserStore,\n Dialog,\n} from '../../../common'\nimport { type EditableUser } from '../../../core'\nimport VerifyEmailAction from './actions/VerifyEmailAction'\nimport VerifyPhoneAction from './actions/VerifyPhoneAction'\n\ninterface ProfileFormProps {\n availableWidth?: number\n handleOnLeavClick?: () => void\n}\n\ntype UserInput = {\n [U in keyof EditableUser]: EditableUser[U]\n}\n\nconst ProfileForm: React.FC<ProfileFormProps> = ({ availableWidth, handleOnLeavClick }) => {\n const theme = useTheme()\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { isDesktop, isMobile, isSmallMobile, isTablet } = useScreenSize(availableWidth)\n const { config } = useAppConfig()\n const { updateUser } = useSettingsStore()\n const { user } = useUserStore()\n\n const [modifiedUser, setModifiedUser] = React.useState<EditableUser>({\n first_name: user.first_name,\n last_name: user.last_name,\n email: user.email,\n phone: user.phone,\n birthday: user.birthday,\n postal_code: user.postal_code,\n credit_score: user.credit_score,\n })\n const [hasUnsavedChanges, setHasUnsavedChanges] = React.useState(false)\n const [showLeaveDialog, setShowLeaveDialog] = React.useState(false)\n const boxRef = React.useRef<HTMLDivElement>(null)\n\n const showVerifyEmail = modifiedUser.email && !user.email_is_verified && !hasUnsavedChanges\n const showVerifyPhone = modifiedUser.phone && !user.phone_is_verified && !hasUnsavedChanges\n\n React.useEffect(() => {\n if (handleOnLeavClick) {\n const handleClickOutside = (event: MouseEvent) => {\n if (boxRef.current && !boxRef.current.contains(event.target as Node) && hasUnsavedChanges) {\n setShowLeaveDialog(true)\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }\n return undefined\n }, [hasUnsavedChanges])\n\n // eslint-disable-next-line consistent-return\n const formatReadableBirthday = () => {\n if (modifiedUser.birthday) {\n const utc = new Date(modifiedUser.birthday * 1000)\n const year = utc.getUTCFullYear()\n const month = utc.getUTCMonth()\n const day = utc.getUTCDate()\n return new Date(year, month, day)\n }\n }\n\n const handleSave = async () => {\n await updateUser({ ...user, ...modifiedUser })\n setHasUnsavedChanges(false)\n }\n\n const handleLeaveDialog = () => {\n setShowLeaveDialog(false)\n\n if (handleOnLeavClick) {\n handleOnLeavClick()\n }\n }\n\n const handleKeepEditing = () => {\n setShowLeaveDialog(false)\n }\n\n const handleInput = (update: UserInput) => {\n const changedUser = {\n ...modifiedUser,\n ...update,\n }\n setModifiedUser(changedUser)\n setHasUnsavedChanges(JSON.stringify({ ...user, ...changedUser }) !== JSON.stringify(user))\n }\n\n return (\n <>\n <Box\n component=\"form\"\n ref={boxRef}\n sx={{\n backgroundColor: 'background.paper',\n p: 24,\n width: isSmallMobile ? 320 : isTablet ? 680 : isDesktop ? 990 : 400,\n '& .MuiTextField-root': {\n width: isSmallMobile ? 272 : isTablet ? 328 : isDesktop ? 483 : 352,\n },\n }}\n >\n <H3>{settingsCopy.personal_details}</H3>\n <P variant=\"body1\">{settingsCopy.update_information}</P>\n <Stack\n direction={isMobile ? 'column' : 'row'}\n spacing={isMobile ? 44 : 24}\n sx={{ mb: 44, pt: 32 }}\n >\n <TextField\n defaultValue={modifiedUser.first_name}\n label={settingsCopy.first_name}\n onChange={(e) => handleInput({ first_name: e.target.value })}\n />\n <TextField\n defaultValue={modifiedUser.last_name}\n label={settingsCopy.last_name}\n onChange={(e) => handleInput({ last_name: e.target.value })}\n />\n </Stack>\n <Stack direction={isMobile ? 'column' : 'row'}>\n {config.display_email_edit_field_in_settings && (\n <Stack sx={{ mb: showVerifyEmail ? 20 : 44, mr: isMobile ? 0 : 24 }}>\n <TextField\n defaultValue={modifiedUser.email}\n label={settingsCopy.email_address}\n onChange={(e) => handleInput({ email: e.target.value })}\n />\n {showVerifyEmail && <VerifyEmailAction />}\n </Stack>\n )}\n {config.display_sms_edit_field_in_settings && (\n <Stack sx={{ mb: showVerifyPhone ? 20 : 44 }}>\n <TextField\n defaultValue={modifiedUser.phone}\n label={settingsCopy.mobile_number}\n onChange={(e) => handleInput({ phone: e.target.value })}\n type=\"tel\"\n />\n {showVerifyPhone && <VerifyPhoneAction />}\n </Stack>\n )}\n </Stack>\n <Stack direction={isMobile ? 'column' : 'row'} spacing={isMobile ? 44 : 24} sx={{ mb: 44 }}>\n <LocalizationProvider dateAdapter={AdapterDateFns}>\n <DatePicker\n label={settingsCopy.birthdate}\n onChange={(value) => handleInput({ birthday: getUnixTime(value as Date) })}\n slotProps={{\n nextIconButton: {\n sx: {\n color: 'primary.main',\n '&:hover': { backgroundColor: alpha(theme.palette.primary.light, 0.1) },\n },\n },\n previousIconButton: {\n sx: {\n color: 'primary.main',\n '&:hover': { backgroundColor: alpha(theme.palette.primary.light, 0.1) },\n },\n },\n }}\n sx={{\n width: '100%',\n '& .MuiIconButton-edgeEnd': {\n color: 'primary.main',\n '&:hover': { backgroundColor: alpha(theme.palette.primary.light, 0.1) },\n },\n }}\n value={formatReadableBirthday()}\n />\n </LocalizationProvider>\n <TextField\n defaultValue={modifiedUser.postal_code}\n label={settingsCopy.zip_code}\n onChange={(e) => handleInput({ postal_code: e.target.value })}\n />\n </Stack>\n <Stack>\n <TextField\n defaultValue={modifiedUser.credit_score}\n label={settingsCopy.credit_score}\n onChange={(e) => handleInput({ credit_score: Number(e.target.value) })}\n sx={{ mb: 44 }}\n />\n <Button\n disabled={!hasUnsavedChanges}\n onClick={handleSave}\n sx={{ width: isSmallMobile ? 272 : 124 }}\n variant=\"contained\"\n >\n {commonCopy.save_button}\n </Button>\n </Stack>\n </Box>\n <Dialog\n copy={{ title: settingsCopy.discard_changes }}\n isOpen={showLeaveDialog}\n onClose={handleKeepEditing}\n onSecondaryAction={handleLeaveDialog}\n primaryText={settingsCopy.keep_editing}\n secondaryText={settingsCopy.leave}\n >\n {settingsCopy.discard_changes_message}\n </Dialog>\n </>\n )\n}\n\nexport default observer(ProfileForm)\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VerifyEmailAction.es.js","names":[],"sources":["../../../../../src/settings/components/profile/actions/VerifyEmailAction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\nimport { ChevronRight } from '@mxenabled/mx-icons'\n\nimport { Dialog, useGlobalCopyStore, useSettingsStore, useUserStore } from '../../../../common'\n\nconst VerifyEmailAction = observer(() => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { sendEmailVerification } = useSettingsStore()\n const { user } = useUserStore()\n const theme = useTheme()\n\n const [isOpen, setIsOpen] = React.useState(false)\n\n const handleClose = (): void => {\n setIsOpen(false)\n }\n\n const handleOpen = (): void => {\n setIsOpen(true)\n }\n\n return (\n <React.Fragment>\n <Button onClick={handleOpen} sx={{ height: 'auto', p: 4, width: 'fit-content' }}>\n <Text variant=\"body2\">{settingsCopy.verify_email}</Text>\n <ChevronRight />\n </Button>\n <Dialog\n copy={{ title: '' }}\n isOpen={isOpen}\n onClose={handleClose}\n onPrimaryAction={sendEmailVerification}\n onSecondaryAction={handleClose}\n primaryText={settingsCopy.send_verification}\n secondaryText={commonCopy.back}\n sx={{\n '& .MuiDialogContent-root': { pt: 0, width: 400 },\n\n '& .MuiToolbar-root:last-child': {\n gap: 16,\n padding: '32px 60px 48px',\n justifyContent: 'center',\n },\n }}\n >\n <Stack spacing={16} sx={{ px: 40, textAlign: 'center', width: '100%' }}>\n <Text bold={true} truncate={false} variant=\"body1\">\n {settingsCopy.confirm_your_email}\n </Text>\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.confirm_email}\n </Text>\n <Text\n sx={{\n border: `1px solid ${theme.palette.neutral.light}`,\n borderRadius: '4px',\n p: '16px 32px',\n }}\n variant=\"h3\"\n >\n {user.email}\n </Text>\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.verification_notice_email}\n </Text>\n </Stack>\n </Dialog>\n </React.Fragment>\n )\n})\n\nexport default VerifyEmailAction\n"],"mappings":";;;;;;;;;;AAYA,IAAM,IAAoB,EAAA,MAAe;AACvC,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB,GACpE,EAAE,uBAAA,EAAA,IAA0B,EAAiB,GAC7C,EAAE,MAAA,EAAA,IAAS,EAAa,GACxB,IAAQ,EAAS,GAEjB,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAK,GAE1C,IAAA,MAA0B;AAC9B,IAAA,EAAU,EAAK;AAAA,EACjB,GAEM,IAAA,MAAyB;AAC7B,IAAA,EAAU,EAAI;AAAA,EAChB;AAEA,SACE,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IAAQ,SAAS;AAAA,IAAY,IAAI;AAAA,MAAE,QAAQ;AAAA,MAAQ,GAAG;AAAA,MAAG,OAAO;AAAA,IAAc;AAAA,cAA9E,CACE,gBAAA,EAAC,GAAD;AAAA,MAAM,SAAQ;AAAA,gBAAS,EAAa;AAAA,IAAmB,CAAA,GACvD,gBAAA,EAAC,GAAD,CAAe,CAAA,CACT;AAAA,MACR,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM,EAAE,OAAO,GAAG;AAAA,IACV,QAAA;AAAA,IACR,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,aAAa,EAAa;AAAA,IAC1B,eAAe,EAAW;AAAA,IAC1B,IAAI;AAAA,MACF,4BAA4B;AAAA,QAAE,IAAI;AAAA,QAAG,OAAO;AAAA,MAAI;AAAA,MAEhD,iCAAiC;AAAA,QAC/B,KAAK;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,cAEA,gBAAA,EAAC,GAAD;AAAA,MAAO,SAAS;AAAA,MAAI,IAAI;AAAA,QAAE,IAAI;AAAA,QAAI,WAAW;AAAA,QAAU,OAAO;AAAA,MAAO;AAAA,gBAArE;AAAA,QACE,gBAAA,EAAC,GAAD;AAAA,UAAM,MAAM;AAAA,UAAM,UAAU;AAAA,UAAO,SAAQ;AAAA,oBACxC,EAAa;AAAA,QACV,CAAA;AAAA,QACN,gBAAA,EAAC,GAAD;AAAA,UAAM,UAAU;AAAA,UAAO,SAAQ;AAAA,oBAC5B,EAAa;AAAA,QACV,CAAA;AAAA,QACN,gBAAA,EAAC,GAAD;AAAA,UACE,IAAI;AAAA,YACF,QAAQ,aAAa,EAAM,QAAQ,QAAQ,KAAA;AAAA,YAC3C,cAAc;AAAA,YACd,GAAG;AAAA,UACL;AAAA,UACA,SAAQ;AAAA,oBAEP,EAAK;AAAA,QACF,CAAA;AAAA,QACN,gBAAA,EAAC,GAAD;AAAA,UAAM,UAAU;AAAA,UAAO,SAAQ;AAAA,oBAC5B,EAAa;AAAA,QACV,CAAA;AAAA,MACD;AAAA;EACD,CAAA,CACM,EAAA,CAAA;AAEpB,CAAC"}
1
+ {"version":3,"file":"VerifyEmailAction.es.js","names":[],"sources":["../../../../../src/settings/components/profile/actions/VerifyEmailAction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\nimport { ChevronRight } from '@mxenabled/mx-icons'\n\nimport { Dialog, useGlobalCopyStore, useSettingsStore, useUserStore } from '../../../../common'\n\nconst VerifyEmailAction = observer(() => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { sendEmailVerification } = useSettingsStore()\n const { user } = useUserStore()\n const theme = useTheme()\n\n const [isOpen, setIsOpen] = React.useState(false)\n\n const handleClose = (): void => {\n setIsOpen(false)\n }\n\n const handleOpen = (): void => {\n setIsOpen(true)\n }\n\n return (\n <React.Fragment>\n <Button onClick={handleOpen} sx={{ height: 'auto', p: 4, width: 'fit-content' }}>\n <Text variant=\"body2\">{settingsCopy.verify_email}</Text>\n <ChevronRight />\n </Button>\n <Dialog\n copy={{ title: '' }}\n isOpen={isOpen}\n onClose={handleClose}\n onPrimaryAction={sendEmailVerification}\n onSecondaryAction={handleClose}\n primaryText={settingsCopy.send_verification}\n secondaryText={commonCopy.back}\n sx={{\n '& .MuiDialogContent-root': { pt: 0, width: 400 },\n\n '& .MuiToolbar-root:last-child': {\n gap: 16,\n padding: '32px 60px 48px',\n justifyContent: 'center',\n },\n }}\n >\n <Stack spacing={16} sx={{ px: 40, textAlign: 'center', width: '100%' }}>\n <Text bold={true} truncate={false} variant=\"body1\">\n {settingsCopy.confirm_your_email}\n </Text>\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.confirm_email}\n </Text>\n <Text\n sx={{\n border: `1px solid ${theme.palette.neutral.light}`,\n borderRadius: '4px',\n p: '16px 32px',\n }}\n variant=\"h3\"\n >\n {user.email}\n </Text>\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.verification_notice_email}\n </Text>\n </Stack>\n </Dialog>\n </React.Fragment>\n )\n})\n\nexport default VerifyEmailAction\n"],"mappings":";;;;;;;;;;AAYA,IAAM,IAAoB,EAAA,MAAe;AACvC,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB,GACpE,EAAE,uBAAA,EAAA,IAA0B,EAAiB,GAC7C,EAAE,MAAA,EAAA,IAAS,EAAa,GACxB,IAAQ,EAAS,GAEjB,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAK,GAE1C,IAAA,MAA0B;AAC9B,IAAA,EAAU,EAAK;AAAA,EACjB,GAEM,IAAA,MAAyB;AAC7B,IAAA,EAAU,EAAI;AAAA,EAChB;AAEA,SACE,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IAAQ,SAAS;AAAA,IAAY,IAAI;AAAA,MAAE,QAAQ;AAAA,MAAQ,GAAG;AAAA,MAAG,OAAO;AAAA,IAAc;AAAA,IAA9E,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,MAAM,SAAQ;AAAA,MAAS,UAAA,EAAa;AAAA,IAAmB,CAAA,GACvD,gBAAA,EAAC,GAAD,CAAe,CAAA,CACT;AAAA,EACR,CAAA,GAAA,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM,EAAE,OAAO,GAAG;AAAA,IACV,QAAA;AAAA,IACR,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,aAAa,EAAa;AAAA,IAC1B,eAAe,EAAW;AAAA,IAC1B,IAAI;AAAA,MACF,4BAA4B;AAAA,QAAE,IAAI;AAAA,QAAG,OAAO;AAAA,MAAI;AAAA,MAEhD,iCAAiC;AAAA,QAC/B,KAAK;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,MAAO,SAAS;AAAA,MAAI,IAAI;AAAA,QAAE,IAAI;AAAA,QAAI,WAAW;AAAA,QAAU,OAAO;AAAA,MAAO;AAAA,MAArE,UAAA;AAAA,QACE,gBAAA,EAAC,GAAD;AAAA,UAAM,MAAM;AAAA,UAAM,UAAU;AAAA,UAAO,SAAQ;AAAA,UACxC,UAAA,EAAa;AAAA,QACV,CAAA;AAAA,QACN,gBAAA,EAAC,GAAD;AAAA,UAAM,UAAU;AAAA,UAAO,SAAQ;AAAA,UAC5B,UAAA,EAAa;AAAA,QACV,CAAA;AAAA,QACN,gBAAA,EAAC,GAAD;AAAA,UACE,IAAI;AAAA,YACF,QAAQ,aAAa,EAAM,QAAQ,QAAQ,KAAA;AAAA,YAC3C,cAAc;AAAA,YACd,GAAG;AAAA,UACL;AAAA,UACA,SAAQ;AAAA,UAEP,UAAA,EAAK;AAAA,QACF,CAAA;AAAA,QACN,gBAAA,EAAC,GAAD;AAAA,UAAM,UAAU;AAAA,UAAO,SAAQ;AAAA,UAC5B,UAAA,EAAa;AAAA,QACV,CAAA;AAAA,MACD;AAAA;EACD,CAAA,CACM,EAAA,CAAA;AAEpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VerifyPhoneAction.es.js","names":[],"sources":["../../../../../src/settings/components/profile/actions/VerifyPhoneAction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\nimport { ChevronRight } from '@mxenabled/mx-icons'\nimport { Dialog, useGlobalCopyStore, useSettingsStore, useUserStore } from '../../../../common'\nimport VerifyTokenAction from './VerifyTokenAction'\n\nconst VerifyPhoneAction = observer(() => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { sendPhoneVerification, verifyPhoneToken } = useSettingsStore()\n const { user } = useUserStore()\n const theme = useTheme()\n\n const [isOpen, setIsOpen] = React.useState(false)\n const [showVerifyToken, setShowVerifyToken] = React.useState(false)\n\n const handleClose = (): void => {\n setIsOpen(false)\n }\n\n const handleOpen = (): void => {\n setIsOpen(true)\n }\n\n const handlePhoneVerify = () => {\n sendPhoneVerification().finally(() => {\n setShowVerifyToken(true)\n })\n }\n\n const handleTokenVerify = (token: string) => {\n verifyPhoneToken(token).finally(() => {\n setShowVerifyToken(false)\n })\n }\n\n return (\n <React.Fragment>\n <Button onClick={handleOpen} sx={{ height: 'auto', p: 4, width: 'fit-content' }}>\n <Text variant=\"body2\">{settingsCopy.verify_phone}</Text>\n <ChevronRight />\n </Button>\n <Dialog\n copy={{ title: '' }}\n isOpen={isOpen}\n onClose={handleClose}\n onPrimaryAction={handlePhoneVerify}\n onSecondaryAction={handleClose}\n primaryText={settingsCopy.send_verification}\n secondaryText={commonCopy.back}\n sx={{\n '& .MuiDialogContent-root': { pt: 0, width: 400 },\n\n '& .MuiToolbar-root:last-child': {\n gap: 16,\n padding: '32px 60px 48px',\n justifyContent: 'center',\n },\n }}\n >\n <Stack spacing={16} sx={{ px: 40, textAlign: 'center', width: '100%' }}>\n <Text bold={true} truncate={false} variant=\"body1\">\n {settingsCopy.confirm_your_phone}\n </Text>\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.confirm_phone}\n </Text>\n <Text\n sx={{\n border: `1px solid ${theme.palette.neutral.light}`,\n borderRadius: '4px',\n p: '16px 32px',\n }}\n variant=\"h3\"\n >\n {user.phone}\n </Text>\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.verification_notice_phone}\n </Text>\n </Stack>\n </Dialog>\n <VerifyTokenAction\n handleClose={() => setShowVerifyToken(false)}\n handleVerify={handleTokenVerify}\n isOpen={showVerifyToken}\n />\n </React.Fragment>\n )\n})\n\nexport default VerifyPhoneAction\n"],"mappings":";;;;;;;;;;;AAYA,IAAM,IAAoB,EAAA,MAAe;AACvC,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB,GACpE,EAAE,uBAAA,GAAuB,kBAAA,EAAA,IAAqB,EAAiB,GAC/D,EAAE,MAAA,EAAA,IAAS,EAAa,GACxB,IAAQ,EAAS,GAEjB,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAK,GAC1C,CAAC,GAAiB,CAAA,IAAsB,EAAM,SAAS,EAAK,GAE5D,IAAA,MAA0B;AAC9B,IAAA,EAAU,EAAK;AAAA,EACjB,GAEM,IAAA,MAAyB;AAC7B,IAAA,EAAU,EAAI;AAAA,EAChB,GAEM,IAAA,MAA0B;AAC9B,IAAA,EAAsB,EAAE,QAAA,MAAc;AACpC,MAAA,EAAmB,EAAI;AAAA,IACzB,CAAC;AAAA,EACH,GAEM,IAAA,CAAqB,MAAkB;AAC3C,IAAA,EAAiB,CAAK,EAAE,QAAA,MAAc;AACpC,MAAA,EAAmB,EAAK;AAAA,IAC1B,CAAC;AAAA,EACH;AAEA,SACE,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA;AAAA,IACE,gBAAA,EAAC,GAAD;AAAA,MAAQ,SAAS;AAAA,MAAY,IAAI;AAAA,QAAE,QAAQ;AAAA,QAAQ,GAAG;AAAA,QAAG,OAAO;AAAA,MAAc;AAAA,gBAA9E,CACE,gBAAA,EAAC,GAAD;AAAA,QAAM,SAAQ;AAAA,kBAAS,EAAa;AAAA,MAAmB,CAAA,GACvD,gBAAA,EAAC,GAAD,CAAe,CAAA,CACT;AAAA;IACR,gBAAA,EAAC,GAAD;AAAA,MACE,MAAM,EAAE,OAAO,GAAG;AAAA,MACV,QAAA;AAAA,MACR,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,MACnB,aAAa,EAAa;AAAA,MAC1B,eAAe,EAAW;AAAA,MAC1B,IAAI;AAAA,QACF,4BAA4B;AAAA,UAAE,IAAI;AAAA,UAAG,OAAO;AAAA,QAAI;AAAA,QAEhD,iCAAiC;AAAA,UAC/B,KAAK;AAAA,UACL,SAAS;AAAA,UACT,gBAAgB;AAAA,QAClB;AAAA,MACF;AAAA,gBAEA,gBAAA,EAAC,GAAD;AAAA,QAAO,SAAS;AAAA,QAAI,IAAI;AAAA,UAAE,IAAI;AAAA,UAAI,WAAW;AAAA,UAAU,OAAO;AAAA,QAAO;AAAA,kBAArE;AAAA,UACE,gBAAA,EAAC,GAAD;AAAA,YAAM,MAAM;AAAA,YAAM,UAAU;AAAA,YAAO,SAAQ;AAAA,sBACxC,EAAa;AAAA,UACV,CAAA;AAAA,UACN,gBAAA,EAAC,GAAD;AAAA,YAAM,UAAU;AAAA,YAAO,SAAQ;AAAA,sBAC5B,EAAa;AAAA,UACV,CAAA;AAAA,UACN,gBAAA,EAAC,GAAD;AAAA,YACE,IAAI;AAAA,cACF,QAAQ,aAAa,EAAM,QAAQ,QAAQ,KAAA;AAAA,cAC3C,cAAc;AAAA,cACd,GAAG;AAAA,YACL;AAAA,YACA,SAAQ;AAAA,sBAEP,EAAK;AAAA,UACF,CAAA;AAAA,UACN,gBAAA,EAAC,GAAD;AAAA,YAAM,UAAU;AAAA,YAAO,SAAQ;AAAA,sBAC5B,EAAa;AAAA,UACV,CAAA;AAAA,QACD;AAAA;IACD,CAAA;AAAA,IACR,gBAAA,EAAC,GAAD;AAAA,MACE,aAAA,MAAmB,EAAmB,EAAK;AAAA,MAC3C,cAAc;AAAA,MACd,QAAQ;AAAA,IACT,CAAA;AAAA,EACa,EAAA,CAAA;AAEpB,CAAC"}
1
+ {"version":3,"file":"VerifyPhoneAction.es.js","names":[],"sources":["../../../../../src/settings/components/profile/actions/VerifyPhoneAction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\nimport { ChevronRight } from '@mxenabled/mx-icons'\nimport { Dialog, useGlobalCopyStore, useSettingsStore, useUserStore } from '../../../../common'\nimport VerifyTokenAction from './VerifyTokenAction'\n\nconst VerifyPhoneAction = observer(() => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { sendPhoneVerification, verifyPhoneToken } = useSettingsStore()\n const { user } = useUserStore()\n const theme = useTheme()\n\n const [isOpen, setIsOpen] = React.useState(false)\n const [showVerifyToken, setShowVerifyToken] = React.useState(false)\n\n const handleClose = (): void => {\n setIsOpen(false)\n }\n\n const handleOpen = (): void => {\n setIsOpen(true)\n }\n\n const handlePhoneVerify = () => {\n sendPhoneVerification().finally(() => {\n setShowVerifyToken(true)\n })\n }\n\n const handleTokenVerify = (token: string) => {\n verifyPhoneToken(token).finally(() => {\n setShowVerifyToken(false)\n })\n }\n\n return (\n <React.Fragment>\n <Button onClick={handleOpen} sx={{ height: 'auto', p: 4, width: 'fit-content' }}>\n <Text variant=\"body2\">{settingsCopy.verify_phone}</Text>\n <ChevronRight />\n </Button>\n <Dialog\n copy={{ title: '' }}\n isOpen={isOpen}\n onClose={handleClose}\n onPrimaryAction={handlePhoneVerify}\n onSecondaryAction={handleClose}\n primaryText={settingsCopy.send_verification}\n secondaryText={commonCopy.back}\n sx={{\n '& .MuiDialogContent-root': { pt: 0, width: 400 },\n\n '& .MuiToolbar-root:last-child': {\n gap: 16,\n padding: '32px 60px 48px',\n justifyContent: 'center',\n },\n }}\n >\n <Stack spacing={16} sx={{ px: 40, textAlign: 'center', width: '100%' }}>\n <Text bold={true} truncate={false} variant=\"body1\">\n {settingsCopy.confirm_your_phone}\n </Text>\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.confirm_phone}\n </Text>\n <Text\n sx={{\n border: `1px solid ${theme.palette.neutral.light}`,\n borderRadius: '4px',\n p: '16px 32px',\n }}\n variant=\"h3\"\n >\n {user.phone}\n </Text>\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.verification_notice_phone}\n </Text>\n </Stack>\n </Dialog>\n <VerifyTokenAction\n handleClose={() => setShowVerifyToken(false)}\n handleVerify={handleTokenVerify}\n isOpen={showVerifyToken}\n />\n </React.Fragment>\n )\n})\n\nexport default VerifyPhoneAction\n"],"mappings":";;;;;;;;;;;AAYA,IAAM,IAAoB,EAAA,MAAe;AACvC,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB,GACpE,EAAE,uBAAA,GAAuB,kBAAA,EAAA,IAAqB,EAAiB,GAC/D,EAAE,MAAA,EAAA,IAAS,EAAa,GACxB,IAAQ,EAAS,GAEjB,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAK,GAC1C,CAAC,GAAiB,CAAA,IAAsB,EAAM,SAAS,EAAK,GAE5D,IAAA,MAA0B;AAC9B,IAAA,EAAU,EAAK;AAAA,EACjB,GAEM,IAAA,MAAyB;AAC7B,IAAA,EAAU,EAAI;AAAA,EAChB,GAEM,IAAA,MAA0B;AAC9B,IAAA,EAAsB,EAAE,QAAA,MAAc;AACpC,MAAA,EAAmB,EAAI;AAAA,IACzB,CAAC;AAAA,EACH,GAEM,IAAA,CAAqB,MAAkB;AAC3C,IAAA,EAAiB,CAAK,EAAE,QAAA,MAAc;AACpC,MAAA,EAAmB,EAAK;AAAA,IAC1B,CAAC;AAAA,EACH;AAEA,SACE,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA;AAAA,IACE,gBAAA,EAAC,GAAD;AAAA,MAAQ,SAAS;AAAA,MAAY,IAAI;AAAA,QAAE,QAAQ;AAAA,QAAQ,GAAG;AAAA,QAAG,OAAO;AAAA,MAAc;AAAA,MAA9E,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,QAAM,SAAQ;AAAA,QAAS,UAAA,EAAa;AAAA,MAAmB,CAAA,GACvD,gBAAA,EAAC,GAAD,CAAe,CAAA,CACT;AAAA;IACR,gBAAA,EAAC,GAAD;AAAA,MACE,MAAM,EAAE,OAAO,GAAG;AAAA,MACV,QAAA;AAAA,MACR,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,MACnB,aAAa,EAAa;AAAA,MAC1B,eAAe,EAAW;AAAA,MAC1B,IAAI;AAAA,QACF,4BAA4B;AAAA,UAAE,IAAI;AAAA,UAAG,OAAO;AAAA,QAAI;AAAA,QAEhD,iCAAiC;AAAA,UAC/B,KAAK;AAAA,UACL,SAAS;AAAA,UACT,gBAAgB;AAAA,QAClB;AAAA,MACF;AAAA,MAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,QAAO,SAAS;AAAA,QAAI,IAAI;AAAA,UAAE,IAAI;AAAA,UAAI,WAAW;AAAA,UAAU,OAAO;AAAA,QAAO;AAAA,QAArE,UAAA;AAAA,UACE,gBAAA,EAAC,GAAD;AAAA,YAAM,MAAM;AAAA,YAAM,UAAU;AAAA,YAAO,SAAQ;AAAA,YACxC,UAAA,EAAa;AAAA,UACV,CAAA;AAAA,UACN,gBAAA,EAAC,GAAD;AAAA,YAAM,UAAU;AAAA,YAAO,SAAQ;AAAA,YAC5B,UAAA,EAAa;AAAA,UACV,CAAA;AAAA,UACN,gBAAA,EAAC,GAAD;AAAA,YACE,IAAI;AAAA,cACF,QAAQ,aAAa,EAAM,QAAQ,QAAQ,KAAA;AAAA,cAC3C,cAAc;AAAA,cACd,GAAG;AAAA,YACL;AAAA,YACA,SAAQ;AAAA,YAEP,UAAA,EAAK;AAAA,UACF,CAAA;AAAA,UACN,gBAAA,EAAC,GAAD;AAAA,YAAM,UAAU;AAAA,YAAO,SAAQ;AAAA,YAC5B,UAAA,EAAa;AAAA,UACV,CAAA;AAAA,QACD;AAAA;IACD,CAAA;AAAA,IACR,gBAAA,EAAC,GAAD;AAAA,MACE,aAAA,MAAmB,EAAmB,EAAK;AAAA,MAC3C,cAAc;AAAA,MACd,QAAQ;AAAA,IACT,CAAA;AAAA,EACa,EAAA,CAAA;AAEpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VerifyTokenAction.es.js","names":[],"sources":["../../../../../src/settings/components/profile/actions/VerifyTokenAction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Stack from '@mui/material/Stack'\nimport TextField from '@mui/material/TextField'\n\nimport { Dialog, useGlobalCopyStore } from '../../../../common'\n\ninterface ActionProps {\n handleClose: () => void\n handleVerify: (token: string) => void\n isOpen: boolean\n}\n\nconst VerifyTokenAction: React.FC<ActionProps> = observer(\n ({ handleClose, handleVerify, isOpen }) => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const [token, setToken] = React.useState('')\n\n return (\n <Dialog\n copy={{ title: settingsCopy.enter_verification_code }}\n isOpen={isOpen}\n onClose={handleClose}\n onPrimaryAction={() => handleVerify(token)}\n onSecondaryAction={handleClose}\n primaryText={settingsCopy.verify}\n secondaryText={commonCopy.cancel_button}\n sx={{\n '& .MuiDialogContent-root': { pt: 0, width: 400 },\n '& .MuiToolbar-root:last-child': {\n gap: 8,\n padding: 24,\n justifyContent: 'flex-end',\n },\n }}\n >\n <Stack>\n <TextField onChange={(e) => setToken(e.target.value)} sx={{ width: 352 }} value={token} />\n </Stack>\n </Dialog>\n )\n },\n)\n\nexport default VerifyTokenAction\n"],"mappings":";;;;;;;AAcA,IAAM,IAA2C,EAAA,CAC9C,EAAE,aAAA,GAAa,cAAA,GAAc,QAAA,EAAA,MAAa;AACzC,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB,GACpE,CAAC,GAAO,CAAA,IAAY,EAAM,SAAS,EAAE;AAE3C,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM,EAAE,OAAO,EAAa,wBAAwB;AAAA,IAC5C,QAAA;AAAA,IACR,SAAS;AAAA,IACT,iBAAA,MAAuB,EAAa,CAAK;AAAA,IACzC,mBAAmB;AAAA,IACnB,aAAa,EAAa;AAAA,IAC1B,eAAe,EAAW;AAAA,IAC1B,IAAI;AAAA,MACF,4BAA4B;AAAA,QAAE,IAAI;AAAA,QAAG,OAAO;AAAA,MAAI;AAAA,MAChD,iCAAiC;AAAA,QAC/B,KAAK;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,cAEA,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD;AAAA,MAAW,UAAA,CAAW,MAAM,EAAS,EAAE,OAAO,KAAK;AAAA,MAAG,IAAI,EAAE,OAAO,IAAI;AAAA,MAAG,OAAO;AAAA,IAAQ,CAAA,EACpF,CAAA;AAAA,EACD,CAAA;AAEZ,CACF"}
1
+ {"version":3,"file":"VerifyTokenAction.es.js","names":[],"sources":["../../../../../src/settings/components/profile/actions/VerifyTokenAction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Stack from '@mui/material/Stack'\nimport TextField from '@mui/material/TextField'\n\nimport { Dialog, useGlobalCopyStore } from '../../../../common'\n\ninterface ActionProps {\n handleClose: () => void\n handleVerify: (token: string) => void\n isOpen: boolean\n}\n\nconst VerifyTokenAction: React.FC<ActionProps> = observer(\n ({ handleClose, handleVerify, isOpen }) => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const [token, setToken] = React.useState('')\n\n return (\n <Dialog\n copy={{ title: settingsCopy.enter_verification_code }}\n isOpen={isOpen}\n onClose={handleClose}\n onPrimaryAction={() => handleVerify(token)}\n onSecondaryAction={handleClose}\n primaryText={settingsCopy.verify}\n secondaryText={commonCopy.cancel_button}\n sx={{\n '& .MuiDialogContent-root': { pt: 0, width: 400 },\n '& .MuiToolbar-root:last-child': {\n gap: 8,\n padding: 24,\n justifyContent: 'flex-end',\n },\n }}\n >\n <Stack>\n <TextField onChange={(e) => setToken(e.target.value)} sx={{ width: 352 }} value={token} />\n </Stack>\n </Dialog>\n )\n },\n)\n\nexport default VerifyTokenAction\n"],"mappings":";;;;;;;AAcA,IAAM,IAA2C,EAAA,CAC9C,EAAE,aAAA,GAAa,cAAA,GAAc,QAAA,EAAA,MAAa;AACzC,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB,GACpE,CAAC,GAAO,CAAA,IAAY,EAAM,SAAS,EAAE;AAE3C,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM,EAAE,OAAO,EAAa,wBAAwB;AAAA,IAC5C,QAAA;AAAA,IACR,SAAS;AAAA,IACT,iBAAA,MAAuB,EAAa,CAAK;AAAA,IACzC,mBAAmB;AAAA,IACnB,aAAa,EAAa;AAAA,IAC1B,eAAe,EAAW;AAAA,IAC1B,IAAI;AAAA,MACF,4BAA4B;AAAA,QAAE,IAAI;AAAA,QAAG,OAAO;AAAA,MAAI;AAAA,MAChD,iCAAiC;AAAA,QAC/B,KAAK;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IAEA,UAAA,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD;AAAA,MAAW,UAAA,CAAW,MAAM,EAAS,EAAE,OAAO,KAAK;AAAA,MAAG,IAAI,EAAE,OAAO,IAAI;AAAA,MAAG,OAAO;AAAA,IAAQ,CAAA,EACpF,CAAA;AAAA,EACD,CAAA;AAEZ,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionRulesTab.es.js","names":[],"sources":["../../../../src/settings/components/transactionrules/TransactionRulesTab.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport List from '@mui/material/List'\nimport Stack from '@mui/material/Stack'\n\nimport { H3, P } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore, useSettingsStore, useWidgetLoadTimer } from '../../../common'\nimport { TransactionRule } from '../../../core'\n\nimport EditRuleAction from './actions/EditRuleAction'\n\nconst TransactionRulesTab = observer(() => {\n const { settings: settingsCopy } = useGlobalCopyStore()\n const { loadTransactionRules, transactionRules } = useSettingsStore()\n const [isTabInitialized, setIsTabInitialized] = React.useState(false)\n\n useWidgetLoadTimer({\n widgetName: 'TransactionRulesTab',\n isLoaded: isTabInitialized,\n })\n\n React.useEffect(() => {\n loadTransactionRules().finally(() => setIsTabInitialized(true))\n }, [])\n\n return (\n <Stack sx={{ gap: 24, py: 24 }}>\n <Stack sx={{ px: 24 }}>\n <H3>{settingsCopy.transaction_rules_label}</H3>\n <P variant=\"body1\">{settingsCopy.transaction_rules_description}</P>\n </Stack>\n <List>\n {transactionRules.map((rule: TransactionRule, index: number) => (\n <EditRuleAction key={index} rule={rule} />\n ))}\n </List>\n </Stack>\n )\n})\n\nexport default TransactionRulesTab\n"],"mappings":";;;;;;;;;AAaA,IAAM,IAAsB,EAAA,MAAe;AACzC,QAAM,EAAE,UAAU,EAAA,IAAiB,EAAmB,GAChD,EAAE,sBAAA,GAAsB,kBAAA,EAAA,IAAqB,EAAiB,GAC9D,CAAC,GAAkB,CAAA,IAAuB,EAAM,SAAS,EAAK;AAEpE,SAAA,EAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC,GAED,EAAM,UAAA,MAAgB;AACpB,IAAA,EAAqB,EAAE,QAAA,MAAc,EAAoB,EAAI,CAAC;AAAA,EAChE,GAAG,CAAC,CAAC,GAGH,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI;AAAA,MAAE,KAAK;AAAA,MAAI,IAAI;AAAA,IAAG;AAAA,cAA7B,CACE,gBAAA,EAAC,GAAD;AAAA,MAAO,IAAI,EAAE,IAAI,GAAG;AAAA,gBAApB,CACE,gBAAA,EAAC,GAAD,EAAA,UAAK,EAAa,wBAA4B,CAAA,GAC9C,gBAAA,EAAC,GAAD;AAAA,QAAG,SAAQ;AAAA,kBAAS,EAAa;AAAA,MAAiC,CAAA,CAC7D;AAAA,QACP,gBAAA,EAAC,GAAD,EAAA,UACG,EAAiB,IAAA,CAAK,GAAuB,MAC5C,gBAAA,EAAC,GAAD,EAAkC,MAAA,EAAO,GAApB,CAAoB,CAC1C,EACG,CAAA,CACD;AAAA;AAEX,CAAC"}
1
+ {"version":3,"file":"TransactionRulesTab.es.js","names":[],"sources":["../../../../src/settings/components/transactionrules/TransactionRulesTab.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport List from '@mui/material/List'\nimport Stack from '@mui/material/Stack'\n\nimport { H3, P } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore, useSettingsStore, useWidgetLoadTimer } from '../../../common'\nimport { TransactionRule } from '../../../core'\n\nimport EditRuleAction from './actions/EditRuleAction'\n\nconst TransactionRulesTab = observer(() => {\n const { settings: settingsCopy } = useGlobalCopyStore()\n const { loadTransactionRules, transactionRules } = useSettingsStore()\n const [isTabInitialized, setIsTabInitialized] = React.useState(false)\n\n useWidgetLoadTimer({\n widgetName: 'TransactionRulesTab',\n isLoaded: isTabInitialized,\n })\n\n React.useEffect(() => {\n loadTransactionRules().finally(() => setIsTabInitialized(true))\n }, [])\n\n return (\n <Stack sx={{ gap: 24, py: 24 }}>\n <Stack sx={{ px: 24 }}>\n <H3>{settingsCopy.transaction_rules_label}</H3>\n <P variant=\"body1\">{settingsCopy.transaction_rules_description}</P>\n </Stack>\n <List>\n {transactionRules.map((rule: TransactionRule, index: number) => (\n <EditRuleAction key={index} rule={rule} />\n ))}\n </List>\n </Stack>\n )\n})\n\nexport default TransactionRulesTab\n"],"mappings":";;;;;;;;;AAaA,IAAM,IAAsB,EAAA,MAAe;AACzC,QAAM,EAAE,UAAU,EAAA,IAAiB,EAAmB,GAChD,EAAE,sBAAA,GAAsB,kBAAA,EAAA,IAAqB,EAAiB,GAC9D,CAAC,GAAkB,CAAA,IAAuB,EAAM,SAAS,EAAK;AAEpE,SAAA,EAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC,GAED,EAAM,UAAA,MAAgB;AACpB,IAAA,EAAqB,EAAE,QAAA,MAAc,EAAoB,EAAI,CAAC;AAAA,EAChE,GAAG,CAAC,CAAC,GAGH,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI;AAAA,MAAE,KAAK;AAAA,MAAI,IAAI;AAAA,IAAG;AAAA,IAA7B,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,MAAO,IAAI,EAAE,IAAI,GAAG;AAAA,MAApB,UAAA,CACE,gBAAA,EAAC,GAAD,EAAA,UAAK,EAAa,wBAA4B,CAAA,GAC9C,gBAAA,EAAC,GAAD;AAAA,QAAG,SAAQ;AAAA,QAAS,UAAA,EAAa;AAAA,MAAiC,CAAA,CAC7D;AAAA,IACP,CAAA,GAAA,gBAAA,EAAC,GAAD,EAAA,UACG,EAAiB,IAAA,CAAK,GAAuB,MAC5C,gBAAA,EAAC,GAAD,EAAkC,MAAA,EAAO,GAApB,CAAoB,CAC1C,EACG,CAAA,CACD;AAAA;AAEX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteRuleAction.es.js","names":[],"sources":["../../../../../src/settings/components/transactionrules/actions/DeleteRuleAction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\nimport { Text } from '@mxenabled/mxui'\nimport { Dialog, useGlobalCopyStore } from '../../../../common'\n\ninterface ActionProps {\n isOpen: boolean\n onClose: () => void\n onDelete: () => void\n}\n\nconst DeleteRuleAction: React.FC<ActionProps> = observer(({ onClose, onDelete, isOpen }) => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n\n return (\n <Dialog\n copy={{ title: settingsCopy.delete_rule }}\n isOpen={isOpen}\n onClose={onClose}\n onPrimaryAction={onDelete}\n onSecondaryAction={onClose}\n primaryColor=\"error\"\n primaryText={commonCopy.delete_button}\n secondaryColor=\"secondary\"\n secondaryText={commonCopy.cancel_button}\n sx={{ '& .MuiDialogContent-root': { pt: 0, width: 400 } }}\n >\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.delete_rule_confirm}\n </Text>\n </Dialog>\n )\n})\n\nexport default DeleteRuleAction\n"],"mappings":";;;;;;AAWA,IAAM,IAA0C,EAAA,CAAU,EAAE,SAAA,GAAS,UAAA,GAAU,QAAA,EAAA,MAAa;AAC1F,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB;AAE1E,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM,EAAE,OAAO,EAAa,YAAY;AAAA,IAChC,QAAA;AAAA,IACC,SAAA;AAAA,IACT,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,cAAa;AAAA,IACb,aAAa,EAAW;AAAA,IACxB,gBAAe;AAAA,IACf,eAAe,EAAW;AAAA,IAC1B,IAAI,EAAE,4BAA4B;AAAA,MAAE,IAAI;AAAA,MAAG,OAAO;AAAA,IAAI,EAAE;AAAA,cAExD,gBAAA,EAAC,GAAD;AAAA,MAAM,UAAU;AAAA,MAAO,SAAQ;AAAA,gBAC5B,EAAa;AAAA,IACV,CAAA;AAAA,EACA,CAAA;AAEZ,CAAC"}
1
+ {"version":3,"file":"DeleteRuleAction.es.js","names":[],"sources":["../../../../../src/settings/components/transactionrules/actions/DeleteRuleAction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\nimport { Text } from '@mxenabled/mxui'\nimport { Dialog, useGlobalCopyStore } from '../../../../common'\n\ninterface ActionProps {\n isOpen: boolean\n onClose: () => void\n onDelete: () => void\n}\n\nconst DeleteRuleAction: React.FC<ActionProps> = observer(({ onClose, onDelete, isOpen }) => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n\n return (\n <Dialog\n copy={{ title: settingsCopy.delete_rule }}\n isOpen={isOpen}\n onClose={onClose}\n onPrimaryAction={onDelete}\n onSecondaryAction={onClose}\n primaryColor=\"error\"\n primaryText={commonCopy.delete_button}\n secondaryColor=\"secondary\"\n secondaryText={commonCopy.cancel_button}\n sx={{ '& .MuiDialogContent-root': { pt: 0, width: 400 } }}\n >\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.delete_rule_confirm}\n </Text>\n </Dialog>\n )\n})\n\nexport default DeleteRuleAction\n"],"mappings":";;;;;;AAWA,IAAM,IAA0C,EAAA,CAAU,EAAE,SAAA,GAAS,UAAA,GAAU,QAAA,EAAA,MAAa;AAC1F,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB;AAE1E,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM,EAAE,OAAO,EAAa,YAAY;AAAA,IAChC,QAAA;AAAA,IACC,SAAA;AAAA,IACT,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,cAAa;AAAA,IACb,aAAa,EAAW;AAAA,IACxB,gBAAe;AAAA,IACf,eAAe,EAAW;AAAA,IAC1B,IAAI,EAAE,4BAA4B;AAAA,MAAE,IAAI;AAAA,MAAG,OAAO;AAAA,IAAI,EAAE;AAAA,IAExD,UAAA,gBAAA,EAAC,GAAD;AAAA,MAAM,UAAU;AAAA,MAAO,SAAQ;AAAA,MAC5B,UAAA,EAAa;AAAA,IACV,CAAA;AAAA,EACA,CAAA;AAEZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditPayeeAction.es.js","names":[],"sources":["../../../../../src/settings/components/transactionrules/actions/EditPayeeAction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport TextField from '@mui/material/TextField'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Dialog, useGlobalCopyStore, useSettingsStore } from '../../../../common'\nimport RuleListItem from '../components/RuleListItem'\n\nconst EditPayeeAction = observer(() => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { selectedRule: rule, updateRulePayee } = useSettingsStore()\n\n const theme = useTheme()\n\n const [isOpen, setIsOpen] = React.useState(false)\n const initialPayeeName = rule?.description ? rule.description : rule?.match_description\n\n const [payeeName, setPayeeName] = React.useState(initialPayeeName ? initialPayeeName : '')\n\n const handleOpen = (): void => {\n setIsOpen(true)\n }\n\n const handleSave = async () => {\n if (payeeName !== initialPayeeName && rule) {\n rule.description = payeeName\n await updateRulePayee(rule)\n setIsOpen(false)\n }\n }\n\n return (\n <React.Fragment>\n <RuleListItem\n onClick={handleOpen}\n primaryText={initialPayeeName}\n secondaryText={settingsCopy.payee}\n />\n <Dialog\n copy={{ title: settingsCopy.edit_payee }}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n onPrimaryAction={handleSave}\n onSecondaryAction={() => setIsOpen(false)}\n primaryText={commonCopy.save_button}\n secondaryText={commonCopy.cancel_button}\n sx={{\n '& .MuiDialogContent-root': { pt: 0, width: 400 },\n path: { fill: theme.palette.secondary.darker },\n }}\n >\n <TextField\n onChange={(e) => setPayeeName(e.target.value)}\n sx={{ width: 352 }}\n value={payeeName}\n />\n </Dialog>\n </React.Fragment>\n )\n})\n\nexport default EditPayeeAction\n"],"mappings":";;;;;;;;AASA,IAAM,IAAkB,EAAA,MAAe;AACrC,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB,GACpE,EAAE,cAAc,GAAM,iBAAA,EAAA,IAAoB,EAAiB,GAE3D,IAAQ,EAAS,GAEjB,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAK,GAC1C,IAAmB,GAAM,cAAc,EAAK,cAAc,GAAM,mBAEhE,CAAC,GAAW,CAAA,IAAgB,EAAM,SAAS,KAAsC,EAAE,GAEnF,IAAA,MAAyB;AAC7B,IAAA,EAAU,EAAI;AAAA,EAChB,GAEM,IAAa,YAAY;AAC7B,IAAI,MAAc,KAAoB,MACpC,EAAK,cAAc,GACnB,MAAM,EAAgB,CAAI,GAC1B,EAAU,EAAK;AAAA,EAEnB;AAEA,SACE,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IACE,SAAS;AAAA,IACT,aAAa;AAAA,IACb,eAAe,EAAa;AAAA,EAC7B,CAAA,GACD,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM,EAAE,OAAO,EAAa,WAAW;AAAA,IAC/B,QAAA;AAAA,IACR,SAAA,MAAe,EAAU,EAAK;AAAA,IAC9B,iBAAiB;AAAA,IACjB,mBAAA,MAAyB,EAAU,EAAK;AAAA,IACxC,aAAa,EAAW;AAAA,IACxB,eAAe,EAAW;AAAA,IAC1B,IAAI;AAAA,MACF,4BAA4B;AAAA,QAAE,IAAI;AAAA,QAAG,OAAO;AAAA,MAAI;AAAA,MAChD,MAAM,EAAE,MAAM,EAAM,QAAQ,UAAU,OAAO;AAAA,IAC/C;AAAA,cAEA,gBAAA,EAAC,GAAD;AAAA,MACE,UAAA,CAAW,MAAM,EAAa,EAAE,OAAO,KAAK;AAAA,MAC5C,IAAI,EAAE,OAAO,IAAI;AAAA,MACjB,OAAO;AAAA,IACR,CAAA;AAAA,EACK,CAAA,CACM,EAAA,CAAA;AAEpB,CAAC"}
1
+ {"version":3,"file":"EditPayeeAction.es.js","names":[],"sources":["../../../../../src/settings/components/transactionrules/actions/EditPayeeAction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport TextField from '@mui/material/TextField'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Dialog, useGlobalCopyStore, useSettingsStore } from '../../../../common'\nimport RuleListItem from '../components/RuleListItem'\n\nconst EditPayeeAction = observer(() => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { selectedRule: rule, updateRulePayee } = useSettingsStore()\n\n const theme = useTheme()\n\n const [isOpen, setIsOpen] = React.useState(false)\n const initialPayeeName = rule?.description ? rule.description : rule?.match_description\n\n const [payeeName, setPayeeName] = React.useState(initialPayeeName ? initialPayeeName : '')\n\n const handleOpen = (): void => {\n setIsOpen(true)\n }\n\n const handleSave = async () => {\n if (payeeName !== initialPayeeName && rule) {\n rule.description = payeeName\n await updateRulePayee(rule)\n setIsOpen(false)\n }\n }\n\n return (\n <React.Fragment>\n <RuleListItem\n onClick={handleOpen}\n primaryText={initialPayeeName}\n secondaryText={settingsCopy.payee}\n />\n <Dialog\n copy={{ title: settingsCopy.edit_payee }}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n onPrimaryAction={handleSave}\n onSecondaryAction={() => setIsOpen(false)}\n primaryText={commonCopy.save_button}\n secondaryText={commonCopy.cancel_button}\n sx={{\n '& .MuiDialogContent-root': { pt: 0, width: 400 },\n path: { fill: theme.palette.secondary.darker },\n }}\n >\n <TextField\n onChange={(e) => setPayeeName(e.target.value)}\n sx={{ width: 352 }}\n value={payeeName}\n />\n </Dialog>\n </React.Fragment>\n )\n})\n\nexport default EditPayeeAction\n"],"mappings":";;;;;;;;AASA,IAAM,IAAkB,EAAA,MAAe;AACrC,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB,GACpE,EAAE,cAAc,GAAM,iBAAA,EAAA,IAAoB,EAAiB,GAE3D,IAAQ,EAAS,GAEjB,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAK,GAC1C,IAAmB,GAAM,cAAc,EAAK,cAAc,GAAM,mBAEhE,CAAC,GAAW,CAAA,IAAgB,EAAM,SAAS,KAAsC,EAAE,GAEnF,IAAA,MAAyB;AAC7B,IAAA,EAAU,EAAI;AAAA,EAChB,GAEM,IAAa,YAAY;AAC7B,IAAI,MAAc,KAAoB,MACpC,EAAK,cAAc,GACnB,MAAM,EAAgB,CAAI,GAC1B,EAAU,EAAK;AAAA,EAEnB;AAEA,SACE,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IACE,SAAS;AAAA,IACT,aAAa;AAAA,IACb,eAAe,EAAa;AAAA,EAC7B,CAAA,GACD,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM,EAAE,OAAO,EAAa,WAAW;AAAA,IAC/B,QAAA;AAAA,IACR,SAAA,MAAe,EAAU,EAAK;AAAA,IAC9B,iBAAiB;AAAA,IACjB,mBAAA,MAAyB,EAAU,EAAK;AAAA,IACxC,aAAa,EAAW;AAAA,IACxB,eAAe,EAAW;AAAA,IAC1B,IAAI;AAAA,MACF,4BAA4B;AAAA,QAAE,IAAI;AAAA,QAAG,OAAO;AAAA,MAAI;AAAA,MAChD,MAAM,EAAE,MAAM,EAAM,QAAQ,UAAU,OAAO;AAAA,IAC/C;AAAA,IAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,MACE,UAAA,CAAW,MAAM,EAAa,EAAE,OAAO,KAAK;AAAA,MAC5C,IAAI,EAAE,OAAO,IAAI;AAAA,MACjB,OAAO;AAAA,IACR,CAAA;AAAA,EACK,CAAA,CACM,EAAA,CAAA;AAEpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditRuleDetails.es.js","names":[],"sources":["../../../../../src/settings/components/transactionrules/components/EditRuleDetails.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Divider from '@mui/material/Divider'\nimport ListSubheader from '@mui/material/ListSubheader'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { Drawer, useGlobalCopyStore } from '../../../../common'\n\nimport EditCategoryAction from '../actions/EditCategoryAction'\nimport EditPayeeAction from '../actions/EditPayeeAction'\nimport DeleteRuleAction from '../actions/DeleteRuleAction'\n\ninterface EditRuleDetailsProps {\n isOpen: boolean\n onClose: () => void\n onDelete: () => void\n}\n\nconst EditRuleDetails: React.FC<EditRuleDetailsProps> = observer(\n ({ isOpen, onClose, onDelete }) => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n\n const [showDeleteDialog, setShowDeleteDialog] = React.useState(false)\n\n return (\n <Drawer\n hasSecondaryAction={false}\n isOpen={isOpen}\n onClose={onClose}\n onPrimaryAction={() => {\n setShowDeleteDialog(true)\n }}\n primaryColor=\"error\"\n primaryText={commonCopy.delete_button}\n title={settingsCopy.edit_rule}\n >\n <ListSubheader>\n <Text bold={true} variant=\"caption\">\n {settingsCopy.details}\n </Text>\n </ListSubheader>\n\n <EditPayeeAction />\n <Divider sx={{ ml: 24 }} />\n <EditCategoryAction />\n <Divider sx={{ ml: 24 }} />\n <DeleteRuleAction\n isOpen={showDeleteDialog}\n onClose={() => setShowDeleteDialog(false)}\n onDelete={onDelete}\n />\n </Drawer>\n )\n },\n)\n\nexport default EditRuleDetails\n"],"mappings":";;;;;;;;;;;AAoBA,IAAM,IAAkD,EAAA,CACrD,EAAE,QAAA,GAAQ,SAAA,GAAS,UAAA,EAAA,MAAe;AACjC,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB,GAEpE,CAAC,GAAkB,CAAA,IAAuB,EAAM,SAAS,EAAK;AAEpE,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,oBAAoB;AAAA,IACZ,QAAA;AAAA,IACC,SAAA;AAAA,IACT,iBAAA,MAAuB;AACrB,MAAA,EAAoB,EAAI;AAAA,IAC1B;AAAA,IACA,cAAa;AAAA,IACb,aAAa,EAAW;AAAA,IACxB,OAAO,EAAa;AAAA,cATtB;AAAA,MAWE,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD;AAAA,QAAM,MAAM;AAAA,QAAM,SAAQ;AAAA,kBACvB,EAAa;AAAA,MACV,CAAA,EACO,CAAA;AAAA,MAEf,gBAAA,EAAC,GAAD,CAAkB,CAAA;AAAA,MAClB,gBAAA,EAAC,GAAD,EAAS,IAAI,EAAE,IAAI,GAAG,EAAI,CAAA;AAAA,MAC1B,gBAAA,EAAC,GAAD,CAAqB,CAAA;AAAA,MACrB,gBAAA,EAAC,GAAD,EAAS,IAAI,EAAE,IAAI,GAAG,EAAI,CAAA;AAAA,MAC1B,gBAAA,EAAC,GAAD;AAAA,QACE,QAAQ;AAAA,QACR,SAAA,MAAe,EAAoB,EAAK;AAAA,QAC9B,UAAA;AAAA,MACX,CAAA;AAAA,IACK;AAAA;AAEZ,CACF"}
1
+ {"version":3,"file":"EditRuleDetails.es.js","names":[],"sources":["../../../../../src/settings/components/transactionrules/components/EditRuleDetails.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Divider from '@mui/material/Divider'\nimport ListSubheader from '@mui/material/ListSubheader'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { Drawer, useGlobalCopyStore } from '../../../../common'\n\nimport EditCategoryAction from '../actions/EditCategoryAction'\nimport EditPayeeAction from '../actions/EditPayeeAction'\nimport DeleteRuleAction from '../actions/DeleteRuleAction'\n\ninterface EditRuleDetailsProps {\n isOpen: boolean\n onClose: () => void\n onDelete: () => void\n}\n\nconst EditRuleDetails: React.FC<EditRuleDetailsProps> = observer(\n ({ isOpen, onClose, onDelete }) => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n\n const [showDeleteDialog, setShowDeleteDialog] = React.useState(false)\n\n return (\n <Drawer\n hasSecondaryAction={false}\n isOpen={isOpen}\n onClose={onClose}\n onPrimaryAction={() => {\n setShowDeleteDialog(true)\n }}\n primaryColor=\"error\"\n primaryText={commonCopy.delete_button}\n title={settingsCopy.edit_rule}\n >\n <ListSubheader>\n <Text bold={true} variant=\"caption\">\n {settingsCopy.details}\n </Text>\n </ListSubheader>\n\n <EditPayeeAction />\n <Divider sx={{ ml: 24 }} />\n <EditCategoryAction />\n <Divider sx={{ ml: 24 }} />\n <DeleteRuleAction\n isOpen={showDeleteDialog}\n onClose={() => setShowDeleteDialog(false)}\n onDelete={onDelete}\n />\n </Drawer>\n )\n },\n)\n\nexport default EditRuleDetails\n"],"mappings":";;;;;;;;;;;AAoBA,IAAM,IAAkD,EAAA,CACrD,EAAE,QAAA,GAAQ,SAAA,GAAS,UAAA,EAAA,MAAe;AACjC,QAAM,EAAE,QAAQ,GAAY,UAAU,EAAA,IAAiB,EAAmB,GAEpE,CAAC,GAAkB,CAAA,IAAuB,EAAM,SAAS,EAAK;AAEpE,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,oBAAoB;AAAA,IACZ,QAAA;AAAA,IACC,SAAA;AAAA,IACT,iBAAA,MAAuB;AACrB,MAAA,EAAoB,EAAI;AAAA,IAC1B;AAAA,IACA,cAAa;AAAA,IACb,aAAa,EAAW;AAAA,IACxB,OAAO,EAAa;AAAA,IATtB,UAAA;AAAA,MAWE,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD;AAAA,QAAM,MAAM;AAAA,QAAM,SAAQ;AAAA,QACvB,UAAA,EAAa;AAAA,MACV,CAAA,EACO,CAAA;AAAA,MAEf,gBAAA,EAAC,GAAD,CAAkB,CAAA;AAAA,MAClB,gBAAA,EAAC,GAAD,EAAS,IAAI,EAAE,IAAI,GAAG,EAAI,CAAA;AAAA,MAC1B,gBAAA,EAAC,GAAD,CAAqB,CAAA;AAAA,MACrB,gBAAA,EAAC,GAAD,EAAS,IAAI,EAAE,IAAI,GAAG,EAAI,CAAA;AAAA,MAC1B,gBAAA,EAAC,GAAD;AAAA,QACE,QAAQ;AAAA,QACR,SAAA,MAAe,EAAoB,EAAK;AAAA,QAC9B,UAAA;AAAA,MACX,CAAA;AAAA,IACK;AAAA;AAEZ,CACF"}
@@ -1,26 +1,29 @@
1
1
  import "react";
2
- import { observer as i } from "mobx-react-lite";
3
- import { ChevronRight as s } from "@mxenabled/mx-icons";
4
- import { jsx as r, jsxs as p } from "react/jsx-runtime";
5
- import { useTheme as a } from "@mui/material/styles";
6
- import f from "@mui/material/ListItem";
7
- import n from "@mui/material/ListItemButton";
8
- import l from "@mui/material/ListItemIcon";
9
- import c from "@mui/material/ListItemText";
10
- var j = i(({ onClick: t, primaryText: o, secondaryText: e, sx: m }) => /* @__PURE__ */ r(f, {
11
- sx: { bgcolor: a().palette.background.paper },
12
- children: /* @__PURE__ */ p(n, {
13
- alignItems: "flex-start",
14
- onClick: t,
15
- sx: m,
16
- children: [/* @__PURE__ */ r(c, {
17
- primary: o,
18
- secondary: e
19
- }), /* @__PURE__ */ r(l, { children: /* @__PURE__ */ r(s, {}) })]
20
- })
21
- }));
2
+ import { observer as s } from "mobx-react-lite";
3
+ import { ChevronRight as p } from "@mxenabled/mx-icons";
4
+ import { jsx as r, jsxs as a } from "react/jsx-runtime";
5
+ import { useTheme as f } from "@mui/material/styles";
6
+ import n from "@mui/material/ListItem";
7
+ import c from "@mui/material/ListItemButton";
8
+ import l from "@mui/material/ListItemText";
9
+ import h from "@mui/material/ListItemIcon";
10
+ var y = s(({ onClick: t, primaryText: e, secondaryText: o, sx: m }) => {
11
+ const i = f();
12
+ return /* @__PURE__ */ r(n, {
13
+ sx: { bgcolor: i.palette.background.paper },
14
+ children: /* @__PURE__ */ a(c, {
15
+ alignItems: "flex-start",
16
+ onClick: t,
17
+ sx: m,
18
+ children: [/* @__PURE__ */ r(l, {
19
+ primary: e,
20
+ secondary: o
21
+ }), /* @__PURE__ */ r(h, { children: /* @__PURE__ */ r(p, {}) })]
22
+ })
23
+ });
24
+ });
22
25
  export {
23
- j as default
26
+ y as default
24
27
  };
25
28
 
26
29
  //# sourceMappingURL=RuleListItem.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RuleListItem.es.js","names":[],"sources":["../../../../../src/settings/components/transactionrules/components/RuleListItem.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\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 { useTheme } from '@mui/material/styles'\nimport { type SxProps } from '@mui/material/styles'\n\nimport { ChevronRight } from '@mxenabled/mx-icons'\n\ninterface RuleListItemProps {\n onClick: () => void\n primaryText?: string\n secondaryText?: string\n sx?: SxProps\n}\n\nconst RuleListItem: React.FC<RuleListItemProps> = observer(\n ({ onClick, primaryText, secondaryText, sx }) => {\n const theme = useTheme()\n\n return (\n <ListItem sx={{ bgcolor: theme.palette.background.paper }}>\n <ListItemButton alignItems=\"flex-start\" onClick={onClick} sx={sx}>\n <ListItemText primary={primaryText} secondary={secondaryText} />\n <ListItemIcon>\n <ChevronRight />\n </ListItemIcon>\n </ListItemButton>\n </ListItem>\n )\n },\n)\n\nexport default RuleListItem\n"],"mappings":";;;;;;;;;AAmBA,IAAM,IAA4C,EAAA,CAC/C,EAAE,SAAA,GAAS,aAAA,GAAa,eAAA,GAAe,IAAA,EAAA,MAIpC,gBAAA,EAAC,GAAD;AAAA,EAAU,IAAI,EAAE,SAHJ,EAGa,EAAM,QAAQ,WAAW,MAAM;AAAA,YACtD,gBAAA,EAAC,GAAD;AAAA,IAAgB,YAAW;AAAA,IAAsB,SAAA;AAAA,IAAa,IAAA;AAAA,cAA9D,CACE,gBAAA,EAAC,GAAD;AAAA,MAAc,SAAS;AAAA,MAAa,WAAW;AAAA,IAAgB,CAAA,GAC/D,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD,CAAe,CAAA,EACH,CAAA,CACA;AAAA;AACR,CAAA,CAGhB"}
1
+ {"version":3,"file":"RuleListItem.es.js","names":[],"sources":["../../../../../src/settings/components/transactionrules/components/RuleListItem.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\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 { useTheme } from '@mui/material/styles'\nimport { type SxProps } from '@mui/material/styles'\n\nimport { ChevronRight } from '@mxenabled/mx-icons'\n\ninterface RuleListItemProps {\n onClick: () => void\n primaryText?: string\n secondaryText?: string\n sx?: SxProps\n}\n\nconst RuleListItem: React.FC<RuleListItemProps> = observer(\n ({ onClick, primaryText, secondaryText, sx }) => {\n const theme = useTheme()\n\n return (\n <ListItem sx={{ bgcolor: theme.palette.background.paper }}>\n <ListItemButton alignItems=\"flex-start\" onClick={onClick} sx={sx}>\n <ListItemText primary={primaryText} secondary={secondaryText} />\n <ListItemIcon>\n <ChevronRight />\n </ListItemIcon>\n </ListItemButton>\n </ListItem>\n )\n },\n)\n\nexport default RuleListItem\n"],"mappings":";;;;;;;;;AAmBA,IAAM,IAA4C,EAAA,CAC/C,EAAE,SAAA,GAAS,aAAA,GAAa,eAAA,GAAe,IAAA,EAAA,MAAS;AAC/C,QAAM,IAAQ,EAAS;AAEvB,SACE,gBAAA,EAAC,GAAD;AAAA,IAAU,IAAI,EAAE,SAAS,EAAM,QAAQ,WAAW,MAAM;AAAA,IACtD,UAAA,gBAAA,EAAC,GAAD;AAAA,MAAgB,YAAW;AAAA,MAAsB,SAAA;AAAA,MAAa,IAAA;AAAA,MAA9D,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,QAAc,SAAS;AAAA,QAAa,WAAW;AAAA,MAAgB,CAAA,GAC/D,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD,CAAe,CAAA,EACH,CAAA,CACA;AAAA;EACR,CAAA;AAEd,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpendingMiniWidget.es.js","names":[],"sources":["../../src/spending/SpendingMiniWidget.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { endOfMonth } from 'date-fns/endOfMonth'\n\nimport {\n Loader,\n MiniWidgetContainer,\n useAccountStore,\n useCategoryStore,\n useGlobalCopyStore,\n useGlobalUiStore,\n useWidgetLoadTimer,\n} from '../common'\nimport { MiniWidgetProps } from '../core'\n\nimport MiniSpendingChart from './components/MiniSpendingChart'\n\nconst SpendingMiniWidget: React.FC<MiniWidgetProps> = ({ onPrimaryCtaClick, sx = {} }) => {\n const { isAccountDataLoaded, loadAccountData } = useAccountStore()\n const { dateRangeTotalsLoaded, categoriesLoaded, loadCategories, loadDateRangeCategoryTotals } =\n useCategoryStore()\n const { spending: spendingCopy } = useGlobalCopyStore()\n const { isInitialized, selectedAccounts } = useGlobalUiStore()\n\n useWidgetLoadTimer({\n widgetName: 'SpendingMiniWidget',\n isLoaded: dateRangeTotalsLoaded,\n })\n\n React.useEffect(() => {\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n if (!categoriesLoaded) {\n loadCategories().finally()\n }\n }, [])\n\n React.useEffect(() => {\n if (!isInitialized || !isAccountDataLoaded) return\n\n loadDateRangeCategoryTotals(\n selectedAccounts,\n startOfMonth(new Date()),\n endOfMonth(new Date()),\n ).finally()\n }, [isInitialized, isAccountDataLoaded, selectedAccounts])\n\n // Keep spinning until account data and the date-range totals have loaded.\n // Rendering before then would show a misleading $0 while accounts/totals are\n // still in flight. (MEW-3538)\n if (!isInitialized || !isAccountDataLoaded || !dateRangeTotalsLoaded) {\n return <Loader />\n }\n\n return (\n <MiniWidgetContainer\n className=\"mx-exp-spending-miniwidget\"\n onPrimaryCtaClick={onPrimaryCtaClick}\n primaryCtaLabel={spendingCopy.primary_cta}\n primaryCtaLabelAria={spendingCopy.primary_cta_aria}\n sx={{ height: '100%', ...sx }}\n title={spendingCopy.mini_title}\n >\n <MiniSpendingChart />\n </MiniWidgetContainer>\n )\n}\n\nexport default observer(SpendingMiniWidget)\n"],"mappings":";;;;;;;;;;AAkBA,IAAM,IAAA,CAAiD,EAAE,mBAAA,GAAmB,IAAA,IAAK,CAAC,EAAA,MAAQ;AACxF,QAAM,EAAE,qBAAA,GAAqB,iBAAA,EAAA,IAAoB,EAAgB,GAC3D,EAAE,uBAAA,GAAuB,kBAAA,GAAkB,gBAAA,GAAgB,6BAAA,EAAA,IAC/D,EAAiB,GACb,EAAE,UAAU,EAAA,IAAiB,EAAmB,GAChD,EAAE,eAAA,GAAe,kBAAA,EAAA,IAAqB,EAAiB;AA6B7D,SA3BA,EAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC,GAED,EAAM,UAAA,MAAgB;AACpB,IAAK,KACH,EAAgB,EAAE,QAAQ,GAEvB,KACH,EAAe,EAAE,QAAQ;AAAA,EAE7B,GAAG,CAAC,CAAC,GAEL,EAAM,UAAA,MAAgB;AACpB,IAAI,CAAC,KAAiB,CAAC,KAEvB,EACE,GACA,EAAa,oBAAI,KAAK,CAAC,GACvB,EAAW,oBAAI,KAAK,CAAC,CACvB,EAAE,QAAQ;AAAA,EACZ,GAAG;AAAA,IAAC;AAAA,IAAe;AAAA,IAAqB;AAAA,EAAgB,CAAC,GAKrD,CAAC,KAAiB,CAAC,KAAuB,CAAC,IACtC,gBAAA,EAAC,GAAD,CAAS,CAAA,IAIhB,gBAAA,EAAC,GAAD;AAAA,IACE,WAAU;AAAA,IACS,mBAAA;AAAA,IACnB,iBAAiB,EAAa;AAAA,IAC9B,qBAAqB,EAAa;AAAA,IAClC,IAAI;AAAA,MAAE,QAAQ;AAAA,MAAQ,GAAG;AAAA,IAAG;AAAA,IAC5B,OAAO,EAAa;AAAA,cAEpB,gBAAA,EAAC,GAAD,CAAoB,CAAA;AAAA,EACD,CAAA;AAEzB,GAEA,IAAe,EAAS,CAAkB"}
1
+ {"version":3,"file":"SpendingMiniWidget.es.js","names":[],"sources":["../../src/spending/SpendingMiniWidget.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { endOfMonth } from 'date-fns/endOfMonth'\n\nimport {\n Loader,\n MiniWidgetContainer,\n useAccountStore,\n useCategoryStore,\n useGlobalCopyStore,\n useGlobalUiStore,\n useWidgetLoadTimer,\n} from '../common'\nimport { MiniWidgetProps } from '../core'\n\nimport MiniSpendingChart from './components/MiniSpendingChart'\n\nconst SpendingMiniWidget: React.FC<MiniWidgetProps> = ({ onPrimaryCtaClick, sx = {} }) => {\n const { isAccountDataLoaded, loadAccountData } = useAccountStore()\n const { dateRangeTotalsLoaded, categoriesLoaded, loadCategories, loadDateRangeCategoryTotals } =\n useCategoryStore()\n const { spending: spendingCopy } = useGlobalCopyStore()\n const { isInitialized, selectedAccounts } = useGlobalUiStore()\n\n useWidgetLoadTimer({\n widgetName: 'SpendingMiniWidget',\n isLoaded: dateRangeTotalsLoaded,\n })\n\n React.useEffect(() => {\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n if (!categoriesLoaded) {\n loadCategories().finally()\n }\n }, [])\n\n React.useEffect(() => {\n if (!isInitialized || !isAccountDataLoaded) return\n\n loadDateRangeCategoryTotals(\n selectedAccounts,\n startOfMonth(new Date()),\n endOfMonth(new Date()),\n ).finally()\n }, [isInitialized, isAccountDataLoaded, selectedAccounts])\n\n // Keep spinning until account data and the date-range totals have loaded.\n // Rendering before then would show a misleading $0 while accounts/totals are\n // still in flight. (MEW-3538)\n if (!isInitialized || !isAccountDataLoaded || !dateRangeTotalsLoaded) {\n return <Loader />\n }\n\n return (\n <MiniWidgetContainer\n className=\"mx-exp-spending-miniwidget\"\n onPrimaryCtaClick={onPrimaryCtaClick}\n primaryCtaLabel={spendingCopy.primary_cta}\n primaryCtaLabelAria={spendingCopy.primary_cta_aria}\n sx={{ height: '100%', ...sx }}\n title={spendingCopy.mini_title}\n >\n <MiniSpendingChart />\n </MiniWidgetContainer>\n )\n}\n\nexport default observer(SpendingMiniWidget)\n"],"mappings":";;;;;;;;;;AAkBA,IAAM,IAAA,CAAiD,EAAE,mBAAA,GAAmB,IAAA,IAAK,CAAC,EAAA,MAAQ;AACxF,QAAM,EAAE,qBAAA,GAAqB,iBAAA,EAAA,IAAoB,EAAgB,GAC3D,EAAE,uBAAA,GAAuB,kBAAA,GAAkB,gBAAA,GAAgB,6BAAA,EAAA,IAC/D,EAAiB,GACb,EAAE,UAAU,EAAA,IAAiB,EAAmB,GAChD,EAAE,eAAA,GAAe,kBAAA,EAAA,IAAqB,EAAiB;AA6B7D,SA3BA,EAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC,GAED,EAAM,UAAA,MAAgB;AACpB,IAAK,KACH,EAAgB,EAAE,QAAQ,GAEvB,KACH,EAAe,EAAE,QAAQ;AAAA,EAE7B,GAAG,CAAC,CAAC,GAEL,EAAM,UAAA,MAAgB;AACpB,IAAI,CAAC,KAAiB,CAAC,KAEvB,EACE,GACA,EAAa,oBAAI,KAAK,CAAC,GACvB,EAAW,oBAAI,KAAK,CAAC,CACvB,EAAE,QAAQ;AAAA,EACZ,GAAG;AAAA,IAAC;AAAA,IAAe;AAAA,IAAqB;AAAA,EAAgB,CAAC,GAKrD,CAAC,KAAiB,CAAC,KAAuB,CAAC,IACtC,gBAAA,EAAC,GAAD,CAAS,CAAA,IAIhB,gBAAA,EAAC,GAAD;AAAA,IACE,WAAU;AAAA,IACS,mBAAA;AAAA,IACnB,iBAAiB,EAAa;AAAA,IAC9B,qBAAqB,EAAa;AAAA,IAClC,IAAI;AAAA,MAAE,QAAQ;AAAA,MAAQ,GAAG;AAAA,IAAG;AAAA,IAC5B,OAAO,EAAa;AAAA,IAEpB,UAAA,gBAAA,EAAC,GAAD,CAAoB,CAAA;AAAA,EACD,CAAA;AAEzB,GAEA,IAAe,EAAS,CAAkB"}
@@ -1,51 +1,60 @@
1
- import { useAccountStore as R, useAppConfig as W, useCategoryStore as v, useEvent as G, useGlobalCopyStore as O, useGlobalUiStore as b, useTransactionStore as x } from "../common/context/hooks.es.js";
2
- import { useWidgetLoadTimer as k } from "../common/hooks/useWidgetLoadTimer.es.js";
3
- import { ANALYTICS_EVENTS as p } from "../common/constants/Analytics.es.js";
4
- import w from "../common/components/Loader.es.js";
5
- import { WidgetContainer as F } from "../common/components/WidgetContainer.es.js";
6
- import M from "./components/Spending.es.js";
7
- import g from "react";
8
- import { observer as P } from "mobx-react-lite";
9
- import { endOfMonth as V } from "date-fns/endOfMonth";
10
- import { startOfMonth as j } from "date-fns/startOfMonth";
11
- import { startOfToday as u } from "date-fns/startOfToday";
12
- import { jsx as a } from "react/jsx-runtime";
13
- import z from "@mui/material/Box";
14
- import { parseISO as C } from "date-fns/parseISO";
15
- var B = ({ onBackClick: S, onMenuClick: D, sx: y = {} }) => {
16
- const { isAccountDataLoaded: e, loadAccountData: _ } = R(), { categoriesLoaded: E, dateRangeTotalsLoaded: i, loadCategories: L, loadDateRangeCategoryTotals: d } = v(), { isTransactionDataLoaded: T, loadTransactionData: A } = x(), { spending: h } = O(), { displayedDateRange: n, isInitialized: o, setDisplayedDate: s, selectedAccounts: r } = b(), { onEvent: f } = G(), { clientConfig: I } = W();
17
- k({
1
+ import { useAccountStore as b, useAppConfig as K, useCategoryStore as O, useEvent as j, useGlobalCopyStore as x, useGlobalUiStore as $, useTransactionStore as k } from "../common/context/hooks.es.js";
2
+ import { useWidgetLoadTimer as w } from "../common/hooks/useWidgetLoadTimer.es.js";
3
+ import { ANALYTICS_EVENTS as D } from "../common/constants/Analytics.es.js";
4
+ import F from "../common/components/Loader.es.js";
5
+ import { WidgetContainer as M } from "../common/components/WidgetContainer.es.js";
6
+ import P from "./components/Spending.es.js";
7
+ import n from "react";
8
+ import { observer as V } from "mobx-react-lite";
9
+ import { endOfMonth as z } from "date-fns/endOfMonth";
10
+ import { startOfMonth as B } from "date-fns/startOfMonth";
11
+ import { startOfToday as L } from "date-fns/startOfToday";
12
+ import { jsx as r } from "react/jsx-runtime";
13
+ import U from "@mui/material/Box";
14
+ import { parseISO as _ } from "date-fns/parseISO";
15
+ var E = (i, s, d) => `${i.getTime()}-${s.getTime()}-${[...d].sort().join(",")}`, Y = ({ onBackClick: i, onMenuClick: s, sx: d = {} }) => {
16
+ const { isAccountDataLoaded: o, loadAccountData: R } = b(), { categoriesLoaded: h, dateRangeTotalsLoaded: u, loadCategories: A, loadDateRangeCategoryTotals: g } = O(), { isTransactionDataLoaded: I, loadTransactionData: N } = k(), { spending: v } = x(), { displayedDateRange: t, isInitialized: a, setDisplayedDate: p, selectedAccounts: y, selectedAccountGuids: c } = $(), { onEvent: C } = j(), { clientConfig: W } = K();
17
+ w({
18
18
  widgetName: "SpendingWidget",
19
- isLoaded: i
20
- }), g.useEffect(() => {
21
- const t = I?.master?.deep_link_params, l = t?.date_range ? [C(t.date_range.from), C(t.date_range.to)] : [j(u()), V(u())], c = l[0], m = l[1];
22
- s(c, m), e || _().finally(), E || L().finally(), T || A().finally(), o && e && d(r, c, m).finally(), f(p.SPENDING_VIEW);
23
- }, []), g.useEffect(() => {
24
- o && e && d(r, n.start, n.end).finally();
19
+ isLoaded: u
20
+ });
21
+ const f = n.useRef(null), S = n.useRef(!1);
22
+ n.useEffect(() => {
23
+ const e = W?.master?.deep_link_params, T = e?.date_range ? [_(e.date_range.from), _(e.date_range.to)] : [B(L()), z(L())], l = T[0], m = T[1];
24
+ p(l, m), o || R().finally(), h || A().finally(), I || N().finally(), a && o && (f.current = E(l, m, c), g(y, l, m).finally()), C(D.SPENDING_VIEW);
25
+ }, []), n.useEffect(() => {
26
+ if (!S.current) {
27
+ S.current = !0;
28
+ return;
29
+ }
30
+ if (!a || !o) return;
31
+ const e = E(t.start, t.end, c);
32
+ f.current !== e && (f.current = e, g(y, t.start, t.end).finally());
25
33
  }, [
26
- n,
34
+ t.start.getTime(),
35
+ t.end.getTime(),
36
+ a,
27
37
  o,
28
- e,
29
- r
38
+ c.join(",")
30
39
  ]);
31
- const N = (t) => {
32
- s(t[0], t[1]);
40
+ const G = (e) => {
41
+ p(e[0], e[1]);
33
42
  };
34
- return !o || !e || !i ? /* @__PURE__ */ a(w, {}) : /* @__PURE__ */ a(F, {
35
- calendarActions: { onRangeChanged: N },
36
- onAccountsFilterClick: () => f(p.SPENDING_CLICK_FILTER),
37
- onBackClick: S,
38
- onMenuClick: D,
39
- sx: y,
40
- title: h.title,
41
- children: /* @__PURE__ */ a(z, {
43
+ return !a || !o || !u ? /* @__PURE__ */ r(F, {}) : /* @__PURE__ */ r(M, {
44
+ calendarActions: { onRangeChanged: G },
45
+ onAccountsFilterClick: () => C(D.SPENDING_CLICK_FILTER),
46
+ onBackClick: i,
47
+ onMenuClick: s,
48
+ sx: d,
49
+ title: v.title,
50
+ children: /* @__PURE__ */ r(U, {
42
51
  width: "100%",
43
- children: /* @__PURE__ */ a(M, {})
52
+ children: /* @__PURE__ */ r(P, {})
44
53
  })
45
54
  });
46
- }, nt = P(B);
55
+ }, de = V(Y);
47
56
  export {
48
- nt as default
57
+ de as default
49
58
  };
50
59
 
51
60
  //# sourceMappingURL=SpendingWidget.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpendingWidget.es.js","names":[],"sources":["../../src/spending/SpendingWidget.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { endOfMonth } from 'date-fns/endOfMonth'\n\nimport Box from '@mui/material/Box'\n\nimport type { DateRange } from '@mui/x-date-pickers-pro'\n\nimport {\n Loader,\n useAccountStore,\n useGlobalUiStore,\n WidgetContainer,\n useEvent,\n ANALYTICS_EVENTS,\n useGlobalCopyStore,\n useAppConfig,\n useCategoryStore,\n useTransactionStore,\n useWidgetLoadTimer,\n} from '../common'\n\nimport type { WidgetProps } from '../core'\n\nimport Spending from './components/Spending'\nimport { parseISO } from 'date-fns/parseISO'\n\ninterface RSpendingWidgetProps extends WidgetProps {\n onBackClick?: () => void\n}\n\nconst SpendingWidget: React.FC<RSpendingWidgetProps> = ({ onBackClick, onMenuClick, sx = {} }) => {\n const { isAccountDataLoaded, loadAccountData } = useAccountStore()\n const { categoriesLoaded, dateRangeTotalsLoaded, loadCategories, loadDateRangeCategoryTotals } =\n useCategoryStore()\n const { isTransactionDataLoaded, loadTransactionData } = useTransactionStore()\n const { spending: spendingCopy } = useGlobalCopyStore()\n const { displayedDateRange, isInitialized, setDisplayedDate, selectedAccounts } =\n useGlobalUiStore()\n const { onEvent } = useEvent()\n\n const { clientConfig } = useAppConfig()\n\n useWidgetLoadTimer({\n widgetName: 'SpendingWidget',\n isLoaded: dateRangeTotalsLoaded,\n })\n\n React.useEffect(() => {\n const dlp = clientConfig?.master?.deep_link_params\n\n const date_range = dlp?.date_range\n ? ([parseISO(dlp.date_range.from), parseISO(dlp.date_range.to)] as DateRange<Date>)\n : ([startOfMonth(startOfToday()), endOfMonth(startOfToday())] as DateRange<Date>)\n\n const startDate = date_range[0] as Date\n const endDate = date_range[1] as Date\n\n setDisplayedDate(startDate, endDate)\n\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n if (!categoriesLoaded) {\n loadCategories().finally()\n }\n if (!isTransactionDataLoaded) {\n loadTransactionData().finally()\n }\n\n // Load with the dates we just computed rather than reading from the store,\n // which may still hold a stale range set by a previously visited widget.\n if (isInitialized && isAccountDataLoaded) {\n loadDateRangeCategoryTotals(selectedAccounts, startDate, endDate).finally()\n }\n\n onEvent(ANALYTICS_EVENTS.SPENDING_VIEW)\n }, [])\n\n React.useEffect(() => {\n if (isInitialized && isAccountDataLoaded) {\n loadDateRangeCategoryTotals(\n selectedAccounts,\n displayedDateRange.start,\n displayedDateRange.end,\n ).finally()\n }\n }, [displayedDateRange, isInitialized, isAccountDataLoaded, selectedAccounts])\n\n const handleDateChanged = (range: DateRange<Date>) => {\n setDisplayedDate(range[0] as Date, range[1] as Date)\n }\n\n if (!isInitialized || !isAccountDataLoaded || !dateRangeTotalsLoaded) {\n return <Loader />\n }\n\n return (\n <WidgetContainer\n calendarActions={{ onRangeChanged: handleDateChanged }}\n onAccountsFilterClick={() => onEvent(ANALYTICS_EVENTS.SPENDING_CLICK_FILTER)}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n sx={sx}\n title={spendingCopy.title}\n >\n <Box width=\"100%\">\n <Spending />\n </Box>\n </WidgetContainer>\n )\n}\n\nexport default observer(SpendingWidget)\n"],"mappings":";;;;;;;;;;;;;;AAiCA,IAAM,IAAA,CAAkD,EAAE,aAAA,GAAa,aAAA,GAAa,IAAA,IAAK,CAAC,EAAA,MAAQ;AAChG,QAAM,EAAE,qBAAA,GAAqB,iBAAA,EAAA,IAAoB,EAAgB,GAC3D,EAAE,kBAAA,GAAkB,uBAAA,GAAuB,gBAAA,GAAgB,6BAAA,EAAA,IAC/D,EAAiB,GACb,EAAE,yBAAA,GAAyB,qBAAA,EAAA,IAAwB,EAAoB,GACvE,EAAE,UAAU,EAAA,IAAiB,EAAmB,GAChD,EAAE,oBAAA,GAAoB,eAAA,GAAe,kBAAA,GAAkB,kBAAA,EAAA,IAC3D,EAAiB,GACb,EAAE,SAAA,EAAA,IAAY,EAAS,GAEvB,EAAE,cAAA,EAAA,IAAiB,EAAa;AAEtC,EAAA,EAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC,GAED,EAAM,UAAA,MAAgB;AACpB,UAAM,IAAM,GAAc,QAAQ,kBAE5B,IAAa,GAAK,aACnB,CAAC,EAAS,EAAI,WAAW,IAAI,GAAG,EAAS,EAAI,WAAW,EAAE,CAAC,IAC3D,CAAC,EAAa,EAAa,CAAC,GAAG,EAAW,EAAa,CAAC,CAAC,GAExD,IAAY,EAAW,CAAA,GACvB,IAAU,EAAW,CAAA;AAE3B,IAAA,EAAiB,GAAW,CAAO,GAE9B,KACH,EAAgB,EAAE,QAAQ,GAEvB,KACH,EAAe,EAAE,QAAQ,GAEtB,KACH,EAAoB,EAAE,QAAQ,GAK5B,KAAiB,KACnB,EAA4B,GAAkB,GAAW,CAAO,EAAE,QAAQ,GAG5E,EAAQ,EAAiB,aAAa;AAAA,EACxC,GAAG,CAAC,CAAC,GAEL,EAAM,UAAA,MAAgB;AACpB,IAAI,KAAiB,KACnB,EACE,GACA,EAAmB,OACnB,EAAmB,GACrB,EAAE,QAAQ;AAAA,EAEd,GAAG;AAAA,IAAC;AAAA,IAAoB;AAAA,IAAe;AAAA,IAAqB;AAAA,EAAgB,CAAC;AAE7E,QAAM,IAAA,CAAqB,MAA2B;AACpD,IAAA,EAAiB,EAAM,CAAA,GAAY,EAAM,CAAA,CAAU;AAAA,EACrD;AAEA,SAAI,CAAC,KAAiB,CAAC,KAAuB,CAAC,IACtC,gBAAA,EAAC,GAAD,CAAS,CAAA,IAIhB,gBAAA,EAAC,GAAD;AAAA,IACE,iBAAiB,EAAE,gBAAgB,EAAkB;AAAA,IACrD,uBAAA,MAA6B,EAAQ,EAAiB,qBAAqB;AAAA,IAC9D,aAAA;AAAA,IACA,aAAA;AAAA,IACT,IAAA;AAAA,IACJ,OAAO,EAAa;AAAA,cAEpB,gBAAA,EAAC,GAAD;AAAA,MAAK,OAAM;AAAA,gBACT,gBAAA,EAAC,GAAD,CAAW,CAAA;AAAA,IACR,CAAA;AAAA,EACU,CAAA;AAErB,GAEA,KAAe,EAAS,CAAc"}
1
+ {"version":3,"file":"SpendingWidget.es.js","names":[],"sources":["../../src/spending/SpendingWidget.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { endOfMonth } from 'date-fns/endOfMonth'\n\nimport Box from '@mui/material/Box'\n\nimport type { DateRange } from '@mui/x-date-pickers-pro'\n\nimport {\n Loader,\n useAccountStore,\n useGlobalUiStore,\n WidgetContainer,\n useEvent,\n ANALYTICS_EVENTS,\n useGlobalCopyStore,\n useAppConfig,\n useCategoryStore,\n useTransactionStore,\n useWidgetLoadTimer,\n} from '../common'\n\nimport type { WidgetProps } from '../core'\n\nimport Spending from './components/Spending'\nimport { parseISO } from 'date-fns/parseISO'\n\n// Identifies the totals request implied by a range + account selection. Guids\n// are sorted so a reordered-but-equivalent selection compares equal.\nconst buildLoadKey = (start: Date, end: Date, guids: string[]) =>\n `${start.getTime()}-${end.getTime()}-${[...guids].sort().join(',')}`\n\ninterface RSpendingWidgetProps extends WidgetProps {\n onBackClick?: () => void\n}\n\nconst SpendingWidget: React.FC<RSpendingWidgetProps> = ({ onBackClick, onMenuClick, sx = {} }) => {\n const { isAccountDataLoaded, loadAccountData } = useAccountStore()\n const { categoriesLoaded, dateRangeTotalsLoaded, loadCategories, loadDateRangeCategoryTotals } =\n useCategoryStore()\n const { isTransactionDataLoaded, loadTransactionData } = useTransactionStore()\n const { spending: spendingCopy } = useGlobalCopyStore()\n const {\n displayedDateRange,\n isInitialized,\n setDisplayedDate,\n selectedAccounts,\n selectedAccountGuids,\n } = useGlobalUiStore()\n const { onEvent } = useEvent()\n\n const { clientConfig } = useAppConfig()\n\n useWidgetLoadTimer({\n widgetName: 'SpendingWidget',\n isLoaded: dateRangeTotalsLoaded,\n })\n\n // Tracks the request the mount effect already issued, so the change effect\n // doesn't repeat it on first paint. Only ever compared against a key built\n // from this effect's own deps, so a stale key cannot suppress a retry the\n // user can actually trigger: any retry-worthy action changes the range or the\n // account selection, which changes the key. (MEW-3910)\n const lastLoadedKeyRef = React.useRef<string | null>(null)\n // The change effect's first run happens in the same commit as the mount\n // effect, when `displayedDateRange` may still hold a previously visited\n // widget's range. The mount effect owns that initial load, so the change\n // effect skips its first run rather than fetching a range nobody asked for.\n const hasRunChangeEffectRef = React.useRef(false)\n\n React.useEffect(() => {\n const dlp = clientConfig?.master?.deep_link_params\n\n const date_range = dlp?.date_range\n ? ([parseISO(dlp.date_range.from), parseISO(dlp.date_range.to)] as DateRange<Date>)\n : ([startOfMonth(startOfToday()), endOfMonth(startOfToday())] as DateRange<Date>)\n\n const startDate = date_range[0] as Date\n const endDate = date_range[1] as Date\n\n setDisplayedDate(startDate, endDate)\n\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n if (!categoriesLoaded) {\n loadCategories().finally()\n }\n if (!isTransactionDataLoaded) {\n loadTransactionData().finally()\n }\n\n // Load with the dates we just computed rather than reading from the store,\n // which may still hold a stale range set by a previously visited widget.\n if (isInitialized && isAccountDataLoaded) {\n lastLoadedKeyRef.current = buildLoadKey(startDate, endDate, selectedAccountGuids)\n loadDateRangeCategoryTotals(selectedAccounts, startDate, endDate).finally()\n }\n\n onEvent(ANALYTICS_EVENTS.SPENDING_VIEW)\n }, [])\n\n // Reload whenever the date range or the account selection genuinely changes.\n // Depends on primitives, not on `displayedDateRange` / `selectedAccounts`,\n // whose object identities change even when the values do not. (MEW-3910)\n React.useEffect(() => {\n // Skipped before the readiness check so a cold start (where the mount effect\n // could not load yet) still reaches this effect once the store is ready.\n if (!hasRunChangeEffectRef.current) {\n hasRunChangeEffectRef.current = true\n return\n }\n\n if (!isInitialized || !isAccountDataLoaded) return\n\n const loadKey = buildLoadKey(\n displayedDateRange.start,\n displayedDateRange.end,\n selectedAccountGuids,\n )\n if (lastLoadedKeyRef.current === loadKey) return\n\n lastLoadedKeyRef.current = loadKey\n loadDateRangeCategoryTotals(\n selectedAccounts,\n displayedDateRange.start,\n displayedDateRange.end,\n ).finally()\n }, [\n displayedDateRange.start.getTime(),\n displayedDateRange.end.getTime(),\n isInitialized,\n isAccountDataLoaded,\n selectedAccountGuids.join(','),\n ])\n\n const handleDateChanged = (range: DateRange<Date>) => {\n setDisplayedDate(range[0] as Date, range[1] as Date)\n }\n\n if (!isInitialized || !isAccountDataLoaded || !dateRangeTotalsLoaded) {\n return <Loader />\n }\n\n return (\n <WidgetContainer\n calendarActions={{ onRangeChanged: handleDateChanged }}\n onAccountsFilterClick={() => onEvent(ANALYTICS_EVENTS.SPENDING_CLICK_FILTER)}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n sx={sx}\n title={spendingCopy.title}\n >\n <Box width=\"100%\">\n <Spending />\n </Box>\n </WidgetContainer>\n )\n}\n\nexport default observer(SpendingWidget)\n"],"mappings":";;;;;;;;;;;;;;AA+BA,IAAM,IAAA,CAAgB,GAAa,GAAW,MAC5C,GAAG,EAAM,QAAQ,CAAA,IAAK,EAAI,QAAQ,CAAA,IAAK,CAAC,GAAG,CAAK,EAAE,KAAK,EAAE,KAAK,GAAG,CAAA,IAM7D,IAAA,CAAkD,EAAE,aAAA,GAAa,aAAA,GAAa,IAAA,IAAK,CAAC,EAAA,MAAQ;AAChG,QAAM,EAAE,qBAAA,GAAqB,iBAAA,EAAA,IAAoB,EAAgB,GAC3D,EAAE,kBAAA,GAAkB,uBAAA,GAAuB,gBAAA,GAAgB,6BAAA,EAAA,IAC/D,EAAiB,GACb,EAAE,yBAAA,GAAyB,qBAAA,EAAA,IAAwB,EAAoB,GACvE,EAAE,UAAU,EAAA,IAAiB,EAAmB,GAChD,EACJ,oBAAA,GACA,eAAA,GACA,kBAAA,GACA,kBAAA,GACA,sBAAA,EAAA,IACE,EAAiB,GACf,EAAE,SAAA,EAAA,IAAY,EAAS,GAEvB,EAAE,cAAA,EAAA,IAAiB,EAAa;AAEtC,EAAA,EAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC;AAOD,QAAM,IAAmB,EAAM,OAAsB,IAAI,GAKnD,IAAwB,EAAM,OAAO,EAAK;AAEhD,EAAA,EAAM,UAAA,MAAgB;AACpB,UAAM,IAAM,GAAc,QAAQ,kBAE5B,IAAa,GAAK,aACnB,CAAC,EAAS,EAAI,WAAW,IAAI,GAAG,EAAS,EAAI,WAAW,EAAE,CAAC,IAC3D,CAAC,EAAa,EAAa,CAAC,GAAG,EAAW,EAAa,CAAC,CAAC,GAExD,IAAY,EAAW,CAAA,GACvB,IAAU,EAAW,CAAA;AAE3B,IAAA,EAAiB,GAAW,CAAO,GAE9B,KACH,EAAgB,EAAE,QAAQ,GAEvB,KACH,EAAe,EAAE,QAAQ,GAEtB,KACH,EAAoB,EAAE,QAAQ,GAK5B,KAAiB,MACnB,EAAiB,UAAU,EAAa,GAAW,GAAS,CAAoB,GAChF,EAA4B,GAAkB,GAAW,CAAO,EAAE,QAAQ,IAG5E,EAAQ,EAAiB,aAAa;AAAA,EACxC,GAAG,CAAC,CAAC,GAKL,EAAM,UAAA,MAAgB;AAGpB,QAAI,CAAC,EAAsB,SAAS;AAClC,MAAA,EAAsB,UAAU;AAChC;AAAA,IACF;AAEA,QAAI,CAAC,KAAiB,CAAC,EAAqB;AAE5C,UAAM,IAAU,EACd,EAAmB,OACnB,EAAmB,KACnB,CACF;AACA,IAAI,EAAiB,YAAY,MAEjC,EAAiB,UAAU,GAC3B,EACE,GACA,EAAmB,OACnB,EAAmB,GACrB,EAAE,QAAQ;AAAA,EACZ,GAAG;AAAA,IACD,EAAmB,MAAM,QAAQ;AAAA,IACjC,EAAmB,IAAI,QAAQ;AAAA,IAC/B;AAAA,IACA;AAAA,IACA,EAAqB,KAAK,GAAG;AAAA,EAC/B,CAAC;AAED,QAAM,IAAA,CAAqB,MAA2B;AACpD,IAAA,EAAiB,EAAM,CAAA,GAAY,EAAM,CAAA,CAAU;AAAA,EACrD;AAEA,SAAI,CAAC,KAAiB,CAAC,KAAuB,CAAC,IACtC,gBAAA,EAAC,GAAD,CAAS,CAAA,IAIhB,gBAAA,EAAC,GAAD;AAAA,IACE,iBAAiB,EAAE,gBAAgB,EAAkB;AAAA,IACrD,uBAAA,MAA6B,EAAQ,EAAiB,qBAAqB;AAAA,IAC9D,aAAA;AAAA,IACA,aAAA;AAAA,IACT,IAAA;AAAA,IACJ,OAAO,EAAa;AAAA,IAEpB,UAAA,gBAAA,EAAC,GAAD;AAAA,MAAK,OAAM;AAAA,MACT,UAAA,gBAAA,EAAC,GAAD,CAAW,CAAA;AAAA,IACR,CAAA;AAAA,EACU,CAAA;AAErB,GAEA,KAAe,EAAS,CAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"MiniSpendingChart.es.js","names":[],"sources":["../../../src/spending/components/MiniSpendingChart.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport Tab from '@mui/material/Tab'\nimport Tabs from '@mui/material/Tabs'\nimport { useTheme } from '@mui/material/styles'\n\nimport { useCategoryStore, useGlobalCopyStore } from '../../common'\nimport { getIncomeData, getSpendingData } from '../utils/SpendingData'\n\nimport SpendingTabLabel from './SpendingTabLabel'\nimport SpendingDonut from './SpendingDonut'\nimport SpendingLegend from './SpendingLegend'\n\nconst MiniSpendingChart = () => {\n const theme = useTheme()\n const { goals: goalsCopy, spending: spendingCopy } = useGlobalCopyStore()\n const { categories, dateRangeCategoryTotals } = useCategoryStore()\n\n const incomeColors = React.useMemo(\n () => [\n theme.palette.chartMono.chartMono5,\n theme.palette.chartMono.chartMono4,\n theme.palette.chartMono.chartMono3,\n theme.palette.chartMono.chartMono2,\n theme.palette.chartMono.chartMono1,\n theme.palette.chartMono.chartMono6,\n ],\n [theme],\n ) as string[]\n\n const [selectedId, setSelectedId] = React.useState('')\n const [selectedTab, setSelectedTab] = React.useState(0)\n\n const spendingData = React.useMemo(\n () => getSpendingData(categories, goalsCopy, theme, dateRangeCategoryTotals),\n [categories, dateRangeCategoryTotals],\n )\n\n const incomeData = React.useMemo(\n () => getIncomeData(categories, dateRangeCategoryTotals, incomeColors),\n [categories, dateRangeCategoryTotals, incomeColors],\n )\n\n const handleTabChange = (_event: React.SyntheticEvent, newValue: number) => {\n setSelectedTab(newValue)\n setSelectedId('')\n }\n\n const handleSelected = (id: string) => {\n setSelectedId(selectedId === id ? '' : id)\n }\n\n return (\n <Box width=\"100%\">\n <Tabs\n aria-label={spendingCopy.mini_title}\n onChange={handleTabChange}\n sx={{ touchAction: 'manipulation' }}\n value={selectedTab}\n variant=\"fullWidth\"\n >\n <Tab\n aria-controls=\"spending-tabpanel\"\n id=\"spending-tab\"\n label={\n <SpendingTabLabel\n amount={spendingData.totalAmount}\n label={spendingCopy.spend_tab_title}\n variant=\"mini\"\n />\n }\n tabIndex={selectedTab === 0 ? 0 : -1}\n />\n <Tab\n aria-controls=\"income-tabpanel\"\n id=\"income-tab\"\n label={\n <SpendingTabLabel\n amount={incomeData.totalAmount}\n label={spendingCopy.income_tab_title}\n variant=\"mini\"\n />\n }\n tabIndex={selectedTab === 1 ? 0 : -1}\n />\n </Tabs>\n <Box\n aria-labelledby=\"spending-tab\"\n hidden={selectedTab !== 0}\n id=\"spending-tabpanel\"\n role=\"tabpanel\"\n >\n <Stack direction=\"row\" gap={16} justifyContent={'center'} p={24}>\n <SpendingDonut\n data={spendingData}\n onSelected={handleSelected}\n selectedId={selectedId}\n totalLabel={spendingCopy.total_spending}\n />\n\n <SpendingLegend data={spendingData} onSelected={handleSelected} selectedId={selectedId} />\n </Stack>\n </Box>\n <Box\n aria-labelledby=\"income-tab\"\n hidden={selectedTab !== 1}\n id=\"income-tabpanel\"\n role=\"tabpanel\"\n >\n <Stack direction=\"row\" gap={16} justifyContent={'center'} p={24}>\n <SpendingDonut\n data={incomeData}\n isIncome={true}\n onSelected={handleSelected}\n selectedId={selectedId}\n totalLabel={spendingCopy.total_income}\n />\n\n <SpendingLegend data={incomeData} onSelected={handleSelected} selectedId={selectedId} />\n </Stack>\n </Box>\n </Box>\n )\n}\n\nexport default observer(MiniSpendingChart)\n"],"mappings":"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"}
1
+ {"version":3,"file":"MiniSpendingChart.es.js","names":[],"sources":["../../../src/spending/components/MiniSpendingChart.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport Tab from '@mui/material/Tab'\nimport Tabs from '@mui/material/Tabs'\nimport { useTheme } from '@mui/material/styles'\n\nimport { useCategoryStore, useGlobalCopyStore } from '../../common'\nimport { getIncomeData, getSpendingData } from '../utils/SpendingData'\n\nimport SpendingTabLabel from './SpendingTabLabel'\nimport SpendingDonut from './SpendingDonut'\nimport SpendingLegend from './SpendingLegend'\n\nconst MiniSpendingChart = () => {\n const theme = useTheme()\n const { goals: goalsCopy, spending: spendingCopy } = useGlobalCopyStore()\n const { categories, dateRangeCategoryTotals } = useCategoryStore()\n\n const incomeColors = React.useMemo(\n () => [\n theme.palette.chartMono.chartMono5,\n theme.palette.chartMono.chartMono4,\n theme.palette.chartMono.chartMono3,\n theme.palette.chartMono.chartMono2,\n theme.palette.chartMono.chartMono1,\n theme.palette.chartMono.chartMono6,\n ],\n [theme],\n ) as string[]\n\n const [selectedId, setSelectedId] = React.useState('')\n const [selectedTab, setSelectedTab] = React.useState(0)\n\n const spendingData = React.useMemo(\n () => getSpendingData(categories, goalsCopy, theme, dateRangeCategoryTotals),\n [categories, dateRangeCategoryTotals],\n )\n\n const incomeData = React.useMemo(\n () => getIncomeData(categories, dateRangeCategoryTotals, incomeColors),\n [categories, dateRangeCategoryTotals, incomeColors],\n )\n\n const handleTabChange = (_event: React.SyntheticEvent, newValue: number) => {\n setSelectedTab(newValue)\n setSelectedId('')\n }\n\n const handleSelected = (id: string) => {\n setSelectedId(selectedId === id ? '' : id)\n }\n\n return (\n <Box width=\"100%\">\n <Tabs\n aria-label={spendingCopy.mini_title}\n onChange={handleTabChange}\n sx={{ touchAction: 'manipulation' }}\n value={selectedTab}\n variant=\"fullWidth\"\n >\n <Tab\n aria-controls=\"spending-tabpanel\"\n id=\"spending-tab\"\n label={\n <SpendingTabLabel\n amount={spendingData.totalAmount}\n label={spendingCopy.spend_tab_title}\n variant=\"mini\"\n />\n }\n tabIndex={selectedTab === 0 ? 0 : -1}\n />\n <Tab\n aria-controls=\"income-tabpanel\"\n id=\"income-tab\"\n label={\n <SpendingTabLabel\n amount={incomeData.totalAmount}\n label={spendingCopy.income_tab_title}\n variant=\"mini\"\n />\n }\n tabIndex={selectedTab === 1 ? 0 : -1}\n />\n </Tabs>\n <Box\n aria-labelledby=\"spending-tab\"\n hidden={selectedTab !== 0}\n id=\"spending-tabpanel\"\n role=\"tabpanel\"\n >\n <Stack direction=\"row\" gap={16} justifyContent={'center'} p={24}>\n <SpendingDonut\n data={spendingData}\n onSelected={handleSelected}\n selectedId={selectedId}\n totalLabel={spendingCopy.total_spending}\n />\n\n <SpendingLegend data={spendingData} onSelected={handleSelected} selectedId={selectedId} />\n </Stack>\n </Box>\n <Box\n aria-labelledby=\"income-tab\"\n hidden={selectedTab !== 1}\n id=\"income-tabpanel\"\n role=\"tabpanel\"\n >\n <Stack direction=\"row\" gap={16} justifyContent={'center'} p={24}>\n <SpendingDonut\n data={incomeData}\n isIncome={true}\n onSelected={handleSelected}\n selectedId={selectedId}\n totalLabel={spendingCopy.total_income}\n />\n\n <SpendingLegend data={incomeData} onSelected={handleSelected} selectedId={selectedId} />\n </Stack>\n </Box>\n </Box>\n )\n}\n\nexport default observer(MiniSpendingChart)\n"],"mappings":";;;;;;;;;;;;;AAgBA,IAAM,IAAA,MAA0B;AAC9B,QAAM,IAAQ,EAAS,GACjB,EAAE,OAAO,GAAW,UAAU,EAAA,IAAiB,EAAmB,GAClE,EAAE,YAAA,GAAY,yBAAA,EAAA,IAA4B,EAAiB,GAE3D,IAAe,EAAM,QAAA,MACnB;AAAA,IACJ,EAAM,QAAQ,UAAU;AAAA,IACxB,EAAM,QAAQ,UAAU;AAAA,IACxB,EAAM,QAAQ,UAAU;AAAA,IACxB,EAAM,QAAQ,UAAU;AAAA,IACxB,EAAM,QAAQ,UAAU;AAAA,IACxB,EAAM,QAAQ,UAAU;AAAA,EAC1B,GACA,CAAC,CAAK,CACR,GAEM,CAAC,GAAY,CAAA,IAAiB,EAAM,SAAS,EAAE,GAC/C,CAAC,GAAa,CAAA,IAAkB,EAAM,SAAS,CAAC,GAEhD,IAAe,EAAM,QAAA,MACnB,EAAgB,GAAY,GAAW,GAAO,CAAuB,GAC3E,CAAC,GAAY,CAAuB,CACtC,GAEM,IAAa,EAAM,QAAA,MACjB,EAAc,GAAY,GAAyB,CAAY,GACrE;AAAA,IAAC;AAAA,IAAY;AAAA,IAAyB;AAAA,EAAY,CACpD,GAEM,IAAA,CAAmB,GAA8B,MAAqB;AAC1E,IAAA,EAAe,CAAQ,GACvB,EAAc,EAAE;AAAA,EAClB,GAEM,IAAA,CAAkB,MAAe;AACrC,IAAA,EAAc,MAAe,IAAK,KAAK,CAAE;AAAA,EAC3C;AAEA,SACE,gBAAA,EAAC,GAAD;AAAA,IAAK,OAAM;AAAA,IAAX,UAAA;AAAA,MACE,gBAAA,EAAC,GAAD;AAAA,QACE,cAAY,EAAa;AAAA,QACzB,UAAU;AAAA,QACV,IAAI,EAAE,aAAa,eAAe;AAAA,QAClC,OAAO;AAAA,QACP,SAAQ;AAAA,QALV,UAAA,CAOE,gBAAA,EAAC,GAAD;AAAA,UACE,iBAAc;AAAA,UACd,IAAG;AAAA,UACH,OACE,gBAAA,EAAC,GAAD;AAAA,YACE,QAAQ,EAAa;AAAA,YACrB,OAAO,EAAa;AAAA,YACpB,SAAQ;AAAA,UACT,CAAA;AAAA,UAEH,UAAU,MAAgB,IAAI,IAAI;AAAA,QACnC,CAAA,GACD,gBAAA,EAAC,GAAD;AAAA,UACE,iBAAc;AAAA,UACd,IAAG;AAAA,UACH,OACE,gBAAA,EAAC,GAAD;AAAA,YACE,QAAQ,EAAW;AAAA,YACnB,OAAO,EAAa;AAAA,YACpB,SAAQ;AAAA,UACT,CAAA;AAAA,UAEH,UAAU,MAAgB,IAAI,IAAI;AAAA,QACnC,CAAA,CACG;AAAA;MACN,gBAAA,EAAC,GAAD;AAAA,QACE,mBAAgB;AAAA,QAChB,QAAQ,MAAgB;AAAA,QACxB,IAAG;AAAA,QACH,MAAK;AAAA,QAEL,UAAA,gBAAA,EAAC,GAAD;AAAA,UAAO,WAAU;AAAA,UAAM,KAAK;AAAA,UAAI,gBAAgB;AAAA,UAAU,GAAG;AAAA,UAA7D,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,YACE,MAAM;AAAA,YACN,YAAY;AAAA,YACA,YAAA;AAAA,YACZ,YAAY,EAAa;AAAA,UAC1B,CAAA,GAED,gBAAA,EAAC,GAAD;AAAA,YAAgB,MAAM;AAAA,YAAc,YAAY;AAAA,YAA4B,YAAA;AAAA,UAAa,CAAA,CACpF;AAAA;MACJ,CAAA;AAAA,MACL,gBAAA,EAAC,GAAD;AAAA,QACE,mBAAgB;AAAA,QAChB,QAAQ,MAAgB;AAAA,QACxB,IAAG;AAAA,QACH,MAAK;AAAA,QAEL,UAAA,gBAAA,EAAC,GAAD;AAAA,UAAO,WAAU;AAAA,UAAM,KAAK;AAAA,UAAI,gBAAgB;AAAA,UAAU,GAAG;AAAA,UAA7D,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,YACE,MAAM;AAAA,YACN,UAAU;AAAA,YACV,YAAY;AAAA,YACA,YAAA;AAAA,YACZ,YAAY,EAAa;AAAA,UAC1B,CAAA,GAED,gBAAA,EAAC,GAAD;AAAA,YAAgB,MAAM;AAAA,YAAY,YAAY;AAAA,YAA4B,YAAA;AAAA,UAAa,CAAA,CAClF;AAAA;MACJ,CAAA;AAAA,IACF;AAAA;AAET,GAEA,IAAe,EAAS,CAAiB"}