@mx-cartographer/experiences 9.2.4-alpha.al0 → 9.3.0-alpha.bb1
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.
- package/CHANGELOG.md +0 -12
- package/dist/accounts/AccountsMiniWidget/index.es.js +56 -0
- package/dist/accounts/AccountsMiniWidget/index.es.js.map +1 -0
- package/dist/accounts/AccountsWidget/index.es.js +75 -0
- package/dist/accounts/AccountsWidget/index.es.js.map +1 -0
- package/dist/accounts/ConnectMiniWidget/index.es.js +35 -0
- package/dist/accounts/ConnectMiniWidget/index.es.js.map +1 -0
- package/dist/accounts/components/AccountListItem/index.es.js +91 -0
- package/dist/accounts/components/AccountListItem/index.es.js.map +1 -0
- package/dist/accounts/components/AccountsList/index.es.js +129 -0
- package/dist/accounts/components/AccountsList/index.es.js.map +1 -0
- package/dist/accounts/components/AccountsListCompact/index.es.js +86 -0
- package/dist/accounts/components/AccountsListCompact/index.es.js.map +1 -0
- package/dist/accounts/components/ConnectImage/index.es.js +388 -0
- package/dist/accounts/components/ConnectImage/index.es.js.map +1 -0
- package/dist/accounts/components/ConnectMiniWidgetCard/index.es.js +27 -0
- package/dist/accounts/components/ConnectMiniWidgetCard/index.es.js.map +1 -0
- package/dist/accounts/components/ConnectionStatusIcons/index.es.js +23 -0
- package/dist/accounts/components/ConnectionStatusIcons/index.es.js.map +1 -0
- package/dist/accounts/components/ConnectionsDrawer/index.es.js +52 -0
- package/dist/accounts/components/ConnectionsDrawer/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountActions/index.es.js +134 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountActions/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountActionsRow/index.es.js +32 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountActionsRow/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountConnection/index.es.js +158 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountConnection/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailEdit/index.es.js +119 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailEdit/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetails/index.es.js +75 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetails/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsChart/index.es.js +38 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsChart/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsContent/index.es.js +50 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsContent/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsDrawer/index.es.js +21 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsDrawer/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsHeader/index.es.js +81 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsHeader/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsTab/index.es.js +22 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsTab/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/ConnectionErrorMessage/index.es.js +75 -0
- package/dist/accounts/components/detailsdrawer/Accounts/ConnectionErrorMessage/index.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Transactions/TransactionsTab/index.es.js +37 -0
- package/dist/accounts/components/detailsdrawer/Transactions/TransactionsTab/index.es.js.map +1 -0
- package/dist/accounts/constants/Accounts/index.es.js +10 -0
- package/dist/accounts/constants/Accounts/index.es.js.map +1 -0
- package/dist/accounts/constants/Accounts.d.ts +1 -4
- package/dist/accounts/hooks/useGetMergeableAccounts/index.es.js +11 -0
- package/dist/accounts/hooks/useGetMergeableAccounts/index.es.js.map +1 -0
- package/dist/accounts/hooks/useUiStore/index.es.js +12 -0
- package/dist/accounts/hooks/useUiStore/index.es.js.map +1 -0
- package/dist/accounts/index.es.js +23 -784
- package/dist/accounts/utils/AccountDetails/index.es.js +28 -0
- package/dist/accounts/utils/AccountDetails/index.es.js.map +1 -0
- package/dist/accounts/utils/AccountFields/index.es.js +131 -0
- package/dist/accounts/utils/AccountFields/index.es.js.map +1 -0
- package/dist/accounts/utils/getConnectionMessages/index.es.js +131 -0
- package/dist/accounts/utils/getConnectionMessages/index.es.js.map +1 -0
- package/dist/analytics/SurveyMiniWidget/index.es.js +117 -0
- package/dist/analytics/SurveyMiniWidget/index.es.js.map +1 -0
- package/dist/analytics/components/OpenTextField/index.es.js +23 -0
- package/dist/analytics/components/OpenTextField/index.es.js.map +1 -0
- package/dist/analytics/components/RatingScale/index.es.js +56 -0
- package/dist/analytics/components/RatingScale/index.es.js.map +1 -0
- package/dist/analytics/index.es.js +2 -151
- package/dist/budgets/BubbleBudgetsMiniWidget/index.es.js +100 -0
- package/dist/budgets/BubbleBudgetsMiniWidget/index.es.js.map +1 -0
- package/dist/budgets/BubbleBudgetsWidget/index.es.js +143 -0
- package/dist/budgets/BubbleBudgetsWidget/index.es.js.map +1 -0
- package/dist/budgets/components/AddBudgets/index.es.js +31 -0
- package/dist/budgets/components/AddBudgets/index.es.js.map +1 -0
- package/dist/budgets/components/BubbleBudgets/index.es.js +47 -0
- package/dist/budgets/components/BubbleBudgets/index.es.js.map +1 -0
- package/dist/budgets/components/BubbleChart/Bubble/index.es.js +128 -0
- package/dist/budgets/components/BubbleChart/Bubble/index.es.js.map +1 -0
- package/dist/budgets/components/BubbleChart/Mercury/index.es.js +29 -0
- package/dist/budgets/components/BubbleChart/Mercury/index.es.js.map +1 -0
- package/dist/budgets/components/BubbleChart/index.es.js +59 -0
- package/dist/budgets/components/BubbleChart/index.es.js.map +1 -0
- package/dist/budgets/components/BudgetDetailsDrawer/index.es.js +106 -0
- package/dist/budgets/components/BudgetDetailsDrawer/index.es.js.map +1 -0
- package/dist/budgets/components/BudgetDetailsDrawerV2/index.es.js +126 -0
- package/dist/budgets/components/BudgetDetailsDrawerV2/index.es.js.map +1 -0
- package/dist/budgets/components/BudgetList/BudgetRow/index.es.js +71 -0
- package/dist/budgets/components/BudgetList/BudgetRow/index.es.js.map +1 -0
- package/dist/budgets/components/BudgetList/SubBudgetRow/index.es.js +62 -0
- package/dist/budgets/components/BudgetList/SubBudgetRow/index.es.js.map +1 -0
- package/dist/budgets/components/BudgetList/SubBudgetZeroState/index.es.js +38 -0
- package/dist/budgets/components/BudgetList/SubBudgetZeroState/index.es.js.map +1 -0
- package/dist/budgets/components/BudgetList/index.es.js +44 -0
- package/dist/budgets/components/BudgetList/index.es.js.map +1 -0
- package/dist/budgets/components/BudgetsEmptyState/index.es.js +109 -0
- package/dist/budgets/components/BudgetsEmptyState/index.es.js.map +1 -0
- package/dist/budgets/components/MerchantBudgetDetailsDrawer/index.es.js +54 -0
- package/dist/budgets/components/MerchantBudgetDetailsDrawer/index.es.js.map +1 -0
- package/dist/budgets/components/Overview/index.es.js +129 -0
- package/dist/budgets/components/Overview/index.es.js.map +1 -0
- package/dist/budgets/components/addbudget/Header/index.es.js +70 -0
- package/dist/budgets/components/addbudget/Header/index.es.js.map +1 -0
- package/dist/budgets/components/addbudget/RecalculateBudgetRow/index.es.js +30 -0
- package/dist/budgets/components/addbudget/RecalculateBudgetRow/index.es.js.map +1 -0
- package/dist/budgets/components/addbudget/RecalculateBudgets/index.es.js +62 -0
- package/dist/budgets/components/addbudget/RecalculateBudgets/index.es.js.map +1 -0
- package/dist/budgets/components/addbudget/UnbudgetedRow/index.es.js +50 -0
- package/dist/budgets/components/addbudget/UnbudgetedRow/index.es.js.map +1 -0
- package/dist/budgets/components/budgetdetails/AddSubBudget/index.es.js +98 -0
- package/dist/budgets/components/budgetdetails/AddSubBudget/index.es.js.map +1 -0
- package/dist/budgets/components/budgetdetails/BudgetDetails/index.es.js +66 -0
- package/dist/budgets/components/budgetdetails/BudgetDetails/index.es.js.map +1 -0
- package/dist/budgets/components/budgetdetails/Header/index.es.js +48 -0
- package/dist/budgets/components/budgetdetails/Header/index.es.js.map +1 -0
- package/dist/budgets/components/budgetdetails/SubBudgetList/index.es.js +98 -0
- package/dist/budgets/components/budgetdetails/SubBudgetList/index.es.js.map +1 -0
- package/dist/budgets/components/shared/BudgetAmount/index.es.js +27 -0
- package/dist/budgets/components/shared/BudgetAmount/index.es.js.map +1 -0
- package/dist/budgets/components/shared/BudgetDetailsTopSection/index.es.js +84 -0
- package/dist/budgets/components/shared/BudgetDetailsTopSection/index.es.js.map +1 -0
- package/dist/budgets/index.es.js +6 -1400
- package/dist/budgets/utils/BubblesSVG/index.es.js +73 -0
- package/dist/budgets/utils/BubblesSVG/index.es.js.map +1 -0
- package/dist/cashflow/CashflowMiniWidget/index.es.js +45 -0
- package/dist/cashflow/CashflowMiniWidget/index.es.js.map +1 -0
- package/dist/cashflow/CashflowOnboarding/index.es.js +224 -0
- package/dist/cashflow/CashflowOnboarding/index.es.js.map +1 -0
- package/dist/cashflow/CashflowWidget/index.es.js +82 -0
- package/dist/cashflow/CashflowWidget/index.es.js.map +1 -0
- package/dist/cashflow/components/CashflowAmountHeading/index.es.js +45 -0
- package/dist/cashflow/components/CashflowAmountHeading/index.es.js.map +1 -0
- package/dist/cashflow/components/CashflowContent/index.es.js +63 -0
- package/dist/cashflow/components/CashflowContent/index.es.js.map +1 -0
- package/dist/cashflow/components/CashflowHeading/index.es.js +101 -0
- package/dist/cashflow/components/CashflowHeading/index.es.js.map +1 -0
- package/dist/cashflow/components/CashflowWidgetContent/index.es.js +167 -0
- package/dist/cashflow/components/CashflowWidgetContent/index.es.js.map +1 -0
- package/dist/cashflow/components/DetailsExpenseHeader/index.es.js +37 -0
- package/dist/cashflow/components/DetailsExpenseHeader/index.es.js.map +1 -0
- package/dist/cashflow/components/DetailsExpenseRow/index.es.js +57 -0
- package/dist/cashflow/components/DetailsExpenseRow/index.es.js.map +1 -0
- package/dist/cashflow/components/DetailsFooter/index.es.js +21 -0
- package/dist/cashflow/components/DetailsFooter/index.es.js.map +1 -0
- package/dist/cashflow/components/DetailsTab/index.es.js +90 -0
- package/dist/cashflow/components/DetailsTab/index.es.js.map +1 -0
- package/dist/cashflow/components/RemainingCash/index.es.js +35 -0
- package/dist/cashflow/components/RemainingCash/index.es.js.map +1 -0
- package/dist/cashflow/components/SummaryTab/index.es.js +258 -0
- package/dist/cashflow/components/SummaryTab/index.es.js.map +1 -0
- package/dist/cashflow/components/onboarding/StepOne/index.es.js +128 -0
- package/dist/cashflow/components/onboarding/StepOne/index.es.js.map +1 -0
- package/dist/cashflow/components/onboarding/StepTwo/index.es.js +26 -0
- package/dist/cashflow/components/onboarding/StepTwo/index.es.js.map +1 -0
- package/dist/cashflow/constants/CashflowImages/index.es.js +9 -0
- package/dist/cashflow/constants/CashflowImages/index.es.js.map +1 -0
- package/dist/cashflow/context/hooks/index.es.js +12 -0
- package/dist/cashflow/context/hooks/index.es.js.map +1 -0
- package/dist/cashflow/context/hooks.d.ts +1 -1
- package/dist/cashflow/index.es.js +6 -1058
- package/dist/cashflow/util/Filters/index.es.js +9 -0
- package/dist/cashflow/util/Filters/index.es.js.map +1 -0
- package/dist/categories/components/CategoryList/index.es.js +38 -0
- package/dist/categories/components/CategoryList/index.es.js.map +1 -0
- package/dist/categories/components/CategoryRow/index.es.js +65 -0
- package/dist/categories/components/CategoryRow/index.es.js.map +1 -0
- package/dist/categories/components/CategorySelector/index.es.js +39 -0
- package/dist/categories/components/CategorySelector/index.es.js.map +1 -0
- package/dist/categories/components/CategorySelectorDrawer/index.es.js +24 -0
- package/dist/categories/components/CategorySelectorDrawer/index.es.js.map +1 -0
- package/dist/categories/components/CustomCategories/AddSubcategory/index.es.js +46 -0
- package/dist/categories/components/CustomCategories/AddSubcategory/index.es.js.map +1 -0
- package/dist/categories/components/CustomCategories/CustomCategoryModal/index.es.js +61 -0
- package/dist/categories/components/CustomCategories/CustomCategoryModal/index.es.js.map +1 -0
- package/dist/categories/components/CustomCategories/DeleteSubcategory/index.es.js +26 -0
- package/dist/categories/components/CustomCategories/DeleteSubcategory/index.es.js.map +1 -0
- package/dist/categories/components/CustomCategories/RenameSubcategory/index.es.js +29 -0
- package/dist/categories/components/CustomCategories/RenameSubcategory/index.es.js.map +1 -0
- package/dist/categories/components/SubcategoryList/index.es.js +41 -0
- package/dist/categories/components/SubcategoryList/index.es.js.map +1 -0
- package/dist/categories/components/SubcategoryRow/index.es.js +90 -0
- package/dist/categories/components/SubcategoryRow/index.es.js.map +1 -0
- package/dist/categories/constants/OnClickEvents/index.es.js +18 -0
- package/dist/categories/constants/OnClickEvents/index.es.js.map +1 -0
- package/dist/categories/context/hooks/index.es.js +12 -0
- package/dist/categories/context/hooks/index.es.js.map +1 -0
- package/dist/categories/index.es.js +8 -6
- package/dist/common/components/Banner/index.es.js +39 -0
- package/dist/common/components/Banner/index.es.js.map +1 -0
- package/dist/common/components/ConnectCard/index.es.js +58 -0
- package/dist/common/components/ConnectCard/index.es.js.map +1 -0
- package/dist/common/components/ConnectDrawer/index.es.js +53 -0
- package/dist/common/components/ConnectDrawer/index.es.js.map +1 -0
- package/dist/common/components/ConnectStatus/index.es.js +39 -0
- package/dist/common/components/ConnectStatus/index.es.js.map +1 -0
- package/dist/common/components/ConnectStatus.d.ts +6 -0
- package/dist/common/components/CurrencyDialog/index.es.js +119 -0
- package/dist/common/components/CurrencyDialog/index.es.js.map +1 -0
- package/dist/common/components/CurrencyInput/index.es.js +49 -0
- package/dist/common/components/CurrencyInput/index.es.js.map +1 -0
- package/dist/common/components/CurrencyText/index.es.js +17 -0
- package/dist/common/components/CurrencyText/index.es.js.map +1 -0
- package/dist/common/components/DataRow/index.es.js +53 -0
- package/dist/common/components/DataRow/index.es.js.map +1 -0
- package/dist/common/components/EmptyState/index.es.js +68 -0
- package/dist/common/components/EmptyState/index.es.js.map +1 -0
- package/dist/common/components/Error/index.es.js +86 -0
- package/dist/common/components/Error/index.es.js.map +1 -0
- package/dist/common/components/ErrorBoundary/index.es.js +26 -0
- package/dist/common/components/ErrorBoundary/index.es.js.map +1 -0
- package/dist/common/components/GlobalAccountFilter/GlobalAccountFilterList/index.es.js +133 -0
- package/dist/common/components/GlobalAccountFilter/GlobalAccountFilterList/index.es.js.map +1 -0
- package/dist/common/components/GlobalAccountFilter/index.es.js +97 -0
- package/dist/common/components/GlobalAccountFilter/index.es.js.map +1 -0
- package/dist/common/components/IconBacking/index.es.js +25 -0
- package/dist/common/components/IconBacking/index.es.js.map +1 -0
- package/dist/common/components/InformationTooltip/index.es.js +49 -0
- package/dist/common/components/InformationTooltip/index.es.js.map +1 -0
- package/dist/common/components/ListItemAction/index.es.js +55 -0
- package/dist/common/components/ListItemAction/index.es.js.map +1 -0
- package/dist/common/components/ListItemRow/index.es.js +65 -0
- package/dist/common/components/ListItemRow/index.es.js.map +1 -0
- package/dist/common/components/ListItemWrapper/index.es.js +37 -0
- package/dist/common/components/ListItemWrapper/index.es.js.map +1 -0
- package/dist/common/components/Loader/index.es.js +17 -0
- package/dist/common/components/Loader/index.es.js.map +1 -0
- package/dist/common/components/MicroWidgetContainer/index.es.js +60 -0
- package/dist/common/components/MicroWidgetContainer/index.es.js.map +1 -0
- package/dist/common/components/MiniWidgetContainer/index.es.js +77 -0
- package/dist/common/components/MiniWidgetContainer/index.es.js.map +1 -0
- package/dist/common/components/ResponsiveButton/index.es.js +37 -0
- package/dist/common/components/ResponsiveButton/index.es.js.map +1 -0
- package/dist/common/components/SearchBox/index.es.js +59 -0
- package/dist/common/components/SearchBox/index.es.js.map +1 -0
- package/dist/common/components/Select/index.es.js +33 -0
- package/dist/common/components/Select/index.es.js.map +1 -0
- package/dist/common/components/SelectionBox/index.es.js +45 -0
- package/dist/common/components/SelectionBox/index.es.js.map +1 -0
- package/dist/common/components/SkeletonLoader/index.es.js +104 -0
- package/dist/common/components/SkeletonLoader/index.es.js.map +1 -0
- package/dist/common/components/SubheaderRow/index.es.js +23 -0
- package/dist/common/components/SubheaderRow/index.es.js.map +1 -0
- package/dist/common/components/TabContentContainer/index.es.js +14 -0
- package/dist/common/components/TabContentContainer/index.es.js.map +1 -0
- package/dist/common/components/TinyBarChart/index.es.js +80 -0
- package/dist/common/components/TinyBarChart/index.es.js.map +1 -0
- package/dist/common/components/TinyBarChart.d.ts +1 -1
- package/dist/common/components/WidgetContainer/index.es.js +146 -0
- package/dist/common/components/WidgetContainer/index.es.js.map +1 -0
- package/dist/common/components/WidgetDateRangeSelector/index.es.js +38 -0
- package/dist/common/components/WidgetDateRangeSelector/index.es.js.map +1 -0
- package/dist/common/components/addaccounts/AddAccounts/index.es.js +50 -0
- package/dist/common/components/addaccounts/AddAccounts/index.es.js.map +1 -0
- package/dist/common/components/calendar/Calendar/index.es.js +148 -0
- package/dist/common/components/calendar/Calendar/index.es.js.map +1 -0
- package/dist/common/components/calendar/Day/index.es.js +82 -0
- package/dist/common/components/calendar/Day/index.es.js.map +1 -0
- package/dist/common/components/calendar/Header/index.es.js +42 -0
- package/dist/common/components/calendar/Header/index.es.js.map +1 -0
- package/dist/common/components/charts/Donut/index.es.js +82 -0
- package/dist/common/components/charts/Donut/index.es.js.map +1 -0
- package/dist/common/components/charts/LineChart/CustomLegend/index.es.js +95 -0
- package/dist/common/components/charts/LineChart/CustomLegend/index.es.js.map +1 -0
- package/dist/common/components/charts/LineChart/CustomLine/index.es.js +27 -0
- package/dist/common/components/charts/LineChart/CustomLine/index.es.js.map +1 -0
- package/dist/common/components/charts/LineChart/CustomMark/index.es.js +56 -0
- package/dist/common/components/charts/LineChart/CustomMark/index.es.js.map +1 -0
- package/dist/common/components/charts/LineChart/CustomTooltip/index.es.js +138 -0
- package/dist/common/components/charts/LineChart/CustomTooltip/index.es.js.map +1 -0
- package/dist/common/components/charts/LineChart/index.es.js +194 -0
- package/dist/common/components/charts/LineChart/index.es.js.map +1 -0
- package/dist/common/components/charts/LineChart/utils/markerShapes/index.es.js +26 -0
- package/dist/common/components/charts/LineChart/utils/markerShapes/index.es.js.map +1 -0
- package/dist/common/components/charts/StackedLineChart/CategoryIconLabel/index.es.js +31 -0
- package/dist/common/components/charts/StackedLineChart/CategoryIconLabel/index.es.js.map +1 -0
- package/dist/common/components/charts/StackedLineChart/CustomAreaTooltip/index.es.js +97 -0
- package/dist/common/components/charts/StackedLineChart/CustomAreaTooltip/index.es.js.map +1 -0
- package/dist/common/components/charts/StackedLineChart/CustomLegend/index.es.js +54 -0
- package/dist/common/components/charts/StackedLineChart/CustomLegend/index.es.js.map +1 -0
- package/dist/common/components/charts/StackedLineChart/CustomPointTooltip/index.es.js +51 -0
- package/dist/common/components/charts/StackedLineChart/CustomPointTooltip/index.es.js.map +1 -0
- package/dist/common/components/charts/StackedLineChart/index.es.js +208 -0
- package/dist/common/components/charts/StackedLineChart/index.es.js.map +1 -0
- package/dist/common/components/charts/StatusBar/index.es.js +25 -0
- package/dist/common/components/charts/StatusBar/index.es.js.map +1 -0
- package/dist/common/components/daterangeselector/DateRangeSelector/index.es.js +258 -0
- package/dist/common/components/daterangeselector/DateRangeSelector/index.es.js.map +1 -0
- package/dist/common/components/dialog/Dialog/index.es.js +58 -0
- package/dist/common/components/dialog/Dialog/index.es.js.map +1 -0
- package/dist/common/components/donuts/MultiSegmentDonut/index.es.js +53 -0
- package/dist/common/components/donuts/MultiSegmentDonut/index.es.js.map +1 -0
- package/dist/common/components/donuts/SingleSegmentDonut/index.es.js +50 -0
- package/dist/common/components/donuts/SingleSegmentDonut/index.es.js.map +1 -0
- package/dist/common/components/drawer/Drawer/index.es.js +57 -0
- package/dist/common/components/drawer/Drawer/index.es.js.map +1 -0
- package/dist/common/components/drawer/Footer/index.es.js +31 -0
- package/dist/common/components/drawer/Footer/index.es.js.map +1 -0
- package/dist/common/components/drawer/Header/index.es.js +52 -0
- package/dist/common/components/drawer/Header/index.es.js.map +1 -0
- package/dist/common/components/listitems/CollapseExpandListItem/index.es.js +41 -0
- package/dist/common/components/listitems/CollapseExpandListItem/index.es.js.map +1 -0
- package/dist/common/components/listitems/ToggleButtonListItem/index.es.js +54 -0
- package/dist/common/components/listitems/ToggleButtonListItem/index.es.js.map +1 -0
- package/dist/common/components/listitems/ToggleListItem/index.es.js +37 -0
- package/dist/common/components/listitems/ToggleListItem/index.es.js.map +1 -0
- package/dist/common/constants/Account/index.es.js +32 -0
- package/dist/common/constants/Account/index.es.js.map +1 -0
- package/dist/common/constants/Analytics/index.es.js +139 -0
- package/dist/common/constants/Analytics/index.es.js.map +1 -0
- package/dist/common/constants/Connect/index.es.js +10 -0
- package/dist/common/constants/Connect/index.es.js.map +1 -0
- package/dist/common/constants/Connect.d.ts +4 -0
- package/dist/common/constants/Donut/index.es.js +7 -0
- package/dist/common/constants/Donut/index.es.js.map +1 -0
- package/dist/common/constants/FinStrong/index.es.js +33 -0
- package/dist/common/constants/FinStrong/index.es.js.map +1 -0
- package/dist/common/constants/ScheduledPayment/index.es.js +40 -0
- package/dist/common/constants/ScheduledPayment/index.es.js.map +1 -0
- package/dist/common/constants/Sizes/index.es.js +9 -0
- package/dist/common/constants/Sizes/index.es.js.map +1 -0
- package/dist/common/constants/SpendingPlan/index.es.js +10 -0
- package/dist/common/constants/SpendingPlan/index.es.js.map +1 -0
- package/dist/common/constants/index.d.ts +1 -0
- package/dist/common/context/GlobalDataProvider/index.es.js +19 -0
- package/dist/common/context/GlobalDataProvider/index.es.js.map +1 -0
- package/dist/common/context/WidgetContainerProvider/index.es.js +16 -0
- package/dist/common/context/WidgetContainerProvider/index.es.js.map +1 -0
- package/dist/common/context/hooks/index.es.js +46 -0
- package/dist/common/context/hooks/index.es.js.map +1 -0
- package/dist/common/hooks/useAccountDisplayName/index.es.js +13 -0
- package/dist/common/hooks/useAccountDisplayName/index.es.js.map +1 -0
- package/dist/common/hooks/useAriaLive/index.es.js +34 -0
- package/dist/common/hooks/useAriaLive/index.es.js.map +1 -0
- package/dist/common/hooks/useCombineEvents/index.es.js +22 -0
- package/dist/common/hooks/useCombineEvents/index.es.js.map +1 -0
- package/dist/common/hooks/useDimensions/index.es.js +41 -0
- package/dist/common/hooks/useDimensions/index.es.js.map +1 -0
- package/dist/common/hooks/useInsightsEnabled/index.es.js +13 -0
- package/dist/common/hooks/useInsightsEnabled/index.es.js.map +1 -0
- package/dist/common/hooks/usePrevious/index.es.js +13 -0
- package/dist/common/hooks/usePrevious/index.es.js.map +1 -0
- package/dist/common/hooks/useScreenSize/index.es.js +26 -0
- package/dist/common/hooks/useScreenSize/index.es.js.map +1 -0
- package/dist/common/hooks/useWidgetHeaderStyles/index.es.js +46 -0
- package/dist/common/hooks/useWidgetHeaderStyles/index.es.js.map +1 -0
- package/dist/common/hooks/useWidgetLoadTimer/index.es.js +24 -0
- package/dist/common/hooks/useWidgetLoadTimer/index.es.js.map +1 -0
- package/dist/common/index.es.js +154 -310
- package/dist/common/types/Charts.d.ts +10 -0
- package/dist/common/utils/AccountDisplayName/index.es.js +14 -0
- package/dist/common/utils/AccountDisplayName/index.es.js.map +1 -0
- package/dist/common/utils/AccountFilter/index.es.js +31 -0
- package/dist/common/utils/AccountFilter/index.es.js.map +1 -0
- package/dist/common/utils/Analytics/index.es.js +31 -0
- package/dist/common/utils/Analytics/index.es.js.map +1 -0
- package/dist/common/utils/PostMessage/index.es.js +29 -0
- package/dist/common/utils/PostMessage/index.es.js.map +1 -0
- package/dist/common/utils/Theme/index.es.js +96 -0
- package/dist/common/utils/Theme/index.es.js.map +1 -0
- package/dist/core/api/AccountApi/index.es.js +22 -0
- package/dist/core/api/AccountApi/index.es.js.map +1 -0
- package/dist/core/api/AnalyticsApi/index.es.js +34 -0
- package/dist/core/api/AnalyticsApi/index.es.js.map +1 -0
- package/dist/core/api/AppDataApi/index.es.js +14 -0
- package/dist/core/api/AppDataApi/index.es.js.map +1 -0
- package/dist/core/api/BannerApi/index.es.js +23 -0
- package/dist/core/api/BannerApi/index.es.js.map +1 -0
- package/dist/core/api/BeatApi/index.es.js +24 -0
- package/dist/core/api/BeatApi/index.es.js.map +1 -0
- package/dist/core/api/BudgetsApi/index.es.js +28 -0
- package/dist/core/api/BudgetsApi/index.es.js.map +1 -0
- package/dist/core/api/CategoryApi/index.es.js +29 -0
- package/dist/core/api/CategoryApi/index.es.js.map +1 -0
- package/dist/core/api/FinstrongApi/index.es.js +22 -0
- package/dist/core/api/FinstrongApi/index.es.js.map +1 -0
- package/dist/core/api/GlobalCopyApi/index.es.js +14 -0
- package/dist/core/api/GlobalCopyApi/index.es.js.map +1 -0
- package/dist/core/api/GoalApi/index.es.js +28 -0
- package/dist/core/api/GoalApi/index.es.js.map +1 -0
- package/dist/core/api/HelpApi/index.es.js +14 -0
- package/dist/core/api/HelpApi/index.es.js.map +1 -0
- package/dist/core/api/HoldingApi/index.es.js +15 -0
- package/dist/core/api/HoldingApi/index.es.js.map +1 -0
- package/dist/core/api/MerchantApi/index.es.js +18 -0
- package/dist/core/api/MerchantApi/index.es.js.map +1 -0
- package/dist/core/api/NotificationApi/index.es.js +19 -0
- package/dist/core/api/NotificationApi/index.es.js.map +1 -0
- package/dist/core/api/RepeatingTransactionsApi/index.es.js +17 -0
- package/dist/core/api/RepeatingTransactionsApi/index.es.js.map +1 -0
- package/dist/core/api/ScheduledPaymentsApi/index.es.js +22 -0
- package/dist/core/api/ScheduledPaymentsApi/index.es.js.map +1 -0
- package/dist/core/api/SettingsApi/index.es.js +24 -0
- package/dist/core/api/SettingsApi/index.es.js.map +1 -0
- package/dist/core/api/TransactionApi/index.es.js +55 -0
- package/dist/core/api/TransactionApi/index.es.js.map +1 -0
- package/dist/core/api/UserApi/index.es.js +16 -0
- package/dist/core/api/UserApi/index.es.js.map +1 -0
- package/dist/core/api/WidgetApi/index.es.js +14 -0
- package/dist/core/api/WidgetApi/index.es.js.map +1 -0
- package/dist/core/constants/ApiEndpoints/index.es.js +51 -0
- package/dist/core/constants/ApiEndpoints/index.es.js.map +1 -0
- package/dist/core/constants/Category/index.es.js +299 -0
- package/dist/core/constants/Category/index.es.js.map +1 -0
- package/dist/core/constants/DateFormats/index.es.js +55 -0
- package/dist/core/constants/DateFormats/index.es.js.map +1 -0
- package/dist/core/constants/Debts/index.es.js +8 -0
- package/dist/core/constants/Debts/index.es.js.map +1 -0
- package/dist/core/constants/DefaultConfig/index.es.js +109 -0
- package/dist/core/constants/DefaultConfig/index.es.js.map +1 -0
- package/dist/core/constants/Help/index.es.js +183 -0
- package/dist/core/constants/Help/index.es.js.map +1 -0
- package/dist/core/constants/Investments/index.es.js +56 -0
- package/dist/core/constants/Investments/index.es.js.map +1 -0
- package/dist/core/constants/Numbers/index.es.js +9 -0
- package/dist/core/constants/Numbers/index.es.js.map +1 -0
- package/dist/core/constants/Table/index.es.js +18 -0
- package/dist/core/constants/Table/index.es.js.map +1 -0
- package/dist/core/constants/Transaction/index.es.js +43 -0
- package/dist/core/constants/Transaction/index.es.js.map +1 -0
- package/dist/core/constants/repeatingTransactions/index.es.js +8 -0
- package/dist/core/constants/repeatingTransactions/index.es.js.map +1 -0
- package/dist/core/index.es.js +134 -107
- package/dist/core/stores/AccountStore/index.es.js +247 -0
- package/dist/core/stores/AccountStore/index.es.js.map +1 -0
- package/dist/core/stores/AnalyticsStore/index.es.js +55 -0
- package/dist/core/stores/AnalyticsStore/index.es.js.map +1 -0
- package/dist/core/stores/AppDataStore/index.es.js +61 -0
- package/dist/core/stores/AppDataStore/index.es.js.map +1 -0
- package/dist/core/stores/AppDataStore.d.ts +2 -2
- package/dist/core/stores/BeatStore/index.es.js +43 -0
- package/dist/core/stores/BeatStore/index.es.js.map +1 -0
- package/dist/core/stores/BudgetsStore/index.es.js +155 -0
- package/dist/core/stores/BudgetsStore/index.es.js.map +1 -0
- package/dist/core/stores/CashflowStore/index.es.js +62 -0
- package/dist/core/stores/CashflowStore/index.es.js.map +1 -0
- package/dist/core/stores/CategoryStore/index.es.js +147 -0
- package/dist/core/stores/CategoryStore/index.es.js.map +1 -0
- package/dist/core/stores/ConnectStore/index.es.js +19 -0
- package/dist/core/stores/ConnectStore/index.es.js.map +1 -0
- package/dist/core/stores/DebtsStore/index.es.js +40 -0
- package/dist/core/stores/DebtsStore/index.es.js.map +1 -0
- package/dist/core/stores/FinstrongStore/index.es.js +156 -0
- package/dist/core/stores/FinstrongStore/index.es.js.map +1 -0
- package/dist/core/stores/GlobalCopyStore/index.es.js +32 -0
- package/dist/core/stores/GlobalCopyStore/index.es.js.map +1 -0
- package/dist/core/stores/GlobalStore/index.es.js +87 -0
- package/dist/core/stores/GlobalStore/index.es.js.map +1 -0
- package/dist/core/stores/GlobalUiStore/index.es.js +68 -0
- package/dist/core/stores/GlobalUiStore/index.es.js.map +1 -0
- package/dist/core/stores/GlobalUiStore.d.ts +2 -2
- package/dist/core/stores/GoalStore/index.es.js +233 -0
- package/dist/core/stores/GoalStore/index.es.js.map +1 -0
- package/dist/core/stores/HelpStore/index.es.js +45 -0
- package/dist/core/stores/HelpStore/index.es.js.map +1 -0
- package/dist/core/stores/HelpStore.d.ts +1 -1
- package/dist/core/stores/HoldingStore/index.es.js +60 -0
- package/dist/core/stores/HoldingStore/index.es.js.map +1 -0
- package/dist/core/stores/MerchantStore/index.es.js +28 -0
- package/dist/core/stores/MerchantStore/index.es.js.map +1 -0
- package/dist/core/stores/NetWorthStore/index.es.js +73 -0
- package/dist/core/stores/NetWorthStore/index.es.js.map +1 -0
- package/dist/core/stores/NotificationStore/index.es.js +46 -0
- package/dist/core/stores/NotificationStore/index.es.js.map +1 -0
- package/dist/core/stores/RecurringTransactionsStore/index.es.js +199 -0
- package/dist/core/stores/RecurringTransactionsStore/index.es.js.map +1 -0
- package/dist/core/stores/RecurringTransactionsStore.d.ts +3 -3
- package/dist/core/stores/SettingsStore/index.es.js +184 -0
- package/dist/core/stores/SettingsStore/index.es.js.map +1 -0
- package/dist/core/stores/SettingsStore.d.ts +1 -1
- package/dist/core/stores/TransactionStore/index.es.js +372 -0
- package/dist/core/stores/TransactionStore/index.es.js.map +1 -0
- package/dist/core/stores/TrendsStore/index.es.js +51 -0
- package/dist/core/stores/TrendsStore/index.es.js.map +1 -0
- package/dist/core/stores/UserStore/index.es.js +49 -0
- package/dist/core/stores/UserStore/index.es.js.map +1 -0
- package/dist/core/types/Account/index.es.js +118 -0
- package/dist/core/types/Account/index.es.js.map +1 -0
- package/dist/core/types/Beat/index.es.js +8 -0
- package/dist/core/types/Beat/index.es.js.map +1 -0
- package/dist/core/types/Expense/index.es.js +11 -0
- package/dist/core/types/Expense/index.es.js.map +1 -0
- package/dist/core/types/Finstrong/index.es.js +14 -0
- package/dist/core/types/Finstrong/index.es.js.map +1 -0
- package/dist/core/types/Goal/index.es.js +14 -0
- package/dist/core/types/Goal/index.es.js.map +1 -0
- package/dist/core/types/Notification/index.es.js +17 -0
- package/dist/core/types/Notification/index.es.js.map +1 -0
- package/dist/core/types/RepeatingTransaction/index.es.js +17 -0
- package/dist/core/types/RepeatingTransaction/index.es.js.map +1 -0
- package/dist/core/types/ScreenSize/index.es.js +8 -0
- package/dist/core/types/ScreenSize/index.es.js.map +1 -0
- package/dist/core/types/Transaction/index.es.js +11 -0
- package/dist/core/types/Transaction/index.es.js.map +1 -0
- package/dist/core/types/localization/RecurringCopy.d.ts +0 -6
- package/dist/core/utils/AccountUtils/index.es.js +27 -0
- package/dist/core/utils/AccountUtils/index.es.js.map +1 -0
- package/dist/core/utils/BeatUtils/index.es.js +50 -0
- package/dist/core/utils/BeatUtils/index.es.js.map +1 -0
- package/dist/core/utils/BudgetUtil/index.es.js +71 -0
- package/dist/core/utils/BudgetUtil/index.es.js.map +1 -0
- package/dist/core/utils/CategoryUtil/index.es.js +60 -0
- package/dist/core/utils/CategoryUtil/index.es.js.map +1 -0
- package/dist/core/utils/DateUtil/index.es.js +70 -0
- package/dist/core/utils/DateUtil/index.es.js.map +1 -0
- package/dist/core/utils/DebtUtils/index.es.js +144 -0
- package/dist/core/utils/DebtUtils/index.es.js.map +1 -0
- package/dist/core/utils/Fetch/index.es.js +74 -0
- package/dist/core/utils/Fetch/index.es.js.map +1 -0
- package/dist/core/utils/FinstrongUtils/index.es.js +11 -0
- package/dist/core/utils/FinstrongUtils/index.es.js.map +1 -0
- package/dist/core/utils/GoalsUtil/index.es.js +113 -0
- package/dist/core/utils/GoalsUtil/index.es.js.map +1 -0
- package/dist/core/utils/HelpUtil/index.es.js +23 -0
- package/dist/core/utils/HelpUtil/index.es.js.map +1 -0
- package/dist/core/utils/InvestmentUtil/index.es.js +77 -0
- package/dist/core/utils/InvestmentUtil/index.es.js.map +1 -0
- package/dist/core/utils/Localization/index.es.js +34 -0
- package/dist/core/utils/Localization/index.es.js.map +1 -0
- package/dist/core/utils/NetWorthUtils/index.es.js +115 -0
- package/dist/core/utils/NetWorthUtils/index.es.js.map +1 -0
- package/dist/core/utils/NotificationUtils/index.es.js +17 -0
- package/dist/core/utils/NotificationUtils/index.es.js.map +1 -0
- package/dist/core/utils/NumberFormatting/index.es.js +31 -0
- package/dist/core/utils/NumberFormatting/index.es.js.map +1 -0
- package/dist/core/utils/RecurringTransactionsUtil/index.es.js +285 -0
- package/dist/core/utils/RecurringTransactionsUtil/index.es.js.map +1 -0
- package/dist/core/utils/SettingsUtil/index.es.js +56 -0
- package/dist/core/utils/SettingsUtil/index.es.js.map +1 -0
- package/dist/core/utils/TransactionUtils/index.es.js +113 -0
- package/dist/core/utils/TransactionUtils/index.es.js.map +1 -0
- package/dist/core/utils/TrendsUtil/index.es.js +72 -0
- package/dist/core/utils/TrendsUtil/index.es.js.map +1 -0
- package/dist/core/utils/UserUtils/index.es.js +6 -0
- package/dist/core/utils/UserUtils/index.es.js.map +1 -0
- package/dist/dashboard/Dashboard/index.es.js +99 -0
- package/dist/dashboard/Dashboard/index.es.js.map +1 -0
- package/dist/dashboard/Greeting/index.es.js +49 -0
- package/dist/dashboard/Greeting/index.es.js.map +1 -0
- package/dist/dashboard/constants/Dashboard/index.es.js +8 -0
- package/dist/dashboard/constants/Dashboard/index.es.js.map +1 -0
- package/dist/dashboard/index.es.js +4 -153
- package/dist/debts/DebtsWidget/index.es.js +138 -0
- package/dist/debts/DebtsWidget/index.es.js.map +1 -0
- package/dist/debts/components/DebtDrawer/index.es.js +26 -0
- package/dist/debts/components/DebtDrawer/index.es.js.map +1 -0
- package/dist/debts/components/DebtsChart/index.es.js +135 -0
- package/dist/debts/components/DebtsChart/index.es.js.map +1 -0
- package/dist/debts/components/DebtsTable/AccountCell/index.es.js +30 -0
- package/dist/debts/components/DebtsTable/AccountCell/index.es.js.map +1 -0
- package/dist/debts/components/DebtsTable/PriorityCell/index.es.js +35 -0
- package/dist/debts/components/DebtsTable/PriorityCell/index.es.js.map +1 -0
- package/dist/debts/components/DebtsTable/index.es.js +193 -0
- package/dist/debts/components/DebtsTable/index.es.js.map +1 -0
- package/dist/debts/components/PaydownDrawer/index.es.js +19 -0
- package/dist/debts/components/PaydownDrawer/index.es.js.map +1 -0
- package/dist/debts/components/SnowballCard/index.es.js +87 -0
- package/dist/debts/components/SnowballCard/index.es.js.map +1 -0
- package/dist/debts/components/SnowballDrawer/index.es.js +457 -0
- package/dist/debts/components/SnowballDrawer/index.es.js.map +1 -0
- package/dist/debts/components/actions/DebtsPriorityAction/index.es.js +37 -0
- package/dist/debts/components/actions/DebtsPriorityAction/index.es.js.map +1 -0
- package/dist/debts/components/actions/ExtraPaymentAction/index.es.js +43 -0
- package/dist/debts/components/actions/ExtraPaymentAction/index.es.js.map +1 -0
- package/dist/debts/components/actions/InterestRateAction/index.es.js +41 -0
- package/dist/debts/components/actions/InterestRateAction/index.es.js.map +1 -0
- package/dist/debts/components/actions/MonthlyPaymentAction/index.es.js +43 -0
- package/dist/debts/components/actions/MonthlyPaymentAction/index.es.js.map +1 -0
- package/dist/debts/components/actions/OriginalBalanceAction/index.es.js +43 -0
- package/dist/debts/components/actions/OriginalBalanceAction/index.es.js.map +1 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsChart/index.es.js +43 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsChart/index.es.js.map +1 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsContent/index.es.js +54 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsContent/index.es.js.map +1 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsTab/index.es.js +40 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsTab/index.es.js.map +1 -0
- package/dist/debts/components/debtsdrawer/DebtScheduleTab/index.es.js +108 -0
- package/dist/debts/components/debtsdrawer/DebtScheduleTab/index.es.js.map +1 -0
- package/dist/debts/components/debtsdrawer/DebtStatusCard/index.es.js +86 -0
- package/dist/debts/components/debtsdrawer/DebtStatusCard/index.es.js.map +1 -0
- package/dist/debts/components/debtspaydown/PaydownButton/index.es.js +32 -0
- package/dist/debts/components/debtspaydown/PaydownButton/index.es.js.map +1 -0
- package/dist/debts/components/debtspaydown/PaydownContent/index.es.js +77 -0
- package/dist/debts/components/debtspaydown/PaydownContent/index.es.js.map +1 -0
- package/dist/debts/components/debtspriority/DebtsPriorityButton/index.es.js +32 -0
- package/dist/debts/components/debtspriority/DebtsPriorityButton/index.es.js.map +1 -0
- package/dist/debts/components/debtspriority/DebtsPrioriyPopover/index.es.js +78 -0
- package/dist/debts/components/debtspriority/DebtsPrioriyPopover/index.es.js.map +1 -0
- package/dist/debts/hooks/useDebtsUiStore/index.es.js +12 -0
- package/dist/debts/hooks/useDebtsUiStore/index.es.js.map +1 -0
- package/dist/debts/index.es.js +6 -1496
- package/dist/debts/utils/DebtsChart/index.es.js +15 -0
- package/dist/debts/utils/DebtsChart/index.es.js.map +1 -0
- package/dist/debts/utils/DebtsTable/index.es.js +17 -0
- package/dist/debts/utils/DebtsTable/index.es.js.map +1 -0
- package/dist/debts/utils/SnowballCard/index.es.js +40 -0
- package/dist/debts/utils/SnowballCard/index.es.js.map +1 -0
- package/dist/finstrong/FinancialStrengthCard/index.es.js +127 -0
- package/dist/finstrong/FinancialStrengthCard/index.es.js.map +1 -0
- package/dist/finstrong/FinstrongWidget/index.es.js +175 -0
- package/dist/finstrong/FinstrongWidget/index.es.js.map +1 -0
- package/dist/finstrong/components/ConnectMoreAccountsCard/index.es.js +80 -0
- package/dist/finstrong/components/ConnectMoreAccountsCard/index.es.js.map +1 -0
- package/dist/finstrong/components/CreditScore/CreditScoreContent/index.es.js +39 -0
- package/dist/finstrong/components/CreditScore/CreditScoreContent/index.es.js.map +1 -0
- package/dist/finstrong/components/CreditScore/CreditScoreHeader/index.es.js +22 -0
- package/dist/finstrong/components/CreditScore/CreditScoreHeader/index.es.js.map +1 -0
- package/dist/finstrong/components/CreditScoreGraph/index.es.js +61 -0
- package/dist/finstrong/components/CreditScoreGraph/index.es.js.map +1 -0
- package/dist/finstrong/components/FinancialStrengthGraph/index.es.js +44 -0
- package/dist/finstrong/components/FinancialStrengthGraph/index.es.js.map +1 -0
- package/dist/finstrong/components/HaveManageableDebt/DebtPaymentTabContent/index.es.js +43 -0
- package/dist/finstrong/components/HaveManageableDebt/DebtPaymentTabContent/index.es.js.map +1 -0
- package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtComponent/index.es.js +88 -0
- package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtComponent/index.es.js.map +1 -0
- package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtProgressBar/index.es.js +73 -0
- package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtProgressBar/index.es.js.map +1 -0
- package/dist/finstrong/components/HaveManageableDebt/IncomeTabContent/index.es.js +40 -0
- package/dist/finstrong/components/HaveManageableDebt/IncomeTabContent/index.es.js.map +1 -0
- package/dist/finstrong/components/HealthChart/index.es.js +117 -0
- package/dist/finstrong/components/HealthChart/index.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsBorrowTab/index.es.js +71 -0
- package/dist/finstrong/components/KeyIndicatorsBorrowTab/index.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsDrawer/index.es.js +92 -0
- package/dist/finstrong/components/KeyIndicatorsDrawer/index.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsSaveTab/index.es.js +73 -0
- package/dist/finstrong/components/KeyIndicatorsSaveTab/index.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsSpendTab/index.es.js +58 -0
- package/dist/finstrong/components/KeyIndicatorsSpendTab/index.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsTabItem/index.es.js +65 -0
- package/dist/finstrong/components/KeyIndicatorsTabItem/index.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsTabItemDrawer/index.es.js +93 -0
- package/dist/finstrong/components/KeyIndicatorsTabItemDrawer/index.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsTabsWidget/index.es.js +78 -0
- package/dist/finstrong/components/KeyIndicatorsTabsWidget/index.es.js.map +1 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/EstimatedContributionCalculator/index.es.js +170 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/EstimatedContributionCalculator/index.es.js.map +1 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsContent/index.es.js +51 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsContent/index.es.js.map +1 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsSticky/index.es.js +53 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsSticky/index.es.js.map +1 -0
- package/dist/finstrong/components/ManageCreditScore/index.es.js +52 -0
- package/dist/finstrong/components/ManageCreditScore/index.es.js.map +1 -0
- package/dist/finstrong/components/ManageDOB/index.es.js +79 -0
- package/dist/finstrong/components/ManageDOB/index.es.js.map +1 -0
- package/dist/finstrong/components/MissingData/index.es.js +51 -0
- package/dist/finstrong/components/MissingData/index.es.js.map +1 -0
- package/dist/finstrong/components/ProfileDrawer/index.es.js +124 -0
- package/dist/finstrong/components/ProfileDrawer/index.es.js.map +1 -0
- package/dist/finstrong/components/ProfileList/index.es.js +65 -0
- package/dist/finstrong/components/ProfileList/index.es.js.map +1 -0
- package/dist/finstrong/components/ProfileProgressBar/index.es.js +32 -0
- package/dist/finstrong/components/ProfileProgressBar/index.es.js.map +1 -0
- package/dist/finstrong/components/ProgressBar/index.es.js +53 -0
- package/dist/finstrong/components/ProgressBar/index.es.js.map +1 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/AvailableTabContent/index.es.js +27 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/AvailableTabContent/index.es.js.map +1 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnDrawerContent/index.es.js +51 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnDrawerContent/index.es.js.map +1 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnProgressBar/index.es.js +56 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnProgressBar/index.es.js.map +1 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SpendingTabContent/index.es.js +34 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SpendingTabContent/index.es.js.map +1 -0
- package/dist/finstrong/components/ScoreHistoryDrawer/index.es.js +90 -0
- package/dist/finstrong/components/ScoreHistoryDrawer/index.es.js.map +1 -0
- package/dist/finstrong/components/ScoreRubricDrawer/index.es.js +118 -0
- package/dist/finstrong/components/ScoreRubricDrawer/index.es.js.map +1 -0
- package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeComponent/index.es.js +130 -0
- package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeComponent/index.es.js.map +1 -0
- package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeProgressBar/index.es.js +50 -0
- package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeProgressBar/index.es.js.map +1 -0
- package/dist/finstrong/components/StatusChip/index.es.js +37 -0
- package/dist/finstrong/components/StatusChip/index.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/Onboarding/index.es.js +57 -0
- package/dist/finstrong/components/onboarding/Onboarding/index.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/OnboardingAddMonthlyIncome/index.es.js +57 -0
- package/dist/finstrong/components/onboarding/OnboardingAddMonthlyIncome/index.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/OnboardingBirthday/index.es.js +46 -0
- package/dist/finstrong/components/onboarding/OnboardingBirthday/index.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/OnboardingCreditScore/index.es.js +28 -0
- package/dist/finstrong/components/onboarding/OnboardingCreditScore/index.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/OnboardingStepsDrawer/index.es.js +313 -0
- package/dist/finstrong/components/onboarding/OnboardingStepsDrawer/index.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/OnboardingStepsHeader/index.es.js +25 -0
- package/dist/finstrong/components/onboarding/OnboardingStepsHeader/index.es.js.map +1 -0
- package/dist/finstrong/components/paybillsontime/PayBillsOnTimeDrawerComponent/index.es.js +69 -0
- package/dist/finstrong/components/paybillsontime/PayBillsOnTimeDrawerComponent/index.es.js.map +1 -0
- package/dist/finstrong/components/paybillsontime/PayBillsOnTimeStickyComponent/index.es.js +38 -0
- package/dist/finstrong/components/paybillsontime/PayBillsOnTimeStickyComponent/index.es.js.map +1 -0
- package/dist/finstrong/components/shared/Accounts/index.es.js +102 -0
- package/dist/finstrong/components/shared/Accounts/index.es.js.map +1 -0
- package/dist/finstrong/components/shared/CustomDoubleBarPlot/index.es.js +48 -0
- package/dist/finstrong/components/shared/CustomDoubleBarPlot/index.es.js.map +1 -0
- package/dist/finstrong/components/shared/CustomPieArc/index.es.js +52 -0
- package/dist/finstrong/components/shared/CustomPieArc/index.es.js.map +1 -0
- package/dist/finstrong/components/shared/DialScoreCard/index.es.js +186 -0
- package/dist/finstrong/components/shared/DialScoreCard/index.es.js.map +1 -0
- package/dist/finstrong/components/shared/DoubleBarChart/index.es.js +196 -0
- package/dist/finstrong/components/shared/DoubleBarChart/index.es.js.map +1 -0
- package/dist/finstrong/components/shared/LineGraph/index.es.js +136 -0
- package/dist/finstrong/components/shared/LineGraph/index.es.js.map +1 -0
- package/dist/finstrong/components/shared/ScoreHistoryTimeline/index.es.js +107 -0
- package/dist/finstrong/components/shared/ScoreHistoryTimeline/index.es.js.map +1 -0
- package/dist/finstrong/components/shared/ScoreHistoryTimelineItem/index.es.js +40 -0
- package/dist/finstrong/components/shared/ScoreHistoryTimelineItem/index.es.js.map +1 -0
- package/dist/finstrong/components/shared/TotalCard/index.es.js +30 -0
- package/dist/finstrong/components/shared/TotalCard/index.es.js.map +1 -0
- package/dist/finstrong/components/shared/Transactions/index.es.js +129 -0
- package/dist/finstrong/components/shared/Transactions/index.es.js.map +1 -0
- package/dist/finstrong/constants/index/index.es.js +9 -0
- package/dist/finstrong/constants/index/index.es.js.map +1 -0
- package/dist/finstrong/index.es.js +8 -3912
- package/dist/finstrong/util/finstrongUtils/index.es.js +206 -0
- package/dist/finstrong/util/finstrongUtils/index.es.js.map +1 -0
- package/dist/goals/GoalsMicroWidget/index.es.js +44 -0
- package/dist/goals/GoalsMicroWidget/index.es.js.map +1 -0
- package/dist/goals/GoalsWidget/index.es.js +141 -0
- package/dist/goals/GoalsWidget/index.es.js.map +1 -0
- package/dist/goals/components/AccountSelectionDrawer/index.es.js +54 -0
- package/dist/goals/components/AccountSelectionDrawer/index.es.js.map +1 -0
- package/dist/goals/components/AddGoal/AddGoalListItem/index.es.js +72 -0
- package/dist/goals/components/AddGoal/AddGoalListItem/index.es.js.map +1 -0
- package/dist/goals/components/AddGoal/index.es.js +59 -0
- package/dist/goals/components/AddGoal/index.es.js.map +1 -0
- package/dist/goals/components/GoalDetails/index.es.js +115 -0
- package/dist/goals/components/GoalDetails/index.es.js.map +1 -0
- package/dist/goals/components/GoalDetailsDrawer/index.es.js +83 -0
- package/dist/goals/components/GoalDetailsDrawer/index.es.js.map +1 -0
- package/dist/goals/components/GoalList/index.es.js +135 -0
- package/dist/goals/components/GoalList/index.es.js.map +1 -0
- package/dist/goals/components/GoalStatusCard/index.es.js +95 -0
- package/dist/goals/components/GoalStatusCard/index.es.js.map +1 -0
- package/dist/goals/components/ManageGoals/CompleteListItem/index.es.js +59 -0
- package/dist/goals/components/ManageGoals/CompleteListItem/index.es.js.map +1 -0
- package/dist/goals/components/ManageGoals/OngoingListItem/index.es.js +83 -0
- package/dist/goals/components/ManageGoals/OngoingListItem/index.es.js.map +1 -0
- package/dist/goals/components/ManageGoals/index.es.js +89 -0
- package/dist/goals/components/ManageGoals/index.es.js.map +1 -0
- package/dist/goals/components/TabTitle/index.es.js +19 -0
- package/dist/goals/components/TabTitle/index.es.js.map +1 -0
- package/dist/goals/components/actions/AccountAction/index.es.js +28 -0
- package/dist/goals/components/actions/AccountAction/index.es.js.map +1 -0
- package/dist/goals/components/actions/AddRetirementAccountAction/index.es.js +56 -0
- package/dist/goals/components/actions/AddRetirementAccountAction/index.es.js.map +1 -0
- package/dist/goals/components/actions/AmountToSaveAction/index.es.js +45 -0
- package/dist/goals/components/actions/AmountToSaveAction/index.es.js.map +1 -0
- package/dist/goals/components/actions/BirthdayAction/index.es.js +44 -0
- package/dist/goals/components/actions/BirthdayAction/index.es.js.map +1 -0
- package/dist/goals/components/actions/ChangeAccountAction/index.es.js +127 -0
- package/dist/goals/components/actions/ChangeAccountAction/index.es.js.map +1 -0
- package/dist/goals/components/actions/ContributionAction/index.es.js +49 -0
- package/dist/goals/components/actions/ContributionAction/index.es.js.map +1 -0
- package/dist/goals/components/actions/GoalNameAction/index.es.js +41 -0
- package/dist/goals/components/actions/GoalNameAction/index.es.js.map +1 -0
- package/dist/goals/components/actions/InterestRateAction/index.es.js +42 -0
- package/dist/goals/components/actions/InterestRateAction/index.es.js.map +1 -0
- package/dist/goals/components/actions/MonthlyPaymentAction/index.es.js +47 -0
- package/dist/goals/components/actions/MonthlyPaymentAction/index.es.js.map +1 -0
- package/dist/goals/components/actions/OriginalBalanceAction/index.es.js +47 -0
- package/dist/goals/components/actions/OriginalBalanceAction/index.es.js.map +1 -0
- package/dist/goals/components/actions/RetirementAgeAction/index.es.js +42 -0
- package/dist/goals/components/actions/RetirementAgeAction/index.es.js.map +1 -0
- package/dist/goals/components/micro/GoalMicroStatusCard/index.es.js +64 -0
- package/dist/goals/components/micro/GoalMicroStatusCard/index.es.js.map +1 -0
- package/dist/goals/components/micro/GoalsMicroEmptyState/index.es.js +35 -0
- package/dist/goals/components/micro/GoalsMicroEmptyState/index.es.js.map +1 -0
- package/dist/goals/index.es.js +4 -1088
- package/dist/help/HelpWidget/index.es.js +25 -0
- package/dist/help/HelpWidget/index.es.js.map +1 -0
- package/dist/help/components/Help/index.es.js +48 -0
- package/dist/help/components/Help/index.es.js.map +1 -0
- package/dist/help/components/HelpContent/index.es.js +25 -0
- package/dist/help/components/HelpContent/index.es.js.map +1 -0
- package/dist/help/components/HelpList/index.es.js +142 -0
- package/dist/help/components/HelpList/index.es.js.map +1 -0
- package/dist/help/components/content/BottomImageContent/index.es.js +51 -0
- package/dist/help/components/content/BottomImageContent/index.es.js.map +1 -0
- package/dist/help/components/content/ContentItem/index.es.js +46 -0
- package/dist/help/components/content/ContentItem/index.es.js.map +1 -0
- package/dist/help/components/content/Header/index.es.js +83 -0
- package/dist/help/components/content/Header/index.es.js.map +1 -0
- package/dist/help/components/content/LeftImageContent/index.es.js +57 -0
- package/dist/help/components/content/LeftImageContent/index.es.js.map +1 -0
- package/dist/help/components/content/NoImageContent/index.es.js +15 -0
- package/dist/help/components/content/NoImageContent/index.es.js.map +1 -0
- package/dist/help/components/content/RightImageContent/index.es.js +55 -0
- package/dist/help/components/content/RightImageContent/index.es.js.map +1 -0
- package/dist/help/components/content/TopImageContent/index.es.js +51 -0
- package/dist/help/components/content/TopImageContent/index.es.js.map +1 -0
- package/dist/help/components/content/section/Accounts/index.es.js +159 -0
- package/dist/help/components/content/section/Accounts/index.es.js.map +1 -0
- package/dist/help/components/content/section/Budgets/index.es.js +66 -0
- package/dist/help/components/content/section/Budgets/index.es.js.map +1 -0
- package/dist/help/components/content/section/CashFlow/index.es.js +47 -0
- package/dist/help/components/content/section/CashFlow/index.es.js.map +1 -0
- package/dist/help/components/content/section/Debts/index.es.js +168 -0
- package/dist/help/components/content/section/Debts/index.es.js.map +1 -0
- package/dist/help/components/content/section/General/index.es.js +84 -0
- package/dist/help/components/content/section/General/index.es.js.map +1 -0
- package/dist/help/components/content/section/Goals/index.es.js +112 -0
- package/dist/help/components/content/section/Goals/index.es.js.map +1 -0
- package/dist/help/components/content/section/Insights/index.es.js +79 -0
- package/dist/help/components/content/section/Insights/index.es.js.map +1 -0
- package/dist/help/components/content/section/Investments/index.es.js +48 -0
- package/dist/help/components/content/section/Investments/index.es.js.map +1 -0
- package/dist/help/components/content/section/Mobile/index.es.js +48 -0
- package/dist/help/components/content/section/Mobile/index.es.js.map +1 -0
- package/dist/help/components/content/section/NetWorth/index.es.js +61 -0
- package/dist/help/components/content/section/NetWorth/index.es.js.map +1 -0
- package/dist/help/components/content/section/Notifications/index.es.js +53 -0
- package/dist/help/components/content/section/Notifications/index.es.js.map +1 -0
- package/dist/help/components/content/section/RecurringTransactions/index.es.js +72 -0
- package/dist/help/components/content/section/RecurringTransactions/index.es.js.map +1 -0
- package/dist/help/components/content/section/Spending/index.es.js +63 -0
- package/dist/help/components/content/section/Spending/index.es.js.map +1 -0
- package/dist/help/components/content/section/Transactions/index.es.js +209 -0
- package/dist/help/components/content/section/Transactions/index.es.js.map +1 -0
- package/dist/help/components/content/section/Trends/index.es.js +43 -0
- package/dist/help/components/content/section/Trends/index.es.js.map +1 -0
- package/dist/help/components/content/section/index/index.es.js +37 -0
- package/dist/help/components/content/section/index/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/ContactSupport/index.es.js +90 -0
- package/dist/help/components/requestsupport/ContactSupport/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/HelpByCategoryList/index.es.js +99 -0
- package/dist/help/components/requestsupport/HelpByCategoryList/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/MissingInstitution/index.es.js +103 -0
- package/dist/help/components/requestsupport/MissingInstitution/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/PopularTopicsDrawer/index.es.js +52 -0
- package/dist/help/components/requestsupport/PopularTopicsDrawer/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/PopularTopicsList/index.es.js +24 -0
- package/dist/help/components/requestsupport/PopularTopicsList/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/PopularTopicsRow/index.es.js +40 -0
- package/dist/help/components/requestsupport/PopularTopicsRow/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/RequestSupport/index.es.js +172 -0
- package/dist/help/components/requestsupport/RequestSupport/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/RequestSupportFooter/index.es.js +46 -0
- package/dist/help/components/requestsupport/RequestSupportFooter/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/RequestSupportHeader/index.es.js +47 -0
- package/dist/help/components/requestsupport/RequestSupportHeader/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/RequestSupportInstitution/index.es.js +68 -0
- package/dist/help/components/requestsupport/RequestSupportInstitution/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/SupportSuccessMessage/index.es.js +71 -0
- package/dist/help/components/requestsupport/SupportSuccessMessage/index.es.js.map +1 -0
- package/dist/help/constants/HelpImages/index.es.js +49 -0
- package/dist/help/constants/HelpImages/index.es.js.map +1 -0
- package/dist/help/index.es.js +4 -26
- package/dist/help/utils/getInstitutionsBasedOnGuid/index.es.js +16 -0
- package/dist/help/utils/getInstitutionsBasedOnGuid/index.es.js.map +1 -0
- package/dist/insights/components/feed/Header/index.es.js +75 -0
- package/dist/insights/components/feed/Header/index.es.js.map +1 -0
- package/dist/insights/components/insights/AccountDiscoverability/AccountDiscoverability/index.es.js +12 -0
- package/dist/insights/components/insights/AccountDiscoverability/AccountDiscoverability/index.es.js.map +1 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/AmericanUpcomingTaxDeadlineAlert/index.es.js +22 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/AmericanUpcomingTaxDeadlineAlert/index.es.js.map +1 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/images/AmericanUpcomingTaxDeadlineAlert.svg/index.es.js +274 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/images/AmericanUpcomingTaxDeadlineAlert.svg/index.es.js.map +1 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/images/UpcomingTaxDeadlineAlertCIBC.svg/index.es.js +56 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/images/UpcomingTaxDeadlineAlertCIBC.svg/index.es.js.map +1 -0
- package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandard/index.es.js +35 -0
- package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandard/index.es.js.map +1 -0
- package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandardMUI/index.es.js +41 -0
- package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandardMUI/index.es.js.map +1 -0
- package/dist/insights/components/insights/CashBack/CashBack/index.es.js +45 -0
- package/dist/insights/components/insights/CashBack/CashBack/index.es.js.map +1 -0
- package/dist/insights/components/insights/CashBack/images/CashBack.png/index.es.js +6 -0
- package/dist/insights/components/insights/CashBack/images/CashBack.png/index.es.js.map +1 -0
- package/dist/insights/components/insights/CategoryBudget/CategoryBudget/index.es.js +55 -0
- package/dist/insights/components/insights/CategoryBudget/CategoryBudget/index.es.js.map +1 -0
- package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2/index.es.js +46 -0
- package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2/index.es.js.map +1 -0
- package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2MUI/index.es.js +48 -0
- package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2MUI/index.es.js.map +1 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/CelebrateCreditCardPayoff/index.es.js +66 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/CelebrateCreditCardPayoff/index.es.js.map +1 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/images/CelebrateCreditCardPayoffDark.svg/index.es.js +85 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/images/CelebrateCreditCardPayoffDark.svg/index.es.js.map +1 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/images/CelebrateCreditCardPayoffLight.svg/index.es.js +85 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/images/CelebrateCreditCardPayoffLight.svg/index.es.js.map +1 -0
- package/dist/insights/components/insights/CustomTransaction/CustomTransaction/index.es.js +24 -0
- package/dist/insights/components/insights/CustomTransaction/CustomTransaction/index.es.js.map +1 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsBody/index.es.js +120 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsBody/index.es.js.map +1 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsLearnMoreDrawerContent/index.es.js +143 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsLearnMoreDrawerContent/index.es.js.map +1 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsMiniInsight/index.es.js +20 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsMiniInsight/index.es.js.map +1 -0
- package/dist/insights/components/insights/FederalBankHoliday/FederalBankHoliday/index.es.js +29 -0
- package/dist/insights/components/insights/FederalBankHoliday/FederalBankHoliday/index.es.js.map +1 -0
- package/dist/insights/components/insights/FederalBankHoliday/FederalBankHolidayMUI/index.es.js +20 -0
- package/dist/insights/components/insights/FederalBankHoliday/FederalBankHolidayMUI/index.es.js.map +1 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalBankHoliday.svg/index.es.js +55 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalBankHoliday.svg/index.es.js.map +1 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalBankHolidayMUI.svg/index.es.js +494 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalBankHolidayMUI.svg/index.es.js.map +1 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalHolidayCibc.svg/index.es.js +88 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalHolidayCibc.svg/index.es.js.map +1 -0
- package/dist/insights/components/insights/MarketingHub/Offer/index.es.js +44 -0
- package/dist/insights/components/insights/MarketingHub/Offer/index.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlyDebtToIncomeComparisonV2/MonthlyDebtToIncomeComparisonV2/index.es.js +33 -0
- package/dist/insights/components/insights/MonthlyDebtToIncomeComparisonV2/MonthlyDebtToIncomeComparisonV2/index.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/LastMonthsContributionSection/index.es.js +29 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/LastMonthsContributionSection/index.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/MonthlyEmergencyFundReviewBody/index.es.js +42 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/MonthlyEmergencyFundReviewBody/index.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/ProjectedCompletionSection/index.es.js +27 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/ProjectedCompletionSection/index.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/TotalSection/index.es.js +28 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/TotalSection/index.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlySavingsToIncomeComparison/MonthlySavingsToIncomeComparison/index.es.js +33 -0
- package/dist/insights/components/insights/MonthlySavingsToIncomeComparison/MonthlySavingsToIncomeComparison/index.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlySpendToIncomeComparisonV2/MonthlySpendToIncomeComparisonV2/index.es.js +37 -0
- package/dist/insights/components/insights/MonthlySpendToIncomeComparisonV2/MonthlySpendToIncomeComparisonV2/index.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlySpendingComparisonV2/MonthlySpendingComparisonV2/index.es.js +35 -0
- package/dist/insights/components/insights/MonthlySpendingComparisonV2/MonthlySpendingComparisonV2/index.es.js.map +1 -0
- package/dist/insights/components/insights/P2pCategorization/P2pCategorization/index.es.js +20 -0
- package/dist/insights/components/insights/P2pCategorization/P2pCategorization/index.es.js.map +1 -0
- package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationMultipleTransactions/index.es.js +83 -0
- package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationMultipleTransactions/index.es.js.map +1 -0
- package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationSingleTransaction/index.es.js +42 -0
- package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationSingleTransaction/index.es.js.map +1 -0
- package/dist/insights/components/insights/SavingsAccountBalancesSummary/SavingsAccountBalancesSummary/index.es.js +40 -0
- package/dist/insights/components/insights/SavingsAccountBalancesSummary/SavingsAccountBalancesSummary/index.es.js.map +1 -0
- package/dist/insights/components/insights/SetUpDirectDeposit/SetUpDirectDepositBody/index.es.js +19 -0
- package/dist/insights/components/insights/SetUpDirectDeposit/SetUpDirectDepositBody/index.es.js.map +1 -0
- package/dist/insights/components/insights/SharedDeposit/SharedDeposit/index.es.js +104 -0
- package/dist/insights/components/insights/SharedDeposit/SharedDeposit/index.es.js.map +1 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/AccountBox/index.es.js +37 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/AccountBox/index.es.js.map +1 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositBody/index.es.js +25 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositBody/index.es.js.map +1 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositMainContainer/index.es.js +36 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositMainContainer/index.es.js.map +1 -0
- package/dist/insights/components/insights/UnifiedDeposit/UnifiedDeposit/index.es.js +38 -0
- package/dist/insights/components/insights/UnifiedDeposit/UnifiedDeposit/index.es.js.map +1 -0
- package/dist/insights/components/insights/UnifiedDeposit/UnifiedDepositBody/index.es.js +86 -0
- package/dist/insights/components/insights/UnifiedDeposit/UnifiedDepositBody/index.es.js.map +1 -0
- package/dist/insights/components/insights/UserFeedback/StyledToggleButton/index.es.js +34 -0
- package/dist/insights/components/insights/UserFeedback/StyledToggleButton/index.es.js.map +1 -0
- package/dist/insights/components/insights/UserFeedback/UserFeedback/index.es.js +133 -0
- package/dist/insights/components/insights/UserFeedback/UserFeedback/index.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/BubbleWeek/index.es.js +59 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/BubbleWeek/index.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/NoSpendIcons/index.es.js +23 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/NoSpendIcons/index.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/WeeklyNoSpendDays/index.es.js +51 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/WeeklyNoSpendDays/index.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_0.png/index.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_0.png/index.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_1.png/index.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_1.png/index.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_2.png/index.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_2.png/index.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_3.png/index.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_3.png/index.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_4.png/index.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_4.png/index.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_5.png/index.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_5.png/index.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_6.png/index.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_6.png/index.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_7.png/index.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_7.png/index.es.js.map +1 -0
- package/dist/insights/components/shared/BottomSheet/index.es.js +39 -0
- package/dist/insights/components/shared/BottomSheet/index.es.js.map +1 -0
- package/dist/insights/components/shared/ChartDrawerTemplate/ChartDrawerTemplate/index.es.js +66 -0
- package/dist/insights/components/shared/ChartDrawerTemplate/ChartDrawerTemplate/index.es.js.map +1 -0
- package/dist/insights/components/shared/ChartDrawerTemplate/TipSection/index.es.js +60 -0
- package/dist/insights/components/shared/ChartDrawerTemplate/TipSection/index.es.js.map +1 -0
- package/dist/insights/components/shared/ChartTransactionWithDrillDown/index.es.js +76 -0
- package/dist/insights/components/shared/ChartTransactionWithDrillDown/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/BarChart/index.es.js +147 -0
- package/dist/insights/components/shared/Charts/BarChart/BarChart/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/BarChartV2/index.es.js +148 -0
- package/dist/insights/components/shared/Charts/BarChart/BarChartV2/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/ChartLegend/index.es.js +75 -0
- package/dist/insights/components/shared/Charts/BarChart/ChartLegend/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/ChartLegendV2/index.es.js +80 -0
- package/dist/insights/components/shared/Charts/BarChart/ChartLegendV2/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomBarPlot/index.es.js +72 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomBarPlot/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomBarPlotV2/index.es.js +32 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomBarPlotV2/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlot/index.es.js +51 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlot/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlotMXUI/index.es.js +45 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlotMXUI/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChart/index.es.js +118 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChart/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegend/index.es.js +73 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegend/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegendMXUI/index.es.js +73 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegendMXUI/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartMXUI/index.es.js +116 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartMXUI/index.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/EmptyBarChart/index.es.js +14 -0
- package/dist/insights/components/shared/Charts/EmptyBarChart/index.es.js.map +1 -0
- package/dist/insights/components/shared/Confetti/index.es.js +32 -0
- package/dist/insights/components/shared/Confetti/index.es.js.map +1 -0
- package/dist/insights/components/shared/ConnectionCard/index.es.js +90 -0
- package/dist/insights/components/shared/ConnectionCard/index.es.js.map +1 -0
- package/dist/insights/components/shared/Coupon/index.es.js +66 -0
- package/dist/insights/components/shared/Coupon/index.es.js.map +1 -0
- package/dist/insights/components/shared/DeepLinks/DeepLinkDialog/index.es.js +34 -0
- package/dist/insights/components/shared/DeepLinks/DeepLinkDialog/index.es.js.map +1 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Circle/index.es.js +20 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Circle/index.es.js.map +1 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/DirectDepositDeepLink/index.es.js +163 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/DirectDepositDeepLink/index.es.js.map +1 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Dot/index.es.js +19 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Dot/index.es.js.map +1 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Oval/index.es.js +16 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Oval/index.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/DirectDeposit/index.es.js +85 -0
- package/dist/insights/components/shared/DirectDeposit/DirectDeposit/index.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/DirectDepositSubHeader/index.es.js +20 -0
- package/dist/insights/components/shared/DirectDeposit/DirectDepositSubHeader/index.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/FullFeedBodyHeader/index.es.js +33 -0
- package/dist/insights/components/shared/DirectDeposit/FullFeedBodyHeader/index.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/LeftBox/index.es.js +29 -0
- package/dist/insights/components/shared/DirectDeposit/LeftBox/index.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/MiniBodyHeader/index.es.js +29 -0
- package/dist/insights/components/shared/DirectDeposit/MiniBodyHeader/index.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/RightBox/index.es.js +43 -0
- package/dist/insights/components/shared/DirectDeposit/RightBox/index.es.js.map +1 -0
- package/dist/insights/components/shared/DiscoveredAccountsConnect/index.es.js +82 -0
- package/dist/insights/components/shared/DiscoveredAccountsConnect/index.es.js.map +1 -0
- package/dist/insights/components/shared/DrillDownCalculation/BalanceStepper/index.es.js +58 -0
- package/dist/insights/components/shared/DrillDownCalculation/BalanceStepper/index.es.js.map +1 -0
- package/dist/insights/components/shared/DrillDownCalculation/DrillDownCalculation/index.es.js +264 -0
- package/dist/insights/components/shared/DrillDownCalculation/DrillDownCalculation/index.es.js.map +1 -0
- package/dist/insights/components/shared/ErrorCard/ErrorCard/index.es.js +76 -0
- package/dist/insights/components/shared/ErrorCard/ErrorCard/index.es.js.map +1 -0
- package/dist/insights/components/shared/ErrorCard/images/ErrorViewCibc.svg/index.es.js +57 -0
- package/dist/insights/components/shared/ErrorCard/images/ErrorViewCibc.svg/index.es.js.map +1 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackButtons/index.es.js +47 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackButtons/index.es.js.map +1 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackDescription/index.es.js +16 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackDescription/index.es.js.map +1 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackHeader/index.es.js +29 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackHeader/index.es.js.map +1 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackOptions/index.es.js +50 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackOptions/index.es.js.map +1 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackText/index.es.js +45 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackText/index.es.js.map +1 -0
- package/dist/insights/components/shared/GoalProgress/index.es.js +42 -0
- package/dist/insights/components/shared/GoalProgress/index.es.js.map +1 -0
- package/dist/insights/components/shared/GradientBox/index.es.js +33 -0
- package/dist/insights/components/shared/GradientBox/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/BeatCard/index.es.js +31 -0
- package/dist/insights/components/shared/InsightsCard/BeatCard/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/BeatCardMUI/index.es.js +32 -0
- package/dist/insights/components/shared/InsightsCard/BeatCardMUI/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardButtonSection/index.es.js +20 -0
- package/dist/insights/components/shared/InsightsCard/CardButtonSection/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardError/index.es.js +30 -0
- package/dist/insights/components/shared/InsightsCard/CardError/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardFooter/index.es.js +24 -0
- package/dist/insights/components/shared/InsightsCard/CardFooter/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardHeader/index.es.js +28 -0
- package/dist/insights/components/shared/InsightsCard/CardHeader/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardHeaderMUI/index.es.js +30 -0
- package/dist/insights/components/shared/InsightsCard/CardHeaderMUI/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardLoading/index.es.js +21 -0
- package/dist/insights/components/shared/InsightsCard/CardLoading/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/ClientConfigurableCta/index.es.js +38 -0
- package/dist/insights/components/shared/InsightsCard/ClientConfigurableCta/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/ContentAndDescription/index.es.js +43 -0
- package/dist/insights/components/shared/InsightsCard/ContentAndDescription/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/ContentAndDescriptionMUI/index.es.js +43 -0
- package/dist/insights/components/shared/InsightsCard/ContentAndDescriptionMUI/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/Description/index.es.js +31 -0
- package/dist/insights/components/shared/InsightsCard/Description/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/DescriptionMUI/index.es.js +30 -0
- package/dist/insights/components/shared/InsightsCard/DescriptionMUI/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/EmbeddedCard/index.es.js +69 -0
- package/dist/insights/components/shared/InsightsCard/EmbeddedCard/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/FeedbackCard/index.es.js +120 -0
- package/dist/insights/components/shared/InsightsCard/FeedbackCard/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/InsightButton/index.es.js +25 -0
- package/dist/insights/components/shared/InsightsCard/InsightButton/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/MiniDescription/index.es.js +44 -0
- package/dist/insights/components/shared/InsightsCard/MiniDescription/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/MiniDescriptionMUI/index.es.js +42 -0
- package/dist/insights/components/shared/InsightsCard/MiniDescriptionMUI/index.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/images/BeatErrorView.svg/index.es.js +728 -0
- package/dist/insights/components/shared/InsightsCard/images/BeatErrorView.svg/index.es.js.map +1 -0
- package/dist/insights/components/shared/MenuAction/index.es.js +68 -0
- package/dist/insights/components/shared/MenuAction/index.es.js.map +1 -0
- package/dist/insights/components/shared/MiniInsightCard/index.es.js +69 -0
- package/dist/insights/components/shared/MiniInsightCard/index.es.js.map +1 -0
- package/dist/insights/components/shared/P2P/P2PMultipleCategorization/index.es.js +107 -0
- package/dist/insights/components/shared/P2P/P2PMultipleCategorization/index.es.js.map +1 -0
- package/dist/insights/components/shared/P2PCategorizationSingleAccount/P2PCategorizationSingleAccount/index.es.js +75 -0
- package/dist/insights/components/shared/P2PCategorizationSingleAccount/P2PCategorizationSingleAccount/index.es.js.map +1 -0
- package/dist/insights/components/shared/ProgressBar/index.es.js +39 -0
- package/dist/insights/components/shared/ProgressBar/index.es.js.map +1 -0
- package/dist/insights/components/shared/SaveAnExtra100/SaveAnExtra100/index.es.js +55 -0
- package/dist/insights/components/shared/SaveAnExtra100/SaveAnExtra100/index.es.js.map +1 -0
- package/dist/insights/components/shared/SaveEnoughToLiveOnBottomSection/index.es.js +77 -0
- package/dist/insights/components/shared/SaveEnoughToLiveOnBottomSection/index.es.js.map +1 -0
- package/dist/insights/components/shared/SaveEnoughToLiveOnTopSection/index.es.js +12 -0
- package/dist/insights/components/shared/SaveEnoughToLiveOnTopSection/index.es.js.map +1 -0
- package/dist/insights/components/shared/StatusIndicator/index.es.js +69 -0
- package/dist/insights/components/shared/StatusIndicator/index.es.js.map +1 -0
- package/dist/insights/components/shared/ThemedSVGImage/index.es.js +49 -0
- package/dist/insights/components/shared/ThemedSVGImage/index.es.js.map +1 -0
- package/dist/insights/components/shared/TransactionCard/index.es.js +93 -0
- package/dist/insights/components/shared/TransactionCard/index.es.js.map +1 -0
- package/dist/insights/components/shared/ZeroState/LinedCardZeroState/index.es.js +23 -0
- package/dist/insights/components/shared/ZeroState/LinedCardZeroState/index.es.js.map +1 -0
- package/dist/insights/components/shared/images/BarChartEmptyState.svg/index.es.js +101 -0
- package/dist/insights/components/shared/images/BarChartEmptyState.svg/index.es.js.map +1 -0
- package/dist/insights/components/shared/images/CouponLeft.svg/index.es.js +104 -0
- package/dist/insights/components/shared/images/CouponLeft.svg/index.es.js.map +1 -0
- package/dist/insights/components/shared/images/CouponLeftDark.svg/index.es.js +104 -0
- package/dist/insights/components/shared/images/CouponLeftDark.svg/index.es.js.map +1 -0
- package/dist/insights/components/shared/images/CouponPerferation.svg/index.es.js +38 -0
- package/dist/insights/components/shared/images/CouponPerferation.svg/index.es.js.map +1 -0
- package/dist/insights/components/shared/images/EmptyBarChart.svg/index.es.js +101 -0
- package/dist/insights/components/shared/images/EmptyBarChart.svg/index.es.js.map +1 -0
- package/dist/insights/components/shared/images/LinedCardZeroState.svg/index.es.js +91 -0
- package/dist/insights/components/shared/images/LinedCardZeroState.svg/index.es.js.map +1 -0
- package/dist/insights/components/shared/images/SaveEnoughToLiveOnBottom.svg/index.es.js +21 -0
- package/dist/insights/components/shared/images/SaveEnoughToLiveOnBottom.svg/index.es.js.map +1 -0
- package/dist/insights/components/shared/images/SaveEnoughToLiveOnTop.svg/index.es.js +815 -0
- package/dist/insights/components/shared/images/SaveEnoughToLiveOnTop.svg/index.es.js.map +1 -0
- package/dist/insights/hooks/useContainerDimensions/index.es.js +26 -0
- package/dist/insights/hooks/useContainerDimensions/index.es.js.map +1 -0
- package/dist/insights/images/Loading.gif/index.es.js +6 -0
- package/dist/insights/images/Loading.gif/index.es.js.map +1 -0
- package/dist/insights/index.es.js +183 -4871
- package/dist/insights/types/Charts/BarChart.d.ts +2 -11
- package/dist/insights/types/CommonBeat/index.es.js +8 -0
- package/dist/insights/types/CommonBeat/index.es.js.map +1 -0
- package/dist/investments/InvestmentsWidget/index.es.js +98 -0
- package/dist/investments/InvestmentsWidget/index.es.js.map +1 -0
- package/dist/investments/components/Allocation/InvestementAllocationList/index.es.js +136 -0
- package/dist/investments/components/Allocation/InvestementAllocationList/index.es.js.map +1 -0
- package/dist/investments/components/Allocation/InvestmentsAllocationChart/index.es.js +86 -0
- package/dist/investments/components/Allocation/InvestmentsAllocationChart/index.es.js.map +1 -0
- package/dist/investments/components/Allocation/index.es.js +55 -0
- package/dist/investments/components/Allocation/index.es.js.map +1 -0
- package/dist/investments/components/Allocation/util/createInvestementsAllocationData/index.es.js +103 -0
- package/dist/investments/components/Allocation/util/createInvestementsAllocationData/index.es.js.map +1 -0
- package/dist/investments/components/Analysis/index.es.js +167 -0
- package/dist/investments/components/Analysis/index.es.js.map +1 -0
- package/dist/investments/components/AnalysisDetails/index.es.js +86 -0
- package/dist/investments/components/AnalysisDetails/index.es.js.map +1 -0
- package/dist/investments/components/EmptyStateFooterComponent/index.es.js +52 -0
- package/dist/investments/components/EmptyStateFooterComponent/index.es.js.map +1 -0
- package/dist/investments/components/HeaderCell/index.es.js +28 -0
- package/dist/investments/components/HeaderCell/index.es.js.map +1 -0
- package/dist/investments/components/HoldingDrawer/index.es.js +327 -0
- package/dist/investments/components/HoldingDrawer/index.es.js.map +1 -0
- package/dist/investments/components/HoldingTable/index.es.js +199 -0
- package/dist/investments/components/HoldingTable/index.es.js.map +1 -0
- package/dist/investments/components/InfoToolTip/index.es.js +45 -0
- package/dist/investments/components/InfoToolTip/index.es.js.map +1 -0
- package/dist/investments/components/Overview/index.es.js +456 -0
- package/dist/investments/components/Overview/index.es.js.map +1 -0
- package/dist/investments/components/TabTitle/index.es.js +12 -0
- package/dist/investments/components/TabTitle/index.es.js.map +1 -0
- package/dist/investments/index.es.js +2 -1675
- package/dist/merchants/components/MerchantLookup/index.es.js +91 -0
- package/dist/merchants/components/MerchantLookup/index.es.js.map +1 -0
- package/dist/merchants/index.es.js +2 -76
- package/dist/microinsights/InsightsMicroWidget/index.es.js +109 -0
- package/dist/microinsights/InsightsMicroWidget/index.es.js.map +1 -0
- package/dist/microinsights/MicroCardTemplate/index.es.js +159 -0
- package/dist/microinsights/MicroCardTemplate/index.es.js.map +1 -0
- package/dist/microinsights/MicroWidgetContainer/index.es.js +24 -0
- package/dist/microinsights/MicroWidgetContainer/index.es.js.map +1 -0
- package/dist/microinsights/Spinner/index.es.js +19 -0
- package/dist/microinsights/Spinner/index.es.js.map +1 -0
- package/dist/microinsights/analytics/index.es.js +12 -0
- package/dist/microinsights/analytics/index.es.js.map +1 -0
- package/dist/microinsights/beaticons/AreaChartIcon/index.es.js +18 -0
- package/dist/microinsights/beaticons/AreaChartIcon/index.es.js.map +1 -0
- package/dist/microinsights/beaticons/AverageSpendComparisonIcon/index.es.js +23 -0
- package/dist/microinsights/beaticons/AverageSpendComparisonIcon/index.es.js.map +1 -0
- package/dist/microinsights/beaticons/BeatCategoryIcon/index.es.js +16 -0
- package/dist/microinsights/beaticons/BeatCategoryIcon/index.es.js.map +1 -0
- package/dist/microinsights/beaticons/BeatIcon/index.es.js +162 -0
- package/dist/microinsights/beaticons/BeatIcon/index.es.js.map +1 -0
- package/dist/microinsights/beaticons/BeatMaterialIcon/index.es.js +25 -0
- package/dist/microinsights/beaticons/BeatMaterialIcon/index.es.js.map +1 -0
- package/dist/microinsights/beaticons/BeatMerchantLogo/index.es.js +20 -0
- package/dist/microinsights/beaticons/BeatMerchantLogo/index.es.js.map +1 -0
- package/dist/microinsights/beaticons/ChartFilledIcon/index.es.js +21 -0
- package/dist/microinsights/beaticons/ChartFilledIcon/index.es.js.map +1 -0
- package/dist/microinsights/beaticons/InstitutionLogoIcon/index.es.js +12 -0
- package/dist/microinsights/beaticons/InstitutionLogoIcon/index.es.js.map +1 -0
- package/dist/microinsights/beaticons/MonthlySpendComparisonIcon/index.es.js +17 -0
- package/dist/microinsights/beaticons/MonthlySpendComparisonIcon/index.es.js.map +1 -0
- package/dist/microinsights/beaticons/ZeroStateIcon/index.es.js +722 -0
- package/dist/microinsights/beaticons/ZeroStateIcon/index.es.js.map +1 -0
- package/dist/microinsights/cards/InsightCard/index.es.js +71 -0
- package/dist/microinsights/cards/InsightCard/index.es.js.map +1 -0
- package/dist/microinsights/cards/NoRelevantInsightsCard/index.es.js +38 -0
- package/dist/microinsights/cards/NoRelevantInsightsCard/index.es.js.map +1 -0
- package/dist/microinsights/cards/ViewMoreMicroCard/index.es.js +43 -0
- package/dist/microinsights/cards/ViewMoreMicroCard/index.es.js.map +1 -0
- package/dist/microinsights/cards/ZeroStateCard/index.es.js +32 -0
- package/dist/microinsights/cards/ZeroStateCard/index.es.js.map +1 -0
- package/dist/microinsights/carousel/BeatList/index.es.js +37 -0
- package/dist/microinsights/carousel/BeatList/index.es.js.map +1 -0
- package/dist/microinsights/carousel/CarouselControls/index.es.js +63 -0
- package/dist/microinsights/carousel/CarouselControls/index.es.js.map +1 -0
- package/dist/microinsights/carousel/CarouselHeader/index.es.js +39 -0
- package/dist/microinsights/carousel/CarouselHeader/index.es.js.map +1 -0
- package/dist/microinsights/carousel/MicroBeatCarousel/index.es.js +147 -0
- package/dist/microinsights/carousel/MicroBeatCarousel/index.es.js.map +1 -0
- package/dist/microinsights/constants/Analytics/index.es.js +148 -0
- package/dist/microinsights/constants/Analytics/index.es.js.map +1 -0
- package/dist/microinsights/constants/App/index.es.js +11 -0
- package/dist/microinsights/constants/App/index.es.js.map +1 -0
- package/dist/microinsights/context/InsightsMicroWidgetDataProvider/index.es.js +17 -0
- package/dist/microinsights/context/InsightsMicroWidgetDataProvider/index.es.js.map +1 -0
- package/dist/microinsights/context/hooks/index.es.js +27 -0
- package/dist/microinsights/context/hooks/index.es.js.map +1 -0
- package/dist/microinsights/index.es.js +28 -826
- package/dist/microinsights/stores/AppStore/index.es.js +27 -0
- package/dist/microinsights/stores/AppStore/index.es.js.map +1 -0
- package/dist/microinsights/stores/CopyStore/index.es.js +34 -0
- package/dist/microinsights/stores/CopyStore/index.es.js.map +1 -0
- package/dist/microinsights/stores/InsightsMicroWidgetStore/index.es.js +33 -0
- package/dist/microinsights/stores/InsightsMicroWidgetStore/index.es.js.map +1 -0
- package/dist/microinsights/utils/DataSeries/index.es.js +11 -0
- package/dist/microinsights/utils/DataSeries/index.es.js.map +1 -0
- package/dist/microinsights/utils/colorType/index.es.js +13 -0
- package/dist/microinsights/utils/colorType/index.es.js.map +1 -0
- package/dist/networth/NetWorthMicroWidget/index.es.js +40 -0
- package/dist/networth/NetWorthMicroWidget/index.es.js.map +1 -0
- package/dist/networth/NetWorthWidget/index.es.js +78 -0
- package/dist/networth/NetWorthWidget/index.es.js.map +1 -0
- package/dist/networth/components/AssetsLiabilitiesDetail/index.es.js +158 -0
- package/dist/networth/components/AssetsLiabilitiesDetail/index.es.js.map +1 -0
- package/dist/networth/components/GainsLossesDetail/index.es.js +137 -0
- package/dist/networth/components/GainsLossesDetail/index.es.js.map +1 -0
- package/dist/networth/components/NetWorthChange/index.es.js +34 -0
- package/dist/networth/components/NetWorthChange/index.es.js.map +1 -0
- package/dist/networth/components/NetWorthChart/index.es.js +58 -0
- package/dist/networth/components/NetWorthChart/index.es.js.map +1 -0
- package/dist/networth/components/NetWorthList/index.es.js +99 -0
- package/dist/networth/components/NetWorthList/index.es.js.map +1 -0
- package/dist/networth/components/NetWorthListItem/index.es.js +50 -0
- package/dist/networth/components/NetWorthListItem/index.es.js.map +1 -0
- package/dist/networth/components/NetWorthSummary/index.es.js +38 -0
- package/dist/networth/components/NetWorthSummary/index.es.js.map +1 -0
- package/dist/networth/components/micro/NetworthData/index.es.js +49 -0
- package/dist/networth/components/micro/NetworthData/index.es.js.map +1 -0
- package/dist/networth/components/micro/ZeroState/index.es.js +31 -0
- package/dist/networth/components/micro/ZeroState/index.es.js.map +1 -0
- package/dist/networth/index.es.js +4 -565
- package/dist/notifications/components/DateRow/index.es.js +23 -0
- package/dist/notifications/components/DateRow/index.es.js.map +1 -0
- package/dist/notifications/components/NotificationBadge/index.es.js +33 -0
- package/dist/notifications/components/NotificationBadge/index.es.js.map +1 -0
- package/dist/notifications/components/NotificationCard/index.es.js +56 -0
- package/dist/notifications/components/NotificationCard/index.es.js.map +1 -0
- package/dist/notifications/components/NotificationDrawer/index.es.js +47 -0
- package/dist/notifications/components/NotificationDrawer/index.es.js.map +1 -0
- package/dist/notifications/components/NotificationList/index.es.js +42 -0
- package/dist/notifications/components/NotificationList/index.es.js.map +1 -0
- package/dist/notifications/components/NotificationsEmptyState/index.es.js +49 -0
- package/dist/notifications/components/NotificationsEmptyState/index.es.js.map +1 -0
- package/dist/notifications/constants/NotificationConstants/index.es.js +24 -0
- package/dist/notifications/constants/NotificationConstants/index.es.js.map +1 -0
- package/dist/notifications/index.es.js +6 -198
- package/dist/recurringtransactions/RecurringTransactionsMicroWidget/index.es.js +54 -0
- package/dist/recurringtransactions/RecurringTransactionsMicroWidget/index.es.js.map +1 -0
- package/dist/recurringtransactions/RecurringTransactionsMiniWidget/index.es.js +47 -0
- package/dist/recurringtransactions/RecurringTransactionsMiniWidget/index.es.js.map +1 -0
- package/dist/recurringtransactions/RecurringTransactionsWidget/index.es.js +87 -0
- package/dist/recurringtransactions/RecurringTransactionsWidget/index.es.js.map +1 -0
- package/dist/recurringtransactions/ZeroStateMicroWidget/index.es.js +30 -0
- package/dist/recurringtransactions/ZeroStateMicroWidget/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/MicroWidgetContent/index.es.js +103 -0
- package/dist/recurringtransactions/components/MicroWidgetContent/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/MiniWidgetContent/index.es.js +45 -0
- package/dist/recurringtransactions/components/MiniWidgetContent/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/PaymentSchedule/index.es.js +133 -0
- package/dist/recurringtransactions/components/PaymentSchedule/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurrenceBadges/index.es.js +64 -0
- package/dist/recurringtransactions/components/RecurrenceBadges/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurrenceList/index.es.js +87 -0
- package/dist/recurringtransactions/components/RecurrenceList/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurrenceRow/index.es.js +133 -0
- package/dist/recurringtransactions/components/RecurrenceRow/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringSettingsDrawer/index.es.js +20 -0
- package/dist/recurringtransactions/components/RecurringSettingsDrawer/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringStatus/index.es.js +114 -0
- package/dist/recurringtransactions/components/RecurringStatus/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringTransactionDetails/index.es.js +181 -0
- package/dist/recurringtransactions/components/RecurringTransactionDetails/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringTransactionDetailsDrawer/index.es.js +27 -0
- package/dist/recurringtransactions/components/RecurringTransactionDetailsDrawer/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringTransactionList/index.es.js +181 -0
- package/dist/recurringtransactions/components/RecurringTransactionList/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringTransactions/index.es.js +155 -0
- package/dist/recurringtransactions/components/RecurringTransactions/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/UpcomingRecurrenceCard/index.es.js +63 -0
- package/dist/recurringtransactions/components/UpcomingRecurrenceCard/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/actions/LinkTransactionDrawer/index.es.js +46 -0
- package/dist/recurringtransactions/components/actions/LinkTransactionDrawer/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/actions/MarkAsPaidDialog/index.es.js +28 -0
- package/dist/recurringtransactions/components/actions/MarkAsPaidDialog/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/actions/MarkAsUnpaidDialog/index.es.js +28 -0
- package/dist/recurringtransactions/components/actions/MarkAsUnpaidDialog/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/actions/PaymentScheduleAction/index.es.js +47 -0
- package/dist/recurringtransactions/components/actions/PaymentScheduleAction/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/micro/MerchantLogosRow/index.es.js +19 -0
- package/dist/recurringtransactions/components/micro/MerchantLogosRow/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/micro/OverlappingMerchantLogos/index.es.js +33 -0
- package/dist/recurringtransactions/components/micro/OverlappingMerchantLogos/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/micro/RecurrenceLegend/index.es.js +37 -0
- package/dist/recurringtransactions/components/micro/RecurrenceLegend/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/recurrencecalendar/Legend/index.es.js +48 -0
- package/dist/recurringtransactions/components/recurrencecalendar/Legend/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceCalendar/index.es.js +111 -0
- package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceCalendar/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceDay/index.es.js +48 -0
- package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceDay/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/AddRecurringTransaction/index.es.js +93 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/AddRecurringTransaction/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/AddRecurringTransactionDetails/index.es.js +42 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/AddRecurringTransactionDetails/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/ManageExpenses/index.es.js +57 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/ManageExpenses/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/ManageIncome/index.es.js +72 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/ManageIncome/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/RecurringRow/index.es.js +96 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/RecurringRow/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/RecurringSettingsZeroState/index.es.js +47 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/RecurringSettingsZeroState/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/SelectTransaction/index.es.js +45 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/SelectTransaction/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/index.es.js +37 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings/index.es.js.map +1 -0
- package/dist/recurringtransactions/index.es.js +18 -1022
- package/dist/settings/NotificationSettingsWidget/index.es.js +32 -0
- package/dist/settings/NotificationSettingsWidget/index.es.js.map +1 -0
- package/dist/settings/SettingsWidget/index.es.js +82 -0
- package/dist/settings/SettingsWidget/index.es.js.map +1 -0
- package/dist/settings/TransactionRulesWidget/index.es.js +28 -0
- package/dist/settings/TransactionRulesWidget/index.es.js.map +1 -0
- package/dist/settings/components/SettingsWidgetContents/index.es.js +47 -0
- package/dist/settings/components/SettingsWidgetContents/index.es.js.map +1 -0
- package/dist/settings/components/devices/DeviceDialog/index.es.js +127 -0
- package/dist/settings/components/devices/DeviceDialog/index.es.js.map +1 -0
- package/dist/settings/components/devices/DeviceList/index.es.js +125 -0
- package/dist/settings/components/devices/DeviceList/index.es.js.map +1 -0
- package/dist/settings/components/devices/DeviceTab/index.es.js +107 -0
- package/dist/settings/components/devices/DeviceTab/index.es.js.map +1 -0
- package/dist/settings/components/devices/DeviceTable/index.es.js +120 -0
- package/dist/settings/components/devices/DeviceTable/index.es.js.map +1 -0
- package/dist/settings/components/notifications/AccountNotificationProfile/index.es.js +92 -0
- package/dist/settings/components/notifications/AccountNotificationProfile/index.es.js.map +1 -0
- package/dist/settings/components/notifications/AccountNotificationProfiles/index.es.js +44 -0
- package/dist/settings/components/notifications/AccountNotificationProfiles/index.es.js.map +1 -0
- package/dist/settings/components/notifications/AccountProfileListItem/index.es.js +84 -0
- package/dist/settings/components/notifications/AccountProfileListItem/index.es.js.map +1 -0
- package/dist/settings/components/notifications/BudgetNotificationProfiles/index.es.js +14 -0
- package/dist/settings/components/notifications/BudgetNotificationProfiles/index.es.js.map +1 -0
- package/dist/settings/components/notifications/DeliveryMethods/index.es.js +78 -0
- package/dist/settings/components/notifications/DeliveryMethods/index.es.js.map +1 -0
- package/dist/settings/components/notifications/InsightsNotificationProfiles/index.es.js +14 -0
- package/dist/settings/components/notifications/InsightsNotificationProfiles/index.es.js.map +1 -0
- package/dist/settings/components/notifications/NotificationProfile/index.es.js +80 -0
- package/dist/settings/components/notifications/NotificationProfile/index.es.js.map +1 -0
- package/dist/settings/components/notifications/NotificationSettings/index.es.js +94 -0
- package/dist/settings/components/notifications/NotificationSettings/index.es.js.map +1 -0
- package/dist/settings/components/notifications/PersonalDetails/index.es.js +111 -0
- package/dist/settings/components/notifications/PersonalDetails/index.es.js.map +1 -0
- package/dist/settings/components/profile/ProfileTab/index.es.js +178 -0
- package/dist/settings/components/profile/ProfileTab/index.es.js.map +1 -0
- package/dist/settings/components/profile/actions/VerifyEmailAction/index.es.js +88 -0
- package/dist/settings/components/profile/actions/VerifyEmailAction/index.es.js.map +1 -0
- package/dist/settings/components/profile/actions/VerifyPhoneAction/index.es.js +105 -0
- package/dist/settings/components/profile/actions/VerifyPhoneAction/index.es.js.map +1 -0
- package/dist/settings/components/profile/actions/VerifyTokenAction/index.es.js +40 -0
- package/dist/settings/components/profile/actions/VerifyTokenAction/index.es.js.map +1 -0
- package/dist/settings/components/transactionrules/TransactionRulesTab/index.es.js +35 -0
- package/dist/settings/components/transactionrules/TransactionRulesTab/index.es.js.map +1 -0
- package/dist/settings/components/transactionrules/actions/DeleteRuleAction/index.es.js +34 -0
- package/dist/settings/components/transactionrules/actions/DeleteRuleAction/index.es.js.map +1 -0
- package/dist/settings/components/transactionrules/actions/EditCategoryAction/index.es.js +31 -0
- package/dist/settings/components/transactionrules/actions/EditCategoryAction/index.es.js.map +1 -0
- package/dist/settings/components/transactionrules/actions/EditPayeeAction/index.es.js +45 -0
- package/dist/settings/components/transactionrules/actions/EditPayeeAction/index.es.js.map +1 -0
- package/dist/settings/components/transactionrules/actions/EditRuleAction/index.es.js +36 -0
- package/dist/settings/components/transactionrules/actions/EditRuleAction/index.es.js.map +1 -0
- package/dist/settings/components/transactionrules/components/EditRuleDetails/index.es.js +46 -0
- package/dist/settings/components/transactionrules/components/EditRuleDetails/index.es.js.map +1 -0
- package/dist/settings/components/transactionrules/components/RuleListItem/index.es.js +26 -0
- package/dist/settings/components/transactionrules/components/RuleListItem/index.es.js.map +1 -0
- package/dist/settings/constants/Settings/index.es.js +8 -0
- package/dist/settings/constants/Settings/index.es.js.map +1 -0
- package/dist/settings/index.es.js +23 -892
- package/dist/spending/SpendingMiniWidget/index.es.js +41 -0
- package/dist/spending/SpendingMiniWidget/index.es.js.map +1 -0
- package/dist/spending/SpendingWidget/index.es.js +51 -0
- package/dist/spending/SpendingWidget/index.es.js.map +1 -0
- package/dist/spending/components/MiniSpendingChart/index.es.js +112 -0
- package/dist/spending/components/MiniSpendingChart/index.es.js.map +1 -0
- package/dist/spending/components/Spending/index.es.js +123 -0
- package/dist/spending/components/Spending/index.es.js.map +1 -0
- package/dist/spending/components/SpendingChart/index.es.js +60 -0
- package/dist/spending/components/SpendingChart/index.es.js.map +1 -0
- package/dist/spending/components/SpendingDonut/index.es.js +132 -0
- package/dist/spending/components/SpendingDonut/index.es.js.map +1 -0
- package/dist/spending/components/SpendingLegend/index.es.js +46 -0
- package/dist/spending/components/SpendingLegend/index.es.js.map +1 -0
- package/dist/spending/components/SpendingList/index.es.js +124 -0
- package/dist/spending/components/SpendingList/index.es.js.map +1 -0
- package/dist/spending/components/SpendingTabLabel/index.es.js +22 -0
- package/dist/spending/components/SpendingTabLabel/index.es.js.map +1 -0
- package/dist/spending/index.es.js +4 -491
- package/dist/spending/utils/SpendingData/index.es.js +72 -0
- package/dist/spending/utils/SpendingData/index.es.js.map +1 -0
- package/dist/transactions/TransactionWidget/index.es.js +189 -0
- package/dist/transactions/TransactionWidget/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/Description/index.es.js +85 -0
- package/dist/transactions/components/shared/TransactionDetails/Description/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/FlagTransaction/index.es.js +49 -0
- package/dist/transactions/components/shared/TransactionDetails/FlagTransaction/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/ManualTransactionDetails/index.es.js +151 -0
- package/dist/transactions/components/shared/TransactionDetails/ManualTransactionDetails/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/TransactionAmountHeader/index.es.js +39 -0
- package/dist/transactions/components/shared/TransactionDetails/TransactionAmountHeader/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/TransactionDetailsView/index.es.js +82 -0
- package/dist/transactions/components/shared/TransactionDetails/TransactionDetailsView/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/AddMerchantBudgetAction/index.es.js +161 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/AddMerchantBudgetAction/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/CategoryAction/index.es.js +105 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/CategoryAction/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/DateAction/index.es.js +103 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/DateAction/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/DeleteAction/index.es.js +66 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/DeleteAction/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/DeleteLogoAction/index.es.js +77 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/DeleteLogoAction/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/ExcludeAction/index.es.js +90 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/ExcludeAction/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/MemoAction/index.es.js +101 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/MemoAction/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/SplitAction/index.es.js +150 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/SplitAction/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/TagsAction/index.es.js +94 -0
- package/dist/transactions/components/shared/TransactionDetails/actions/TagsAction/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails/index.es.js +255 -0
- package/dist/transactions/components/shared/TransactionDetails/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionList/TransactionRow/index.es.js +92 -0
- package/dist/transactions/components/shared/TransactionList/TransactionRow/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionList/ZeroState/index.es.js +39 -0
- package/dist/transactions/components/shared/TransactionList/ZeroState/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionList/index.es.js +92 -0
- package/dist/transactions/components/shared/TransactionList/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionTable/cells/AccountCell/index.es.js +12 -0
- package/dist/transactions/components/shared/TransactionTable/cells/AccountCell/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionTable/cells/AmountCell/index.es.js +30 -0
- package/dist/transactions/components/shared/TransactionTable/cells/AmountCell/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionTable/cells/CategoryCell/index.es.js +38 -0
- package/dist/transactions/components/shared/TransactionTable/cells/CategoryCell/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionTable/cells/DateCell/index.es.js +14 -0
- package/dist/transactions/components/shared/TransactionTable/cells/DateCell/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionTable/cells/FlagCell/index.es.js +46 -0
- package/dist/transactions/components/shared/TransactionTable/cells/FlagCell/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionTable/cells/HeaderCell/index.es.js +12 -0
- package/dist/transactions/components/shared/TransactionTable/cells/HeaderCell/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionTable/cells/PayeeCell/index.es.js +28 -0
- package/dist/transactions/components/shared/TransactionTable/cells/PayeeCell/index.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionTable/index.es.js +124 -0
- package/dist/transactions/components/shared/TransactionTable/index.es.js.map +1 -0
- package/dist/transactions/components/shared/getEmbeddedInstanceSlotByBeatTemplates/index.es.js +25 -0
- package/dist/transactions/components/shared/getEmbeddedInstanceSlotByBeatTemplates/index.es.js.map +1 -0
- package/dist/transactions/components/splitmanager/SplitManager/index.es.js +68 -0
- package/dist/transactions/components/splitmanager/SplitManager/index.es.js.map +1 -0
- package/dist/transactions/components/splitmanager/SplitRow/index.es.js +119 -0
- package/dist/transactions/components/splitmanager/SplitRow/index.es.js.map +1 -0
- package/dist/transactions/components/tagmanager/Header/index.es.js +68 -0
- package/dist/transactions/components/tagmanager/Header/index.es.js.map +1 -0
- package/dist/transactions/components/tagmanager/SearchBox/index.es.js +48 -0
- package/dist/transactions/components/tagmanager/SearchBox/index.es.js.map +1 -0
- package/dist/transactions/components/tagmanager/TagManager/index.es.js +36 -0
- package/dist/transactions/components/tagmanager/TagManager/index.es.js.map +1 -0
- package/dist/transactions/components/tagmanager/TagRow/index.es.js +108 -0
- package/dist/transactions/components/tagmanager/TagRow/index.es.js.map +1 -0
- package/dist/transactions/components/transactionwidget/AddAccountModal/index.es.js +33 -0
- package/dist/transactions/components/transactionwidget/AddAccountModal/index.es.js.map +1 -0
- package/dist/transactions/components/transactionwidget/actions/EditCategoryAction/index.es.js +44 -0
- package/dist/transactions/components/transactionwidget/actions/EditCategoryAction/index.es.js.map +1 -0
- package/dist/transactions/components/transactionwidget/actions/ExportCsvAction/index.es.js +26 -0
- package/dist/transactions/components/transactionwidget/actions/ExportCsvAction/index.es.js.map +1 -0
- package/dist/transactions/constants/Actions/index.es.js +22 -0
- package/dist/transactions/constants/Actions/index.es.js.map +1 -0
- package/dist/transactions/constants/OnClickEvents/index.es.js +50 -0
- package/dist/transactions/constants/OnClickEvents/index.es.js.map +1 -0
- package/dist/transactions/context/hooks/index.es.js +12 -0
- package/dist/transactions/context/hooks/index.es.js.map +1 -0
- package/dist/transactions/index.es.js +17 -604
- package/dist/transactions/utils/Filters/index.es.js +11 -0
- package/dist/transactions/utils/Filters/index.es.js.map +1 -0
- package/dist/transactions/utils/Transactions/index.es.js +24 -0
- package/dist/transactions/utils/Transactions/index.es.js.map +1 -0
- package/dist/trends/TrendsFullWidget/index.es.js +154 -0
- package/dist/trends/TrendsFullWidget/index.es.js.map +1 -0
- package/dist/trends/TrendsMicroWidget/index.es.js +72 -0
- package/dist/trends/TrendsMicroWidget/index.es.js.map +1 -0
- package/dist/trends/TrendsMiniWidget/index.es.js +43 -0
- package/dist/trends/TrendsMiniWidget/index.es.js.map +1 -0
- package/dist/trends/TrendsWidget/index.es.js +207 -0
- package/dist/trends/TrendsWidget/index.es.js.map +1 -0
- package/dist/trends/ZeroStateMicroWidget/index.es.js +30 -0
- package/dist/trends/ZeroStateMicroWidget/index.es.js.map +1 -0
- package/dist/trends/components/CategoriesList/index.es.js +64 -0
- package/dist/trends/components/CategoriesList/index.es.js.map +1 -0
- package/dist/trends/components/CategoriesListItem/index.es.js +44 -0
- package/dist/trends/components/CategoriesListItem/index.es.js.map +1 -0
- package/dist/trends/components/CategoryDetailChart/index.es.js +45 -0
- package/dist/trends/components/CategoryDetailChart/index.es.js.map +1 -0
- package/dist/trends/components/CategoryDetails/index.es.js +104 -0
- package/dist/trends/components/CategoryDetails/index.es.js.map +1 -0
- package/dist/trends/components/DateRangeText/index.es.js +26 -0
- package/dist/trends/components/DateRangeText/index.es.js.map +1 -0
- package/dist/trends/components/SpendingChart/index.es.js +28 -0
- package/dist/trends/components/SpendingChart/index.es.js.map +1 -0
- package/dist/trends/components/TrendsChart/index.es.js +63 -0
- package/dist/trends/components/TrendsChart/index.es.js.map +1 -0
- package/dist/trends/components/TrendsChartTotals/index.es.js +58 -0
- package/dist/trends/components/TrendsChartTotals/index.es.js.map +1 -0
- package/dist/trends/components/TrendsDrawer/index.es.js +38 -0
- package/dist/trends/components/TrendsDrawer/index.es.js.map +1 -0
- package/dist/trends/components/TrendsInsights/index.es.js +38 -0
- package/dist/trends/components/TrendsInsights/index.es.js.map +1 -0
- package/dist/trends/components/TrendsMicroSpendingIncomeBox/index.es.js +82 -0
- package/dist/trends/components/TrendsMicroSpendingIncomeBox/index.es.js.map +1 -0
- package/dist/trends/components/TrendsTableContainer/index.es.js +56 -0
- package/dist/trends/components/TrendsTableContainer/index.es.js.map +1 -0
- package/dist/trends/components/TrendsViewToggle/index.es.js +28 -0
- package/dist/trends/components/TrendsViewToggle/index.es.js.map +1 -0
- package/dist/trends/components/trendstable/AccessibleSortIcon/index.es.js +49 -0
- package/dist/trends/components/trendstable/AccessibleSortIcon/index.es.js.map +1 -0
- package/dist/trends/components/trendstable/AmountCell/index.es.js +24 -0
- package/dist/trends/components/trendstable/AmountCell/index.es.js.map +1 -0
- package/dist/trends/components/trendstable/CategoryCell/index.es.js +30 -0
- package/dist/trends/components/trendstable/CategoryCell/index.es.js.map +1 -0
- package/dist/trends/components/trendstable/HeaderCell/index.es.js +12 -0
- package/dist/trends/components/trendstable/HeaderCell/index.es.js.map +1 -0
- package/dist/trends/components/trendstable/TrendsTable/index.es.js +52 -0
- package/dist/trends/components/trendstable/TrendsTable/index.es.js.map +1 -0
- package/dist/trends/constants/TrendsInsights/index.es.js +40 -0
- package/dist/trends/constants/TrendsInsights/index.es.js.map +1 -0
- package/dist/trends/constants/TrendsWidget/index.es.js +6 -0
- package/dist/trends/constants/TrendsWidget/index.es.js.map +1 -0
- package/dist/trends/index.es.js +8 -1612
- package/dist/trends/utils/SpendingData/index.es.js +53 -0
- package/dist/trends/utils/SpendingData/index.es.js.map +1 -0
- package/dist/trends/utils/TrendsTable/index.es.js +101 -0
- package/dist/trends/utils/TrendsTable/index.es.js.map +1 -0
- package/dist/trends/utils/TrendsWidget/index.es.js +11 -0
- package/dist/trends/utils/TrendsWidget/index.es.js.map +1 -0
- package/dist/trends/utils/shared/index.es.js +18 -0
- package/dist/trends/utils/shared/index.es.js.map +1 -0
- package/package.json +34 -39
- package/dist/Account-DR7Plrqy.mjs +0 -119
- package/dist/Account-DR7Plrqy.mjs.map +0 -1
- package/dist/AccountDetailsDrawer-JORrub4d.mjs +0 -922
- package/dist/AccountDetailsDrawer-JORrub4d.mjs.map +0 -1
- package/dist/AccountDetailsHeader-C84CSN2K.mjs +0 -230
- package/dist/AccountDetailsHeader-C84CSN2K.mjs.map +0 -1
- package/dist/AccountUtils-Cbh8r9cP.mjs +0 -29
- package/dist/AccountUtils-Cbh8r9cP.mjs.map +0 -1
- package/dist/Analytics-B8AaC22u.mjs +0 -54
- package/dist/Analytics-B8AaC22u.mjs.map +0 -1
- package/dist/Analytics-D-jdcL72.mjs +0 -140
- package/dist/Analytics-D-jdcL72.mjs.map +0 -1
- package/dist/ApiEndpoints-DXwIYNUV.mjs +0 -50
- package/dist/ApiEndpoints-DXwIYNUV.mjs.map +0 -1
- package/dist/BeatMaterialIcon-1KOfRZrA.mjs +0 -27
- package/dist/BeatMaterialIcon-1KOfRZrA.mjs.map +0 -1
- package/dist/BudgetUtil-Bg2AQJpQ.mjs +0 -75
- package/dist/BudgetUtil-Bg2AQJpQ.mjs.map +0 -1
- package/dist/Category-DEKZGLYe.mjs +0 -302
- package/dist/Category-DEKZGLYe.mjs.map +0 -1
- package/dist/CategorySelectorDrawer-BuSaE8-f.mjs +0 -431
- package/dist/CategorySelectorDrawer-BuSaE8-f.mjs.map +0 -1
- package/dist/Connect-BH0Pt6zc.mjs +0 -43
- package/dist/Connect-BH0Pt6zc.mjs.map +0 -1
- package/dist/ConnectCard-D7exwcv8.mjs +0 -55
- package/dist/ConnectCard-D7exwcv8.mjs.map +0 -1
- package/dist/ConnectDrawer-BQ9ouCgh.mjs +0 -58
- package/dist/ConnectDrawer-BQ9ouCgh.mjs.map +0 -1
- package/dist/ConnectionsDrawer-CCDnZGh0.mjs +0 -54
- package/dist/ConnectionsDrawer-CCDnZGh0.mjs.map +0 -1
- package/dist/CurrencyDialog-DumQCTPO.mjs +0 -374
- package/dist/CurrencyDialog-DumQCTPO.mjs.map +0 -1
- package/dist/CurrencyInput-DaGEQaLW.mjs +0 -88
- package/dist/CurrencyInput-DaGEQaLW.mjs.map +0 -1
- package/dist/CurrencyText-CCbE6MmF.mjs +0 -21
- package/dist/CurrencyText-CCbE6MmF.mjs.map +0 -1
- package/dist/DateFormats-HudZ3Bjs.mjs +0 -65
- package/dist/DateFormats-HudZ3Bjs.mjs.map +0 -1
- package/dist/DateUtil-Bl7d7C1W.mjs +0 -76
- package/dist/DateUtil-Bl7d7C1W.mjs.map +0 -1
- package/dist/DebtUtils-i4pI2Uoe.mjs +0 -154
- package/dist/DebtUtils-i4pI2Uoe.mjs.map +0 -1
- package/dist/Dialog-Bvd2n8hz.mjs +0 -67
- package/dist/Dialog-Bvd2n8hz.mjs.map +0 -1
- package/dist/Donut-SzzfZDHF.mjs +0 -89
- package/dist/Donut-SzzfZDHF.mjs.map +0 -1
- package/dist/Drawer-CWQYTC6t.mjs +0 -187
- package/dist/Drawer-CWQYTC6t.mjs.map +0 -1
- package/dist/EmbeddedCard-AdIOFTGI.mjs +0 -860
- package/dist/EmbeddedCard-AdIOFTGI.mjs.map +0 -1
- package/dist/EmptyState-CJUDc3kD.mjs +0 -85
- package/dist/EmptyState-CJUDc3kD.mjs.map +0 -1
- package/dist/Error-Dtw6yxkf.mjs +0 -85
- package/dist/Error-Dtw6yxkf.mjs.map +0 -1
- package/dist/ErrorBoundary-C7BlHx04.mjs +0 -27
- package/dist/ErrorBoundary-C7BlHx04.mjs.map +0 -1
- package/dist/ExportCsvAction-CuQY5irL.mjs +0 -25
- package/dist/ExportCsvAction-CuQY5irL.mjs.map +0 -1
- package/dist/GlobalAccountFilter-BhzR5Vb1.mjs +0 -230
- package/dist/GlobalAccountFilter-BhzR5Vb1.mjs.map +0 -1
- package/dist/GlobalCopyApi-CLhyon-B.mjs +0 -145
- package/dist/GlobalCopyApi-CLhyon-B.mjs.map +0 -1
- package/dist/GoalsUtil-C9EnLWvC.mjs +0 -108
- package/dist/GoalsUtil-C9EnLWvC.mjs.map +0 -1
- package/dist/HeaderCell-P8w6CmfO.mjs +0 -7
- package/dist/HeaderCell-P8w6CmfO.mjs.map +0 -1
- package/dist/Help-CkQTjORd.mjs +0 -300
- package/dist/Help-CkQTjORd.mjs.map +0 -1
- package/dist/Help-wVQI-yjk.mjs +0 -3210
- package/dist/Help-wVQI-yjk.mjs.map +0 -1
- package/dist/IconBacking-DgT8DCeh.mjs +0 -40
- package/dist/IconBacking-DgT8DCeh.mjs.map +0 -1
- package/dist/InformationTooltip-4su8bn1e.mjs +0 -42
- package/dist/InformationTooltip-4su8bn1e.mjs.map +0 -1
- package/dist/InvestmentUtil-BItV7uEs.mjs +0 -135
- package/dist/InvestmentUtil-BItV7uEs.mjs.map +0 -1
- package/dist/LineChart-CUfiH86G.mjs +0 -613
- package/dist/LineChart-CUfiH86G.mjs.map +0 -1
- package/dist/ListItemAction-BqUCLj_w.mjs +0 -70
- package/dist/ListItemAction-BqUCLj_w.mjs.map +0 -1
- package/dist/ListItemRow-kH1rn8Xu.mjs +0 -68
- package/dist/ListItemRow-kH1rn8Xu.mjs.map +0 -1
- package/dist/ListItemWrapper-DRse79Iu.mjs +0 -44
- package/dist/ListItemWrapper-DRse79Iu.mjs.map +0 -1
- package/dist/Loader-CxeBwuPG.mjs +0 -22
- package/dist/Loader-CxeBwuPG.mjs.map +0 -1
- package/dist/Localization-DnoVyBNK.mjs +0 -39
- package/dist/Localization-DnoVyBNK.mjs.map +0 -1
- package/dist/ManageIncome-lfbxMoW8.mjs +0 -906
- package/dist/ManageIncome-lfbxMoW8.mjs.map +0 -1
- package/dist/MicroWidgetContainer-B2NnKBgW.mjs +0 -46
- package/dist/MicroWidgetContainer-B2NnKBgW.mjs.map +0 -1
- package/dist/MiniWidgetContainer-Bmv_WeUd.mjs +0 -67
- package/dist/MiniWidgetContainer-Bmv_WeUd.mjs.map +0 -1
- package/dist/NetWorthUtils-Dj7CgAg2.mjs +0 -96
- package/dist/NetWorthUtils-Dj7CgAg2.mjs.map +0 -1
- package/dist/Notification-DTNYSd8P.mjs +0 -8
- package/dist/Notification-DTNYSd8P.mjs.map +0 -1
- package/dist/NotificationSettings-BOz1Xkf4.mjs +0 -678
- package/dist/NotificationSettings-BOz1Xkf4.mjs.map +0 -1
- package/dist/NotificationUtils-BRGFTePr.mjs +0 -24
- package/dist/NotificationUtils-BRGFTePr.mjs.map +0 -1
- package/dist/NumberFormatting--XMeeBfr.mjs +0 -50
- package/dist/NumberFormatting--XMeeBfr.mjs.map +0 -1
- package/dist/OriginalBalanceAction-YrvxBYAl.mjs +0 -115
- package/dist/OriginalBalanceAction-YrvxBYAl.mjs.map +0 -1
- package/dist/RecurringSettings-BG5wxPbS.mjs +0 -89
- package/dist/RecurringSettings-BG5wxPbS.mjs.map +0 -1
- package/dist/RecurringTransactionsUtil-CfWviBh1.mjs +0 -299
- package/dist/RecurringTransactionsUtil-CfWviBh1.mjs.map +0 -1
- package/dist/ResponsiveButton-CC9F_Ezk.mjs +0 -46
- package/dist/ResponsiveButton-CC9F_Ezk.mjs.map +0 -1
- package/dist/SearchBox-Cpgu_gdO.mjs +0 -51
- package/dist/SearchBox-Cpgu_gdO.mjs.map +0 -1
- package/dist/Select-CSpkK5cR.mjs +0 -62
- package/dist/Select-CSpkK5cR.mjs.map +0 -1
- package/dist/SelectionBox-B4xELRgp.mjs +0 -49
- package/dist/SelectionBox-B4xELRgp.mjs.map +0 -1
- package/dist/SingleSegmentDonut-7Uy6VEld.mjs +0 -70
- package/dist/SingleSegmentDonut-7Uy6VEld.mjs.map +0 -1
- package/dist/Sizes-DISGrlUg.mjs +0 -7
- package/dist/Sizes-DISGrlUg.mjs.map +0 -1
- package/dist/SkeletonLoader-BaNboJjD.mjs +0 -39
- package/dist/SkeletonLoader-BaNboJjD.mjs.map +0 -1
- package/dist/SpendingData-Fii_xATx.mjs +0 -54
- package/dist/SpendingData-Fii_xATx.mjs.map +0 -1
- package/dist/SpendingLegend-CxvNOg3c.mjs +0 -204
- package/dist/SpendingLegend-CxvNOg3c.mjs.map +0 -1
- package/dist/StatusBar-CPfSXe80.mjs +0 -31
- package/dist/StatusBar-CPfSXe80.mjs.map +0 -1
- package/dist/TabContentContainer-B0eYJP5p.mjs +0 -49
- package/dist/TabContentContainer-B0eYJP5p.mjs.map +0 -1
- package/dist/ToggleListItem-Dl1lXNwj.mjs +0 -92
- package/dist/ToggleListItem-Dl1lXNwj.mjs.map +0 -1
- package/dist/TransactionDetails-naGZa2sb.mjs +0 -1710
- package/dist/TransactionDetails-naGZa2sb.mjs.map +0 -1
- package/dist/TransactionUtils-BphBJBbU.mjs +0 -235
- package/dist/TransactionUtils-BphBJBbU.mjs.map +0 -1
- package/dist/TrendsUtil-D9z3kIj_.mjs +0 -70
- package/dist/TrendsUtil-D9z3kIj_.mjs.map +0 -1
- package/dist/UserStore-Cp-2Jtnw.mjs +0 -3210
- package/dist/UserStore-Cp-2Jtnw.mjs.map +0 -1
- package/dist/ViewMoreMicroCard-B4oeGrbE.mjs +0 -1280
- package/dist/ViewMoreMicroCard-B4oeGrbE.mjs.map +0 -1
- package/dist/WidgetContainer-BBzwzqOz.mjs +0 -487
- package/dist/WidgetContainer-BBzwzqOz.mjs.map +0 -1
- package/dist/accounts/components/ConnectStatus.d.ts +0 -7
- package/dist/accounts/index.es.js.map +0 -1
- package/dist/analytics/index.es.js.map +0 -1
- package/dist/budgets/index.es.js.map +0 -1
- package/dist/cashflow/index.es.js.map +0 -1
- package/dist/categories/index.es.js.map +0 -1
- package/dist/common/index.es.js.map +0 -1
- package/dist/core/index.es.js.map +0 -1
- package/dist/dashboard/index.es.js.map +0 -1
- package/dist/debts/index.es.js.map +0 -1
- package/dist/finstrong/index.es.js.map +0 -1
- package/dist/goals/index.es.js.map +0 -1
- package/dist/help/index.es.js.map +0 -1
- package/dist/hooks-97sNJ_lf.mjs +0 -78
- package/dist/hooks-97sNJ_lf.mjs.map +0 -1
- package/dist/insights/index.es.js.map +0 -1
- package/dist/investments/index.es.js.map +0 -1
- package/dist/merchants/index.es.js.map +0 -1
- package/dist/microinsights/index.es.js.map +0 -1
- package/dist/networth/index.es.js.map +0 -1
- package/dist/notifications/index.es.js.map +0 -1
- package/dist/recurringtransactions/index.es.js.map +0 -1
- package/dist/settings/index.es.js.map +0 -1
- package/dist/spending/index.es.js.map +0 -1
- package/dist/transactions/index.es.js.map +0 -1
- package/dist/trends/index.es.js.map +0 -1
- package/dist/useAccountDisplayName-BsiXA0qf.mjs +0 -24
- package/dist/useAccountDisplayName-BsiXA0qf.mjs.map +0 -1
- package/dist/useAriaLive-MkYebyUR.mjs +0 -36
- package/dist/useAriaLive-MkYebyUR.mjs.map +0 -1
- package/dist/useDimensions-CeDR9V8N.mjs +0 -37
- package/dist/useDimensions-CeDR9V8N.mjs.map +0 -1
- package/dist/useInsightsEnabled-D5Sdm0TJ.mjs +0 -12
- package/dist/useInsightsEnabled-D5Sdm0TJ.mjs.map +0 -1
- package/dist/useScreenSize-mWpmnh5w.mjs +0 -37
- package/dist/useScreenSize-mWpmnh5w.mjs.map +0 -1
- package/dist/useWidgetLoadTimer-B0tB-yzL.mjs +0 -20
- package/dist/useWidgetLoadTimer-B0tB-yzL.mjs.map +0 -1
- /package/dist/budgets/components/{bubblechart → BubbleChart}/Bubble.d.ts +0 -0
- /package/dist/budgets/components/{bubblechart → BubbleChart}/Mercury.d.ts +0 -0
- /package/dist/budgets/components/{budgetlist → BudgetList}/BudgetRow.d.ts +0 -0
- /package/dist/budgets/components/{budgetlist → BudgetList}/SubBudgetRow.d.ts +0 -0
- /package/dist/budgets/components/{budgetlist → BudgetList}/SubBudgetZeroState.d.ts +0 -0
- /package/dist/common/components/{globalaccountfilter → GlobalAccountFilter}/GlobalAccountFilterList.d.ts +0 -0
- /package/dist/common/components/charts/{linechart → LineChart}/CustomLegend.d.ts +0 -0
- /package/dist/common/components/charts/{linechart → LineChart}/CustomLine.d.ts +0 -0
- /package/dist/common/components/charts/{linechart → LineChart}/CustomMark.d.ts +0 -0
- /package/dist/common/components/charts/{linechart → LineChart}/CustomTooltip.d.ts +0 -0
- /package/dist/common/components/charts/{linechart → LineChart}/utils/markerShapes.d.ts +0 -0
- /package/dist/common/components/charts/{stackedlinechart → StackedLineChart}/CategoryIconLabel.d.ts +0 -0
- /package/dist/common/components/charts/{stackedlinechart → StackedLineChart}/CustomAreaTooltip.d.ts +0 -0
- /package/dist/common/components/charts/{stackedlinechart → StackedLineChart}/CustomLegend.d.ts +0 -0
- /package/dist/common/components/charts/{stackedlinechart → StackedLineChart}/CustomPointTooltip.d.ts +0 -0
- /package/dist/common/components/charts/{stackedlinechart → StackedLineChart}/utils.d.ts +0 -0
- /package/dist/debts/components/{debtstable → DebtsTable}/AccountCell.d.ts +0 -0
- /package/dist/debts/components/{debtstable → DebtsTable}/PriorityCell.d.ts +0 -0
- /package/dist/goals/components/{addgoal → AddGoal}/AddGoalListItem.d.ts +0 -0
- /package/dist/goals/components/{managegoals → ManageGoals}/CompleteListItem.d.ts +0 -0
- /package/dist/goals/components/{managegoals → ManageGoals}/OngoingListItem.d.ts +0 -0
- /package/dist/goals/components/{managegoals → ManageGoals}/ReorderGoals.d.ts +0 -0
- /package/dist/investments/components/{allocation → Allocation}/InvestementAllocationList.d.ts +0 -0
- /package/dist/investments/components/{allocation → Allocation}/InvestmentsAllocationChart.d.ts +0 -0
- /package/dist/investments/components/{allocation → Allocation}/util/createInvestementsAllocationData.d.ts +0 -0
- /package/dist/recurringtransactions/components/shared/{recurringsettings → RecurringSettings}/AddRecurringTransaction.d.ts +0 -0
- /package/dist/recurringtransactions/components/shared/{recurringsettings → RecurringSettings}/AddRecurringTransactionDetails.d.ts +0 -0
- /package/dist/recurringtransactions/components/shared/{recurringsettings → RecurringSettings}/ManageExpenses.d.ts +0 -0
- /package/dist/recurringtransactions/components/shared/{recurringsettings → RecurringSettings}/ManageIncome.d.ts +0 -0
- /package/dist/recurringtransactions/components/shared/{recurringsettings → RecurringSettings}/RecurringRow.d.ts +0 -0
- /package/dist/recurringtransactions/components/shared/{recurringsettings → RecurringSettings}/RecurringSettingsZeroState.d.ts +0 -0
- /package/dist/recurringtransactions/components/shared/{recurringsettings → RecurringSettings}/SelectTransaction.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/Description.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/FlagTransaction.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/ManualTransactionDetails.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/TransactionAmountHeader.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/TransactionDetailsView.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/actions/AddMerchantBudgetAction.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/actions/CategoryAction.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/actions/DateAction.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/actions/DeleteAction.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/actions/DeleteLogoAction.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/actions/ExcludeAction.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/actions/MemoAction.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/actions/SplitAction.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/actions/TagsAction.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiondetails → TransactionDetails}/actions/index.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactionlist → TransactionList}/TransactionRow.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactionlist → TransactionList}/ZeroState.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiontable → TransactionTable}/cells/AccountCell.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiontable → TransactionTable}/cells/AmountCell.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiontable → TransactionTable}/cells/CategoryCell.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiontable → TransactionTable}/cells/DateCell.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiontable → TransactionTable}/cells/FlagCell.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiontable → TransactionTable}/cells/HeaderCell.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiontable → TransactionTable}/cells/PayeeCell.d.ts +0 -0
- /package/dist/transactions/components/shared/{transactiontable → TransactionTable}/cells/index.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UserStore-Cp-2Jtnw.mjs","sources":["../src/core/api/AccountApi.ts","../src/core/api/AppDataApi.ts","../src/core/api/BannerApi.ts","../src/core/api/BudgetsApi.ts","../src/core/api/CategoryApi.ts","../src/core/api/FinstrongApi.ts","../src/core/api/GoalApi.ts","../src/core/api/HelpApi.ts","../src/core/api/HoldingApi.ts","../src/core/api/MerchantApi.ts","../src/core/api/NotificationApi.ts","../src/core/api/RepeatingTransactionsApi.ts","../src/core/api/SettingsApi.ts","../src/core/api/TransactionApi.ts","../src/core/api/UserApi.ts","../src/core/api/WidgetApi.ts","../src/core/stores/AccountStore.ts","../src/core/stores/AppDataStore.ts","../src/core/stores/AnalyticsStore.ts","../src/core/utils/BeatUtils.ts","../src/core/stores/BeatStore.ts","../src/core/stores/BudgetsStore.ts","../src/core/stores/CashflowStore.ts","../src/core/stores/CategoryStore.ts","../src/core/stores/ConnectStore.ts","../src/core/stores/DebtsStore.ts","../src/core/utils/FinstrongUtils.ts","../src/core/stores/FinstrongStore.ts","../src/core/constants/DefaultConfig.ts","../src/core/stores/GlobalStore.ts","../src/core/stores/GlobalUiStore.ts","../src/core/stores/GlobalCopyStore.ts","../src/core/stores/GoalStore.ts","../src/core/utils/HelpUtil.ts","../src/core/stores/HelpStore.ts","../src/core/stores/HoldingStore.ts","../src/core/stores/MerchantStore.ts","../src/core/stores/NetWorthStore.ts","../src/core/stores/NotificationStore.ts","../src/core/stores/RecurringTransactionsStore.ts","../src/core/utils/SettingsUtil.ts","../src/core/stores/SettingsStore.ts","../src/core/stores/TransactionStore.ts","../src/core/stores/TrendsStore.ts","../src/core/stores/UserStore.ts"],"sourcesContent":["import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { Account, GlobalErrorHandler } from '..'\n\nexport class AccountApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n createAccount = async (account: Account) => {\n return this.fetchInstance.post(ApiEndpoints.ACCOUNTS, account).then((data) => data.account)\n }\n\n deleteAccount = async (accountGuid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.ACCOUNTS}/${accountGuid}`)\n }\n\n getAccounts = async () => {\n return this.fetchInstance.get(ApiEndpoints.ACCOUNTS).then((data) => data.accounts)\n }\n\n getInstitutions = async () => {\n return this.fetchInstance.get(ApiEndpoints.INSTITUTIONS).then((data) => data)\n }\n\n getMembers = async () => {\n return this.fetchInstance.get(ApiEndpoints.MEMBERS).then((data) => data.members)\n }\n\n getMonthlyAccountBalances = async (guid: string) => {\n return this.fetchInstance\n .get(`${ApiEndpoints.ACCOUNTS}/${guid}/monthly_account_balances`)\n .then((data) => data.monthly_account_balances)\n }\n\n mergeAccounts = async (accountGuids: string[]) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.ACCOUNTS}/merge`, { accounts: accountGuids })\n .then((data) => data)\n }\n\n refreshAllMembers = async () => {\n return this.fetchInstance.get(`${ApiEndpoints.MEMBERS}/refresh_all`).then((data) => data)\n }\n\n updateAccount = async (account: Account) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.ACCOUNTS}/${account.guid}`, account)\n .then((data) => data.account)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { AppData, GlobalErrorHandler } from '..'\n\nexport class AppDataApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n getAppData = async () => {\n return this.fetchInstance.get(ApiEndpoints.APP_DATA).then((data): AppData => data)\n }\n}\n","import { Fetch } from '../utils'\n\nexport class BannerApi {\n fetchInstance: Fetch | null\n\n constructor(bullseyeEndpoint: string) {\n // Override headers without MD-Session-Token to avoid CORS error in bullseye\n this.fetchInstance = new Fetch(bullseyeEndpoint, '', {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n })\n }\n\n getBanner = async (userGuid: string) => {\n try {\n const path = `/banner/${userGuid}/account_widget_banner`\n return this.fetchInstance?.get(path).then((data) => data.banner) ?? {}\n } catch (error) {\n console.error('Error fetching banner:', error)\n return null\n }\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { GlobalErrorHandler, Budget, Category } from '..'\n\nexport class BudgetsApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n addBudget = async (category: Category, amount: number, parentGuid: string | null = null) => {\n return this.fetchInstance\n .post(ApiEndpoints.BUDGETS, {\n amount,\n category_guid: category.guid,\n category_name: category.name,\n parent_guid: parentGuid,\n })\n .then((data) => data.budget)\n }\n\n deleteBudget = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.BUDGETS}/${guid}`).then((data) => data)\n }\n\n getBudgets = async () => {\n return this.fetchInstance.get(ApiEndpoints.BUDGETS).then((data) => data.budgets)\n }\n\n updateBudget = async (budget: Budget) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.BUDGETS}/${budget.guid}`, budget)\n .then((data) => data.budget)\n }\n\n addMerchantBudget = async (merchantGuid: string, amount: number) => {\n return this.fetchInstance\n .post(ApiEndpoints.MERCHANT_BUDGETS, {\n amount,\n merchant_guid: merchantGuid,\n })\n .then((data) => data.merchant_budget)\n }\n\n updateMerchantBudget = async (merchantBudgetGuid: string, amount: number) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.MERCHANT_BUDGETS}/${merchantBudgetGuid}`, {\n amount,\n })\n .then((data) => data.merchant_budget)\n }\n\n deleteMerchantBudget = async (merchantBudgetGuid: string) => {\n return this.fetchInstance\n .delete(`${ApiEndpoints.MERCHANT_BUDGETS}/${merchantBudgetGuid}`)\n .then((data) => data)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { Account, Category, GlobalErrorHandler } from '..'\n\nexport class CategoryApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n addCategory = async (category: Category) => {\n return this.fetchInstance.post(ApiEndpoints.CATEGORIES, category).then((data) => data.category)\n }\n\n getCategories = async () => {\n return this.fetchInstance.get(ApiEndpoints.CATEGORIES).then((data) => data.categories)\n }\n\n getDateRangeCategoryTotals = async (startDate: number, endDate: number, accounts: Account[]) => {\n // If no accounts are selected, return an empty array\n if (accounts.length === 0) return []\n return this.fetchInstance\n .post(`${ApiEndpoints.DATE_RANGE_CATEGORY_TOTALS}/from/${startDate}/to/${endDate}`, {\n account_guid: accounts.map((account) => account.guid),\n })\n .then((data) => data.date_range_category_totals)\n }\n\n getMonthlyCategoryTotals = async (startDate: number, endDate: number, accounts?: Account[]) => {\n try {\n const url = `${ApiEndpoints.MONTHLY_CATEGORY_TOTALS}/from/${startDate}/to/${endDate}`\n if (accounts) {\n const accountGuids = accounts.length === 0 ? [''] : accounts.map((account) => account.guid)\n const response = await this.fetchInstance.post(url, { account_guid: accountGuids })\n return response.monthly_category_totals\n } else {\n const response = await this.fetchInstance.get(url)\n return response.monthly_category_totals\n }\n } catch (error) {\n console.error('Error fetching monthly category totals:', error)\n throw error // Re-throw the error for the caller to handle\n }\n }\n removeCategory = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.CATEGORIES}/${guid}`)\n }\n\n updateCategory = async (category: Category) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.CATEGORIES}/${category.guid}`, category)\n .then((data) => data.category)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { GlobalErrorHandler } from '..'\n\nexport class FinstrongApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n calculateHealthScore = async () => {\n return this.fetchInstance\n .post(`${ApiEndpoints.HEALTH_SCORES}/calculate`)\n .then((data) => data.health_score)\n }\n\n getAverageHealthScores = async () => {\n return this.fetchInstance\n .get(`${ApiEndpoints.HEALTH_SCORES}/monthly_averages`)\n .then((data) => data)\n }\n\n getDebtSpend = async () => {\n return this.fetchInstance\n .get(`${ApiEndpoints.HEALTH_SCORES}/transactions/debt_spend`)\n .then((data) => data)\n }\n\n getIncome = async () => {\n return this.fetchInstance\n .get(`${ApiEndpoints.HEALTH_SCORES}/transactions/income`)\n .then((data) => data)\n }\n\n getMonthlySummaries = async () => {\n return this.fetchInstance\n .get(`${ApiEndpoints.HEALTH_SCORES}/monthly_summaries`)\n .then((data) => data)\n }\n\n getHealthScoreChangeReports = async (startDate: number, endDate: number) => {\n return this.fetchInstance\n .get(`${ApiEndpoints.HEALTH_SCORES}/change_report/from/${startDate}/to/${endDate}`)\n .then((data) => data)\n }\n\n getPeerScore = async (birthYear: string) => {\n return this.fetchInstance\n .get(`${ApiEndpoints.HEALTH_SCORES}/average/${birthYear}`)\n .then((data) => data)\n }\n\n getSpendingFeeTransactions = async () => {\n return this.fetchInstance\n .get(`${ApiEndpoints.HEALTH_SCORES}/transactions/spending_fee`)\n .then((data) => data)\n }\n\n getStandardSpend = async () => {\n return this.fetchInstance\n .get(`${ApiEndpoints.HEALTH_SCORES}/transactions/standard_spend`)\n .then((data) => data)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport { MonthlyCashFlowProfile, RetirementGoalAccount } from '..'\nimport type { GlobalErrorHandler, Goal } from '..'\n\nexport class GoalApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n addGoal = async (goal: Goal) => {\n return this.fetchInstance.post(ApiEndpoints.GOALS, goal).then((data) => data.goal)\n }\n\n addRetirementGoal = async (goal: Goal) => {\n return this.fetchInstance\n .post(ApiEndpoints.RETIREMENT_GOALS, goal)\n .then((data) => data.retirement_goal)\n }\n\n addRetirementGoalAccount = async (retirementAccount: RetirementGoalAccount) => {\n return this.fetchInstance\n .post(ApiEndpoints.RETIREMENT_GOAL_ACCOUNTS, retirementAccount)\n .then((data) => data.retirement_goal_account)\n }\n\n getGoalByGuid = async (guid: string) => {\n return this.fetchInstance.get(`${ApiEndpoints.GOALS}/${guid}`).then((data) => data.goal)\n }\n\n getGoals = async () => {\n return this.fetchInstance.get(ApiEndpoints.GOALS).then((data) => data.goals)\n }\n\n getMonthlyCashFlowProfile = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.MONTHLY_CASH_FLOW_PROFILE)\n .then((data) => data.monthly_cash_flow_profile)\n }\n\n getRetirementGoals = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.RETIREMENT_GOALS)\n .then((data) => data.retirement_goals)\n }\n\n getRetirementGoalAccounts = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.RETIREMENT_GOAL_ACCOUNTS)\n .then((data) => data.retirement_goal_accounts)\n }\n\n removeGoal = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.GOALS}/${guid}`).then((data) => data)\n }\n\n removeRetirementGoal = async (guid: string) => {\n return this.fetchInstance\n .delete(`${ApiEndpoints.RETIREMENT_GOALS}/${guid}`)\n .then((data) => data)\n }\n\n removeRetirementGoalAccount = async (guid: string) => {\n return this.fetchInstance\n .delete(`${ApiEndpoints.RETIREMENT_GOAL_ACCOUNTS}/${guid}`)\n .then((data) => data)\n }\n\n reorderGoals = async (goals: Goal[]) => {\n return this.fetchInstance\n .post(`${ApiEndpoints.GOALS}/reposition`, { goals: goals })\n .then((data) => data.goals)\n }\n\n updateGoal = async (goal: Goal) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.GOALS}/${goal.guid}`, goal)\n .then((data) => data.goal)\n }\n\n updateMonthlyCashFlowProfile = async (profile: MonthlyCashFlowProfile) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.MONTHLY_CASH_FLOW_PROFILE}`, profile)\n .then((data) => data.monthly_cash_flow_profile)\n }\n\n updateRetirementGoal = async (goal: Goal) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.RETIREMENT_GOALS}/${goal.guid}`, goal)\n .then((data) => data.retirement_goal)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { GlobalErrorHandler, Ticket } from '..'\n\nexport class HelpApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n createSupportTicket = async (ticket: Ticket) => {\n return this.fetchInstance.post(ApiEndpoints.SUPPORT_TICKETS, ticket).then((data) => data)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { GlobalErrorHandler, Holding } from '..'\n\nexport class HoldingApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n getHoldings = async () => {\n return this.fetchInstance.get(ApiEndpoints.HOLDINGS).then((data) => data.holdings)\n }\n\n updateHoldings = async (holding: Holding) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.HOLDINGS}/${holding.guid}`, holding)\n .then((data) => data.holding)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { GlobalErrorHandler } from '..'\n\nexport class MerchantApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n getMerchants = async (\n searchValues = [] as string[],\n guids = [] as string[],\n page = 1,\n perPage = 25,\n ) => {\n let url = ApiEndpoints.MERCHANTS\n url += `?page=${page}&per_page=${perPage}`\n\n if (searchValues.length) {\n searchValues.forEach((value) => (url += `&fuzzy_name[]=${value}`))\n }\n\n if (guids.length) {\n guids.forEach((guid) => (url += `&guid[]=${guid}`))\n }\n\n return this.fetchInstance.get(url).then((data) => data.merchants)\n }\n\n getMerchantByGuid = async (guid: string) => {\n return this.fetchInstance.get(`${ApiEndpoints.MERCHANTS}/${guid}`).then((data) => data.merchant)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { Notification, GlobalErrorHandler } from '..'\n\nexport class NotificationApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n getNotifications = () => {\n return this.fetchInstance\n .get(ApiEndpoints.NOTIFICATIONS)\n .then((data) =>\n data.notifications.map((obj: { notification: Notification }) => obj.notification),\n )\n .finally()\n }\n\n updateNotification = (notification: Notification) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.NOTIFICATIONS}/${notification.guid}`, {\n guid: notification.guid,\n has_been_viewed: notification.has_been_viewed,\n })\n .then((data) => data.notification)\n .finally()\n }\n\n // Note: The notifications/mark_all_as_viewed endpoint is broken, but still returns 202.\n // A bug ticket has been filed to fix it, but should not require any changes here.\n markAllAsViewed = (channel?: number) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.NOTIFICATIONS}/mark_all_as_viewed`, { channel })\n .finally()\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { GlobalErrorHandler, RepeatingTransaction } from '..'\n\nexport class RepeatingTransactionsApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n addRepeatingTransaction = async (repeatingTransaction: RepeatingTransaction) => {\n return this.fetchInstance\n .post(ApiEndpoints.REPEATING_TRANSACTIONS, repeatingTransaction)\n .then((data) => data.repeating_transaction)\n }\n\n getRepeatingTransactions = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.REPEATING_TRANSACTIONS)\n .then((data) => data.repeating_transactions)\n }\n\n updateRepeatingTransaction = async (repeatingTransaction: RepeatingTransaction) => {\n return this.fetchInstance\n .put(\n `${ApiEndpoints.REPEATING_TRANSACTIONS}/${repeatingTransaction.guid}`,\n repeatingTransaction,\n )\n .then((data) => data.repeating_transaction)\n }\n\n deleteRepeatingTransaction = async (guid: string) => {\n return this.fetchInstance\n .delete(`${ApiEndpoints.REPEATING_TRANSACTIONS}/${guid}`)\n .then((data) => data)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport { UserCommunicationProfile } from '..'\nimport type { Device, GlobalErrorHandler, NotificationProfile } from '..'\n\nexport class SettingsApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n deleteDevice = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.DEVICES}/${guid}`).then((data) => data)\n }\n\n generateDeviceToken = async () => {\n return this.fetchInstance\n .get(`${ApiEndpoints.USER}/mobile_token`)\n .then((data) => data.mobile_token)\n }\n\n getDevices = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.DEVICES)\n .then((data) => data.map((item: { device: Device }) => item.device))\n }\n\n getNotificationProfiles = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.NOTIFICATION_PROFILES)\n .then((data) => data.notification_profiles)\n }\n\n // verifications endpoints respond with HTTP status codes; they error otherwise\n sendEmailVerification = async () => {\n return this.fetchInstance.post(ApiEndpoints.EMAIL_VERIFICATIONS)\n }\n\n sendPhoneVerification = async () => {\n return this.fetchInstance.post(ApiEndpoints.PHONE_VERIFICATIONS + '/deliver')\n }\n\n verifyPhoneToken = async (sms_verification_token: string) => {\n return this.fetchInstance\n .post(ApiEndpoints.PHONE_VERIFICATIONS + '/verify', { sms_verification_token })\n .then((res) => ({ verified: res.verified }))\n }\n\n updateDevice = async (device: Device) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.DEVICES}/${device.guid}`, device)\n .then((data) => data.device)\n }\n\n updateNotificationProfile = async (notificationProfile: NotificationProfile) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.NOTIFICATION_PROFILES}/${notificationProfile.guid}`, notificationProfile)\n .then((data) => data.notification_profile)\n }\n\n updateUserCommunicationProfile = async (userCommunicationProfile: UserCommunicationProfile) => {\n return this.fetchInstance\n .put(ApiEndpoints.USER_COMMUNICATION_PROFILE, userCommunicationProfile)\n .then((data) => data.user_communication_profile)\n }\n\n getInsightsNotificationProfiles = async () => {\n return this.fetchInstance\n .get(`${ApiEndpoints.NOTIFICATION_PROFILES}/${ApiEndpoints.INSIGHTS_NOTIFICATION_PROFILES}`)\n .then((data) => data)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { GlobalErrorHandler, Tag, Tagging, Transaction, TransactionRule } from '..'\n\nexport class TransactionApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n addTag = async (tag: Tag) => {\n return this.fetchInstance.post(ApiEndpoints.TAGS, tag).then((data) => data.tag)\n }\n\n addTagging = async (tagging: Tagging) => {\n return this.fetchInstance.post(ApiEndpoints.TAGGINGS, tagging).then((data) => data.tagging)\n }\n\n addTransaction = async (transaction: Transaction) => {\n return this.fetchInstance\n .post(ApiEndpoints.TRANSACTIONS, transaction)\n .then((data) => data.transaction)\n }\n\n addTransactionRule = async (rule: TransactionRule) => {\n return this.fetchInstance.post(ApiEndpoints.TRANSACTION_RULES, rule).then((data) => data)\n }\n\n getTaggings = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.TAGGINGS)\n .then((data) => data.map((item: { tagging: Tagging }) => item.tagging))\n }\n\n getTags = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.TAGS)\n .then((data) => data.map((item: { tag: Tag }) => item.tag))\n }\n\n getTransactionRules = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.TRANSACTION_RULES)\n .then((data) => data.transaction_rules)\n }\n\n getTransactionsByDateRange = async (startDate: number, endDate: number) => {\n return this.fetchInstance\n .get(`${ApiEndpoints.TRANSACTIONS}/by_date/${startDate}/${endDate}`)\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n // DEPRECATED\n getTransactionsByAccountsAndDateRange = async (\n accountGuids: string[],\n beginDate: number,\n endDate: number,\n ) => {\n console.warn('DEPRECATED: getTransactionsByAccountsAndDateRange will be removed')\n const accountsList = accountGuids.reduce(\n (acc: string, guid: string, i: number) =>\n `${acc}account_guids[]=${guid}${i !== accountGuids.length - 1 ? '&' : ''}`,\n '',\n )\n\n return this.fetchInstance\n .get(`${ApiEndpoints.TRANSACTIONS}/by_date/${beginDate}/${endDate}?${accountsList}`)\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n // DEPRECATED\n getTransactionsByGuids = async (guids: string[]) => {\n console.warn('DEPRECATED: getTransactionsByGuids will be removed')\n return this.fetchInstance\n .post(`${ApiEndpoints.TRANSACTIONS}/by_guids`, { guids: guids.join('+') })\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n // DEPRECATED\n getTransactionsByCategoryAndDate = async (\n categoryGuid: string,\n beginDate: number,\n endDate: number,\n ) => {\n console.warn('DEPRECATED: getTransactionsByCategoryAndDate will be removed')\n return this.fetchInstance\n .get(\n `${ApiEndpoints.TRANSACTIONS}/by_category_guid/${categoryGuid}/by_date/${beginDate}/${endDate}`,\n )\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n // DEPRECATED\n getTransactionsByCategoryDateAndAccounts = async (\n categoryGuid: string,\n beginDate: number,\n endDate: number,\n accountGuids: string[],\n ) => {\n console.warn('DEPRECATED: getTransactionsByCategoryDateAndAccounts will be removed')\n const accountsList = accountGuids.reduce(\n (acc: string, guid: string, i: number) =>\n `${acc}account_guids[]=${guid}${i !== accountGuids.length - 1 ? '&' : ''}`,\n '',\n )\n\n return this.fetchInstance\n .get(\n `${ApiEndpoints.TRANSACTIONS}/by_category_guid/${categoryGuid}/by_date/${beginDate}/${endDate}?${accountsList}`,\n )\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n // DEPRECATED\n getTransactionsByCategoriesDateAndAccounts = async (\n categoryGuids: string[],\n beginDate: number,\n endDate: number,\n accountGuids: string[],\n ) => {\n console.warn('DEPRECATED: getTransactionsByCategoriesDateAndAccounts will be removed')\n const accountsList = accountGuids.reduce(\n (acc: string, guid: string, i: number) =>\n `${acc}account_guids[]=${guid}${i !== accountGuids.length - 1 ? '&' : ''}`,\n '',\n )\n\n return this.fetchInstance\n .get(\n `${ApiEndpoints.TRANSACTIONS}/by_category_guids/${categoryGuids.join(\n '+',\n )}/by_date/${beginDate}/${endDate}?${accountsList}`,\n )\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n /**\n * DEPRECATED\n * Get all transactions by the top level category, between begin date and end date, and optionally\n * filtered by accounts\n * @param categoryGuid The top level category guid\n * @param beginDate the start date\n * @param endDate the end date\n * @param accountGuids an optional list of account guids\n */\n getTransactionsByTopLevelCategoryAndDate = async (\n categoryGuid: string,\n beginDate: number,\n endDate: number,\n accountGuids: string[] = [],\n ) => {\n console.warn('DEPRECATED: getTransactionsByTopLevelCategoryAndDate will be removed')\n let url = `${ApiEndpoints.TRANSACTIONS}/by_top_level_category_guid/${categoryGuid}/by_date/${beginDate}/${endDate}`\n\n if (accountGuids.length > 0) {\n const accountsList = accountGuids.reduce(\n (acc: string, guid: string, i: number) =>\n `${acc}account_guids[]=${guid}${i !== accountGuids.length - 1 ? '&' : ''}`,\n '',\n )\n url += `?${accountsList}`\n }\n\n return this.fetchInstance\n .get(url)\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n removeTag = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.TAGS}/${guid}`).then((data) => data)\n }\n\n removeTagging = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.TAGGINGS}/${guid}`).then((data) => data)\n }\n\n removeTransaction = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.TRANSACTIONS}/${guid}`).then((data) => data)\n }\n\n removeTransactionRule = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.TRANSACTION_RULES}/${guid}`)\n }\n\n removeTransactionSplit = async (guid: string) => {\n return this.fetchInstance\n .delete(`${ApiEndpoints.TRANSACTIONS}/${guid}/unsplit`)\n .then((data) => data)\n }\n\n updateTransactionRule = async (rule: TransactionRule) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.TRANSACTION_RULES}/${rule.guid}`, rule)\n .then((data) => data)\n }\n\n updateTag = async (tag: Tag) => {\n return this.fetchInstance.put(`${ApiEndpoints.TAGS}/${tag.guid}`, tag).then((data) => data.tag)\n }\n\n updateTransaction = async (transaction: Transaction) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.TRANSACTIONS}/${transaction.guid}`, transaction)\n .then((data) => data.transaction)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { GlobalErrorHandler, User, UserProfile } from '..'\n\nexport class UserApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n getUserFeatures = async () => {\n return this.fetchInstance.get(ApiEndpoints.USER_FEATURES).then((data) => data.user_features)\n }\n\n updateUser = async (user: User) => {\n return this.fetchInstance.put(ApiEndpoints.USER, user).then((data) => data.user)\n }\n\n updateUserProfile = async (userProfile: UserProfile) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.USER_PROFILES}/${userProfile.guid}`, userProfile)\n .then((data) => data.user_profile)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\n\nexport class WidgetApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string) {\n this.fetchInstance = new Fetch(endpoint, token)\n }\n\n requestWidgetUrl = async (req: any) => {\n return this.fetchInstance.post(ApiEndpoints.WIDGET_URLS, req).then((data) => data.widget_url)\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { AccountApi } from '../api'\nimport {\n type Account,\n type DetailedAccount,\n type Institution,\n type Member,\n AccountType,\n AccountSubType,\n} from '../types'\nimport { augmentAccounts } from '../utils/AccountUtils'\nimport { isFeatureEnabled } from '../utils/UserUtils'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class AccountStore {\n globalStore: GlobalStore\n api: AccountApi = new AccountApi('/', '')\n\n accounts: Account[] = []\n accountsLoaded: boolean = false\n accountsLoading: boolean = false\n institutions: Institution[] = []\n institutionsLoaded: boolean = false\n institutionsLoading: boolean = false\n members: Member[] = []\n membersLoaded: boolean = false\n membersLoading: boolean = false\n uiStore: UiStore\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.uiStore = new UiStore()\n this.api = new AccountApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n\n makeAutoObservable(this)\n }\n\n loadAccountData = async () => {\n await Promise.all([this.loadAccounts(), this.loadMembers(), this.loadInstitutions()])\n }\n\n get isAccountDataLoaded(): boolean {\n return this.accountsLoaded && this.membersLoaded && this.institutionsLoaded\n }\n\n get detailedAccounts(): DetailedAccount[] {\n const userFeatures = this.globalStore.userStore.userFeatures\n const excludeExternal = isFeatureEnabled(userFeatures, 'MD_EXCLUDE_EXTERNAL_ACCOUNTS')\n\n // Hide held account when this flag is toggled and this is the individual accounts widget\n const excludeHeld =\n this.globalStore.appConfig.config.display_only_external_accounts_in_accounts &&\n this.globalStore.appConfig.options.subtype === 'accounts' // Indicates this is an individual widget\n\n return augmentAccounts(\n this.accounts,\n this.institutions,\n this.members,\n excludeExternal,\n excludeHeld,\n )\n }\n\n get accountsByTypeMap(): Map<AccountType, DetailedAccount[]> {\n return this.detailedAccounts.reduce((typeMap: Map<AccountType, DetailedAccount[]>, account) => {\n const accountType = account.account_type\n\n let accounts = typeMap.get(accountType)\n if (!accounts) {\n accounts = []\n }\n accounts.push(account)\n typeMap.set(accountType, accounts)\n\n return typeMap\n }, new Map<AccountType, DetailedAccount[]>())\n }\n\n get cashAccounts(): DetailedAccount[] {\n return this.detailedAccounts.filter(\n (account: Account) =>\n account.account_type === AccountType.CASH ||\n account.account_type === AccountType.CHECKING ||\n account.account_type === AccountType.PREPAID ||\n account.account_type === AccountType.SAVINGS ||\n account.account_type === AccountType.CHECKING_LINE_OF_CREDIT,\n )\n }\n\n get cashBalance(): number {\n return this.cashAccounts.reduce((total, account) => total + (account?.balance || 0), 0)\n }\n\n get checkingAccounts(): DetailedAccount[] {\n return this.detailedAccounts.filter((a: Account) => a.account_type === AccountType.CHECKING)\n }\n\n get debtAccounts(): DetailedAccount[] {\n return this.detailedAccounts.filter(\n (account: Account) =>\n account.account_type === AccountType.CREDIT_CARD ||\n account.account_type === AccountType.LOAN ||\n account.account_type === AccountType.MORTGAGE ||\n account.account_type === AccountType.LINE_OF_CREDIT ||\n account.account_type === AccountType.CHECKING_LINE_OF_CREDIT,\n )\n }\n\n get finstrongAccounts(): DetailedAccount[] {\n const eligibleTypes = new Set([\n AccountType.CHECKING,\n AccountType.SAVINGS,\n AccountType.CREDIT_CARD,\n AccountType.INVESTMENT,\n ])\n\n return this.detailedAccounts.filter((account) => eligibleTypes.has(account.account_type))\n }\n\n get investmentAccounts(): DetailedAccount[] {\n return this.detailedAccounts.filter(\n (account: Account) => account.account_type === AccountType.INVESTMENT,\n )\n }\n\n get manualAccounts(): DetailedAccount[] {\n return this.detailedAccounts.filter((account) => account.is_manual)\n }\n\n get savingsAccounts(): DetailedAccount[] {\n return this.detailedAccounts.filter((a: Account) => a.account_type === AccountType.SAVINGS)\n }\n\n get retirementAccounts(): Account[] {\n return this.detailedAccounts.filter(\n (account: Account) =>\n account.account_type === AccountType.INVESTMENT ||\n account.account_type === AccountType.SAVINGS ||\n account.account_type === AccountType.CHECKING ||\n account.account_type === AccountType.CASH ||\n account.account_type === AccountType.PROPERTY ||\n (account.account_type === AccountType.INSURANCE &&\n (account.account_subtype === AccountSubType.WHOLE_LIFE ||\n account.account_subtype === AccountSubType.UNIVERSAL_LIFE ||\n account.account_subtype === AccountSubType.VARIABLE_UNIVERSAL_LIFE)),\n )\n }\n\n get visibleAccounts(): DetailedAccount[] {\n return this.detailedAccounts.filter((a: Account) => !a.is_hidden && !a.is_closed)\n }\n\n get visibleCashAccounts(): DetailedAccount[] {\n return this.cashAccounts.filter((account: Account) => !account.is_hidden)\n }\n\n get visibleCashBalance(): number {\n return this.visibleCashAccounts.reduce((total, account) => total + (account?.balance || 0), 0)\n }\n\n get visibleCheckingAccounts(): DetailedAccount[] {\n return this.checkingAccounts.filter((account: Account) => !account.is_hidden)\n }\n\n get visibleDebtAccounts(): DetailedAccount[] {\n return this.debtAccounts.filter((account: Account) => !account.is_hidden)\n }\n\n get visibleFinstrongAccounts(): DetailedAccount[] {\n return this.finstrongAccounts.filter(\n (account: Account) => !(account.is_closed || account.is_deleted || account.is_hidden),\n )\n }\n\n get visibleRetirementAccounts(): Account[] {\n return this.retirementAccounts.filter((account: Account) => !account.is_hidden)\n }\n\n get visibleInvestmentAccounts(): DetailedAccount[] {\n return this.investmentAccounts.filter((account: Account) => !account.is_hidden)\n }\n\n get visibleSavingsAccounts(): DetailedAccount[] {\n return this.savingsAccounts.filter((account: Account) => !account.is_hidden)\n }\n\n get savingsAndCheckingAccountsBalance(): number {\n const savingsAndCheckingAccountsList = this.savingsAndCheckingAccounts\n\n return savingsAndCheckingAccountsList.reduce(\n (total, account) => total + (account?.balance || 0),\n 0,\n )\n }\n\n get savingsAndCheckingAccounts(): Account[] {\n const savingsAndCheckingAccounts = this.accounts.filter(\n (account: Account) =>\n account.account_type === AccountType.SAVINGS ||\n account.account_type === AccountType.CHECKING,\n )\n\n return savingsAndCheckingAccounts\n }\n\n setAccounts = (accounts: Account[]) => {\n this.accounts = accounts\n this.accountsLoading = false\n this.accountsLoaded = true\n }\n\n setMembers = (members: Member[]) => {\n this.members = members\n this.membersLoading = false\n this.membersLoaded = true\n }\n\n setInstitutions = (institutions: Institution[]) => {\n this.institutions = institutions\n this.institutionsLoading = false\n this.institutionsLoaded = true\n }\n\n addAccount = async (account: Account) => {\n try {\n const newAccount = await this.api.createAccount(account)\n\n runInAction(() => {\n this.accounts = [...this.accounts, newAccount]\n })\n } catch (error) {\n console.error('Error occurred while adding an account:', error)\n this.globalStore.captureException(error, { store: 'AccountStore' })\n }\n }\n\n loadAccounts = async () => {\n if (this.accountsLoading) return\n\n this.accountsLoading = true\n try {\n const accounts = await this.api.getAccounts()\n this.setAccounts(accounts)\n } catch (error) {\n console.error('Error occurred while loading accounts:', error)\n this.globalStore.captureException(error, { store: 'AccountStore' })\n this.setAccounts([])\n }\n }\n\n loadInstitutions = async () => {\n if (this.institutionsLoading) return\n\n this.institutionsLoading = true\n try {\n const institutions = await this.api.getInstitutions()\n this.setInstitutions(institutions)\n } catch (error) {\n console.error('Error occurred while loading institutions:', error)\n this.globalStore.captureException(error, { store: 'AccountStore' })\n this.setInstitutions([])\n }\n }\n\n loadMembers = async () => {\n if (this.membersLoading) return\n\n this.membersLoading = true\n try {\n const members = await this.api.getMembers()\n this.setMembers(members)\n } catch (error) {\n console.error('Error occurred while loading members:', error)\n this.globalStore.captureException(error, { store: 'AccountStore' })\n this.setMembers([])\n }\n }\n\n mergeAccounts = async (accountGuids: string[]) => {\n try {\n const response = await this.api.mergeAccounts(accountGuids)\n // the response from the api is a funky database key here, so this is essentially just getting the first item in the returned object\n // to prevent making multiple api calls here\n const mergedAccount = response[Object.keys(response)[0]]\n\n runInAction(() => {\n const account2Index = this.accounts.findIndex((account) => account.guid === accountGuids[1])\n this.accounts.splice(account2Index, 1)\n\n const account1Index = this.accounts.findIndex((account) => account.guid === accountGuids[0])\n this.accounts.splice(account1Index, 1, mergedAccount)\n })\n } catch (error) {\n console.error('Error occurred while merging accounts:', error)\n this.globalStore.captureException(error, { store: 'AccountStore' })\n }\n }\n\n /**\n * DEPRECATED: Use loadAccountData instead\n */\n refreshAccounts = async () => {\n await Promise.all([this.loadAccounts(), this.loadInstitutions(), this.loadMembers()])\n }\n\n refreshMembers = async () => {\n try {\n await this.api.refreshAllMembers()\n } catch (error) {\n console.error('Error occurred while refreshing members:', error)\n this.globalStore.captureException(error, { store: 'AccountStore' })\n }\n }\n\n removeAccount = async (accountGuid: string) => {\n try {\n await this.api.deleteAccount(accountGuid)\n\n const deletedIndex = this.accounts.findIndex((account) => account.guid === accountGuid)\n this.accounts.splice(deletedIndex, 1)\n } catch (error) {\n console.error('Error occurred while removing an account:', error)\n this.globalStore.captureException(error, { store: 'AccountStore' })\n }\n }\n\n updateAccount = async (account: Account) => {\n try {\n const updatedAccount = await this.api.updateAccount(account)\n\n const updatedAccountIndex = this.accounts.findIndex(\n (account) => account.guid === updatedAccount.guid,\n )\n\n this.accounts.splice(updatedAccountIndex, 1, updatedAccount)\n } catch (error) {\n console.error('Error occurred while updating account:', error)\n this.globalStore.captureException(error, { store: 'AccountStore' })\n }\n }\n\n updateAccountBalance = (accountGuid: string, balanceChange: number) => {\n const account = this.accounts.find((a) => a.guid === accountGuid)\n\n if (account) {\n runInAction(() => {\n account.balance = (account.balance || 0) + balanceChange\n })\n }\n }\n\n updateAccountFilter = async (accountMap: Map<string, boolean>) => {\n try {\n const accountUpdates: Promise<Account | null>[] = []\n for (const [guid, isSelected] of accountMap.entries()) {\n const account = this.accounts.find((acc) => acc.guid === guid)\n\n if (account && account.is_excluded_from_accounts === isSelected) {\n const updatedPayload = { ...account, is_excluded_from_accounts: !isSelected }\n accountUpdates.push(\n this.api.updateAccount(updatedPayload).catch((error) => {\n console.error('Error occurred while updating account filter:', error)\n this.globalStore.captureException(error, { store: 'AccountStore' })\n return null\n }),\n )\n }\n }\n\n const results = await Promise.all(accountUpdates)\n const updatedAccounts: Account[] = results.filter((acc): acc is Account => acc !== null)\n\n const accounts = [...this.accounts]\n for (const updatedAccount of updatedAccounts) {\n const index = accounts.findIndex((acc) => acc.guid === updatedAccount.guid)\n if (index !== -1) {\n accounts.splice(index, 1, updatedAccount)\n }\n }\n this.setAccounts(accounts)\n } catch (error) {\n console.error('Error occurred while updating account filter:', error)\n this.globalStore.captureException(error, { store: 'AccountStore' })\n }\n }\n}\n\n// TODO: Move into AccountStore\nclass UiStore {\n selectedAccount: Account = {} as Account\n selectedMember: Member = {} as Member\n\n constructor() {\n makeAutoObservable(this)\n }\n\n setSelectedAccount = (account: Account) => (this.selectedAccount = account)\n setSelectedMember = (member: Member) => (this.selectedMember = member)\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { AppDataApi, BannerApi } from '../api'\nimport type {\n AppConfig,\n AppData,\n Banner,\n User,\n UserCommunicationProfile,\n UserProfile,\n} from '../types'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class AppDataStore {\n globalStore: GlobalStore\n api: AppDataApi = new AppDataApi('/', '')\n bannerApi: BannerApi = new BannerApi('/')\n\n appData: AppData = {} as AppData\n isAppDataLoaded: boolean = false\n banner: Banner = {}\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new AppDataApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n\n makeAutoObservable(this)\n }\n\n get appConfig(): AppConfig {\n return this.globalStore.appConfig\n }\n\n get clientCommunicationProfile() {\n return this.appData.client_communication_profile\n }\n\n get clientInsightProfile() {\n return this.appData.client_insight_profile\n }\n\n get user() {\n return this.appData.user\n }\n\n get userCommunicationProfile() {\n return this.appData.user_communication_profile\n }\n\n get userProfile() {\n return this.appData.user_profile\n }\n\n setAppData = (appData: AppData) => {\n this.appData = appData\n this.bannerApi = new BannerApi(appData.address?.bullseye || '/')\n this.isAppDataLoaded = true\n }\n\n loadAppData = async () => {\n try {\n const appData = await this.api.getAppData()\n this.setAppData(appData)\n } catch (error) {\n console.error('Error loading app data:', error)\n this.globalStore.captureException(error, { store: 'AppDataStore' })\n }\n }\n\n loadBanner = async () => {\n try {\n const userGuid = this.user?.guid ?? null\n const banner = userGuid ? await this.bannerApi.getBanner(userGuid) : {}\n\n runInAction(() => {\n this.banner = banner\n })\n } catch (error) {\n console.error('Error loading banner:', error)\n this.globalStore.captureException(error, { store: 'AppDataStore' })\n }\n }\n\n setUser = (user: User) => (this.appData.user = user)\n\n setUserCommunicationProfile = (profile: UserCommunicationProfile) =>\n (this.appData.user_communication_profile = profile)\n\n setUserProfile = (userProfile: UserProfile) => (this.appData.user_profile = userProfile)\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\nimport posthog, { Survey, SurveyQuestion } from 'posthog-js'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class AnalyticsStore {\n globalStore: GlobalStore\n survey: Survey | null = null\n currentQuestionIndex: number = 0\n question: SurveyQuestion | null = null\n response: number | string | null = null\n responses: Record<string, number | string | null> = {}\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n makeAutoObservable(this)\n }\n\n get isLastQuestion() {\n return this.currentQuestionIndex === this.surveyQuestions.length - 1\n }\n\n get questionCount() {\n return `${this.currentQuestionIndex + 1}/${this.surveyQuestions.length}`\n }\n\n get responsePayload() {\n return {\n $survey_id: this.surveyId,\n ...this.responses,\n }\n }\n\n // TODO hardcode elsewhere\n get surveyId() {\n const posthogKey = window.app?.postHogPublicKey\n\n return posthogKey === 'phc_KclQGnOZEaYCttkpiVpuyOYeBlixGo6xNphYgWV4CXo'\n ? '0196caa6-9b37-0000-98a7-f04e8d56faf5'\n : '0196a6b0-ccde-0000-b980-0b84ea2fef4a'\n }\n\n get surveyQuestions() {\n return this.survey ? this.survey.questions : ([] as SurveyQuestion[])\n }\n\n loadSurvey = (forceReload: boolean = false) => {\n posthog.getActiveMatchingSurveys((surveys) => {\n runInAction(() => {\n if (surveys.length > 0) {\n const survey = surveys.find((s) => s.id === this.surveyId)\n if (survey) {\n this.survey = survey\n this.currentQuestionIndex = 0\n this.question = survey.questions[0]\n this.response = null\n this.responses = {}\n }\n }\n })\n }, forceReload)\n }\n\n nextQuestion = () => {\n if (this.currentQuestionIndex < this.surveyQuestions.length - 1) {\n this.currentQuestionIndex += 1\n }\n this.response = null\n this.question = this.surveyQuestions[this.currentQuestionIndex]\n }\n\n resetStore = () => {\n this.survey = null\n this.currentQuestionIndex = 0\n this.question = null\n this.response = null\n this.responses = {}\n }\n\n setResponse = (response: number | string | null) => {\n this.response = response\n if (this.question) {\n this.responses[`$survey_response_${this.question.id}`] = response\n }\n }\n}\n","import { Offer } from '../types'\n\ntype SortOrder = 'asc' | 'desc'\n\nexport function orderArray<T>(arr1: T[], arr2: T[], prop: keyof T, order: SortOrder = 'asc'): T[] {\n const direction = order === 'desc' ? -1 : 1\n return [...arr1, ...arr2].sort((item1, item2) => {\n if (item1[prop] < item2[prop]) return -1 * direction\n if (item1[prop] > item2[prop]) return 1 * direction\n return 0\n })\n}\n\nexport const transformOfferIntoBeatLikeObject = (offer: Offer) => {\n return {\n ...offer, //fields that are offer specific, adding here for visibility\n image_url: offer.image_url,\n guid: offer.guid,\n created_at: offer.created_at,\n dismissed_at: offer.dismissed_at,\n active_at: offer.campaign_activated_at,\n displayed_at: offer.has_been_viewed,\n post_message_secondary: offer.pulse_post_message_secondary, //offer fields mapped to beat fields for functionality\n title: offer.pulse_title || offer.campaign_name,\n html_title: offer.pulse_title || offer.campaign_name,\n short_title: offer.pulse_title || offer.campaign_name,\n html_short_title: offer.pulse_title || offer.campaign_name,\n micro_title: offer.pulse_title || offer.campaign_name,\n html_micro_title: offer.pulse_title || offer.campaign_name,\n supporting_action: offer.pulse_call_to_action_text_secondary,\n description: offer.pulse_body,\n html_description: offer.pulse_body,\n micro_description: offer.pulse_body,\n html_micro_description: offer.pulse_body,\n call_to_action: offer.pulse_call_to_action_text,\n html_micro_call_to_action: offer.pulse_call_to_action_text,\n micro_call_to_action: offer.pulse_call_to_action_text,\n is_dismissed: offer.has_been_dismissed,\n icon_type: 5,\n template: 'MarketingOffer',\n //beat fields we null out\n account_guids: [],\n data_series: {},\n has_been_displayed: false,\n is_obsolete: false,\n is_refreshable: false,\n is_sampled: false,\n merchant_guids: [],\n payload: {},\n pulse_campaign_name: offer.campaign_name,\n scheduled_payment_guids: [],\n transaction_guids: [],\n user_guid: '',\n user_verification: 0,\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { BeatApi } from '../api'\nimport type { Beat, Offer } from '../types'\nimport { orderArray, transformOfferIntoBeatLikeObject } from '../utils/BeatUtils'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class BeatStore {\n globalStore: GlobalStore\n api: BeatApi = new BeatApi('/', '')\n beats: Beat[] = []\n isLoading = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new BeatApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n\n makeAutoObservable(this)\n }\n\n loadBeats = async () => {\n this.isLoading = true\n try {\n const beats = await this.api.getBeats()\n const offers = await this.api.getOffers()\n const beatLikeOffers = offers.map((o: Offer) => transformOfferIntoBeatLikeObject(o))\n\n runInAction(() => {\n this.beats = orderArray(beats, beatLikeOffers, 'active_at', 'desc')\n })\n } catch (error) {\n console.error('Error occurred while loading beats:', error)\n this.globalStore.captureException(error, { store: 'BeatStore' })\n } finally {\n runInAction(() => {\n this.isLoading = false\n })\n }\n }\n\n getFilteredBeats(filter: { categoryGuids?: string[]; templates?: string[] }): Beat[] {\n const { categoryGuids, templates } = filter\n let filteredBeats = this.beats\n if (categoryGuids) filteredBeats = this.filterBeatsByCategory(filteredBeats, categoryGuids)\n if (templates) filteredBeats = this.filterBeatsByTemplate(filteredBeats, templates)\n return filteredBeats\n }\n\n // Return beats with any beat.category_guids that are in categoryGuids\n filterBeatsByCategory(beats: Beat[], categoryGuids: string[]): Beat[] {\n return beats.filter((beat) => {\n return beat.category_guids?.some((guid) => categoryGuids.includes(guid))\n })\n }\n\n // Return beats with a beat.template that is in templates\n filterBeatsByTemplate(beats: Beat[], templates: string[]): Beat[] {\n return beats.filter((beat) => {\n return templates.some((template) => beat.template === template)\n })\n }\n}\n","import { makeAutoObservable, reaction, runInAction } from 'mobx'\n\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\n\nimport { Theme } from '@mui/system'\n\nimport { BudgetsApi } from '../api'\nimport { CategoryGuids } from '../constants'\nimport { augmentBudgets, findBudget, findSubBudget } from '../utils/BudgetUtil'\n\nimport { GlobalStore } from './GlobalStore'\n\nimport type {\n Budget,\n Category,\n DateRange,\n DetailedBudget,\n DetailedCategory,\n MerchantBudget,\n} from '../types'\n\nexport class BudgetsStore {\n api: BudgetsApi = new BudgetsApi('/', '')\n\n globalStore: GlobalStore\n\n alert: string = ''\n dateRange: DateRange = { start: startOfMonth(startOfToday()), end: endOfMonth(startOfToday()) }\n budgets: Budget[] = []\n selectedBudget: DetailedBudget | undefined\n selectedSubBudget: DetailedBudget | undefined\n isDataLoaded = false\n theme = {} as Theme\n merchantBudgets: MerchantBudget[] = []\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new BudgetsApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n\n makeAutoObservable(this)\n }\n\n loadBudgetData = async () => {\n if (!this.globalStore.recurringTransactionsStore.isDataLoaded) {\n await this.globalStore.recurringTransactionsStore.loadRepeatingTransactionData()\n }\n await this.loadBudgets()\n\n /** Reaction to update the selected budget/sub-budget if detailedBudgets is updated **/\n reaction(\n () => this.detailedBudgets,\n (detailedBudgets) => {\n if (detailedBudgets) {\n const budget = this.selectedBudget\n if (budget) {\n this.selectedBudget = findBudget(detailedBudgets, budget.guid)\n }\n\n const subBudget = this.selectedSubBudget\n if (subBudget && subBudget.parent_guid) {\n this.selectedSubBudget = findSubBudget(\n detailedBudgets,\n subBudget.guid,\n subBudget.parent_guid,\n )\n }\n }\n },\n )\n }\n\n get detailedBudgets(): DetailedBudget[] {\n return augmentBudgets(\n this.budgets.filter(\n (budget: Budget) =>\n budget.category_guid !== CategoryGuids.INCOME &&\n budget.category_guid !== CategoryGuids.TRANSFER &&\n budget.category_guid !== CategoryGuids.INVESTMENTS,\n ),\n this.globalStore.categoryStore.detailedCategories,\n this.globalStore.copyStore.copy.budgets,\n this.theme,\n ).sort((a, b) => {\n if (a.percentage > b.percentage) return -1\n if (a.percentage < b.percentage) return 1\n return 0\n })\n }\n\n // TODO: Replace this with income from recurring transactions. Income budgets are deprecated.\n get incomeBudget(): number | undefined {\n const filteredBudgets = augmentBudgets(\n this.budgets.filter((budget: Budget) => !budget.parent_guid),\n this.globalStore.categoryStore.detailedCategories,\n this.globalStore.copyStore.copy.budgets,\n this.theme,\n )\n\n const incomeBudget = filteredBudgets.reduce(\n (acc, curr) => {\n if (curr.category_guid !== CategoryGuids.INCOME) return acc\n if (!acc || curr.percentage > acc.percentage) return curr\n return acc\n },\n undefined as DetailedBudget | undefined,\n )\n\n return incomeBudget?.amount\n }\n\n get unbudgetedCategories(): DetailedCategory[] {\n return this.globalStore.categoryStore.spendCategories.filter(\n (category) => !this.detailedBudgets.find((budget) => budget.category_guid === category.guid),\n )\n }\n\n get totalBudgeted(): number {\n return this.detailedBudgets.reduce((total, budget) => total + budget.amount, 0)\n }\n\n addBudget = async (category: Category, amount: number, parentGuid: string | null = null) => {\n try {\n const budget = await this.api.addBudget(category, amount, parentGuid)\n runInAction(() => {\n this.budgets.push(budget)\n })\n } catch (error) {\n console.error('Error adding budget:', error)\n this.globalStore.captureException(error, { store: 'BudgetsStore' })\n }\n }\n\n deleteBudget = async (guid: string) => {\n try {\n await this.api.deleteBudget(guid)\n\n runInAction(() => {\n const index = this.budgets.findIndex((budget) => budget.guid === guid)\n if (index >= 0) {\n this.budgets.splice(index, 1)\n }\n })\n } catch (error) {\n console.error('Error deleting budget:', error)\n this.globalStore.captureException(error, { store: 'BudgetsStore' })\n }\n }\n\n loadBudgets = async () => {\n try {\n const budgets = await this.api.getBudgets()\n this.setBudgets(budgets)\n } catch (error) {\n console.error('Error occurred while loading budgets:', error)\n this.globalStore.captureException(error, { store: 'BudgetsStore' })\n throw error\n }\n }\n\n setAlert = (alert: string) => (this.alert = alert)\n\n setBudgets = (budgets: Budget[]) => {\n this.budgets = budgets\n this.isDataLoaded = true\n }\n\n setDateRange = (dateRange: DateRange) => (this.dateRange = dateRange)\n\n setSelectedBudget = (budget: DetailedBudget | undefined) => (this.selectedBudget = budget)\n\n setSelectedSubBudget = (budget: DetailedBudget | undefined) => (this.selectedSubBudget = budget)\n\n setTheme = (theme: Theme) => (this.theme = theme)\n\n /**\n * Recalculate budget by using the average amount from top-level categories\n * @param categories Detailed categories\n */\n recalculateBudgets = async (categories: DetailedCategory[]) => {\n try {\n for (const category of categories) {\n const budget = this.budgets.find((budget) => budget.category_guid === category.guid)\n if (budget) {\n await this.api.updateBudget({\n ...budget,\n amount: category.totalAverageAmount,\n })\n } else {\n await this.api.addBudget(category, category.totalAverageAmount)\n }\n }\n const budgetsToDelete = this.budgets.filter(\n (budget) => !categories.find((c) => c.guid === budget.category_guid),\n )\n\n for (const budgetToDelete of budgetsToDelete) {\n await this.api.deleteBudget(budgetToDelete.guid)\n }\n\n await this.loadBudgets()\n\n return { data: this.budgets, isSuccess: true }\n } catch (error) {\n console.error('Error recalculating budgets:', error)\n this.globalStore.captureException(error, { store: 'BudgetsStore' })\n return { data: [], isSuccess: false }\n }\n }\n\n updateBudget = async (budget: Budget) => {\n try {\n const updatedBudget = await this.api.updateBudget(budget)\n\n runInAction(() => {\n const index = this.budgets.findIndex((b) => b.guid === budget.guid)\n if (index >= 0) {\n this.budgets[index] = updatedBudget\n }\n })\n } catch (error) {\n console.error('Error updating budget:', error)\n this.globalStore.captureException(error, { store: 'BudgetsStore' })\n }\n }\n\n getMerchantBudgetByMerchantGuid = (merchantGuid: string): MerchantBudget | undefined => {\n return this.merchantBudgets.find(\n (eachMerchantBudget) => eachMerchantBudget?.merchant_guid === merchantGuid,\n )\n }\n\n setMerchantBudgets = (merchantBudgets: MerchantBudget[]) => {\n this.merchantBudgets = merchantBudgets\n }\n\n addMerchantBudget = async (merchantGuid: string, amount: number) => {\n try {\n const newMerchantBudget = await this.api.addMerchantBudget(merchantGuid, amount)\n\n runInAction(() => {\n this.merchantBudgets.push(newMerchantBudget)\n })\n return { isSuccess: true }\n } catch (error) {\n console.error('Error adding merchant budget:', error)\n this.globalStore.captureException(error, { store: 'BudgetsStore' })\n return { isSuccess: false }\n }\n }\n\n updateMerchantBudget = async (merchantBudget: MerchantBudget) => {\n try {\n const { guid: merchantBudgetGuid, amount } = merchantBudget\n const updatedMerchantBudget = await this.api.updateMerchantBudget(merchantBudgetGuid, amount)\n\n runInAction(() => {\n const index = this.merchantBudgets.findIndex((b) => b.guid === merchantBudget.guid)\n if (index >= 0) {\n this.merchantBudgets[index] = updatedMerchantBudget\n }\n })\n return { isSuccess: true }\n } catch (error) {\n console.error('Error updating merchant budget:', error)\n this.globalStore.captureException(error, { store: 'BudgetsStore' })\n return { isSuccess: false }\n }\n }\n\n deleteMerchantBudget = async (merchantBudgetGuid: string) => {\n try {\n await this.api.deleteMerchantBudget(merchantBudgetGuid)\n\n runInAction(() => {\n this.merchantBudgets = this.merchantBudgets.filter((b) => b.guid !== merchantBudgetGuid)\n })\n return { isSuccess: true }\n } catch (error) {\n console.error('Error deleting merchant budget:', error)\n this.globalStore.captureException(error, { store: 'BudgetsStore' })\n return { isSuccess: false }\n }\n }\n}\n","import { makeAutoObservable } from 'mobx'\nimport { addDays } from 'date-fns/addDays'\nimport { differenceInDays } from 'date-fns/differenceInDays'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { isBefore } from 'date-fns/isBefore'\nimport { startOfToday } from 'date-fns/startOfToday'\n\nimport type { Account, Recurrence, UserProfile } from '../types'\nimport { getAccountStartingBalance } from '../utils/AccountUtils'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class CashflowStore {\n globalStore: GlobalStore\n uiStore: UiStore\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.uiStore = new UiStore(globalStore)\n\n makeAutoObservable(this)\n }\n\n completeOnboarding = async () => {\n const updatedUserProfile = {\n ...this.globalStore.userStore.userProfile,\n has_completed_cash_flow_onboarding: true,\n } as UserProfile\n\n await this.globalStore.userStore.updateUserProfile(updatedUserProfile)\n }\n}\n\nclass UiStore {\n globalStore: GlobalStore\n\n // Cashflow is hard-coded to display 30 days starting from today. This is the\n // single source of truth for Cash Flow's window; it intentionally does NOT\n // mutate RecurringTransactionsStore.dateRange, so Cash Flow stays decoupled\n // from other widgets (e.g. Recurring Transactions) that drive that shared range.\n dateRange = { start: startOfToday(), end: addDays(startOfToday(), 30) }\n isDirty = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n\n makeAutoObservable(this)\n }\n\n // Recurrence data scoped to Cash Flow's own dateRange, sourced from the\n // range-parameterized helpers on RecurringTransactionsStore. Computeds (not\n // component state) per the project's MobX conventions.\n get income(): Recurrence[] {\n return this.globalStore.recurringTransactionsStore.incomeForRange(this.dateRange)\n }\n\n get upcomingIncome(): Recurrence[] {\n return this.globalStore.recurringTransactionsStore.upcomingIncomeForRange(this.dateRange)\n }\n\n get upcomingExpenses(): Recurrence[] {\n return this.globalStore.recurringTransactionsStore.upcomingExpensesForRange(this.dateRange)\n }\n\n get nextIncome(): Recurrence | undefined {\n return this.globalStore.recurringTransactionsStore.nextIncomeForRange(this.dateRange)\n }\n\n // Visible cash accounts that are currently selected in the account filter.\n // Computed (single source of truth) so it stays in sync with account data and\n // the filter without effect-based syncing in components.\n get selectedCashAccounts(): Account[] {\n const { selectedAccountGuids } = this.globalStore.globalUiStore\n return this.globalStore.accountStore.visibleCashAccounts.filter((account) =>\n selectedAccountGuids.includes(account.guid),\n )\n }\n\n // Total spendable/starting balance across the selected cash accounts, using\n // the shared per-account balance rule (available vs current balance).\n get selectedCashBalance(): number {\n const showAvailableBalance =\n this.globalStore.appConfig.config.display_available_balance_in_accounts\n return this.selectedCashAccounts.reduce(\n (total, account) => total + getAccountStartingBalance(account, showAvailableBalance),\n 0,\n )\n }\n // Returns the number of days until the next income activity or 0 if there is no income activity\n get daysUntilNextIncome() {\n return this.nextIncome\n ? Math.abs(differenceInDays(startOfToday(), this.nextIncome.expectedDate))\n : 0\n }\n\n // Returns the expenses (Activities) until the next income activity or the end of the month\n // if there is no income activity\n get expensesTilNextIncome() {\n return this.upcomingExpenses.filter((a) =>\n isBefore(a.expectedDate, this.nextIncome?.expectedDate || endOfMonth(new Date())),\n )\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\nimport { getUnixTime } from 'date-fns/getUnixTime'\nimport { subMonths } from 'date-fns/subMonths'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { endOfMonth } from 'date-fns/endOfMonth'\n\nimport { CategoryGuids, CategoryGuidToName } from '../constants'\nimport { CategoryApi } from '../api'\n\nimport { GlobalStore } from './GlobalStore'\n\nimport type {\n Account,\n Category,\n DetailedCategory,\n DetailedCategoryWithTransactions,\n DateRangeCategoryTotals,\n MonthlyCategoryTotals,\n} from '../types'\n\nimport { augmentCategories, getDetailedCategoryTransactions } from '../utils/CategoryUtil'\n\nexport class CategoryStore {\n globalStore: GlobalStore\n uiStore: UiStore\n api = new CategoryApi('/', '')\n\n categories: Category[] = []\n categoriesLoaded: boolean = false\n categoriesLoading: boolean = false\n dateRangeCategoryTotals: DateRangeCategoryTotals[] = []\n monthlyCategoryTotals: MonthlyCategoryTotals[] = []\n\n dateRangeTotalsLoaded = false\n dateRangeTotalsLoading = false\n monthlyTotalsLoaded = false\n monthlyTotalsLoading = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.uiStore = new UiStore()\n this.api = new CategoryApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n\n makeAutoObservable(this)\n }\n\n get detailedCategories(): DetailedCategory[] {\n if (!this.globalStore.isInitialized) return []\n return augmentCategories(\n this.categories,\n this.globalStore.copyStore.copy.categories,\n this.dateRangeCategoryTotals,\n this.monthlyCategoryTotals,\n )\n }\n\n get detailedCategoriesWithTransactions(): DetailedCategoryWithTransactions[] {\n return getDetailedCategoryTransactions(\n this.detailedCategories,\n this.globalStore.transactionStore.sortedTransactions,\n )\n }\n\n get incomeCategories(): DetailedCategory[] {\n return this.detailedCategories.filter((c) => c.is_income)\n }\n\n get spendCategories(): DetailedCategory[] {\n return this.detailedCategories.filter(\n (c) => !c.is_income && !c.isTransfer && c.guid !== CategoryGuids.INVESTMENTS,\n )\n }\n\n get transferCategories(): DetailedCategory[] {\n return this.detailedCategories.filter((c) => c.isTransfer)\n }\n\n setCategories = (categories: Category[]) => {\n this.categories = categories\n this.categoriesLoading = false\n this.categoriesLoaded = true\n }\n\n setMonthlyCategoryTotals = (totals: MonthlyCategoryTotals[]) => {\n this.monthlyCategoryTotals = totals\n this.monthlyTotalsLoading = false\n this.monthlyTotalsLoaded = true\n }\n\n setDateRangeCategoryTotals = (totals: DateRangeCategoryTotals[]) => {\n this.dateRangeCategoryTotals = totals\n this.dateRangeTotalsLoading = false\n this.dateRangeTotalsLoaded = true\n }\n\n get trendsCategories(): DetailedCategory[] {\n return this.detailedCategories\n .filter((c) => c.totalAmount !== 0)\n .filter((c) => c.guid !== CategoryGuids.INVESTMENTS && c.guid !== CategoryGuids.TRANSFER)\n }\n\n addCategory = async (name: string, parentGuid: string) => {\n const category = { name, parent_guid: parentGuid } as Category\n\n try {\n await this.api.addCategory(category)\n await this.loadCategories()\n } catch (error) {\n console.error('Error occurred while adding category:', error)\n this.globalStore.captureException(error, { store: 'CategoryStore' })\n }\n }\n\n loadCategories = async () => {\n if (this.categoriesLoading) return\n\n this.categoriesLoading = true\n try {\n const categories = await this.api.getCategories()\n this.setCategories(categories)\n } catch (error) {\n console.error('Error occurred while getting categories:', error)\n this.globalStore.captureException(error, { store: 'CategoryStore' })\n runInAction(() => {\n this.categoriesLoading = false\n })\n }\n }\n\n loadDateRangeCategoryTotals = async (accounts: Account[], startDate: Date, endDate: Date) => {\n if (this.dateRangeTotalsLoading) return\n\n this.dateRangeTotalsLoading = true\n try {\n const totals = await this.api.getDateRangeCategoryTotals(\n getUnixTime(startDate),\n getUnixTime(endDate),\n accounts,\n )\n this.setDateRangeCategoryTotals(totals)\n } catch (error) {\n console.error('Error occurred while getting date range category totals:', error)\n this.globalStore.captureException(error, { store: 'CategoryStore' })\n this.setDateRangeCategoryTotals([])\n }\n }\n\n loadMonthlyCategoryTotals = async (\n accounts: Account[] = this.globalStore.globalUiStore.selectedAccounts,\n startDate?: Date,\n endDate?: Date,\n ) => {\n if (this.monthlyTotalsLoading) return\n\n this.monthlyTotalsLoading = true\n const start = getUnixTime(startOfMonth(startDate ?? subMonths(new Date(), 11)))\n const end = getUnixTime(endOfMonth(endDate ?? new Date()))\n\n try {\n const totals = await this.api.getMonthlyCategoryTotals(start, end, accounts)\n this.setMonthlyCategoryTotals(totals)\n } catch (error) {\n console.error('Error occurred while getting monthly category totals:', error)\n this.globalStore.captureException(error, { store: 'CategoryStore' })\n // Setter clears monthlyTotalsLoading and marks loaded so the UI recovers\n // and retries aren't blocked. (MEW-3538)\n this.setMonthlyCategoryTotals([])\n }\n }\n\n reloadCategoryTotals = async (accounts: Account[], startDate?: Date, endDate?: Date) => {\n const start = startDate ?? subMonths(new Date(), 11)\n const end = endDate ?? endOfMonth(new Date())\n try {\n await Promise.all([\n this.loadMonthlyCategoryTotals(accounts, start, end),\n this.loadDateRangeCategoryTotals(accounts, start, end),\n ])\n } catch (error) {\n console.error('Error occurred while getting category totals:', error)\n this.globalStore.captureException(error, { store: 'CategoryStore' })\n }\n }\n\n removeCategory = async (guid: string) => {\n try {\n await this.api.removeCategory(guid)\n await this.loadCategories()\n } catch (error) {\n console.error('Error occurred while removing category:', error)\n this.globalStore.captureException(error, { store: 'CategoryStore' })\n }\n }\n\n updateCategory = async (category: Category) => {\n try {\n await this.api.updateCategory(category)\n await this.loadCategories()\n } catch (error) {\n console.error('Error occurred while updating category:', error)\n this.globalStore.captureException(error, { store: 'CategoryStore' })\n }\n }\n\n // TODO: Remove this after refactoring Trends components to use detailedCategories\n getCategoryName = (guid: string) => {\n const category = this.categories.find((c) => c.guid === guid)\n return category?.name ?? CategoryGuidToName[guid]\n }\n}\n\n// TODO: Move into CategoryStore\nclass UiStore {\n expandedGuid: string | null = null\n selectedGuid: string | null = null\n searchValue = ''\n showSelected = true\n shouldDisableDrawerScroll = false\n unselectable: string[] = []\n unselectableText = ''\n\n savedOnSelect: any // todo\n\n constructor() {\n makeAutoObservable(this)\n }\n\n setExpandedGuid = (guid: string | null) => (this.expandedGuid = guid)\n\n setSelectedGuid = (guid: string | null) => (this.selectedGuid = guid)\n\n setSearchValue = (value: string) => (this.searchValue = value)\n\n setShouldDisableDrawerScroll = (shouldDisable: boolean) =>\n (this.shouldDisableDrawerScroll = shouldDisable)\n\n setShowSelected = (showSelected: boolean) => (this.showSelected = showSelected)\n\n setUnselectable = (unselectable: string[]) => (this.unselectable = unselectable)\n\n setUnselectableText = (text: string) => (this.unselectableText = text)\n\n onSelect = (guid: string) => this.savedOnSelect(guid)\n\n setOnSelect = (callback: any) => (this.savedOnSelect = callback)\n}\n","import { makeAutoObservable } from 'mobx'\n\nimport { WidgetApi } from '../api'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class ConnectStore {\n globalStore: GlobalStore\n widgetApi: WidgetApi = new WidgetApi('/', '')\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.widgetApi = new WidgetApi(globalStore.endpoint, globalStore.sessionToken)\n\n makeAutoObservable(this)\n }\n\n loadWidget = async ({ widget = 'connect_widget', mode = 'light', ...rest }) => {\n return await this.widgetApi.requestWidgetUrl({\n widget_url: { widget_type: widget, color_scheme: mode, ...rest },\n })\n }\n}\n","import { makeAutoObservable } from 'mobx'\n\nimport { type Debt } from '../types'\nimport { loadDebts, type DebtChartData } from '../utils/DebtUtils'\nimport { DebtPriority } from '../constants/Debts'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class DebtsStore {\n globalStore: GlobalStore\n uiStore: UiStore\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.uiStore = new UiStore()\n makeAutoObservable(this)\n }\n\n get debts(): Debt[] {\n const { visibleDebtAccounts: debtAccounts } = this.globalStore.accountStore\n const { selectedAccountGuids } = this.globalStore.globalUiStore\n const { debtGoals } = this.globalStore.goalStore\n\n const filteredDebtAccounts = selectedAccountGuids.length\n ? debtAccounts.filter((acc) => selectedAccountGuids.includes(acc.guid))\n : debtAccounts\n\n return loadDebts(filteredDebtAccounts, debtGoals)\n }\n\n get totalMonthlyPayments(): number {\n const payments = this.debts.map((d) => Number(d.monthly_payment)).filter((p) => !isNaN(p))\n return payments.reduce((total, payment) => total + payment, 0)\n }\n}\n\nexport class UiStore {\n isLoading = false\n selectedDebtChartData: DebtChartData = {} as DebtChartData\n selectedDebtPriority: DebtPriority = DebtPriority.LOWEST_BALANCE\n\n constructor() {\n makeAutoObservable(this)\n }\n\n get showError() {\n const { interest_rate, monthly_payment } = this.selectedDebtChartData\n return interest_rate === undefined || monthly_payment === undefined\n }\n\n get showCompleted() {\n return this.selectedDebtChartData.is_paid_off\n }\n\n setIsLoading = (isLoading: boolean) => (this.isLoading = isLoading)\n\n setSelectedDebtChartData = (data: DebtChartData) => (this.selectedDebtChartData = data)\n\n setSelectedDebtPriority = (priority: DebtPriority) => (this.selectedDebtPriority = priority)\n}\n","import { DATE_FORMATS_INTL, formatDate } from '../constants'\nimport { type Transaction } from '../types'\nimport type { SpendingFeeTransaction, MonthlyHealthScoreItem } from '../../core/types/Finstrong'\n\nexport const augmentChartData = (averageHealthScores: MonthlyHealthScoreItem[]) => {\n return averageHealthScores\n .sort((a, b) => {\n // Sort by year first, then by month\n if (a.monthly_health_score_average.year !== b.monthly_health_score_average.year) {\n return a.monthly_health_score_average.year - b.monthly_health_score_average.year\n }\n return a.monthly_health_score_average.month - b.monthly_health_score_average.month\n })\n .map((item) => ({\n x: formatDate(\n new Date(0, item.monthly_health_score_average.month - 1, 1),\n DATE_FORMATS_INTL.MONTH_SHORT,\n ),\n y: Math.round(item.monthly_health_score_average.average_health_score),\n }))\n}\n\nexport const augmentSpendingFeeTransactions = (\n spendingFeeTransactions: SpendingFeeTransaction[],\n): Transaction[] => {\n const organizedSpendingFeeTransactions = spendingFeeTransactions\n .map(({ transaction }: SpendingFeeTransaction) => {\n return {\n ...transaction,\n }\n })\n .sort((a, b) => b.date - a.date)\n\n return organizedSpendingFeeTransactions\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { format } from 'date-fns/format'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { getUnixTime } from 'date-fns/getUnixTime'\nimport { subMonths } from 'date-fns/subMonths'\n\nimport { FinstrongApi } from '../api'\nimport type {\n MonthlySummaries,\n HealthScore,\n HealthScoreReport,\n MonthlyHealthScore,\n Transaction,\n} from '../types'\nimport type { FinstrongTransaction, PeerAverage } from '../types/Finstrong'\nimport { augmentChartData, augmentSpendingFeeTransactions } from '../utils/FinstrongUtils'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class FinstrongStore {\n api = new FinstrongApi('/', '')\n augmentedChartData: { x: string; y: number }[] = []\n averageHealthScores: MonthlyHealthScore[] = []\n monthlySummaries: MonthlySummaries[] = []\n incomeTransactions: FinstrongTransaction[] = []\n debtSpendTransactions: FinstrongTransaction[] = []\n spendingFeeTransactions: Transaction[] = []\n spendTransactions: FinstrongTransaction[] = []\n globalStore: GlobalStore\n healthScore: HealthScore = {} as HealthScore\n healthScoreChange?: number\n healthScoreChangeReports: HealthScoreReport[] = []\n peerScore: PeerAverage | null = null\n isSpendingInitialized: boolean = false\n isIncomeInitialized: boolean = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new FinstrongApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n makeAutoObservable(this)\n }\n\n setSpendingInitialized = (isSpendingInitialized: boolean) => {\n this.isSpendingInitialized = isSpendingInitialized\n }\n\n setIncomeInitialized = (isIncomeInitialized: boolean) => {\n this.isIncomeInitialized = isIncomeInitialized\n }\n\n calculateHealthScore = async (needHealthScoreChangeReport: boolean = true) => {\n try {\n const healthScore = await this.api.calculateHealthScore()\n\n let healthScoreChange = 0\n\n if (needHealthScoreChangeReport) {\n await this.loadHealthScoreChangeReports()\n }\n\n const currentScore = healthScore?.health_score || 0\n const oldScore = this.healthScoreChangeReports.at(-1)?.older_health_score || 0\n healthScoreChange = currentScore - oldScore\n\n runInAction(() => {\n this.healthScore = healthScore\n this.healthScoreChange = healthScoreChange\n })\n } catch (e) {\n console.error('Error calculating health score:', e)\n this.globalStore.captureException(e, { store: 'FinstrongStore' })\n }\n }\n\n loadAverageHealthScores = async () => {\n try {\n const averageHealthScores = await this.api.getAverageHealthScores()\n runInAction(() => {\n this.averageHealthScores = averageHealthScores\n })\n } catch (e) {\n console.error('Error loading average health scores:', e)\n this.globalStore.captureException(e, { store: 'FinstrongStore' })\n }\n }\n\n loadMonthlySummaries = async () => {\n try {\n const monthlySummaries = await this.api.getMonthlySummaries()\n runInAction(() => {\n this.monthlySummaries = monthlySummaries\n })\n } catch (e) {\n console.error('Error loading monthly summaries:', e)\n this.globalStore.captureException(e, { store: 'FinstrongStore' })\n }\n }\n\n loadDebtSpend = async () => {\n try {\n const debtSpend = await this.api.getDebtSpend()\n runInAction(() => {\n this.debtSpendTransactions = debtSpend\n })\n } catch (e) {\n console.error('Error loading debt spend:', e)\n this.globalStore.captureException(e, { store: 'FinstrongStore' })\n }\n }\n\n loadIncome = async () => {\n this.setIncomeInitialized(false)\n try {\n const income = await this.api.getIncome()\n runInAction(() => {\n this.incomeTransactions = income\n this.setIncomeInitialized(true)\n })\n } catch (e) {\n console.error('Error loading income:', e)\n this.globalStore.captureException(e, { store: 'FinstrongStore' })\n }\n }\n\n loadHealthScoreChangeReports = async () => {\n const startDate = getUnixTime(subMonths(new Date(), 2))\n const endDate = getUnixTime(new Date())\n\n try {\n const healthScoreChangeReports = await this.api.getHealthScoreChangeReports(\n startDate,\n endDate,\n )\n runInAction(() => {\n this.healthScoreChangeReports = healthScoreChangeReports\n })\n } catch (e) {\n console.error('Error loading health score change reports:', e)\n this.globalStore.captureException(e, { store: 'FinstrongStore' })\n }\n }\n\n loadPeerScore = async () => {\n const birthYear = format(fromUnixTime(this.globalStore.appDataStore.user.birthday!), 'yyyy')\n\n try {\n const peerScore = await this.api.getPeerScore(birthYear)\n runInAction(() => {\n this.peerScore = peerScore\n })\n } catch (e) {\n console.error('Error loading peer score:', e)\n this.globalStore.captureException(e, { store: 'FinstrongStore' })\n }\n }\n\n loadAugmentedChartData = async () => {\n try {\n const augmentedChartData = await this.api.getAverageHealthScores()\n\n runInAction(() => {\n this.augmentedChartData = augmentChartData(augmentedChartData)\n })\n } catch (error) {\n console.error('Error occurred while getting augmented chart data:', error)\n this.globalStore.captureException(error, { store: 'FinstrongStore' })\n }\n }\n\n getSpendingFeeTransactions = async () => {\n try {\n const spendingFeeTransaction = await this.api.getSpendingFeeTransactions()\n const organizedSpendingFeeTransactions =\n augmentSpendingFeeTransactions(spendingFeeTransaction)\n runInAction(() => {\n this.spendingFeeTransactions = organizedSpendingFeeTransactions\n })\n } catch (error) {\n console.error('Error occurred while getting spending fee transactions:', error)\n this.globalStore.captureException(error, { store: 'FinstrongStore' })\n }\n }\n\n loadSpendTransactions = async () => {\n this.setSpendingInitialized(false)\n try {\n const spendTransaction = await this.api.getStandardSpend()\n runInAction(() => {\n this.spendTransactions = [...spendTransaction]\n this.setSpendingInitialized(true)\n })\n } catch (e) {\n console.error('Error loading spend transactions:', e)\n this.globalStore.captureException(e, { store: 'FinstrongStore' })\n }\n }\n\n get spendAndDebtTransactions() {\n return [...this.spendTransactions, ...this.debtSpendTransactions]\n }\n\n get allTransactions() {\n return {\n income: this.incomeTransactions,\n debtSpend: this.debtSpendTransactions,\n spendingFee: this.spendingFeeTransactions,\n spend: this.spendTransactions,\n }\n }\n handleFinstrongWidgetPrimaryCtaClick = (value: string) => () => {\n // eslint-disable-next-line no-void\n void value\n }\n}\n","import type { AppConfig } from '../types'\n\nexport const DefaultAppConfig: AppConfig = {\n clientConfig: {},\n clientStyleProfile: {},\n config: {\n assets_prefix: '/assets',\n bundle: 'widgetLoader',\n client_guid: '',\n dashboard_accounts_index: 6,\n dashboard_accounts_location: 0,\n dashboard_activity_index: 2,\n dashboard_activity_location: 0,\n dashboard_budgets_index: 5,\n dashboard_budgets_location: 1,\n dashboard_cash_flow_index: 0,\n dashboard_cash_flow_location: 0,\n dashboard_connect_index: 7,\n dashboard_connect_location: 1,\n dashboard_insights_index: 3,\n dashboard_insights_location: 1,\n dashboard_spending_index: 1,\n dashboard_spending_location: 1,\n dashboard_survey_index: 8,\n dashboard_survey_location: 1,\n dashboard_trends_index: 4,\n dashboard_trends_location: 0,\n display_account_number_in_accounts: true,\n display_add_manual_transaction_in_transactions: true,\n display_available_balance_in_accounts: true,\n display_email_edit_field_in_settings: true,\n display_mobile_devices_in_settings: true,\n display_notification_settings_in_settings: true,\n display_only_external_accounts_in_accounts: false,\n display_password_options_in_settings: true,\n display_sms_edit_field_in_settings: true,\n display_terms_and_conditions: true,\n display_user_profile_in_settings: true,\n display_user_transaction_rules_in_settings: true,\n display_widget_headings: true,\n enable_add_account_in_zero_state: true,\n enable_aggregation_prompts: true,\n enable_external_accounts_in_goals_widget: true,\n enable_funds_transfers_in_goals_widget: false,\n enable_manual_accounts: true,\n enable_mark_account_closed_for_held_accounts: true,\n enable_mark_account_duplicate_for_held_accounts: true,\n enable_renaming_home_accounts: true,\n enable_support_requests: false,\n language: 'en-US',\n product_name: 'Money Dashboard',\n session_token: '',\n show_account_nicknames_in_master: false,\n show_accounts_widget_in_master: true,\n show_budgets_widget_in_master: true,\n show_carousel_card_border_in_pulse_micro_widget: false,\n show_cash_flow_widget_in_master: true,\n show_connections_widget_in_master: true,\n show_debts_widget_in_master: true,\n show_finstrong_widget_in_master: true,\n show_full_experience_link_in_pulse_micro_widget: false,\n show_full_experience_link_in_pulse_mini_widget: false,\n show_goals_widget_in_master: true,\n show_help_widget_in_master: true,\n show_horizontal_padding_in_pulse_micro_widget: true,\n show_icon_in_pulse_micro_widget: true,\n show_insights_widget_in_master: true,\n show_investments_widget_in_master: false,\n show_mx_branding: true,\n show_navigation_controls_in_pulse_micro_widget: true,\n show_net_worth_widget_in_master: true,\n show_notifications_widget_in_master: true,\n show_recurring_transactions_widget_in_master: true,\n show_settings_widget_in_master: true,\n show_spending_plan_widget_in_master: false,\n show_spending_widget_in_master: true,\n show_transactions_widget_in_master: true,\n show_trends_widget_in_master: true,\n type: 'money-dashboard',\n websocket: {\n hmac: '',\n token: '',\n url: '',\n },\n widgets_display_name: 'Money Dashboard ',\n },\n honeyBadgerPublicKey: '',\n options: {\n assets_prefix: '/assets',\n brokaw_auth: {\n token: '',\n hmac: '',\n url: '',\n },\n brokaw_websocket_url: '',\n bundle: 'widgetLoader',\n custom_copy_namespace: '',\n language: 'en-US',\n product_name: 'Master Widget',\n session_token: '',\n subtype: 'master',\n type: 'money_dashboard',\n },\n postHogPublicKey: 'phc_1fVYJICC69TpW4wagp9o2XqQ8E7X98cAmcR5psSpfkE',\n userFeatures: [],\n}\n","import { autorun, makeAutoObservable } from 'mobx'\n\nimport { DefaultAppConfig } from '../constants/DefaultConfig'\n\nimport {\n AccountStore,\n AnalyticsStore,\n AppDataStore,\n BeatStore,\n BudgetsStore,\n CashflowStore,\n CategoryStore,\n ConnectStore,\n DebtsStore,\n FinstrongStore,\n GlobalCopyStore,\n GlobalUiStore,\n GoalStore,\n HelpStore,\n HoldingStore,\n MerchantStore,\n NetWorthStore,\n NotificationStore,\n RecurringTransactionsStore,\n SettingsStore,\n TransactionStore,\n TrendsStore,\n UserStore,\n} from '../stores'\n\nimport type {\n Account,\n Category,\n Institution,\n Member,\n AppConfig,\n AppData,\n Beat,\n GlobalCaptureException,\n GlobalErrorHandler,\n MerchantBudget,\n Tag,\n Tagging,\n Transaction,\n TransactionRule,\n UserFeature,\n} from '../types'\n\ninterface LoadDataProps {\n accounts?: Account[]\n appData?: AppData\n associatedBeats?: Beat[]\n categories?: Category[]\n institutions?: Institution[]\n members?: Member[]\n merchantBudgets?: MerchantBudget[]\n taggings?: Tagging[]\n tags?: Tag[]\n transactionRules?: TransactionRule[]\n transactions?: Transaction[]\n userFeatures?: UserFeature[]\n}\n\ntype OnStoreUpdate = (update: ObservedUpdate) => void\ntype ObservedUpdate = {\n transactions: Transaction[]\n}\nexport class GlobalStore {\n // Global properties\n appConfig: AppConfig = DefaultAppConfig\n endpoint: string = '/'\n sessionToken: string = ''\n onCaptureException?: GlobalCaptureException\n onError?: GlobalErrorHandler\n onStoreUpdate?: OnStoreUpdate\n\n // Data Stores\n accountStore: AccountStore\n appDataStore: AppDataStore\n analyticsStore: AnalyticsStore\n beatStore: BeatStore\n budgetsStore: BudgetsStore\n cashflowStore: CashflowStore\n categoryStore: CategoryStore\n connectStore: ConnectStore\n copyStore: GlobalCopyStore\n debtsStore: DebtsStore\n finstrongStore: FinstrongStore\n goalStore: GoalStore\n helpStore: HelpStore\n holdingStore: HoldingStore\n merchantStore: MerchantStore\n netWorthStore: NetWorthStore\n notificationStore: NotificationStore\n recurringTransactionsStore: RecurringTransactionsStore\n settingsStore: SettingsStore\n transactionStore: TransactionStore\n trendsStore: TrendsStore\n userStore: UserStore\n\n // UI Stores\n globalUiStore: GlobalUiStore\n\n constructor(\n appConfig: AppConfig = DefaultAppConfig,\n endpoint: string = '/',\n onError?: GlobalErrorHandler,\n onStoreUpdate?: OnStoreUpdate,\n onCaptureException?: GlobalCaptureException,\n ) {\n this.appConfig = appConfig\n this.endpoint = endpoint\n this.sessionToken = appConfig.options.session_token ?? ''\n this.onCaptureException = onCaptureException\n this.onError = onError\n this.onStoreUpdate = onStoreUpdate\n\n this.accountStore = new AccountStore(this)\n this.appDataStore = new AppDataStore(this)\n this.analyticsStore = new AnalyticsStore(this)\n this.beatStore = new BeatStore(this)\n this.budgetsStore = new BudgetsStore(this)\n this.cashflowStore = new CashflowStore(this)\n this.categoryStore = new CategoryStore(this)\n this.connectStore = new ConnectStore(this)\n this.copyStore = new GlobalCopyStore(this)\n this.debtsStore = new DebtsStore(this)\n this.finstrongStore = new FinstrongStore(this)\n this.goalStore = new GoalStore(this)\n this.helpStore = new HelpStore(this)\n this.holdingStore = new HoldingStore(this)\n this.merchantStore = new MerchantStore(this)\n this.netWorthStore = new NetWorthStore(this)\n this.notificationStore = new NotificationStore(this)\n this.recurringTransactionsStore = new RecurringTransactionsStore(this)\n this.settingsStore = new SettingsStore(this)\n this.transactionStore = new TransactionStore(this)\n this.trendsStore = new TrendsStore(this)\n this.userStore = new UserStore(this)\n\n this.globalUiStore = new GlobalUiStore(this)\n\n makeAutoObservable(this)\n\n // detects a change based on an observed value\n autorun(() => {\n // destructure or assign new variables to observe changes to them\n // in this case we are observing changes to `transactions`\n const { transactions } = this.transactionStore\n this.emitUpdate({\n transactions,\n })\n })\n }\n\n get isInitialized() {\n return this.globalUiStore.isInitialized\n }\n\n captureException = (error: unknown, context?: Record<string, string>) => {\n this.onCaptureException?.(error, context)\n }\n\n // emits change triggered in the autorun\n emitUpdate = (change: ObservedUpdate) => {\n this.onStoreUpdate?.(change)\n }\n\n loadConfigData = async () => {\n await Promise.all([\n // Load copy, config and user data\n this.copyStore.loadCopy(),\n this.appDataStore.loadAppData(),\n this.accountStore.refreshMembers(),\n this.userStore.loadUserFeatures(),\n ])\n }\n\n loadData = async ({\n accounts,\n appData,\n associatedBeats,\n categories,\n institutions,\n transactionRules,\n transactions,\n userFeatures,\n merchantBudgets,\n }: LoadDataProps = {}) => {\n if (!appData || !userFeatures) {\n await this.loadConfigData()\n }\n\n // Keep for backwards compatibility for Insights\n if (appData) {\n this.appDataStore.setAppData(appData)\n }\n\n if (userFeatures) {\n this.userStore.setUserFeatures(userFeatures)\n }\n\n if (accounts) {\n await this.accountStore.loadMembers()\n if (institutions) {\n this.accountStore.setInstitutions(institutions)\n }\n this.accountStore.setAccounts(accounts)\n }\n\n if (associatedBeats) {\n this.transactionStore.setAssociatedBeats(associatedBeats)\n }\n\n if (categories) {\n this.categoryStore.setCategories(categories)\n }\n\n if (transactions) {\n this.transactionStore.setTransactions(transactions)\n }\n\n if (transactionRules) {\n this.transactionStore.setTransactionRules(transactionRules)\n }\n\n if (merchantBudgets) {\n this.budgetsStore.setMerchantBudgets(merchantBudgets)\n }\n }\n}\n","import { makeAutoObservable, reaction } from 'mobx'\n\nimport { addMonths } from 'date-fns/addMonths'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { getMonth } from 'date-fns/getMonth'\nimport { startOfMonth } from 'date-fns/startOfMonth'\n\nimport { Account } from '../types'\n\nimport type { GlobalStore } from './GlobalStore'\n\nexport class GlobalUiStore {\n globalStore: GlobalStore\n\n accountFilterMap: Map<string, boolean> = new Map()\n\n displayedDate = new Date()\n displayedDateRange = {\n start: startOfMonth(this.displayedDate),\n end: endOfMonth(this.displayedDate),\n }\n\n constructor(globalStore: GlobalStore) {\n makeAutoObservable(this)\n this.globalStore = globalStore\n\n reaction(\n () => this.globalStore.accountStore.visibleAccounts,\n (visibleAccounts) => {\n this.populateAccountFilterMap(visibleAccounts)\n },\n )\n }\n\n get allSelectedAccounts() {\n return this.globalStore.accountStore.detailedAccounts.filter(\n (account: Account) => !account.is_excluded_from_accounts,\n )\n }\n\n get selectedAccounts() {\n return this.globalStore.accountStore.visibleAccounts.filter(\n (account: Account) => !account.is_excluded_from_accounts,\n )\n }\n\n get selectedAccountGuids() {\n return this.selectedAccounts.map((account) => account.guid)\n }\n\n get isCopyLoaded() {\n return this.globalStore.copyStore.isInitialized\n }\n\n get isConfigLoaded() {\n return this.globalStore.appDataStore.isAppDataLoaded\n }\n\n get areUserFeaturesLoaded() {\n return this.globalStore.userStore.userFeaturesLoaded\n }\n\n get isInitialized() {\n return this.isCopyLoaded && this.isConfigLoaded && this.areUserFeaturesLoaded\n }\n\n populateAccountFilterMap = (accounts: Account[]) => {\n if (accounts) {\n accounts.forEach((account) => {\n this.accountFilterMap.set(account.guid, !account.is_excluded_from_accounts)\n })\n }\n }\n\n resetAccountFilterMap = () => {\n this.accountFilterMap.clear()\n this.populateAccountFilterMap(this.globalStore.accountStore.visibleAccounts)\n }\n\n updateAccountFilterMap = (guid: string, isIncluded: boolean) => {\n this.accountFilterMap.set(guid, isIncluded)\n }\n\n setDisplayedDate = (startDate: Date, endDate: Date) => {\n this.displayedDate = endDate\n this.displayedDateRange = {\n start: startDate,\n end: endDate,\n }\n }\n\n get shouldDisableNextDate() {\n const selectedMonth = getMonth(this.displayedDate)\n const nextMonth = getMonth(addMonths(new Date(), 1))\n\n return selectedMonth === nextMonth\n }\n\n get shouldDisablePrevDate() {\n const selectedMonth = getMonth(this.displayedDate)\n const currentMonth = getMonth(new Date())\n\n return selectedMonth === currentMonth\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { GlobalCopyApi } from '../api'\nimport { GlobalCopy } from '../types'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class GlobalCopyStore {\n globalStore: GlobalStore\n api: GlobalCopyApi = new GlobalCopyApi('/', '')\n\n copy: GlobalCopy = {} as GlobalCopy\n featureNamespace = 'experiences'\n\n isInitialized = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new GlobalCopyApi(\n globalStore.endpoint,\n globalStore.sessionToken,\n globalStore.onError,\n )\n\n makeAutoObservable(this)\n }\n\n loadCopy = async () => {\n await this.getCopy(this.featureNamespace)\n\n runInAction(() => {\n this.isInitialized = true\n })\n }\n\n getCopy = async (namespace: string, translationKey: string = '') => {\n try {\n const newCopy = await this.api.getGlobalCopy(namespace, translationKey)\n\n runInAction(() => {\n this.copy = newCopy[namespace]\n })\n } catch (error) {\n console.error('Error occurred while fetching copy:', error)\n this.globalStore.captureException(error, { store: 'GlobalCopyStore' })\n }\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { GoalApi } from '../api'\n\nimport {\n type Goal,\n type MonthlyCashFlowProfile,\n type RetirementGoalAccount,\n TrackType,\n} from '../types'\nimport { getProjectedRetirementDate } from '../utils/GoalsUtil'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class GoalStore {\n globalStore: GlobalStore\n api = new GoalApi('/', '')\n\n goals: Goal[] = []\n goalsLoaded: boolean = false\n retirementGoals: Goal[] = []\n retirementGoalsLoaded: boolean = false\n retirementGoalAccounts: RetirementGoalAccount[] = []\n retirementGoalAccountsLoaded: boolean = false\n monthlyCashFlowProfile: MonthlyCashFlowProfile | undefined = undefined\n monthlyCashFlowProfileLoaded: boolean = false\n\n newRetirementGoalAccounts: RetirementGoalAccount[] = []\n\n alert: string = ''\n selectedGoal: Goal | undefined = undefined\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new GoalApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n\n makeAutoObservable(this)\n }\n\n get allGoals(): Goal[] {\n if (!this.isAllGoalDataLoaded) return []\n\n const goalsCopy = this.globalStore.copyStore.copy.goals\n const userBirthday = this.globalStore.userStore.user.birthday\n return [\n ...this.goals,\n ...this.retirementGoals.map((goal: Goal) => ({\n ...goal,\n amount: goal.target_amount,\n name: goalsCopy.retirement,\n track_type: TrackType.RETIREMENT_TRACK,\n projected_to_complete_at:\n goal.retirement_age && userBirthday\n ? getProjectedRetirementDate(goal.retirement_age, userBirthday)\n : undefined,\n })),\n ] as Goal[]\n }\n\n get orderedGoals(): Goal[] {\n return this.allGoals.slice().sort((a, b) => a.position - b.position)\n }\n\n get debtGoals() {\n return this.orderedGoals.filter((goal) => goal.track_type === TrackType.DEBT_TRACK)\n }\n\n get retirmentGoals() {\n return this.orderedGoals.filter((goal) => goal.track_type === TrackType.RETIREMENT_TRACK)\n }\n\n get savingGoals() {\n return this.orderedGoals.filter((goal) => goal.track_type === TrackType.SAVINGS_TRACK)\n }\n\n get ongoingGoalsForMicroWidget() {\n const ongoingGoals = this.allGoals.filter(\n (goal) =>\n !goal.is_complete &&\n goal.track_type !== TrackType.EMERGENCY_FUND_TRACK &&\n goal.track_type !== null,\n )\n const priorityOrder = [\n TrackType.SAVINGS_TRACK,\n TrackType.DEBT_TRACK,\n TrackType.RETIREMENT_TRACK,\n ]\n return ongoingGoals\n .sort((a, b) => {\n const aIndex = a.track_type ? priorityOrder.indexOf(a.track_type) : -1\n const bIndex = b.track_type ? priorityOrder.indexOf(b.track_type) : -1\n return aIndex - bIndex\n })\n .slice(0, 3)\n }\n\n get isAllGoalDataLoaded() {\n return (\n this.goalsLoaded &&\n this.retirementGoalsLoaded &&\n this.retirementGoalAccountsLoaded &&\n this.monthlyCashFlowProfileLoaded\n )\n }\n\n setGoals = (goals: Goal[]) => {\n this.goals = goals\n this.goalsLoaded = true\n }\n\n setRetirementGoals = (goals: Goal[]) => {\n this.retirementGoals = goals\n this.retirementGoalsLoaded = true\n }\n\n setRetirementGoalAccounts = (accounts: RetirementGoalAccount[]) => {\n this.retirementGoalAccounts = accounts\n this.retirementGoalAccountsLoaded = true\n }\n\n setMonthlyCashFlowProfile = (profile: MonthlyCashFlowProfile) => {\n this.monthlyCashFlowProfile = profile\n this.monthlyCashFlowProfileLoaded = true\n }\n\n loadGoalData = async () => {\n await Promise.all([\n this.loadGoals(),\n this.loadRetirementGoals(),\n this.loadRetirementGoalAccounts(),\n this.loadMonthlyCashFlowProfile(),\n ])\n }\n\n loadGoals = async () => {\n try {\n const goals = await this.api.getGoals()\n this.setGoals(goals)\n } catch (error) {\n console.error('Error occurred while getting goals:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n loadRetirementGoals = async () => {\n try {\n const retirementGoals = await this.api.getRetirementGoals()\n this.setRetirementGoals(retirementGoals)\n } catch (error) {\n console.error('Error occurred while loading retirement goals:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n loadRetirementGoalAccounts = async () => {\n try {\n const retirementGoalAccounts = await this.api.getRetirementGoalAccounts()\n this.setRetirementGoalAccounts(retirementGoalAccounts)\n } catch (error) {\n console.error('Error occurred while loading retirement goal accounts:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n loadMonthlyCashFlowProfile = async () => {\n try {\n const monthlyCashFlowProfile = await this.api.getMonthlyCashFlowProfile()\n this.setMonthlyCashFlowProfile(monthlyCashFlowProfile)\n } catch (error) {\n console.error('Error occurred while loading monthly cash flow profile:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n addGoal = async (goal: Goal) => {\n try {\n const newGoal = await this.api.addGoal(goal)\n this.setGoals([...this.goals, newGoal])\n } catch (error) {\n console.error('Error occurred while adding goal:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n addRetirementGoal = async (goal: Goal) => {\n const goalsCopy = this.globalStore.copyStore.copy.goals\n try {\n const newGoal: Goal = await this.api.addRetirementGoal(goal)\n const newAccounts = [] as RetirementGoalAccount[]\n const userBirthday = this.globalStore.userStore.user.birthday\n for (const account of this.newRetirementGoalAccounts) {\n const newAccount = await this.api.addRetirementGoalAccount({\n ...account,\n retirement_goal_guid: newGoal.guid,\n })\n newAccounts.push(newAccount)\n }\n this.setNewRetirementGoalAccounts([])\n\n this.retirementGoals = [\n ...this.retirementGoals,\n {\n ...newGoal,\n amount: newGoal.target_amount,\n name: goalsCopy.retirement,\n track_type: TrackType.RETIREMENT_TRACK,\n projected_to_complete_at:\n newGoal.retirement_age && userBirthday\n ? getProjectedRetirementDate(newGoal.retirement_age, userBirthday)\n : undefined,\n } as Goal,\n ]\n this.setRetirementGoalAccounts([...this.retirementGoalAccounts, ...newAccounts])\n } catch (error) {\n console.error('Error occurred while adding retirement goal:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n addRetirementGoalAccount = async (account: RetirementGoalAccount) => {\n try {\n const newAccount = await this.api.addRetirementGoalAccount(account)\n\n runInAction(() => {\n this.retirementGoalAccounts = [...this.retirementGoalAccounts, newAccount]\n })\n } catch (error) {\n console.error('Error occurred while adding retirement goal account:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n deleteGoal = async (guid: string) => {\n try {\n await this.api.removeGoal(guid)\n\n const index = this.goals.findIndex((g) => g.guid === guid)\n if (index >= 0) {\n this.goals.splice(index, 1)\n }\n } catch (error) {\n console.error('Error occurred while deleting goal:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n deleteRetirementGoal = async (goal: Goal) => {\n try {\n const accounts = this.retirementGoalAccounts.filter(\n (g) => g.retirement_goal_guid === goal.guid,\n )\n for (const account of accounts) {\n await this.deleteRetirementGoalAccount(account.guid)\n }\n await this.api.removeRetirementGoal(goal.guid)\n\n const index = this.retirementGoals.findIndex((g) => g.guid === goal.guid)\n if (index >= 0) {\n this.retirementGoals.splice(index, 1)\n }\n } catch (error) {\n console.error('Error deleting retirement goal:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n deleteRetirementGoalAccount = async (guid: string) => {\n try {\n await this.api.removeRetirementGoalAccount(guid)\n\n const index = this.retirementGoalAccounts.findIndex((rga) => rga.guid === guid)\n if (index >= 0) {\n this.retirementGoalAccounts.splice(index, 1)\n }\n } catch (error) {\n console.error('Error deleting retirement goal account:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n reorderGoals = async (goals: Goal[]) => {\n try {\n const reordered = (await this.api.reorderGoals(goals)) as Goal[]\n\n runInAction(() => {\n for (const goal of reordered) {\n const index = this.goals.findIndex((g) => g.guid === goal.guid)\n if (index >= 0) {\n this.goals[index].position = goal.position\n }\n }\n })\n } catch (error) {\n console.error('Error reordering goals:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n setAlert = (alert: string) => (this.alert = alert)\n\n setNewRetirementGoalAccounts = (accounts: RetirementGoalAccount[]) => {\n this.newRetirementGoalAccounts = accounts\n }\n\n setSelectedGoal = (goal: Goal | undefined) => (this.selectedGoal = goal)\n\n updateGoal = async (goal: Goal) => {\n try {\n const updatedGoal = await this.api.updateGoal(goal)\n\n runInAction(() => {\n const index = this.goals.findIndex((g) => g.guid === goal.guid)\n if (index >= 0) {\n this.goals[index] = updatedGoal\n }\n if (this.selectedGoal?.guid === goal.guid) {\n this.setSelectedGoal(updatedGoal)\n }\n })\n } catch (error) {\n console.error('Error occurred while updating goal:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n updateRetirementGoal = async (goal: Goal) => {\n try {\n const updatedRetirementGoal = await this.api.updateRetirementGoal({\n ...goal,\n target_amount: goal.amount,\n })\n\n runInAction(() => {\n const index = this.retirementGoals.findIndex((g) => g.guid === goal.guid)\n if (index >= 0) {\n this.retirementGoals[index] = updatedRetirementGoal\n }\n\n if (this.selectedGoal?.guid === goal.guid) {\n this.setSelectedGoal(this.allGoals.find((g) => g.guid === goal.guid))\n }\n })\n } catch (error) {\n console.error('Error occurred while updating retirement goal:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n\n updateMonthlyCashFlowProfile = async (profile: MonthlyCashFlowProfile) => {\n try {\n const updatedProfile = await this.api.updateMonthlyCashFlowProfile(profile)\n this.setMonthlyCashFlowProfile(updatedProfile)\n } catch (error) {\n console.error('Error occurred while updating monthly cash flow profile:', error)\n this.globalStore.captureException(error, { store: 'GoalStore' })\n }\n }\n}\n","import type { HelpCategory, Profile } from '../types/Help'\nimport { CategoryList } from '../types/localization/HelpCopy'\nimport { HELP_CATEGORIES } from '../constants/Help'\n\nconst isCategoryAccessibleByProfile = (category: HelpCategory, profile: Profile): boolean => {\n if (category.guid === 'general' || category.guid === 'insights') return true\n if (!category.flags) return false\n return category.flags.every((flag) => profile[flag as keyof Profile])\n}\n\nexport const HelpUtil = (profile: Profile, categoryList: CategoryList): HelpCategory[] => {\n const accessibleCategories: HelpCategory[] = []\n\n for (const el of HELP_CATEGORIES) {\n const category = categoryList[el.guid as keyof CategoryList]\n if (!category) continue\n\n const updatedCategory = {\n ...el,\n title: category.label,\n topics: el.topics.map(({ topicKey }, index) => ({\n topicKey,\n label: category.topics[index],\n })),\n }\n if (isCategoryAccessibleByProfile(updatedCategory, profile))\n accessibleCategories.push(updatedCategory)\n }\n\n return accessibleCategories\n}\n","import { makeAutoObservable } from 'mobx'\n\nimport { HelpApi } from '../api'\nimport type { Config, HelpCopy, HelpAlertProps, Ticket } from '../types'\nimport { HelpUtil } from '../utils/HelpUtil'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class HelpStore {\n alert: HelpAlertProps = { message: '', severity: undefined }\n api = new HelpApi('/', '')\n appConfig: Config | undefined\n globalStore: GlobalStore\n isLoading: boolean = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new HelpApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n\n makeAutoObservable(this)\n }\n\n createSupportTicket = async (ticket: Ticket) => {\n try {\n this.isLoading = true\n await this.api.createSupportTicket(ticket)\n this.setAlert(this.copy.request_support_submit_success_message, 'success')\n } catch (error) {\n console.error('Error occurred while submitting support ticket:', error)\n this.globalStore.captureException(error, { store: 'HelpStore' })\n this.setAlert(this.copy.request_support_submit_failure_message, 'error')\n } finally {\n this.isLoading = false\n }\n }\n\n setAlert = (message: string, severity: HelpAlertProps['severity'] = undefined) =>\n (this.alert = { message, severity })\n\n get copy(): HelpCopy {\n return this.globalStore.copyStore.copy.help\n }\n\n get helpCategories() {\n const { client_communication_profile, client_profile } = this.globalStore.appDataStore.appData\n\n const {\n help: { category_list },\n } = this.globalStore.copyStore.copy\n\n return HelpUtil(\n {\n ...client_communication_profile,\n ...client_profile,\n ...this.globalStore.appConfig.config,\n },\n category_list,\n )\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { HoldingApi } from '../api'\nimport { AnalysisType } from '../constants/Investments'\nimport { type Holding } from '../types'\nimport {\n analysisChartData,\n analysisDetailsData,\n mapDataToPercentageGrid,\n} from '../utils/InvestmentUtil'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class HoldingStore {\n analysisType: AnalysisType = AnalysisType.Stocks\n api = new HoldingApi('/', '')\n holdings: Holding[] = []\n holdingsLoaded = false\n globalStore: GlobalStore\n showConnectionsWidget = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new HoldingApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n\n makeAutoObservable(this)\n }\n\n get analysisChartData() {\n return mapDataToPercentageGrid(analysisChartData(this.visibleHoldings), this.analysisType)\n }\n\n get analysisDetails() {\n return analysisDetailsData(this.visibleHoldings)[this.analysisType] || {}\n }\n\n get visibleHoldings() {\n return this.holdings.filter((holding) =>\n this.globalStore.globalUiStore.selectedAccountGuids.includes(holding.account_guid),\n )\n }\n\n setHoldings = (holdings: Holding[]) => {\n this.holdings = holdings\n this.holdingsLoaded = true\n }\n\n setShowConnectionsWidget = (value: boolean) => {\n this.showConnectionsWidget = value\n }\n\n loadHoldings = async () => {\n try {\n const holdings = await this.api.getHoldings()\n this.setHoldings(holdings)\n } catch (error) {\n console.error('Error occurred while getting holdings:', error)\n this.globalStore.captureException(error, { store: 'HoldingStore' })\n }\n }\n\n setAnalysisType = (analysisType: AnalysisType) => {\n this.analysisType = analysisType\n }\n\n updateHoldings = async (holding: Holding) => {\n this.holdingsLoaded = false\n try {\n const updatedHolding = await this.api.updateHoldings(holding)\n const updatedIndex = this.holdings.findIndex(({ guid }) => guid === holding.guid)\n\n if (updatedIndex >= 0) {\n const holdings = [...this.holdings]\n holdings[updatedIndex] = updatedHolding\n\n runInAction(() => {\n this.holdings = holdings\n this.holdingsLoaded = true\n })\n }\n } catch (error) {\n console.error('Error occurred while updating holding:', error)\n this.globalStore.captureException(error, { store: 'HoldingStore' })\n }\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { MerchantApi } from '../api'\nimport type { Merchant } from '../types'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport interface CopyObject {\n [key: string]: string\n}\n\nexport class MerchantStore {\n globalStore: GlobalStore\n api: MerchantApi = new MerchantApi('/', '')\n\n merchant: Merchant | null = null\n merchants: Merchant[] = []\n isLoading = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new MerchantApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n\n makeAutoObservable(this)\n }\n\n loadMerchants = async (searchValue = '') => {\n this.isLoading = true\n\n const merchants = await this.api.getMerchants([searchValue])\n\n runInAction(() => {\n this.merchants = merchants\n this.isLoading = false\n })\n }\n\n loadMerchantByGuid = async (guid: string) => {\n const merchant = await this.api.getMerchantByGuid(guid)\n\n runInAction(() => (this.merchant = merchant))\n }\n}\n","import { makeAutoObservable } from 'mobx'\n\nimport { AccountApi } from '../api'\nimport type {\n Account,\n AssetsLiabilities,\n DetailedAccount,\n GainsLosses,\n MonthlyAccountBalance,\n NetWorth,\n NetWorthData,\n} from '../types'\nimport {\n filterAccounts,\n flattenBalances,\n buildAssetsLiabilities,\n buildChartData,\n buildGainsLosses,\n getLatestNetWorthData,\n sortByYearMonthAscending,\n} from '../utils/NetWorthUtils'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class NetWorthStore {\n globalStore: GlobalStore\n accountsApi: AccountApi = new AccountApi('/', '')\n\n monthlyAccountBalances: MonthlyAccountBalance[] = []\n monthlyAccountBalancesLoaded: boolean = false\n hoveredIndex: number = -1\n selectedIndex: number = -1\n timeframe: number = 6 // default timeframe is 6 months\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.accountsApi = new AccountApi(\n globalStore.endpoint,\n globalStore.sessionToken,\n globalStore.onError,\n )\n makeAutoObservable(this)\n }\n\n get isNetWorthDataLoaded(): boolean {\n return this.globalStore.accountStore.isAccountDataLoaded && this.monthlyAccountBalancesLoaded\n }\n\n get netWorthAccounts(): DetailedAccount[] {\n return filterAccounts(\n this.globalStore.globalUiStore.selectedAccounts,\n this.globalStore.accountStore.members,\n )\n }\n\n get netWorthData(): NetWorthData {\n return {\n accounts: this.netWorthAccounts,\n monthlyAccountBalances: this.monthlyAccountBalances,\n }\n }\n\n get netWorthChartData(): NetWorth[] {\n return buildChartData(this.netWorthAccounts, this.monthlyAccountBalances, this.timeframe)\n }\n\n get selectedData(): NetWorth | undefined {\n if (!this.netWorthChartData || this.netWorthChartData.length === 0) return undefined\n return this.selectedIndex === -1\n ? getLatestNetWorthData(this.netWorthChartData)\n : this.netWorthChartData[this.selectedIndex]\n }\n\n get hoveredData(): NetWorth | undefined {\n return this.hoveredIndex >= 0 ? this.netWorthChartData[this.hoveredIndex] : undefined\n }\n\n get gainsLosses(): GainsLosses {\n return buildGainsLosses(this.selectedData)\n }\n\n get assetsLiabilities(): AssetsLiabilities {\n const { assets, liabilities, totalAssets, totalLiabilities } = buildAssetsLiabilities(\n this.netWorthData.accounts,\n )\n return {\n netWorth: getLatestNetWorthData(this.netWorthChartData),\n assets,\n liabilities,\n totalAssets,\n totalLiabilities,\n }\n }\n\n loadNetWorthData = async () => {\n if (!this.globalStore.accountStore.isAccountDataLoaded) {\n await this.globalStore.accountStore.loadAccountData()\n }\n\n const accountBalances = await Promise.all(\n this.netWorthAccounts.map((account: Account) => this.getMonthlyAccountBalances(account.guid)),\n )\n\n const monthlyAccountBalances = accountBalances\n .reduce(flattenBalances, [])\n .sort(sortByYearMonthAscending)\n\n this.setMonthlyAccountBalances(monthlyAccountBalances)\n }\n\n getMonthlyAccountBalances = async (accountGuid: string) => {\n try {\n const balances = await this.accountsApi.getMonthlyAccountBalances(accountGuid)\n return balances as MonthlyAccountBalance[]\n } catch (error) {\n console.error('Error occurred while fetching monthly account balances:', error)\n this.globalStore.captureException(error, { store: 'NetWorthStore' })\n return []\n }\n }\n\n setHoveredIndex = (index: number) => (this.hoveredIndex = index)\n\n setMonthlyAccountBalances = (balances: MonthlyAccountBalance[]) => {\n this.monthlyAccountBalances = balances\n this.monthlyAccountBalancesLoaded = true\n }\n\n setSelectedIndex = (index: number) => (this.selectedIndex = index)\n setTimeframe = (months: number) => (this.timeframe = months)\n}\n","import { makeAutoObservable, observable, runInAction } from 'mobx'\n\nimport { NotificationApi } from '../api'\nimport { type Notification } from '../types'\nimport { filterRecentNotifications } from '../utils/NotificationUtils'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class NotificationStore {\n globalStore: GlobalStore\n api = new NotificationApi('/', '')\n\n isLoading: boolean = true\n notifications: Notification[] = []\n notificationsLoaded: boolean = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new NotificationApi(\n globalStore.endpoint,\n globalStore.sessionToken,\n globalStore.onError,\n )\n\n makeAutoObservable(this, { notifications: observable })\n }\n\n // Used in Money Dashboard\n get newNotifications(): Notification[] {\n return this.recentNotifications.filter((n) => !n.has_been_viewed)\n }\n\n get recentNotifications(): Notification[] {\n return filterRecentNotifications(this.notifications)\n }\n\n setNotifications = (notifications: Notification[]) => {\n this.notifications = notifications\n this.notificationsLoaded = true\n }\n\n loadNotifications = async () => {\n this.isLoading = true\n try {\n const notifications = await this.api.getNotifications()\n this.setNotifications(notifications)\n } catch (error) {\n console.error('Error occurred while loading notifications:', error)\n this.globalStore.captureException(error, { store: 'NotificationStore' })\n } finally {\n runInAction(() => {\n this.isLoading = false\n })\n }\n }\n\n markAllAsViewed = async () => {\n // Update on the server\n await this.api.markAllAsViewed()\n }\n\n updateNotification = async (notification: Notification) => {\n notification.has_been_viewed = true\n await this.api.updateNotification(notification)\n }\n}\n","import { type AlertProps } from '@mui/material'\nimport { makeAutoObservable, runInAction } from 'mobx'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { isAfter } from 'date-fns/isAfter'\nimport { isBefore } from 'date-fns/isBefore'\nimport { isSameDay } from 'date-fns/isSameDay'\nimport { isWithinInterval } from 'date-fns/isWithinInterval'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { subDays } from 'date-fns/subDays'\n\nimport { RepeatingTransactionsApi } from '../api'\nimport {\n type Recurrence,\n type RecurringCopy,\n type RepeatingTransaction,\n type Transaction,\n RecurrenceStatus,\n RecurrenceType,\n type DateRange,\n} from '../types'\nimport {\n augmentRepeatingTransactions,\n buildAllRecurrences,\n} from '../utils/RecurringTransactionsUtil'\n\nimport { GlobalStore } from './GlobalStore'\n\nconst currentMonthFilter = (date: DateRange, recurrence: Recurrence) =>\n isWithinInterval(recurrence.expectedDate, date)\n\nconst recurrenceTotalReducer = (total: number, recurrence: Recurrence) => total + recurrence.amount\n\ninterface RecurringAlertProps {\n message: string\n severity: AlertProps['severity']\n}\n\nexport class RecurringTransactionsStore {\n globalStore: GlobalStore\n api = new RepeatingTransactionsApi('/', '')\n\n repeatingTransactions: RepeatingTransaction[] = []\n isDataLoaded: boolean = false\n\n selectedDay: Date | undefined\n dateRange: DateRange = { start: startOfMonth(startOfToday()), end: endOfMonth(startOfToday()) }\n selectedRepeatingTransactionGuid: string | null = null\n selectedRecurrence: Recurrence | null = null\n\n alert: RecurringAlertProps = { message: '', severity: undefined }\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new RepeatingTransactionsApi(\n globalStore.endpoint,\n globalStore.sessionToken,\n globalStore.onError,\n )\n\n // The *ForRange helpers are parameterized computeds: they must stay plain\n // methods (not actions) so observable reads inside them remain tracked when\n // invoked from an observer/derivation. makeAutoObservable would otherwise\n // annotate them as actions, which do not track reads.\n makeAutoObservable(this, {\n recurrencesForRange: false,\n upcomingExpensesForRange: false,\n upcomingIncomeForRange: false,\n incomeForRange: false,\n nextIncomeForRange: false,\n })\n }\n\n get copy(): RecurringCopy {\n return this.globalStore.copyStore.copy.recurring\n }\n\n get detailedRepeatingTransactions(): RepeatingTransaction[] {\n return augmentRepeatingTransactions(\n this.globalStore.accountStore.visibleAccounts,\n this.repeatingTransactions,\n this.globalStore.transactionStore.transactions,\n )\n }\n\n /**\n * Returns all recurrences built from repeating transactions and filtered by\n * accounts, scoped to the supplied date range. This is the range-parameterized\n * core used by both the shared getters (which pass this.dateRange) and by\n * consumers such as Cash Flow that need their own independent window without\n * mutating the shared dateRange.\n */\n recurrencesForRange = (dateRange: DateRange): Recurrence[] => {\n const accounts = this.globalStore.accountStore.visibleAccounts\n\n return buildAllRecurrences(this.detailedRepeatingTransactions, dateRange)\n .filter((r) => accounts.some((a) => a.guid === r.accountGuid && !a.is_excluded_from_accounts))\n .filter((r) => isWithinInterval(r.expectedDate, dateRange))\n }\n\n /**\n * Returns the upcoming expense recurrences scoped to the supplied date range.\n */\n upcomingExpensesForRange = (dateRange: DateRange): Recurrence[] => {\n return this.recurrencesForRange(dateRange).filter(\n (recurrence: Recurrence) =>\n recurrence.type === RecurrenceType.Expense &&\n recurrence.status === RecurrenceStatus.Upcoming,\n )\n }\n\n /**\n * Returns the income recurrences scoped to the supplied date range.\n */\n incomeForRange = (dateRange: DateRange): Recurrence[] => {\n return this.recurrencesForRange(dateRange).filter(\n (recurrence: Recurrence) => recurrence.type === RecurrenceType.Income,\n )\n }\n\n /**\n * Returns the upcoming income recurrences scoped to the supplied date range.\n */\n upcomingIncomeForRange = (dateRange: DateRange): Recurrence[] => {\n return this.incomeForRange(dateRange).filter(\n (recurrence: Recurrence) => recurrence.status === RecurrenceStatus.Upcoming,\n )\n }\n\n /**\n * Returns the next upcoming income recurrence scoped to the supplied range.\n */\n nextIncomeForRange = (dateRange: DateRange): Recurrence | undefined => {\n return this.upcomingIncomeForRange(dateRange).find((r) =>\n isAfter(r.expectedDate, startOfToday()),\n )\n }\n\n /**\n * Returns all recurrences built from repeating transactions and filtered by accounts.\n */\n get recurrences(): Recurrence[] {\n return this.recurrencesForRange(this.dateRange)\n }\n\n /**\n * Returns all recurrences that have occurred in the past, including those that are paid or missed\n */\n get pastRecurrences(): Recurrence[] {\n return this.recurrences.filter(\n (recurrence: Recurrence) =>\n recurrence.status === RecurrenceStatus.Paid ||\n recurrence.status === RecurrenceStatus.Missed,\n )\n }\n\n /**\n * Returns all recurrences that are expected to occur through the end of the month\n * or should have occurred in the last 3 days.\n */\n get upcomingRecurrences(): Recurrence[] {\n return this.recurrences.filter(\n (r) =>\n isAfter(r.expectedDate, subDays(startOfToday(), 3)) &&\n isBefore(r.expectedDate, this.dateRange.end) &&\n r.status === RecurrenceStatus.Upcoming,\n )\n }\n\n /**\n * Returns all expense recurrences.\n */\n get expenses(): Recurrence[] {\n return this.recurrences.filter(\n (recurrence: Recurrence) => recurrence.type === RecurrenceType.Expense,\n )\n }\n\n /**\n * Returns the upcoming expense recurrences.\n */\n get upcomingExpenses(): Recurrence[] {\n return this.expenses.filter(\n (recurrence: Recurrence) => recurrence.status === RecurrenceStatus.Upcoming,\n )\n }\n\n /**\n * Returns all income recurrences.\n */\n get income(): Recurrence[] {\n return this.recurrences.filter(\n (recurrence: Recurrence) => recurrence.type === RecurrenceType.Income,\n )\n }\n\n /**\n * Returns the upcoming income recurrences.\n */\n get upcomingIncome(): Recurrence[] {\n return this.income.filter(\n (recurrence: Recurrence) => recurrence.status === RecurrenceStatus.Upcoming,\n )\n }\n\n get nextIncomeRecurrence() {\n return this.upcomingIncome.find((r) => isAfter(r.expectedDate, startOfToday()))\n }\n\n /**\n * Returns the expense recurrences for the current month.\n */\n get currentMonthExpenses(): Recurrence[] {\n return this.expenses.filter((recurrence: Recurrence) =>\n currentMonthFilter(this.dateRange, recurrence),\n )\n }\n\n /**\n * Returns the income recurrences for the current month.\n */\n get currentMonthIncome(): Recurrence[] {\n return this.income.filter((recurrence: Recurrence) =>\n currentMonthFilter(this.dateRange, recurrence),\n )\n }\n\n /**\n * Calculates the total amount of all expenses for the current month.\n */\n get expenseTotal(): number {\n return this.currentMonthExpenses.reduce(recurrenceTotalReducer, 0)\n }\n\n /**\n * Calculates the total amount of all paid expenses for the current month.\n */\n get paidExpenseTotal(): number {\n return this.currentMonthExpenses\n .filter((recurrence: Recurrence) => recurrence.status === RecurrenceStatus.Paid)\n .reduce(recurrenceTotalReducer, 0)\n }\n\n /**\n * Calculates the total amount of all missed expenses for the current month.\n */\n get missedExpenseTotal(): number {\n return this.currentMonthExpenses\n .filter((recurrence: Recurrence) => recurrence.status === RecurrenceStatus.Missed)\n .reduce(recurrenceTotalReducer, 0)\n }\n\n /**\n * Calculates the total amount of all upcoming expenses for the current month.\n */\n get upcomingExpenseTotal(): number {\n return this.currentMonthExpenses\n .filter((recurrence: Recurrence) => recurrence.status === RecurrenceStatus.Upcoming)\n .reduce(recurrenceTotalReducer, 0)\n }\n\n /**\n * Calculates the total amount of all income for the current month.\n */\n get incomeTotal(): number {\n return this.currentMonthIncome.reduce(recurrenceTotalReducer, 0)\n }\n\n /**\n * Calculates the total amount of all paid income for the current month.\n */\n get paidIncomeTotal(): number {\n return this.currentMonthIncome\n .filter((recurrence: Recurrence) => recurrence.status === RecurrenceStatus.Paid)\n .reduce(recurrenceTotalReducer, 0)\n }\n\n /**\n * Calculates the total amount of all upcoming income for the current month.\n */\n get upcomingIncomeTotal(): number {\n return this.currentMonthIncome\n .filter((recurrence: Recurrence) => recurrence.status === RecurrenceStatus.Upcoming)\n .reduce(recurrenceTotalReducer, 0)\n }\n\n /**\n * Get the recurrences for the currently selected day.\n */\n get selectedDayRecurrences(): Recurrence[] | undefined {\n return (\n this.selectedDay &&\n this.recurrences.filter(\n (recurrence: Recurrence) =>\n this.selectedDay &&\n isSameDay(recurrence.occurredOnDate || recurrence.expectedDate, this.selectedDay),\n )\n )\n }\n\n get selectedRepeatingTransaction(): RepeatingTransaction | undefined {\n return this.selectedRepeatingTransactionGuid\n ? this.detailedRepeatingTransactions.find(\n (rt) => rt.guid === this.selectedRepeatingTransactionGuid,\n )\n : undefined\n }\n\n setSelectedRepeatingTransactionGuid = (guid: string | null) =>\n (this.selectedRepeatingTransactionGuid = guid)\n\n setSelectedRecurrence = (recurrence: Recurrence | null) => (this.selectedRecurrence = recurrence)\n\n setRepeatingTransactions = (repeating: RepeatingTransaction[]) => {\n this.repeatingTransactions = repeating\n this.isDataLoaded = true\n }\n\n /**\n * Set the date range for filtering recurrences.\n * @param dateRange - The date range to set.\n */\n setDateRange = (dateRange: DateRange) => (this.dateRange = dateRange)\n\n /**\n * Set the currently selected day.\n * @param day - The day to select.\n */\n setSelectedDay = (day: Date) => {\n this.selectedDay = this.selectedDay && isSameDay(day, this.selectedDay) ? undefined : day\n }\n\n loadRepeatingTransactionData = async () => {\n await Promise.all([\n this.globalStore.accountStore.loadAccountData(),\n this.globalStore.categoryStore.loadCategories(),\n this.globalStore.transactionStore.loadTransactionData(),\n ])\n await this.loadRepeatingTransactions()\n }\n\n /**\n * Load repeating transactions and augment them with additional data.\n */\n loadRepeatingTransactions = async () => {\n try {\n const repeatingTransactions = await this.api.getRepeatingTransactions()\n this.setRepeatingTransactions(repeatingTransactions)\n } catch (error) {\n console.error('Error occurred while getting repeating transactions:', error)\n this.globalStore.captureException(error, { store: 'RecurringTransactionsStore' })\n }\n }\n\n /**\n * Add a new repeating transaction and link it to the associated transaction.\n * @param repeatingTransaction - The repeating transaction to add.\n * @param transaction - The transaction associated with the repeating transaction.\n */\n addRepeatingTransaction = async (\n repeatingTransaction: RepeatingTransaction,\n transaction: Transaction,\n ): Promise<boolean> => {\n try {\n const newRepeating = await this.api.addRepeatingTransaction(repeatingTransaction)\n\n await this.globalStore.transactionStore.updateTransaction({\n ...transaction,\n repeating_transaction_guid: newRepeating.guid,\n })\n\n runInAction(() => {\n this.repeatingTransactions = [\n ...this.repeatingTransactions,\n ...augmentRepeatingTransactions(\n this.globalStore.accountStore.visibleAccounts,\n [newRepeating],\n this.globalStore.transactionStore.transactions,\n ),\n ]\n })\n\n this.setAlert(this.copy.add_repeating_transaction_success, 'success')\n\n return true\n } catch (error) {\n console.error('Error occurred while adding repeating transaction:', error)\n this.globalStore.captureException(error, { store: 'RecurringTransactionsStore' })\n this.setAlert(this.copy.add_repeating_transaction_error, 'error')\n\n return false\n }\n }\n\n /**\n * Delete a repeating transaction by its GUID.\n * @param guid - The GUID of the repeating transaction to delete.\n */\n deleteRepeatingTransaction = async (guid: string): Promise<boolean> => {\n try {\n await this.api.deleteRepeatingTransaction(guid)\n\n runInAction(() => {\n this.repeatingTransactions = [\n ...this.repeatingTransactions.filter((rt) => rt.guid !== guid),\n ]\n })\n\n this.setAlert(this.copy.remove_repeating_transaction_success, 'success')\n\n return true\n } catch (error) {\n console.error('Error occurred while deleting repeating transaction:', error)\n this.globalStore.captureException(error, { store: 'RecurringTransactionsStore' })\n this.setAlert(this.copy.remove_repeating_transaction_error, 'error')\n\n return false\n }\n }\n\n /**\n * Update an existing repeating transaction.\n * @param transaction - The repeating transaction to update.\n */\n updateRepeatingTransaction = async (transaction: RepeatingTransaction): Promise<boolean> => {\n try {\n const updatedTransaction = await this.api.updateRepeatingTransaction(transaction)\n\n const index = this.repeatingTransactions.findIndex(\n (rt) => rt.guid === updatedTransaction.guid,\n )\n if (index < 0) return false\n\n runInAction(() => {\n this.repeatingTransactions = [\n ...this.repeatingTransactions.slice(0, index),\n ...augmentRepeatingTransactions(\n this.globalStore.accountStore.visibleAccounts,\n [updatedTransaction],\n this.globalStore.transactionStore.transactions,\n ),\n ...this.repeatingTransactions.slice(index + 1),\n ]\n })\n\n this.setAlert(this.copy.update_repeating_transaction_success, 'success')\n\n return true\n } catch (error) {\n console.error('Error occurred while updating repeating transaction:', error)\n this.globalStore.captureException(error, { store: 'RecurringTransactionsStore' })\n this.setAlert(this.copy.update_repeating_transaction_error, 'error')\n\n return false\n }\n }\n\n /**\n * Mark a recurrence as paid by linking a transaction to the repeating transaction.\n * @param repeatingTransactionGuid - The GUID of the repeating transaction.\n * @param transaction - The transaction to link.\n */\n markRecurrenceAsPaid = async (repeatingTransactionGuid: string, transaction: Transaction) => {\n try {\n await this.globalStore.transactionStore.updateTransaction({\n ...transaction,\n repeating_transaction_guid: repeatingTransactionGuid,\n })\n\n await this.loadRepeatingTransactions()\n this.setSelectedRecurrence(null)\n this.setAlert(this.copy.link_transaction_success, 'success')\n } catch (error) {\n console.error('Error occurred while marking recurrence as paid:', error)\n this.globalStore.captureException(error, { store: 'RecurringTransactionsStore' })\n this.setAlert(this.copy.link_transaction_error, 'error')\n }\n }\n\n /**\n * Mark a recurrence as unpaid by unlinking the associated transaction from the repeating transaction.\n * @param transaction - The transaction to unlink.\n */\n markRecurrenceAsUnpaid = async (transaction: Transaction) => {\n try {\n await this.globalStore.transactionStore.updateTransaction({\n ...transaction,\n repeating_transaction_guid: null,\n })\n\n await this.loadRepeatingTransactions()\n this.setSelectedRecurrence(null)\n this.setAlert(this.copy.unlink_transaction_success, 'success')\n } catch (error) {\n console.error('Error occurred while marking recurrence as unpaid:', error)\n this.globalStore.captureException(error, { store: 'RecurringTransactionsStore' })\n this.setAlert(this.copy.unlink_transaction_error, 'error')\n }\n }\n\n setAlert = (message: string, severity: RecurringAlertProps['severity'] = undefined) =>\n (this.alert = { message, severity })\n}\n","import {\n type Account,\n type ClientCommunicationProfile,\n type DetailedNotificationProfile,\n type NotificationProfile,\n type SettingsCopy,\n type User,\n type UserCommunicationProfile,\n AccountNotificationTypes,\n BudgetNotificationTypes,\n InsightNotificationTypes,\n} from '../types'\n\nconst PARENT_ENTITY = 'PARENT-ENTITY'\n\nconst getProfileLabel = (notificationType: number, copy: SettingsCopy) => {\n const labelMap: Record<number, string> = {\n [BudgetNotificationTypes.BudgetExceeded]: copy.notification_budget_exceeded,\n [BudgetNotificationTypes.BudgetOffTarget]: copy.notification_budget_off_target,\n [AccountNotificationTypes.DebtPaymentReminder]: copy.notification_debt_payment_reminder,\n [AccountNotificationTypes.AccountBalanceLow]: copy.notification_low_balance,\n [AccountNotificationTypes.AccountDepositLargePosted]: copy.notification_large_deposit,\n [AccountNotificationTypes.AccountDepositLarge]: copy.notification_large_deposit,\n [AccountNotificationTypes.TransactionExpenseLarge]: copy.notification_large_expense,\n [AccountNotificationTypes.TransactionFeeCharge]: copy.notification_transaction_fee,\n [AccountNotificationTypes.InternationalTransaction]:\n copy.notification_transaction_is_international,\n [InsightNotificationTypes.AccountBalanceLow]: copy.account_balance_low,\n [InsightNotificationTypes.BillAmountNotStandard]: copy.bill_amount_not_standard,\n [InsightNotificationTypes.CategorySpending]: copy.category_spending,\n [InsightNotificationTypes.CreditCardCloseToLimit]: copy.credit_card_close_to_limit,\n [InsightNotificationTypes.DebtPaymentReminder]: copy.debt_payment_reminder,\n [InsightNotificationTypes.DuplicatePayment]: copy.duplicate_payment,\n [InsightNotificationTypes.MonthlySpendComparison]: copy.monthly_spend_comparison,\n [InsightNotificationTypes.MonthlySpendToIncomeComparison]:\n copy.monthly_spend_to_income_comparison,\n [InsightNotificationTypes.MonthlySubscriptionAggregate]: copy.monthly_subscription_aggregate,\n [InsightNotificationTypes.MonthlyTopMerchantSpending]: copy.monthly_top_merchant_spending,\n [InsightNotificationTypes.SaveAnExtra100Dollars]: copy.save_an_extra_100_dollars,\n [InsightNotificationTypes.SavingsOpportunity]: copy.savings_opportunity,\n [InsightNotificationTypes.SetUpDirectDeposit]: copy.set_up_direct_deposit,\n [InsightNotificationTypes.SwitchDirectDeposit]: copy.switch_direct_deposit,\n [InsightNotificationTypes.UncategorizedTransactions]: copy.uncategorized_transactions,\n [InsightNotificationTypes.UnifiedDeposit]: copy.unified_deposit,\n [InsightNotificationTypes.UpcomingBill]: copy.upcoming_bill,\n [InsightNotificationTypes.WeekendSpendingSummary]: copy.weekend_spending_summary,\n [InsightNotificationTypes.WeeklyNewMerchants]: copy.weekly_new_merchants,\n [InsightNotificationTypes.DiscoveredAccounts]: copy.discovered_account,\n [InsightNotificationTypes.TransactionExpenseLarge]: copy.large_transaction,\n [InsightNotificationTypes.PromotionalCampaignMessages]: copy.promotional_campaign_messages,\n [InsightNotificationTypes.TransparentOverdraft]: copy.transparent_overdraft,\n }\n\n return labelMap[notificationType] || ''\n}\n\nexport const augmentNotificationProfiles = (\n accounts: Account[],\n clientCommunicationsProfile: ClientCommunicationProfile,\n copy: SettingsCopy,\n profiles: NotificationProfile[],\n userCommunicationsProfile: UserCommunicationProfile,\n user: User,\n) => {\n const detailedProfiles = [] as DetailedNotificationProfile[]\n const {\n email_notifications_enabled: clientEmailEnabled,\n sms_notifications_enabled: clientSmsEnabled,\n push_notifications_enabled: clientPushEnabled,\n } = clientCommunicationsProfile\n\n const {\n opted_out_of_email_notifications: userEmailOptedOut,\n opted_out_of_sms_notifications: userSmsOptedOut,\n opted_out_of_push_notifications: userPushOptedOut,\n } = userCommunicationsProfile\n\n for (const profile of profiles.filter((profile) => profile.entity_guid === PARENT_ENTITY)) {\n const label = getProfileLabel(profile.notification_type, copy)\n const children = profiles.filter(\n (child) =>\n child.entity_guid !== PARENT_ENTITY &&\n child.notification_type === profile.notification_type &&\n accounts.some((account) => account.guid === child.entity_guid),\n )\n\n const deliveryMethods = [] as string[]\n if (clientEmailEnabled && !userEmailOptedOut && profile.email_channel && user.email) {\n deliveryMethods.push(copy.delivery_method_email_label)\n }\n if (clientSmsEnabled && !userSmsOptedOut && profile.sms_channel && user.phone) {\n deliveryMethods.push(copy.delivery_method_sms_label)\n }\n if (clientPushEnabled && !userPushOptedOut && profile.push_channel) {\n deliveryMethods.push(copy.delivery_method_push_label)\n }\n\n detailedProfiles.push({\n ...profile,\n children: children.map((child) => ({\n ...child,\n account: accounts.find((a) => a.guid === child.entity_guid),\n label,\n })),\n deliveryMethodsLabel: deliveryMethods.join(', '),\n label,\n })\n }\n\n return detailedProfiles\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { AlertProps } from '@mui/material'\n\nimport {\n AccountNotificationTypes,\n BudgetNotificationTypes,\n InsightNotificationTypes,\n} from '../types'\n\nimport type {\n DetailedNotificationProfile,\n Device,\n NotificationProfile,\n SettingsCopy,\n TransactionRule,\n User,\n UserCommunicationProfile,\n} from '../types'\n\nimport { SettingsApi, TransactionApi } from '../api'\nimport { augmentNotificationProfiles } from '../utils/SettingsUtil'\n\nimport { GlobalStore } from './GlobalStore'\n\ninterface SettingsAlertProps {\n message: string\n severity: AlertProps['severity']\n}\n\nexport class SettingsStore {\n globalStore: GlobalStore\n api: SettingsApi = new SettingsApi('/', '')\n transactionApi: TransactionApi = new TransactionApi('/', '')\n\n alert: SettingsAlertProps = { message: '', severity: undefined }\n devices: Device[] = []\n notificationProfiles: NotificationProfile[] = []\n selectedRule: TransactionRule | undefined = undefined\n transactionRules: TransactionRule[] = []\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new SettingsApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n this.transactionApi = new TransactionApi(\n globalStore.endpoint,\n globalStore.sessionToken,\n globalStore.onError,\n )\n\n makeAutoObservable(this)\n }\n\n get accountProfiles() {\n const ccp = this.globalStore.appDataStore.clientCommunicationProfile\n\n // TODO: There has to be a better way to do this, but for now, it works\n return this.detailedNotificationProfiles.filter(\n (np) =>\n (np.notification_type === AccountNotificationTypes.DebtPaymentReminder &&\n ccp.debt_payment_reminder_notifications_enabled) ||\n (np.notification_type === AccountNotificationTypes.AccountBalanceLow &&\n ccp.low_balance_notifications_enabled) ||\n (np.notification_type === AccountNotificationTypes.AccountDepositLarge &&\n ccp.large_deposit_notifications_enabled) ||\n (np.notification_type === AccountNotificationTypes.TransactionExpenseLarge &&\n ccp.large_expense_notifications_enabled) ||\n (np.notification_type === AccountNotificationTypes.TransactionFeeCharge &&\n ccp.transaction_fee_notifications_enabled) ||\n (np.notification_type === AccountNotificationTypes.InternationalTransaction &&\n ccp.transaction_is_international_notifications_enabled) ||\n (np.notification_type === AccountNotificationTypes.AccountDepositLargePosted &&\n ccp.large_deposit_posted_notifications_enabled),\n )\n }\n\n get budgetProfiles() {\n const ccp = this.globalStore.appDataStore.clientCommunicationProfile\n\n // TODO: There has to be a better way to do this, but for now, it works\n return this.detailedNotificationProfiles.filter(\n (np) =>\n (np.notification_type === BudgetNotificationTypes.BudgetExceeded &&\n ccp.budget_exceeded_notifications_enabled) ||\n (np.notification_type === BudgetNotificationTypes.BudgetOffTarget &&\n ccp.budget_off_target_notifications_enabled),\n )\n }\n\n get insightsProfiles() {\n return this.detailedNotificationProfiles.filter((np) =>\n Object.values(InsightNotificationTypes).includes(np.notification_type),\n )\n }\n\n get clientCommunicationProfile() {\n return this.globalStore.appDataStore.clientCommunicationProfile\n }\n\n get copy(): SettingsCopy {\n return this.globalStore.copyStore.copy.settings\n }\n\n get detailedNotificationProfiles(): DetailedNotificationProfile[] {\n // Don't attempt to augment profile if global store is not initialized\n if (!this.globalStore.isInitialized) return []\n\n return augmentNotificationProfiles(\n this.globalStore.accountStore.accounts,\n this.clientCommunicationProfile,\n this.copy,\n this.notificationProfiles,\n this.userCommunicationsProfile,\n this.globalStore.userStore.user,\n )\n }\n\n get userCommunicationsProfile() {\n return this.globalStore.appDataStore.userCommunicationProfile\n }\n\n deleteDevice = async (guid: string) => {\n try {\n await this.api.deleteDevice(guid)\n\n const index = this.devices.findIndex((d) => d.guid === guid)\n if (index >= 0) {\n runInAction(() => {\n this.devices.splice(index, 1)\n })\n }\n\n return { success: true }\n } catch (error) {\n console.error('Error deleting device:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n return { success: false }\n }\n }\n\n deleteTransactionRule = async () => {\n if (!this.selectedRule) {\n return\n }\n try {\n await this.transactionApi.removeTransactionRule(this.selectedRule?.guid)\n this.setAlert(this.copy.delete_rule_success, 'success')\n await this.loadTransactionRules()\n } catch (error) {\n console.error('Error deleting transaction rule:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n this.setAlert(this.copy.delete_rule_error, 'error')\n }\n }\n\n generateDeviceToken = async () => {\n try {\n return await this.api.generateDeviceToken()\n } catch (error) {\n console.error('Error generating device token:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n }\n return undefined\n }\n\n loadDevices = async () => {\n try {\n const devices = await this.api.getDevices()\n\n runInAction(() => {\n this.devices = devices\n })\n } catch (error) {\n console.error('Error loading devices:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n }\n }\n\n loadNotificationProfiles = async () => {\n try {\n const profiles = await this.api.getNotificationProfiles()\n\n runInAction(() => {\n this.notificationProfiles = profiles\n })\n } catch (error) {\n console.error('Error loading notification profiles:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n }\n }\n\n loadTransactionRules = async () => {\n try {\n const rules = await this.transactionApi.getTransactionRules()\n\n runInAction(() => {\n this.transactionRules = rules\n })\n } catch (error) {\n console.error('Error loading transaction rules:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n }\n }\n\n sendEmailVerification = async () => {\n try {\n await this.api.sendEmailVerification()\n this.setAlert(this.copy.verification_sent_success, 'success')\n } catch (error) {\n console.error('Error sending email verification:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n this.setAlert(this.copy.verification_sent_error, 'error')\n }\n }\n\n sendPhoneVerification = async () => {\n try {\n await this.api.sendPhoneVerification()\n this.setAlert(this.copy.verification_sent_success, 'success')\n } catch (error) {\n console.error('Error sending phone verification:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n this.setAlert(this.copy.verification_sent_error, 'error')\n }\n }\n\n setAlert = (message: string, severity: SettingsAlertProps['severity'] = undefined) =>\n (this.alert = { message, severity })\n\n setSelectedRule = (rule?: TransactionRule) => {\n this.selectedRule = rule\n }\n\n updateDevice = async (device: Device) => {\n try {\n const updatedDevice = await this.api.updateDevice(device)\n\n const index = this.devices.findIndex((d) => d.guid === device.guid)\n if (index >= 0) {\n runInAction(() => {\n this.devices[index] = updatedDevice\n })\n }\n return { success: true }\n } catch (error) {\n console.error('Error updating device:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n return { success: false }\n }\n }\n\n updateNotificationProfile = async (profile: NotificationProfile) => {\n try {\n const updatedProfile = await this.api.updateNotificationProfile(profile)\n\n const index = this.notificationProfiles.findIndex((p) => p.guid === profile.guid)\n if (index >= 0) {\n runInAction(() => {\n this.notificationProfiles[index] = updatedProfile\n })\n }\n } catch (error) {\n console.error('Error updating notification profile:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n }\n }\n\n updateRuleCategory = async (rule: TransactionRule) => {\n try {\n await this.transactionApi.updateTransactionRule(rule)\n await this.loadTransactionRules()\n } catch (error) {\n console.error('Error updating rule category:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n }\n }\n\n updateRulePayee = async (rule: TransactionRule) => {\n try {\n await this.transactionApi.updateTransactionRule(rule)\n this.setAlert(this.copy.edit_payee_success, 'success')\n await this.loadTransactionRules()\n } catch (error) {\n console.error('Error updating rule payee:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n this.setAlert(this.copy.edit_payee_error, 'error')\n }\n }\n\n updateUser = async (user: User) => {\n try {\n await this.globalStore.userStore.updateUser(user)\n this.setAlert(this.copy.information_updated_success, 'success')\n } catch (error) {\n // Error is already logged and captured in UserStore.updateUser\n this.setAlert(this.copy.information_updated_error, 'error')\n }\n }\n\n updateUserCommunicationProfile = async (profile: UserCommunicationProfile) => {\n try {\n const updatedProfile = await this.api.updateUserCommunicationProfile(profile)\n\n this.globalStore.appDataStore.setUserCommunicationProfile(updatedProfile)\n } catch (error) {\n console.error('Error occurred while updating user communication profile:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n }\n }\n\n verifyPhoneToken = async (sms_verification_token: string) => {\n try {\n const { verified } = await this.api.verifyPhoneToken(sms_verification_token)\n if (!verified) {\n throw new Error()\n }\n this.setAlert(this.copy.verified_phone_success, 'success')\n } catch (error) {\n console.error('Error verifying phone token:', error)\n this.globalStore.captureException(error, { store: 'SettingsStore' })\n this.setAlert(this.copy.verified_phone_error, 'error')\n }\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { endOfToday } from 'date-fns/endOfToday'\nimport { formatISO } from 'date-fns/formatISO'\nimport { getUnixTime } from 'date-fns/getUnixTime'\nimport { isBefore } from 'date-fns/isBefore'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { subDays } from 'date-fns/subDays'\n\nimport { BeatApi, TransactionApi } from '../api'\nimport { TABLE_CONST } from '../constants/Table'\nimport { COLUMN_NAMES, DEFAULT_TRANSACTION } from '../constants/Transaction'\nimport { TransactionType } from '../types'\nimport type { Beat, Tag, Tagging, Transaction, TransactionRule } from '../types'\nimport {\n buildDetailedTransactions,\n flattenTransactionsWithSplits,\n sortAndFilterTransactions,\n} from '../utils/TransactionUtils'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport type TransactionFilter = {\n accounts?: string[]\n dateRange?: { start: Date; end: Date }\n custom?: (value: Transaction) => boolean\n searchTerm?: string\n showSplits?: boolean\n}\n\nexport class TransactionStore {\n globalStore: GlobalStore\n uiStore: UiStore\n api = new TransactionApi('/', '')\n beatApi = new BeatApi('/', '')\n\n associatedBeats: Beat[] = []\n associatedBeatsLoaded: boolean = false\n associatedBeatsLoading: boolean = false\n transactions: Transaction[] = []\n transactionsLoaded: boolean = false\n transactionsLoading: boolean = false\n taggings: Tagging[] = []\n taggingsLoaded: boolean = false\n taggingsLoading: boolean = false\n tags: Tag[] = []\n tagsLoaded: boolean = false\n tagsLoading: boolean = false\n transactionRules: TransactionRule[] = []\n transactionRulesLoaded: boolean = false\n transactionRulesLoading: boolean = false\n transactionSplitting: boolean = false\n\n cachedStartDate: Date = subDays(startOfToday(), 90)\n filter: TransactionFilter = {}\n isLoading = true\n\n alert = ''\n\n sortColumn = COLUMN_NAMES.DATE\n sortDirection = TABLE_CONST.DESC\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.uiStore = new UiStore()\n this.api = new TransactionApi(\n globalStore.endpoint,\n globalStore.sessionToken,\n globalStore.onError,\n )\n this.beatApi = new BeatApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n\n makeAutoObservable(this)\n }\n\n loadTransactionData = async () => {\n if (!this.globalStore.accountStore.isAccountDataLoaded) {\n await this.globalStore.accountStore.loadAccountData()\n }\n if (!this.globalStore.categoryStore.categoriesLoaded) {\n await this.globalStore.categoryStore.loadCategories()\n }\n await Promise.all([\n this.loadAssociatedBeats(startOfMonth(new Date())),\n this.loadTags(),\n this.loadTaggings(),\n this.loadTransactionRules(),\n // By default loads 90 days of transactions\n this.loadTransactions(this.cachedStartDate),\n ])\n }\n\n get isTransactionDataLoaded(): boolean {\n return (\n this.associatedBeatsLoaded &&\n this.tagsLoaded &&\n this.taggingsLoaded &&\n this.transactionRulesLoaded &&\n this.transactionsLoaded\n )\n }\n\n get detailedTransactions(): Transaction[] {\n return this.isTransactionDataLoaded\n ? buildDetailedTransactions(\n this.transactions,\n this.globalStore.accountStore.visibleAccounts,\n this.globalStore.categoryStore.categories,\n this.taggings,\n )\n : []\n }\n\n get sortedTransactions(): Transaction[] {\n return sortAndFilterTransactions(\n this.filter,\n this.uiStore.expandedSplits,\n this.sortColumn,\n this.sortDirection,\n this.tags,\n this.detailedTransactions,\n )\n }\n\n get sortedTransactionsWithSplits(): Transaction[] {\n return flattenTransactionsWithSplits(this.sortedTransactions, this.detailedTransactions)\n }\n\n setAssociatedBeats = (beats: Beat[]) => {\n this.associatedBeats = beats\n this.associatedBeatsLoading = false\n this.associatedBeatsLoaded = true\n }\n\n setTaggings = (taggings: Tagging[]) => {\n this.taggings = taggings\n this.taggingsLoading = false\n this.taggingsLoaded = true\n }\n\n setTags = (tags: Tag[]) => {\n this.tags = tags\n this.tagsLoading = false\n this.tagsLoaded = true\n }\n\n setTransactionRules = (transactionRules: TransactionRule[]) => {\n this.transactionRules = transactionRules\n this.transactionRulesLoading = false\n this.transactionRulesLoaded = true\n }\n\n setTransactions = (transactions: Transaction[]) => {\n this.transactions = transactions\n this.transactionsLoading = false\n this.transactionsLoaded = true\n }\n\n setAlert = (alert: string) => {\n this.alert = alert\n }\n\n addTag = async (name: string) => {\n try {\n await this.api.addTag({ name } as Tag)\n await this.loadTags()\n } catch (error) {\n console.error('Error occurred while adding tag:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n\n addTagging = async (tagGuid: string, transactionGuid: string) => {\n try {\n await this.api.addTagging({\n tag_guid: tagGuid,\n transaction_guid: transactionGuid,\n } as Tagging)\n } catch (error) {\n console.error('Error occurred while adding tagging:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n\n addOrUpdateTransactionRule = async (categoryGuid: string, transaction: Transaction) => {\n try {\n const existingRule = this.transactionRules.find(\n (rule: TransactionRule) => rule.guid === transaction.user_transaction_rule_guid,\n ) as TransactionRule | undefined\n\n if (existingRule) {\n await this.api.updateTransactionRule({\n ...existingRule,\n category_guid: categoryGuid,\n description: transaction.description,\n } as TransactionRule)\n } else {\n await this.api.addTransactionRule({\n category_guid: categoryGuid,\n description: transaction.description,\n match_description: transaction.description,\n } as TransactionRule)\n }\n await this.loadTransactionRules()\n } catch (error) {\n console.error('Error occurred while adding/updating transaction rule:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n\n addTransaction = async (transaction: Transaction) => {\n try {\n const newTransaction = await this.api.addTransaction(transaction)\n\n if (newTransaction) {\n this.setTransactions([newTransaction, ...this.transactions])\n\n // Update the related account balance\n const balanceChange =\n newTransaction.transaction_type === TransactionType.CREDIT\n ? newTransaction.amount\n : -newTransaction.amount\n\n this.globalStore.accountStore.updateAccountBalance(\n newTransaction.account_guid,\n balanceChange,\n )\n }\n } catch (error) {\n console.error('Error occurred while adding transaction:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n\n loadAssociatedBeats = async (fromDate?: Date) => {\n if (this.associatedBeatsLoading) return\n\n this.associatedBeatsLoading = true\n const fromDateISO = fromDate ? formatISO(fromDate, { representation: 'date' }) : undefined\n try {\n const beats = await this.beatApi.getBeatsWithAssociatedTransaction(fromDateISO)\n this.setAssociatedBeats(beats)\n } catch (error) {\n console.error('Error occurred while loading associated beats:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n this.setAssociatedBeats([])\n } finally {\n // Clear the in-flight flag even on failure so a later load (e.g. a widget\n // remount) can retry instead of being no-oped by the guard above, which would\n // leave isTransactionDataLoaded false and the list empty until a hard refresh.\n runInAction(() => {\n this.associatedBeatsLoading = false\n })\n }\n }\n\n loadTags = async () => {\n if (this.tagsLoading) return\n\n this.tagsLoading = true\n try {\n const tags = await this.api.getTags()\n this.setTags(tags)\n } catch (error) {\n console.error('Error occurred while loading tags:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n } finally {\n runInAction(() => {\n this.tagsLoading = false\n })\n }\n }\n\n loadTaggings = async () => {\n if (this.taggingsLoading) return\n\n this.taggingsLoading = true\n try {\n const taggings = await this.api.getTaggings()\n this.setTaggings(taggings)\n } catch (error) {\n console.error('Error occurred while loading taggings:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n this.setTaggings([])\n } finally {\n runInAction(() => {\n this.taggingsLoading = false\n })\n }\n }\n\n loadTransactionRules = async () => {\n if (this.transactionRulesLoading) return\n\n this.transactionRulesLoading = true\n try {\n const transactionRules = await this.api.getTransactionRules()\n this.setTransactionRules(transactionRules)\n } catch (error) {\n // Catch so a rejection can't abort the Promise.all in loadTransactionData.\n console.error('Error occurred while loading transaction rules:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n this.setTransactionRules([])\n } finally {\n runInAction(() => {\n this.transactionRulesLoading = false\n })\n }\n }\n\n loadTransactions = async (startDate: Date = this.cachedStartDate) => {\n if (this.transactionsLoading) return\n\n this.setIsLoading(true)\n this.transactionsLoading = true\n\n try {\n const transactions = await this.api.getTransactionsByDateRange(\n getUnixTime(startDate),\n getUnixTime(endOfToday()),\n )\n this.setTransactions(transactions)\n // Advance the cache only after the range is actually loaded, so the invariant\n // \"we hold transactions back to cachedStartDate\" always holds.\n runInAction(() => {\n this.cachedStartDate = startDate\n })\n } catch (error) {\n console.error('Error occurred while loading transactions:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n } finally {\n // See loadAssociatedBeats: clear the flag on failure so retries aren't no-oped.\n runInAction(() => {\n this.transactionsLoading = false\n })\n this.setIsLoading(false)\n }\n }\n\n modifyTransactionByAccountGuid = (guid: string, updates: Partial<Transaction>) => {\n this.transactions = this.transactions.map((txn) =>\n txn.account_guid === guid ? { ...txn, ...updates } : txn,\n )\n }\n\n removeTag = async (tagGuid: string) => {\n try {\n await this.api.removeTag(tagGuid)\n await this.loadTags()\n } catch (error) {\n console.error('Error occurred while removing tag:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n\n removeTagging = async (taggingGuid: string) => {\n try {\n await this.api.removeTagging(taggingGuid)\n } catch (error) {\n console.error('Error occurred while removing tagging:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n\n removeTransaction = async (transactionGuid: string) => {\n try {\n await this.api.removeTransaction(transactionGuid)\n\n const index = this.transactions.findIndex((t: Transaction) => t.guid === transactionGuid)\n\n if (index >= 0) {\n const updatedTransactions = [...this.transactions]\n updatedTransactions.splice(index, 1)\n this.setTransactions(updatedTransactions)\n }\n } catch (error) {\n console.error('Error occurred while removing transaction:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n\n setFilter = (filter: TransactionFilter) => {\n this.filter = filter\n\n // Only reload if the new start date is prior to the cached start date; end date\n // is always today. loadTransactions advances cachedStartDate on success, so we\n // must not advance it here (a skipped/failed load would leave the list empty).\n if (filter.dateRange && isBefore(filter.dateRange.start, this.cachedStartDate)) {\n this.loadTransactions(filter.dateRange.start)\n }\n }\n\n setIsLoading = (isLoading: boolean) => (this.isLoading = isLoading)\n\n splitTransaction = async (transaction: Transaction, splits: Transaction[]) => {\n if (this.transactionSplitting) return\n this.transactionSplitting = true\n\n try {\n const updatedTransaction = await this.api.updateTransaction(transaction)\n const children = [] as Transaction[]\n\n for (let i = 0; i < splits.length; i++) {\n const child = await this.api.addTransaction(splits[i])\n children.push(child)\n }\n\n const index = this.transactions.findIndex((t: Transaction) => t.guid === transaction.guid)\n\n if (index >= 0) {\n // Remove old parent and any existing children\n const filtered = this.transactions.filter(\n (t) => t.guid !== transaction.guid && t.parent_guid !== transaction.guid,\n )\n\n // Insert updated parent + new children at original position\n this.setTransactions([\n ...filtered.slice(0, index),\n updatedTransaction,\n ...children,\n ...filtered.slice(index),\n ])\n }\n } catch (error) {\n console.error('Error occurred while splitting transaction:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n throw error\n } finally {\n this.transactionSplitting = false\n }\n }\n\n unSplitTransaction = async (guid: string) => {\n try {\n const children = this.transactions.filter((t) => t.parent_guid === guid)\n\n await this.api.removeTransactionSplit(guid)\n\n // Remove children\n const transactions = [...this.transactions]\n children.forEach((child) => {\n const index = transactions.findIndex((t) => t.guid === child.guid)\n\n if (index >= 0) {\n transactions.splice(index, 1)\n }\n })\n\n // Update parent\n const index = transactions.findIndex((t) => t.guid === guid)\n\n runInAction(() => {\n const transaction = transactions[index]\n if (transaction) {\n transaction.has_been_split = false\n }\n\n if (index >= 0) {\n this.setTransactions([\n ...transactions.slice(0, index),\n transaction,\n ...transactions.slice(index + 1),\n ])\n }\n })\n } catch (error) {\n console.error('Error occurred while unsplitting transaction:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n\n updateTaggings = async (tagGuids: string[], transactionGuid: string) => {\n try {\n const currentTaggings = this.taggings.filter((t) => t.transaction_guid === transactionGuid)\n\n const currentTagGuids = new Set(currentTaggings.map((t) => t.tag_guid))\n const incomingTagGuids = new Set(tagGuids)\n\n // Add new taggings that don't already exist\n for (const tagGuid of tagGuids) {\n if (!currentTagGuids.has(tagGuid)) {\n await this.addTagging(tagGuid, transactionGuid)\n }\n }\n\n // Remove taggings that are no longer needed\n for (const tagging of currentTaggings) {\n if (!incomingTagGuids.has(tagging.tag_guid)) {\n await this.removeTagging(tagging.guid)\n }\n }\n\n await this.loadTaggings()\n } catch (error) {\n console.error('Error occurred while updating taggings:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n\n updateTag = async (tag: Tag) => {\n try {\n await this.api.updateTag(tag)\n await this.loadTags()\n } catch (error) {\n console.error('Error occurred while updating tag:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n\n updateTransaction = async (transaction: Transaction) => {\n try {\n const updatedTransaction = await this.api.updateTransaction(transaction)\n\n const index = this.transactions.findIndex((t: Transaction) => t.guid === transaction.guid)\n\n if (index >= 0) {\n this.setTransactions([\n ...this.transactions.slice(0, index),\n updatedTransaction,\n ...this.transactions.slice(index + 1),\n ])\n }\n } catch (error) {\n console.error('Error occurred while updating transaction:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n\n // This is used for loading the transactions list on demand, on clicking the different transactions of the insightful beats.\n loadEmbeddedInstanceTransactions = async (fromDate: Date) => {\n try {\n const transactions = await this.api.getTransactionsByDateRange(\n getUnixTime(fromDate),\n getUnixTime(endOfToday()),\n )\n this.cachedStartDate = fromDate\n this.transactions = transactions\n } catch (error) {\n console.error('Error occurred while loading embedded instance transactions:', error)\n this.globalStore.captureException(error, { store: 'TransactionStore' })\n }\n }\n}\n\nexport class UiStore {\n beginDate = startOfMonth(new Date())\n endDate = endOfMonth(new Date())\n\n expandedSplits = [] as string[]\n height = 550\n width = 1000\n shouldDisableDrawerScroll = false\n\n searchValue = ''\n selectedAccountGuids = [] as string[]\n\n manualTransaction: Transaction = DEFAULT_TRANSACTION\n isAmountValid = false\n\n showInsights = false\n\n constructor() {\n makeAutoObservable(this)\n }\n\n setDateRange = (beginDate: Date, endDate: Date) => {\n this.beginDate = beginDate\n this.endDate = endDate\n }\n\n setIsAmountValid = (valid: boolean) => (this.isAmountValid = valid)\n\n setSearchValue = (searchValue: string) => (this.searchValue = searchValue)\n\n setSelectedAccountGuids = (accountGuids: string[]) => (this.selectedAccountGuids = accountGuids)\n\n setShouldDisableDrawerScroll = (shouldDisable: boolean) =>\n (this.shouldDisableDrawerScroll = shouldDisable)\n\n setShowInsights = (showInsights: boolean) => {\n this.showInsights = showInsights\n }\n\n setSize = (height: number, width: number) => {\n this.height = height\n this.width = width\n }\n\n toggleSplit = (guid: string) => {\n const expandedSplits = [...this.expandedSplits]\n const index = this.expandedSplits.findIndex((splitGuid) => splitGuid === guid)\n\n if (index >= 0) {\n expandedSplits.splice(index, 1)\n } else {\n expandedSplits.push(guid)\n }\n\n this.expandedSplits = expandedSplits\n }\n\n clearExpandedSplits = () => {\n if (this.expandedSplits.length === 0) return\n this.expandedSplits = []\n }\n\n updateManualTransaction = (manualTransaction: Transaction) => {\n this.manualTransaction = manualTransaction\n }\n}\n","import { makeAutoObservable } from 'mobx'\nimport { addSeconds } from 'date-fns/addSeconds'\nimport { differenceInCalendarMonths } from 'date-fns/differenceInCalendarMonths'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { subMonths } from 'date-fns/subMonths'\n\nimport type { DateRange, DetailedCategoryWithTransactions } from '../types'\nimport { DATE_FORMATS_INTL, formatDate } from '../constants'\nimport {\n buildCategoryDetailsChartData,\n filterAndSortCategoriesWithTransactions,\n} from '../utils/TrendsUtil'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class TrendsStore {\n globalStore: GlobalStore\n selectedCategoryData: DetailedCategoryWithTransactions | null = null\n selectedDateRange: DateRange\n visibleListLength: number = 5\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.selectedDateRange = {\n start: addSeconds(endOfMonth(subMonths(new Date(), 6)), 1),\n end: endOfMonth(new Date()),\n }\n makeAutoObservable(this)\n }\n\n setSelectedCategoryData = (data: DetailedCategoryWithTransactions | null) => {\n this.selectedCategoryData = data\n }\n\n setSelectedDateRange = (dateRange: DateRange) => {\n this.selectedDateRange = dateRange\n }\n\n setVisibleListLength = (length: number) => {\n this.visibleListLength = length\n }\n\n get sortedDetailedCategoriesWithTransactions(): DetailedCategoryWithTransactions[] {\n return filterAndSortCategoriesWithTransactions(\n this.globalStore.categoryStore.detailedCategoriesWithTransactions,\n )\n }\n\n get selectedDateRangeMonthCount(): number {\n return differenceInCalendarMonths(this.selectedDateRange.end, this.selectedDateRange.start) + 1\n }\n\n get selectedDateRangeMonthRange(): string {\n const startMonth = formatDate(this.selectedDateRange.start, DATE_FORMATS_INTL.MONTH_LONG)\n const endMonth = formatDate(this.selectedDateRange.end, DATE_FORMATS_INTL.MONTH_LONG)\n return `${startMonth} - ${endMonth}`\n }\n\n get visibleCategories(): DetailedCategoryWithTransactions[] {\n return this.sortedDetailedCategoriesWithTransactions.slice(0, this.visibleListLength)\n }\n\n get collapsedCategories(): DetailedCategoryWithTransactions[] {\n return this.sortedDetailedCategoriesWithTransactions.slice(this.visibleListLength)\n }\n\n get categoryDetailsChartData() {\n return buildCategoryDetailsChartData(\n this.selectedCategoryData,\n this.selectedDateRangeMonthCount,\n )\n }\n}\n","import { makeAutoObservable } from 'mobx'\n\nimport { UserApi } from '../api'\nimport type { User, UserFeature, UserProfile } from '../types'\n\nimport { GlobalStore } from './GlobalStore'\n\nexport class UserStore {\n globalStore: GlobalStore\n api: UserApi = new UserApi('/', '')\n\n userFeatures: UserFeature[] = []\n userFeaturesLoaded: boolean = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new UserApi(globalStore.endpoint, globalStore.sessionToken, globalStore.onError)\n\n makeAutoObservable(this)\n }\n\n get userProfile() {\n return this.globalStore.appDataStore.userProfile\n }\n\n get user() {\n return this.globalStore.appDataStore.user\n }\n\n setUserFeatures = (features: UserFeature[]) => {\n this.userFeatures = features\n this.userFeaturesLoaded = true\n }\n\n loadUserFeatures = async () => {\n try {\n const features = await this.api.getUserFeatures()\n this.setUserFeatures(features)\n } catch (e) {\n console.error('Error occurred while loading user features:', e)\n this.globalStore.captureException(e, { store: 'UserStore' })\n this.setUserFeatures([])\n }\n }\n\n updateUser = async (user: User) => {\n try {\n const updatedUser = await this.api.updateUser(user)\n\n this.globalStore.appDataStore.setUser(updatedUser)\n } catch (error) {\n console.error('Error updating User:', error)\n this.globalStore.captureException(error, { store: 'UserStore' })\n throw error\n }\n }\n\n updateUserProfile = async (userProfile: UserProfile) => {\n try {\n const updatedProfile = await this.api.updateUserProfile(userProfile)\n\n this.globalStore.appDataStore.setUserProfile(updatedProfile)\n } catch (error) {\n console.error('Error occurred while updating user profile:', error)\n this.globalStore.captureException(error, { store: 'UserStore' })\n }\n }\n}\n"],"names":["AccountApi","endpoint","token","onError","Fetch","account","ApiEndpoints","data","accountGuid","guid","accountGuids","AppDataApi","BannerApi","bullseyeEndpoint","userGuid","path","error","BudgetsApi","category","amount","parentGuid","budget","merchantGuid","merchantBudgetGuid","CategoryApi","startDate","endDate","accounts","url","FinstrongApi","birthYear","GoalApi","goal","retirementAccount","goals","profile","HelpApi","ticket","HoldingApi","holding","MerchantApi","searchValues","guids","page","perPage","value","NotificationApi","obj","notification","channel","RepeatingTransactionsApi","repeatingTransaction","SettingsApi","item","sms_verification_token","res","device","notificationProfile","userCommunicationProfile","TransactionApi","tag","tagging","transaction","rule","beginDate","accountsList","acc","i","categoryGuid","categoryGuids","UserApi","user","userProfile","WidgetApi","req","AccountStore","globalStore","UiStore","makeAutoObservable","userFeatures","excludeExternal","isFeatureEnabled","excludeHeld","augmentAccounts","typeMap","accountType","AccountType","total","a","eligibleTypes","AccountSubType","members","institutions","newAccount","runInAction","response","mergedAccount","account2Index","account1Index","deletedIndex","updatedAccount","updatedAccountIndex","balanceChange","accountMap","accountUpdates","isSelected","updatedPayload","updatedAccounts","index","UiStore$4","member","AppDataStore","appData","banner","AnalyticsStore","forceReload","posthog","surveys","survey","s","orderArray","arr1","arr2","prop","order","direction","item1","item2","transformOfferIntoBeatLikeObject","offer","BeatStore","BeatApi","beats","beatLikeOffers","o","filter","templates","filteredBeats","beat","template","BudgetsStore","startOfMonth","startOfToday","endOfMonth","reaction","detailedBudgets","findBudget","subBudget","findSubBudget","augmentBudgets","CategoryGuids","b","curr","budgets","alert","dateRange","theme","categories","budgetsToDelete","c","budgetToDelete","updatedBudget","eachMerchantBudget","merchantBudgets","newMerchantBudget","merchantBudget","updatedMerchantBudget","CashflowStore","updatedUserProfile","UiStore$3","addDays","selectedAccountGuids","showAvailableBalance","getAccountStartingBalance","differenceInDays","isBefore","CategoryStore","augmentCategories","getDetailedCategoryTransactions","totals","name","getUnixTime","start","subMonths","end","CategoryGuidToName","UiStore$2","shouldDisable","showSelected","unselectable","text","callback","ConnectStore","widget","mode","rest","DebtsStore","debtAccounts","debtGoals","filteredDebtAccounts","loadDebts","d","p","payment","UiStore$1","DebtPriority","interest_rate","monthly_payment","isLoading","priority","augmentChartData","averageHealthScores","formatDate","DATE_FORMATS_INTL","augmentSpendingFeeTransactions","spendingFeeTransactions","FinstrongStore","isSpendingInitialized","isIncomeInitialized","needHealthScoreChangeReport","healthScore","healthScoreChange","currentScore","oldScore","e","monthlySummaries","debtSpend","income","healthScoreChangeReports","format","fromUnixTime","peerScore","augmentedChartData","spendingFeeTransaction","organizedSpendingFeeTransactions","spendTransaction","DefaultAppConfig","GlobalStore","appConfig","onStoreUpdate","onCaptureException","GlobalCopyStore","GoalStore","HelpStore","HoldingStore","MerchantStore","NetWorthStore","NotificationStore","RecurringTransactionsStore","SettingsStore","TransactionStore","TrendsStore","UserStore","GlobalUiStore","autorun","transactions","context","change","associatedBeats","transactionRules","visibleAccounts","isIncluded","selectedMonth","getMonth","nextMonth","addMonths","currentMonth","GlobalCopyApi","namespace","translationKey","newCopy","goalsCopy","userBirthday","TrackType","getProjectedRetirementDate","ongoingGoals","priorityOrder","aIndex","bIndex","retirementGoals","retirementGoalAccounts","monthlyCashFlowProfile","newGoal","newAccounts","g","rga","reordered","updatedGoal","updatedRetirementGoal","updatedProfile","isCategoryAccessibleByProfile","flag","HelpUtil","categoryList","accessibleCategories","el","HELP_CATEGORIES","updatedCategory","topicKey","message","severity","client_communication_profile","client_profile","category_list","AnalysisType","mapDataToPercentageGrid","analysisChartData","analysisDetailsData","holdings","analysisType","updatedHolding","updatedIndex","searchValue","merchants","merchant","filterAccounts","buildChartData","getLatestNetWorthData","buildGainsLosses","assets","liabilities","totalAssets","totalLiabilities","buildAssetsLiabilities","monthlyAccountBalances","flattenBalances","sortByYearMonthAscending","balances","months","observable","n","filterRecentNotifications","notifications","currentMonthFilter","date","recurrence","isWithinInterval","recurrenceTotalReducer","augmentRepeatingTransactions","buildAllRecurrences","r","RecurrenceType","RecurrenceStatus","isAfter","subDays","isSameDay","rt","repeating","day","repeatingTransactions","newRepeating","updatedTransaction","repeatingTransactionGuid","PARENT_ENTITY","getProfileLabel","notificationType","copy","BudgetNotificationTypes","AccountNotificationTypes","InsightNotificationTypes","augmentNotificationProfiles","clientCommunicationsProfile","profiles","userCommunicationsProfile","detailedProfiles","clientEmailEnabled","clientSmsEnabled","clientPushEnabled","userEmailOptedOut","userSmsOptedOut","userPushOptedOut","label","children","child","deliveryMethods","ccp","np","devices","rules","updatedDevice","verified","COLUMN_NAMES","TABLE_CONST","buildDetailedTransactions","sortAndFilterTransactions","flattenTransactionsWithSplits","taggings","tags","tagGuid","transactionGuid","existingRule","newTransaction","TransactionType","fromDate","fromDateISO","formatISO","endOfToday","updates","txn","taggingGuid","t","updatedTransactions","splits","filtered","tagGuids","currentTaggings","currentTagGuids","incomingTagGuids","DEFAULT_TRANSACTION","valid","showInsights","height","width","expandedSplits","splitGuid","manualTransaction","addSeconds","length","filterAndSortCategoriesWithTransactions","differenceInCalendarMonths","startMonth","endMonth","buildCategoryDetailsChartData","features","updatedUser"],"mappings":"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"}
|