@mx-cartographer/experiences 8.2.2 → 8.2.4-alpha-ram1-bug-testing
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 +20 -0
- package/dist/{AccountDetailsHeader-CfdnKyJK.mjs → AccountDetailsHeader-DIysk_4w.mjs} +1 -1
- package/dist/{AccountFields-CAy0x_4i.mjs → AccountFields-mwJ8NXsX.mjs} +18 -18
- package/dist/{AccountListItem-BYyeeCf6.mjs → AccountListItem-BDXHs4tV.mjs} +7 -8
- package/dist/{CategorySelectorDrawer-Cu1ohxeM.mjs → CategorySelectorDrawer-CmaDLhnf.mjs} +71 -68
- package/dist/{ConnectCard-Dix8BoV_.mjs → ConnectCard-CCep7Zqe.mjs} +9 -9
- package/dist/{ConnectDrawer-DgfsTpyW.mjs → ConnectDrawer-Cnjr3Ddg.mjs} +2 -2
- package/dist/{ConnectionsDrawer-D7IXAza2.mjs → ConnectionsDrawer-CtfPXk0M.mjs} +1 -1
- package/dist/{CurrencyDialog-d4dL7vA5.mjs → CurrencyDialog-DumQCTPO.mjs} +18 -16
- package/dist/{CurrencyInput-B59ugxPN.mjs → CurrencyInput-adTIRtL3.mjs} +28 -26
- package/dist/{Dialog-iLlBR8TG.mjs → Dialog-CwWc0AbH.mjs} +11 -11
- package/dist/{Drawer-XPaLYjiO.mjs → Drawer-BXqqBMxg.mjs} +26 -28
- package/dist/{EmbeddedCard-BNl3quCs.mjs → EmbeddedCard-DPwJjqMH.mjs} +37 -37
- package/dist/{EmptyState-DHAkGsjk.mjs → EmptyState-CJUDc3kD.mjs} +17 -17
- package/dist/{ExportCsvAction-hDprC41l.mjs → ExportCsvAction-Bw02ZJEj.mjs} +2 -2
- package/dist/{GlobalAccountFilter-DrhtwPqh.mjs → GlobalAccountFilter-7Cg2-9A5.mjs} +25 -25
- package/dist/{Help-BSQm9o29.mjs → Help-DJ8PrVHX.mjs} +56 -73
- package/dist/{ListItemAction-DGjHxNDJ.mjs → ListItemAction-CwspSmQi.mjs} +22 -22
- package/dist/{ManageIncome-DwylSiWs.mjs → ManageIncome-B1JfqslT.mjs} +6 -6
- package/dist/{NotificationSettings-CCg-Tml2.mjs → NotificationSettings-6p-h5phZ.mjs} +48 -48
- package/dist/{OriginalBalanceAction-CvDx0K6k.mjs → OriginalBalanceAction-CkJPnp2c.mjs} +2 -2
- package/dist/{RecurringSettings-CPXLW6AR.mjs → RecurringSettings-cm6MK_aS.mjs} +1 -1
- package/dist/{ResponsiveButton-BNsV08Ud.mjs → ResponsiveButton-CC9F_Ezk.mjs} +1 -1
- package/dist/SearchBox-Cpgu_gdO.mjs +50 -0
- package/dist/Select-BFt-HD-L.mjs +55 -0
- package/dist/{SelectionBox-Bx2a5rh4.mjs → SelectionBox-B4xELRgp.mjs} +1 -1
- package/dist/{SingleSegmentDonut-PsRQPkmV.mjs → SingleSegmentDonut-7Uy6VEld.mjs} +1 -1
- package/dist/{SpendingLegend-BmkEr9Nh.mjs → SpendingLegend-5Ct_FZ8o.mjs} +1 -1
- package/dist/{ToggleListItem-BLu_fWA2.mjs → ToggleListItem-Dl1lXNwj.mjs} +29 -28
- package/dist/{TransactionDetails-CbBSxdOi.mjs → TransactionDetails-C3dlAzYf.mjs} +386 -393
- package/dist/{ViewMoreMicroCard-BB3Dusch.mjs → ViewMoreMicroCard-BD_MNc2z.mjs} +545 -533
- package/dist/{WidgetContainer-CYcmwsSu.mjs → WidgetContainer-DNuz_s7W.mjs} +5 -5
- package/dist/accounts/index.es.js +199 -194
- package/dist/analytics/index.es.js +1 -1
- package/dist/budgets/index.es.js +183 -184
- package/dist/cashflow/index.es.js +70 -80
- package/dist/categories/index.es.js +1 -1
- package/dist/common/components/ErrorBoundary.d.ts +1 -1
- package/dist/common/components/WidgetContainer.d.ts +1 -1
- package/dist/common/components/charts/stackedlinechart/CustomAreaTooltip.d.ts +1 -1
- package/dist/common/hooks/usePrevious.d.ts +1 -1
- package/dist/common/index.es.js +206 -194
- package/dist/common/utils/Theme.d.ts +6 -5
- package/dist/common/utils/index.d.ts +1 -1
- package/dist/dashboard/index.es.js +47 -47
- package/dist/debts/index.es.js +140 -140
- package/dist/finstrong/index.es.js +40 -32
- package/dist/finstrong/util/finstrongUtils.d.ts +1 -1
- package/dist/goals/index.es.js +154 -165
- package/dist/help/index.es.js +2 -2
- package/dist/insights/components/insights/UserFeedback/Types.d.ts +1 -1
- package/dist/insights/components/shared/DirectDeposit/DirectDepositSubHeader.d.ts +3 -3
- package/dist/insights/hooks/useContainerDimensions.d.ts +1 -1
- package/dist/insights/index.es.js +677 -687
- package/dist/insights/themes/Typography.d.ts +0 -2
- package/dist/investments/index.es.js +205 -207
- package/dist/merchants/index.es.js +1 -1
- package/dist/microinsights/MicroCardTemplate.d.ts +2 -4
- package/dist/microinsights/cards/InsightCard.d.ts +2 -2
- package/dist/microinsights/cards/NoRelevantInsightsCard.d.ts +3 -4
- package/dist/microinsights/cards/ViewMoreMicroCard.d.ts +3 -4
- package/dist/microinsights/cards/ZeroStateCard.d.ts +3 -4
- package/dist/microinsights/carousel/BeatList.d.ts +2 -2
- package/dist/microinsights/carousel/MicroBeatCarousel.d.ts +12 -1
- package/dist/microinsights/index.es.js +1 -1
- package/dist/microinsights/interfaces.d.ts +12 -4
- package/dist/networth/index.es.js +85 -87
- package/dist/notifications/index.es.js +7 -8
- package/dist/recurringtransactions/index.es.js +53 -53
- package/dist/settings/index.es.js +111 -111
- package/dist/spending/index.es.js +7 -7
- package/dist/transactions/components/shared/TransactionList.d.ts +2 -2
- package/dist/transactions/index.es.js +138 -140
- package/dist/trends/index.es.js +293 -292
- package/dist/{useScreenSize-CeFhWTt_.mjs → useScreenSize-mWpmnh5w.mjs} +1 -1
- package/package.json +29 -23
- package/dist/SearchBox-CwDgvWVJ.mjs +0 -48
- package/dist/Select-BZRUpOib.mjs +0 -51
|
@@ -1,78 +1,77 @@
|
|
|
1
1
|
import { jsx as e, jsxs as m } from "react/jsx-runtime";
|
|
2
2
|
import l, { useMemo as ke } from "react";
|
|
3
3
|
import { observer as w } from "mobx-react-lite";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import Ue from "@mui/material/Alert";
|
|
5
|
+
import V from "@mui/material/Box";
|
|
6
6
|
import Te from "@mui/material/Divider";
|
|
7
7
|
import be from "@mui/material/List";
|
|
8
8
|
import he from "@mui/material/Paper";
|
|
9
|
-
import
|
|
9
|
+
import We from "@mui/material/Snackbar";
|
|
10
10
|
import L from "@mui/material/Stack";
|
|
11
|
-
import { useTheme as
|
|
12
|
-
import { P as ee, Text as
|
|
11
|
+
import { useTheme as F, alpha as xe } from "@mui/material/styles";
|
|
12
|
+
import { P as ee, Text as x, H2 as Ve, MerchantLogo as Ce, Toast as Ye, CategoryIcon as Oe, CategoryIconVariants as Ge, TextField as Le, Icon as ye } from "@mxenabled/mxui";
|
|
13
13
|
import { endOfMonth as Be } from "date-fns/endOfMonth";
|
|
14
14
|
import { getUnixTime as Ie } from "date-fns/getUnixTime";
|
|
15
15
|
import { isBefore as je } from "date-fns/isBefore";
|
|
16
16
|
import { startOfMonth as De } from "date-fns/startOfMonth";
|
|
17
17
|
import { b as E } from "./Localization-DnoVyBNK.mjs";
|
|
18
|
-
import { f as
|
|
18
|
+
import { f as W } from "./NumberFormatting--XMeeBfr.mjs";
|
|
19
19
|
import { a as qe, i as Qe } from "./BudgetUtil-Bg2AQJpQ.mjs";
|
|
20
20
|
import me from "@mui/material/Button";
|
|
21
21
|
import Xe from "@mui/material/FormGroup";
|
|
22
22
|
import ue from "@mui/material/IconButton";
|
|
23
23
|
import $e from "@mui/material/TextField";
|
|
24
|
-
import { u as
|
|
25
|
-
import { b as Ze, T as Je, u as
|
|
26
|
-
import { u as O, h as R, o as
|
|
24
|
+
import { u as Ae } from "./useAriaLive-MkYebyUR.mjs";
|
|
25
|
+
import { b as Ze, T as Je, u as ne, O as C, c as et, d as tt, E as at, C as nt } from "./EmbeddedCard-DPwJjqMH.mjs";
|
|
26
|
+
import { u as O, h as R, o as rt, d as ot, l as we, g as G, b as it, C as st } from "./hooks-BaO_gOI6.mjs";
|
|
27
27
|
import { A as Y } from "./Analytics-CzGzz_sE.mjs";
|
|
28
28
|
import lt from "@mui/material/ToggleButton";
|
|
29
29
|
import { ChevronRight as Ke, Icon as P, Delete as fe, Cancel as Se, Search as ct, Edit as dt, Flag as ut } from "@mxenabled/mx-icons";
|
|
30
30
|
import { fromUnixTime as ve } from "date-fns/fromUnixTime";
|
|
31
31
|
import j from "@mui/material/Avatar";
|
|
32
|
-
import
|
|
32
|
+
import z from "@mui/material/ListItem";
|
|
33
33
|
import q from "@mui/material/ListItemAvatar";
|
|
34
|
-
import
|
|
34
|
+
import U from "@mui/material/ListItemText";
|
|
35
35
|
import { f as Me, D as Re } from "./DateFormats-HudZ3Bjs.mjs";
|
|
36
36
|
import { BarChart as mt } from "@mui/x-charts";
|
|
37
37
|
import { L as _t } from "./Loader-CxeBwuPG.mjs";
|
|
38
38
|
import Q from "@mui/material/ListItemButton";
|
|
39
39
|
import X from "@mui/material/ListItemIcon";
|
|
40
|
-
import { b as Fe } from "./CategorySelectorDrawer-
|
|
41
|
-
import { D as ae } from "./Dialog-
|
|
42
|
-
import { D as _e } from "./Drawer-
|
|
43
|
-
import { b as
|
|
44
|
-
import yt from "@mui/material/styles/useTheme";
|
|
40
|
+
import { b as Fe } from "./CategorySelectorDrawer-CmaDLhnf.mjs";
|
|
41
|
+
import { D as ae } from "./Dialog-CwWc0AbH.mjs";
|
|
42
|
+
import { D as _e } from "./Drawer-BXqqBMxg.mjs";
|
|
43
|
+
import { b as gt, C as pt, a as ht } from "./CurrencyDialog-DumQCTPO.mjs";
|
|
45
44
|
import Pe from "@mui/material/InputAdornment";
|
|
46
|
-
import
|
|
47
|
-
import { j as
|
|
45
|
+
import yt from "@mui/material/Checkbox";
|
|
46
|
+
import { j as Tt } from "./DateUtil-Bhq59ZVg.mjs";
|
|
48
47
|
import Ne from "@mui/material/Grid";
|
|
49
|
-
import { C as
|
|
50
|
-
import
|
|
48
|
+
import { C as bt } from "./CurrencyInput-adTIRtL3.mjs";
|
|
49
|
+
import Ct from "@mui/material/Switch";
|
|
51
50
|
var de = /* @__PURE__ */ ((t) => (t[t.Category = 0] = "Category", t[t.Date = 1] = "Date", t[t.Memo = 2] = "Memo", t[t.Tags = 3] = "Tags", t))(de || {}), ie = /* @__PURE__ */ ((t) => (t[t.MerchantBudget = 0] = "MerchantBudget", t[t.SplitTransaction = 1] = "SplitTransaction", t[t.HideTransaction = 2] = "HideTransaction", t[t.MerchantLogo = 3] = "MerchantLogo", t))(ie || {});
|
|
52
|
-
const
|
|
51
|
+
const ft = [
|
|
53
52
|
0,
|
|
54
53
|
1,
|
|
55
54
|
2,
|
|
56
55
|
3
|
|
57
56
|
/* Tags */
|
|
58
|
-
],
|
|
57
|
+
], St = [
|
|
59
58
|
1,
|
|
60
59
|
2,
|
|
61
60
|
3
|
|
62
61
|
/* MerchantLogo */
|
|
63
62
|
], At = ({
|
|
64
63
|
startDate: t,
|
|
65
|
-
onViewHistory:
|
|
64
|
+
onViewHistory: n,
|
|
66
65
|
totalTransaction: s,
|
|
67
66
|
amount: a,
|
|
68
|
-
spentPercentage:
|
|
67
|
+
spentPercentage: r,
|
|
69
68
|
remainingAmount: o,
|
|
70
69
|
iconColor: i,
|
|
71
70
|
icon: _
|
|
72
71
|
}) => {
|
|
73
72
|
const { budgets: c } = O();
|
|
74
73
|
return /* @__PURE__ */ e(l.Fragment, { children: /* @__PURE__ */ m(
|
|
75
|
-
|
|
74
|
+
V,
|
|
76
75
|
{
|
|
77
76
|
sx: {
|
|
78
77
|
bgcolor: "background.paper",
|
|
@@ -93,8 +92,8 @@ const St = [
|
|
|
93
92
|
px: 24
|
|
94
93
|
},
|
|
95
94
|
children: [
|
|
96
|
-
/* @__PURE__ */ e(ee, { bold: !0, variant: "subtitle1", children:
|
|
97
|
-
|
|
95
|
+
/* @__PURE__ */ e(ee, { bold: !0, variant: "subtitle1", children: Tt(t) }),
|
|
96
|
+
n && /* @__PURE__ */ e(me, { endIcon: /* @__PURE__ */ e(Ke, {}), onClick: n, sx: { height: 28 }, children: /* @__PURE__ */ e(x, { bold: !0, variant: "body2", children: c.spending_history }) })
|
|
98
97
|
]
|
|
99
98
|
}
|
|
100
99
|
),
|
|
@@ -102,18 +101,18 @@ const St = [
|
|
|
102
101
|
Ze,
|
|
103
102
|
{
|
|
104
103
|
amount: /* @__PURE__ */ m(L, { sx: { alignItems: "baseline", flexDirection: "row", gap: 4 }, children: [
|
|
105
|
-
/* @__PURE__ */ e(
|
|
104
|
+
/* @__PURE__ */ e(Ve, { children: W(s, "0,0.00") }),
|
|
106
105
|
/* @__PURE__ */ e(ee, { color: "text.secondary", variant: "body2", children: "/" }),
|
|
107
|
-
/* @__PURE__ */ e(ee, { color: "text.secondary", variant: "body2", children:
|
|
106
|
+
/* @__PURE__ */ e(ee, { color: "text.secondary", variant: "body2", children: W(a, "0,0.00") })
|
|
108
107
|
] }),
|
|
109
108
|
completeColor: `${i}.main`,
|
|
110
109
|
icon: _,
|
|
111
110
|
label: c.spent_label,
|
|
112
|
-
leftLabel: E(c.percent_spent,
|
|
113
|
-
percentComplete:
|
|
111
|
+
leftLabel: E(c.percent_spent, r.toFixed()),
|
|
112
|
+
percentComplete: r,
|
|
114
113
|
rightLabel: E(
|
|
115
114
|
c.balance_left,
|
|
116
|
-
|
|
115
|
+
W(o, "0,0.00")
|
|
117
116
|
),
|
|
118
117
|
sx: {
|
|
119
118
|
pb: 24,
|
|
@@ -125,15 +124,15 @@ const St = [
|
|
|
125
124
|
]
|
|
126
125
|
}
|
|
127
126
|
) });
|
|
128
|
-
},
|
|
127
|
+
}, xt = ({
|
|
129
128
|
merchantBudget: t,
|
|
130
|
-
transaction:
|
|
129
|
+
transaction: n,
|
|
131
130
|
onClose: s,
|
|
132
131
|
isOpen: a,
|
|
133
|
-
setCurrencyDialogAction:
|
|
132
|
+
setCurrencyDialogAction: r,
|
|
134
133
|
renderingToast: o
|
|
135
134
|
}) => {
|
|
136
|
-
const { budgets: i, common: _ } = O(), { sortedTransactions: c } = R(), d = l.useMemo(() => c.reduce((h, I) => I.parent_guid ? h : h + I.amount, 0), [c]), { remainingAmount: u, spentPercentage:
|
|
135
|
+
const { budgets: i, common: _ } = O(), { sortedTransactions: c } = R(), d = l.useMemo(() => c.reduce((h, I) => I.parent_guid ? h : h + I.amount, 0), [c]), { remainingAmount: u, spentPercentage: g, iconColor: p } = qe(
|
|
137
136
|
d,
|
|
138
137
|
t.amount ?? 0
|
|
139
138
|
);
|
|
@@ -147,9 +146,9 @@ const St = [
|
|
|
147
146
|
},
|
|
148
147
|
isOpen: a,
|
|
149
148
|
onClose: s,
|
|
150
|
-
onPrimaryAction: () =>
|
|
149
|
+
onPrimaryAction: () => r(Ee.EDIT),
|
|
151
150
|
onSecondaryAction: () => {
|
|
152
|
-
|
|
151
|
+
r(Ee.DELETE);
|
|
153
152
|
},
|
|
154
153
|
primaryText: i.details_edit_button,
|
|
155
154
|
secondaryColor: "error",
|
|
@@ -168,14 +167,14 @@ const St = [
|
|
|
168
167
|
icon: /* @__PURE__ */ e(
|
|
169
168
|
Ce,
|
|
170
169
|
{
|
|
171
|
-
categoryGuid:
|
|
172
|
-
merchantGuid:
|
|
170
|
+
categoryGuid: n.top_level_category_guid || "",
|
|
171
|
+
merchantGuid: n.merchant_guid || ""
|
|
173
172
|
}
|
|
174
173
|
),
|
|
175
|
-
iconColor:
|
|
174
|
+
iconColor: p,
|
|
176
175
|
remainingAmount: u,
|
|
177
|
-
spentPercentage:
|
|
178
|
-
startDate:
|
|
176
|
+
spentPercentage: g,
|
|
177
|
+
startDate: n.date,
|
|
179
178
|
totalTransaction: d
|
|
180
179
|
}
|
|
181
180
|
),
|
|
@@ -184,29 +183,29 @@ const St = [
|
|
|
184
183
|
]
|
|
185
184
|
}
|
|
186
185
|
);
|
|
187
|
-
},
|
|
186
|
+
}, Nt = w(xt);
|
|
188
187
|
var Ee = /* @__PURE__ */ ((t) => (t.CREATE = "create", t.EDIT = "edit", t.DELETE = "delete", t))(Ee || {});
|
|
189
|
-
const
|
|
190
|
-
const [
|
|
191
|
-
addMerchantBudget:
|
|
192
|
-
updateMerchantBudget:
|
|
188
|
+
const It = w(({ transaction: t }) => {
|
|
189
|
+
const [n, s] = l.useState(null), [a, r] = l.useState(""), [o, i] = l.useState(!1), _ = l.useRef(!1), [c, d] = l.useState(null), u = F(), {
|
|
190
|
+
addMerchantBudget: g,
|
|
191
|
+
updateMerchantBudget: p,
|
|
193
192
|
deleteMerchantBudget: h,
|
|
194
193
|
getMerchantBudgetByMerchantGuid: I,
|
|
195
194
|
alert: M,
|
|
196
195
|
setAlert: B
|
|
197
|
-
} =
|
|
198
|
-
d(
|
|
199
|
-
},
|
|
196
|
+
} = rt(), { setFilter: k } = R(), { accounts: f } = ot(), A = u.palette.mode === "dark" ? "grey.800" : "grey.100", { budgets: y, common: Z } = O(), { announce: se, ariaLive: le } = Ae(), [te, $] = l.useState(!1), b = t?.merchant_guid ? I(t.merchant_guid) : void 0, K = () => {
|
|
197
|
+
d(n), s(null), r("");
|
|
198
|
+
}, re = () => {
|
|
200
199
|
b ? $(!0) : s(
|
|
201
200
|
"create"
|
|
202
201
|
/* CREATE */
|
|
203
202
|
);
|
|
204
|
-
},
|
|
203
|
+
}, H = {
|
|
205
204
|
create: {
|
|
206
205
|
content: E(
|
|
207
206
|
y.create_budget_content,
|
|
208
207
|
/* @__PURE__ */ e("strong", { children: t.description }),
|
|
209
|
-
`${
|
|
208
|
+
`${W(t.amount, "0,0.00")}`
|
|
210
209
|
),
|
|
211
210
|
title: y.dialog_create_budget_title,
|
|
212
211
|
primaryButtonText: y.dialog_primary_button_text,
|
|
@@ -222,7 +221,7 @@ const Dt = w(({ transaction: t }) => {
|
|
|
222
221
|
y.alert_budget_created,
|
|
223
222
|
t.description
|
|
224
223
|
),
|
|
225
|
-
apiTrigger: async () => await
|
|
224
|
+
apiTrigger: async () => await g(t.merchant_guid, Number(a))
|
|
226
225
|
},
|
|
227
226
|
edit: {
|
|
228
227
|
content: E(
|
|
@@ -243,7 +242,7 @@ const Dt = w(({ transaction: t }) => {
|
|
|
243
242
|
y.success_alert_edit_merchant_budget,
|
|
244
243
|
t.description
|
|
245
244
|
),
|
|
246
|
-
apiTrigger: async () => await
|
|
245
|
+
apiTrigger: async () => await p({
|
|
247
246
|
...b,
|
|
248
247
|
amount: Number(a)
|
|
249
248
|
})
|
|
@@ -272,8 +271,8 @@ const Dt = w(({ transaction: t }) => {
|
|
|
272
271
|
}, oe = async () => {
|
|
273
272
|
if (_.current) return;
|
|
274
273
|
_.current = !0;
|
|
275
|
-
const { apiTrigger: v, successAlertMessage: S, errorAlertMessage: T } =
|
|
276
|
-
K(), i(!D), B(J), se(J), D &&
|
|
274
|
+
const { apiTrigger: v, successAlertMessage: S, errorAlertMessage: T } = H[n], { isSuccess: D } = await v(), J = D ? S : T;
|
|
275
|
+
K(), i(!D), B(J), se(J), D && n === "delete" && $(!1), _.current = !1;
|
|
277
276
|
};
|
|
278
277
|
l.useEffect(() => {
|
|
279
278
|
const v = {
|
|
@@ -294,7 +293,7 @@ const Dt = w(({ transaction: t }) => {
|
|
|
294
293
|
closeAriaLabel: Z.close_aria,
|
|
295
294
|
handleClose: () => B(""),
|
|
296
295
|
message: M,
|
|
297
|
-
onActionClick:
|
|
296
|
+
onActionClick: H[c]?.errorRetryAction,
|
|
298
297
|
open: !!M,
|
|
299
298
|
severity: o ? "error" : "success",
|
|
300
299
|
showAction: o,
|
|
@@ -303,79 +302,79 @@ const Dt = w(({ transaction: t }) => {
|
|
|
303
302
|
);
|
|
304
303
|
return /* @__PURE__ */ m(l.Fragment, { children: [
|
|
305
304
|
le,
|
|
306
|
-
/* @__PURE__ */ e(
|
|
307
|
-
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor:
|
|
305
|
+
/* @__PURE__ */ e(z, { disableGutters: !0, disablePadding: !0, children: /* @__PURE__ */ m(Q, { onClick: re, children: [
|
|
306
|
+
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor: A }, variant: "rounded", children: /* @__PURE__ */ e(P, { name: "bubble_chart", sx: { color: "text.primary" } }) }) }),
|
|
308
307
|
/* @__PURE__ */ e(
|
|
309
|
-
|
|
308
|
+
U,
|
|
310
309
|
{
|
|
311
310
|
primary: y.add_merchant_budget_primary_text,
|
|
312
|
-
|
|
313
|
-
|
|
311
|
+
secondary: /* @__PURE__ */ e(x, { bold: !0, sx: { color: "text.primary" }, variant: "body1", children: b ? `${W(b.amount, "0,0.00")} / ${Z.month_text}` : y.add_merchant_budget_secondary_text }),
|
|
312
|
+
slotProps: { primary: { variant: "caption", fontSize: 11, fontWeight: "normal" } }
|
|
314
313
|
}
|
|
315
314
|
),
|
|
316
315
|
/* @__PURE__ */ e(X, { children: /* @__PURE__ */ e(P, { name: "chevron_right", sx: { color: "text.primary" } }) })
|
|
317
316
|
] }) }),
|
|
318
317
|
!!b && /* @__PURE__ */ e(
|
|
319
|
-
|
|
318
|
+
Nt,
|
|
320
319
|
{
|
|
321
320
|
isOpen: te,
|
|
322
321
|
merchantBudget: b,
|
|
323
322
|
onClose: () => $(!1),
|
|
324
323
|
renderingToast: () => M && N(),
|
|
325
324
|
setCurrencyDialogAction: (v) => {
|
|
326
|
-
v === "edit" &&
|
|
325
|
+
v === "edit" && r(b?.amount.toString() || ""), s(v);
|
|
327
326
|
},
|
|
328
327
|
transaction: t
|
|
329
328
|
}
|
|
330
329
|
),
|
|
331
|
-
|
|
332
|
-
|
|
330
|
+
n && /* @__PURE__ */ e(
|
|
331
|
+
gt,
|
|
333
332
|
{
|
|
334
333
|
closeAriaLabel: Z.close_aria,
|
|
335
|
-
content:
|
|
336
|
-
handleInputChange:
|
|
334
|
+
content: H[n].content,
|
|
335
|
+
handleInputChange: r,
|
|
337
336
|
handleModalClose: K,
|
|
338
337
|
handlePrimaryAction: oe,
|
|
339
338
|
handleSecondaryAction: K,
|
|
340
|
-
inputLabel:
|
|
339
|
+
inputLabel: n !== "delete" ? Z.amount_text : "",
|
|
341
340
|
inputValue: a,
|
|
342
|
-
isOpen: !!
|
|
343
|
-
primaryText:
|
|
341
|
+
isOpen: !!n,
|
|
342
|
+
primaryText: H[n].primaryButtonText,
|
|
344
343
|
secondaryText: Z.cancel_button,
|
|
345
|
-
title:
|
|
344
|
+
title: H[n].title
|
|
346
345
|
}
|
|
347
346
|
),
|
|
348
347
|
!!M && N()
|
|
349
348
|
] });
|
|
350
|
-
}),
|
|
351
|
-
const { addOrUpdateTransactionRule:
|
|
352
|
-
await s({ ...t, category_guid:
|
|
349
|
+
}), Dt = ({ transaction: t }) => {
|
|
350
|
+
const { addOrUpdateTransactionRule: n, updateTransaction: s } = R(), { categories: a } = we(), { onEvent: r } = G(), { setShouldDisableDrawerScroll: o, updateManualTransaction: i } = ne(), { transactions: _ } = O(), c = F(), [d, u] = l.useState(!1), [g, p] = l.useState(""), h = async (f) => {
|
|
351
|
+
await s({ ...t, category_guid: g }), f && await n(g, t), p(""), r(Y.TRANSACTION_DETAILS_CLICK_CATEGORY, {
|
|
353
352
|
transaction_guid: t.guid
|
|
354
353
|
});
|
|
355
354
|
}, I = (f) => {
|
|
356
355
|
if (t.is_manual && !t.guid) {
|
|
357
|
-
const
|
|
356
|
+
const A = a.find((y) => y.guid === f);
|
|
358
357
|
i({
|
|
359
358
|
...t,
|
|
360
|
-
category:
|
|
359
|
+
category: A?.name,
|
|
361
360
|
category_guid: f,
|
|
362
|
-
top_level_category_guid:
|
|
361
|
+
top_level_category_guid: A?.parent_guid || f
|
|
363
362
|
});
|
|
364
363
|
} else
|
|
365
|
-
|
|
364
|
+
p(f);
|
|
366
365
|
M();
|
|
367
366
|
}, M = () => {
|
|
368
367
|
u(!1), o(!1);
|
|
369
368
|
}, B = l.useMemo(
|
|
370
|
-
() => a.find((f) => f.guid ===
|
|
371
|
-
[
|
|
369
|
+
() => a.find((f) => f.guid === g),
|
|
370
|
+
[g]
|
|
372
371
|
), k = c.palette.mode === "dark" ? "grey.800" : "grey.100";
|
|
373
|
-
return /* @__PURE__ */ m(
|
|
372
|
+
return /* @__PURE__ */ m(z, { disableGutters: !0, disablePadding: !0, children: [
|
|
374
373
|
/* @__PURE__ */ m(
|
|
375
374
|
Q,
|
|
376
375
|
{
|
|
377
376
|
onClick: () => {
|
|
378
|
-
|
|
377
|
+
r(C.ON_TRANSACTION_CATEGORY_CLICK), u(!0);
|
|
379
378
|
},
|
|
380
379
|
children: [
|
|
381
380
|
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor: k }, variant: "rounded", children: /* @__PURE__ */ e(
|
|
@@ -388,11 +387,11 @@ const Dt = w(({ transaction: t }) => {
|
|
|
388
387
|
}
|
|
389
388
|
) }) }),
|
|
390
389
|
/* @__PURE__ */ e(
|
|
391
|
-
|
|
390
|
+
U,
|
|
392
391
|
{
|
|
393
392
|
primary: _.category_title,
|
|
394
|
-
|
|
395
|
-
|
|
393
|
+
secondary: /* @__PURE__ */ e(x, { bold: !0, sx: { color: "text.primary" }, variant: "body1", children: t.category ?? _.actions_select_a_category }),
|
|
394
|
+
slotProps: { primary: { variant: "caption", fontSize: 11, fontWeight: "normal" } }
|
|
396
395
|
}
|
|
397
396
|
),
|
|
398
397
|
/* @__PURE__ */ e(X, { children: /* @__PURE__ */ e(P, { name: "chevron_right", sx: { color: "text.primary" } }) })
|
|
@@ -418,8 +417,8 @@ const Dt = w(({ transaction: t }) => {
|
|
|
418
417
|
t.description
|
|
419
418
|
)
|
|
420
419
|
},
|
|
421
|
-
isOpen: !!
|
|
422
|
-
onClose: () =>
|
|
420
|
+
isOpen: !!g,
|
|
421
|
+
onClose: () => p(""),
|
|
423
422
|
onPrimaryAction: () => h(!0),
|
|
424
423
|
onSecondaryAction: () => h(!1),
|
|
425
424
|
primaryText: _.actions_apply_to_all,
|
|
@@ -432,31 +431,31 @@ const Dt = w(({ transaction: t }) => {
|
|
|
432
431
|
}
|
|
433
432
|
)
|
|
434
433
|
] });
|
|
435
|
-
},
|
|
436
|
-
const { onEvent:
|
|
434
|
+
}, vt = ({ transaction: t }) => {
|
|
435
|
+
const { onEvent: n } = G(), { updateTransaction: s } = R(), { updateManualTransaction: a } = ne(), { common: r, transactions: o } = O(), i = F(), [_, c] = l.useState(!1), [d, u] = l.useState(t.date), g = (I) => {
|
|
437
436
|
u(Ie(I));
|
|
438
|
-
},
|
|
437
|
+
}, p = async () => {
|
|
439
438
|
if (t.is_manual && !t.guid) {
|
|
440
439
|
a({ ...t, date: d }), c(!1);
|
|
441
440
|
return;
|
|
442
441
|
}
|
|
443
|
-
await s({ ...t, date: d }),
|
|
442
|
+
await s({ ...t, date: d }), n(Y.TRANSACTION_DETAILS_CLICK_DATE, { transaction_guid: t.guid }), c(!1);
|
|
444
443
|
}, h = i.palette.mode === "dark" ? "grey.800" : "grey.100";
|
|
445
|
-
return /* @__PURE__ */ m(
|
|
444
|
+
return /* @__PURE__ */ m(z, { className: "mx-txn-date-action", disableGutters: !0, disablePadding: !0, children: [
|
|
446
445
|
/* @__PURE__ */ m(
|
|
447
446
|
Q,
|
|
448
447
|
{
|
|
449
448
|
onClick: () => {
|
|
450
|
-
|
|
449
|
+
n(C.ON_TRANSACTION_DATE_CLICK), c(!0);
|
|
451
450
|
},
|
|
452
451
|
children: [
|
|
453
452
|
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor: h }, variant: "rounded", children: /* @__PURE__ */ e(P, { name: "calendar_month", sx: { color: "text.primary" } }) }) }),
|
|
454
453
|
/* @__PURE__ */ e(
|
|
455
|
-
|
|
454
|
+
U,
|
|
456
455
|
{
|
|
457
456
|
primary: o.date_title,
|
|
458
|
-
|
|
459
|
-
|
|
457
|
+
secondary: /* @__PURE__ */ e(x, { bold: !0, sx: { color: "text.primary" }, variant: "body1", children: Me(ve(t.date), Re.YEAR_MONTH_DAY) }),
|
|
458
|
+
slotProps: { primary: { variant: "caption", fontSize: 11, fontWeight: "normal" } }
|
|
460
459
|
}
|
|
461
460
|
),
|
|
462
461
|
/* @__PURE__ */ e(X, { children: /* @__PURE__ */ e(P, { name: "chevron_right", sx: { color: "text.primary" } }) })
|
|
@@ -466,44 +465,44 @@ const Dt = w(({ transaction: t }) => {
|
|
|
466
465
|
/* @__PURE__ */ e(
|
|
467
466
|
_e,
|
|
468
467
|
{
|
|
469
|
-
ariaLabelClose:
|
|
468
|
+
ariaLabelClose: r.close_aria,
|
|
470
469
|
isOpen: _,
|
|
471
470
|
onClose: () => c(!1),
|
|
472
|
-
onPrimaryAction:
|
|
473
|
-
primaryText:
|
|
474
|
-
secondaryText:
|
|
471
|
+
onPrimaryAction: p,
|
|
472
|
+
primaryText: r.save_button,
|
|
473
|
+
secondaryText: r.cancel_button,
|
|
475
474
|
title: o.date_edit_title,
|
|
476
475
|
children: /* @__PURE__ */ e(L, { alignItems: "center", mt: 40, children: /* @__PURE__ */ e(
|
|
477
|
-
|
|
476
|
+
pt,
|
|
478
477
|
{
|
|
479
478
|
beginDate: ve(d),
|
|
480
479
|
copy: {
|
|
481
480
|
nextAria: o.date_next_aria,
|
|
482
481
|
prevAria: o.date_prev_aria,
|
|
483
|
-
today:
|
|
482
|
+
today: r.date_range_picker.today
|
|
484
483
|
},
|
|
485
|
-
onDateSelected:
|
|
484
|
+
onDateSelected: g,
|
|
486
485
|
selectionType: ht.Single
|
|
487
486
|
}
|
|
488
487
|
) })
|
|
489
488
|
}
|
|
490
489
|
)
|
|
491
490
|
] });
|
|
492
|
-
},
|
|
493
|
-
const { onEvent:
|
|
494
|
-
await s(t.guid),
|
|
491
|
+
}, Et = ({ transaction: t }) => {
|
|
492
|
+
const { onEvent: n } = G(), { removeTransaction: s } = R(), { setShouldDisableDrawerScroll: a } = ne(), { common: r, transactions: o } = O(), [i, _] = l.useState(!1), c = async () => {
|
|
493
|
+
await s(t.guid), n(C.ON_TRANSACTION_DELETE_DELETED);
|
|
495
494
|
};
|
|
496
|
-
return /* @__PURE__ */ m(
|
|
497
|
-
t && /* @__PURE__ */ e(
|
|
495
|
+
return /* @__PURE__ */ m(V, { className: "mx-txn-delete", children: [
|
|
496
|
+
t && /* @__PURE__ */ e(z, { disableGutters: !0, disablePadding: !0, children: /* @__PURE__ */ m(
|
|
498
497
|
Q,
|
|
499
498
|
{
|
|
500
499
|
onClick: () => {
|
|
501
|
-
|
|
500
|
+
n(C.ON_TRANSACTION_DELETE_CLICK), a(!0), _(!0);
|
|
502
501
|
},
|
|
503
502
|
children: [
|
|
504
503
|
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { variant: "rounded", children: /* @__PURE__ */ e(fe, { color: "secondary", fontSize: "small" }) }) }),
|
|
505
504
|
/* @__PURE__ */ e(
|
|
506
|
-
|
|
505
|
+
U,
|
|
507
506
|
{
|
|
508
507
|
primary: o.manual_transaction_delete_title,
|
|
509
508
|
secondary: o.manual_transaction_delete_subtitle
|
|
@@ -522,29 +521,29 @@ const Dt = w(({ transaction: t }) => {
|
|
|
522
521
|
a(!1), _(!1);
|
|
523
522
|
},
|
|
524
523
|
onPrimaryAction: c,
|
|
525
|
-
onSecondaryAction: () =>
|
|
526
|
-
primaryText:
|
|
527
|
-
secondaryText:
|
|
528
|
-
children: /* @__PURE__ */ e(
|
|
524
|
+
onSecondaryAction: () => n(C.ON_TRANSACTION_DELETE_CANCEL),
|
|
525
|
+
primaryText: r.delete_button,
|
|
526
|
+
secondaryText: r.cancel_button,
|
|
527
|
+
children: /* @__PURE__ */ e(x, { variant: "subtitle1", children: o.manual_transaction_delete_description })
|
|
529
528
|
}
|
|
530
529
|
)
|
|
531
530
|
] });
|
|
532
|
-
},
|
|
533
|
-
const { onEvent:
|
|
534
|
-
await s({ ...t, merchant_guid: "" }),
|
|
531
|
+
}, Ot = w(Et), Lt = ({ transaction: t }) => {
|
|
532
|
+
const { onEvent: n } = G(), { updateTransaction: s } = R(), { setShouldDisableDrawerScroll: a } = ne(), { common: r, transactions: o } = O(), i = F(), [_, c] = l.useState(!1), d = async () => {
|
|
533
|
+
await s({ ...t, merchant_guid: "" }), n(Y.TRANSACTION_DETAILS_CLICK_DELETE_LOGO, {
|
|
535
534
|
transaction_guid: t.guid
|
|
536
535
|
});
|
|
537
536
|
}, u = i.palette.mode === "dark" ? "grey.800" : "grey.100";
|
|
538
|
-
return /* @__PURE__ */ e(l.Fragment, { children: t && /* @__PURE__ */ m(
|
|
537
|
+
return /* @__PURE__ */ e(l.Fragment, { children: t && /* @__PURE__ */ m(z, { className: "mx-txn-delete-logo", disableGutters: !0, disablePadding: !0, children: [
|
|
539
538
|
/* @__PURE__ */ m(
|
|
540
539
|
Q,
|
|
541
540
|
{
|
|
542
541
|
onClick: () => {
|
|
543
|
-
|
|
542
|
+
n(C.ON_TRANSACTION_DELETE_LOGO_CLICK), c(!0);
|
|
544
543
|
},
|
|
545
544
|
children: [
|
|
546
545
|
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor: u }, variant: "rounded", children: /* @__PURE__ */ e(P, { name: "delete", sx: { color: "text.primary" } }) }) }),
|
|
547
|
-
/* @__PURE__ */ e(
|
|
546
|
+
/* @__PURE__ */ e(U, { primary: o.merchant_logo_title, secondary: o.merchant_logo_desc }),
|
|
548
547
|
/* @__PURE__ */ e(X, { children: /* @__PURE__ */ e(P, { name: "chevron_right", sx: { color: "text.primary" } }) })
|
|
549
548
|
]
|
|
550
549
|
}
|
|
@@ -558,37 +557,37 @@ const Dt = w(({ transaction: t }) => {
|
|
|
558
557
|
a(!1), c(!1);
|
|
559
558
|
},
|
|
560
559
|
onPrimaryAction: d,
|
|
561
|
-
onSecondaryAction: () =>
|
|
562
|
-
primaryText:
|
|
563
|
-
secondaryText:
|
|
560
|
+
onSecondaryAction: () => n(C.ON_TRANSACTION_DELETE_LOGO_CANCEL),
|
|
561
|
+
primaryText: r.delete_button,
|
|
562
|
+
secondaryText: r.cancel_button,
|
|
564
563
|
title: o.merchant_logo_modal_title,
|
|
565
564
|
children: [
|
|
566
|
-
/* @__PURE__ */ e(
|
|
567
|
-
/* @__PURE__ */ e(
|
|
565
|
+
/* @__PURE__ */ e(x, { variant: "subtitle1", children: o.merchant_logo_modal_desc }),
|
|
566
|
+
/* @__PURE__ */ e(x, { bold: !0, variant: "subtitle1", children: ` ${o.merchant_logo_modal_desc_bold}` })
|
|
568
567
|
]
|
|
569
568
|
}
|
|
570
569
|
)
|
|
571
570
|
] }) });
|
|
572
|
-
},
|
|
573
|
-
const { onEvent:
|
|
571
|
+
}, wt = w(Lt), Mt = ({ transaction: t }) => {
|
|
572
|
+
const { onEvent: n } = G(), { setAlert: s, updateTransaction: a } = R(), { setShouldDisableDrawerScroll: r } = ne(), { common: o, transactions: i } = O(), _ = F(), [c, d] = l.useState(!1), u = t.is_hidden, g = async () => {
|
|
574
573
|
try {
|
|
575
|
-
await a({ ...t, is_hidden: !t.is_hidden }),
|
|
574
|
+
await a({ ...t, is_hidden: !t.is_hidden }), n(
|
|
576
575
|
u ? C.ON_TRANSACTION_UNHIDDEN : C.ON_TRANSACTION_HIDDEN
|
|
577
576
|
), s(u ? i.transaction_included : i.transaction_excluded);
|
|
578
577
|
} catch {
|
|
579
578
|
s(u ? i.transaction_not_included : i.transaction_not_excluded);
|
|
580
579
|
}
|
|
581
|
-
},
|
|
582
|
-
return /* @__PURE__ */ e(l.Fragment, { children: t && /* @__PURE__ */ m(
|
|
580
|
+
}, p = _.palette.mode === "dark" ? "grey.800" : "grey.100";
|
|
581
|
+
return /* @__PURE__ */ e(l.Fragment, { children: t && /* @__PURE__ */ m(z, { className: "mx-txn-hide-transaction", disableGutters: !0, disablePadding: !0, children: [
|
|
583
582
|
/* @__PURE__ */ m(
|
|
584
583
|
Q,
|
|
585
584
|
{
|
|
586
585
|
"aria-checked": u,
|
|
587
586
|
"aria-labelledby": "hide-transaction-text",
|
|
588
587
|
onClick: () => {
|
|
589
|
-
|
|
588
|
+
n(
|
|
590
589
|
u ? C.ON_TRANSACTION_UNHIDE_CLICK : C.ON_TRANSACTION_HIDE_CLICK
|
|
591
|
-
),
|
|
590
|
+
), n(
|
|
592
591
|
u ? "transaction_details_click_unhide_transaction" : "transaction_details_click_hide_transaction",
|
|
593
592
|
{
|
|
594
593
|
transaction_guid: t.guid
|
|
@@ -597,9 +596,9 @@ const Dt = w(({ transaction: t }) => {
|
|
|
597
596
|
},
|
|
598
597
|
role: "switch",
|
|
599
598
|
children: [
|
|
600
|
-
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor:
|
|
599
|
+
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor: p }, variant: "rounded", children: u ? /* @__PURE__ */ e(P, { name: "visibility_off", sx: { color: "text.primary" } }) : /* @__PURE__ */ e(P, { name: "visibility", sx: { color: "text.primary" } }) }) }),
|
|
601
600
|
/* @__PURE__ */ e(
|
|
602
|
-
|
|
601
|
+
U,
|
|
603
602
|
{
|
|
604
603
|
id: "hide-transaction-text",
|
|
605
604
|
primary: i.exclude_transaction,
|
|
@@ -607,10 +606,10 @@ const Dt = w(({ transaction: t }) => {
|
|
|
607
606
|
}
|
|
608
607
|
),
|
|
609
608
|
/* @__PURE__ */ e(X, { "aria-hidden": "true", children: /* @__PURE__ */ e(
|
|
610
|
-
|
|
609
|
+
Ct,
|
|
611
610
|
{
|
|
612
611
|
checked: u,
|
|
613
|
-
|
|
612
|
+
slotProps: { input: { tabIndex: -1 } },
|
|
614
613
|
sx: { pointerEvents: "none" },
|
|
615
614
|
tabIndex: -1
|
|
616
615
|
}
|
|
@@ -626,72 +625,64 @@ const Dt = w(({ transaction: t }) => {
|
|
|
626
625
|
},
|
|
627
626
|
isOpen: c,
|
|
628
627
|
onClose: () => {
|
|
629
|
-
|
|
628
|
+
r(!1), d(!1);
|
|
630
629
|
},
|
|
631
|
-
onPrimaryAction:
|
|
632
|
-
onSecondaryAction: () =>
|
|
630
|
+
onPrimaryAction: g,
|
|
631
|
+
onSecondaryAction: () => n(
|
|
633
632
|
u ? C.ON_TRANSACTION_UNHIDE_CANCEL_CLICK : C.ON_TRANSACTION_HIDE_CANCEL_CLICK
|
|
634
633
|
),
|
|
635
634
|
primaryText: u ? i.include : i.exclude,
|
|
636
635
|
secondaryText: o.cancel_button,
|
|
637
|
-
children: /* @__PURE__ */ e(
|
|
636
|
+
children: /* @__PURE__ */ e(x, { truncate: !1, variant: "subtitle1", children: u ? i.including_transaction : i.excluding_transaction })
|
|
638
637
|
}
|
|
639
638
|
)
|
|
640
639
|
] }) });
|
|
641
|
-
},
|
|
642
|
-
const { amount:
|
|
640
|
+
}, Rt = w(Mt), He = ({ transaction: t }) => {
|
|
641
|
+
const { amount: n, description: s, isIncome: a, merchant_guid: r, payee: o, top_level_category_guid: i } = t;
|
|
643
642
|
return /* @__PURE__ */ m(L, { className: "mx-txn-amount-header", direction: "row", gap: 12, px: 16, py: 24, children: [
|
|
644
643
|
/* @__PURE__ */ e(
|
|
645
644
|
Ce,
|
|
646
645
|
{
|
|
647
646
|
categoryGuid: i || "",
|
|
648
|
-
merchantGuid:
|
|
647
|
+
merchantGuid: r || "",
|
|
649
648
|
size: 64
|
|
650
649
|
}
|
|
651
650
|
),
|
|
652
651
|
/* @__PURE__ */ m(L, { overflow: "hidden'", children: [
|
|
653
|
-
/* @__PURE__ */ e(
|
|
652
|
+
/* @__PURE__ */ e(x, { bold: !0, mb: 4, truncate: !0, variant: "body1", children: s || o }),
|
|
654
653
|
/* @__PURE__ */ m(ee, { color: a ? "success.main" : "text.primary", truncate: !0, variant: "h1", children: [
|
|
655
654
|
a ? "+" : "",
|
|
656
|
-
|
|
655
|
+
W(n, "0,0.00")
|
|
657
656
|
] })
|
|
658
657
|
] })
|
|
659
658
|
] });
|
|
660
|
-
},
|
|
661
|
-
const { onEvent:
|
|
659
|
+
}, kt = ({ transaction: t }) => {
|
|
660
|
+
const { onEvent: n } = G(), { updateTransaction: s } = R(), { updateManualTransaction: a } = ne(), { common: r, transactions: o } = O(), i = F(), [_, c] = l.useState(!1), [d, u] = l.useState("");
|
|
662
661
|
l.useEffect(() => {
|
|
663
662
|
_ && u(t.memo ? t.memo : "");
|
|
664
663
|
}, [_]);
|
|
665
|
-
const
|
|
664
|
+
const g = async () => {
|
|
666
665
|
if (t.is_manual && !t.guid) {
|
|
667
666
|
a({ ...t, memo: d }), c(!1);
|
|
668
667
|
return;
|
|
669
668
|
}
|
|
670
|
-
await s({ ...t, memo: d }),
|
|
671
|
-
},
|
|
672
|
-
return /* @__PURE__ */ m(
|
|
669
|
+
await s({ ...t, memo: d }), n(Y.TRANSACTION_DETAILS_CLICK_MEMO, { transaction_guid: t.guid }), c(!1);
|
|
670
|
+
}, p = i.palette.mode === "dark" ? "grey.800" : "grey.100";
|
|
671
|
+
return /* @__PURE__ */ m(z, { className: "mx-txn-memo-action", disableGutters: !0, disablePadding: !0, children: [
|
|
673
672
|
/* @__PURE__ */ m(
|
|
674
673
|
Q,
|
|
675
674
|
{
|
|
676
675
|
onClick: () => {
|
|
677
|
-
|
|
676
|
+
n(C.ON_TRANSACTION_MEMO_CLICK), c(!0);
|
|
678
677
|
},
|
|
679
678
|
children: [
|
|
680
|
-
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor:
|
|
679
|
+
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor: p }, variant: "rounded", children: /* @__PURE__ */ e(P, { name: "article", sx: { color: "text.primary" } }) }) }),
|
|
681
680
|
/* @__PURE__ */ e(
|
|
682
|
-
|
|
681
|
+
U,
|
|
683
682
|
{
|
|
684
683
|
primary: o.memo_title,
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
A,
|
|
688
|
-
{
|
|
689
|
-
bold: !0,
|
|
690
|
-
sx: { overflowWrap: "break-word", whiteSpace: "wrap", color: "text.primary" },
|
|
691
|
-
variant: "body1",
|
|
692
|
-
children: t.memo ? t.memo : o.memo_desc
|
|
693
|
-
}
|
|
694
|
-
)
|
|
684
|
+
secondary: /* @__PURE__ */ e(x, { bold: !0, sx: { color: "text.primary" }, variant: "body1", children: t.memo ? t.memo : o.memo_desc }),
|
|
685
|
+
slotProps: { primary: { variant: "caption", fontSize: 11, fontWeight: "normal" } }
|
|
695
686
|
}
|
|
696
687
|
),
|
|
697
688
|
/* @__PURE__ */ e(X, { children: /* @__PURE__ */ e(P, { name: "chevron_right", sx: { color: "text.primary" } }) })
|
|
@@ -701,10 +692,10 @@ const Dt = w(({ transaction: t }) => {
|
|
|
701
692
|
/* @__PURE__ */ m(
|
|
702
693
|
_e,
|
|
703
694
|
{
|
|
704
|
-
ariaLabelClose:
|
|
695
|
+
ariaLabelClose: r.close_aria,
|
|
705
696
|
isOpen: _,
|
|
706
697
|
onClose: () => c(!1),
|
|
707
|
-
onPrimaryAction:
|
|
698
|
+
onPrimaryAction: g,
|
|
708
699
|
title: o.memo_title,
|
|
709
700
|
children: [
|
|
710
701
|
/* @__PURE__ */ e(He, { transaction: t }),
|
|
@@ -726,45 +717,45 @@ const Dt = w(({ transaction: t }) => {
|
|
|
726
717
|
}
|
|
727
718
|
)
|
|
728
719
|
] });
|
|
729
|
-
},
|
|
720
|
+
}, Pt = w(kt), Gt = ({
|
|
730
721
|
index: t,
|
|
731
|
-
onDeleteRow:
|
|
722
|
+
onDeleteRow: n,
|
|
732
723
|
onCategoryChanged: s,
|
|
733
724
|
onUpdateAmount: a,
|
|
734
|
-
split:
|
|
725
|
+
split: r
|
|
735
726
|
}) => {
|
|
736
|
-
const { onEvent: o } = G(), { transactions: i } = O(), [_, c] = l.useState(`${
|
|
727
|
+
const { onEvent: o } = G(), { transactions: i } = O(), [_, c] = l.useState(`${r.amount}`), [d, u] = l.useState(!1), g = t === 0, p = (h) => {
|
|
737
728
|
isNaN(Number(h)) || (c(h), a(t, Number(h)));
|
|
738
729
|
};
|
|
739
|
-
return /* @__PURE__ */ m(
|
|
740
|
-
/* @__PURE__ */ m(Ne, { alignItems:
|
|
741
|
-
/* @__PURE__ */ e(Ne, {
|
|
730
|
+
return /* @__PURE__ */ m(V, { bgcolor: "background.paper", className: "mx-txn-split-manager-row", pb: 4, px: 8, children: [
|
|
731
|
+
/* @__PURE__ */ m(Ne, { alignItems: g ? "center" : "start", container: !0, children: [
|
|
732
|
+
/* @__PURE__ */ e(Ne, { size: 7, children: /* @__PURE__ */ m(L, { alignItems: "start", children: [
|
|
742
733
|
/* @__PURE__ */ e(
|
|
743
734
|
me,
|
|
744
735
|
{
|
|
745
736
|
endIcon: /* @__PURE__ */ e(Ke, {}),
|
|
746
737
|
onClick: () => u(!0),
|
|
747
|
-
startIcon: /* @__PURE__ */ e(Oe, { categoryGuid:
|
|
738
|
+
startIcon: /* @__PURE__ */ e(Oe, { categoryGuid: r.top_level_category_guid }),
|
|
748
739
|
sx: { px: 12, py: 8 },
|
|
749
|
-
children:
|
|
740
|
+
children: r.category
|
|
750
741
|
}
|
|
751
742
|
),
|
|
752
|
-
/* @__PURE__ */ e(
|
|
743
|
+
/* @__PURE__ */ e(V, { children: !r.category_guid && /* @__PURE__ */ m(L, { color: "error.main", direction: "row", gap: 8, p: 12, children: [
|
|
753
744
|
/* @__PURE__ */ e("span", { "aria-label": "error", role: "img", children: /* @__PURE__ */ e(Se, { sx: { fontSize: 15 } }) }),
|
|
754
|
-
/* @__PURE__ */ e(
|
|
745
|
+
/* @__PURE__ */ e(x, { variant: "body2", children: i.split_transaction_errors_select_category })
|
|
755
746
|
] }) })
|
|
756
747
|
] }) }),
|
|
757
|
-
/* @__PURE__ */ e(Ne, {
|
|
748
|
+
/* @__PURE__ */ e(Ne, { size: 5, children: g ? /* @__PURE__ */ e("div", { className: "mx-txn-split-manager-row-top-container", children: /* @__PURE__ */ e(x, { children: W(r.amount, "0,0.00") }) }) : /* @__PURE__ */ m(L, { alignItems: "start", children: [
|
|
758
749
|
/* @__PURE__ */ m(L, { alignItems: "start", direction: "row", gap: 8, children: [
|
|
759
750
|
/* @__PURE__ */ e(
|
|
760
|
-
|
|
751
|
+
bt,
|
|
761
752
|
{
|
|
762
753
|
amount: _,
|
|
763
754
|
ariaLabel: i.split_transaction_edit_split_amount,
|
|
764
755
|
label: i.split_transaction_edit_split_amount,
|
|
765
756
|
minAmount: 0.01,
|
|
766
757
|
name: "split-amount-input",
|
|
767
|
-
setAmount:
|
|
758
|
+
setAmount: p,
|
|
768
759
|
sx: {
|
|
769
760
|
".MuiOutlinedInput-input": { p: 12 }
|
|
770
761
|
},
|
|
@@ -777,7 +768,7 @@ const Dt = w(({ transaction: t }) => {
|
|
|
777
768
|
"aria-label": i.split_transaction_delete_split_btn,
|
|
778
769
|
color: "secondary",
|
|
779
770
|
onClick: () => {
|
|
780
|
-
o(C.ON_TRANSACTION_SPLIT_DELETE_CLICK),
|
|
771
|
+
o(C.ON_TRANSACTION_SPLIT_DELETE_CLICK), n(t);
|
|
781
772
|
},
|
|
782
773
|
sx: { w: 44, h: 44 },
|
|
783
774
|
children: /* @__PURE__ */ e(fe, {})
|
|
@@ -786,14 +777,14 @@ const Dt = w(({ transaction: t }) => {
|
|
|
786
777
|
] }),
|
|
787
778
|
!_ && /* @__PURE__ */ m(L, { color: "error.main", direction: "row", gap: 8, py: 12, children: [
|
|
788
779
|
/* @__PURE__ */ e("span", { "aria-label": "error", role: "img", children: /* @__PURE__ */ e(Se, { sx: { fontSize: 15 } }) }),
|
|
789
|
-
/* @__PURE__ */ e(
|
|
780
|
+
/* @__PURE__ */ e(x, { variant: "body2", children: i.split_transaction_errors_enter_an_amount })
|
|
790
781
|
] })
|
|
791
782
|
] }) })
|
|
792
783
|
] }),
|
|
793
784
|
/* @__PURE__ */ e(
|
|
794
785
|
Fe,
|
|
795
786
|
{
|
|
796
|
-
initialSelected:
|
|
787
|
+
initialSelected: r.category_guid,
|
|
797
788
|
onClose: () => u(!1),
|
|
798
789
|
onSelect: (h) => {
|
|
799
790
|
s(t, h), u(!1);
|
|
@@ -803,44 +794,44 @@ const Dt = w(({ transaction: t }) => {
|
|
|
803
794
|
}
|
|
804
795
|
)
|
|
805
796
|
] });
|
|
806
|
-
},
|
|
797
|
+
}, Bt = w(Gt), $t = ({
|
|
807
798
|
onAddSplit: t,
|
|
808
|
-
onCategoryChanged:
|
|
799
|
+
onCategoryChanged: n,
|
|
809
800
|
onDeleteSplit: s,
|
|
810
801
|
onUpdateAmount: a,
|
|
811
|
-
splits:
|
|
802
|
+
splits: r,
|
|
812
803
|
transaction: o
|
|
813
804
|
}) => {
|
|
814
|
-
const { transactions: i } = O(), { onEvent: _ } = G(), [c, d] = l.useState(""), { announce: u, ariaLive:
|
|
805
|
+
const { transactions: i } = O(), { onEvent: _ } = G(), [c, d] = l.useState(""), { announce: u, ariaLive: g } = Ae();
|
|
815
806
|
return l.useEffect(() => {
|
|
816
|
-
if (
|
|
807
|
+
if (r.length <= 1)
|
|
817
808
|
d(i.split_transaction_errors_min_splits), u(i.split_transaction_errors_min_splits);
|
|
818
|
-
else if (
|
|
819
|
-
const
|
|
809
|
+
else if (r[0].amount < 0) {
|
|
810
|
+
const p = E(
|
|
820
811
|
i.split_transaction_errors_totals_must_equal_amount,
|
|
821
|
-
|
|
812
|
+
W(o.amount, "0,0.00")
|
|
822
813
|
);
|
|
823
|
-
d(
|
|
814
|
+
d(p), u(p);
|
|
824
815
|
} else
|
|
825
816
|
d(""), u("");
|
|
826
|
-
}, [
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
817
|
+
}, [r]), /* @__PURE__ */ m(V, { className: "mx-txn-split-manager", children: [
|
|
818
|
+
g,
|
|
819
|
+
r.map((p, h) => /* @__PURE__ */ e(
|
|
820
|
+
Bt,
|
|
830
821
|
{
|
|
831
822
|
index: h,
|
|
832
|
-
onCategoryChanged:
|
|
823
|
+
onCategoryChanged: n,
|
|
833
824
|
onDeleteRow: s,
|
|
834
825
|
onUpdateAmount: a,
|
|
835
|
-
split:
|
|
826
|
+
split: p
|
|
836
827
|
},
|
|
837
828
|
h
|
|
838
829
|
)),
|
|
839
830
|
c && /* @__PURE__ */ m(L, { bgcolor: "background.paper", color: "error.main", direction: "row", gap: 8, p: 16, children: [
|
|
840
831
|
/* @__PURE__ */ e("span", { "aria-label": "error", role: "img", children: /* @__PURE__ */ e(Se, { sx: { fontSize: 15 } }) }),
|
|
841
|
-
/* @__PURE__ */ e(
|
|
832
|
+
/* @__PURE__ */ e(x, { variant: "body2", children: c })
|
|
842
833
|
] }),
|
|
843
|
-
/* @__PURE__ */ e(
|
|
834
|
+
/* @__PURE__ */ e(V, { p: 16, children: /* @__PURE__ */ e(
|
|
844
835
|
me,
|
|
845
836
|
{
|
|
846
837
|
"aria-label": i.split_transaction_add_split_btn,
|
|
@@ -851,14 +842,14 @@ const Dt = w(({ transaction: t }) => {
|
|
|
851
842
|
}
|
|
852
843
|
) })
|
|
853
844
|
] });
|
|
854
|
-
},
|
|
855
|
-
const { onEvent:
|
|
845
|
+
}, Kt = w($t), Ft = ({ transaction: t }) => {
|
|
846
|
+
const { onEvent: n } = G(), { announce: s, ariaLive: a } = Ae(), { splitTransaction: r, unSplitTransaction: o } = R(), { common: i, transactions: _ } = O(), { setShouldDisableDrawerScroll: c } = ne(), { categories: d } = we(), u = F(), g = {
|
|
856
847
|
...t,
|
|
857
848
|
amount: t.amount - 1,
|
|
858
849
|
guid: "",
|
|
859
850
|
has_been_split: !1,
|
|
860
851
|
parent_guid: t.guid
|
|
861
|
-
},
|
|
852
|
+
}, p = {
|
|
862
853
|
...t,
|
|
863
854
|
amount: 1,
|
|
864
855
|
category_guid: void 0,
|
|
@@ -867,9 +858,9 @@ const Dt = w(({ transaction: t }) => {
|
|
|
867
858
|
has_been_split: !1,
|
|
868
859
|
parent_guid: t.guid,
|
|
869
860
|
top_level_category_guid: void 0
|
|
870
|
-
}, [h, I] = l.useState(!1), [M, B] = l.useState(!1), [k, f] = l.useState(!1), [
|
|
871
|
-
const N = [...
|
|
872
|
-
N.push({ ...
|
|
861
|
+
}, [h, I] = l.useState(!1), [M, B] = l.useState(!1), [k, f] = l.useState(!1), [A, y] = l.useState([]), Z = () => {
|
|
862
|
+
const N = [...A];
|
|
863
|
+
N.push({ ...p }), N[0].amount -= 1, y(N), s(
|
|
873
864
|
E(
|
|
874
865
|
_.split_transaction_add_split_announcement,
|
|
875
866
|
N.length
|
|
@@ -877,19 +868,19 @@ const Dt = w(({ transaction: t }) => {
|
|
|
877
868
|
);
|
|
878
869
|
}, se = (N) => {
|
|
879
870
|
if (N > 0) {
|
|
880
|
-
const v =
|
|
871
|
+
const v = A[N], S = [...A];
|
|
881
872
|
S.splice(N, 1), S[0].amount += v.amount, y(S), s(
|
|
882
873
|
E(_.split_transaction_delete_split_announcement, N + 1)
|
|
883
874
|
);
|
|
884
875
|
}
|
|
885
876
|
}, le = (N, v) => {
|
|
886
|
-
const S = [...
|
|
877
|
+
const S = [...A];
|
|
887
878
|
S[N].amount = v, S[0].amount = t.amount - S.reduce(
|
|
888
879
|
(T, D, J) => T + (J !== 0 ? D.amount : 0),
|
|
889
880
|
0
|
|
890
881
|
), y(S);
|
|
891
882
|
}, te = (N, v) => {
|
|
892
|
-
const S = [...
|
|
883
|
+
const S = [...A], T = d.find((D) => D.guid === v);
|
|
893
884
|
T && (S[N] = {
|
|
894
885
|
...S[N],
|
|
895
886
|
category_guid: v,
|
|
@@ -907,35 +898,35 @@ const Dt = w(({ transaction: t }) => {
|
|
|
907
898
|
B(!0);
|
|
908
899
|
return;
|
|
909
900
|
}
|
|
910
|
-
y([{ ...
|
|
901
|
+
y([{ ...g }, { ...p }]), n(Y.TRANSACTION_DETAILS_CLICK_SPLIT, {
|
|
911
902
|
transaction_guid: t.guid
|
|
912
903
|
}), I(!0);
|
|
913
904
|
}, b = async () => {
|
|
914
905
|
if (!k) {
|
|
915
906
|
f(!0);
|
|
916
907
|
try {
|
|
917
|
-
|
|
908
|
+
n(C.ON_TRANSACTION_SPLIT_SAVE_CLICK), await r({ ...t, has_been_split: !0 }, A), I(!1);
|
|
918
909
|
} finally {
|
|
919
910
|
f(!1);
|
|
920
911
|
}
|
|
921
912
|
}
|
|
922
913
|
}, K = async () => {
|
|
923
|
-
k || (
|
|
924
|
-
},
|
|
925
|
-
|
|
914
|
+
k || (n(C.ON_TRANSACTION_SPLIT_CANCEL_CLICK), y([{ ...g }, { ...p }]), f(!1), I(!1));
|
|
915
|
+
}, re = async () => {
|
|
916
|
+
n(Y.TRANSACTION_DETAILS_CLICK_UNSPLIT, {
|
|
926
917
|
transaction_guid: t.guid
|
|
927
918
|
});
|
|
928
919
|
const N = t.parent_guid ?? t.guid;
|
|
929
920
|
await o(N);
|
|
930
|
-
},
|
|
931
|
-
const N =
|
|
921
|
+
}, H = l.useMemo(() => {
|
|
922
|
+
const N = A.some((S) => !S.category_guid), v = A.some((S) => S.amount <= 0);
|
|
932
923
|
return N || v;
|
|
933
|
-
}, [
|
|
934
|
-
return /* @__PURE__ */ e(l.Fragment, { children: t && /* @__PURE__ */ m(
|
|
924
|
+
}, [A]), oe = u.palette.mode === "dark" ? "grey.800" : "grey.100";
|
|
925
|
+
return /* @__PURE__ */ e(l.Fragment, { children: t && /* @__PURE__ */ m(z, { disableGutters: !0, disablePadding: !0, children: [
|
|
935
926
|
/* @__PURE__ */ m(Q, { onClick: $, children: [
|
|
936
927
|
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor: oe }, variant: "rounded", children: /* @__PURE__ */ e(P, { name: "call_split", sx: { color: "text.primary" } }) }) }),
|
|
937
928
|
/* @__PURE__ */ e(
|
|
938
|
-
|
|
929
|
+
U,
|
|
939
930
|
{
|
|
940
931
|
primary: t.has_been_split || t.parent_guid ? _.split_transaction_unsplit_title : _.split_transaction_title,
|
|
941
932
|
secondary: t.has_been_split || t.parent_guid ? _.split_transaction_unsplit_subtitle : _.split_transaction_desc
|
|
@@ -948,7 +939,7 @@ const Dt = w(({ transaction: t }) => {
|
|
|
948
939
|
{
|
|
949
940
|
ariaLabelClose: i.close_aria,
|
|
950
941
|
isOpen: h,
|
|
951
|
-
isPrimaryDisabled:
|
|
942
|
+
isPrimaryDisabled: H || k,
|
|
952
943
|
onClose: K,
|
|
953
944
|
onPrimaryAction: b,
|
|
954
945
|
primaryText: i.save_button,
|
|
@@ -958,13 +949,13 @@ const Dt = w(({ transaction: t }) => {
|
|
|
958
949
|
a,
|
|
959
950
|
/* @__PURE__ */ e(He, { transaction: t }),
|
|
960
951
|
/* @__PURE__ */ e(
|
|
961
|
-
|
|
952
|
+
Kt,
|
|
962
953
|
{
|
|
963
954
|
onAddSplit: Z,
|
|
964
955
|
onCategoryChanged: te,
|
|
965
956
|
onDeleteSplit: se,
|
|
966
957
|
onUpdateAmount: le,
|
|
967
|
-
splits:
|
|
958
|
+
splits: A,
|
|
968
959
|
transaction: t
|
|
969
960
|
}
|
|
970
961
|
)
|
|
@@ -979,9 +970,9 @@ const Dt = w(({ transaction: t }) => {
|
|
|
979
970
|
onClose: () => {
|
|
980
971
|
c(!1), B(!1);
|
|
981
972
|
},
|
|
982
|
-
onPrimaryAction:
|
|
973
|
+
onPrimaryAction: re,
|
|
983
974
|
onSecondaryAction: () => {
|
|
984
|
-
|
|
975
|
+
n(C.ON_TRANSACTION_UNSPLIT_CANCEL);
|
|
985
976
|
},
|
|
986
977
|
primaryText: i.delete_button,
|
|
987
978
|
secondaryText: i.cancel_button,
|
|
@@ -992,21 +983,21 @@ const Dt = w(({ transaction: t }) => {
|
|
|
992
983
|
}
|
|
993
984
|
)
|
|
994
985
|
] }) });
|
|
995
|
-
},
|
|
996
|
-
const t =
|
|
986
|
+
}, Ht = w(Ft), zt = () => {
|
|
987
|
+
const t = F(), { onEvent: n } = G(), { addTag: s } = R(), { transactions: a } = O(), [r, o] = l.useState(!1), [i, _] = l.useState(""), [c, d] = l.useState(""), u = l.useRef(null);
|
|
997
988
|
l.useEffect(() => {
|
|
998
|
-
|
|
999
|
-
}, [
|
|
1000
|
-
const
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
),
|
|
1004
|
-
},
|
|
1005
|
-
|
|
989
|
+
r && u?.current?.focus();
|
|
990
|
+
}, [r]);
|
|
991
|
+
const g = () => {
|
|
992
|
+
n(
|
|
993
|
+
r ? C.ON_TRANSACTION_TAGS_TAG_ADD_CANCEL_CLICK : C.ON_TRANSACTION_TAGS_TAG_ADD_CLICK
|
|
994
|
+
), r || _(""), o(!r);
|
|
995
|
+
}, p = async () => {
|
|
996
|
+
n(C.ON_TRANSACTION_TAGS_TAG_ADDED), await s(i), o(!1);
|
|
1006
997
|
};
|
|
1007
998
|
return l.useEffect(() => {
|
|
1008
999
|
d(i.length > 40 ? a.tags_error_name_must_be_40_chars : "");
|
|
1009
|
-
}, [i]), /* @__PURE__ */ m(
|
|
1000
|
+
}, [i]), /* @__PURE__ */ m(V, { className: "mx-txn-tag-manager-header", children: [
|
|
1010
1001
|
/* @__PURE__ */ m(
|
|
1011
1002
|
L,
|
|
1012
1003
|
{
|
|
@@ -1017,13 +1008,13 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1017
1008
|
px: 24,
|
|
1018
1009
|
py: 16,
|
|
1019
1010
|
children: [
|
|
1020
|
-
/* @__PURE__ */ e(
|
|
1011
|
+
/* @__PURE__ */ e(x, { bold: !0, children: a.tags_your_tags }),
|
|
1021
1012
|
/* @__PURE__ */ e(
|
|
1022
1013
|
me,
|
|
1023
1014
|
{
|
|
1024
|
-
"aria-expanded":
|
|
1015
|
+
"aria-expanded": r,
|
|
1025
1016
|
"aria-label": a.tags_add_tag_btn_aria,
|
|
1026
|
-
onClick:
|
|
1017
|
+
onClick: g,
|
|
1027
1018
|
children: a.tags_add_tag_btn
|
|
1028
1019
|
}
|
|
1029
1020
|
)
|
|
@@ -1034,9 +1025,9 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1034
1025
|
ae,
|
|
1035
1026
|
{
|
|
1036
1027
|
copy: { title: a.tags_add_tag_btn },
|
|
1037
|
-
isOpen:
|
|
1028
|
+
isOpen: r,
|
|
1038
1029
|
onClose: () => o(!1),
|
|
1039
|
-
onPrimaryAction:
|
|
1030
|
+
onPrimaryAction: p,
|
|
1040
1031
|
onSecondaryAction: () => o(!1),
|
|
1041
1032
|
children: [
|
|
1042
1033
|
/* @__PURE__ */ e(
|
|
@@ -1055,8 +1046,8 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1055
1046
|
}
|
|
1056
1047
|
)
|
|
1057
1048
|
] });
|
|
1058
|
-
},
|
|
1059
|
-
const { common: s, transactions: a } = O(),
|
|
1049
|
+
}, Ut = w(zt), Wt = ({ onSearchValueChanged: t, searchValue: n }) => {
|
|
1050
|
+
const { common: s, transactions: a } = O(), r = /* @__PURE__ */ e(
|
|
1060
1051
|
ue,
|
|
1061
1052
|
{
|
|
1062
1053
|
"aria-label": a.tags_cancel_search || "Search",
|
|
@@ -1064,37 +1055,39 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1064
1055
|
children: /* @__PURE__ */ e(Se, {})
|
|
1065
1056
|
}
|
|
1066
1057
|
);
|
|
1067
|
-
return /* @__PURE__ */ e(
|
|
1058
|
+
return /* @__PURE__ */ e(V, { className: "mx-txn-tag-manager-search", px: 24, py: 16, children: /* @__PURE__ */ e(
|
|
1068
1059
|
Le,
|
|
1069
1060
|
{
|
|
1070
|
-
InputProps: {
|
|
1071
|
-
startAdornment: /* @__PURE__ */ e(Pe, { position: "start", children: /* @__PURE__ */ e(ct, { color: "disabled" }) }),
|
|
1072
|
-
endAdornment: /* @__PURE__ */ e(Pe, { position: "end", sx: { padding: 0 }, children: r ? n : null })
|
|
1073
|
-
},
|
|
1074
1061
|
"aria-label": s.search_aria,
|
|
1075
1062
|
name: "search",
|
|
1076
1063
|
onChange: (o) => t(o.target.value),
|
|
1077
1064
|
placeholder: s.search_placeholder,
|
|
1065
|
+
slotProps: {
|
|
1066
|
+
input: {
|
|
1067
|
+
startAdornment: /* @__PURE__ */ e(Pe, { position: "start", children: /* @__PURE__ */ e(ct, { color: "disabled" }) }),
|
|
1068
|
+
endAdornment: /* @__PURE__ */ e(Pe, { position: "end", sx: { padding: 0 }, children: n ? r : null })
|
|
1069
|
+
}
|
|
1070
|
+
},
|
|
1078
1071
|
sx: { bgcolor: "background.paper", width: "100%" },
|
|
1079
|
-
value:
|
|
1072
|
+
value: n
|
|
1080
1073
|
}
|
|
1081
1074
|
) });
|
|
1082
|
-
},
|
|
1083
|
-
const { onEvent: a } = G(), { removeTag:
|
|
1084
|
-
a(C.ON_TRANSACTION_TAGS_TAG_EDIT_SAVED), s && await o({ ...s, name:
|
|
1075
|
+
}, Vt = w(Wt), Yt = ({ onTagChecked: t, selectedTags: n, tag: s }) => {
|
|
1076
|
+
const { onEvent: a } = G(), { removeTag: r, updateTag: o } = R(), { common: i, transactions: _ } = O(), [c, d] = l.useState(!1), [u, g] = l.useState(!1), [p, h] = l.useState(""), [I, M] = l.useState(""), B = async () => {
|
|
1077
|
+
a(C.ON_TRANSACTION_TAGS_TAG_EDIT_SAVED), s && await o({ ...s, name: p }), d(!1);
|
|
1085
1078
|
}, k = async () => {
|
|
1086
|
-
a(C.ON_TRANSACTION_TAGS_TAG_DELETED), await
|
|
1079
|
+
a(C.ON_TRANSACTION_TAGS_TAG_DELETED), await r(s.guid), g(!1);
|
|
1087
1080
|
};
|
|
1088
1081
|
l.useEffect(() => {
|
|
1089
|
-
M(
|
|
1090
|
-
}, [
|
|
1082
|
+
M(p.length > 40 ? _.tags_error_name_must_be_40_chars : "");
|
|
1083
|
+
}, [p]);
|
|
1091
1084
|
const f = () => {
|
|
1092
1085
|
a(C.ON_TRANSACTION_TAGS_TAG_EDIT_CLICK), h(s.name), d(!0);
|
|
1093
|
-
},
|
|
1094
|
-
a(C.ON_TRANSACTION_TAGS_TAG_DELETE_CLICK),
|
|
1086
|
+
}, A = () => {
|
|
1087
|
+
a(C.ON_TRANSACTION_TAGS_TAG_DELETE_CLICK), g(!0);
|
|
1095
1088
|
};
|
|
1096
1089
|
return /* @__PURE__ */ m(
|
|
1097
|
-
|
|
1090
|
+
z,
|
|
1098
1091
|
{
|
|
1099
1092
|
className: "mx-txn-transaction-manager-row",
|
|
1100
1093
|
disableGutters: !0,
|
|
@@ -1114,7 +1107,7 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1114
1107
|
{
|
|
1115
1108
|
"aria-label": `Delete ${s.name} tag`,
|
|
1116
1109
|
color: "secondary",
|
|
1117
|
-
onClick:
|
|
1110
|
+
onClick: A,
|
|
1118
1111
|
children: /* @__PURE__ */ e(fe, { color: "secondary" })
|
|
1119
1112
|
}
|
|
1120
1113
|
)
|
|
@@ -1123,20 +1116,20 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1123
1116
|
/* @__PURE__ */ m(
|
|
1124
1117
|
Q,
|
|
1125
1118
|
{
|
|
1126
|
-
"aria-checked":
|
|
1119
|
+
"aria-checked": n.includes(s.guid),
|
|
1127
1120
|
onClick: () => t(s.guid),
|
|
1128
1121
|
role: "checkbox",
|
|
1129
1122
|
children: [
|
|
1130
1123
|
/* @__PURE__ */ e(X, { sx: { ml: 0 }, children: /* @__PURE__ */ e(
|
|
1131
|
-
|
|
1124
|
+
yt,
|
|
1132
1125
|
{
|
|
1133
1126
|
"aria-hidden": !0,
|
|
1134
|
-
checked:
|
|
1127
|
+
checked: n.includes(s.guid),
|
|
1135
1128
|
edge: "start",
|
|
1136
1129
|
tabIndex: -1
|
|
1137
1130
|
}
|
|
1138
1131
|
) }),
|
|
1139
|
-
/* @__PURE__ */ e(
|
|
1132
|
+
/* @__PURE__ */ e(U, { children: s.name })
|
|
1140
1133
|
]
|
|
1141
1134
|
}
|
|
1142
1135
|
),
|
|
@@ -1158,7 +1151,7 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1158
1151
|
onChange: (y) => h(y.target.value),
|
|
1159
1152
|
placeholder: "Tag name",
|
|
1160
1153
|
sx: { width: "100%" },
|
|
1161
|
-
value:
|
|
1154
|
+
value: p
|
|
1162
1155
|
}
|
|
1163
1156
|
),
|
|
1164
1157
|
/* @__PURE__ */ e(ee, { id: "update-tag-error", sx: { color: "error.main" }, variant: "subtitle2", children: I })
|
|
@@ -1170,70 +1163,70 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1170
1163
|
{
|
|
1171
1164
|
copy: { title: _.tags_delete_title },
|
|
1172
1165
|
isOpen: u,
|
|
1173
|
-
onClose: () =>
|
|
1166
|
+
onClose: () => g(!1),
|
|
1174
1167
|
onPrimaryAction: k,
|
|
1175
1168
|
onSecondaryAction: () => a(C.ON_TRANSACTION_TAGS_TAG_DELETE_CANCEL_CLICK),
|
|
1176
1169
|
primaryText: i.delete_button,
|
|
1177
1170
|
secondaryText: i.cancel_button,
|
|
1178
|
-
children: /* @__PURE__ */ e(
|
|
1171
|
+
children: /* @__PURE__ */ e(x, { truncate: !1, children: _.tags_deleting_this_tag_will_remove_it })
|
|
1179
1172
|
}
|
|
1180
1173
|
)
|
|
1181
1174
|
]
|
|
1182
1175
|
}
|
|
1183
1176
|
);
|
|
1184
|
-
},
|
|
1185
|
-
const { tags: s } = R(), [a,
|
|
1177
|
+
}, jt = w(Yt), qt = ({ selectedTags: t, onTagChecked: n }) => {
|
|
1178
|
+
const { tags: s } = R(), [a, r] = l.useState(""), o = s.filter(
|
|
1186
1179
|
(i) => i.name.toLowerCase().includes(a.toLowerCase())
|
|
1187
1180
|
);
|
|
1188
1181
|
return /* @__PURE__ */ m("div", { className: "mx-txn-tag-manager", children: [
|
|
1189
1182
|
/* @__PURE__ */ e(
|
|
1190
|
-
|
|
1183
|
+
Vt,
|
|
1191
1184
|
{
|
|
1192
|
-
onSearchValueChanged: (i) =>
|
|
1185
|
+
onSearchValueChanged: (i) => r(i),
|
|
1193
1186
|
searchValue: a
|
|
1194
1187
|
}
|
|
1195
1188
|
),
|
|
1196
|
-
/* @__PURE__ */ e(
|
|
1189
|
+
/* @__PURE__ */ e(Ut, {}),
|
|
1197
1190
|
/* @__PURE__ */ e(he, { sx: { boxShadow: "none" }, children: /* @__PURE__ */ e(be, { children: o.map((i) => /* @__PURE__ */ m(l.Fragment, { children: [
|
|
1198
|
-
/* @__PURE__ */ e(
|
|
1191
|
+
/* @__PURE__ */ e(jt, { onTagChecked: n, selectedTags: t, tag: i }),
|
|
1199
1192
|
/* @__PURE__ */ e(Te, { sx: { ml: 24 } })
|
|
1200
1193
|
] }, i.guid)) }) })
|
|
1201
1194
|
] });
|
|
1202
|
-
},
|
|
1203
|
-
const { onEvent:
|
|
1195
|
+
}, Qt = w(qt), Xt = ({ transaction: t }) => {
|
|
1196
|
+
const { onEvent: n } = G(), { tags: s, updateTaggings: a, updateTransaction: r } = R(), { common: o, transactions: i } = O(), { updateManualTransaction: _ } = ne(), c = F(), [d, u] = l.useState(!1), [g, p] = l.useState(t.tags);
|
|
1204
1197
|
l.useEffect(() => {
|
|
1205
|
-
|
|
1198
|
+
p(t.tags);
|
|
1206
1199
|
}, [d, t]);
|
|
1207
1200
|
const h = (k) => {
|
|
1208
|
-
const f = [...
|
|
1209
|
-
|
|
1201
|
+
const f = [...g], A = g.indexOf(k);
|
|
1202
|
+
A >= 0 ? f.splice(A, 1) : f.push(k), p(f);
|
|
1210
1203
|
}, I = async () => {
|
|
1211
1204
|
if (t.is_manual && !t.guid) {
|
|
1212
|
-
_({ ...t, tags:
|
|
1205
|
+
_({ ...t, tags: g }), u(!1);
|
|
1213
1206
|
return;
|
|
1214
1207
|
}
|
|
1215
|
-
await a(
|
|
1208
|
+
await a(g, t.guid), await r({ ...t, tags: g }), n(Y.TRANSACTION_DETAILS_CLICK_TAGS, { transaction_guid: t.guid }), u(!1);
|
|
1216
1209
|
}, M = l.useMemo(
|
|
1217
1210
|
() => t.tags.map(
|
|
1218
|
-
(k, f,
|
|
1211
|
+
(k, f, A) => `${s.find((y) => y.guid === k)?.name}${f < A.length - 1 ? " / " : ""}`
|
|
1219
1212
|
),
|
|
1220
1213
|
[s, t]
|
|
1221
1214
|
), B = c.palette.mode === "dark" ? "grey.800" : "grey.100";
|
|
1222
|
-
return /* @__PURE__ */ m(
|
|
1215
|
+
return /* @__PURE__ */ m(z, { disableGutters: !0, disablePadding: !0, children: [
|
|
1223
1216
|
/* @__PURE__ */ m(
|
|
1224
1217
|
Q,
|
|
1225
1218
|
{
|
|
1226
1219
|
onClick: () => {
|
|
1227
|
-
|
|
1220
|
+
n(C.ON_TRANSACTION_TAGS_CLICK), u(!0);
|
|
1228
1221
|
},
|
|
1229
1222
|
children: [
|
|
1230
1223
|
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor: B }, variant: "rounded", children: /* @__PURE__ */ e(P, { name: "local_offer", sx: { color: "text.primary" } }) }) }),
|
|
1231
1224
|
/* @__PURE__ */ e(
|
|
1232
|
-
|
|
1225
|
+
U,
|
|
1233
1226
|
{
|
|
1234
1227
|
primary: i.tags_title,
|
|
1235
|
-
|
|
1236
|
-
|
|
1228
|
+
secondary: /* @__PURE__ */ e(x, { bold: !0, sx: { color: "text.primary" }, variant: "body1", children: t.tags?.length > 0 ? M : i.tags_desc }),
|
|
1229
|
+
slotProps: { primary: { variant: "caption", fontSize: 11, fontWeight: "normal" } }
|
|
1237
1230
|
}
|
|
1238
1231
|
),
|
|
1239
1232
|
/* @__PURE__ */ e(X, { children: /* @__PURE__ */ e(P, { name: "chevron_right", sx: { color: "text.primary" } }) })
|
|
@@ -1250,35 +1243,35 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1250
1243
|
primaryText: o.save_button,
|
|
1251
1244
|
secondaryText: o.cancel_button,
|
|
1252
1245
|
title: i.tags_title,
|
|
1253
|
-
children: /* @__PURE__ */ e(
|
|
1246
|
+
children: /* @__PURE__ */ e(Qt, { onTagChecked: h, selectedTags: g })
|
|
1254
1247
|
}
|
|
1255
1248
|
)
|
|
1256
1249
|
] });
|
|
1257
|
-
},
|
|
1258
|
-
const { updateTransaction: s } = R(), { common: a, transactions:
|
|
1250
|
+
}, Zt = w(Xt), Jt = ({ transaction: t, viewOnly: n = !1 }) => {
|
|
1251
|
+
const { updateTransaction: s } = R(), { common: a, transactions: r } = O(), { onEvent: o } = G(), { announce: i, ariaLive: _ } = Ae(), [c, d] = l.useState(!1), [u, g] = l.useState(""), p = l.useRef(null);
|
|
1259
1252
|
l.useEffect(() => {
|
|
1260
|
-
c && (
|
|
1253
|
+
c && (g(t.description), p?.current?.focus());
|
|
1261
1254
|
}, [c]);
|
|
1262
1255
|
const h = () => {
|
|
1263
1256
|
d(!0), o(C.ON_TRANSACTION_DESCRIPTION_EDIT_CLICK), setTimeout(() => document.getElementById("transaction-description-input")?.focus(), 0);
|
|
1264
1257
|
}, I = async () => {
|
|
1265
1258
|
o(Y.TRANSACTION_DETAILS_CLICK_DESCRIPTION, {
|
|
1266
1259
|
transaction_guid: t.guid
|
|
1267
|
-
}), await s({ ...t, description: u }), d(!1), i(`${
|
|
1260
|
+
}), await s({ ...t, description: u }), d(!1), i(`${r.payee_title}: ${u}`), setTimeout(() => document.getElementById("transaction-description-edit-button")?.focus(), 0);
|
|
1268
1261
|
};
|
|
1269
|
-
return /* @__PURE__ */ m(
|
|
1262
|
+
return /* @__PURE__ */ m(V, { className: "mx-txn-transaction-description", children: [
|
|
1270
1263
|
_,
|
|
1271
1264
|
c ? /* @__PURE__ */ m(Xe, { row: !0, children: [
|
|
1272
1265
|
/* @__PURE__ */ e(
|
|
1273
1266
|
$e,
|
|
1274
1267
|
{
|
|
1275
|
-
"aria-label":
|
|
1268
|
+
"aria-label": r.payee_title,
|
|
1276
1269
|
id: "transaction-description-input",
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1270
|
+
label: r.payee_title,
|
|
1271
|
+
name: r.payee_title,
|
|
1272
|
+
onChange: (M) => g(M.target.value),
|
|
1273
|
+
ref: p,
|
|
1274
|
+
slotProps: { htmlInput: { maxLength: 140 } },
|
|
1282
1275
|
sx: {
|
|
1283
1276
|
backgroundColor: "background.paper",
|
|
1284
1277
|
".MuiOutlinedInput-root": { borderTopRightRadius: 0, borderBottomRightRadius: 0 },
|
|
@@ -1302,11 +1295,11 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1302
1295
|
}
|
|
1303
1296
|
)
|
|
1304
1297
|
] }) : /* @__PURE__ */ m(L, { alignItems: "center", direction: "row", gap: 4, sx: { minHeight: 44 }, children: [
|
|
1305
|
-
/* @__PURE__ */ e(
|
|
1306
|
-
!
|
|
1298
|
+
/* @__PURE__ */ e(x, { bold: !0, children: t.description }),
|
|
1299
|
+
!n && /* @__PURE__ */ e(
|
|
1307
1300
|
ue,
|
|
1308
1301
|
{
|
|
1309
|
-
"aria-label":
|
|
1302
|
+
"aria-label": r.payee_edit,
|
|
1310
1303
|
id: "transaction-description-edit-button",
|
|
1311
1304
|
onClick: h,
|
|
1312
1305
|
sx: { color: "action.active" },
|
|
@@ -1315,9 +1308,9 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1315
1308
|
)
|
|
1316
1309
|
] })
|
|
1317
1310
|
] });
|
|
1318
|
-
},
|
|
1319
|
-
const { updateTransaction:
|
|
1320
|
-
a(Y.TRANSACTION_DETAILS_CLICK_FLAG, { transaction_guid: t.guid }), await
|
|
1311
|
+
}, ea = w(Jt), ta = ({ transaction: t }) => {
|
|
1312
|
+
const { updateTransaction: n } = R(), { transactions: s } = O(), { onEvent: a } = G(), r = F(), o = r.palette.mode === "dark", i = async () => {
|
|
1313
|
+
a(Y.TRANSACTION_DETAILS_CLICK_FLAG, { transaction_guid: t.guid }), await n({ ...t, is_flagged: !t.is_flagged });
|
|
1321
1314
|
};
|
|
1322
1315
|
return /* @__PURE__ */ e("div", { className: "mx-txn-transaction-flag", children: /* @__PURE__ */ e(
|
|
1323
1316
|
lt,
|
|
@@ -1332,41 +1325,41 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1332
1325
|
color: o ? "common.white" : "secondary.main",
|
|
1333
1326
|
"&.Mui-selected": {
|
|
1334
1327
|
color: o ? "primary.main" : "common.white",
|
|
1335
|
-
backgroundColor: o ?
|
|
1328
|
+
backgroundColor: o ? xe(r.palette.primary.main, 0.25) : "warning.dark",
|
|
1336
1329
|
":hover": {
|
|
1337
1330
|
color: o ? "primary.main" : "common.white",
|
|
1338
|
-
backgroundColor: o ?
|
|
1331
|
+
backgroundColor: o ? xe(r.palette.primary.main, 0.2) : "warning.main"
|
|
1339
1332
|
}
|
|
1340
1333
|
},
|
|
1341
1334
|
":hover": {
|
|
1342
1335
|
color: o ? "common.white" : "warning.contrastText",
|
|
1343
|
-
backgroundColor: o ?
|
|
1336
|
+
backgroundColor: o ? xe(r.palette.primary.main, 0.2) : "warning.light"
|
|
1344
1337
|
}
|
|
1345
1338
|
},
|
|
1346
1339
|
value: "flagged",
|
|
1347
1340
|
children: /* @__PURE__ */ e(ut, { color: "inherit" })
|
|
1348
1341
|
}
|
|
1349
1342
|
) });
|
|
1350
|
-
},
|
|
1351
|
-
/* @__PURE__ */ m(
|
|
1343
|
+
}, aa = w(ta), pe = (t, n, s, a = !0, r = "inset") => a ? /* @__PURE__ */ m(l.Fragment, { children: [
|
|
1344
|
+
/* @__PURE__ */ m(z, { disableGutters: !0, disablePadding: !0, children: [
|
|
1352
1345
|
/* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(j, { sx: { bgcolor: "neutral.light" }, variant: "rounded", children: t }) }),
|
|
1353
1346
|
/* @__PURE__ */ e(
|
|
1354
|
-
|
|
1347
|
+
U,
|
|
1355
1348
|
{
|
|
1356
|
-
primary:
|
|
1357
|
-
|
|
1358
|
-
|
|
1349
|
+
primary: n,
|
|
1350
|
+
secondary: s,
|
|
1351
|
+
slotProps: { primary: { variant: "caption", fontSize: 11, fontWeight: "normal" } }
|
|
1359
1352
|
}
|
|
1360
1353
|
)
|
|
1361
1354
|
] }),
|
|
1362
|
-
/* @__PURE__ */ e(Te, { variant:
|
|
1355
|
+
/* @__PURE__ */ e(Te, { variant: r })
|
|
1363
1356
|
] }) : null, na = ({ transaction: t }) => {
|
|
1364
|
-
const { transactions:
|
|
1365
|
-
const
|
|
1366
|
-
return t.tags.map((o) =>
|
|
1357
|
+
const { transactions: n } = O(), { tags: s } = R(), a = l.useMemo(() => {
|
|
1358
|
+
const r = new Map(s.map((o) => [o.guid, o.name]));
|
|
1359
|
+
return t.tags.map((o) => r.get(o)).filter(Boolean).join(" / ");
|
|
1367
1360
|
}, [s, t.tags]);
|
|
1368
1361
|
return /* @__PURE__ */ m(be, { sx: { "& .MuiListItem-root": { px: 24, py: 12 } }, children: [
|
|
1369
|
-
|
|
1362
|
+
pe(
|
|
1370
1363
|
/* @__PURE__ */ e(
|
|
1371
1364
|
Oe,
|
|
1372
1365
|
{
|
|
@@ -1376,36 +1369,36 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1376
1369
|
variant: Ge.Transparent
|
|
1377
1370
|
}
|
|
1378
1371
|
),
|
|
1379
|
-
|
|
1380
|
-
/* @__PURE__ */ e(
|
|
1372
|
+
n.category_title,
|
|
1373
|
+
/* @__PURE__ */ e(x, { bold: !0, variant: "body1", children: t.category ?? n.actions_select_a_category })
|
|
1381
1374
|
),
|
|
1382
|
-
|
|
1375
|
+
pe(
|
|
1383
1376
|
/* @__PURE__ */ e(ye, { name: "calendar_month", sx: { color: "text.primary" } }),
|
|
1384
|
-
|
|
1385
|
-
/* @__PURE__ */ e(
|
|
1377
|
+
n.date_title,
|
|
1378
|
+
/* @__PURE__ */ e(x, { bold: !0, variant: "body1", children: Me(ve(t.date), Re.YEAR_MONTH_DAY) })
|
|
1386
1379
|
),
|
|
1387
|
-
|
|
1380
|
+
pe(
|
|
1388
1381
|
/* @__PURE__ */ e(ye, { name: "article", sx: { color: "text.primary" } }),
|
|
1389
|
-
|
|
1390
|
-
/* @__PURE__ */ e(
|
|
1382
|
+
n.memo_title,
|
|
1383
|
+
/* @__PURE__ */ e(x, { bold: !0, variant: "body1", children: t.memo ?? n.memo_desc }),
|
|
1391
1384
|
!!t.memo,
|
|
1392
1385
|
t.tags?.length > 0 ? "inset" : "fullWidth"
|
|
1393
1386
|
),
|
|
1394
|
-
|
|
1387
|
+
pe(
|
|
1395
1388
|
/* @__PURE__ */ e(ye, { name: "local_offer", sx: { color: "text.primary" } }),
|
|
1396
|
-
|
|
1397
|
-
/* @__PURE__ */ e(
|
|
1389
|
+
n.tags_title,
|
|
1390
|
+
/* @__PURE__ */ e(x, { bold: !0, variant: "body1", children: t.tags?.length ? a : n.tags_desc }),
|
|
1398
1391
|
!!t.tags?.length,
|
|
1399
1392
|
"fullWidth"
|
|
1400
1393
|
)
|
|
1401
1394
|
] });
|
|
1402
|
-
},
|
|
1395
|
+
}, ra = w(na), oa = ({
|
|
1403
1396
|
data: t,
|
|
1404
|
-
color:
|
|
1397
|
+
color: n,
|
|
1405
1398
|
width: s = 85,
|
|
1406
1399
|
height: a = 65
|
|
1407
1400
|
}) => {
|
|
1408
|
-
const
|
|
1401
|
+
const r = F(), o = {
|
|
1409
1402
|
series: [
|
|
1410
1403
|
{
|
|
1411
1404
|
data: t.map(({ value: c }) => c),
|
|
@@ -1420,7 +1413,7 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1420
1413
|
}
|
|
1421
1414
|
]
|
|
1422
1415
|
}, i = t.map(
|
|
1423
|
-
(c, d) => d === t.length - 1 ? r
|
|
1416
|
+
(c, d) => d === t.length - 1 ? n(r) : `${n(r)}80`
|
|
1424
1417
|
), _ = (c, d) => {
|
|
1425
1418
|
if (c <= 0 || d <= 0) return "";
|
|
1426
1419
|
const u = Math.min(6, c / 2, d / 2);
|
|
@@ -1489,18 +1482,18 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1489
1482
|
)
|
|
1490
1483
|
}
|
|
1491
1484
|
);
|
|
1492
|
-
},
|
|
1485
|
+
}, ia = {
|
|
1493
1486
|
BILL_AMOUNT_NOT_STANDARD: "BillAmountNotStandard"
|
|
1494
|
-
},
|
|
1495
|
-
if (
|
|
1496
|
-
switch (
|
|
1497
|
-
case
|
|
1498
|
-
const s =
|
|
1487
|
+
}, sa = (t, n) => {
|
|
1488
|
+
if (n)
|
|
1489
|
+
switch (n.template) {
|
|
1490
|
+
case ia.BILL_AMOUNT_NOT_STANDARD: {
|
|
1491
|
+
const s = n.data_series ? et(n.data_series) : [], a = tt(s, n.payload?.merchant_name);
|
|
1499
1492
|
return {
|
|
1500
1493
|
instanceSlot: /* @__PURE__ */ e(
|
|
1501
|
-
|
|
1494
|
+
oa,
|
|
1502
1495
|
{
|
|
1503
|
-
color: (
|
|
1496
|
+
color: (r) => r.palette.categories.billsUtilities,
|
|
1504
1497
|
data: a.slice(-3)
|
|
1505
1498
|
}
|
|
1506
1499
|
),
|
|
@@ -1513,24 +1506,24 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1513
1506
|
return null;
|
|
1514
1507
|
}
|
|
1515
1508
|
return null;
|
|
1516
|
-
},
|
|
1517
|
-
bottomActions: t =
|
|
1518
|
-
canFlagTransaction:
|
|
1519
|
-
topActions: s =
|
|
1509
|
+
}, la = ({
|
|
1510
|
+
bottomActions: t = St,
|
|
1511
|
+
canFlagTransaction: n = !0,
|
|
1512
|
+
topActions: s = ft,
|
|
1520
1513
|
transaction: a
|
|
1521
1514
|
}) => {
|
|
1522
|
-
const { onEvent:
|
|
1523
|
-
alert:
|
|
1524
|
-
associatedBeats:
|
|
1515
|
+
const { onEvent: r } = G(), { isCopyLoaded: o } = it(), { userFeatures: i } = st(), { accounts: _, common: c, insights_feed: d } = O(), { detailedCategories: u } = we(), {
|
|
1516
|
+
alert: g,
|
|
1517
|
+
associatedBeats: p,
|
|
1525
1518
|
detailedTransactions: h,
|
|
1526
1519
|
cachedStartDate: I,
|
|
1527
1520
|
loadEmbeddedInstanceTransactions: M,
|
|
1528
1521
|
setAlert: B
|
|
1529
|
-
} = R(), [k, f] = l.useState(!1), [
|
|
1522
|
+
} = R(), [k, f] = l.useState(!1), [A, y] = l.useState(!1), [Z, se] = l.useState(!1), le = F(), te = a?.number && a.number.length > 4, $ = l.useMemo(() => p.find((T) => T.associated_transaction_guid === a.guid), [p, a]), b = sa(c, $), [K, re] = l.useState(
|
|
1530
1523
|
b ? b.dataSeries.length - 1 : 0
|
|
1531
1524
|
);
|
|
1532
1525
|
l.useEffect(
|
|
1533
|
-
() =>
|
|
1526
|
+
() => r(Y.TRANSACTION_DETAILS_VIEW, { transaction_guid: a.guid }),
|
|
1534
1527
|
[]
|
|
1535
1528
|
), l.useEffect(() => {
|
|
1536
1529
|
if (!b || b.dataSeries.length === 0) return;
|
|
@@ -1539,27 +1532,27 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1539
1532
|
y(!1);
|
|
1540
1533
|
}));
|
|
1541
1534
|
}, [K, b, I]);
|
|
1542
|
-
const
|
|
1535
|
+
const H = t.includes(ie.MerchantBudget) && !a?.merchant_guid ? t.filter((T) => T !== ie.MerchantBudget) : t, oe = ke(() => {
|
|
1543
1536
|
if (b) {
|
|
1544
1537
|
const T = u.find(
|
|
1545
|
-
(
|
|
1538
|
+
(ze) => ze.guid === a.top_level_category_guid
|
|
1546
1539
|
), D = $?.payload?.average_amount ?? 0, J = a.amount;
|
|
1547
|
-
let
|
|
1548
|
-
J - D < 0 && (
|
|
1540
|
+
let ge = d.general.increased_text;
|
|
1541
|
+
J - D < 0 && (ge = d.general.decreased_text);
|
|
1549
1542
|
const ce = D === 0 ? 0 : Math.round(Math.abs(J - D) / D * 100);
|
|
1550
|
-
return { category: T, percentageAmount: ce, changetype:
|
|
1543
|
+
return { category: T, percentageAmount: ce, changetype: ge };
|
|
1551
1544
|
}
|
|
1552
1545
|
return null;
|
|
1553
1546
|
}, [b, u]), N = ke(() => {
|
|
1554
1547
|
if (!b?.dataSeries?.length)
|
|
1555
1548
|
return [];
|
|
1556
|
-
const { guid: T, date: D } = b.dataSeries[K], J = De(D),
|
|
1557
|
-
return h.filter((ce) => ce.date >= Ie(J) && ce.date <= Ie(
|
|
1558
|
-
}, [K, b, h,
|
|
1549
|
+
const { guid: T, date: D } = b.dataSeries[K], J = De(D), ge = Be(D);
|
|
1550
|
+
return h.filter((ce) => ce.date >= Ie(J) && ce.date <= Ie(ge) && ce.guid === T);
|
|
1551
|
+
}, [K, b, h, A]);
|
|
1559
1552
|
if (!o)
|
|
1560
1553
|
return /* @__PURE__ */ e(_t, {});
|
|
1561
1554
|
const v = Qe(i, "MX_TXN_DETAILS_VIEW_ONLY"), S = le.palette.mode === "dark" ? "grey.800" : "grey.100";
|
|
1562
|
-
return /* @__PURE__ */ m(
|
|
1555
|
+
return /* @__PURE__ */ m(V, { className: "mx-txn-transaction-details", width: "100%", children: [
|
|
1563
1556
|
a && /* @__PURE__ */ m(L, { children: [
|
|
1564
1557
|
/* @__PURE__ */ m(L, { gap: 12, p: 24, children: [
|
|
1565
1558
|
/* @__PURE__ */ e(he, { elevation: 2, sx: { width: 64 }, children: /* @__PURE__ */ e(
|
|
@@ -1570,13 +1563,13 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1570
1563
|
size: 64
|
|
1571
1564
|
}
|
|
1572
1565
|
) }),
|
|
1573
|
-
/* @__PURE__ */ e(
|
|
1566
|
+
/* @__PURE__ */ e(ea, { transaction: a, viewOnly: v }),
|
|
1574
1567
|
/* @__PURE__ */ m(L, { direction: "row", justifyContent: "space-between", sx: { minHeight: 44 }, children: [
|
|
1575
1568
|
/* @__PURE__ */ m(ee, { color: a.isIncome ? "success.main" : "text.primary", variant: "h1", children: [
|
|
1576
1569
|
a.isIncome ? "+" : "",
|
|
1577
|
-
|
|
1570
|
+
W(a.amount, "0,0.00")
|
|
1578
1571
|
] }),
|
|
1579
|
-
!v &&
|
|
1572
|
+
!v && n && /* @__PURE__ */ e(aa, { transaction: a })
|
|
1580
1573
|
] }),
|
|
1581
1574
|
b?.instanceSlot && /* @__PURE__ */ e(
|
|
1582
1575
|
at,
|
|
@@ -1595,16 +1588,16 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1595
1588
|
}
|
|
1596
1589
|
),
|
|
1597
1590
|
/* @__PURE__ */ m(L, { sx: { bgcolor: S, borderRadius: "4px", gap: 4, p: 8 }, children: [
|
|
1598
|
-
/* @__PURE__ */ e(
|
|
1591
|
+
/* @__PURE__ */ e(x, { bold: !0, children: `${a.account}
|
|
1599
1592
|
${te ? a.number : "•".repeat(4).concat(a.number ?? "")}` }),
|
|
1600
|
-
/* @__PURE__ */ e(
|
|
1593
|
+
/* @__PURE__ */ e(x, { bold: !0, truncate: !0, variant: "tiny", children: a.feed_description })
|
|
1601
1594
|
] })
|
|
1602
1595
|
] }),
|
|
1603
|
-
/* @__PURE__ */ e(he, { square: !0, sx: { boxShadow: "none" }, children: v ? /* @__PURE__ */ e(
|
|
1604
|
-
T === de.Category && /* @__PURE__ */ e(
|
|
1605
|
-
T === de.Date && /* @__PURE__ */ e(
|
|
1606
|
-
T === de.Memo && /* @__PURE__ */ e(
|
|
1607
|
-
T === de.Tags && /* @__PURE__ */ e(
|
|
1596
|
+
/* @__PURE__ */ e(he, { square: !0, sx: { boxShadow: "none" }, children: v ? /* @__PURE__ */ e(ra, { transaction: a }) : /* @__PURE__ */ e(be, { children: s.map((T, D) => /* @__PURE__ */ m(l.Fragment, { children: [
|
|
1597
|
+
T === de.Category && /* @__PURE__ */ e(Dt, { transaction: a }),
|
|
1598
|
+
T === de.Date && /* @__PURE__ */ e(vt, { transaction: a }),
|
|
1599
|
+
T === de.Memo && /* @__PURE__ */ e(Pt, { transaction: a }),
|
|
1600
|
+
T === de.Tags && /* @__PURE__ */ e(Zt, { transaction: a }),
|
|
1608
1601
|
/* @__PURE__ */ e(
|
|
1609
1602
|
Te,
|
|
1610
1603
|
{
|
|
@@ -1613,28 +1606,28 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1613
1606
|
}
|
|
1614
1607
|
)
|
|
1615
1608
|
] }, T)) }) }),
|
|
1616
|
-
!v &&
|
|
1617
|
-
/* @__PURE__ */ e(
|
|
1609
|
+
!v && H.length > 0 && /* @__PURE__ */ m(l.Fragment, { children: [
|
|
1610
|
+
/* @__PURE__ */ e(x, { bold: !0, mb: 8, ml: 26, mt: 16, variant: "body1", children: _.actions }),
|
|
1618
1611
|
/* @__PURE__ */ e(he, { square: !0, sx: { boxShadow: "none" }, children: /* @__PURE__ */ m(be, { children: [
|
|
1619
|
-
|
|
1620
|
-
T === ie.MerchantBudget && /* @__PURE__ */ e(
|
|
1621
|
-
T === ie.SplitTransaction && /* @__PURE__ */ e(
|
|
1622
|
-
T === ie.HideTransaction && /* @__PURE__ */ e(
|
|
1623
|
-
T === ie.MerchantLogo && /* @__PURE__ */ e(
|
|
1612
|
+
H.map((T, D) => /* @__PURE__ */ m(l.Fragment, { children: [
|
|
1613
|
+
T === ie.MerchantBudget && /* @__PURE__ */ e(It, { transaction: a }),
|
|
1614
|
+
T === ie.SplitTransaction && /* @__PURE__ */ e(Ht, { transaction: a }),
|
|
1615
|
+
T === ie.HideTransaction && /* @__PURE__ */ e(Rt, { transaction: a }),
|
|
1616
|
+
T === ie.MerchantLogo && /* @__PURE__ */ e(wt, { transaction: a }),
|
|
1624
1617
|
/* @__PURE__ */ e(
|
|
1625
1618
|
Te,
|
|
1626
1619
|
{
|
|
1627
1620
|
component: "li",
|
|
1628
|
-
variant: D <
|
|
1621
|
+
variant: D < H.length - 1 ? "inset" : "fullWidth"
|
|
1629
1622
|
}
|
|
1630
1623
|
)
|
|
1631
1624
|
] }, T)),
|
|
1632
|
-
a.is_manual && !a.parent_guid && !a.has_been_split && /* @__PURE__ */ e(
|
|
1625
|
+
a.is_manual && !a.parent_guid && !a.has_been_split && /* @__PURE__ */ e(Ot, { transaction: a })
|
|
1633
1626
|
] }) })
|
|
1634
1627
|
] })
|
|
1635
1628
|
] }),
|
|
1636
1629
|
$ && b && /* @__PURE__ */ e(
|
|
1637
|
-
|
|
1630
|
+
nt,
|
|
1638
1631
|
{
|
|
1639
1632
|
ariaLabel: Me(
|
|
1640
1633
|
b?.dataSeries[K]?.date,
|
|
@@ -1643,14 +1636,14 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1643
1636
|
barChartProps: {
|
|
1644
1637
|
amounts: {
|
|
1645
1638
|
average: $.payload.average_amount,
|
|
1646
|
-
formattedAverage:
|
|
1639
|
+
formattedAverage: W($.payload.average_amount, "0,0")
|
|
1647
1640
|
},
|
|
1648
1641
|
color: oe.category?.color || "",
|
|
1649
1642
|
data: b.chartData,
|
|
1650
1643
|
margin: { bottom: 10, left: 24, right: 24, top: 20 },
|
|
1651
1644
|
monthlyAmountLabel: d.general.monthly_amount,
|
|
1652
1645
|
onBarClick: (T) => {
|
|
1653
|
-
|
|
1646
|
+
re(T);
|
|
1654
1647
|
},
|
|
1655
1648
|
trendAmountLabel: d.general.trend,
|
|
1656
1649
|
legendPosition: "top"
|
|
@@ -1676,10 +1669,10 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1676
1669
|
),
|
|
1677
1670
|
isOpen: k,
|
|
1678
1671
|
onClose: () => {
|
|
1679
|
-
f(!1),
|
|
1672
|
+
f(!1), re(b.dataSeries.length - 1);
|
|
1680
1673
|
},
|
|
1681
1674
|
onTabChange: (T) => {
|
|
1682
|
-
|
|
1675
|
+
re(T);
|
|
1683
1676
|
},
|
|
1684
1677
|
tipSection: Z ? void 0 : {
|
|
1685
1678
|
message: E(
|
|
@@ -1691,31 +1684,31 @@ const Dt = w(({ transaction: t }) => {
|
|
|
1691
1684
|
},
|
|
1692
1685
|
title: d.general.transaction_history_title,
|
|
1693
1686
|
transactionListProps: {
|
|
1694
|
-
showLoader:
|
|
1687
|
+
showLoader: A,
|
|
1695
1688
|
showInsights: !0,
|
|
1696
1689
|
transaction: N
|
|
1697
1690
|
}
|
|
1698
1691
|
}
|
|
1699
1692
|
),
|
|
1700
1693
|
/* @__PURE__ */ e(
|
|
1701
|
-
|
|
1694
|
+
We,
|
|
1702
1695
|
{
|
|
1703
1696
|
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
1704
1697
|
autoHideDuration: 3500,
|
|
1705
1698
|
onClose: () => B(""),
|
|
1706
|
-
open: !!
|
|
1707
|
-
children: /* @__PURE__ */ e(
|
|
1699
|
+
open: !!g,
|
|
1700
|
+
children: /* @__PURE__ */ e(Ue, { closeText: "", onClose: () => B(""), severity: "success", variant: "filled", children: g })
|
|
1708
1701
|
}
|
|
1709
1702
|
)
|
|
1710
1703
|
] });
|
|
1711
|
-
},
|
|
1704
|
+
}, rn = w(la);
|
|
1712
1705
|
export {
|
|
1713
1706
|
ie as B,
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1707
|
+
Dt as C,
|
|
1708
|
+
vt as D,
|
|
1709
|
+
Pt as M,
|
|
1710
|
+
rn as T,
|
|
1711
|
+
Zt as a,
|
|
1719
1712
|
de as b,
|
|
1720
1713
|
At as c
|
|
1721
1714
|
};
|