@mx-cartographer/experiences 8.0.0-alpha.bb4 → 8.0.0-alpha.sms1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Account-B4CDD-zq.mjs → Account-BDXA6PWh.mjs} +1 -1
- package/dist/AccountDetailsContent-CUztd3-b.mjs +683 -0
- package/dist/{AccountDetailsHeader-DRjFuyJT.mjs → AccountDetailsHeader-i3KFhNuo.mjs} +18 -18
- package/dist/{AccountFields-Cl4KHoSj.mjs → AccountFields-QZspYAji.mjs} +10 -12
- package/dist/AccountListItem-DX5upmCS.mjs +90 -0
- package/dist/{AccountStore-HbVblv86.mjs → AccountStore-BcnDpyLL.mjs} +3 -3
- package/dist/{Accounts-CRUehOiy.mjs → Accounts-DXfZotRC.mjs} +1 -1
- package/dist/{BudgetUtil-Jv8h9H9l.mjs → BudgetUtil-Df2nII9u.mjs} +31 -31
- package/dist/{CashflowStore-CA190BPF.mjs → CashflowStore-D9Dpuz7X.mjs} +25 -18
- package/dist/{Category-Ccoew_sA.mjs → Category-CevNQ03n.mjs} +2 -2
- package/dist/{CategorySelectorDrawer-Dl006GKy.mjs → CategorySelectorDrawer-DqJK_rrL.mjs} +27 -27
- package/dist/{CategoryStore-MUwRWH9e.mjs → CategoryStore-DTgyAMM7.mjs} +2 -2
- package/dist/{CategoryUtil-DfVKKkRf.mjs → CategoryUtil-C5cR-nfQ.mjs} +4 -4
- package/dist/{ConnectDrawer-DVp54lUH.mjs → ConnectDrawer-BIbTqYOH.mjs} +47 -48
- package/dist/{ConnectionsDrawer-Dsc04-4Z.mjs → ConnectionsDrawer-BFfY3_zB.mjs} +2 -2
- package/dist/CurrencyInput-BFKcs-_K.mjs +85 -0
- package/dist/{DateUtil-CDPZw_-m.mjs → DateUtil-CBdcsyuk.mjs} +1 -1
- package/dist/{DebtsStore-pL63fmdT.mjs → DebtsStore-BbJB0nmu.mjs} +3 -3
- package/dist/{Dialog-CDV0kKxj.mjs → Dialog-BPTr3qHE.mjs} +24 -24
- package/dist/{Drawer-BF40nbsH.mjs → Drawer-BEtCk82g.mjs} +17 -17
- package/dist/{ExportCsvAction-QhQK4_FU.mjs → ExportCsvAction-DzTrtPzk.mjs} +3 -3
- package/dist/{FinstrongStore-BGf36b0z.mjs → FinstrongStore-BIrX0Xg2.mjs} +56 -56
- package/dist/{GoalStore-C1-w3Y1E.mjs → GoalStore-DpWY3gVb.mjs} +4 -4
- package/dist/HeaderCell-DjuifqHJ.mjs +6 -0
- package/dist/{Help-DBfsTkAi.mjs → Help-BnPXM_N2.mjs} +145 -124
- package/dist/{Help-c-zHlDbv.mjs → Help-DhcC-C05.mjs} +8 -8
- package/dist/{IconBacking-DgT8DCeh.mjs → IconBacking-B9oC6uL2.mjs} +11 -11
- package/dist/{LineChart-C1PxNf7P.mjs → LineChart-bc1D9xBE.mjs} +78 -78
- package/dist/{ListItemAction-BNCWQAN_.mjs → ListItemAction-uobBrm_a.mjs} +1 -1
- package/dist/Loader-DUaFpDGv.mjs +24 -0
- package/dist/{ManageIncome-8EsStyIQ.mjs → ManageIncome-NpXHhO1n.mjs} +46 -46
- package/dist/MicroWidgetContainer-DEiRnYVa.mjs +45 -0
- package/dist/MiniWidgetContainer-CmXpTylX.mjs +56 -0
- package/dist/{NetWorthStore-Bti6u-d9.mjs → NetWorthStore-lsuhEpn6.mjs} +4 -4
- package/dist/{NotificationSettings-B74rQVYC.mjs → NotificationSettings-CNmJWVeI.mjs} +77 -77
- package/dist/{OriginalBalanceAction-2Y_3U_mg.mjs → OriginalBalanceAction-DK8_LkPz.mjs} +8 -8
- package/dist/{RecurringSettings-DAncu--R.mjs → RecurringSettings-CqZh1SQa.mjs} +3 -3
- package/dist/{RecurringTransactions-CxcSL1dY.mjs → RecurringTransactions-BKcYmpv3.mjs} +77 -77
- package/dist/{RecurringTransactionsStore-CNFxyGB6.mjs → RecurringTransactionsStore-Ni5tSQIO.mjs} +1 -1
- package/dist/{ResponsiveButton-Cn6-R7ue.mjs → ResponsiveButton-DZFp78fJ.mjs} +10 -10
- package/dist/SearchBox-B2_zLv8-.mjs +42 -0
- package/dist/{SettingsStore-BASMQSIp.mjs → SettingsStore-krIRNwHK.mjs} +1 -1
- package/dist/{SingleSegmentDonut-7Uy6VEld.mjs → SingleSegmentDonut-BgbLgwHi.mjs} +6 -6
- package/dist/{SpendingData-DPQ96k3x.mjs → SpendingData-BuJ03S9d.mjs} +4 -4
- package/dist/{SpendingLegend-6FqtMcBV.mjs → SpendingLegend-CjX-hX2O.mjs} +12 -12
- package/dist/{StatusBar-CPfSXe80.mjs → StatusBar-BK_uYHAB.mjs} +6 -6
- package/dist/{TabContentContainer-CnMXkVqr.mjs → TabContentContainer-j01JYR_7.mjs} +8 -8
- package/dist/TransactionDetails-5M2vfr59.mjs +1379 -0
- package/dist/{TransactionStore-DbwAutwC.mjs → TransactionStore-D-Q3BU9Z.mjs} +58 -41
- package/dist/{TrendsStore-_mRaFUdf.mjs → TrendsStore-BW9FGQeE.mjs} +37 -37
- package/dist/{User-BklmOUSd.mjs → User-wXzDI4M8.mjs} +107 -107
- package/dist/{ViewMoreMicroCard-DAkyNRlD.mjs → ViewMoreMicroCard-C0832BMe.mjs} +233 -231
- package/dist/{WidgetContainer-CDh9fjpR.mjs → WidgetContainer-BhQ1Kx2z.mjs} +36 -36
- package/dist/accounts/index.es.js +94 -94
- package/dist/analytics/index.es.js +27 -27
- package/dist/budgets/index.es.js +251 -250
- package/dist/cashflow/index.es.js +158 -157
- package/dist/categories/index.es.js +2 -2
- package/dist/common/components/Loader.d.ts +2 -1
- package/dist/common/components/accountfilter/AccountFilterOptions.d.ts +1 -1
- package/dist/common/components/barchart/Bar.d.ts +25 -0
- package/dist/common/components/barchart/BarChart.d.ts +34 -0
- package/dist/common/components/barchart/BarColumn.d.ts +37 -0
- package/dist/common/components/barchart/Legend.d.ts +8 -0
- package/dist/common/components/barchart/Util.d.ts +42 -0
- package/dist/common/components/barchart/index.d.ts +1 -0
- package/dist/common/components/charts/linechart/CustomMark.d.ts +1 -1
- package/dist/common/components/index.d.ts +1 -0
- package/dist/common/index.es.js +660 -395
- package/dist/common/utils/Theme.d.ts +3 -1
- package/dist/dashboard/index.es.js +21 -21
- package/dist/debts/components/DebtsChart.d.ts +2 -1
- package/dist/debts/index.es.js +440 -440
- package/dist/{exportTransactionsToCSV-BgV_wTLT.mjs → exportTransactionsToCSV-Cz2t0lmA.mjs} +3 -3
- package/dist/finstrong/index.es.js +118 -118
- package/dist/goals/index.es.js +380 -386
- package/dist/help/components/content/BottomImageContent.d.ts +1 -1
- package/dist/help/components/content/LeftImageContent.d.ts +1 -1
- package/dist/help/components/content/RightImageContent.d.ts +1 -1
- package/dist/help/components/content/TopImageContent.d.ts +1 -1
- package/dist/help/index.es.js +6 -6
- package/dist/investments/index.es.js +279 -278
- package/dist/merchants/index.es.js +7 -7
- package/dist/microinsights/index.es.js +1 -1
- package/dist/networth/components/NetWorthChange.d.ts +1 -3
- package/dist/networth/index.es.js +185 -191
- package/dist/notifications/index.es.js +30 -30
- package/dist/recurringtransactions/index.es.js +85 -85
- package/dist/settings/index.es.js +270 -270
- package/dist/spending/index.es.js +44 -44
- package/dist/transactions/components/shared/transactionlist/DateRow.d.ts +7 -0
- package/dist/transactions/index.es.js +169 -168
- package/dist/trends/index.es.js +318 -317
- package/dist/{useAccountDisplayName-CcIp09Xc.mjs → useAccountDisplayName-CFNF8766.mjs} +1 -1
- package/dist/{useCombineEvents-kNzLTWCp.mjs → useCombineEvents-CRwX-qWE.mjs} +2 -2
- package/dist/{useScreenSize-B5afALev.mjs → useScreenSize-B6JyS_Lj.mjs} +1 -1
- package/package.json +50 -45
- package/dist/AccountDetailsContent-adZTkM52.mjs +0 -683
- package/dist/AccountListItem-wgmlex-_.mjs +0 -90
- package/dist/CurrencyInput-D1cjbdCI.mjs +0 -85
- package/dist/HeaderCell-P8w6CmfO.mjs +0 -6
- package/dist/Loader-Ckqi9Rx6.mjs +0 -21
- package/dist/MicroWidgetContainer-BGpNl5ZS.mjs +0 -45
- package/dist/MiniWidgetContainer-CKzf_Ira.mjs +0 -56
- package/dist/SearchBox-B7km148n.mjs +0 -39
- package/dist/TransactionDetails-Bn0qY5Hw.mjs +0 -1336
package/dist/budgets/index.es.js
CHANGED
|
@@ -1,91 +1,92 @@
|
|
|
1
|
-
import { jsxs as g, jsx as e, Fragment as
|
|
1
|
+
import { jsxs as g, jsx as e, Fragment as Ge } from "react/jsx-runtime";
|
|
2
2
|
import c from "react";
|
|
3
3
|
import { observer as E } from "mobx-react-lite";
|
|
4
4
|
import { endOfMonth as me } from "date-fns/endOfMonth";
|
|
5
|
-
import { startOfMonth as
|
|
5
|
+
import { startOfMonth as J } from "date-fns/startOfMonth";
|
|
6
6
|
import F from "@mui/material/Box";
|
|
7
7
|
import B from "@mui/material/Stack";
|
|
8
|
-
import
|
|
9
|
-
import { Text as y, CategoryIcon as
|
|
10
|
-
import
|
|
11
|
-
import { u as w, i as D, j as te, m as
|
|
8
|
+
import ee from "@mui/material/styles/useTheme";
|
|
9
|
+
import { Text as y, CategoryIcon as H, Icon as P, H1 as je, H3 as Ae } from "@mxenabled/mxui";
|
|
10
|
+
import W from "@mui/material/List";
|
|
11
|
+
import { u as w, i as D, j as te, m as K, q as ne, g as X, b as oe, d as pe, h as ae, a as ze, n as Ue } from "../hooks-C41HAxM5.mjs";
|
|
12
12
|
import { f as T } from "../NumberFormatting-DjTD0t3W.mjs";
|
|
13
13
|
import Te from "@mui/material/Button";
|
|
14
14
|
import re from "@mui/material/Divider";
|
|
15
|
-
import
|
|
15
|
+
import V from "@mui/material/ListItem";
|
|
16
16
|
import se from "@mui/material/ListItemAvatar";
|
|
17
|
-
import
|
|
18
|
-
import
|
|
17
|
+
import Y from "@mui/material/ListItemButton";
|
|
18
|
+
import Z from "@mui/material/ListItemText";
|
|
19
19
|
import { b as R } from "../Localization-2MODESHW.mjs";
|
|
20
|
-
import { D as L } from "../Drawer-
|
|
20
|
+
import { D as L } from "../Drawer-BEtCk82g.mjs";
|
|
21
21
|
import Fe from "@mui/material/ListItemSecondaryAction";
|
|
22
|
-
import { C as He } from "../CurrencyInput-
|
|
23
|
-
import { D as j } from "../Dialog-
|
|
24
|
-
import { C as We } from "../ConnectionsDrawer-
|
|
22
|
+
import { C as He } from "../CurrencyInput-BFKcs-_K.mjs";
|
|
23
|
+
import { D as j } from "../Dialog-BPTr3qHE.mjs";
|
|
24
|
+
import { C as We } from "../ConnectionsDrawer-BFfY3_zB.mjs";
|
|
25
25
|
import * as O from "d3";
|
|
26
26
|
import Ke from "@mui/material/Tooltip";
|
|
27
|
-
import {
|
|
28
|
-
import { u as ie } from "../useScreenSize-
|
|
27
|
+
import { useTheme as Xe } from "@mui/material/styles";
|
|
28
|
+
import { u as ie } from "../useScreenSize-B6JyS_Lj.mjs";
|
|
29
|
+
import { L as he } from "../Loader-DUaFpDGv.mjs";
|
|
29
30
|
import { E as de } from "../EmptyState-DoxNUae-.mjs";
|
|
30
|
-
import { A as k, W as Ve } from "../WidgetContainer-
|
|
31
|
-
import { u as Ye } from "../BudgetUtil-
|
|
32
|
-
import { M as
|
|
33
|
-
import { isAfter as
|
|
34
|
-
import { startOfToday as
|
|
35
|
-
import
|
|
36
|
-
import
|
|
31
|
+
import { A as k, W as Ve } from "../WidgetContainer-BhQ1Kx2z.mjs";
|
|
32
|
+
import { u as Ye } from "../BudgetUtil-Df2nII9u.mjs";
|
|
33
|
+
import { M as Ze } from "../MiniWidgetContainer-CmXpTylX.mjs";
|
|
34
|
+
import { isAfter as qe } from "date-fns/isAfter";
|
|
35
|
+
import { startOfToday as q } from "date-fns/startOfToday";
|
|
36
|
+
import Je from "@mui/material/Alert";
|
|
37
|
+
import Qe from "@mui/material/Snackbar";
|
|
37
38
|
import Ce from "@mui/material/Tab";
|
|
38
|
-
import
|
|
39
|
-
import { e as
|
|
40
|
-
import { T as we, a as
|
|
41
|
-
import
|
|
42
|
-
import
|
|
43
|
-
import { S as ge } from "../StatusBar-
|
|
44
|
-
import { S as De } from "../SingleSegmentDonut-
|
|
45
|
-
import { u as
|
|
39
|
+
import et from "@mui/material/Tabs";
|
|
40
|
+
import { e as tt } from "../exportTransactionsToCSV-Cz2t0lmA.mjs";
|
|
41
|
+
import { T as we, a as nt } from "../TransactionDetails-5M2vfr59.mjs";
|
|
42
|
+
import fe from "@mui/material/Card";
|
|
43
|
+
import be from "@mui/material/CardContent";
|
|
44
|
+
import { S as ge } from "../StatusBar-BK_uYHAB.mjs";
|
|
45
|
+
import { S as De } from "../SingleSegmentDonut-BgbLgwHi.mjs";
|
|
46
|
+
import { u as ot, b as at } from "../CategorySelectorDrawer-DqJK_rrL.mjs";
|
|
46
47
|
import Ee from "@mui/material/CardHeader";
|
|
47
|
-
import { subDays as
|
|
48
|
-
import
|
|
49
|
-
import { M as
|
|
50
|
-
const
|
|
48
|
+
import { subDays as rt } from "date-fns/subDays";
|
|
49
|
+
import st from "@mui/material/IconButton";
|
|
50
|
+
import { M as it } from "../ManageIncome-NpXHhO1n.mjs";
|
|
51
|
+
const ct = E(() => {
|
|
51
52
|
const { budgets: t } = w(), { totalBudgeted: o } = D(), { incomeTotal: i } = te(), s = i - o;
|
|
52
53
|
return /* @__PURE__ */ g(B, { direction: "row", justifyContent: "center", my: 16, spacing: 20, children: [
|
|
53
54
|
/* @__PURE__ */ g(B, { alignItems: "center", children: [
|
|
54
|
-
/* @__PURE__ */ e(y, { bold: !0, variant: "
|
|
55
|
-
/* @__PURE__ */ e(y, { color: "secondary", variant: "
|
|
55
|
+
/* @__PURE__ */ e(y, { bold: !0, variant: "Body", children: T(i, "0,0") }),
|
|
56
|
+
/* @__PURE__ */ e(y, { color: "secondary", variant: "Small", children: t.projected_income })
|
|
56
57
|
] }),
|
|
57
|
-
/* @__PURE__ */ e(y, { bold: !0, justifyContent: "center", variant: "
|
|
58
|
+
/* @__PURE__ */ e(y, { bold: !0, justifyContent: "center", variant: "Body", children: "-" }),
|
|
58
59
|
/* @__PURE__ */ g(B, { alignItems: "center", children: [
|
|
59
|
-
/* @__PURE__ */ e(y, { bold: !0, variant: "
|
|
60
|
-
/* @__PURE__ */ e(y, { color: "secondary", variant: "
|
|
60
|
+
/* @__PURE__ */ e(y, { bold: !0, variant: "Body", children: T(o, "0,0") }),
|
|
61
|
+
/* @__PURE__ */ e(y, { color: "secondary", variant: "Small", children: t.budgeted })
|
|
61
62
|
] }),
|
|
62
|
-
/* @__PURE__ */ e(y, { bold: !0, justifyContent: "center", variant: "
|
|
63
|
+
/* @__PURE__ */ e(y, { bold: !0, justifyContent: "center", variant: "Body", children: "=" }),
|
|
63
64
|
/* @__PURE__ */ g(B, { alignItems: "center", children: [
|
|
64
|
-
/* @__PURE__ */ e(y, { bold: !0, variant: "
|
|
65
|
-
/* @__PURE__ */ e(y, { color: "secondary", variant: "
|
|
65
|
+
/* @__PURE__ */ e(y, { bold: !0, variant: "Body", children: T(s, "0,0") }),
|
|
66
|
+
/* @__PURE__ */ e(y, { color: "secondary", variant: "Small", children: t.remaining })
|
|
66
67
|
] })
|
|
67
68
|
] });
|
|
68
|
-
}),
|
|
69
|
+
}), lt = E(
|
|
69
70
|
({ category: t }) => {
|
|
70
71
|
const { budgets: o } = w(), { budgets: i } = D(), s = c.useMemo(() => {
|
|
71
72
|
const a = i.find((l) => l.category_guid === t.guid), n = T(t.totalAverageAmount, "0,0"), r = a ? R(o.recalculate_previous_budget, T(a.amount, "0,0")) : o.recalculate_new_budget;
|
|
72
73
|
return `${n} - ${r}`;
|
|
73
74
|
}, [o, i]);
|
|
74
75
|
return /* @__PURE__ */ g(c.Fragment, { children: [
|
|
75
|
-
/* @__PURE__ */ e(
|
|
76
|
-
/* @__PURE__ */ e(se, { children: /* @__PURE__ */ e(
|
|
77
|
-
/* @__PURE__ */ e(
|
|
76
|
+
/* @__PURE__ */ e(V, { children: /* @__PURE__ */ g(Y, { children: [
|
|
77
|
+
/* @__PURE__ */ e(se, { children: /* @__PURE__ */ e(H, { categoryGuid: t.guid, variant: "filled" }) }),
|
|
78
|
+
/* @__PURE__ */ e(Z, { primary: t.name, secondary: s })
|
|
78
79
|
] }) }),
|
|
79
80
|
/* @__PURE__ */ e(re, {})
|
|
80
81
|
] }, t.guid);
|
|
81
82
|
}
|
|
82
|
-
),
|
|
83
|
-
const { budgets: o, common: i } = w(), { spendCategories: s } =
|
|
83
|
+
), dt = ({ onRecalculateBudgets: t }) => {
|
|
84
|
+
const { budgets: o, common: i } = w(), { spendCategories: s } = K(), { recalculateBudgets: a, setAlert: n } = D(), [r, l] = c.useState(!1), d = s.filter((u) => u.totalAverageAmount > 0), m = async () => {
|
|
84
85
|
await a(d), l(!1), n(o.alert_recalculated_budgets), t?.();
|
|
85
86
|
};
|
|
86
87
|
return /* @__PURE__ */ g(c.Fragment, { children: [
|
|
87
88
|
/* @__PURE__ */ e(Te, { onClick: () => l(!0), sx: { mt: 24, mx: 24 }, variant: "text", children: o.recalculate_button }),
|
|
88
|
-
/* @__PURE__ */ e(y, { sx: { mx: 24, my: 16, textAlign: "center", whiteSpace: "wrap" }, variant: "
|
|
89
|
+
/* @__PURE__ */ e(y, { sx: { mx: 24, my: 16, textAlign: "center", whiteSpace: "wrap" }, variant: "Paragraph", children: o.recalculate_help }),
|
|
89
90
|
/* @__PURE__ */ e(
|
|
90
91
|
L,
|
|
91
92
|
{
|
|
@@ -96,10 +97,10 @@ const it = E(() => {
|
|
|
96
97
|
title: o.recalculate_title,
|
|
97
98
|
children: /* @__PURE__ */ g(B, { children: [
|
|
98
99
|
/* @__PURE__ */ g(B, { mx: 24, my: 16, children: [
|
|
99
|
-
/* @__PURE__ */ e(y, { bold: !0, variant: "
|
|
100
|
-
/* @__PURE__ */ e(y, { variant: "
|
|
100
|
+
/* @__PURE__ */ e(y, { bold: !0, variant: "Body", children: o.recalculate_description_top }),
|
|
101
|
+
/* @__PURE__ */ e(y, { variant: "ParagraphSmall", children: o.recalculate_description_bottom })
|
|
101
102
|
] }),
|
|
102
|
-
/* @__PURE__ */ e(F, { bgcolor: "background.paper", children: /* @__PURE__ */ e(
|
|
103
|
+
/* @__PURE__ */ e(F, { bgcolor: "background.paper", children: /* @__PURE__ */ e(W, { children: d.map((u) => /* @__PURE__ */ e(lt, { category: u }, u.guid)) }) })
|
|
103
104
|
] })
|
|
104
105
|
}
|
|
105
106
|
)
|
|
@@ -126,25 +127,25 @@ const it = E(() => {
|
|
|
126
127
|
label: s.add_label,
|
|
127
128
|
minAmount: 0,
|
|
128
129
|
setAmount: i,
|
|
129
|
-
sx: { ".MuiTypography-
|
|
130
|
+
sx: { ".MuiTypography-Body": { p: 0 } }
|
|
130
131
|
}
|
|
131
132
|
)
|
|
132
133
|
] });
|
|
133
|
-
},
|
|
134
|
+
}, ut = E(({ category: t, onAddBudget: o }) => {
|
|
134
135
|
const { budgets: i, common: s } = w(), [a, n] = c.useState(!1), [r, l] = c.useState(
|
|
135
136
|
`${t.totalAmount === 0 ? "" : t.totalAmount}`
|
|
136
137
|
);
|
|
137
138
|
return /* @__PURE__ */ g(c.Fragment, { children: [
|
|
138
|
-
/* @__PURE__ */ e(
|
|
139
|
-
/* @__PURE__ */ e(se, { children: /* @__PURE__ */ e(
|
|
139
|
+
/* @__PURE__ */ e(V, { children: /* @__PURE__ */ g(Y, { onClick: () => n(!0), children: [
|
|
140
|
+
/* @__PURE__ */ e(se, { children: /* @__PURE__ */ e(H, { categoryGuid: t.guid }) }),
|
|
140
141
|
/* @__PURE__ */ e(
|
|
141
|
-
|
|
142
|
+
Z,
|
|
142
143
|
{
|
|
143
144
|
primary: t.name,
|
|
144
145
|
secondary: T(t.totalAmount, "0,0")
|
|
145
146
|
}
|
|
146
147
|
),
|
|
147
|
-
/* @__PURE__ */ e(Fe, { children: /* @__PURE__ */ e(
|
|
148
|
+
/* @__PURE__ */ e(Fe, { children: /* @__PURE__ */ e(P, { name: "add", size: 20 }) })
|
|
148
149
|
] }) }, t.guid),
|
|
149
150
|
/* @__PURE__ */ e(
|
|
150
151
|
j,
|
|
@@ -164,18 +165,18 @@ const it = E(() => {
|
|
|
164
165
|
await i(r, l), s(R(o.alert_budget_created, r.name));
|
|
165
166
|
};
|
|
166
167
|
return /* @__PURE__ */ g(B, { children: [
|
|
167
|
-
/* @__PURE__ */ e(
|
|
168
|
-
/* @__PURE__ */ e(F, { bgcolor: "background.paper", children: /* @__PURE__ */ e(
|
|
169
|
-
|
|
168
|
+
/* @__PURE__ */ e(ct, {}),
|
|
169
|
+
/* @__PURE__ */ e(F, { bgcolor: "background.paper", children: /* @__PURE__ */ e(W, { children: a.map((r) => /* @__PURE__ */ e(
|
|
170
|
+
ut,
|
|
170
171
|
{
|
|
171
172
|
category: r,
|
|
172
173
|
onAddBudget: n
|
|
173
174
|
},
|
|
174
175
|
r.guid
|
|
175
176
|
)) }) }),
|
|
176
|
-
/* @__PURE__ */ e(
|
|
177
|
+
/* @__PURE__ */ e(dt, { onRecalculateBudgets: t })
|
|
177
178
|
] });
|
|
178
|
-
}), Be = 5, Oe = 100,
|
|
179
|
+
}), Be = 5, Oe = 100, Q = 25, mt = (t) => {
|
|
179
180
|
const o = (a) => {
|
|
180
181
|
a.active || t.alphaTarget(0.3).restart(), a.subject.fx = a.subject.x, a.subject.fy = a.subject.y;
|
|
181
182
|
}, i = (a) => {
|
|
@@ -184,14 +185,14 @@ const it = E(() => {
|
|
|
184
185
|
a.active || t.alphaTarget(0), a.subject.fx = null, a.subject.fy = null;
|
|
185
186
|
};
|
|
186
187
|
return O.drag().on("start", o).on("drag", i).on("end", s);
|
|
187
|
-
},
|
|
188
|
+
}, gt = (t) => {
|
|
188
189
|
let o = t.transaction_total / t.amount;
|
|
189
190
|
o < 0 ? o = 0 : o > 1 && (o = 1);
|
|
190
191
|
const i = o * 2 * Math.PI, s = O.interpolate(0, i), a = O.arc().cornerRadius(5).innerRadius(t.radius - Be * 2).outerRadius(t.radius - Be).startAngle(0).endAngle(0);
|
|
191
192
|
return (n) => (a.endAngle(s(n)), a(t) || "");
|
|
192
|
-
},
|
|
193
|
-
O.selectAll(".bubble").call(
|
|
194
|
-
}, Se = (t, o, i) => Math.min(Math.max(t, o), i),
|
|
193
|
+
}, pt = (t) => {
|
|
194
|
+
O.selectAll(".bubble").call(mt(t));
|
|
195
|
+
}, Se = (t, o, i) => Math.min(Math.max(t, o), i), ht = (t, o, i) => {
|
|
195
196
|
t.alpha(1).restart().force(
|
|
196
197
|
"x",
|
|
197
198
|
O.forceX().x(i / 2).strength(0.01)
|
|
@@ -201,11 +202,11 @@ const it = E(() => {
|
|
|
201
202
|
).on("tick", () => {
|
|
202
203
|
const s = t.nodes();
|
|
203
204
|
s.forEach((a) => {
|
|
204
|
-
const n = a.radius ??
|
|
205
|
+
const n = a.radius ?? Q;
|
|
205
206
|
a.x = Se(a.x ?? 0, n, i - n), a.y = Se(a.y ?? 0, n, o - n);
|
|
206
207
|
}), O.selectAll(".bubble").data(s).attr("transform", (a) => `translate(${a.x},${a.y})`);
|
|
207
208
|
});
|
|
208
|
-
}, Me = (t, o) => O.scaleLinear().domain([t, o]).range([
|
|
209
|
+
}, Me = (t, o) => O.scaleLinear().domain([t, o]).range([Q, Oe]), ft = (t) => {
|
|
209
210
|
const o = t.reduce((n, r) => {
|
|
210
211
|
const l = Math.max(r.transaction_total, r.amount);
|
|
211
212
|
return l > n ? l : n;
|
|
@@ -221,24 +222,24 @@ const it = E(() => {
|
|
|
221
222
|
});
|
|
222
223
|
return O.forceSimulation(a).velocityDecay(0.05).force("collide", O.forceCollide((n) => n.radius + 2).strength(0.7));
|
|
223
224
|
}, bt = (t, o, i) => {
|
|
224
|
-
const a = Math.PI *
|
|
225
|
-
let u =
|
|
225
|
+
const a = Math.PI * Q ** 2 * t, n = i < 400 || o < 300, r = n ? 40 : 20, l = Math.max(100, i - r), d = Math.max(100, o - r), m = l * d;
|
|
226
|
+
let u = Q;
|
|
226
227
|
if (a < m) {
|
|
227
228
|
const h = Math.sqrt(m / (t * Math.PI)), p = Math.min(l, d) / 4;
|
|
228
229
|
u = Math.min(Oe, h, p);
|
|
229
230
|
}
|
|
230
231
|
return n && t <= 3 && (u = Math.min(u, 45)), { minRadius: Math.max(20, u * 0.6), maxRadius: u };
|
|
231
|
-
},
|
|
232
|
+
}, yt = (t, o, i, s, a) => {
|
|
232
233
|
const { maxRadius: n, minRadius: r } = bt(t, o, a);
|
|
233
234
|
return O.scaleLinear().domain([s, i]).range([r, n]);
|
|
234
|
-
},
|
|
235
|
-
const n = o.map((m) => Math.max(m.transaction_total, m.amount)), r = Math.min(...n), l = Math.max(...n), d = i ?
|
|
235
|
+
}, _t = (t, o, i = !1, s, a) => {
|
|
236
|
+
const n = o.map((m) => Math.max(m.transaction_total, m.amount)), r = Math.min(...n), l = Math.max(...n), d = i ? yt(t.length, s, l, r, a) : Me(r, l);
|
|
236
237
|
return t.map((m) => ({
|
|
237
238
|
...m,
|
|
238
239
|
radius: d(Math.max(m.transaction_total, m.amount))
|
|
239
240
|
}));
|
|
240
|
-
}, xe = 5,
|
|
241
|
-
const o =
|
|
241
|
+
}, xe = 5, Ct = 2e3, Bt = ({ bubble: t }) => {
|
|
242
|
+
const o = ee(), {
|
|
242
243
|
amount: i,
|
|
243
244
|
guid: s,
|
|
244
245
|
budgetColors: { mercury: a },
|
|
@@ -246,7 +247,7 @@ const it = E(() => {
|
|
|
246
247
|
transaction_total: r
|
|
247
248
|
} = t, l = `mercury-${s}`;
|
|
248
249
|
c.useEffect(() => {
|
|
249
|
-
O.select(`.${l}`).selectAll(".status").remove(), O.select(`.${l}`).append("path").transition().duration(
|
|
250
|
+
O.select(`.${l}`).selectAll(".status").remove(), O.select(`.${l}`).append("path").transition().duration(Ct).delay(0).attr("class", "status").attr("style", `fill: ${a}; fill-opacity: 1;`).attrTween("d", () => gt(t));
|
|
250
251
|
}, [i, n, r]);
|
|
251
252
|
const d = O.arc().innerRadius((m) => m - 2 * xe).outerRadius((m) => m - xe).startAngle(0).endAngle(2 * Math.PI);
|
|
252
253
|
return /* @__PURE__ */ e("g", { className: l, children: /* @__PURE__ */ e(
|
|
@@ -256,10 +257,10 @@ const it = E(() => {
|
|
|
256
257
|
style: { fill: o.palette.common.white, fillOpacity: 0.35 }
|
|
257
258
|
}
|
|
258
259
|
) });
|
|
259
|
-
},
|
|
260
|
-
function
|
|
260
|
+
}, St = c.memo(Bt), G = 75, ue = 50;
|
|
261
|
+
function xt({ bubble: t, isDraggable: o, onClick: i = () => {
|
|
261
262
|
} }) {
|
|
262
|
-
const [s, a] = c.useState(!1), n =
|
|
263
|
+
const [s, a] = c.useState(!1), n = Xe(), { availableWidth: r } = ne(), l = c.useMemo(() => {
|
|
263
264
|
if (t)
|
|
264
265
|
return {
|
|
265
266
|
amount: t.amount,
|
|
@@ -275,14 +276,14 @@ function St({ bubble: t, isDraggable: o, onClick: i = () => {
|
|
|
275
276
|
category: { icon: u, name: C },
|
|
276
277
|
guid: h,
|
|
277
278
|
description: p,
|
|
278
|
-
radius:
|
|
279
|
+
radius: f,
|
|
279
280
|
x: S,
|
|
280
281
|
y: _
|
|
281
|
-
} = t,
|
|
282
|
-
let A =
|
|
283
|
-
|
|
282
|
+
} = t, b = r < 400 ? -8 : -12;
|
|
283
|
+
let A = b, v = b;
|
|
284
|
+
f > G ? (A = -14, v = -45) : f > ue && (v = -32);
|
|
284
285
|
let x = 32;
|
|
285
|
-
|
|
286
|
+
f <= G && (x = r < 400 ? 16 : 24);
|
|
286
287
|
const I = `${t.category.name}: ${p}`, M = {
|
|
287
288
|
modifiers: [
|
|
288
289
|
{
|
|
@@ -290,11 +291,11 @@ function St({ bubble: t, isDraggable: o, onClick: i = () => {
|
|
|
290
291
|
options: { offset: [0, 15] }
|
|
291
292
|
}
|
|
292
293
|
]
|
|
293
|
-
},
|
|
294
|
+
}, $ = (U) => {
|
|
294
295
|
(U.key === "Enter" || U.key === " ") && (U.preventDefault(), i(t));
|
|
295
296
|
}, z = () => {
|
|
296
297
|
a(!0);
|
|
297
|
-
},
|
|
298
|
+
}, N = () => {
|
|
298
299
|
a(!1);
|
|
299
300
|
};
|
|
300
301
|
return /* @__PURE__ */ g(
|
|
@@ -303,10 +304,10 @@ function St({ bubble: t, isDraggable: o, onClick: i = () => {
|
|
|
303
304
|
"aria-label": `${C} - ${p}`,
|
|
304
305
|
className: "bubble",
|
|
305
306
|
id: `bubble-${h}`,
|
|
306
|
-
onBlur:
|
|
307
|
+
onBlur: N,
|
|
307
308
|
onClick: () => i(t),
|
|
308
309
|
onFocus: z,
|
|
309
|
-
onKeyDown:
|
|
310
|
+
onKeyDown: $,
|
|
310
311
|
onMouseEnter: () => a(!0),
|
|
311
312
|
onMouseLeave: () => a(!1),
|
|
312
313
|
role: "button",
|
|
@@ -328,50 +329,50 @@ function St({ bubble: t, isDraggable: o, onClick: i = () => {
|
|
|
328
329
|
stroke-opacity: 0.8;
|
|
329
330
|
}
|
|
330
331
|
` }),
|
|
331
|
-
/* @__PURE__ */ e(Ke, { open: s, slotProps: { popper: M }, title: I, children: /* @__PURE__ */ e("circle", { fill: d, id: `circle-${h}`, r:
|
|
332
|
-
/* @__PURE__ */ e("svg", { x: A, y: v, children: /* @__PURE__ */ e(
|
|
333
|
-
|
|
332
|
+
/* @__PURE__ */ e(Ke, { open: s, slotProps: { popper: M }, title: I, children: /* @__PURE__ */ e("circle", { fill: d, id: `circle-${h}`, r: f }) }),
|
|
333
|
+
/* @__PURE__ */ e("svg", { x: A, y: v, children: /* @__PURE__ */ e(P, { name: u, size: x, sx: { fill: m } }) }),
|
|
334
|
+
f > G && /* @__PURE__ */ e(
|
|
334
335
|
y,
|
|
335
336
|
{
|
|
336
337
|
bold: !0,
|
|
337
338
|
component: "text",
|
|
338
339
|
id: `budget-category-${h}`,
|
|
339
340
|
sx: { fill: m },
|
|
340
|
-
variant: "
|
|
341
|
+
variant: "Small",
|
|
341
342
|
y: 4,
|
|
342
343
|
children: C
|
|
343
344
|
}
|
|
344
345
|
),
|
|
345
|
-
|
|
346
|
+
f > ue && /* @__PURE__ */ e(
|
|
346
347
|
y,
|
|
347
348
|
{
|
|
348
349
|
bold: !0,
|
|
349
350
|
component: "text",
|
|
350
351
|
id: `budget-description-${h}-1`,
|
|
351
352
|
sx: { fill: m },
|
|
352
|
-
variant: "
|
|
353
|
-
y:
|
|
354
|
-
children:
|
|
353
|
+
variant: "Body",
|
|
354
|
+
y: f <= G ? 12 : 24,
|
|
355
|
+
children: f <= G ? p.split(" ")[0] : p
|
|
355
356
|
}
|
|
356
357
|
),
|
|
357
|
-
|
|
358
|
+
f <= G && f > ue && /* @__PURE__ */ e(
|
|
358
359
|
y,
|
|
359
360
|
{
|
|
360
361
|
component: "text",
|
|
361
362
|
id: `budget-description-${h}-2`,
|
|
362
363
|
sx: { fill: m },
|
|
363
|
-
variant: "
|
|
364
|
+
variant: "XSmall",
|
|
364
365
|
y: 28,
|
|
365
366
|
children: p.split(" ")[1]
|
|
366
367
|
}
|
|
367
368
|
),
|
|
368
|
-
/* @__PURE__ */ e(
|
|
369
|
+
/* @__PURE__ */ e(St, { bubble: l })
|
|
369
370
|
]
|
|
370
371
|
},
|
|
371
372
|
h
|
|
372
373
|
);
|
|
373
374
|
}
|
|
374
|
-
const
|
|
375
|
+
const vt = ({
|
|
375
376
|
height: t,
|
|
376
377
|
width: o,
|
|
377
378
|
isDraggable: i = !1,
|
|
@@ -379,11 +380,11 @@ const xt = ({
|
|
|
379
380
|
}
|
|
380
381
|
}) => {
|
|
381
382
|
const [a, n] = c.useState([]), r = c.useRef(null), l = c.useRef(!1), { detailedBudgets: d } = D(), m = c.useCallback(() => {
|
|
382
|
-
const u = r.current, C =
|
|
383
|
+
const u = r.current, C = ft(d), h = C.nodes();
|
|
383
384
|
if (u) {
|
|
384
|
-
const p = u.nodes(),
|
|
385
|
+
const p = u.nodes(), f = new Map(p.map((S) => [S.guid, S]));
|
|
385
386
|
h.forEach((S) => {
|
|
386
|
-
const _ =
|
|
387
|
+
const _ = f.get(S.guid);
|
|
387
388
|
_ && Object.assign(S, {
|
|
388
389
|
vx: _.vx,
|
|
389
390
|
vy: _.vy,
|
|
@@ -401,20 +402,20 @@ const xt = ({
|
|
|
401
402
|
}, []), c.useEffect(() => {
|
|
402
403
|
const u = r.current;
|
|
403
404
|
if (!u) return;
|
|
404
|
-
const C = u.nodes(), h = o > 0 && o < 450 || t > 0 && t < 300, p =
|
|
405
|
-
u.nodes(p),
|
|
406
|
-
|
|
405
|
+
const C = u.nodes(), h = o > 0 && o < 450 || t > 0 && t < 300, p = _t(C, d, h, t, o);
|
|
406
|
+
u.nodes(p), ht(u, t, o), i && setTimeout(() => {
|
|
407
|
+
pt(u);
|
|
407
408
|
}, 0), n([...p]);
|
|
408
|
-
}, [t, o, i, d]), /* @__PURE__ */ e("svg", { height: t, style: { overflow: "visible" }, width: Math.abs(o), children: a.map((u) => /* @__PURE__ */ e(
|
|
409
|
-
},
|
|
409
|
+
}, [t, o, i, d]), /* @__PURE__ */ e("svg", { height: t, style: { overflow: "visible" }, width: Math.abs(o), children: a.map((u) => /* @__PURE__ */ e(xt, { bubble: u, isDraggable: i, onClick: s }, u.guid)) });
|
|
410
|
+
}, At = E(vt), Tt = ({
|
|
410
411
|
isMiniWidget: t = !1,
|
|
411
412
|
onConnectAccountsClick: o,
|
|
412
413
|
createBudgetOnClick: i
|
|
413
414
|
}) => {
|
|
414
|
-
const { recalculateBudgets: s } = D(), { spendCategories: a } =
|
|
415
|
-
|
|
416
|
-
const { data:
|
|
417
|
-
|
|
415
|
+
const { recalculateBudgets: s } = D(), { spendCategories: a } = K(), { budgets: n } = w(), { availableWidth: r } = ne(), { isMobile: l } = ie(r), d = t && l, [m, u] = c.useState(!1), [C, h] = c.useState(!1), [p, f] = c.useState(!1), S = c.useMemo(() => [...a.filter((b) => b.totalAverageAmount > 0)], [a]), _ = async () => {
|
|
416
|
+
f(!0);
|
|
417
|
+
const { data: b, isSuccess: A } = await s(S);
|
|
418
|
+
f(!1), A ? (b.length === 0 && h(!0), u(!1)) : u(!0);
|
|
418
419
|
};
|
|
419
420
|
return p ? /* @__PURE__ */ e(he, {}) : m ? /* @__PURE__ */ e(
|
|
420
421
|
de,
|
|
@@ -422,8 +423,8 @@ const xt = ({
|
|
|
422
423
|
header: n.autogenerate_budgets_error_header,
|
|
423
424
|
icon: "error",
|
|
424
425
|
iconColor: "#4D4D4D",
|
|
425
|
-
onClick: (
|
|
426
|
-
|
|
426
|
+
onClick: (b) => {
|
|
427
|
+
b === "primary" ? _() : i();
|
|
427
428
|
},
|
|
428
429
|
primaryButton: n.autogenerate_budgets_error_primary_button,
|
|
429
430
|
secondaryButton: n.zero_state_generate_budgets_secondary_button,
|
|
@@ -437,14 +438,14 @@ const xt = ({
|
|
|
437
438
|
...d && { justifyContent: "center", mt: 0, svg: { height: 32, width: 32 } }
|
|
438
439
|
}
|
|
439
440
|
}
|
|
440
|
-
) : /* @__PURE__ */ e(
|
|
441
|
+
) : /* @__PURE__ */ e(Ge, { children: C ? /* @__PURE__ */ e(
|
|
441
442
|
de,
|
|
442
443
|
{
|
|
443
444
|
header: n.zero_state_generate_budgets_header,
|
|
444
445
|
icon: "error",
|
|
445
446
|
iconColor: "#4D4D4D",
|
|
446
|
-
onClick: (
|
|
447
|
-
|
|
447
|
+
onClick: (b) => {
|
|
448
|
+
b === "primary" ? o() : i();
|
|
448
449
|
},
|
|
449
450
|
primaryButton: n.zero_state_generate_budgets_primary_button,
|
|
450
451
|
secondaryButton: n.zero_state_generate_budgets_secondary_button,
|
|
@@ -468,8 +469,8 @@ const xt = ({
|
|
|
468
469
|
header: n.create_budgets_title,
|
|
469
470
|
icon: "bubble_chart",
|
|
470
471
|
iconColor: "#1A1A1A",
|
|
471
|
-
onClick: (
|
|
472
|
-
|
|
472
|
+
onClick: (b) => {
|
|
473
|
+
b === "primary" ? _() : i();
|
|
473
474
|
},
|
|
474
475
|
primaryButton: n.empty_state_primary_button,
|
|
475
476
|
secondaryButton: t ? void 0 : n.empty_state_secondary_button,
|
|
@@ -498,9 +499,9 @@ const xt = ({
|
|
|
498
499
|
shouldShowZeroState: a,
|
|
499
500
|
unavailableWidth: n = 24
|
|
500
501
|
}) => {
|
|
501
|
-
const { onEvent: r } =
|
|
502
|
-
l(
|
|
503
|
-
budget_category:
|
|
502
|
+
const { onEvent: r } = X(), { setSelectedBudget: l } = D(), { isInitialized: d } = oe(), { accounts: m } = w(), { availableWidth: u } = ne(), { isMobile: C } = ie(), [h, p] = c.useState(!1), f = c.useMemo(() => u - n, [u]), S = (b) => {
|
|
503
|
+
l(b), r(k.BUDGETS_CLICK_BUDGET_CATEGORY, {
|
|
504
|
+
budget_category: b.category.name,
|
|
504
505
|
click_type: "bubble"
|
|
505
506
|
});
|
|
506
507
|
}, _ = () => {
|
|
@@ -513,19 +514,19 @@ const xt = ({
|
|
|
513
514
|
sx: { alignSelf: "center", ...s && { height: "100%" } },
|
|
514
515
|
children: [
|
|
515
516
|
a || !d ? /* @__PURE__ */ e(
|
|
516
|
-
|
|
517
|
+
Tt,
|
|
517
518
|
{
|
|
518
519
|
createBudgetOnClick: t,
|
|
519
520
|
isMiniWidget: s,
|
|
520
521
|
onConnectAccountsClick: _
|
|
521
522
|
}
|
|
522
523
|
) : /* @__PURE__ */ e(
|
|
523
|
-
|
|
524
|
+
At,
|
|
524
525
|
{
|
|
525
526
|
height: o,
|
|
526
527
|
isDraggable: i,
|
|
527
528
|
onClick: S,
|
|
528
|
-
width:
|
|
529
|
+
width: f
|
|
529
530
|
}
|
|
530
531
|
),
|
|
531
532
|
/* @__PURE__ */ e(
|
|
@@ -540,7 +541,7 @@ const xt = ({
|
|
|
540
541
|
}
|
|
541
542
|
);
|
|
542
543
|
}
|
|
543
|
-
),
|
|
544
|
+
), wt = ({
|
|
544
545
|
budgetsCopy: t,
|
|
545
546
|
difference: o,
|
|
546
547
|
handleAddClick: i,
|
|
@@ -569,8 +570,8 @@ const xt = ({
|
|
|
569
570
|
/* @__PURE__ */ e(y, { children: o < 0 ? t.overspent_in_budgets : t.left_in_budgets })
|
|
570
571
|
] })
|
|
571
572
|
] });
|
|
572
|
-
},
|
|
573
|
-
const o =
|
|
573
|
+
}, Dt = (t) => {
|
|
574
|
+
const o = ee(), { onEvent: i } = X(), { visibleAccounts: s } = pe(), { detailedBudgets: a, isDataLoaded: n, loadBudgetData: r, setTheme: l } = D(), { budgets: d, common: m } = w(), { isInitialized: u, selectedAccounts: C, setSelectedAccounts: h } = oe(), { reloadCategoryTotals: p } = K(), f = Ye(), S = a.length === 0, [_, b] = c.useState(!1);
|
|
574
575
|
c.useEffect(() => {
|
|
575
576
|
n || r().finally();
|
|
576
577
|
}, []), c.useEffect(() => {
|
|
@@ -580,15 +581,15 @@ const xt = ({
|
|
|
580
581
|
}, [s]), c.useEffect(() => {
|
|
581
582
|
u && !n && p(
|
|
582
583
|
C,
|
|
583
|
-
|
|
584
|
+
J(/* @__PURE__ */ new Date()),
|
|
584
585
|
me(/* @__PURE__ */ new Date())
|
|
585
586
|
).finally();
|
|
586
587
|
}, [u, C]);
|
|
587
588
|
const A = () => {
|
|
588
|
-
|
|
589
|
-
}, v = () =>
|
|
589
|
+
b(!0), i(k.BUDGETS_CLICK_ADD);
|
|
590
|
+
}, v = () => b(!1);
|
|
590
591
|
return !u || !n ? /* @__PURE__ */ e(he, {}) : /* @__PURE__ */ g(
|
|
591
|
-
|
|
592
|
+
Ze,
|
|
592
593
|
{
|
|
593
594
|
contentStyles: { height: "calc(100% - 66px)", ":last-child": { pb: 0 } },
|
|
594
595
|
primaryCtaLabel: S ? d.get_started_cta : d.details_cta,
|
|
@@ -597,10 +598,10 @@ const xt = ({
|
|
|
597
598
|
...t,
|
|
598
599
|
children: [
|
|
599
600
|
/* @__PURE__ */ e(
|
|
600
|
-
|
|
601
|
+
wt,
|
|
601
602
|
{
|
|
602
603
|
budgetsCopy: d,
|
|
603
|
-
difference:
|
|
604
|
+
difference: f,
|
|
604
605
|
handleAddClick: A,
|
|
605
606
|
shouldShowZeroState: S
|
|
606
607
|
}
|
|
@@ -610,7 +611,7 @@ const xt = ({
|
|
|
610
611
|
{
|
|
611
612
|
ariaLabelClose: m.close_aria,
|
|
612
613
|
isOpen: _,
|
|
613
|
-
onClose: () =>
|
|
614
|
+
onClose: () => b(!1),
|
|
614
615
|
title: d.add_new_title,
|
|
615
616
|
children: /* @__PURE__ */ e(Ie, { onRecalculateBudgets: v })
|
|
616
617
|
}
|
|
@@ -618,7 +619,7 @@ const xt = ({
|
|
|
618
619
|
]
|
|
619
620
|
}
|
|
620
621
|
);
|
|
621
|
-
},
|
|
622
|
+
}, kn = E(Dt), ke = ({ budget: t }) => {
|
|
622
623
|
const {
|
|
623
624
|
amount: o,
|
|
624
625
|
budgetColors: { background: i },
|
|
@@ -632,20 +633,20 @@ const xt = ({
|
|
|
632
633
|
percentage: `${n}%`
|
|
633
634
|
}
|
|
634
635
|
];
|
|
635
|
-
return /* @__PURE__ */ e(
|
|
636
|
-
/* @__PURE__ */ e(
|
|
636
|
+
return /* @__PURE__ */ e(fe, { sx: { mt: 24, mx: 24 }, children: /* @__PURE__ */ e(be, { children: /* @__PURE__ */ g(B, { alignItems: "center", gap: 16, children: [
|
|
637
|
+
/* @__PURE__ */ e(H, { categoryGuid: a, size: 56 }),
|
|
637
638
|
/* @__PURE__ */ e(je, { children: `${T(r, "0,0")} / ${T(o, "0,0")}` }),
|
|
638
|
-
/* @__PURE__ */ e(y, { bold: !0, variant: "
|
|
639
|
+
/* @__PURE__ */ e(y, { bold: !0, variant: "XSmall", children: s }),
|
|
639
640
|
/* @__PURE__ */ e(ge, { data: l, height: 10 })
|
|
640
641
|
] }) }) });
|
|
641
|
-
},
|
|
642
|
+
}, Et = E(() => {
|
|
642
643
|
const { budgets: t } = w();
|
|
643
644
|
return /* @__PURE__ */ g(B, { alignItems: "center", gap: 12, height: "auto", mb: 24, mt: 24, children: [
|
|
644
|
-
/* @__PURE__ */ e(
|
|
645
|
-
/* @__PURE__ */ e(y, { bold: !0, color: "secondary", variant: "
|
|
646
|
-
/* @__PURE__ */ e(y, { color: "text.secondary", variant: "
|
|
645
|
+
/* @__PURE__ */ e(P, { color: "secondary", name: "bubble_chart", sx: { fontSize: 32 } }),
|
|
646
|
+
/* @__PURE__ */ e(y, { bold: !0, color: "secondary", variant: "Small", children: t.zero_state_no_sub_budgets }),
|
|
647
|
+
/* @__PURE__ */ e(y, { color: "text.secondary", variant: "XSmall", children: t.zero_state_no_sub_budgets_description })
|
|
647
648
|
] });
|
|
648
|
-
}),
|
|
649
|
+
}), It = E(({ budget: t }) => {
|
|
649
650
|
const {
|
|
650
651
|
amount: o,
|
|
651
652
|
budgetColors: { background: i },
|
|
@@ -653,39 +654,39 @@ const xt = ({
|
|
|
653
654
|
percentage: a,
|
|
654
655
|
transaction_total: n
|
|
655
656
|
} = t, { setSelectedSubBudget: r } = D();
|
|
656
|
-
return /* @__PURE__ */ e(
|
|
657
|
-
/* @__PURE__ */ e(se, { sx: { mb: -8, mr: 16 }, children: /* @__PURE__ */ e(De, { color: i, percent: a, size: 40, children: /* @__PURE__ */ e(
|
|
657
|
+
return /* @__PURE__ */ e(V, { children: /* @__PURE__ */ g(Y, { onClick: () => r(t), children: [
|
|
658
|
+
/* @__PURE__ */ e(se, { sx: { mb: -8, mr: 16 }, children: /* @__PURE__ */ e(De, { color: i, percent: a, size: 40, children: /* @__PURE__ */ e(H, { categoryGuid: s.parent_guid, variant: "basic" }) }) }),
|
|
658
659
|
/* @__PURE__ */ e(
|
|
659
|
-
|
|
660
|
+
Z,
|
|
660
661
|
{
|
|
661
|
-
primary: /* @__PURE__ */ e(B, { component: "span", direction: "row", justifyContent: "space-between", children: /* @__PURE__ */ e(y, { bold: !0, variant: "
|
|
662
|
-
secondary: /* @__PURE__ */ e(B, { component: "span", direction: "row", justifyContent: "space-between", children: /* @__PURE__ */ e(y, { fontWeight: 400, variant: "
|
|
662
|
+
primary: /* @__PURE__ */ e(B, { component: "span", direction: "row", justifyContent: "space-between", children: /* @__PURE__ */ e(y, { bold: !0, variant: "Body", children: t.category.name }) }),
|
|
663
|
+
secondary: /* @__PURE__ */ e(B, { component: "span", direction: "row", justifyContent: "space-between", children: /* @__PURE__ */ e(y, { fontWeight: 400, variant: "Body", children: `
|
|
663
664
|
${T(n, "0,0")} /
|
|
664
665
|
${T(o, "0,0")}
|
|
665
666
|
` }) })
|
|
666
667
|
}
|
|
667
668
|
)
|
|
668
669
|
] }) });
|
|
669
|
-
}),
|
|
670
|
-
const { budgets: i, common: s } = w(), { setExpandedGuid: a, setOnSelect: n } =
|
|
670
|
+
}), Ot = E(({ category: t, parentBudget: o }) => {
|
|
671
|
+
const { budgets: i, common: s } = w(), { setExpandedGuid: a, setOnSelect: n } = ot(), { addBudget: r } = D(), [l, d] = c.useState(!1), [m, u] = c.useState(!1), [C, h] = c.useState(""), [p, f] = c.useState(void 0);
|
|
671
672
|
c.useEffect(() => {
|
|
672
|
-
n((
|
|
673
|
-
const A = t.subCategories.find((v) => v.guid ===
|
|
674
|
-
A && (
|
|
673
|
+
n((b) => {
|
|
674
|
+
const A = t.subCategories.find((v) => v.guid === b);
|
|
675
|
+
A && (f(A), h(`${A.currentAmount === 0 ? "" : A.currentAmount}`), u(!0));
|
|
675
676
|
});
|
|
676
677
|
}, []);
|
|
677
678
|
const S = () => {
|
|
678
679
|
a(t.guid), d(!0);
|
|
679
680
|
}, _ = async () => {
|
|
680
|
-
p && Number(C) > 0 && (await r(p, Number(C), o.guid), u(!1), d(!1),
|
|
681
|
+
p && Number(C) > 0 && (await r(p, Number(C), o.guid), u(!1), d(!1), f(void 0));
|
|
681
682
|
};
|
|
682
683
|
return /* @__PURE__ */ g(F, { children: [
|
|
683
|
-
/* @__PURE__ */ e(
|
|
684
|
+
/* @__PURE__ */ e(V, { disableGutters: !0, disablePadding: !0, sx: { bgcolor: "background.paper" }, children: /* @__PURE__ */ e(Y, { onClick: S, children: /* @__PURE__ */ e(Z, { children: /* @__PURE__ */ g(B, { alignItems: "center", direction: "row", justifyContent: "space-between", children: [
|
|
684
685
|
/* @__PURE__ */ g(B, { alignItems: "center", direction: "row", gap: 8, children: [
|
|
685
|
-
/* @__PURE__ */ e(
|
|
686
|
-
/* @__PURE__ */ e(y, { bold: !0, sx: { color: "primary.light" }, variant: "
|
|
686
|
+
/* @__PURE__ */ e(P, { fill: !0, name: "add_box", size: 24, sx: { color: "primary.light" } }),
|
|
687
|
+
/* @__PURE__ */ e(y, { bold: !0, sx: { color: "primary.light" }, variant: "Body", children: i.add_sub_budget_button })
|
|
687
688
|
] }),
|
|
688
|
-
/* @__PURE__ */ e(
|
|
689
|
+
/* @__PURE__ */ e(P, { name: "chevron_right", size: 24, sx: { color: "primary.light" } })
|
|
689
690
|
] }) }) }) }),
|
|
690
691
|
/* @__PURE__ */ e(re, {}),
|
|
691
692
|
/* @__PURE__ */ e(
|
|
@@ -695,7 +696,7 @@ const xt = ({
|
|
|
695
696
|
isOpen: l,
|
|
696
697
|
onClose: () => d(!1),
|
|
697
698
|
title: i.add_sub_budget_title,
|
|
698
|
-
children: /* @__PURE__ */ e(
|
|
699
|
+
children: /* @__PURE__ */ e(W, { children: /* @__PURE__ */ e(at, { category: t, subCategories: t.subCategories }) })
|
|
699
700
|
}
|
|
700
701
|
),
|
|
701
702
|
/* @__PURE__ */ e(
|
|
@@ -718,21 +719,21 @@ const xt = ({
|
|
|
718
719
|
}
|
|
719
720
|
)
|
|
720
721
|
] });
|
|
721
|
-
}),
|
|
722
|
-
const { category: o, subBudgets: i } = t, { budgets: s, common: a } = w(), { deleteBudget: n, selectedSubBudget: r, setSelectedSubBudget: l, updateBudget: d } = D(), { filter: m, setFilter: u } = ae(), [C, h] = c.useState(!1), [p,
|
|
722
|
+
}), Mt = E(({ budget: t }) => {
|
|
723
|
+
const { category: o, subBudgets: i } = t, { budgets: s, common: a } = w(), { deleteBudget: n, selectedSubBudget: r, setSelectedSubBudget: l, updateBudget: d } = D(), { filter: m, setFilter: u } = ae(), [C, h] = c.useState(!1), [p, f] = c.useState(!1), [S, _] = c.useState("");
|
|
723
724
|
c.useEffect(() => {
|
|
724
725
|
r && (_(`${r.amount}`), u({
|
|
725
726
|
...m,
|
|
726
727
|
custom: (x) => x.category_guid === r.category_guid
|
|
727
728
|
}));
|
|
728
729
|
}, [r]);
|
|
729
|
-
const
|
|
730
|
+
const b = async () => {
|
|
730
731
|
r && await d({
|
|
731
732
|
...r,
|
|
732
733
|
amount: Number(S)
|
|
733
734
|
});
|
|
734
735
|
}, A = async () => {
|
|
735
|
-
r && await n(r.guid),
|
|
736
|
+
r && await n(r.guid), f(!1), v();
|
|
736
737
|
}, v = () => {
|
|
737
738
|
u({
|
|
738
739
|
...m,
|
|
@@ -740,12 +741,12 @@ const xt = ({
|
|
|
740
741
|
}), l(void 0);
|
|
741
742
|
};
|
|
742
743
|
return /* @__PURE__ */ g(c.Fragment, { children: [
|
|
743
|
-
/* @__PURE__ */ g(
|
|
744
|
-
i.length === 0 ? /* @__PURE__ */ e(
|
|
745
|
-
/* @__PURE__ */ e(
|
|
744
|
+
/* @__PURE__ */ g(W, { sx: { bgcolor: "background.paper" }, children: [
|
|
745
|
+
i.length === 0 ? /* @__PURE__ */ e(Et, {}) : i.map((x) => /* @__PURE__ */ g(c.Fragment, { children: [
|
|
746
|
+
/* @__PURE__ */ e(It, { budget: x }),
|
|
746
747
|
/* @__PURE__ */ e(re, {})
|
|
747
748
|
] }, x.guid)),
|
|
748
|
-
/* @__PURE__ */ e(
|
|
749
|
+
/* @__PURE__ */ e(Ot, { category: o, parentBudget: t })
|
|
749
750
|
] }),
|
|
750
751
|
/* @__PURE__ */ e(
|
|
751
752
|
L,
|
|
@@ -754,7 +755,7 @@ const xt = ({
|
|
|
754
755
|
isOpen: !!r,
|
|
755
756
|
onClose: v,
|
|
756
757
|
onPrimaryAction: () => h(!0),
|
|
757
|
-
onSecondaryAction: () =>
|
|
758
|
+
onSecondaryAction: () => f(!0),
|
|
758
759
|
primaryText: s.details_edit_button,
|
|
759
760
|
secondaryText: s.details_delete_button,
|
|
760
761
|
title: s.details_title,
|
|
@@ -772,7 +773,7 @@ const xt = ({
|
|
|
772
773
|
disablePrimaryButton: Number(S) <= 0,
|
|
773
774
|
isOpen: C,
|
|
774
775
|
onClose: () => h(!1),
|
|
775
|
-
onPrimaryAction:
|
|
776
|
+
onPrimaryAction: b,
|
|
776
777
|
primaryText: s.edit_save_button,
|
|
777
778
|
children: /* @__PURE__ */ e(
|
|
778
779
|
ce,
|
|
@@ -789,36 +790,36 @@ const xt = ({
|
|
|
789
790
|
{
|
|
790
791
|
copy: { close_aria: a.close_aria, title: s.delete_title },
|
|
791
792
|
isOpen: p,
|
|
792
|
-
onClose: () =>
|
|
793
|
+
onClose: () => f(!1),
|
|
793
794
|
onPrimaryAction: A,
|
|
794
795
|
primaryColor: "error",
|
|
795
796
|
primaryText: "Delete",
|
|
796
797
|
secondaryColor: "secondary",
|
|
797
|
-
children: /* @__PURE__ */ e(y, { variant: "
|
|
798
|
+
children: /* @__PURE__ */ e(y, { variant: "Paragraph", children: R(s.delete_description, r.category.name) })
|
|
798
799
|
}
|
|
799
800
|
)
|
|
800
801
|
] })
|
|
801
802
|
] });
|
|
802
|
-
}),
|
|
803
|
+
}), Rt = E(({ budget: t }) => {
|
|
803
804
|
const { is_mobile_webview: o } = ze(), { setAlert: i } = D(), { budgets: s, common: a, transactions: n } = w(), { isDesktop: r, isSmallTablet: l, isTablet: d } = ie(), {
|
|
804
805
|
sortedTransactions: m,
|
|
805
806
|
sortedTransactionsWithSplits: u,
|
|
806
807
|
tags: C
|
|
807
|
-
} = ae(), [h, p] = c.useState(0), [
|
|
808
|
-
() => m.find((x) => x.guid ===
|
|
809
|
-
[
|
|
810
|
-
),
|
|
808
|
+
} = ae(), [h, p] = c.useState(0), [f, S] = c.useState(""), _ = c.useMemo(
|
|
809
|
+
() => m.find((x) => x.guid === f),
|
|
810
|
+
[f, m]
|
|
811
|
+
), b = (x, I) => {
|
|
811
812
|
p(I);
|
|
812
813
|
}, A = () => {
|
|
813
|
-
|
|
814
|
+
tt(u, C), i(s.alert_csv_downloaded);
|
|
814
815
|
}, v = m.length > 0 && !o && (r || d && !l);
|
|
815
816
|
return /* @__PURE__ */ g(B, { gap: 24, children: [
|
|
816
817
|
/* @__PURE__ */ e(ke, { budget: t }),
|
|
817
818
|
/* @__PURE__ */ g(B, { children: [
|
|
818
819
|
/* @__PURE__ */ g(
|
|
819
|
-
|
|
820
|
+
et,
|
|
820
821
|
{
|
|
821
|
-
onChange:
|
|
822
|
+
onChange: b,
|
|
822
823
|
sx: { width: "100%" },
|
|
823
824
|
textColor: "primary",
|
|
824
825
|
value: h,
|
|
@@ -834,14 +835,14 @@ const xt = ({
|
|
|
834
835
|
Te,
|
|
835
836
|
{
|
|
836
837
|
onClick: A,
|
|
837
|
-
startIcon: /* @__PURE__ */ e(
|
|
838
|
+
startIcon: /* @__PURE__ */ e(P, { name: "ios_share" }),
|
|
838
839
|
variant: "text",
|
|
839
840
|
children: n.export_csv_btn
|
|
840
841
|
}
|
|
841
842
|
) }),
|
|
842
843
|
/* @__PURE__ */ e(we, { height: "100%", onClick: S })
|
|
843
844
|
] }),
|
|
844
|
-
h === 1 && /* @__PURE__ */ e(
|
|
845
|
+
h === 1 && /* @__PURE__ */ e(Mt, { budget: t }),
|
|
845
846
|
/* @__PURE__ */ e(
|
|
846
847
|
L,
|
|
847
848
|
{
|
|
@@ -849,12 +850,12 @@ const xt = ({
|
|
|
849
850
|
isOpen: !!_,
|
|
850
851
|
onClose: () => S(""),
|
|
851
852
|
title: s.details_transaction_drawer,
|
|
852
|
-
children: _ && /* @__PURE__ */ e(
|
|
853
|
+
children: _ && /* @__PURE__ */ e(nt, { transaction: _ })
|
|
853
854
|
}
|
|
854
855
|
)
|
|
855
856
|
] })
|
|
856
857
|
] });
|
|
857
|
-
}),
|
|
858
|
+
}), kt = E(() => {
|
|
858
859
|
const { selectedAccountGuids: t } = oe(), { budgets: o, common: i } = w(), {
|
|
859
860
|
dateRange: s,
|
|
860
861
|
deleteBudget: a,
|
|
@@ -863,7 +864,7 @@ const xt = ({
|
|
|
863
864
|
setAlert: l,
|
|
864
865
|
setSelectedBudget: d,
|
|
865
866
|
updateBudget: m
|
|
866
|
-
} = D(), { setFilter: u } = ae(), [C, h] = c.useState(!1), [p,
|
|
867
|
+
} = D(), { setFilter: u } = ae(), [C, h] = c.useState(!1), [p, f] = c.useState(!1), [S, _] = c.useState(!1), [b, A] = c.useState("");
|
|
867
868
|
c.useEffect(() => {
|
|
868
869
|
n && !r && (A(`${n.amount}`), h(!0), u({
|
|
869
870
|
accounts: t,
|
|
@@ -875,8 +876,8 @@ const xt = ({
|
|
|
875
876
|
const v = async () => {
|
|
876
877
|
n && (await m({
|
|
877
878
|
...n,
|
|
878
|
-
amount: Number(
|
|
879
|
-
percentage: n.category.totalAmount / Number(
|
|
879
|
+
amount: Number(b),
|
|
880
|
+
percentage: n.category.totalAmount / Number(b) * 100
|
|
880
881
|
}), l(R(o.alert_budget_updated, n.category.name)));
|
|
881
882
|
}, x = async () => {
|
|
882
883
|
n && (await a(n.guid), l(R(o.alert_budget_deleted, n.category.name))), _(!1), I();
|
|
@@ -893,28 +894,28 @@ const xt = ({
|
|
|
893
894
|
ariaLabelClose: i.close_aria,
|
|
894
895
|
isOpen: C,
|
|
895
896
|
onClose: I,
|
|
896
|
-
onPrimaryAction: () =>
|
|
897
|
+
onPrimaryAction: () => f(!0),
|
|
897
898
|
onSecondaryAction: () => _(!0),
|
|
898
899
|
primaryText: o.details_edit_button,
|
|
899
900
|
secondaryColor: "error",
|
|
900
901
|
secondaryText: o.details_delete_button,
|
|
901
902
|
title: o.details_title,
|
|
902
|
-
children: /* @__PURE__ */ e(
|
|
903
|
+
children: /* @__PURE__ */ e(Rt, { budget: n })
|
|
903
904
|
}
|
|
904
905
|
),
|
|
905
906
|
/* @__PURE__ */ e(
|
|
906
907
|
j,
|
|
907
908
|
{
|
|
908
909
|
copy: { close_aria: i.close_aria, title: o.details_edit_title },
|
|
909
|
-
disablePrimaryButton: Number(
|
|
910
|
+
disablePrimaryButton: Number(b) <= 0,
|
|
910
911
|
isOpen: p,
|
|
911
|
-
onClose: () =>
|
|
912
|
+
onClose: () => f(!1),
|
|
912
913
|
onPrimaryAction: v,
|
|
913
914
|
primaryText: o.edit_save_button,
|
|
914
915
|
children: /* @__PURE__ */ e(
|
|
915
916
|
ce,
|
|
916
917
|
{
|
|
917
|
-
amount:
|
|
918
|
+
amount: b,
|
|
918
919
|
categoryName: n.category.name,
|
|
919
920
|
onAmountChanged: A
|
|
920
921
|
}
|
|
@@ -931,11 +932,11 @@ const xt = ({
|
|
|
931
932
|
primaryColor: "error",
|
|
932
933
|
primaryText: o.details_delete_button,
|
|
933
934
|
secondaryColor: "secondary",
|
|
934
|
-
children: /* @__PURE__ */ e(y, { variant: "
|
|
935
|
+
children: /* @__PURE__ */ e(y, { variant: "Paragraph", children: R(o.delete_description, n.category.name) })
|
|
935
936
|
}
|
|
936
937
|
)
|
|
937
938
|
] });
|
|
938
|
-
}),
|
|
939
|
+
}), Lt = ({ budget: t, onClick: o }) => {
|
|
939
940
|
const {
|
|
940
941
|
amount: i,
|
|
941
942
|
budgetColors: { background: s, description: a },
|
|
@@ -945,42 +946,42 @@ const xt = ({
|
|
|
945
946
|
subBudgets: d,
|
|
946
947
|
transaction_total: m
|
|
947
948
|
} = t;
|
|
948
|
-
return /* @__PURE__ */ e(
|
|
949
|
-
/* @__PURE__ */ e(se, { sx: { mb: -8, mr: 16 }, children: /* @__PURE__ */ e(De, { color: s, percent: l, size: 40, children: /* @__PURE__ */ e(
|
|
949
|
+
return /* @__PURE__ */ e(V, { children: /* @__PURE__ */ g(Y, { onClick: () => o?.(t), children: [
|
|
950
|
+
/* @__PURE__ */ e(se, { sx: { mb: -8, mr: 16 }, children: /* @__PURE__ */ e(De, { color: s, percent: l, size: 40, children: /* @__PURE__ */ e(H, { categoryGuid: n, variant: "basic" }) }) }),
|
|
950
951
|
/* @__PURE__ */ e(
|
|
951
|
-
|
|
952
|
+
Z,
|
|
952
953
|
{
|
|
953
954
|
primary: /* @__PURE__ */ g(B, { component: "span", direction: "row", justifyContent: "space-between", children: [
|
|
954
|
-
/* @__PURE__ */ e(y, { bold: !0, variant: "
|
|
955
|
-
/* @__PURE__ */ e(y, { fontWeight: 400, variant: "
|
|
955
|
+
/* @__PURE__ */ e(y, { bold: !0, variant: "Body", children: t.category.name }),
|
|
956
|
+
/* @__PURE__ */ e(y, { fontWeight: 400, variant: "Body", children: `
|
|
956
957
|
${T(m, "0,0")} /
|
|
957
958
|
${T(i, "0,0")}
|
|
958
959
|
` })
|
|
959
960
|
] }),
|
|
960
961
|
secondary: /* @__PURE__ */ g(B, { component: "span", direction: "row", justifyContent: "space-between", children: [
|
|
961
|
-
/* @__PURE__ */ e(y, { variant: "
|
|
962
|
-
/* @__PURE__ */ e(y, { bold: l > 100, color: a, variant: "
|
|
962
|
+
/* @__PURE__ */ e(y, { variant: "XSmall", children: `${d.length} Sub-budgets` }),
|
|
963
|
+
/* @__PURE__ */ e(y, { bold: l > 100, color: a, variant: "XSmall", children: r })
|
|
963
964
|
] })
|
|
964
965
|
}
|
|
965
966
|
)
|
|
966
967
|
] }) });
|
|
967
|
-
},
|
|
968
|
-
const { onEvent: t } =
|
|
968
|
+
}, $t = E(() => {
|
|
969
|
+
const { onEvent: t } = X(), { budgets: o } = w(), { detailedBudgets: i, setSelectedBudget: s } = D(), a = (n) => {
|
|
969
970
|
s(n), t(k.BUDGETS_CLICK_BUDGET_CATEGORY, {
|
|
970
971
|
budget_category: n.category.name,
|
|
971
972
|
click_type: "list"
|
|
972
973
|
});
|
|
973
974
|
};
|
|
974
|
-
return /* @__PURE__ */ g(
|
|
975
|
+
return /* @__PURE__ */ g(fe, { elevation: 2, children: [
|
|
975
976
|
/* @__PURE__ */ e(Ee, { sx: { pb: 8, pl: 24 }, title: /* @__PURE__ */ e(Ae, { children: o.budget_categories_title }) }),
|
|
976
|
-
/* @__PURE__ */ e(
|
|
977
|
-
/* @__PURE__ */ e(
|
|
977
|
+
/* @__PURE__ */ e(be, { sx: { p: 0, ":last-child": { p: 0 } }, children: /* @__PURE__ */ e(W, { children: i.map((n) => /* @__PURE__ */ g(c.Fragment, { children: [
|
|
978
|
+
/* @__PURE__ */ e(Lt, { budget: n, onClick: a }),
|
|
978
979
|
/* @__PURE__ */ e(re, {})
|
|
979
980
|
] }, n.guid)) }) })
|
|
980
981
|
] });
|
|
981
982
|
}), Nt = E(() => {
|
|
982
|
-
const t =
|
|
983
|
-
const v = l.reduce((
|
|
983
|
+
const t = ee(), { onEvent: o } = X(), { visibleAccounts: i } = pe(), { budgets: s, common: a, recurring: n } = w(), { incomeCategories: r, spendCategories: l } = K(), { detailedBudgets: d, totalBudgeted: m } = D(), { incomeTotal: u } = te(), { setFilter: C } = ae(), [h, p] = c.useState(!1), [f, S] = c.useMemo(() => {
|
|
984
|
+
const v = l.reduce(($, z) => $ + z.totalAmount, 0);
|
|
984
985
|
let x = v / m;
|
|
985
986
|
x > 1 && (x = 1);
|
|
986
987
|
let I = t.palette.success.main;
|
|
@@ -992,9 +993,9 @@ const xt = ({
|
|
|
992
993
|
}
|
|
993
994
|
];
|
|
994
995
|
return [v, M];
|
|
995
|
-
}, [d, l]), [_,
|
|
996
|
+
}, [d, l]), [_, b] = c.useMemo(() => {
|
|
996
997
|
const v = Math.abs(
|
|
997
|
-
r.reduce((M,
|
|
998
|
+
r.reduce((M, $) => M + $.totalAmount, 0)
|
|
998
999
|
);
|
|
999
1000
|
let x = v / u;
|
|
1000
1001
|
x > 1 && (x = 1);
|
|
@@ -1009,38 +1010,38 @@ const xt = ({
|
|
|
1009
1010
|
C({
|
|
1010
1011
|
accounts: i.map((v) => v.guid),
|
|
1011
1012
|
dateRange: {
|
|
1012
|
-
start:
|
|
1013
|
+
start: rt(/* @__PURE__ */ new Date(), 90),
|
|
1013
1014
|
end: /* @__PURE__ */ new Date()
|
|
1014
1015
|
}
|
|
1015
1016
|
}), p(!0), o(k.BUDGETS_CLICK_EDIT_INCOME);
|
|
1016
1017
|
};
|
|
1017
|
-
return /* @__PURE__ */ g(
|
|
1018
|
+
return /* @__PURE__ */ g(fe, { elevation: 2, sx: { overflow: "visible" }, children: [
|
|
1018
1019
|
/* @__PURE__ */ e(Ee, { sx: { pb: 8, pl: 24 }, title: /* @__PURE__ */ e(Ae, { children: s.overview_title }) }),
|
|
1019
|
-
/* @__PURE__ */ e(
|
|
1020
|
+
/* @__PURE__ */ e(be, { sx: { pt: 12, px: 24 }, children: /* @__PURE__ */ g(B, { gap: 24, children: [
|
|
1020
1021
|
/* @__PURE__ */ g(B, { gap: 8, children: [
|
|
1021
|
-
/* @__PURE__ */ e(y, { bold: !0, sx: { mb: 8 }, variant: "
|
|
1022
|
+
/* @__PURE__ */ e(y, { bold: !0, sx: { mb: 8 }, variant: "Body", children: s.spending_title }),
|
|
1022
1023
|
/* @__PURE__ */ e(ge, { data: S, height: 16 }),
|
|
1023
|
-
/* @__PURE__ */ e(y, { variant: "
|
|
1024
|
+
/* @__PURE__ */ e(y, { variant: "Small", children: R(
|
|
1024
1025
|
s.spending_description,
|
|
1025
|
-
T(
|
|
1026
|
+
T(f, "0,0"),
|
|
1026
1027
|
T(m, "0,0")
|
|
1027
1028
|
) })
|
|
1028
1029
|
] }),
|
|
1029
1030
|
/* @__PURE__ */ g(B, { gap: 8, children: [
|
|
1030
1031
|
/* @__PURE__ */ g(B, { alignItems: "center", direction: "row", gap: 4, mb: -4, children: [
|
|
1031
|
-
/* @__PURE__ */ e(y, { bold: !0, variant: "
|
|
1032
|
+
/* @__PURE__ */ e(y, { bold: !0, variant: "Body", children: s.income_title }),
|
|
1032
1033
|
/* @__PURE__ */ e(
|
|
1033
|
-
|
|
1034
|
+
st,
|
|
1034
1035
|
{
|
|
1035
1036
|
"aria-label": n.manage_income,
|
|
1036
1037
|
onClick: A,
|
|
1037
1038
|
sx: { p: 0 },
|
|
1038
|
-
children: /* @__PURE__ */ e(
|
|
1039
|
+
children: /* @__PURE__ */ e(P, { color: "primary", name: "edit" })
|
|
1039
1040
|
}
|
|
1040
1041
|
)
|
|
1041
1042
|
] }),
|
|
1042
|
-
/* @__PURE__ */ e(ge, { data:
|
|
1043
|
-
/* @__PURE__ */ e(y, { variant: "
|
|
1043
|
+
/* @__PURE__ */ e(ge, { data: b, height: 16 }),
|
|
1044
|
+
/* @__PURE__ */ e(y, { variant: "Small", children: R(
|
|
1044
1045
|
s.income_description,
|
|
1045
1046
|
T(_, "0,0"),
|
|
1046
1047
|
T(u, "0,0")
|
|
@@ -1054,40 +1055,40 @@ const xt = ({
|
|
|
1054
1055
|
isOpen: h,
|
|
1055
1056
|
onClose: () => p(!1),
|
|
1056
1057
|
title: n.manage_income,
|
|
1057
|
-
children: /* @__PURE__ */ e(
|
|
1058
|
+
children: /* @__PURE__ */ e(it, { forOverview: !0 })
|
|
1058
1059
|
}
|
|
1059
1060
|
)
|
|
1060
1061
|
] });
|
|
1061
|
-
}), ve = 480,
|
|
1062
|
-
const i =
|
|
1062
|
+
}), ve = 480, Ln = E(({ onBackClick: t, sx: o }) => {
|
|
1063
|
+
const i = ee(), { onEvent: s } = X(), { onLoad: a } = Ue(), { visibleAccounts: n } = pe(), { budgets: r, common: l } = w(), { isInitialized: d, selectedAccounts: m, setDisplayedDate: u, setSelectedAccounts: C } = oe(), {
|
|
1063
1064
|
alert: h,
|
|
1064
1065
|
dateRange: p,
|
|
1065
|
-
isDataLoaded:
|
|
1066
|
+
isDataLoaded: f,
|
|
1066
1067
|
loadBudgetData: S,
|
|
1067
1068
|
setDateRange: _,
|
|
1068
|
-
setAlert:
|
|
1069
|
+
setAlert: b,
|
|
1069
1070
|
setTheme: A,
|
|
1070
1071
|
detailedBudgets: v
|
|
1071
|
-
} = D(), { setDateRange: x } = te(), { reloadCategoryTotals: I } =
|
|
1072
|
+
} = D(), { setDateRange: x } = te(), { reloadCategoryTotals: I } = K(), { isSmallTablet: M, isMobile: $, isSmallMobile: z } = ie(), N = M || $ || z, [U, le] = c.useState(!1);
|
|
1072
1073
|
c.useEffect(() => {
|
|
1073
1074
|
A(i), S().finally(() => {
|
|
1074
1075
|
s(k.BUDGETS_VIEW), a?.("BubbleBudgetsWidget");
|
|
1075
1076
|
});
|
|
1076
|
-
}, []), c.useEffect(() => (C(n), _({ start:
|
|
1077
|
-
_({ start:
|
|
1077
|
+
}, []), c.useEffect(() => (C(n), _({ start: J(q()), end: me(q()) }), () => {
|
|
1078
|
+
_({ start: J(q()), end: me(q()) });
|
|
1078
1079
|
}), [n]), c.useEffect(() => {
|
|
1079
1080
|
d && (u(p.start, p.end), I(m, p.start, p.end).finally(), x(p));
|
|
1080
1081
|
}, [d, m, p]);
|
|
1081
1082
|
const Le = (_e) => {
|
|
1082
1083
|
_({ start: _e[0] || /* @__PURE__ */ new Date(), end: _e[1] || /* @__PURE__ */ new Date() });
|
|
1083
|
-
},
|
|
1084
|
+
}, $e = () => {
|
|
1084
1085
|
s(k.BUDGETS_CLICK_FILTER);
|
|
1085
1086
|
}, ye = () => {
|
|
1086
1087
|
le(!0), s(k.BUDGETS_CLICK_ADD);
|
|
1087
|
-
},
|
|
1088
|
+
}, Ne = () => {
|
|
1088
1089
|
le(!1);
|
|
1089
|
-
},
|
|
1090
|
-
return !d || !
|
|
1090
|
+
}, Pe = qe(p.end, J(/* @__PURE__ */ new Date()));
|
|
1091
|
+
return !d || !f ? /* @__PURE__ */ e(he, {}) : /* @__PURE__ */ g(
|
|
1091
1092
|
Ve,
|
|
1092
1093
|
{
|
|
1093
1094
|
accountOptions: n,
|
|
@@ -1100,10 +1101,10 @@ const xt = ({
|
|
|
1100
1101
|
],
|
|
1101
1102
|
calendarActions: {
|
|
1102
1103
|
onRangeChanged: Le,
|
|
1103
|
-
shouldDisableNext:
|
|
1104
|
+
shouldDisableNext: Pe,
|
|
1104
1105
|
shouldDisablePicker: !0
|
|
1105
1106
|
},
|
|
1106
|
-
onAccountsFilterClick:
|
|
1107
|
+
onAccountsFilterClick: $e,
|
|
1107
1108
|
onBackClick: t,
|
|
1108
1109
|
sx: o,
|
|
1109
1110
|
title: r.budgets_title,
|
|
@@ -1111,19 +1112,19 @@ const xt = ({
|
|
|
1111
1112
|
/* @__PURE__ */ g(
|
|
1112
1113
|
B,
|
|
1113
1114
|
{
|
|
1114
|
-
direction:
|
|
1115
|
+
direction: N ? "column" : "row",
|
|
1115
1116
|
height: "100%",
|
|
1116
1117
|
sx: { justifyContent: "center" },
|
|
1117
1118
|
width: "100%",
|
|
1118
1119
|
children: [
|
|
1119
|
-
/* @__PURE__ */ e(B, { height:
|
|
1120
|
+
/* @__PURE__ */ e(B, { height: N ? 450 : "calc(100dvh - 150px)", children: /* @__PURE__ */ e(
|
|
1120
1121
|
Re,
|
|
1121
1122
|
{
|
|
1122
1123
|
createBudgetOnClick: ye,
|
|
1123
|
-
height:
|
|
1124
|
+
height: N ? 450 : 800,
|
|
1124
1125
|
isDraggable: !0,
|
|
1125
1126
|
shouldShowZeroState: v.length === 0,
|
|
1126
|
-
unavailableWidth:
|
|
1127
|
+
unavailableWidth: N ? 0 : ve
|
|
1127
1128
|
}
|
|
1128
1129
|
) }),
|
|
1129
1130
|
v.length !== 0 && /* @__PURE__ */ g(
|
|
@@ -1132,17 +1133,17 @@ const xt = ({
|
|
|
1132
1133
|
gap: 24,
|
|
1133
1134
|
height: "100%",
|
|
1134
1135
|
sx: { mr: 24, mt: 48 },
|
|
1135
|
-
width:
|
|
1136
|
+
width: N ? "100%" : ve,
|
|
1136
1137
|
children: [
|
|
1137
1138
|
/* @__PURE__ */ e(Nt, {}),
|
|
1138
|
-
/* @__PURE__ */ e(
|
|
1139
|
+
/* @__PURE__ */ e($t, {})
|
|
1139
1140
|
]
|
|
1140
1141
|
}
|
|
1141
1142
|
)
|
|
1142
1143
|
]
|
|
1143
1144
|
}
|
|
1144
1145
|
),
|
|
1145
|
-
/* @__PURE__ */ e(
|
|
1146
|
+
/* @__PURE__ */ e(kt, {}),
|
|
1146
1147
|
/* @__PURE__ */ e(
|
|
1147
1148
|
L,
|
|
1148
1149
|
{
|
|
@@ -1150,23 +1151,23 @@ const xt = ({
|
|
|
1150
1151
|
isOpen: U,
|
|
1151
1152
|
onClose: () => le(!1),
|
|
1152
1153
|
title: r.add_new_title,
|
|
1153
|
-
children: /* @__PURE__ */ e(Ie, { onRecalculateBudgets:
|
|
1154
|
+
children: /* @__PURE__ */ e(Ie, { onRecalculateBudgets: Ne })
|
|
1154
1155
|
}
|
|
1155
1156
|
),
|
|
1156
1157
|
/* @__PURE__ */ e(
|
|
1157
|
-
|
|
1158
|
+
Qe,
|
|
1158
1159
|
{
|
|
1159
1160
|
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
1160
1161
|
autoHideDuration: 3500,
|
|
1161
1162
|
onClose: () => {
|
|
1162
|
-
|
|
1163
|
+
b("");
|
|
1163
1164
|
},
|
|
1164
1165
|
open: !!h,
|
|
1165
1166
|
children: /* @__PURE__ */ e(
|
|
1166
|
-
|
|
1167
|
+
Je,
|
|
1167
1168
|
{
|
|
1168
1169
|
onClose: () => {
|
|
1169
|
-
|
|
1170
|
+
b("");
|
|
1170
1171
|
},
|
|
1171
1172
|
severity: "success",
|
|
1172
1173
|
variant: "filled",
|
|
@@ -1180,6 +1181,6 @@ const xt = ({
|
|
|
1180
1181
|
);
|
|
1181
1182
|
});
|
|
1182
1183
|
export {
|
|
1183
|
-
|
|
1184
|
-
|
|
1184
|
+
kn as BubbleBudgetsMiniWidget,
|
|
1185
|
+
Ln as BubbleBudgetsWidget
|
|
1185
1186
|
};
|