@mx-cartographer/experiences 4.0.14-alpha.JB1 → 4.0.14-alpha.JB2
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/AccountStore-B23-oV1B.mjs +244 -0
- package/dist/AccountStore-B23-oV1B.mjs.map +1 -0
- package/dist/BeatApi-BxXgbSJY.mjs +99 -0
- package/dist/BeatApi-BxXgbSJY.mjs.map +1 -0
- package/dist/BudgetUtil-BSn9Zr71.mjs +208 -0
- package/dist/BudgetUtil-BSn9Zr71.mjs.map +1 -0
- package/dist/CashflowApi-zcebgnO1.mjs +103 -0
- package/dist/CashflowApi-zcebgnO1.mjs.map +1 -0
- package/dist/CashflowStore-gPEEBiXo.mjs +53 -0
- package/dist/CashflowStore-gPEEBiXo.mjs.map +1 -0
- package/dist/Categories-XVFviD23.mjs +117 -0
- package/dist/Categories-XVFviD23.mjs.map +1 -0
- package/dist/CategoryStore-CSNSMNA6.mjs +298 -0
- package/dist/CategoryStore-CSNSMNA6.mjs.map +1 -0
- package/dist/ConnectMiniWidget-Ep65CtHH.mjs +10854 -0
- package/dist/ConnectMiniWidget-Ep65CtHH.mjs.map +1 -0
- package/dist/DebtsStore-Duf3n1vZ.mjs +127 -0
- package/dist/DebtsStore-Duf3n1vZ.mjs.map +1 -0
- package/dist/Donut-DgMeKScZ.mjs +53 -0
- package/dist/Donut-DgMeKScZ.mjs.map +1 -0
- package/dist/Fetch-DpUi1_Dx.mjs +99 -0
- package/dist/Fetch-DpUi1_Dx.mjs.map +1 -0
- package/dist/GoalStore-BYoRLx99.mjs +128 -0
- package/dist/GoalStore-BYoRLx99.mjs.map +1 -0
- package/dist/MerchantStore-RhLvDvX-.mjs +118 -0
- package/dist/MerchantStore-RhLvDvX-.mjs.map +1 -0
- package/dist/NetWorthStore-syD1VnxE.mjs +66 -0
- package/dist/NetWorthStore-syD1VnxE.mjs.map +1 -0
- package/dist/NotificationStore-CqTYHfJC.mjs +141 -0
- package/dist/NotificationStore-CqTYHfJC.mjs.map +1 -0
- package/dist/RecurringActivityStore-B_COvGWG.mjs +304 -0
- package/dist/RecurringActivityStore-B_COvGWG.mjs.map +1 -0
- package/dist/StackedLineChart-CCqGRwvs.mjs +342 -0
- package/dist/StackedLineChart-CCqGRwvs.mjs.map +1 -0
- package/dist/TransactionStore-BUrjBWkk.mjs +478 -0
- package/dist/TransactionStore-BUrjBWkk.mjs.map +1 -0
- package/dist/index.es.js +12 -17869
- package/dist/index.es.js.map +1 -1
- package/dist/index.es10.js +107 -0
- package/dist/index.es10.js.map +1 -0
- package/dist/index.es11.js +159 -0
- package/dist/index.es11.js.map +1 -0
- package/dist/index.es12.js +483 -0
- package/dist/index.es12.js.map +1 -0
- package/dist/index.es13.js +620 -0
- package/dist/index.es13.js.map +1 -0
- package/dist/index.es14.js +788 -0
- package/dist/index.es14.js.map +1 -0
- package/dist/index.es15.js +891 -0
- package/dist/index.es15.js.map +1 -0
- package/dist/index.es16.js +962 -0
- package/dist/index.es16.js.map +1 -0
- package/dist/index.es17.js +1904 -0
- package/dist/index.es17.js.map +1 -0
- package/dist/index.es2.js +11 -0
- package/dist/index.es2.js.map +1 -0
- package/dist/index.es3.js +10 -0
- package/dist/index.es3.js.map +1 -0
- package/dist/index.es4.js +9 -0
- package/dist/index.es4.js.map +1 -0
- package/dist/index.es5.js +7 -0
- package/dist/index.es5.js.map +1 -0
- package/dist/index.es6.js +7 -0
- package/dist/index.es6.js.map +1 -0
- package/dist/index.es7.js +10 -0
- package/dist/index.es7.js.map +1 -0
- package/dist/index.es8.js +10 -0
- package/dist/index.es8.js.map +1 -0
- package/dist/index.es9.js +18 -0
- package/dist/index.es9.js.map +1 -0
- package/dist/useCombineEvents-CZUDHE96.mjs +170 -0
- package/dist/useCombineEvents-CZUDHE96.mjs.map +1 -0
- package/dist/usePrevious-BLb3umpI.mjs +11 -0
- package/dist/usePrevious-BLb3umpI.mjs.map +1 -0
- package/package.json +2 -3
- package/src/accounts/AccountsMiniWidget.tsx +0 -62
- package/src/accounts/AccountsWidget.tsx +0 -93
- package/src/accounts/ConnectMiniWidget.tsx +0 -36
- package/src/accounts/__tests__/Accounts.test.tsx +0 -561
- package/src/accounts/api/AccountApi.ts +0 -74
- package/src/accounts/api/__mocks__/AccountApi.ts +0 -46
- package/src/accounts/components/AccountListItem.tsx +0 -102
- package/src/accounts/components/AccountsList.tsx +0 -133
- package/src/accounts/components/ConnectImage.tsx +0 -314
- package/src/accounts/components/ConnectMiniWidgetCard.tsx +0 -41
- package/src/accounts/components/ConnectStatus.tsx +0 -44
- package/src/accounts/components/ConnectionStatusIcons.tsx +0 -26
- package/src/accounts/components/ConnectionsDrawer.tsx +0 -84
- package/src/accounts/components/detailsdrawer/Accounts/AccountActions.tsx +0 -177
- package/src/accounts/components/detailsdrawer/Accounts/AccountActionsRow.tsx +0 -33
- package/src/accounts/components/detailsdrawer/Accounts/AccountConnection.tsx +0 -139
- package/src/accounts/components/detailsdrawer/Accounts/AccountDetailEdit.tsx +0 -162
- package/src/accounts/components/detailsdrawer/Accounts/AccountDetails.tsx +0 -98
- package/src/accounts/components/detailsdrawer/Accounts/AccountDetailsChart.tsx +0 -63
- package/src/accounts/components/detailsdrawer/Accounts/AccountDetailsContent.tsx +0 -52
- package/src/accounts/components/detailsdrawer/Accounts/AccountDetailsHeader.tsx +0 -71
- package/src/accounts/components/detailsdrawer/Accounts/AccountDetailsTab.tsx +0 -25
- package/src/accounts/components/detailsdrawer/Accounts/ConnectionErrorMessage.tsx +0 -99
- package/src/accounts/components/detailsdrawer/Transactions/TransactionsTab.tsx +0 -51
- package/src/accounts/constants/Accounts.ts +0 -11
- package/src/accounts/hooks/useGetMergeableAccounts.tsx +0 -13
- package/src/accounts/hooks/useUiStore.ts +0 -12
- package/src/accounts/index.ts +0 -8
- package/src/accounts/stores/AccountStore.ts +0 -220
- package/src/accounts/stores/UiStore.ts +0 -18
- package/src/accounts/stores/__tests__/AccountStore.test.ts +0 -204
- package/src/accounts/utils/AccountFields.tsx +0 -248
- package/src/accounts/utils/Accounts.ts +0 -28
- package/src/accounts/utils/__tests__/AccountFieldsUtils.test.tsx +0 -215
- package/src/accounts/utils/__tests__/AccountsUtils.test.tsx +0 -104
- package/src/accounts/utils/getConnectionMessages.tsx +0 -198
- package/src/accounts/utils/index.ts +0 -1
- package/src/budgets/BubbleBudgetsMiniWidget.tsx +0 -57
- package/src/budgets/BubbleBudgetsWidget.tsx +0 -154
- package/src/budgets/__tests__/BubbleBudgetsWidget.test.tsx +0 -40
- package/src/budgets/__tests__/BudgetList.test.tsx +0 -38
- package/src/budgets/__tests__/BudgetsStore.test.tsx +0 -48
- package/src/budgets/__tests__/Overview.test.tsx +0 -38
- package/src/budgets/api/BudgetsApi.ts +0 -43
- package/src/budgets/api/__mocks__/BudgetsApi.ts +0 -7
- package/src/budgets/components/AddBudgets.tsx +0 -50
- package/src/budgets/components/BubbleBudgets.tsx +0 -73
- package/src/budgets/components/BubbleChart.tsx +0 -50
- package/src/budgets/components/BudgetDetailsDrawer.tsx +0 -134
- package/src/budgets/components/BudgetList.tsx +0 -50
- package/src/budgets/components/Overview.tsx +0 -156
- package/src/budgets/components/ZeroState.tsx +0 -23
- package/src/budgets/components/addbudget/Header.tsx +0 -59
- package/src/budgets/components/addbudget/RecalculateBudgetRow.tsx +0 -53
- package/src/budgets/components/addbudget/RecalculateBudgets.tsx +0 -69
- package/src/budgets/components/addbudget/UnbudgetedRow.tsx +0 -57
- package/src/budgets/components/bubblechart/Bubble.tsx +0 -148
- package/src/budgets/components/bubblechart/Mercury.tsx +0 -57
- package/src/budgets/components/budgetdetails/AddSubBudget.tsx +0 -111
- package/src/budgets/components/budgetdetails/BudgetDetails.tsx +0 -93
- package/src/budgets/components/budgetdetails/Header.tsx +0 -48
- package/src/budgets/components/budgetdetails/SubBudgetList.tsx +0 -148
- package/src/budgets/components/budgetlist/BudgetRow.tsx +0 -63
- package/src/budgets/components/budgetlist/SubBudgetRow.tsx +0 -64
- package/src/budgets/components/budgetlist/SubBudgetZeroState.tsx +0 -22
- package/src/budgets/components/shared/BudgetAmount.tsx +0 -54
- package/src/budgets/index.ts +0 -2
- package/src/budgets/store/BudgetsStore.ts +0 -183
- package/src/budgets/utils/BubblesSVG.ts +0 -142
- package/src/budgets/utils/BudgetUtil.ts +0 -140
- package/src/cashflow/CashflowMiniWidget.tsx +0 -25
- package/src/cashflow/CashflowOnboarding.tsx +0 -298
- package/src/cashflow/CashflowWidget.tsx +0 -111
- package/src/cashflow/api/CashflowApi.ts +0 -62
- package/src/cashflow/api/__mocks__/CashflowApi.ts +0 -15
- package/src/cashflow/components/CashflowAmountHeading.tsx +0 -46
- package/src/cashflow/components/CashflowContent.tsx +0 -63
- package/src/cashflow/components/CashflowHeading.tsx +0 -172
- package/src/cashflow/components/CashflowWidgetContent.tsx +0 -225
- package/src/cashflow/components/DetailsExpenseHeader.tsx +0 -47
- package/src/cashflow/components/DetailsExpenseRow.tsx +0 -46
- package/src/cashflow/components/DetailsFooter.tsx +0 -28
- package/src/cashflow/components/DetailsTab.tsx +0 -128
- package/src/cashflow/components/RemainingCash.tsx +0 -44
- package/src/cashflow/components/SummaryTab.tsx +0 -247
- package/src/cashflow/components/onboarding/StepOne.tsx +0 -90
- package/src/cashflow/components/onboarding/StepTwo.tsx +0 -23
- package/src/cashflow/context/hooks.tsx +0 -12
- package/src/cashflow/images/cashflow-onboarding.png +0 -0
- package/src/cashflow/images/loading-animation.gif +0 -0
- package/src/cashflow/index.ts +0 -5
- package/src/cashflow/stores/CashflowStore.ts +0 -26
- package/src/cashflow/stores/UiStore.ts +0 -48
- package/src/cashflow/stores/__tests__/CashflowStore.test.ts +0 -16
- package/src/cashflow/util/Filters.ts +0 -15
- package/src/categories/components/CategoryList.tsx +0 -64
- package/src/categories/components/CategoryRow.tsx +0 -68
- package/src/categories/components/CategorySelector.tsx +0 -80
- package/src/categories/components/CategorySelectorDrawer.tsx +0 -41
- package/src/categories/components/CustomCategories/AddSubcategory.tsx +0 -65
- package/src/categories/components/CustomCategories/CustomCategoryModal.tsx +0 -99
- package/src/categories/components/CustomCategories/DeleteSubcategory.tsx +0 -49
- package/src/categories/components/CustomCategories/RenameSubcategory.tsx +0 -48
- package/src/categories/components/CustomCategories/index.ts +0 -4
- package/src/categories/components/SubcategoryList.tsx +0 -47
- package/src/categories/components/SubcategoryRow.tsx +0 -123
- package/src/categories/constants/Analytics.ts +0 -89
- package/src/categories/constants/OnClickEvents.ts +0 -13
- package/src/categories/context/hooks.ts +0 -12
- package/src/categories/index.ts +0 -5
- package/src/categories/stores/CategoryStore.ts +0 -184
- package/src/categories/stores/UiStore.ts +0 -36
- package/src/categories/stores/__tests__/CategoryStore.test.ts +0 -54
- package/src/categories/util/CategoryUtil.ts +0 -136
- package/src/common/api/AnalyticsApi.ts +0 -49
- package/src/common/api/BeatApi.ts +0 -32
- package/src/common/api/CategoryApi.ts +0 -52
- package/src/common/api/GlobalCopyApi.ts +0 -17
- package/src/common/api/LocalizedCopyApi.ts +0 -21
- package/src/common/api/NotificationApi.ts +0 -40
- package/src/common/api/ScheduledPaymentsApi.ts +0 -37
- package/src/common/api/UserApi.ts +0 -23
- package/src/common/api/WidgetApi.ts +0 -15
- package/src/common/api/__mocks__/BeatApi.ts +0 -8
- package/src/common/api/__mocks__/CategoryApi.ts +0 -15
- package/src/common/api/__mocks__/GlobalCopyApi.ts +0 -7
- package/src/common/api/__mocks__/NotificationApi.ts +0 -11
- package/src/common/api/__mocks__/ScheduledPaymentsApi.ts +0 -7
- package/src/common/api/__mocks__/UserApi.ts +0 -9
- package/src/common/api/__mocks__/WidgetApi.ts +0 -11
- package/src/common/api/index.ts +0 -9
- package/src/common/components/ConnectDrawer.tsx +0 -87
- package/src/common/components/CurrencyInput.tsx +0 -147
- package/src/common/components/CurrencyText.tsx +0 -44
- package/src/common/components/DataRow.tsx +0 -52
- package/src/common/components/IconBacking.tsx +0 -41
- package/src/common/components/InformationTooltip.tsx +0 -52
- package/src/common/components/ListItemWrapper.tsx +0 -49
- package/src/common/components/Loader.tsx +0 -24
- package/src/common/components/MiniWidgetContainer.tsx +0 -64
- package/src/common/components/ResponsiveButton.tsx +0 -65
- package/src/common/components/SearchBox.tsx +0 -64
- package/src/common/components/SelectionBox.tsx +0 -64
- package/src/common/components/SubheaderRow.tsx +0 -22
- package/src/common/components/TabContentContainer.tsx +0 -28
- package/src/common/components/WidgetContainer.tsx +0 -239
- package/src/common/components/accountfilter/AccountFilter.tsx +0 -133
- package/src/common/components/accountfilter/AccountFilterOptions.tsx +0 -263
- package/src/common/components/accountfilter/index.ts +0 -1
- package/src/common/components/barchart/Bar.tsx +0 -123
- package/src/common/components/barchart/BarChart.tsx +0 -136
- package/src/common/components/barchart/BarColumn.tsx +0 -150
- package/src/common/components/barchart/Legend.tsx +0 -60
- package/src/common/components/barchart/Util.ts +0 -54
- package/src/common/components/barchart/__tests__/BarChart.test.tsx +0 -46
- package/src/common/components/barchart/index.ts +0 -1
- package/src/common/components/calendar/Calendar.tsx +0 -223
- package/src/common/components/calendar/Day.tsx +0 -127
- package/src/common/components/calendar/Header.tsx +0 -58
- package/src/common/components/calendar/__tests__/Calendar.test.tsx +0 -50
- package/src/common/components/calendar/index.ts +0 -1
- package/src/common/components/calendar/upcomingActivity/CalendarIcons.tsx +0 -40
- package/src/common/components/charts/Donut.tsx +0 -82
- package/src/common/components/charts/LineChart.tsx +0 -204
- package/src/common/components/charts/StackedLineChart.tsx +0 -292
- package/src/common/components/charts/StatusBar.tsx +0 -41
- package/src/common/components/charts/index.ts +0 -4
- package/src/common/components/charts/linechart/CustomLegend.tsx +0 -49
- package/src/common/components/charts/linechart/CustomLine.tsx +0 -31
- package/src/common/components/charts/linechart/CustomMark.tsx +0 -68
- package/src/common/components/charts/stackedlinechart/CategoryIconLabel.tsx +0 -29
- package/src/common/components/charts/stackedlinechart/CustomAreaTooltip.tsx +0 -115
- package/src/common/components/charts/stackedlinechart/CustomLegend.tsx +0 -73
- package/src/common/components/charts/stackedlinechart/CustomPointTooltip.tsx +0 -41
- package/src/common/components/charts/stackedlinechart/utils.ts +0 -13
- package/src/common/components/daterangeselector/DateRangeSelector.tsx +0 -383
- package/src/common/components/daterangeselector/index.ts +0 -1
- package/src/common/components/dialog/Dialog.tsx +0 -92
- package/src/common/components/dialog/index.ts +0 -1
- package/src/common/components/donuts/MultiSegmentDonut.tsx +0 -89
- package/src/common/components/donuts/SingleSegmentDonut.tsx +0 -75
- package/src/common/components/donuts/index.ts +0 -2
- package/src/common/components/drawer/Drawer.tsx +0 -97
- package/src/common/components/drawer/Header.tsx +0 -64
- package/src/common/components/drawer/index.ts +0 -1
- package/src/common/components/index.ts +0 -22
- package/src/common/constants/Account.ts +0 -30
- package/src/common/constants/Analytics.ts +0 -70
- package/src/common/constants/ApiEndpoints.ts +0 -30
- package/src/common/constants/Category.ts +0 -302
- package/src/common/constants/Connect.ts +0 -2
- package/src/common/constants/DateFormats.ts +0 -122
- package/src/common/constants/Donut.ts +0 -2
- package/src/common/constants/Numbers.ts +0 -6
- package/src/common/constants/ScheduledPayment.ts +0 -21
- package/src/common/constants/Sizes.ts +0 -7
- package/src/common/constants/SpendingPlan.ts +0 -17
- package/src/common/constants/Table.ts +0 -13
- package/src/common/constants/index.ts +0 -21
- package/src/common/context/GlobalDataProvider.tsx +0 -31
- package/src/common/context/WidgetContainerProvider.tsx +0 -24
- package/src/common/context/__mocks__/GlobalDataProvider.tsx +0 -25
- package/src/common/context/hooks.tsx +0 -57
- package/src/common/context/index.ts +0 -22
- package/src/common/hooks/__tests__/useDimensions.test.tsx +0 -190
- package/src/common/hooks/index.ts +0 -3
- package/src/common/hooks/useCombineEvents.tsx +0 -53
- package/src/common/hooks/useDimensions.tsx +0 -78
- package/src/common/hooks/usePrevious.tsx +0 -10
- package/src/common/hooks/useScreenSize.tsx +0 -15
- package/src/common/index.ts +0 -23
- package/src/common/stores/ConnectStore.ts +0 -26
- package/src/common/stores/GlobalCopyStore.ts +0 -36
- package/src/common/stores/GlobalStore.ts +0 -83
- package/src/common/stores/GlobalUiStore.ts +0 -66
- package/src/common/stores/UserStore.ts +0 -45
- package/src/common/stores/__tests__/GlobalCopyStore.test.ts +0 -23
- package/src/common/stores/__tests__/GlobalStore.test.ts +0 -24
- package/src/common/stores/index.ts +0 -3
- package/src/common/types/Account.ts +0 -406
- package/src/common/types/Activity.ts +0 -31
- package/src/common/types/Analytics.ts +0 -70
- package/src/common/types/Beat.ts +0 -71
- package/src/common/types/Budget.ts +0 -29
- package/src/common/types/Cashflow.ts +0 -110
- package/src/common/types/Category.ts +0 -68
- package/src/common/types/Date.ts +0 -2
- package/src/common/types/Debt.ts +0 -19
- package/src/common/types/Expense.ts +0 -20
- package/src/common/types/Global.ts +0 -13
- package/src/common/types/GlobalCopy.ts +0 -37
- package/src/common/types/Goal.ts +0 -59
- package/src/common/types/Institution.ts +0 -11
- package/src/common/types/LocalizedContent.ts +0 -9
- package/src/common/types/Merchant.ts +0 -6
- package/src/common/types/Notification.ts +0 -15
- package/src/common/types/ScheduledPayment.ts +0 -15
- package/src/common/types/ScreenSize.tsx +0 -4
- package/src/common/types/SpendingPlan.ts +0 -48
- package/src/common/types/Transaction.ts +0 -91
- package/src/common/types/User.ts +0 -20
- package/src/common/types/Widgets.ts +0 -11
- package/src/common/types/index.ts +0 -93
- package/src/common/types/localization/AccountFilterCopy.ts +0 -12
- package/src/common/types/localization/AccountTypeCopy.ts +0 -16
- package/src/common/types/localization/AccountsCopy.ts +0 -113
- package/src/common/types/localization/BudgetsCopy.ts +0 -52
- package/src/common/types/localization/CashflowCopy.ts +0 -77
- package/src/common/types/localization/CategoryCopy.ts +0 -18
- package/src/common/types/localization/CommonCopy.ts +0 -30
- package/src/common/types/localization/ConnectCopy.ts +0 -74
- package/src/common/types/localization/CurrencyInputCopy.ts +0 -6
- package/src/common/types/localization/DateRangePickerCopy.ts +0 -23
- package/src/common/types/localization/GoalsCopy.ts +0 -37
- package/src/common/types/localization/InsightsFeedCopy.ts +0 -26
- package/src/common/types/localization/MicroInsightsCopy.ts +0 -28
- package/src/common/types/localization/NetWorthCopy.ts +0 -14
- package/src/common/types/localization/NotificationsCopy.ts +0 -7
- package/src/common/types/localization/RecurringCopy.ts +0 -76
- package/src/common/types/localization/SpendingCopy.ts +0 -16
- package/src/common/types/localization/TransactionsCopy.ts +0 -81
- package/src/common/types/localization/TrendsCopy.ts +0 -10
- package/src/common/types/localization/index.ts +0 -19
- package/src/common/utils/AccountFilter.ts +0 -45
- package/src/common/utils/Analytics.ts +0 -51
- package/src/common/utils/Categories.ts +0 -75
- package/src/common/utils/DateUtil.ts +0 -67
- package/src/common/utils/Fetch.ts +0 -115
- package/src/common/utils/Localization.ts +0 -67
- package/src/common/utils/NumberFormatting.ts +0 -65
- package/src/common/utils/__tests__/Fetch.test.tsx +0 -34
- package/src/common/utils/index.ts +0 -18
- package/src/dashboard/Dashboard.tsx +0 -92
- package/src/dashboard/Greeting.tsx +0 -75
- package/src/dashboard/__tests__/Dashboard.test.tsx +0 -84
- package/src/dashboard/constants/Dashboard.ts +0 -4
- package/src/dashboard/index.ts +0 -3
- package/src/dashboard/types/DashboardTypes.ts +0 -9
- package/src/debts/DebtsWidget.tsx +0 -90
- package/src/debts/components/DebtsChart.tsx +0 -190
- package/src/debts/components/DebtsTable.tsx +0 -209
- package/src/debts/components/SnowballCard.tsx +0 -70
- package/src/debts/components/SnowballDrawer.tsx +0 -384
- package/src/debts/components/debtstable/AccountCell.tsx +0 -25
- package/src/debts/components/debtstable/PriorityCell.tsx +0 -46
- package/src/debts/index.ts +0 -4
- package/src/debts/store/DebtsStore.ts +0 -20
- package/src/debts/utils/DebtStore.ts +0 -75
- package/src/debts/utils/DebtsWidget.ts +0 -32
- package/src/debts/utils/SnowballCard.tsx +0 -48
- package/src/goals/GoalsWidget.tsx +0 -128
- package/src/goals/api/GoalApi.ts +0 -29
- package/src/goals/components/GoalDetails.tsx +0 -240
- package/src/goals/components/GoalList.tsx +0 -101
- package/src/goals/components/GoalStatusCard.tsx +0 -87
- package/src/goals/components/TabTitle.tsx +0 -21
- package/src/goals/constants/CopyKeys.ts +0 -29
- package/src/goals/index.ts +0 -2
- package/src/goals/stores/GoalStore.ts +0 -47
- package/src/goals/util/GoalsUtil.ts +0 -61
- package/src/index.ts +0 -17
- package/src/insights/README.md +0 -16
- package/src/insights/contexts/ToastContext.tsx +0 -62
- package/src/insights/index.ts +0 -5
- package/src/insights/settings/SettingsDrawer.tsx +0 -40
- package/src/insights/settings/__tests__/SettingsDrawer.test.tsx +0 -50
- package/src/insights/settings/components/PulseSubheaderRow.tsx +0 -34
- package/src/insights/settings/components/SettingsItem.tsx +0 -55
- package/src/insights/settings/components/Toast.tsx +0 -69
- package/src/insights/settings/hiddeninsights/__tests__/HiddenInsightsDrawer.test.tsx +0 -108
- package/src/insights/settings/hiddeninsights/__tests__/SubCategoryDrawer.test.tsx +0 -150
- package/src/insights/settings/hiddeninsights/components/CategoryEmptyState.tsx +0 -50
- package/src/insights/settings/hiddeninsights/components/HiddenInsightsDrawer.tsx +0 -222
- package/src/insights/settings/hiddeninsights/components/HiddenInsightsDrawerWrapper.tsx +0 -24
- package/src/insights/settings/hiddeninsights/components/SubCategoryDrawer.tsx +0 -256
- package/src/insights/settings/hiddeninsights/images/no-insights.png +0 -0
- package/src/insights/settings/hiddeninsights/types/index.ts +0 -74
- package/src/insights/settings/manageaccounts/__tests__/AccountGroup.test.tsx +0 -92
- package/src/insights/settings/manageaccounts/__tests__/ManageAccountsDrawer.test.tsx +0 -83
- package/src/insights/settings/manageaccounts/components/AccountGroup.tsx +0 -109
- package/src/insights/settings/manageaccounts/components/ManageAccountsDrawer.tsx +0 -63
- package/src/insights/settings/manageaccounts/types/index.ts +0 -13
- package/src/insights/settings/types/index.ts +0 -4
- package/src/insights/store/BeatStore.ts +0 -25
- package/src/insights/utils/beatTemplateCategories.ts +0 -103
- package/src/merchants/api/MerchantApi.ts +0 -33
- package/src/merchants/components/MerchantLookup.tsx +0 -117
- package/src/merchants/index.ts +0 -2
- package/src/merchants/stores/MerchantStore.ts +0 -42
- package/src/microinsights/analytics.ts +0 -31
- package/src/microinsights/components/beatCard/BeatCard.tsx +0 -124
- package/src/microinsights/components/beaticons/BeatCategoryIcon.tsx +0 -20
- package/src/microinsights/components/beaticons/BeatIcon.tsx +0 -45
- package/src/microinsights/components/beaticons/BeatMerchantLogo.tsx +0 -33
- package/src/microinsights/components/beaticons/ChartFilledIcon.tsx +0 -37
- package/src/microinsights/components/beaticons/MonthlySpendComparisonIcon.tsx +0 -30
- package/src/microinsights/components/beaticons/ZeroStateIcon.tsx +0 -558
- package/src/microinsights/components/beaticons/index.tsx +0 -7
- package/src/microinsights/components/carouselheader/CarouselHeader.tsx +0 -111
- package/src/microinsights/components/insightsmicrowidget/InsightsMicroWidget.tsx +0 -163
- package/src/microinsights/components/microBeatCarousel/CarouselControls.tsx +0 -99
- package/src/microinsights/components/microBeatCarousel/MicroBeatCarousel.tsx +0 -207
- package/src/microinsights/components/microInsightCard/MicroInsightCard.tsx +0 -173
- package/src/microinsights/components/noRelevantInsightsCard/NoRelevantInsightsCard.tsx +0 -89
- package/src/microinsights/components/spinner/Spinner.tsx +0 -21
- package/src/microinsights/components/viewMoreMicroCard/ViewMoreMicroCard.tsx +0 -101
- package/src/microinsights/components/zeroStateCard/ZeroStateCard.tsx +0 -62
- package/src/microinsights/constants/Analytics.ts +0 -192
- package/src/microinsights/constants/App.ts +0 -53
- package/src/microinsights/constants/Insights.tsx +0 -3
- package/src/microinsights/constants/OnClickEvents.ts +0 -3
- package/src/microinsights/context/InsightsMicroWidgetDataProvider.tsx +0 -24
- package/src/microinsights/context/hooks.tsx +0 -65
- package/src/microinsights/index.ts +0 -16
- package/src/microinsights/interfaces.ts +0 -28
- package/src/microinsights/stores/AppStore.ts +0 -34
- package/src/microinsights/stores/CopyStore.ts +0 -38
- package/src/microinsights/stores/InsightsMicroWidgetStore.ts +0 -61
- package/src/microinsights/types/BeatUIComponent.ts +0 -5
- package/src/microinsights/utils/DataSeries.ts +0 -20
- package/src/networth/NetWorthWidget.tsx +0 -171
- package/src/networth/__tests__/AssetsLiabilitiesDetail.test.tsx +0 -94
- package/src/networth/__tests__/NetWorthChart.test.tsx +0 -31
- package/src/networth/__tests__/NetWorthList.test.tsx +0 -33
- package/src/networth/components/AssetsLiabilitiesDetail.tsx +0 -146
- package/src/networth/components/GainsLossesDetail.tsx +0 -110
- package/src/networth/components/NetWorthChange.tsx +0 -51
- package/src/networth/components/NetWorthChart.tsx +0 -71
- package/src/networth/components/NetWorthList.tsx +0 -91
- package/src/networth/components/NetWorthListItem.tsx +0 -72
- package/src/networth/components/NetWorthSummary.tsx +0 -36
- package/src/networth/index.ts +0 -5
- package/src/networth/stores/NetWorthStore.ts +0 -99
- package/src/networth/stores/__tests__/NetWorthStore.test.ts +0 -32
- package/src/networth/types/NetWorth.ts +0 -59
- package/src/networth/utils/NetWorthUtils.ts +0 -177
- package/src/networth/utils/__tests__/NetWorthUtils.test.ts +0 -198
- package/src/notifications/__tests__/NotificationList.test.tsx +0 -67
- package/src/notifications/components/DateRow.tsx +0 -21
- package/src/notifications/components/NotificationBadge.tsx +0 -51
- package/src/notifications/components/NotificationCard.tsx +0 -63
- package/src/notifications/components/NotificationList.tsx +0 -65
- package/src/notifications/constants/NotificationConstants.ts +0 -104
- package/src/notifications/index.ts +0 -3
- package/src/notifications/stores/NotificationStore.ts +0 -62
- package/src/notifications/utils/NotificationUtils.ts +0 -21
- package/src/recurringactivity/RecurringActivityMiniWidget.tsx +0 -45
- package/src/recurringactivity/RecurringActivityWidget.tsx +0 -89
- package/src/recurringactivity/__tests__/BuildActivities.test.ts +0 -30
- package/src/recurringactivity/__tests__/BuildNewActivity.test.ts +0 -59
- package/src/recurringactivity/__tests__/RecurringActivityWidget.test.tsx +0 -33
- package/src/recurringactivity/components/ActivityBadges.tsx +0 -40
- package/src/recurringactivity/components/ActivityDetails.tsx +0 -196
- package/src/recurringactivity/components/ActivityList.tsx +0 -141
- package/src/recurringactivity/components/ActivityRow.tsx +0 -161
- package/src/recurringactivity/components/ActivityStatus.tsx +0 -82
- package/src/recurringactivity/components/MiniWidgetContent.tsx +0 -61
- package/src/recurringactivity/components/RecurringActivity.tsx +0 -165
- package/src/recurringactivity/components/actions/FrequencyAction.tsx +0 -130
- package/src/recurringactivity/components/actions/PaymentDateAction.tsx +0 -99
- package/src/recurringactivity/components/activitycalendar/ActivityCalendar.tsx +0 -100
- package/src/recurringactivity/components/activitycalendar/ActivityDay.tsx +0 -88
- package/src/recurringactivity/components/activitycalendar/Legend.tsx +0 -42
- package/src/recurringactivity/components/shared/ActivitySettings.tsx +0 -43
- package/src/recurringactivity/components/shared/activitysettings/AddActivity.tsx +0 -175
- package/src/recurringactivity/components/shared/activitysettings/AddActivityDetails.tsx +0 -148
- package/src/recurringactivity/components/shared/activitysettings/ManageExpenses.tsx +0 -84
- package/src/recurringactivity/components/shared/activitysettings/ManageIncome.tsx +0 -102
- package/src/recurringactivity/components/shared/activitysettings/SelectTransaction.tsx +0 -45
- package/src/recurringactivity/index.ts +0 -5
- package/src/recurringactivity/stores/RecurringActivityStore.ts +0 -312
- package/src/recurringactivity/util/RecurringActivityUtils.ts +0 -40
- package/src/recurringactivity/util/buildActivities.ts +0 -334
- package/src/recurringactivity/util/buildNewActivity.ts +0 -111
- package/src/recurringactivity/util/getRecurrence.ts +0 -50
- package/src/recurringactivity/util/getStatus.ts +0 -32
- package/src/recurringactivity/util/updateActivity.ts +0 -66
- package/src/spending/SpendingMiniWidget.tsx +0 -23
- package/src/spending/SpendingWidget.tsx +0 -71
- package/src/spending/__tests__/MiniSpendingChart.test.tsx +0 -43
- package/src/spending/__tests__/SpendingData.test.ts +0 -38
- package/src/spending/__tests__/SpendingMiniWidget.test.tsx +0 -49
- package/src/spending/__tests__/SpendingWidget.test.tsx +0 -49
- package/src/spending/components/MiniSpendingChart.tsx +0 -125
- package/src/spending/components/Spending.tsx +0 -175
- package/src/spending/components/SpendingChart.tsx +0 -74
- package/src/spending/components/SpendingDonut.tsx +0 -125
- package/src/spending/components/SpendingLegend.tsx +0 -41
- package/src/spending/components/SpendingList.tsx +0 -112
- package/src/spending/components/SpendingTabLabel.tsx +0 -25
- package/src/spending/index.ts +0 -2
- package/src/spending/utils/SpendingData.ts +0 -196
- package/src/transactions/TransactionWidget.tsx +0 -319
- package/src/transactions/analytics.ts +0 -12
- package/src/transactions/api/TransactionApi.ts +0 -204
- package/src/transactions/api/__mocks__/TransactionApi.ts +0 -20
- package/src/transactions/components/shared/TransactionDetails.tsx +0 -140
- package/src/transactions/components/shared/TransactionList.tsx +0 -124
- package/src/transactions/components/shared/TransactionTable.tsx +0 -123
- package/src/transactions/components/shared/transactiondetails/Description.tsx +0 -97
- package/src/transactions/components/shared/transactiondetails/FlagTransaction.tsx +0 -63
- package/src/transactions/components/shared/transactiondetails/ManualTransactionDetails.tsx +0 -148
- package/src/transactions/components/shared/transactiondetails/TransactionAmountHeader.tsx +0 -39
- package/src/transactions/components/shared/transactiondetails/actions/CategoryAction.tsx +0 -149
- package/src/transactions/components/shared/transactiondetails/actions/DateAction.tsx +0 -119
- package/src/transactions/components/shared/transactiondetails/actions/DeleteAction.tsx +0 -85
- package/src/transactions/components/shared/transactiondetails/actions/DeleteLogoAction.tsx +0 -88
- package/src/transactions/components/shared/transactiondetails/actions/HideAction.tsx +0 -126
- package/src/transactions/components/shared/transactiondetails/actions/MemoAction.tsx +0 -112
- package/src/transactions/components/shared/transactiondetails/actions/SplitAction.tsx +0 -234
- package/src/transactions/components/shared/transactiondetails/actions/TagsAction.tsx +0 -119
- package/src/transactions/components/shared/transactiondetails/actions/index.ts +0 -8
- package/src/transactions/components/shared/transactionlist/DateRow.tsx +0 -33
- package/src/transactions/components/shared/transactionlist/TransactionRow.tsx +0 -92
- package/src/transactions/components/shared/transactionlist/ZeroState.tsx +0 -36
- package/src/transactions/components/shared/transactiontable/cells/AccountCell.tsx +0 -12
- package/src/transactions/components/shared/transactiontable/cells/AmountCell.tsx +0 -35
- package/src/transactions/components/shared/transactiontable/cells/CategoryCell.tsx +0 -37
- package/src/transactions/components/shared/transactiontable/cells/DateCell.tsx +0 -17
- package/src/transactions/components/shared/transactiontable/cells/FlagCell.tsx +0 -43
- package/src/transactions/components/shared/transactiontable/cells/HeaderCell.tsx +0 -11
- package/src/transactions/components/shared/transactiontable/cells/PayeeCell.tsx +0 -21
- package/src/transactions/components/shared/transactiontable/cells/index.ts +0 -7
- package/src/transactions/components/splitmanager/SplitManager.tsx +0 -93
- package/src/transactions/components/splitmanager/SplitRow.tsx +0 -149
- package/src/transactions/components/splitmanager/index.ts +0 -1
- package/src/transactions/components/tagmanager/Header.tsx +0 -100
- package/src/transactions/components/tagmanager/SearchBox.tsx +0 -60
- package/src/transactions/components/tagmanager/TagManager.tsx +0 -51
- package/src/transactions/components/tagmanager/TagRow.tsx +0 -145
- package/src/transactions/components/tagmanager/index.ts +0 -1
- package/src/transactions/components/transactionwidget/AddAccountModal.tsx +0 -30
- package/src/transactions/components/transactionwidget/actions/AddTransactionAction.tsx +0 -74
- package/src/transactions/components/transactionwidget/actions/EditCategoryAction.tsx +0 -80
- package/src/transactions/components/transactionwidget/actions/ExportCsvAction.tsx +0 -32
- package/src/transactions/constants/Actions.ts +0 -28
- package/src/transactions/constants/Analytics.ts +0 -272
- package/src/transactions/constants/OnClickEvents.ts +0 -45
- package/src/transactions/constants/Transaction.ts +0 -32
- package/src/transactions/constants/TransactionsTable.ts +0 -26
- package/src/transactions/context/hooks.tsx +0 -12
- package/src/transactions/index.ts +0 -12
- package/src/transactions/stores/TransactionStore.ts +0 -327
- package/src/transactions/stores/UiStore.ts +0 -72
- package/src/transactions/stores/__tests__/TransactionStore.test.ts +0 -80
- package/src/transactions/utils/Filters.ts +0 -35
- package/src/transactions/utils/Transactions.ts +0 -22
- package/src/transactions/utils/buildDetailedTransactions.ts +0 -66
- package/src/transactions/utils/exportTransactionsToCSV.ts +0 -85
- package/src/transactions/utils/sortAndFilterTransactions.ts +0 -127
- package/src/trends/TrendsFullWidget.tsx +0 -286
- package/src/trends/TrendsMiniWidget.tsx +0 -49
- package/src/trends/__tests__/TrendsFullWidget.test.tsx +0 -45
- package/src/trends/__tests__/TrendsMiniWidget.test.tsx +0 -35
- package/src/trends/components/SpendingChart.tsx +0 -29
- package/src/trends/components/TrendsChart.tsx +0 -75
- package/src/trends/components/TrendsDrawer.tsx +0 -74
- package/src/trends/components/TrendsTable.tsx +0 -161
- package/src/trends/components/__tests__/SpendingChart.test.tsx +0 -37
- package/src/trends/components/trendstable/AmountCell.tsx +0 -14
- package/src/trends/components/trendstable/CategoryCell.tsx +0 -39
- package/src/trends/components/trendstable/HeaderCell.tsx +0 -8
- package/src/trends/index.ts +0 -2
- package/src/trends/mocks.ts +0 -423
- package/src/trends/utils/SpendingData.ts +0 -76
- package/src/trends/utils/TrendsData.ts +0 -127
- package/src/trends/utils/shared.ts +0 -39
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { makeAutoObservable as h, runInAction as a } from "mobx";
|
|
2
|
+
import "bowser";
|
|
3
|
+
import "date-fns/getUnixTime";
|
|
4
|
+
import "date-fns/intlFormat";
|
|
5
|
+
import { W as r, a1 as u, a2 as l, a3 as d, a4 as A } from "./ConnectMiniWidget-Ep65CtHH.mjs";
|
|
6
|
+
import "react";
|
|
7
|
+
import "@honeybadger-io/react";
|
|
8
|
+
import "numeral";
|
|
9
|
+
import "date-fns/addMonths";
|
|
10
|
+
import "date-fns/addQuarters";
|
|
11
|
+
import "date-fns/addWeeks";
|
|
12
|
+
import "date-fns/addYears";
|
|
13
|
+
import "date-fns/getDay";
|
|
14
|
+
import "date-fns/isBefore";
|
|
15
|
+
import "date-fns/nextDay";
|
|
16
|
+
import "date-fns/setDate";
|
|
17
|
+
import "date-fns/startOfToday";
|
|
18
|
+
import "date-fns/fromUnixTime";
|
|
19
|
+
import "react/jsx-runtime";
|
|
20
|
+
import "@mui/material/Button";
|
|
21
|
+
import "@kyper/mui";
|
|
22
|
+
import "@mui/material/Tooltip";
|
|
23
|
+
import "@mui/material/Box";
|
|
24
|
+
import "@mui/material/IconButton";
|
|
25
|
+
import "@mui/material/styles/useTheme";
|
|
26
|
+
import "@mui/material/useMediaQuery";
|
|
27
|
+
import "@mxenabled/cssinjs";
|
|
28
|
+
import "date-fns/addDays";
|
|
29
|
+
import "date-fns/eachDayOfInterval";
|
|
30
|
+
import "date-fns/eachWeekOfInterval";
|
|
31
|
+
import "date-fns/endOfMonth";
|
|
32
|
+
import "date-fns/format";
|
|
33
|
+
import "date-fns/isSameMonth";
|
|
34
|
+
import "date-fns/startOfMonth";
|
|
35
|
+
import "date-fns/subMonths";
|
|
36
|
+
import "@mui/material/Paper";
|
|
37
|
+
import "@mui/icons-material/KeyboardArrowLeftRounded";
|
|
38
|
+
import "@mui/icons-material/KeyboardArrowRightRounded";
|
|
39
|
+
import "date-fns/isSameDay";
|
|
40
|
+
import "date-fns/isWithinInterval";
|
|
41
|
+
import "d3";
|
|
42
|
+
import "@mui/material/styles";
|
|
43
|
+
import "@mui/x-charts";
|
|
44
|
+
import "@mui/material/Stack";
|
|
45
|
+
import "@mui/material";
|
|
46
|
+
import "date-fns/differenceInCalendarDays";
|
|
47
|
+
import "date-fns/endOfToday";
|
|
48
|
+
import "date-fns/endOfYear";
|
|
49
|
+
import "date-fns/startOfYear";
|
|
50
|
+
import "date-fns/subDays";
|
|
51
|
+
import "date-fns/subYears";
|
|
52
|
+
import "@mui/material/ButtonGroup";
|
|
53
|
+
import "@mui/material/Tab";
|
|
54
|
+
import "@mui/material/Tabs";
|
|
55
|
+
import "@mui/material/ToggleButton";
|
|
56
|
+
import "@mui/material/ToggleButtonGroup";
|
|
57
|
+
import "@mui/material/Dialog";
|
|
58
|
+
import "@mui/material/DialogContent";
|
|
59
|
+
import "@mui/icons-material/ArrowBackOutlined";
|
|
60
|
+
import "@mui/material/Card";
|
|
61
|
+
import "@mui/material/CardHeader";
|
|
62
|
+
import "@mui/material/CardContent";
|
|
63
|
+
import "uuid";
|
|
64
|
+
import "@mui/material/CircularProgress";
|
|
65
|
+
import "@mui/material/FormControlLabel";
|
|
66
|
+
import "@mui/material/Radio";
|
|
67
|
+
import "@mui/material/Avatar";
|
|
68
|
+
import "@mui/material/ListItem";
|
|
69
|
+
import "@mui/material/ListItemAvatar";
|
|
70
|
+
import "@mui/material/ListItemButton";
|
|
71
|
+
import "@mui/material/ListItemText";
|
|
72
|
+
import "@mui/material/ListItemIcon";
|
|
73
|
+
import { F as g, A as s } from "./Fetch-DpUi1_Dx.mjs";
|
|
74
|
+
import "date-fns/differenceInDays";
|
|
75
|
+
import "@mui/x-data-grid-pro";
|
|
76
|
+
import "date-fns";
|
|
77
|
+
import "date-fns/getMonth";
|
|
78
|
+
import "date-fns/isAfter";
|
|
79
|
+
import "date-fns/parseISO";
|
|
80
|
+
import "date-fns/subWeeks";
|
|
81
|
+
import "date-fns/formatISO";
|
|
82
|
+
class p {
|
|
83
|
+
fetchInstance;
|
|
84
|
+
constructor(t, e) {
|
|
85
|
+
this.fetchInstance = new g(t, e);
|
|
86
|
+
}
|
|
87
|
+
createAccount = async (t) => this.fetchInstance.post(s.ACCOUNTS, t).then((e) => e.account).catch((e) => e);
|
|
88
|
+
deleteAccount = async (t) => this.fetchInstance.delete(`${s.ACCOUNTS}/${t}`).catch((e) => e);
|
|
89
|
+
getAccounts = async () => this.fetchInstance.get(s.ACCOUNTS).then((t) => t.accounts).catch((t) => t);
|
|
90
|
+
getInstitutions = async () => this.fetchInstance.get(s.INSTITUTIONS).then((t) => t).catch((t) => t);
|
|
91
|
+
getMembers = async () => this.fetchInstance.get(s.MEMBERS).then((t) => t.members).catch((t) => t);
|
|
92
|
+
getMonthlyAccountBalances = async (t) => this.fetchInstance.get(`${s.ACCOUNTS}/${t}/monthly_account_balances`).then((e) => e.monthly_account_balances).catch((e) => e);
|
|
93
|
+
mergeAccounts = async (t) => this.fetchInstance.put(`${s.ACCOUNTS}/merge`, { accounts: t }).then((e) => e).catch((e) => e);
|
|
94
|
+
refreshAllMembers = async () => this.fetchInstance.get(`${s.MEMBERS}/refresh_all`).then((t) => t).catch((t) => t);
|
|
95
|
+
updateAccount = async (t) => this.fetchInstance.put(`${s.ACCOUNTS}/${t.guid}`, t).then((e) => e.account).catch((e) => e);
|
|
96
|
+
}
|
|
97
|
+
class y {
|
|
98
|
+
isLoading = !1;
|
|
99
|
+
selectedAccount = {};
|
|
100
|
+
selectedMember = {};
|
|
101
|
+
constructor() {
|
|
102
|
+
h(this);
|
|
103
|
+
}
|
|
104
|
+
setIsLoading = (t) => this.isLoading = t;
|
|
105
|
+
setSelectedAccount = (t) => this.selectedAccount = t;
|
|
106
|
+
setSelectedMember = (t) => this.selectedMember = t;
|
|
107
|
+
}
|
|
108
|
+
class qt {
|
|
109
|
+
api = new p("/", "");
|
|
110
|
+
globalStore;
|
|
111
|
+
accounts = [];
|
|
112
|
+
institutions = [];
|
|
113
|
+
members = [];
|
|
114
|
+
uiStore;
|
|
115
|
+
constructor(t) {
|
|
116
|
+
this.globalStore = t, this.uiStore = new y(), h(this);
|
|
117
|
+
}
|
|
118
|
+
initialize = async (t, e) => {
|
|
119
|
+
this.api = new p(t, e), await Promise.all([this.loadAccounts(), this.loadInstitutions()]);
|
|
120
|
+
};
|
|
121
|
+
get cashAccounts() {
|
|
122
|
+
return this.accounts.filter(
|
|
123
|
+
(t) => t.account_type === r.CASH || t.account_type === r.CHECKING || t.account_type === r.PREPAID || t.account_type === r.SAVINGS || t.account_type === r.CHECKING_LINE_OF_CREDIT
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
get debtAccounts() {
|
|
127
|
+
return this.accounts.filter(
|
|
128
|
+
(t) => t.account_type === r.CREDIT_CARD || t.account_type === r.LOAN || t.account_type === r.MORTGAGE || t.account_type === r.LINE_OF_CREDIT || t.account_type === r.CHECKING_LINE_OF_CREDIT
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
get cashBalance() {
|
|
132
|
+
return this.cashAccounts.reduce((t, e) => t + (e?.balance || 0), 0);
|
|
133
|
+
}
|
|
134
|
+
addAccount = async (t) => {
|
|
135
|
+
try {
|
|
136
|
+
const e = await this.api.createAccount(t);
|
|
137
|
+
a(() => {
|
|
138
|
+
this.accounts = [...this.accounts, e];
|
|
139
|
+
});
|
|
140
|
+
} catch (e) {
|
|
141
|
+
console.error(`Error occurred while adding an account: ${e}`);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
augmentAccounts = (t = this.accounts) => {
|
|
145
|
+
const e = [];
|
|
146
|
+
return t.forEach((c) => {
|
|
147
|
+
const i = this.members.findIndex(
|
|
148
|
+
(o) => o.guid === c.member_guid
|
|
149
|
+
);
|
|
150
|
+
if (i > -1) {
|
|
151
|
+
let o = u.Connected;
|
|
152
|
+
const n = this.members[i];
|
|
153
|
+
l.includes(n.connection_status) ? o = u.Error : d.includes(n.connection_status) ? o = u.Processing : A.includes(n.connection_status) && (o = u.RequiresMfa), e.push({
|
|
154
|
+
...c,
|
|
155
|
+
memberName: n.name,
|
|
156
|
+
connectionStatus: o
|
|
157
|
+
}), this.members[i].connectionStatus = o;
|
|
158
|
+
}
|
|
159
|
+
}), e;
|
|
160
|
+
};
|
|
161
|
+
loadAccounts = async () => {
|
|
162
|
+
await this.loadMembers();
|
|
163
|
+
try {
|
|
164
|
+
const t = await this.api.getAccounts();
|
|
165
|
+
a(() => {
|
|
166
|
+
this.accounts = this.sortAccounts(this.augmentAccounts(t));
|
|
167
|
+
});
|
|
168
|
+
} catch (t) {
|
|
169
|
+
console.error(`Error occurred while loading accounts: ${t}`);
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
loadInstitutions = async () => {
|
|
173
|
+
try {
|
|
174
|
+
const t = await this.api.getInstitutions();
|
|
175
|
+
a(() => {
|
|
176
|
+
this.institutions = t;
|
|
177
|
+
});
|
|
178
|
+
} catch (t) {
|
|
179
|
+
console.error(`Error occurred while loading institutions: ${t}`);
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
loadMembers = async () => {
|
|
183
|
+
try {
|
|
184
|
+
const t = await this.api.getMembers();
|
|
185
|
+
a(() => {
|
|
186
|
+
this.members = t;
|
|
187
|
+
});
|
|
188
|
+
} catch (t) {
|
|
189
|
+
console.error(`Error occurred while loading members: ${t}`);
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
mergeAccounts = async (t) => {
|
|
193
|
+
try {
|
|
194
|
+
const e = await this.api.mergeAccounts(t), c = e[Object.keys(e)[0]];
|
|
195
|
+
a(() => {
|
|
196
|
+
const i = this.accounts.findIndex((n) => n.guid === t[1]);
|
|
197
|
+
this.accounts.splice(i, 1);
|
|
198
|
+
const o = this.accounts.findIndex((n) => n.guid === t[0]);
|
|
199
|
+
this.accounts.splice(o, 1, c);
|
|
200
|
+
});
|
|
201
|
+
} catch (e) {
|
|
202
|
+
console.error(`Error occurred while merging accounts: ${e}`);
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
sortAccounts = (t = this.accounts) => t.sort((e, c) => e.account_type > c.account_type ? 1 : e.account_type < c.account_type ? -1 : (e.name || "") > (c.name || "") ? 1 : (e.name || "") < (c.name || "") ? -1 : 0);
|
|
206
|
+
refreshAccounts = async () => {
|
|
207
|
+
this.uiStore.setIsLoading(!0), await Promise.all([this.loadAccounts(), this.loadInstitutions()]), this.uiStore.setIsLoading(!1);
|
|
208
|
+
};
|
|
209
|
+
refreshMembers = async () => {
|
|
210
|
+
try {
|
|
211
|
+
await this.api.refreshAllMembers(), await this.loadMembers();
|
|
212
|
+
} catch (t) {
|
|
213
|
+
console.error(`Error occurredwhile refreshing members: ${t}`);
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
removeAccount = async (t) => {
|
|
217
|
+
try {
|
|
218
|
+
await this.api.deleteAccount(t), a(() => {
|
|
219
|
+
const e = this.accounts.findIndex((c) => c.guid === t);
|
|
220
|
+
this.accounts.splice(e, 1);
|
|
221
|
+
});
|
|
222
|
+
} catch (e) {
|
|
223
|
+
console.error(`Error occurred while removing an account: ${e}`);
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
updateAccount = async (t) => {
|
|
227
|
+
try {
|
|
228
|
+
const e = await this.api.updateAccount(t);
|
|
229
|
+
a(() => {
|
|
230
|
+
const c = this.accounts.findIndex(
|
|
231
|
+
(i) => i.guid === e.guid
|
|
232
|
+
);
|
|
233
|
+
this.accounts.splice(c, 1, e), this.augmentAccounts(this.accounts);
|
|
234
|
+
});
|
|
235
|
+
} catch (e) {
|
|
236
|
+
console.error(`Error occurred while updating account: ${e}`);
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
export {
|
|
241
|
+
p as A,
|
|
242
|
+
qt as a
|
|
243
|
+
};
|
|
244
|
+
//# sourceMappingURL=AccountStore-B23-oV1B.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountStore-B23-oV1B.mjs","sources":["../src/accounts/api/AccountApi.ts","../src/accounts/stores/UiStore.ts","../src/accounts/stores/AccountStore.ts"],"sourcesContent":["import Fetch from '../../common/utils/Fetch'\n\nimport { ApiEndpoints } from '../../common/constants'\nimport type { Account } from '../../common'\n\nexport class AccountApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string) {\n this.fetchInstance = new Fetch(endpoint, token)\n }\n\n createAccount = async (account: Account) => {\n return this.fetchInstance\n .post(ApiEndpoints.ACCOUNTS, account)\n .then((data) => data.account)\n .catch((error) => error)\n }\n\n deleteAccount = async (accountGuid: string) => {\n return this.fetchInstance\n .delete(`${ApiEndpoints.ACCOUNTS}/${accountGuid}`)\n .catch((error) => error)\n }\n\n getAccounts = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.ACCOUNTS)\n .then((data) => data.accounts)\n .catch((error) => error)\n }\n\n getInstitutions = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.INSTITUTIONS)\n .then((data) => data)\n .catch((error) => error)\n }\n\n getMembers = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.MEMBERS)\n .then((data) => data.members)\n .catch((error) => error)\n }\n\n getMonthlyAccountBalances = async (guid: string) => {\n return this.fetchInstance\n .get(`${ApiEndpoints.ACCOUNTS}/${guid}/monthly_account_balances`)\n .then((data) => data.monthly_account_balances)\n .catch((error) => error)\n }\n\n mergeAccounts = async (accountGuids: string[]) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.ACCOUNTS}/merge`, { accounts: accountGuids })\n .then((data) => data)\n .catch((error) => error)\n }\n\n refreshAllMembers = async () => {\n return this.fetchInstance\n .get(`${ApiEndpoints.MEMBERS}/refresh_all`)\n .then((data) => data)\n .catch((error) => error)\n }\n\n updateAccount = async (account: Account) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.ACCOUNTS}/${account.guid}`, account)\n .then((data) => data.account)\n .catch((error) => error)\n }\n}\n","import { makeAutoObservable } from 'mobx'\nimport { Account, Member } from '../../common'\n\nexport class UiStore {\n isLoading = false\n\n selectedAccount: Account = {} as Account\n selectedMember: Member = {} as Member\n\n constructor() {\n makeAutoObservable(this)\n }\n\n setIsLoading = (isLoading: boolean) => (this.isLoading = isLoading)\n\n setSelectedAccount = (account: Account) => (this.selectedAccount = account)\n setSelectedMember = (member: Member) => (this.selectedMember = member)\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport {\n AccountType,\n ErrorStatuses,\n MfaStatuses,\n ConnectionStatus,\n ProcessingStatuses,\n} from '../../common'\n\nimport type { Account, GlobalStore, Institution, Member } from '../../common'\n\nimport { AccountApi } from '../api/AccountApi'\nimport { UiStore } from './UiStore'\n\nexport class AccountStore {\n api: AccountApi = new AccountApi('/', '')\n\n globalStore: GlobalStore\n\n accounts: Account[] = []\n institutions: Institution[] = []\n members: Member[] = []\n uiStore: UiStore\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.uiStore = new UiStore()\n makeAutoObservable(this)\n }\n\n initialize = async (endpoint: string, token: string) => {\n this.api = new AccountApi(endpoint, token)\n\n await Promise.all([this.loadAccounts(), this.loadInstitutions()])\n }\n\n get cashAccounts(): Account[] {\n return this.accounts.filter(\n (account: Account) =>\n account.account_type === AccountType.CASH ||\n account.account_type === AccountType.CHECKING ||\n account.account_type === AccountType.PREPAID ||\n account.account_type === AccountType.SAVINGS ||\n account.account_type === AccountType.CHECKING_LINE_OF_CREDIT,\n )\n }\n\n get debtAccounts(): Account[] {\n return this.accounts.filter(\n (account: Account) =>\n account.account_type === AccountType.CREDIT_CARD ||\n account.account_type === AccountType.LOAN ||\n account.account_type === AccountType.MORTGAGE ||\n account.account_type === AccountType.LINE_OF_CREDIT ||\n account.account_type === AccountType.CHECKING_LINE_OF_CREDIT,\n )\n }\n\n get cashBalance(): number {\n return this.cashAccounts.reduce((total, account) => total + (account?.balance || 0), 0)\n }\n\n addAccount = async (account: Account) => {\n try {\n const newAccount = await this.api.createAccount(account)\n\n runInAction(() => {\n this.accounts = [...this.accounts, newAccount]\n })\n } catch (error) {\n console.error(`Error occurred while adding an account: ${error}`)\n }\n }\n\n augmentAccounts = (accounts: Account[] = this.accounts) => {\n const augmentedAccounts: Account[] = []\n\n accounts.forEach((account: Account) => {\n const memberLocation = this.members.findIndex(\n (member: Member) => member.guid === account.member_guid,\n )\n if (memberLocation > -1) {\n let connectionStatus = ConnectionStatus.Connected\n const member = this.members[memberLocation]\n if (ErrorStatuses.includes(member.connection_status)) {\n connectionStatus = ConnectionStatus.Error\n } else if (ProcessingStatuses.includes(member.connection_status)) {\n connectionStatus = ConnectionStatus.Processing\n } else if (MfaStatuses.includes(member.connection_status)) {\n connectionStatus = ConnectionStatus.RequiresMfa\n }\n\n augmentedAccounts.push({\n ...account,\n memberName: member.name,\n connectionStatus,\n })\n\n this.members[memberLocation].connectionStatus = connectionStatus\n }\n })\n\n return augmentedAccounts\n }\n\n loadAccounts = async () => {\n await this.loadMembers()\n\n try {\n const accounts = await this.api.getAccounts()\n\n runInAction(() => {\n this.accounts = this.sortAccounts(this.augmentAccounts(accounts))\n })\n } catch (error) {\n console.error(`Error occurred while loading accounts: ${error}`)\n }\n }\n\n loadInstitutions = async () => {\n try {\n const institutions = await this.api.getInstitutions()\n\n runInAction(() => {\n this.institutions = institutions\n })\n } catch (error) {\n console.error(`Error occurred while loading institutions: ${error}`)\n }\n }\n\n loadMembers = async () => {\n try {\n const members = await this.api.getMembers()\n\n runInAction(() => {\n this.members = members\n })\n } catch (error) {\n console.error(`Error occurred while loading members: ${error}`)\n }\n }\n\n mergeAccounts = async (accountGuids: string[]) => {\n try {\n const response = await this.api.mergeAccounts(accountGuids)\n // the response from the api is a funky database key here, so this is essentially just getting the first item in the returned object\n // to prevent making multiple api calls here\n const mergedAccount = response[Object.keys(response)[0]]\n\n runInAction(() => {\n const account2Index = this.accounts.findIndex((account) => account.guid === accountGuids[1])\n this.accounts.splice(account2Index, 1)\n\n const account1Index = this.accounts.findIndex((account) => account.guid === accountGuids[0])\n this.accounts.splice(account1Index, 1, mergedAccount)\n })\n } catch (error) {\n console.error(`Error occurred while merging accounts: ${error}`)\n }\n }\n\n sortAccounts = (accounts: Account[] = this.accounts) => {\n return accounts.sort((a: Account, b: Account) => {\n // orders by account type descending (Checking -> Savings -> Credit card)\n if (a.account_type > b.account_type) return 1\n if (a.account_type < b.account_type) return -1\n // orders by name (Emergency Savings -> Health Savings -> Rainy Day Savings)\n if ((a.name || '') > (b.name || '')) return 1\n if ((a.name || '') < (b.name || '')) return -1\n return 0\n })\n }\n\n refreshAccounts = async () => {\n this.uiStore.setIsLoading(true)\n await Promise.all([this.loadAccounts(), this.loadInstitutions()])\n this.uiStore.setIsLoading(false)\n }\n\n refreshMembers = async () => {\n try {\n await this.api.refreshAllMembers()\n await this.loadMembers()\n } catch (error) {\n console.error(`Error occurredwhile refreshing members: ${error}`)\n }\n }\n\n removeAccount = async (accountGuid: string) => {\n try {\n await this.api.deleteAccount(accountGuid)\n\n runInAction(() => {\n const deletedIndex = this.accounts.findIndex((account) => account.guid === accountGuid)\n this.accounts.splice(deletedIndex, 1)\n })\n } catch (error) {\n console.error(`Error occurred while removing an account: ${error}`)\n }\n }\n\n updateAccount = async (account: Account) => {\n try {\n const updatedAccount = await this.api.updateAccount(account)\n\n runInAction(() => {\n const updatedAccountIndex = this.accounts.findIndex(\n (account) => account.guid === updatedAccount.guid,\n )\n\n this.accounts.splice(updatedAccountIndex, 1, updatedAccount)\n this.augmentAccounts(this.accounts)\n })\n } catch (error) {\n console.error(`Error occurred while updating account: ${error}`)\n }\n }\n}\n"],"names":["AccountApi","endpoint","token","Fetch","account","ApiEndpoints","data","error","accountGuid","guid","accountGuids","UiStore","makeAutoObservable","isLoading","member","AccountStore","globalStore","AccountType","total","newAccount","runInAction","accounts","augmentedAccounts","memberLocation","connectionStatus","ConnectionStatus","ErrorStatuses","ProcessingStatuses","MfaStatuses","institutions","members","response","mergedAccount","account2Index","account1Index","a","b","deletedIndex","updatedAccount","updatedAccountIndex"],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { F as m, A as o } from "./Fetch-DpUi1_Dx.mjs";
|
|
2
|
+
import "date-fns/intlFormat";
|
|
3
|
+
import "date-fns/getUnixTime";
|
|
4
|
+
import "bowser";
|
|
5
|
+
import "react/jsx-runtime";
|
|
6
|
+
import "react";
|
|
7
|
+
import "@mui/material/Button";
|
|
8
|
+
import "@kyper/mui";
|
|
9
|
+
import "@mui/material/Tooltip";
|
|
10
|
+
import "@mui/material/Box";
|
|
11
|
+
import "@mui/material/IconButton";
|
|
12
|
+
import "./ConnectMiniWidget-Ep65CtHH.mjs";
|
|
13
|
+
import "@mui/material/styles/useTheme";
|
|
14
|
+
import "@mui/material/useMediaQuery";
|
|
15
|
+
import "@mxenabled/cssinjs";
|
|
16
|
+
import "date-fns/addDays";
|
|
17
|
+
import "date-fns/addMonths";
|
|
18
|
+
import "date-fns/eachDayOfInterval";
|
|
19
|
+
import "date-fns/eachWeekOfInterval";
|
|
20
|
+
import "date-fns/endOfMonth";
|
|
21
|
+
import "date-fns/format";
|
|
22
|
+
import "date-fns/isBefore";
|
|
23
|
+
import "date-fns/isSameMonth";
|
|
24
|
+
import "date-fns/startOfMonth";
|
|
25
|
+
import "date-fns/startOfToday";
|
|
26
|
+
import "date-fns/subMonths";
|
|
27
|
+
import "@mui/material/Paper";
|
|
28
|
+
import "@mui/icons-material/KeyboardArrowLeftRounded";
|
|
29
|
+
import "@mui/icons-material/KeyboardArrowRightRounded";
|
|
30
|
+
import "date-fns/isSameDay";
|
|
31
|
+
import "date-fns/isWithinInterval";
|
|
32
|
+
import "d3";
|
|
33
|
+
import "@mui/material/styles";
|
|
34
|
+
import "@mui/x-charts";
|
|
35
|
+
import "@mui/material/Stack";
|
|
36
|
+
import "@mui/material";
|
|
37
|
+
import "date-fns/addYears";
|
|
38
|
+
import "date-fns/differenceInCalendarDays";
|
|
39
|
+
import "date-fns/endOfToday";
|
|
40
|
+
import "date-fns/endOfYear";
|
|
41
|
+
import "date-fns/startOfYear";
|
|
42
|
+
import "date-fns/subDays";
|
|
43
|
+
import "date-fns/subYears";
|
|
44
|
+
import "@mui/material/ButtonGroup";
|
|
45
|
+
import "@mui/material/Tab";
|
|
46
|
+
import "@mui/material/Tabs";
|
|
47
|
+
import "@mui/material/ToggleButton";
|
|
48
|
+
import "@mui/material/ToggleButtonGroup";
|
|
49
|
+
import "@mui/material/Dialog";
|
|
50
|
+
import "@mui/material/DialogContent";
|
|
51
|
+
import "@mui/icons-material/ArrowBackOutlined";
|
|
52
|
+
import "@mui/material/Card";
|
|
53
|
+
import "@mui/material/CardHeader";
|
|
54
|
+
import "@mui/material/CardContent";
|
|
55
|
+
import "uuid";
|
|
56
|
+
import "numeral";
|
|
57
|
+
import "@mui/material/CircularProgress";
|
|
58
|
+
import "@mui/material/FormControlLabel";
|
|
59
|
+
import "@mui/material/Radio";
|
|
60
|
+
import "@mui/material/Avatar";
|
|
61
|
+
import "@mui/material/ListItem";
|
|
62
|
+
import "@mui/material/ListItemAvatar";
|
|
63
|
+
import "@mui/material/ListItemButton";
|
|
64
|
+
import "@mui/material/ListItemText";
|
|
65
|
+
import "@mui/material/ListItemIcon";
|
|
66
|
+
import "mobx";
|
|
67
|
+
import "date-fns/differenceInDays";
|
|
68
|
+
import "date-fns/fromUnixTime";
|
|
69
|
+
import "@mui/x-data-grid-pro";
|
|
70
|
+
import "date-fns";
|
|
71
|
+
import "date-fns/getMonth";
|
|
72
|
+
import "date-fns/isAfter";
|
|
73
|
+
import "date-fns/addQuarters";
|
|
74
|
+
import "date-fns/addWeeks";
|
|
75
|
+
import "date-fns/nextDay";
|
|
76
|
+
import "date-fns/parseISO";
|
|
77
|
+
import "date-fns/setDate";
|
|
78
|
+
import "date-fns/subWeeks";
|
|
79
|
+
import "date-fns/getDay";
|
|
80
|
+
import "date-fns/formatISO";
|
|
81
|
+
class kt {
|
|
82
|
+
fetchInstance;
|
|
83
|
+
constructor(t, r) {
|
|
84
|
+
this.fetchInstance = new m(t, r);
|
|
85
|
+
}
|
|
86
|
+
getBeats = async (t, r) => {
|
|
87
|
+
const i = `page=${t || 1}&per_page=${r || 5}`;
|
|
88
|
+
return this.fetchInstance.get(`${o.BEATS}?${i}`).then((p) => p.beats);
|
|
89
|
+
};
|
|
90
|
+
getBeatsWithAssociatedTransaction = async (t) => {
|
|
91
|
+
let r = "has_associated_transaction_guid=true";
|
|
92
|
+
return r += t ? `&from_date=${t}` : "", this.fetchInstance.get(`${o.BEATS}?${r}`).then((i) => i.beats);
|
|
93
|
+
};
|
|
94
|
+
updateBeat = async (t) => this.fetchInstance.put(`${o.BEATS}/${t.guid}`, t).then((r) => r.beat);
|
|
95
|
+
}
|
|
96
|
+
export {
|
|
97
|
+
kt as B
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=BeatApi-BxXgbSJY.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BeatApi-BxXgbSJY.mjs","sources":["../src/common/api/BeatApi.ts"],"sourcesContent":["import Fetch from '../utils/Fetch'\n\nimport { ApiEndpoints } from '../constants'\n\nimport type { Beat } from '../types'\n\nexport class BeatApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string) {\n this.fetchInstance = new Fetch(endpoint, token)\n }\n\n getBeats = async (pageNum?: number, perPage?: number) => {\n const beatParams = `page=${pageNum ? pageNum : 1}&per_page=${perPage ? perPage : 5}`\n\n return this.fetchInstance.get(`${ApiEndpoints.BEATS}?${beatParams}`).then((data) => data.beats)\n }\n\n getBeatsWithAssociatedTransaction = async (fromDate?: string) => {\n let beatParams = 'has_associated_transaction_guid=true'\n beatParams += fromDate ? `&from_date=${fromDate}` : ''\n\n return this.fetchInstance.get(`${ApiEndpoints.BEATS}?${beatParams}`).then((data) => data.beats)\n }\n\n updateBeat = async (beat: Beat) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.BEATS}/${beat.guid}`, beat)\n .then((data) => data.beat)\n }\n}\n"],"names":["BeatApi","endpoint","token","Fetch","pageNum","perPage","beatParams","ApiEndpoints","data","fromDate","beat"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,MAAMA,GAAQ;AAAA,EACnB;AAAA,EAEA,YAAYC,GAAkBC,GAAe;AAC3C,SAAK,gBAAgB,IAAIC,EAAMF,GAAUC,CAAK;AAAA,EAChD;AAAA,EAEA,WAAW,OAAOE,GAAkBC,MAAqB;AACjD,UAAAC,IAAa,QAAQF,KAAoB,CAAC,aAAaC,KAAoB,CAAC;AAElF,WAAO,KAAK,cAAc,IAAI,GAAGE,EAAa,KAAK,IAAID,CAAU,EAAE,EAAE,KAAK,CAACE,MAASA,EAAK,KAAK;AAAA,EAAA;AAAA,EAGhG,oCAAoC,OAAOC,MAAsB;AAC/D,QAAIH,IAAa;AACH,WAAAA,KAAAG,IAAW,cAAcA,CAAQ,KAAK,IAE7C,KAAK,cAAc,IAAI,GAAGF,EAAa,KAAK,IAAID,CAAU,EAAE,EAAE,KAAK,CAACE,MAASA,EAAK,KAAK;AAAA,EAAA;AAAA,EAGhG,aAAa,OAAOE,MACX,KAAK,cACT,IAAI,GAAGH,EAAa,KAAK,IAAIG,EAAK,IAAI,IAAIA,CAAI,EAC9C,KAAK,CAACF,MAASA,EAAK,IAAI;AAE/B;"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { jsxs as g, jsx as u } from "react/jsx-runtime";
|
|
2
|
+
import d from "@mui/material/Box";
|
|
3
|
+
import h from "@mui/material/styles/useTheme";
|
|
4
|
+
import "date-fns/intlFormat";
|
|
5
|
+
import "date-fns/getUnixTime";
|
|
6
|
+
import "bowser";
|
|
7
|
+
import "react";
|
|
8
|
+
import "@honeybadger-io/react";
|
|
9
|
+
import "@mui/material/Button";
|
|
10
|
+
import "@kyper/mui";
|
|
11
|
+
import "@mui/material/Tooltip";
|
|
12
|
+
import "@mui/material/IconButton";
|
|
13
|
+
import { a5 as x, a6 as l, a7 as f } from "./ConnectMiniWidget-Ep65CtHH.mjs";
|
|
14
|
+
import "@mui/material/useMediaQuery";
|
|
15
|
+
import "@mxenabled/cssinjs";
|
|
16
|
+
import "date-fns/addDays";
|
|
17
|
+
import "date-fns/addMonths";
|
|
18
|
+
import "date-fns/eachDayOfInterval";
|
|
19
|
+
import "date-fns/eachWeekOfInterval";
|
|
20
|
+
import "date-fns/endOfMonth";
|
|
21
|
+
import "date-fns/format";
|
|
22
|
+
import "date-fns/isBefore";
|
|
23
|
+
import "date-fns/isSameMonth";
|
|
24
|
+
import "date-fns/startOfMonth";
|
|
25
|
+
import "date-fns/startOfToday";
|
|
26
|
+
import "date-fns/subMonths";
|
|
27
|
+
import "@mui/material/Paper";
|
|
28
|
+
import "@mui/icons-material/KeyboardArrowLeftRounded";
|
|
29
|
+
import "@mui/icons-material/KeyboardArrowRightRounded";
|
|
30
|
+
import "date-fns/isSameDay";
|
|
31
|
+
import "date-fns/isWithinInterval";
|
|
32
|
+
import "d3";
|
|
33
|
+
import "@mui/material/styles";
|
|
34
|
+
import "@mui/x-charts";
|
|
35
|
+
import "@mui/material/Stack";
|
|
36
|
+
import "@mui/material";
|
|
37
|
+
import "date-fns/addYears";
|
|
38
|
+
import "date-fns/differenceInCalendarDays";
|
|
39
|
+
import "date-fns/endOfToday";
|
|
40
|
+
import "date-fns/endOfYear";
|
|
41
|
+
import "date-fns/startOfYear";
|
|
42
|
+
import "date-fns/subDays";
|
|
43
|
+
import "date-fns/subYears";
|
|
44
|
+
import "@mui/material/ButtonGroup";
|
|
45
|
+
import "@mui/material/Tab";
|
|
46
|
+
import "@mui/material/Tabs";
|
|
47
|
+
import "@mui/material/ToggleButton";
|
|
48
|
+
import "@mui/material/ToggleButtonGroup";
|
|
49
|
+
import "@mui/material/Dialog";
|
|
50
|
+
import "@mui/material/DialogContent";
|
|
51
|
+
import "@mui/icons-material/ArrowBackOutlined";
|
|
52
|
+
import "@mui/material/Card";
|
|
53
|
+
import "@mui/material/CardHeader";
|
|
54
|
+
import "@mui/material/CardContent";
|
|
55
|
+
import "uuid";
|
|
56
|
+
import "numeral";
|
|
57
|
+
import "@mui/material/CircularProgress";
|
|
58
|
+
import "@mui/material/FormControlLabel";
|
|
59
|
+
import "@mui/material/Radio";
|
|
60
|
+
import "@mui/material/Avatar";
|
|
61
|
+
import "@mui/material/ListItem";
|
|
62
|
+
import "@mui/material/ListItemAvatar";
|
|
63
|
+
import "@mui/material/ListItemButton";
|
|
64
|
+
import "@mui/material/ListItemText";
|
|
65
|
+
import "@mui/material/ListItemIcon";
|
|
66
|
+
import "mobx";
|
|
67
|
+
import "date-fns/differenceInDays";
|
|
68
|
+
import "date-fns/fromUnixTime";
|
|
69
|
+
import "@mui/x-data-grid-pro";
|
|
70
|
+
import "date-fns";
|
|
71
|
+
import "date-fns/getMonth";
|
|
72
|
+
import "date-fns/isAfter";
|
|
73
|
+
import "date-fns/addQuarters";
|
|
74
|
+
import "date-fns/addWeeks";
|
|
75
|
+
import "date-fns/nextDay";
|
|
76
|
+
import "date-fns/parseISO";
|
|
77
|
+
import "date-fns/setDate";
|
|
78
|
+
import "date-fns/subWeeks";
|
|
79
|
+
import "date-fns/getDay";
|
|
80
|
+
import "date-fns/formatISO";
|
|
81
|
+
import { g as D, a as S } from "./Categories-XVFviD23.mjs";
|
|
82
|
+
const C = 48, T = 4, zt = ({
|
|
83
|
+
color: o = "",
|
|
84
|
+
percent: r = 0,
|
|
85
|
+
size: t = C,
|
|
86
|
+
strokeWidth: i = T,
|
|
87
|
+
children: c
|
|
88
|
+
}) => {
|
|
89
|
+
const n = h(), e = (t - i) / 2, m = -90, p = r > 100 ? 100 : r, a = 2 * Math.PI * e * (1 - p / 100), s = t / 2;
|
|
90
|
+
return /* @__PURE__ */ g(
|
|
91
|
+
d,
|
|
92
|
+
{
|
|
93
|
+
className: "mx-cmn-single-segment-donut",
|
|
94
|
+
height: t,
|
|
95
|
+
mt: -8,
|
|
96
|
+
position: "relative",
|
|
97
|
+
width: t,
|
|
98
|
+
children: [
|
|
99
|
+
/* @__PURE__ */ g("svg", { height: t, width: t, children: [
|
|
100
|
+
/* @__PURE__ */ u(
|
|
101
|
+
"circle",
|
|
102
|
+
{
|
|
103
|
+
cx: s,
|
|
104
|
+
cy: s,
|
|
105
|
+
fill: "none",
|
|
106
|
+
r: e,
|
|
107
|
+
stroke: n.palette.grey[300],
|
|
108
|
+
strokeWidth: i
|
|
109
|
+
}
|
|
110
|
+
),
|
|
111
|
+
/* @__PURE__ */ u(
|
|
112
|
+
"circle",
|
|
113
|
+
{
|
|
114
|
+
cx: s,
|
|
115
|
+
cy: s,
|
|
116
|
+
fill: "none",
|
|
117
|
+
r: e,
|
|
118
|
+
stroke: o,
|
|
119
|
+
strokeDasharray: 2 * Math.PI * e,
|
|
120
|
+
strokeDashoffset: a,
|
|
121
|
+
strokeWidth: i,
|
|
122
|
+
transform: `rotate(${m}, ${s}, ${s})`
|
|
123
|
+
}
|
|
124
|
+
)
|
|
125
|
+
] }),
|
|
126
|
+
/* @__PURE__ */ u(
|
|
127
|
+
d,
|
|
128
|
+
{
|
|
129
|
+
className: "mx-cmn-single-segment-donut-children",
|
|
130
|
+
left: "50%",
|
|
131
|
+
position: "absolute",
|
|
132
|
+
sx: { transform: "translate(-50%, -50%)" },
|
|
133
|
+
textAlign: "center",
|
|
134
|
+
top: "50%",
|
|
135
|
+
children: c
|
|
136
|
+
}
|
|
137
|
+
)
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
);
|
|
141
|
+
}, b = (o, r) => !o && !r ? 0 : !o && r ? 101 : r / o * 100, _ = (o, r) => {
|
|
142
|
+
const t = {
|
|
143
|
+
background: r.palette.success.main,
|
|
144
|
+
description: o <= 100 ? r.palette.text.secondary : r.palette.error.main,
|
|
145
|
+
text: r.palette.common.white,
|
|
146
|
+
mercury: r.palette.success.lighter
|
|
147
|
+
};
|
|
148
|
+
return o > 100 ? (t.background = r.palette.error.main, t.mercury = r.palette.error.lighter) : o > 80 && (t.background = r.palette.warning.main, t.text = r.palette.grey[900], t.mercury = r.palette.warning.lighter), t;
|
|
149
|
+
}, tr = () => {
|
|
150
|
+
const { budgets: o } = x();
|
|
151
|
+
return o.map((t) => {
|
|
152
|
+
const i = t.transaction_total;
|
|
153
|
+
return t.amount - i;
|
|
154
|
+
}).reduce((t, i) => t + i, 0);
|
|
155
|
+
}, rr = (o, r, t, i) => {
|
|
156
|
+
const c = [];
|
|
157
|
+
for (const n of o) {
|
|
158
|
+
const e = D(r, n.category_guid);
|
|
159
|
+
if (!e) continue;
|
|
160
|
+
const m = e.totalAmount, p = b(n.amount, m), a = n.amount - m;
|
|
161
|
+
c.push({
|
|
162
|
+
...n,
|
|
163
|
+
budgetColors: _(p, i),
|
|
164
|
+
category: e,
|
|
165
|
+
description: l(
|
|
166
|
+
a < 0 ? t.budget_remaining_over : t.budget_remaining_left,
|
|
167
|
+
f(Math.abs(a), "0,0")
|
|
168
|
+
),
|
|
169
|
+
percentage: p,
|
|
170
|
+
subBudgets: [],
|
|
171
|
+
transaction_total: m
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
for (const n of o) {
|
|
175
|
+
const e = S(r, n.category_guid);
|
|
176
|
+
if (!e) continue;
|
|
177
|
+
const m = e.currentAmount, p = c.find((B) => B.category_guid === e.parent_guid);
|
|
178
|
+
if (!p) continue;
|
|
179
|
+
const a = n.amount - m, s = b(n.amount, m);
|
|
180
|
+
p && p.subBudgets.push({
|
|
181
|
+
...n,
|
|
182
|
+
budgetColors: _(s, i),
|
|
183
|
+
category: e,
|
|
184
|
+
description: l(
|
|
185
|
+
a < 0 ? t.budget_remaining_over : t.budget_remaining_left,
|
|
186
|
+
f(Math.abs(a), "0,0")
|
|
187
|
+
),
|
|
188
|
+
percentage: s,
|
|
189
|
+
subBudgets: [],
|
|
190
|
+
transaction_total: m
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
return c;
|
|
194
|
+
}, y = (o, r) => o.find((t) => t.guid === r), or = (o, r, t) => {
|
|
195
|
+
const i = y(o, t);
|
|
196
|
+
if (i)
|
|
197
|
+
return y(i.subBudgets, r);
|
|
198
|
+
};
|
|
199
|
+
export {
|
|
200
|
+
C as D,
|
|
201
|
+
zt as S,
|
|
202
|
+
T as a,
|
|
203
|
+
or as b,
|
|
204
|
+
rr as c,
|
|
205
|
+
y as f,
|
|
206
|
+
tr as u
|
|
207
|
+
};
|
|
208
|
+
//# sourceMappingURL=BudgetUtil-BSn9Zr71.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BudgetUtil-BSn9Zr71.mjs","sources":["../src/common/constants/Donut.ts","../src/common/components/donuts/SingleSegmentDonut.tsx","../src/budgets/utils/BudgetUtil.ts"],"sourcesContent":["export const DEFAULT_DONUT_SIZE = 48\nexport const DEFAULT_STROKE_WIDTH = 4\n","import React from 'react'\n\nimport Box from '@mui/material/Box'\nimport useTheme from '@mui/material/styles/useTheme'\n\nimport { DEFAULT_DONUT_SIZE, DEFAULT_STROKE_WIDTH } from '../../constants'\n\nexport interface SingleSegmentDonutProps {\n children: React.ReactNode\n color: string\n percent: number\n size?: number\n strokeWidth?: number\n}\n\nconst SingleSegmentDonut: React.FC<SingleSegmentDonutProps> = ({\n color = '',\n percent = 0,\n size = DEFAULT_DONUT_SIZE,\n strokeWidth = DEFAULT_STROKE_WIDTH,\n children,\n}) => {\n const theme = useTheme()\n\n const radius = (size - strokeWidth) / 2\n const offset = -90\n const limitedPercent = percent > 100 ? 100 : percent\n const length = 2 * Math.PI * radius * (1 - limitedPercent / 100)\n const halfSize = size / 2\n\n return (\n <Box\n className=\"mx-cmn-single-segment-donut\"\n height={size}\n mt={-8}\n position=\"relative\"\n width={size}\n >\n <svg height={size} width={size}>\n <circle\n cx={halfSize}\n cy={halfSize}\n fill=\"none\"\n r={radius}\n stroke={theme.palette.grey[300]}\n strokeWidth={strokeWidth}\n />\n\n <circle\n cx={halfSize}\n cy={halfSize}\n fill=\"none\"\n r={radius}\n stroke={color}\n strokeDasharray={2 * Math.PI * radius}\n strokeDashoffset={length}\n strokeWidth={strokeWidth}\n transform={`rotate(${offset}, ${halfSize}, ${halfSize})`}\n />\n </svg>\n <Box\n className=\"mx-cmn-single-segment-donut-children\"\n left=\"50%\"\n position=\"absolute\"\n sx={{ transform: 'translate(-50%, -50%)' }}\n textAlign=\"center\"\n top=\"50%\"\n >\n {children}\n </Box>\n </Box>\n )\n}\n\nexport default SingleSegmentDonut\n","import type { Theme } from '@mui/system'\n\nimport {\n type Budget,\n type BudgetColors,\n type BudgetsCopy,\n type DetailedCategory,\n type DetailedBudget,\n buildDynamicCopy,\n formatCurrency,\n getDetailedCategory,\n getDetailedSubCategory,\n useBudgetsStore,\n} from '../../common'\n\nexport const getBudgetPercentage = (budgetAmount: number, totalAmount: number) => {\n // No budget amount and nothing spent results in zero percent and green bubble\n if (!budgetAmount && !totalAmount) {\n return 0\n }\n\n // No budget amount and money spent results in 101 percent and red bubble\n if (!budgetAmount && totalAmount) {\n return 101\n }\n\n // Budget amount and money spent results in calculating percentage for color\n return (totalAmount / budgetAmount) * 100\n}\n\nexport const getBudgetColors = (percentage: number, theme: Theme) => {\n const budgetColors: BudgetColors = {\n background: theme.palette.success.main,\n description: percentage <= 100 ? theme.palette.text.secondary : theme.palette.error.main,\n text: theme.palette.common.white,\n mercury: theme.palette.success.lighter,\n }\n\n if (percentage > 100) {\n budgetColors.background = theme.palette.error.main\n budgetColors.mercury = theme.palette.error.lighter\n } else if (percentage > 80) {\n budgetColors.background = theme.palette.warning.main\n budgetColors.text = theme.palette.grey['900']\n budgetColors.mercury = theme.palette.warning.lighter\n }\n\n return budgetColors\n}\n\nexport const useGetBudgetDifference = () => {\n const { budgets } = useBudgetsStore()\n\n const differences = budgets.map((budget) => {\n const currentAmount = budget.transaction_total\n const totalAmount = budget.amount\n return totalAmount - currentAmount\n })\n\n return differences.reduce((total, difference) => total + difference, 0)\n}\n\nexport const augmentBudgets = (\n budgets: Budget[],\n categories: DetailedCategory[],\n copy: BudgetsCopy,\n theme: Theme,\n): DetailedBudget[] => {\n const detailedBudgets = [] as DetailedBudget[]\n\n // Top-level Categories\n for (const budget of budgets) {\n const category = getDetailedCategory(categories, budget.category_guid)\n if (!category) continue\n\n const spent = category.totalAmount\n\n const percentage = getBudgetPercentage(budget.amount, spent)\n const difference = budget.amount - spent\n\n detailedBudgets.push({\n ...budget,\n budgetColors: getBudgetColors(percentage, theme),\n category,\n description: buildDynamicCopy(\n difference < 0 ? copy.budget_remaining_over : copy.budget_remaining_left,\n formatCurrency(Math.abs(difference), '0,0'),\n ) as string,\n percentage,\n subBudgets: [],\n transaction_total: spent,\n })\n }\n\n // Sub categories\n for (const budget of budgets) {\n const category = getDetailedSubCategory(categories, budget.category_guid)\n if (!category) continue\n\n const spent = category.currentAmount\n\n const parentBudget = detailedBudgets.find((b) => b.category_guid === category.parent_guid)\n if (!parentBudget) continue\n\n const difference = budget.amount - spent\n const percentage = getBudgetPercentage(budget.amount, spent)\n\n if (parentBudget) {\n parentBudget.subBudgets.push({\n ...budget,\n budgetColors: getBudgetColors(percentage, theme),\n category,\n description: buildDynamicCopy(\n difference < 0 ? copy.budget_remaining_over : copy.budget_remaining_left,\n formatCurrency(Math.abs(difference), '0,0'),\n ) as string,\n percentage,\n subBudgets: [],\n transaction_total: spent,\n })\n }\n }\n\n return detailedBudgets\n}\n\nexport const findBudget = (budgets: DetailedBudget[], guid: string): DetailedBudget | undefined => {\n return budgets.find((budget) => budget.guid === guid)\n}\n\nexport const findSubBudget = (\n budgets: DetailedBudget[],\n guid: string,\n parentGuid: string,\n): DetailedBudget | undefined => {\n const parent = findBudget(budgets, parentGuid)\n if (!parent) return undefined\n\n return findBudget(parent.subBudgets, guid)\n}\n"],"names":["DEFAULT_DONUT_SIZE","DEFAULT_STROKE_WIDTH","SingleSegmentDonut","color","percent","size","strokeWidth","children","theme","useTheme","radius","offset","limitedPercent","length","halfSize","jsxs","Box","jsx","getBudgetPercentage","budgetAmount","totalAmount","getBudgetColors","percentage","budgetColors","useGetBudgetDifference","budgets","useBudgetsStore","budget","currentAmount","total","difference","augmentBudgets","categories","copy","detailedBudgets","category","getDetailedCategory","spent","buildDynamicCopy","formatCurrency","getDetailedSubCategory","parentBudget","b","findBudget","guid","findSubBudget","parentGuid","parent"],"mappings":"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"}
|