@mx-cartographer/experiences 7.12.16 → 7.13.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 +8 -0
- package/dist/{AccountDetailsHeader-DkBNsLsI.mjs → AccountDetailsHeader-D9gbTbUt.mjs} +31 -31
- package/dist/{AccountFields-DeZSQOuM.mjs → AccountFields-CxqONzjY.mjs} +7 -7
- package/dist/AccountListItem-LcJVJysf.mjs +90 -0
- package/dist/{AccountStore-Brc0MNSF.mjs → AccountStore-BNlTuxWN.mjs} +12 -6
- package/dist/Accounts-o7ohkngR.mjs +27 -0
- package/dist/{BudgetUtil--_QXyszn.mjs → BudgetUtil-CLhRnCoX.mjs} +75 -75
- package/dist/{CashflowStore-DEdQJU5i.mjs → CashflowStore-D3MKniVM.mjs} +11 -11
- package/dist/{CategorySelectorDrawer-wfUTIbLR.mjs → CategorySelectorDrawer-DYHNBd2v.mjs} +31 -31
- package/dist/{ConnectDrawer-CioFo6Wy.mjs → ConnectDrawer-C0wjwcJt.mjs} +1 -1
- package/dist/{ConnectionsDrawer-DqhSaMrJ.mjs → ConnectionsDrawer-IA7vnv1J.mjs} +1 -1
- package/dist/{Drawer-DV4NTsFg.mjs → Drawer-Bbe4AMB1.mjs} +5 -5
- package/dist/{GoalStore-0bd-Upkc.mjs → GoalStore-DB58sKTC.mjs} +8 -8
- package/dist/HeaderCell-P8w6CmfO.mjs +6 -0
- package/dist/{Help-CDu1Fvrc.mjs → Help-CpLfyvPv.mjs} +24 -24
- package/dist/{LineChart-B1qbKR8q.mjs → LineChart-DBSlRSEm.mjs} +102 -102
- package/dist/{ManageIncome-BnWWjP2g.mjs → ManageIncome-QvqN555q.mjs} +62 -62
- package/dist/{MiniWidgetContainer-Cu72GNsE.mjs → MiniWidgetContainer-xLWSV6Wz.mjs} +13 -13
- package/dist/{NetWorthStore-DP78lgZ0.mjs → NetWorthStore-BqZ44-4M.mjs} +1 -1
- package/dist/{NotificationSettings-BH2yOwTB.mjs → NotificationSettings-DU3vJh5J.mjs} +139 -139
- package/dist/{OriginalBalanceAction-BM6rT_Cn.mjs → OriginalBalanceAction-DjpvVVFz.mjs} +6 -6
- package/dist/{RecurringSettings-BmXtfHtK.mjs → RecurringSettings-DdOcok2e.mjs} +2 -2
- package/dist/{RecurringTransactions-CYNpe_RS.mjs → RecurringTransactions-BOzBqfdg.mjs} +11 -11
- package/dist/{RecurringTransactionsStore-BD-OfVZ-.mjs → RecurringTransactionsStore-CcfPS0d3.mjs} +1 -1
- package/dist/{SpendingLegend-Bq6aXMNh.mjs → SpendingLegend-CJjjTGBw.mjs} +76 -76
- package/dist/{StatusIndicator-BV3oFzxo.mjs → StatusIndicator-CIKUOoN_.mjs} +53 -53
- package/dist/{TransactionDetails-DYlTwSDt.mjs → TransactionDetails-BpcWeXNU.mjs} +350 -350
- package/dist/{WidgetContainer-B0ncgABX.mjs → WidgetContainer-D_iaToWJ.mjs} +12 -12
- package/dist/accounts/index.es.js +107 -107
- package/dist/accounts/utils/Accounts.d.ts +1 -1
- package/dist/analytics/index.es.js +18 -18
- package/dist/budgets/index.es.js +182 -182
- package/dist/cashflow/index.es.js +223 -223
- package/dist/categories/index.es.js +1 -1
- package/dist/common/index.es.js +54 -64
- package/dist/dashboard/index.es.js +9 -9
- package/dist/debts/index.es.js +469 -469
- package/dist/finstrong/index.es.js +68 -68
- package/dist/goals/index.es.js +437 -437
- package/dist/help/index.es.js +2 -2
- package/dist/insights/index.es.js +159 -159
- package/dist/investments/index.es.js +292 -292
- package/dist/merchants/index.es.js +12 -12
- package/dist/networth/index.es.js +175 -168
- package/dist/notifications/index.es.js +13 -13
- package/dist/recurringtransactions/index.es.js +69 -69
- package/dist/settings/index.es.js +187 -187
- package/dist/spending/index.es.js +58 -58
- package/dist/transactions/index.es.js +70 -70
- package/dist/trends/index.es.js +15 -15
- package/package.json +1 -1
- package/dist/AccountListItem-BIVhda6q.mjs +0 -90
- package/dist/Accounts-M-LTzStv.mjs +0 -27
- package/dist/HeaderCell-DjuifqHJ.mjs +0 -6
package/dist/budgets/index.es.js
CHANGED
|
@@ -10,9 +10,9 @@ import xe from "@mui/material/Snackbar";
|
|
|
10
10
|
import v from "@mui/material/Stack";
|
|
11
11
|
import ie from "@mui/material/styles/useTheme";
|
|
12
12
|
import K from "@mui/material/Box";
|
|
13
|
-
import
|
|
13
|
+
import Y from "@mui/material/List";
|
|
14
14
|
import { Text as B, CategoryIcon as W, Icon as j, H3 as Re } from "@mxenabled/mxui";
|
|
15
|
-
import { u as D, m as E, i as ce, l as
|
|
15
|
+
import { u as D, m as E, i as ce, l as X, p as le, a as Le, g as Z, b as q, h as J, d as Ne } from "../hooks-BxkfR-Ff.mjs";
|
|
16
16
|
import { f as T } from "../NumberFormatting-QCaNwbjv.mjs";
|
|
17
17
|
import ke from "@mui/material/Button";
|
|
18
18
|
import de from "@mui/material/Divider";
|
|
@@ -21,53 +21,53 @@ import ue from "@mui/material/ListItemAvatar";
|
|
|
21
21
|
import ee from "@mui/material/ListItemButton";
|
|
22
22
|
import te from "@mui/material/ListItemText";
|
|
23
23
|
import { b as N } from "../Localization-CPkpIwIx.mjs";
|
|
24
|
-
import { D as $ } from "../Drawer-
|
|
25
|
-
import
|
|
26
|
-
import { C as
|
|
24
|
+
import { D as $ } from "../Drawer-Bbe4AMB1.mjs";
|
|
25
|
+
import Ye from "@mui/material/ListItemSecondaryAction";
|
|
26
|
+
import { C as Xe } from "../CurrencyInput-DuMktPu3.mjs";
|
|
27
27
|
import { D as U } from "../Dialog-Ck34yr-d.mjs";
|
|
28
|
-
import { C as Ze } from "../ConnectionsDrawer-
|
|
28
|
+
import { C as Ze } from "../ConnectionsDrawer-IA7vnv1J.mjs";
|
|
29
29
|
import * as R from "d3";
|
|
30
30
|
import qe from "@mui/material/Tooltip";
|
|
31
31
|
import { useTheme as $e, alpha as Je } from "@mui/material/styles";
|
|
32
32
|
import { u as me } from "../useScreenSize-B6JyS_Lj.mjs";
|
|
33
33
|
import { L as ge } from "../Loader-D3rjKx72.mjs";
|
|
34
34
|
import { E as ye } from "../EmptyState-DHAkGsjk.mjs";
|
|
35
|
-
import { A as
|
|
35
|
+
import { A as G } from "../Analytics-BYItVAe-.mjs";
|
|
36
36
|
import De from "@mui/material/Tab";
|
|
37
37
|
import Qe from "@mui/material/Tabs";
|
|
38
38
|
import { e as et } from "../exportTransactionsToCSV-CdTF_RqL.mjs";
|
|
39
|
-
import { T as Ae } from "../StatusIndicator-
|
|
40
|
-
import { T as tt, c as ot } from "../TransactionDetails-
|
|
39
|
+
import { T as Ae } from "../StatusIndicator-CIKUOoN_.mjs";
|
|
40
|
+
import { T as tt, c as ot } from "../TransactionDetails-BpcWeXNU.mjs";
|
|
41
41
|
import ve from "@mui/material/Card";
|
|
42
42
|
import Te from "@mui/material/CardContent";
|
|
43
43
|
import { S as Be } from "../StatusBar-BK_uYHAB.mjs";
|
|
44
|
-
import { S as
|
|
45
|
-
import { u as nt, b as at } from "../CategorySelectorDrawer-
|
|
46
|
-
import
|
|
44
|
+
import { S as Ge } from "../SingleSegmentDonut-BgbLgwHi.mjs";
|
|
45
|
+
import { u as nt, b as at } from "../CategorySelectorDrawer-DYHNBd2v.mjs";
|
|
46
|
+
import Pe from "@mui/material/CardHeader";
|
|
47
47
|
import { subDays as rt } from "date-fns/subDays";
|
|
48
48
|
import st from "@mui/material/IconButton";
|
|
49
|
-
import { M as it } from "../ManageIncome-
|
|
49
|
+
import { M as it } from "../ManageIncome-QvqN555q.mjs";
|
|
50
50
|
import { u as je } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
|
|
51
|
-
import { W as ct } from "../WidgetContainer-
|
|
52
|
-
import { u as lt, g as dt, C as ut } from "../BudgetUtil
|
|
53
|
-
import { M as mt } from "../MiniWidgetContainer-
|
|
51
|
+
import { W as ct } from "../WidgetContainer-D_iaToWJ.mjs";
|
|
52
|
+
import { u as lt, g as dt, C as ut } from "../BudgetUtil-CLhRnCoX.mjs";
|
|
53
|
+
import { M as mt } from "../MiniWidgetContainer-xLWSV6Wz.mjs";
|
|
54
54
|
import { b as Ee } from "../CategoryUtil-BVixr0d5.mjs";
|
|
55
55
|
const gt = w(() => {
|
|
56
56
|
const { budgets: t } = D(), { totalBudgeted: n } = E(), { incomeTotal: i } = ce(), s = i - n;
|
|
57
57
|
return /* @__PURE__ */ m(v, { direction: "row", justifyContent: "center", my: 16, spacing: 20, children: [
|
|
58
58
|
/* @__PURE__ */ m(v, { alignItems: "center", children: [
|
|
59
|
-
/* @__PURE__ */ e(B, { bold: !0, variant: "
|
|
60
|
-
/* @__PURE__ */ e(B, { color: "secondary", variant: "
|
|
59
|
+
/* @__PURE__ */ e(B, { bold: !0, variant: "body1", children: T(i, "0,0") }),
|
|
60
|
+
/* @__PURE__ */ e(B, { color: "secondary", variant: "body2", children: t.projected_income })
|
|
61
61
|
] }),
|
|
62
|
-
/* @__PURE__ */ e(B, { bold: !0, justifyContent: "center", variant: "
|
|
62
|
+
/* @__PURE__ */ e(B, { bold: !0, justifyContent: "center", variant: "body1", children: "-" }),
|
|
63
63
|
/* @__PURE__ */ m(v, { alignItems: "center", children: [
|
|
64
|
-
/* @__PURE__ */ e(B, { bold: !0, variant: "
|
|
65
|
-
/* @__PURE__ */ e(B, { color: "secondary", variant: "
|
|
64
|
+
/* @__PURE__ */ e(B, { bold: !0, variant: "body1", children: T(n, "0,0") }),
|
|
65
|
+
/* @__PURE__ */ e(B, { color: "secondary", variant: "body2", children: t.budgeted })
|
|
66
66
|
] }),
|
|
67
|
-
/* @__PURE__ */ e(B, { bold: !0, justifyContent: "center", variant: "
|
|
67
|
+
/* @__PURE__ */ e(B, { bold: !0, justifyContent: "center", variant: "body1", children: "=" }),
|
|
68
68
|
/* @__PURE__ */ m(v, { alignItems: "center", children: [
|
|
69
|
-
/* @__PURE__ */ e(B, { bold: !0, variant: "
|
|
70
|
-
/* @__PURE__ */ e(B, { color: "secondary", variant: "
|
|
69
|
+
/* @__PURE__ */ e(B, { bold: !0, variant: "body1", children: T(s, "0,0") }),
|
|
70
|
+
/* @__PURE__ */ e(B, { color: "secondary", variant: "body2", children: t.remaining })
|
|
71
71
|
] })
|
|
72
72
|
] });
|
|
73
73
|
}), pt = w(
|
|
@@ -85,12 +85,12 @@ const gt = w(() => {
|
|
|
85
85
|
] }, t.guid);
|
|
86
86
|
}
|
|
87
87
|
), ht = ({ onRecalculateBudgets: t }) => {
|
|
88
|
-
const { budgets: n, common: i } = D(), { spendCategories: s } =
|
|
88
|
+
const { budgets: n, common: i } = D(), { spendCategories: s } = X(), { recalculateBudgets: a, setAlert: r } = E(), [o, c] = l.useState(!1), g = s.filter((u) => u.totalAverageAmount > 0), d = async () => {
|
|
89
89
|
await a(g), c(!1), r(n.alert_recalculated_budgets), t?.();
|
|
90
90
|
};
|
|
91
91
|
return /* @__PURE__ */ m(l.Fragment, { children: [
|
|
92
92
|
/* @__PURE__ */ e(ke, { onClick: () => c(!0), sx: { mt: 24, mx: 24 }, variant: "text", children: n.recalculate_button }),
|
|
93
|
-
/* @__PURE__ */ e(B, { sx: { mx: 24, my: 16, textAlign: "center", whiteSpace: "wrap" }, variant: "
|
|
93
|
+
/* @__PURE__ */ e(B, { sx: { mx: 24, my: 16, textAlign: "center", whiteSpace: "wrap" }, variant: "subtitle1", children: n.recalculate_help }),
|
|
94
94
|
/* @__PURE__ */ e(
|
|
95
95
|
$,
|
|
96
96
|
{
|
|
@@ -101,10 +101,10 @@ const gt = w(() => {
|
|
|
101
101
|
title: n.recalculate_title,
|
|
102
102
|
children: /* @__PURE__ */ m(v, { children: [
|
|
103
103
|
/* @__PURE__ */ m(v, { mx: 24, my: 16, children: [
|
|
104
|
-
/* @__PURE__ */ e(B, { bold: !0, variant: "
|
|
105
|
-
/* @__PURE__ */ e(B, { variant: "
|
|
104
|
+
/* @__PURE__ */ e(B, { bold: !0, variant: "body1", children: n.recalculate_description_top }),
|
|
105
|
+
/* @__PURE__ */ e(B, { variant: "subtitle2", children: n.recalculate_description_bottom })
|
|
106
106
|
] }),
|
|
107
|
-
/* @__PURE__ */ e(K, { bgcolor: "background.paper", children: /* @__PURE__ */ e(
|
|
107
|
+
/* @__PURE__ */ e(K, { bgcolor: "background.paper", children: /* @__PURE__ */ e(Y, { children: g.map((u) => /* @__PURE__ */ e(pt, { category: u }, u.guid)) }) })
|
|
108
108
|
] })
|
|
109
109
|
}
|
|
110
110
|
)
|
|
@@ -124,18 +124,18 @@ const gt = w(() => {
|
|
|
124
124
|
/* @__PURE__ */ e(B, { children: N(s.add_description_bottom, n) })
|
|
125
125
|
] }),
|
|
126
126
|
/* @__PURE__ */ e(
|
|
127
|
-
|
|
127
|
+
Xe,
|
|
128
128
|
{
|
|
129
129
|
amount: t,
|
|
130
130
|
autoFocus: !0,
|
|
131
131
|
label: s.add_label,
|
|
132
132
|
minAmount: 0,
|
|
133
133
|
setAmount: i,
|
|
134
|
-
sx: { ".MuiTypography-
|
|
134
|
+
sx: { ".MuiTypography-body1": { p: 0 } }
|
|
135
135
|
}
|
|
136
136
|
)
|
|
137
137
|
] });
|
|
138
|
-
},
|
|
138
|
+
}, bt = w(({ category: t, onAddBudget: n }) => {
|
|
139
139
|
const { budgets: i, common: s } = D(), [a, r] = l.useState(!1), [o, c] = l.useState(
|
|
140
140
|
`${t.totalAmount === 0 ? "" : t.totalAmount}`
|
|
141
141
|
);
|
|
@@ -149,7 +149,7 @@ const gt = w(() => {
|
|
|
149
149
|
secondary: T(t.totalAmount, "0,0")
|
|
150
150
|
}
|
|
151
151
|
),
|
|
152
|
-
/* @__PURE__ */ e(
|
|
152
|
+
/* @__PURE__ */ e(Ye, { children: /* @__PURE__ */ e(j, { name: "add", size: 20 }) })
|
|
153
153
|
] }) }, t.guid),
|
|
154
154
|
/* @__PURE__ */ e(
|
|
155
155
|
U,
|
|
@@ -170,8 +170,8 @@ const gt = w(() => {
|
|
|
170
170
|
};
|
|
171
171
|
return /* @__PURE__ */ m(v, { children: [
|
|
172
172
|
/* @__PURE__ */ e(gt, {}),
|
|
173
|
-
/* @__PURE__ */ e(K, { bgcolor: "background.paper", children: /* @__PURE__ */ e(
|
|
174
|
-
|
|
173
|
+
/* @__PURE__ */ e(K, { bgcolor: "background.paper", children: /* @__PURE__ */ e(Y, { children: r.map((c) => /* @__PURE__ */ e(
|
|
174
|
+
bt,
|
|
175
175
|
{
|
|
176
176
|
category: c,
|
|
177
177
|
onAddBudget: o
|
|
@@ -180,7 +180,7 @@ const gt = w(() => {
|
|
|
180
180
|
)) }) }),
|
|
181
181
|
/* @__PURE__ */ e(ht, { onRecalculateBudgets: n })
|
|
182
182
|
] });
|
|
183
|
-
}), we = 5, Fe = 100, se = 25,
|
|
183
|
+
}), we = 5, Fe = 100, se = 25, ft = (t) => {
|
|
184
184
|
const n = (a) => {
|
|
185
185
|
a.active || t.alphaTarget(0.3).restart(), a.subject.fx = a.subject.x, a.subject.fy = a.subject.y;
|
|
186
186
|
}, i = (a) => {
|
|
@@ -194,8 +194,8 @@ const gt = w(() => {
|
|
|
194
194
|
n < 0 ? n = 0 : n > 1 && (n = 1);
|
|
195
195
|
const i = n * 2 * Math.PI, s = R.interpolate(0, i), a = R.arc().cornerRadius(5).innerRadius(t.radius - we * 2).outerRadius(t.radius - we).startAngle(0).endAngle(0);
|
|
196
196
|
return (r) => (a.endAngle(s(r)), a(t) || "");
|
|
197
|
-
},
|
|
198
|
-
R.selectAll(".bubble").call(
|
|
197
|
+
}, _t = (t) => {
|
|
198
|
+
R.selectAll(".bubble").call(ft(t));
|
|
199
199
|
}, Ie = (t, n, i) => Math.min(Math.max(t, n), i), Ct = (t, n, i) => {
|
|
200
200
|
t.alpha(1).restart().force(
|
|
201
201
|
"x",
|
|
@@ -229,8 +229,8 @@ const gt = w(() => {
|
|
|
229
229
|
const a = Math.PI * se ** 2 * t, r = i < 400 || n < 300, o = r ? 40 : 20, c = Math.max(100, i - o), g = Math.max(100, n - o), d = c * g;
|
|
230
230
|
let u = se;
|
|
231
231
|
if (a < d) {
|
|
232
|
-
const h = Math.sqrt(d / (t * Math.PI)),
|
|
233
|
-
u = Math.min(Fe, h,
|
|
232
|
+
const h = Math.sqrt(d / (t * Math.PI)), _ = Math.min(c, g) / 4;
|
|
233
|
+
u = Math.min(Fe, h, _);
|
|
234
234
|
}
|
|
235
235
|
return r && t <= 3 && (u = Math.min(u, 45)), { minRadius: Math.max(20, u * 0.6), maxRadius: u };
|
|
236
236
|
}, xt = (t, n, i, s, a) => {
|
|
@@ -261,7 +261,7 @@ const gt = w(() => {
|
|
|
261
261
|
style: { fill: n.palette.common.white, fillOpacity: 0.35 }
|
|
262
262
|
}
|
|
263
263
|
) });
|
|
264
|
-
}, Dt = l.memo(Tt), F = 75,
|
|
264
|
+
}, Dt = l.memo(Tt), F = 75, _e = 50;
|
|
265
265
|
function Et({ bubble: t, isDraggable: n, onClick: i = () => {
|
|
266
266
|
} }) {
|
|
267
267
|
const [s, a] = l.useState(!1), r = $e(), { availableWidth: o } = le(), c = l.useMemo(() => {
|
|
@@ -279,16 +279,16 @@ function Et({ bubble: t, isDraggable: n, onClick: i = () => {
|
|
|
279
279
|
budgetColors: { background: g, text: d },
|
|
280
280
|
category: { icon: u, name: p },
|
|
281
281
|
guid: h,
|
|
282
|
-
description:
|
|
283
|
-
radius:
|
|
282
|
+
description: _,
|
|
283
|
+
radius: f,
|
|
284
284
|
x: y,
|
|
285
285
|
y: A
|
|
286
286
|
} = t, x = o < 400 ? -8 : -12;
|
|
287
|
-
let C = x,
|
|
288
|
-
|
|
287
|
+
let C = x, b = x;
|
|
288
|
+
f > F ? (C = -14, b = -45) : f > _e && (b = -32);
|
|
289
289
|
let S = 32;
|
|
290
|
-
|
|
291
|
-
const I = `${t.category.name}: ${
|
|
290
|
+
f <= F && (S = o < 400 ? 16 : 24);
|
|
291
|
+
const I = `${t.category.name}: ${_}`, L = {
|
|
292
292
|
modifiers: [
|
|
293
293
|
{
|
|
294
294
|
name: "offset",
|
|
@@ -305,7 +305,7 @@ function Et({ bubble: t, isDraggable: n, onClick: i = () => {
|
|
|
305
305
|
return /* @__PURE__ */ m(
|
|
306
306
|
"g",
|
|
307
307
|
{
|
|
308
|
-
"aria-label": `${p} - ${
|
|
308
|
+
"aria-label": `${p} - ${_}`,
|
|
309
309
|
className: "bubble",
|
|
310
310
|
id: `bubble-${h}`,
|
|
311
311
|
onBlur: z,
|
|
@@ -333,41 +333,41 @@ function Et({ bubble: t, isDraggable: n, onClick: i = () => {
|
|
|
333
333
|
stroke-opacity: 0.8;
|
|
334
334
|
}
|
|
335
335
|
` }),
|
|
336
|
-
/* @__PURE__ */ e(qe, { open: s, slotProps: { popper: L }, title: I, children: /* @__PURE__ */ e("circle", { fill: g, id: `circle-${h}`, r:
|
|
337
|
-
/* @__PURE__ */ e("svg", { x: C, y:
|
|
338
|
-
|
|
336
|
+
/* @__PURE__ */ e(qe, { open: s, slotProps: { popper: L }, title: I, children: /* @__PURE__ */ e("circle", { fill: g, id: `circle-${h}`, r: f }) }),
|
|
337
|
+
/* @__PURE__ */ e("svg", { x: C, y: b, children: /* @__PURE__ */ e(j, { name: u, size: S, sx: { fill: d } }) }),
|
|
338
|
+
f > F && /* @__PURE__ */ e(
|
|
339
339
|
B,
|
|
340
340
|
{
|
|
341
341
|
bold: !0,
|
|
342
342
|
component: "text",
|
|
343
343
|
id: `budget-category-${h}`,
|
|
344
344
|
sx: { fill: d },
|
|
345
|
-
variant: "
|
|
345
|
+
variant: "body2",
|
|
346
346
|
y: 4,
|
|
347
347
|
children: p
|
|
348
348
|
}
|
|
349
349
|
),
|
|
350
|
-
|
|
350
|
+
f > _e && /* @__PURE__ */ e(
|
|
351
351
|
B,
|
|
352
352
|
{
|
|
353
353
|
bold: !0,
|
|
354
354
|
component: "text",
|
|
355
355
|
id: `budget-description-${h}-1`,
|
|
356
356
|
sx: { fill: d },
|
|
357
|
-
variant: "
|
|
358
|
-
y:
|
|
359
|
-
children:
|
|
357
|
+
variant: "body1",
|
|
358
|
+
y: f <= F ? 12 : 24,
|
|
359
|
+
children: f <= F ? _.split(" ")[0] : _
|
|
360
360
|
}
|
|
361
361
|
),
|
|
362
|
-
|
|
362
|
+
f <= F && f > _e && /* @__PURE__ */ e(
|
|
363
363
|
B,
|
|
364
364
|
{
|
|
365
365
|
component: "text",
|
|
366
366
|
id: `budget-description-${h}-2`,
|
|
367
367
|
sx: { fill: d },
|
|
368
|
-
variant: "
|
|
368
|
+
variant: "caption",
|
|
369
369
|
y: 28,
|
|
370
|
-
children:
|
|
370
|
+
children: _.split(" ")[1]
|
|
371
371
|
}
|
|
372
372
|
),
|
|
373
373
|
/* @__PURE__ */ e(Dt, { bubble: c })
|
|
@@ -386,9 +386,9 @@ const wt = ({
|
|
|
386
386
|
const [a, r] = l.useState([]), o = l.useRef(null), c = l.useRef(!1), { detailedBudgets: g } = E(), d = l.useCallback(() => {
|
|
387
387
|
const u = o.current, p = Bt(g), h = p.nodes();
|
|
388
388
|
if (u) {
|
|
389
|
-
const
|
|
389
|
+
const _ = u.nodes(), f = new Map(_.map((y) => [y.guid, y]));
|
|
390
390
|
h.forEach((y) => {
|
|
391
|
-
const A =
|
|
391
|
+
const A = f.get(y.guid);
|
|
392
392
|
A && Object.assign(y, {
|
|
393
393
|
vx: A.vx,
|
|
394
394
|
vy: A.vy,
|
|
@@ -406,22 +406,22 @@ const wt = ({
|
|
|
406
406
|
}, []), l.useEffect(() => {
|
|
407
407
|
const u = o.current;
|
|
408
408
|
if (!u) return;
|
|
409
|
-
const p = u.nodes(), h = n > 0 && n < 450 || t > 0 && t < 300,
|
|
410
|
-
u.nodes(
|
|
411
|
-
|
|
412
|
-
}, 0), r([...
|
|
409
|
+
const p = u.nodes(), h = n > 0 && n < 450 || t > 0 && t < 300, _ = At(p, g, h, t, n);
|
|
410
|
+
u.nodes(_), Ct(u, t, n), i && setTimeout(() => {
|
|
411
|
+
_t(u);
|
|
412
|
+
}, 0), r([..._]);
|
|
413
413
|
}, [t, n, i, g]), /* @__PURE__ */ e("svg", { height: t, style: { overflow: "visible" }, width: Math.abs(n), children: a.map((u) => /* @__PURE__ */ e(Et, { bubble: u, isDraggable: i, onClick: s }, u.guid)) });
|
|
414
414
|
}, It = w(wt), Ot = ({
|
|
415
415
|
isMiniWidget: t = !1,
|
|
416
416
|
onConnectAccountsClick: n,
|
|
417
417
|
createBudgetOnClick: i
|
|
418
418
|
}) => {
|
|
419
|
-
const { config: s } = Le(), { recalculateBudgets: a } = E(), { spendCategories: r } =
|
|
419
|
+
const { config: s } = Le(), { recalculateBudgets: a } = E(), { spendCategories: r } = X(), { budgets: o } = D(), { availableWidth: c } = le(), { isMobile: g } = me(c), d = t && g, [u, p] = l.useState(!1), [h, _] = l.useState(!1), [f, y] = l.useState(!1), A = l.useMemo(() => [...r.filter((C) => C.totalAverageAmount > 0)], [r]), x = async () => {
|
|
420
420
|
y(!0);
|
|
421
|
-
const { data: C, isSuccess:
|
|
422
|
-
y(!1),
|
|
421
|
+
const { data: C, isSuccess: b } = await a(A);
|
|
422
|
+
y(!1), b ? (C.length === 0 && _(!0), p(!1)) : p(!0);
|
|
423
423
|
};
|
|
424
|
-
return
|
|
424
|
+
return f ? /* @__PURE__ */ e(ge, {}) : u ? /* @__PURE__ */ e(
|
|
425
425
|
ye,
|
|
426
426
|
{
|
|
427
427
|
header: o.autogenerate_budgets_error_header,
|
|
@@ -503,13 +503,13 @@ const wt = ({
|
|
|
503
503
|
shouldShowZeroState: a,
|
|
504
504
|
unavailableWidth: r = 24
|
|
505
505
|
}) => {
|
|
506
|
-
const { onEvent: o } = Z(), { setSelectedBudget: c } = E(), { isInitialized: g } = q(), { accounts: d } = D(), { availableWidth: u } = le(), { isMobile: p } = me(), [h,
|
|
507
|
-
c(x), o(
|
|
506
|
+
const { onEvent: o } = Z(), { setSelectedBudget: c } = E(), { isInitialized: g } = q(), { accounts: d } = D(), { availableWidth: u } = le(), { isMobile: p } = me(), [h, _] = l.useState(!1), f = l.useMemo(() => u - r, [u]), y = (x) => {
|
|
507
|
+
c(x), o(G.BUDGETS_CLICK_BUDGET_CATEGORY, {
|
|
508
508
|
budget_category: x.category.name,
|
|
509
509
|
click_type: "bubble"
|
|
510
510
|
});
|
|
511
511
|
}, A = () => {
|
|
512
|
-
|
|
512
|
+
_(!0), o(G.ACCOUNTS_CLICK_CONNECT);
|
|
513
513
|
};
|
|
514
514
|
return /* @__PURE__ */ m(
|
|
515
515
|
K,
|
|
@@ -530,13 +530,13 @@ const wt = ({
|
|
|
530
530
|
height: n,
|
|
531
531
|
isDraggable: i,
|
|
532
532
|
onClick: y,
|
|
533
|
-
width:
|
|
533
|
+
width: f
|
|
534
534
|
}
|
|
535
535
|
),
|
|
536
536
|
/* @__PURE__ */ e(
|
|
537
537
|
Ze,
|
|
538
538
|
{
|
|
539
|
-
onClose: () =>
|
|
539
|
+
onClose: () => _(!1),
|
|
540
540
|
showConnectionsWidget: h,
|
|
541
541
|
title: d.manage_connections
|
|
542
542
|
}
|
|
@@ -561,16 +561,16 @@ const wt = ({
|
|
|
561
561
|
];
|
|
562
562
|
return /* @__PURE__ */ e(ve, { sx: { mt: 24, mx: 24 }, children: /* @__PURE__ */ e(Te, { children: /* @__PURE__ */ m(v, { alignItems: "center", gap: 16, children: [
|
|
563
563
|
/* @__PURE__ */ e(W, { categoryGuid: a, size: 56 }),
|
|
564
|
-
/* @__PURE__ */ e(B, { variant: "
|
|
565
|
-
/* @__PURE__ */ e(B, { bold: !0, variant: "
|
|
564
|
+
/* @__PURE__ */ e(B, { variant: "h1", children: `${T(o, "0,0")} / ${T(n, "0,0")}` }),
|
|
565
|
+
/* @__PURE__ */ e(B, { bold: !0, variant: "caption", children: s }),
|
|
566
566
|
/* @__PURE__ */ e(Be, { data: c, height: 10 })
|
|
567
567
|
] }) }) });
|
|
568
568
|
}, Mt = w(() => {
|
|
569
569
|
const { budgets: t } = D();
|
|
570
570
|
return /* @__PURE__ */ m(v, { alignItems: "center", gap: 12, height: "auto", mb: 24, mt: 24, children: [
|
|
571
571
|
/* @__PURE__ */ e(j, { color: "action", name: "bubble_chart", sx: { fontSize: 32 } }),
|
|
572
|
-
/* @__PURE__ */ e(B, { bold: !0, color: "text.secondary", variant: "
|
|
573
|
-
/* @__PURE__ */ e(B, { color: "text.secondary", variant: "
|
|
572
|
+
/* @__PURE__ */ e(B, { bold: !0, color: "text.secondary", variant: "body2", children: t.zero_state_no_sub_budgets }),
|
|
573
|
+
/* @__PURE__ */ e(B, { color: "text.secondary", variant: "caption", children: t.zero_state_no_sub_budgets_description })
|
|
574
574
|
] });
|
|
575
575
|
}), Rt = w(({ budget: t }) => {
|
|
576
576
|
const {
|
|
@@ -581,12 +581,12 @@ const wt = ({
|
|
|
581
581
|
transaction_total: r
|
|
582
582
|
} = t, { setSelectedSubBudget: o } = E();
|
|
583
583
|
return /* @__PURE__ */ e(Q, { children: /* @__PURE__ */ m(ee, { onClick: () => o(t), children: [
|
|
584
|
-
/* @__PURE__ */ e(ue, { sx: { mb: -8, mr: 16 }, children: /* @__PURE__ */ e(
|
|
584
|
+
/* @__PURE__ */ e(ue, { sx: { mb: -8, mr: 16 }, children: /* @__PURE__ */ e(Ge, { color: i, percent: a, size: 40, children: /* @__PURE__ */ e(W, { categoryGuid: s.parent_guid, variant: "basic" }) }) }),
|
|
585
585
|
/* @__PURE__ */ e(
|
|
586
586
|
te,
|
|
587
587
|
{
|
|
588
|
-
primary: /* @__PURE__ */ e(v, { component: "span", direction: "row", justifyContent: "space-between", children: /* @__PURE__ */ e(B, { bold: !0, variant: "
|
|
589
|
-
secondary: /* @__PURE__ */ e(v, { component: "span", direction: "row", justifyContent: "space-between", children: /* @__PURE__ */ e(B, { fontWeight: 400, variant: "
|
|
588
|
+
primary: /* @__PURE__ */ e(v, { component: "span", direction: "row", justifyContent: "space-between", children: /* @__PURE__ */ e(B, { bold: !0, variant: "body1", children: t.category.name }) }),
|
|
589
|
+
secondary: /* @__PURE__ */ e(v, { component: "span", direction: "row", justifyContent: "space-between", children: /* @__PURE__ */ e(B, { fontWeight: 400, variant: "body1", children: `
|
|
590
590
|
${T(r, "0,0")} /
|
|
591
591
|
${T(n, "0,0")}
|
|
592
592
|
` }) })
|
|
@@ -594,23 +594,23 @@ const wt = ({
|
|
|
594
594
|
)
|
|
595
595
|
] }) });
|
|
596
596
|
}), Lt = w(({ category: t, parentBudget: n }) => {
|
|
597
|
-
const { budgets: i, common: s } = D(), { setExpandedGuid: a, setOnSelect: r } = nt(), { addBudget: o } = E(), [c, g] = l.useState(!1), [d, u] = l.useState(!1), [p, h] = l.useState(""), [
|
|
597
|
+
const { budgets: i, common: s } = D(), { setExpandedGuid: a, setOnSelect: r } = nt(), { addBudget: o } = E(), [c, g] = l.useState(!1), [d, u] = l.useState(!1), [p, h] = l.useState(""), [_, f] = l.useState(void 0);
|
|
598
598
|
l.useEffect(() => {
|
|
599
599
|
r((x) => {
|
|
600
|
-
const C = t.subCategories.find((
|
|
601
|
-
C && (
|
|
600
|
+
const C = t.subCategories.find((b) => b.guid === x);
|
|
601
|
+
C && (f(C), h(`${C.currentAmount === 0 ? "" : C.currentAmount}`), u(!0));
|
|
602
602
|
});
|
|
603
603
|
}, []);
|
|
604
604
|
const y = () => {
|
|
605
605
|
a(t.guid), g(!0);
|
|
606
606
|
}, A = async () => {
|
|
607
|
-
|
|
607
|
+
_ && Number(p) > 0 && (await o(_, Number(p), n.guid), u(!1), g(!1), f(void 0));
|
|
608
608
|
};
|
|
609
609
|
return /* @__PURE__ */ m(K, { children: [
|
|
610
610
|
/* @__PURE__ */ e(Q, { disableGutters: !0, disablePadding: !0, sx: { bgcolor: "background.paper" }, children: /* @__PURE__ */ e(ee, { onClick: y, children: /* @__PURE__ */ e(te, { children: /* @__PURE__ */ m(v, { alignItems: "center", direction: "row", justifyContent: "space-between", children: [
|
|
611
611
|
/* @__PURE__ */ m(v, { alignItems: "center", direction: "row", gap: 8, children: [
|
|
612
612
|
/* @__PURE__ */ e(j, { fill: !0, name: "add_box", size: 24, sx: { color: "primary.light" } }),
|
|
613
|
-
/* @__PURE__ */ e(B, { bold: !0, sx: { color: "primary.light" }, variant: "
|
|
613
|
+
/* @__PURE__ */ e(B, { bold: !0, sx: { color: "primary.light" }, variant: "body1", children: i.add_sub_budget_button })
|
|
614
614
|
] }),
|
|
615
615
|
/* @__PURE__ */ e(j, { name: "chevron_right", size: 24, sx: { color: "primary.light" } })
|
|
616
616
|
] }) }) }) }),
|
|
@@ -622,7 +622,7 @@ const wt = ({
|
|
|
622
622
|
isOpen: c,
|
|
623
623
|
onClose: () => g(!1),
|
|
624
624
|
title: i.add_sub_budget_title,
|
|
625
|
-
children: /* @__PURE__ */ e(
|
|
625
|
+
children: /* @__PURE__ */ e(Y, { children: /* @__PURE__ */ e(at, { category: t, subCategories: t.subCategories }) })
|
|
626
626
|
}
|
|
627
627
|
),
|
|
628
628
|
/* @__PURE__ */ e(
|
|
@@ -638,7 +638,7 @@ const wt = ({
|
|
|
638
638
|
pe,
|
|
639
639
|
{
|
|
640
640
|
amount: p,
|
|
641
|
-
categoryName:
|
|
641
|
+
categoryName: _?.name || "",
|
|
642
642
|
onAmountChanged: h
|
|
643
643
|
}
|
|
644
644
|
)
|
|
@@ -646,7 +646,7 @@ const wt = ({
|
|
|
646
646
|
)
|
|
647
647
|
] });
|
|
648
648
|
}), Nt = w(({ budget: t }) => {
|
|
649
|
-
const { category: n, subBudgets: i } = t, { budgets: s, common: a } = D(), { deleteBudget: r, selectedSubBudget: o, setSelectedSubBudget: c, updateBudget: g } = E(), { filter: d, setFilter: u } = J(), [p, h] = l.useState(!1), [
|
|
649
|
+
const { category: n, subBudgets: i } = t, { budgets: s, common: a } = D(), { deleteBudget: r, selectedSubBudget: o, setSelectedSubBudget: c, updateBudget: g } = E(), { filter: d, setFilter: u } = J(), [p, h] = l.useState(!1), [_, f] = l.useState(!1), [y, A] = l.useState("");
|
|
650
650
|
l.useEffect(() => {
|
|
651
651
|
o && (A(`${o.amount}`), u({
|
|
652
652
|
...d,
|
|
@@ -659,15 +659,15 @@ const wt = ({
|
|
|
659
659
|
amount: Number(y)
|
|
660
660
|
});
|
|
661
661
|
}, C = async () => {
|
|
662
|
-
o && await r(o.guid),
|
|
663
|
-
},
|
|
662
|
+
o && await r(o.guid), f(!1), b();
|
|
663
|
+
}, b = () => {
|
|
664
664
|
u({
|
|
665
665
|
...d,
|
|
666
666
|
custom: (S) => S.category_guid === t.category_guid || S.top_level_category_guid === t.category_guid
|
|
667
667
|
}), c(void 0);
|
|
668
668
|
};
|
|
669
669
|
return /* @__PURE__ */ m(l.Fragment, { children: [
|
|
670
|
-
/* @__PURE__ */ m(
|
|
670
|
+
/* @__PURE__ */ m(Y, { sx: { bgcolor: "background.paper" }, children: [
|
|
671
671
|
i.length === 0 ? /* @__PURE__ */ e(Mt, {}) : i.map((S) => /* @__PURE__ */ m(l.Fragment, { children: [
|
|
672
672
|
/* @__PURE__ */ e(Rt, { budget: S }),
|
|
673
673
|
/* @__PURE__ */ e(de, {})
|
|
@@ -679,9 +679,9 @@ const wt = ({
|
|
|
679
679
|
{
|
|
680
680
|
ariaLabelClose: a.close_aria,
|
|
681
681
|
isOpen: !!o,
|
|
682
|
-
onClose:
|
|
682
|
+
onClose: b,
|
|
683
683
|
onPrimaryAction: () => h(!0),
|
|
684
|
-
onSecondaryAction: () =>
|
|
684
|
+
onSecondaryAction: () => f(!0),
|
|
685
685
|
primaryText: s.details_edit_button,
|
|
686
686
|
secondaryText: s.details_delete_button,
|
|
687
687
|
title: s.details_title,
|
|
@@ -715,13 +715,13 @@ const wt = ({
|
|
|
715
715
|
U,
|
|
716
716
|
{
|
|
717
717
|
copy: { close_aria: a.close_aria, title: s.delete_title },
|
|
718
|
-
isOpen:
|
|
719
|
-
onClose: () =>
|
|
718
|
+
isOpen: _,
|
|
719
|
+
onClose: () => f(!1),
|
|
720
720
|
onPrimaryAction: C,
|
|
721
721
|
primaryColor: "error",
|
|
722
722
|
primaryText: "Delete",
|
|
723
723
|
secondaryColor: "secondary",
|
|
724
|
-
children: /* @__PURE__ */ e(B, { variant: "
|
|
724
|
+
children: /* @__PURE__ */ e(B, { variant: "subtitle1", children: N(s.delete_description, o.category.name) })
|
|
725
725
|
}
|
|
726
726
|
)
|
|
727
727
|
] })
|
|
@@ -731,14 +731,14 @@ const wt = ({
|
|
|
731
731
|
sortedTransactions: d,
|
|
732
732
|
sortedTransactionsWithSplits: u,
|
|
733
733
|
tags: p
|
|
734
|
-
} = J(), [h,
|
|
735
|
-
() => d.find((S) => S.guid ===
|
|
736
|
-
[
|
|
734
|
+
} = J(), [h, _] = l.useState(0), [f, y] = l.useState(""), A = l.useMemo(
|
|
735
|
+
() => d.find((S) => S.guid === f),
|
|
736
|
+
[f, d]
|
|
737
737
|
), x = (S, I) => {
|
|
738
|
-
|
|
738
|
+
_(I);
|
|
739
739
|
}, C = () => {
|
|
740
740
|
et(u, p), i(s.alert_csv_downloaded);
|
|
741
|
-
},
|
|
741
|
+
}, b = d.length > 0 && !n && (o || g && !c);
|
|
742
742
|
return /* @__PURE__ */ m(v, { gap: 24, children: [
|
|
743
743
|
/* @__PURE__ */ e(He, { budget: t }),
|
|
744
744
|
/* @__PURE__ */ m(v, { children: [
|
|
@@ -757,7 +757,7 @@ const wt = ({
|
|
|
757
757
|
}
|
|
758
758
|
),
|
|
759
759
|
h === 0 && /* @__PURE__ */ m(v, { children: [
|
|
760
|
-
|
|
760
|
+
b && /* @__PURE__ */ e(v, { direction: "row", justifyContent: "right", mb: -24, mr: 8, mt: 8, zIndex: 1, children: /* @__PURE__ */ e(
|
|
761
761
|
ke,
|
|
762
762
|
{
|
|
763
763
|
onClick: C,
|
|
@@ -791,9 +791,9 @@ const wt = ({
|
|
|
791
791
|
setAlert: g,
|
|
792
792
|
setSelectedBudget: d,
|
|
793
793
|
updateBudget: u
|
|
794
|
-
} = E(), { setFilter: p } = J(), [h,
|
|
794
|
+
} = E(), { setFilter: p } = J(), [h, _] = l.useState(!1), [f, y] = l.useState(!1), [A, x] = l.useState(!1), [C, b] = l.useState("");
|
|
795
795
|
l.useEffect(() => {
|
|
796
|
-
o && !c && (
|
|
796
|
+
o && !c && (b(`${o.amount}`), _(!0), p({
|
|
797
797
|
accounts: t,
|
|
798
798
|
dateRange: a,
|
|
799
799
|
custom: (O) => O.category_guid === o.category_guid || O.top_level_category_guid === o.category_guid,
|
|
@@ -809,11 +809,11 @@ const wt = ({
|
|
|
809
809
|
}, I = async () => {
|
|
810
810
|
o && (await r(o.guid), g(N(n.alert_budget_deleted, o.category.name))), L();
|
|
811
811
|
}, L = () => {
|
|
812
|
-
|
|
812
|
+
_(!1), setTimeout(() => {
|
|
813
813
|
d(void 0);
|
|
814
814
|
}, 250);
|
|
815
815
|
}, M = () => {
|
|
816
|
-
y(!1),
|
|
816
|
+
y(!1), b(`${o?.amount}`);
|
|
817
817
|
};
|
|
818
818
|
if (o)
|
|
819
819
|
return /* @__PURE__ */ m(l.Fragment, { children: [
|
|
@@ -849,7 +849,7 @@ const wt = ({
|
|
|
849
849
|
{
|
|
850
850
|
copy: { close_aria: i.close_aria, title: n.details_edit_title },
|
|
851
851
|
disablePrimaryButton: Number(C) <= 0,
|
|
852
|
-
isOpen:
|
|
852
|
+
isOpen: f,
|
|
853
853
|
onClose: M,
|
|
854
854
|
onPrimaryAction: S,
|
|
855
855
|
onSecondaryAction: M,
|
|
@@ -859,7 +859,7 @@ const wt = ({
|
|
|
859
859
|
{
|
|
860
860
|
amount: C,
|
|
861
861
|
categoryName: o.category.name,
|
|
862
|
-
onAmountChanged:
|
|
862
|
+
onAmountChanged: b
|
|
863
863
|
}
|
|
864
864
|
)
|
|
865
865
|
}
|
|
@@ -874,11 +874,11 @@ const wt = ({
|
|
|
874
874
|
primaryColor: "error",
|
|
875
875
|
primaryText: n.details_delete_button,
|
|
876
876
|
secondaryColor: "secondary",
|
|
877
|
-
children: /* @__PURE__ */ e(B, { variant: "
|
|
877
|
+
children: /* @__PURE__ */ e(B, { variant: "subtitle1", children: N(n.delete_description, o.category.name) })
|
|
878
878
|
}
|
|
879
879
|
)
|
|
880
880
|
] });
|
|
881
|
-
}),
|
|
881
|
+
}), Gt = ({ budget: t, onClick: n }) => {
|
|
882
882
|
const {
|
|
883
883
|
amount: i,
|
|
884
884
|
budgetColors: { background: s, description: a },
|
|
@@ -889,19 +889,19 @@ const wt = ({
|
|
|
889
889
|
transaction_total: d
|
|
890
890
|
} = t, u = c > 100;
|
|
891
891
|
return /* @__PURE__ */ e(Q, { children: /* @__PURE__ */ m(ee, { onClick: () => n?.(t), children: [
|
|
892
|
-
/* @__PURE__ */ e(ue, { sx: { mb: -8, mr: 16 }, children: /* @__PURE__ */ e(
|
|
892
|
+
/* @__PURE__ */ e(ue, { sx: { mb: -8, mr: 16 }, children: /* @__PURE__ */ e(Ge, { color: s, percent: c, size: 40, children: /* @__PURE__ */ e(W, { categoryGuid: r, variant: "basic" }) }) }),
|
|
893
893
|
/* @__PURE__ */ e(
|
|
894
894
|
te,
|
|
895
895
|
{
|
|
896
896
|
primary: /* @__PURE__ */ m(v, { component: "span", direction: "row", justifyContent: "space-between", children: [
|
|
897
|
-
/* @__PURE__ */ e(B, { bold: !0, variant: "
|
|
898
|
-
/* @__PURE__ */ e(B, { fontWeight: 400, variant: "
|
|
897
|
+
/* @__PURE__ */ e(B, { bold: !0, variant: "body1", children: t.category.name }),
|
|
898
|
+
/* @__PURE__ */ e(B, { fontWeight: 400, variant: "body1", children: `
|
|
899
899
|
${T(d, "0,0")} /
|
|
900
900
|
${T(i, "0,0")}
|
|
901
901
|
` })
|
|
902
902
|
] }),
|
|
903
903
|
secondary: /* @__PURE__ */ m(v, { component: "span", direction: "row", justifyContent: "space-between", children: [
|
|
904
|
-
/* @__PURE__ */ e(B, { variant: "
|
|
904
|
+
/* @__PURE__ */ e(B, { variant: "caption", children: `${g.length} Sub-budgets` }),
|
|
905
905
|
/* @__PURE__ */ e(
|
|
906
906
|
B,
|
|
907
907
|
{
|
|
@@ -914,7 +914,7 @@ const wt = ({
|
|
|
914
914
|
}
|
|
915
915
|
}
|
|
916
916
|
},
|
|
917
|
-
variant: "
|
|
917
|
+
variant: "caption",
|
|
918
918
|
children: o
|
|
919
919
|
}
|
|
920
920
|
)
|
|
@@ -922,24 +922,24 @@ const wt = ({
|
|
|
922
922
|
}
|
|
923
923
|
)
|
|
924
924
|
] }) });
|
|
925
|
-
},
|
|
925
|
+
}, Pt = w(() => {
|
|
926
926
|
const { onEvent: t } = Z(), { budgets: n } = D(), { detailedBudgets: i, setSelectedBudget: s } = E(), a = (r) => {
|
|
927
|
-
s(r), t(
|
|
927
|
+
s(r), t(G.BUDGETS_CLICK_BUDGET_CATEGORY, {
|
|
928
928
|
budget_category: r.category.name,
|
|
929
929
|
click_type: "list"
|
|
930
930
|
});
|
|
931
931
|
};
|
|
932
932
|
return /* @__PURE__ */ m(ve, { elevation: 2, children: [
|
|
933
|
-
/* @__PURE__ */ e(
|
|
934
|
-
/* @__PURE__ */ e(Te, { sx: { p: 0, ":last-child": { p: 0 } }, children: /* @__PURE__ */ e(
|
|
935
|
-
/* @__PURE__ */ e(
|
|
933
|
+
/* @__PURE__ */ e(Pe, { sx: { pb: 8, pl: 24 }, title: /* @__PURE__ */ e(Re, { children: n.budget_categories_title }) }),
|
|
934
|
+
/* @__PURE__ */ e(Te, { sx: { p: 0, ":last-child": { p: 0 } }, children: /* @__PURE__ */ e(Y, { children: i.map((r) => /* @__PURE__ */ m(l.Fragment, { children: [
|
|
935
|
+
/* @__PURE__ */ e(Gt, { budget: r, onClick: a }),
|
|
936
936
|
/* @__PURE__ */ e(de, {})
|
|
937
937
|
] }, r.guid)) }) })
|
|
938
938
|
] });
|
|
939
939
|
}), jt = w(() => {
|
|
940
|
-
const t = ie(), { onEvent: n } = Z(), { visibleAccounts: i } = Ne(), { budgets: s, common: a, recurring: r } = D(), { incomeCategories: o, spendCategories: c } =
|
|
941
|
-
const
|
|
942
|
-
let S =
|
|
940
|
+
const t = ie(), { onEvent: n } = Z(), { visibleAccounts: i } = Ne(), { budgets: s, common: a, recurring: r } = D(), { incomeCategories: o, spendCategories: c } = X(), { detailedBudgets: g, totalBudgeted: d } = E(), { incomeTotal: u } = ce(), { setFilter: p } = J(), [h, _] = l.useState(!1), [f, y] = l.useMemo(() => {
|
|
941
|
+
const b = c.reduce((M, O) => M + O.totalAmount, 0);
|
|
942
|
+
let S = b / d;
|
|
943
943
|
S > 1 && (S = 1);
|
|
944
944
|
let I = t.palette.success.main;
|
|
945
945
|
S > 0.8 && S < 1 ? I = t.palette.warning.main : S >= 1 && (I = t.palette.error.main);
|
|
@@ -949,12 +949,12 @@ const wt = ({
|
|
|
949
949
|
percentage: `${S}`
|
|
950
950
|
}
|
|
951
951
|
];
|
|
952
|
-
return [
|
|
952
|
+
return [b, L];
|
|
953
953
|
}, [g, c]), [A, x] = l.useMemo(() => {
|
|
954
|
-
const
|
|
954
|
+
const b = Math.abs(
|
|
955
955
|
o.reduce((L, M) => L + M.totalAmount, 0)
|
|
956
956
|
);
|
|
957
|
-
let S =
|
|
957
|
+
let S = b / u;
|
|
958
958
|
S > 1 && (S = 1);
|
|
959
959
|
const I = [
|
|
960
960
|
{
|
|
@@ -962,31 +962,31 @@ const wt = ({
|
|
|
962
962
|
percentage: `${S}`
|
|
963
963
|
}
|
|
964
964
|
];
|
|
965
|
-
return [
|
|
965
|
+
return [b, I];
|
|
966
966
|
}, [o, u]), C = () => {
|
|
967
967
|
p({
|
|
968
|
-
accounts: i.map((
|
|
968
|
+
accounts: i.map((b) => b.guid),
|
|
969
969
|
dateRange: {
|
|
970
970
|
start: rt(/* @__PURE__ */ new Date(), 90),
|
|
971
971
|
end: /* @__PURE__ */ new Date()
|
|
972
972
|
}
|
|
973
|
-
}),
|
|
973
|
+
}), _(!0), n(G.BUDGETS_CLICK_EDIT_INCOME);
|
|
974
974
|
};
|
|
975
975
|
return /* @__PURE__ */ m(ve, { elevation: 2, sx: { overflow: "visible" }, children: [
|
|
976
|
-
/* @__PURE__ */ e(
|
|
976
|
+
/* @__PURE__ */ e(Pe, { sx: { pb: 8, pl: 24 }, title: /* @__PURE__ */ e(Re, { children: s.overview_title }) }),
|
|
977
977
|
/* @__PURE__ */ e(Te, { sx: { pt: 12, px: 24 }, children: /* @__PURE__ */ m(v, { gap: 24, children: [
|
|
978
978
|
/* @__PURE__ */ m(v, { gap: 8, children: [
|
|
979
|
-
/* @__PURE__ */ e(B, { bold: !0, sx: { mb: 8 }, variant: "
|
|
979
|
+
/* @__PURE__ */ e(B, { bold: !0, sx: { mb: 8 }, variant: "body1", children: s.spending_title }),
|
|
980
980
|
/* @__PURE__ */ e(Be, { data: y, height: 16 }),
|
|
981
|
-
/* @__PURE__ */ e(B, { variant: "
|
|
981
|
+
/* @__PURE__ */ e(B, { variant: "body2", children: N(
|
|
982
982
|
s.spending_description,
|
|
983
|
-
T(
|
|
983
|
+
T(f, "0,0"),
|
|
984
984
|
T(d, "0,0")
|
|
985
985
|
) })
|
|
986
986
|
] }),
|
|
987
987
|
/* @__PURE__ */ m(v, { gap: 8, children: [
|
|
988
988
|
/* @__PURE__ */ m(v, { alignItems: "center", direction: "row", gap: 4, mb: -4, children: [
|
|
989
|
-
/* @__PURE__ */ e(B, { bold: !0, variant: "
|
|
989
|
+
/* @__PURE__ */ e(B, { bold: !0, variant: "body1", children: s.income_title }),
|
|
990
990
|
/* @__PURE__ */ e(
|
|
991
991
|
st,
|
|
992
992
|
{
|
|
@@ -998,7 +998,7 @@ const wt = ({
|
|
|
998
998
|
)
|
|
999
999
|
] }),
|
|
1000
1000
|
/* @__PURE__ */ e(Be, { data: x, height: 16 }),
|
|
1001
|
-
/* @__PURE__ */ e(B, { variant: "
|
|
1001
|
+
/* @__PURE__ */ e(B, { variant: "body2", children: N(
|
|
1002
1002
|
s.income_description,
|
|
1003
1003
|
T(A, "0,0"),
|
|
1004
1004
|
T(u, "0,0")
|
|
@@ -1010,7 +1010,7 @@ const wt = ({
|
|
|
1010
1010
|
{
|
|
1011
1011
|
ariaLabelClose: a.close_aria,
|
|
1012
1012
|
isOpen: h,
|
|
1013
|
-
onClose: () =>
|
|
1013
|
+
onClose: () => _(!1),
|
|
1014
1014
|
title: r.manage_income,
|
|
1015
1015
|
children: /* @__PURE__ */ e(it, { forOverview: !0 })
|
|
1016
1016
|
}
|
|
@@ -1021,33 +1021,33 @@ const wt = ({
|
|
|
1021
1021
|
alert: u,
|
|
1022
1022
|
dateRange: p,
|
|
1023
1023
|
isDataLoaded: h,
|
|
1024
|
-
loadBudgetData:
|
|
1025
|
-
setDateRange:
|
|
1024
|
+
loadBudgetData: _,
|
|
1025
|
+
setDateRange: f,
|
|
1026
1026
|
setAlert: y,
|
|
1027
1027
|
setTheme: A,
|
|
1028
1028
|
detailedBudgets: x
|
|
1029
|
-
} = E(), { setDateRange: C } = ce(), { loadDateRangeCategoryTotals:
|
|
1029
|
+
} = E(), { setDateRange: C } = ce(), { loadDateRangeCategoryTotals: b, loadMonthlyCategoryTotals: S } = X(), { isSmallTablet: I, isMobile: L, isSmallMobile: M } = me(), O = I || L || M, [z, k] = l.useState(!1);
|
|
1030
1030
|
je({
|
|
1031
1031
|
widgetName: "BubbleBudgetsWidget",
|
|
1032
1032
|
isLoaded: h
|
|
1033
1033
|
}), l.useEffect(() => {
|
|
1034
|
-
A(i), h ||
|
|
1035
|
-
s(
|
|
1034
|
+
A(i), h || _().finally(() => {
|
|
1035
|
+
s(G.BUDGETS_VIEW);
|
|
1036
1036
|
});
|
|
1037
|
-
}, []), l.useEffect(() => (
|
|
1038
|
-
|
|
1037
|
+
}, []), l.useEffect(() => (f({ start: re(ne()), end: Ce(ne()) }), () => {
|
|
1038
|
+
f({ start: re(ne()), end: Ce(ne()) });
|
|
1039
1039
|
}), [a]), l.useEffect(() => {
|
|
1040
|
-
c && (d(p.start, p.end),
|
|
1040
|
+
c && (d(p.start, p.end), b(g, p.start, p.end).finally(), S(g).finally(), C(p));
|
|
1041
1041
|
}, [c, g, p]);
|
|
1042
1042
|
const he = (V) => {
|
|
1043
|
-
|
|
1044
|
-
},
|
|
1045
|
-
s(
|
|
1043
|
+
f({ start: V[0] || /* @__PURE__ */ new Date(), end: V[1] || /* @__PURE__ */ new Date() });
|
|
1044
|
+
}, be = () => {
|
|
1045
|
+
s(G.BUDGETS_CLICK_FILTER);
|
|
1046
1046
|
}, oe = () => {
|
|
1047
|
-
k(!0), s(
|
|
1048
|
-
},
|
|
1047
|
+
k(!0), s(G.BUDGETS_CLICK_ADD);
|
|
1048
|
+
}, fe = () => {
|
|
1049
1049
|
k(!1);
|
|
1050
|
-
},
|
|
1050
|
+
}, P = () => {
|
|
1051
1051
|
k(!1);
|
|
1052
1052
|
}, H = Ke(p.end, re(/* @__PURE__ */ new Date()));
|
|
1053
1053
|
return !c || !h ? /* @__PURE__ */ e(ge, {}) : /* @__PURE__ */ m(
|
|
@@ -1065,7 +1065,7 @@ const wt = ({
|
|
|
1065
1065
|
shouldDisableNext: H,
|
|
1066
1066
|
shouldDisablePicker: !0
|
|
1067
1067
|
},
|
|
1068
|
-
onAccountsFilterClick:
|
|
1068
|
+
onAccountsFilterClick: be,
|
|
1069
1069
|
onBackClick: t,
|
|
1070
1070
|
sx: n,
|
|
1071
1071
|
title: r.budgets_title,
|
|
@@ -1097,7 +1097,7 @@ const wt = ({
|
|
|
1097
1097
|
width: O ? "100%" : Me,
|
|
1098
1098
|
children: [
|
|
1099
1099
|
/* @__PURE__ */ e(jt, {}),
|
|
1100
|
-
/* @__PURE__ */ e(
|
|
1100
|
+
/* @__PURE__ */ e(Pt, {})
|
|
1101
1101
|
]
|
|
1102
1102
|
}
|
|
1103
1103
|
)
|
|
@@ -1115,8 +1115,8 @@ const wt = ({
|
|
|
1115
1115
|
children: /* @__PURE__ */ e(
|
|
1116
1116
|
ze,
|
|
1117
1117
|
{
|
|
1118
|
-
onAddBudget:
|
|
1119
|
-
onRecalculateBudgets:
|
|
1118
|
+
onAddBudget: fe,
|
|
1119
|
+
onRecalculateBudgets: P
|
|
1120
1120
|
}
|
|
1121
1121
|
)
|
|
1122
1122
|
}
|
|
@@ -1177,7 +1177,7 @@ const wt = ({
|
|
|
1177
1177
|
] })
|
|
1178
1178
|
] });
|
|
1179
1179
|
}, Ft = (t) => {
|
|
1180
|
-
const n = ie(), { onEvent: i } = Z(), { detailedBudgets: s, isDataLoaded: a, loadBudgetData: r, setTheme: o } = E(), { budgets: c, common: g } = D(), { isInitialized: d, selectedAccounts: u } = q(), { loadDateRangeCategoryTotals: p, loadMonthlyCategoryTotals: h } =
|
|
1180
|
+
const n = ie(), { onEvent: i } = Z(), { detailedBudgets: s, isDataLoaded: a, loadBudgetData: r, setTheme: o } = E(), { budgets: c, common: g } = D(), { isInitialized: d, selectedAccounts: u } = q(), { loadDateRangeCategoryTotals: p, loadMonthlyCategoryTotals: h } = X(), _ = lt(), [f, y] = l.useState(!1);
|
|
1181
1181
|
l.useEffect(() => {
|
|
1182
1182
|
a || r().finally();
|
|
1183
1183
|
}, []), l.useEffect(() => {
|
|
@@ -1190,7 +1190,7 @@ const wt = ({
|
|
|
1190
1190
|
).finally(), h(u).finally());
|
|
1191
1191
|
}, [d, u, a]);
|
|
1192
1192
|
const A = () => {
|
|
1193
|
-
y(!0), i(
|
|
1193
|
+
y(!0), i(G.BUDGETS_CLICK_ADD);
|
|
1194
1194
|
}, x = () => {
|
|
1195
1195
|
y(!1);
|
|
1196
1196
|
}, C = () => y(!1);
|
|
@@ -1198,12 +1198,12 @@ const wt = ({
|
|
|
1198
1198
|
widgetName: "BubbleBudgetsMiniWidget",
|
|
1199
1199
|
isLoaded: a
|
|
1200
1200
|
}), !d || !a) return /* @__PURE__ */ e(ge, {});
|
|
1201
|
-
const
|
|
1201
|
+
const b = s.length === 0;
|
|
1202
1202
|
return /* @__PURE__ */ m(
|
|
1203
1203
|
mt,
|
|
1204
1204
|
{
|
|
1205
1205
|
contentStyles: { height: "calc(100% - 66px)", ":last-child": { pb: 0 } },
|
|
1206
|
-
primaryCtaLabel:
|
|
1206
|
+
primaryCtaLabel: b ? c.get_started_cta : c.details_cta,
|
|
1207
1207
|
sx: { height: "100%" },
|
|
1208
1208
|
title: c.budgets_title,
|
|
1209
1209
|
...t,
|
|
@@ -1212,16 +1212,16 @@ const wt = ({
|
|
|
1212
1212
|
zt,
|
|
1213
1213
|
{
|
|
1214
1214
|
budgetsCopy: c,
|
|
1215
|
-
difference:
|
|
1215
|
+
difference: _,
|
|
1216
1216
|
handleAddClick: A,
|
|
1217
|
-
shouldShowZeroState:
|
|
1217
|
+
shouldShowZeroState: b
|
|
1218
1218
|
}
|
|
1219
1219
|
),
|
|
1220
1220
|
/* @__PURE__ */ e(
|
|
1221
1221
|
$,
|
|
1222
1222
|
{
|
|
1223
1223
|
ariaLabelClose: g.close_aria,
|
|
1224
|
-
isOpen:
|
|
1224
|
+
isOpen: f,
|
|
1225
1225
|
onClose: () => y(!1),
|
|
1226
1226
|
title: c.add_new_title,
|
|
1227
1227
|
children: /* @__PURE__ */ e(
|
|
@@ -1251,27 +1251,27 @@ const wt = ({
|
|
|
1251
1251
|
setAlert: g,
|
|
1252
1252
|
setSelectedBudget: d,
|
|
1253
1253
|
updateBudget: u
|
|
1254
|
-
} = E(), { budgets: p, common: h } = D(), { isCopyLoaded:
|
|
1254
|
+
} = E(), { budgets: p, common: h } = D(), { isCopyLoaded: _, selectedAccountGuids: f } = q(), y = $e(), { setFilter: A } = J(), [x, C] = l.useState(""), [b, S] = l.useState(null), [I, L] = l.useState(!1), M = l.useRef(!1);
|
|
1255
1255
|
if (l.useEffect(() => {
|
|
1256
1256
|
!o || c || (C(`${o.amount}`), A({
|
|
1257
|
-
accounts:
|
|
1257
|
+
accounts: f,
|
|
1258
1258
|
dateRange: a,
|
|
1259
|
-
custom: ({ category_guid:
|
|
1259
|
+
custom: ({ category_guid: P, top_level_category_guid: H }) => {
|
|
1260
1260
|
const { category_guid: V } = o;
|
|
1261
|
-
return
|
|
1261
|
+
return P === V || H === V;
|
|
1262
1262
|
},
|
|
1263
1263
|
showSplits: !0
|
|
1264
1264
|
}), L(!0));
|
|
1265
|
-
}, [o]), !
|
|
1265
|
+
}, [o]), !_) return /* @__PURE__ */ e(ge, {});
|
|
1266
1266
|
if (!o) return null;
|
|
1267
1267
|
const O = () => {
|
|
1268
1268
|
C(""), S(null), L(!1), setTimeout(() => {
|
|
1269
1269
|
d(void 0), t?.();
|
|
1270
1270
|
}, 250);
|
|
1271
1271
|
}, z = () => {
|
|
1272
|
-
|
|
1272
|
+
b === "delete" && n?.(ae.CANCEL_DELETE, x), C(o.amount ? `${o.amount}` : ""), S(null);
|
|
1273
1273
|
}, k = async () => {
|
|
1274
|
-
if (
|
|
1274
|
+
if (b === "edit") {
|
|
1275
1275
|
if (M.current) return;
|
|
1276
1276
|
M.current = !0, await u({
|
|
1277
1277
|
...o,
|
|
@@ -1280,11 +1280,11 @@ const wt = ({
|
|
|
1280
1280
|
N(p.alert_budget_updated, o.category.name)
|
|
1281
1281
|
), S(null), M.current = !1;
|
|
1282
1282
|
}
|
|
1283
|
-
|
|
1284
|
-
}, { remainingAmount: he, spentPercentage:
|
|
1283
|
+
b === "delete" && (await r(o.guid), n?.(ae.END_DELETE, x), O());
|
|
1284
|
+
}, { remainingAmount: he, spentPercentage: be, iconColor: oe } = dt(
|
|
1285
1285
|
o.transaction_total ?? 0,
|
|
1286
1286
|
o.amount ?? 0
|
|
1287
|
-
),
|
|
1287
|
+
), fe = (P, H) => N(P, /* @__PURE__ */ e("b", { children: H }));
|
|
1288
1288
|
return /* @__PURE__ */ m(l.Fragment, { children: [
|
|
1289
1289
|
/* @__PURE__ */ m(
|
|
1290
1290
|
$,
|
|
@@ -1335,7 +1335,7 @@ const wt = ({
|
|
|
1335
1335
|
iconColor: oe,
|
|
1336
1336
|
onViewHistory: i,
|
|
1337
1337
|
remainingAmount: he,
|
|
1338
|
-
spentPercentage:
|
|
1338
|
+
spentPercentage: be,
|
|
1339
1339
|
startDate: o.start_date,
|
|
1340
1340
|
totalTransaction: o.transaction_total
|
|
1341
1341
|
}
|
|
@@ -1354,26 +1354,26 @@ const wt = ({
|
|
|
1354
1354
|
]
|
|
1355
1355
|
}
|
|
1356
1356
|
),
|
|
1357
|
-
|
|
1357
|
+
b && /* @__PURE__ */ e(
|
|
1358
1358
|
ut,
|
|
1359
1359
|
{
|
|
1360
1360
|
closeAriaLabel: h.close_aria,
|
|
1361
|
-
content:
|
|
1362
|
-
p[
|
|
1361
|
+
content: fe(
|
|
1362
|
+
p[b === "edit" ? "edit_budget_content" : "delete_description"],
|
|
1363
1363
|
o.category.name
|
|
1364
1364
|
),
|
|
1365
|
-
handleInputChange: (
|
|
1365
|
+
handleInputChange: (P) => C(P.toString()),
|
|
1366
1366
|
handleModalClose: z,
|
|
1367
1367
|
handlePrimaryAction: k,
|
|
1368
1368
|
handleSecondaryAction: z,
|
|
1369
|
-
inputLabel:
|
|
1369
|
+
inputLabel: b === "edit" ? p.details_edit_title : "",
|
|
1370
1370
|
inputValue: x,
|
|
1371
1371
|
isOpen: !0,
|
|
1372
|
-
primaryColor:
|
|
1373
|
-
primaryText: p[
|
|
1374
|
-
secondaryColor:
|
|
1372
|
+
primaryColor: b === "edit" ? "primary" : "error",
|
|
1373
|
+
primaryText: p[b === "edit" ? "add_save_button" : "details_delete_button"],
|
|
1374
|
+
secondaryColor: b === "edit" ? "primary" : "inherit",
|
|
1375
1375
|
secondaryText: h.cancel_button,
|
|
1376
|
-
title: p[
|
|
1376
|
+
title: p[b === "edit" ? "details_edit_title" : "delete_title"]
|
|
1377
1377
|
}
|
|
1378
1378
|
)
|
|
1379
1379
|
] });
|