@mx-cartographer/experiences 9.3.0-alpha.bb2 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/dist/accounts/AccountsMiniWidget.es.js.map +1 -1
- package/dist/accounts/AccountsWidget.es.js.map +1 -1
- package/dist/accounts/ConnectMiniWidget.es.js.map +1 -1
- package/dist/accounts/components/AccountListItem.es.js.map +1 -1
- package/dist/accounts/components/AccountsList.es.js.map +1 -1
- package/dist/accounts/components/AccountsListCompact.es.js.map +1 -1
- package/dist/accounts/components/ConnectImage.es.js.map +1 -1
- package/dist/accounts/components/ConnectMiniWidgetCard.es.js.map +1 -1
- package/dist/accounts/components/ConnectionStatusIcons.es.js.map +1 -1
- package/dist/accounts/components/ConnectionsDrawer.es.js.map +1 -1
- package/dist/accounts/components/detailsdrawer/Accounts/AccountActions.es.js +40 -37
- package/dist/accounts/components/detailsdrawer/Accounts/AccountActions.es.js.map +1 -1
- package/dist/accounts/components/detailsdrawer/Accounts/AccountActionsRow.es.js.map +1 -1
- package/dist/accounts/components/detailsdrawer/Accounts/AccountConnection.es.js.map +1 -1
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailEdit.es.js.map +1 -1
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetails.es.js.map +1 -1
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsChart.es.js.map +1 -1
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsContent.es.js.map +1 -1
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsDrawer.es.js.map +1 -1
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsHeader.es.js.map +1 -1
- package/dist/accounts/components/detailsdrawer/Accounts/ConnectionErrorMessage.es.js.map +1 -1
- package/dist/accounts/components/detailsdrawer/Transactions/TransactionsTab.es.js.map +1 -1
- package/dist/accounts/utils/AccountFields.es.js +4 -1
- package/dist/accounts/utils/AccountFields.es.js.map +1 -1
- package/dist/analytics/SurveyMiniWidget.es.js.map +1 -1
- package/dist/analytics/components/RatingScale.es.js.map +1 -1
- package/dist/budgets/BubbleBudgetsMiniWidget.es.js +46 -44
- package/dist/budgets/BubbleBudgetsMiniWidget.es.js.map +1 -1
- package/dist/budgets/BubbleBudgetsWidget.es.js.map +1 -1
- package/dist/budgets/components/AddBudgets.es.js.map +1 -1
- package/dist/budgets/components/BubbleBudgets.es.js.map +1 -1
- package/dist/budgets/components/BubbleChart.es.js +12 -12
- package/dist/budgets/components/BubbleChart.es.js.map +1 -1
- package/dist/budgets/components/BudgetDetailsDrawer.es.js.map +1 -1
- package/dist/budgets/components/BudgetDetailsDrawerV2.es.js.map +1 -1
- package/dist/budgets/components/BudgetList.es.js.map +1 -1
- package/dist/budgets/components/MerchantBudgetDetailsDrawer.es.js.map +1 -1
- package/dist/budgets/components/Overview.es.js.map +1 -1
- package/dist/budgets/components/addbudget/Header.es.js.map +1 -1
- package/dist/budgets/components/addbudget/RecalculateBudgets.es.js.map +1 -1
- package/dist/budgets/components/addbudget/UnbudgetedRow.es.js.map +1 -1
- package/dist/budgets/components/bubblechart/Bubble.es.js.map +1 -1
- package/dist/budgets/components/bubblechart/Mercury.es.js +13 -11
- package/dist/budgets/components/bubblechart/Mercury.es.js.map +1 -1
- package/dist/budgets/components/budgetdetails/AddSubBudget.es.js.map +1 -1
- package/dist/budgets/components/budgetdetails/BudgetDetails.es.js.map +1 -1
- package/dist/budgets/components/budgetdetails/Header.es.js.map +1 -1
- package/dist/budgets/components/budgetdetails/SubBudgetList.es.js.map +1 -1
- package/dist/budgets/components/budgetlist/BudgetRow.es.js.map +1 -1
- package/dist/budgets/components/budgetlist/SubBudgetRow.es.js.map +1 -1
- package/dist/budgets/components/budgetlist/SubBudgetZeroState.es.js.map +1 -1
- package/dist/budgets/components/shared/BudgetAmount.es.js.map +1 -1
- package/dist/budgets/components/shared/BudgetDetailsTopSection.es.js.map +1 -1
- package/dist/budgets/utils/BubblesSVG.es.js +10 -10
- package/dist/budgets/utils/BubblesSVG.es.js.map +1 -1
- package/dist/cashflow/CashflowMiniWidget.es.js.map +1 -1
- package/dist/cashflow/CashflowOnboarding.es.js.map +1 -1
- package/dist/cashflow/CashflowWidget.es.js.map +1 -1
- package/dist/cashflow/components/CashflowAmountHeading.es.js.map +1 -1
- package/dist/cashflow/components/CashflowContent.es.js.map +1 -1
- package/dist/cashflow/components/CashflowHeading.es.js.map +1 -1
- package/dist/cashflow/components/CashflowWidgetContent.es.js.map +1 -1
- package/dist/cashflow/components/DetailsExpenseHeader.es.js.map +1 -1
- package/dist/cashflow/components/DetailsExpenseRow.es.js.map +1 -1
- package/dist/cashflow/components/DetailsFooter.es.js.map +1 -1
- package/dist/cashflow/components/DetailsTab.es.js.map +1 -1
- package/dist/cashflow/components/RemainingCash.es.js.map +1 -1
- package/dist/cashflow/components/SummaryTab.es.js.map +1 -1
- package/dist/cashflow/components/onboarding/StepOne.es.js.map +1 -1
- package/dist/cashflow/components/onboarding/StepTwo.es.js.map +1 -1
- package/dist/categories/components/CategoryList.es.js +24 -24
- package/dist/categories/components/CategoryList.es.js.map +1 -1
- package/dist/categories/components/CategoryRow.es.js +6 -6
- package/dist/categories/components/CategoryRow.es.js.map +1 -1
- package/dist/categories/components/CategorySelector.es.js +36 -32
- package/dist/categories/components/CategorySelector.es.js.map +1 -1
- package/dist/categories/components/CategorySelectorDrawer.es.js.map +1 -1
- package/dist/categories/components/CustomCategories/AddSubcategory.es.js.map +1 -1
- package/dist/categories/components/CustomCategories/CustomCategoryModal.es.js +0 -1
- package/dist/categories/components/CustomCategories/CustomCategoryModal.es.js.map +1 -1
- package/dist/categories/components/SubcategoryList.es.js.map +1 -1
- package/dist/categories/components/SubcategoryRow.es.js.map +1 -1
- package/dist/common/components/Banner.es.js.map +1 -1
- package/dist/common/components/ConnectCard.es.js.map +1 -1
- package/dist/common/components/ConnectDrawer.es.js.map +1 -1
- package/dist/common/components/ConnectStatus.es.js.map +1 -1
- package/dist/common/components/CurrencyDialog.es.js.map +1 -1
- package/dist/common/components/CurrencyInput.es.js +11 -11
- package/dist/common/components/CurrencyText.es.js.map +1 -1
- package/dist/common/components/DataRow.es.js +7 -7
- package/dist/common/components/DataRow.es.js.map +1 -1
- package/dist/common/components/EmptyState.es.js.map +1 -1
- package/dist/common/components/Error.es.js.map +1 -1
- package/dist/common/components/ErrorBoundary.es.js.map +1 -1
- package/dist/common/components/GlobalAccountFilter.es.js.map +1 -1
- package/dist/common/components/IconBacking.es.js.map +1 -1
- package/dist/common/components/InformationTooltip.es.js.map +1 -1
- package/dist/common/components/ListItemAction.es.js.map +1 -1
- package/dist/common/components/ListItemRow.es.js +1 -1
- package/dist/common/components/ListItemRow.es.js.map +1 -1
- package/dist/common/components/ListItemWrapper.es.js.map +1 -1
- package/dist/common/components/Loader.es.js.map +1 -1
- package/dist/common/components/MicroWidgetContainer.es.js.map +1 -1
- package/dist/common/components/MiniWidgetContainer.es.js.map +1 -1
- package/dist/common/components/ResponsiveButton.es.js.map +1 -1
- package/dist/common/components/SearchBox.es.js.map +1 -1
- package/dist/common/components/Select.es.js.map +1 -1
- package/dist/common/components/SelectionBox.es.js.map +1 -1
- package/dist/common/components/SkeletonLoader.es.js.map +1 -1
- package/dist/common/components/SubheaderRow.es.js.map +1 -1
- package/dist/common/components/TabContentContainer.es.js.map +1 -1
- package/dist/common/components/TinyBarChart.es.js.map +1 -1
- package/dist/common/components/WidgetContainer.es.js.map +1 -1
- package/dist/common/components/WidgetDateRangeSelector.es.js +28 -28
- package/dist/common/components/WidgetDateRangeSelector.es.js.map +1 -1
- package/dist/common/components/addaccounts/AddAccounts.es.js +13 -13
- package/dist/common/components/addaccounts/AddAccounts.es.js.map +1 -1
- package/dist/common/components/calendar/Calendar.es.js.map +1 -1
- package/dist/common/components/calendar/Day.es.js.map +1 -1
- package/dist/common/components/calendar/Header.es.js +26 -23
- package/dist/common/components/calendar/Header.es.js.map +1 -1
- package/dist/common/components/charts/Donut.es.js.map +1 -1
- package/dist/common/components/charts/LineChart.es.js.map +1 -1
- package/dist/common/components/charts/StackedLineChart.es.js.map +1 -1
- package/dist/common/components/charts/StatusBar.es.js.map +1 -1
- package/dist/common/components/charts/linechart/CustomLegend.es.js.map +1 -1
- package/dist/common/components/charts/linechart/CustomLine.es.js.map +1 -1
- package/dist/common/components/charts/linechart/CustomMark.es.js.map +1 -1
- package/dist/common/components/charts/linechart/CustomTooltip.es.js.map +1 -1
- package/dist/common/components/charts/stackedlinechart/CategoryIconLabel.es.js.map +1 -1
- package/dist/common/components/charts/stackedlinechart/CustomAreaTooltip.es.js.map +1 -1
- package/dist/common/components/charts/stackedlinechart/CustomLegend.es.js.map +1 -1
- package/dist/common/components/charts/stackedlinechart/CustomPointTooltip.es.js.map +1 -1
- package/dist/common/components/daterangeselector/DateRangeSelector.d.ts +14 -0
- package/dist/common/components/daterangeselector/DateRangeSelector.es.js +113 -101
- package/dist/common/components/daterangeselector/DateRangeSelector.es.js.map +1 -1
- package/dist/common/components/dialog/Dialog.es.js.map +1 -1
- package/dist/common/components/donuts/MultiSegmentDonut.es.js.map +1 -1
- package/dist/common/components/donuts/SingleSegmentDonut.es.js.map +1 -1
- package/dist/common/components/drawer/Drawer.es.js.map +1 -1
- package/dist/common/components/drawer/Footer.es.js.map +1 -1
- package/dist/common/components/drawer/Header.es.js.map +1 -1
- package/dist/common/components/globalaccountfilter/GlobalAccountFilterList.es.js +71 -87
- package/dist/common/components/globalaccountfilter/GlobalAccountFilterList.es.js.map +1 -1
- package/dist/common/components/listitems/CollapseExpandListItem.es.js +4 -4
- package/dist/common/components/listitems/CollapseExpandListItem.es.js.map +1 -1
- package/dist/common/components/listitems/ToggleButtonListItem.es.js +6 -6
- package/dist/common/components/listitems/ToggleButtonListItem.es.js.map +1 -1
- package/dist/common/components/listitems/ToggleListItem.es.js.map +1 -1
- package/dist/common/hooks/useAriaLive.es.js.map +1 -1
- package/dist/common/utils/AccountFilter.es.js.map +1 -1
- package/dist/core/constants/Category.es.js.map +1 -1
- package/dist/core/stores/CategoryStore.d.ts +2 -0
- package/dist/core/stores/CategoryStore.es.js +55 -47
- package/dist/core/stores/CategoryStore.es.js.map +1 -1
- package/dist/core/stores/DebtsStore.es.js +10 -10
- package/dist/core/stores/DebtsStore.es.js.map +1 -1
- package/dist/core/stores/FinstrongStore.es.js +4 -4
- package/dist/core/stores/FinstrongStore.es.js.map +1 -1
- package/dist/core/stores/TrendsStore.es.js +6 -6
- package/dist/core/types/Account.es.js.map +1 -1
- package/dist/core/utils/DateUtil.es.js +24 -23
- package/dist/core/utils/DateUtil.es.js.map +1 -1
- package/dist/core/utils/DebtUtils.es.js +28 -28
- package/dist/core/utils/DebtUtils.es.js.map +1 -1
- package/dist/core/utils/GoalsUtil.es.js +11 -8
- package/dist/core/utils/GoalsUtil.es.js.map +1 -1
- package/dist/core/utils/InvestmentUtil.es.js +26 -23
- package/dist/core/utils/InvestmentUtil.es.js.map +1 -1
- package/dist/core/utils/NotificationUtils.es.js +11 -8
- package/dist/core/utils/NotificationUtils.es.js.map +1 -1
- package/dist/core/utils/RecurringTransactionsUtil.es.js +5 -8
- package/dist/core/utils/RecurringTransactionsUtil.es.js.map +1 -1
- package/dist/core/utils/SettingsUtil.es.js.map +1 -1
- package/dist/core/utils/TransactionUtils.es.js.map +1 -1
- package/dist/dashboard/Dashboard.es.js.map +1 -1
- package/dist/dashboard/Greeting.es.js.map +1 -1
- package/dist/debts/DebtsWidget.es.js.map +1 -1
- package/dist/debts/components/DebtDrawer.es.js.map +1 -1
- package/dist/debts/components/DebtsChart.es.js +36 -36
- package/dist/debts/components/DebtsChart.es.js.map +1 -1
- package/dist/debts/components/DebtsTable.es.js +13 -13
- package/dist/debts/components/DebtsTable.es.js.map +1 -1
- package/dist/debts/components/PaydownDrawer.es.js.map +1 -1
- package/dist/debts/components/SnowballCard.es.js.map +1 -1
- package/dist/debts/components/SnowballDrawer.es.js.map +1 -1
- package/dist/debts/components/actions/DebtsPriorityAction.es.js +23 -23
- package/dist/debts/components/actions/DebtsPriorityAction.es.js.map +1 -1
- package/dist/debts/components/actions/ExtraPaymentAction.es.js.map +1 -1
- package/dist/debts/components/actions/InterestRateAction.es.js.map +1 -1
- package/dist/debts/components/actions/MonthlyPaymentAction.es.js.map +1 -1
- package/dist/debts/components/actions/OriginalBalanceAction.es.js.map +1 -1
- package/dist/debts/components/debtsdrawer/DebtDetailsChart.es.js.map +1 -1
- package/dist/debts/components/debtsdrawer/DebtDetailsContent.es.js.map +1 -1
- package/dist/debts/components/debtsdrawer/DebtDetailsTab.es.js.map +1 -1
- package/dist/debts/components/debtsdrawer/DebtScheduleTab.es.js.map +1 -1
- package/dist/debts/components/debtsdrawer/DebtStatusCard.es.js.map +1 -1
- package/dist/debts/components/debtspaydown/PaydownButton.es.js.map +1 -1
- package/dist/debts/components/debtspaydown/PaydownContent.es.js.map +1 -1
- package/dist/debts/components/debtspriority/DebtsPriorityButton.es.js.map +1 -1
- package/dist/debts/components/debtspriority/DebtsPrioriyPopover.es.js.map +1 -1
- package/dist/debts/components/debtstable/AccountCell.es.js.map +1 -1
- package/dist/debts/components/debtstable/PriorityCell.es.js.map +1 -1
- package/dist/finstrong/FinancialStrengthCard.es.js.map +1 -1
- package/dist/finstrong/FinstrongWidget.es.js.map +1 -1
- package/dist/finstrong/components/ConnectMoreAccountsCard.es.js.map +1 -1
- package/dist/finstrong/components/CreditScore/CreditScoreContent.es.js.map +1 -1
- package/dist/finstrong/components/CreditScore/CreditScoreHeader.es.js.map +1 -1
- package/dist/finstrong/components/HaveManageableDebt/DebtPaymentTabContent.es.js.map +1 -1
- package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtComponent.es.js.map +1 -1
- package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtProgressBar.es.js.map +1 -1
- package/dist/finstrong/components/HaveManageableDebt/IncomeTabContent.es.js.map +1 -1
- package/dist/finstrong/components/HealthChart.es.js.map +1 -1
- package/dist/finstrong/components/KeyIndicatorsBorrowTab.es.js.map +1 -1
- package/dist/finstrong/components/KeyIndicatorsDrawer.es.js.map +1 -1
- package/dist/finstrong/components/KeyIndicatorsSaveTab.es.js.map +1 -1
- package/dist/finstrong/components/KeyIndicatorsSpendTab.es.js.map +1 -1
- package/dist/finstrong/components/KeyIndicatorsTabItem.es.js.map +1 -1
- package/dist/finstrong/components/KeyIndicatorsTabItemDrawer.es.js.map +1 -1
- package/dist/finstrong/components/KeyIndicatorsTabsWidget.es.js.map +1 -1
- package/dist/finstrong/components/MaintainingEmergencySavings/EstimatedContributionCalculator.es.js.map +1 -1
- package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsContent.es.js.map +1 -1
- package/dist/finstrong/components/MaintainingEmergencySavings/MaintainingEmergencySavingsSticky.es.js.map +1 -1
- package/dist/finstrong/components/ManageCreditScore.es.js.map +1 -1
- package/dist/finstrong/components/ManageDOB.es.js.map +1 -1
- package/dist/finstrong/components/MissingData.es.js.map +1 -1
- package/dist/finstrong/components/ProfileDrawer.es.js.map +1 -1
- package/dist/finstrong/components/ProfileList.es.js.map +1 -1
- package/dist/finstrong/components/ProfileProgressBar.es.js.map +1 -1
- package/dist/finstrong/components/ProgressBar.es.js.map +1 -1
- package/dist/finstrong/components/SaveEnoughToLiveOn/AvailableTabContent.es.js.map +1 -1
- package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnDrawerContent.es.js.map +1 -1
- package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnProgressBar.es.js.map +1 -1
- package/dist/finstrong/components/SaveEnoughToLiveOn/SpendingTabContent.es.js.map +1 -1
- package/dist/finstrong/components/ScoreHistoryDrawer.es.js.map +1 -1
- package/dist/finstrong/components/ScoreRubricDrawer.es.js.map +1 -1
- package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeComponent.es.js.map +1 -1
- package/dist/finstrong/components/SpendLessThanYouMake/SpendLessThanYouMakeProgressBar.es.js.map +1 -1
- package/dist/finstrong/components/StatusChip.es.js.map +1 -1
- package/dist/finstrong/components/onboarding/Onboarding.es.js.map +1 -1
- package/dist/finstrong/components/onboarding/OnboardingAddMonthlyIncome.es.js.map +1 -1
- package/dist/finstrong/components/onboarding/OnboardingBirthday.es.js.map +1 -1
- package/dist/finstrong/components/onboarding/OnboardingCreditScore.es.js.map +1 -1
- package/dist/finstrong/components/onboarding/OnboardingStepsDrawer.es.js +15 -18
- package/dist/finstrong/components/onboarding/OnboardingStepsDrawer.es.js.map +1 -1
- package/dist/finstrong/components/onboarding/OnboardingStepsHeader.es.js.map +1 -1
- package/dist/finstrong/components/paybillsontime/PayBillsOnTimeDrawerComponent.es.js.map +1 -1
- package/dist/finstrong/components/paybillsontime/PayBillsOnTimeStickyComponent.es.js.map +1 -1
- package/dist/finstrong/components/shared/Accounts.es.js.map +1 -1
- package/dist/finstrong/components/shared/CustomDoubleBarPlot.es.js.map +1 -1
- package/dist/finstrong/components/shared/CustomPieArc.es.js.map +1 -1
- package/dist/finstrong/components/shared/DialScoreCard.es.js +27 -27
- package/dist/finstrong/components/shared/DialScoreCard.es.js.map +1 -1
- package/dist/finstrong/components/shared/DoubleBarChart.es.js.map +1 -1
- package/dist/finstrong/components/shared/LineGraph.es.js +20 -19
- package/dist/finstrong/components/shared/LineGraph.es.js.map +1 -1
- package/dist/finstrong/components/shared/ScoreHistoryTimeline.es.js +28 -28
- package/dist/finstrong/components/shared/ScoreHistoryTimeline.es.js.map +1 -1
- package/dist/finstrong/components/shared/ScoreHistoryTimelineItem.es.js.map +1 -1
- package/dist/finstrong/components/shared/TotalCard.es.js.map +1 -1
- package/dist/finstrong/components/shared/Transactions.es.js.map +1 -1
- package/dist/finstrong/util/finstrongUtils.es.js +4 -1
- package/dist/finstrong/util/finstrongUtils.es.js.map +1 -1
- package/dist/goals/GoalsMicroWidget.es.js.map +1 -1
- package/dist/goals/GoalsWidget.es.js.map +1 -1
- package/dist/goals/components/AccountSelectionDrawer.es.js.map +1 -1
- package/dist/goals/components/AddGoal.es.js.map +1 -1
- package/dist/goals/components/GoalDetails.es.js.map +1 -1
- package/dist/goals/components/GoalDetailsDrawer.es.js.map +1 -1
- package/dist/goals/components/GoalList.es.js.map +1 -1
- package/dist/goals/components/GoalStatusCard.es.js.map +1 -1
- package/dist/goals/components/ManageGoals.es.js.map +1 -1
- package/dist/goals/components/TabTitle.es.js.map +1 -1
- package/dist/goals/components/actions/AccountAction.es.js.map +1 -1
- package/dist/goals/components/actions/AddRetirementAccountAction.es.js.map +1 -1
- package/dist/goals/components/actions/AmountToSaveAction.es.js.map +1 -1
- package/dist/goals/components/actions/BirthdayAction.es.js.map +1 -1
- package/dist/goals/components/actions/ChangeAccountAction.es.js.map +1 -1
- package/dist/goals/components/actions/ContributionAction.es.js.map +1 -1
- package/dist/goals/components/actions/GoalNameAction.es.js.map +1 -1
- package/dist/goals/components/actions/InterestRateAction.es.js.map +1 -1
- package/dist/goals/components/actions/MonthlyPaymentAction.es.js.map +1 -1
- package/dist/goals/components/actions/OriginalBalanceAction.es.js.map +1 -1
- package/dist/goals/components/actions/RetirementAgeAction.es.js.map +1 -1
- package/dist/goals/components/addgoal/AddGoalListItem.es.js +5 -5
- package/dist/goals/components/addgoal/AddGoalListItem.es.js.map +1 -1
- package/dist/goals/components/managegoals/CompleteListItem.es.js.map +1 -1
- package/dist/goals/components/managegoals/OngoingListItem.es.js.map +1 -1
- package/dist/goals/components/micro/GoalMicroStatusCard.es.js.map +1 -1
- package/dist/goals/components/micro/GoalsMicroEmptyState.es.js.map +1 -1
- package/dist/help/HelpWidget.es.js.map +1 -1
- package/dist/help/components/Help.es.js.map +1 -1
- package/dist/help/components/HelpList.es.js +32 -32
- package/dist/help/components/HelpList.es.js.map +1 -1
- package/dist/help/components/content/BottomImageContent.es.js.map +1 -1
- package/dist/help/components/content/ContentItem.es.js.map +1 -1
- package/dist/help/components/content/Header.es.js.map +1 -1
- package/dist/help/components/content/LeftImageContent.es.js.map +1 -1
- package/dist/help/components/content/NoImageContent.es.js.map +1 -1
- package/dist/help/components/content/RightImageContent.es.js.map +1 -1
- package/dist/help/components/content/TopImageContent.es.js.map +1 -1
- package/dist/help/components/requestsupport/ContactSupport.es.js.map +1 -1
- package/dist/help/components/requestsupport/HelpByCategoryList.es.js.map +1 -1
- package/dist/help/components/requestsupport/MissingInstitution.es.js.map +1 -1
- package/dist/help/components/requestsupport/PopularTopicsDrawer.es.js.map +1 -1
- package/dist/help/components/requestsupport/PopularTopicsList.es.js.map +1 -1
- package/dist/help/components/requestsupport/PopularTopicsRow.es.js +6 -6
- package/dist/help/components/requestsupport/PopularTopicsRow.es.js.map +1 -1
- package/dist/help/components/requestsupport/RequestSupport.es.js.map +1 -1
- package/dist/help/components/requestsupport/RequestSupportFooter.es.js.map +1 -1
- package/dist/help/components/requestsupport/RequestSupportHeader.es.js.map +1 -1
- package/dist/help/components/requestsupport/RequestSupportInstitution.es.js.map +1 -1
- package/dist/help/components/requestsupport/SupportSuccessMessage.es.js.map +1 -1
- package/dist/insights/components/feed/Header.es.js.map +1 -1
- package/dist/insights/components/insights/AmericanUpcomingTaxDeadlineAlert/AmericanUpcomingTaxDeadlineAlert.es.js.map +1 -1
- package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandard.es.js.map +1 -1
- package/dist/insights/components/insights/BillAmountNotStandard/BillAmountNotStandardMUI.es.js.map +1 -1
- package/dist/insights/components/insights/CashBack/CashBack.es.js.map +1 -1
- package/dist/insights/components/insights/CategoryBudget/CategoryBudget.es.js +17 -17
- package/dist/insights/components/insights/CategoryBudget/CategoryBudget.es.js.map +1 -1
- package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2.es.js.map +1 -1
- package/dist/insights/components/insights/CategorySpendingV2/CategorySpendingV2MUI.es.js.map +1 -1
- package/dist/insights/components/insights/CelebrateCreditCardPayoff/CelebrateCreditCardPayoff.es.js.map +1 -1
- package/dist/insights/components/insights/CustomTransaction/CustomTransaction.es.js.map +1 -1
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsBody.es.js.map +1 -1
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsLearnMoreDrawerContent.es.js +6 -6
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsLearnMoreDrawerContent.es.js.map +1 -1
- package/dist/insights/components/insights/DiscoveredAccounts/DiscoveredAccountsMiniInsight.es.js.map +1 -1
- package/dist/insights/components/insights/FederalBankHoliday/FederalBankHoliday.es.js.map +1 -1
- package/dist/insights/components/insights/FederalBankHoliday/FederalBankHolidayMUI.es.js.map +1 -1
- package/dist/insights/components/insights/MarketingHub/Offer.es.js.map +1 -1
- package/dist/insights/components/insights/MonthlyDebtToIncomeComparisonV2/MonthlyDebtToIncomeComparisonV2.es.js.map +1 -1
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/LastMonthsContributionSection.es.js.map +1 -1
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/MonthlyEmergencyFundReviewBody.es.js +38 -35
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/MonthlyEmergencyFundReviewBody.es.js.map +1 -1
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/ProjectedCompletionSection.es.js.map +1 -1
- package/dist/insights/components/insights/MonthlyEmergencyFundReview/TotalSection.es.js.map +1 -1
- package/dist/insights/components/insights/MonthlySavingsToIncomeComparison/MonthlySavingsToIncomeComparison.es.js.map +1 -1
- package/dist/insights/components/insights/MonthlySpendToIncomeComparisonV2/MonthlySpendToIncomeComparisonV2.es.js.map +1 -1
- package/dist/insights/components/insights/MonthlySpendingComparisonV2/MonthlySpendingComparisonV2.es.js.map +1 -1
- package/dist/insights/components/insights/P2pCategorization/P2pCategorization.es.js.map +1 -1
- package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationMultipleTransactions.es.js.map +1 -1
- package/dist/insights/components/insights/P2pCategorization/shared/P2pCategorizationSingleTransaction.es.js.map +1 -1
- package/dist/insights/components/insights/SavingsAccountBalancesSummary/SavingsAccountBalancesSummary.es.js.map +1 -1
- package/dist/insights/components/insights/SharedDeposit/SharedDeposit.es.js.map +1 -1
- package/dist/insights/components/insights/SwitchDirectDeposit/AccountBox.es.js.map +1 -1
- package/dist/insights/components/insights/SwitchDirectDeposit/SwitchDirectDepositMainContainer.es.js.map +1 -1
- package/dist/insights/components/insights/UnifiedDeposit/UnifiedDeposit.es.js.map +1 -1
- package/dist/insights/components/insights/UnifiedDeposit/UnifiedDepositBody.es.js.map +1 -1
- package/dist/insights/components/insights/UserFeedback/UserFeedback.es.js.map +1 -1
- package/dist/insights/components/insights/WeeklyNoSpendDays/BubbleWeek.es.js.map +1 -1
- package/dist/insights/components/insights/WeeklyNoSpendDays/WeeklyNoSpendDays.es.js.map +1 -1
- package/dist/insights/components/shared/ChartDrawerTemplate/ChartDrawerTemplate.es.js +22 -22
- package/dist/insights/components/shared/ChartDrawerTemplate/ChartDrawerTemplate.es.js.map +1 -1
- package/dist/insights/components/shared/ChartDrawerTemplate/TipSection.es.js.map +1 -1
- package/dist/insights/components/shared/ChartTransactionWithDrillDown.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/BarChart.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/BarChartV2.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/ChartLegend.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/ChartLegendV2.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/CustomBarPlot.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/CustomBarPlotV2.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlot.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/CustomDoubleBarPlotMXUI.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChart.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegend.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartLegendMXUI.es.js.map +1 -1
- package/dist/insights/components/shared/Charts/BarChart/DoubleBarChartMXUI.es.js.map +1 -1
- package/dist/insights/components/shared/ConnectionCard.es.js.map +1 -1
- package/dist/insights/components/shared/Coupon.es.js.map +1 -1
- package/dist/insights/components/shared/DeepLinks/DeepLinkDialog.es.js.map +1 -1
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/DirectDepositDeepLink.es.js.map +1 -1
- package/dist/insights/components/shared/DeepLinks/DirectDeposit/Dot.es.js.map +1 -1
- package/dist/insights/components/shared/DirectDeposit/DirectDeposit.es.js.map +1 -1
- package/dist/insights/components/shared/DirectDeposit/DirectDepositSubHeader.es.js.map +1 -1
- package/dist/insights/components/shared/DirectDeposit/FullFeedBodyHeader.es.js.map +1 -1
- package/dist/insights/components/shared/DirectDeposit/LeftBox.es.js.map +1 -1
- package/dist/insights/components/shared/DirectDeposit/MiniBodyHeader.es.js.map +1 -1
- package/dist/insights/components/shared/DirectDeposit/RightBox.es.js.map +1 -1
- package/dist/insights/components/shared/DiscoveredAccountsConnect.es.js.map +1 -1
- package/dist/insights/components/shared/DrillDownCalculation/BalanceStepper.es.js.map +1 -1
- package/dist/insights/components/shared/DrillDownCalculation/DrillDownCalculation.es.js.map +1 -1
- package/dist/insights/components/shared/ErrorCard/ErrorCard.es.js.map +1 -1
- package/dist/insights/components/shared/GenericFeedback/FeedbackButtons.es.js.map +1 -1
- package/dist/insights/components/shared/GenericFeedback/FeedbackDescription.es.js.map +1 -1
- package/dist/insights/components/shared/GenericFeedback/FeedbackHeader.es.js.map +1 -1
- package/dist/insights/components/shared/GenericFeedback/FeedbackOptions.es.js.map +1 -1
- package/dist/insights/components/shared/GenericFeedback/FeedbackText.es.js.map +1 -1
- package/dist/insights/components/shared/GoalProgress.es.js.map +1 -1
- package/dist/insights/components/shared/GradientBox.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/BeatCard.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/BeatCardMUI.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/CardButtonSection.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/CardError.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/CardFooter.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/CardLoading.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/ClientConfigurableCta.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/ContentAndDescription.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/ContentAndDescriptionMUI.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/Description.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/DescriptionMUI.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/EmbeddedCard.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/FeedbackCard.es.js +4 -4
- package/dist/insights/components/shared/InsightsCard/FeedbackCard.es.js.map +1 -1
- package/dist/insights/components/shared/InsightsCard/InsightButton.es.js.map +1 -1
- package/dist/insights/components/shared/MenuAction.es.js +4 -4
- package/dist/insights/components/shared/MenuAction.es.js.map +1 -1
- package/dist/insights/components/shared/MiniInsightCard.es.js.map +1 -1
- package/dist/insights/components/shared/P2P/P2PMultipleCategorization.es.js +23 -23
- package/dist/insights/components/shared/P2P/P2PMultipleCategorization.es.js.map +1 -1
- package/dist/insights/components/shared/P2PCategorizationSingleAccount/P2PCategorizationSingleAccount.es.js +24 -24
- package/dist/insights/components/shared/P2PCategorizationSingleAccount/P2PCategorizationSingleAccount.es.js.map +1 -1
- package/dist/insights/components/shared/ProgressBar.es.js.map +1 -1
- package/dist/insights/components/shared/SaveAnExtra100/SaveAnExtra100.es.js.map +1 -1
- package/dist/insights/components/shared/SaveEnoughToLiveOnBottomSection.es.js.map +1 -1
- package/dist/insights/components/shared/StatusIndicator.es.js.map +1 -1
- package/dist/insights/components/shared/ThemedSVGImage.es.js.map +1 -1
- package/dist/insights/components/shared/TransactionCard.es.js.map +1 -1
- package/dist/insights/components/shared/ZeroState/LinedCardZeroState.es.js.map +1 -1
- package/dist/investments/InvestmentsWidget.es.js.map +1 -1
- package/dist/investments/components/Allocation.es.js.map +1 -1
- package/dist/investments/components/Analysis.es.js.map +1 -1
- package/dist/investments/components/AnalysisDetails.es.js.map +1 -1
- package/dist/investments/components/EmptyStateFooterComponent.es.js.map +1 -1
- package/dist/investments/components/HeaderCell.es.js.map +1 -1
- package/dist/investments/components/HoldingDrawer.es.js.map +1 -1
- package/dist/investments/components/HoldingTable.es.js +167 -164
- package/dist/investments/components/HoldingTable.es.js.map +1 -1
- package/dist/investments/components/InfoToolTip.es.js.map +1 -1
- package/dist/investments/components/Overview.es.js.map +1 -1
- package/dist/investments/components/TabTitle.es.js.map +1 -1
- package/dist/investments/components/allocation/InvestementAllocationList.es.js.map +1 -1
- package/dist/investments/components/allocation/InvestmentsAllocationChart.es.js.map +1 -1
- package/dist/merchants/components/MerchantLookup.es.js.map +1 -1
- package/dist/microinsights/InsightsMicroWidget.es.js.map +1 -1
- package/dist/microinsights/MicroCardTemplate.es.js.map +1 -1
- package/dist/microinsights/Spinner.es.js.map +1 -1
- package/dist/microinsights/beaticons/BeatCategoryIcon.es.js +8 -8
- package/dist/microinsights/beaticons/BeatCategoryIcon.es.js.map +1 -1
- package/dist/microinsights/beaticons/BeatMaterialIcon.es.js.map +1 -1
- package/dist/microinsights/beaticons/ChartFilledIcon.es.js.map +1 -1
- package/dist/microinsights/beaticons/ZeroStateIcon.es.js.map +1 -1
- package/dist/microinsights/cards/ViewMoreMicroCard.d.ts +1 -0
- package/dist/microinsights/cards/ViewMoreMicroCard.es.js.map +1 -1
- package/dist/microinsights/carousel/BeatList.es.js +17 -17
- package/dist/microinsights/carousel/BeatList.es.js.map +1 -1
- package/dist/microinsights/carousel/CarouselControls.es.js.map +1 -1
- package/dist/microinsights/carousel/CarouselHeader.es.js.map +1 -1
- package/dist/microinsights/carousel/MicroBeatCarousel.es.js.map +1 -1
- package/dist/microinsights/constants/Analytics.es.js.map +1 -1
- package/dist/networth/NetWorthMicroWidget.es.js.map +1 -1
- package/dist/networth/NetWorthWidget.es.js.map +1 -1
- package/dist/networth/components/AssetsLiabilitiesDetail.es.js +1 -1
- package/dist/networth/components/AssetsLiabilitiesDetail.es.js.map +1 -1
- package/dist/networth/components/GainsLossesDetail.es.js.map +1 -1
- package/dist/networth/components/NetWorthChange.es.js.map +1 -1
- package/dist/networth/components/NetWorthChart.es.js.map +1 -1
- package/dist/networth/components/NetWorthList.es.js.map +1 -1
- package/dist/networth/components/NetWorthListItem.es.js.map +1 -1
- package/dist/networth/components/NetWorthSummary.es.js.map +1 -1
- package/dist/networth/components/micro/NetworthData.es.js.map +1 -1
- package/dist/networth/components/micro/ZeroState.es.js.map +1 -1
- package/dist/notifications/components/DateRow.es.js.map +1 -1
- package/dist/notifications/components/NotificationBadge.es.js.map +1 -1
- package/dist/notifications/components/NotificationCard.es.js.map +1 -1
- package/dist/notifications/components/NotificationDrawer.es.js.map +1 -1
- package/dist/notifications/components/NotificationList.es.js +33 -30
- package/dist/notifications/components/NotificationList.es.js.map +1 -1
- package/dist/notifications/components/NotificationsEmptyState.es.js.map +1 -1
- package/dist/recurringtransactions/RecurringTransactionsMicroWidget.es.js.map +1 -1
- package/dist/recurringtransactions/RecurringTransactionsMiniWidget.es.js.map +1 -1
- package/dist/recurringtransactions/RecurringTransactionsWidget.es.js.map +1 -1
- package/dist/recurringtransactions/ZeroStateMicroWidget.es.js.map +1 -1
- package/dist/recurringtransactions/components/MicroWidgetContent.es.js.map +1 -1
- package/dist/recurringtransactions/components/MiniWidgetContent.es.js.map +1 -1
- package/dist/recurringtransactions/components/PaymentSchedule.es.js.map +1 -1
- package/dist/recurringtransactions/components/RecurrenceBadges.es.js.map +1 -1
- package/dist/recurringtransactions/components/RecurrenceList.es.js.map +1 -1
- package/dist/recurringtransactions/components/RecurrenceRow.es.js.map +1 -1
- package/dist/recurringtransactions/components/RecurringSettingsDrawer.es.js.map +1 -1
- package/dist/recurringtransactions/components/RecurringStatus.es.js.map +1 -1
- package/dist/recurringtransactions/components/RecurringTransactionDetails.es.js.map +1 -1
- package/dist/recurringtransactions/components/RecurringTransactionDetailsDrawer.es.js.map +1 -1
- package/dist/recurringtransactions/components/RecurringTransactionList.es.js.map +1 -1
- package/dist/recurringtransactions/components/RecurringTransactions.es.js.map +1 -1
- package/dist/recurringtransactions/components/UpcomingRecurrenceCard.es.js.map +1 -1
- package/dist/recurringtransactions/components/actions/LinkTransactionDrawer.es.js.map +1 -1
- package/dist/recurringtransactions/components/actions/MarkAsPaidDialog.es.js.map +1 -1
- package/dist/recurringtransactions/components/actions/MarkAsUnpaidDialog.es.js.map +1 -1
- package/dist/recurringtransactions/components/actions/PaymentScheduleAction.es.js.map +1 -1
- package/dist/recurringtransactions/components/micro/MerchantLogosRow.es.js.map +1 -1
- package/dist/recurringtransactions/components/micro/OverlappingMerchantLogos.es.js.map +1 -1
- package/dist/recurringtransactions/components/micro/RecurrenceLegend.es.js.map +1 -1
- package/dist/recurringtransactions/components/recurrencecalendar/Legend.es.js.map +1 -1
- package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceCalendar.es.js.map +1 -1
- package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceDay.es.js.map +1 -1
- package/dist/recurringtransactions/components/shared/RecurringSettings.es.js.map +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js.map +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransactionDetails.es.js.map +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/ManageExpenses.es.js.map +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/ManageIncome.es.js.map +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/RecurringRow.es.js.map +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/RecurringSettingsZeroState.es.js.map +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js.map +1 -1
- package/dist/settings/NotificationSettingsWidget.es.js.map +1 -1
- package/dist/settings/SettingsWidget.es.js.map +1 -1
- package/dist/settings/TransactionRulesWidget.es.js.map +1 -1
- package/dist/settings/components/SettingsWidgetContents.es.js.map +1 -1
- package/dist/settings/components/devices/DeviceDialog.es.js.map +1 -1
- package/dist/settings/components/devices/DeviceList.es.js.map +1 -1
- package/dist/settings/components/devices/DeviceTab.es.js.map +1 -1
- package/dist/settings/components/devices/DeviceTable.es.js +82 -82
- package/dist/settings/components/devices/DeviceTable.es.js.map +1 -1
- package/dist/settings/components/notifications/AccountNotificationProfile.es.js.map +1 -1
- package/dist/settings/components/notifications/AccountNotificationProfiles.es.js.map +1 -1
- package/dist/settings/components/notifications/AccountProfileListItem.es.js.map +1 -1
- package/dist/settings/components/notifications/DeliveryMethods.es.js.map +1 -1
- package/dist/settings/components/notifications/NotificationProfile.es.js.map +1 -1
- package/dist/settings/components/notifications/NotificationSettings.es.js.map +1 -1
- package/dist/settings/components/notifications/PersonalDetails.es.js.map +1 -1
- package/dist/settings/components/profile/ProfileTab.es.js.map +1 -1
- package/dist/settings/components/profile/actions/VerifyEmailAction.es.js.map +1 -1
- package/dist/settings/components/profile/actions/VerifyPhoneAction.es.js.map +1 -1
- package/dist/settings/components/profile/actions/VerifyTokenAction.es.js.map +1 -1
- package/dist/settings/components/transactionrules/TransactionRulesTab.es.js.map +1 -1
- package/dist/settings/components/transactionrules/actions/DeleteRuleAction.es.js.map +1 -1
- package/dist/settings/components/transactionrules/actions/EditPayeeAction.es.js.map +1 -1
- package/dist/settings/components/transactionrules/components/EditRuleDetails.es.js.map +1 -1
- package/dist/settings/components/transactionrules/components/RuleListItem.es.js +24 -21
- package/dist/settings/components/transactionrules/components/RuleListItem.es.js.map +1 -1
- package/dist/spending/SpendingMiniWidget.es.js.map +1 -1
- package/dist/spending/SpendingWidget.es.js +48 -39
- package/dist/spending/SpendingWidget.es.js.map +1 -1
- package/dist/spending/components/MiniSpendingChart.es.js.map +1 -1
- package/dist/spending/components/Spending.es.js.map +1 -1
- package/dist/spending/components/SpendingChart.es.js.map +1 -1
- package/dist/spending/components/SpendingDonut.es.js.map +1 -1
- package/dist/spending/components/SpendingLegend.es.js.map +1 -1
- package/dist/spending/components/SpendingList.es.js.map +1 -1
- package/dist/spending/components/SpendingTabLabel.es.js.map +1 -1
- package/dist/transactions/TransactionWidget.es.js.map +1 -1
- package/dist/transactions/components/shared/TransactionDetails.es.js.map +1 -1
- package/dist/transactions/components/shared/TransactionList.es.js.map +1 -1
- package/dist/transactions/components/shared/TransactionTable.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/Description.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/FlagTransaction.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/ManualTransactionDetails.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/TransactionAmountHeader.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/TransactionDetailsView.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/actions/AddMerchantBudgetAction.es.js +7 -7
- package/dist/transactions/components/shared/transactiondetails/actions/AddMerchantBudgetAction.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/actions/CategoryAction.es.js +29 -29
- package/dist/transactions/components/shared/transactiondetails/actions/CategoryAction.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/actions/DateAction.es.js +36 -36
- package/dist/transactions/components/shared/transactiondetails/actions/DateAction.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/actions/DeleteAction.es.js +7 -7
- package/dist/transactions/components/shared/transactiondetails/actions/DeleteAction.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/actions/DeleteLogoAction.es.js +7 -7
- package/dist/transactions/components/shared/transactiondetails/actions/DeleteLogoAction.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/actions/ExcludeAction.es.js +7 -7
- package/dist/transactions/components/shared/transactiondetails/actions/ExcludeAction.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/actions/MemoAction.es.js +24 -24
- package/dist/transactions/components/shared/transactiondetails/actions/MemoAction.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/actions/SplitAction.es.js +40 -40
- package/dist/transactions/components/shared/transactiondetails/actions/SplitAction.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiondetails/actions/TagsAction.es.js +34 -34
- package/dist/transactions/components/shared/transactiondetails/actions/TagsAction.es.js.map +1 -1
- package/dist/transactions/components/shared/transactionlist/TransactionRow.es.js.map +1 -1
- package/dist/transactions/components/shared/transactionlist/ZeroState.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiontable/cells/AccountCell.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiontable/cells/AmountCell.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiontable/cells/CategoryCell.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiontable/cells/DateCell.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiontable/cells/FlagCell.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiontable/cells/HeaderCell.es.js.map +1 -1
- package/dist/transactions/components/shared/transactiontable/cells/PayeeCell.es.js.map +1 -1
- package/dist/transactions/components/splitmanager/SplitManager.es.js.map +1 -1
- package/dist/transactions/components/splitmanager/SplitRow.es.js.map +1 -1
- package/dist/transactions/components/tagmanager/Header.es.js.map +1 -1
- package/dist/transactions/components/tagmanager/SearchBox.es.js.map +1 -1
- package/dist/transactions/components/tagmanager/TagManager.es.js.map +1 -1
- package/dist/transactions/components/tagmanager/TagRow.es.js +4 -4
- package/dist/transactions/components/tagmanager/TagRow.es.js.map +1 -1
- package/dist/transactions/components/transactionwidget/AddAccountModal.es.js.map +1 -1
- package/dist/transactions/components/transactionwidget/actions/EditCategoryAction.es.js.map +1 -1
- package/dist/transactions/components/transactionwidget/actions/ExportCsvAction.es.js.map +1 -1
- package/dist/transactions/utils/Transactions.es.js +20 -12
- package/dist/transactions/utils/Transactions.es.js.map +1 -1
- package/dist/trends/TrendsFullWidget.es.js +47 -47
- package/dist/trends/TrendsFullWidget.es.js.map +1 -1
- package/dist/trends/TrendsMicroWidget.es.js.map +1 -1
- package/dist/trends/TrendsMiniWidget.es.js.map +1 -1
- package/dist/trends/TrendsWidget.es.js +88 -89
- package/dist/trends/TrendsWidget.es.js.map +1 -1
- package/dist/trends/ZeroStateMicroWidget.es.js.map +1 -1
- package/dist/trends/components/CategoriesList.es.js.map +1 -1
- package/dist/trends/components/CategoryDetailChart.es.js.map +1 -1
- package/dist/trends/components/CategoryDetails.es.js.map +1 -1
- package/dist/trends/components/DateRangeText.es.js.map +1 -1
- package/dist/trends/components/TrendsChart.es.js.map +1 -1
- package/dist/trends/components/TrendsDrawer.es.js.map +1 -1
- package/dist/trends/components/TrendsInsights.es.js +21 -21
- package/dist/trends/components/TrendsInsights.es.js.map +1 -1
- package/dist/trends/components/TrendsMicroSpendingIncomeBox.es.js.map +1 -1
- package/dist/trends/components/TrendsTableContainer.es.js.map +1 -1
- package/dist/trends/components/TrendsViewToggle.es.js.map +1 -1
- package/dist/trends/components/trendstable/AccessibleSortIcon.es.js.map +1 -1
- package/dist/trends/components/trendstable/AmountCell.es.js.map +1 -1
- package/dist/trends/components/trendstable/CategoryCell.es.js.map +1 -1
- package/dist/trends/components/trendstable/HeaderCell.es.js.map +1 -1
- package/package.json +36 -35
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecurringTransactionList.es.js","names":[],"sources":["../../../src/recurringtransactions/components/RecurringTransactionList.tsx"],"sourcesContent":["import React from 'react'\n\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { getUnixTime } from 'date-fns/getUnixTime'\n\nimport Divider from '@mui/material/Divider'\nimport IconButton from '@mui/material/IconButton'\nimport List from '@mui/material/List'\nimport ListItemAvatar from '@mui/material/ListItemAvatar'\nimport ListItemText from '@mui/material/ListItemText'\nimport Menu from '@mui/material/Menu'\nimport MenuItem from '@mui/material/MenuItem'\nimport Stack from '@mui/material/Stack'\n\nimport { Cancel, CheckCircle, Icon } from '@mxenabled/mx-icons'\nimport { MerchantLogo, Text } from '@mxenabled/mxui'\n\nimport {\n ANALYTICS_EVENTS,\n formatCurrency,\n ListItemWrapper,\n useEvent,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n} from '../../common'\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\n\nimport {\n type Recurrence,\n type Transaction,\n RecurrenceStatus,\n RepeatingTransaction,\n} from '../../core'\n\ntype RecurringTransactionRow = {\n key: string\n name: string\n amount: number\n date: number\n merchantGuid: string\n categoryGuid: string\n category: string\n status: RecurrenceStatus.Paid | RecurrenceStatus.Missed\n transactionGuid?: string\n}\n\nconst buildRows = (\n transactions: Transaction[],\n missedRecurrences: Recurrence[],\n): RecurringTransactionRow[] => {\n const paidRows: RecurringTransactionRow[] = transactions.map((t) => ({\n key: t.guid,\n name: t.payee || t.description || t.feed_description,\n amount: t.amount,\n date: t.date,\n merchantGuid: t.merchant_guid || '',\n categoryGuid: t.top_level_category_guid || '',\n category: t.category || '',\n status: RecurrenceStatus.Paid,\n transactionGuid: t.guid,\n }))\n\n const missedRows: RecurringTransactionRow[] = missedRecurrences.map((r) => ({\n key: `missed-${r.expectedDate.getTime()}`,\n name: r.name,\n amount: r.amount,\n date: getUnixTime(r.expectedDate),\n merchantGuid: r.merchantGuid,\n categoryGuid: r.categoryGuid,\n category: '',\n status: RecurrenceStatus.Missed,\n }))\n\n return [...paidRows, ...missedRows].sort((a, b) => b.date - a.date)\n}\n\ninterface RecurringTransactionListProps {\n isIncome?: boolean\n onMarkAsPaidClick: () => void\n onMarkAsUnpaidClick: (transactionGuid: string) => void\n onTransactionClick: (guid: string) => void\n recurringTransaction: RepeatingTransaction\n transactions: Transaction[]\n}\n\nexport const RecurringTransactionList = ({\n isIncome = false,\n onMarkAsUnpaidClick,\n onMarkAsPaidClick,\n onTransactionClick,\n recurringTransaction,\n transactions,\n}: RecurringTransactionListProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { onEvent } = useEvent()\n const { recurrences } = useRecurringTransactionsStore()\n\n const [menuAnchorEl, setMenuAnchorEl] = React.useState<HTMLElement | null>(null)\n const [menuRow, setMenuRow] = React.useState<RecurringTransactionRow | null>(null)\n\n const missedRecurrences = React.useMemo(\n () =>\n recurrences.filter(\n (r) =>\n r.repeatingTransactionGuid === recurringTransaction.guid &&\n r.status === RecurrenceStatus.Missed,\n ),\n [recurrences, recurringTransaction.guid],\n )\n\n const rows = React.useMemo(\n () => buildRows(transactions, missedRecurrences),\n [transactions, missedRecurrences],\n )\n\n const handleClick = (row: RecurringTransactionRow) => {\n if (row.transactionGuid) {\n onTransactionClick(row.transactionGuid)\n }\n }\n\n const handleMenuOpen = (e: React.MouseEvent<HTMLElement>, row: RecurringTransactionRow) => {\n e.stopPropagation()\n setMenuAnchorEl(e.currentTarget)\n setMenuRow(row)\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_LIST_CLICK_MORE_MENU)\n }\n\n const handleMenuClose = () => {\n setMenuAnchorEl(null)\n setMenuRow(null)\n }\n\n const handleMenuAction = () => {\n if (!menuRow) return\n\n if (menuRow.status === RecurrenceStatus.Missed) {\n onMarkAsPaidClick()\n } else if (menuRow.transactionGuid) {\n onMarkAsUnpaidClick(menuRow.transactionGuid)\n }\n handleMenuClose()\n }\n\n return (\n <Stack direction=\"column\" sx={{ minHeight: '30dvh' }}>\n <Text bold={true} id=\"past-activity\" sx={{ ml: 24, mt: 16, mb: 8 }} variant=\"body1\">\n {copy.past_activity}\n </Text>\n <List aria-labelledby=\"past-activity\" sx={{ flex: 1, overflow: 'auto' }}>\n {rows.map((row, index) => {\n const isPaid = row.status === RecurrenceStatus.Paid\n const isMissed = row.status === RecurrenceStatus.Missed\n const isLast = index === rows.length - 1\n\n return (\n <React.Fragment key={row.key}>\n <ListItemWrapper\n onClick={isPaid ? () => handleClick(row) : undefined}\n sx={{ '& .MuiListItemButton-root': { pr: 10 } }}\n >\n <ListItemAvatar>\n <MerchantLogo categoryGuid={row.categoryGuid} merchantGuid={row.merchantGuid} />\n </ListItemAvatar>\n <ListItemText\n disableTypography={true}\n secondary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text variant=\"caption\">\n {formatDate(fromUnixTime(row.date), DATE_FORMATS_INTL.MONTH_DAY_YEAR)}\n </Text>\n <Stack\n alignItems=\"center\"\n direction=\"row\"\n gap={6}\n sx={{ textTransform: 'uppercase' }}\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 {isPaid ? copy.paid?.toLowerCase() : copy.missed?.toLowerCase()}\n </Text>\n </Stack>\n </Stack>\n }\n >\n <Stack direction=\"row\" justifyContent=\"space-between\" sx={{ gap: 8 }}>\n <Text bold={true} variant=\"body1\">\n {row.name}\n </Text>\n <Text\n bold={true}\n color={isIncome ? 'success.main' : 'text.primary'}\n sx={{ flexShrink: 0 }}\n variant=\"body1\"\n >\n {isIncome ? '+' : ''}\n {formatCurrency(row.amount, '0,0.00')}\n </Text>\n </Stack>\n </ListItemText>\n <IconButton\n aria-label={copy.more_menu_aria}\n onClick={(e) => handleMenuOpen(e, row)}\n size=\"small\"\n sx={{ alignSelf: 'center', ml: 4 }}\n >\n <Icon name=\"more_vert\" size={20} sx={{ color: 'text.secondary' }} />\n </IconButton>\n </ListItemWrapper>\n <Divider variant={isLast ? 'fullWidth' : 'inset'} />\n </React.Fragment>\n )\n })}\n </List>\n\n <Menu\n anchorEl={menuAnchorEl}\n anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}\n disableScrollLock={true}\n onClose={handleMenuClose}\n open={Boolean(menuAnchorEl)}\n transformOrigin={{ horizontal: 'right', vertical: 'top' }}\n >\n <MenuItem onClick={handleMenuAction} sx={{ p: 12 }}>\n <Text variant=\"body1\">\n {menuRow?.status === RecurrenceStatus.Missed\n ? copy.mark_as_paid_cta\n : copy.mark_as_unpaid_cta}\n </Text>\n </MenuItem>\n </Menu>\n </Stack>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RecurringTransactionList.es.js","names":[],"sources":["../../../src/recurringtransactions/components/RecurringTransactionList.tsx"],"sourcesContent":["import React from 'react'\n\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { getUnixTime } from 'date-fns/getUnixTime'\n\nimport Divider from '@mui/material/Divider'\nimport IconButton from '@mui/material/IconButton'\nimport List from '@mui/material/List'\nimport ListItemAvatar from '@mui/material/ListItemAvatar'\nimport ListItemText from '@mui/material/ListItemText'\nimport Menu from '@mui/material/Menu'\nimport MenuItem from '@mui/material/MenuItem'\nimport Stack from '@mui/material/Stack'\n\nimport { Cancel, CheckCircle, Icon } from '@mxenabled/mx-icons'\nimport { MerchantLogo, Text } from '@mxenabled/mxui'\n\nimport {\n ANALYTICS_EVENTS,\n formatCurrency,\n ListItemWrapper,\n useEvent,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n} from '../../common'\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\n\nimport {\n type Recurrence,\n type Transaction,\n RecurrenceStatus,\n RepeatingTransaction,\n} from '../../core'\n\ntype RecurringTransactionRow = {\n key: string\n name: string\n amount: number\n date: number\n merchantGuid: string\n categoryGuid: string\n category: string\n status: RecurrenceStatus.Paid | RecurrenceStatus.Missed\n transactionGuid?: string\n}\n\nconst buildRows = (\n transactions: Transaction[],\n missedRecurrences: Recurrence[],\n): RecurringTransactionRow[] => {\n const paidRows: RecurringTransactionRow[] = transactions.map((t) => ({\n key: t.guid,\n name: t.payee || t.description || t.feed_description,\n amount: t.amount,\n date: t.date,\n merchantGuid: t.merchant_guid || '',\n categoryGuid: t.top_level_category_guid || '',\n category: t.category || '',\n status: RecurrenceStatus.Paid,\n transactionGuid: t.guid,\n }))\n\n const missedRows: RecurringTransactionRow[] = missedRecurrences.map((r) => ({\n key: `missed-${r.expectedDate.getTime()}`,\n name: r.name,\n amount: r.amount,\n date: getUnixTime(r.expectedDate),\n merchantGuid: r.merchantGuid,\n categoryGuid: r.categoryGuid,\n category: '',\n status: RecurrenceStatus.Missed,\n }))\n\n return [...paidRows, ...missedRows].sort((a, b) => b.date - a.date)\n}\n\ninterface RecurringTransactionListProps {\n isIncome?: boolean\n onMarkAsPaidClick: () => void\n onMarkAsUnpaidClick: (transactionGuid: string) => void\n onTransactionClick: (guid: string) => void\n recurringTransaction: RepeatingTransaction\n transactions: Transaction[]\n}\n\nexport const RecurringTransactionList = ({\n isIncome = false,\n onMarkAsUnpaidClick,\n onMarkAsPaidClick,\n onTransactionClick,\n recurringTransaction,\n transactions,\n}: RecurringTransactionListProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { onEvent } = useEvent()\n const { recurrences } = useRecurringTransactionsStore()\n\n const [menuAnchorEl, setMenuAnchorEl] = React.useState<HTMLElement | null>(null)\n const [menuRow, setMenuRow] = React.useState<RecurringTransactionRow | null>(null)\n\n const missedRecurrences = React.useMemo(\n () =>\n recurrences.filter(\n (r) =>\n r.repeatingTransactionGuid === recurringTransaction.guid &&\n r.status === RecurrenceStatus.Missed,\n ),\n [recurrences, recurringTransaction.guid],\n )\n\n const rows = React.useMemo(\n () => buildRows(transactions, missedRecurrences),\n [transactions, missedRecurrences],\n )\n\n const handleClick = (row: RecurringTransactionRow) => {\n if (row.transactionGuid) {\n onTransactionClick(row.transactionGuid)\n }\n }\n\n const handleMenuOpen = (e: React.MouseEvent<HTMLElement>, row: RecurringTransactionRow) => {\n e.stopPropagation()\n setMenuAnchorEl(e.currentTarget)\n setMenuRow(row)\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_LIST_CLICK_MORE_MENU)\n }\n\n const handleMenuClose = () => {\n setMenuAnchorEl(null)\n setMenuRow(null)\n }\n\n const handleMenuAction = () => {\n if (!menuRow) return\n\n if (menuRow.status === RecurrenceStatus.Missed) {\n onMarkAsPaidClick()\n } else if (menuRow.transactionGuid) {\n onMarkAsUnpaidClick(menuRow.transactionGuid)\n }\n handleMenuClose()\n }\n\n return (\n <Stack direction=\"column\" sx={{ minHeight: '30dvh' }}>\n <Text bold={true} id=\"past-activity\" sx={{ ml: 24, mt: 16, mb: 8 }} variant=\"body1\">\n {copy.past_activity}\n </Text>\n <List aria-labelledby=\"past-activity\" sx={{ flex: 1, overflow: 'auto' }}>\n {rows.map((row, index) => {\n const isPaid = row.status === RecurrenceStatus.Paid\n const isMissed = row.status === RecurrenceStatus.Missed\n const isLast = index === rows.length - 1\n\n return (\n <React.Fragment key={row.key}>\n <ListItemWrapper\n onClick={isPaid ? () => handleClick(row) : undefined}\n sx={{ '& .MuiListItemButton-root': { pr: 10 } }}\n >\n <ListItemAvatar>\n <MerchantLogo categoryGuid={row.categoryGuid} merchantGuid={row.merchantGuid} />\n </ListItemAvatar>\n <ListItemText\n disableTypography={true}\n secondary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text variant=\"caption\">\n {formatDate(fromUnixTime(row.date), DATE_FORMATS_INTL.MONTH_DAY_YEAR)}\n </Text>\n <Stack\n alignItems=\"center\"\n direction=\"row\"\n gap={6}\n sx={{ textTransform: 'uppercase' }}\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 {isPaid ? copy.paid?.toLowerCase() : copy.missed?.toLowerCase()}\n </Text>\n </Stack>\n </Stack>\n }\n >\n <Stack direction=\"row\" justifyContent=\"space-between\" sx={{ gap: 8 }}>\n <Text bold={true} variant=\"body1\">\n {row.name}\n </Text>\n <Text\n bold={true}\n color={isIncome ? 'success.main' : 'text.primary'}\n sx={{ flexShrink: 0 }}\n variant=\"body1\"\n >\n {isIncome ? '+' : ''}\n {formatCurrency(row.amount, '0,0.00')}\n </Text>\n </Stack>\n </ListItemText>\n <IconButton\n aria-label={copy.more_menu_aria}\n onClick={(e) => handleMenuOpen(e, row)}\n size=\"small\"\n sx={{ alignSelf: 'center', ml: 4 }}\n >\n <Icon name=\"more_vert\" size={20} sx={{ color: 'text.secondary' }} />\n </IconButton>\n </ListItemWrapper>\n <Divider variant={isLast ? 'fullWidth' : 'inset'} />\n </React.Fragment>\n )\n })}\n </List>\n\n <Menu\n anchorEl={menuAnchorEl}\n anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}\n disableScrollLock={true}\n onClose={handleMenuClose}\n open={Boolean(menuAnchorEl)}\n transformOrigin={{ horizontal: 'right', vertical: 'top' }}\n >\n <MenuItem onClick={handleMenuAction} sx={{ p: 12 }}>\n <Text variant=\"body1\">\n {menuRow?.status === RecurrenceStatus.Missed\n ? copy.mark_as_paid_cta\n : copy.mark_as_unpaid_cta}\n </Text>\n </MenuItem>\n </Menu>\n </Stack>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecurringTransactions.es.js","names":[],"sources":["../../../src/recurringtransactions/components/RecurringTransactions.tsx"],"sourcesContent":["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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RecurringTransactions.es.js","names":[],"sources":["../../../src/recurringtransactions/components/RecurringTransactions.tsx"],"sourcesContent":["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"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpcomingRecurrenceCard.es.js","names":[],"sources":["../../../src/recurringtransactions/components/UpcomingRecurrenceCard.tsx"],"sourcesContent":["import Card from '@mui/material/Card'\nimport CardActionArea from '@mui/material/CardActionArea'\nimport Stack from '@mui/material/Stack'\nimport { alpha, useTheme } from '@mui/material'\n\nimport { ChevronRight } from '@mxenabled/mx-icons'\nimport { Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../common'\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\nimport { RecurrenceStatus } from '../../core'\nimport { BeatMaterialIcon } from '../../microinsights'\n\ninterface UpcomingRecurrenceCardProps {\n expectedDate: Date\n onMarkAsPaidClick: () => void\n status?: RecurrenceStatus\n}\n\nexport const UpcomingRecurrenceCard = ({\n expectedDate,\n onMarkAsPaidClick,\n status,\n}: UpcomingRecurrenceCardProps) => {\n const theme = useTheme()\n const { recurring: copy } = useGlobalCopyStore()\n\n const isPaid = status === RecurrenceStatus.Paid\n\n return (\n <Card variant=\"elevation\">\n <CardActionArea onClick={onMarkAsPaidClick}>\n <Stack\n alignItems=\"center\"\n direction=\"row\"\n justifyContent=\"space-between\"\n sx={{ px: 16, py: 14 }}\n >\n <Stack alignItems=\"center\" direction=\"row\" gap={12}>\n <BeatMaterialIcon\n bgColor={alpha(theme.palette.primary.main, 0.15)}\n name={isPaid ? 'check_circle' : 'calendar_clock'}\n />\n <Stack direction=\"column\">\n <Text fontSize={11} variant=\"body1\">\n {isPaid ? copy.paid : copy.upcoming}\n </Text>\n <Text bold={true} variant=\"body1\">\n {formatDate(expectedDate, DATE_FORMATS_INTL.MONTH_DAY_YEAR)}\n </Text>\n </Stack>\n </Stack>\n\n <Stack alignItems=\"center\" direction=\"row\" gap={4}>\n <Text bold={true} variant=\"body1\">\n {isPaid ? copy.mark_as_unpaid_cta : copy.mark_as_paid_cta}\n </Text>\n <ChevronRight size={20} />\n </Stack>\n </Stack>\n </CardActionArea>\n </Card>\n )\n}\n"],"mappings":";;;;;;;;;;;AAmBA,IAAa,IAAA,CAA0B,EACrC,cAAA,GACA,mBAAA,GACA,QAAA,EAAA,MACiC;AACjC,QAAM,IAAQ,EAAS,GACjB,EAAE,WAAW,EAAA,IAAS,EAAmB,GAEzC,IAAS,MAAW,EAAiB;AAE3C,SACE,gBAAA,EAAC,GAAD;AAAA,IAAM,SAAQ;AAAA,
|
|
1
|
+
{"version":3,"file":"UpcomingRecurrenceCard.es.js","names":[],"sources":["../../../src/recurringtransactions/components/UpcomingRecurrenceCard.tsx"],"sourcesContent":["import Card from '@mui/material/Card'\nimport CardActionArea from '@mui/material/CardActionArea'\nimport Stack from '@mui/material/Stack'\nimport { alpha, useTheme } from '@mui/material'\n\nimport { ChevronRight } from '@mxenabled/mx-icons'\nimport { Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../common'\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\nimport { RecurrenceStatus } from '../../core'\nimport { BeatMaterialIcon } from '../../microinsights'\n\ninterface UpcomingRecurrenceCardProps {\n expectedDate: Date\n onMarkAsPaidClick: () => void\n status?: RecurrenceStatus\n}\n\nexport const UpcomingRecurrenceCard = ({\n expectedDate,\n onMarkAsPaidClick,\n status,\n}: UpcomingRecurrenceCardProps) => {\n const theme = useTheme()\n const { recurring: copy } = useGlobalCopyStore()\n\n const isPaid = status === RecurrenceStatus.Paid\n\n return (\n <Card variant=\"elevation\">\n <CardActionArea onClick={onMarkAsPaidClick}>\n <Stack\n alignItems=\"center\"\n direction=\"row\"\n justifyContent=\"space-between\"\n sx={{ px: 16, py: 14 }}\n >\n <Stack alignItems=\"center\" direction=\"row\" gap={12}>\n <BeatMaterialIcon\n bgColor={alpha(theme.palette.primary.main, 0.15)}\n name={isPaid ? 'check_circle' : 'calendar_clock'}\n />\n <Stack direction=\"column\">\n <Text fontSize={11} variant=\"body1\">\n {isPaid ? copy.paid : copy.upcoming}\n </Text>\n <Text bold={true} variant=\"body1\">\n {formatDate(expectedDate, DATE_FORMATS_INTL.MONTH_DAY_YEAR)}\n </Text>\n </Stack>\n </Stack>\n\n <Stack alignItems=\"center\" direction=\"row\" gap={4}>\n <Text bold={true} variant=\"body1\">\n {isPaid ? copy.mark_as_unpaid_cta : copy.mark_as_paid_cta}\n </Text>\n <ChevronRight size={20} />\n </Stack>\n </Stack>\n </CardActionArea>\n </Card>\n )\n}\n"],"mappings":";;;;;;;;;;;AAmBA,IAAa,IAAA,CAA0B,EACrC,cAAA,GACA,mBAAA,GACA,QAAA,EAAA,MACiC;AACjC,QAAM,IAAQ,EAAS,GACjB,EAAE,WAAW,EAAA,IAAS,EAAmB,GAEzC,IAAS,MAAW,EAAiB;AAE3C,SACE,gBAAA,EAAC,GAAD;AAAA,IAAM,SAAQ;AAAA,IACZ,UAAA,gBAAA,EAAC,GAAD;AAAA,MAAgB,SAAS;AAAA,MACvB,UAAA,gBAAA,EAAC,GAAD;AAAA,QACE,YAAW;AAAA,QACX,WAAU;AAAA,QACV,gBAAe;AAAA,QACf,IAAI;AAAA,UAAE,IAAI;AAAA,UAAI,IAAI;AAAA,QAAG;AAAA,QAJvB,UAAA,CAME,gBAAA,EAAC,GAAD;AAAA,UAAO,YAAW;AAAA,UAAS,WAAU;AAAA,UAAM,KAAK;AAAA,UAAhD,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,YACE,SAAS,EAAM,EAAM,QAAQ,QAAQ,MAAM,IAAI;AAAA,YAC/C,MAAM,IAAS,iBAAiB;AAAA,UACjC,CAAA,GACD,gBAAA,EAAC,GAAD;AAAA,YAAO,WAAU;AAAA,YAAjB,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,cAAM,UAAU;AAAA,cAAI,SAAQ;AAAA,cACzB,UAAA,IAAS,EAAK,OAAO,EAAK;AAAA,YACvB,CAAA,GACN,gBAAA,EAAC,GAAD;AAAA,cAAM,MAAM;AAAA,cAAM,SAAQ;AAAA,cACvB,UAAA,EAAW,GAAc,EAAkB,cAAc;AAAA,YACtD,CAAA,CACD;AAAA,UACF,CAAA,CAAA;AAAA,QAEP,CAAA,GAAA,gBAAA,EAAC,GAAD;AAAA,UAAO,YAAW;AAAA,UAAS,WAAU;AAAA,UAAM,KAAK;AAAA,UAAhD,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,YAAM,MAAM;AAAA,YAAM,SAAQ;AAAA,YACvB,UAAA,IAAS,EAAK,qBAAqB,EAAK;AAAA,UACrC,CAAA,GACN,gBAAA,EAAC,GAAD,EAAc,MAAM,GAAK,CAAA,CACpB;AAAA,QACF,CAAA,CAAA;AAAA;IACO,CAAA;AAAA,EACZ,CAAA;AAEV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkTransactionDrawer.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/actions/LinkTransactionDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport {\n Drawer,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n useTransactionStore,\n} from '../../../common'\nimport { type RepeatingTransaction, type Transaction, RepeatingType } from '../../../core'\n\nimport {\n expenseFilter,\n expenseFilterSearch,\n incomeFilter,\n incomeFilterSearch,\n} from '../../../transactions/utils/Filters'\n\nimport { SelectTransaction } from '../shared/recurringsettings/SelectTransaction'\nimport { useTransactionsUiStore } from '../../../transactions'\n\ninterface LinkTransactionDrawerProps {\n isOpen: boolean\n onClose: () => void\n recurringTransaction: RepeatingTransaction\n}\n\nconst buildFilter =\n (recurringTransaction: RepeatingTransaction, searchValue?: string) => (t: Transaction) => {\n if (t.repeating_transaction_guid) return false\n\n const isIncome = recurringTransaction.repeating_transaction_type === RepeatingType.Income\n\n if (searchValue) {\n return isIncome ? incomeFilterSearch(t, searchValue) : expenseFilterSearch(t, searchValue)\n }\n\n return isIncome ? incomeFilter(t) : expenseFilter(t)\n }\n\nexport const LinkTransactionDrawer = observer(\n ({ isOpen, onClose, recurringTransaction }: LinkTransactionDrawerProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { markRecurrenceAsPaid } = useRecurringTransactionsStore()\n const { filter, setFilter, transactions } = useTransactionStore()\n\n const { setSearchValue } = useTransactionsUiStore()\n\n React.useEffect(() => {\n if (isOpen) {\n setFilter({ ...filter, custom: buildFilter(recurringTransaction) })\n } else {\n setSearchValue('')\n }\n }, [isOpen, recurringTransaction])\n\n const handleSearch = (searchValue: string) => {\n setFilter({ ...filter, custom: buildFilter(recurringTransaction, searchValue) })\n }\n\n const handleSelected = async (guid: string) => {\n const transaction = transactions.find((t) => t.guid === guid)\n if (transaction) {\n await markRecurrenceAsPaid(recurringTransaction.guid, transaction)\n onClose()\n }\n }\n\n return (\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={isOpen}\n onClose={onClose}\n title={copy.link_transaction_button}\n >\n <SelectTransaction onSearch={handleSearch} onSelected={handleSelected} />\n </Drawer>\n )\n },\n)\n"],"mappings":";;;;;;;;;AA2BA,IAAM,IAAA,CACH,GAA4C,MAAA,CAA0B,MAAmB;AACxF,MAAI,EAAE,2BAA4B,QAAO;AAEzC,QAAM,IAAW,EAAqB,+BAA+B,EAAc;AAEnF,SAAI,IACK,IAAW,EAAmB,GAAG,CAAW,IAAI,EAAoB,GAAG,CAAW,IAGpF,IAAW,EAAa,CAAC,IAAI,EAAc,CAAC;AACrD,GAEW,IAAwB,EAAA,CAClC,EAAE,QAAA,GAAQ,SAAA,GAAS,sBAAA,EAAA,MAAuD;AACzE,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,sBAAA,EAAA,IAAyB,EAA8B,GACzD,EAAE,QAAA,GAAQ,WAAA,GAAW,cAAA,EAAA,IAAiB,EAAoB,GAE1D,EAAE,gBAAA,EAAA,IAAmB,EAAuB;AAElD,EAAA,EAAM,UAAA,MAAgB;AACpB,IAAI,IACF,EAAU;AAAA,MAAE,GAAG;AAAA,MAAQ,QAAQ,EAAY,CAAoB;AAAA,IAAE,CAAC,IAElE,EAAe,EAAE;AAAA,EAErB,GAAG,CAAC,GAAQ,CAAoB,CAAC;AAEjC,QAAM,IAAA,CAAgB,MAAwB;AAC5C,IAAA,EAAU;AAAA,MAAE,GAAG;AAAA,MAAQ,QAAQ,EAAY,GAAsB,CAAW;AAAA,IAAE,CAAC;AAAA,EACjF,GAEM,IAAiB,OAAO,MAAiB;AAC7C,UAAM,IAAc,EAAa,KAAA,CAAM,MAAM,EAAE,SAAS,CAAI;AAC5D,IAAI,MACF,MAAM,EAAqB,EAAqB,MAAM,CAAW,GACjE,EAAQ;AAAA,EAEZ;AAEA,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,gBAAgB,EAAK;AAAA,IACb,QAAA;AAAA,IACC,SAAA;AAAA,IACT,OAAO,EAAK;AAAA,
|
|
1
|
+
{"version":3,"file":"LinkTransactionDrawer.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/actions/LinkTransactionDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport {\n Drawer,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n useTransactionStore,\n} from '../../../common'\nimport { type RepeatingTransaction, type Transaction, RepeatingType } from '../../../core'\n\nimport {\n expenseFilter,\n expenseFilterSearch,\n incomeFilter,\n incomeFilterSearch,\n} from '../../../transactions/utils/Filters'\n\nimport { SelectTransaction } from '../shared/recurringsettings/SelectTransaction'\nimport { useTransactionsUiStore } from '../../../transactions'\n\ninterface LinkTransactionDrawerProps {\n isOpen: boolean\n onClose: () => void\n recurringTransaction: RepeatingTransaction\n}\n\nconst buildFilter =\n (recurringTransaction: RepeatingTransaction, searchValue?: string) => (t: Transaction) => {\n if (t.repeating_transaction_guid) return false\n\n const isIncome = recurringTransaction.repeating_transaction_type === RepeatingType.Income\n\n if (searchValue) {\n return isIncome ? incomeFilterSearch(t, searchValue) : expenseFilterSearch(t, searchValue)\n }\n\n return isIncome ? incomeFilter(t) : expenseFilter(t)\n }\n\nexport const LinkTransactionDrawer = observer(\n ({ isOpen, onClose, recurringTransaction }: LinkTransactionDrawerProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { markRecurrenceAsPaid } = useRecurringTransactionsStore()\n const { filter, setFilter, transactions } = useTransactionStore()\n\n const { setSearchValue } = useTransactionsUiStore()\n\n React.useEffect(() => {\n if (isOpen) {\n setFilter({ ...filter, custom: buildFilter(recurringTransaction) })\n } else {\n setSearchValue('')\n }\n }, [isOpen, recurringTransaction])\n\n const handleSearch = (searchValue: string) => {\n setFilter({ ...filter, custom: buildFilter(recurringTransaction, searchValue) })\n }\n\n const handleSelected = async (guid: string) => {\n const transaction = transactions.find((t) => t.guid === guid)\n if (transaction) {\n await markRecurrenceAsPaid(recurringTransaction.guid, transaction)\n onClose()\n }\n }\n\n return (\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={isOpen}\n onClose={onClose}\n title={copy.link_transaction_button}\n >\n <SelectTransaction onSearch={handleSearch} onSelected={handleSelected} />\n </Drawer>\n )\n },\n)\n"],"mappings":";;;;;;;;;AA2BA,IAAM,IAAA,CACH,GAA4C,MAAA,CAA0B,MAAmB;AACxF,MAAI,EAAE,2BAA4B,QAAO;AAEzC,QAAM,IAAW,EAAqB,+BAA+B,EAAc;AAEnF,SAAI,IACK,IAAW,EAAmB,GAAG,CAAW,IAAI,EAAoB,GAAG,CAAW,IAGpF,IAAW,EAAa,CAAC,IAAI,EAAc,CAAC;AACrD,GAEW,IAAwB,EAAA,CAClC,EAAE,QAAA,GAAQ,SAAA,GAAS,sBAAA,EAAA,MAAuD;AACzE,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,sBAAA,EAAA,IAAyB,EAA8B,GACzD,EAAE,QAAA,GAAQ,WAAA,GAAW,cAAA,EAAA,IAAiB,EAAoB,GAE1D,EAAE,gBAAA,EAAA,IAAmB,EAAuB;AAElD,EAAA,EAAM,UAAA,MAAgB;AACpB,IAAI,IACF,EAAU;AAAA,MAAE,GAAG;AAAA,MAAQ,QAAQ,EAAY,CAAoB;AAAA,IAAE,CAAC,IAElE,EAAe,EAAE;AAAA,EAErB,GAAG,CAAC,GAAQ,CAAoB,CAAC;AAEjC,QAAM,IAAA,CAAgB,MAAwB;AAC5C,IAAA,EAAU;AAAA,MAAE,GAAG;AAAA,MAAQ,QAAQ,EAAY,GAAsB,CAAW;AAAA,IAAE,CAAC;AAAA,EACjF,GAEM,IAAiB,OAAO,MAAiB;AAC7C,UAAM,IAAc,EAAa,KAAA,CAAM,MAAM,EAAE,SAAS,CAAI;AAC5D,IAAI,MACF,MAAM,EAAqB,EAAqB,MAAM,CAAW,GACjE,EAAQ;AAAA,EAEZ;AAEA,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,gBAAgB,EAAK;AAAA,IACb,QAAA;AAAA,IACC,SAAA;AAAA,IACT,OAAO,EAAK;AAAA,IAEZ,UAAA,gBAAA,EAAC,GAAD;AAAA,MAAmB,UAAU;AAAA,MAAc,YAAY;AAAA,IAAiB,CAAA;AAAA,EAClE,CAAA;AAEZ,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkAsPaidDialog.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/actions/MarkAsPaidDialog.tsx"],"sourcesContent":["import { Text } from '@mxenabled/mxui'\n\nimport { Dialog, useGlobalCopyStore } from '../../../common'\n\ninterface MarkAsPaidDialogProps {\n isOpen: boolean\n onClose: () => void\n onLinkTransaction: () => void\n}\n\nexport const MarkAsPaidDialog = ({ isOpen, onClose, onLinkTransaction }: MarkAsPaidDialogProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n\n return (\n <Dialog\n copy={{\n title: copy.mark_as_paid_dialog_title,\n close_aria: copy.close_drawer_aria,\n }}\n isOpen={isOpen}\n maxWidth=\"xs\"\n onClose={onClose}\n onPrimaryAction={onLinkTransaction}\n primaryText={copy.link_transaction_button}\n sx={{\n '& .MuiStack-root, & .MuiDialogContent-root': {\n backgroundColor: 'background.paper',\n },\n }}\n >\n <Text truncate={false}>{copy.link_transaction_description}</Text>\n </Dialog>\n )\n}\n"],"mappings":";;;;AAUA,IAAa,IAAA,CAAoB,EAAE,QAAA,GAAQ,SAAA,GAAS,mBAAA,EAAA,MAA+C;AACjG,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB;AAE/C,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM;AAAA,MACJ,OAAO,EAAK;AAAA,MACZ,YAAY,EAAK;AAAA,IACnB;AAAA,IACQ,QAAA;AAAA,IACR,UAAS;AAAA,IACA,SAAA;AAAA,IACT,iBAAiB;AAAA,IACjB,aAAa,EAAK;AAAA,IAClB,IAAI,EACF,8CAA8C,EAC5C,iBAAiB,mBACnB,EACF;AAAA,
|
|
1
|
+
{"version":3,"file":"MarkAsPaidDialog.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/actions/MarkAsPaidDialog.tsx"],"sourcesContent":["import { Text } from '@mxenabled/mxui'\n\nimport { Dialog, useGlobalCopyStore } from '../../../common'\n\ninterface MarkAsPaidDialogProps {\n isOpen: boolean\n onClose: () => void\n onLinkTransaction: () => void\n}\n\nexport const MarkAsPaidDialog = ({ isOpen, onClose, onLinkTransaction }: MarkAsPaidDialogProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n\n return (\n <Dialog\n copy={{\n title: copy.mark_as_paid_dialog_title,\n close_aria: copy.close_drawer_aria,\n }}\n isOpen={isOpen}\n maxWidth=\"xs\"\n onClose={onClose}\n onPrimaryAction={onLinkTransaction}\n primaryText={copy.link_transaction_button}\n sx={{\n '& .MuiStack-root, & .MuiDialogContent-root': {\n backgroundColor: 'background.paper',\n },\n }}\n >\n <Text truncate={false}>{copy.link_transaction_description}</Text>\n </Dialog>\n )\n}\n"],"mappings":";;;;AAUA,IAAa,IAAA,CAAoB,EAAE,QAAA,GAAQ,SAAA,GAAS,mBAAA,EAAA,MAA+C;AACjG,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB;AAE/C,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM;AAAA,MACJ,OAAO,EAAK;AAAA,MACZ,YAAY,EAAK;AAAA,IACnB;AAAA,IACQ,QAAA;AAAA,IACR,UAAS;AAAA,IACA,SAAA;AAAA,IACT,iBAAiB;AAAA,IACjB,aAAa,EAAK;AAAA,IAClB,IAAI,EACF,8CAA8C,EAC5C,iBAAiB,mBACnB,EACF;AAAA,IAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,MAAM,UAAU;AAAA,MAAQ,UAAA,EAAK;AAAA,IAAmC,CAAA;AAAA,EAC1D,CAAA;AAEZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkAsUnpaidDialog.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/actions/MarkAsUnpaidDialog.tsx"],"sourcesContent":["import { Text } from '@mxenabled/mxui'\n\nimport { Dialog, useGlobalCopyStore } from '../../../common'\n\ninterface MarkAsUnpaidDialogProps {\n isOpen: boolean\n onClose: () => void\n onUnlinkTransaction: () => void\n}\n\nexport const MarkAsUnpaidDialog = ({\n isOpen,\n onClose,\n onUnlinkTransaction,\n}: MarkAsUnpaidDialogProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n\n return (\n <Dialog\n copy={{\n title: copy.mark_as_unpaid_dialog_title,\n close_aria: copy.close_drawer_aria,\n }}\n isOpen={isOpen}\n maxWidth=\"xs\"\n onClose={onClose}\n onPrimaryAction={onUnlinkTransaction}\n primaryText={copy.unlink_transaction_button}\n sx={{\n '& .MuiStack-root, & .MuiDialogContent-root': {\n backgroundColor: 'background.paper',\n },\n }}\n >\n <Text truncate={false}>{copy.unlink_transaction_description}</Text>\n </Dialog>\n )\n}\n"],"mappings":";;;;AAUA,IAAa,IAAA,CAAsB,EACjC,QAAA,GACA,SAAA,GACA,qBAAA,EAAA,MAC6B;AAC7B,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB;AAE/C,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM;AAAA,MACJ,OAAO,EAAK;AAAA,MACZ,YAAY,EAAK;AAAA,IACnB;AAAA,IACQ,QAAA;AAAA,IACR,UAAS;AAAA,IACA,SAAA;AAAA,IACT,iBAAiB;AAAA,IACjB,aAAa,EAAK;AAAA,IAClB,IAAI,EACF,8CAA8C,EAC5C,iBAAiB,mBACnB,EACF;AAAA,
|
|
1
|
+
{"version":3,"file":"MarkAsUnpaidDialog.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/actions/MarkAsUnpaidDialog.tsx"],"sourcesContent":["import { Text } from '@mxenabled/mxui'\n\nimport { Dialog, useGlobalCopyStore } from '../../../common'\n\ninterface MarkAsUnpaidDialogProps {\n isOpen: boolean\n onClose: () => void\n onUnlinkTransaction: () => void\n}\n\nexport const MarkAsUnpaidDialog = ({\n isOpen,\n onClose,\n onUnlinkTransaction,\n}: MarkAsUnpaidDialogProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n\n return (\n <Dialog\n copy={{\n title: copy.mark_as_unpaid_dialog_title,\n close_aria: copy.close_drawer_aria,\n }}\n isOpen={isOpen}\n maxWidth=\"xs\"\n onClose={onClose}\n onPrimaryAction={onUnlinkTransaction}\n primaryText={copy.unlink_transaction_button}\n sx={{\n '& .MuiStack-root, & .MuiDialogContent-root': {\n backgroundColor: 'background.paper',\n },\n }}\n >\n <Text truncate={false}>{copy.unlink_transaction_description}</Text>\n </Dialog>\n )\n}\n"],"mappings":";;;;AAUA,IAAa,IAAA,CAAsB,EACjC,QAAA,GACA,SAAA,GACA,qBAAA,EAAA,MAC6B;AAC7B,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB;AAE/C,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,MAAM;AAAA,MACJ,OAAO,EAAK;AAAA,MACZ,YAAY,EAAK;AAAA,IACnB;AAAA,IACQ,QAAA;AAAA,IACR,UAAS;AAAA,IACA,SAAA;AAAA,IACT,iBAAiB;AAAA,IACjB,aAAa,EAAK;AAAA,IAClB,IAAI,EACF,8CAA8C,EAC5C,iBAAiB,mBACnB,EACF;AAAA,IAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,MAAM,UAAU;AAAA,MAAQ,UAAA,EAAK;AAAA,IAAqC,CAAA;AAAA,EAC5D,CAAA;AAEZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentScheduleAction.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/actions/PaymentScheduleAction.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport {\n ANALYTICS_EVENTS,\n DataRow,\n Drawer,\n useEvent,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n} from '../../../common'\nimport { type RepeatingTransaction, Frequency } from '../../../core'\n\nimport { getFrequencyLabel } from '../../../core/utils/RecurringTransactionsUtil'\n\nimport { PaymentSchedule } from '../PaymentSchedule'\n\ninterface FrequencyActionProps {\n repeatingTransaction: RepeatingTransaction\n}\n\nexport const PaymentScheduleAction = observer(({ repeatingTransaction }: FrequencyActionProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { updateRepeatingTransaction } = useRecurringTransactionsStore()\n\n const { onEvent } = useEvent()\n const [isOpen, setIsOpen] = React.useState(false)\n const [frequency, setFrequency] = React.useState<Frequency>(repeatingTransaction.recurrence_type)\n const [firstDay, setFirstDay] = React.useState(repeatingTransaction.recurrence_day)\n const [secondDay, setSecondDay] = React.useState(repeatingTransaction.second_recurrence_day)\n\n const handleSave = async () => {\n await updateRepeatingTransaction({\n ...repeatingTransaction,\n recurrence_type: frequency,\n recurrence_day: firstDay,\n second_recurrence_day: secondDay,\n })\n\n setIsOpen(false)\n }\n\n const handleOpen = () => {\n setIsOpen(true)\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_DETAILS_CLICK_PAYMENT_SCHEDULE)\n }\n\n return (\n <>\n <DataRow\n iconName=\"sync\"\n label={copy.activity_schedule}\n onClick={handleOpen}\n showChevron={false}\n value={`${getFrequencyLabel(copy, repeatingTransaction, true)}`}\n />\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n onPrimaryAction={handleSave}\n title={copy.payment_schedule}\n >\n <PaymentSchedule\n firstDay={firstDay}\n frequency={frequency}\n onFirstDayChange={setFirstDay}\n onFrequencyChange={setFrequency}\n onSecondDayChange={setSecondDay}\n secondDay={secondDay}\n />\n </Drawer>\n </>\n )\n})\n"],"mappings":";;;;;;;;;AAqBA,IAAa,IAAwB,EAAA,CAAU,EAAE,sBAAA,EAAA,MAAiD;AAChG,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,4BAAA,EAAA,IAA+B,EAA8B,GAE/D,EAAE,SAAA,EAAA,IAAY,EAAS,GACvB,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAK,GAC1C,CAAC,GAAW,CAAA,IAAgB,EAAM,SAAoB,EAAqB,eAAe,GAC1F,CAAC,GAAU,CAAA,IAAe,EAAM,SAAS,EAAqB,cAAc,GAC5E,CAAC,GAAW,CAAA,IAAgB,EAAM,SAAS,EAAqB,qBAAqB,GAErF,IAAa,YAAY;AAC7B,UAAM,EAA2B;AAAA,MAC/B,GAAG;AAAA,MACH,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,uBAAuB;AAAA,IACzB,CAAC,GAED,EAAU,EAAK;AAAA,EACjB,GAEM,IAAA,MAAmB;AACvB,IAAA,EAAU,EAAI,GACd,EAAQ,EAAiB,qDAAqD;AAAA,EAChF;AAEA,SACE,gBAAA,EAAA,GAAA,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IACE,UAAS;AAAA,IACT,OAAO,EAAK;AAAA,IACZ,SAAS;AAAA,IACT,aAAa;AAAA,IACb,OAAO,GAAG,EAAkB,GAAM,GAAsB,EAAI,CAAA;AAAA,EAC7D,CAAA,GACD,gBAAA,EAAC,GAAD;AAAA,IACE,gBAAgB,EAAK;AAAA,IACb,QAAA;AAAA,IACR,SAAA,MAAe,EAAU,EAAK;AAAA,IAC9B,iBAAiB;AAAA,IACjB,OAAO,EAAK;AAAA,
|
|
1
|
+
{"version":3,"file":"PaymentScheduleAction.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/actions/PaymentScheduleAction.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport {\n ANALYTICS_EVENTS,\n DataRow,\n Drawer,\n useEvent,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n} from '../../../common'\nimport { type RepeatingTransaction, Frequency } from '../../../core'\n\nimport { getFrequencyLabel } from '../../../core/utils/RecurringTransactionsUtil'\n\nimport { PaymentSchedule } from '../PaymentSchedule'\n\ninterface FrequencyActionProps {\n repeatingTransaction: RepeatingTransaction\n}\n\nexport const PaymentScheduleAction = observer(({ repeatingTransaction }: FrequencyActionProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { updateRepeatingTransaction } = useRecurringTransactionsStore()\n\n const { onEvent } = useEvent()\n const [isOpen, setIsOpen] = React.useState(false)\n const [frequency, setFrequency] = React.useState<Frequency>(repeatingTransaction.recurrence_type)\n const [firstDay, setFirstDay] = React.useState(repeatingTransaction.recurrence_day)\n const [secondDay, setSecondDay] = React.useState(repeatingTransaction.second_recurrence_day)\n\n const handleSave = async () => {\n await updateRepeatingTransaction({\n ...repeatingTransaction,\n recurrence_type: frequency,\n recurrence_day: firstDay,\n second_recurrence_day: secondDay,\n })\n\n setIsOpen(false)\n }\n\n const handleOpen = () => {\n setIsOpen(true)\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_DETAILS_CLICK_PAYMENT_SCHEDULE)\n }\n\n return (\n <>\n <DataRow\n iconName=\"sync\"\n label={copy.activity_schedule}\n onClick={handleOpen}\n showChevron={false}\n value={`${getFrequencyLabel(copy, repeatingTransaction, true)}`}\n />\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n onPrimaryAction={handleSave}\n title={copy.payment_schedule}\n >\n <PaymentSchedule\n firstDay={firstDay}\n frequency={frequency}\n onFirstDayChange={setFirstDay}\n onFrequencyChange={setFrequency}\n onSecondDayChange={setSecondDay}\n secondDay={secondDay}\n />\n </Drawer>\n </>\n )\n})\n"],"mappings":";;;;;;;;;AAqBA,IAAa,IAAwB,EAAA,CAAU,EAAE,sBAAA,EAAA,MAAiD;AAChG,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,4BAAA,EAAA,IAA+B,EAA8B,GAE/D,EAAE,SAAA,EAAA,IAAY,EAAS,GACvB,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAK,GAC1C,CAAC,GAAW,CAAA,IAAgB,EAAM,SAAoB,EAAqB,eAAe,GAC1F,CAAC,GAAU,CAAA,IAAe,EAAM,SAAS,EAAqB,cAAc,GAC5E,CAAC,GAAW,CAAA,IAAgB,EAAM,SAAS,EAAqB,qBAAqB,GAErF,IAAa,YAAY;AAC7B,UAAM,EAA2B;AAAA,MAC/B,GAAG;AAAA,MACH,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,uBAAuB;AAAA,IACzB,CAAC,GAED,EAAU,EAAK;AAAA,EACjB,GAEM,IAAA,MAAmB;AACvB,IAAA,EAAU,EAAI,GACd,EAAQ,EAAiB,qDAAqD;AAAA,EAChF;AAEA,SACE,gBAAA,EAAA,GAAA,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IACE,UAAS;AAAA,IACT,OAAO,EAAK;AAAA,IACZ,SAAS;AAAA,IACT,aAAa;AAAA,IACb,OAAO,GAAG,EAAkB,GAAM,GAAsB,EAAI,CAAA;AAAA,EAC7D,CAAA,GACD,gBAAA,EAAC,GAAD;AAAA,IACE,gBAAgB,EAAK;AAAA,IACb,QAAA;AAAA,IACR,SAAA,MAAe,EAAU,EAAK;AAAA,IAC9B,iBAAiB;AAAA,IACjB,OAAO,EAAK;AAAA,IAEZ,UAAA,gBAAA,EAAC,GAAD;AAAA,MACY,UAAA;AAAA,MACC,WAAA;AAAA,MACX,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,mBAAmB;AAAA,MACR,WAAA;AAAA,IACZ,CAAA;AAAA,EACK,CAAA,CACR,EAAA,CAAA;AAEN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MerchantLogosRow.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/micro/MerchantLogosRow.tsx"],"sourcesContent":["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?.slice(0, maxLogos).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"],"mappings":";;;;AAUA,IAAa,IAAA,CAAqD,EAChE,qBAAA,GACA,UAAA,IAAW,EAAA,MAGT,gBAAA,EAAC,GAAD;AAAA,EAAO,IAAI;AAAA,IAAE,eAAe;AAAA,IAAO,KAAK;AAAA,EAAE;AAAA,
|
|
1
|
+
{"version":3,"file":"MerchantLogosRow.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/micro/MerchantLogosRow.tsx"],"sourcesContent":["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?.slice(0, maxLogos).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"],"mappings":";;;;AAUA,IAAa,IAAA,CAAqD,EAChE,qBAAA,GACA,UAAA,IAAW,EAAA,MAGT,gBAAA,EAAC,GAAD;AAAA,EAAO,IAAI;AAAA,IAAE,eAAe;AAAA,IAAO,KAAK;AAAA,EAAE;AAAA,EACvC,UAAA,GAAqB,MAAM,GAAG,CAAQ,EAAE,IAAA,CAAK,GAAY,MACxD,gBAAA,EAAC,GAAD;AAAA,IACE,cAAc,EAAW,gBAAgB;AAAA,IAEzC,cAAc,EAAW,gBAAgB;AAAA,EAC1C,GAFM,GAAG,EAAW,YAAA,IAAgB,EAAW,YAAA,IAAgB,CAAA,EAE/D,CACF;AACI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlappingMerchantLogos.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/micro/OverlappingMerchantLogos.tsx"],"sourcesContent":["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"],"mappings":";;;;AAWA,IAAa,IAAA,CAAqE,EAChF,qBAAA,GACA,UAAA,IAAW,IACX,UAAA,IAAW,EAAA,MACP;AACJ,QAAM,IAAA,CAAkB,MAAc,KAAK,IAAW;AAEtD,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,UAAU;AAAA,MACV,OAAO;AAAA,IACT;AAAA,
|
|
1
|
+
{"version":3,"file":"OverlappingMerchantLogos.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/micro/OverlappingMerchantLogos.tsx"],"sourcesContent":["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"],"mappings":";;;;AAWA,IAAa,IAAA,CAAqE,EAChF,qBAAA,GACA,UAAA,IAAW,IACX,UAAA,IAAW,EAAA,MACP;AACJ,QAAM,IAAA,CAAkB,MAAc,KAAK,IAAW;AAEtD,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,UAAU;AAAA,MACV,OAAO;AAAA,IACT;AAAA,IAEC,UAAA,EAAoB,IAAA,CAAK,GAAY,MAChC,IAAQ,IAER,gBAAA,EAAC,GAAD;AAAA,MAEE,IAAI;AAAA,QACF,cAAc;AAAA,QACd,MAAM,EAAe,CAAK;AAAA,QAC1B,cAAc;AAAA,QACd,cAAc;AAAA,QACd,cAAc;AAAA,QACd,UAAU;AAAA,MACZ;AAAA,MAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,QACE,cAAc,EAAW,gBAAgB;AAAA,QACzC,cAAc,EAAW,gBAAgB;AAAA,QACzC,MAAM;AAAA,MACP,CAAA;AAAA,IACE,GAfE,GAAG,EAAW,YAAA,IAAgB,EAAW,YAAA,IAAgB,CAAA,EAe3D,IAGF,IACR;AAAA,EACE,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecurrenceLegend.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/micro/RecurrenceLegend.tsx"],"sourcesContent":["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"],"mappings":";;;;;AAYA,IAAa,IAAA,CAAoB,EAC/B,QAAA,GACA,SAAA,GACA,eAAA,GACA,eAAA,GACA,OAAA,EAAA,MAEA,gBAAA,EAAC,GAAD;AAAA,EAAO,IAAI;AAAA,IAAE,YAAY;AAAA,IAAU,eAAe;AAAA,IAAO,KAAK;AAAA,EAAE;AAAA,
|
|
1
|
+
{"version":3,"file":"RecurrenceLegend.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/micro/RecurrenceLegend.tsx"],"sourcesContent":["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"],"mappings":";;;;;AAYA,IAAa,IAAA,CAAoB,EAC/B,QAAA,GACA,SAAA,GACA,eAAA,GACA,eAAA,GACA,OAAA,EAAA,MAEA,gBAAA,EAAC,GAAD;AAAA,EAAO,IAAI;AAAA,IAAE,YAAY;AAAA,IAAU,eAAe;AAAA,IAAO,KAAK;AAAA,EAAE;AAAA,EAAhE,UAAA,CACE,gBAAA,EAAC,GAAD,EACE,IAAI;AAAA,IACF,cAAc;AAAA,IACd,SAAA;AAAA,IACA,QAAQ;AAAA,IACR,OAAO;AAAA,EACT,EACD,CAAA,GAED,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI;AAAA,MAAE,YAAY;AAAA,MAAU,eAAe;AAAA,MAAO,KAAK;AAAA,IAAE;AAAA,IAAhE,UAAA,CACG,CAAC,KACA,gBAAA,EAAC,GAAD;AAAA,MAAM,MAAM;AAAA,MAAM,SAAQ;AAAA,MACvB,UAAA,EAAe,GAAQ,MAAW,KAAK,CAAC,IAAgB,QAAQ,QAAQ;AAAA,IACrE,CAAA,GAER,gBAAA,EAAC,GAAD;AAAA,MAAM,SAAQ;AAAA,MAAW,UAAA;AAAA,IAAY,CAAA,CAChC;AAAA,EACF,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Legend.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/recurrencecalendar/Legend.tsx"],"sourcesContent":["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"],"mappings":";;;;;;AAaA,IAAM,IAAA,CAAU,EAAE,MAAM,GAAM,OAAA,EAAA,MAC5B,gBAAA,EAAC,GAAD;AAAA,EAAO,YAAW;AAAA,EAAS,eAAc;AAAA,EAAM,IAAI,EAAE,KAAK,EAAE;AAAA,
|
|
1
|
+
{"version":3,"file":"Legend.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/recurrencecalendar/Legend.tsx"],"sourcesContent":["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"],"mappings":";;;;;;AAaA,IAAM,IAAA,CAAU,EAAE,MAAM,GAAM,OAAA,EAAA,MAC5B,gBAAA,EAAC,GAAD;AAAA,EAAO,YAAW;AAAA,EAAS,eAAc;AAAA,EAAM,IAAI,EAAE,KAAK,EAAE;AAAA,EAA5D,UAAA,CACE,gBAAA,EAAC,GAAD,CAAO,CAAA,GACP,gBAAA,EAAC,GAAD;AAAA,IAAM,SAAQ;AAAA,IAAW,UAAA;AAAA,EAAY,CAAA,CAChC;IAGI,IAAS,EAAA,MAAe;AACnC,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB;AAE/C,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,YAAW;AAAA,IACX,eAAa;AAAA,IACb,eAAc;AAAA,IACd,KAAK;AAAA,IACL,gBAAe;AAAA,IACf,IAAI;AAAA,IANN,UAAA;AAAA,MAQE,gBAAA,EAAC,GAAD;AAAA,QAAQ,MAAM;AAAA,QAAsB,OAAO,EAAK;AAAA,MAAU,CAAA;AAAA,MAC1D,gBAAA,EAAC,GAAD;AAAA,QAAQ,MAAM;AAAA,QAAa,OAAO,EAAK;AAAA,MAAS,CAAA;AAAA,MAChD,gBAAA,EAAC,GAAD;AAAA,QAAQ,MAAM;AAAA,QAAa,OAAO,EAAK;AAAA,MAAS,CAAA;AAAA,MAChD,gBAAA,EAAC,GAAD;AAAA,QAAQ,MAAM;AAAA,QAAW,OAAO,EAAK;AAAA,MAAO,CAAA;AAAA,IACvC;AAAA;AAEX,CAAC"}
|
package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceCalendar.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecurrenceCalendar.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/recurrencecalendar/RecurrenceCalendar.tsx"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgCA,IAAM,IAAgB,IAEhB,IAAA,MAAyB;AAC7B,QAAM,IAAS,EAAU;AAQzB,SAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"RecurrenceCalendar.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/recurrencecalendar/RecurrenceCalendar.tsx"],"sourcesContent":["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"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecurrenceDay.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/recurrencecalendar/RecurrenceDay.tsx"],"sourcesContent":["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"],"mappings":";;;;;;;;;;AAiBA,IAAa,IAAgB,EAAA,CAC1B,EAAE,KAAA,GAAK,qBAAA,GAAqB,GAAG,EAAA,MAAmC;AACjE,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,sBAAA,EAAA,IAAyB,EAAiB,GAC5C,EAAE,aAAA,GAAa,gBAAA,EAAA,IAAmB,EAA8B,GAQhE,IANsB,EAAM,QAAA,MAE9B,EAAY,OAAA,CAAQ,MAAe,EAAqB,SAAS,EAAW,WAAW,CAAC,GAC1F,CAAC,GAAsB,CAAW,CAGb,EAAoB,OAAA,CAAQ,MACjD,EAAU,EAAE,kBAAkB,EAAE,cAAc,CAAG,CACnD,GACM,IAAc,EAAe,KAAA,CAChC,MAAM,EAAE,SAAS,EAAe,UAAU,EAAE,WAAW,EAAiB,QAC3E,GACM,IAAY,EAAe,KAAA,CAC9B,MAAM,EAAE,SAAS,EAAe,UAAU,EAAE,WAAW,EAAiB,MAC3E,GACM,IAAU,EAAe,KAAA,CAC5B,MAAM,EAAE,SAAS,EAAe,UAAU,EAAE,WAAW,EAAiB,IAC3E,GACM,IAAY,EAAe,KAAA,CAAM,MAAM,EAAE,SAAS,EAAe,MAAM,GAEvE,KACH,IAAc,IAAI,MAAM,IAAY,IAAI,MAAM,IAAU,IAAI,MAAM,IAAY,IAAI,IAE/E,IAAc;AAAA,IAClB,KAAW,EAAK;AAAA,IAChB,KAAa,EAAK;AAAA,IAClB,KAAe,EAAK;AAAA,IACpB,KAAa,EAAK;AAAA,EACpB,EAAE,OAAO,OAAO,GAEV,IACJ,EAAY,SAAS,IACjB,GAAG,EAAW,GAAK,EAAkB,cAAc,CAAA,KAAM,EAAY,KAAK,IAAI,CAAA,KAC9E,EAAW,GAAK,EAAkB,cAAc;AAEtD,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,cACE,EAAe,SAAS,KACtB,gBAAA,EAAA,GAAA,EAAA,UAAA;AAAA,MACG,KAAa,gBAAA,EAAC,GAAD,EAAa,UAAU,GAAO,CAAA;AAAA,MAC3C,KAAW,gBAAA,EAAC,GAAD,EAAW,UAAU,GAAO,CAAA;AAAA,MACvC,KAAe,gBAAA,EAAC,GAAD,EAAsB,UAAU,GAAO,CAAA;AAAA,MACtD,KAAa,gBAAA,EAAC,GAAD,EAAa,UAAU,GAAO,CAAA;AAAA,IAC5C,EAAA,CAAA;AAAA,IAGN,SAAQ;AAAA,IACR,IAAI,EACF,qBAAqB;AAAA,MACnB,SAAS;AAAA,MACT,aAAa,IAAI,IAAc,KAAK,IAAI,CAAA;AAAA,MACxC,UAAU;AAAA,IACZ,EACF;AAAA,
|
|
1
|
+
{"version":3,"file":"RecurrenceDay.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/recurrencecalendar/RecurrenceDay.tsx"],"sourcesContent":["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"],"mappings":";;;;;;;;;;AAiBA,IAAa,IAAgB,EAAA,CAC1B,EAAE,KAAA,GAAK,qBAAA,GAAqB,GAAG,EAAA,MAAmC;AACjE,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,sBAAA,EAAA,IAAyB,EAAiB,GAC5C,EAAE,aAAA,GAAa,gBAAA,EAAA,IAAmB,EAA8B,GAQhE,IANsB,EAAM,QAAA,MAE9B,EAAY,OAAA,CAAQ,MAAe,EAAqB,SAAS,EAAW,WAAW,CAAC,GAC1F,CAAC,GAAsB,CAAW,CAGb,EAAoB,OAAA,CAAQ,MACjD,EAAU,EAAE,kBAAkB,EAAE,cAAc,CAAG,CACnD,GACM,IAAc,EAAe,KAAA,CAChC,MAAM,EAAE,SAAS,EAAe,UAAU,EAAE,WAAW,EAAiB,QAC3E,GACM,IAAY,EAAe,KAAA,CAC9B,MAAM,EAAE,SAAS,EAAe,UAAU,EAAE,WAAW,EAAiB,MAC3E,GACM,IAAU,EAAe,KAAA,CAC5B,MAAM,EAAE,SAAS,EAAe,UAAU,EAAE,WAAW,EAAiB,IAC3E,GACM,IAAY,EAAe,KAAA,CAAM,MAAM,EAAE,SAAS,EAAe,MAAM,GAEvE,KACH,IAAc,IAAI,MAAM,IAAY,IAAI,MAAM,IAAU,IAAI,MAAM,IAAY,IAAI,IAE/E,IAAc;AAAA,IAClB,KAAW,EAAK;AAAA,IAChB,KAAa,EAAK;AAAA,IAClB,KAAe,EAAK;AAAA,IACpB,KAAa,EAAK;AAAA,EACpB,EAAE,OAAO,OAAO,GAEV,IACJ,EAAY,SAAS,IACjB,GAAG,EAAW,GAAK,EAAkB,cAAc,CAAA,KAAM,EAAY,KAAK,IAAI,CAAA,KAC9E,EAAW,GAAK,EAAkB,cAAc;AAEtD,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,cACE,EAAe,SAAS,KACtB,gBAAA,EAAA,GAAA,EAAA,UAAA;AAAA,MACG,KAAa,gBAAA,EAAC,GAAD,EAAa,UAAU,GAAO,CAAA;AAAA,MAC3C,KAAW,gBAAA,EAAC,GAAD,EAAW,UAAU,GAAO,CAAA;AAAA,MACvC,KAAe,gBAAA,EAAC,GAAD,EAAsB,UAAU,GAAO,CAAA;AAAA,MACtD,KAAa,gBAAA,EAAC,GAAD,EAAa,UAAU,GAAO,CAAA;AAAA,IAC5C,EAAA,CAAA;AAAA,IAGN,SAAQ;AAAA,IACR,IAAI,EACF,qBAAqB;AAAA,MACnB,SAAS;AAAA,MACT,aAAa,IAAI,IAAc,KAAK,IAAI,CAAA;AAAA,MACxC,UAAU;AAAA,IACZ,EACF;AAAA,IAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,MACE,cAAY;AAAA,MACP,KAAA;AAAA,MACL,SAAA,MAAe,EAAe,CAAG;AAAA,MACZ,qBAAA;AAAA,MACrB,IAAI,EACF,wBAAwB;AAAA,QACtB,GAAI,KAAuB,EACzB,OAAO,gBACT;AAAA,QACA,GAAI,EAAM,SAAS,EACjB,OAAO,eACT;AAAA,MACF,EACF;AAAA,MACA,GAAI;AAAA,IACL,CAAA;AAAA,EACI,CAAA;AAEX,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecurringSettings.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/shared/RecurringSettings.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Tab from '@mui/material/Tab'\nimport Tabs from '@mui/material/Tabs'\n\nimport { ManageExpenses } from './recurringsettings/ManageExpenses'\nimport { ManageIncome } from './recurringsettings/ManageIncome'\n\nimport { useEvent, useGlobalCopyStore } from '../../../common'\n\ninterface RecurringSettingsProps {\n defaultSelectedTab?: number\n}\n\nexport const RecurringSettings = observer(({ defaultSelectedTab = 0 }: RecurringSettingsProps) => {\n const [selectedTab, setSelectedTab] = React.useState(defaultSelectedTab)\n const { onEvent } = useEvent()\n const { recurring: recurringCopy } = useGlobalCopyStore()\n\n const handleTabChange = (_event: React.SyntheticEvent, newValue: number) => {\n setSelectedTab(newValue)\n onEvent(\n newValue === 0\n ? 'recurring_transactions_widget_manage_expenses'\n : 'recurring_transactions_widget_edit_income',\n )\n }\n\n return (\n <Box bgcolor=\"background.default\" height=\"100%\">\n <Tabs\n onChange={handleTabChange}\n sx={{ bgcolor: 'background.paper', mb: 0 }}\n value={selectedTab}\n variant=\"fullWidth\"\n >\n <Tab label={recurringCopy.expenses} />\n <Tab label={recurringCopy.income} />\n </Tabs>\n {selectedTab === 0 && <ManageExpenses />}\n {selectedTab === 1 && <ManageIncome />}\n </Box>\n )\n})\n"],"mappings":";;;;;;;;;AAgBA,IAAa,IAAoB,EAAA,CAAU,EAAE,oBAAA,IAAqB,EAAA,MAAgC;AAChG,QAAM,CAAC,GAAa,CAAA,IAAkB,EAAM,SAAS,CAAkB,GACjE,EAAE,SAAA,EAAA,IAAY,EAAS,GACvB,EAAE,WAAW,EAAA,IAAkB,EAAmB;AAWxD,SACE,gBAAA,EAAC,GAAD;AAAA,IAAK,SAAQ;AAAA,IAAqB,QAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"RecurringSettings.es.js","names":[],"sources":["../../../../src/recurringtransactions/components/shared/RecurringSettings.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Tab from '@mui/material/Tab'\nimport Tabs from '@mui/material/Tabs'\n\nimport { ManageExpenses } from './recurringsettings/ManageExpenses'\nimport { ManageIncome } from './recurringsettings/ManageIncome'\n\nimport { useEvent, useGlobalCopyStore } from '../../../common'\n\ninterface RecurringSettingsProps {\n defaultSelectedTab?: number\n}\n\nexport const RecurringSettings = observer(({ defaultSelectedTab = 0 }: RecurringSettingsProps) => {\n const [selectedTab, setSelectedTab] = React.useState(defaultSelectedTab)\n const { onEvent } = useEvent()\n const { recurring: recurringCopy } = useGlobalCopyStore()\n\n const handleTabChange = (_event: React.SyntheticEvent, newValue: number) => {\n setSelectedTab(newValue)\n onEvent(\n newValue === 0\n ? 'recurring_transactions_widget_manage_expenses'\n : 'recurring_transactions_widget_edit_income',\n )\n }\n\n return (\n <Box bgcolor=\"background.default\" height=\"100%\">\n <Tabs\n onChange={handleTabChange}\n sx={{ bgcolor: 'background.paper', mb: 0 }}\n value={selectedTab}\n variant=\"fullWidth\"\n >\n <Tab label={recurringCopy.expenses} />\n <Tab label={recurringCopy.income} />\n </Tabs>\n {selectedTab === 0 && <ManageExpenses />}\n {selectedTab === 1 && <ManageIncome />}\n </Box>\n )\n})\n"],"mappings":";;;;;;;;;AAgBA,IAAa,IAAoB,EAAA,CAAU,EAAE,oBAAA,IAAqB,EAAA,MAAgC;AAChG,QAAM,CAAC,GAAa,CAAA,IAAkB,EAAM,SAAS,CAAkB,GACjE,EAAE,SAAA,EAAA,IAAY,EAAS,GACvB,EAAE,WAAW,EAAA,IAAkB,EAAmB;AAWxD,SACE,gBAAA,EAAC,GAAD;AAAA,IAAK,SAAQ;AAAA,IAAqB,QAAO;AAAA,IAAzC,UAAA;AAAA,MACE,gBAAA,EAAC,GAAD;AAAA,QACE,UAZA,CAAmB,GAA8B,MAAqB;AAC1E,UAAA,EAAe,CAAQ,GACvB,EACE,MAAa,IACT,kDACA,2CACN;AAAA,QACF;AAAA,QAMM,IAAI;AAAA,UAAE,SAAS;AAAA,UAAoB,IAAI;AAAA,QAAE;AAAA,QACzC,OAAO;AAAA,QACP,SAAQ;AAAA,QAJV,UAAA,CAME,gBAAA,EAAC,GAAD,EAAK,OAAO,EAAc,SAAW,CAAA,GACrC,gBAAA,EAAC,GAAD,EAAK,OAAO,EAAc,OAAS,CAAA,CAC/B;AAAA;MACL,MAAgB,KAAK,gBAAA,EAAC,GAAD,CAAiB,CAAA;AAAA,MACtC,MAAgB,KAAK,gBAAA,EAAC,GAAD,CAAe,CAAA;AAAA,IAClC;AAAA;AAET,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddRecurringTransaction.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { formatISO } from 'date-fns/formatISO'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\n\nimport Button from '@mui/material/Button'\n\nimport { Add } from '@mxenabled/mx-icons'\n\nimport {\n Drawer,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n useTransactionStore,\n useUserStore,\n} from '../../../../common'\nimport {\n type RepeatingTransaction,\n type Transaction,\n Frequency,\n RepeatingType,\n} from '../../../../core'\n\nimport { SelectTransaction } from './SelectTransaction'\nimport { AddRecurringTransactionDetails } from './AddRecurringTransactionDetails'\n\nimport {\n expenseFilter,\n expenseFilterSearch,\n incomeFilter,\n incomeFilterSearch,\n} from '../../../../transactions/utils/Filters'\n\nimport { getNextPaymentDate } from '../../../../core/utils/RecurringTransactionsUtil'\n\ninterface AddRecurringTransactionProps {\n isIncome?: boolean\n label: string\n onAddRecurringTransaction?: () => void\n}\n\nexport const AddRecurringTransaction = observer(\n ({\n isIncome = false,\n label,\n onAddRecurringTransaction = () => null,\n }: AddRecurringTransactionProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { filter, setFilter, transactions } = useTransactionStore()\n const { addRepeatingTransaction } = useRecurringTransactionsStore()\n const { user } = useUserStore()\n\n const [isSelectTransactionOpen, setIsSelectTransactionOpen] = React.useState(false)\n const [transactionGuid, setTransactionGuid] = React.useState('')\n const [frequency, setFrequency] = React.useState(Frequency.EveryMonth)\n const [firstDay, setFirstDay] = React.useState(1)\n const [secondDay, setSecondDay] = React.useState(15)\n\n const transaction = React.useMemo(\n () => transactions.find((t) => t.guid === transactionGuid),\n [transactionGuid, transactions],\n )\n\n const handleOpen = () => {\n setIsSelectTransactionOpen(true)\n\n if (isIncome) {\n setFilter({ ...filter, custom: incomeFilter })\n } else {\n setFilter({ ...filter, custom: expenseFilter })\n }\n }\n\n const handleAddRecurringTransaction = async () => {\n if (!transaction) {\n closeOnAdd()\n return\n }\n onAddRecurringTransaction()\n\n const nextDate = getNextPaymentDate(frequency, fromUnixTime(transaction.date), firstDay)\n\n const repeatingTransaction = {\n account_guid: transaction.account_guid,\n amount: transaction.amount,\n created_by: 0, // User\n merchant_guid: transaction.merchant_guid,\n description: transaction.payee || transaction.description || transaction.feed_description,\n predicted_occurs_on: formatISO(nextDate, { representation: 'date' }),\n recurrence_day: firstDay,\n recurrence_type: frequency,\n repeating_transaction_type: isIncome ? RepeatingType.Income : RepeatingType.Bill,\n second_recurrence_day: secondDay,\n transaction_type: transaction.transaction_type,\n user_guid: user.guid,\n } as RepeatingTransaction\n\n await addRepeatingTransaction(repeatingTransaction, transaction)\n closeOnAdd()\n }\n\n const closeOnAdd = () => {\n setTransactionGuid('')\n setIsSelectTransactionOpen(false)\n }\n\n return (\n <>\n <Button onClick={handleOpen} startIcon={<Add size={24} />} variant=\"contained\">\n {label}\n </Button>\n\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={isSelectTransactionOpen}\n onClose={() => setIsSelectTransactionOpen(false)}\n title={label}\n >\n <SelectTransaction\n description={isIncome ? copy.add_income_description : copy.add_expense_description}\n onSearch={(searchValue) => {\n setFilter({\n ...filter,\n custom: (transaction: Transaction) => {\n if (isIncome) {\n return searchValue\n ? incomeFilterSearch(transaction, searchValue)\n : incomeFilter(transaction)\n } else {\n return searchValue\n ? expenseFilterSearch(transaction, searchValue)\n : expenseFilter(transaction)\n }\n },\n })\n }}\n onSelected={(guid) => setTransactionGuid(guid)}\n />\n </Drawer>\n\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={Boolean(transactionGuid)}\n onClose={() => setTransactionGuid('')}\n onPrimaryAction={handleAddRecurringTransaction}\n title={isIncome ? copy.income_details : copy.expense_details}\n >\n {transaction && (\n <AddRecurringTransactionDetails\n firstDay={firstDay}\n frequency={frequency}\n onFirstDayChange={setFirstDay}\n onFrequencyChange={setFrequency}\n onSecondDayChange={setSecondDay}\n secondDay={secondDay}\n transaction={transaction}\n />\n )}\n </Drawer>\n </>\n )\n },\n)\n"],"mappings":";;;;;;;;;;;;;;AAyCA,IAAa,KAA0B,EAAA,CACpC,EACC,UAAA,IAAW,IACX,OAAA,GACA,2BAAA,IAAA,MAAkC,KAAA,MACA;AAClC,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,QAAA,GAAQ,WAAA,GAAW,cAAA,EAAA,IAAiB,EAAoB,GAC1D,EAAE,yBAAA,EAAA,IAA4B,EAA8B,GAC5D,EAAE,MAAA,EAAA,IAAS,EAAa,GAExB,CAAC,GAAyB,CAAA,IAA8B,EAAM,SAAS,EAAK,GAC5E,CAAC,GAAiB,CAAA,IAAsB,EAAM,SAAS,EAAE,GACzD,CAAC,GAAW,CAAA,IAAgB,EAAM,SAAS,EAAU,UAAU,GAC/D,CAAC,GAAU,CAAA,IAAe,EAAM,SAAS,CAAC,GAC1C,CAAC,GAAW,CAAA,IAAgB,EAAM,SAAS,EAAE,GAE7C,IAAc,EAAM,QAAA,MAClB,EAAa,KAAA,CAAM,MAAM,EAAE,SAAS,CAAe,GACzD,CAAC,GAAiB,CAAY,CAChC,GAEM,IAAA,MAAmB;AACvB,IAAA,EAA2B,EAAI,GAG7B,EADE,IACQ;AAAA,MAAE,GAAG;AAAA,MAAQ,QAAQ;AAAA,IAAa,IAElC;AAAA,MAAE,GAAG;AAAA,MAAQ,QAAQ;AAAA,IAAc,CAFA;AAAA,EAIjD,GAEM,IAAgC,YAAY;AAChD,QAAI,CAAC,GAAa;AAChB,MAAA,EAAW;AACX;AAAA,IACF;AACA,IAAA,EAA0B;AAE1B,UAAM,IAAW,EAAmB,GAAW,EAAa,EAAY,IAAI,GAAG,CAAQ,GAEjF,IAAuB;AAAA,MAC3B,cAAc,EAAY;AAAA,MAC1B,QAAQ,EAAY;AAAA,MACpB,YAAY;AAAA,MACZ,eAAe,EAAY;AAAA,MAC3B,aAAa,EAAY,SAAS,EAAY,eAAe,EAAY;AAAA,MACzE,qBAAqB,EAAU,GAAU,EAAE,gBAAgB,OAAO,CAAC;AAAA,MACnE,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,MACjB,4BAA4B,IAAW,EAAc,SAAS,EAAc;AAAA,MAC5E,uBAAuB;AAAA,MACvB,kBAAkB,EAAY;AAAA,MAC9B,WAAW,EAAK;AAAA,IAClB;AAEA,UAAM,EAAwB,GAAsB,CAAW,GAC/D,EAAW;AAAA,EACb,GAEM,IAAA,MAAmB;AACvB,IAAA,EAAmB,EAAE,GACrB,EAA2B,EAAK;AAAA,EAClC;AAEA,SACE,gBAAA,EAAA,GAAA,EAAA,UAAA;AAAA,IACE,gBAAA,EAAC,GAAD;AAAA,MAAQ,SAAS;AAAA,MAAY,WAAW,gBAAA,EAAC,GAAD,EAAK,MAAM,GAAK,CAAA;AAAA,MAAG,SAAQ;AAAA,
|
|
1
|
+
{"version":3,"file":"AddRecurringTransaction.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { formatISO } from 'date-fns/formatISO'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\n\nimport Button from '@mui/material/Button'\n\nimport { Add } from '@mxenabled/mx-icons'\n\nimport {\n Drawer,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n useTransactionStore,\n useUserStore,\n} from '../../../../common'\nimport {\n type RepeatingTransaction,\n type Transaction,\n Frequency,\n RepeatingType,\n} from '../../../../core'\n\nimport { SelectTransaction } from './SelectTransaction'\nimport { AddRecurringTransactionDetails } from './AddRecurringTransactionDetails'\n\nimport {\n expenseFilter,\n expenseFilterSearch,\n incomeFilter,\n incomeFilterSearch,\n} from '../../../../transactions/utils/Filters'\n\nimport { getNextPaymentDate } from '../../../../core/utils/RecurringTransactionsUtil'\n\ninterface AddRecurringTransactionProps {\n isIncome?: boolean\n label: string\n onAddRecurringTransaction?: () => void\n}\n\nexport const AddRecurringTransaction = observer(\n ({\n isIncome = false,\n label,\n onAddRecurringTransaction = () => null,\n }: AddRecurringTransactionProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { filter, setFilter, transactions } = useTransactionStore()\n const { addRepeatingTransaction } = useRecurringTransactionsStore()\n const { user } = useUserStore()\n\n const [isSelectTransactionOpen, setIsSelectTransactionOpen] = React.useState(false)\n const [transactionGuid, setTransactionGuid] = React.useState('')\n const [frequency, setFrequency] = React.useState(Frequency.EveryMonth)\n const [firstDay, setFirstDay] = React.useState(1)\n const [secondDay, setSecondDay] = React.useState(15)\n\n const transaction = React.useMemo(\n () => transactions.find((t) => t.guid === transactionGuid),\n [transactionGuid, transactions],\n )\n\n const handleOpen = () => {\n setIsSelectTransactionOpen(true)\n\n if (isIncome) {\n setFilter({ ...filter, custom: incomeFilter })\n } else {\n setFilter({ ...filter, custom: expenseFilter })\n }\n }\n\n const handleAddRecurringTransaction = async () => {\n if (!transaction) {\n closeOnAdd()\n return\n }\n onAddRecurringTransaction()\n\n const nextDate = getNextPaymentDate(frequency, fromUnixTime(transaction.date), firstDay)\n\n const repeatingTransaction = {\n account_guid: transaction.account_guid,\n amount: transaction.amount,\n created_by: 0, // User\n merchant_guid: transaction.merchant_guid,\n description: transaction.payee || transaction.description || transaction.feed_description,\n predicted_occurs_on: formatISO(nextDate, { representation: 'date' }),\n recurrence_day: firstDay,\n recurrence_type: frequency,\n repeating_transaction_type: isIncome ? RepeatingType.Income : RepeatingType.Bill,\n second_recurrence_day: secondDay,\n transaction_type: transaction.transaction_type,\n user_guid: user.guid,\n } as RepeatingTransaction\n\n await addRepeatingTransaction(repeatingTransaction, transaction)\n closeOnAdd()\n }\n\n const closeOnAdd = () => {\n setTransactionGuid('')\n setIsSelectTransactionOpen(false)\n }\n\n return (\n <>\n <Button onClick={handleOpen} startIcon={<Add size={24} />} variant=\"contained\">\n {label}\n </Button>\n\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={isSelectTransactionOpen}\n onClose={() => setIsSelectTransactionOpen(false)}\n title={label}\n >\n <SelectTransaction\n description={isIncome ? copy.add_income_description : copy.add_expense_description}\n onSearch={(searchValue) => {\n setFilter({\n ...filter,\n custom: (transaction: Transaction) => {\n if (isIncome) {\n return searchValue\n ? incomeFilterSearch(transaction, searchValue)\n : incomeFilter(transaction)\n } else {\n return searchValue\n ? expenseFilterSearch(transaction, searchValue)\n : expenseFilter(transaction)\n }\n },\n })\n }}\n onSelected={(guid) => setTransactionGuid(guid)}\n />\n </Drawer>\n\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={Boolean(transactionGuid)}\n onClose={() => setTransactionGuid('')}\n onPrimaryAction={handleAddRecurringTransaction}\n title={isIncome ? copy.income_details : copy.expense_details}\n >\n {transaction && (\n <AddRecurringTransactionDetails\n firstDay={firstDay}\n frequency={frequency}\n onFirstDayChange={setFirstDay}\n onFrequencyChange={setFrequency}\n onSecondDayChange={setSecondDay}\n secondDay={secondDay}\n transaction={transaction}\n />\n )}\n </Drawer>\n </>\n )\n },\n)\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddRecurringTransactionDetails.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/AddRecurringTransactionDetails.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../../../common'\nimport { type Transaction, Frequency } from '../../../../core'\nimport SubheaderRow from '../../../../common/components/SubheaderRow'\n\nimport { TransactionRow } from '../../../../transactions'\n\nimport { fromUnixToDayOfWeekAndDate } from '../../../../core/utils/DateUtil'\nimport { PaymentSchedule } from '../../PaymentSchedule'\n\ninterface AddRecurringTransactionDetailsProps {\n bgcolor?: string\n firstDay: number\n secondDay?: number\n frequency: Frequency\n onFrequencyChange: (frequency: Frequency) => void\n onFirstDayChange: (day: number) => void\n onSecondDayChange: (day: number) => void\n transaction: Transaction\n}\n\nexport const AddRecurringTransactionDetails = observer(\n ({\n bgcolor = 'background.default',\n firstDay,\n secondDay,\n frequency,\n onFrequencyChange,\n onFirstDayChange,\n onSecondDayChange,\n transaction,\n }: AddRecurringTransactionDetailsProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n\n return (\n <Stack bgcolor={bgcolor} gap={24} height=\"100%\">\n <Stack>\n <SubheaderRow bgcolor={bgcolor}>\n {fromUnixToDayOfWeekAndDate(transaction.date)}\n </SubheaderRow>\n <TransactionRow component=\"div\" transaction={transaction} />\n </Stack>\n\n <Box>\n <Text bold={true} sx={{ mx: 24 }} variant=\"body1\">\n {copy.payment_schedule}\n </Text>\n\n <PaymentSchedule\n firstDay={firstDay}\n frequency={frequency}\n onFirstDayChange={onFirstDayChange}\n onFrequencyChange={onFrequencyChange}\n onSecondDayChange={onSecondDayChange}\n secondDay={secondDay}\n />\n </Box>\n </Stack>\n )\n },\n)\n"],"mappings":";;;;;;;;;;AA2BA,IAAa,IAAiC,EAAA,CAC3C,EACC,SAAA,IAAU,sBACV,UAAA,GACA,WAAA,GACA,WAAA,GACA,mBAAA,GACA,kBAAA,GACA,mBAAA,GACA,aAAA,EAAA,MACyC;AACzC,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB;AAE/C,SACE,gBAAA,EAAC,GAAD;AAAA,IAAgB,SAAA;AAAA,IAAS,KAAK;AAAA,IAAI,QAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"AddRecurringTransactionDetails.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/AddRecurringTransactionDetails.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../../../common'\nimport { type Transaction, Frequency } from '../../../../core'\nimport SubheaderRow from '../../../../common/components/SubheaderRow'\n\nimport { TransactionRow } from '../../../../transactions'\n\nimport { fromUnixToDayOfWeekAndDate } from '../../../../core/utils/DateUtil'\nimport { PaymentSchedule } from '../../PaymentSchedule'\n\ninterface AddRecurringTransactionDetailsProps {\n bgcolor?: string\n firstDay: number\n secondDay?: number\n frequency: Frequency\n onFrequencyChange: (frequency: Frequency) => void\n onFirstDayChange: (day: number) => void\n onSecondDayChange: (day: number) => void\n transaction: Transaction\n}\n\nexport const AddRecurringTransactionDetails = observer(\n ({\n bgcolor = 'background.default',\n firstDay,\n secondDay,\n frequency,\n onFrequencyChange,\n onFirstDayChange,\n onSecondDayChange,\n transaction,\n }: AddRecurringTransactionDetailsProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n\n return (\n <Stack bgcolor={bgcolor} gap={24} height=\"100%\">\n <Stack>\n <SubheaderRow bgcolor={bgcolor}>\n {fromUnixToDayOfWeekAndDate(transaction.date)}\n </SubheaderRow>\n <TransactionRow component=\"div\" transaction={transaction} />\n </Stack>\n\n <Box>\n <Text bold={true} sx={{ mx: 24 }} variant=\"body1\">\n {copy.payment_schedule}\n </Text>\n\n <PaymentSchedule\n firstDay={firstDay}\n frequency={frequency}\n onFirstDayChange={onFirstDayChange}\n onFrequencyChange={onFrequencyChange}\n onSecondDayChange={onSecondDayChange}\n secondDay={secondDay}\n />\n </Box>\n </Stack>\n )\n },\n)\n"],"mappings":";;;;;;;;;;AA2BA,IAAa,IAAiC,EAAA,CAC3C,EACC,SAAA,IAAU,sBACV,UAAA,GACA,WAAA,GACA,WAAA,GACA,mBAAA,GACA,kBAAA,GACA,mBAAA,GACA,aAAA,EAAA,MACyC;AACzC,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB;AAE/C,SACE,gBAAA,EAAC,GAAD;AAAA,IAAgB,SAAA;AAAA,IAAS,KAAK;AAAA,IAAI,QAAO;AAAA,IAAzC,UAAA,CACE,gBAAA,EAAC,GAAD,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,MAAuB,SAAA;AAAA,MACpB,UAAA,EAA2B,EAAY,IAAI;AAAA,IAChC,CAAA,GACd,gBAAA,EAAC,GAAD;AAAA,MAAgB,WAAU;AAAA,MAAmB,aAAA;AAAA,IAAc,CAAA,CACtD,EAAA,CAAA,GAEP,gBAAA,EAAC,GAAD,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,MAAM,MAAM;AAAA,MAAM,IAAI,EAAE,IAAI,GAAG;AAAA,MAAG,SAAQ;AAAA,MACvC,UAAA,EAAK;AAAA,IACF,CAAA,GAEN,gBAAA,EAAC,GAAD;AAAA,MACY,UAAA;AAAA,MACC,WAAA;AAAA,MACO,kBAAA;AAAA,MACC,mBAAA;AAAA,MACA,mBAAA;AAAA,MACR,WAAA;AAAA,IACZ,CAAA,CACE,EAAA,CAAA,CACA;AAAA;AAEX,CACF"}
|
package/dist/recurringtransactions/components/shared/recurringsettings/ManageExpenses.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManageExpenses.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/ManageExpenses.tsx"],"sourcesContent":["import React 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'\nimport Stack from '@mui/material/Stack'\n\nimport {\n ANALYTICS_EVENTS,\n useEvent,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n} from '../../../../common'\nimport { type RepeatingTransaction, Frequency, RepeatingType } from '../../../../core'\n\nimport { RecurringRow } from './RecurringRow'\nimport { AddRecurringTransaction } from './AddRecurringTransaction'\nimport { RecurringSettingsZeroState } from './RecurringSettingsZeroState'\n\nexport const ManageExpenses = observer(() => {\n const { recurring: copy } = useGlobalCopyStore()\n const { detailedRepeatingTransactions } = useRecurringTransactionsStore()\n const { onEvent } = useEvent()\n\n const onClick = (repeatingTransaction: RepeatingTransaction) => {\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_EXPENSE, {\n repeating_transaction_guid: repeatingTransaction.guid,\n })\n }\n\n const onAdd = () => {\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_ADD_EXPENSE)\n }\n\n const filteredTransactions = detailedRepeatingTransactions.filter(\n (rt) =>\n rt.repeating_transaction_type !== RepeatingType.Income &&\n (rt.transactions.length > 0 || rt.recurrence_type === Frequency.EveryYear),\n )\n\n return (\n <>\n {filteredTransactions.length !== 0 ? (\n <Stack\n sx={{\n height: 'calc(100vh - 109px)',\n maxHeight: 'calc(100vh - 109px)',\n }}\n >\n <Box sx={{ flex: 1, overflow: 'auto' }}>\n <List sx={{ bgcolor: 'background.paper' }}>\n {filteredTransactions.map((rt, index) => (\n <React.Fragment key={rt.guid}>\n <RecurringRow onClick={onClick} repeatingTransaction={rt} />\n <Divider\n variant={index < filteredTransactions.length - 1 ? 'inset' : 'fullWidth'}\n />\n </React.Fragment>\n ))}\n </List>\n </Box>\n <Box>\n <Divider />\n <Box\n sx={{\n alignContent: 'center',\n bgcolor: 'background.paper',\n justifyContent: 'flex-end',\n px: 24,\n py: 12,\n textAlign: 'right',\n }}\n >\n <AddRecurringTransaction label={copy.add_expense} onAddRecurringTransaction={onAdd} />\n </Box>\n </Box>\n </Stack>\n ) : (\n <RecurringSettingsZeroState zeroStateFor=\"expenses\" />\n )}\n </>\n )\n})\n"],"mappings":";;;;;;;;;;;;;AAoBA,IAAa,IAAiB,EAAA,MAAe;AAC3C,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,+BAAA,EAAA,IAAkC,EAA8B,GAClE,EAAE,SAAA,EAAA,IAAY,EAAS,GAEvB,IAAA,CAAW,MAA+C;AAC9D,IAAA,EAAQ,EAAiB,sCAAsC,EAC7D,4BAA4B,EAAqB,KACnD,CAAC;AAAA,EACH,GAEM,IAAA,MAAc;AAClB,IAAA,EAAQ,EAAiB,wCAAwC;AAAA,EACnE,GAEM,IAAuB,EAA8B,OAAA,CACxD,MACC,EAAG,+BAA+B,EAAc,WAC/C,EAAG,aAAa,SAAS,KAAK,EAAG,oBAAoB,EAAU,UACpE;AAEA,SACE,gBAAA,EAAA,GAAA,EAAA,UACG,EAAqB,WAAW,IAC/B,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,QAAQ;AAAA,MACR,WAAW;AAAA,IACb;AAAA,
|
|
1
|
+
{"version":3,"file":"ManageExpenses.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/ManageExpenses.tsx"],"sourcesContent":["import React 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'\nimport Stack from '@mui/material/Stack'\n\nimport {\n ANALYTICS_EVENTS,\n useEvent,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n} from '../../../../common'\nimport { type RepeatingTransaction, Frequency, RepeatingType } from '../../../../core'\n\nimport { RecurringRow } from './RecurringRow'\nimport { AddRecurringTransaction } from './AddRecurringTransaction'\nimport { RecurringSettingsZeroState } from './RecurringSettingsZeroState'\n\nexport const ManageExpenses = observer(() => {\n const { recurring: copy } = useGlobalCopyStore()\n const { detailedRepeatingTransactions } = useRecurringTransactionsStore()\n const { onEvent } = useEvent()\n\n const onClick = (repeatingTransaction: RepeatingTransaction) => {\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_EXPENSE, {\n repeating_transaction_guid: repeatingTransaction.guid,\n })\n }\n\n const onAdd = () => {\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_ADD_EXPENSE)\n }\n\n const filteredTransactions = detailedRepeatingTransactions.filter(\n (rt) =>\n rt.repeating_transaction_type !== RepeatingType.Income &&\n (rt.transactions.length > 0 || rt.recurrence_type === Frequency.EveryYear),\n )\n\n return (\n <>\n {filteredTransactions.length !== 0 ? (\n <Stack\n sx={{\n height: 'calc(100vh - 109px)',\n maxHeight: 'calc(100vh - 109px)',\n }}\n >\n <Box sx={{ flex: 1, overflow: 'auto' }}>\n <List sx={{ bgcolor: 'background.paper' }}>\n {filteredTransactions.map((rt, index) => (\n <React.Fragment key={rt.guid}>\n <RecurringRow onClick={onClick} repeatingTransaction={rt} />\n <Divider\n variant={index < filteredTransactions.length - 1 ? 'inset' : 'fullWidth'}\n />\n </React.Fragment>\n ))}\n </List>\n </Box>\n <Box>\n <Divider />\n <Box\n sx={{\n alignContent: 'center',\n bgcolor: 'background.paper',\n justifyContent: 'flex-end',\n px: 24,\n py: 12,\n textAlign: 'right',\n }}\n >\n <AddRecurringTransaction label={copy.add_expense} onAddRecurringTransaction={onAdd} />\n </Box>\n </Box>\n </Stack>\n ) : (\n <RecurringSettingsZeroState zeroStateFor=\"expenses\" />\n )}\n </>\n )\n})\n"],"mappings":";;;;;;;;;;;;;AAoBA,IAAa,IAAiB,EAAA,MAAe;AAC3C,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,+BAAA,EAAA,IAAkC,EAA8B,GAClE,EAAE,SAAA,EAAA,IAAY,EAAS,GAEvB,IAAA,CAAW,MAA+C;AAC9D,IAAA,EAAQ,EAAiB,sCAAsC,EAC7D,4BAA4B,EAAqB,KACnD,CAAC;AAAA,EACH,GAEM,IAAA,MAAc;AAClB,IAAA,EAAQ,EAAiB,wCAAwC;AAAA,EACnE,GAEM,IAAuB,EAA8B,OAAA,CACxD,MACC,EAAG,+BAA+B,EAAc,WAC/C,EAAG,aAAa,SAAS,KAAK,EAAG,oBAAoB,EAAU,UACpE;AAEA,SACE,gBAAA,EAAA,GAAA,EAAA,UACG,EAAqB,WAAW,IAC/B,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,QAAQ;AAAA,MACR,WAAW;AAAA,IACb;AAAA,IAJF,UAAA,CAME,gBAAA,EAAC,GAAD;AAAA,MAAK,IAAI;AAAA,QAAE,MAAM;AAAA,QAAG,UAAU;AAAA,MAAO;AAAA,MACnC,UAAA,gBAAA,EAAC,GAAD;AAAA,QAAM,IAAI,EAAE,SAAS,mBAAmB;AAAA,QACrC,UAAA,EAAqB,IAAA,CAAK,GAAI,MAC7B,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,UAAuB,SAAA;AAAA,UAAS,sBAAsB;AAAA,QAAK,CAAA,GAC3D,gBAAA,EAAC,GAAD,EACE,SAAS,IAAQ,EAAqB,SAAS,IAAI,UAAU,YAC9D,CAAA,CACa,EAAA,GALK,EAAG,IAKR,CACjB;AAAA,MACG,CAAA;AAAA,IACH,CAAA,GACL,gBAAA,EAAC,GAAD,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD,CAAU,CAAA,GACV,gBAAA,EAAC,GAAD;AAAA,MACE,IAAI;AAAA,QACF,cAAc;AAAA,QACd,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,WAAW;AAAA,MACb;AAAA,MAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,QAAyB,OAAO,EAAK;AAAA,QAAa,2BAA2B;AAAA,MAAQ,CAAA;AAAA,IAClF,CAAA,CACF,EAAA,CAAA,CACA;AAAA,EAEP,CAAA,IAAA,gBAAA,EAAC,GAAD,EAA4B,cAAa,WAAY,CAAA,EAEvD,CAAA;AAEN,CAAC"}
|
package/dist/recurringtransactions/components/shared/recurringsettings/ManageIncome.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManageIncome.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/ManageIncome.tsx"],"sourcesContent":["import React 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'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport {\n ANALYTICS_EVENTS,\n useEvent,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n} from '../../../../common'\nimport { type RepeatingTransaction, Frequency, RepeatingType } from '../../../../core'\n\nimport { RecurringRow } from './RecurringRow'\nimport { AddRecurringTransaction } from './AddRecurringTransaction'\nimport { RecurringSettingsZeroState } from './RecurringSettingsZeroState'\n\ninterface ManageIncomeProps {\n forOverview?: boolean\n}\n\nexport const ManageIncome = observer(({ forOverview = false }: ManageIncomeProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { detailedRepeatingTransactions } = useRecurringTransactionsStore()\n const { onEvent } = useEvent()\n\n const onClick = (repeatingTransaction: RepeatingTransaction) => {\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_INCOME, {\n repeating_transaction_guid: repeatingTransaction.guid,\n })\n }\n\n const onAdd = () => {\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_ADD_INCOME)\n }\n\n const filteredTransactions = detailedRepeatingTransactions.filter(\n (rt) =>\n rt.repeating_transaction_type === RepeatingType.Income &&\n (rt.transactions.length > 0 || rt.recurrence_type === Frequency.EveryYear),\n )\n\n return (\n <>\n {filteredTransactions.length !== 0 ? (\n <Stack\n sx={{\n height: forOverview ? 'calc(100vh - 62px)' : 'calc(100vh - 109px)',\n maxHeight: forOverview ? 'calc(100vh - 62px)' : 'calc(100vh - 109px)',\n }}\n >\n {forOverview && (\n <Text bold={true} sx={{ mb: 4, mt: 12, mx: 24 }} variant=\"body2\">\n {copy.income}\n </Text>\n )}\n <Box sx={{ flex: 1, overflow: 'auto' }}>\n <List sx={{ bgcolor: 'background.paper' }}>\n {filteredTransactions.map((rt, index) => (\n <React.Fragment key={rt.guid}>\n <RecurringRow onClick={onClick} repeatingTransaction={rt} />\n <Divider\n variant={index < filteredTransactions.length - 1 ? 'inset' : 'fullWidth'}\n />\n </React.Fragment>\n ))}\n </List>\n </Box>\n <Box>\n <Divider />\n <Box\n sx={{\n alignContent: 'center',\n bgcolor: 'background.paper',\n justifyContent: 'flex-end',\n px: 24,\n py: 12,\n textAlign: 'right',\n }}\n >\n <AddRecurringTransaction\n isIncome={true}\n label={copy.add_income}\n onAddRecurringTransaction={onAdd}\n />\n </Box>\n </Box>\n </Stack>\n ) : (\n <RecurringSettingsZeroState zeroStateFor=\"income\" />\n )}\n </>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;AA0BA,IAAa,IAAe,EAAA,CAAU,EAAE,aAAA,IAAc,GAAA,MAA+B;AACnF,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,+BAAA,EAAA,IAAkC,EAA8B,GAClE,EAAE,SAAA,EAAA,IAAY,EAAS,GAEvB,IAAA,CAAW,MAA+C;AAC9D,IAAA,EAAQ,EAAiB,qCAAqC,EAC5D,4BAA4B,EAAqB,KACnD,CAAC;AAAA,EACH,GAEM,IAAA,MAAc;AAClB,IAAA,EAAQ,EAAiB,uCAAuC;AAAA,EAClE,GAEM,IAAuB,EAA8B,OAAA,CACxD,MACC,EAAG,+BAA+B,EAAc,WAC/C,EAAG,aAAa,SAAS,KAAK,EAAG,oBAAoB,EAAU,UACpE;AAEA,SACE,gBAAA,EAAA,GAAA,EAAA,UACG,EAAqB,WAAW,IAC/B,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,QAAQ,IAAc,uBAAuB;AAAA,MAC7C,WAAW,IAAc,uBAAuB;AAAA,IAClD;AAAA,
|
|
1
|
+
{"version":3,"file":"ManageIncome.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/ManageIncome.tsx"],"sourcesContent":["import React 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'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport {\n ANALYTICS_EVENTS,\n useEvent,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n} from '../../../../common'\nimport { type RepeatingTransaction, Frequency, RepeatingType } from '../../../../core'\n\nimport { RecurringRow } from './RecurringRow'\nimport { AddRecurringTransaction } from './AddRecurringTransaction'\nimport { RecurringSettingsZeroState } from './RecurringSettingsZeroState'\n\ninterface ManageIncomeProps {\n forOverview?: boolean\n}\n\nexport const ManageIncome = observer(({ forOverview = false }: ManageIncomeProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { detailedRepeatingTransactions } = useRecurringTransactionsStore()\n const { onEvent } = useEvent()\n\n const onClick = (repeatingTransaction: RepeatingTransaction) => {\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_INCOME, {\n repeating_transaction_guid: repeatingTransaction.guid,\n })\n }\n\n const onAdd = () => {\n onEvent(ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_ADD_INCOME)\n }\n\n const filteredTransactions = detailedRepeatingTransactions.filter(\n (rt) =>\n rt.repeating_transaction_type === RepeatingType.Income &&\n (rt.transactions.length > 0 || rt.recurrence_type === Frequency.EveryYear),\n )\n\n return (\n <>\n {filteredTransactions.length !== 0 ? (\n <Stack\n sx={{\n height: forOverview ? 'calc(100vh - 62px)' : 'calc(100vh - 109px)',\n maxHeight: forOverview ? 'calc(100vh - 62px)' : 'calc(100vh - 109px)',\n }}\n >\n {forOverview && (\n <Text bold={true} sx={{ mb: 4, mt: 12, mx: 24 }} variant=\"body2\">\n {copy.income}\n </Text>\n )}\n <Box sx={{ flex: 1, overflow: 'auto' }}>\n <List sx={{ bgcolor: 'background.paper' }}>\n {filteredTransactions.map((rt, index) => (\n <React.Fragment key={rt.guid}>\n <RecurringRow onClick={onClick} repeatingTransaction={rt} />\n <Divider\n variant={index < filteredTransactions.length - 1 ? 'inset' : 'fullWidth'}\n />\n </React.Fragment>\n ))}\n </List>\n </Box>\n <Box>\n <Divider />\n <Box\n sx={{\n alignContent: 'center',\n bgcolor: 'background.paper',\n justifyContent: 'flex-end',\n px: 24,\n py: 12,\n textAlign: 'right',\n }}\n >\n <AddRecurringTransaction\n isIncome={true}\n label={copy.add_income}\n onAddRecurringTransaction={onAdd}\n />\n </Box>\n </Box>\n </Stack>\n ) : (\n <RecurringSettingsZeroState zeroStateFor=\"income\" />\n )}\n </>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;AA0BA,IAAa,IAAe,EAAA,CAAU,EAAE,aAAA,IAAc,GAAA,MAA+B;AACnF,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,+BAAA,EAAA,IAAkC,EAA8B,GAClE,EAAE,SAAA,EAAA,IAAY,EAAS,GAEvB,IAAA,CAAW,MAA+C;AAC9D,IAAA,EAAQ,EAAiB,qCAAqC,EAC5D,4BAA4B,EAAqB,KACnD,CAAC;AAAA,EACH,GAEM,IAAA,MAAc;AAClB,IAAA,EAAQ,EAAiB,uCAAuC;AAAA,EAClE,GAEM,IAAuB,EAA8B,OAAA,CACxD,MACC,EAAG,+BAA+B,EAAc,WAC/C,EAAG,aAAa,SAAS,KAAK,EAAG,oBAAoB,EAAU,UACpE;AAEA,SACE,gBAAA,EAAA,GAAA,EAAA,UACG,EAAqB,WAAW,IAC/B,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,QAAQ,IAAc,uBAAuB;AAAA,MAC7C,WAAW,IAAc,uBAAuB;AAAA,IAClD;AAAA,IAJF,UAAA;AAAA,MAMG,KACC,gBAAA,EAAC,GAAD;AAAA,QAAM,MAAM;AAAA,QAAM,IAAI;AAAA,UAAE,IAAI;AAAA,UAAG,IAAI;AAAA,UAAI,IAAI;AAAA,QAAG;AAAA,QAAG,SAAQ;AAAA,QACtD,UAAA,EAAK;AAAA,MACF,CAAA;AAAA,MAER,gBAAA,EAAC,GAAD;AAAA,QAAK,IAAI;AAAA,UAAE,MAAM;AAAA,UAAG,UAAU;AAAA,QAAO;AAAA,QACnC,UAAA,gBAAA,EAAC,GAAD;AAAA,UAAM,IAAI,EAAE,SAAS,mBAAmB;AAAA,UACrC,UAAA,EAAqB,IAAA,CAAK,GAAI,MAC7B,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,YAAuB,SAAA;AAAA,YAAS,sBAAsB;AAAA,UAAK,CAAA,GAC3D,gBAAA,EAAC,GAAD,EACE,SAAS,IAAQ,EAAqB,SAAS,IAAI,UAAU,YAC9D,CAAA,CACa,EAAA,GALK,EAAG,IAKR,CACjB;AAAA,QACG,CAAA;AAAA,MACH,CAAA;AAAA,MACL,gBAAA,EAAC,GAAD,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD,CAAU,CAAA,GACV,gBAAA,EAAC,GAAD;AAAA,QACE,IAAI;AAAA,UACF,cAAc;AAAA,UACd,SAAS;AAAA,UACT,gBAAgB;AAAA,UAChB,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,WAAW;AAAA,QACb;AAAA,QAEA,UAAA,gBAAA,EAAC,GAAD;AAAA,UACE,UAAU;AAAA,UACV,OAAO,EAAK;AAAA,UACZ,2BAA2B;AAAA,QAC5B,CAAA;AAAA,MACE,CAAA,CACF,EAAA,CAAA;AAAA,IACA;AAAA,EAEP,CAAA,IAAA,gBAAA,EAAC,GAAD,EAA4B,cAAa,SAAU,CAAA,EAErD,CAAA;AAEN,CAAC"}
|
package/dist/recurringtransactions/components/shared/recurringsettings/RecurringRow.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecurringRow.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/RecurringRow.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\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 { InstitutionLogo, MerchantLogo, Text } from '@mxenabled/mxui'\n\nimport { Drawer, useGlobalCopyStore } from '../../../../common'\nimport { type RepeatingTransaction, RepeatingType } from '../../../../core'\n\nimport { getFrequencyLabel } from '../../../../core/utils/RecurringTransactionsUtil'\nimport { RecurringTransactionDetails } from '../../RecurringTransactionDetails'\nimport { formatCurrency } from '../../../../core/utils/NumberFormatting'\n\ninterface RecurringRowProps {\n onClick?: (repeatingTransaction: RepeatingTransaction) => void\n repeatingTransaction: RepeatingTransaction\n}\n\nexport const RecurringRow = observer(\n ({ onClick = () => {}, repeatingTransaction }: RecurringRowProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n\n const [isDetialsOpen, setIsDetailsOpen] = React.useState(false)\n\n const categoryGuid = React.useMemo(\n () =>\n repeatingTransaction.transactions.length === 0\n ? ''\n : repeatingTransaction.transactions[0].category_guid || '',\n [repeatingTransaction],\n )\n\n const institutionName = repeatingTransaction.account?.displayName || ''\n\n const isCredit = repeatingTransaction.repeating_transaction_type === RepeatingType.Income\n const statusLabel = getFrequencyLabel(copy, repeatingTransaction, true)\n\n const onItemClick = () => {\n onClick(repeatingTransaction)\n setIsDetailsOpen(true)\n }\n\n return (\n <ListItem disableGutters={true} disablePadding={true}>\n <ListItemButton onClick={onItemClick}>\n <ListItemAvatar>\n <MerchantLogo\n categoryGuid={categoryGuid}\n merchantGuid={repeatingTransaction.merchant_guid}\n />\n </ListItemAvatar>\n <ListItemText>\n <Stack direction=\"row\" gap={4} sx={{ justifyContent: 'space-between' }}>\n <Stack direction=\"column\" sx={{ width: '50%' }}>\n <Text bold={true} variant=\"body1\">\n {repeatingTransaction.description}\n </Text>\n <Stack alignItems=\"center\" direction=\"row\" gap={6}>\n {repeatingTransaction.account?.institution_guid && (\n <InstitutionLogo\n alt={institutionName}\n institutionGuid={repeatingTransaction.account?.institution_guid}\n size={12}\n />\n )}\n <Text variant=\"caption\">{institutionName}</Text>\n </Stack>\n </Stack>\n\n <Stack alignItems=\"flex-end\" sx={{ width: '50%' }}>\n <Text\n bold={true}\n color={isCredit ? 'success.main' : 'text.primary'}\n variant=\"body1\"\n >\n {isCredit ? '+' : ''}\n {formatCurrency(repeatingTransaction.amount, '0,0.00')}\n </Text>\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 <Text bold={true} color=\"text.secondary\" variant=\"caption\">\n {statusLabel}\n </Text>\n </Stack>\n </Stack>\n </Stack>\n </ListItemText>\n </ListItemButton>\n\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={isDetialsOpen}\n onClose={() => setIsDetailsOpen(false)}\n title={\n repeatingTransaction.repeating_transaction_type === RepeatingType.Income\n ? copy.income_details\n : copy.expense_details\n }\n >\n <RecurringTransactionDetails\n onDeleted={() => setIsDetailsOpen(false)}\n recurringTransaction={repeatingTransaction}\n selectedRecurrence={null}\n />\n </Drawer>\n </ListItem>\n )\n },\n)\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,IAAa,IAAe,EAAA,CACzB,EAAE,SAAA,IAAA,MAAgB;AAAC,GAAG,sBAAA,EAAA,MAA8C;AACnE,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GAEzC,CAAC,GAAe,CAAA,IAAoB,EAAM,SAAS,EAAK,GAExD,IAAe,EAAM,QAAA,MAEvB,EAAqB,aAAa,WAAW,IACzC,KACA,EAAqB,aAAa,CAAA,EAAG,iBAAiB,IAC5D,CAAC,CAAoB,CACvB,GAEM,IAAkB,EAAqB,SAAS,eAAe,IAE/D,IAAW,EAAqB,+BAA+B,EAAc,QAC7E,IAAc,EAAkB,GAAM,GAAsB,EAAI;AAOtE,SACE,gBAAA,EAAC,GAAD;AAAA,IAAU,gBAAgB;AAAA,IAAM,gBAAgB;AAAA,
|
|
1
|
+
{"version":3,"file":"RecurringRow.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/RecurringRow.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\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 { InstitutionLogo, MerchantLogo, Text } from '@mxenabled/mxui'\n\nimport { Drawer, useGlobalCopyStore } from '../../../../common'\nimport { type RepeatingTransaction, RepeatingType } from '../../../../core'\n\nimport { getFrequencyLabel } from '../../../../core/utils/RecurringTransactionsUtil'\nimport { RecurringTransactionDetails } from '../../RecurringTransactionDetails'\nimport { formatCurrency } from '../../../../core/utils/NumberFormatting'\n\ninterface RecurringRowProps {\n onClick?: (repeatingTransaction: RepeatingTransaction) => void\n repeatingTransaction: RepeatingTransaction\n}\n\nexport const RecurringRow = observer(\n ({ onClick = () => {}, repeatingTransaction }: RecurringRowProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n\n const [isDetialsOpen, setIsDetailsOpen] = React.useState(false)\n\n const categoryGuid = React.useMemo(\n () =>\n repeatingTransaction.transactions.length === 0\n ? ''\n : repeatingTransaction.transactions[0].category_guid || '',\n [repeatingTransaction],\n )\n\n const institutionName = repeatingTransaction.account?.displayName || ''\n\n const isCredit = repeatingTransaction.repeating_transaction_type === RepeatingType.Income\n const statusLabel = getFrequencyLabel(copy, repeatingTransaction, true)\n\n const onItemClick = () => {\n onClick(repeatingTransaction)\n setIsDetailsOpen(true)\n }\n\n return (\n <ListItem disableGutters={true} disablePadding={true}>\n <ListItemButton onClick={onItemClick}>\n <ListItemAvatar>\n <MerchantLogo\n categoryGuid={categoryGuid}\n merchantGuid={repeatingTransaction.merchant_guid}\n />\n </ListItemAvatar>\n <ListItemText>\n <Stack direction=\"row\" gap={4} sx={{ justifyContent: 'space-between' }}>\n <Stack direction=\"column\" sx={{ width: '50%' }}>\n <Text bold={true} variant=\"body1\">\n {repeatingTransaction.description}\n </Text>\n <Stack alignItems=\"center\" direction=\"row\" gap={6}>\n {repeatingTransaction.account?.institution_guid && (\n <InstitutionLogo\n alt={institutionName}\n institutionGuid={repeatingTransaction.account?.institution_guid}\n size={12}\n />\n )}\n <Text variant=\"caption\">{institutionName}</Text>\n </Stack>\n </Stack>\n\n <Stack alignItems=\"flex-end\" sx={{ width: '50%' }}>\n <Text\n bold={true}\n color={isCredit ? 'success.main' : 'text.primary'}\n variant=\"body1\"\n >\n {isCredit ? '+' : ''}\n {formatCurrency(repeatingTransaction.amount, '0,0.00')}\n </Text>\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 <Text bold={true} color=\"text.secondary\" variant=\"caption\">\n {statusLabel}\n </Text>\n </Stack>\n </Stack>\n </Stack>\n </ListItemText>\n </ListItemButton>\n\n <Drawer\n ariaLabelClose={copy.close_drawer_aria}\n isOpen={isDetialsOpen}\n onClose={() => setIsDetailsOpen(false)}\n title={\n repeatingTransaction.repeating_transaction_type === RepeatingType.Income\n ? copy.income_details\n : copy.expense_details\n }\n >\n <RecurringTransactionDetails\n onDeleted={() => setIsDetailsOpen(false)}\n recurringTransaction={repeatingTransaction}\n selectedRecurrence={null}\n />\n </Drawer>\n </ListItem>\n )\n },\n)\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecurringSettingsZeroState.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/RecurringSettingsZeroState.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { ReceiptLong } from '@mxenabled/mx-icons'\n\nimport { P } from '@mxenabled/mxui'\n\nimport { ANALYTICS_EVENTS, useEvent, useGlobalCopyStore } from '../../../../common'\n\nimport { AddRecurringTransaction } from './AddRecurringTransaction'\n\ninterface RecurringSettingsZeroStateProps {\n zeroStateFor: 'expenses' | 'income'\n}\n\nexport const RecurringSettingsZeroState = observer(\n ({ zeroStateFor }: RecurringSettingsZeroStateProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { onEvent } = useEvent()\n\n const isIncome = zeroStateFor === 'income'\n const title = isIncome\n ? copy.recurring_setting_zero_state_income_title\n : copy.recurring_setting_zero_state_expenses_title\n const description = isIncome\n ? copy.recurring_setting_zero_state_income_description\n : copy.recurring_setting_zero_state_expenses_description\n const label = isIncome ? copy.add_income : copy.add_expense\n\n const onAdd = () => {\n onEvent(\n isIncome\n ? ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_ADD_INCOME\n : ANALYTICS_EVENTS.RECURRING_ACTIVITY_CLICK_ADD_EXPENSE,\n )\n }\n\n return (\n <Stack sx={{ alignItems: 'center', p: 24, pt: 48 }}>\n <ReceiptLong size={48} />\n <P sx={{ my: 8, fontWeight: 600 }} variant=\"body1\">\n {title}\n </P>\n <P color=\"text.secondary\" sx={{ mb: 32 }} variant=\"subtitle2\">\n {description}\n </P>\n <AddRecurringTransaction\n isIncome={isIncome}\n label={label}\n onAddRecurringTransaction={onAdd}\n />\n </Stack>\n )\n },\n)\n"],"mappings":";;;;;;;;AAgBA,IAAa,IAA6B,EAAA,CACvC,EAAE,cAAA,EAAA,MAAoD;AACrD,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,SAAA,EAAA,IAAY,EAAS,GAEvB,IAAW,MAAiB,UAC5B,IAAQ,IACV,EAAK,4CACL,EAAK,6CACH,IAAc,IAChB,EAAK,kDACL,EAAK,mDACH,IAAQ,IAAW,EAAK,aAAa,EAAK;AAUhD,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI;AAAA,MAAE,YAAY;AAAA,MAAU,GAAG;AAAA,MAAI,IAAI;AAAA,IAAG;AAAA,
|
|
1
|
+
{"version":3,"file":"RecurringSettingsZeroState.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/RecurringSettingsZeroState.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { ReceiptLong } from '@mxenabled/mx-icons'\n\nimport { P } from '@mxenabled/mxui'\n\nimport { ANALYTICS_EVENTS, useEvent, useGlobalCopyStore } from '../../../../common'\n\nimport { AddRecurringTransaction } from './AddRecurringTransaction'\n\ninterface RecurringSettingsZeroStateProps {\n zeroStateFor: 'expenses' | 'income'\n}\n\nexport const RecurringSettingsZeroState = observer(\n ({ zeroStateFor }: RecurringSettingsZeroStateProps) => {\n const { recurring: copy } = useGlobalCopyStore()\n const { onEvent } = useEvent()\n\n const isIncome = zeroStateFor === 'income'\n const title = isIncome\n ? copy.recurring_setting_zero_state_income_title\n : copy.recurring_setting_zero_state_expenses_title\n const description = isIncome\n ? copy.recurring_setting_zero_state_income_description\n : copy.recurring_setting_zero_state_expenses_description\n const label = isIncome ? copy.add_income : copy.add_expense\n\n const onAdd = () => {\n onEvent(\n isIncome\n ? ANALYTICS_EVENTS.RECURRING_TRANSACTIONS_CLICK_ADD_INCOME\n : ANALYTICS_EVENTS.RECURRING_ACTIVITY_CLICK_ADD_EXPENSE,\n )\n }\n\n return (\n <Stack sx={{ alignItems: 'center', p: 24, pt: 48 }}>\n <ReceiptLong size={48} />\n <P sx={{ my: 8, fontWeight: 600 }} variant=\"body1\">\n {title}\n </P>\n <P color=\"text.secondary\" sx={{ mb: 32 }} variant=\"subtitle2\">\n {description}\n </P>\n <AddRecurringTransaction\n isIncome={isIncome}\n label={label}\n onAddRecurringTransaction={onAdd}\n />\n </Stack>\n )\n },\n)\n"],"mappings":";;;;;;;;AAgBA,IAAa,IAA6B,EAAA,CACvC,EAAE,cAAA,EAAA,MAAoD;AACrD,QAAM,EAAE,WAAW,EAAA,IAAS,EAAmB,GACzC,EAAE,SAAA,EAAA,IAAY,EAAS,GAEvB,IAAW,MAAiB,UAC5B,IAAQ,IACV,EAAK,4CACL,EAAK,6CACH,IAAc,IAChB,EAAK,kDACL,EAAK,mDACH,IAAQ,IAAW,EAAK,aAAa,EAAK;AAUhD,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI;AAAA,MAAE,YAAY;AAAA,MAAU,GAAG;AAAA,MAAI,IAAI;AAAA,IAAG;AAAA,IAAjD,UAAA;AAAA,MACE,gBAAA,EAAC,GAAD,EAAa,MAAM,GAAK,CAAA;AAAA,MACxB,gBAAA,EAAC,GAAD;AAAA,QAAG,IAAI;AAAA,UAAE,IAAI;AAAA,UAAG,YAAY;AAAA,QAAI;AAAA,QAAG,SAAQ;AAAA,QACxC,UAAA;AAAA,MACA,CAAA;AAAA,MACH,gBAAA,EAAC,GAAD;AAAA,QAAG,OAAM;AAAA,QAAiB,IAAI,EAAE,IAAI,GAAG;AAAA,QAAG,SAAQ;AAAA,QAC/C,UAAA;AAAA,MACA,CAAA;AAAA,MACH,gBAAA,EAAC,GAAD;AAAA,QACY,UAAA;AAAA,QACH,OAAA;AAAA,QACP,2BApBA,MAAc;AAClB,UAAA,EACE,IACI,EAAiB,0CACjB,EAAiB,oCACvB;AAAA,QACF;AAAA,MAeK,CAAA;AAAA,IACI;AAAA;AAEX,CACF"}
|
package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectTransaction.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/SelectTransaction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { P } from '@mxenabled/mxui'\n\nimport { SearchBox, useGlobalCopyStore } from '../../../../common'\nimport { TransactionList, useTransactionsUiStore } from '../../../../transactions'\n\ninterface SelectTransactionProps {\n bgcolor?: string\n description?: string\n onSearch: (value: string) => void\n onSelected: (guid: string) => void\n}\n\nexport const SelectTransaction = observer(\n ({\n bgcolor = 'background.default',\n description,\n onSearch,\n onSelected,\n }: SelectTransactionProps) => {\n const { recurring: recurringCopy } = useGlobalCopyStore()\n const { searchValue, setSearchValue } = useTransactionsUiStore()\n\n return (\n <Stack sx={{ bgcolor, gap: 16, pt: 8 }}>\n {description && <P sx={{ mx: 24 }}>{description}</P>}\n <SearchBox\n ariaLabel={recurringCopy.select_transaction_search_aria}\n cancelAriaLabel={recurringCopy.select_transaction_search_cancel_aria}\n onChange={(value) => {\n setSearchValue(value)\n onSearch(value)\n }}\n placeholder={recurringCopy.select_transaction_search_placeholder}\n searchValue={searchValue}\n />\n <TransactionList\n bgcolor={bgcolor}\n filter={(t) => !!t.merchant_guid}\n height=\"auto\"\n onClick={onSelected}\n showLoader={false}\n />\n </Stack>\n )\n },\n)\n"],"mappings":";;;;;;;;AAgBA,IAAa,IAAoB,EAAA,CAC9B,EACC,SAAA,IAAU,sBACV,aAAA,GACA,UAAA,GACA,YAAA,EAAA,MAC4B;AAC5B,QAAM,EAAE,WAAW,EAAA,IAAkB,EAAmB,GAClD,EAAE,aAAA,GAAa,gBAAA,EAAA,IAAmB,EAAuB;AAE/D,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI;AAAA,MAAE,SAAA;AAAA,MAAS,KAAK;AAAA,MAAI,IAAI;AAAA,IAAE;AAAA,
|
|
1
|
+
{"version":3,"file":"SelectTransaction.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/SelectTransaction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { P } from '@mxenabled/mxui'\n\nimport { SearchBox, useGlobalCopyStore } from '../../../../common'\nimport { TransactionList, useTransactionsUiStore } from '../../../../transactions'\n\ninterface SelectTransactionProps {\n bgcolor?: string\n description?: string\n onSearch: (value: string) => void\n onSelected: (guid: string) => void\n}\n\nexport const SelectTransaction = observer(\n ({\n bgcolor = 'background.default',\n description,\n onSearch,\n onSelected,\n }: SelectTransactionProps) => {\n const { recurring: recurringCopy } = useGlobalCopyStore()\n const { searchValue, setSearchValue } = useTransactionsUiStore()\n\n return (\n <Stack sx={{ bgcolor, gap: 16, pt: 8 }}>\n {description && <P sx={{ mx: 24 }}>{description}</P>}\n <SearchBox\n ariaLabel={recurringCopy.select_transaction_search_aria}\n cancelAriaLabel={recurringCopy.select_transaction_search_cancel_aria}\n onChange={(value) => {\n setSearchValue(value)\n onSearch(value)\n }}\n placeholder={recurringCopy.select_transaction_search_placeholder}\n searchValue={searchValue}\n />\n <TransactionList\n bgcolor={bgcolor}\n filter={(t) => !!t.merchant_guid}\n height=\"auto\"\n onClick={onSelected}\n showLoader={false}\n />\n </Stack>\n )\n },\n)\n"],"mappings":";;;;;;;;AAgBA,IAAa,IAAoB,EAAA,CAC9B,EACC,SAAA,IAAU,sBACV,aAAA,GACA,UAAA,GACA,YAAA,EAAA,MAC4B;AAC5B,QAAM,EAAE,WAAW,EAAA,IAAkB,EAAmB,GAClD,EAAE,aAAA,GAAa,gBAAA,EAAA,IAAmB,EAAuB;AAE/D,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI;AAAA,MAAE,SAAA;AAAA,MAAS,KAAK;AAAA,MAAI,IAAI;AAAA,IAAE;AAAA,IAArC,UAAA;AAAA,MACG,KAAe,gBAAA,EAAC,GAAD;AAAA,QAAG,IAAI,EAAE,IAAI,GAAG;AAAA,QAAI,UAAA;AAAA,MAAe,CAAA;AAAA,MACnD,gBAAA,EAAC,GAAD;AAAA,QACE,WAAW,EAAc;AAAA,QACzB,iBAAiB,EAAc;AAAA,QAC/B,UAAA,CAAW,MAAU;AACnB,UAAA,EAAe,CAAK,GACpB,EAAS,CAAK;AAAA,QAChB;AAAA,QACA,aAAa,EAAc;AAAA,QACd,aAAA;AAAA,MACd,CAAA;AAAA,MACD,gBAAA,EAAC,GAAD;AAAA,QACW,SAAA;AAAA,QACT,QAAA,CAAS,MAAM,CAAC,CAAC,EAAE;AAAA,QACnB,QAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,MACb,CAAA;AAAA,IACI;AAAA;AAEX,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationSettingsWidget.es.js","names":[],"sources":["../../src/settings/NotificationSettingsWidget.tsx"],"sourcesContent":["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"],"mappings":";;;;;;;;AAYA,IAAa,IAA6B,EAAA,CAAU,MAAuB;AACzE,QAAM,EAAE,cAAA,EAAA,IAAiB,EAAa,GAEhC,IAAO,GAAc,QAAQ,kBAAkB,MAC/C,IAAiB,GAAc,QAAQ;AAE7C,SAAI,IAEA,gBAAA,EAAC,GAAD,EAAA,UAAA,CACG,KAAkB,EAAM,eACvB,gBAAA,EAAC,GAAD;AAAA,IACE,OAAM;AAAA,IACN,SAAS,EAAM;AAAA,IACf,IAAI;AAAA,MAAE,GAAG;AAAA,MAAI,WAAW;AAAA,IAAa;AAAA,
|
|
1
|
+
{"version":3,"file":"NotificationSettingsWidget.es.js","names":[],"sources":["../../src/settings/NotificationSettingsWidget.tsx"],"sourcesContent":["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"],"mappings":";;;;;;;;AAYA,IAAa,IAA6B,EAAA,CAAU,MAAuB;AACzE,QAAM,EAAE,cAAA,EAAA,IAAiB,EAAa,GAEhC,IAAO,GAAc,QAAQ,kBAAkB,MAC/C,IAAiB,GAAc,QAAQ;AAE7C,SAAI,IAEA,gBAAA,EAAC,GAAD,EAAA,UAAA,CACG,KAAkB,EAAM,eACvB,gBAAA,EAAC,GAAD;AAAA,IACE,OAAM;AAAA,IACN,SAAS,EAAM;AAAA,IACf,IAAI;AAAA,MAAE,GAAG;AAAA,MAAI,WAAW;AAAA,IAAa;AAAA,IAErC,UAAA,gBAAA,EAAC,GAAD,EAAa,MAAM,GAAK,CAAA;AAAA,EACd,CAAA,GAEd,gBAAA,EAAC,GAAD,EAA4B,MAAA,EAAO,CAAA,CAC9B,EAAA,CAAA,IAKT,gBAAA,EAAC,GAAD;AAAA,IAAiB,GAAI;AAAA,IAAO,mBAAmB;AAAA,IAC7C,UAAA,gBAAA,EAAC,GAAD;AAAA,MAAO,IAAI;AAAA,MACT,UAAA,gBAAA,EAAC,GAAD,CAAuB,CAAA;AAAA,IAClB,CAAA;AAAA,EACQ,CAAA;AAErB,CAAC"}
|