@mx-cartographer/experiences 9.2.4-alpha.al5 → 9.3.0-alph.bb2
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/dist/accounts/AccountsMiniWidget.es.js +56 -0
- package/dist/accounts/AccountsMiniWidget.es.js.map +1 -0
- package/dist/accounts/AccountsWidget.es.js +75 -0
- package/dist/accounts/AccountsWidget.es.js.map +1 -0
- package/dist/accounts/ConnectMiniWidget.es.js +35 -0
- package/dist/accounts/ConnectMiniWidget.es.js.map +1 -0
- package/dist/accounts/components/AccountListItem.es.js +91 -0
- package/dist/accounts/components/AccountListItem.es.js.map +1 -0
- package/dist/accounts/components/AccountsList.es.js +129 -0
- package/dist/accounts/components/AccountsList.es.js.map +1 -0
- package/dist/accounts/components/AccountsListCompact.es.js +86 -0
- package/dist/accounts/components/AccountsListCompact.es.js.map +1 -0
- package/dist/accounts/components/ConnectImage.es.js +388 -0
- package/dist/accounts/components/ConnectImage.es.js.map +1 -0
- package/dist/accounts/components/ConnectMiniWidgetCard.es.js +27 -0
- package/dist/accounts/components/ConnectMiniWidgetCard.es.js.map +1 -0
- package/dist/accounts/components/ConnectionStatusIcons.es.js +23 -0
- package/dist/accounts/components/ConnectionStatusIcons.es.js.map +1 -0
- package/dist/accounts/components/ConnectionsDrawer.es.js +52 -0
- package/dist/accounts/components/ConnectionsDrawer.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountActions.es.js +134 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountActions.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountActionsRow.es.js +32 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountActionsRow.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountConnection.es.js +158 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountConnection.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailEdit.es.js +119 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailEdit.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetails.es.js +75 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetails.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsChart.es.js +38 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsChart.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsContent.es.js +50 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsContent.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsDrawer.es.js +21 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsDrawer.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsHeader.es.js +81 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsHeader.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsTab.es.js +22 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsTab.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/ConnectionErrorMessage.es.js +75 -0
- package/dist/accounts/components/detailsdrawer/Accounts/ConnectionErrorMessage.es.js.map +1 -0
- package/dist/accounts/components/detailsdrawer/Transactions/TransactionsTab.es.js +37 -0
- package/dist/accounts/components/detailsdrawer/Transactions/TransactionsTab.es.js.map +1 -0
- package/dist/accounts/constants/Accounts.d.ts +1 -4
- package/dist/accounts/constants/Accounts.es.js +10 -0
- package/dist/accounts/constants/Accounts.es.js.map +1 -0
- package/dist/accounts/hooks/useGetMergeableAccounts.es.js +11 -0
- package/dist/accounts/hooks/useGetMergeableAccounts.es.js.map +1 -0
- package/dist/accounts/hooks/useUiStore.es.js +12 -0
- package/dist/accounts/hooks/useUiStore.es.js.map +1 -0
- package/dist/accounts/index.es.js +23 -784
- package/dist/accounts/utils/AccountDetails.es.js +28 -0
- package/dist/accounts/utils/AccountDetails.es.js.map +1 -0
- package/dist/accounts/utils/AccountFields.es.js +131 -0
- package/dist/accounts/utils/AccountFields.es.js.map +1 -0
- package/dist/accounts/utils/getConnectionMessages.es.js +131 -0
- package/dist/accounts/utils/getConnectionMessages.es.js.map +1 -0
- package/dist/analytics/SurveyMiniWidget.es.js +117 -0
- package/dist/analytics/SurveyMiniWidget.es.js.map +1 -0
- package/dist/analytics/components/OpenTextField.es.js +23 -0
- package/dist/analytics/components/OpenTextField.es.js.map +1 -0
- package/dist/analytics/components/RatingScale.es.js +56 -0
- package/dist/analytics/components/RatingScale.es.js.map +1 -0
- package/dist/analytics/index.es.js +2 -151
- package/dist/budgets/BubbleBudgetsMiniWidget.es.js +100 -0
- package/dist/budgets/BubbleBudgetsMiniWidget.es.js.map +1 -0
- package/dist/budgets/BubbleBudgetsWidget.es.js +143 -0
- package/dist/budgets/BubbleBudgetsWidget.es.js.map +1 -0
- package/dist/budgets/components/AddBudgets.es.js +31 -0
- package/dist/budgets/components/AddBudgets.es.js.map +1 -0
- package/dist/budgets/components/BubbleBudgets.es.js +47 -0
- package/dist/budgets/components/BubbleBudgets.es.js.map +1 -0
- package/dist/budgets/components/BubbleChart.es.js +59 -0
- package/dist/budgets/components/BubbleChart.es.js.map +1 -0
- package/dist/budgets/components/BudgetDetailsDrawer.es.js +106 -0
- package/dist/budgets/components/BudgetDetailsDrawer.es.js.map +1 -0
- package/dist/budgets/components/BudgetDetailsDrawerV2.es.js +126 -0
- package/dist/budgets/components/BudgetDetailsDrawerV2.es.js.map +1 -0
- package/dist/budgets/components/BudgetList.es.js +44 -0
- package/dist/budgets/components/BudgetList.es.js.map +1 -0
- package/dist/budgets/components/BudgetsEmptyState.es.js +109 -0
- package/dist/budgets/components/BudgetsEmptyState.es.js.map +1 -0
- package/dist/budgets/components/MerchantBudgetDetailsDrawer.es.js +54 -0
- package/dist/budgets/components/MerchantBudgetDetailsDrawer.es.js.map +1 -0
- package/dist/budgets/components/Overview.es.js +129 -0
- package/dist/budgets/components/Overview.es.js.map +1 -0
- package/dist/budgets/components/addbudget/Header.es.js +70 -0
- package/dist/budgets/components/addbudget/Header.es.js.map +1 -0
- package/dist/budgets/components/addbudget/RecalculateBudgetRow.es.js +30 -0
- package/dist/budgets/components/addbudget/RecalculateBudgetRow.es.js.map +1 -0
- package/dist/budgets/components/addbudget/RecalculateBudgets.es.js +62 -0
- package/dist/budgets/components/addbudget/RecalculateBudgets.es.js.map +1 -0
- package/dist/budgets/components/addbudget/UnbudgetedRow.es.js +50 -0
- package/dist/budgets/components/addbudget/UnbudgetedRow.es.js.map +1 -0
- package/dist/budgets/components/bubblechart/Bubble.es.js +128 -0
- package/dist/budgets/components/bubblechart/Bubble.es.js.map +1 -0
- package/dist/budgets/components/bubblechart/Mercury.es.js +29 -0
- package/dist/budgets/components/bubblechart/Mercury.es.js.map +1 -0
- package/dist/budgets/components/budgetdetails/AddSubBudget.es.js +98 -0
- package/dist/budgets/components/budgetdetails/AddSubBudget.es.js.map +1 -0
- package/dist/budgets/components/budgetdetails/BudgetDetails.es.js +66 -0
- package/dist/budgets/components/budgetdetails/BudgetDetails.es.js.map +1 -0
- package/dist/budgets/components/budgetdetails/Header.es.js +48 -0
- package/dist/budgets/components/budgetdetails/Header.es.js.map +1 -0
- package/dist/budgets/components/budgetdetails/SubBudgetList.es.js +98 -0
- package/dist/budgets/components/budgetdetails/SubBudgetList.es.js.map +1 -0
- package/dist/budgets/components/budgetlist/BudgetRow.es.js +71 -0
- package/dist/budgets/components/budgetlist/BudgetRow.es.js.map +1 -0
- package/dist/budgets/components/budgetlist/SubBudgetRow.es.js +62 -0
- package/dist/budgets/components/budgetlist/SubBudgetRow.es.js.map +1 -0
- package/dist/budgets/components/budgetlist/SubBudgetZeroState.es.js +38 -0
- package/dist/budgets/components/budgetlist/SubBudgetZeroState.es.js.map +1 -0
- package/dist/budgets/components/shared/BudgetAmount.es.js +27 -0
- package/dist/budgets/components/shared/BudgetAmount.es.js.map +1 -0
- package/dist/budgets/components/shared/BudgetDetailsTopSection.es.js +84 -0
- package/dist/budgets/components/shared/BudgetDetailsTopSection.es.js.map +1 -0
- package/dist/budgets/index.es.js +6 -1400
- package/dist/budgets/utils/BubblesSVG.es.js +73 -0
- package/dist/budgets/utils/BubblesSVG.es.js.map +1 -0
- package/dist/cashflow/CashflowMiniWidget.es.js +45 -0
- package/dist/cashflow/CashflowMiniWidget.es.js.map +1 -0
- package/dist/cashflow/CashflowOnboarding.es.js +224 -0
- package/dist/cashflow/CashflowOnboarding.es.js.map +1 -0
- package/dist/cashflow/CashflowWidget.es.js +101 -0
- package/dist/cashflow/CashflowWidget.es.js.map +1 -0
- package/dist/cashflow/components/CashflowAmountHeading.es.js +45 -0
- package/dist/cashflow/components/CashflowAmountHeading.es.js.map +1 -0
- package/dist/cashflow/components/CashflowContent.es.js +63 -0
- package/dist/cashflow/components/CashflowContent.es.js.map +1 -0
- package/dist/cashflow/components/CashflowHeading.es.js +101 -0
- package/dist/cashflow/components/CashflowHeading.es.js.map +1 -0
- package/dist/cashflow/components/CashflowWidgetContent.es.js +167 -0
- package/dist/cashflow/components/CashflowWidgetContent.es.js.map +1 -0
- package/dist/cashflow/components/DetailsExpenseHeader.es.js +37 -0
- package/dist/cashflow/components/DetailsExpenseHeader.es.js.map +1 -0
- package/dist/cashflow/components/DetailsExpenseRow.es.js +57 -0
- package/dist/cashflow/components/DetailsExpenseRow.es.js.map +1 -0
- package/dist/cashflow/components/DetailsFooter.es.js +21 -0
- package/dist/cashflow/components/DetailsFooter.es.js.map +1 -0
- package/dist/cashflow/components/DetailsTab.es.js +90 -0
- package/dist/cashflow/components/DetailsTab.es.js.map +1 -0
- package/dist/cashflow/components/RemainingCash.es.js +35 -0
- package/dist/cashflow/components/RemainingCash.es.js.map +1 -0
- package/dist/cashflow/components/SummaryTab.es.js +258 -0
- package/dist/cashflow/components/SummaryTab.es.js.map +1 -0
- package/dist/cashflow/components/onboarding/StepOne.es.js +128 -0
- package/dist/cashflow/components/onboarding/StepOne.es.js.map +1 -0
- package/dist/cashflow/components/onboarding/StepTwo.es.js +26 -0
- package/dist/cashflow/components/onboarding/StepTwo.es.js.map +1 -0
- package/dist/cashflow/constants/CashflowImages.es.js +9 -0
- package/dist/cashflow/constants/CashflowImages.es.js.map +1 -0
- package/dist/cashflow/context/hooks.d.ts +1 -1
- package/dist/cashflow/context/hooks.es.js +12 -0
- package/dist/cashflow/context/hooks.es.js.map +1 -0
- package/dist/cashflow/index.es.js +6 -1058
- package/dist/cashflow/util/Filters.es.js +9 -0
- package/dist/cashflow/util/Filters.es.js.map +1 -0
- package/dist/categories/components/CategoryList.es.js +38 -0
- package/dist/categories/components/CategoryList.es.js.map +1 -0
- package/dist/categories/components/CategoryRow.es.js +65 -0
- package/dist/categories/components/CategoryRow.es.js.map +1 -0
- package/dist/categories/components/CategorySelector.es.js +39 -0
- package/dist/categories/components/CategorySelector.es.js.map +1 -0
- package/dist/categories/components/CategorySelectorDrawer.es.js +24 -0
- package/dist/categories/components/CategorySelectorDrawer.es.js.map +1 -0
- package/dist/categories/components/CustomCategories/AddSubcategory.es.js +46 -0
- package/dist/categories/components/CustomCategories/AddSubcategory.es.js.map +1 -0
- package/dist/categories/components/CustomCategories/CustomCategoryModal.es.js +61 -0
- package/dist/categories/components/CustomCategories/CustomCategoryModal.es.js.map +1 -0
- package/dist/categories/components/CustomCategories/DeleteSubcategory.es.js +26 -0
- package/dist/categories/components/CustomCategories/DeleteSubcategory.es.js.map +1 -0
- package/dist/categories/components/CustomCategories/RenameSubcategory.es.js +29 -0
- package/dist/categories/components/CustomCategories/RenameSubcategory.es.js.map +1 -0
- package/dist/categories/components/SubcategoryList.es.js +41 -0
- package/dist/categories/components/SubcategoryList.es.js.map +1 -0
- package/dist/categories/components/SubcategoryRow.es.js +90 -0
- package/dist/categories/components/SubcategoryRow.es.js.map +1 -0
- package/dist/categories/constants/OnClickEvents.es.js +18 -0
- package/dist/categories/constants/OnClickEvents.es.js.map +1 -0
- package/dist/categories/context/hooks.es.js +12 -0
- package/dist/categories/context/hooks.es.js.map +1 -0
- package/dist/categories/index.es.js +8 -6
- package/dist/common/components/Banner.es.js +39 -0
- package/dist/common/components/Banner.es.js.map +1 -0
- package/dist/common/components/ConnectCard.es.js +58 -0
- package/dist/common/components/ConnectCard.es.js.map +1 -0
- package/dist/common/components/ConnectDrawer.es.js +53 -0
- package/dist/common/components/ConnectDrawer.es.js.map +1 -0
- package/dist/common/components/ConnectStatus.d.ts +6 -0
- package/dist/common/components/ConnectStatus.es.js +39 -0
- package/dist/common/components/ConnectStatus.es.js.map +1 -0
- package/dist/common/components/CurrencyDialog.es.js +119 -0
- package/dist/common/components/CurrencyDialog.es.js.map +1 -0
- package/dist/common/components/CurrencyInput.es.js +49 -0
- package/dist/common/components/CurrencyInput.es.js.map +1 -0
- package/dist/common/components/CurrencyText.es.js +17 -0
- package/dist/common/components/CurrencyText.es.js.map +1 -0
- package/dist/common/components/DataRow.es.js +53 -0
- package/dist/common/components/DataRow.es.js.map +1 -0
- package/dist/common/components/EmptyState.es.js +68 -0
- package/dist/common/components/EmptyState.es.js.map +1 -0
- package/dist/common/components/Error.es.js +86 -0
- package/dist/common/components/Error.es.js.map +1 -0
- package/dist/common/components/ErrorBoundary.es.js +26 -0
- package/dist/common/components/ErrorBoundary.es.js.map +1 -0
- package/dist/common/components/GlobalAccountFilter.es.js +97 -0
- package/dist/common/components/GlobalAccountFilter.es.js.map +1 -0
- package/dist/common/components/IconBacking.es.js +25 -0
- package/dist/common/components/IconBacking.es.js.map +1 -0
- package/dist/common/components/InformationTooltip.es.js +49 -0
- package/dist/common/components/InformationTooltip.es.js.map +1 -0
- package/dist/common/components/ListItemAction.es.js +55 -0
- package/dist/common/components/ListItemAction.es.js.map +1 -0
- package/dist/common/components/ListItemRow.es.js +65 -0
- package/dist/common/components/ListItemRow.es.js.map +1 -0
- package/dist/common/components/ListItemWrapper.es.js +37 -0
- package/dist/common/components/ListItemWrapper.es.js.map +1 -0
- package/dist/common/components/Loader.es.js +17 -0
- package/dist/common/components/Loader.es.js.map +1 -0
- package/dist/common/components/MicroWidgetContainer.es.js +60 -0
- package/dist/common/components/MicroWidgetContainer.es.js.map +1 -0
- package/dist/common/components/MiniWidgetContainer.es.js +77 -0
- package/dist/common/components/MiniWidgetContainer.es.js.map +1 -0
- package/dist/common/components/ResponsiveButton.es.js +37 -0
- package/dist/common/components/ResponsiveButton.es.js.map +1 -0
- package/dist/common/components/SearchBox.es.js +59 -0
- package/dist/common/components/SearchBox.es.js.map +1 -0
- package/dist/common/components/Select.d.ts +1 -1
- package/dist/common/components/Select.es.js +33 -0
- package/dist/common/components/Select.es.js.map +1 -0
- package/dist/common/components/SelectionBox.es.js +45 -0
- package/dist/common/components/SelectionBox.es.js.map +1 -0
- package/dist/common/components/SkeletonLoader.es.js +104 -0
- package/dist/common/components/SkeletonLoader.es.js.map +1 -0
- package/dist/common/components/SubheaderRow.es.js +23 -0
- package/dist/common/components/SubheaderRow.es.js.map +1 -0
- package/dist/common/components/TabContentContainer.es.js +14 -0
- package/dist/common/components/TabContentContainer.es.js.map +1 -0
- package/dist/common/components/TinyBarChart.d.ts +1 -1
- package/dist/common/components/TinyBarChart.es.js +81 -0
- package/dist/common/components/TinyBarChart.es.js.map +1 -0
- package/dist/common/components/WidgetContainer.es.js +146 -0
- package/dist/common/components/WidgetContainer.es.js.map +1 -0
- package/dist/common/components/WidgetDateRangeSelector.es.js +38 -0
- package/dist/common/components/WidgetDateRangeSelector.es.js.map +1 -0
- package/dist/common/components/addaccounts/AddAccounts.es.js +50 -0
- package/dist/common/components/addaccounts/AddAccounts.es.js.map +1 -0
- package/dist/common/components/calendar/Calendar.es.js +148 -0
- package/dist/common/components/calendar/Calendar.es.js.map +1 -0
- package/dist/common/components/calendar/Day.es.js +82 -0
- package/dist/common/components/calendar/Day.es.js.map +1 -0
- package/dist/common/components/calendar/Header.es.js +42 -0
- package/dist/common/components/calendar/Header.es.js.map +1 -0
- package/dist/common/components/charts/Donut.es.js +82 -0
- package/dist/common/components/charts/Donut.es.js.map +1 -0
- package/dist/common/components/charts/LineChart.es.js +195 -0
- package/dist/common/components/charts/LineChart.es.js.map +1 -0
- package/dist/common/components/charts/StackedLineChart.es.js +208 -0
- package/dist/common/components/charts/StackedLineChart.es.js.map +1 -0
- package/dist/common/components/charts/StatusBar.es.js +25 -0
- package/dist/common/components/charts/StatusBar.es.js.map +1 -0
- package/dist/common/components/charts/chartSlotProps.d.ts +16 -0
- package/dist/common/components/charts/chartSlotProps.es.js +16 -0
- package/dist/common/components/charts/chartSlotProps.es.js.map +1 -0
- package/dist/common/components/charts/linechart/CustomLegend.es.js +95 -0
- package/dist/common/components/charts/linechart/CustomLegend.es.js.map +1 -0
- package/dist/common/components/charts/linechart/CustomLine.es.js +27 -0
- package/dist/common/components/charts/linechart/CustomLine.es.js.map +1 -0
- package/dist/common/components/charts/linechart/CustomMark.es.js +56 -0
- package/dist/common/components/charts/linechart/CustomMark.es.js.map +1 -0
- package/dist/common/components/charts/linechart/CustomTooltip.es.js +138 -0
- package/dist/common/components/charts/linechart/CustomTooltip.es.js.map +1 -0
- package/dist/common/components/charts/linechart/utils/markerShapes.es.js +26 -0
- package/dist/common/components/charts/linechart/utils/markerShapes.es.js.map +1 -0
- package/dist/common/components/charts/stackedlinechart/CategoryIconLabel.es.js +31 -0
- package/dist/common/components/charts/stackedlinechart/CategoryIconLabel.es.js.map +1 -0
- package/dist/common/components/charts/stackedlinechart/CustomAreaTooltip.es.js +97 -0
- package/dist/common/components/charts/stackedlinechart/CustomAreaTooltip.es.js.map +1 -0
- package/dist/common/components/charts/stackedlinechart/CustomLegend.es.js +54 -0
- package/dist/common/components/charts/stackedlinechart/CustomLegend.es.js.map +1 -0
- package/dist/common/components/charts/stackedlinechart/CustomPointTooltip.es.js +51 -0
- package/dist/common/components/charts/stackedlinechart/CustomPointTooltip.es.js.map +1 -0
- package/dist/common/components/daterangeselector/DateRangeSelector.es.js +262 -0
- package/dist/common/components/daterangeselector/DateRangeSelector.es.js.map +1 -0
- package/dist/common/components/dialog/Dialog.es.js +58 -0
- package/dist/common/components/dialog/Dialog.es.js.map +1 -0
- package/dist/common/components/donuts/MultiSegmentDonut.es.js +53 -0
- package/dist/common/components/donuts/MultiSegmentDonut.es.js.map +1 -0
- package/dist/common/components/donuts/SingleSegmentDonut.es.js +50 -0
- package/dist/common/components/donuts/SingleSegmentDonut.es.js.map +1 -0
- package/dist/common/components/drawer/Drawer.es.js +57 -0
- package/dist/common/components/drawer/Drawer.es.js.map +1 -0
- package/dist/common/components/drawer/Footer.es.js +31 -0
- package/dist/common/components/drawer/Footer.es.js.map +1 -0
- package/dist/common/components/drawer/Header.es.js +52 -0
- package/dist/common/components/drawer/Header.es.js.map +1 -0
- package/dist/common/components/globalaccountfilter/GlobalAccountFilterList.es.js +133 -0
- package/dist/common/components/globalaccountfilter/GlobalAccountFilterList.es.js.map +1 -0
- package/dist/common/components/listitems/CollapseExpandListItem.es.js +41 -0
- package/dist/common/components/listitems/CollapseExpandListItem.es.js.map +1 -0
- package/dist/common/components/listitems/ToggleButtonListItem.es.js +54 -0
- package/dist/common/components/listitems/ToggleButtonListItem.es.js.map +1 -0
- package/dist/common/components/listitems/ToggleListItem.es.js +37 -0
- package/dist/common/components/listitems/ToggleListItem.es.js.map +1 -0
- package/dist/common/constants/Account.es.js +32 -0
- package/dist/common/constants/Account.es.js.map +1 -0
- package/dist/common/constants/Analytics.es.js +139 -0
- package/dist/common/constants/Analytics.es.js.map +1 -0
- package/dist/common/constants/Connect.d.ts +4 -0
- package/dist/common/constants/Connect.es.js +10 -0
- package/dist/common/constants/Connect.es.js.map +1 -0
- package/dist/common/constants/Donut.es.js +7 -0
- package/dist/common/constants/Donut.es.js.map +1 -0
- package/dist/common/constants/FinStrong.es.js +33 -0
- package/dist/common/constants/FinStrong.es.js.map +1 -0
- package/dist/common/constants/ScheduledPayment.es.js +40 -0
- package/dist/common/constants/ScheduledPayment.es.js.map +1 -0
- package/dist/common/constants/Sizes.es.js +9 -0
- package/dist/common/constants/Sizes.es.js.map +1 -0
- package/dist/common/constants/SpendingPlan.es.js +10 -0
- package/dist/common/constants/SpendingPlan.es.js.map +1 -0
- package/dist/common/constants/index.d.ts +1 -0
- package/dist/common/context/GlobalDataProvider.es.js +19 -0
- package/dist/common/context/GlobalDataProvider.es.js.map +1 -0
- package/dist/common/context/WidgetContainerProvider.es.js +16 -0
- package/dist/common/context/WidgetContainerProvider.es.js.map +1 -0
- package/dist/common/context/hooks.es.js +46 -0
- package/dist/common/context/hooks.es.js.map +1 -0
- package/dist/common/hooks/useAccountDisplayName.es.js +13 -0
- package/dist/common/hooks/useAccountDisplayName.es.js.map +1 -0
- package/dist/common/hooks/useAriaLive.es.js +34 -0
- package/dist/common/hooks/useAriaLive.es.js.map +1 -0
- package/dist/common/hooks/useCombineEvents.es.js +22 -0
- package/dist/common/hooks/useCombineEvents.es.js.map +1 -0
- package/dist/common/hooks/useDimensions.es.js +41 -0
- package/dist/common/hooks/useDimensions.es.js.map +1 -0
- package/dist/common/hooks/useInsightsEnabled.es.js +13 -0
- package/dist/common/hooks/useInsightsEnabled.es.js.map +1 -0
- package/dist/common/hooks/usePrevious.es.js +13 -0
- package/dist/common/hooks/usePrevious.es.js.map +1 -0
- package/dist/common/hooks/useScreenSize.es.js +26 -0
- package/dist/common/hooks/useScreenSize.es.js.map +1 -0
- package/dist/common/hooks/useWidgetHeaderStyles.es.js +46 -0
- package/dist/common/hooks/useWidgetHeaderStyles.es.js.map +1 -0
- package/dist/common/hooks/useWidgetLoadTimer.d.ts +1 -0
- package/dist/common/hooks/useWidgetLoadTimer.es.js +24 -0
- package/dist/common/hooks/useWidgetLoadTimer.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.es.js +14 -0
- package/dist/common/utils/AccountDisplayName.es.js.map +1 -0
- package/dist/common/utils/AccountFilter.es.js +31 -0
- package/dist/common/utils/AccountFilter.es.js.map +1 -0
- package/dist/common/utils/Analytics.es.js +31 -0
- package/dist/common/utils/Analytics.es.js.map +1 -0
- package/dist/common/utils/PostMessage.es.js +29 -0
- package/dist/common/utils/PostMessage.es.js.map +1 -0
- package/dist/common/utils/Theme.es.js +96 -0
- package/dist/common/utils/Theme.es.js.map +1 -0
- package/dist/core/api/AccountApi.es.js +22 -0
- package/dist/core/api/AccountApi.es.js.map +1 -0
- package/dist/core/api/AnalyticsApi.es.js +34 -0
- package/dist/core/api/AnalyticsApi.es.js.map +1 -0
- package/dist/core/api/AppDataApi.es.js +14 -0
- package/dist/core/api/AppDataApi.es.js.map +1 -0
- package/dist/core/api/BannerApi.es.js +23 -0
- package/dist/core/api/BannerApi.es.js.map +1 -0
- package/dist/core/api/BeatApi.es.js +24 -0
- package/dist/core/api/BeatApi.es.js.map +1 -0
- package/dist/core/api/BudgetsApi.es.js +28 -0
- package/dist/core/api/BudgetsApi.es.js.map +1 -0
- package/dist/core/api/CategoryApi.es.js +29 -0
- package/dist/core/api/CategoryApi.es.js.map +1 -0
- package/dist/core/api/FinstrongApi.es.js +22 -0
- package/dist/core/api/FinstrongApi.es.js.map +1 -0
- package/dist/core/api/GlobalCopyApi.es.js +14 -0
- package/dist/core/api/GlobalCopyApi.es.js.map +1 -0
- package/dist/core/api/GoalApi.es.js +28 -0
- package/dist/core/api/GoalApi.es.js.map +1 -0
- package/dist/core/api/HelpApi.es.js +14 -0
- package/dist/core/api/HelpApi.es.js.map +1 -0
- package/dist/core/api/HoldingApi.es.js +15 -0
- package/dist/core/api/HoldingApi.es.js.map +1 -0
- package/dist/core/api/MerchantApi.es.js +18 -0
- package/dist/core/api/MerchantApi.es.js.map +1 -0
- package/dist/core/api/NotificationApi.es.js +19 -0
- package/dist/core/api/NotificationApi.es.js.map +1 -0
- package/dist/core/api/RepeatingTransactionsApi.es.js +17 -0
- package/dist/core/api/RepeatingTransactionsApi.es.js.map +1 -0
- package/dist/core/api/ScheduledPaymentsApi.es.js +22 -0
- package/dist/core/api/ScheduledPaymentsApi.es.js.map +1 -0
- package/dist/core/api/SettingsApi.es.js +24 -0
- package/dist/core/api/SettingsApi.es.js.map +1 -0
- package/dist/core/api/TransactionApi.es.js +55 -0
- package/dist/core/api/TransactionApi.es.js.map +1 -0
- package/dist/core/api/UserApi.es.js +16 -0
- package/dist/core/api/UserApi.es.js.map +1 -0
- package/dist/core/api/WidgetApi.es.js +14 -0
- package/dist/core/api/WidgetApi.es.js.map +1 -0
- package/dist/core/constants/ApiEndpoints.es.js +51 -0
- package/dist/core/constants/ApiEndpoints.es.js.map +1 -0
- package/dist/core/constants/Category.es.js +299 -0
- package/dist/core/constants/Category.es.js.map +1 -0
- package/dist/core/constants/DateFormats.es.js +55 -0
- package/dist/core/constants/DateFormats.es.js.map +1 -0
- package/dist/core/constants/Debts.es.js +8 -0
- package/dist/core/constants/Debts.es.js.map +1 -0
- package/dist/core/constants/DefaultConfig.es.js +109 -0
- package/dist/core/constants/DefaultConfig.es.js.map +1 -0
- package/dist/core/constants/Help.es.js +183 -0
- package/dist/core/constants/Help.es.js.map +1 -0
- package/dist/core/constants/Investments.es.js +56 -0
- package/dist/core/constants/Investments.es.js.map +1 -0
- package/dist/core/constants/Numbers.es.js +9 -0
- package/dist/core/constants/Numbers.es.js.map +1 -0
- package/dist/core/constants/Table.es.js +18 -0
- package/dist/core/constants/Table.es.js.map +1 -0
- package/dist/core/constants/Transaction.es.js +43 -0
- package/dist/core/constants/Transaction.es.js.map +1 -0
- package/dist/core/constants/repeatingTransactions.es.js +8 -0
- package/dist/core/constants/repeatingTransactions.es.js.map +1 -0
- package/dist/core/index.es.js +134 -107
- package/dist/core/stores/AccountStore.es.js +247 -0
- package/dist/core/stores/AccountStore.es.js.map +1 -0
- package/dist/core/stores/AnalyticsStore.es.js +55 -0
- package/dist/core/stores/AnalyticsStore.es.js.map +1 -0
- package/dist/core/stores/AppDataStore.d.ts +2 -2
- package/dist/core/stores/AppDataStore.es.js +61 -0
- package/dist/core/stores/AppDataStore.es.js.map +1 -0
- package/dist/core/stores/BeatStore.es.js +43 -0
- package/dist/core/stores/BeatStore.es.js.map +1 -0
- package/dist/core/stores/BudgetsStore.es.js +155 -0
- package/dist/core/stores/BudgetsStore.es.js.map +1 -0
- package/dist/core/stores/CashflowStore.es.js +62 -0
- package/dist/core/stores/CashflowStore.es.js.map +1 -0
- package/dist/core/stores/CategoryStore.es.js +147 -0
- package/dist/core/stores/CategoryStore.es.js.map +1 -0
- package/dist/core/stores/ConnectStore.es.js +19 -0
- package/dist/core/stores/ConnectStore.es.js.map +1 -0
- package/dist/core/stores/DebtsStore.es.js +40 -0
- package/dist/core/stores/DebtsStore.es.js.map +1 -0
- package/dist/core/stores/FinstrongStore.es.js +156 -0
- package/dist/core/stores/FinstrongStore.es.js.map +1 -0
- package/dist/core/stores/GlobalCopyStore.es.js +32 -0
- package/dist/core/stores/GlobalCopyStore.es.js.map +1 -0
- package/dist/core/stores/GlobalStore.es.js +87 -0
- package/dist/core/stores/GlobalStore.es.js.map +1 -0
- package/dist/core/stores/GlobalUiStore.d.ts +2 -2
- package/dist/core/stores/GlobalUiStore.es.js +68 -0
- package/dist/core/stores/GlobalUiStore.es.js.map +1 -0
- package/dist/core/stores/GoalStore.es.js +233 -0
- package/dist/core/stores/GoalStore.es.js.map +1 -0
- package/dist/core/stores/HelpStore.d.ts +1 -1
- package/dist/core/stores/HelpStore.es.js +45 -0
- package/dist/core/stores/HelpStore.es.js.map +1 -0
- package/dist/core/stores/HoldingStore.es.js +60 -0
- package/dist/core/stores/HoldingStore.es.js.map +1 -0
- package/dist/core/stores/MerchantStore.es.js +28 -0
- package/dist/core/stores/MerchantStore.es.js.map +1 -0
- package/dist/core/stores/NetWorthStore.es.js +73 -0
- package/dist/core/stores/NetWorthStore.es.js.map +1 -0
- package/dist/core/stores/NotificationStore.es.js +46 -0
- package/dist/core/stores/NotificationStore.es.js.map +1 -0
- package/dist/core/stores/RecurringTransactionsStore.es.js +198 -0
- package/dist/core/stores/RecurringTransactionsStore.es.js.map +1 -0
- package/dist/core/stores/SettingsStore.d.ts +1 -1
- package/dist/core/stores/SettingsStore.es.js +184 -0
- package/dist/core/stores/SettingsStore.es.js.map +1 -0
- package/dist/core/stores/TransactionStore.es.js +372 -0
- package/dist/core/stores/TransactionStore.es.js.map +1 -0
- package/dist/core/stores/TrendsStore.es.js +51 -0
- package/dist/core/stores/TrendsStore.es.js.map +1 -0
- package/dist/core/stores/UserStore.es.js +49 -0
- package/dist/core/stores/UserStore.es.js.map +1 -0
- package/dist/core/types/Account.es.js +118 -0
- package/dist/core/types/Account.es.js.map +1 -0
- package/dist/core/types/Beat.es.js +8 -0
- package/dist/core/types/Beat.es.js.map +1 -0
- package/dist/core/types/Expense.es.js +11 -0
- package/dist/core/types/Expense.es.js.map +1 -0
- package/dist/core/types/Finstrong.es.js +14 -0
- package/dist/core/types/Finstrong.es.js.map +1 -0
- package/dist/core/types/Goal.es.js +14 -0
- package/dist/core/types/Goal.es.js.map +1 -0
- package/dist/core/types/Notification.es.js +17 -0
- package/dist/core/types/Notification.es.js.map +1 -0
- package/dist/core/types/RepeatingTransaction.es.js +17 -0
- package/dist/core/types/RepeatingTransaction.es.js.map +1 -0
- package/dist/core/types/ScreenSize.es.js +8 -0
- package/dist/core/types/ScreenSize.es.js.map +1 -0
- package/dist/core/types/Transaction.es.js +11 -0
- package/dist/core/types/Transaction.es.js.map +1 -0
- package/dist/core/utils/AccountUtils.es.js +27 -0
- package/dist/core/utils/AccountUtils.es.js.map +1 -0
- package/dist/core/utils/BeatUtils.es.js +50 -0
- package/dist/core/utils/BeatUtils.es.js.map +1 -0
- package/dist/core/utils/BudgetUtil.es.js +71 -0
- package/dist/core/utils/BudgetUtil.es.js.map +1 -0
- package/dist/core/utils/CategoryUtil.es.js +60 -0
- package/dist/core/utils/CategoryUtil.es.js.map +1 -0
- package/dist/core/utils/DateUtil.es.js +70 -0
- package/dist/core/utils/DateUtil.es.js.map +1 -0
- package/dist/core/utils/DebtUtils.es.js +144 -0
- package/dist/core/utils/DebtUtils.es.js.map +1 -0
- package/dist/core/utils/Fetch.es.js +74 -0
- package/dist/core/utils/Fetch.es.js.map +1 -0
- package/dist/core/utils/FinstrongUtils.es.js +11 -0
- package/dist/core/utils/FinstrongUtils.es.js.map +1 -0
- package/dist/core/utils/GoalsUtil.es.js +113 -0
- package/dist/core/utils/GoalsUtil.es.js.map +1 -0
- package/dist/core/utils/HelpUtil.es.js +23 -0
- package/dist/core/utils/HelpUtil.es.js.map +1 -0
- package/dist/core/utils/InvestmentUtil.es.js +77 -0
- package/dist/core/utils/InvestmentUtil.es.js.map +1 -0
- package/dist/core/utils/Localization.es.js +34 -0
- package/dist/core/utils/Localization.es.js.map +1 -0
- package/dist/core/utils/NetWorthUtils.es.js +115 -0
- package/dist/core/utils/NetWorthUtils.es.js.map +1 -0
- package/dist/core/utils/NotificationUtils.es.js +17 -0
- package/dist/core/utils/NotificationUtils.es.js.map +1 -0
- package/dist/core/utils/NumberFormatting.es.js +31 -0
- package/dist/core/utils/NumberFormatting.es.js.map +1 -0
- package/dist/core/utils/RecurringTransactionsUtil.es.js +285 -0
- package/dist/core/utils/RecurringTransactionsUtil.es.js.map +1 -0
- package/dist/core/utils/SettingsUtil.es.js +56 -0
- package/dist/core/utils/SettingsUtil.es.js.map +1 -0
- package/dist/core/utils/TransactionUtils.es.js +113 -0
- package/dist/core/utils/TransactionUtils.es.js.map +1 -0
- package/dist/core/utils/TrendsUtil.es.js +72 -0
- package/dist/core/utils/TrendsUtil.es.js.map +1 -0
- package/dist/core/utils/UserUtils.es.js +6 -0
- package/dist/core/utils/UserUtils.es.js.map +1 -0
- package/dist/dashboard/Dashboard.es.js +99 -0
- package/dist/dashboard/Dashboard.es.js.map +1 -0
- package/dist/dashboard/Greeting.es.js +49 -0
- package/dist/dashboard/Greeting.es.js.map +1 -0
- package/dist/dashboard/constants/Dashboard.es.js +8 -0
- package/dist/dashboard/constants/Dashboard.es.js.map +1 -0
- package/dist/dashboard/index.es.js +4 -153
- package/dist/debts/DebtsWidget.es.js +138 -0
- package/dist/debts/DebtsWidget.es.js.map +1 -0
- package/dist/debts/components/DebtDrawer.es.js +26 -0
- package/dist/debts/components/DebtDrawer.es.js.map +1 -0
- package/dist/debts/components/DebtsChart.es.js +135 -0
- package/dist/debts/components/DebtsChart.es.js.map +1 -0
- package/dist/debts/components/DebtsTable.es.js +193 -0
- package/dist/debts/components/DebtsTable.es.js.map +1 -0
- package/dist/debts/components/PaydownDrawer.es.js +19 -0
- package/dist/debts/components/PaydownDrawer.es.js.map +1 -0
- package/dist/debts/components/SnowballCard.es.js +87 -0
- package/dist/debts/components/SnowballCard.es.js.map +1 -0
- package/dist/debts/components/SnowballDrawer.es.js +457 -0
- package/dist/debts/components/SnowballDrawer.es.js.map +1 -0
- package/dist/debts/components/actions/DebtsPriorityAction.es.js +37 -0
- package/dist/debts/components/actions/DebtsPriorityAction.es.js.map +1 -0
- package/dist/debts/components/actions/ExtraPaymentAction.es.js +43 -0
- package/dist/debts/components/actions/ExtraPaymentAction.es.js.map +1 -0
- package/dist/debts/components/actions/InterestRateAction.es.js +41 -0
- package/dist/debts/components/actions/InterestRateAction.es.js.map +1 -0
- package/dist/debts/components/actions/MonthlyPaymentAction.es.js +43 -0
- package/dist/debts/components/actions/MonthlyPaymentAction.es.js.map +1 -0
- package/dist/debts/components/actions/OriginalBalanceAction.es.js +43 -0
- package/dist/debts/components/actions/OriginalBalanceAction.es.js.map +1 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsChart.es.js +43 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsChart.es.js.map +1 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsContent.es.js +54 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsContent.es.js.map +1 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsTab.es.js +40 -0
- package/dist/debts/components/debtsdrawer/DebtDetailsTab.es.js.map +1 -0
- package/dist/debts/components/debtsdrawer/DebtScheduleTab.es.js +108 -0
- package/dist/debts/components/debtsdrawer/DebtScheduleTab.es.js.map +1 -0
- package/dist/debts/components/debtsdrawer/DebtStatusCard.es.js +86 -0
- package/dist/debts/components/debtsdrawer/DebtStatusCard.es.js.map +1 -0
- package/dist/debts/components/debtspaydown/PaydownButton.es.js +32 -0
- package/dist/debts/components/debtspaydown/PaydownButton.es.js.map +1 -0
- package/dist/debts/components/debtspaydown/PaydownContent.es.js +77 -0
- package/dist/debts/components/debtspaydown/PaydownContent.es.js.map +1 -0
- package/dist/debts/components/debtspriority/DebtsPriorityButton.es.js +32 -0
- package/dist/debts/components/debtspriority/DebtsPriorityButton.es.js.map +1 -0
- package/dist/debts/components/debtspriority/DebtsPrioriyPopover.es.js +78 -0
- package/dist/debts/components/debtspriority/DebtsPrioriyPopover.es.js.map +1 -0
- package/dist/debts/components/debtstable/AccountCell.es.js +30 -0
- package/dist/debts/components/debtstable/AccountCell.es.js.map +1 -0
- package/dist/debts/components/debtstable/PriorityCell.es.js +35 -0
- package/dist/debts/components/debtstable/PriorityCell.es.js.map +1 -0
- package/dist/debts/hooks/useDebtsUiStore.es.js +12 -0
- package/dist/debts/hooks/useDebtsUiStore.es.js.map +1 -0
- package/dist/debts/index.es.js +6 -1496
- package/dist/debts/utils/DebtsChart.es.js +15 -0
- package/dist/debts/utils/DebtsChart.es.js.map +1 -0
- package/dist/debts/utils/DebtsTable.es.js +17 -0
- package/dist/debts/utils/DebtsTable.es.js.map +1 -0
- package/dist/debts/utils/SnowballCard.es.js +40 -0
- package/dist/debts/utils/SnowballCard.es.js.map +1 -0
- package/dist/finstrong/FinancialStrengthCard.es.js +127 -0
- package/dist/finstrong/FinancialStrengthCard.es.js.map +1 -0
- package/dist/finstrong/FinstrongWidget.es.js +175 -0
- package/dist/finstrong/FinstrongWidget.es.js.map +1 -0
- package/dist/finstrong/components/ConnectMoreAccountsCard.es.js +80 -0
- package/dist/finstrong/components/ConnectMoreAccountsCard.es.js.map +1 -0
- package/dist/finstrong/components/CreditScore/CreditScoreContent.es.js +39 -0
- package/dist/finstrong/components/CreditScore/CreditScoreContent.es.js.map +1 -0
- package/dist/finstrong/components/CreditScore/CreditScoreHeader.es.js +22 -0
- package/dist/finstrong/components/CreditScore/CreditScoreHeader.es.js.map +1 -0
- package/dist/finstrong/components/CreditScoreGraph.es.js +61 -0
- package/dist/finstrong/components/CreditScoreGraph.es.js.map +1 -0
- package/dist/finstrong/components/FinancialStrengthGraph.es.js +44 -0
- package/dist/finstrong/components/FinancialStrengthGraph.es.js.map +1 -0
- package/dist/finstrong/components/HaveManageableDebt/DebtPaymentTabContent.es.js +43 -0
- package/dist/finstrong/components/HaveManageableDebt/DebtPaymentTabContent.es.js.map +1 -0
- package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtComponent.es.js +88 -0
- package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtComponent.es.js.map +1 -0
- package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtProgressBar.es.js +73 -0
- package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtProgressBar.es.js.map +1 -0
- package/dist/finstrong/components/HaveManageableDebt/IncomeTabContent.es.js +40 -0
- package/dist/finstrong/components/HaveManageableDebt/IncomeTabContent.es.js.map +1 -0
- package/dist/finstrong/components/HealthChart.es.js +117 -0
- package/dist/finstrong/components/HealthChart.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsBorrowTab.es.js +71 -0
- package/dist/finstrong/components/KeyIndicatorsBorrowTab.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsDrawer.es.js +92 -0
- package/dist/finstrong/components/KeyIndicatorsDrawer.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsSaveTab.es.js +73 -0
- package/dist/finstrong/components/KeyIndicatorsSaveTab.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsSpendTab.es.js +58 -0
- package/dist/finstrong/components/KeyIndicatorsSpendTab.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsTabItem.es.js +65 -0
- package/dist/finstrong/components/KeyIndicatorsTabItem.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsTabItemDrawer.es.js +93 -0
- package/dist/finstrong/components/KeyIndicatorsTabItemDrawer.es.js.map +1 -0
- package/dist/finstrong/components/KeyIndicatorsTabsWidget.es.js +78 -0
- package/dist/finstrong/components/KeyIndicatorsTabsWidget.es.js.map +1 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/EstimatedContributionCalculator.es.js +170 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/EstimatedContributionCalculator.es.js.map +1 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsContent.es.js +51 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsContent.es.js.map +1 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsSticky.es.js +53 -0
- package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsSticky.es.js.map +1 -0
- package/dist/finstrong/components/ManageCreditScore.es.js +52 -0
- package/dist/finstrong/components/ManageCreditScore.es.js.map +1 -0
- package/dist/finstrong/components/ManageDOB.es.js +79 -0
- package/dist/finstrong/components/ManageDOB.es.js.map +1 -0
- package/dist/finstrong/components/MissingData.es.js +51 -0
- package/dist/finstrong/components/MissingData.es.js.map +1 -0
- package/dist/finstrong/components/ProfileDrawer.es.js +124 -0
- package/dist/finstrong/components/ProfileDrawer.es.js.map +1 -0
- package/dist/finstrong/components/ProfileList.es.js +65 -0
- package/dist/finstrong/components/ProfileList.es.js.map +1 -0
- package/dist/finstrong/components/ProfileProgressBar.es.js +32 -0
- package/dist/finstrong/components/ProfileProgressBar.es.js.map +1 -0
- package/dist/finstrong/components/ProgressBar.es.js +53 -0
- package/dist/finstrong/components/ProgressBar.es.js.map +1 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/AvailableTabContent.es.js +27 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/AvailableTabContent.es.js.map +1 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnDrawerContent.es.js +51 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnDrawerContent.es.js.map +1 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnProgressBar.es.js +56 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnProgressBar.es.js.map +1 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SpendingTabContent.es.js +34 -0
- package/dist/finstrong/components/SaveEnoughToLiveOn/SpendingTabContent.es.js.map +1 -0
- package/dist/finstrong/components/ScoreHistoryDrawer.es.js +90 -0
- package/dist/finstrong/components/ScoreHistoryDrawer.es.js.map +1 -0
- package/dist/finstrong/components/ScoreRubricDrawer.es.js +118 -0
- package/dist/finstrong/components/ScoreRubricDrawer.es.js.map +1 -0
- package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeComponent.es.js +130 -0
- package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeComponent.es.js.map +1 -0
- package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeProgressBar.es.js +50 -0
- package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeProgressBar.es.js.map +1 -0
- package/dist/finstrong/components/StatusChip.es.js +37 -0
- package/dist/finstrong/components/StatusChip.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/Onboarding.es.js +57 -0
- package/dist/finstrong/components/onboarding/Onboarding.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/OnboardingAddMonthlyIncome.es.js +57 -0
- package/dist/finstrong/components/onboarding/OnboardingAddMonthlyIncome.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/OnboardingBirthday.es.js +46 -0
- package/dist/finstrong/components/onboarding/OnboardingBirthday.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/OnboardingCreditScore.es.js +28 -0
- package/dist/finstrong/components/onboarding/OnboardingCreditScore.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/OnboardingStepsDrawer.es.js +313 -0
- package/dist/finstrong/components/onboarding/OnboardingStepsDrawer.es.js.map +1 -0
- package/dist/finstrong/components/onboarding/OnboardingStepsHeader.es.js +25 -0
- package/dist/finstrong/components/onboarding/OnboardingStepsHeader.es.js.map +1 -0
- package/dist/finstrong/components/paybillsontime/PayBillsOnTimeDrawerComponent.es.js +69 -0
- package/dist/finstrong/components/paybillsontime/PayBillsOnTimeDrawerComponent.es.js.map +1 -0
- package/dist/finstrong/components/paybillsontime/PayBillsOnTimeStickyComponent.es.js +38 -0
- package/dist/finstrong/components/paybillsontime/PayBillsOnTimeStickyComponent.es.js.map +1 -0
- package/dist/finstrong/components/shared/Accounts.es.js +102 -0
- package/dist/finstrong/components/shared/Accounts.es.js.map +1 -0
- package/dist/finstrong/components/shared/CustomDoubleBarPlot.es.js +49 -0
- package/dist/finstrong/components/shared/CustomDoubleBarPlot.es.js.map +1 -0
- package/dist/finstrong/components/shared/CustomPieArc.es.js +52 -0
- package/dist/finstrong/components/shared/CustomPieArc.es.js.map +1 -0
- package/dist/finstrong/components/shared/DialScoreCard.es.js +186 -0
- package/dist/finstrong/components/shared/DialScoreCard.es.js.map +1 -0
- package/dist/finstrong/components/shared/DoubleBarChart.es.js +196 -0
- package/dist/finstrong/components/shared/DoubleBarChart.es.js.map +1 -0
- package/dist/finstrong/components/shared/LineGraph.es.js +136 -0
- package/dist/finstrong/components/shared/LineGraph.es.js.map +1 -0
- package/dist/finstrong/components/shared/ScoreHistoryTimeline.es.js +107 -0
- package/dist/finstrong/components/shared/ScoreHistoryTimeline.es.js.map +1 -0
- package/dist/finstrong/components/shared/ScoreHistoryTimelineItem.es.js +40 -0
- package/dist/finstrong/components/shared/ScoreHistoryTimelineItem.es.js.map +1 -0
- package/dist/finstrong/components/shared/TotalCard.es.js +30 -0
- package/dist/finstrong/components/shared/TotalCard.es.js.map +1 -0
- package/dist/finstrong/components/shared/Transactions.es.js +129 -0
- package/dist/finstrong/components/shared/Transactions.es.js.map +1 -0
- package/dist/finstrong/constants/index.es.js +9 -0
- package/dist/finstrong/constants/index.es.js.map +1 -0
- package/dist/finstrong/index.es.js +8 -3912
- package/dist/finstrong/util/finstrongUtils.es.js +206 -0
- package/dist/finstrong/util/finstrongUtils.es.js.map +1 -0
- package/dist/goals/GoalsMicroWidget.es.js +44 -0
- package/dist/goals/GoalsMicroWidget.es.js.map +1 -0
- package/dist/goals/GoalsWidget.es.js +141 -0
- package/dist/goals/GoalsWidget.es.js.map +1 -0
- package/dist/goals/components/AccountSelectionDrawer.es.js +54 -0
- package/dist/goals/components/AccountSelectionDrawer.es.js.map +1 -0
- package/dist/goals/components/AddGoal.es.js +59 -0
- package/dist/goals/components/AddGoal.es.js.map +1 -0
- package/dist/goals/components/GoalDetails.es.js +115 -0
- package/dist/goals/components/GoalDetails.es.js.map +1 -0
- package/dist/goals/components/GoalDetailsDrawer.es.js +83 -0
- package/dist/goals/components/GoalDetailsDrawer.es.js.map +1 -0
- package/dist/goals/components/GoalList.es.js +135 -0
- package/dist/goals/components/GoalList.es.js.map +1 -0
- package/dist/goals/components/GoalStatusCard.es.js +95 -0
- package/dist/goals/components/GoalStatusCard.es.js.map +1 -0
- package/dist/goals/components/ManageGoals.es.js +89 -0
- package/dist/goals/components/ManageGoals.es.js.map +1 -0
- package/dist/goals/components/TabTitle.es.js +19 -0
- package/dist/goals/components/TabTitle.es.js.map +1 -0
- package/dist/goals/components/actions/AccountAction.es.js +28 -0
- package/dist/goals/components/actions/AccountAction.es.js.map +1 -0
- package/dist/goals/components/actions/AddRetirementAccountAction.es.js +56 -0
- package/dist/goals/components/actions/AddRetirementAccountAction.es.js.map +1 -0
- package/dist/goals/components/actions/AmountToSaveAction.es.js +45 -0
- package/dist/goals/components/actions/AmountToSaveAction.es.js.map +1 -0
- package/dist/goals/components/actions/BirthdayAction.es.js +44 -0
- package/dist/goals/components/actions/BirthdayAction.es.js.map +1 -0
- package/dist/goals/components/actions/ChangeAccountAction.es.js +127 -0
- package/dist/goals/components/actions/ChangeAccountAction.es.js.map +1 -0
- package/dist/goals/components/actions/ContributionAction.es.js +49 -0
- package/dist/goals/components/actions/ContributionAction.es.js.map +1 -0
- package/dist/goals/components/actions/GoalNameAction.es.js +41 -0
- package/dist/goals/components/actions/GoalNameAction.es.js.map +1 -0
- package/dist/goals/components/actions/InterestRateAction.es.js +42 -0
- package/dist/goals/components/actions/InterestRateAction.es.js.map +1 -0
- package/dist/goals/components/actions/MonthlyPaymentAction.es.js +47 -0
- package/dist/goals/components/actions/MonthlyPaymentAction.es.js.map +1 -0
- package/dist/goals/components/actions/OriginalBalanceAction.es.js +47 -0
- package/dist/goals/components/actions/OriginalBalanceAction.es.js.map +1 -0
- package/dist/goals/components/actions/RetirementAgeAction.es.js +42 -0
- package/dist/goals/components/actions/RetirementAgeAction.es.js.map +1 -0
- package/dist/goals/components/addgoal/AddGoalListItem.es.js +72 -0
- package/dist/goals/components/addgoal/AddGoalListItem.es.js.map +1 -0
- package/dist/goals/components/managegoals/CompleteListItem.es.js +59 -0
- package/dist/goals/components/managegoals/CompleteListItem.es.js.map +1 -0
- package/dist/goals/components/managegoals/OngoingListItem.es.js +83 -0
- package/dist/goals/components/managegoals/OngoingListItem.es.js.map +1 -0
- package/dist/goals/components/micro/GoalMicroStatusCard.es.js +64 -0
- package/dist/goals/components/micro/GoalMicroStatusCard.es.js.map +1 -0
- package/dist/goals/components/micro/GoalsMicroEmptyState.es.js +35 -0
- package/dist/goals/components/micro/GoalsMicroEmptyState.es.js.map +1 -0
- package/dist/goals/index.es.js +4 -1088
- package/dist/help/HelpWidget.es.js +25 -0
- package/dist/help/HelpWidget.es.js.map +1 -0
- package/dist/help/components/Help.es.js +48 -0
- package/dist/help/components/Help.es.js.map +1 -0
- package/dist/help/components/HelpContent.es.js +25 -0
- package/dist/help/components/HelpContent.es.js.map +1 -0
- package/dist/help/components/HelpList.es.js +142 -0
- package/dist/help/components/HelpList.es.js.map +1 -0
- package/dist/help/components/content/BottomImageContent.es.js +51 -0
- package/dist/help/components/content/BottomImageContent.es.js.map +1 -0
- package/dist/help/components/content/ContentItem.es.js +46 -0
- package/dist/help/components/content/ContentItem.es.js.map +1 -0
- package/dist/help/components/content/Header.es.js +83 -0
- package/dist/help/components/content/Header.es.js.map +1 -0
- package/dist/help/components/content/LeftImageContent.es.js +57 -0
- package/dist/help/components/content/LeftImageContent.es.js.map +1 -0
- package/dist/help/components/content/NoImageContent.es.js +15 -0
- package/dist/help/components/content/NoImageContent.es.js.map +1 -0
- package/dist/help/components/content/RightImageContent.es.js +55 -0
- package/dist/help/components/content/RightImageContent.es.js.map +1 -0
- package/dist/help/components/content/TopImageContent.es.js +51 -0
- package/dist/help/components/content/TopImageContent.es.js.map +1 -0
- package/dist/help/components/content/section/Accounts.es.js +159 -0
- package/dist/help/components/content/section/Accounts.es.js.map +1 -0
- package/dist/help/components/content/section/Budgets.es.js +66 -0
- package/dist/help/components/content/section/Budgets.es.js.map +1 -0
- package/dist/help/components/content/section/CashFlow.es.js +47 -0
- package/dist/help/components/content/section/CashFlow.es.js.map +1 -0
- package/dist/help/components/content/section/Debts.es.js +168 -0
- package/dist/help/components/content/section/Debts.es.js.map +1 -0
- package/dist/help/components/content/section/General.es.js +84 -0
- package/dist/help/components/content/section/General.es.js.map +1 -0
- package/dist/help/components/content/section/Goals.es.js +112 -0
- package/dist/help/components/content/section/Goals.es.js.map +1 -0
- package/dist/help/components/content/section/Insights.es.js +79 -0
- package/dist/help/components/content/section/Insights.es.js.map +1 -0
- package/dist/help/components/content/section/Investments.es.js +48 -0
- package/dist/help/components/content/section/Investments.es.js.map +1 -0
- package/dist/help/components/content/section/Mobile.es.js +48 -0
- package/dist/help/components/content/section/Mobile.es.js.map +1 -0
- package/dist/help/components/content/section/NetWorth.es.js +61 -0
- package/dist/help/components/content/section/NetWorth.es.js.map +1 -0
- package/dist/help/components/content/section/Notifications.es.js +53 -0
- package/dist/help/components/content/section/Notifications.es.js.map +1 -0
- package/dist/help/components/content/section/RecurringTransactions.es.js +72 -0
- package/dist/help/components/content/section/RecurringTransactions.es.js.map +1 -0
- package/dist/help/components/content/section/Spending.es.js +63 -0
- package/dist/help/components/content/section/Spending.es.js.map +1 -0
- package/dist/help/components/content/section/Transactions.es.js +209 -0
- package/dist/help/components/content/section/Transactions.es.js.map +1 -0
- package/dist/help/components/content/section/Trends.es.js +43 -0
- package/dist/help/components/content/section/Trends.es.js.map +1 -0
- package/dist/help/components/content/section/index.es.js +37 -0
- package/dist/help/components/content/section/index.es.js.map +1 -0
- package/dist/help/components/requestsupport/ContactSupport.es.js +90 -0
- package/dist/help/components/requestsupport/ContactSupport.es.js.map +1 -0
- package/dist/help/components/requestsupport/HelpByCategoryList.es.js +99 -0
- package/dist/help/components/requestsupport/HelpByCategoryList.es.js.map +1 -0
- package/dist/help/components/requestsupport/MissingInstitution.es.js +103 -0
- package/dist/help/components/requestsupport/MissingInstitution.es.js.map +1 -0
- package/dist/help/components/requestsupport/PopularTopicsDrawer.es.js +52 -0
- package/dist/help/components/requestsupport/PopularTopicsDrawer.es.js.map +1 -0
- package/dist/help/components/requestsupport/PopularTopicsList.es.js +24 -0
- package/dist/help/components/requestsupport/PopularTopicsList.es.js.map +1 -0
- package/dist/help/components/requestsupport/PopularTopicsRow.es.js +40 -0
- package/dist/help/components/requestsupport/PopularTopicsRow.es.js.map +1 -0
- package/dist/help/components/requestsupport/RequestSupport.es.js +172 -0
- package/dist/help/components/requestsupport/RequestSupport.es.js.map +1 -0
- package/dist/help/components/requestsupport/RequestSupportFooter.es.js +46 -0
- package/dist/help/components/requestsupport/RequestSupportFooter.es.js.map +1 -0
- package/dist/help/components/requestsupport/RequestSupportHeader.es.js +47 -0
- package/dist/help/components/requestsupport/RequestSupportHeader.es.js.map +1 -0
- package/dist/help/components/requestsupport/RequestSupportInstitution.es.js +68 -0
- package/dist/help/components/requestsupport/RequestSupportInstitution.es.js.map +1 -0
- package/dist/help/components/requestsupport/SupportSuccessMessage.es.js +71 -0
- package/dist/help/components/requestsupport/SupportSuccessMessage.es.js.map +1 -0
- package/dist/help/constants/HelpImages.es.js +49 -0
- package/dist/help/constants/HelpImages.es.js.map +1 -0
- package/dist/help/index.es.js +4 -26
- package/dist/help/utils/getInstitutionsBasedOnGuid.es.js +16 -0
- package/dist/help/utils/getInstitutionsBasedOnGuid.es.js.map +1 -0
- package/dist/insights/components/feed/Header.es.js +75 -0
- package/dist/insights/components/feed/Header.es.js.map +1 -0
- package/dist/insights/components/insights/AccountDiscoverability/AccountDiscoverability.es.js +12 -0
- package/dist/insights/components/insights/AccountDiscoverability/AccountDiscoverability.es.js.map +1 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/AmericanUpcomingTaxDeadlineAlert.es.js +22 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/AmericanUpcomingTaxDeadlineAlert.es.js.map +1 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/images/AmericanUpcomingTaxDeadlineAlert.es.js +274 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/images/AmericanUpcomingTaxDeadlineAlert.es.js.map +1 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/images/UpcomingTaxDeadlineAlertCIBC.es.js +56 -0
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/images/UpcomingTaxDeadlineAlertCIBC.es.js.map +1 -0
- package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandard.es.js +35 -0
- package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandard.es.js.map +1 -0
- package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandardMUI.es.js +41 -0
- package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandardMUI.es.js.map +1 -0
- package/dist/insights/components/insights/CashBack/CashBack.es.js +45 -0
- package/dist/insights/components/insights/CashBack/CashBack.es.js.map +1 -0
- package/dist/insights/components/insights/CashBack/images/CashBack.es.js +6 -0
- package/dist/insights/components/insights/CashBack/images/CashBack.es.js.map +1 -0
- package/dist/insights/components/insights/CategoryBudget/CategoryBudget.es.js +55 -0
- package/dist/insights/components/insights/CategoryBudget/CategoryBudget.es.js.map +1 -0
- package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2.es.js +46 -0
- package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2.es.js.map +1 -0
- package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2MUI.es.js +48 -0
- package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2MUI.es.js.map +1 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/CelebrateCreditCardPayoff.es.js +66 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/CelebrateCreditCardPayoff.es.js.map +1 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/images/CelebrateCreditCardPayoffDark.es.js +85 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/images/CelebrateCreditCardPayoffDark.es.js.map +1 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/images/CelebrateCreditCardPayoffLight.es.js +85 -0
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/images/CelebrateCreditCardPayoffLight.es.js.map +1 -0
- package/dist/insights/components/insights/CustomTransaction/CustomTransaction.es.js +24 -0
- package/dist/insights/components/insights/CustomTransaction/CustomTransaction.es.js.map +1 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsBody.es.js +120 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsBody.es.js.map +1 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsLearnMoreDrawerContent.es.js +143 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsLearnMoreDrawerContent.es.js.map +1 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsMiniInsight.es.js +20 -0
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsMiniInsight.es.js.map +1 -0
- package/dist/insights/components/insights/FederalBankHoliday/FederalBankHoliday.es.js +29 -0
- package/dist/insights/components/insights/FederalBankHoliday/FederalBankHoliday.es.js.map +1 -0
- package/dist/insights/components/insights/FederalBankHoliday/FederalBankHolidayMUI.es.js +20 -0
- package/dist/insights/components/insights/FederalBankHoliday/FederalBankHolidayMUI.es.js.map +1 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalBankHoliday.es.js +55 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalBankHoliday.es.js.map +1 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalBankHolidayMUI.es.js +494 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalBankHolidayMUI.es.js.map +1 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalHolidayCibc.es.js +88 -0
- package/dist/insights/components/insights/FederalBankHoliday/images/FederalHolidayCibc.es.js.map +1 -0
- package/dist/insights/components/insights/MarketingHub/Offer.es.js +44 -0
- package/dist/insights/components/insights/MarketingHub/Offer.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlyDebtToIncomeComparisonV2/MonthlyDebtToIncomeComparisonV2.es.js +33 -0
- package/dist/insights/components/insights/MonthlyDebtToIncomeComparisonV2/MonthlyDebtToIncomeComparisonV2.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/LastMonthsContributionSection.es.js +29 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/LastMonthsContributionSection.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/MonthlyEmergencyFundReviewBody.es.js +42 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/MonthlyEmergencyFundReviewBody.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/ProjectedCompletionSection.es.js +27 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/ProjectedCompletionSection.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/TotalSection.es.js +28 -0
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/TotalSection.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlySavingsToIncomeComparison/MonthlySavingsToIncomeComparison.es.js +33 -0
- package/dist/insights/components/insights/MonthlySavingsToIncomeComparison/MonthlySavingsToIncomeComparison.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlySpendToIncomeComparisonV2/MonthlySpendToIncomeComparisonV2.es.js +37 -0
- package/dist/insights/components/insights/MonthlySpendToIncomeComparisonV2/MonthlySpendToIncomeComparisonV2.es.js.map +1 -0
- package/dist/insights/components/insights/MonthlySpendingComparisonV2/MonthlySpendingComparisonV2.es.js +35 -0
- package/dist/insights/components/insights/MonthlySpendingComparisonV2/MonthlySpendingComparisonV2.es.js.map +1 -0
- package/dist/insights/components/insights/P2pCategorization/P2pCategorization.es.js +20 -0
- package/dist/insights/components/insights/P2pCategorization/P2pCategorization.es.js.map +1 -0
- package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationMultipleTransactions.es.js +83 -0
- package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationMultipleTransactions.es.js.map +1 -0
- package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationSingleTransaction.es.js +42 -0
- package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationSingleTransaction.es.js.map +1 -0
- package/dist/insights/components/insights/SavingsAccountBalancesSummary/SavingsAccountBalancesSummary.es.js +40 -0
- package/dist/insights/components/insights/SavingsAccountBalancesSummary/SavingsAccountBalancesSummary.es.js.map +1 -0
- package/dist/insights/components/insights/SetUpDirectDeposit/SetUpDirectDepositBody.es.js +19 -0
- package/dist/insights/components/insights/SetUpDirectDeposit/SetUpDirectDepositBody.es.js.map +1 -0
- package/dist/insights/components/insights/SharedDeposit/SharedDeposit.es.js +104 -0
- package/dist/insights/components/insights/SharedDeposit/SharedDeposit.es.js.map +1 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/AccountBox.es.js +37 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/AccountBox.es.js.map +1 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositBody.es.js +25 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositBody.es.js.map +1 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositMainContainer.es.js +36 -0
- package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositMainContainer.es.js.map +1 -0
- package/dist/insights/components/insights/UnifiedDeposit/UnifiedDeposit.es.js +38 -0
- package/dist/insights/components/insights/UnifiedDeposit/UnifiedDeposit.es.js.map +1 -0
- package/dist/insights/components/insights/UnifiedDeposit/UnifiedDepositBody.es.js +86 -0
- package/dist/insights/components/insights/UnifiedDeposit/UnifiedDepositBody.es.js.map +1 -0
- package/dist/insights/components/insights/UserFeedback/StyledToggleButton.es.js +34 -0
- package/dist/insights/components/insights/UserFeedback/StyledToggleButton.es.js.map +1 -0
- package/dist/insights/components/insights/UserFeedback/UserFeedback.es.js +133 -0
- package/dist/insights/components/insights/UserFeedback/UserFeedback.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/BubbleWeek.es.js +59 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/BubbleWeek.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/NoSpendIcons.es.js +23 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/NoSpendIcons.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/WeeklyNoSpendDays.es.js +51 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/WeeklyNoSpendDays.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_0.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_0.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_1.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_1.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_2.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_2.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_3.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_3.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_4.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_4.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_5.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_5.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_6.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_6.es.js.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_7.es.js +6 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/images/no_spend_7.es.js.map +1 -0
- package/dist/insights/components/shared/BottomSheet.es.js +39 -0
- package/dist/insights/components/shared/BottomSheet.es.js.map +1 -0
- package/dist/insights/components/shared/ChartDrawerTemplate/ChartDrawerTemplate.es.js +66 -0
- package/dist/insights/components/shared/ChartDrawerTemplate/ChartDrawerTemplate.es.js.map +1 -0
- package/dist/insights/components/shared/ChartDrawerTemplate/TipSection.es.js +60 -0
- package/dist/insights/components/shared/ChartDrawerTemplate/TipSection.es.js.map +1 -0
- package/dist/insights/components/shared/ChartTransactionWithDrillDown.es.js +76 -0
- package/dist/insights/components/shared/ChartTransactionWithDrillDown.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/BarChart.es.js +147 -0
- package/dist/insights/components/shared/Charts/BarChart/BarChart.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/BarChartV2.es.js +148 -0
- package/dist/insights/components/shared/Charts/BarChart/BarChartV2.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/ChartLegend.es.js +75 -0
- package/dist/insights/components/shared/Charts/BarChart/ChartLegend.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/ChartLegendV2.es.js +80 -0
- package/dist/insights/components/shared/Charts/BarChart/ChartLegendV2.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomBarPlot.es.js +73 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomBarPlot.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomBarPlotV2.d.ts +4 -1
- package/dist/insights/components/shared/Charts/BarChart/CustomBarPlotV2.es.js +32 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomBarPlotV2.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlot.es.js +52 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlot.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlotMXUI.es.js +46 -0
- package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlotMXUI.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChart.es.js +118 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChart.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegend.es.js +73 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegend.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegendMXUI.es.js +73 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegendMXUI.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartMXUI.es.js +116 -0
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartMXUI.es.js.map +1 -0
- package/dist/insights/components/shared/Charts/EmptyBarChart.es.js +14 -0
- package/dist/insights/components/shared/Charts/EmptyBarChart.es.js.map +1 -0
- package/dist/insights/components/shared/Confetti.es.js +32 -0
- package/dist/insights/components/shared/Confetti.es.js.map +1 -0
- package/dist/insights/components/shared/ConnectionCard.es.js +90 -0
- package/dist/insights/components/shared/ConnectionCard.es.js.map +1 -0
- package/dist/insights/components/shared/Coupon.es.js +66 -0
- package/dist/insights/components/shared/Coupon.es.js.map +1 -0
- package/dist/insights/components/shared/DeepLinks/DeepLinkDialog.es.js +34 -0
- package/dist/insights/components/shared/DeepLinks/DeepLinkDialog.es.js.map +1 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Circle.es.js +20 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Circle.es.js.map +1 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/DirectDepositDeepLink.es.js +163 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/DirectDepositDeepLink.es.js.map +1 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Dot.es.js +19 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Dot.es.js.map +1 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Oval.es.js +16 -0
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Oval.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/DirectDeposit.es.js +85 -0
- package/dist/insights/components/shared/DirectDeposit/DirectDeposit.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/DirectDepositSubHeader.es.js +20 -0
- package/dist/insights/components/shared/DirectDeposit/DirectDepositSubHeader.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/FullFeedBodyHeader.es.js +33 -0
- package/dist/insights/components/shared/DirectDeposit/FullFeedBodyHeader.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/LeftBox.es.js +29 -0
- package/dist/insights/components/shared/DirectDeposit/LeftBox.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/MiniBodyHeader.es.js +29 -0
- package/dist/insights/components/shared/DirectDeposit/MiniBodyHeader.es.js.map +1 -0
- package/dist/insights/components/shared/DirectDeposit/RightBox.es.js +43 -0
- package/dist/insights/components/shared/DirectDeposit/RightBox.es.js.map +1 -0
- package/dist/insights/components/shared/DiscoveredAccountsConnect.es.js +82 -0
- package/dist/insights/components/shared/DiscoveredAccountsConnect.es.js.map +1 -0
- package/dist/insights/components/shared/DrillDownCalculation/BalanceStepper.es.js +58 -0
- package/dist/insights/components/shared/DrillDownCalculation/BalanceStepper.es.js.map +1 -0
- package/dist/insights/components/shared/DrillDownCalculation/DrillDownCalculation.es.js +264 -0
- package/dist/insights/components/shared/DrillDownCalculation/DrillDownCalculation.es.js.map +1 -0
- package/dist/insights/components/shared/ErrorCard/ErrorCard.es.js +76 -0
- package/dist/insights/components/shared/ErrorCard/ErrorCard.es.js.map +1 -0
- package/dist/insights/components/shared/ErrorCard/images/ErrorViewCibc.es.js +57 -0
- package/dist/insights/components/shared/ErrorCard/images/ErrorViewCibc.es.js.map +1 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackButtons.es.js +47 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackButtons.es.js.map +1 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackDescription.es.js +16 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackDescription.es.js.map +1 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackHeader.es.js +29 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackHeader.es.js.map +1 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackOptions.es.js +50 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackOptions.es.js.map +1 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackText.es.js +45 -0
- package/dist/insights/components/shared/GenericFeedback/FeedbackText.es.js.map +1 -0
- package/dist/insights/components/shared/GoalProgress.es.js +42 -0
- package/dist/insights/components/shared/GoalProgress.es.js.map +1 -0
- package/dist/insights/components/shared/GradientBox.es.js +33 -0
- package/dist/insights/components/shared/GradientBox.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/BeatCard.es.js +31 -0
- package/dist/insights/components/shared/InsightsCard/BeatCard.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/BeatCardMUI.es.js +32 -0
- package/dist/insights/components/shared/InsightsCard/BeatCardMUI.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardButtonSection.es.js +20 -0
- package/dist/insights/components/shared/InsightsCard/CardButtonSection.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardError.es.js +30 -0
- package/dist/insights/components/shared/InsightsCard/CardError.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardFooter.es.js +24 -0
- package/dist/insights/components/shared/InsightsCard/CardFooter.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardHeader.es.js +28 -0
- package/dist/insights/components/shared/InsightsCard/CardHeader.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardHeaderMUI.es.js +30 -0
- package/dist/insights/components/shared/InsightsCard/CardHeaderMUI.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/CardLoading.es.js +21 -0
- package/dist/insights/components/shared/InsightsCard/CardLoading.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/ClientConfigurableCta.es.js +38 -0
- package/dist/insights/components/shared/InsightsCard/ClientConfigurableCta.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/ContentAndDescription.es.js +43 -0
- package/dist/insights/components/shared/InsightsCard/ContentAndDescription.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/ContentAndDescriptionMUI.es.js +43 -0
- package/dist/insights/components/shared/InsightsCard/ContentAndDescriptionMUI.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/Description.es.js +31 -0
- package/dist/insights/components/shared/InsightsCard/Description.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/DescriptionMUI.es.js +30 -0
- package/dist/insights/components/shared/InsightsCard/DescriptionMUI.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/EmbeddedCard.es.js +69 -0
- package/dist/insights/components/shared/InsightsCard/EmbeddedCard.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/FeedbackCard.es.js +120 -0
- package/dist/insights/components/shared/InsightsCard/FeedbackCard.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/InsightButton.es.js +25 -0
- package/dist/insights/components/shared/InsightsCard/InsightButton.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/MiniDescription.es.js +44 -0
- package/dist/insights/components/shared/InsightsCard/MiniDescription.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/MiniDescriptionMUI.es.js +42 -0
- package/dist/insights/components/shared/InsightsCard/MiniDescriptionMUI.es.js.map +1 -0
- package/dist/insights/components/shared/InsightsCard/images/BeatErrorView.es.js +728 -0
- package/dist/insights/components/shared/InsightsCard/images/BeatErrorView.es.js.map +1 -0
- package/dist/insights/components/shared/MenuAction.es.js +68 -0
- package/dist/insights/components/shared/MenuAction.es.js.map +1 -0
- package/dist/insights/components/shared/MiniInsightCard.es.js +69 -0
- package/dist/insights/components/shared/MiniInsightCard.es.js.map +1 -0
- package/dist/insights/components/shared/P2P/P2PMultipleCategorization.es.js +107 -0
- package/dist/insights/components/shared/P2P/P2PMultipleCategorization.es.js.map +1 -0
- package/dist/insights/components/shared/P2PCategorizationSingleAccount/P2PCategorizationSingleAccount.es.js +75 -0
- package/dist/insights/components/shared/P2PCategorizationSingleAccount/P2PCategorizationSingleAccount.es.js.map +1 -0
- package/dist/insights/components/shared/ProgressBar.es.js +39 -0
- package/dist/insights/components/shared/ProgressBar.es.js.map +1 -0
- package/dist/insights/components/shared/SaveAnExtra100/SaveAnExtra100.es.js +55 -0
- package/dist/insights/components/shared/SaveAnExtra100/SaveAnExtra100.es.js.map +1 -0
- package/dist/insights/components/shared/SaveEnoughToLiveOnBottomSection.es.js +77 -0
- package/dist/insights/components/shared/SaveEnoughToLiveOnBottomSection.es.js.map +1 -0
- package/dist/insights/components/shared/SaveEnoughToLiveOnTopSection.es.js +12 -0
- package/dist/insights/components/shared/SaveEnoughToLiveOnTopSection.es.js.map +1 -0
- package/dist/insights/components/shared/StatusIndicator.es.js +69 -0
- package/dist/insights/components/shared/StatusIndicator.es.js.map +1 -0
- package/dist/insights/components/shared/ThemedSVGImage.es.js +49 -0
- package/dist/insights/components/shared/ThemedSVGImage.es.js.map +1 -0
- package/dist/insights/components/shared/TransactionCard.es.js +93 -0
- package/dist/insights/components/shared/TransactionCard.es.js.map +1 -0
- package/dist/insights/components/shared/ZeroState/LinedCardZeroState.es.js +23 -0
- package/dist/insights/components/shared/ZeroState/LinedCardZeroState.es.js.map +1 -0
- package/dist/insights/components/shared/images/BarChartEmptyState.es.js +101 -0
- package/dist/insights/components/shared/images/BarChartEmptyState.es.js.map +1 -0
- package/dist/insights/components/shared/images/CouponLeft.es.js +104 -0
- package/dist/insights/components/shared/images/CouponLeft.es.js.map +1 -0
- package/dist/insights/components/shared/images/CouponLeftDark.es.js +104 -0
- package/dist/insights/components/shared/images/CouponLeftDark.es.js.map +1 -0
- package/dist/insights/components/shared/images/CouponPerferation.es.js +38 -0
- package/dist/insights/components/shared/images/CouponPerferation.es.js.map +1 -0
- package/dist/insights/components/shared/images/EmptyBarChart.es.js +101 -0
- package/dist/insights/components/shared/images/EmptyBarChart.es.js.map +1 -0
- package/dist/insights/components/shared/images/LinedCardZeroState.es.js +91 -0
- package/dist/insights/components/shared/images/LinedCardZeroState.es.js.map +1 -0
- package/dist/insights/components/shared/images/SaveEnoughToLiveOnBottom.es.js +21 -0
- package/dist/insights/components/shared/images/SaveEnoughToLiveOnBottom.es.js.map +1 -0
- package/dist/insights/components/shared/images/SaveEnoughToLiveOnTop.es.js +815 -0
- package/dist/insights/components/shared/images/SaveEnoughToLiveOnTop.es.js.map +1 -0
- package/dist/insights/hooks/useContainerDimensions.es.js +26 -0
- package/dist/insights/hooks/useContainerDimensions.es.js.map +1 -0
- package/dist/insights/images/Loading.es.js +6 -0
- package/dist/insights/images/Loading.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.es.js +8 -0
- package/dist/insights/types/CommonBeat.es.js.map +1 -0
- package/dist/investments/InvestmentsWidget.es.js +98 -0
- package/dist/investments/InvestmentsWidget.es.js.map +1 -0
- package/dist/investments/components/Allocation.es.js +55 -0
- package/dist/investments/components/Allocation.es.js.map +1 -0
- package/dist/investments/components/Analysis.es.js +167 -0
- package/dist/investments/components/Analysis.es.js.map +1 -0
- package/dist/investments/components/AnalysisDetails.es.js +86 -0
- package/dist/investments/components/AnalysisDetails.es.js.map +1 -0
- package/dist/investments/components/EmptyStateFooterComponent.es.js +52 -0
- package/dist/investments/components/EmptyStateFooterComponent.es.js.map +1 -0
- package/dist/investments/components/HeaderCell.es.js +28 -0
- package/dist/investments/components/HeaderCell.es.js.map +1 -0
- package/dist/investments/components/HoldingDrawer.es.js +343 -0
- package/dist/investments/components/HoldingDrawer.es.js.map +1 -0
- package/dist/investments/components/HoldingTable.es.js +199 -0
- package/dist/investments/components/HoldingTable.es.js.map +1 -0
- package/dist/investments/components/InfoToolTip.es.js +45 -0
- package/dist/investments/components/InfoToolTip.es.js.map +1 -0
- package/dist/investments/components/Overview.es.js +456 -0
- package/dist/investments/components/Overview.es.js.map +1 -0
- package/dist/investments/components/TabTitle.es.js +12 -0
- package/dist/investments/components/TabTitle.es.js.map +1 -0
- package/dist/investments/components/allocation/InvestementAllocationList.es.js +136 -0
- package/dist/investments/components/allocation/InvestementAllocationList.es.js.map +1 -0
- package/dist/investments/components/allocation/InvestmentsAllocationChart.es.js +86 -0
- package/dist/investments/components/allocation/InvestmentsAllocationChart.es.js.map +1 -0
- package/dist/investments/components/allocation/util/createInvestementsAllocationData.es.js +103 -0
- package/dist/investments/components/allocation/util/createInvestementsAllocationData.es.js.map +1 -0
- package/dist/investments/index.es.js +2 -1675
- package/dist/merchants/components/MerchantLookup.es.js +91 -0
- package/dist/merchants/components/MerchantLookup.es.js.map +1 -0
- package/dist/merchants/index.es.js +2 -76
- package/dist/microinsights/InsightsMicroWidget.es.js +109 -0
- package/dist/microinsights/InsightsMicroWidget.es.js.map +1 -0
- package/dist/microinsights/MicroCardTemplate.es.js +159 -0
- package/dist/microinsights/MicroCardTemplate.es.js.map +1 -0
- package/dist/microinsights/MicroWidgetContainer.es.js +24 -0
- package/dist/microinsights/MicroWidgetContainer.es.js.map +1 -0
- package/dist/microinsights/Spinner.es.js +19 -0
- package/dist/microinsights/Spinner.es.js.map +1 -0
- package/dist/microinsights/analytics.es.js +12 -0
- package/dist/microinsights/analytics.es.js.map +1 -0
- package/dist/microinsights/beaticons/AreaChartIcon.es.js +18 -0
- package/dist/microinsights/beaticons/AreaChartIcon.es.js.map +1 -0
- package/dist/microinsights/beaticons/AverageSpendComparisonIcon.es.js +23 -0
- package/dist/microinsights/beaticons/AverageSpendComparisonIcon.es.js.map +1 -0
- package/dist/microinsights/beaticons/BeatCategoryIcon.es.js +16 -0
- package/dist/microinsights/beaticons/BeatCategoryIcon.es.js.map +1 -0
- package/dist/microinsights/beaticons/BeatIcon.es.js +162 -0
- package/dist/microinsights/beaticons/BeatIcon.es.js.map +1 -0
- package/dist/microinsights/beaticons/BeatMaterialIcon.es.js +25 -0
- package/dist/microinsights/beaticons/BeatMaterialIcon.es.js.map +1 -0
- package/dist/microinsights/beaticons/BeatMerchantLogo.es.js +20 -0
- package/dist/microinsights/beaticons/BeatMerchantLogo.es.js.map +1 -0
- package/dist/microinsights/beaticons/ChartFilledIcon.es.js +21 -0
- package/dist/microinsights/beaticons/ChartFilledIcon.es.js.map +1 -0
- package/dist/microinsights/beaticons/InstitutionLogoIcon.es.js +12 -0
- package/dist/microinsights/beaticons/InstitutionLogoIcon.es.js.map +1 -0
- package/dist/microinsights/beaticons/MonthlySpendComparisonIcon.es.js +17 -0
- package/dist/microinsights/beaticons/MonthlySpendComparisonIcon.es.js.map +1 -0
- package/dist/microinsights/beaticons/ZeroStateIcon.es.js +722 -0
- package/dist/microinsights/beaticons/ZeroStateIcon.es.js.map +1 -0
- package/dist/microinsights/cards/InsightCard.es.js +71 -0
- package/dist/microinsights/cards/InsightCard.es.js.map +1 -0
- package/dist/microinsights/cards/NoRelevantInsightsCard.es.js +38 -0
- package/dist/microinsights/cards/NoRelevantInsightsCard.es.js.map +1 -0
- package/dist/microinsights/cards/ViewMoreMicroCard.es.js +43 -0
- package/dist/microinsights/cards/ViewMoreMicroCard.es.js.map +1 -0
- package/dist/microinsights/cards/ZeroStateCard.es.js +32 -0
- package/dist/microinsights/cards/ZeroStateCard.es.js.map +1 -0
- package/dist/microinsights/carousel/BeatList.es.js +37 -0
- package/dist/microinsights/carousel/BeatList.es.js.map +1 -0
- package/dist/microinsights/carousel/CarouselControls.es.js +63 -0
- package/dist/microinsights/carousel/CarouselControls.es.js.map +1 -0
- package/dist/microinsights/carousel/CarouselHeader.es.js +39 -0
- package/dist/microinsights/carousel/CarouselHeader.es.js.map +1 -0
- package/dist/microinsights/carousel/MicroBeatCarousel.es.js +147 -0
- package/dist/microinsights/carousel/MicroBeatCarousel.es.js.map +1 -0
- package/dist/microinsights/constants/Analytics.es.js +148 -0
- package/dist/microinsights/constants/Analytics.es.js.map +1 -0
- package/dist/microinsights/constants/App.es.js +11 -0
- package/dist/microinsights/constants/App.es.js.map +1 -0
- package/dist/microinsights/context/InsightsMicroWidgetDataProvider.es.js +17 -0
- package/dist/microinsights/context/InsightsMicroWidgetDataProvider.es.js.map +1 -0
- package/dist/microinsights/context/hooks.es.js +27 -0
- package/dist/microinsights/context/hooks.es.js.map +1 -0
- package/dist/microinsights/index.es.js +28 -826
- package/dist/microinsights/stores/AppStore.es.js +27 -0
- package/dist/microinsights/stores/AppStore.es.js.map +1 -0
- package/dist/microinsights/stores/CopyStore.es.js +34 -0
- package/dist/microinsights/stores/CopyStore.es.js.map +1 -0
- package/dist/microinsights/stores/InsightsMicroWidgetStore.es.js +33 -0
- package/dist/microinsights/stores/InsightsMicroWidgetStore.es.js.map +1 -0
- package/dist/microinsights/utils/DataSeries.es.js +11 -0
- package/dist/microinsights/utils/DataSeries.es.js.map +1 -0
- package/dist/microinsights/utils/colorType.es.js +13 -0
- package/dist/microinsights/utils/colorType.es.js.map +1 -0
- package/dist/networth/NetWorthMicroWidget.es.js +40 -0
- package/dist/networth/NetWorthMicroWidget.es.js.map +1 -0
- package/dist/networth/NetWorthWidget.es.js +78 -0
- package/dist/networth/NetWorthWidget.es.js.map +1 -0
- package/dist/networth/components/AssetsLiabilitiesDetail.es.js +158 -0
- package/dist/networth/components/AssetsLiabilitiesDetail.es.js.map +1 -0
- package/dist/networth/components/GainsLossesDetail.es.js +137 -0
- package/dist/networth/components/GainsLossesDetail.es.js.map +1 -0
- package/dist/networth/components/NetWorthChange.es.js +34 -0
- package/dist/networth/components/NetWorthChange.es.js.map +1 -0
- package/dist/networth/components/NetWorthChart.es.js +58 -0
- package/dist/networth/components/NetWorthChart.es.js.map +1 -0
- package/dist/networth/components/NetWorthList.es.js +99 -0
- package/dist/networth/components/NetWorthList.es.js.map +1 -0
- package/dist/networth/components/NetWorthListItem.es.js +50 -0
- package/dist/networth/components/NetWorthListItem.es.js.map +1 -0
- package/dist/networth/components/NetWorthSummary.es.js +38 -0
- package/dist/networth/components/NetWorthSummary.es.js.map +1 -0
- package/dist/networth/components/micro/NetworthData.es.js +49 -0
- package/dist/networth/components/micro/NetworthData.es.js.map +1 -0
- package/dist/networth/components/micro/ZeroState.es.js +31 -0
- package/dist/networth/components/micro/ZeroState.es.js.map +1 -0
- package/dist/networth/index.es.js +4 -565
- package/dist/notifications/components/DateRow.es.js +23 -0
- package/dist/notifications/components/DateRow.es.js.map +1 -0
- package/dist/notifications/components/NotificationBadge.es.js +33 -0
- package/dist/notifications/components/NotificationBadge.es.js.map +1 -0
- package/dist/notifications/components/NotificationCard.es.js +56 -0
- package/dist/notifications/components/NotificationCard.es.js.map +1 -0
- package/dist/notifications/components/NotificationDrawer.es.js +47 -0
- package/dist/notifications/components/NotificationDrawer.es.js.map +1 -0
- package/dist/notifications/components/NotificationList.es.js +42 -0
- package/dist/notifications/components/NotificationList.es.js.map +1 -0
- package/dist/notifications/components/NotificationsEmptyState.es.js +49 -0
- package/dist/notifications/components/NotificationsEmptyState.es.js.map +1 -0
- package/dist/notifications/constants/NotificationConstants.es.js +24 -0
- package/dist/notifications/constants/NotificationConstants.es.js.map +1 -0
- package/dist/notifications/index.es.js +6 -198
- package/dist/recurringtransactions/RecurringTransactionsMicroWidget.es.js +54 -0
- package/dist/recurringtransactions/RecurringTransactionsMicroWidget.es.js.map +1 -0
- package/dist/recurringtransactions/RecurringTransactionsMiniWidget.es.js +47 -0
- package/dist/recurringtransactions/RecurringTransactionsMiniWidget.es.js.map +1 -0
- package/dist/recurringtransactions/RecurringTransactionsWidget.es.js +89 -0
- package/dist/recurringtransactions/RecurringTransactionsWidget.es.js.map +1 -0
- package/dist/recurringtransactions/ZeroStateMicroWidget.es.js +30 -0
- package/dist/recurringtransactions/ZeroStateMicroWidget.es.js.map +1 -0
- package/dist/recurringtransactions/components/MicroWidgetContent.es.js +103 -0
- package/dist/recurringtransactions/components/MicroWidgetContent.es.js.map +1 -0
- package/dist/recurringtransactions/components/MiniWidgetContent.es.js +45 -0
- package/dist/recurringtransactions/components/MiniWidgetContent.es.js.map +1 -0
- package/dist/recurringtransactions/components/PaymentSchedule.es.js +133 -0
- package/dist/recurringtransactions/components/PaymentSchedule.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurrenceBadges.es.js +64 -0
- package/dist/recurringtransactions/components/RecurrenceBadges.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurrenceList.es.js +87 -0
- package/dist/recurringtransactions/components/RecurrenceList.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurrenceRow.es.js +133 -0
- package/dist/recurringtransactions/components/RecurrenceRow.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringSettingsDrawer.es.js +20 -0
- package/dist/recurringtransactions/components/RecurringSettingsDrawer.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringStatus.es.js +114 -0
- package/dist/recurringtransactions/components/RecurringStatus.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringTransactionDetails.es.js +181 -0
- package/dist/recurringtransactions/components/RecurringTransactionDetails.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringTransactionDetailsDrawer.es.js +27 -0
- package/dist/recurringtransactions/components/RecurringTransactionDetailsDrawer.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringTransactionList.es.js +181 -0
- package/dist/recurringtransactions/components/RecurringTransactionList.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringTransactions.es.js +155 -0
- package/dist/recurringtransactions/components/RecurringTransactions.es.js.map +1 -0
- package/dist/recurringtransactions/components/UpcomingRecurrenceCard.es.js +63 -0
- package/dist/recurringtransactions/components/UpcomingRecurrenceCard.es.js.map +1 -0
- package/dist/recurringtransactions/components/actions/LinkTransactionDrawer.es.js +46 -0
- package/dist/recurringtransactions/components/actions/LinkTransactionDrawer.es.js.map +1 -0
- package/dist/recurringtransactions/components/actions/MarkAsPaidDialog.es.js +28 -0
- package/dist/recurringtransactions/components/actions/MarkAsPaidDialog.es.js.map +1 -0
- package/dist/recurringtransactions/components/actions/MarkAsUnpaidDialog.es.js +28 -0
- package/dist/recurringtransactions/components/actions/MarkAsUnpaidDialog.es.js.map +1 -0
- package/dist/recurringtransactions/components/actions/PaymentScheduleAction.es.js +47 -0
- package/dist/recurringtransactions/components/actions/PaymentScheduleAction.es.js.map +1 -0
- package/dist/recurringtransactions/components/micro/MerchantLogosRow.es.js +19 -0
- package/dist/recurringtransactions/components/micro/MerchantLogosRow.es.js.map +1 -0
- package/dist/recurringtransactions/components/micro/OverlappingMerchantLogos.es.js +33 -0
- package/dist/recurringtransactions/components/micro/OverlappingMerchantLogos.es.js.map +1 -0
- package/dist/recurringtransactions/components/micro/RecurrenceLegend.es.js +37 -0
- package/dist/recurringtransactions/components/micro/RecurrenceLegend.es.js.map +1 -0
- package/dist/recurringtransactions/components/recurrencecalendar/Legend.es.js +48 -0
- package/dist/recurringtransactions/components/recurrencecalendar/Legend.es.js.map +1 -0
- package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceCalendar.es.js +111 -0
- package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceCalendar.es.js.map +1 -0
- package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceDay.es.js +48 -0
- package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceDay.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings.es.js +37 -0
- package/dist/recurringtransactions/components/shared/RecurringSettings.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js +93 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransactionDetails.es.js +42 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransactionDetails.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/ManageExpenses.es.js +57 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/ManageExpenses.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/ManageIncome.es.js +72 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/ManageIncome.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/RecurringRow.es.js +96 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/RecurringRow.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/RecurringSettingsZeroState.es.js +47 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/RecurringSettingsZeroState.es.js.map +1 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js +45 -0
- package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js.map +1 -0
- package/dist/recurringtransactions/index.es.js +18 -1022
- package/dist/settings/NotificationSettingsWidget.es.js +32 -0
- package/dist/settings/NotificationSettingsWidget.es.js.map +1 -0
- package/dist/settings/SettingsWidget.es.js +82 -0
- package/dist/settings/SettingsWidget.es.js.map +1 -0
- package/dist/settings/TransactionRulesWidget.es.js +28 -0
- package/dist/settings/TransactionRulesWidget.es.js.map +1 -0
- package/dist/settings/components/SettingsWidgetContents.es.js +47 -0
- package/dist/settings/components/SettingsWidgetContents.es.js.map +1 -0
- package/dist/settings/components/devices/DeviceDialog.es.js +127 -0
- package/dist/settings/components/devices/DeviceDialog.es.js.map +1 -0
- package/dist/settings/components/devices/DeviceList.es.js +125 -0
- package/dist/settings/components/devices/DeviceList.es.js.map +1 -0
- package/dist/settings/components/devices/DeviceTab.es.js +107 -0
- package/dist/settings/components/devices/DeviceTab.es.js.map +1 -0
- package/dist/settings/components/devices/DeviceTable.es.js +120 -0
- package/dist/settings/components/devices/DeviceTable.es.js.map +1 -0
- package/dist/settings/components/notifications/AccountNotificationProfile.es.js +92 -0
- package/dist/settings/components/notifications/AccountNotificationProfile.es.js.map +1 -0
- package/dist/settings/components/notifications/AccountNotificationProfiles.es.js +44 -0
- package/dist/settings/components/notifications/AccountNotificationProfiles.es.js.map +1 -0
- package/dist/settings/components/notifications/AccountProfileListItem.es.js +84 -0
- package/dist/settings/components/notifications/AccountProfileListItem.es.js.map +1 -0
- package/dist/settings/components/notifications/BudgetNotificationProfiles.es.js +14 -0
- package/dist/settings/components/notifications/BudgetNotificationProfiles.es.js.map +1 -0
- package/dist/settings/components/notifications/DeliveryMethods.es.js +78 -0
- package/dist/settings/components/notifications/DeliveryMethods.es.js.map +1 -0
- package/dist/settings/components/notifications/InsightsNotificationProfiles.es.js +14 -0
- package/dist/settings/components/notifications/InsightsNotificationProfiles.es.js.map +1 -0
- package/dist/settings/components/notifications/NotificationProfile.es.js +80 -0
- package/dist/settings/components/notifications/NotificationProfile.es.js.map +1 -0
- package/dist/settings/components/notifications/NotificationSettings.es.js +94 -0
- package/dist/settings/components/notifications/NotificationSettings.es.js.map +1 -0
- package/dist/settings/components/notifications/PersonalDetails.es.js +111 -0
- package/dist/settings/components/notifications/PersonalDetails.es.js.map +1 -0
- package/dist/settings/components/profile/ProfileTab.es.js +178 -0
- package/dist/settings/components/profile/ProfileTab.es.js.map +1 -0
- package/dist/settings/components/profile/actions/VerifyEmailAction.es.js +88 -0
- package/dist/settings/components/profile/actions/VerifyEmailAction.es.js.map +1 -0
- package/dist/settings/components/profile/actions/VerifyPhoneAction.es.js +105 -0
- package/dist/settings/components/profile/actions/VerifyPhoneAction.es.js.map +1 -0
- package/dist/settings/components/profile/actions/VerifyTokenAction.es.js +40 -0
- package/dist/settings/components/profile/actions/VerifyTokenAction.es.js.map +1 -0
- package/dist/settings/components/transactionrules/TransactionRulesTab.es.js +35 -0
- package/dist/settings/components/transactionrules/TransactionRulesTab.es.js.map +1 -0
- package/dist/settings/components/transactionrules/actions/DeleteRuleAction.es.js +34 -0
- package/dist/settings/components/transactionrules/actions/DeleteRuleAction.es.js.map +1 -0
- package/dist/settings/components/transactionrules/actions/EditCategoryAction.es.js +31 -0
- package/dist/settings/components/transactionrules/actions/EditCategoryAction.es.js.map +1 -0
- package/dist/settings/components/transactionrules/actions/EditPayeeAction.es.js +45 -0
- package/dist/settings/components/transactionrules/actions/EditPayeeAction.es.js.map +1 -0
- package/dist/settings/components/transactionrules/actions/EditRuleAction.es.js +36 -0
- package/dist/settings/components/transactionrules/actions/EditRuleAction.es.js.map +1 -0
- package/dist/settings/components/transactionrules/components/EditRuleDetails.es.js +46 -0
- package/dist/settings/components/transactionrules/components/EditRuleDetails.es.js.map +1 -0
- package/dist/settings/components/transactionrules/components/RuleListItem.es.js +26 -0
- package/dist/settings/components/transactionrules/components/RuleListItem.es.js.map +1 -0
- package/dist/settings/constants/Settings.es.js +8 -0
- package/dist/settings/constants/Settings.es.js.map +1 -0
- package/dist/settings/index.es.js +23 -892
- package/dist/spending/SpendingMiniWidget.es.js +41 -0
- package/dist/spending/SpendingMiniWidget.es.js.map +1 -0
- package/dist/spending/SpendingWidget.es.js +51 -0
- package/dist/spending/SpendingWidget.es.js.map +1 -0
- package/dist/spending/components/MiniSpendingChart.es.js +112 -0
- package/dist/spending/components/MiniSpendingChart.es.js.map +1 -0
- package/dist/spending/components/Spending.es.js +123 -0
- package/dist/spending/components/Spending.es.js.map +1 -0
- package/dist/spending/components/SpendingChart.es.js +60 -0
- package/dist/spending/components/SpendingChart.es.js.map +1 -0
- package/dist/spending/components/SpendingDonut.es.js +132 -0
- package/dist/spending/components/SpendingDonut.es.js.map +1 -0
- package/dist/spending/components/SpendingLegend.es.js +46 -0
- package/dist/spending/components/SpendingLegend.es.js.map +1 -0
- package/dist/spending/components/SpendingList.es.js +124 -0
- package/dist/spending/components/SpendingList.es.js.map +1 -0
- package/dist/spending/components/SpendingTabLabel.es.js +22 -0
- package/dist/spending/components/SpendingTabLabel.es.js.map +1 -0
- package/dist/spending/index.es.js +4 -491
- package/dist/spending/utils/SpendingData.es.js +72 -0
- package/dist/spending/utils/SpendingData.es.js.map +1 -0
- package/dist/transactions/TransactionWidget.es.js +189 -0
- package/dist/transactions/TransactionWidget.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionDetails.es.js +255 -0
- package/dist/transactions/components/shared/TransactionDetails.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionList.es.js +92 -0
- package/dist/transactions/components/shared/TransactionList.es.js.map +1 -0
- package/dist/transactions/components/shared/TransactionTable.es.js +124 -0
- package/dist/transactions/components/shared/TransactionTable.es.js.map +1 -0
- package/dist/transactions/components/shared/getEmbeddedInstanceSlotByBeatTemplates.es.js +25 -0
- package/dist/transactions/components/shared/getEmbeddedInstanceSlotByBeatTemplates.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/Description.es.js +85 -0
- package/dist/transactions/components/shared/transactiondetails/Description.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/FlagTransaction.es.js +49 -0
- package/dist/transactions/components/shared/transactiondetails/FlagTransaction.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/ManualTransactionDetails.es.js +151 -0
- package/dist/transactions/components/shared/transactiondetails/ManualTransactionDetails.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/TransactionAmountHeader.es.js +39 -0
- package/dist/transactions/components/shared/transactiondetails/TransactionAmountHeader.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/TransactionDetailsView.es.js +82 -0
- package/dist/transactions/components/shared/transactiondetails/TransactionDetailsView.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/actions/AddMerchantBudgetAction.es.js +161 -0
- package/dist/transactions/components/shared/transactiondetails/actions/AddMerchantBudgetAction.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/actions/CategoryAction.es.js +105 -0
- package/dist/transactions/components/shared/transactiondetails/actions/CategoryAction.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/actions/DateAction.es.js +103 -0
- package/dist/transactions/components/shared/transactiondetails/actions/DateAction.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/actions/DeleteAction.es.js +66 -0
- package/dist/transactions/components/shared/transactiondetails/actions/DeleteAction.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/actions/DeleteLogoAction.es.js +77 -0
- package/dist/transactions/components/shared/transactiondetails/actions/DeleteLogoAction.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/actions/ExcludeAction.es.js +90 -0
- package/dist/transactions/components/shared/transactiondetails/actions/ExcludeAction.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/actions/MemoAction.es.js +101 -0
- package/dist/transactions/components/shared/transactiondetails/actions/MemoAction.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/actions/SplitAction.es.js +150 -0
- package/dist/transactions/components/shared/transactiondetails/actions/SplitAction.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiondetails/actions/TagsAction.es.js +94 -0
- package/dist/transactions/components/shared/transactiondetails/actions/TagsAction.es.js.map +1 -0
- package/dist/transactions/components/shared/transactionlist/TransactionRow.es.js +92 -0
- package/dist/transactions/components/shared/transactionlist/TransactionRow.es.js.map +1 -0
- package/dist/transactions/components/shared/transactionlist/ZeroState.es.js +39 -0
- package/dist/transactions/components/shared/transactionlist/ZeroState.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiontable/cells/AccountCell.es.js +12 -0
- package/dist/transactions/components/shared/transactiontable/cells/AccountCell.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiontable/cells/AmountCell.es.js +30 -0
- package/dist/transactions/components/shared/transactiontable/cells/AmountCell.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiontable/cells/CategoryCell.es.js +38 -0
- package/dist/transactions/components/shared/transactiontable/cells/CategoryCell.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiontable/cells/DateCell.es.js +14 -0
- package/dist/transactions/components/shared/transactiontable/cells/DateCell.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiontable/cells/FlagCell.es.js +46 -0
- package/dist/transactions/components/shared/transactiontable/cells/FlagCell.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiontable/cells/HeaderCell.es.js +12 -0
- package/dist/transactions/components/shared/transactiontable/cells/HeaderCell.es.js.map +1 -0
- package/dist/transactions/components/shared/transactiontable/cells/PayeeCell.es.js +28 -0
- package/dist/transactions/components/shared/transactiontable/cells/PayeeCell.es.js.map +1 -0
- package/dist/transactions/components/splitmanager/SplitManager.es.js +68 -0
- package/dist/transactions/components/splitmanager/SplitManager.es.js.map +1 -0
- package/dist/transactions/components/splitmanager/SplitRow.es.js +119 -0
- package/dist/transactions/components/splitmanager/SplitRow.es.js.map +1 -0
- package/dist/transactions/components/tagmanager/Header.es.js +68 -0
- package/dist/transactions/components/tagmanager/Header.es.js.map +1 -0
- package/dist/transactions/components/tagmanager/SearchBox.es.js +48 -0
- package/dist/transactions/components/tagmanager/SearchBox.es.js.map +1 -0
- package/dist/transactions/components/tagmanager/TagManager.es.js +36 -0
- package/dist/transactions/components/tagmanager/TagManager.es.js.map +1 -0
- package/dist/transactions/components/tagmanager/TagRow.es.js +108 -0
- package/dist/transactions/components/tagmanager/TagRow.es.js.map +1 -0
- package/dist/transactions/components/transactionwidget/AddAccountModal.es.js +33 -0
- package/dist/transactions/components/transactionwidget/AddAccountModal.es.js.map +1 -0
- package/dist/transactions/components/transactionwidget/actions/EditCategoryAction.es.js +44 -0
- package/dist/transactions/components/transactionwidget/actions/EditCategoryAction.es.js.map +1 -0
- package/dist/transactions/components/transactionwidget/actions/ExportCsvAction.es.js +26 -0
- package/dist/transactions/components/transactionwidget/actions/ExportCsvAction.es.js.map +1 -0
- package/dist/transactions/constants/Actions.es.js +22 -0
- package/dist/transactions/constants/Actions.es.js.map +1 -0
- package/dist/transactions/constants/OnClickEvents.es.js +50 -0
- package/dist/transactions/constants/OnClickEvents.es.js.map +1 -0
- package/dist/transactions/context/hooks.es.js +12 -0
- package/dist/transactions/context/hooks.es.js.map +1 -0
- package/dist/transactions/index.es.js +17 -604
- package/dist/transactions/utils/Filters.es.js +11 -0
- package/dist/transactions/utils/Filters.es.js.map +1 -0
- package/dist/transactions/utils/Transactions.es.js +24 -0
- package/dist/transactions/utils/Transactions.es.js.map +1 -0
- package/dist/trends/TrendsFullWidget.es.js +154 -0
- package/dist/trends/TrendsFullWidget.es.js.map +1 -0
- package/dist/trends/TrendsMicroWidget.es.js +72 -0
- package/dist/trends/TrendsMicroWidget.es.js.map +1 -0
- package/dist/trends/TrendsMiniWidget.es.js +43 -0
- package/dist/trends/TrendsMiniWidget.es.js.map +1 -0
- package/dist/trends/TrendsWidget.es.js +207 -0
- package/dist/trends/TrendsWidget.es.js.map +1 -0
- package/dist/trends/ZeroStateMicroWidget.es.js +30 -0
- package/dist/trends/ZeroStateMicroWidget.es.js.map +1 -0
- package/dist/trends/components/CategoriesList.es.js +64 -0
- package/dist/trends/components/CategoriesList.es.js.map +1 -0
- package/dist/trends/components/CategoriesListItem.es.js +44 -0
- package/dist/trends/components/CategoriesListItem.es.js.map +1 -0
- package/dist/trends/components/CategoryDetailChart.es.js +45 -0
- package/dist/trends/components/CategoryDetailChart.es.js.map +1 -0
- package/dist/trends/components/CategoryDetails.es.js +104 -0
- package/dist/trends/components/CategoryDetails.es.js.map +1 -0
- package/dist/trends/components/DateRangeText.es.js +26 -0
- package/dist/trends/components/DateRangeText.es.js.map +1 -0
- package/dist/trends/components/SpendingChart.es.js +28 -0
- package/dist/trends/components/SpendingChart.es.js.map +1 -0
- package/dist/trends/components/TrendsChart.es.js +63 -0
- package/dist/trends/components/TrendsChart.es.js.map +1 -0
- package/dist/trends/components/TrendsChartTotals.es.js +58 -0
- package/dist/trends/components/TrendsChartTotals.es.js.map +1 -0
- package/dist/trends/components/TrendsDrawer.es.js +38 -0
- package/dist/trends/components/TrendsDrawer.es.js.map +1 -0
- package/dist/trends/components/TrendsInsights.es.js +38 -0
- package/dist/trends/components/TrendsInsights.es.js.map +1 -0
- package/dist/trends/components/TrendsMicroSpendingIncomeBox.es.js +82 -0
- package/dist/trends/components/TrendsMicroSpendingIncomeBox.es.js.map +1 -0
- package/dist/trends/components/TrendsTableContainer.es.js +56 -0
- package/dist/trends/components/TrendsTableContainer.es.js.map +1 -0
- package/dist/trends/components/TrendsViewToggle.es.js +28 -0
- package/dist/trends/components/TrendsViewToggle.es.js.map +1 -0
- package/dist/trends/components/trendstable/AccessibleSortIcon.es.js +49 -0
- package/dist/trends/components/trendstable/AccessibleSortIcon.es.js.map +1 -0
- package/dist/trends/components/trendstable/AmountCell.es.js +24 -0
- package/dist/trends/components/trendstable/AmountCell.es.js.map +1 -0
- package/dist/trends/components/trendstable/CategoryCell.es.js +30 -0
- package/dist/trends/components/trendstable/CategoryCell.es.js.map +1 -0
- package/dist/trends/components/trendstable/HeaderCell.es.js +12 -0
- package/dist/trends/components/trendstable/HeaderCell.es.js.map +1 -0
- package/dist/trends/components/trendstable/TrendsTable.es.js +53 -0
- package/dist/trends/components/trendstable/TrendsTable.es.js.map +1 -0
- package/dist/trends/constants/TrendsInsights.es.js +40 -0
- package/dist/trends/constants/TrendsInsights.es.js.map +1 -0
- package/dist/trends/constants/TrendsWidget.es.js +6 -0
- package/dist/trends/constants/TrendsWidget.es.js.map +1 -0
- package/dist/trends/index.es.js +8 -1612
- package/dist/trends/utils/SpendingData.es.js +53 -0
- package/dist/trends/utils/SpendingData.es.js.map +1 -0
- package/dist/trends/utils/TrendsTable.es.js +101 -0
- package/dist/trends/utils/TrendsTable.es.js.map +1 -0
- package/dist/trends/utils/TrendsWidget.es.js +11 -0
- package/dist/trends/utils/TrendsWidget.es.js.map +1 -0
- package/dist/trends/utils/shared.es.js +18 -0
- package/dist/trends/utils/shared.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-DVZTB7Dp.mjs +0 -922
- package/dist/AccountDetailsDrawer-DVZTB7Dp.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-CWZoNePh.mjs +0 -431
- package/dist/CategorySelectorDrawer-CWZoNePh.mjs.map +0 -1
- package/dist/Connect-BH0Pt6zc.mjs +0 -43
- package/dist/Connect-BH0Pt6zc.mjs.map +0 -1
- package/dist/ConnectCard-CVMLPujx.mjs +0 -55
- package/dist/ConnectCard-CVMLPujx.mjs.map +0 -1
- package/dist/ConnectDrawer-L-UwjKiw.mjs +0 -58
- package/dist/ConnectDrawer-L-UwjKiw.mjs.map +0 -1
- package/dist/ConnectionsDrawer-B2-IGB21.mjs +0 -54
- package/dist/ConnectionsDrawer-B2-IGB21.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-BDN1RgiP.mjs +0 -233
- package/dist/Drawer-BDN1RgiP.mjs.map +0 -1
- package/dist/EmbeddedCard-B1xiWlSD.mjs +0 -860
- package/dist/EmbeddedCard-B1xiWlSD.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-BmhxpUxp.mjs +0 -25
- package/dist/ExportCsvAction-BmhxpUxp.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-CsyZsI4_.mjs +0 -3210
- package/dist/Help-CsyZsI4_.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-Cy_iopks.mjs +0 -906
- package/dist/ManageIncome-Cy_iopks.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-C7-S6PC1.mjs +0 -678
- package/dist/NotificationSettings-C7-S6PC1.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-UHjXxW8J.mjs +0 -89
- package/dist/RecurringSettings-UHjXxW8J.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-Nuyunc5m.mjs +0 -1710
- package/dist/TransactionDetails-Nuyunc5m.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-By47tuTw.mjs +0 -487
- package/dist/WidgetContainer-By47tuTw.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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../src/notifications/constants/NotificationConstants.ts","../../src/notifications/components/DateRow.tsx","../../src/notifications/components/NotificationBadge.tsx","../../src/notifications/components/NotificationCard.tsx","../../src/notifications/components/NotificationsEmptyState.tsx","../../src/notifications/components/NotificationList.tsx","../../src/notifications/components/NotificationDrawer.tsx"],"sourcesContent":["import { ApiEndpoints } from '../../core/constants'\nimport { AccountNotificationTypes, BudgetNotificationTypes } from '../../core'\n\nexport const getNotificationDetailRoute = (notificationType: number) => {\n switch (notificationType) {\n case BudgetNotificationTypes.BudgetExceeded:\n case BudgetNotificationTypes.BudgetOffTarget:\n return ApiEndpoints.BUDGETS\n case AccountNotificationTypes.DebtPaymentReminder:\n case AccountNotificationTypes.AccountBalanceLow:\n case AccountNotificationTypes.AccountDepositLarge:\n return ApiEndpoints.ACCOUNTS\n case AccountNotificationTypes.TransactionExpenseLarge:\n case AccountNotificationTypes.TransactionFeeCharge:\n case AccountNotificationTypes.InternationalTransaction:\n return ApiEndpoints.TRANSACTIONS\n default:\n return null\n }\n}\n","import React from 'react'\nimport Box from '@mui/material/Box'\nimport { Text } from '@mxenabled/mxui'\n\nimport { fromUnixToDayOfWeekAndDate } from '../../core/utils/DateUtil'\n\ninterface DateRowProps {\n date: number\n}\n\nconst DateRow: React.FC<DateRowProps> = ({ date }) => {\n return (\n <Box sx={{ display: 'flex', justifyContent: 'center', mt: 12, py: 8 }}>\n <Text bold={true} variant=\"body2\">\n {fromUnixToDayOfWeekAndDate(date)}\n </Text>\n </Box>\n )\n}\n\nexport default DateRow\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { InstitutionLogo, CategoryIcon } from '@mxenabled/mxui'\n\nimport { useAccountStore, useBudgetsStore, useGlobalCopyStore } from '../../common'\nimport { type Notification } from '../../core'\n\ninterface NotificationBadgeProps {\n notification: Notification\n}\n\nconst NotificationBadge: React.FC<NotificationBadgeProps> = ({ notification }) => {\n // Show notifications for all accounts (including hidden)\n const { accounts } = useAccountStore()\n const { budgets } = useBudgetsStore()\n const { accounts: accountsCopy } = useGlobalCopyStore()\n\n const account = accounts.find((account) => account.guid === notification.entity_guid)\n const budget = budgets.find((budget) => budget.guid === notification.entity_guid)\n const isGoal = notification.entity_guid.includes('GOL')\n\n const styles = {\n badge: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4,\n marginRight: 12,\n },\n }\n\n if (account || isGoal) {\n return (\n <div style={styles.badge}>\n <InstitutionLogo\n alt={account?.institutionName || accountsCopy.institution_logo_alt}\n institutionGuid={account?.institution_guid ?? ''}\n size={33}\n />\n </div>\n )\n } else {\n return (\n <div style={styles.badge}>\n <CategoryIcon categoryGuid={budget?.category_guid} size={36} />\n </div>\n )\n }\n}\n\nexport default observer(NotificationBadge)\n","import React from 'react'\nimport { Card, useTheme } from '@mui/material'\nimport { Text } from '@mxenabled/mxui'\n\nimport { type Notification } from '../../core'\nimport { useNotificationStore } from '../../common'\nimport NotificationBadge from './NotificationBadge'\n\ninterface NotificationCardProps {\n notification: Notification\n onClick: (notification: Notification) => void\n}\n\nconst NotificationCard: React.FC<NotificationCardProps> = ({ notification, onClick }) => {\n const { updateNotification } = useNotificationStore()\n const theme = useTheme()\n\n const styles = {\n card: {\n alignItems: 'center',\n cursor: 'pointer',\n display: 'flex',\n marginBottom: 12,\n paddingX: 24,\n paddingY: 12,\n '&:focus': {\n backgroundColor: theme.palette.background.default,\n },\n '&:hover': {\n backgroundColor: theme.palette.background.default,\n },\n },\n dot: {\n backgroundColor: theme.palette.primary.main,\n borderRadius: '100%',\n flex: '0 0 auto',\n marginLeft: -8,\n marginRight: 8,\n height: 8,\n width: 8,\n },\n }\n\n const handleOnClick = () => {\n onClick(notification)\n updateNotification({ ...notification, has_been_viewed: true }).finally()\n }\n\n return (\n <Card onClick={handleOnClick} sx={styles.card}>\n {!notification.has_been_viewed ? (\n <div data-testid=\"new-message-dot\" style={styles.dot} />\n ) : null}\n <NotificationBadge notification={notification} />\n <Text bold={!notification.has_been_viewed} truncate={false} variant={'body2'}>\n {notification.content}\n </Text>\n </Card>\n )\n}\n\nexport default NotificationCard\n","import { observer } from 'mobx-react-lite'\n\nimport { Icon } from '@mxenabled/mx-icons'\nimport { Text } from '@mxenabled/mxui'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport { useGlobalCopyStore } from '../../common'\n\ninterface NotificationEmptyStateProps {\n onManageNotifications: () => void\n}\n\nexport const NotificationEmptyState = observer(\n ({ onManageNotifications }: NotificationEmptyStateProps) => {\n const { notifications: notificationsCopy } = useGlobalCopyStore()\n\n return (\n <Stack sx={{ alignItems: 'center', height: '95%', justifyContent: 'center' }}>\n <Icon name=\"notifications\" size={32} />\n\n <Text sx={{ pt: 32 }} variant=\"h3\">\n {notificationsCopy.notification_empty_state.no_new_notifications}\n </Text>\n <Text\n sx={{\n maxWidth: 327,\n pb: 24,\n pt: 12,\n textAlign: 'center',\n }}\n variant=\"subtitle1\"\n >\n {notificationsCopy.notification_empty_state.notification_description}\n </Text>\n <Button onClick={onManageNotifications} sx={{ p: '12px 16px' }} variant=\"outlined\">\n {notificationsCopy.notification_empty_state.manage_notifications}\n </Button>\n </Stack>\n )\n },\n)\n","import React, { useEffect } from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\n\nimport {\n shouldShowDate,\n getInsightNotificationTypeValues,\n} from '../../core/utils/NotificationUtils'\nimport {\n type Notification,\n NotificationTypes,\n NotificationTypes as NotificationTypesEnum,\n} from '../../core'\n\nimport { Loader, useGlobalUiStore, useNotificationStore } from '../../common'\n\nimport DateRow from './DateRow'\nimport NotificationCard from './NotificationCard'\nimport { NotificationEmptyState } from './NotificationsEmptyState'\n\nexport interface NotificationListProps {\n notificationTypes?: NotificationTypes[]\n onClick?: (notification: Notification) => void\n onManageNotifications: () => void\n}\n\nconst NotificationList: React.FC<NotificationListProps> = ({\n notificationTypes,\n onClick,\n onManageNotifications,\n}) => {\n const { isLoading, loadNotifications, markAllAsViewed, recentNotifications } =\n useNotificationStore()\n const { isInitialized } = useGlobalUiStore()\n\n const handleClick = (notification: Notification) => {\n onClick?.(notification)\n }\n\n useEffect(() => {\n loadNotifications()\n .then(() => markAllAsViewed())\n .finally()\n }, [])\n\n const isNotificationTypesInsights = notificationTypes?.includes(NotificationTypesEnum.Insights)\n\n if (!isInitialized || isLoading) {\n return <Loader />\n }\n\n const filteredNotifications = recentNotifications\n .slice()\n .sort((a, b) => b.delivered_at - a.delivered_at)\n .filter((notification) =>\n isNotificationTypesInsights\n ? getInsightNotificationTypeValues().has(notification.notification_type)\n : true,\n )\n\n return (\n <>\n {filteredNotifications.length === 0 && (\n <NotificationEmptyState onManageNotifications={onManageNotifications} />\n )}\n <List sx={{ p: 16 }}>\n {filteredNotifications.map((notification, index) => {\n const showDate = shouldShowDate(index, filteredNotifications)\n\n return (\n <Box key={notification.guid} sx={{ mb: 12 }}>\n {showDate && (\n <Box sx={{ mb: 12 }}>\n <DateRow date={notification.delivered_at} />\n <Divider />\n </Box>\n )}\n <NotificationCard notification={notification} onClick={handleClick} />\n </Box>\n )\n })}\n </List>\n </>\n )\n}\n\nexport default observer(NotificationList)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport IconButton from '@mui/material/IconButton'\n\nimport { Settings as SettingsIcon } from '@mxenabled/mx-icons'\n\nimport { Drawer, Loader, useAppConfig, useGlobalCopyStore, useGlobalUiStore } from '../../common'\nimport { type Notification, NotificationTypes } from '../../core'\n\nimport { NotificationSettings } from '../../settings'\n\nimport NotificationList from './NotificationList'\n\ninterface NotificationDrawerProps {\n notificationTypes?: NotificationTypes[]\n isOpen: boolean\n onClose: () => void\n onNotificationClick?: (notification: Notification) => void\n}\n\nexport const NotificationDrawer = observer(\n ({ notificationTypes, isOpen, onClose, onNotificationClick }: NotificationDrawerProps) => {\n const { config } = useAppConfig()\n const { notifications: copy, settings: settingsCopy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n\n const [shouldShowSettings, setShouldShowSettings] = React.useState(false)\n\n if (!isCopyLoaded) return <Loader />\n\n return (\n <>\n <Drawer\n ariaLabelClose={copy.close_notifications}\n isOpen={isOpen}\n onClose={onClose}\n title={copy.notifications_title}\n >\n <IconButton\n aria-label={settingsCopy.open_notification_settings_btn_aria}\n onClick={() => setShouldShowSettings(true)}\n sx={{\n position: 'absolute',\n right: 8,\n top: 8,\n }}\n >\n <SettingsIcon size={24} />\n </IconButton>\n\n <NotificationList\n notificationTypes={notificationTypes}\n onClick={onNotificationClick}\n onManageNotifications={() => setShouldShowSettings(true)}\n />\n </Drawer>\n <Drawer\n ariaLabelClose={copy.close_notification_settings}\n isOpen={shouldShowSettings}\n onClose={() => setShouldShowSettings(false)}\n title={settingsCopy.notification_settings_title}\n >\n <NotificationSettings\n notificationTypes={notificationTypes}\n showPersonalDetails={!config.display_user_profile_in_settings}\n />\n </Drawer>\n </>\n )\n },\n)\n"],"names":["getNotificationDetailRoute","notificationType","BudgetNotificationTypes","ApiEndpoints","AccountNotificationTypes","DateRow","date","jsx","Box","Text","fromUnixToDayOfWeekAndDate","NotificationBadge","notification","accounts","useAccountStore","budgets","useBudgetsStore","accountsCopy","useGlobalCopyStore","account","budget","isGoal","styles","InstitutionLogo","CategoryIcon","NotificationBadge$1","observer","NotificationCard","onClick","updateNotification","useNotificationStore","theme","useTheme","Card","NotificationEmptyState","onManageNotifications","notificationsCopy","jsxs","Stack","Icon","Button","NotificationList","notificationTypes","isLoading","loadNotifications","markAllAsViewed","recentNotifications","isInitialized","useGlobalUiStore","handleClick","useEffect","isNotificationTypesInsights","NotificationTypesEnum","Loader","filteredNotifications","a","b","getInsightNotificationTypeValues","Fragment","List","index","showDate","shouldShowDate","Divider","NotificationList$1","NotificationDrawer","isOpen","onClose","onNotificationClick","config","useAppConfig","copy","settingsCopy","isCopyLoaded","shouldShowSettings","setShouldShowSettings","React","Drawer","IconButton","SettingsIcon","NotificationSettings"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../src/recurringtransactions/components/RecurrenceBadges.tsx","../../src/recurringtransactions/components/recurrencecalendar/RecurrenceDay.tsx","../../src/recurringtransactions/components/recurrencecalendar/Legend.tsx","../../src/recurringtransactions/components/recurrencecalendar/RecurrenceCalendar.tsx","../../src/recurringtransactions/components/RecurrenceRow.tsx","../../src/recurringtransactions/components/RecurrenceList.tsx","../../src/recurringtransactions/components/RecurringStatus.tsx","../../src/recurringtransactions/components/RecurringTransactionDetailsDrawer.tsx","../../src/recurringtransactions/components/RecurringTransactions.tsx","../../src/recurringtransactions/RecurringTransactionsWidget.tsx","../../src/recurringtransactions/components/MiniWidgetContent.tsx","../../src/recurringtransactions/RecurringTransactionsMiniWidget.tsx","../../src/recurringtransactions/ZeroStateMicroWidget.tsx","../../src/recurringtransactions/components/micro/RecurrenceLegend.tsx","../../src/recurringtransactions/components/micro/OverlappingMerchantLogos.tsx","../../src/recurringtransactions/components/micro/MerchantLogosRow.tsx","../../src/recurringtransactions/components/MicroWidgetContent.tsx","../../src/recurringtransactions/RecurringTransactionsMicroWidget.tsx","../../src/recurringtransactions/components/RecurringSettingsDrawer.tsx"],"sourcesContent":["import { Schedule } from '@mxenabled/mx-icons'\nimport { MonetizationOn } from '@mxenabled/mx-icons'\nimport { Cancel } from '@mxenabled/mx-icons'\nimport { CheckCircle } from '@mxenabled/mx-icons'\n\nimport IconBacking from '../../common/components/IconBacking'\n\nconst iconStyle = {\n gridRow: 1,\n gridColumn: 1,\n zIndex: 2,\n}\n\nconst offsetStyle = (isOffset: boolean) => {\n return isOffset ? { margin: '0 0 -6px -4px' } : undefined\n}\n\nexport const UpcomingExpenseBadge = ({ isOffset = false, size = 16 }) => (\n <IconBacking\n backingSx={{ backgroundColor: 'background.paper' }}\n size={size}\n sx={{ ...offsetStyle(isOffset) }}\n >\n <Schedule color=\"primary\" filled={true} sx={{ fontSize: size, ...iconStyle }} />\n </IconBacking>\n)\n\nexport const IncomeBadge = ({ isOffset = false, size = 16 }) => (\n <IconBacking\n backingSx={{ backgroundColor: 'background.paper' }}\n size={size}\n sx={{ ...offsetStyle(isOffset) }}\n >\n <MonetizationOn\n filled={true}\n sx={{ color: 'categories.income', fontSize: size, ...iconStyle }}\n />\n </IconBacking>\n)\n\nexport const MissedBadge = ({ isOffset = false, size = 16 }) => (\n <IconBacking\n backingSx={{ backgroundColor: 'background.paper' }}\n size={size}\n sx={{ ...offsetStyle(isOffset) }}\n >\n <Cancel color=\"error\" filled={true} sx={{ fontSize: size, ...iconStyle }} />\n </IconBacking>\n)\n\nexport const PaidBadge = ({ isOffset = false, size = 16 }) => (\n <IconBacking\n backingSx={{ backgroundColor: 'background.paper' }}\n size={size}\n sx={{ ...offsetStyle(isOffset) }}\n >\n <CheckCircle color=\"success\" filled={true} sx={{ fontSize: size, ...iconStyle }} />\n </IconBacking>\n)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { isSameDay } from 'date-fns/isSameDay'\n\nimport Badge from '@mui/material/Badge'\nimport { PickersDay, PickersDayProps } from '@mui/x-date-pickers/PickersDay'\n\nimport {\n useGlobalCopyStore,\n useGlobalUiStore,\n useRecurringTransactionsStore,\n} from '../../../common'\nimport { DATE_FORMATS_INTL, formatDate } from '../../../core/constants'\nimport { RecurrenceStatus, RecurrenceType } from '../../../core'\n\nimport { IncomeBadge, MissedBadge, PaidBadge, UpcomingExpenseBadge } from '../RecurrenceBadges'\n\nexport const RecurrenceDay = observer(\n ({ day, outsideCurrentMonth, ...other }: PickersDayProps<Date>) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { selectedAccountGuids } = useGlobalUiStore()\n const { recurrences, setSelectedDay } = useRecurringTransactionsStore()\n\n const filteredRecurrences = React.useMemo(\n () =>\n recurrences.filter((recurrence) => selectedAccountGuids.includes(recurrence.accountGuid)),\n [selectedAccountGuids, recurrences],\n )\n\n const dayRecurrences = filteredRecurrences.filter((a) =>\n isSameDay(a.occurredOnDate || a.expectedDate, day),\n )\n const hasUpcoming = dayRecurrences.some(\n (a) => a.type !== RecurrenceType.Income && a.status === RecurrenceStatus.Upcoming,\n )\n const hasMissed = dayRecurrences.some(\n (a) => a.type !== RecurrenceType.Income && a.status === RecurrenceStatus.Missed,\n )\n const hasPaid = dayRecurrences.some(\n (a) => a.type !== RecurrenceType.Income && a.status === RecurrenceStatus.Paid,\n )\n const hasIncome = dayRecurrences.some((a) => a.type === RecurrenceType.Income)\n\n const totalBadges =\n (hasUpcoming ? 1 : 0) + (hasMissed ? 1 : 0) + (hasPaid ? 1 : 0) + (hasIncome ? 1 : 0)\n\n const statusParts = [\n hasPaid && copy.paid,\n hasMissed && copy.missed,\n hasUpcoming && copy.upcoming,\n hasIncome && copy.income,\n ].filter(Boolean) as string[]\n\n const ariaLabel =\n statusParts.length > 0\n ? `${formatDate(day, DATE_FORMATS_INTL.MONTH_DAY_YEAR)}, ${statusParts.join(', ')}`\n : formatDate(day, DATE_FORMATS_INTL.MONTH_DAY_YEAR)\n\n return (\n <Badge\n badgeContent={\n dayRecurrences.length > 0 && (\n <>\n {hasMissed && <MissedBadge isOffset={true} />}\n {hasPaid && <PaidBadge isOffset={true} />}\n {hasUpcoming && <UpcomingExpenseBadge isOffset={true} />}\n {hasIncome && <IncomeBadge isOffset={true} />}\n </>\n )\n }\n overlap=\"circular\"\n sx={{\n '& .MuiBadge-badge': {\n padding: 0,\n marginRight: `${(totalBadges - 1) * 6 + 1}px`,\n flexWrap: 'nowrap',\n },\n }}\n >\n <PickersDay\n aria-label={ariaLabel}\n day={day}\n onClick={() => setSelectedDay(day)}\n outsideCurrentMonth={outsideCurrentMonth}\n sx={{\n '&.MuiPickersDay-root': {\n ...(outsideCurrentMonth && {\n color: 'text.disabled',\n }),\n ...(other.today && {\n color: 'primary.main',\n }),\n },\n }}\n {...other}\n />\n </Badge>\n )\n },\n)\n","import { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\nimport { IncomeBadge, MissedBadge, PaidBadge, UpcomingExpenseBadge } from '../RecurrenceBadges'\nimport { useGlobalCopyStore } from '../../../common'\n\ninterface SymbolProps {\n icon: any\n label: string\n}\n\nconst Symbol = ({ icon: Icon, label }: SymbolProps) => (\n <Stack alignItems=\"center\" flexDirection=\"row\" sx={{ gap: 6 }}>\n <Icon />\n <Text variant=\"caption\">{label}</Text>\n </Stack>\n)\n\nexport const Legend = observer(() => {\n const { recurring: copy } = useGlobalCopyStore()\n\n return (\n <Stack\n alignItems=\"center\"\n aria-hidden={true}\n flexDirection=\"row\"\n gap={16}\n justifyContent=\"center\"\n mt={12}\n >\n <Symbol icon={UpcomingExpenseBadge} label={copy.expense} />\n <Symbol icon={IncomeBadge} label={copy.income} />\n <Symbol icon={MissedBadge} label={copy.missed} />\n <Symbol icon={PaidBadge} label={copy.paid} />\n </Stack>\n )\n})\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { getWeeksInMonth } from 'date-fns/getWeeksInMonth'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { Locale } from 'date-fns'\nimport { enCA } from 'date-fns/locale/en-CA'\nimport { enUS } from 'date-fns/locale/en-US'\nimport { es } from 'date-fns/locale/es'\nimport { fr } from 'date-fns/locale/fr'\nimport { frCA } from 'date-fns/locale/fr-CA'\n\nimport { Text } from '@mxenabled/mxui'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3'\nimport { DateCalendar } from '@mui/x-date-pickers/DateCalendar'\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'\n\nimport {\n ANALYTICS_EVENTS,\n TOUCH_TARGET,\n useEvent,\n useRecurringTransactionsStore,\n useGlobalCopyStore,\n} from '../../../common'\nimport { getLocale, LOCALES } from '../../../core'\n\nimport { RecurrenceDay } from './RecurrenceDay'\nimport { Legend } from './Legend'\n\nconst HEADER_HEIGHT = 58\n\nconst getDateFnsLocale = () => {\n const locale = getLocale()\n const localeMap: Record<string, Locale> = {\n [LOCALES.EN_US]: enUS,\n [LOCALES.EN_CA]: enCA,\n [LOCALES.FR]: fr,\n [LOCALES.FR_CA]: frCA,\n [LOCALES.ES]: es,\n }\n return localeMap[locale] || enUS\n}\n\nexport const RecurrenceCalendar = observer(() => {\n const theme = useTheme()\n const { onEvent } = useEvent()\n const { recurring: copy } = useGlobalCopyStore()\n const { selectedDay, setDateRange } = useRecurringTransactionsStore()\n const [calendarHeight, setCalendarHeight] = React.useState(\n getWeeksInMonth(new Date()) * TOUCH_TARGET + HEADER_HEIGHT,\n )\n\n const handleMonthChange = (date: Date) => {\n setCalendarHeight(getWeeksInMonth(date) * TOUCH_TARGET + HEADER_HEIGHT)\n setDateRange({\n start: startOfMonth(date),\n end: endOfMonth(date),\n })\n handleDateChange(date)\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_CALENDAR_RIGHT)\n }\n\n const handleDateChange = (date: Date | null) => {\n if (!date) return\n\n requestAnimationFrame(() => {\n const recurrenceList = document.getElementById('recurrence-list')\n recurrenceList?.setAttribute('tabindex', '-1')\n recurrenceList?.focus()\n })\n }\n\n const calendar = (\n <DateCalendar\n minDate={startOfMonth(new Date())}\n onChange={handleDateChange}\n onMonthChange={handleMonthChange}\n showDaysOutsideCurrentMonth={true}\n slots={{\n day: RecurrenceDay,\n }}\n sx={{\n '& .MuiPickersArrowSwitcher-button': {\n color: 'primary.main',\n '&:disabled': {\n color: 'action.disabled',\n },\n },\n '& .MuiButtonBase-root.MuiPickersDay-root': {\n borderRadius: '4px',\n '&:focus, &:hover': {\n borderRadius: '4px',\n },\n },\n '& .MuiPickersCalendarHeader-root': {\n mt: 0,\n pl: 16,\n pr: 8,\n },\n '& .MuiPickersCalendarHeader-label': {\n fontFamily: theme.typography.body1.fontFamily,\n fontSize: theme.typography.body1.fontSize,\n fontWeight: 600,\n },\n '& .MuiDayCalendar-slideTransition': {\n minHeight: calendarHeight,\n },\n '&.MuiDateCalendar-root': {\n minHeight: calendarHeight + TOUCH_TARGET,\n },\n '& .MuiButtonBase-root, .MuiDayCalendar-weekDayLabel': {\n height: TOUCH_TARGET,\n width: TOUCH_TARGET,\n margin: 0,\n },\n '& .MuiDayCalendar-weekDayLabel': {\n fontFamily: theme.typography.h3.fontFamily,\n fontSize: theme.typography.body2.fontSize,\n },\n '& .MuiPickersDay-dayOutsideMonth': {\n color: 'text.secondary',\n },\n textTransform: 'capitalize',\n }}\n value={selectedDay}\n views={['day']}\n />\n )\n\n return (\n <Stack aria-labelledby=\"calendar-label\" justifyContent=\"center\" role=\"group\">\n <LocalizationProvider adapterLocale={getDateFnsLocale()} dateAdapter={AdapterDateFns}>\n {/*NOTE: This seems odd, but because the DateCalendar cannot go from a controlled\n /* calendar to an un-controlled calendar, we have to create 2 different instances\n /* when there a selectedDay and when selectedDay is undefined */}\n {selectedDay && calendar}\n {!selectedDay && calendar}\n\n <Text id=\"calendar-label\" sx={{ alignSelf: 'center' }} variant=\"body2\">\n {copy.calendar_tooltip}\n </Text>\n <Legend />\n </LocalizationProvider>\n </Stack>\n )\n})\n","import React from 'react'\n\nimport ListItem from '@mui/material/ListItem'\nimport ListItemAvatar from '@mui/material/ListItemAvatar'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\n\nimport { CheckCircle, Cancel } from '@mxenabled/mx-icons'\nimport { InstitutionLogo, MerchantLogo, Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore, useRecurringTransactionsStore } from '../../common'\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\nimport {\n type Recurrence,\n type RecurringCopy,\n RecurrenceStatus,\n RecurrenceType,\n RepeatingTransaction,\n} from '../../core'\n\nimport { getFrequencyLabel } from '../../core/utils/RecurringTransactionsUtil'\n\nimport { IncomeBadge, MissedBadge, PaidBadge, UpcomingExpenseBadge } from './RecurrenceBadges'\nimport { formatCurrency } from '../../core/utils/NumberFormatting'\nimport { buildDynamicCopy } from '../../core/utils/Localization'\n\nconst getStatusIcon = (recurrence: Recurrence): React.ReactNode => {\n if (recurrence.type === RecurrenceType.Income) {\n return <IncomeBadge />\n }\n\n switch (recurrence.status) {\n case RecurrenceStatus.Missed:\n return <MissedBadge />\n case RecurrenceStatus.Paid:\n return <PaidBadge />\n default:\n return <UpcomingExpenseBadge />\n }\n}\n\nconst getStatus = (recurrence: Recurrence, copy: RecurringCopy): string => {\n switch (recurrence.status) {\n case RecurrenceStatus.Paid:\n return recurrence.expectedDate\n ? (buildDynamicCopy(\n copy.paid_on,\n formatDate(\n recurrence.occurredOnDate || recurrence.expectedDate,\n DATE_FORMATS_INTL.MONTH_DAY,\n ),\n ) as string)\n : copy.paid\n case RecurrenceStatus.Missed:\n return buildDynamicCopy(\n copy.missed_on,\n formatDate(recurrence.expectedDate, DATE_FORMATS_INTL.MONTH_DAY),\n ) as string\n case RecurrenceStatus.Upcoming:\n return buildDynamicCopy(\n copy.upcoming_on,\n formatDate(recurrence.expectedDate, DATE_FORMATS_INTL.MONTH_DAY),\n ) as string\n default:\n return copy.unknown\n }\n}\n\ninterface RecurrenceRowProps {\n recurrence: Recurrence\n isMini?: boolean\n onRecurrenceClick?: (recurrence: Recurrence) => void\n showOrdinal?: boolean\n}\n\nexport const RecurrenceRow = ({\n recurrence,\n isMini = false,\n onRecurrenceClick = () => {},\n showOrdinal = false,\n}: RecurrenceRowProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { detailedRepeatingTransactions } = useRecurringTransactionsStore()\n\n const repeatingTransaction = React.useMemo(\n () =>\n detailedRepeatingTransactions.find((rt) => rt.guid === recurrence.repeatingTransactionGuid),\n [recurrence, detailedRepeatingTransactions],\n )\n\n const isCredit = recurrence.type === RecurrenceType.Income\n const isPaid = recurrence.status === RecurrenceStatus.Paid\n const isMissed = recurrence.status === RecurrenceStatus.Missed\n const isUpcoming = recurrence.status === RecurrenceStatus.Upcoming\n\n let statusLabel = copy.paid?.toLowerCase()\n if (isMissed) {\n statusLabel = copy.missed?.toLowerCase()\n } else if (isUpcoming) {\n statusLabel = showOrdinal\n ? getFrequencyLabel(copy, repeatingTransaction || ({} as RepeatingTransaction), true)\n : getFrequencyLabel(copy, repeatingTransaction || ({} as RepeatingTransaction), false)\n }\n\n const onItemClick = () => {\n onRecurrenceClick(recurrence)\n }\n\n return (\n //TODO: implement common/components/ListItemRow.tsx\n <ListItem disableGutters={true} disablePadding={true}>\n <ListItemButton onClick={onItemClick}>\n <ListItemAvatar>\n <MerchantLogo\n categoryGuid={recurrence.categoryGuid}\n merchantGuid={recurrence.merchantGuid}\n />\n </ListItemAvatar>\n <ListItemText>\n <Stack\n direction=\"row\"\n gap={4}\n sx={{ justifyContent: 'space-between', textOverflow: 'ellipsis', textWrap: 'nowrap' }}\n >\n <Stack direction=\"column\" width=\"50%\">\n <Text bold={true} variant=\"body1\">\n {recurrence.name}\n </Text>\n <Stack alignItems=\"center\" direction=\"row\" gap={6}>\n {isMini ? (\n <Stack direction=\"row\" gap={4}>\n {getStatusIcon(recurrence)}\n <Text variant=\"caption\">{getStatus(recurrence, copy)}</Text>\n </Stack>\n ) : (\n <>\n {recurrence.institutionGuid && (\n <InstitutionLogo\n alt=\"\"\n institutionGuid={recurrence.institutionGuid}\n size={12}\n />\n )}\n <Text sx={{ maxWidth: 250 }} variant=\"caption\">\n {recurrence.institutionName}\n </Text>\n </>\n )}\n </Stack>\n </Stack>\n\n <Stack alignItems=\"flex-end\" width=\"100%\">\n <Text bold={true} color={isCredit ? 'success.main' : 'text.primary'} variant=\"body1\">\n {isCredit ? '+' : ''}\n {formatCurrency(recurrence.amount, '0,0.00')}\n </Text>\n {!isMini && (\n <Stack\n direction=\"row\"\n sx={{\n alignItems: 'center',\n gap: 6,\n justifyContent: 'flex-end',\n textTransform: 'uppercase',\n width: '100%',\n }}\n >\n {isPaid && <CheckCircle color=\"success\" filled={true} size={12} />}\n {isMissed && <Cancel color=\"error\" filled={true} size={12} />}\n <Text bold={true} color=\"text.secondary\" variant=\"caption\">\n {statusLabel}\n </Text>\n </Stack>\n )}\n </Stack>\n </Stack>\n </ListItemText>\n </ListItemButton>\n </ListItem>\n )\n}\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Button from '@mui/material/Button'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport ListSubheader from '@mui/material/ListSubheader'\nimport Stack from '@mui/material/Stack'\nimport { type SxProps } from '@mui/material/styles'\n\nimport { H3, Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../common'\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\nimport { type Recurrence } from '../../core'\n\nimport { groupRecurrencesByDate } from '../../core/utils/RecurringTransactionsUtil'\n\nimport { RecurrenceRow } from './RecurrenceRow'\n\ninterface RecurrenceListProps {\n recurrences: Recurrence[]\n isMini?: boolean\n onResetClick?: () => void\n onRecurrenceClick?: (recurrence: Recurrence) => void\n sx?: SxProps\n title?: string\n}\n\nexport const RecurrenceList = observer(\n ({\n recurrences,\n isMini = false,\n onResetClick,\n onRecurrenceClick,\n sx = {},\n title,\n }: RecurrenceListProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n\n const groupedRecurrences = React.useMemo(() => {\n return groupRecurrencesByDate(recurrences)\n }, [recurrences])\n\n return (\n <Stack id=\"recurrence-list\" sx={{ gap: 8, mt: 4, ...sx }} tabIndex={-1}>\n {title && (\n <Stack\n sx={{\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'space-between',\n px: 24,\n }}\n >\n <H3 bold={true} variant=\"body1\">\n {title}\n </H3>\n {onResetClick && (\n <Button onClick={onResetClick} size=\"small\" variant=\"text\">\n {copy.reset}\n </Button>\n )}\n </Stack>\n )}\n\n {recurrences.length === 0 ? (\n <Text fontStyle=\"italic\" sx={{ py: 24, textAlign: 'center' }}>\n {copy.no_activities}\n </Text>\n ) : (\n <List aria-label={title}>\n {isMini\n ? recurrences.map((recurrence, index) => (\n <React.Fragment key={`recurrence-${index}`}>\n <RecurrenceRow\n isMini={isMini}\n onRecurrenceClick={onRecurrenceClick}\n recurrence={recurrence}\n />\n <Divider sx={{ mx: 24 }} />\n </React.Fragment>\n ))\n : groupedRecurrences.map((group, index) => (\n <React.Fragment key={`recurrence-${index}`}>\n <ListItem key={group.id}>\n <List\n aria-labelledby={`date-group-header-${group.id}`}\n subheader={\n <ListSubheader\n aria-hidden=\"true\"\n id={`date-group-header-${group.id}`}\n role=\"presentation\"\n sx={{ bgcolor: 'background.paper', ml: 8, pb: 4, pt: 12 }}\n >\n <Text bold={true} variant=\"caption\">\n {formatDate(group.date, DATE_FORMATS_INTL.DAY_OF_WEEK_MONTH_DAY)}\n </Text>\n </ListSubheader>\n }\n sx={{ width: '100%' }}\n >\n {group.recurrences.map((recurrence, index) => (\n <React.Fragment key={`day-recurrence-${index}`}>\n <RecurrenceRow\n isMini={isMini}\n onRecurrenceClick={onRecurrenceClick}\n recurrence={recurrence}\n />\n </React.Fragment>\n ))}\n </List>\n </ListItem>\n <Divider sx={{ mx: 24 }} />\n </React.Fragment>\n ))}\n </List>\n )}\n </Stack>\n )\n },\n)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { StatusBar, useGlobalCopyStore, useScreenSize } from '../../common'\nimport { formatCurrency } from '../../core/utils/NumberFormatting'\ninterface RecurringStatusProps {\n expected: number\n isExpense?: boolean\n missed?: number\n paid: number\n title: string\n total: number\n upcoming: number\n}\n\nexport const RecurringStatus = observer(\n ({ expected, isExpense = true, missed, paid, title, total, upcoming }: RecurringStatusProps) => {\n const theme = useTheme()\n const { isSmallMobile } = useScreenSize()\n const { recurring: recurringCopy } = useGlobalCopyStore()\n\n const data = React.useMemo(() => {\n const recurrence = [{ color: theme.palette.success.main, percentage: `${paid / expected}` }]\n if (missed) {\n recurrence.push({ color: theme.palette.error.main, percentage: `${missed / expected}` })\n }\n return recurrence\n }, [paid, expected, missed])\n\n return (\n <Stack>\n <Stack sx={{ flexDirection: 'row', justifyContent: 'space-between', pb: 12 }}>\n <Text bold={true} variant=\"body1\">\n {`${title} (${total})`}\n </Text>\n <Text bold={true} color={isExpense ? 'text.primary' : 'success.main'} variant=\"body1\">\n {`${isExpense ? '-' : '+'}${formatCurrency(expected, '0,0.00')}`}\n </Text>\n </Stack>\n\n <StatusBar data={data} height={12} />\n\n <Stack sx={{ alignItems: 'center', flexDirection: 'row', gap: 2, my: 8 }}>\n <Box sx={{ bgcolor: 'success.main', height: 8, mr: 8, width: 8 }} />\n {!isSmallMobile && (\n <Text bold={true} variant=\"body2\">\n {formatCurrency(paid, '0,0.00')}\n </Text>\n )}\n <Text variant=\"caption\">{recurringCopy.paid?.toLowerCase()}</Text>\n\n {missed !== undefined && (\n <>\n <Box sx={{ bgcolor: 'error.main', height: 8, ml: 16, mr: 8, width: 8 }} />\n {!isSmallMobile && (\n <Text bold={true} variant=\"body2\">\n {formatCurrency(missed, '0,0.00')}\n </Text>\n )}\n <Text variant=\"caption\">{recurringCopy.missed?.toLowerCase()}</Text>\n </>\n )}\n\n <Box sx={{ bgcolor: 'divider', height: 8, ml: 16, mr: 8, width: 8 }} />\n {!isSmallMobile && (\n <Text bold={true} variant=\"body2\">\n {formatCurrency(upcoming, '0,0.00')}\n </Text>\n )}\n <Text variant=\"caption\">{recurringCopy.upcoming?.toLowerCase()}</Text>\n </Stack>\n </Stack>\n )\n },\n)\n","import { observer } from 'mobx-react-lite'\n\nimport { Drawer, useGlobalCopyStore, useRecurringTransactionsStore } from '../../common'\nimport { RepeatingType } from '../../core'\n\nimport { RecurringTransactionDetails } from './RecurringTransactionDetails'\n\nexport const RecurringTransactionDetailsDrawer = observer(() => {\n const { recurring: copy } = useGlobalCopyStore()\n const {\n selectedRecurrence,\n selectedRepeatingTransaction,\n setSelectedRecurrence,\n setSelectedRepeatingTransactionGuid,\n } = useRecurringTransactionsStore()\n\n const handleClose = () => {\n setSelectedRepeatingTransactionGuid(null)\n setSelectedRecurrence(null)\n }\n\n return (\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={!!selectedRepeatingTransaction}\n onClose={handleClose}\n title={\n selectedRepeatingTransaction?.repeating_transaction_type === RepeatingType.Income\n ? copy.income_details\n : copy.expense_details\n }\n >\n {selectedRepeatingTransaction && (\n <RecurringTransactionDetails\n onDeleted={handleClose}\n recurringTransaction={selectedRepeatingTransaction}\n selectedRecurrence={selectedRecurrence}\n />\n )}\n </Drawer>\n )\n})\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { addMonths } from 'date-fns/addMonths'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { subMonths } from 'date-fns/subMonths'\nimport { isBefore } from 'date-fns/isBefore'\n\nimport Grid from '@mui/material/Grid'\nimport IconButton from '@mui/material/IconButton'\nimport Stack from '@mui/material/Stack'\nimport Tab from '@mui/material/Tab'\nimport Tabs from '@mui/material/Tabs'\n\nimport { ChevronLeft, ChevronRight } from '@mxenabled/mx-icons'\n\nimport { H2, Text } from '@mxenabled/mxui'\n\nimport {\n ANALYTICS_EVENTS,\n useEvent,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n useScreenSize,\n useWidgetContainerProvider,\n} from '../../common'\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\nimport { type Recurrence } from '../../core'\n\nimport { RecurrenceCalendar } from './recurrencecalendar/RecurrenceCalendar'\nimport { RecurrenceList } from './RecurrenceList'\nimport { RecurringStatus } from './RecurringStatus'\nimport { RecurringTransactionDetailsDrawer } from './RecurringTransactionDetailsDrawer'\nimport { buildDynamicCopy } from '../../core/utils/Localization'\n\nexport const RecurringTransactions = observer(() => {\n const { recurring: copy } = useGlobalCopyStore()\n const { availableWidth } = useWidgetContainerProvider()\n const { isDesktop, isSmallMobile, isMobile } = useScreenSize(availableWidth)\n\n const { onEvent } = useEvent()\n const {\n currentMonthExpenses,\n currentMonthIncome,\n dateRange,\n expenseTotal,\n incomeTotal,\n missedExpenseTotal,\n pastRecurrences,\n paidExpenseTotal,\n paidIncomeTotal,\n selectedDay,\n selectedDayRecurrences,\n setDateRange,\n setSelectedRecurrence,\n setSelectedRepeatingTransactionGuid,\n upcomingExpenseTotal,\n upcomingIncomeTotal,\n upcomingRecurrences,\n } = useRecurringTransactionsStore()\n\n const [selectedTab, setSelectedTab] = React.useState(0)\n\n const isPreviousMonthDisabled = isBefore(dateRange.start, new Date())\n\n const handleTabChange = (_event: React.SyntheticEvent, newValue: number) => {\n setSelectedTab(newValue)\n }\n\n const onUpcomingRecurrenceClick = (recurrence: Recurrence) => {\n setSelectedRepeatingTransactionGuid(recurrence.repeatingTransactionGuid)\n setSelectedRecurrence(recurrence)\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_UPCOMING, {\n transaction_guid: recurrence.transaction?.guid,\n })\n }\n\n const onPaidRecurrenceClick = (recurrence: Recurrence) => {\n setSelectedRepeatingTransactionGuid(recurrence.repeatingTransactionGuid)\n setSelectedRecurrence(recurrence)\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_PAID, {\n transaction_guid: recurrence.transaction?.guid,\n })\n }\n\n const onNextMonthClick = () => {\n const nextMonth = addMonths(dateRange.start, 1)\n setDateRange({\n start: startOfMonth(nextMonth),\n end: endOfMonth(nextMonth),\n })\n }\n\n const onPreviousMonthClick = () => {\n const lastMonth = subMonths(dateRange.start, 1)\n setDateRange({\n start: startOfMonth(lastMonth),\n end: endOfMonth(lastMonth),\n })\n }\n\n return (\n <Grid\n container={true}\n sx={{\n pt: 16,\n }}\n >\n <Grid size={{ sm: 12, md: 'grow' }} width={'100%'}>\n <Stack sx={{ gap: 16, px: isDesktop ? 48 : 24 }}>\n <Stack alignItems=\"center\" direction=\"row\" justifyContent=\"space-between\">\n <H2 variant=\"h3\">\n {\n buildDynamicCopy(\n copy.header_title,\n formatDate(dateRange.start, DATE_FORMATS_INTL.MONTH_LONG),\n ) as string\n }\n </H2>\n {!isDesktop && (\n <Stack direction=\"row\" gap={4}>\n <IconButton\n color=\"primary\"\n disabled={isPreviousMonthDisabled}\n onClick={onPreviousMonthClick}\n >\n <ChevronLeft />\n </IconButton>\n <IconButton color=\"primary\" onClick={onNextMonthClick}>\n <ChevronRight />\n </IconButton>\n </Stack>\n )}\n </Stack>\n\n <RecurringStatus\n expected={expenseTotal}\n missed={missedExpenseTotal}\n paid={paidExpenseTotal}\n title={copy.expenses}\n total={currentMonthExpenses.length}\n upcoming={upcomingExpenseTotal}\n />\n\n <RecurringStatus\n expected={incomeTotal}\n isExpense={false}\n paid={paidIncomeTotal}\n title={copy.deposits}\n total={currentMonthIncome.length}\n upcoming={upcomingIncomeTotal}\n />\n\n {isDesktop && (\n <RecurrenceList\n onRecurrenceClick={onUpcomingRecurrenceClick}\n recurrences={upcomingRecurrences}\n title={copy.upcoming_activity}\n />\n )}\n </Stack>\n {!isDesktop && (\n <Stack sx={{ px: isMobile ? 0 : 24 }}>\n <Tabs onChange={handleTabChange} value={selectedTab} variant=\"fullWidth\">\n <Tab\n label={\n <Text bold={true} sx={{ textTransform: 'none' }} variant=\"body1\">\n {isSmallMobile ? copy.upcoming : copy.upcoming_activity}\n </Text>\n }\n />\n <Tab\n label={\n <Text bold={true} sx={{ textTransform: 'none' }} variant=\"body1\">\n {isSmallMobile ? copy.past : copy.past_transactions}\n </Text>\n }\n />\n </Tabs>\n {selectedTab === 0 && (\n <RecurrenceList\n onRecurrenceClick={onUpcomingRecurrenceClick}\n recurrences={upcomingRecurrences}\n />\n )}\n {selectedTab === 1 && (\n <RecurrenceList\n onRecurrenceClick={onPaidRecurrenceClick}\n recurrences={pastRecurrences}\n />\n )}\n </Stack>\n )}\n </Grid>\n\n {isDesktop && (\n <Grid size={{ xs: 'auto' }} sx={{ minWidth: 450 }}>\n <Stack gap={24}>\n <RecurrenceCalendar />\n <RecurrenceList\n onRecurrenceClick={onPaidRecurrenceClick}\n recurrences={selectedDayRecurrences || pastRecurrences}\n title={\n selectedDay\n ? (buildDynamicCopy(\n copy.day_transactions,\n formatDate(selectedDay, DATE_FORMATS_INTL.MONTH_DAY),\n ) as string)\n : copy.past_transactions\n }\n />\n </Stack>\n </Grid>\n )}\n\n <RecurringTransactionDetailsDrawer />\n </Grid>\n )\n})\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { endOfToday } from 'date-fns/endOfToday'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { subDays } from 'date-fns/subDays'\n\nimport Alert from '@mui/material/Alert'\nimport Snackbar from '@mui/material/Snackbar'\n\nimport {\n ANALYTICS_EVENTS,\n Drawer,\n Loader,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useRecurringTransactionsStore,\n useTransactionStore,\n useWidgetLoadTimer,\n WidgetContainer,\n} from '../common'\nimport { type WidgetProps } from '../core'\n\nimport { RecurringSettings } from './components/shared/RecurringSettings'\nimport { RecurringTransactions } from './components/RecurringTransactions'\nimport { SkeletonLoader } from '../common/components/SkeletonLoader'\n\nexport const RecurringTransactionsWidget = observer(\n ({ onBackClick, onMenuClick, sx = {} }: WidgetProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { isInitialized, selectedAccountGuids } = useGlobalUiStore()\n const { alert, isDataLoaded, loadRepeatingTransactionData, setAlert, setDateRange } =\n useRecurringTransactionsStore()\n const { setFilter } = useTransactionStore()\n const { onEvent } = useEvent()\n const [isSettingsOpen, setIsSettingsOpen] = React.useState(false)\n\n useWidgetLoadTimer({\n widgetName: 'RecurringTransactionsWidget',\n isLoaded: isDataLoaded,\n })\n\n React.useEffect(() => {\n if (!isDataLoaded) {\n // Load the repeating transactions and related data\n loadRepeatingTransactionData().finally()\n }\n }, [])\n\n React.useEffect(() => {\n // Sets the Transaction filter\n setFilter({\n dateRange: { start: subDays(startOfToday(), 90), end: endOfToday() },\n accounts: selectedAccountGuids,\n })\n // Set the Date Range for Recurring Transactions\n setDateRange({ start: startOfMonth(new Date()), end: endOfMonth(new Date()) })\n }, [selectedAccountGuids])\n\n if (!isInitialized) return <Loader />\n\n return (\n <WidgetContainer\n actions={[\n {\n label: copy.action_title,\n iconName: 'credit_card_gear',\n onClick: () => {\n setIsSettingsOpen(true)\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_SETTINGS)\n },\n },\n ]}\n hasDivider={true}\n onAccountsFilterClick={() => onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_FILTER)}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n sx={sx}\n title={copy.title}\n >\n {!isDataLoaded ? (\n <SkeletonLoader sx={{ m: 48 }} variant=\"list\" />\n ) : (\n <RecurringTransactions />\n )}\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={isSettingsOpen}\n onClose={() => setIsSettingsOpen(false)}\n shouldShowHeaderBorders={false}\n title={copy.action_title}\n >\n <RecurringSettings />\n </Drawer>\n <Snackbar\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n autoHideDuration={3500}\n onClose={(_event, reason) => {\n if (reason === 'clickaway') return\n setAlert('', alert.severity)\n }}\n open={Boolean(alert.message)}\n >\n <Alert\n onClose={() => setAlert('', alert.severity)}\n severity={alert.severity}\n variant=\"filled\"\n >\n {alert.message}\n </Alert>\n </Snackbar>\n </WidgetContainer>\n )\n },\n)\n","import { observer } from 'mobx-react-lite'\n\nimport Divider from '@mui/material/Divider'\nimport Stack from '@mui/material/Stack'\n\nimport {\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n useWidgetContainerProvider,\n} from '../../common'\nimport { type Recurrence } from '../../core'\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\n\nimport { RecurrenceCalendar } from './recurrencecalendar/RecurrenceCalendar'\nimport { RecurrenceList } from './RecurrenceList'\nimport { buildDynamicCopy } from '../../core/utils/Localization'\n\nexport const MiniWidgetContent = observer(() => {\n const { recurring: copy } = useGlobalCopyStore()\n const { availableWidth } = useWidgetContainerProvider()\n const {\n selectedDay,\n selectedDayRecurrences,\n setSelectedDay,\n setSelectedRecurrence,\n setSelectedRepeatingTransactionGuid,\n upcomingRecurrences,\n } = useRecurringTransactionsStore()\n\n const onRecurrenceClick = (recurrence: Recurrence) => {\n setSelectedRepeatingTransactionGuid(recurrence.repeatingTransactionGuid)\n setSelectedRecurrence(recurrence)\n }\n\n const isSmall = availableWidth < 750\n\n return (\n <Stack flexDirection={isSmall ? 'column' : 'row'} width=\"100%\">\n <RecurrenceCalendar />\n\n {!isSmall && <Divider flexItem={true} orientation=\"vertical\" sx={{ my: 16, ml: 16 }} />}\n\n <RecurrenceList\n isMini={true}\n onRecurrenceClick={onRecurrenceClick}\n onResetClick={selectedDay ? () => setSelectedDay(selectedDay) : undefined}\n recurrences={selectedDayRecurrences || upcomingRecurrences.slice(0, 5)}\n sx={{ width: isSmall ? '100%' : 'calc(100% - 336px)', mt: 12 }}\n title={\n selectedDay\n ? (buildDynamicCopy(\n copy.day_transactions,\n formatDate(selectedDay, DATE_FORMATS_INTL.MONTH_DAY),\n ) as string)\n : copy.upcoming_activity\n }\n />\n </Stack>\n )\n})\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { endOfToday } from 'date-fns/endOfToday'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { subDays } from 'date-fns/subDays'\n\nimport {\n Loader,\n MiniWidgetContainer,\n useGlobalCopyStore,\n useGlobalUiStore,\n useRecurringTransactionsStore,\n useTransactionStore,\n useWidgetLoadTimer,\n} from '../common'\nimport { type MiniWidgetProps } from '../core'\n\nimport { MiniWidgetContent } from './components/MiniWidgetContent'\nimport { RecurringTransactionDetailsDrawer } from './components/RecurringTransactionDetailsDrawer'\nimport { SkeletonLoader } from '../common/components/SkeletonLoader'\n\nexport const RecurringTransactionsMiniWidget = observer(\n ({ onPrimaryCtaClick, sx }: MiniWidgetProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { setFilter } = useTransactionStore()\n const { isDataLoaded, loadRepeatingTransactionData } = useRecurringTransactionsStore()\n const { isInitialized, selectedAccountGuids } = useGlobalUiStore()\n\n useWidgetLoadTimer({\n widgetName: 'RecurringTransactionsMiniWidget',\n isLoaded: isDataLoaded,\n })\n\n React.useEffect(() => {\n if (!isDataLoaded) {\n loadRepeatingTransactionData().finally()\n }\n }, [])\n\n React.useEffect(() => {\n if (selectedAccountGuids.length > 0) {\n setFilter({\n dateRange: { start: subDays(startOfToday(), 90), end: endOfToday() },\n accounts: selectedAccountGuids,\n })\n }\n }, [selectedAccountGuids])\n\n if (!isInitialized) return <Loader />\n\n return (\n <MiniWidgetContainer\n className=\"mx-exp-recurring-transactions-miniwidget\"\n onPrimaryCtaClick={onPrimaryCtaClick}\n primaryCtaLabel={copy.primary_cta}\n primaryCtaLabelAria={copy.primary_cta_aria}\n subTitle={copy.sub_title}\n sx={sx}\n title={copy.mini_title}\n >\n {isDataLoaded ? <MiniWidgetContent /> : <SkeletonLoader sx={{ mx: 16 }} variant=\"list\" />}\n\n <RecurringTransactionDetailsDrawer />\n </MiniWidgetContainer>\n )\n },\n)\n","import Stack from '@mui/material/Stack'\n\nimport { CurrencyExchange } 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 { recurring: recurringCopy } = useGlobalCopyStore()\n\n return (\n <Stack sx={{ alignItems: 'start', flexDirection: 'row', gap: 12 }}>\n <CurrencyExchange size={32} />\n <Stack>\n <P fontWeight={600} variant=\"body1\">\n {recurringCopy.zero_state_content_header}\n </P>\n <P color=\"text.secondary\" variant=\"subtitle2\">\n {recurringCopy.zero_state_content_description}\n </P>\n </Stack>\n </Stack>\n )\n})\n","import Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport { Text } from '@mxenabled/mxui'\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\ntype RecurringSettingsProps = {\n amount: number\n bgcolor: string\n isLargeScreen: boolean\n isSmallScreen: boolean\n label: string\n}\n\nexport const RecurrenceLegend = ({\n amount,\n bgcolor,\n isLargeScreen,\n isSmallScreen,\n label,\n}: RecurringSettingsProps) => (\n <Stack sx={{ alignItems: 'center', flexDirection: 'row', gap: 8 }}>\n <Box\n sx={{\n borderRadius: '2px',\n bgcolor,\n height: 8,\n width: 8,\n }}\n />\n\n <Stack sx={{ alignItems: 'center', flexDirection: 'row', gap: 2 }}>\n {!isSmallScreen && (\n <Text bold={true} variant=\"caption\">\n {formatCurrency(amount, amount === 0 || !isLargeScreen ? '0,0' : '0,0.00')}\n </Text>\n )}\n <Text variant=\"caption\">{label}</Text>\n </Stack>\n </Stack>\n)\n","import React from 'react'\nimport Box from '@mui/material/Box'\nimport { MerchantLogo } from '@mxenabled/mxui'\nimport { Recurrence } from '../../../core'\n\ninterface OverlappingMerchantLogosProps {\n upcomingRecurrences: Recurrence[]\n logoSize?: number\n maxLogos?: number\n}\n\nexport const OverlappingMerchantLogos: React.FC<OverlappingMerchantLogosProps> = ({\n upcomingRecurrences,\n logoSize = 32,\n maxLogos = 3,\n}) => {\n const ICON_OVERLAP_X = (i: number) => i * (logoSize / 2)\n\n return (\n <Box\n sx={{\n position: 'relative',\n width: 64,\n }}\n >\n {upcomingRecurrences.map((recurrence, index) => {\n if (index < maxLogos) {\n return (\n <Box\n key={`${recurrence.categoryGuid}-${recurrence.merchantGuid}-${index}`}\n sx={{\n borderRadius: '4px',\n left: ICON_OVERLAP_X(index),\n outlineColor: 'common.white',\n outlineStyle: 'solid',\n outlineWidth: 2,\n position: 'absolute',\n }}\n >\n <MerchantLogo\n categoryGuid={recurrence.categoryGuid || ''}\n merchantGuid={recurrence.merchantGuid || ''}\n size={logoSize}\n />\n </Box>\n )\n }\n return null\n })}\n </Box>\n )\n}\n","import React from 'react'\nimport Stack from '@mui/material/Stack'\nimport { MerchantLogo } from '@mxenabled/mxui'\nimport { Recurrence } from '../../../core'\n\ninterface MerchantLogosRowProps {\n upcomingRecurrences: Recurrence[]\n maxLogos?: number\n}\n\nexport const MerchantLogosRow: React.FC<MerchantLogosRowProps> = ({\n upcomingRecurrences,\n maxLogos = 3,\n}) => {\n return (\n <Stack sx={{ flexDirection: 'row', gap: 4 }}>\n {upcomingRecurrences\n ?.slice(0, maxLogos)\n .map((recurrence, index) => (\n <MerchantLogo\n categoryGuid={recurrence.categoryGuid || ''}\n key={`${recurrence.categoryGuid}-${recurrence.merchantGuid}-${index}`}\n merchantGuid={recurrence.merchantGuid || ''}\n />\n ))}\n </Stack>\n )\n}\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { P, Text } from '@mxenabled/mxui'\n\nimport { StatusBar, useGlobalCopyStore, useRecurringTransactionsStore } from '../../common'\nimport { useDimensions } from '../../common/hooks/useDimensions'\n\nimport { RecurrenceLegend } from './micro/RecurrenceLegend'\nimport { OverlappingMerchantLogos } from './micro/OverlappingMerchantLogos'\nimport { MerchantLogosRow } from './micro/MerchantLogosRow'\nimport { formatCurrency } from '../../core/utils/NumberFormatting'\n\nexport const MicroWidgetContent = observer(() => {\n const theme = useTheme()\n const [containerRef, { width }] = useDimensions()\n const {\n upcomingRecurrences,\n expenseTotal,\n missedExpenseTotal,\n paidExpenseTotal,\n upcomingExpenseTotal,\n } = useRecurringTransactionsStore()\n const { recurring: copy } = useGlobalCopyStore()\n\n const isSmallScreen = width <= 288\n const isLargeScreen = width >= 450\n const logoSize = 32\n const hasLogos = upcomingRecurrences.length > 0\n\n const expectedExpenseTotalFormatted = React.useMemo(() => {\n return formatCurrency(expenseTotal, expenseTotal === 0 ? '0,0' : '0,0.00')\n }, [expenseTotal])\n\n const data = React.useMemo(() => {\n const recurrence = [\n { color: theme.palette.success.main, percentage: `${paidExpenseTotal / expenseTotal}` },\n ]\n if (missedExpenseTotal) {\n recurrence.push({\n color: theme.palette.error.main,\n percentage: `${missedExpenseTotal / expenseTotal}`,\n })\n }\n return recurrence\n }, [\n paidExpenseTotal,\n expenseTotal,\n missedExpenseTotal,\n theme.palette.success.main,\n theme.palette.error.main,\n ])\n\n const renderLogosSection = () => {\n if (!hasLogos) {\n return <Stack sx={{ width: isSmallScreen ? 64 : 104 }} />\n }\n\n return isSmallScreen ? (\n <OverlappingMerchantLogos\n logoSize={logoSize}\n maxLogos={3}\n upcomingRecurrences={upcomingRecurrences.slice(0, 3)}\n />\n ) : (\n <MerchantLogosRow maxLogos={3} upcomingRecurrences={upcomingRecurrences.slice(0, 3)} />\n )\n }\n\n const recurrenceLegend = [\n {\n amount: paidExpenseTotal,\n bgColor: 'success.main',\n label: copy.paid,\n },\n {\n amount: missedExpenseTotal,\n bgColor: 'error.main',\n label: copy.missed,\n },\n {\n amount: upcomingExpenseTotal,\n bgColor: 'neutral.light',\n label: copy.upcoming,\n },\n ]\n\n return (\n <>\n <Stack ref={containerRef} sx={{ flexDirection: 'row', justifyContent: 'space-between' }}>\n <Stack\n sx={[\n expectedExpenseTotalFormatted.length >= 10 && isSmallScreen\n ? { flexDirection: 'column' }\n : { flexDirection: 'row', gap: 2 },\n {\n alignItems: 'baseline',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n ]}\n >\n <Text\n sx={{ width: '100%' }}\n variant={expectedExpenseTotalFormatted.length >= 10 && isSmallScreen ? 'h3' : 'h2'}\n >\n {expectedExpenseTotalFormatted}\n </Text>\n\n <P sx={{ pr: 12 }} variant=\"caption\">\n {copy.expected}\n </P>\n </Stack>\n {renderLogosSection()}\n </Stack>\n\n <Stack sx={{ pt: 12 }}>\n <StatusBar data={data} />\n\n <Stack\n sx={{\n alignItems: 'center',\n flexDirection: 'row',\n gap: 16,\n mt: 4,\n }}\n >\n {recurrenceLegend.map((legend, index) => (\n <RecurrenceLegend\n amount={legend.amount}\n bgcolor={legend.bgColor}\n isLargeScreen={isLargeScreen}\n isSmallScreen={isSmallScreen}\n key={`recurrence-legend-${index}`}\n label={legend.label}\n />\n ))}\n </Stack>\n </Stack>\n </>\n )\n})\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { endOfToday } from 'date-fns/endOfToday'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { subDays } from 'date-fns/subDays'\n\nimport {\n ANALYTICS_EVENTS,\n Loader,\n MicroWidgetContainer,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useRecurringTransactionsStore,\n useTransactionStore,\n useWidgetLoadTimer,\n} from '../common'\n\nimport { ZeroStateMicroWidget } from './ZeroStateMicroWidget'\nimport { MicroWidgetContent } from './components/MicroWidgetContent'\n\ninterface RecurringTransactionsMicroWidgetProps {\n onCTAClick: () => void\n}\n\nexport const RecurringTransactionsMicroWidget = observer(\n ({ onCTAClick }: RecurringTransactionsMicroWidgetProps) => {\n const { onEvent } = useEvent()\n\n const { isInitialized, selectedAccountGuids } = useGlobalUiStore()\n const {\n loadRepeatingTransactionData,\n upcomingRecurrences,\n repeatingTransactions,\n setDateRange,\n isDataLoaded,\n } = useRecurringTransactionsStore()\n const { setFilter } = useTransactionStore()\n const { recurring: copy, budgets: budgetsCopy } = useGlobalCopyStore()\n\n useWidgetLoadTimer({\n widgetName: 'RecurringTransactionsMicroWidget',\n isLoaded: isDataLoaded,\n })\n\n React.useEffect(() => {\n if (!isDataLoaded) {\n // Load the repeating transactions and related data\n loadRepeatingTransactionData().finally(() => {\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_LOAD_WIDGET, {\n state: upcomingRecurrences.length > 0 ? 'default' : 'zeroState',\n })\n })\n }\n }, [])\n\n React.useEffect(() => {\n if (isInitialized) {\n setFilter({\n dateRange: { start: subDays(startOfToday(), 90), end: endOfToday() },\n accounts: selectedAccountGuids,\n })\n setDateRange({ start: startOfMonth(new Date()), end: endOfMonth(new Date()) })\n }\n }, [isInitialized, selectedAccountGuids])\n\n const handleCTAClick = () => {\n onEvent(\n upcomingRecurrences.length > 0\n ? ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_GET_STARTED\n : ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_VIEW_ALL,\n )\n onCTAClick()\n }\n\n if (!isInitialized || !isDataLoaded) return <Loader height={100} />\n\n const showZeroState = !repeatingTransactions?.length\n\n return (\n <MicroWidgetContainer\n className=\"mx-recurring-transaction-microwidget\"\n ctaLabel={showZeroState ? budgetsCopy.get_started_cta : copy.primary_cta}\n onCTAClick={handleCTAClick}\n title={copy.recurring_expenses}\n >\n {!showZeroState ? <MicroWidgetContent /> : <ZeroStateMicroWidget />}\n </MicroWidgetContainer>\n )\n },\n)\n","import { observer } from 'mobx-react-lite'\n\nimport { Drawer, useGlobalCopyStore } from '../../common'\n\nimport { RecurringSettings } from './shared/RecurringSettings'\n\ninterface RecurringSettingsDrawerProps {\n isOpen: boolean\n onClose: () => void\n selectedTab?: number\n}\n\nexport const RecurringSettingsDrawer = observer(\n ({ isOpen, onClose, selectedTab }: RecurringSettingsDrawerProps) => {\n const { cashflow: copy } = useGlobalCopyStore()\n\n return (\n <Drawer\n ariaLabelClose={copy.close_settings_aria}\n isOpen={isOpen}\n onClose={onClose}\n title={copy.cashflow_settings}\n >\n <RecurringSettings defaultSelectedTab={selectedTab} />\n </Drawer>\n )\n },\n)\n"],"names":["iconStyle","offsetStyle","isOffset","UpcomingExpenseBadge","size","jsx","IconBacking","Schedule","IncomeBadge","MonetizationOn","MissedBadge","Cancel","PaidBadge","CheckCircle","RecurrenceDay","observer","day","outsideCurrentMonth","other","copy","useGlobalCopyStore","selectedAccountGuids","useGlobalUiStore","recurrences","setSelectedDay","useRecurringTransactionsStore","dayRecurrences","React","recurrence","a","isSameDay","hasUpcoming","RecurrenceType","RecurrenceStatus","hasMissed","hasPaid","hasIncome","totalBadges","statusParts","ariaLabel","formatDate","DATE_FORMATS_INTL","Badge","jsxs","Fragment","PickersDay","Symbol","Icon","label","Stack","Text","Legend","HEADER_HEIGHT","getDateFnsLocale","locale","getLocale","LOCALES","enUS","enCA","fr","frCA","es","RecurrenceCalendar","theme","useTheme","onEvent","useEvent","selectedDay","setDateRange","calendarHeight","setCalendarHeight","getWeeksInMonth","TOUCH_TARGET","handleMonthChange","date","startOfMonth","endOfMonth","handleDateChange","ANALYTICS_EVENTS","recurrenceList","calendar","DateCalendar","LocalizationProvider","AdapterDateFns","getStatusIcon","getStatus","buildDynamicCopy","RecurrenceRow","isMini","onRecurrenceClick","showOrdinal","detailedRepeatingTransactions","repeatingTransaction","rt","isCredit","isPaid","isMissed","isUpcoming","statusLabel","getFrequencyLabel","ListItem","ListItemButton","ListItemAvatar","MerchantLogo","ListItemText","InstitutionLogo","formatCurrency","RecurrenceList","onResetClick","sx","title","groupedRecurrences","groupRecurrencesByDate","H3","Button","List","index","Divider","group","ListSubheader","RecurringStatus","expected","isExpense","missed","paid","total","upcoming","isSmallMobile","useScreenSize","recurringCopy","data","StatusBar","Box","RecurringTransactionDetailsDrawer","selectedRecurrence","selectedRepeatingTransaction","setSelectedRecurrence","setSelectedRepeatingTransactionGuid","handleClose","Drawer","RepeatingType","RecurringTransactionDetails","RecurringTransactions","availableWidth","useWidgetContainerProvider","isDesktop","isMobile","currentMonthExpenses","currentMonthIncome","dateRange","expenseTotal","incomeTotal","missedExpenseTotal","pastRecurrences","paidExpenseTotal","paidIncomeTotal","selectedDayRecurrences","upcomingExpenseTotal","upcomingIncomeTotal","upcomingRecurrences","selectedTab","setSelectedTab","isPreviousMonthDisabled","isBefore","handleTabChange","_event","newValue","onUpcomingRecurrenceClick","onPaidRecurrenceClick","onNextMonthClick","nextMonth","addMonths","onPreviousMonthClick","lastMonth","subMonths","Grid","H2","IconButton","ChevronLeft","ChevronRight","Tabs","Tab","RecurringTransactionsWidget","onBackClick","onMenuClick","isInitialized","alert","isDataLoaded","loadRepeatingTransactionData","setAlert","setFilter","useTransactionStore","isSettingsOpen","setIsSettingsOpen","useWidgetLoadTimer","subDays","startOfToday","endOfToday","WidgetContainer","SkeletonLoader","RecurringSettings","Snackbar","reason","Alert","Loader","MiniWidgetContent","isSmall","RecurringTransactionsMiniWidget","onPrimaryCtaClick","MiniWidgetContainer","ZeroStateMicroWidget","CurrencyExchange","P","RecurrenceLegend","amount","bgcolor","isLargeScreen","isSmallScreen","OverlappingMerchantLogos","logoSize","maxLogos","ICON_OVERLAP_X","i","MerchantLogosRow","MicroWidgetContent","containerRef","width","useDimensions","hasLogos","expectedExpenseTotalFormatted","renderLogosSection","recurrenceLegend","legend","RecurringTransactionsMicroWidget","onCTAClick","repeatingTransactions","budgetsCopy","handleCTAClick","showZeroState","MicroWidgetContainer","RecurringSettingsDrawer","isOpen","onClose"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../src/settings/components/profile/ProfileTab.tsx","../../src/settings/constants/Settings.ts","../../src/settings/components/devices/DeviceTable.tsx","../../src/settings/components/devices/DeviceList.tsx","../../src/settings/components/devices/DeviceDialog.tsx","../../src/settings/components/devices/DeviceTab.tsx","../../src/settings/components/transactionrules/components/RuleListItem.tsx","../../src/settings/components/transactionrules/actions/EditCategoryAction.tsx","../../src/settings/components/transactionrules/actions/EditPayeeAction.tsx","../../src/settings/components/transactionrules/actions/DeleteRuleAction.tsx","../../src/settings/components/transactionrules/components/EditRuleDetails.tsx","../../src/settings/components/transactionrules/actions/EditRuleAction.tsx","../../src/settings/components/transactionrules/TransactionRulesTab.tsx","../../src/settings/components/SettingsWidgetContents.tsx","../../src/settings/SettingsWidget.tsx","../../src/settings/NotificationSettingsWidget.tsx","../../src/settings/TransactionRulesWidget.tsx"],"sourcesContent":["/* eslint-disable no-nested-ternary */\n\nimport React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { getUnixTime } from 'date-fns/getUnixTime'\n\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3'\nimport { DatePicker } from '@mui/x-date-pickers'\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'\n\nimport { alpha, useTheme } from '@mui/material/styles'\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport TextField from '@mui/material/TextField'\n\nimport { H3, P } from '@mxenabled/mxui'\n\nimport {\n useAppConfig,\n useGlobalCopyStore,\n useScreenSize,\n useSettingsStore,\n useUserStore,\n Dialog,\n} from '../../../common'\nimport { type EditableUser } from '../../../core'\nimport VerifyEmailAction from './actions/VerifyEmailAction'\nimport VerifyPhoneAction from './actions/VerifyPhoneAction'\n\ninterface ProfileFormProps {\n availableWidth?: number\n handleOnLeavClick?: () => void\n}\n\ntype UserInput = {\n [U in keyof EditableUser]: EditableUser[U]\n}\n\nconst ProfileForm: React.FC<ProfileFormProps> = ({ availableWidth, handleOnLeavClick }) => {\n const theme = useTheme()\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { isDesktop, isMobile, isSmallMobile, isTablet } = useScreenSize(availableWidth)\n const { config } = useAppConfig()\n const { updateUser } = useSettingsStore()\n const { user } = useUserStore()\n\n const [modifiedUser, setModifiedUser] = React.useState<EditableUser>({\n first_name: user.first_name,\n last_name: user.last_name,\n email: user.email,\n phone: user.phone,\n birthday: user.birthday,\n postal_code: user.postal_code,\n credit_score: user.credit_score,\n })\n const [hasUnsavedChanges, setHasUnsavedChanges] = React.useState(false)\n const [showLeaveDialog, setShowLeaveDialog] = React.useState(false)\n const boxRef = React.useRef<HTMLDivElement>(null)\n\n const showVerifyEmail = modifiedUser.email && !user.email_is_verified && !hasUnsavedChanges\n const showVerifyPhone = modifiedUser.phone && !user.phone_is_verified && !hasUnsavedChanges\n\n React.useEffect(() => {\n if (handleOnLeavClick) {\n const handleClickOutside = (event: MouseEvent) => {\n if (boxRef.current && !boxRef.current.contains(event.target as Node) && hasUnsavedChanges) {\n setShowLeaveDialog(true)\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }\n return undefined\n }, [hasUnsavedChanges])\n\n // eslint-disable-next-line consistent-return\n const formatReadableBirthday = () => {\n if (modifiedUser.birthday) {\n const utc = new Date(modifiedUser.birthday * 1000)\n const year = utc.getUTCFullYear()\n const month = utc.getUTCMonth()\n const day = utc.getUTCDate()\n return new Date(year, month, day)\n }\n }\n\n const handleSave = async () => {\n await updateUser({ ...user, ...modifiedUser })\n setHasUnsavedChanges(false)\n }\n\n const handleLeaveDialog = () => {\n setShowLeaveDialog(false)\n\n if (handleOnLeavClick) {\n handleOnLeavClick()\n }\n }\n\n const handleKeepEditing = () => {\n setShowLeaveDialog(false)\n }\n\n const handleInput = (update: UserInput) => {\n const changedUser = {\n ...modifiedUser,\n ...update,\n }\n setModifiedUser(changedUser)\n setHasUnsavedChanges(JSON.stringify({ ...user, ...changedUser }) !== JSON.stringify(user))\n }\n\n return (\n <>\n <Box\n component=\"form\"\n ref={boxRef}\n sx={{\n backgroundColor: 'background.paper',\n p: 24,\n width: isSmallMobile ? 320 : isTablet ? 680 : isDesktop ? 990 : 400,\n '& .MuiTextField-root': {\n width: isSmallMobile ? 272 : isTablet ? 328 : isDesktop ? 483 : 352,\n },\n }}\n >\n <H3>{settingsCopy.personal_details}</H3>\n <P variant=\"body1\">{settingsCopy.update_information}</P>\n <Stack\n direction={isMobile ? 'column' : 'row'}\n spacing={isMobile ? 44 : 24}\n sx={{ mb: 44, pt: 32 }}\n >\n <TextField\n defaultValue={modifiedUser.first_name}\n label={settingsCopy.first_name}\n onChange={(e) => handleInput({ first_name: e.target.value })}\n />\n <TextField\n defaultValue={modifiedUser.last_name}\n label={settingsCopy.last_name}\n onChange={(e) => handleInput({ last_name: e.target.value })}\n />\n </Stack>\n <Stack direction={isMobile ? 'column' : 'row'}>\n {config.display_email_edit_field_in_settings && (\n <Stack sx={{ mb: showVerifyEmail ? 20 : 44, mr: isMobile ? 0 : 24 }}>\n <TextField\n defaultValue={modifiedUser.email}\n label={settingsCopy.email_address}\n onChange={(e) => handleInput({ email: e.target.value })}\n />\n {showVerifyEmail && <VerifyEmailAction />}\n </Stack>\n )}\n {config.display_sms_edit_field_in_settings && (\n <Stack sx={{ mb: showVerifyPhone ? 20 : 44 }}>\n <TextField\n defaultValue={modifiedUser.phone}\n label={settingsCopy.mobile_number}\n onChange={(e) => handleInput({ phone: e.target.value })}\n type=\"tel\"\n />\n {showVerifyPhone && <VerifyPhoneAction />}\n </Stack>\n )}\n </Stack>\n <Stack direction={isMobile ? 'column' : 'row'} spacing={isMobile ? 44 : 24} sx={{ mb: 44 }}>\n <LocalizationProvider dateAdapter={AdapterDateFns}>\n <DatePicker\n label={settingsCopy.birthdate}\n onChange={(value) => handleInput({ birthday: getUnixTime(value as Date) })}\n slotProps={{\n nextIconButton: {\n sx: {\n color: 'primary.main',\n '&:hover': { backgroundColor: alpha(theme.palette.primary.light, 0.1) },\n },\n },\n previousIconButton: {\n sx: {\n color: 'primary.main',\n '&:hover': { backgroundColor: alpha(theme.palette.primary.light, 0.1) },\n },\n },\n }}\n sx={{\n width: '100%',\n '& .MuiIconButton-edgeEnd': {\n color: 'primary.main',\n '&:hover': { backgroundColor: alpha(theme.palette.primary.light, 0.1) },\n },\n }}\n value={formatReadableBirthday()}\n />\n </LocalizationProvider>\n <TextField\n defaultValue={modifiedUser.postal_code}\n label={settingsCopy.zip_code}\n onChange={(e) => handleInput({ postal_code: e.target.value })}\n />\n </Stack>\n <Stack>\n <TextField\n defaultValue={modifiedUser.credit_score}\n label={settingsCopy.credit_score}\n onChange={(e) => handleInput({ credit_score: Number(e.target.value) })}\n sx={{ mb: 44 }}\n />\n <Button\n disabled={!hasUnsavedChanges}\n onClick={handleSave}\n sx={{ width: isSmallMobile ? 272 : 124 }}\n variant=\"contained\"\n >\n {commonCopy.save_button}\n </Button>\n </Stack>\n </Box>\n <Dialog\n copy={{ title: settingsCopy.discard_changes }}\n isOpen={showLeaveDialog}\n onClose={handleKeepEditing}\n onSecondaryAction={handleLeaveDialog}\n primaryText={settingsCopy.keep_editing}\n secondaryText={settingsCopy.leave}\n >\n {settingsCopy.discard_changes_message}\n </Dialog>\n </>\n )\n}\n\nexport default observer(ProfileForm)\n","export enum DialogType {\n Delete = 'delete',\n Edit = 'edit',\n Token = 'token',\n}\n","import React from 'react'\nimport { formatDistanceToNow } from 'date-fns/formatDistanceToNow'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\n\nimport { useTheme } from '@mui/material/styles'\nimport { alpha } from '@mui/material/styles'\n\nimport IconButton from '@mui/material/IconButton'\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport { Icon, Text } from '@mxenabled/mxui'\nimport { DataGridPro, GridColDef } from '@mui/x-data-grid-pro'\n\nimport { useGlobalCopyStore } from '../../../common'\nimport { Device } from '../../../core'\nimport { HeaderCell } from '../../../trends/components/trendstable/HeaderCell'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface DeviceTableProps {\n devices: Device[]\n onClickDeviceEdit: (device: Device) => void\n onClickDeviceDelete: (device: Device) => void\n}\n\nexport const DeviceTable: React.FC<DeviceTableProps> = ({\n devices,\n onClickDeviceEdit,\n onClickDeviceDelete,\n}) => {\n const theme = useTheme()\n const { settings: settingsCopy } = useGlobalCopyStore()\n\n const columns: GridColDef[] = [\n {\n field: 'name',\n headerName: settingsCopy.mobile_devices_column_name,\n renderHeader: HeaderCell,\n renderCell: (params) => (\n <Stack alignItems=\"center\" direction=\"row\" gap={4}>\n <Text variant=\"body2\">{params.value}</Text>\n <IconButton\n aria-label={settingsCopy.mobile_devices_edit_label}\n color=\"secondary\"\n onClick={() => onClickDeviceEdit(params.row as Device)}\n >\n <Icon name=\"edit\" />\n </IconButton>\n </Stack>\n ),\n sortable: true,\n flex: 1,\n minWidth: 200,\n },\n {\n field: 'device_type',\n headerName: settingsCopy.mobile_devices_column_type,\n renderHeader: HeaderCell,\n sortable: true,\n hideSortIcons: false,\n flex: 1,\n minWidth: 150,\n },\n {\n field: 'created_at',\n headerName: settingsCopy.mobile_devices_column_added,\n renderHeader: HeaderCell,\n valueFormatter: (value: number) =>\n formatDistanceToNow(fromUnixTime(value), { addSuffix: true }),\n sortable: true,\n hideSortIcons: false,\n flex: 1,\n minWidth: 150,\n },\n {\n field: 'delete',\n headerName: '',\n renderHeader: HeaderCell,\n renderCell: (params) => (\n <Stack mr={4}>\n <IconButton\n aria-label={settingsCopy.mobile_devices_delete_label}\n color=\"secondary\"\n onClick={() => onClickDeviceDelete(params.row as Device)}\n >\n <Icon name=\"delete\" />\n </IconButton>\n </Stack>\n ),\n sortable: false,\n hideSortIcons: false,\n width: 58,\n },\n ]\n\n const rows = React.useMemo(() => {\n return devices.map((device) => ({\n id: device.guid,\n ...device,\n device_type: `${device.make} ${device.model}`,\n }))\n }, [devices])\n\n return (\n <Box sx={{ width: '100%' }}>\n <DataGridPro\n columns={columns}\n disableColumnFilter={true}\n disableColumnMenu={true}\n disableRowSelectionOnClick={true}\n rows={rows}\n slotProps={{\n footer: {\n sx: { justifyContent: 'flex-end' },\n },\n }}\n slots={{\n footer: () => (\n <Box\n sx={{\n backgroundColor: theme.palette.background.default,\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n p: '12px 16px',\n }}\n >\n <Text color={theme.palette.text.secondary} variant=\"body2\">\n {\n buildDynamicCopy(\n settingsCopy.mobile_devices_count,\n <b>{devices.length}</b>,\n <b>{devices.length}</b>,\n ) as string\n }\n </Text>\n </Box>\n ),\n }}\n sx={{\n border: '1px solid',\n borderColor: theme.palette.neutral.light,\n borderRadius: '8px',\n '& .MuiDataGrid-columnHeader .MuiIconButton-root': {\n color: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, 0.1),\n },\n },\n '& .MuiDataGrid-sortIcon': {\n color: theme.palette.primary.main,\n },\n }}\n />\n </Box>\n )\n}\n\nexport default DeviceTable\n","import React from 'react'\nimport { formatDistanceToNow } from 'date-fns/formatDistanceToNow'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\n\nimport { useTheme } from '@mui/material/styles'\nimport Accordion from '@mui/material/Accordion'\nimport AccordionDetails from '@mui/material/AccordionDetails'\nimport AccordionSummary from '@mui/material/AccordionSummary'\nimport Box from '@mui/material/Box'\nimport IconButton from '@mui/material/IconButton'\nimport Stack from '@mui/material/Stack'\nimport { Icon, Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../../common'\nimport { Device } from '../../../core'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface DeviceListProps {\n devices: Device[]\n onClickDeviceEdit: (device: Device) => void\n onClickDeviceDelete: (device: Device) => void\n}\n\nexport const DeviceList: React.FC<DeviceListProps> = ({\n devices,\n onClickDeviceEdit,\n onClickDeviceDelete,\n}) => {\n const theme = useTheme()\n const { settings: settingsCopy } = useGlobalCopyStore()\n const [expanded, setExpanded] = React.useState<string | false>(false)\n\n const handleChange = (guid: string) => (_: React.SyntheticEvent, isExpanded: boolean) => {\n setExpanded(isExpanded ? guid : false)\n }\n\n return (\n <Stack mx={-28} sx={{ '& .MuiAccordion-root': { mb: 0, mt: 0 } }}>\n {devices.map((device) => (\n <Accordion\n expanded={expanded === device.guid}\n key={device.guid}\n onChange={handleChange(device.guid)}\n sx={{ boxShadow: 'none' }}\n >\n <AccordionSummary\n expandIcon={<Icon color={'secondary'} name=\"keyboard_arrow_down\" size={24} />}\n sx={{\n padding: '14px 24px',\n borderBottom: '1px solid',\n borderColor: theme.palette.divider,\n }}\n >\n <Stack gap={4}>\n <Text bold={true} variant=\"body1\">\n {device.name}\n </Text>\n <Text color={theme.palette.text.secondary} variant=\"body2\">\n {`${device.make} ${device.model}`}\n </Text>\n <Text color={theme.palette.text.secondary} variant=\"body2\">\n {formatDistanceToNow(fromUnixTime(device.created_at), { addSuffix: true })}\n </Text>\n </Stack>\n </AccordionSummary>\n <AccordionDetails\n sx={{ backgroundColor: theme.palette.background.default, p: '0 0 0 24px' }}\n >\n <Stack\n onClick={() => onClickDeviceEdit(device)}\n sx={{\n alignItems: 'center',\n flexDirection: 'row',\n width: '100%',\n gap: 12,\n py: 16,\n cursor: 'pointer',\n borderBottom: '1px solid',\n borderColor: theme.palette.divider,\n }}\n >\n <IconButton aria-label={settingsCopy.mobile_devices_edit_label} color=\"secondary\">\n <Icon name=\"edit\" />\n </IconButton>\n <Text variant=\"body1\">{settingsCopy.mobile_devices_edit_label}</Text>\n </Stack>\n <Stack\n onClick={() => onClickDeviceDelete(device)}\n sx={{\n alignItems: 'center',\n flexDirection: 'row',\n width: '100%',\n gap: 12,\n py: 16,\n cursor: 'pointer',\n }}\n >\n <IconButton aria-label={settingsCopy.mobile_devices_delete_label} color=\"secondary\">\n <Icon name=\"delete\" />\n </IconButton>\n <Text variant=\"body1\">{settingsCopy.mobile_devices_delete_label}</Text>\n </Stack>\n </AccordionDetails>\n </Accordion>\n ))}\n <Box\n sx={{\n backgroundColor: theme.palette.background.default,\n borderTop: '1px solid',\n borderColor: theme.palette.divider,\n p: '12px 16px',\n }}\n >\n <Text color={theme.palette.text.secondary} variant=\"body2\">\n {\n buildDynamicCopy(\n settingsCopy.mobile_devices_count,\n <b>{devices.length}</b>,\n <b>{devices.length}</b>,\n ) as string\n }\n </Text>\n </Box>\n </Stack>\n )\n}\n\nexport default DeviceList\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { useTheme } from '@mui/material/styles'\nimport Stack from '@mui/material/Stack'\nimport TextField from '@mui/material/TextField'\nimport { P, Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore, useSettingsStore } from '../../../common'\nimport { Device } from '../../../core'\nimport { Dialog } from '../../../common/components'\nimport { DialogType } from '../../constants/Settings'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface DeviceDialogProps {\n dialogType: string\n isOpen: boolean\n onClose: () => void\n device?: Device\n deviceToken?: string\n}\n\nconst DeviceDialog: React.FC<DeviceDialogProps> = ({\n dialogType,\n isOpen,\n onClose,\n device,\n deviceToken = '',\n}) => {\n const theme = useTheme()\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { updateDevice, deleteDevice, setAlert, loadDevices } = useSettingsStore()\n\n const [deviceName, setDeviceName] = React.useState('')\n\n React.useEffect(() => {\n if (device) setDeviceName(device.name)\n }, [device, dialogType])\n\n const getDialogTitle = () => {\n switch (dialogType) {\n case DialogType.Edit:\n return settingsCopy.mobile_devices_edit_label\n case DialogType.Delete:\n return settingsCopy.mobile_devices_delete_label\n default:\n return ''\n }\n }\n\n const getDialogPrimaryText = () => {\n switch (dialogType) {\n case DialogType.Token:\n return commonCopy.done_button\n case DialogType.Edit:\n return commonCopy.save_button\n case DialogType.Delete:\n return commonCopy.delete_button\n default:\n return ''\n }\n }\n\n const getDialogStyles = () => {\n const baseStyles = {\n '& .MuiDialogContent-root': {\n width: 400,\n pt: 0,\n },\n }\n\n if (dialogType === DialogType.Token) {\n return {\n ...baseStyles,\n '& .MuiToolbar-root:last-child': {\n padding: '32px 60px 48px',\n justifyContent: 'center',\n },\n '& .MuiButton-root:first-child': {\n display: 'none',\n },\n '& .MuiButton-root:last-child': {\n flex: 1,\n },\n }\n }\n\n return {\n ...baseStyles,\n '& .MuiToolbar-root:last-child': {\n gap: 8,\n padding: 24,\n justifyContent: 'flex-end',\n },\n ...(dialogType === DialogType.Delete && {\n '& .MuiTypography-body1': {\n padding: 0,\n },\n }),\n }\n }\n\n const handlePrimaryAction = async () => {\n if (dialogType === DialogType.Token) {\n onClose()\n }\n\n if (dialogType === DialogType.Edit && device) {\n const updatedDevice = { ...device, name: deviceName }\n const res = await updateDevice(updatedDevice)\n\n if (res.success) {\n setAlert(settingsCopy.mobile_devices_edit_success, 'success')\n loadDevices()\n } else {\n setAlert(\n buildDynamicCopy(settingsCopy.mobile_devices_edit_error, device.name) as string,\n 'error',\n )\n }\n onClose()\n }\n\n if (dialogType === DialogType.Delete && device) {\n const res = await deleteDevice(device.guid)\n\n if (res.success) {\n setAlert(\n buildDynamicCopy(settingsCopy.mobile_devices_delete_success, device.name) as string,\n 'success',\n )\n loadDevices()\n } else {\n setAlert(\n buildDynamicCopy(settingsCopy.mobile_devices_delete_error, device.name) as string,\n 'error',\n )\n }\n onClose()\n }\n }\n\n return (\n <Dialog\n copy={{ title: getDialogTitle() }}\n isOpen={isOpen}\n onClose={onClose}\n onPrimaryAction={handlePrimaryAction}\n onSecondaryAction={onClose}\n primaryColor={dialogType === DialogType.Delete ? 'error' : undefined}\n primaryText={getDialogPrimaryText()}\n secondaryText={dialogType === DialogType.Token ? commonCopy.back : commonCopy.cancel_button}\n sx={getDialogStyles()}\n >\n {dialogType === DialogType.Token && (\n <Stack spacing={16} sx={{ px: 40, textAlign: 'center', width: '100%' }}>\n <Text bold={true} truncate={false} variant=\"body1\">\n {settingsCopy.mobile_devices_access_label}\n </Text>\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.mobile_devices_access_info_1}\n </Text>\n <P\n sx={{\n border: `1px solid ${theme.palette.neutral.light}`,\n borderRadius: '4px',\n p: '16px 32px',\n }}\n variant=\"h1\"\n >\n {deviceToken}\n </P>\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.mobile_devices_access_info_2}\n </Text>\n </Stack>\n )}\n {dialogType === DialogType.Edit && (\n <Stack>\n <TextField onChange={(e) => setDeviceName(e.target.value)} value={deviceName} />\n </Stack>\n )}\n {dialogType === DialogType.Delete && <P>{settingsCopy.mobile_devices_delete_info}</P>}\n </Dialog>\n )\n}\n\nexport default observer(DeviceDialog)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport { H3, P, Text } from '@mxenabled/mxui'\n\nimport {\n Loader,\n useGlobalCopyStore,\n useGlobalUiStore,\n useScreenSize,\n useSettingsStore,\n} from '../../../common'\n\nimport type { Device } from '../../../core'\n\nimport { DialogType } from '../../constants/Settings'\nimport DeviceTable from './DeviceTable'\nimport DeviceList from './DeviceList'\nimport DeviceDialog from './DeviceDialog'\n\nexport const DeviceTab = observer(() => {\n const { isMobile } = useScreenSize()\n const { settings: settingsCopy } = useGlobalCopyStore()\n const { isCopyLoaded, isInitialized } = useGlobalUiStore()\n const { setAlert, devices, loadDevices, generateDeviceToken } = useSettingsStore()\n\n const [dialog, setDialog] = React.useState({ open: false, type: '' })\n const [selectedDevice, setSelectedDevice] = React.useState<Device | undefined>()\n const [deviceToken, setDeviceToken] = React.useState('')\n\n React.useEffect(() => {\n if (isInitialized) {\n loadDevices()\n }\n }, [isInitialized])\n\n const handleGenerateDeviceToken = async () => {\n const token = await generateDeviceToken()\n if (token) {\n setDeviceToken(token)\n setDialog({ open: true, type: DialogType.Token })\n } else {\n setAlert(settingsCopy.mobile_devices_access_error, 'error')\n }\n }\n\n const handleClickDeviceEdit = (device: Device) => {\n setSelectedDevice(device)\n setDialog({ open: true, type: DialogType.Edit })\n }\n\n const handleClickDeviceDelete = (device: Device) => {\n setSelectedDevice(device)\n setDialog({ open: true, type: DialogType.Delete })\n }\n\n const handleCloseDialog = () => {\n setDialog({ open: false, type: '' })\n setSelectedDevice(undefined)\n }\n\n if (!isCopyLoaded || !isInitialized) {\n return <Loader />\n }\n\n return (\n <Stack\n sx={{\n backgroundColor: 'background.paper',\n p: 24,\n gap: 24,\n }}\n >\n <Stack gap={4}>\n <H3>{settingsCopy.mobile_devices_title}</H3>\n <P variant=\"body1\">{settingsCopy.mobile_devices_info}</P>\n </Stack>\n\n {/* Device Table/List */}\n {isMobile ? (\n <DeviceList\n devices={devices}\n onClickDeviceDelete={handleClickDeviceDelete}\n onClickDeviceEdit={handleClickDeviceEdit}\n />\n ) : (\n <DeviceTable\n devices={devices}\n onClickDeviceDelete={handleClickDeviceDelete}\n onClickDeviceEdit={handleClickDeviceEdit}\n />\n )}\n\n {/* Token CTA */}\n <Stack sx={{ alignItems: 'center', px: 24, py: 12, gap: 4 }}>\n <Text bold={true} variant=\"body1\">\n {settingsCopy.mobile_devices_access_title}\n </Text>\n <P align=\"center\" variant=\"body2\">\n {settingsCopy.mobile_devices_access_description}\n </P>\n <Button onClick={handleGenerateDeviceToken} variant=\"text\">\n {settingsCopy.mobile_devices_access_cta}\n </Button>\n </Stack>\n\n {/* Dialogs (Token, Edit, or Delete) */}\n <DeviceDialog\n device={selectedDevice}\n deviceToken={deviceToken}\n dialogType={dialog.type}\n isOpen={dialog.open}\n onClose={handleCloseDialog}\n />\n </Stack>\n )\n})\n\nexport default DeviceTab\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 { useTheme } from '@mui/material/styles'\nimport { type SxProps } from '@mui/material/styles'\n\nimport { ChevronRight } from '@mxenabled/mx-icons'\n\ninterface RuleListItemProps {\n onClick: () => void\n primaryText?: string\n secondaryText?: string\n sx?: SxProps\n}\n\nconst RuleListItem: React.FC<RuleListItemProps> = observer(\n ({ onClick, primaryText, secondaryText, sx }) => {\n const theme = useTheme()\n\n return (\n <ListItem sx={{ bgcolor: theme.palette.background.paper }}>\n <ListItemButton alignItems=\"flex-start\" onClick={onClick} sx={sx}>\n <ListItemText primary={primaryText} secondary={secondaryText} />\n <ListItemIcon>\n <ChevronRight />\n </ListItemIcon>\n </ListItemButton>\n </ListItem>\n )\n },\n)\n\nexport default RuleListItem\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport { useCategoryStore, useGlobalCopyStore, useSettingsStore } from '../../../../common'\n\nimport { CategorySelectorDrawer } from '../../../../categories'\nimport RulesListItem from '../components/RuleListItem'\n\nconst EditCategoryAction = observer(() => {\n const { settings: settingsCopy } = useGlobalCopyStore()\n const { categories } = useCategoryStore()\n const { selectedRule: rule, updateRuleCategory } = useSettingsStore()\n\n const [isOpen, setIsOpen] = React.useState(false)\n\n const handleClose = (): void => {\n setIsOpen(false)\n }\n\n const handleOpen = (): void => {\n setIsOpen(true)\n }\n\n const getCategoryName = (categoryGuid: string) => {\n return categories.find((category) => category.guid === categoryGuid)?.name\n }\n\n const handleCategorySelect = async (guid: string) => {\n if (rule && rule.category_guid !== guid) {\n rule.category_guid = guid\n await updateRuleCategory(rule)\n }\n handleClose()\n }\n\n return (\n <React.Fragment>\n <RulesListItem\n onClick={handleOpen}\n primaryText={rule?.category_guid ? getCategoryName(rule.category_guid) : ''}\n secondaryText={settingsCopy.category}\n />\n <CategorySelectorDrawer\n initialSelected={rule?.category_guid ? rule.category_guid : undefined}\n onClose={handleClose}\n onSelect={handleCategorySelect}\n showDrawer={isOpen}\n title={settingsCopy.select_category}\n />\n </React.Fragment>\n )\n})\n\nexport default EditCategoryAction\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport TextField from '@mui/material/TextField'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Dialog, useGlobalCopyStore, useSettingsStore } from '../../../../common'\nimport RuleListItem from '../components/RuleListItem'\n\nconst EditPayeeAction = observer(() => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n const { selectedRule: rule, updateRulePayee } = useSettingsStore()\n\n const theme = useTheme()\n\n const [isOpen, setIsOpen] = React.useState(false)\n const initialPayeeName = rule?.description ? rule.description : rule?.match_description\n\n const [payeeName, setPayeeName] = React.useState(initialPayeeName ? initialPayeeName : '')\n\n const handleOpen = (): void => {\n setIsOpen(true)\n }\n\n const handleSave = async () => {\n if (payeeName !== initialPayeeName && rule) {\n rule.description = payeeName\n await updateRulePayee(rule)\n setIsOpen(false)\n }\n }\n\n return (\n <React.Fragment>\n <RuleListItem\n onClick={handleOpen}\n primaryText={initialPayeeName}\n secondaryText={settingsCopy.payee}\n />\n <Dialog\n copy={{ title: settingsCopy.edit_payee }}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n onPrimaryAction={handleSave}\n onSecondaryAction={() => setIsOpen(false)}\n primaryText={commonCopy.save_button}\n secondaryText={commonCopy.cancel_button}\n sx={{\n '& .MuiDialogContent-root': { pt: 0, width: 400 },\n path: { fill: theme.palette.secondary.darker },\n }}\n >\n <TextField\n onChange={(e) => setPayeeName(e.target.value)}\n sx={{ width: 352 }}\n value={payeeName}\n />\n </Dialog>\n </React.Fragment>\n )\n})\n\nexport default EditPayeeAction\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\nimport { Text } from '@mxenabled/mxui'\nimport { Dialog, useGlobalCopyStore } from '../../../../common'\n\ninterface ActionProps {\n isOpen: boolean\n onClose: () => void\n onDelete: () => void\n}\n\nconst DeleteRuleAction: React.FC<ActionProps> = observer(({ onClose, onDelete, isOpen }) => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n\n return (\n <Dialog\n copy={{ title: settingsCopy.delete_rule }}\n isOpen={isOpen}\n onClose={onClose}\n onPrimaryAction={onDelete}\n onSecondaryAction={onClose}\n primaryColor=\"error\"\n primaryText={commonCopy.delete_button}\n secondaryColor=\"secondary\"\n secondaryText={commonCopy.cancel_button}\n sx={{ '& .MuiDialogContent-root': { pt: 0, width: 400 } }}\n >\n <Text truncate={false} variant=\"body2\">\n {settingsCopy.delete_rule_confirm}\n </Text>\n </Dialog>\n )\n})\n\nexport default DeleteRuleAction\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Divider from '@mui/material/Divider'\nimport ListSubheader from '@mui/material/ListSubheader'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { Drawer, useGlobalCopyStore } from '../../../../common'\n\nimport EditCategoryAction from '../actions/EditCategoryAction'\nimport EditPayeeAction from '../actions/EditPayeeAction'\nimport DeleteRuleAction from '../actions/DeleteRuleAction'\n\ninterface EditRuleDetailsProps {\n isOpen: boolean\n onClose: () => void\n onDelete: () => void\n}\n\nconst EditRuleDetails: React.FC<EditRuleDetailsProps> = observer(\n ({ isOpen, onClose, onDelete }) => {\n const { common: commonCopy, settings: settingsCopy } = useGlobalCopyStore()\n\n const [showDeleteDialog, setShowDeleteDialog] = React.useState(false)\n\n return (\n <Drawer\n hasSecondaryAction={false}\n isOpen={isOpen}\n onClose={onClose}\n onPrimaryAction={() => {\n setShowDeleteDialog(true)\n }}\n primaryColor=\"error\"\n primaryText={commonCopy.delete_button}\n title={settingsCopy.edit_rule}\n >\n <ListSubheader>\n <Text bold={true} variant=\"caption\">\n {settingsCopy.details}\n </Text>\n </ListSubheader>\n\n <EditPayeeAction />\n <Divider sx={{ ml: 24 }} />\n <EditCategoryAction />\n <Divider sx={{ ml: 24 }} />\n <DeleteRuleAction\n isOpen={showDeleteDialog}\n onClose={() => setShowDeleteDialog(false)}\n onDelete={onDelete}\n />\n </Drawer>\n )\n },\n)\n\nexport default EditRuleDetails\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\nimport Divider from '@mui/material/Divider'\n\nimport { useCategoryStore, useScreenSize, useSettingsStore } from '../../../../common'\nimport { type TransactionRule } from '../../../../core'\n\nimport EditRuleDetails from '../components/EditRuleDetails'\nimport RuleListItem from '../components/RuleListItem'\nimport { useCategoryUiStore } from '../../../../categories'\n\ninterface ActionProps {\n rule: TransactionRule\n}\n\nconst EditRuleAction: React.FC<ActionProps> = observer(({ rule }) => {\n const { categories } = useCategoryStore()\n const { setSelectedGuid } = useCategoryUiStore()\n const { deleteTransactionRule, setSelectedRule } = useSettingsStore()\n const { isDesktop, isTablet } = useScreenSize()\n const [isOpen, setIsOpen] = React.useState(false)\n\n const handleClose = (): void => {\n setIsOpen(false)\n setSelectedGuid(null) // this resets the selected value in the category selector drawer when the edit rule drawer closes\n setSelectedRule(undefined)\n }\n\n const handleDelete = async () => {\n await deleteTransactionRule()\n handleClose()\n }\n\n const handleOpen = (): void => {\n setIsOpen(true)\n setSelectedRule(rule)\n }\n\n const getCategoryName = (categoryGuid: string) => {\n return categories.find((category) => category.guid === categoryGuid)?.name\n }\n\n return (\n <React.Fragment>\n <RuleListItem\n onClick={handleOpen}\n primaryText={rule.description ? rule.description : rule.match_description}\n secondaryText={rule.category_guid ? getCategoryName(rule.category_guid) : ''}\n />\n <Divider sx={{ ml: isTablet || isDesktop ? 0 : 24 }} />\n <EditRuleDetails isOpen={isOpen} onClose={handleClose} onDelete={handleDelete} />\n </React.Fragment>\n )\n})\n\nexport default EditRuleAction\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport List from '@mui/material/List'\nimport Stack from '@mui/material/Stack'\n\nimport { H3, P } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore, useSettingsStore, useWidgetLoadTimer } from '../../../common'\nimport { TransactionRule } from '../../../core'\n\nimport EditRuleAction from './actions/EditRuleAction'\n\nconst TransactionRulesTab = observer(() => {\n const { settings: settingsCopy } = useGlobalCopyStore()\n const { loadTransactionRules, transactionRules } = useSettingsStore()\n const [isTabInitialized, setIsTabInitialized] = React.useState(false)\n\n useWidgetLoadTimer({\n widgetName: 'TransactionRulesTab',\n isLoaded: isTabInitialized,\n })\n\n React.useEffect(() => {\n loadTransactionRules().finally(() => setIsTabInitialized(true))\n }, [])\n\n return (\n <Stack sx={{ gap: 24, py: 24 }}>\n <Stack sx={{ px: 24 }}>\n <H3>{settingsCopy.transaction_rules_label}</H3>\n <P variant=\"body1\">{settingsCopy.transaction_rules_description}</P>\n </Stack>\n <List>\n {transactionRules.map((rule: TransactionRule, index: number) => (\n <EditRuleAction key={index} rule={rule} />\n ))}\n </List>\n </Stack>\n )\n})\n\nexport default TransactionRulesTab\n","import { observer } from 'mobx-react-lite'\n\nimport Alert from '@mui/material/Alert'\nimport Snackbar from '@mui/material/Snackbar'\n\nimport { useAppConfig, useSettingsStore } from '../../common'\n\nimport ProfileTab from './profile/ProfileTab'\nimport DeviceTab from './devices/DeviceTab'\nimport TransactionRulesTab from './transactionrules/TransactionRulesTab'\nimport { NotificationSettings } from './notifications/NotificationSettings'\nimport { SettingsTabs } from '../SettingsWidget'\nimport { Help } from '../../help'\nimport Stack from '@mui/material/Stack'\n\ninterface SettingsWidgetContentsProps {\n selectedTab: SettingsTabs\n}\n\nexport const SettingsWidgetContents = observer(({ selectedTab }: SettingsWidgetContentsProps) => {\n const { alert, setAlert } = useSettingsStore()\n const {\n config: { display_user_profile_in_settings },\n } = useAppConfig()\n\n return (\n <>\n {selectedTab === SettingsTabs.Profile && <ProfileTab />}\n {selectedTab === SettingsTabs.Devices && <DeviceTab />}\n {selectedTab === SettingsTabs.Notifications && (\n <NotificationSettings showPersonalDetails={!display_user_profile_in_settings} />\n )}\n {selectedTab === SettingsTabs.TransactionRules && <TransactionRulesTab />}\n {selectedTab === SettingsTabs.Help && (\n <Stack sx={{ px: 24 }}>\n <Help />\n </Stack>\n )}\n\n <Snackbar\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n autoHideDuration={3500}\n onClose={() => setAlert('')}\n open={Boolean(alert.message)}\n >\n <Alert\n onClose={() => {\n setAlert('')\n }}\n severity={alert.severity}\n variant=\"filled\"\n >\n {alert.message}\n </Alert>\n </Snackbar>\n </>\n )\n})\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\nimport Tab from '@mui/material/Tab'\nimport Tabs from '@mui/material/Tabs'\n\nimport {\n Loader,\n useAppConfig,\n useCategoryStore,\n useGlobalCopyStore,\n useGlobalUiStore,\n useScreenSize,\n useWidgetLoadTimer,\n WidgetContainer,\n} from '../common'\nimport { WidgetProps } from '../core'\n\nimport { SettingsWidgetContents } from './components/SettingsWidgetContents'\n\nexport enum SettingsTabs {\n Profile = 0,\n Devices = 1,\n Notifications = 2,\n TransactionRules = 3,\n Help = 4,\n}\n\nexport const SettingsWidget = observer(({ onBackClick, onMenuClick, sx }: WidgetProps) => {\n const { settings: copy } = useGlobalCopyStore()\n const { isCopyLoaded, isInitialized } = useGlobalUiStore()\n const { config } = useAppConfig()\n const { isMobile } = useScreenSize()\n const { categoriesLoaded, loadCategories } = useCategoryStore()\n\n useWidgetLoadTimer({\n widgetName: 'SettingsWidget',\n isLoaded: isInitialized && isCopyLoaded,\n })\n\n React.useEffect(() => {\n if (!categoriesLoaded) {\n loadCategories().finally()\n }\n }, [])\n\n const {\n display_user_profile_in_settings: userProfileEnabled,\n display_mobile_devices_in_settings: mobileDevicesEnabled,\n display_notification_settings_in_settings: notificationsEnabled,\n display_user_transaction_rules_in_settings: transactionRulesEnabled,\n show_help_widget_in_master: helpEnabled,\n } = config\n\n const tabs = [\n { enabled: userProfileEnabled, index: 0, label: copy?.profile_label },\n { enabled: mobileDevicesEnabled, index: 1, label: copy?.mobile_devices_label },\n { enabled: notificationsEnabled, index: 2, label: copy?.notifications_label },\n { enabled: transactionRulesEnabled, index: 3, label: copy?.transaction_rules_label },\n { enabled: helpEnabled, index: 4, label: copy?.help_label },\n ]\n\n const firstEnabledTab = tabs.find((tab) => tab.enabled)\n const [selectedTab, setSelectedTab] = React.useState(firstEnabledTab ? firstEnabledTab.index : -1)\n\n if (!isCopyLoaded || !isInitialized) {\n return <Loader />\n }\n\n return (\n <WidgetContainer\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n showAccountFilter={false}\n sx={{ height: 'calc(100dvh - 24px)', overflow: 'auto', ...sx }}\n title={copy.title}\n >\n <Stack mx={isMobile ? 0 : 48} my={24}>\n <Tabs\n onChange={(_, newValue) => setSelectedTab(newValue)}\n sx={{ bgcolor: 'background.paper' }}\n textColor=\"primary\"\n value={selectedTab}\n variant=\"scrollable\"\n >\n {tabs.map(\n (tab) => tab.enabled && <Tab key={tab.index} label={tab.label} value={tab.index} />,\n )}\n </Tabs>\n\n <SettingsWidgetContents selectedTab={selectedTab} />\n </Stack>\n </WidgetContainer>\n )\n})\n","import { observer } from 'mobx-react-lite'\n\nimport IconButton from '@mui/material/IconButton'\nimport Stack from '@mui/material/Stack'\n\nimport { ChevronLeft } from '@mxenabled/mx-icons'\n\nimport { useAppConfig, WidgetContainer } from '../common'\nimport { WidgetProps } from '../core'\n\nimport { NotificationSettings } from './components/notifications/NotificationSettings'\n\nexport const NotificationSettingsWidget = observer((props: WidgetProps) => {\n const { clientConfig } = useAppConfig()\n\n const view = clientConfig?.master?.deep_link_params?.view\n const showBackButton = clientConfig?.master?.show_back_button\n\n if (view) {\n return (\n <Stack>\n {showBackButton && props.onBackClick && (\n <IconButton\n color=\"primary\"\n onClick={props.onBackClick}\n sx={{ p: 10, alignSelf: 'flex-start' }}\n >\n <ChevronLeft size={24} />\n </IconButton>\n )}\n <NotificationSettings view={view} />\n </Stack>\n )\n }\n\n return (\n <WidgetContainer {...props} showAccountFilter={false}>\n <Stack my={24}>\n <NotificationSettings />\n </Stack>\n </WidgetContainer>\n )\n})\n","import React from 'react'\nimport Stack from '@mui/material/Stack'\n\nimport { useCategoryStore, useScreenSize, WidgetContainer } from '../common'\nimport { WidgetProps } from '../core'\n\nimport TransactionRulesTab from './components/transactionrules/TransactionRulesTab'\n\nexport const TransactionRulesWidget = (props: WidgetProps) => {\n const { isMobile } = useScreenSize()\n const { categoriesLoaded, loadCategories } = useCategoryStore()\n\n React.useEffect(() => {\n if (!categoriesLoaded) {\n loadCategories().finally()\n }\n })\n\n return (\n <WidgetContainer {...props} showAccountFilter={false}>\n <Stack sx={{ mx: isMobile ? 0 : 48, my: 24 }}>\n <TransactionRulesTab />\n </Stack>\n </WidgetContainer>\n )\n}\n"],"names":["ProfileForm","availableWidth","handleOnLeavClick","theme","useTheme","commonCopy","settingsCopy","useGlobalCopyStore","isDesktop","isMobile","isSmallMobile","isTablet","useScreenSize","config","useAppConfig","updateUser","useSettingsStore","user","useUserStore","modifiedUser","setModifiedUser","React","hasUnsavedChanges","setHasUnsavedChanges","showLeaveDialog","setShowLeaveDialog","boxRef","showVerifyEmail","showVerifyPhone","handleClickOutside","event","formatReadableBirthday","utc","year","month","day","handleSave","handleLeaveDialog","handleKeepEditing","handleInput","update","changedUser","jsxs","Fragment","Box","jsx","H3","P","Stack","TextField","e","VerifyEmailAction","VerifyPhoneAction","LocalizationProvider","AdapterDateFns","DatePicker","value","getUnixTime","alpha","Button","Dialog","ProfileTab","observer","DialogType","DeviceTable","devices","onClickDeviceEdit","onClickDeviceDelete","columns","HeaderCell","params","Text","IconButton","Icon","formatDistanceToNow","fromUnixTime","rows","device","DataGridPro","buildDynamicCopy","DeviceList","expanded","setExpanded","handleChange","guid","_","isExpanded","Accordion","AccordionSummary","AccordionDetails","DeviceDialog","dialogType","isOpen","onClose","deviceToken","updateDevice","deleteDevice","setAlert","loadDevices","deviceName","setDeviceName","getDialogTitle","getDialogPrimaryText","getDialogStyles","baseStyles","handlePrimaryAction","updatedDevice","DeviceDialog$1","DeviceTab","isCopyLoaded","isInitialized","useGlobalUiStore","generateDeviceToken","dialog","setDialog","selectedDevice","setSelectedDevice","setDeviceToken","handleGenerateDeviceToken","token","handleClickDeviceEdit","handleClickDeviceDelete","handleCloseDialog","Loader","RuleListItem","onClick","primaryText","secondaryText","sx","ListItem","ListItemButton","ListItemText","ListItemIcon","ChevronRight","EditCategoryAction","categories","useCategoryStore","rule","updateRuleCategory","setIsOpen","handleClose","handleOpen","getCategoryName","categoryGuid","category","handleCategorySelect","RulesListItem","CategorySelectorDrawer","EditPayeeAction","updateRulePayee","initialPayeeName","payeeName","setPayeeName","DeleteRuleAction","onDelete","EditRuleDetails","showDeleteDialog","setShowDeleteDialog","Drawer","ListSubheader","Divider","EditRuleAction","setSelectedGuid","useCategoryUiStore","deleteTransactionRule","setSelectedRule","handleDelete","TransactionRulesTab","loadTransactionRules","transactionRules","isTabInitialized","setIsTabInitialized","useWidgetLoadTimer","List","index","SettingsWidgetContents","selectedTab","alert","display_user_profile_in_settings","SettingsTabs","NotificationSettings","Help","Snackbar","Alert","SettingsWidget","onBackClick","onMenuClick","copy","categoriesLoaded","loadCategories","userProfileEnabled","mobileDevicesEnabled","notificationsEnabled","transactionRulesEnabled","helpEnabled","tabs","firstEnabledTab","tab","setSelectedTab","WidgetContainer","Tabs","newValue","Tab","NotificationSettingsWidget","props","clientConfig","view","showBackButton","ChevronLeft","TransactionRulesWidget"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../src/spending/components/SpendingTabLabel.tsx","../../src/spending/components/MiniSpendingChart.tsx","../../src/spending/SpendingMiniWidget.tsx","../../src/spending/components/SpendingList.tsx","../../src/spending/components/SpendingChart.tsx","../../src/spending/components/Spending.tsx","../../src/spending/SpendingWidget.tsx"],"sourcesContent":["import React from 'react'\n\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\nimport { formatCurrency } from '../../core/utils/NumberFormatting'\n\ninterface SpendingTabLabelProps {\n amount: number\n label: string\n variant?: 'mini' | 'full'\n}\n\nconst SpendingTabLabel: React.FC<SpendingTabLabelProps> = ({ amount, label, variant = 'full' }) => {\n return (\n <Stack direction=\"column\">\n <Text bold={true} sx={{ textTransform: 'none' }} variant=\"body1\">\n {label}\n </Text>\n <Text variant=\"caption\">{formatCurrency(amount, variant === 'mini' ? '0,0' : '0,0.00')}</Text>\n </Stack>\n )\n}\n\nexport default SpendingTabLabel\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport Tab from '@mui/material/Tab'\nimport Tabs from '@mui/material/Tabs'\nimport { useTheme } from '@mui/material/styles'\n\nimport { useCategoryStore, useGlobalCopyStore } from '../../common'\nimport { getIncomeData, getSpendingData } from '../utils/SpendingData'\n\nimport SpendingTabLabel from './SpendingTabLabel'\nimport SpendingDonut from './SpendingDonut'\nimport SpendingLegend from './SpendingLegend'\n\nconst MiniSpendingChart = () => {\n const theme = useTheme()\n const { goals: goalsCopy, spending: spendingCopy } = useGlobalCopyStore()\n const { categories, dateRangeCategoryTotals } = useCategoryStore()\n\n const incomeColors = React.useMemo(\n () => [\n theme.palette.chartMono.chartMono5,\n theme.palette.chartMono.chartMono4,\n theme.palette.chartMono.chartMono3,\n theme.palette.chartMono.chartMono2,\n theme.palette.chartMono.chartMono1,\n theme.palette.chartMono.chartMono6,\n ],\n [theme],\n ) as string[]\n\n const [selectedId, setSelectedId] = React.useState('')\n const [selectedTab, setSelectedTab] = React.useState(0)\n\n const spendingData = React.useMemo(\n () => getSpendingData(categories, goalsCopy, theme, dateRangeCategoryTotals),\n [categories, dateRangeCategoryTotals],\n )\n\n const incomeData = React.useMemo(\n () => getIncomeData(categories, dateRangeCategoryTotals, incomeColors),\n [categories, dateRangeCategoryTotals, incomeColors],\n )\n\n const handleTabChange = (_event: React.SyntheticEvent, newValue: number) => {\n setSelectedTab(newValue)\n setSelectedId('')\n }\n\n const handleSelected = (id: string) => {\n setSelectedId(selectedId === id ? '' : id)\n }\n\n return (\n <Box width=\"100%\">\n <Tabs\n aria-label={spendingCopy.mini_title}\n onChange={handleTabChange}\n sx={{ touchAction: 'manipulation' }}\n value={selectedTab}\n variant=\"fullWidth\"\n >\n <Tab\n aria-controls=\"spending-tabpanel\"\n id=\"spending-tab\"\n label={\n <SpendingTabLabel\n amount={spendingData.totalAmount}\n label={spendingCopy.spend_tab_title}\n variant=\"mini\"\n />\n }\n tabIndex={selectedTab === 0 ? 0 : -1}\n />\n <Tab\n aria-controls=\"income-tabpanel\"\n id=\"income-tab\"\n label={\n <SpendingTabLabel\n amount={incomeData.totalAmount}\n label={spendingCopy.income_tab_title}\n variant=\"mini\"\n />\n }\n tabIndex={selectedTab === 1 ? 0 : -1}\n />\n </Tabs>\n <Box\n aria-labelledby=\"spending-tab\"\n hidden={selectedTab !== 0}\n id=\"spending-tabpanel\"\n role=\"tabpanel\"\n >\n <Stack direction=\"row\" gap={16} justifyContent={'center'} p={24}>\n <SpendingDonut\n data={spendingData}\n onSelected={handleSelected}\n selectedId={selectedId}\n totalLabel={spendingCopy.total_spending}\n />\n\n <SpendingLegend data={spendingData} onSelected={handleSelected} selectedId={selectedId} />\n </Stack>\n </Box>\n <Box\n aria-labelledby=\"income-tab\"\n hidden={selectedTab !== 1}\n id=\"income-tabpanel\"\n role=\"tabpanel\"\n >\n <Stack direction=\"row\" gap={16} justifyContent={'center'} p={24}>\n <SpendingDonut\n data={incomeData}\n isIncome={true}\n onSelected={handleSelected}\n selectedId={selectedId}\n totalLabel={spendingCopy.total_income}\n />\n\n <SpendingLegend data={incomeData} onSelected={handleSelected} selectedId={selectedId} />\n </Stack>\n </Box>\n </Box>\n )\n}\n\nexport default observer(MiniSpendingChart)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { endOfMonth } from 'date-fns/endOfMonth'\n\nimport {\n Loader,\n MiniWidgetContainer,\n useAccountStore,\n useCategoryStore,\n useGlobalCopyStore,\n useGlobalUiStore,\n useWidgetLoadTimer,\n} from '../common'\nimport { MiniWidgetProps } from '../core'\n\nimport MiniSpendingChart from './components/MiniSpendingChart'\n\nconst SpendingMiniWidget: React.FC<MiniWidgetProps> = ({ onPrimaryCtaClick, sx = {} }) => {\n const { isAccountDataLoaded, loadAccountData } = useAccountStore()\n const { dateRangeTotalsLoaded, categoriesLoaded, loadCategories, loadDateRangeCategoryTotals } =\n useCategoryStore()\n const { spending: spendingCopy } = useGlobalCopyStore()\n const { isInitialized, selectedAccounts } = useGlobalUiStore()\n\n useWidgetLoadTimer({\n widgetName: 'SpendingMiniWidget',\n isLoaded: dateRangeTotalsLoaded,\n })\n\n React.useEffect(() => {\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n if (!categoriesLoaded) {\n loadCategories().finally()\n }\n }, [])\n\n React.useEffect(() => {\n if (!isInitialized || !isAccountDataLoaded) return\n\n loadDateRangeCategoryTotals(\n selectedAccounts,\n startOfMonth(new Date()),\n endOfMonth(new Date()),\n ).finally()\n }, [isInitialized, isAccountDataLoaded, selectedAccounts])\n\n // Keep spinning until account data and the date-range totals have loaded.\n // Rendering before then would show a misleading $0 while accounts/totals are\n // still in flight. (MEW-3538)\n if (!isInitialized || !isAccountDataLoaded || !dateRangeTotalsLoaded) {\n return <Loader />\n }\n\n return (\n <MiniWidgetContainer\n className=\"mx-exp-spending-miniwidget\"\n onPrimaryCtaClick={onPrimaryCtaClick}\n primaryCtaLabel={spendingCopy.primary_cta}\n primaryCtaLabelAria={spendingCopy.primary_cta_aria}\n sx={{ height: '100%', ...sx }}\n title={spendingCopy.mini_title}\n >\n <MiniSpendingChart />\n </MiniWidgetContainer>\n )\n}\n\nexport default observer(SpendingMiniWidget)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Collapse from '@mui/material/Collapse'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../common'\nimport { SpendingData } from '../utils/SpendingData'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport { formatCurrency } from '../../core/utils/NumberFormatting'\n\ninterface SpendingListProps {\n data: SpendingData\n onSelected: (id: string, isSubcategory?: boolean) => void\n selectedId?: string\n title: string\n}\n\nconst SpendingList: React.FC<SpendingListProps> = ({\n data,\n onSelected,\n selectedId = '',\n title,\n}) => {\n const { spending: spendingCopy } = useGlobalCopyStore()\n const selectedCategory = data.categoryData.find((parent) => parent.guid === selectedId)\n\n return (\n <Stack direction=\"column\" justifyContent=\"center\" maxWidth={400} minWidth={275} width=\"100%\">\n <Text bold={true} id=\"spending-list-title\" sx={{ py: 12 }} variant=\"h3\">\n {`${title} ${spendingCopy.by_category}`}\n </Text>\n\n <Divider aria-hidden=\"true\" />\n\n <List aria-labelledby=\"spending-list-title\">\n {data.categoryData.map((item) => (\n <React.Fragment key={item.guid}>\n <ListItem\n disableGutters={true}\n disablePadding={true}\n sx={{\n borderBottom: 1,\n borderColor: 'divider',\n minHeight: 44,\n }}\n >\n <ListItemButton\n aria-expanded={Boolean(selectedCategory?.guid === item.guid)}\n id={`spending-list-category-${item.guid}`}\n onClick={() => onSelected(item.guid)}\n sx={{ minHeight: 44, px: 8, py: 0 }}\n >\n <Box\n aria-hidden=\"true\"\n borderRadius={4}\n flexShrink={0}\n height={8}\n role=\"presentation\"\n sx={{ backgroundColor: item.color, mr: 8 }}\n width={8}\n />\n <Stack\n alignItems=\"center\"\n direction=\"row\"\n justifyContent=\"space-between\"\n width=\"100%\"\n >\n <Text bold={selectedId === item.guid}>{item.name}</Text>\n <Text bold={selectedId === item.guid} variant=\"body1\">\n {formatCurrency(item.amount, '0,0.00')}\n </Text>\n </Stack>\n </ListItemButton>\n </ListItem>\n\n {item.categoryTotals && item.categoryTotals.length > 0 && (\n <Collapse in={Boolean(selectedCategory?.guid === item.guid)} unmountOnExit={true}>\n <List sx={{ borderBottom: 1, borderColor: 'divider' }}>\n {selectedCategory?.categoryTotals?.map((subItem) => (\n <ListItem\n key={subItem.guid}\n sx={{\n pl: 12,\n py: 0,\n }}\n >\n <ListItemButton\n id={`spending-list-subcategory-${subItem.guid}`}\n onClick={() => onSelected(subItem.guid, true)}\n sx={{ minHeight: 44, px: 8, py: 0 }}\n >\n <Stack direction=\"row\" justifyContent=\"space-between\" width=\"100%\">\n <Text>{subItem.name} </Text>\n <Text>{formatCurrency(subItem.amount, '0,0.00')}</Text>\n </Stack>\n </ListItemButton>\n </ListItem>\n ))}\n </List>\n </Collapse>\n )}\n </React.Fragment>\n ))}\n </List>\n\n <Text bold={true} sx={{ mt: 12, pr: 8, textAlign: 'right' }}>\n {`${spendingCopy.total}: ${formatCurrency(data.totalAmount, '0,0.00')}`}\n </Text>\n </Stack>\n )\n}\n\nexport default observer(SpendingList)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { useCategoryStore, useGlobalCopyStore, useScreenSize } from '../../common'\n\nimport { SpendingData } from '../utils/SpendingData'\nimport SpendingDonut from './SpendingDonut'\nimport SpendingList from './SpendingList'\n\ninterface SpendingChartProps {\n data: SpendingData\n title: string\n onSelected: (id: string, isSubcategory?: boolean) => void\n onViewTransactions: (id: string) => void\n selectedId: string\n}\n\nconst SpendingChart: React.FC<SpendingChartProps> = ({\n data,\n onSelected,\n onViewTransactions,\n selectedId,\n title,\n}) => {\n const { isDesktop, isMobile } = useScreenSize()\n const { dateRangeTotalsLoading } = useCategoryStore()\n const { spending: spendingCopy } = useGlobalCopyStore()\n\n const handleDonutSelected = (id: string) => {\n onSelected(id)\n setTimeout(() => document.getElementById(`spending-list-category-${id}`)?.focus(), 0)\n }\n\n const loadingDonut = (\n <SpendingDonut\n data={{\n categoryData: [],\n donutData: [],\n totalAmount: 0,\n }}\n onSelected={() => {}}\n selectedId={''}\n size={isDesktop ? 400 : 300}\n totalLabel={'Loading ...'}\n variant=\"full\"\n />\n )\n\n return (\n <Stack\n alignItems={isMobile ? 'center' : 'flex-start'}\n direction={isMobile ? 'column' : 'row'}\n gap={{ xs: 16, md: 64, xl: 100 }}\n justifyContent=\"center\"\n pt={50}\n px={8}\n >\n {dateRangeTotalsLoading && loadingDonut}\n {/* Not using a ternary here because it doesn't show the animation */}\n {!dateRangeTotalsLoading && (\n <SpendingDonut\n data={data}\n onSelected={handleDonutSelected}\n onViewTransactions={onViewTransactions}\n selectedId={selectedId}\n size={isDesktop ? 400 : 300}\n totalLabel={spendingCopy.total_amount}\n variant=\"full\"\n />\n )}\n\n <SpendingList data={data} onSelected={onSelected} selectedId={selectedId} title={title} />\n </Stack>\n )\n}\n\nexport default observer(SpendingChart)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport Tab from '@mui/material/Tab'\nimport Tabs from '@mui/material/Tabs'\nimport { useTheme } from '@mui/material'\nimport type { Theme } from '@mui/system'\n\nimport { Icon } from '@mxenabled/mxui'\n\nimport {\n Drawer,\n useAppConfig,\n useCategoryStore,\n useGlobalCopyStore,\n useGlobalUiStore,\n useTransactionStore,\n} from '../../common'\nimport { CategoryGuids } from '../../core/constants'\nimport { Transaction } from '../../core'\nimport { exportTransactionsToCSV } from '../../core/utils/TransactionUtils'\n\nimport { TransactionDetails, TransactionList } from '../../transactions'\nimport { getIncomeData, getSpendingData } from '../utils/SpendingData'\nimport SpendingChart from './SpendingChart'\nimport SpendingTabLabel from './SpendingTabLabel'\n\nconst getIncomeColors = (theme: Theme) => {\n return [\n theme.palette.chartMono.chartMono5,\n theme.palette.chartMono.chartMono4,\n theme.palette.chartMono.chartMono3,\n theme.palette.chartMono.chartMono2,\n theme.palette.chartMono.chartMono1,\n theme.palette.chartMono.chartMono6,\n ]\n}\n\nconst Spending = () => {\n const theme = useTheme()\n const { is_mobile_webview } = useAppConfig()\n\n const { clientConfig } = useAppConfig()\n const { categories, dateRangeCategoryTotals } = useCategoryStore()\n\n const {\n goals: goalsCopy,\n spending: spendingCopy,\n transactions: transactionCopy,\n } = useGlobalCopyStore()\n const { displayedDateRange, selectedAccountGuids } = useGlobalUiStore()\n const {\n setFilter,\n sortedTransactions: transactions,\n sortedTransactionsWithSplits,\n tags,\n } = useTransactionStore()\n\n const accountGuids = clientConfig?.master?.deep_link_params?.account_guids\n const view = clientConfig?.master?.deep_link_params?.view\n\n const [selectedId, setSelectedId] = React.useState('')\n const [selectedTab, setSelectedTab] = React.useState(view === 'income' ? 1 : 0)\n const [transactionGuid, setTransactionGuid] = React.useState('')\n const [transactionsOpen, setTransactionsOpen] = React.useState(false)\n\n const spendingData = React.useMemo(\n () => getSpendingData(categories, goalsCopy, theme, dateRangeCategoryTotals),\n [categories, dateRangeCategoryTotals],\n )\n\n const incomeData = React.useMemo(\n () => getIncomeData(categories, dateRangeCategoryTotals, getIncomeColors(theme)),\n [categories, dateRangeCategoryTotals],\n )\n\n const transaction = React.useMemo(\n () => transactions.find((t) => t.guid === transactionGuid),\n [transactionGuid, transactions],\n )\n\n const handleTabChange = (_event: React.SyntheticEvent, newValue: number) => {\n setSelectedTab(newValue)\n setSelectedId('')\n }\n\n const handleSelected = (id: string, isSubcategory: boolean = false) => {\n if (isSubcategory) {\n handleSelectedSubcategory(id)\n } else {\n setSelectedId(selectedId === id || id === '0' ? '' : id)\n }\n }\n\n const handleSelectedSubcategory = (id: string) => {\n const transactionFilter = {\n accounts: accountGuids ? accountGuids : selectedAccountGuids,\n dateRange: displayedDateRange,\n }\n\n setFilter({\n ...transactionFilter,\n custom: (t: Transaction) =>\n selectedId === 'other' ? t.top_level_category_guid === id : t.category_guid === id,\n showSplits: true,\n })\n\n setTransactionsOpen(true)\n }\n\n const handleViewTransactions = (id: string) => {\n const transactionFilter = {\n accounts: accountGuids ? accountGuids : selectedAccountGuids,\n dateRange: displayedDateRange,\n }\n\n if (selectedTab === 0) {\n // Spending\n if (id === 'other') {\n const other = spendingData.categoryData.find((c) => c.guid === 'other')\n setFilter({\n ...transactionFilter,\n custom: (t: Transaction) =>\n Boolean(other?.categoryTotals?.find((ct) => ct.guid === t.top_level_category_guid)),\n })\n } else {\n setFilter({\n ...transactionFilter,\n custom: (t: Transaction) =>\n id\n ? t.top_level_category_guid === id\n : t.top_level_category_guid !== CategoryGuids.INCOME &&\n t.category_guid !== CategoryGuids.INCOME &&\n t.top_level_category_guid !== CategoryGuids.INVESTMENTS &&\n t.top_level_category_guid !== CategoryGuids.TRANSFER,\n showSplits: Boolean(id),\n })\n }\n } else {\n // Income\n setFilter({\n ...transactionFilter,\n custom: (t: Transaction) =>\n id\n ? t.category_guid === id\n : t.category_guid === CategoryGuids.INCOME ||\n t.top_level_category_guid === CategoryGuids.INCOME,\n })\n }\n\n setTransactionsOpen(true)\n }\n\n const handleExportToCsv = () => {\n exportTransactionsToCSV(sortedTransactionsWithSplits, tags)\n }\n\n return (\n <Box>\n <Tabs onChange={handleTabChange} value={selectedTab} variant=\"fullWidth\">\n <Tab\n label={\n <SpendingTabLabel\n amount={spendingData.totalAmount}\n label={spendingCopy.spend_tab_title}\n />\n }\n />\n <Tab\n label={\n <SpendingTabLabel\n amount={incomeData.totalAmount}\n label={spendingCopy.income_tab_title}\n />\n }\n />\n </Tabs>\n {selectedTab === 0 && (\n <SpendingChart\n data={spendingData}\n onSelected={handleSelected}\n onViewTransactions={handleViewTransactions}\n selectedId={selectedId}\n title={spendingCopy.spend_tab_title}\n />\n )}\n {selectedTab === 1 && (\n <SpendingChart\n data={incomeData}\n onSelected={handleSelected}\n onViewTransactions={handleViewTransactions}\n selectedId={selectedId}\n title={spendingCopy.income_tab_title}\n />\n )}\n <Drawer\n ariaLabelClose={spendingCopy.close_drawer_aria}\n isOpen={transactionsOpen}\n onClose={() => setTransactionsOpen(false)}\n title={spendingCopy.transactions_drawer_title}\n >\n <Stack>\n {!is_mobile_webview && transactions.length > 0 && (\n <Stack direction=\"row\" justifyContent=\"right\" mb={-24} mr={8} mt={8} zIndex={1}>\n <Button\n onClick={handleExportToCsv}\n startIcon={<Icon name=\"ios_share\" />}\n variant=\"text\"\n >\n {transactionCopy.export_csv_btn}\n </Button>\n </Stack>\n )}\n <TransactionList onClick={setTransactionGuid} />\n </Stack>\n </Drawer>\n <Drawer\n ariaLabelClose={spendingCopy.close_drawer_aria}\n isOpen={Boolean(transaction)}\n onClose={() => setTransactionGuid('')}\n title={spendingCopy.transaction_details_drawer_title}\n >\n {transaction && <TransactionDetails transaction={transaction} />}\n </Drawer>\n </Box>\n )\n}\n\nexport default observer(Spending)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { endOfMonth } from 'date-fns/endOfMonth'\n\nimport Box from '@mui/material/Box'\n\nimport type { DateRange } from '@mui/x-date-pickers-pro'\n\nimport {\n Loader,\n useAccountStore,\n useGlobalUiStore,\n WidgetContainer,\n useEvent,\n ANALYTICS_EVENTS,\n useGlobalCopyStore,\n useAppConfig,\n useCategoryStore,\n useTransactionStore,\n useWidgetLoadTimer,\n} from '../common'\n\nimport type { WidgetProps } from '../core'\n\nimport Spending from './components/Spending'\nimport { parseISO } from 'date-fns/parseISO'\n\ninterface RSpendingWidgetProps extends WidgetProps {\n onBackClick?: () => void\n}\n\nconst SpendingWidget: React.FC<RSpendingWidgetProps> = ({ onBackClick, onMenuClick, sx = {} }) => {\n const { isAccountDataLoaded, loadAccountData } = useAccountStore()\n const { categoriesLoaded, dateRangeTotalsLoaded, loadCategories, loadDateRangeCategoryTotals } =\n useCategoryStore()\n const { isTransactionDataLoaded, loadTransactionData } = useTransactionStore()\n const { spending: spendingCopy } = useGlobalCopyStore()\n const { displayedDateRange, isInitialized, setDisplayedDate, selectedAccounts } =\n useGlobalUiStore()\n const { onEvent } = useEvent()\n\n const { clientConfig } = useAppConfig()\n\n useWidgetLoadTimer({\n widgetName: 'SpendingWidget',\n isLoaded: dateRangeTotalsLoaded,\n })\n\n React.useEffect(() => {\n const dlp = clientConfig?.master?.deep_link_params\n\n const date_range = dlp?.date_range\n ? ([parseISO(dlp.date_range.from), parseISO(dlp.date_range.to)] as DateRange<Date>)\n : ([startOfMonth(startOfToday()), endOfMonth(startOfToday())] as DateRange<Date>)\n\n const startDate = date_range[0] as Date\n const endDate = date_range[1] as Date\n\n setDisplayedDate(startDate, endDate)\n\n if (!isAccountDataLoaded) {\n loadAccountData().finally()\n }\n if (!categoriesLoaded) {\n loadCategories().finally()\n }\n if (!isTransactionDataLoaded) {\n loadTransactionData().finally()\n }\n\n // Load with the dates we just computed rather than reading from the store,\n // which may still hold a stale range set by a previously visited widget.\n if (isInitialized && isAccountDataLoaded) {\n loadDateRangeCategoryTotals(selectedAccounts, startDate, endDate).finally()\n }\n\n onEvent(ANALYTICS_EVENTS.SPENDING_VIEW)\n }, [])\n\n React.useEffect(() => {\n if (isInitialized && isAccountDataLoaded) {\n loadDateRangeCategoryTotals(\n selectedAccounts,\n displayedDateRange.start,\n displayedDateRange.end,\n ).finally()\n }\n }, [displayedDateRange, isInitialized, isAccountDataLoaded, selectedAccounts])\n\n const handleDateChanged = (range: DateRange<Date>) => {\n setDisplayedDate(range[0] as Date, range[1] as Date)\n }\n\n if (!isInitialized || !isAccountDataLoaded || !dateRangeTotalsLoaded) {\n return <Loader />\n }\n\n return (\n <WidgetContainer\n calendarActions={{ onRangeChanged: handleDateChanged }}\n onAccountsFilterClick={() => onEvent(ANALYTICS_EVENTS.SPENDING_CLICK_FILTER)}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n sx={sx}\n title={spendingCopy.title}\n >\n <Box width=\"100%\">\n <Spending />\n </Box>\n </WidgetContainer>\n )\n}\n\nexport default observer(SpendingWidget)\n"],"names":["SpendingTabLabel","amount","label","variant","jsxs","Stack","jsx","Text","formatCurrency","MiniSpendingChart","theme","useTheme","goalsCopy","spendingCopy","useGlobalCopyStore","categories","dateRangeCategoryTotals","useCategoryStore","incomeColors","React","selectedId","setSelectedId","selectedTab","setSelectedTab","spendingData","getSpendingData","incomeData","getIncomeData","handleTabChange","_event","newValue","handleSelected","id","Box","Tabs","Tab","SpendingDonut","SpendingLegend","MiniSpendingChart$1","observer","SpendingMiniWidget","onPrimaryCtaClick","sx","isAccountDataLoaded","loadAccountData","useAccountStore","dateRangeTotalsLoaded","categoriesLoaded","loadCategories","loadDateRangeCategoryTotals","isInitialized","selectedAccounts","useGlobalUiStore","useWidgetLoadTimer","startOfMonth","endOfMonth","Loader","MiniWidgetContainer","SpendingMiniWidget_default","SpendingList","data","onSelected","title","selectedCategory","parent","Divider","List","item","ListItem","ListItemButton","Collapse","subItem","SpendingList$1","SpendingChart","onViewTransactions","isDesktop","isMobile","useScreenSize","dateRangeTotalsLoading","SpendingChart$1","getIncomeColors","Spending","is_mobile_webview","useAppConfig","clientConfig","transactionCopy","displayedDateRange","selectedAccountGuids","setFilter","transactions","sortedTransactionsWithSplits","tags","useTransactionStore","accountGuids","view","transactionGuid","setTransactionGuid","transactionsOpen","setTransactionsOpen","transaction","t","isSubcategory","handleSelectedSubcategory","handleViewTransactions","transactionFilter","other","c","ct","CategoryGuids","handleExportToCsv","exportTransactionsToCSV","Drawer","Button","Icon","TransactionList","TransactionDetails","Spending$1","SpendingWidget","onBackClick","onMenuClick","isTransactionDataLoaded","loadTransactionData","setDisplayedDate","onEvent","useEvent","dlp","date_range","parseISO","startOfToday","startDate","endDate","ANALYTICS_EVENTS","handleDateChanged","range","WidgetContainer","SpendingWidget_default"],"mappings":"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"}
|