@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":"index.es.js","sources":["../../src/transactions/components/shared/transactiontable/cells/AccountCell.tsx","../../src/transactions/components/shared/transactiontable/cells/AmountCell.tsx","../../src/transactions/components/shared/transactiontable/cells/CategoryCell.tsx","../../src/transactions/components/shared/transactiontable/cells/DateCell.tsx","../../src/transactions/components/shared/transactiontable/cells/FlagCell.tsx","../../src/transactions/components/shared/transactiontable/cells/HeaderCell.tsx","../../src/transactions/components/shared/transactiontable/cells/PayeeCell.tsx","../../src/transactions/components/shared/TransactionTable.tsx","../../src/transactions/components/shared/transactiondetails/ManualTransactionDetails.tsx","../../src/transactions/components/transactionwidget/AddAccountModal.tsx","../../src/transactions/components/transactionwidget/actions/EditCategoryAction.tsx","../../src/transactions/TransactionWidget.tsx"],"sourcesContent":["import { GridCellParams } from '@mui/x-data-grid'\n\nimport { Text } from '@mxenabled/mxui'\n\nconst AccountCell = (params: GridCellParams) => (\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {`${params.row.account}`}\n {params.row.number && ` | ${params.row.number}`}\n </Text>\n)\n\nexport default AccountCell\n","import Stack from '@mui/material/Stack'\n\nimport { GridCellParams } from '@mui/x-data-grid'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { useTransactionStore } from '../../../../../common'\nimport { TransactionType } from '../../../../../core'\n\nimport { useTransactionsUiStore } from '../../../../context/hooks'\nimport { formatCurrency } from '../../../../../core/utils/NumberFormatting'\n\nconst AmountCell = (params: GridCellParams) => {\n const { associatedBeats } = useTransactionStore()\n const { showInsights } = useTransactionsUiStore()\n\n const { amount, transaction_type } = params.row\n const beat = associatedBeats.find((beat) => beat.associated_transaction_guid === params.row.guid)\n\n const isCredit = transaction_type === TransactionType.CREDIT\n\n return (\n <Stack alignItems=\"flex-end\" tabIndex={params.tabIndex}>\n <Text bold={isCredit} color={isCredit ? 'success.main' : 'text.primary'} variant=\"body2\">\n {isCredit ? '+' : ''}\n {formatCurrency(amount, '0,0.00')}\n </Text>\n {beat && showInsights && (\n <Text bold={true} color=\"primary.light\" variant=\"caption\">\n {beat.short_title}\n </Text>\n )}\n </Stack>\n )\n}\n\nexport default AmountCell\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { GridCellParams } from '@mui/x-data-grid-pro'\n\nimport { Icon, Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../../../../common'\n\nconst CategoryCell = (params: GridCellParams) => {\n const { transactions: copy } = useGlobalCopyStore()\n const [isHover, setIsHover] = React.useState(false)\n\n return (\n <Stack\n alignItems=\"center\"\n direction=\"row\"\n gap={8}\n height=\"100%\"\n onMouseEnter={() => setIsHover(true)}\n onMouseLeave={() => setIsHover(false)}\n width=\"100%\"\n >\n {params.row.has_been_split && <Icon name=\"call_split\" size={16} />}\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {params.row.has_been_split ? copy.split_transaction_category_label : params.row.category}\n </Text>\n {!params.row.has_been_split && isHover && (\n <Icon name=\"edit\" sx={{ color: 'action.active' }} />\n )}\n </Stack>\n )\n}\n\nexport default observer(CategoryCell)\n","import { GridCellParams } from '@mui/x-data-grid'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { DATE_FORMATS_INTL, formatDate } from '../../../../../core/constants'\nimport { fromUnixUTC } from '../../../../../core/utils/DateUtil'\n\nconst DateCell = (params: GridCellParams) => {\n return (\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {formatDate(fromUnixUTC(params.row.date), DATE_FORMATS_INTL.MONTH_DAY)}\n </Text>\n )\n}\n\nexport default DateCell\n","import Box from '@mui/material/Box'\nimport { observer } from 'mobx-react-lite'\n\nimport { useTheme } from '@mui/material/styles'\nimport { GridRenderCellParams } from '@mui/x-data-grid-pro'\nimport { Icon } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../../../../common'\n\nconst FlagCell = (params: GridRenderCellParams) => {\n const theme = useTheme()\n const isDarkMode = theme.palette.mode === 'dark'\n\n const { transactions: transactionsCopy } = useGlobalCopyStore()\n const { is_flagged, is_hidden, has_been_viewed, parent_guid } = params.row\n const isChildOfSplit = !!parent_guid\n const hasNotBeenViewed = !has_been_viewed && !isChildOfSplit\n\n return (\n <Box\n aria-label={is_hidden ? transactionsCopy.is_excluded : transactionsCopy.is_flagged}\n tabIndex={params.tabIndex}\n >\n {is_flagged && (\n <Icon\n fill={true}\n name=\"flag\"\n size={16}\n sx={{ color: isDarkMode ? 'primary.main' : 'warning.dark' }}\n />\n )}\n {!is_flagged && is_hidden && <Icon name=\"visibility_off\" size={16} />}\n {hasNotBeenViewed && (\n <svg\n data-testid=\"svg\"\n style={{\n display: 'inline-block',\n height: 16,\n fill: theme.palette.primary.light,\n verticalAlign: 'middle',\n width: 16,\n }}\n viewBox=\"0 0 512 512\"\n >\n <circle cx=\"256\" cy=\"256\" r=\"60\" />\n </svg>\n )}\n </Box>\n )\n}\n\nexport default observer(FlagCell)\n","import { Text } from '@mxenabled/mxui'\n\nimport { GridColumnHeaderParams } from '@mui/x-data-grid'\n\nconst HeaderCell = (params: GridColumnHeaderParams) => (\n <Text fontWeight={600} variant=\"body2\">\n {params.colDef.headerName}\n </Text>\n)\n\nexport default HeaderCell\n","import Stack from '@mui/material/Stack'\n\nimport { GridCellParams } from '@mui/x-data-grid'\n\nimport { MerchantLogo, Text } from '@mxenabled/mxui'\n\ninterface PayeeCellProps extends GridCellParams {\n excludedText: string\n}\n\nconst PayeeCell = (params: PayeeCellProps) => {\n return (\n <Stack alignItems=\"center\" direction=\"row\" gap={8}>\n <MerchantLogo\n categoryGuid={params.row.top_level_category_guid || ''}\n merchantGuid={params.row.merchant_guid || ''}\n />\n <Stack alignItems=\"flex-start\" direction=\"column\">\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {params.row.payee}\n </Text>\n {params.row.is_hidden && <Text variant=\"caption\">{params.excludedText}</Text>}\n </Stack>\n </Stack>\n )\n}\n\nexport default PayeeCell\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Paper from '@mui/material/Paper'\nimport { DataGridPro, GridCellParams, GridColDef } from '@mui/x-data-grid-pro'\n\nimport {\n ANALYTICS_EVENTS,\n Loader,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useTransactionStore,\n} from '../../../common'\n\nimport { useTransactionsUiStore } from '../../context/hooks'\n\nimport {\n AccountCell,\n AmountCell,\n CategoryCell,\n DateCell,\n FlagCell,\n HeaderCell,\n PayeeCell,\n} from './transactiontable/cells'\n\ninterface TransactionTableProps {\n height?: number | string\n onCategoryClick?: (guid: string) => void\n onRowClick?: (guid: string) => void\n}\n\nconst TransactionTable: React.FC<TransactionTableProps> = ({\n height = '100dvh',\n onCategoryClick,\n onRowClick,\n}) => {\n const { onEvent } = useEvent()\n const { transactions: copy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n const { isLoading, sortedTransactions } = useTransactionStore()\n const { clearExpandedSplits, toggleSplit } = useTransactionsUiStore()\n\n React.useEffect(() => {\n return () => clearExpandedSplits()\n }, [])\n\n const rows = React.useMemo(\n () =>\n sortedTransactions.map((transaction) => ({\n id: transaction.guid,\n isHovering: false,\n ...transaction,\n })),\n [sortedTransactions],\n )\n\n const handleCellClick = ({ row: { id, guid, has_been_split }, field }: GridCellParams) => {\n if (has_been_split) return toggleSplit(id)\n\n if (field === 'category') {\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_TABLE_CLICK_CATEGORY, { guid })\n return onCategoryClick?.(guid)\n }\n\n return onRowClick?.(guid)\n }\n\n const handleCellKeyDown = (params: GridCellParams, event: React.KeyboardEvent) => {\n if (event.key !== 'Enter' && event.key !== ' ') return\n handleCellClick(params)\n }\n\n if (!isCopyLoaded) {\n return <Loader />\n }\n\n const columns: GridColDef[] = [\n {\n field: 'flag',\n headerName: '',\n minWidth: 32,\n width: 32,\n sortable: false,\n renderCell: (params) => <FlagCell {...params} />,\n renderHeader: () => <span aria-label={copy.transaction_status} role=\"presentation\" />,\n },\n {\n field: 'date',\n headerName: copy.date_title,\n width: 103,\n renderHeader: HeaderCell,\n renderCell: (params) => (params.row.parent_guid ? null : <DateCell {...params} />),\n sortingOrder: ['desc', 'asc'],\n },\n {\n cellClassName: 'vertical-align-center',\n field: 'payee',\n headerName: copy.payee_title,\n flex: 0.33,\n renderHeader: HeaderCell,\n renderCell: (params) => <PayeeCell {...params} excludedText={copy.is_excluded} />,\n sortingOrder: ['asc', 'desc'],\n },\n {\n field: 'category',\n headerName: copy.category_title,\n flex: 0.25,\n renderHeader: HeaderCell,\n renderCell: (params) => <CategoryCell {...params} />,\n sortingOrder: ['asc', 'desc'],\n },\n {\n field: 'account',\n headerName: copy.account_title,\n flex: 0.33,\n renderHeader: HeaderCell,\n renderCell: (params) => (params.row.parent_guid ? null : <AccountCell {...params} />),\n sortingOrder: ['asc', 'desc'],\n },\n {\n field: 'amount',\n headerName: copy.amount_title,\n flex: 0.25,\n renderHeader: HeaderCell,\n renderCell: AmountCell,\n align: 'right',\n headerAlign: 'right',\n sortingOrder: ['asc', 'desc'],\n },\n ]\n\n return (\n <Paper sx={{ height: height, px: 24, width: '100%', boxShadow: 'none' }}>\n <DataGridPro\n columns={columns}\n disableColumnFilter={true}\n disableColumnMenu={true}\n getCellClassName={(params) => {\n if (params.row.parent_guid) return 'split-row'\n if (params.row.is_hidden) return 'excluded-row'\n return ''\n }}\n hideFooter={true}\n initialState={{ sorting: { sortModel: [{ field: 'date', sort: 'desc' }] } }}\n loading={isLoading}\n onCellClick={handleCellClick}\n onCellKeyDown={handleCellKeyDown}\n rows={rows}\n slotProps={{ baseIconButton: { color: 'secondary', sx: { ml: 8 } } }}\n sx={{\n '& .split-row': {\n bgcolor: 'background.default',\n },\n '& .excluded-row': {\n bgcolor: 'grey.50',\n color: 'text.secondary',\n },\n }}\n />\n </Paper>\n )\n}\n\nexport default observer(TransactionTable)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Divider from '@mui/material/Divider'\nimport MenuItem from '@mui/material/MenuItem'\nimport RadioGroup from '@mui/material/RadioGroup'\nimport Stack from '@mui/material/Stack'\n\nimport { TextField } from '@mxenabled/mxui'\nimport { ExpandMore as ExpandMoreIcon } from '@mxenabled/mx-icons'\n\nimport {\n CurrencyInput,\n SelectionBox,\n useAccountStore,\n useGlobalCopyStore,\n} from '../../../../common'\nimport { TransactionType } from '../../../../core'\n\nimport { useTransactionsUiStore } from '../../../context/hooks'\n\nimport { CategoryAction, DateAction, MemoAction, TagsAction } from './actions'\nimport { formatCurrency } from '../../../../core/utils/NumberFormatting'\n\ntype ManualAccount = {\n label: string\n value: string\n}\nconst ManualTransactionDetails = () => {\n const { visibleAccounts: accounts } = useAccountStore()\n const { common: commonCopy, transactions: copy } = useGlobalCopyStore()\n const { manualTransaction, setIsAmountValid, updateManualTransaction } = useTransactionsUiStore()\n\n const [amount, setAmount] = React.useState('')\n const [payee, setPayee] = React.useState('')\n\n const manualAccounts = React.useMemo(\n () => accounts.filter((account) => account.is_manual),\n [accounts],\n ).map((account) => {\n return {\n label: `${account.name} | ${formatCurrency(account.balance, '0,0.00')}`,\n value: account.guid,\n } as ManualAccount\n })\n\n const currencyCopy = {\n error_amount_is_invalid: commonCopy.currency_input.error_amount_is_invalid,\n error_amount_must_be_equal_to: commonCopy.currency_input.error_amount_must_be_equal_to,\n error_amount_must_be_less_than_or_equal_to:\n commonCopy.currency_input.error_amount_must_be_less_than_or_equal_to,\n enter_amount: commonCopy.currency_input.enter_amount,\n }\n\n const handleAmountChanged = (amount: string) => {\n setAmount(amount)\n updateManualTransaction({ ...manualTransaction, amount: Number(amount) })\n }\n\n const handleTransactionTypeChanged = (_event: React.ChangeEvent<HTMLElement>, value: string) => {\n updateManualTransaction({ ...manualTransaction, transaction_type: Number(value) })\n }\n\n const handlePayeeChanged = (payee: string) => {\n setPayee(payee)\n updateManualTransaction({ ...manualTransaction, payee, description: payee })\n }\n\n const handleAccountChanged = (guid: string) => {\n updateManualTransaction({ ...manualTransaction, account_guid: guid })\n }\n\n return (\n <Box className=\"mx-txn-manual-transaction-details\">\n <Stack gap={40} mx={24} my={32}>\n <Stack\n direction=\"row\"\n sx={{ flexDirection: { xs: 'column', sm: 'row' }, gap: { xs: 40, sm: 8 } }}\n >\n <CurrencyInput\n allowDecimals={true}\n amount={amount}\n ariaLabel={copy.amount_title}\n copy={currencyCopy}\n label={copy.amount_title}\n setAmount={handleAmountChanged}\n setHasValidInput={setIsAmountValid}\n sx={{ bgcolor: 'background.paper' }}\n type=\"number\"\n />\n <RadioGroup name=\"TransactionType\" onChange={handleTransactionTypeChanged} row={true}>\n <Stack alignItems=\"center\" direction=\"row\">\n <SelectionBox\n checked={manualTransaction.transaction_type === TransactionType.CREDIT}\n label={copy.manual_transaction_credit_button_label}\n sx={{ ml: { xs: 0, sm: 8 } }}\n tooltip={copy.manual_transaction_credit_button_tooltip}\n value={TransactionType.CREDIT}\n />\n <SelectionBox\n checked={manualTransaction.transaction_type === TransactionType.DEBIT}\n label={copy.manual_transaction_debit_button_label}\n tooltip={copy.manual_transaction_debit_button_tooltip}\n value={TransactionType.DEBIT}\n />\n </Stack>\n </RadioGroup>\n </Stack>\n\n <TextField\n label={copy.payee_title}\n name=\"payee\"\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => handlePayeeChanged(e.target.value)}\n sx={{ bgcolor: 'background.paper' }}\n value={payee}\n />\n\n <TextField\n label={copy.manual_transaction_select_an_account}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\n handleAccountChanged(e.target.value)\n }\n placeholder={copy.manual_transaction_select}\n select={true}\n slotProps={{\n inputLabel: { shrink: true },\n select: { defaultValue: -1, IconComponent: ExpandMoreIcon },\n }}\n sx={{ bgcolor: 'background.paper' }}\n >\n {manualAccounts.map((account) => (\n <MenuItem key={account.value} value={account.value}>\n {account.label}\n </MenuItem>\n ))}\n </TextField>\n </Stack>\n <Divider light={true} />\n <Box bgcolor=\"background.paper\">\n <CategoryAction transaction={manualTransaction} />\n <DateAction transaction={manualTransaction} />\n <MemoAction transaction={manualTransaction} />\n <TagsAction transaction={manualTransaction} />\n </Box>\n </Box>\n )\n}\n\nexport default observer(ManualTransactionDetails)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { Text } from '@mxenabled/mxui'\nimport { Dialog, Loader, useGlobalCopyStore, useGlobalUiStore } from '../../../common'\nimport { DialogProps } from '../../../common/components/dialog/Dialog'\n\nconst AddAccountModal: React.FC<DialogProps> = ({ copy, isOpen, onClose, onPrimaryAction }) => {\n const { common: commonCopy, transactions: modalCopy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n\n return isCopyLoaded ? (\n <Dialog\n copy={{\n title: copy.title,\n }}\n isOpen={isOpen}\n onClose={onClose}\n onPrimaryAction={onPrimaryAction}\n primaryText={modalCopy.add_manual_account}\n secondaryText={commonCopy.cancel_button}\n >\n <Text component=\"p\" sx={{ marginBottom: '20px' }} truncate={false}>\n {modalCopy.add_account_modal_message}\n </Text>\n <Text component=\"p\" truncate={false}>\n {modalCopy.add_account_modal_cta}\n </Text>\n </Dialog>\n ) : (\n <Loader />\n )\n}\n\nexport default observer(AddAccountModal)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\n\nimport { P } from '@mxenabled/mxui'\n\nimport { CategorySelectorDrawer } from '../../../../categories'\n\nimport { Dialog, useCategoryStore, useGlobalCopyStore } from '../../../../common'\nimport type { Transaction } from '../../../../core'\n\nimport { useTransactionStore } from '../../../../common'\nimport { buildDynamicCopy } from '../../../../core/utils/Localization'\n\ninterface EditCategoryActionProps {\n onClose: () => void\n transaction: Transaction\n}\n\nconst EditCategoryAction: React.FC<EditCategoryActionProps> = ({ onClose, transaction }) => {\n const { addOrUpdateTransactionRule, updateTransaction } = useTransactionStore()\n const { transactions: copy } = useGlobalCopyStore()\n\n const { categories } = useCategoryStore()\n\n const [categoryGuid, setCategoryGuid] = React.useState('')\n\n const category = React.useMemo(\n () => categories.find((item) => item.guid === categoryGuid),\n [categoryGuid],\n )\n\n const handleCategoryChanged = async (applyToAll: boolean) => {\n await updateTransaction({ ...transaction, category_guid: categoryGuid })\n if (applyToAll) {\n await addOrUpdateTransactionRule(categoryGuid, transaction)\n }\n\n setCategoryGuid('')\n onClose()\n }\n\n return (\n <Box className=\"mx-txn-edit-category-action\">\n <CategorySelectorDrawer\n initialSelected={transaction.category_guid}\n onClose={onClose}\n onSelect={(guid: string) => setCategoryGuid(guid)}\n showDrawer={!!transaction}\n title={copy.actions_select_a_category}\n />\n <Dialog\n copy={{\n title: buildDynamicCopy(\n copy.actions_apply_to_all_transaction_types,\n transaction.description,\n ) as string,\n }}\n isOpen={!!categoryGuid}\n onClose={() => handleCategoryChanged(false)}\n onPrimaryAction={() => handleCategoryChanged(true)}\n onSecondaryAction={() => handleCategoryChanged(false)}\n primaryText={copy.actions_apply_to_all}\n secondaryText={copy.actions_this_time_only}\n >\n <P variant=\"subtitle1\">\n {\n buildDynamicCopy(\n copy.actions_all_past_and_future,\n transaction.description,\n category?.name,\n ) as string\n }\n </P>\n </Dialog>\n </Box>\n )\n}\n\nexport default observer(EditCategoryAction)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { getUnixTime } from 'date-fns/getUnixTime'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport type { DateRange } from '@mui/x-date-pickers-pro'\n\nimport {\n ANALYTICS_EVENTS,\n Drawer,\n Loader,\n SearchBox,\n useAccountStore,\n useAppConfig,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useScreenSize,\n useTransactionStore,\n useUserStore,\n useWidgetLoadTimer,\n WidgetContainer,\n} from '../common'\nimport { WidgetProps } from '../core'\n\nimport { useTransactionsUiStore } from './context/hooks'\nimport { DEFAULT_TRANSACTION } from '../core/constants/Transaction'\nimport { exportTransactionsToCSV } from '../core/utils/TransactionUtils'\nimport ConnectDrawer from '../common/components/ConnectDrawer'\nimport ManualTransactionDetails from './components/shared/transactiondetails/ManualTransactionDetails'\nimport TransactionDetails from './components/shared/TransactionDetails'\nimport TransactionList from './components/shared/TransactionList'\nimport TransactionTable from './components/shared/TransactionTable'\nimport AddAccountModal from './components/transactionwidget/AddAccountModal'\nimport EditCategoryAction from './components/transactionwidget/actions/EditCategoryAction'\n\nimport { useCategoryUiStore } from '../categories'\nimport { useAriaLive } from '../common/hooks/useAriaLive'\nimport { SkeletonLoader } from '../common/components/SkeletonLoader'\nimport { buildDynamicCopy } from '../core/utils/Localization'\n\nconst HEADER_HEIGHT = 120\n\nenum Drawers {\n AddTransaction = 'addTransaction',\n Category = 'category',\n Transaction = 'transaction',\n}\n\ninterface TransactionWidgetProps extends WidgetProps {\n height?: string | number\n showInsights?: boolean\n}\n\nconst TransactionWidget: React.FC<TransactionWidgetProps> = ({\n onBackClick,\n onMenuClick,\n height = '100dvh',\n showInsights = false,\n sx = {},\n}) => {\n const { manualAccounts, refreshAccounts } = useAccountStore()\n const { is_mobile_webview, clientConfig, config } = useAppConfig()\n const { setSearchValue: setCategorySearchValue } = useCategoryUiStore()\n const { onEvent } = useEvent()\n const { common: commonCopy, transactions: copy } = useGlobalCopyStore()\n const { displayedDateRange, isInitialized, selectedAccountGuids, setDisplayedDate } =\n useGlobalUiStore()\n const { isDesktop, isTablet } = useScreenSize()\n const theme = useTheme()\n const {\n addTransaction,\n filter,\n isTransactionDataLoaded,\n loadTransactionData,\n setFilter,\n sortedTransactions,\n sortedTransactionsWithSplits,\n tags,\n detailedTransactions: transactions,\n updateTransaction,\n } = useTransactionStore()\n const {\n clearExpandedSplits,\n isAmountValid,\n manualTransaction,\n searchValue,\n setSearchValue,\n setShowInsights,\n updateManualTransaction,\n } = useTransactionsUiStore()\n const { userProfile } = useUserStore()\n\n const [drawerOpen, setDrawerOpen] = React.useState('')\n const [transactionGuid, setTransactionGuid] = React.useState('')\n\n const [addManualAccountModalOpen, setAddManualAccountModalOpen] = React.useState(false)\n const [showConnectWidget, setShowConnectWidget] = React.useState(false)\n\n const { announce, ariaLive } = useAriaLive()\n\n const selected_account_guid = clientConfig?.transactions?.selected_account_guid\n\n useWidgetLoadTimer({\n widgetName: 'TransactionWidget',\n isLoaded: isTransactionDataLoaded,\n })\n\n React.useEffect(() => {\n if (!isTransactionDataLoaded) {\n loadTransactionData().finally()\n }\n\n // Set the displayed date to the current month\n const startDate = startOfMonth(startOfToday())\n const endDate = endOfMonth(startOfToday())\n setDisplayedDate(startDate, endDate)\n\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_VIEW)\n }, [])\n\n React.useEffect(() => {\n if (isInitialized) {\n // Update the filter whenever the display date or account filter changes\n setFilter({\n accounts: selected_account_guid ? [selected_account_guid] : selectedAccountGuids,\n dateRange: { start: displayedDateRange.start, end: displayedDateRange.end },\n searchTerm: searchValue,\n })\n }\n }, [isInitialized, displayedDateRange, selectedAccountGuids])\n\n React.useEffect(() => {\n setShowInsights(showInsights)\n }, [showInsights])\n\n React.useEffect(() => {\n if (isInitialized) {\n announce(\n buildDynamicCopy(copy.showing_transactions_count, sortedTransactions.length) as string,\n )\n }\n }, [isInitialized, sortedTransactions])\n\n const transaction = transactionGuid\n ? transactions.find((transaction) => transaction.guid === transactionGuid)\n : undefined\n\n const isTransactionValid =\n isAmountValid &&\n Boolean(manualTransaction.payee) &&\n Boolean(manualTransaction.account_guid) &&\n Boolean(manualTransaction.category_guid)\n\n const handleDateChanged = (range: DateRange<Date>) => {\n clearExpandedSplits()\n setDisplayedDate(range[0] as Date, range[1] as Date)\n }\n\n const handleSearch = (searchTerm: string) => {\n setSearchValue(searchTerm)\n setFilter({\n ...filter,\n searchTerm,\n })\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_SEARCH, { search_term: searchTerm })\n }\n\n const handleExportCsvClick = () => {\n exportTransactionsToCSV(sortedTransactionsWithSplits, tags)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_EXPORT)\n }\n\n const handleAddTransactionClick = () => {\n if (manualAccounts.length > 0) {\n updateManualTransaction({\n ...DEFAULT_TRANSACTION,\n date: getUnixTime(startOfToday()),\n user_guid: userProfile?.user_guid || '',\n })\n\n setDrawerOpen(Drawers.AddTransaction)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_ADD)\n } else {\n setAddManualAccountModalOpen(true)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_ADD_MANUAL_ACCOUNT_MODAL)\n }\n }\n\n const handleAddTransaction = async () => {\n if (isTransactionValid) {\n await addTransaction(manualTransaction)\n }\n\n setDrawerOpen('')\n }\n\n const handleAddManualAccountClick = () => {\n setAddManualAccountModalOpen(false)\n setShowConnectWidget(true)\n }\n\n const handleConnectWidgetClose = async () => {\n setShowConnectWidget(false)\n await refreshAccounts()\n }\n\n const handleTransactionDrawerClose = async () => {\n // mark transaction as viewed\n if (transaction && !transaction.has_been_viewed) {\n await updateTransaction({ ...transaction, has_been_viewed: true })\n }\n setDrawerOpen('')\n }\n\n if (!isInitialized) {\n return <Loader />\n }\n\n const actions = []\n\n if (!is_mobile_webview && (isDesktop || isTablet)) {\n actions.push({\n iconName: 'open_in_new',\n label: copy.export_csv_btn,\n onClick: handleExportCsvClick,\n })\n }\n\n if (config.show_connections_widget_in_master) {\n actions.push({\n iconName: 'add',\n label: copy.add_transaction_btn,\n onClick: handleAddTransactionClick,\n })\n }\n\n return (\n <WidgetContainer\n actions={actions}\n calendarActions={{\n onRangeChanged: handleDateChanged,\n }}\n hasDivider={true}\n onAccountsFilterClick={() => onEvent(ANALYTICS_EVENTS.ACCOUNTS_CLICK_FILTER)}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n showAccountFilter={!selected_account_guid}\n sx={sx}\n title={copy.transactions_title}\n >\n {!isTransactionDataLoaded ? (\n <SkeletonLoader sx={{ m: 48 }} variant=\"list\" />\n ) : (\n <Stack>\n {ariaLive}\n <Box>\n <SearchBox\n onChange={handleSearch}\n placeholder={copy.action_bar_search_placeholder}\n searchValue={searchValue}\n />\n </Box>\n\n <Box\n sx={{\n [theme.breakpoints.down('md')]: { display: 'none' },\n [theme.breakpoints.up('md')]: { display: 'block' },\n }}\n >\n <TransactionTable\n height={`calc(${height} - ${HEADER_HEIGHT}px)`}\n onCategoryClick={(guid: string) => {\n setTransactionGuid(guid)\n setDrawerOpen(Drawers.Category)\n }}\n onRowClick={(guid: string) => {\n setTransactionGuid(guid)\n setDrawerOpen(Drawers.Transaction)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_DETAILS, { transaction_guid: guid })\n }}\n />\n </Box>\n <Box\n sx={{\n [theme.breakpoints.down('md')]: { display: 'block' },\n [theme.breakpoints.up('md')]: { display: 'none' },\n }}\n >\n <TransactionList\n height={`calc(${height} - ${HEADER_HEIGHT}px)`}\n onClick={(guid: string) => {\n setTransactionGuid(guid)\n setDrawerOpen(Drawers.Transaction)\n }}\n showInsights={showInsights}\n />\n </Box>\n </Stack>\n )}\n\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={drawerOpen === Drawers.Transaction && Boolean(transaction)}\n onClose={handleTransactionDrawerClose}\n title={copy.details_title}\n >\n {transaction && <TransactionDetails transaction={transaction} />}\n </Drawer>\n {transaction && drawerOpen === Drawers.Category && (\n <EditCategoryAction\n onClose={() => {\n setCategorySearchValue('')\n setDrawerOpen('')\n setTransactionGuid('')\n }}\n transaction={transaction}\n />\n )}\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={drawerOpen === Drawers.AddTransaction}\n isPrimaryDisabled={!isTransactionValid}\n onClose={() => setDrawerOpen('')}\n onPrimaryAction={handleAddTransaction}\n title={copy.add_transaction_title}\n >\n <ManualTransactionDetails />\n </Drawer>\n <AddAccountModal\n copy={{ title: copy.add_manual_account }}\n isOpen={addManualAccountModalOpen}\n onClose={() => {\n setAddManualAccountModalOpen(false)\n }}\n onPrimaryAction={handleAddManualAccountClick}\n />\n <ConnectDrawer\n onClose={handleConnectWidgetClose}\n showConnectWidget={showConnectWidget}\n title={copy.add_manual_account}\n />\n </WidgetContainer>\n )\n}\n\nexport default observer(TransactionWidget)\n"],"names":["AccountCell","params","jsxs","Text","AmountCell","associatedBeats","useTransactionStore","showInsights","useTransactionsUiStore","amount","transaction_type","beat","isCredit","TransactionType","Stack","formatCurrency","jsx","CategoryCell","copy","useGlobalCopyStore","isHover","setIsHover","React","Icon","CategoryCell$1","observer","DateCell","formatDate","fromUnixUTC","DATE_FORMATS_INTL","FlagCell","theme","useTheme","isDarkMode","transactionsCopy","is_flagged","is_hidden","has_been_viewed","parent_guid","hasNotBeenViewed","Box","FlagCell$1","HeaderCell","PayeeCell","MerchantLogo","TransactionTable","height","onCategoryClick","onRowClick","onEvent","useEvent","isCopyLoaded","useGlobalUiStore","isLoading","sortedTransactions","clearExpandedSplits","toggleSplit","rows","transaction","handleCellClick","id","guid","has_been_split","field","ANALYTICS_EVENTS","handleCellKeyDown","event","Loader","columns","Paper","DataGridPro","TransactionTable$1","ManualTransactionDetails","accounts","useAccountStore","commonCopy","manualTransaction","setIsAmountValid","updateManualTransaction","setAmount","payee","setPayee","manualAccounts","account","currencyCopy","handleAmountChanged","handleTransactionTypeChanged","_event","value","handlePayeeChanged","handleAccountChanged","CurrencyInput","RadioGroup","SelectionBox","TextField","e","ExpandMoreIcon","MenuItem","Divider","CategoryAction","DateAction","MemoAction","TagsAction","ManualTransactionDetails$1","AddAccountModal","isOpen","onClose","onPrimaryAction","modalCopy","Dialog","AddAccountModal$1","EditCategoryAction","addOrUpdateTransactionRule","updateTransaction","categories","useCategoryStore","categoryGuid","setCategoryGuid","category","item","handleCategoryChanged","applyToAll","CategorySelectorDrawer","buildDynamicCopy","P","EditCategoryAction$1","HEADER_HEIGHT","TransactionWidget","onBackClick","onMenuClick","sx","refreshAccounts","is_mobile_webview","clientConfig","config","useAppConfig","setCategorySearchValue","useCategoryUiStore","displayedDateRange","isInitialized","selectedAccountGuids","setDisplayedDate","isDesktop","isTablet","useScreenSize","addTransaction","filter","isTransactionDataLoaded","loadTransactionData","setFilter","sortedTransactionsWithSplits","tags","transactions","isAmountValid","searchValue","setSearchValue","setShowInsights","userProfile","useUserStore","drawerOpen","setDrawerOpen","transactionGuid","setTransactionGuid","addManualAccountModalOpen","setAddManualAccountModalOpen","showConnectWidget","setShowConnectWidget","announce","ariaLive","useAriaLive","selected_account_guid","useWidgetLoadTimer","startDate","startOfMonth","startOfToday","endDate","endOfMonth","isTransactionValid","handleDateChanged","range","handleSearch","searchTerm","handleExportCsvClick","exportTransactionsToCSV","handleAddTransactionClick","DEFAULT_TRANSACTION","getUnixTime","handleAddTransaction","handleAddManualAccountClick","handleConnectWidgetClose","handleTransactionDrawerClose","actions","WidgetContainer","SearchBox","TransactionList","SkeletonLoader","Drawer","TransactionDetails","ConnectDrawer","TransactionWidget_default"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../src/common/components/charts/stackedlinechart/CategoryIconLabel.tsx","../../src/common/components/charts/stackedlinechart/CustomAreaTooltip.tsx","../../src/common/components/charts/stackedlinechart/CustomLegend.tsx","../../src/common/components/charts/stackedlinechart/CustomPointTooltip.tsx","../../src/common/components/charts/StackedLineChart.tsx","../../src/trends/components/TrendsViewToggle.tsx","../../src/trends/components/DateRangeText.tsx","../../src/trends/components/trendstable/CategoryCell.tsx","../../src/trends/components/trendstable/AmountCell.tsx","../../src/trends/utils/TrendsTable.ts","../../src/trends/components/trendstable/AccessibleSortIcon.tsx","../../src/trends/components/trendstable/TrendsTable.tsx","../../src/trends/components/TrendsTableContainer.tsx","../../src/trends/components/TrendsDrawer.tsx","../../src/trends/TrendsFullWidget.tsx","../../src/trends/components/SpendingChart.tsx","../../src/trends/TrendsMiniWidget.tsx","../../src/trends/components/TrendsMicroSpendingIncomeBox.tsx","../../src/trends/ZeroStateMicroWidget.tsx","../../src/trends/TrendsMicroWidget.tsx","../../src/common/components/listitems/CollapseExpandListItem.tsx","../../src/trends/components/CategoriesListItem.tsx","../../src/trends/components/CategoriesList.tsx","../../src/trends/components/TrendsInsights.tsx","../../src/trends/components/CategoryDetailChart.tsx","../../src/trends/components/CategoryDetails.tsx","../../src/trends/components/TrendsChartTotals.tsx","../../src/trends/constants/TrendsInsights.ts","../../src/trends/utils/TrendsWidget.ts","../../src/trends/TrendsWidget.tsx"],"sourcesContent":["import React from 'react'\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport { CategoryIcon, Text } from '@mxenabled/mxui'\n\nimport { useCategoryStore, useGlobalCopyStore } from '../../../context'\nimport { buildDynamicCopy } from '../../../../core/utils/Localization'\n\nexport const CategoryIconLabel: React.FC<{\n categoryGuid: string\n topLevelCategoryGuid: string\n}> = ({ categoryGuid, topLevelCategoryGuid }) => {\n const { categories: copy } = useGlobalCopyStore()\n const { getCategoryName } = useCategoryStore()\n const categoryName = getCategoryName(categoryGuid)\n\n return (\n <Stack alignItems=\"center\" direction=\"column\" gap=\"8\" justifyContent=\"center\" mb={4}>\n <Box\n aria-label={buildDynamicCopy(copy.category_icon_label_aria, categoryName) as string}\n mb={4}\n role=\"img\"\n >\n <CategoryIcon categoryGuid={topLevelCategoryGuid} />\n </Box>\n <Text variant=\"body1\">{categoryName}</Text>\n </Stack>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Card from '@mui/material/Card'\nimport CardContent from '@mui/material/CardContent'\nimport Divider from '@mui/material/Divider'\nimport Grid from '@mui/material/Grid'\nimport { Text } from '@mxenabled/mxui'\nimport { useTheme } from '@mui/material/styles'\n\nimport { CategoryIconLabel } from './CategoryIconLabel'\nimport { CurrencyText } from '../../CurrencyText'\n\ntype DataPoint = { x: string | number; y: number }\n\nconst CustomAreaTooltip: React.FC<{\n categoryGuids: { guid: string; topLevelGuid: string }\n hoveredAreaData: DataPoint[]\n cursorPosition: { x: number; y: number }\n chartContainerRef: React.RefObject<HTMLDivElement | null>\n}> = ({\n categoryGuids: { guid, topLevelGuid },\n hoveredAreaData,\n cursorPosition,\n chartContainerRef,\n}) => {\n const theme = useTheme()\n const tooltipRef = useRef<HTMLDivElement>(null)\n const [adjustedPos, setAdjustedPos] = useState({ x: cursorPosition.x, y: cursorPosition.y })\n\n useEffect(() => {\n const adjustTooltipPosition = () => {\n const tooltipEl = tooltipRef.current\n const chartEl = chartContainerRef.current\n\n if (!tooltipEl || !chartEl) return\n\n const tooltipRect = tooltipEl.getBoundingClientRect()\n const containerRect = chartEl.getBoundingClientRect()\n\n let newX = cursorPosition.x\n let newY = cursorPosition.y\n\n // If the tooltip overflows the right or left edge\n if (newX + tooltipRect.width * 2 > containerRect.right) {\n // Move the tooltip to the left of the cursor\n newX = cursorPosition.x - tooltipRect.width\n } else if (newX - tooltipRect.width < containerRect.left) {\n // Move the tooltip to the right of the cursor\n newX = cursorPosition.x\n }\n\n // If the tooltip overflows the bottom edge\n if (newY + tooltipRect.height * 2 > containerRect.bottom) {\n // Move the tooltip to the top of the cursor\n newY = cursorPosition.y - tooltipRect.height\n }\n\n setAdjustedPos({ x: newX, y: newY })\n }\n\n adjustTooltipPosition()\n }, [cursorPosition, chartContainerRef])\n\n if (!hoveredAreaData) return null\n\n const seriesSum = hoveredAreaData.reduce((sum, dataPoint) => sum + dataPoint.y, 0)\n\n return (\n <Card\n ref={tooltipRef}\n sx={{\n position: 'absolute',\n top: adjustedPos.y,\n left: adjustedPos.x,\n width: 250,\n pointerEvents: 'none',\n }}\n >\n <CardContent>\n <Box alignItems=\"center\" display=\"flex\" flexDirection=\"column\">\n <CategoryIconLabel categoryGuid={guid} topLevelCategoryGuid={topLevelGuid} />\n <Text variant=\"body2\">{`${hoveredAreaData.length}-month total`}</Text>\n <CurrencyText amount={seriesSum} bold={true} formatString=\"0,0\" variant=\"body2\" />\n </Box>\n\n <Divider sx={{ my: 16, width: '100%' }} />\n\n <Grid container={true}>\n {hoveredAreaData.map((dataPoint, index) => (\n <React.Fragment key={index}>\n {index > 0 && index % 3 === 0 && <Divider sx={{ my: 16, width: '100%' }} />}\n <Grid size={4}>\n <Box alignItems=\"center\" display=\"flex\" flexDirection=\"column\">\n <Text color={theme.palette.text.secondary} variant=\"caption\">\n {dataPoint.x}\n </Text>\n <CurrencyText\n amount={dataPoint.y}\n bold={true}\n formatString=\"0,0\"\n variant=\"body1\"\n />\n </Box>\n </Grid>\n </React.Fragment>\n ))}\n </Grid>\n </CardContent>\n </Card>\n )\n}\n\nexport default observer(CustomAreaTooltip)\n","import React from 'react'\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport { Text } from '@mxenabled/mxui'\n\nimport { useScreenSize } from '../../../hooks'\nimport { CategoryColors } from '../../../../core/constants'\nimport { useCategoryStore } from '../../../context'\n\ninterface CustomLegendProps {\n sx?: object\n categoryGuids: { guid: string; top_level_guid: string }[]\n hoveredLegend: string | null\n legendRef?: (instance: HTMLElement | null) => void\n onHoverLegend: (label: string | null) => void\n onClickLegend: (label: string | null) => void\n}\n\nexport const CustomLegend: React.FC<CustomLegendProps> = ({\n sx,\n categoryGuids,\n hoveredLegend,\n legendRef,\n onHoverLegend,\n onClickLegend,\n}) => {\n const { isMobile } = useScreenSize()\n const { getCategoryName } = useCategoryStore()\n\n return (\n <Stack\n direction=\"row\"\n flexWrap=\"wrap\"\n gap={isMobile ? 2 : 6}\n justifyContent=\"start\"\n ref={legendRef}\n sx={sx}\n >\n {categoryGuids.map(({ guid, top_level_guid }) => {\n const isHovered = hoveredLegend === guid\n const categoryColor = CategoryColors[guid]\n const topLevelCategoryColor = CategoryColors[top_level_guid]\n const baseBackground = categoryColor ?? topLevelCategoryColor ?? CategoryColors.default\n const transparentBackground = baseBackground + '33'\n const hoveredBackground = isHovered ? baseBackground : transparentBackground\n const backgroundColor = hoveredLegend ? hoveredBackground : baseBackground\n\n return (\n <Button\n key={guid}\n onClick={() => onClickLegend(guid)}\n onMouseEnter={() => onHoverLegend(guid)}\n onMouseLeave={() => onHoverLegend(null)}\n sx={{\n color: 'text.primary',\n fontWeight: 'normal',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n paddingX: 8,\n paddingY: 4,\n borderRadius: 1,\n opacity: isHovered ? 1 : 0.7,\n }}\n >\n <Box\n sx={{\n width: 16,\n height: 16,\n marginRight: isMobile ? 5 : 10,\n borderRadius: '2px',\n backgroundColor,\n }}\n />\n <Text variant=\"body1\">{getCategoryName(guid)}</Text>\n </Button>\n )\n })}\n </Stack>\n )\n}\n","import React from 'react'\n\nimport Box from '@mui/material/Box'\nimport Card from '@mui/material/Card'\nimport CardContent from '@mui/material/CardContent'\nimport { useTheme } from '@mui/material/styles'\n\nimport { useItemTooltip } from '@mui/x-charts/ChartsTooltip'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { CategoryIconLabel } from './CategoryIconLabel'\nimport { CurrencyText } from '../../CurrencyText'\nimport { DATE_FORMATS_INTL, formatDate } from '../../../../core/constants'\n\ninterface CustomPointTooltipProps {\n categoryGuids: { guid: string; topLevelGuid: string }\n series: Array<{ id: string; data: number[] }>\n xData: Date[]\n}\n\n// Custom tooltip for hovering on line points\nexport const CustomPointTooltip: React.FC<CustomPointTooltipProps> = ({\n categoryGuids: { guid, topLevelGuid },\n series: allSeries,\n xData,\n}) => {\n const tooltip = useItemTooltip()\n const theme = useTheme()\n\n if (!tooltip?.identifier) return null\n\n const { dataIndex, seriesId } = tooltip.identifier\n if (dataIndex == null || !seriesId) return null\n\n const seriesData = allSeries.find((s) => s.id === seriesId)\n const dataValue = seriesData?.data?.[dataIndex]\n const dataDate = xData?.[dataIndex]\n\n if (dataValue === undefined || !dataDate) return null\n\n return (\n <Card sx={{ pt: 4, px: 8 }}>\n <CardContent>\n <Box alignItems=\"center\" display=\"flex\" flexDirection=\"column\">\n <CategoryIconLabel categoryGuid={guid} topLevelCategoryGuid={topLevelGuid} />\n <Text color={theme.palette.text.secondary} variant=\"body2\">\n {formatDate(dataDate, DATE_FORMATS_INTL.MONTH_SHORT_YEAR)}\n </Text>\n <CurrencyText amount={String(dataValue)} bold={true} formatString=\"0,0\" variant=\"body1\" />\n </Box>\n </CardContent>\n </Card>\n )\n}\n","import React from 'react'\n\nimport numeral from 'numeral'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport type { LineSeriesType, HighlightItemData } from '@mui/x-charts'\nimport { ChartsTooltipContainer } from '@mui/x-charts/ChartsTooltip'\nimport { LineChart } from '@mui/x-charts/LineChart'\n\nimport { DATE_FORMATS_INTL, formatDate } from '../../../core/constants'\nimport { useScreenSize } from '../../hooks/useScreenSize'\nimport { useDimensions } from '../../hooks/useDimensions'\nimport CustomAreaTooltip from './stackedlinechart/CustomAreaTooltip'\nimport { CustomLegend } from './stackedlinechart/CustomLegend'\nimport { CustomPointTooltip } from './stackedlinechart/CustomPointTooltip'\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\n\ntype DataPoint = { x: Date; y: number }\ntype Dataset = DataPoint[]\n\ninterface StackedLineChartData {\n top_level_category_guid: string\n category_guid: string\n category_name: string\n category_color: string\n dataset: Dataset\n}\n\ninterface StackedLineChartProps {\n stackedDatasets: StackedLineChartData[]\n unstackedDatasets?: StackedLineChartData[]\n onHoverArea?: (category: string) => void\n onHoverPoint?: (category: string) => void\n onHoverLegend?: (category: string) => void\n onClickLegend?: (category: string) => void\n availableHeight?: number\n minimumHeight?: number\n}\n\n// TODO: Use v8 X-Charts built-in features to avoid custom implementation\n\nexport const StackedLineChart: React.FC<StackedLineChartProps> = ({\n onHoverArea,\n onHoverPoint,\n onHoverLegend,\n onClickLegend,\n stackedDatasets,\n unstackedDatasets = [],\n availableHeight = 0,\n minimumHeight = 350,\n}) => {\n const theme = useTheme()\n const { isMobile } = useScreenSize()\n const [legendRef, { height: legendHeight }] = useDimensions()\n const chartContainerRef = React.useRef<HTMLDivElement>(null)\n const [chartHeight, setChartHeight] = React.useState<number>(0)\n\n // Control responsive chart height based on available height\n React.useEffect(() => {\n const newChartHeight = Math.max(availableHeight - legendHeight, minimumHeight)\n setChartHeight(newChartHeight)\n }, [availableHeight, legendHeight])\n\n const [hoveredLegend, setHoveredLegend] = React.useState<string | null>(null)\n const [hoverState, setHoverState] = React.useState({\n hoveredSeriesId: null as string | null,\n hoveredAreaData: null as DataPoint[] | null,\n isAreaHovered: false,\n cursorPos: { x: 0, y: 0 },\n })\n\n const { hoveredSeriesId, hoveredAreaData, isAreaHovered, cursorPos } = hoverState\n const showAreaTooltip = isAreaHovered && hoveredSeriesId && hoveredAreaData\n const showPointTooltip = !showAreaTooltip\n\n const datasets = [...stackedDatasets, ...unstackedDatasets]\n const xTicks = datasets[0]?.dataset.length ?? 0\n const xData = datasets.flatMap((data) => data.dataset.map((d) => d.x))\n const yData = datasets.flatMap((data) => data.dataset.map((d) => d.y))\n\n // Calculate max cumulative heights for stacked datasets\n const cumulativeHeights = stackedDatasets[0]?.dataset?.map((_, i) =>\n stackedDatasets.reduce((sum, dataset) => sum + dataset.dataset[i]?.y || 0, 0),\n ) ?? [0]\n const stackedMax = Math.max(...cumulativeHeights)\n const unstackedMax = Math.max(\n ...unstackedDatasets.flatMap((data) => data.dataset.map((d) => d.y)),\n )\n\n const yMin = Math.floor(Math.min(...yData) / 100) * 100\n const yMax = Math.ceil(Math.max(stackedMax, unstackedMax) / 100) * 100\n\n const stackedSeries = stackedDatasets.map((data, index) => ({\n id: `stacked-${index}`,\n guid: data.category_guid,\n top_level_guid: data.top_level_category_guid,\n area: true,\n color: stackedDatasets[index].category_color ?? theme.palette.primary.main,\n data: data.dataset.map((d) => d.y),\n label: stackedDatasets[index].category_name,\n stack: 'total',\n type: 'line',\n highlightScope: { highlight: 'item' },\n valueFormatter: (value: number) => formatCurrency(value, '0,0'),\n }))\n\n const unstackedSeries = unstackedDatasets.map((data, index) => ({\n id: `unstacked-${index}`,\n guid: data.category_guid,\n top_level_guid: data.top_level_category_guid,\n area: false,\n color: data.category_color,\n data: data.dataset.map((d) => d.y),\n label: data.category_name,\n type: 'line',\n valueFormatter: (value: number) => formatCurrency(value, '0,0'),\n }))\n\n const series = [...stackedSeries, ...unstackedSeries]\n const guids = [\n ...stackedSeries.map(({ guid, top_level_guid }) => ({\n guid,\n top_level_guid,\n })),\n ...unstackedSeries.map(({ guid, top_level_guid }) => ({\n guid,\n top_level_guid,\n })),\n ]\n\n const getSeriesCategoryGuids = (seriesId: string) => {\n const isStacked = seriesId.startsWith('stacked-')\n const dataset = isStacked\n ? stackedDatasets[parseInt(seriesId.split('-')[1])]\n : unstackedDatasets[parseInt(seriesId.split('-')[1])]\n return {\n guid: dataset?.category_guid,\n topLevelGuid: dataset?.top_level_category_guid,\n }\n }\n\n const handleHoverLegend = (guid: string | null) => {\n setHoveredLegend(guid)\n onHoverLegend?.(guid ?? '')\n }\n\n const handleClickLegend = (guid: string | null) => {\n onClickLegend?.(guid ?? '')\n }\n\n const handleClickArea = () => {\n const clickedSeriesGuid = getSeriesCategoryGuids(String(hoveredSeriesId)).guid\n if (clickedSeriesGuid) onClickLegend?.(clickedSeriesGuid)\n }\n\n const handleHighlightChange = (highlightedItem: HighlightItemData | null) => {\n const hoveredSeriesId = String(highlightedItem?.seriesId)\n const hoveredSeriesGuid = getSeriesCategoryGuids(hoveredSeriesId).guid\n const hoveredSeries = series.find((s) => s.id === hoveredSeriesId)\n const isPointHovered = hoveredSeries && highlightedItem?.dataIndex !== undefined\n const isAreaHovered = hoveredSeries && highlightedItem?.dataIndex === undefined\n\n if (isPointHovered) {\n setHoverState({\n hoveredSeriesId: hoveredSeriesId,\n hoveredAreaData: null,\n isAreaHovered: false,\n cursorPos,\n })\n onHoverPoint?.(hoveredSeriesGuid)\n } else if (isAreaHovered) {\n const hoveredDataPoints =\n hoveredSeries?.data.map((yValue, index) => ({\n x: xData[index],\n y: yValue,\n })) ?? []\n\n setHoverState({\n hoveredSeriesId: hoveredSeriesId,\n hoveredAreaData: hoveredDataPoints,\n isAreaHovered: true,\n cursorPos,\n })\n onHoverArea?.(hoveredSeriesGuid)\n } else {\n setHoverState({\n hoveredSeriesId: null,\n hoveredAreaData: null,\n isAreaHovered: false,\n cursorPos,\n })\n }\n }\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n if (\n event.target instanceof Element &&\n event.target.classList[0]?.includes('MuiMarkElement-root')\n )\n return\n\n const rect = event.currentTarget.getBoundingClientRect()\n setHoverState((prev) => ({\n ...prev,\n cursorPos: {\n x: event.clientX - rect.left,\n y: event.clientY - rect.top,\n },\n }))\n }\n\n const customStyles = {\n p: 4,\n '& .MuiBarLabel-root': {\n fontSize: 10,\n fontWeight: 600,\n },\n '& .MuiAreaElement-root': {\n opacity: 0.4,\n transition: 'opacity 0.3s ease',\n },\n '& .MuiAreaElement-root:hover': {\n opacity: 1,\n },\n '& [class*=\"MuiLineElement-series-unstacked-\"]': {\n strokeWidth: 3,\n },\n ...(hoveredLegend &&\n stackedSeries.reduce<Record<string, any>>((acc, _, index) => {\n const selector = `.MuiAreaElement-series-stacked-${index}`\n acc[selector] = {\n opacity: stackedSeries[index].guid === hoveredLegend ? 0.9 : 0.2,\n }\n return acc\n }, {})),\n }\n\n return (\n <Box\n onMouseMove={handleMouseMove}\n ref={chartContainerRef}\n sx={{\n position: 'relative',\n touchAction: 'pan-y',\n '& svg': {\n touchAction: 'pan-y',\n userSelect: 'none',\n },\n '& .recharts-wrapper': {\n touchAction: 'pan-y',\n },\n }}\n >\n <Stack\n direction={{ xs: 'column', md: 'column' }}\n spacing={{ xs: 0, md: 4 }}\n sx={{ width: '100%', position: 'relative' }}\n >\n <LineChart\n height={chartHeight}\n hideLegend={true}\n margin={{ bottom: 24, left: 12, right: 54, top: 48 }}\n onAreaClick={handleClickArea}\n onHighlightChange={handleHighlightChange}\n series={series as LineSeriesType[]}\n skipAnimation={true}\n slotProps={{\n tooltip: { trigger: showPointTooltip ? 'item' : 'none' },\n }}\n slots={{\n tooltip:\n showPointTooltip && hoveredSeriesId\n ? (props) => (\n <ChartsTooltipContainer>\n <CustomPointTooltip\n {...props}\n categoryGuids={getSeriesCategoryGuids(hoveredSeriesId)}\n series={series}\n xData={xData}\n />\n </ChartsTooltipContainer>\n )\n : undefined,\n }}\n sx={customStyles}\n xAxis={[\n {\n data: xData,\n scaleType: 'time',\n valueFormatter: (value: Date) =>\n formatDate(value, DATE_FORMATS_INTL.MONTH_SHORT_YEAR),\n tickNumber: xTicks, // How many ticks to show on the x-axis\n },\n ]}\n yAxis={[\n {\n min: yMin,\n max: yMax || 100,\n valueFormatter: (value: number) => numeral(value).format('0a'),\n },\n ]}\n />\n <CustomLegend\n categoryGuids={guids}\n hoveredLegend={hoveredLegend}\n legendRef={legendRef}\n onClickLegend={handleClickLegend}\n onHoverLegend={handleHoverLegend}\n sx={{ px: isMobile ? 0 : 24 }}\n />\n\n {showAreaTooltip && (\n <CustomAreaTooltip\n categoryGuids={getSeriesCategoryGuids(hoveredSeriesId)}\n chartContainerRef={chartContainerRef}\n cursorPosition={cursorPos}\n hoveredAreaData={hoveredAreaData.map((point) => ({\n ...point,\n x: formatDate(point.x, DATE_FORMATS_INTL.MONTH_SHORT_YEAR),\n }))}\n />\n )}\n </Stack>\n </Box>\n )\n}\n","import { Icon } from '@mxenabled/mxui'\nimport ToggleButton from '@mui/material/ToggleButton'\nimport ToggleButtonGroup from '@mui/material/ToggleButtonGroup'\n\nimport { useGlobalCopyStore } from '../../common'\n\nexport type TrendsTabValue = 'Chart' | 'Table'\n\ninterface TrendsViewToggleProps {\n selectedTab: TrendsTabValue\n onTabChange: (_event: React.SyntheticEvent, newValue: TrendsTabValue) => void\n}\n\nconst TrendsViewToggle: React.FC<TrendsViewToggleProps> = ({ selectedTab, onTabChange }) => {\n const { common: copy } = useGlobalCopyStore()\n return (\n <ToggleButtonGroup\n aria-label={copy.view_toggle}\n exclusive={true}\n onChange={onTabChange}\n orientation=\"horizontal\"\n value={selectedTab}\n >\n {['Chart', 'Table'].map((tab) => (\n <ToggleButton\n aria-label={tab === 'Chart' ? copy.view_chart : copy.view_table}\n aria-pressed={selectedTab === tab}\n color=\"primary\"\n key={tab}\n sx={{ width: 56 }}\n value={tab}\n >\n {tab === 'Chart' ? (\n <Icon name=\"table_chart_view\" />\n ) : (\n <Icon name=\"format_list_bulleted\" />\n )}\n </ToggleButton>\n ))}\n </ToggleButtonGroup>\n )\n}\n\nexport default TrendsViewToggle\n","import React from 'react'\nimport { H3, Text } from '@mxenabled/mxui'\nimport Box from '@mui/material/Box'\nimport { useCategoryStore, useGlobalCopyStore, useScreenSize } from '../../common'\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\n\ninterface DateRangeTextProps {\n selectedDateRange: { start: Date; end: Date }\n selectedCategoryGuid: string\n}\n\nconst DateRangeText = ({ selectedDateRange, selectedCategoryGuid }: DateRangeTextProps) => {\n const { trends: copy } = useGlobalCopyStore()\n const { isMobile, isDesktop } = useScreenSize()\n const { getCategoryName } = useCategoryStore()\n\n // Build date range text for display\n // e.g. October 2023 - March 2024, or Oct 2023 - Mar 2024\n const dateRangeText = React.useMemo(() => {\n const startDate =\n selectedDateRange.start.getFullYear() === selectedDateRange.end.getFullYear()\n ? formatDate(\n selectedDateRange.start,\n isMobile ? DATE_FORMATS_INTL.MONTH_SHORT : DATE_FORMATS_INTL.MONTH_LONG,\n )\n : formatDate(\n selectedDateRange.start,\n isMobile ? DATE_FORMATS_INTL.MONTH_SHORT_YEAR : DATE_FORMATS_INTL.MONTH_YEAR,\n )\n const endDate = formatDate(\n selectedDateRange.end,\n isMobile ? DATE_FORMATS_INTL.MONTH_SHORT_YEAR : DATE_FORMATS_INTL.MONTH_YEAR,\n )\n return `${startDate} - ${endDate}`\n }, [selectedDateRange, isMobile])\n\n const categoryName = getCategoryName(selectedCategoryGuid)\n const titleText = categoryName || (isMobile ? copy.sub_title : copy.sub_title_by_category)\n\n return (\n <Box>\n <H3\n sx={{\n fontSize: !isDesktop ? 15 : null,\n overflow: 'visible',\n textOverflow: 'unset',\n }}\n >\n {titleText}\n </H3>\n\n <Text variant={isDesktop ? 'subtitle1' : 'body2'}>{dateRangeText}</Text>\n </Box>\n )\n}\n\nexport default DateRangeText\n","import Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\n\nimport { GridCellParams } from '@mui/x-data-grid'\n\nimport { CategoryIcon, Text } from '@mxenabled/mxui'\n\nexport const CategoryCell = (params: GridCellParams) => {\n const isTotal = params.id === 'total'\n\n return (\n <Stack alignItems=\"center\" direction=\"row\" role=\"rowheader\" tabIndex={params.tabIndex}>\n {!isTotal && (\n <Box aria-hidden={true}>\n <CategoryIcon categoryGuid={params.row.top_level_category_guid} variant=\"twotone\" />\n </Box>\n )}\n <Text bold={isTotal} sx={{ ml: 12 }} variant={isTotal ? 'body1' : 'body2'}>\n {params.row.category}\n </Text>\n </Stack>\n )\n}\n","import { GridCellParams } from '@mui/x-data-grid'\nimport Stack from '@mui/material/Stack'\n\nimport { CurrencyText } from '../../../common'\nimport { CategoryGuids } from '../../../core/constants'\n\nexport const AmountCell = (params: GridCellParams) => {\n const category = params.row.category_guid\n const parentCategory = params.row.top_level_category_guid\n const isIncome = category === CategoryGuids.INCOME || parentCategory === CategoryGuids.INCOME\n const isTotalRow = params.id === 'total'\n const isTotalColumn = params.field === 'total'\n const amount = isTotalColumn ? params.row[params.field] : params.row.monthlyAmounts[params.field]\n\n return (\n <Stack alignItems=\"flex-end\" direction=\"row\" tabIndex={params.tabIndex}>\n <CurrencyText\n amount={isIncome ? Math.abs(amount) : amount}\n isIncome={isIncome}\n sx={{ fontWeight: isIncome || isTotalColumn || isTotalRow ? 600 : 500 }}\n symbol={isIncome ? '+' : undefined}\n variant={isTotalRow ? 'body1' : 'body2'}\n />\n </Stack>\n )\n}\n","import { parseISO } from 'date-fns/parseISO'\nimport { GridColDef } from '@mui/x-data-grid-pro'\nimport { HeaderCell } from '../components/trendstable/HeaderCell'\nimport { CategoryCell } from '../components/trendstable/CategoryCell'\nimport { amountComparator, categoryComparator } from '../../core/utils/TrendsUtil'\nimport { AmountCell } from '../components/trendstable/AmountCell'\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\nimport { DetailedCategory, type MonthlyAmount, TrendsCopy } from '../../core'\nimport { buildDynamicCopy } from '../../core/utils/Localization'\n\nconst amountsReducer = (records: Record<string, number>, monthlyAmount: MonthlyAmount) => {\n const monthHeader = formatDate(parseISO(monthlyAmount.isoDate), DATE_FORMATS_INTL.MONTH_LONG)\n records[monthHeader] = monthlyAmount.amount\n return records\n}\n\nconst totalReducer = (monthHeaders: string[]) => (sum: number, ma: MonthlyAmount) => {\n const monthHeader = formatDate(parseISO(ma.isoDate), DATE_FORMATS_INTL.MONTH_LONG)\n return sum + (monthHeaders.includes(monthHeader) ? ma.amount : 0)\n}\n\nexport const generateMonthHeaders = (start: Date, end: Date): string[] => {\n const result: string[] = []\n const current = new Date(start)\n\n while (current <= end) {\n const formattedDate = formatDate(current, DATE_FORMATS_INTL.MONTH_LONG)\n result.push(formattedDate)\n current.setMonth(current.getMonth() + 1)\n }\n\n return result\n}\n\nexport const getTrendsTableColumns = (monthHeaders: string[], copy: TrendsCopy) => {\n const categoryColumn: GridColDef = {\n field: 'category',\n flex: 1,\n headerClassName: 'trends-table-header',\n headerName: copy.category_title,\n minWidth: 210,\n renderHeader: HeaderCell,\n renderCell: CategoryCell,\n sortable: true,\n sortComparator: categoryComparator,\n type: 'string',\n }\n\n const monthColumns: GridColDef[] = monthHeaders.map((monthHeader) => ({\n field: monthHeader,\n flex: 1,\n headerClassName: 'trends-table-header',\n headerName: monthHeader,\n minWidth: 100,\n renderHeader: HeaderCell,\n renderCell: AmountCell,\n align: 'center',\n headerAlign: 'center',\n sortable: true,\n hideSortIcons: false,\n type: 'number',\n sortComparator: amountComparator,\n valueGetter: (_value: unknown, row: TrendsTableRow) => row.monthlyAmounts?.[monthHeader] ?? 0,\n }))\n\n const totalColumn: GridColDef = {\n field: 'total',\n flex: 1,\n headerClassName: 'trends-table-header',\n headerName: copy.table_column_total,\n minWidth: 100,\n renderHeader: HeaderCell,\n renderCell: AmountCell,\n align: 'center',\n headerAlign: 'center',\n sortable: true,\n hideSortIcons: false,\n type: 'number',\n sortComparator: amountComparator,\n }\n\n return [categoryColumn, ...monthColumns, totalColumn]\n}\n\nexport type TrendsTableRow = {\n id: string\n category: string\n category_guid: string\n isParent: boolean\n top_level_category_guid: string\n total: number\n monthlyAmounts: Record<string, number>\n}\n\nexport const getTrendsTableRows = (\n categories: DetailedCategory[],\n copy: TrendsCopy,\n isIncome: boolean,\n monthHeaders: string[],\n parentCategory?: DetailedCategory,\n): TrendsTableRow[] => {\n const categoryRows = categories\n .filter((category) => category.is_income === isIncome)\n .map((category) => {\n let amounts = category.totalMonthlyAmounts\n if (parentCategory) {\n amounts = category.monthlyAmounts\n }\n\n return {\n id: category.guid,\n category: category.name,\n category_guid: category.guid,\n isParent: false,\n top_level_category_guid: category.parent_guid || category.guid,\n total: amounts.reduce(totalReducer(monthHeaders), 0),\n monthlyAmounts: amounts.reduce(amountsReducer, {}),\n }\n })\n\n // Add General category row when viewing sub-categories\n if (parentCategory && parentCategory.is_income === isIncome) {\n const total = parentCategory.monthlyAmounts.reduce(totalReducer(monthHeaders), 0)\n if (total !== 0) {\n categoryRows.push({\n id: `sub-${parentCategory.guid}`,\n category: buildDynamicCopy(copy.category_general, parentCategory.name) as string,\n category_guid: parentCategory.guid,\n isParent: true,\n top_level_category_guid: parentCategory.guid,\n total,\n monthlyAmounts: parentCategory.monthlyAmounts.reduce(amountsReducer, {}),\n })\n }\n }\n\n return categoryRows\n}\n","import React from 'react'\n\nimport Badge from '@mui/material/Badge'\nimport IconButton from '@mui/material/IconButton'\nimport { useGridApiContext, useGridRootProps } from '@mui/x-data-grid-pro'\nimport type { GridSortDirection } from '@mui/x-data-grid-pro'\n\nimport { styled } from '@mui/material/styles'\n\nconst IconButtonContainer = styled('div')({\n display: 'flex',\n visibility: 'hidden',\n width: 0,\n})\n\ninterface AccessibleSortIconProps {\n field: string\n direction: GridSortDirection\n index: number | undefined\n sortingOrder: readonly GridSortDirection[]\n disabled?: boolean\n className?: string\n}\n\nfunction AccessibleSortIconRaw({\n direction,\n index,\n sortingOrder,\n disabled,\n className,\n field,\n}: AccessibleSortIconProps) {\n const apiRef = useGridApiContext()\n const rootProps = useGridRootProps()\n\n let Icon: React.JSXElementConstructor<any> | null = null\n const iconProps: Record<string, unknown> = {}\n\n if (direction === 'asc') {\n Icon = rootProps.slots.columnSortedAscendingIcon\n } else if (direction === 'desc') {\n Icon = rootProps.slots.columnSortedDescendingIcon\n } else {\n Icon = rootProps.slots.columnUnsortedIcon ?? null\n iconProps.sortingOrder = sortingOrder\n }\n\n if (!Icon) return null\n\n const column = apiRef.current.getColumn(field)\n const columnName = column?.headerName ?? field\n\n let sortStateLabel = ''\n if (direction === 'asc') sortStateLabel = ', sorted ascending'\n else if (direction === 'desc') sortStateLabel = ', sorted descending'\n\n const sortTypeLabel = !['Total', 'Category'].includes(columnName) ? ' category totals' : ''\n const ariaLabel = `Sort by ${columnName}${sortTypeLabel}${sortStateLabel}`\n\n const iconElement = <Icon className=\"MuiDataGrid-sortIcon\" fontSize=\"small\" {...iconProps} />\n\n const iconButton = (\n <IconButton\n disabled={disabled}\n size=\"small\"\n tabIndex={-1}\n {...(rootProps.slotProps?.baseIconButton as Record<string, unknown>)}\n aria-label={ariaLabel}\n className={`MuiDataGrid-sortButton${className ? ` ${className}` : ''}`}\n title={ariaLabel}\n >\n {iconElement}\n </IconButton>\n )\n\n return (\n <IconButtonContainer className=\"MuiDataGrid-iconButtonContainer\">\n {index != null ? (\n <Badge badgeContent={index} color=\"default\" overlap=\"circular\">\n {iconButton}\n </Badge>\n ) : (\n iconButton\n )}\n </IconButtonContainer>\n )\n}\n\nexport const AccessibleSortIcon = React.memo(AccessibleSortIconRaw)\n","import { ANALYTICS_EVENTS, useEvent } from '../../../common'\nimport { CategoryGuidToName } from '../../../core/constants'\nimport { DetailedCategory } from '../../../core'\nimport { TRENDS_ANALYTICS_METADATA } from '../../constants/TrendsWidget'\nimport { DataGridPro, GridColDef } from '@mui/x-data-grid-pro'\nimport { useTheme } from '@mui/material/styles'\nimport { TrendsTableRow } from '../../utils/TrendsTable'\nimport { AccessibleSortIcon } from './AccessibleSortIcon'\n\ninterface TrendsTableProps {\n columns: GridColDef[]\n onRowClick?: (category: string) => void\n parentCategory?: DetailedCategory\n rows: TrendsTableRow[]\n totalRow?: TrendsTableRow\n}\n\nexport const TrendsTable = ({\n columns,\n onRowClick,\n parentCategory,\n rows,\n totalRow,\n}: TrendsTableProps) => {\n const theme = useTheme()\n const { onEvent } = useEvent()\n const isLightMode = theme.palette.mode === 'light'\n\n return (\n <DataGridPro\n columns={columns}\n disableColumnFilter={true}\n disableColumnMenu={true}\n hideFooter={true}\n initialState={{ sorting: { sortModel: [{ field: 'category', sort: 'asc' }] } }}\n onRowClick={(r) => {\n if (!parentCategory) {\n onRowClick?.(r.row.category_guid)\n }\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_LIST_ITEM, {\n ...TRENDS_ANALYTICS_METADATA,\n listItem: CategoryGuidToName[r.row.category_guid],\n })\n }}\n pinnedRows={{\n bottom: totalRow ? [totalRow] : [],\n }}\n rowHeight={64}\n rows={rows}\n slotProps={{ baseIconButton: { color: 'secondary', sx: { ml: 8 } } }}\n slots={{ columnHeaderSortIcon: AccessibleSortIcon }}\n sortingOrder={['asc', 'desc']}\n sx={{\n borderColor: 'divider',\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: 2,\n '& .MuiDataGrid-columnHeaders': {\n bgcolor: isLightMode ? 'neutral.50' : 'neutral.800',\n borderBottom: 'none',\n },\n '& .trends-table-header': {\n bgcolor: isLightMode ? 'neutral.50' : 'neutral.800',\n },\n }}\n />\n )\n}\n","import React from 'react'\n\nimport Stack from '@mui/material/Stack'\n\nimport { useCategoryStore, useGlobalCopyStore } from '../../common'\n\nimport {\n generateMonthHeaders,\n getTrendsTableColumns,\n getTrendsTableRows,\n} from '../utils/TrendsTable'\n\nimport { TrendsTable } from './trendstable/TrendsTable'\n\ninterface TrendsTableProps {\n sx?: any\n height?: number | string\n selectedDateRange: { start: Date; end: Date }\n selectedCategory?: string\n onClickRow?: (category: string) => void\n}\n\nconst TrendsTableContainer: React.FC<TrendsTableProps> = ({\n selectedDateRange,\n selectedCategory,\n onClickRow,\n height = '100%',\n sx = {},\n}) => {\n const { trends: copy } = useGlobalCopyStore()\n const { trendsCategories } = useCategoryStore()\n\n // Generate all headers for the selected date range\n const monthHeaders = React.useMemo(() => {\n return generateMonthHeaders(selectedDateRange.start, selectedDateRange.end)\n }, [selectedDateRange])\n\n const columns = React.useMemo(() => {\n return getTrendsTableColumns(monthHeaders, copy)\n }, [monthHeaders, copy])\n\n const parentCategory = React.useMemo(() => {\n if (selectedCategory) {\n return trendsCategories.find((category) => category.guid === selectedCategory)\n }\n return undefined\n }, [selectedCategory, trendsCategories])\n\n const [incomeRows, spendingRows] = React.useMemo(() => {\n let categories = trendsCategories\n if (parentCategory) {\n categories = parentCategory.subCategories.filter((c) =>\n c.monthlyAmounts.some((ma) => ma.amount !== 0),\n )\n }\n\n return [\n getTrendsTableRows(categories, copy, true, monthHeaders, parentCategory),\n getTrendsTableRows(categories, copy, false, monthHeaders, parentCategory),\n ]\n }, [trendsCategories, monthHeaders, parentCategory, copy])\n\n const totalSpendingRow = {\n id: 'total',\n category: copy.table_column_total,\n category_guid: 'total',\n isParent: false,\n top_level_category_guid: 'total',\n total: spendingRows.reduce((sum, row) => sum + row.total, 0),\n monthlyAmounts: spendingRows.reduce(\n (amounts, row) => {\n Object.entries(row.monthlyAmounts).forEach(([month, amount]) => {\n amounts[month] = (amounts[month] || 0) + amount\n })\n return amounts\n },\n {} as Record<string, number>,\n ),\n }\n\n return (\n <Stack\n gap={24}\n sx={{ height: height, width: '100%', overflowX: 'auto', boxShadow: 'none', ...sx }}\n >\n {(!parentCategory || (parentCategory && parentCategory.is_income)) && (\n <TrendsTable\n columns={columns}\n onRowClick={onClickRow}\n parentCategory={parentCategory}\n rows={incomeRows}\n />\n )}\n {(!parentCategory || (parentCategory && !parentCategory.is_income)) && (\n <TrendsTable\n columns={columns}\n onRowClick={onClickRow}\n parentCategory={parentCategory}\n rows={spendingRows}\n totalRow={totalSpendingRow}\n />\n )}\n </Stack>\n )\n}\n\nexport default TrendsTableContainer\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport {\n ANALYTICS_EVENTS,\n Drawer,\n useGlobalCopyStore,\n useEvent,\n useTransactionStore,\n useGlobalUiStore,\n} from '../../common'\nimport { Transaction } from '../../core'\nimport { TransactionDetails, TransactionList } from '../../transactions'\n\nconst copy = {\n title: 'Transaction List',\n}\n\ninterface TrendsDrawerProps {\n categoryGuid: string\n dateRange: {\n start: Date\n end: Date\n }\n isOpen: boolean\n onClose: () => void\n}\n\nconst TrendsDrawer: React.FC<TrendsDrawerProps> = ({\n categoryGuid,\n dateRange,\n isOpen,\n onClose,\n}) => {\n const { onEvent } = useEvent()\n const { selectedAccountGuids: accounts } = useGlobalUiStore()\n const { common: commonCopy } = useGlobalCopyStore()\n const { setFilter, sortedTransactions } = useTransactionStore()\n\n const [guid, setGuid] = React.useState('')\n const transaction = React.useMemo(\n () => sortedTransactions.find((t) => t.guid === guid),\n [guid, sortedTransactions],\n )\n\n React.useEffect(() => {\n setFilter({\n accounts,\n dateRange,\n custom: (t: Transaction) =>\n categoryGuid === '' ||\n categoryGuid === t.category_guid ||\n categoryGuid === t.top_level_category_guid,\n showSplits: Boolean(categoryGuid),\n })\n }, [accounts, categoryGuid, dateRange])\n\n React.useEffect(() => onEvent(ANALYTICS_EVENTS.TRENDS_VIEW_TRANSACTIONS), [])\n\n const handleClose = () => {\n setGuid('')\n onClose()\n }\n\n return (\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={isOpen}\n onClose={handleClose}\n title={copy.title}\n >\n {transaction && <TransactionDetails transaction={transaction} />}\n {!transaction && <TransactionList onClick={setGuid} />}\n </Drawer>\n )\n}\n\nexport default observer(TrendsDrawer)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { DateRange } from '@mui/x-date-pickers-pro'\nimport { Icon } from '@mxenabled/mxui'\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport Button from '@mui/material/Button'\n\nimport { addSeconds } from 'date-fns/addSeconds'\nimport { differenceInCalendarMonths } from 'date-fns/differenceInCalendarMonths'\n\nimport {\n ANALYTICS_EVENTS,\n Loader,\n WidgetContainer,\n useAccountStore,\n useEvent,\n useCategoryStore,\n useGlobalCopyStore,\n useGlobalUiStore,\n useScreenSize,\n useTransactionStore,\n useTrendsStore,\n useWidgetLoadTimer,\n} from '../common'\nimport { WidgetProps } from '../core'\nimport { StackedLineChart } from '../common/components/charts/StackedLineChart'\n\nimport { getStackedLineChartData, StackedLineChartData } from '../core/utils/TrendsUtil'\nimport { getTopLevelCategoryTotals, isExpense, isIncome } from './utils/shared'\n\nimport TrendsViewToggle, { type TrendsTabValue } from './components/TrendsViewToggle'\nimport DateRangeText from './components/DateRangeText'\nimport TrendsTableContainer from './components/TrendsTableContainer'\nimport TrendsDrawer from './components/TrendsDrawer'\nimport { TRENDS_ANALYTICS_METADATA } from './constants/TrendsWidget'\n\nconst TrendsFullWidget: React.FC<WidgetProps> = ({ onBackClick, onMenuClick, sx }) => {\n const { onEvent } = useEvent()\n const { isDesktop, isTablet, isMobile } = useScreenSize()\n const { isAccountDataLoaded, loadAccountData } = useAccountStore()\n const {\n categoriesLoaded,\n loadCategories,\n loadDateRangeCategoryTotals,\n loadMonthlyCategoryTotals,\n monthlyCategoryTotals,\n getCategoryName,\n } = useCategoryStore()\n const {\n isTransactionDataLoaded,\n loadTransactionData,\n sortedTransactions: transactions,\n } = useTransactionStore()\n const { selectedDateRange, setSelectedDateRange } = useTrendsStore()\n const { isInitialized, selectedAccounts } = useGlobalUiStore()\n const { trends: copy } = useGlobalCopyStore()\n\n const [isWidgetInitialized, setIsWidgetInitialized] = React.useState(false)\n const [showTransactions, setShowTransactions] = React.useState(false)\n const [selectedTab, setSelectedTab] = React.useState<TrendsTabValue>('Chart')\n const [selectedCategory, setSelectedCategory] = React.useState('')\n\n // Control responsive chart height based on available widget iframe viewport height\n const [viewportHeight, setViewportHeight] = React.useState(window.innerHeight)\n const unavailableChartHeight = isMobile ? 315 : 345\n const availableChartHeight = viewportHeight - unavailableChartHeight\n\n useWidgetLoadTimer({\n widgetName: 'TrendsFullWidget',\n isLoaded: isWidgetInitialized,\n })\n\n React.useEffect(() => {\n const handleResize = () => setViewportHeight(window.innerHeight)\n window.addEventListener('resize', handleResize)\n\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n if (!categoriesLoaded) {\n loadCategories().finally()\n }\n if (!isTransactionDataLoaded) {\n loadTransactionData().finally()\n }\n\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n // Initialize monthlyCategoryTotals, and reload on account or date range change\n React.useEffect(() => {\n if (isInitialized) {\n loadDateRangeCategoryTotals(selectedAccounts, selectedDateRange.start, selectedDateRange.end)\n .then(() => {\n loadMonthlyCategoryTotals(\n selectedAccounts,\n selectedDateRange.start,\n selectedDateRange.end,\n )\n })\n .finally(() => {\n setIsWidgetInitialized(true)\n onEvent(ANALYTICS_EVENTS.TRENDS_LOAD_WIDGET, {\n ...TRENDS_ANALYTICS_METADATA,\n time_period: `${differenceInCalendarMonths(selectedDateRange.end, selectedDateRange.start)}M`,\n })\n })\n }\n }, [isInitialized, selectedAccounts, selectedDateRange])\n\n // Cache a full year of StackedLineChart data\n const chartData = React.useMemo(() => {\n if (!isWidgetInitialized) return { stackedDatasets: [], unstackedDatasets: [] }\n\n const data = getStackedLineChartData(\n monthlyCategoryTotals,\n selectedDateRange.start,\n selectedDateRange.end,\n )\n\n const filteredData = selectedCategory.length\n ? data.filter(\n (d) =>\n d.top_level_category_guid === selectedCategory || d.category_guid === selectedCategory,\n )\n : getTopLevelCategoryTotals(data)\n\n return {\n stackedDatasets: filteredData.filter(isExpense) as StackedLineChartData[],\n unstackedDatasets: filteredData.filter(isIncome) as StackedLineChartData[],\n }\n }, [monthlyCategoryTotals, selectedCategory, selectedDateRange])\n\n const onTabChange = (_event: React.SyntheticEvent, newValue: TrendsTabValue) => {\n setSelectedTab(newValue ?? selectedTab)\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_TOGGLE_VIEW)\n }\n\n const onRangeChanged = (dateRange: DateRange<Date>) => {\n const startDate = addSeconds(dateRange?.[0] as Date, 1)\n const endDate = dateRange?.[1] as Date\n const months = differenceInCalendarMonths(endDate, startDate)\n\n setSelectedDateRange({ start: startDate, end: endDate })\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_TIME_WINDOW, {\n time_period: months + 'M',\n })\n }\n\n const onAccountsFilterClick = () => {\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_FILTER)\n }\n const onClickRow = (guid: string) => {\n setSelectedCategory(guid)\n }\n const onClickLegend = (guid: string) => {\n setSelectedCategory(guid)\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_LEGEND, { category: getCategoryName(guid) })\n }\n const onHoverLegend = (guid: string) => {\n onEvent(ANALYTICS_EVENTS.TRENDS_HOVER_LEGEND, { category: getCategoryName(guid) })\n }\n const onHoverArea = (category: string) => {\n onEvent(ANALYTICS_EVENTS.TRENDS_HOVER_AREA, { category })\n }\n const onHoverPoint = (category: string) => {\n onEvent(ANALYTICS_EVENTS.TRENDS_HOVER_POINT, { category })\n }\n\n if (!isInitialized || !isWidgetInitialized) return <Loader />\n\n return (\n <WidgetContainer\n calendarActions={{ onRangeChanged }}\n dateRange={selectedDateRange}\n dateRangeVariant=\"timeframebuttons\"\n onAccountsFilterClick={onAccountsFilterClick}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n sx={sx}\n title={copy.title}\n >\n <Stack\n sx={{\n // eslint-disable-next-line no-nested-ternary\n px: isDesktop ? 48 : isTablet ? 24 : 12,\n }}\n >\n <Stack\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n sx={{ pb: isMobile ? 12 : 24, pt: isMobile ? 24 : 48 }}\n >\n <DateRangeText\n selectedCategoryGuid={selectedCategory}\n selectedDateRange={selectedDateRange}\n />\n <TrendsViewToggle onTabChange={onTabChange} selectedTab={selectedTab} />\n </Stack>\n <Stack alignItems=\"center\" flexDirection=\"row\" width=\"100%\">\n <Box flexGrow={1}>\n {selectedCategory && (\n <Button onClick={() => setSelectedCategory('')} sx={{ p: 0, pr: 5 }}>\n <Icon name=\"arrow_back\" />\n {copy.all_categories}\n </Button>\n )}\n </Box>\n <Button onClick={() => setShowTransactions(true)} sx={{ px: 5 }}>\n {`${copy.view_transactions} (${transactions.length})`}\n </Button>\n </Stack>\n <Box>\n {selectedTab === 'Chart' && (\n <StackedLineChart\n availableHeight={availableChartHeight}\n onClickLegend={onClickLegend}\n onHoverArea={onHoverArea}\n onHoverLegend={onHoverLegend}\n onHoverPoint={onHoverPoint}\n stackedDatasets={chartData.stackedDatasets}\n unstackedDatasets={chartData.unstackedDatasets}\n />\n )}\n {selectedTab === 'Table' && (\n <TrendsTableContainer\n onClickRow={onClickRow}\n selectedCategory={selectedCategory}\n selectedDateRange={selectedDateRange}\n />\n )}\n </Box>\n </Stack>\n <TrendsDrawer\n categoryGuid={selectedCategory}\n dateRange={selectedDateRange}\n isOpen={showTransactions}\n onClose={() => setShowTransactions(false)}\n />\n </WidgetContainer>\n )\n}\n\nexport default observer(TrendsFullWidget)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { useTheme } from '@mui/material/styles'\n\nimport { useCategoryStore, useGlobalCopyStore, useWidgetContainerProvider } from '../../common'\nimport { LineChart } from '../../common/components/charts/LineChart'\n\nimport { getSpendingData } from '../utils/SpendingData'\n\nconst SpendingChart = () => {\n const { monthlyCategoryTotals } = useCategoryStore()\n const { trends: trendsCopy } = useGlobalCopyStore()\n const theme = useTheme()\n const { availableHeight = 300 } = useWidgetContainerProvider()\n\n const data = React.useMemo(() => getSpendingData(monthlyCategoryTotals), [monthlyCategoryTotals])\n\n return (\n <LineChart\n baseline=\"min\"\n colors={[theme.palette.primary.main]}\n datasets={[data]}\n height={availableHeight}\n labels={[trendsCopy.spending_label]}\n showArea={true}\n showAverage={true}\n showLegend={true}\n showMarkLabel={true}\n useCustomMark={true}\n valueFormatterString=\"0,0\"\n />\n )\n}\n\nexport default observer(SpendingChart)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport {\n Loader,\n MiniWidgetContainer,\n useAccountStore,\n useCategoryStore,\n useGlobalCopyStore,\n useGlobalStore,\n useGlobalUiStore,\n useWidgetLoadTimer,\n} from '../common'\nimport { MiniWidgetProps } from '../core'\n\nimport SpendingChart from './components/SpendingChart'\n\nconst TrendsMiniWidget: React.FC<MiniWidgetProps> = ({ onPrimaryCtaClick, sx }) => {\n const { isAccountDataLoaded, loadAccountData } = useAccountStore()\n const { loadMonthlyCategoryTotals, monthlyTotalsLoaded } = useCategoryStore()\n const { isInitialized } = useGlobalStore()\n const { trends: trendsCopy } = useGlobalCopyStore()\n const { selectedAccounts } = useGlobalUiStore()\n\n React.useEffect(() => {\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n }, [])\n\n useWidgetLoadTimer({\n widgetName: 'TrendsMiniWidget',\n isLoaded: monthlyTotalsLoaded,\n })\n\n React.useEffect(() => {\n if (isInitialized && isAccountDataLoaded) {\n loadMonthlyCategoryTotals(selectedAccounts).finally()\n }\n }, [isAccountDataLoaded, isInitialized, selectedAccounts])\n\n if (!isAccountDataLoaded || !isInitialized || !monthlyTotalsLoaded) {\n return <Loader />\n }\n\n return (\n <MiniWidgetContainer\n contentStyles={{ height: 'calc(100% - 72px)', minHeight: 300, ':last-child': { pb: 0 } }}\n onPrimaryCtaClick={onPrimaryCtaClick}\n primaryCtaLabel={trendsCopy.primary_cta}\n subTitle={trendsCopy.sub_title}\n sx={{ height: '100%', ...sx }}\n title={trendsCopy.mini_title}\n >\n <SpendingChart />\n </MiniWidgetContainer>\n )\n}\n\nexport default observer(TrendsMiniWidget)\n","import React from 'react'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\n\nimport { TrendingDown, TrendingUp } from '@mxenabled/mx-icons'\nimport { H3, P } from '@mxenabled/mxui'\n\nimport { useWidgetContainerProvider } from '../../common'\nimport { formatCurrency, formatPercentage } from '../../core/utils/NumberFormatting'\nconst secondaryLabelWidth = 70\n\ninterface TrendsMicroSpendingIncomeBoxProps {\n title: string\n totalAmount: number\n transactionType: 'spending' | 'income'\n percentage: number\n secondaryLabel: string\n shouldDisplayPercentage: boolean\n}\nexport const TrendsMicroSpendingIncomeBox = ({\n title,\n totalAmount,\n transactionType,\n percentage,\n secondaryLabel,\n shouldDisplayPercentage,\n}: TrendsMicroSpendingIncomeBoxProps) => {\n const { availableWidth } = useWidgetContainerProvider()\n\n const amountRef = React.useRef<HTMLSpanElement | null>(null)\n const containerRef = React.useRef<HTMLDivElement | null>(null)\n\n const displayPercentage = formatPercentage(Number(Math.abs(percentage)), {\n style: 'percent',\n minimumIntegerDigits: 1,\n })\n\n const displayTotalAmount =\n availableWidth === 288 && formatCurrency(totalAmount, '0,0.00').length > 10\n ? formatCurrency(totalAmount, '0,0')\n : formatCurrency(totalAmount, '0,0.00')\n\n const isGainPercentage = transactionType === 'spending' ? percentage > 0 : percentage >= 0\n const isGainPercentageColor = transactionType === 'spending' ? 'error.main' : 'success.main'\n const isLossPercentageColor = transactionType === 'spending' ? 'success.main' : 'text.secondary'\n\n const amountElement = amountRef?.current\n const containerElement = containerRef?.current\n const isOverflowing =\n amountElement && containerElement\n ? amountElement.scrollWidth > containerElement.clientWidth - secondaryLabelWidth\n : false\n return (\n <Stack\n sx={{\n border: 1,\n borderColor: 'divider',\n borderRadius: '4px',\n flex: 1,\n minWidth: 0,\n px: 12,\n py: 8,\n }}\n >\n <Stack\n sx={{\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'space-between',\n }}\n >\n <P color=\"text.secondary\" variant=\"caption\">\n {title}\n </P>\n {shouldDisplayPercentage && (\n <Stack sx={{ alignItems: 'center', flexDirection: 'row', gap: 4 }}>\n {isGainPercentage ? (\n <TrendingUp size={20} sx={{ color: isGainPercentageColor }} />\n ) : (\n <TrendingDown size={20} sx={{ color: isLossPercentageColor }} />\n )}\n <P\n sx={{\n color: isGainPercentage ? isGainPercentageColor : isLossPercentageColor,\n fontWeight: 600,\n }}\n variant=\"body2\"\n >\n {displayPercentage}\n </P>\n </Stack>\n )}\n </Stack>\n <Stack\n ref={containerRef}\n sx={{\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'space-between',\n }}\n >\n <Box\n ref={amountRef}\n sx={{ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}\n >\n <H3>{displayTotalAmount}</H3>\n </Box>\n {shouldDisplayPercentage && availableWidth >= 450 && !isOverflowing && (\n <P\n color={isGainPercentage ? isGainPercentageColor : isLossPercentageColor}\n variant=\"caption\"\n >\n {secondaryLabel}\n </P>\n )}\n </Stack>\n </Stack>\n )\n}\n","import Stack from '@mui/material/Stack'\n\nimport { MultilineChart } from '@mxenabled/mx-icons'\n\nimport { P } from '@mxenabled/mxui'\n\nimport { observer } from 'mobx-react-lite'\n\nimport { useGlobalCopyStore } from '../common'\n\nexport const ZeroStateMicroWidget = observer(() => {\n const { trends: copy } = useGlobalCopyStore()\n\n return (\n <Stack sx={{ alignItems: 'start', flexDirection: 'row', gap: 12 }}>\n <MultilineChart size={32} />\n <Stack>\n <P fontWeight={600} variant=\"body1\">\n {copy.zero_state_content_header}\n </P>\n <P color=\"text.secondary\" variant=\"subtitle2\">\n {copy.zero_state_content_description}\n </P>\n </Stack>\n </Stack>\n )\n})\n","import React from 'react'\n\nimport Stack from '@mui/material/Stack'\n\nimport { subMonths } from 'date-fns'\n\nimport { observer } from 'mobx-react-lite'\n\nimport {\n ANALYTICS_EVENTS,\n Loader,\n MicroWidgetContainer,\n useAccountStore,\n useCategoryStore,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useWidgetLoadTimer,\n} from '../common'\n\nimport { TrendsMicroSpendingIncomeBox } from './components/TrendsMicroSpendingIncomeBox'\nimport { calculateRelativeChange } from './utils/shared'\nimport { getIncomeTotals, getSpendingTotals } from './utils/SpendingData'\nimport { ZeroStateMicroWidget } from './ZeroStateMicroWidget'\n\ninterface TrendsMicroWidgetProps {\n onCtaClick: () => void\n}\nexport const TrendsMicroWidget = observer(({ onCtaClick }: TrendsMicroWidgetProps) => {\n const { isAccountDataLoaded, loadAccountData, visibleAccounts: accounts } = useAccountStore()\n\n React.useEffect(() => {\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n }, [])\n\n const { onEvent } = useEvent()\n const { monthlyCategoryTotals, loadMonthlyCategoryTotals, monthlyTotalsLoaded } =\n useCategoryStore()\n\n const dateRange = {\n start: subMonths(new Date(), 1),\n end: new Date(),\n }\n\n const { trends: trendsCopy } = useGlobalCopyStore()\n\n const { selectedAccounts, isInitialized } = useGlobalUiStore()\n\n useWidgetLoadTimer({\n widgetName: 'TrendsMicroWidget',\n isLoaded: monthlyTotalsLoaded,\n })\n\n React.useEffect(() => {\n if (isInitialized) {\n loadMonthlyCategoryTotals(selectedAccounts, dateRange.start).then(() => {\n onEvent(ANALYTICS_EVENTS.TRENDS_LOAD_WIDGET, {\n state: !accounts?.length ? 'zeroState' : 'default',\n })\n })\n }\n }, [isInitialized, selectedAccounts])\n\n const { spendingData, incomeData } = React.useMemo(\n () => ({\n spendingData: getSpendingTotals(monthlyCategoryTotals, dateRange),\n incomeData: getIncomeTotals(monthlyCategoryTotals, dateRange),\n }),\n [monthlyCategoryTotals, dateRange],\n )\n\n const [lastMonthSpending, thisMonthSpending] = spendingData\n const [lastMonthIncome, thisMonthIncome] = incomeData\n\n const spendingPercentage = calculateRelativeChange(thisMonthSpending.y, lastMonthSpending.y)\n const incomePercentage = calculateRelativeChange(thisMonthIncome.y, lastMonthIncome.y)\n\n const showZeroState = isInitialized && !accounts?.length\n\n const handleCtaClick = () => {\n onEvent(\n showZeroState\n ? ANALYTICS_EVENTS.TRENDS_CLICK_GET_STARTED\n : ANALYTICS_EVENTS.TRENDS_CLICK_VIEW_MORE,\n )\n onCtaClick()\n }\n\n if (!monthlyTotalsLoaded || !isInitialized) return <Loader />\n\n return (\n <MicroWidgetContainer\n className=\"mx-trends-microwidget\"\n ctaLabel={trendsCopy.micro_primary_cta_label}\n onCTAClick={handleCtaClick}\n subHeader={!showZeroState ? trendsCopy.micro_subheader : undefined}\n title={trendsCopy.title}\n >\n {!showZeroState ? (\n <Stack\n sx={{\n alignItems: 'stretch',\n flexDirection: 'row',\n gap: 12,\n }}\n >\n <TrendsMicroSpendingIncomeBox\n percentage={spendingPercentage}\n secondaryLabel={trendsCopy.micro_secondary_label}\n shouldDisplayPercentage={thisMonthSpending.y !== 0 && lastMonthSpending.y !== 0}\n title={trendsCopy.spending_label}\n totalAmount={thisMonthSpending.y}\n transactionType={'spending'}\n />\n <TrendsMicroSpendingIncomeBox\n percentage={incomePercentage}\n secondaryLabel={trendsCopy.micro_secondary_label}\n shouldDisplayPercentage={thisMonthIncome.y !== 0 && lastMonthIncome.y !== 0}\n title={trendsCopy.income_label}\n totalAmount={thisMonthIncome.y}\n transactionType={'income'}\n />\n </Stack>\n ) : (\n <ZeroStateMicroWidget />\n )}\n </MicroWidgetContainer>\n )\n})\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemIcon from '@mui/material/ListItemIcon'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { ExpandLess, ExpandMore } from '@mxenabled/mx-icons'\nimport { Text } from '@mxenabled/mxui'\n\ninterface CollapseExpandListItemProps {\n isExpanded: boolean\n onClick: () => void\n}\n\nexport const CollapseExpandListItem: React.FC<CollapseExpandListItemProps> = observer(\n ({ isExpanded, onClick }) => {\n const theme = useTheme()\n return (\n <ListItem>\n <ListItemButton onClick={onClick} sx={{ justifyContent: 'center' }}>\n <Stack\n sx={{ color: theme.palette.primary.main, flexDirection: 'row', alignItems: 'center' }}\n >\n <ListItemText>\n <Text bold={true} variant=\"body2\">\n {isExpanded ? `View less` : `View more`}\n </Text>\n </ListItemText>\n <ListItemIcon sx={{ color: theme.palette.primary.main }}>\n {isExpanded ? (\n <ExpandLess />\n ) : (\n <ExpandMore\n sx={{\n transition: 'transform 0.3s ease-in-out',\n transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)',\n }}\n />\n )}\n </ListItemIcon>\n </Stack>\n </ListItemButton>\n </ListItem>\n )\n },\n)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Divider from '@mui/material/Divider'\nimport { alpha } from '@mui/material/styles'\nimport { useTheme } from '@mui/material/styles'\n\nimport { ChevronRight } from '@mxenabled/mx-icons'\nimport { CategoryIcon } from '@mxenabled/mxui'\n\nimport { ANALYTICS_EVENTS, ListItemRow, useEvent, useGlobalCopyStore } from '../../common'\nimport { type DetailedCategoryWithTransactions } from '../../core'\n\nimport { TRENDS_ANALYTICS_METADATA } from '../constants/TrendsWidget'\nimport { getCategoryColor } from '../../core/utils/CategoryUtil'\nimport { formatCurrency } from '../../core/utils/NumberFormatting'\ninterface CategoriesListItemProps extends DetailedCategoryWithTransactions {\n onClick?: () => void\n isLastItem?: boolean\n showDivider?: boolean\n}\n\nconst CategoriesListItem = observer(\n ({\n totalAmount,\n guid,\n name,\n transactions,\n onClick,\n isLastItem = false,\n showDivider = true,\n }: CategoriesListItemProps) => {\n const { trends: copy } = useGlobalCopyStore()\n const { onEvent } = useEvent()\n const theme = useTheme()\n\n const transactionCountText = `${transactions.length} ${transactions.length === 1 ? copy.transaction : copy.transactions}`\n\n const handleClick = () => {\n onClick?.()\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_LIST_ITEM, {\n ...TRENDS_ANALYTICS_METADATA,\n listItem: name,\n })\n }\n\n return (\n <React.Fragment key={guid}>\n <ListItemRow\n leftIcon={\n guid ? (\n <CategoryIcon\n categoryGuid={guid}\n sx={{\n bgcolor: alpha(getCategoryColor(guid, theme), 0.15),\n border: `1px solid ${getCategoryColor(guid, theme)}`,\n color: 'text.primary',\n }}\n />\n ) : undefined\n }\n onClick={handleClick}\n rightContent={formatCurrency(Math.abs(totalAmount), '0,0.00')}\n rightIcon={onClick ? <ChevronRight /> : undefined}\n subtitle={transactionCountText}\n title={name}\n />\n {showDivider && <Divider component=\"li\" sx={{ ml: isLastItem ? 24 : 68 }} />}\n </React.Fragment>\n )\n },\n)\n\nexport default CategoriesListItem\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Collapse from '@mui/material/Collapse'\n\nimport List from '@mui/material/List'\nimport Stack from '@mui/material/Stack'\n\nimport { H3 } from '@mxenabled/mxui'\n\nimport {\n ANALYTICS_EVENTS,\n useEvent,\n useGlobalCopyStore,\n useScreenSize,\n useTrendsStore,\n} from '../../common'\nimport { type DetailedCategoryWithTransactions } from '../../core'\nimport { CollapseExpandListItem } from '../../common/components/listitems/CollapseExpandListItem'\nimport CategoriesListItem from './CategoriesListItem'\nimport { TRENDS_ANALYTICS_METADATA } from '../constants/TrendsWidget'\n\ninterface CategoriesListProps {\n availableHeight?: number\n minHeight?: number\n onCategoryClick: (data: DetailedCategoryWithTransactions) => void\n}\n\nconst CategoriesList: React.FC<CategoriesListProps> = observer(\n ({ availableHeight = 0, onCategoryClick }) => {\n const { collapsedCategories, visibleCategories, setVisibleListLength } = useTrendsStore()\n const { isLargeDesktop, isDesktop } = useScreenSize()\n const { trends: copy } = useGlobalCopyStore()\n const { onEvent } = useEvent()\n const [isExpanded, setIsExpanded] = React.useState(false)\n\n const isLargeLayout = isDesktop || isLargeDesktop\n\n React.useEffect(() => {\n // Divide available height by item height (64px), minus 1 for more/less button\n const newVisibleListLength = Math.floor(availableHeight / 64) - 1\n const totalListItems = visibleCategories.length + collapsedCategories.length\n\n if (newVisibleListLength !== visibleCategories.length) {\n // Always show at least 5 items on large layout, and 5 items on small layout\n // Also ignores when availableHeight < 0 on initial render\n setVisibleListLength(isLargeLayout ? Math.max(newVisibleListLength, 5) : 5)\n setIsExpanded(newVisibleListLength >= totalListItems)\n }\n }, [availableHeight])\n\n const handleCollapseExpand = () => {\n setIsExpanded(!isExpanded)\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_VIEW_MORE, {\n ...TRENDS_ANALYTICS_METADATA,\n })\n }\n\n const totalCategories = visibleCategories.length + (isExpanded ? collapsedCategories.length : 0)\n return (\n <Stack sx={{ width: '100%' }}>\n <Stack sx={{ pb: 4, pt: 16, px: 16 }}>\n <H3>{copy.categories}</H3>\n </Stack>\n <List>\n {visibleCategories.map((category, index) => (\n <CategoriesListItem\n key={category.guid}\n {...category}\n isLastItem={index === totalCategories - 1}\n onClick={\n category.transactions.length > 0 ? () => onCategoryClick(category) : undefined\n }\n showDivider={true}\n />\n ))}\n <Collapse\n component=\"li\"\n in={isExpanded}\n sx={{ '&.MuiCollapse-root .MuiListItemButton-root': { paddingLeft: 24 } }}\n >\n <List>\n {collapsedCategories.map((category, index) => {\n const adjustedIndex = visibleCategories.length + index\n return (\n <CategoriesListItem\n key={category.guid}\n {...category}\n isLastItem={adjustedIndex === totalCategories - 1}\n onClick={\n category.transactions.length > 0 ? () => onCategoryClick(category) : undefined\n }\n showDivider={true}\n />\n )\n })}\n </List>\n </Collapse>\n {collapsedCategories.length > 0 && (\n <CollapseExpandListItem isExpanded={isExpanded} onClick={handleCollapseExpand} />\n )}\n </List>\n </Stack>\n )\n },\n)\n\nexport default CategoriesList\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { Stack } from '@mui/material'\n\nimport { Beat } from '../../core/types/Beat'\nimport { ANALYTICS_EVENTS, useEvent, useGlobalStore, useScreenSize } from '../../common'\n\nimport { InsightsMicroWidget } from '../../microinsights'\nimport { TRENDS_ANALYTICS_METADATA } from '../constants/TrendsWidget'\n\ninterface TrendsMicroInsightsProps {\n beats: Beat[]\n onInsightCardClick?: (beat?: Beat) => void\n}\n\nconst TrendsMicroInsights: React.FC<TrendsMicroInsightsProps> = ({ beats, onInsightCardClick }) => {\n const { onEvent } = useEvent()\n const { isMobile, isDesktop, isLargeDesktop } = useScreenSize()\n const { beatStore, endpoint, sessionToken } = useGlobalStore()\n\n const isLargeLayout = isDesktop || isLargeDesktop\n const visibleCards = isLargeLayout || isMobile ? 1 : 2\n\n const handleLogOutUser = () => {\n return null\n }\n\n const handleCardClick = (beat?: Beat) => {\n onInsightCardClick?.(beat)\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_INSIGHT, TRENDS_ANALYTICS_METADATA)\n }\n\n const carouselHeight = isLargeLayout ? 200 : 170\n const zeroStateHeight = isLargeLayout ? 170 : 124\n const containerHeight = beats.length > 0 ? carouselHeight : zeroStateHeight\n\n return (\n <Stack sx={{ height: containerHeight }}>\n <InsightsMicroWidget\n areBeatsLoading={beatStore.isLoading}\n beats={beats}\n cardStyle=\"border\"\n endpoint={endpoint}\n headerSx={{ p: 0 }}\n logOutUser={handleLogOutUser}\n onCardClick={handleCardClick}\n showCarouselControls={true}\n showHeader={isLargeLayout}\n showIcon={true}\n showWithMargin={false}\n token={sessionToken}\n userHasFullInsightFeedBeats={false}\n visibleCardsCount={visibleCards}\n />\n </Stack>\n )\n}\n\nexport default observer(TrendsMicroInsights)\n","import { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { ANALYTICS_EVENTS, useEvent, useTrendsStore } from '../../common'\nimport { LineChart } from '../../common/components/charts/LineChart'\n\nimport { TRENDS_ANALYTICS_METADATA } from '../constants/TrendsWidget'\ninterface CategoryDetailChartProps {\n chartColor: string\n chartLabel: string\n}\nconst CategoryDetailChart = observer(({ chartLabel, chartColor }: CategoryDetailChartProps) => {\n const { onEvent } = useEvent()\n const {\n categoryDetailsChartData: { monthlyAmounts, tooltipLabels },\n } = useTrendsStore()\n\n const handleItemClick = () => {\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_CHART, TRENDS_ANALYTICS_METADATA)\n }\n\n return (\n <Stack sx={{ pt: 12, width: '100%' }}>\n <LineChart\n baseline=\"min\"\n colors={[chartColor]}\n curveType=\"bump\"\n customTooltipLabels={tooltipLabels}\n datasets={[monthlyAmounts]}\n height={265}\n labels={[chartLabel]}\n markStyles={() => ({\n stroke: chartColor,\n })}\n onItemClick={handleItemClick}\n showArea={true}\n showAverage={true}\n showAxisHighlight={true}\n showLegend={true}\n showTooltip={true}\n showXAxis={true}\n showXAxisTicks={true}\n showYAxis={true}\n showYAxisTicks={true}\n useCustomMark={true}\n valueFormatterString=\"0,0\"\n />\n </Stack>\n )\n})\nexport default CategoryDetailChart\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemAvatar from '@mui/material/ListItemAvatar'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { CategoryIcon, Text } from '@mxenabled/mxui'\n\nimport {\n Drawer,\n useAppConfig,\n useGlobalCopyStore,\n useTrendsStore,\n useTransactionStore,\n useScreenSize,\n} from '../../common'\nimport { type Transaction } from '../../core'\n\nimport { getCategoryColor } from '../../core/utils/CategoryUtil'\nimport { ExportCsvAction, TransactionDetails, TransactionList } from '../../transactions'\n\nimport CategoryDetailChart from './CategoryDetailChart'\nimport { formatCurrency } from '../../core/utils/NumberFormatting'\n\nexport const CategoryDetails = observer(() => {\n const theme = useTheme()\n const { is_mobile_webview } = useAppConfig()\n const { isDesktop, isSmallTablet, isTablet } = useScreenSize()\n const { common: commonCopy, trends: copy } = useGlobalCopyStore()\n const { selectedCategoryData, selectedDateRangeMonthRange } = useTrendsStore()\n const { sortedTransactions: transactions } = useTransactionStore()\n\n const [transactionGuid, setTransactionGuid] = React.useState<string | null>(null)\n\n if (!selectedCategoryData) {\n return null\n }\n\n const { guid, name, is_income, totalAmount } = selectedCategoryData\n\n const chartColor = getCategoryColor(guid, theme)\n const chartLabel = is_income ? copy.income_label : copy.spending_label\n const transactionCountLabel = ` ${\n selectedCategoryData.transactions.length === 1 ? copy.transaction : copy.transactions\n } (${selectedCategoryData.transactions.length})`\n\n const transaction = React.useMemo(\n () => transactions.find((t) => t.guid === transactionGuid),\n [transactionGuid, transactions],\n )\n\n const shouldShowExportButton =\n transactions.length > 0 && !is_mobile_webview && (isDesktop || (isTablet && !isSmallTablet))\n\n const categoryFilter = (t: Transaction) =>\n t.category_guid === guid || t.top_level_category_guid === guid\n\n return (\n <Stack sx={{ alignItems: 'center', height: '100%' }}>\n <Stack sx={{ borderRadius: 0, pb: 4, pt: 16, px: 12, width: '100%' }}>\n <List sx={{ px: 12 }}>\n <ListItem>\n <ListItemAvatar>\n <CategoryIcon categoryGuid={guid} />\n </ListItemAvatar>\n <ListItemText\n primary={name}\n secondary={selectedDateRangeMonthRange}\n slotProps={{\n primary: { component: 'div', variant: 'h3', fontSize: 18, fontWeight: 700 },\n secondary: { component: 'div', variant: 'body2', fontSize: 13 },\n }}\n />\n <Text component=\"div\" variant=\"h3\">\n {formatCurrency(Math.abs(totalAmount), '0,0.00')}\n </Text>\n </ListItem>\n </List>\n\n <CategoryDetailChart chartColor={chartColor} chartLabel={chartLabel} />\n\n <Stack alignItems=\"center\" direction=\"row\" justifyContent=\"space-between\" sx={{ mx: 12 }}>\n <Text bold={true} variant=\"body1\">\n {transactionCountLabel}\n </Text>\n {shouldShowExportButton && <ExportCsvAction filter={categoryFilter} />}\n </Stack>\n </Stack>\n <TransactionList\n bgcolor=\"transparent\"\n filter={categoryFilter}\n height=\"calc(100vh - 475px)\"\n onClick={setTransactionGuid}\n />\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={Boolean(transaction)}\n onClose={() => setTransactionGuid('')}\n title={copy.transaction}\n >\n {transaction && <TransactionDetails transaction={transaction} />}\n </Drawer>\n </Stack>\n )\n})\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { useTheme } from '@mui/material/styles'\n\nimport { ANALYTICS_EVENTS, useEvent, useGlobalCopyStore, useScreenSize } from '../../common'\nimport { DateRange, MonthlyCategoryTotals, TrendsCopy } from '../../core'\nimport { LineChart } from '../../common/components/charts/LineChart'\nimport type { LineChartDataset, LineChartLabel } from '../../common/components/charts/LineChart'\n\nimport { TRENDS_ANALYTICS_METADATA } from '../constants/TrendsWidget'\nimport { getIncomeTotals, getSpendingTotals } from '../utils/SpendingData'\n\nconst getDatasets = (totals: MonthlyCategoryTotals[], dateRange: DateRange): LineChartDataset[] => {\n const incomeData = getIncomeTotals(totals, dateRange)\n const spendingData = getSpendingTotals(totals, dateRange)\n return [incomeData, spendingData].filter((data) => data.length > 0)\n}\n\nconst getLabels = (datasets: LineChartDataset[], copy: TrendsCopy) => {\n const [dataA, dataB] = datasets\n const credits = dataA\n const debits = dataB ?? dataA\n const labels: LineChartLabel[] = []\n\n if (credits) {\n const totalIncome = credits.reduce((sum, item) => sum + item.y, 0)\n labels.push({ label: copy.income_label, amount: totalIncome })\n }\n\n if (debits) {\n const totalSpending = debits.reduce((sum, item) => sum + item.y, 0)\n labels.push({ label: copy.spending_label, amount: totalSpending })\n }\n\n return labels\n}\n\ninterface TrendsChartTotalsProps {\n availableHeight?: number\n minHeight?: number\n selectedDateRange: DateRange\n totals: MonthlyCategoryTotals[]\n}\n\nconst TrendsChartTotals: React.FC<TrendsChartTotalsProps> = ({\n availableHeight = 0,\n minHeight = 500,\n selectedDateRange,\n totals,\n}) => {\n const theme = useTheme()\n const { onEvent } = useEvent()\n const { trends: trendsCopy } = useGlobalCopyStore()\n const { isSmallMobile, isMobile, isSmallTablet, isTablet } = useScreenSize()\n\n const colors = [theme.palette.chart?.chart1, theme.palette.chart?.chart2]\n const datasets = getDatasets(totals, selectedDateRange)\n const labels = getLabels(datasets, trendsCopy)\n\n const [chartDesktopHeight, setChartDesktopHeight] = React.useState<number>(0)\n const chartTabletHeight = 458\n const chartMobileHeight = 195\n const legendHeight = 56\n\n // prettier-ignore\n // eslint-disable-next-line no-nested-ternary\n const chartHeight = (isMobile || isSmallMobile) ? chartMobileHeight :\n (isSmallTablet || isTablet) ? chartTabletHeight : chartDesktopHeight;\n\n // Control responsive chart height based on available height\n React.useEffect(() => {\n const newChartHeight = Math.max(availableHeight - legendHeight, minHeight)\n setChartDesktopHeight(newChartHeight)\n }, [availableHeight])\n\n const handleItemClick = () => {\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_CHART, TRENDS_ANALYTICS_METADATA)\n }\n\n return (\n <LineChart\n baseline=\"min\"\n colors={colors}\n curveType=\"bump\"\n datasets={datasets}\n height={chartHeight}\n labels={labels}\n onItemClick={handleItemClick}\n showArea={true}\n showAxisHighlight={true}\n showLegend={true}\n showTooltip={true}\n showXAxis={true}\n showXAxisTicks={true}\n showYAxis={true}\n showYAxisTicks={true}\n valueFormatterString=\"0.0a\"\n />\n )\n}\n\nexport default observer(TrendsChartTotals)\n","export const TRENDS_BEAT_TEMPLATES = [\n 'BillAmountNotStandard',\n 'CategorySpendingV2',\n 'CostOfLivingToIncome',\n 'DebtPaymentReminderV2',\n 'DiscoveredAccounts',\n 'DuplicatePaymentV2',\n 'FeeDetected',\n 'GreenGasPurchasesSummary',\n 'LargeTransaction',\n 'LowAccountBalance',\n 'MonthlyDebtToIncomeComparisonV2',\n 'MonthlyDepositSummaryV2',\n 'MonthlyNonEssentialCategorySummaryV2',\n 'MonthlySavingsToIncomeComparison',\n 'MonthlySpendToIncomeComparisonV2',\n 'MonthlySubscriptionAggregateV2',\n 'MonthlyTopMerchantSpendingV3',\n 'MonthlyObligationsStatus',\n 'QuarterlySummary',\n 'SaveAnExtra100Dollars',\n 'SaveEnoughToLiveOn',\n 'SavingsOpportunityV2',\n 'SubscriptionDetected',\n 'SubscriptionPriceIncrease',\n 'SetUpDirectDeposit',\n 'SwitchDirectDeposit',\n 'UnexpectedSubscriptionPayment',\n 'UpcomingBill',\n 'UpcomingSubscription',\n 'WeekendSpendingSummaryV2',\n 'WeeklyNewMerchantsV2',\n 'WeeklyNoSpendDays',\n 'WeeklySmallPurchasesSummary',\n]\n","import { type TrendsCopy } from '../../core'\n\nexport const buildEmptyStateProps = (\n copy: TrendsCopy,\n hasAggregation: boolean,\n handler: () => void,\n) => ({\n description: hasAggregation\n ? copy.empty_state_sub_text\n : copy.empty_state_sub_text_no_aggregation,\n header: hasAggregation\n ? copy.zero_state_content_header\n : copy.zero_state_content_header_no_aggregation,\n onClickHandler: hasAggregation ? handler : undefined,\n primaryButton: hasAggregation ? copy.empty_state_primary : undefined,\n})\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\nimport { addSeconds } from 'date-fns/addSeconds'\nimport { differenceInCalendarMonths } from 'date-fns/differenceInCalendarMonths'\n\nimport { DateRange } from '@mui/x-date-pickers-pro'\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\n\nimport { ArrowBack } from '@mxenabled/mx-icons'\n\nimport {\n ANALYTICS_EVENTS,\n ConnectDrawer,\n Drawer,\n EmptyState,\n Loader,\n WidgetContainer,\n useAccountStore,\n useAppConfig,\n useCategoryStore,\n useEvent,\n useGlobalCopyStore,\n useGlobalStore,\n useGlobalUiStore,\n useInsightsEnabled,\n useScreenSize,\n useTransactionStore,\n useTrendsStore,\n useWidgetLoadTimer,\n} from '../common'\nimport { type Beat, type DetailedCategoryWithTransactions, Transaction, WidgetProps } from '../core'\n\nimport DateRangeText from './components/DateRangeText'\nimport TrendsViewToggle, { type TrendsTabValue } from './components/TrendsViewToggle'\nimport TrendsTableContainer from './components/TrendsTableContainer'\nimport CategoriesList from './components/CategoriesList'\nimport InsightsCarousel from './components/TrendsInsights'\nimport { CategoryDetails } from './components/CategoryDetails'\nimport TrendsChartTotals from './components/TrendsChartTotals'\nimport { TRENDS_ANALYTICS_METADATA } from './constants/TrendsWidget'\nimport { TRENDS_BEAT_TEMPLATES } from './constants/TrendsInsights'\nimport { buildEmptyStateProps } from './utils/TrendsWidget'\n\ninterface TrendsWidgetProps extends WidgetProps {\n onInsightCardClick?: (beat?: Beat) => void\n}\n\nconst TrendsWidget: React.FC<TrendsWidgetProps> = ({\n onBackClick,\n onMenuClick,\n onInsightCardClick,\n sx,\n}) => {\n const { onEvent } = useEvent()\n const { config } = useAppConfig()\n const { isDesktop, isLargeDesktop, isMobile } = useScreenSize()\n const { isAccountDataLoaded, loadAccountData, visibleAccounts: accounts } = useAccountStore()\n const {\n categoriesLoaded,\n loadCategories,\n loadDateRangeCategoryTotals,\n loadMonthlyCategoryTotals,\n monthlyCategoryTotals,\n monthlyTotalsLoaded,\n } = useCategoryStore()\n const { isTransactionDataLoaded, loadTransactionData, setFilter } = useTransactionStore()\n const { selectedCategoryData, selectedDateRange, setSelectedCategoryData, setSelectedDateRange } =\n useTrendsStore()\n const { isInitialized, selectedAccounts, selectedAccountGuids } = useGlobalUiStore()\n const { trends: copy, connect: connectCopy } = useGlobalCopyStore()\n const { beatStore } = useGlobalStore()\n const insightsEnabled = useInsightsEnabled()\n\n // allows clients to disable insights in trends while still enabling insights\n const showInsights = insightsEnabled && config.show_insights_widget_in_master\n const isLargeLayout = isDesktop || isLargeDesktop\n\n const [isWidgetInitialized, setIsWidgetInitialized] = React.useState(false)\n const [isBeatsLoaded, setIsBeatsLoaded] = React.useState(false)\n const [selectedTab, setSelectedTab] = React.useState<TrendsTabValue>('Chart')\n const [selectedCategory, setSelectedCategory] = React.useState('')\n\n // Control responsive chart height based on available widget iframe viewport height\n const [viewportHeight, setViewportHeight] = React.useState(window.innerHeight)\n const insightsPadding = isLargeLayout ? 56 : 0\n const availableChartHeight = viewportHeight - 208 // unavailable height on desktop\n const availableListHeight = viewportHeight - (showInsights ? 550 + insightsPadding : 266)\n\n const [showConnectWidget, setShowConnectWidget] = React.useState(false)\n const hasAggregation = config.show_connections_widget_in_master\n\n useWidgetLoadTimer({\n widgetName: 'TrendsWidget',\n isLoaded: isWidgetInitialized,\n })\n const filteredBeats = React.useMemo(() => {\n if (!isBeatsLoaded) return []\n return beatStore.getFilteredBeats({ templates: TRENDS_BEAT_TEMPLATES })\n }, [isBeatsLoaded])\n\n React.useEffect(() => {\n // Setup resize listener for responsive chart and list heights\n const handleResize = () => setViewportHeight(window.innerHeight)\n window.addEventListener('resize', handleResize)\n\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n if (!categoriesLoaded) {\n loadCategories().finally()\n }\n if (!isTransactionDataLoaded) {\n loadTransactionData().finally()\n }\n\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n // Initialize monthlyCategoryTotals, and reload on account or date range change\n React.useEffect(() => {\n if (isInitialized && isAccountDataLoaded) {\n beatStore.loadBeats().finally(() => setIsBeatsLoaded(true))\n loadDateRangeCategoryTotals(selectedAccounts, selectedDateRange.start, selectedDateRange.end)\n .then(() => {\n loadMonthlyCategoryTotals(\n selectedAccounts,\n selectedDateRange.start,\n selectedDateRange.end,\n ).finally()\n })\n .finally(() => {\n setIsWidgetInitialized(true)\n onEvent(ANALYTICS_EVENTS.TRENDS_LOAD_WIDGET, {\n ...TRENDS_ANALYTICS_METADATA,\n time_period: `${differenceInCalendarMonths(selectedDateRange.end, selectedDateRange.start)}M`,\n })\n })\n }\n }, [isInitialized, isAccountDataLoaded, selectedAccounts, selectedDateRange])\n\n React.useEffect(() => {\n // if monthlyCategoryTotals has data, filter transactions\n if (monthlyCategoryTotals.length !== 0) {\n const transactionFilter = {\n accounts: selectedAccountGuids,\n dateRange: { start: selectedDateRange.start, end: selectedDateRange.end },\n }\n\n // this filter sets sortedTransactions in the transaction store\n setFilter({\n ...transactionFilter,\n custom: (t: Transaction) =>\n Boolean(\n monthlyCategoryTotals.find(\n (cat) =>\n cat.top_level_category_guid === t.top_level_category_guid ||\n cat.category_guid === t.category_guid,\n ),\n ),\n })\n }\n }, [monthlyCategoryTotals])\n\n const handleDetailOpen = (selected: DetailedCategoryWithTransactions) => {\n setSelectedCategoryData(selected)\n }\n\n const handleDetailClose = () => {\n setSelectedCategoryData(null)\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_BACK, TRENDS_ANALYTICS_METADATA)\n }\n\n const handleEmptyStateClick = () => {\n setShowConnectWidget(true)\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_CONNECT_ACCOUNTS)\n }\n\n const onTabChange = (_event: React.SyntheticEvent, newValue: TrendsTabValue) => {\n setSelectedTab(newValue ?? selectedTab)\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_TOGGLE_VIEW, {\n ...TRENDS_ANALYTICS_METADATA,\n toggleView: newValue,\n })\n }\n\n const onRangeChanged = (dateRange: DateRange<Date>) => {\n const startDate = addSeconds(dateRange?.[0] as Date, 1)\n const endDate = dateRange?.[1] as Date\n const months = differenceInCalendarMonths(endDate, startDate)\n\n setSelectedDateRange({ start: startDate, end: endDate })\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_TIME_WINDOW, {\n ...TRENDS_ANALYTICS_METADATA,\n time_period: months + 'M',\n })\n }\n\n const onAccountsFilterClick = (selectedAccountGuids?: string[]) => {\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_FILTER, {\n ...TRENDS_ANALYTICS_METADATA,\n filterValue: selectedAccountGuids,\n })\n }\n\n const onClickRow = (guid: string) => {\n setSelectedCategory(guid)\n }\n\n const onViewAllCategories = () => {\n setSelectedCategory('')\n onEvent(ANALYTICS_EVENTS.TRENDS_CLICK_ALL_CATEGORIES, TRENDS_ANALYTICS_METADATA)\n }\n\n if (!isInitialized || !isAccountDataLoaded || !isWidgetInitialized || !monthlyTotalsLoaded)\n return <Loader />\n\n const isEmptyTrendsState = accounts.length === 0 || monthlyCategoryTotals.length === 0\n\n const emptyStateProps = buildEmptyStateProps(copy, hasAggregation, handleEmptyStateClick)\n\n return (\n <WidgetContainer\n calendarActions={{ onRangeChanged }}\n dateRange={selectedDateRange}\n dateRangeVariant={isMobile ? 'timeframetabs' : 'timeframebuttons'}\n onAccountsFilterClick={onAccountsFilterClick}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n sx={sx}\n title={copy.title}\n >\n <Stack\n sx={{\n px: isMobile ? 0 : 48,\n }}\n >\n <Stack\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n sx={{ px: isMobile ? 16 : 0, py: 16 }}\n >\n <DateRangeText\n selectedCategoryGuid={selectedCategory}\n selectedDateRange={selectedDateRange}\n />\n <TrendsViewToggle onTabChange={onTabChange} selectedTab={selectedTab} />\n </Stack>\n <Stack alignItems=\"center\" flexDirection=\"row\" sx={{ pb: 8 }} width=\"100%\">\n <Box flexGrow={1}>\n {selectedCategory && (\n <Button onClick={onViewAllCategories} sx={{ p: 0, pr: 5 }}>\n <ArrowBack />\n {copy.all_categories}\n </Button>\n )}\n </Box>\n </Stack>\n\n {isEmptyTrendsState && (\n <EmptyState\n header={emptyStateProps.header}\n icon=\"multiline_chart\"\n onClick={emptyStateProps.onClickHandler}\n primaryButton={emptyStateProps.primaryButton}\n subText={emptyStateProps.description}\n sx={{ height: availableChartHeight, maxWidth: 432 }}\n />\n )}\n {!isEmptyTrendsState && (\n <Stack flexDirection={isLargeLayout ? 'row' : 'column'} gap={isLargeLayout ? 48 : 16}>\n {selectedTab === 'Chart' && (\n <>\n <Box sx={{ width: isLargeLayout ? '68%' : '100%' }}>\n <TrendsChartTotals\n availableHeight={availableChartHeight}\n minHeight={450}\n selectedDateRange={selectedDateRange}\n totals={monthlyCategoryTotals}\n />\n </Box>\n <Stack gap={16} sx={{ width: isLargeLayout ? '32%' : '100%' }}>\n {/* Only show insights enabled and there are beats to show */}\n {showInsights && isBeatsLoaded && filteredBeats.length > 0 && (\n <InsightsCarousel\n beats={filteredBeats}\n onInsightCardClick={onInsightCardClick}\n />\n )}\n <CategoriesList\n availableHeight={availableListHeight}\n onCategoryClick={handleDetailOpen}\n />\n </Stack>\n </>\n )}\n {selectedTab === 'Table' && (\n <Box sx={{ width: '100%' }}>\n <TrendsTableContainer\n height=\"unset\"\n onClickRow={onClickRow}\n selectedCategory={selectedCategory}\n selectedDateRange={selectedDateRange}\n />\n </Box>\n )}\n </Stack>\n )}\n <Drawer\n ariaLabelClose={copy.close_category_details}\n isOpen={Boolean(selectedCategoryData)}\n onClose={handleDetailClose}\n shouldShowHeaderShadow={true}\n title={selectedCategoryData?.is_income ? copy.category_income : copy.category_spending}\n >\n {selectedCategoryData && <CategoryDetails />}\n </Drawer>\n </Stack>\n\n <ConnectDrawer\n onClose={() => setShowConnectWidget(false)}\n showConnectWidget={showConnectWidget}\n title={connectCopy.mini_title}\n />\n </WidgetContainer>\n )\n}\n\nexport default observer(TrendsWidget)\n"],"names":["CategoryIconLabel","categoryGuid","topLevelCategoryGuid","copy","useGlobalCopyStore","getCategoryName","useCategoryStore","categoryName","jsxs","Stack","jsx","Box","buildDynamicCopy","CategoryIcon","Text","CustomAreaTooltip","guid","topLevelGuid","hoveredAreaData","cursorPosition","chartContainerRef","theme","useTheme","tooltipRef","useRef","adjustedPos","setAdjustedPos","useState","useEffect","tooltipEl","chartEl","tooltipRect","containerRect","newX","newY","seriesSum","sum","dataPoint","Card","CardContent","CurrencyText","Divider","Grid","index","React","CustomAreaTooltip$1","observer","CustomLegend","sx","categoryGuids","hoveredLegend","legendRef","onHoverLegend","onClickLegend","isMobile","useScreenSize","top_level_guid","isHovered","categoryColor","CategoryColors","topLevelCategoryColor","baseBackground","transparentBackground","Button","CustomPointTooltip","allSeries","xData","tooltip","useItemTooltip","dataIndex","seriesId","dataValue","s","dataDate","formatDate","DATE_FORMATS_INTL","StackedLineChart","onHoverArea","onHoverPoint","stackedDatasets","unstackedDatasets","availableHeight","minimumHeight","legendHeight","useDimensions","chartHeight","setChartHeight","newChartHeight","setHoveredLegend","hoverState","setHoverState","hoveredSeriesId","isAreaHovered","cursorPos","showAreaTooltip","showPointTooltip","datasets","xTicks","data","d","yData","cumulativeHeights","_","i","dataset","stackedMax","unstackedMax","yMin","yMax","stackedSeries","value","formatCurrency","unstackedSeries","series","guids","getSeriesCategoryGuids","handleHoverLegend","handleClickLegend","handleClickArea","clickedSeriesGuid","handleHighlightChange","highlightedItem","hoveredSeriesGuid","hoveredSeries","isPointHovered","hoveredDataPoints","yValue","handleMouseMove","event","rect","prev","customStyles","acc","selector","LineChart","props","ChartsTooltipContainer","numeral","point","TrendsViewToggle","selectedTab","onTabChange","ToggleButtonGroup","tab","ToggleButton","Icon","DateRangeText","selectedDateRange","selectedCategoryGuid","isDesktop","dateRangeText","startDate","endDate","titleText","H3","CategoryCell","params","isTotal","AmountCell","category","parentCategory","isIncome","CategoryGuids","isTotalRow","isTotalColumn","amount","amountsReducer","records","monthlyAmount","monthHeader","parseISO","totalReducer","monthHeaders","ma","generateMonthHeaders","start","end","result","current","formattedDate","getTrendsTableColumns","categoryColumn","HeaderCell","categoryComparator","monthColumns","amountComparator","_value","row","totalColumn","getTrendsTableRows","categories","categoryRows","amounts","total","IconButtonContainer","styled","AccessibleSortIconRaw","direction","sortingOrder","disabled","className","field","apiRef","useGridApiContext","rootProps","useGridRootProps","iconProps","columnName","sortStateLabel","sortTypeLabel","ariaLabel","iconElement","iconButton","IconButton","Badge","AccessibleSortIcon","TrendsTable","columns","onRowClick","rows","totalRow","onEvent","useEvent","isLightMode","DataGridPro","r","ANALYTICS_EVENTS","TRENDS_ANALYTICS_METADATA","CategoryGuidToName","TrendsTableContainer","selectedCategory","onClickRow","height","trendsCategories","incomeRows","spendingRows","c","totalSpendingRow","month","TrendsDrawer","dateRange","isOpen","onClose","accounts","useGlobalUiStore","commonCopy","setFilter","sortedTransactions","useTransactionStore","setGuid","transaction","t","handleClose","Drawer","TransactionDetails","TransactionList","TrendsDrawer$1","TrendsFullWidget","onBackClick","onMenuClick","isTablet","isAccountDataLoaded","loadAccountData","useAccountStore","categoriesLoaded","loadCategories","loadDateRangeCategoryTotals","loadMonthlyCategoryTotals","monthlyCategoryTotals","isTransactionDataLoaded","loadTransactionData","transactions","setSelectedDateRange","useTrendsStore","isInitialized","selectedAccounts","isWidgetInitialized","setIsWidgetInitialized","showTransactions","setShowTransactions","setSelectedTab","setSelectedCategory","viewportHeight","setViewportHeight","availableChartHeight","useWidgetLoadTimer","handleResize","differenceInCalendarMonths","chartData","getStackedLineChartData","filteredData","getTopLevelCategoryTotals","isExpense","_event","newValue","onRangeChanged","addSeconds","months","onAccountsFilterClick","Loader","WidgetContainer","TrendsFullWidget_default","SpendingChart","trendsCopy","useWidgetContainerProvider","getSpendingData","SpendingChart$1","TrendsMiniWidget","onPrimaryCtaClick","monthlyTotalsLoaded","useGlobalStore","MiniWidgetContainer","TrendsMiniWidget_default","secondaryLabelWidth","TrendsMicroSpendingIncomeBox","title","totalAmount","transactionType","percentage","secondaryLabel","shouldDisplayPercentage","availableWidth","amountRef","containerRef","displayPercentage","formatPercentage","displayTotalAmount","isGainPercentage","isGainPercentageColor","isLossPercentageColor","amountElement","containerElement","isOverflowing","P","TrendingUp","TrendingDown","ZeroStateMicroWidget","MultilineChart","TrendsMicroWidget","onCtaClick","subMonths","spendingData","incomeData","getSpendingTotals","getIncomeTotals","lastMonthSpending","thisMonthSpending","lastMonthIncome","thisMonthIncome","spendingPercentage","calculateRelativeChange","incomePercentage","showZeroState","handleCtaClick","MicroWidgetContainer","CollapseExpandListItem","isExpanded","onClick","ListItem","ListItemButton","ListItemText","ListItemIcon","ExpandLess","ExpandMore","CategoriesListItem","name","isLastItem","showDivider","transactionCountText","handleClick","ListItemRow","alpha","getCategoryColor","ChevronRight","CategoriesList","onCategoryClick","collapsedCategories","visibleCategories","setVisibleListLength","isLargeDesktop","setIsExpanded","isLargeLayout","newVisibleListLength","totalListItems","handleCollapseExpand","totalCategories","List","Collapse","adjustedIndex","TrendsMicroInsights","beats","onInsightCardClick","beatStore","endpoint","sessionToken","visibleCards","handleLogOutUser","handleCardClick","beat","carouselHeight","zeroStateHeight","containerHeight","InsightsMicroWidget","InsightsCarousel","CategoryDetailChart","chartLabel","chartColor","monthlyAmounts","tooltipLabels","CategoryDetails","is_mobile_webview","useAppConfig","isSmallTablet","selectedCategoryData","selectedDateRangeMonthRange","transactionGuid","setTransactionGuid","is_income","transactionCountLabel","shouldShowExportButton","categoryFilter","ListItemAvatar","ExportCsvAction","getDatasets","totals","getLabels","dataA","dataB","credits","debits","labels","totalIncome","item","totalSpending","TrendsChartTotals","minHeight","isSmallMobile","colors","chartDesktopHeight","setChartDesktopHeight","chartTabletHeight","chartMobileHeight","TrendsChartTotals$1","TRENDS_BEAT_TEMPLATES","buildEmptyStateProps","hasAggregation","handler","TrendsWidget","config","setSelectedCategoryData","selectedAccountGuids","connectCopy","showInsights","useInsightsEnabled","isBeatsLoaded","setIsBeatsLoaded","insightsPadding","availableListHeight","showConnectWidget","setShowConnectWidget","filteredBeats","transactionFilter","cat","handleDetailOpen","selected","handleDetailClose","handleEmptyStateClick","onViewAllCategories","isEmptyTrendsState","emptyStateProps","ArrowBack","EmptyState","Fragment","ConnectDrawer","TrendsWidget_default"],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import t from "react";
|
|
2
|
-
import { i } from "./hooks-97sNJ_lf.mjs";
|
|
3
|
-
function o(e, n) {
|
|
4
|
-
if (n?.allowNickname === !0) {
|
|
5
|
-
const m = e.nickname?.trim();
|
|
6
|
-
if (m) return m;
|
|
7
|
-
}
|
|
8
|
-
const a = e.name?.trim();
|
|
9
|
-
return a || e.feed_name?.trim() || "";
|
|
10
|
-
}
|
|
11
|
-
const f = (e) => {
|
|
12
|
-
const { config: n } = i();
|
|
13
|
-
return t.useMemo(
|
|
14
|
-
() => o(e, {
|
|
15
|
-
allowNickname: n?.show_account_nicknames_in_master
|
|
16
|
-
}),
|
|
17
|
-
[e, n?.show_account_nicknames_in_master]
|
|
18
|
-
);
|
|
19
|
-
};
|
|
20
|
-
export {
|
|
21
|
-
o as g,
|
|
22
|
-
f as u
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=useAccountDisplayName-BsiXA0qf.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAccountDisplayName-BsiXA0qf.mjs","sources":["../src/common/utils/AccountDisplayName.ts","../src/common/hooks/useAccountDisplayName.tsx"],"sourcesContent":["import type { Account } from '../../core/types/Account'\n\nexport interface AccountDisplayNameOptions {\n allowNickname?: boolean\n}\n\nexport function getAccountDisplayName(\n account: Account,\n options?: AccountDisplayNameOptions,\n): string {\n if (options?.allowNickname === true) {\n const nickName = account.nickname?.trim()\n if (nickName) return nickName\n }\n\n const name = account.name?.trim()\n if (name) return name\n\n const feedName = account.feed_name?.trim()\n return feedName || ''\n}\n\nexport default getAccountDisplayName\n","import React from 'react'\nimport { useAppConfig } from '../'\nimport type { Account } from '../../core'\nimport getAccountDisplayName from '../utils/AccountDisplayName'\n\nexport const useAccountDisplayName = (account: Account) => {\n const { config } = useAppConfig()\n return React.useMemo(\n () =>\n getAccountDisplayName(account, {\n allowNickname: config?.show_account_nicknames_in_master,\n }),\n [account, config?.show_account_nicknames_in_master],\n )\n}\n\nexport default useAccountDisplayName\n"],"names":["getAccountDisplayName","account","options","nickName","name","useAccountDisplayName","config","useAppConfig","React"],"mappings":";;AAMO,SAASA,EACdC,GACAC,GACQ;AACR,MAAIA,GAAS,kBAAkB,IAAM;AACnC,UAAMC,IAAWF,EAAQ,UAAU,KAAA;AACnC,QAAIE,EAAU,QAAOA;AAAA,EACvB;AAEA,QAAMC,IAAOH,EAAQ,MAAM,KAAA;AAC3B,SAAIG,KAEaH,EAAQ,WAAW,KAAA,KACjB;AACrB;ACfO,MAAMI,IAAwB,CAACJ,MAAqB;AACzD,QAAM,EAAE,QAAAK,EAAA,IAAWC,EAAA;AACnB,SAAOC,EAAM;AAAA,IACX,MACER,EAAsBC,GAAS;AAAA,MAC7B,eAAeK,GAAQ;AAAA,IAAA,CACxB;AAAA,IACH,CAACL,GAASK,GAAQ,gCAAgC;AAAA,EAAA;AAEtD;"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { jsx as l } from "react/jsx-runtime";
|
|
2
|
-
import e from "react";
|
|
3
|
-
import u from "@mui/material/Box";
|
|
4
|
-
const f = (i = "polite") => {
|
|
5
|
-
const [s, o] = e.useState(""), [t, r] = e.useState(i), n = e.useCallback((c, a) => {
|
|
6
|
-
a && r(a), o(c);
|
|
7
|
-
}, []), p = e.useMemo(
|
|
8
|
-
() => /* @__PURE__ */ l(
|
|
9
|
-
u,
|
|
10
|
-
{
|
|
11
|
-
"aria-atomic": "true",
|
|
12
|
-
"aria-live": t,
|
|
13
|
-
role: t === "assertive" ? "alert" : "status",
|
|
14
|
-
sx: {
|
|
15
|
-
position: "absolute",
|
|
16
|
-
width: "1px",
|
|
17
|
-
height: "1px",
|
|
18
|
-
padding: 0,
|
|
19
|
-
margin: "-1px",
|
|
20
|
-
overflow: "hidden",
|
|
21
|
-
clip: "rect(0 0 0 0)",
|
|
22
|
-
clipPath: "inset(50%)",
|
|
23
|
-
whiteSpace: "nowrap",
|
|
24
|
-
border: 0
|
|
25
|
-
},
|
|
26
|
-
children: s
|
|
27
|
-
}
|
|
28
|
-
),
|
|
29
|
-
[s, t]
|
|
30
|
-
);
|
|
31
|
-
return { announce: n, ariaLive: p };
|
|
32
|
-
};
|
|
33
|
-
export {
|
|
34
|
-
f as u
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=useAriaLive-MkYebyUR.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAriaLive-MkYebyUR.mjs","sources":["../src/common/hooks/useAriaLive.tsx"],"sourcesContent":["import React from 'react'\nimport Box from '@mui/material/Box'\n\nexport type AriaLivePoliteness = 'polite' | 'assertive'\n\ninterface UseAriaLiveResult {\n announce: (message: string, politeness?: AriaLivePoliteness) => void\n ariaLive: React.ReactElement | null\n}\n\nexport const useAriaLive = (\n initialPoliteness: AriaLivePoliteness = 'polite',\n): UseAriaLiveResult => {\n const [message, setMessage] = React.useState('')\n const [politeness, setPoliteness] = React.useState<AriaLivePoliteness>(initialPoliteness)\n\n const announce = React.useCallback((next: string, nextPoliteness?: AriaLivePoliteness) => {\n if (nextPoliteness) setPoliteness(nextPoliteness)\n setMessage(next)\n }, [])\n\n const ariaLive = React.useMemo(\n () => (\n <Box\n aria-atomic=\"true\"\n aria-live={politeness}\n role={politeness === 'assertive' ? 'alert' : 'status'}\n sx={{\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: 0,\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n whiteSpace: 'nowrap',\n border: 0,\n }}\n >\n {message}\n </Box>\n ),\n [message, politeness],\n )\n\n return { announce, ariaLive }\n}\n"],"names":["useAriaLive","initialPoliteness","message","setMessage","React","politeness","setPoliteness","announce","next","nextPoliteness","ariaLive","jsx","Box"],"mappings":";;;AAUO,MAAMA,IAAc,CACzBC,IAAwC,aAClB;AACtB,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAM,SAAS,EAAE,GACzC,CAACC,GAAYC,CAAa,IAAIF,EAAM,SAA6BH,CAAiB,GAElFM,IAAWH,EAAM,YAAY,CAACI,GAAcC,MAAwC;AACxF,IAAIA,OAA8BA,CAAc,GAChDN,EAAWK,CAAI;AAAA,EACjB,GAAG,CAAA,CAAE,GAECE,IAAWN,EAAM;AAAA,IACrB,MACE,gBAAAO;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,aAAWP;AAAA,QACX,MAAMA,MAAe,cAAc,UAAU;AAAA,QAC7C,IAAI;AAAA,UACF,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,MAAM;AAAA,UACN,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,QAAQ;AAAA,QAAA;AAAA,QAGT,UAAAH;AAAA,MAAA;AAAA,IAAA;AAAA,IAGL,CAACA,GAASG,CAAU;AAAA,EAAA;AAGtB,SAAO,EAAE,UAAAE,GAAU,UAAAG,EAAA;AACrB;"}
|