@mx-cartographer/experiences 8.0.19 → 8.0.21
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 +12 -4
- package/dist/{AccountStore-DpYvNnql.mjs → AccountStore-B7zfcad7.mjs} +1 -1
- package/dist/{BudgetUtil-CLhRnCoX.mjs → BudgetUtil-DZpOoZQa.mjs} +1 -1
- package/dist/{EmbeddedCard-xngm4vLT.mjs → EmbeddedCard-D0Pgpiuq.mjs} +89 -81
- package/dist/{GlobalAccountFilter-B73Pw1hJ.mjs → GlobalAccountFilter-CmnaZDS6.mjs} +27 -27
- package/dist/{Help-DBAosGjO.mjs → Help-BkmSY96v.mjs} +1 -1
- package/dist/{ManageIncome-CvfRTf-j.mjs → ManageIncome-DfKQ48km.mjs} +2 -2
- package/dist/{NotificationSettings-D7VqsrZy.mjs → NotificationSettings-DBT37CVB.mjs} +1 -1
- package/dist/{RecurringSettings-DJIUgK5A.mjs → RecurringSettings-CpFfjTIL.mjs} +1 -1
- package/dist/{SpendingLegend-BCnXkPCD.mjs → SpendingLegend-CypdabwS.mjs} +1 -1
- package/dist/{TransactionDetails-KklNHa-s.mjs → TransactionDetails-D57Cfnwh.mjs} +2 -2
- package/dist/WidgetContainer-DYKMArWw.mjs +468 -0
- package/dist/accounts/index.es.js +96 -94
- package/dist/budgets/index.es.js +448 -444
- package/dist/cashflow/index.es.js +234 -232
- package/dist/common/components/GlobalAccountFilter.d.ts +2 -1
- package/dist/common/components/WidgetContainer.d.ts +2 -1
- package/dist/common/components/WidgetDateRangeSelector.d.ts +12 -0
- package/dist/common/hooks/index.d.ts +1 -0
- package/dist/common/hooks/useWidgetHeaderStyles.d.ts +32 -0
- package/dist/common/index.es.js +133 -132
- package/dist/common/utils/PostMessage.d.ts +1 -0
- package/dist/core/types/Widgets.d.ts +1 -0
- package/dist/dashboard/index.es.js +3 -3
- package/dist/debts/components/actions/DebtsPriorityAction.d.ts +2 -1
- package/dist/debts/components/debtspriority/DebtsPriorityButton.d.ts +2 -1
- package/dist/debts/index.es.js +589 -587
- package/dist/finstrong/FinstrongWidget.d.ts +1 -1
- package/dist/finstrong/index.es.js +738 -746
- package/dist/goals/GoalsWidget.d.ts +1 -1
- package/dist/goals/index.es.js +439 -438
- package/dist/help/HelpWidget.d.ts +1 -1
- package/dist/help/index.es.js +21 -12
- package/dist/insights/components/index.d.ts +1 -0
- package/dist/insights/components/shared/InsightsCard/ClientConfigurableCta.d.ts +5 -0
- package/dist/insights/components/shared/InsightsCard/ContentAndDescription.d.ts +0 -2
- package/dist/insights/components/shared/InsightsCard/ContentAndDescriptionMUI.d.ts +0 -2
- package/dist/insights/components/shared/InsightsCard/Description.d.ts +0 -2
- package/dist/insights/components/shared/InsightsCard/DescriptionMUI.d.ts +0 -2
- package/dist/insights/index.es.js +562 -579
- package/dist/insights/types/CommonBeat.d.ts +0 -1
- package/dist/investments/InvestmentsWidget.d.ts +1 -1
- package/dist/investments/index.es.js +418 -417
- package/dist/networth/index.es.js +265 -278
- package/dist/notifications/index.es.js +1 -1
- package/dist/recurringtransactions/RecurringTransactionsWidget.d.ts +1 -1
- package/dist/recurringtransactions/index.es.js +235 -232
- package/dist/settings/SettingsWidget.d.ts +1 -1
- package/dist/settings/index.es.js +283 -282
- package/dist/spending/index.es.js +110 -109
- package/dist/transactions/index.es.js +280 -277
- package/dist/trends/index.es.js +623 -616
- package/dist/{useScreenSize-B6JyS_Lj.mjs → useScreenSize-CUcpY7aJ.mjs} +1 -1
- package/package.json +2 -2
- package/dist/WidgetContainer-D-pbSa7L.mjs +0 -441
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [8.0.21] - 04-17-2026
|
|
2
|
+
|
|
3
|
+
- **ADDED** - `ClientConfigurableCta` for Insights Card
|
|
4
|
+
|
|
5
|
+
## [8.0.20] - 04-15-2026
|
|
6
|
+
|
|
7
|
+
- **UPDATED** - Widget container header styles
|
|
8
|
+
|
|
1
9
|
## [8.0.19] - 04-15-2026
|
|
2
10
|
|
|
3
11
|
- **ADDED** - Added `DrillDown Static Calculation Drawer` for SaveAnExtra and SaveEnoughToLiveOn beats
|
|
@@ -82,19 +90,19 @@
|
|
|
82
90
|
|
|
83
91
|
- **UPDATED** - types by moving from common/types to core/types (BREAKING CHANGE)
|
|
84
92
|
|
|
85
|
-
## [7.13.
|
|
93
|
+
## [7.13.22] - 04-03-2026
|
|
86
94
|
|
|
87
95
|
- **FIXED** - `Spending` widget treating negative transactions as expenses
|
|
88
96
|
|
|
89
|
-
## [7.13.
|
|
97
|
+
## [7.13.21] - 04-02-2026
|
|
90
98
|
|
|
91
99
|
- **ADDED** - DonutChartV2 component for Insights MUI Refresh.
|
|
92
100
|
|
|
93
|
-
## [7.13.
|
|
101
|
+
## [7.13.20] - 04-01-2026
|
|
94
102
|
|
|
95
103
|
- **ADDED** - Introduced `TransactionCard` component for `Insights`.
|
|
96
104
|
|
|
97
|
-
## [7.13.
|
|
105
|
+
## [7.13.19] - 04-01-2026
|
|
98
106
|
|
|
99
107
|
- **FIXED** - Budget date now aligns with selected month
|
|
100
108
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { makeAutoObservable as h, runInAction as a } from "mobx";
|
|
2
|
-
import { i as g } from "./BudgetUtil-
|
|
2
|
+
import { i as g } from "./BudgetUtil-DZpOoZQa.mjs";
|
|
3
3
|
import { A as d } from "./AccountApi-ChQr5PAZ.mjs";
|
|
4
4
|
import { d as p } from "./Accounts-o7ohkngR.mjs";
|
|
5
5
|
import { A as s, d as u } from "./Account-BiB1F8lL.mjs";
|
|
@@ -27,7 +27,7 @@ import ut from "@mui/material/IconButton";
|
|
|
27
27
|
import gt from "@mui/material/InputAdornment";
|
|
28
28
|
import E from "@mui/material/Stack";
|
|
29
29
|
import ft from "@mui/material/TextField";
|
|
30
|
-
import { u as pt } from "./useScreenSize-
|
|
30
|
+
import { u as pt } from "./useScreenSize-CUcpY7aJ.mjs";
|
|
31
31
|
import { m as ht } from "./hooks-BxkfR-Ff.mjs";
|
|
32
32
|
import { b as T } from "./Category-CevNQ03n.mjs";
|
|
33
33
|
import { b as j } from "./Localization-CPkpIwIx.mjs";
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
import { jsxs as a, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
2
|
+
import _, { useMemo as q, useState as K, useEffect as J } from "react";
|
|
3
3
|
import A from "@mui/material/Box";
|
|
4
4
|
import Y from "@mui/material/Button";
|
|
5
5
|
import c from "@mui/material/Stack";
|
|
6
|
-
import { Icon as E, P as N, H3 as
|
|
7
|
-
import { Receipt as
|
|
8
|
-
import { L as
|
|
6
|
+
import { Icon as E, P as N, H3 as P, Text as f, MerchantLogo as tt, H2 as et } from "@mxenabled/mxui";
|
|
7
|
+
import { Receipt as rt, Icon as nt } from "@mxenabled/mx-icons";
|
|
8
|
+
import { L as it, O as ot, e as at } from "./exportTransactionsToCSV-DgdB3TBt.mjs";
|
|
9
9
|
import { observer as O } from "mobx-react-lite";
|
|
10
|
-
import { useVirtualizer as
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import { G as
|
|
14
|
-
import
|
|
15
|
-
import
|
|
10
|
+
import { useVirtualizer as st } from "@tanstack/react-virtual";
|
|
11
|
+
import lt from "@mui/material/Divider";
|
|
12
|
+
import ct from "@mui/material/List";
|
|
13
|
+
import { G as dt, h as W, u as H, g as ht, b as mt } from "./hooks-BxkfR-Ff.mjs";
|
|
14
|
+
import pt from "@mui/material/ListItemAvatar";
|
|
15
|
+
import ut from "@mui/material/ListItemText";
|
|
16
16
|
import { useTheme as z } from "@mui/material/styles";
|
|
17
|
-
import { a as
|
|
17
|
+
import { a as ft } from "./Transaction-C3Pg9TKf.mjs";
|
|
18
18
|
import { f as B } from "./NumberFormatting-QCaNwbjv.mjs";
|
|
19
19
|
import { fromUnixTime as R } from "date-fns/fromUnixTime";
|
|
20
20
|
import { isSameDay as Z } from "date-fns/isSameDay";
|
|
21
|
-
import { f as
|
|
22
|
-
import { h as
|
|
21
|
+
import { f as gt, D as xt } from "./DateFormats-BMpMrZpW.mjs";
|
|
22
|
+
import { h as bt } from "./DateUtil-wcYTmDRD.mjs";
|
|
23
23
|
import { L as Q } from "./Loader-D3rjKx72.mjs";
|
|
24
|
-
import { A as
|
|
25
|
-
import
|
|
24
|
+
import { A as yt } from "./Analytics-0Xm_BjHU.mjs";
|
|
25
|
+
import _t from "@mui/material/Tab";
|
|
26
26
|
import wt from "@mui/material/Tabs";
|
|
27
|
-
import
|
|
28
|
-
import { ChartContainer as
|
|
29
|
-
import { D as
|
|
30
|
-
import
|
|
31
|
-
const
|
|
27
|
+
import Ct from "@mui/material/IconButton";
|
|
28
|
+
import { ChartContainer as vt, ChartsReferenceLine as j, ChartsXAxis as Tt, BarPlot as Dt } from "@mui/x-charts";
|
|
29
|
+
import { D as St } from "./Drawer-Bbe4AMB1.mjs";
|
|
30
|
+
import It from "@mui/material/Card";
|
|
31
|
+
const Lt = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) => {
|
|
32
32
|
const l = i || r, h = i ? "chevron_right" : "close";
|
|
33
33
|
return /* @__PURE__ */ a(
|
|
34
34
|
c,
|
|
@@ -52,7 +52,7 @@ const It = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) =
|
|
|
52
52
|
/* @__PURE__ */ e(N, { color: "primary.dark", fontWeight: 400, noWrap: !1, variant: "subtitle2", children: t })
|
|
53
53
|
] }),
|
|
54
54
|
l && /* @__PURE__ */ e(
|
|
55
|
-
|
|
55
|
+
Ct,
|
|
56
56
|
{
|
|
57
57
|
"aria-label": n,
|
|
58
58
|
onClick: l,
|
|
@@ -64,7 +64,7 @@ const It = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) =
|
|
|
64
64
|
]
|
|
65
65
|
}
|
|
66
66
|
);
|
|
67
|
-
},
|
|
67
|
+
}, kt = ({
|
|
68
68
|
ariaLabel: t,
|
|
69
69
|
beat: n,
|
|
70
70
|
chart: r,
|
|
@@ -75,7 +75,7 @@ const It = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) =
|
|
|
75
75
|
onTabChange: g,
|
|
76
76
|
tipSection: m
|
|
77
77
|
}) => {
|
|
78
|
-
const { heading: d, subHeading: u } = n, x =
|
|
78
|
+
const { heading: d, subHeading: u } = n, x = q(
|
|
79
79
|
() => l ?? (o.length ? o.length - 1 : 0),
|
|
80
80
|
[l, o.length]
|
|
81
81
|
), [y, p] = K(x), S = (v, T) => {
|
|
@@ -85,7 +85,7 @@ const It = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) =
|
|
|
85
85
|
};
|
|
86
86
|
return /* @__PURE__ */ a(A, { sx: { bgcolor: "background.paper", width: "100%" }, children: [
|
|
87
87
|
/* @__PURE__ */ e(wt, { "aria-label": t, onChange: S, value: y, variant: "fullWidth", children: o.map((v, T) => /* @__PURE__ */ e(
|
|
88
|
-
|
|
88
|
+
_t,
|
|
89
89
|
{
|
|
90
90
|
id: `transaction-details-tab-${T}`,
|
|
91
91
|
label: v.label,
|
|
@@ -94,54 +94,61 @@ const It = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) =
|
|
|
94
94
|
`${v.label}-${T}`
|
|
95
95
|
)) }),
|
|
96
96
|
/* @__PURE__ */ e(c, { sx: { pt: 16, px: 24 }, children: (d || u) && /* @__PURE__ */ a(c, { sx: { gap: 4 }, children: [
|
|
97
|
-
d && /* @__PURE__ */ e(
|
|
97
|
+
d && /* @__PURE__ */ e(P, { children: d }),
|
|
98
98
|
u && /* @__PURE__ */ a(c, { sx: { alignItems: "center", flexDirection: "row", gap: 8 }, children: [
|
|
99
99
|
h,
|
|
100
100
|
/* @__PURE__ */ e(f, { textTransform: "uppercase", variant: "body2", children: u.description })
|
|
101
101
|
] })
|
|
102
102
|
] }) }),
|
|
103
103
|
r?.(y, I),
|
|
104
|
-
m && /* @__PURE__ */ e(
|
|
104
|
+
m && /* @__PURE__ */ e(Lt, { ...m }),
|
|
105
105
|
i?.(y)
|
|
106
106
|
] });
|
|
107
107
|
}, V = () => {
|
|
108
|
-
if (!
|
|
108
|
+
if (!_.useContext(dt))
|
|
109
109
|
throw new Error("useTransactionsUiStore() must be used within the GlobalDataContext");
|
|
110
110
|
return W().uiStore;
|
|
111
111
|
};
|
|
112
|
-
function
|
|
112
|
+
function At() {
|
|
113
113
|
return window.opener && window.opener.location ? window.opener.location.toString() : document.referrer;
|
|
114
114
|
}
|
|
115
|
-
function
|
|
116
|
-
const n =
|
|
115
|
+
function X(t) {
|
|
116
|
+
const n = At().replace(/([^:]+:\/\/[^\/]+).*/, "$1"), r = window.parent || window.opener || !1;
|
|
117
117
|
return r && r.postMessage && n ? (r.postMessage(t, n), !0) : !1;
|
|
118
118
|
}
|
|
119
119
|
function $t(t) {
|
|
120
|
-
return
|
|
120
|
+
return X({
|
|
121
121
|
metadata: { beat_guid: t },
|
|
122
122
|
mx: !0,
|
|
123
123
|
type: "mx/moneyDashboard/insightOnTransaction"
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
|
+
function ve(t) {
|
|
127
|
+
return X({
|
|
128
|
+
metadata: { template: t },
|
|
129
|
+
mx: !0,
|
|
130
|
+
type: "mx/pulse/client_configured_cta"
|
|
131
|
+
});
|
|
132
|
+
}
|
|
126
133
|
const Et = ({ transaction: t, onClick: n }) => {
|
|
127
|
-
const i = z().palette.mode === "dark", { associatedBeats: o } = W(), { expandedSplits: l } = V(), { transactions: h } = H(), { showInsights: g } = V(), m = t.transaction_type ===
|
|
134
|
+
const i = z().palette.mode === "dark", { associatedBeats: o } = W(), { expandedSplits: l } = V(), { transactions: h } = H(), { showInsights: g } = V(), m = t.transaction_type === ft.CREDIT, d = _.useMemo(() => o.find((u) => u.associated_transaction_guid === t.guid), [o, t]);
|
|
128
135
|
return (
|
|
129
136
|
//TODO: implement common/components/ListItemRow.tsx
|
|
130
137
|
/* @__PURE__ */ a(
|
|
131
|
-
|
|
138
|
+
it,
|
|
132
139
|
{
|
|
133
|
-
clickEventName:
|
|
140
|
+
clickEventName: ot.ON_TRANSACTION_LIST_ITEM_CLICK,
|
|
134
141
|
onClick: n ? () => n(t.guid) : void 0,
|
|
135
142
|
children: [
|
|
136
|
-
/* @__PURE__ */ e(
|
|
137
|
-
|
|
143
|
+
/* @__PURE__ */ e(pt, { children: t.parent_guid && l.includes(t.parent_guid) ? /* @__PURE__ */ e(_.Fragment, {}) : /* @__PURE__ */ e(
|
|
144
|
+
tt,
|
|
138
145
|
{
|
|
139
146
|
categoryGuid: t.top_level_category_guid || "",
|
|
140
147
|
merchantGuid: t.merchant_guid || ""
|
|
141
148
|
}
|
|
142
149
|
) }),
|
|
143
150
|
/* @__PURE__ */ e(
|
|
144
|
-
|
|
151
|
+
ut,
|
|
145
152
|
{
|
|
146
153
|
disableTypography: !0,
|
|
147
154
|
secondary: /* @__PURE__ */ a(c, { direction: "row", justifyContent: "space-between", children: [
|
|
@@ -203,7 +210,7 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
203
210
|
}) => /* @__PURE__ */ e(A, { display: "inline-block", sx: { bgcolor: t, py: 6, width: "100%" }, children: /* @__PURE__ */ e(f, { bold: !0, sx: { pl: 24 }, variant: "caption", children: n }) }), Wt = ({ showIcon: t = !0, showSubtitle: n = !0 }) => {
|
|
204
211
|
const { transactions: r } = H();
|
|
205
212
|
return /* @__PURE__ */ a(c, { alignItems: "center", gap: 12, height: "auto", mb: 24, mt: 24, children: [
|
|
206
|
-
t && /* @__PURE__ */ e(
|
|
213
|
+
t && /* @__PURE__ */ e(rt, { color: "action", sx: { fontSize: 32 } }),
|
|
207
214
|
/* @__PURE__ */ e(f, { bold: !0, color: "text.secondary", variant: "body2", children: r.zero_state_no_transactions }),
|
|
208
215
|
n && /* @__PURE__ */ e(f, { color: "text.secondary", variant: "caption", children: r.zero_state_there_are_no_transactions })
|
|
209
216
|
] });
|
|
@@ -213,8 +220,8 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
213
220
|
}, Bt = (t, n) => {
|
|
214
221
|
const r = R(n[t].date), i = R(n[t + 1]?.date);
|
|
215
222
|
return Z(r, i);
|
|
216
|
-
},
|
|
217
|
-
const o =
|
|
223
|
+
}, Te = (t) => t?.data ? t.data.map((n) => Object.fromEntries((t.names || []).map((r, i) => [r, n[i]]))) : [], De = (t, n = "") => t.map((i) => {
|
|
224
|
+
const o = gt(i.date, xt.MONTH_SHORT);
|
|
218
225
|
return {
|
|
219
226
|
ariaLabel: `
|
|
220
227
|
${o},
|
|
@@ -237,26 +244,26 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
237
244
|
width: d = "100%",
|
|
238
245
|
zeroState: u = /* @__PURE__ */ e(zt, {})
|
|
239
246
|
}) => {
|
|
240
|
-
const { isLoading: x, sortedTransactions: y } = W(), p =
|
|
241
|
-
const b = n ? y.filter(n) : y,
|
|
242
|
-
return g ?
|
|
243
|
-
}, [y, g, m]), { clearExpandedSplits: S, setShowInsights: I, toggleSplit: v } = V(), { onEvent: T } =
|
|
244
|
-
const
|
|
245
|
-
if (
|
|
246
|
-
v(
|
|
247
|
+
const { isLoading: x, sortedTransactions: y } = W(), p = _.useMemo(() => {
|
|
248
|
+
const b = n ? y.filter(n) : y, w = m ?? b;
|
|
249
|
+
return g ? w : w.filter((s) => !s.is_hidden);
|
|
250
|
+
}, [y, g, m]), { clearExpandedSplits: S, setShowInsights: I, toggleSplit: v } = V(), { onEvent: T } = ht(), M = (b) => {
|
|
251
|
+
const w = p.find((s) => s.guid === b);
|
|
252
|
+
if (w?.has_been_split) {
|
|
253
|
+
v(w.guid);
|
|
247
254
|
return;
|
|
248
255
|
}
|
|
249
|
-
T(
|
|
250
|
-
account_guid:
|
|
256
|
+
T(yt.ACCOUNT_DETAILS_CLICK_TRANSACTION, {
|
|
257
|
+
account_guid: w?.account_guid,
|
|
251
258
|
transaction_guid: b
|
|
252
259
|
}), o?.(b);
|
|
253
|
-
}, L =
|
|
260
|
+
}, L = _.useRef(null), k = st({
|
|
254
261
|
count: p.length,
|
|
255
262
|
getScrollElement: () => L.current,
|
|
256
263
|
estimateSize: (b) => U + (G(b, p) ? F : 0),
|
|
257
264
|
overscan: 5
|
|
258
265
|
});
|
|
259
|
-
return
|
|
266
|
+
return _.useEffect(() => k.measure(), [p]), _.useEffect(() => I(l), [l]), _.useEffect(() => () => S(), []), /* @__PURE__ */ e(ct, { component: "div", role: "list", sx: { width: d }, children: /* @__PURE__ */ e(A, { height: r, overflow: "auto", ref: L, role: "presentation", width: d, children: /* @__PURE__ */ a(
|
|
260
267
|
A,
|
|
261
268
|
{
|
|
262
269
|
height: (
|
|
@@ -270,7 +277,7 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
270
277
|
(x || h) && i,
|
|
271
278
|
!x && !h && k.getVirtualItems().length === 0 && u,
|
|
272
279
|
!x && !h && k.getVirtualItems().length > 0 && k.getVirtualItems().map((b) => {
|
|
273
|
-
const
|
|
280
|
+
const w = p[b.index], s = G(b.index, p), C = Bt(b.index, p), D = U + (s ? F : 0);
|
|
274
281
|
return /* @__PURE__ */ a(
|
|
275
282
|
A,
|
|
276
283
|
{
|
|
@@ -283,18 +290,18 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
283
290
|
bgcolor: "background.paper"
|
|
284
291
|
},
|
|
285
292
|
children: [
|
|
286
|
-
s && /* @__PURE__ */ e(Rt, { bgcolor: t, children:
|
|
293
|
+
s && /* @__PURE__ */ e(Rt, { bgcolor: t, children: bt(w.date) }),
|
|
287
294
|
/* @__PURE__ */ e(
|
|
288
295
|
Mt,
|
|
289
296
|
{
|
|
290
297
|
...o && { onClick: M },
|
|
291
|
-
transaction:
|
|
298
|
+
transaction: w
|
|
292
299
|
}
|
|
293
300
|
),
|
|
294
|
-
/* @__PURE__ */ e(
|
|
301
|
+
/* @__PURE__ */ e(lt, { sx: { ml: C ? 68 : 0 } })
|
|
295
302
|
]
|
|
296
303
|
},
|
|
297
|
-
|
|
304
|
+
w.guid
|
|
298
305
|
);
|
|
299
306
|
})
|
|
300
307
|
]
|
|
@@ -302,7 +309,7 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
302
309
|
) }) });
|
|
303
310
|
}, Nt = O(Vt), Ot = (t) => {
|
|
304
311
|
const [n, r] = K({ width: 0, height: 0 });
|
|
305
|
-
return
|
|
312
|
+
return J(() => {
|
|
306
313
|
const i = () => {
|
|
307
314
|
if (t.current) {
|
|
308
315
|
const { offsetWidth: o, offsetHeight: l } = t.current;
|
|
@@ -431,7 +438,7 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
431
438
|
selectedTabIndex: d,
|
|
432
439
|
trendAmountLabel: u
|
|
433
440
|
}) => {
|
|
434
|
-
const x =
|
|
441
|
+
const x = _.useRef(null), { height: y, width: p } = Ot(x), S = z(), I = _.useMemo(() => {
|
|
435
442
|
const s = r.map(({ value: $ }) => $), C = Math.min(...s), D = Math.max(...s);
|
|
436
443
|
return {
|
|
437
444
|
series: [
|
|
@@ -455,10 +462,10 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
455
462
|
}
|
|
456
463
|
]
|
|
457
464
|
};
|
|
458
|
-
}, [r]), v =
|
|
465
|
+
}, [r]), v = _.useMemo(() => {
|
|
459
466
|
const s = `${n}80`;
|
|
460
467
|
return m ? r.map(() => n) : d == null ? [...new Array(r.length - 1).fill(s), n] : r.map((C, D) => D === d ? n : s);
|
|
461
|
-
}, [n, r, d]), T =
|
|
468
|
+
}, [n, r, d]), T = _.useMemo(
|
|
462
469
|
() => r[d ?? r.length - 1],
|
|
463
470
|
[r, d]
|
|
464
471
|
), L = r.reduce((s, C) => Math.min(s, C.value), 1 / 0) < 0, k = /* @__PURE__ */ e(
|
|
@@ -471,7 +478,7 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
471
478
|
trendAmount: t?.formattedAverage,
|
|
472
479
|
trendAmountLabel: u
|
|
473
480
|
}
|
|
474
|
-
), b = g || u,
|
|
481
|
+
), b = g || u, w = (s, { dataIndex: C }) => l?.(C);
|
|
475
482
|
return /* @__PURE__ */ a(c, { sx: { alignItems: "center", width: "100%" }, children: [
|
|
476
483
|
b && h === "top" && k,
|
|
477
484
|
/* @__PURE__ */ e(
|
|
@@ -493,7 +500,7 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
493
500
|
}
|
|
494
501
|
},
|
|
495
502
|
children: /* @__PURE__ */ a(
|
|
496
|
-
|
|
503
|
+
vt,
|
|
497
504
|
{
|
|
498
505
|
height: y,
|
|
499
506
|
margin: {
|
|
@@ -531,7 +538,7 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
531
538
|
}
|
|
532
539
|
),
|
|
533
540
|
/* @__PURE__ */ e(
|
|
534
|
-
|
|
541
|
+
Tt,
|
|
535
542
|
{
|
|
536
543
|
position: "bottom",
|
|
537
544
|
slots: {
|
|
@@ -568,9 +575,9 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
568
575
|
}
|
|
569
576
|
),
|
|
570
577
|
/* @__PURE__ */ e(
|
|
571
|
-
|
|
578
|
+
Dt,
|
|
572
579
|
{
|
|
573
|
-
onItemClick:
|
|
580
|
+
onItemClick: w,
|
|
574
581
|
slots: {
|
|
575
582
|
bar: (s) => {
|
|
576
583
|
const { ownerState: C, ...D } = s;
|
|
@@ -616,9 +623,9 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
616
623
|
title: u,
|
|
617
624
|
transactionListProps: x = {}
|
|
618
625
|
}) => {
|
|
619
|
-
const { common: y, transactions: p } = H(), { isCopyLoaded: S } =
|
|
620
|
-
return S ? /* @__PURE__ */ e(
|
|
621
|
-
|
|
626
|
+
const { common: y, transactions: p } = H(), { isCopyLoaded: S } = mt(), { sortedTransactionsWithSplits: I, tags: v } = W();
|
|
627
|
+
return S ? /* @__PURE__ */ e(St, { ariaLabelClose: y.close_aria, isOpen: h, onClose: g, title: u, children: /* @__PURE__ */ e(
|
|
628
|
+
kt,
|
|
622
629
|
{
|
|
623
630
|
ariaLabel: t,
|
|
624
631
|
beat: r,
|
|
@@ -637,7 +644,7 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
637
644
|
icon: l,
|
|
638
645
|
onTabChange: m,
|
|
639
646
|
tipSection: d,
|
|
640
|
-
children: () => /* @__PURE__ */ a(
|
|
647
|
+
children: () => /* @__PURE__ */ a(_.Fragment, { children: [
|
|
641
648
|
/* @__PURE__ */ a(
|
|
642
649
|
c,
|
|
643
650
|
{
|
|
@@ -658,12 +665,12 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
658
665
|
Y,
|
|
659
666
|
{
|
|
660
667
|
onClick: () => {
|
|
661
|
-
|
|
668
|
+
at(
|
|
662
669
|
x?.transaction || I,
|
|
663
670
|
v
|
|
664
671
|
);
|
|
665
672
|
},
|
|
666
|
-
startIcon: /* @__PURE__ */ e(
|
|
673
|
+
startIcon: /* @__PURE__ */ e(nt, { name: "ios_share" }),
|
|
667
674
|
sx: { height: 28 },
|
|
668
675
|
children: /* @__PURE__ */ e(f, { bold: !0, variant: "body2", children: p.export_csv_btn })
|
|
669
676
|
}
|
|
@@ -675,7 +682,7 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
675
682
|
] })
|
|
676
683
|
}
|
|
677
684
|
) }) : /* @__PURE__ */ e(Q, {});
|
|
678
|
-
},
|
|
685
|
+
}, Se = Ft, Kt = ({
|
|
679
686
|
amount: t,
|
|
680
687
|
borderRadius: n = "2px",
|
|
681
688
|
count: r,
|
|
@@ -691,7 +698,7 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
691
698
|
/* @__PURE__ */ e(A, { children: o }),
|
|
692
699
|
/* @__PURE__ */ a(c, { children: [
|
|
693
700
|
typeof r == "string" ? /* @__PURE__ */ e(N, { variant: "body2", children: l }) : r,
|
|
694
|
-
typeof t == "string" ? /* @__PURE__ */ e(
|
|
701
|
+
typeof t == "string" ? /* @__PURE__ */ e(et, { children: t }) : t
|
|
695
702
|
] })
|
|
696
703
|
] }),
|
|
697
704
|
/* @__PURE__ */ a(c, { sx: { gap: 4 }, children: [
|
|
@@ -728,14 +735,14 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
728
735
|
/* @__PURE__ */ e(f, { variant: "body2", children: m })
|
|
729
736
|
] })
|
|
730
737
|
] })
|
|
731
|
-
] }),
|
|
738
|
+
] }), Ie = Kt, Le = ({
|
|
732
739
|
title: t,
|
|
733
740
|
description: n,
|
|
734
741
|
callToAction: r,
|
|
735
742
|
instanceSlot: i = void 0,
|
|
736
743
|
onCtaClick: o = () => {
|
|
737
744
|
}
|
|
738
|
-
}) => /* @__PURE__ */ a(
|
|
745
|
+
}) => /* @__PURE__ */ a(It, { sx: { pt: 8, pr: 16, pb: 12, pl: 8, borderRadius: "8px" }, children: [
|
|
739
746
|
/* @__PURE__ */ e(
|
|
740
747
|
c,
|
|
741
748
|
{
|
|
@@ -786,17 +793,18 @@ const Et = ({ transaction: t, onClick: n }) => {
|
|
|
786
793
|
] });
|
|
787
794
|
export {
|
|
788
795
|
Ut as B,
|
|
789
|
-
|
|
790
|
-
|
|
796
|
+
Se as C,
|
|
797
|
+
Le as E,
|
|
791
798
|
Rt as S,
|
|
792
799
|
Nt as T,
|
|
793
800
|
Mt as a,
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
801
|
+
Ie as b,
|
|
802
|
+
Te as c,
|
|
803
|
+
De as d,
|
|
797
804
|
Ot as e,
|
|
798
|
-
|
|
805
|
+
kt as f,
|
|
799
806
|
Bt as h,
|
|
807
|
+
ve as p,
|
|
800
808
|
G as s,
|
|
801
809
|
V as u
|
|
802
810
|
};
|
|
@@ -6,20 +6,19 @@ import C from "@mui/material/Button";
|
|
|
6
6
|
import P from "@mui/material/Divider";
|
|
7
7
|
import w from "@mui/material/IconButton";
|
|
8
8
|
import O from "@mui/material/Popover";
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import { FilterAlt as
|
|
12
|
-
import
|
|
9
|
+
import A from "@mui/material/Stack";
|
|
10
|
+
import E from "@mui/material/Tooltip";
|
|
11
|
+
import { FilterAlt as F } from "@mxenabled/mx-icons";
|
|
12
|
+
import S from "@mui/material/Checkbox";
|
|
13
13
|
import G from "@mui/material/List";
|
|
14
14
|
import y from "@mui/material/ListItem";
|
|
15
15
|
import _ from "@mui/material/ListItemButton";
|
|
16
|
-
import
|
|
16
|
+
import H from "@mui/material/ListItemIcon";
|
|
17
17
|
import v from "@mui/material/ListItemText";
|
|
18
|
-
import { b as
|
|
19
|
-
import { u as H } from "./useScreenSize-B6JyS_Lj.mjs";
|
|
18
|
+
import { b as M, u as z, d as L } from "./hooks-BxkfR-Ff.mjs";
|
|
20
19
|
const N = I(
|
|
21
20
|
({ allowedAccountTypes: a }) => {
|
|
22
|
-
const { accountFilterMap: s, updateAccountFilterMap: u } =
|
|
21
|
+
const { accountFilterMap: s, updateAccountFilterMap: u } = M(), { accounts: g, common: x } = z(), { account_filter: c } = x, { accountsByTypeMap: n } = L(), k = B.useMemo(
|
|
23
22
|
() => Array.from(n.keys()).reduce((t, i) => {
|
|
24
23
|
if (!a || a && a.includes(i)) {
|
|
25
24
|
const o = n.get(i);
|
|
@@ -57,7 +56,7 @@ const N = I(
|
|
|
57
56
|
sx: { py: 16 },
|
|
58
57
|
children: /* @__PURE__ */ d(_, { disableGutters: !0, onClick: f, sx: { p: 0, px: 8 }, children: [
|
|
59
58
|
/* @__PURE__ */ e(
|
|
60
|
-
|
|
59
|
+
S,
|
|
61
60
|
{
|
|
62
61
|
"aria-checked": m,
|
|
63
62
|
checked: m,
|
|
@@ -89,7 +88,7 @@ const N = I(
|
|
|
89
88
|
"aria-label": r,
|
|
90
89
|
disableGutters: !0,
|
|
91
90
|
disablePadding: !0,
|
|
92
|
-
children: /* @__PURE__ */ d(
|
|
91
|
+
children: /* @__PURE__ */ d(A, { sx: { pb: 8, width: "100%" }, children: [
|
|
93
92
|
/* @__PURE__ */ e(P, {}),
|
|
94
93
|
/* @__PURE__ */ e(
|
|
95
94
|
G,
|
|
@@ -122,8 +121,8 @@ const N = I(
|
|
|
122
121
|
onClick: () => u(l.guid, !s.get(l.guid)),
|
|
123
122
|
sx: { p: 0, minHeight: 40 },
|
|
124
123
|
children: [
|
|
125
|
-
/* @__PURE__ */ e(
|
|
126
|
-
|
|
124
|
+
/* @__PURE__ */ e(H, { children: /* @__PURE__ */ e(
|
|
125
|
+
S,
|
|
127
126
|
{
|
|
128
127
|
"aria-checked": s.get(l.guid),
|
|
129
128
|
checked: s.get(l.guid),
|
|
@@ -157,22 +156,23 @@ const N = I(
|
|
|
157
156
|
}
|
|
158
157
|
);
|
|
159
158
|
}
|
|
160
|
-
),
|
|
159
|
+
), le = I(
|
|
161
160
|
({
|
|
162
161
|
allowedAccountTypes: a,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
162
|
+
isDesktop: s,
|
|
163
|
+
onAccountFilterClick: u,
|
|
164
|
+
sx: g = {},
|
|
165
|
+
variant: x = "text"
|
|
166
166
|
}) => {
|
|
167
|
-
const {
|
|
168
|
-
k(), f(W.currentTarget),
|
|
167
|
+
const { common: c } = z(), { accountFilterMap: n, resetAccountFilterMap: k } = M(), { detailedAccounts: p, updateAccountFilter: m } = L(), [h, f] = B.useState(null), b = (W) => {
|
|
168
|
+
k(), f(W.currentTarget), u?.();
|
|
169
169
|
}, t = () => {
|
|
170
170
|
f(null);
|
|
171
171
|
}, i = async () => {
|
|
172
172
|
await m(n), f(null);
|
|
173
173
|
}, o = c.account_filter, r = !!h, l = p.length === 0;
|
|
174
|
-
return /* @__PURE__ */ d(j, {
|
|
175
|
-
|
|
174
|
+
return /* @__PURE__ */ d(j, { sx: { ...g }, children: [
|
|
175
|
+
s ? /* @__PURE__ */ e(
|
|
176
176
|
C,
|
|
177
177
|
{
|
|
178
178
|
"aria-controls": r ? "filter_accounts" : void 0,
|
|
@@ -181,12 +181,12 @@ const N = I(
|
|
|
181
181
|
"aria-label": o.title,
|
|
182
182
|
disabled: l,
|
|
183
183
|
onClick: b,
|
|
184
|
-
startIcon: /* @__PURE__ */ e(
|
|
184
|
+
startIcon: /* @__PURE__ */ e(F, { size: 24 }),
|
|
185
185
|
sx: { p: 8, whiteSpace: "nowrap", minWidth: "max-content" },
|
|
186
|
-
variant:
|
|
186
|
+
variant: x,
|
|
187
187
|
children: c.filter_button
|
|
188
188
|
}
|
|
189
|
-
) : /* @__PURE__ */ e(
|
|
189
|
+
) : /* @__PURE__ */ e(E, { id: "filter-accounts", placement: "bottom", title: o.title, children: /* @__PURE__ */ e(
|
|
190
190
|
w,
|
|
191
191
|
{
|
|
192
192
|
"aria-controls": r ? "filter_accounts" : void 0,
|
|
@@ -198,7 +198,7 @@ const N = I(
|
|
|
198
198
|
disabled: l,
|
|
199
199
|
onClick: b,
|
|
200
200
|
sx: { p: 8 },
|
|
201
|
-
children: /* @__PURE__ */ e(
|
|
201
|
+
children: /* @__PURE__ */ e(F, { size: 24 })
|
|
202
202
|
}
|
|
203
203
|
) }),
|
|
204
204
|
/* @__PURE__ */ e(
|
|
@@ -209,10 +209,10 @@ const N = I(
|
|
|
209
209
|
onClose: t,
|
|
210
210
|
open: r,
|
|
211
211
|
transformOrigin: { vertical: "top", horizontal: "left" },
|
|
212
|
-
children: /* @__PURE__ */ d(
|
|
212
|
+
children: /* @__PURE__ */ d(A, { children: [
|
|
213
213
|
/* @__PURE__ */ e(N, { allowedAccountTypes: a }),
|
|
214
214
|
/* @__PURE__ */ e(P, {}),
|
|
215
|
-
/* @__PURE__ */ d(
|
|
215
|
+
/* @__PURE__ */ d(A, { direction: "row", justifyContent: "space-between", spacing: 16, sx: { p: 16 }, children: [
|
|
216
216
|
/* @__PURE__ */ e(C, { fullWidth: !0, onClick: t, variant: "text", children: c.cancel_button }),
|
|
217
217
|
/* @__PURE__ */ e(
|
|
218
218
|
C,
|
|
@@ -233,5 +233,5 @@ const N = I(
|
|
|
233
233
|
}
|
|
234
234
|
);
|
|
235
235
|
export {
|
|
236
|
-
|
|
236
|
+
le as G
|
|
237
237
|
};
|
|
@@ -28,7 +28,7 @@ import Dt from "@mui/material/ListItemAvatar";
|
|
|
28
28
|
import Rt from "@mui/material/ListItem";
|
|
29
29
|
import Pt from "@mui/material/ListItemIcon";
|
|
30
30
|
import Gt from "@mui/material/ListItemText";
|
|
31
|
-
import { u as Ft } from "./useScreenSize-
|
|
31
|
+
import { u as Ft } from "./useScreenSize-CUcpY7aJ.mjs";
|
|
32
32
|
const kt = (e, i, n) => {
|
|
33
33
|
const l = i.reduce((c, { institution_guid: d }) => (c[d] = (c[d] || 0) + 1, c), {});
|
|
34
34
|
return e.filter(({ guid: c }) => !!l[c]).map(({ guid: c, ...d }) => {
|
|
@@ -17,8 +17,8 @@ import { endOfMonth as ue } from "date-fns/endOfMonth";
|
|
|
17
17
|
import { parseISO as me } from "date-fns/parseISO";
|
|
18
18
|
import J from "@mui/material/Button";
|
|
19
19
|
import { Delete as pe, Add as ye, ReceiptLong as he } from "@mxenabled/mx-icons";
|
|
20
|
-
import { T as V, u as fe, S as ge, a as Ce } from "./EmbeddedCard-
|
|
21
|
-
import { T as be } from "./TransactionDetails-
|
|
20
|
+
import { T as V, u as fe, S as ge, a as Ce } from "./EmbeddedCard-D0Pgpiuq.mjs";
|
|
21
|
+
import { T as be } from "./TransactionDetails-D57Cfnwh.mjs";
|
|
22
22
|
import { addYears as j } from "date-fns/addYears";
|
|
23
23
|
import { getDayOfYear as xe } from "date-fns/getDayOfYear";
|
|
24
24
|
import { setDayOfYear as Se } from "date-fns/setDayOfYear";
|
|
@@ -21,7 +21,7 @@ import { b as me } from "./Localization-CPkpIwIx.mjs";
|
|
|
21
21
|
import { b as he, f as ue } from "./NumberFormatting-QCaNwbjv.mjs";
|
|
22
22
|
import { D as B } from "./Dialog-Ck34yr-d.mjs";
|
|
23
23
|
import { C as _e } from "./CurrencyInput-DuMktPu3.mjs";
|
|
24
|
-
import { u as pe } from "./useScreenSize-
|
|
24
|
+
import { u as pe } from "./useScreenSize-CUcpY7aJ.mjs";
|
|
25
25
|
import { D as K } from "./Drawer-Bbe4AMB1.mjs";
|
|
26
26
|
import fe from "@mui/material/Collapse";
|
|
27
27
|
import ge from "@mui/material/Card";
|
|
@@ -7,7 +7,7 @@ import R from "@mui/material/Tabs";
|
|
|
7
7
|
import d from "@mui/material/Divider";
|
|
8
8
|
import b from "@mui/material/List";
|
|
9
9
|
import T from "@mui/material/Stack";
|
|
10
|
-
import { R as C, A as S, a as E, M as v } from "./ManageIncome-
|
|
10
|
+
import { R as C, A as S, a as E, M as v } from "./ManageIncome-DfKQ48km.mjs";
|
|
11
11
|
import { u as _, i as A, g as f } from "./hooks-BxkfR-Ff.mjs";
|
|
12
12
|
import { R as y, F as N } from "./RepeatingTransaction-DF4vJn_v.mjs";
|
|
13
13
|
import { A as m } from "./Analytics-0Xm_BjHU.mjs";
|
|
@@ -11,7 +11,7 @@ import { CategoryIcon as G, CategoryIconVariants as O, Text as y, P as $ } from
|
|
|
11
11
|
import { D as j } from "./Donut-CpxJlVvJ.mjs";
|
|
12
12
|
import { u as R } from "./useAriaLive-MkYebyUR.mjs";
|
|
13
13
|
import { u as v } from "./hooks-BxkfR-Ff.mjs";
|
|
14
|
-
import { u as V } from "./useScreenSize-
|
|
14
|
+
import { u as V } from "./useScreenSize-CUcpY7aJ.mjs";
|
|
15
15
|
import { f as b } from "./NumberFormatting-QCaNwbjv.mjs";
|
|
16
16
|
const D = 5, B = (i, l, g, m) => m.reduce((o, n) => {
|
|
17
17
|
const a = i.find((s) => s.guid === n.category_guid);
|