@mx-cartographer/experiences 7.0.58-alpha.mm2 → 7.0.58-alpha.mm4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/trends/index.es.js +233 -234
- package/package.json +1 -1
package/dist/trends/index.es.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { jsx as e, jsxs as C, Fragment as
|
|
1
|
+
import { jsx as e, jsxs as C, Fragment as Qe } from "react/jsx-runtime";
|
|
2
2
|
import i from "react";
|
|
3
3
|
import { observer as v } from "mobx-react-lite";
|
|
4
|
-
import { Icon as ie, Text as Q, CategoryIcon as fe, P as X, H3 as Le, ChevronRightIcon as
|
|
4
|
+
import { Icon as ie, Text as Q, CategoryIcon as fe, P as X, H3 as Le, ChevronRightIcon as qe } from "@mxenabled/mxui";
|
|
5
5
|
import W from "@mui/material/Box";
|
|
6
|
-
import
|
|
6
|
+
import _ from "@mui/material/Stack";
|
|
7
7
|
import ge from "@mui/material/Button";
|
|
8
8
|
import { addSeconds as xe } from "date-fns/addSeconds";
|
|
9
9
|
import { differenceInCalendarMonths as pe } from "date-fns/differenceInCalendarMonths";
|
|
10
|
-
import { a as
|
|
10
|
+
import { a as Je, g as et, S as tt, L as ve } from "../TrendsStore-BKBnNQba.mjs";
|
|
11
11
|
import { T as mo } from "../TrendsStore-BKBnNQba.mjs";
|
|
12
|
-
import { i as
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import { u as R, m as K, g as k, b as ee, h as ce, d as le, v as te, f as Te, p as
|
|
12
|
+
import { i as nt, c as ot, d as st, e as rt, f as at, h as it, b as Me, g as Ae, j as we } from "../SpendingData-D5vsfYKo.mjs";
|
|
13
|
+
import ct from "@mui/material/ToggleButton";
|
|
14
|
+
import lt from "@mui/material/ToggleButtonGroup";
|
|
15
|
+
import { u as R, m as K, g as k, b as ee, h as ce, d as le, v as te, f as Te, p as dt, a as ht } from "../hooks-CE2TKk4a.mjs";
|
|
16
16
|
import { u as $ } from "../useScreenSize-B6JyS_Lj.mjs";
|
|
17
17
|
import { f as q, D as B } from "../Dialog-CWW597AF.mjs";
|
|
18
18
|
import { DataGridPro as ut } from "@mui/x-data-grid-pro";
|
|
19
19
|
import { C as mt } from "../CurrencyText-YUhH2caW.mjs";
|
|
20
|
-
import { c as
|
|
20
|
+
import { c as Re } from "../Category-CevNQ03n.mjs";
|
|
21
21
|
import { b as gt } from "../Localization-2MODESHW.mjs";
|
|
22
22
|
import { H as De } from "../HeaderCell-DjuifqHJ.mjs";
|
|
23
23
|
import { T as A, b as pt } from "../ViewMoreMicroCard-BAz2NyEO.mjs";
|
|
24
|
-
import { A as
|
|
25
|
-
import { a as
|
|
24
|
+
import { A as T, W as ke } from "../WidgetContainer-B8MRJ5Y1.mjs";
|
|
25
|
+
import { a as Ne, T as He } from "../TransactionDetails-DAp_CPCP.mjs";
|
|
26
26
|
import { D as Ce } from "../Drawer-kEE73B87.mjs";
|
|
27
27
|
import { L as J } from "../Loader-DUaFpDGv.mjs";
|
|
28
|
-
import { useTheme as
|
|
28
|
+
import { useTheme as We } from "@mui/material/styles";
|
|
29
29
|
import { L as ye } from "../LineChart-B2Y7zwMu.mjs";
|
|
30
30
|
import { M as Ct } from "../MiniWidgetContainer-DTQdRK-3.mjs";
|
|
31
31
|
import { subMonths as ft } from "date-fns";
|
|
@@ -38,7 +38,7 @@ import Lt from "@mui/material/ListItem";
|
|
|
38
38
|
import xt from "@mui/material/ListItemButton";
|
|
39
39
|
import vt from "@mui/material/ListItemIcon";
|
|
40
40
|
import Mt from "@mui/material/ListItemText";
|
|
41
|
-
import
|
|
41
|
+
import Oe from "@mui/material/styles/useTheme";
|
|
42
42
|
import At from "@mui/material/Divider";
|
|
43
43
|
import { useTheme as Rt, Stack as kt } from "@mui/material";
|
|
44
44
|
import Nt from "@mui/material/Paper";
|
|
@@ -47,17 +47,17 @@ import { E as Wt } from "../ExportCsvAction-CBJAfyAw.mjs";
|
|
|
47
47
|
import { u as Ot } from "../useInsightsEnabled-DSnpkUq0.mjs";
|
|
48
48
|
import { E as Vt } from "../EmptyState-w2yYDuKG.mjs";
|
|
49
49
|
import { k as Gt } from "../ConnectDrawer-DJA_S-rX.mjs";
|
|
50
|
-
const
|
|
51
|
-
|
|
50
|
+
const Ve = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
51
|
+
lt,
|
|
52
52
|
{
|
|
53
53
|
exclusive: !0,
|
|
54
54
|
onChange: o,
|
|
55
55
|
orientation: "horizontal",
|
|
56
56
|
value: t,
|
|
57
|
-
children: ["Chart", "Table"].map((n) => /* @__PURE__ */ e(
|
|
57
|
+
children: ["Chart", "Table"].map((n) => /* @__PURE__ */ e(ct, { color: "primary", sx: { width: 56 }, value: n, children: n === "Chart" ? /* @__PURE__ */ e(ie, { name: "table_chart_view" }) : /* @__PURE__ */ e(ie, { name: "format_list_bulleted" }) }, n))
|
|
58
58
|
}
|
|
59
|
-
),
|
|
60
|
-
const { trends: n } = R(), { isMobile: s, isDesktop: a } = $(), { getCategoryName:
|
|
59
|
+
), Ge = ({ selectedDateRange: t, selectedCategoryGuid: o }) => {
|
|
60
|
+
const { trends: n } = R(), { isMobile: s, isDesktop: a } = $(), { getCategoryName: h } = K(), u = i.useMemo(() => {
|
|
61
61
|
const l = q(
|
|
62
62
|
t.start,
|
|
63
63
|
s ? B.MONTH_SHORT_YEAR : B.MONTH_YEAR
|
|
@@ -79,17 +79,17 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
79
79
|
textOverflow: "unset"
|
|
80
80
|
},
|
|
81
81
|
variant: a ? "H3" : "Body",
|
|
82
|
-
children:
|
|
82
|
+
children: h(o) || n.sub_title
|
|
83
83
|
}
|
|
84
84
|
),
|
|
85
|
-
/* @__PURE__ */ e(Q, { variant: a ? "Body" : "Small", children:
|
|
85
|
+
/* @__PURE__ */ e(Q, { variant: a ? "Body" : "Small", children: u })
|
|
86
86
|
] });
|
|
87
87
|
}, Bt = (t) => {
|
|
88
88
|
const o = t.row[t.field];
|
|
89
|
-
return /* @__PURE__ */ e(
|
|
89
|
+
return /* @__PURE__ */ e(_, { alignItems: "flex-end", tabIndex: t.tabIndex, children: /* @__PURE__ */ e(mt, { amount: o, variant: "Small" }) });
|
|
90
90
|
}, zt = ({ categoryGuid: t, topLevelCategoryGuid: o }) => {
|
|
91
|
-
const { categories: n } = R(), s = n.default_categories[t]?.replace(/&/g, "&") ??
|
|
92
|
-
return /* @__PURE__ */ C(
|
|
91
|
+
const { categories: n } = R(), s = n.default_categories[t]?.replace(/&/g, "&") ?? Re[t];
|
|
92
|
+
return /* @__PURE__ */ C(_, { alignItems: "center", direction: "row", justifyContent: "center", children: [
|
|
93
93
|
/* @__PURE__ */ e(
|
|
94
94
|
W,
|
|
95
95
|
{
|
|
@@ -100,7 +100,7 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
100
100
|
),
|
|
101
101
|
/* @__PURE__ */ e(Q, { sx: { ml: 12, pb: 6 }, variant: "Small", children: s })
|
|
102
102
|
] });
|
|
103
|
-
}, Ft = (t) => /* @__PURE__ */ e(
|
|
103
|
+
}, Ft = (t) => /* @__PURE__ */ e(_, { alignItems: "center", direction: "row", height: "100%", width: "100%", children: /* @__PURE__ */ e(
|
|
104
104
|
zt,
|
|
105
105
|
{
|
|
106
106
|
categoryGuid: t.row.category,
|
|
@@ -113,17 +113,17 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
113
113
|
n.push(a), s.setMonth(s.getMonth() + 1);
|
|
114
114
|
}
|
|
115
115
|
return n;
|
|
116
|
-
},
|
|
116
|
+
}, Be = ({
|
|
117
117
|
monthlyCategoryTotals: t,
|
|
118
118
|
selectedDateRange: o,
|
|
119
119
|
selectedCategory: n,
|
|
120
120
|
onClickRow: s,
|
|
121
121
|
height: a = "100dvh",
|
|
122
|
-
sx:
|
|
122
|
+
sx: h = {}
|
|
123
123
|
}) => {
|
|
124
|
-
const { onEvent:
|
|
124
|
+
const { onEvent: u } = k(), l = q(/* @__PURE__ */ new Date(), B.MONTH_SHORT), [c, g] = i.useState([
|
|
125
125
|
{ field: l, sort: "desc" }
|
|
126
|
-
]), f = i.useMemo(() => Pt(o.start, o.end), [o]),
|
|
126
|
+
]), f = i.useMemo(() => Pt(o.start, o.end), [o]), d = [
|
|
127
127
|
{
|
|
128
128
|
field: "category",
|
|
129
129
|
flex: 1,
|
|
@@ -147,48 +147,48 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
147
147
|
sortable: !0,
|
|
148
148
|
hideSortIcons: !1,
|
|
149
149
|
type: "number",
|
|
150
|
-
sortComparator:
|
|
150
|
+
sortComparator: Je
|
|
151
151
|
})
|
|
152
152
|
)
|
|
153
|
-
],
|
|
153
|
+
], b = i.useMemo(() => {
|
|
154
154
|
const r = t.filter(
|
|
155
|
-
(p) => !
|
|
156
|
-
),
|
|
155
|
+
(p) => !nt(p) && !ot(p)
|
|
156
|
+
), y = (n ? r.filter(
|
|
157
157
|
(p) => p.category_guid === n || p.top_level_category_guid === n
|
|
158
158
|
) : r).reduce(
|
|
159
159
|
(p, D) => {
|
|
160
|
-
const { category_guid: w, top_level_category_guid:
|
|
160
|
+
const { category_guid: w, top_level_category_guid: E, month: N, total: I, year: O } = D, M = n ? w : E;
|
|
161
161
|
p[M] || (p[M] = {
|
|
162
162
|
id: M,
|
|
163
163
|
category: M,
|
|
164
164
|
category_guid: w,
|
|
165
|
-
top_level_category_guid:
|
|
165
|
+
top_level_category_guid: E
|
|
166
166
|
});
|
|
167
167
|
const L = q(new Date(O, N - 1), B.MONTH_SHORT);
|
|
168
|
-
return p[M][L] || (p[M][L] = 0), p[M][L] = p[M][L] + Math.abs(
|
|
168
|
+
return p[M][L] || (p[M][L] = 0), p[M][L] = p[M][L] + Math.abs(I), p;
|
|
169
169
|
},
|
|
170
170
|
{}
|
|
171
171
|
);
|
|
172
|
-
return Object.values(
|
|
172
|
+
return Object.values(y);
|
|
173
173
|
}, [t, n]);
|
|
174
|
-
return /* @__PURE__ */ e(W, { sx: { height: a, width: "100%", overflowX: "auto", boxShadow: "none", ...
|
|
174
|
+
return /* @__PURE__ */ e(W, { sx: { height: a, width: "100%", overflowX: "auto", boxShadow: "none", ...h }, children: /* @__PURE__ */ e(
|
|
175
175
|
ut,
|
|
176
176
|
{
|
|
177
|
-
columns:
|
|
177
|
+
columns: d,
|
|
178
178
|
disableColumnFilter: !0,
|
|
179
179
|
disableColumnMenu: !0,
|
|
180
180
|
hideFooter: !0,
|
|
181
181
|
initialState: { sorting: { sortModel: c } },
|
|
182
182
|
onRowClick: (r) => {
|
|
183
|
-
s?.(r.row.category),
|
|
183
|
+
s?.(r.row.category), u(T.TRENDS_CLICK_LIST_ITEM, {
|
|
184
184
|
...A,
|
|
185
|
-
listItem:
|
|
185
|
+
listItem: Re[r.row.category]
|
|
186
186
|
});
|
|
187
187
|
},
|
|
188
188
|
onSortModelChange: (r) => {
|
|
189
|
-
g(r),
|
|
189
|
+
g(r), u(T.TRENDS_CLICK_TABLE_SORT, A);
|
|
190
190
|
},
|
|
191
|
-
rows:
|
|
191
|
+
rows: b,
|
|
192
192
|
slotProps: { baseIconButton: { color: "secondary", sx: { ml: 8 } } },
|
|
193
193
|
sortModel: c,
|
|
194
194
|
sortingOrder: ["asc", "desc"]
|
|
@@ -202,89 +202,89 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
202
202
|
isOpen: n,
|
|
203
203
|
onClose: s
|
|
204
204
|
}) => {
|
|
205
|
-
const { onEvent: a } = k(), { selectedAccountGuids:
|
|
205
|
+
const { onEvent: a } = k(), { selectedAccountGuids: h } = ee(), { common: u } = R(), { setFilter: l, sortedTransactions: c } = ce(), [g, f] = i.useState(""), d = i.useMemo(
|
|
206
206
|
() => c.find((r) => r.guid === g),
|
|
207
207
|
[g, c]
|
|
208
208
|
);
|
|
209
209
|
i.useEffect(() => {
|
|
210
210
|
l({
|
|
211
|
-
accounts:
|
|
211
|
+
accounts: h,
|
|
212
212
|
dateRange: o,
|
|
213
213
|
custom: (r) => t === "" || t === r.category_guid || t === r.top_level_category_guid,
|
|
214
214
|
showSplits: !!t
|
|
215
215
|
});
|
|
216
|
-
}, [
|
|
217
|
-
const
|
|
216
|
+
}, [h, t, o]), i.useEffect(() => a(T.TRENDS_VIEW_TRANSACTIONS), []);
|
|
217
|
+
const b = () => {
|
|
218
218
|
f(""), s();
|
|
219
219
|
};
|
|
220
220
|
return /* @__PURE__ */ C(
|
|
221
221
|
Ce,
|
|
222
222
|
{
|
|
223
|
-
ariaLabelClose:
|
|
223
|
+
ariaLabelClose: u.close_aria,
|
|
224
224
|
isOpen: n,
|
|
225
|
-
onClose:
|
|
225
|
+
onClose: b,
|
|
226
226
|
title: Kt.title,
|
|
227
227
|
children: [
|
|
228
|
-
|
|
229
|
-
!
|
|
228
|
+
d && /* @__PURE__ */ e(Ne, { transaction: d }),
|
|
229
|
+
!d && /* @__PURE__ */ e(He, { onClick: f })
|
|
230
230
|
]
|
|
231
231
|
}
|
|
232
232
|
);
|
|
233
233
|
}, jt = v($t), Yt = ({ onBackClick: t, sx: o }) => {
|
|
234
|
-
const { onEvent: n } = k(), { isDesktop: s, isTablet: a, isMobile:
|
|
234
|
+
const { onEvent: n } = k(), { isDesktop: s, isTablet: a, isMobile: h } = $(), { visibleAccounts: u } = le(), { loadMonthlyCategoryTotals: l, monthlyCategoryTotals: c, getCategoryName: g } = K(), { sortedTransactions: f } = ce(), { selectedDateRange: d, setSelectedDateRange: b } = te(), { isCopyLoaded: r, isInitialized: m, selectedAccounts: y, setSelectedAccounts: p } = ee(), { trends: D } = R(), [w, E] = i.useState(!1), [N, I] = i.useState(!1), [O, M] = i.useState("Chart"), [L, z] = i.useState(""), [F, de] = i.useState(window.innerHeight), j = F - (h ? 315 : 345);
|
|
235
235
|
i.useEffect(() => {
|
|
236
236
|
const S = () => de(window.innerHeight);
|
|
237
237
|
return window.addEventListener("resize", S), () => window.removeEventListener("resize", S);
|
|
238
238
|
}, []), i.useEffect(() => {
|
|
239
|
-
p(
|
|
240
|
-
}, [
|
|
239
|
+
p(u);
|
|
240
|
+
}, [u]), i.useEffect(() => {
|
|
241
241
|
m && l(
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
242
|
+
y,
|
|
243
|
+
d.start,
|
|
244
|
+
d.end
|
|
245
245
|
).finally(() => {
|
|
246
|
-
|
|
246
|
+
E(!0);
|
|
247
247
|
});
|
|
248
|
-
}, [m,
|
|
248
|
+
}, [m, y, d]);
|
|
249
249
|
const ne = i.useMemo(() => {
|
|
250
250
|
if (!w) return { stackedDatasets: [], unstackedDatasets: [] };
|
|
251
|
-
const S =
|
|
251
|
+
const S = et(
|
|
252
252
|
c,
|
|
253
|
-
|
|
254
|
-
|
|
253
|
+
d.start,
|
|
254
|
+
d.end
|
|
255
255
|
), H = L.length ? S.filter(
|
|
256
256
|
(G) => G.top_level_category_guid === L || G.category_guid === L
|
|
257
|
-
) :
|
|
257
|
+
) : st(S);
|
|
258
258
|
return {
|
|
259
|
-
stackedDatasets: H.filter(
|
|
260
|
-
unstackedDatasets: H.filter(
|
|
259
|
+
stackedDatasets: H.filter(rt),
|
|
260
|
+
unstackedDatasets: H.filter(at)
|
|
261
261
|
};
|
|
262
|
-
}, [c, L,
|
|
263
|
-
M(H ?? O), n(
|
|
262
|
+
}, [c, L, d]), P = (S, H) => {
|
|
263
|
+
M(H ?? O), n(T.TRENDS_CLICK_TOGGLE_VIEW);
|
|
264
264
|
}, he = (S) => {
|
|
265
265
|
const H = xe(S?.[0], 1), G = S?.[1], ae = pe(G, H);
|
|
266
|
-
|
|
266
|
+
b({ start: H, end: G }), n(T.TRENDS_CLICK_TIME_WINDOW, {
|
|
267
267
|
time_period: ae + "M"
|
|
268
268
|
});
|
|
269
269
|
}, Y = () => {
|
|
270
|
-
n(
|
|
270
|
+
n(T.TRENDS_CLICK_FILTER);
|
|
271
271
|
}, oe = (S) => {
|
|
272
272
|
z(S);
|
|
273
273
|
}, ue = (S) => {
|
|
274
|
-
z(S), n(
|
|
274
|
+
z(S), n(T.TRENDS_CLICK_LEGEND, { category: g(S) });
|
|
275
275
|
}, se = (S) => {
|
|
276
|
-
n(
|
|
276
|
+
n(T.TRENDS_HOVER_LEGEND, { category: g(S) });
|
|
277
277
|
}, re = (S) => {
|
|
278
|
-
n(
|
|
278
|
+
n(T.TRENDS_HOVER_AREA, { category: S });
|
|
279
279
|
}, me = (S) => {
|
|
280
|
-
n(
|
|
280
|
+
n(T.TRENDS_HOVER_POINT, { category: S });
|
|
281
281
|
};
|
|
282
282
|
return !r || !m || !w ? /* @__PURE__ */ e(J, {}) : /* @__PURE__ */ C(
|
|
283
|
-
|
|
283
|
+
ke,
|
|
284
284
|
{
|
|
285
|
-
accountOptions:
|
|
285
|
+
accountOptions: u,
|
|
286
286
|
calendarActions: { onRangeChanged: he },
|
|
287
|
-
dateRange:
|
|
287
|
+
dateRange: d,
|
|
288
288
|
dateRangeVariant: "timeframebuttons",
|
|
289
289
|
onAccountsFilterClick: Y,
|
|
290
290
|
onBackClick: t,
|
|
@@ -292,7 +292,7 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
292
292
|
title: D.title,
|
|
293
293
|
children: [
|
|
294
294
|
/* @__PURE__ */ C(
|
|
295
|
-
|
|
295
|
+
_,
|
|
296
296
|
{
|
|
297
297
|
sx: {
|
|
298
298
|
// eslint-disable-next-line no-nested-ternary
|
|
@@ -300,33 +300,33 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
300
300
|
},
|
|
301
301
|
children: [
|
|
302
302
|
/* @__PURE__ */ C(
|
|
303
|
-
|
|
303
|
+
_,
|
|
304
304
|
{
|
|
305
305
|
flexDirection: "row",
|
|
306
306
|
justifyContent: "space-between",
|
|
307
|
-
sx: { pb:
|
|
307
|
+
sx: { pb: h ? 12 : 24, pt: h ? 24 : 48 },
|
|
308
308
|
children: [
|
|
309
309
|
/* @__PURE__ */ e(
|
|
310
|
-
|
|
310
|
+
Ge,
|
|
311
311
|
{
|
|
312
312
|
selectedCategoryGuid: L,
|
|
313
|
-
selectedDateRange:
|
|
313
|
+
selectedDateRange: d
|
|
314
314
|
}
|
|
315
315
|
),
|
|
316
|
-
/* @__PURE__ */ e(
|
|
316
|
+
/* @__PURE__ */ e(Ve, { onTabChange: P, selectedTab: O })
|
|
317
317
|
]
|
|
318
318
|
}
|
|
319
319
|
),
|
|
320
|
-
/* @__PURE__ */ C(
|
|
320
|
+
/* @__PURE__ */ C(_, { alignItems: "center", flexDirection: "row", width: "100%", children: [
|
|
321
321
|
/* @__PURE__ */ e(W, { flexGrow: 1, children: L && /* @__PURE__ */ C(ge, { onClick: () => z(""), sx: { p: 0, pr: 5 }, children: [
|
|
322
322
|
/* @__PURE__ */ e(ie, { name: "arrow_back" }),
|
|
323
323
|
D.all_categories
|
|
324
324
|
] }) }),
|
|
325
|
-
/* @__PURE__ */ e(ge, { onClick: () =>
|
|
325
|
+
/* @__PURE__ */ e(ge, { onClick: () => I(!0), sx: { px: 5 }, children: `${D.view_transactions} (${f.length})` })
|
|
326
326
|
] }),
|
|
327
327
|
/* @__PURE__ */ C(W, { children: [
|
|
328
328
|
O === "Chart" && /* @__PURE__ */ e(
|
|
329
|
-
|
|
329
|
+
tt,
|
|
330
330
|
{
|
|
331
331
|
availableHeight: j,
|
|
332
332
|
onClickLegend: ue,
|
|
@@ -338,12 +338,12 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
338
338
|
}
|
|
339
339
|
),
|
|
340
340
|
O === "Table" && /* @__PURE__ */ e(
|
|
341
|
-
|
|
341
|
+
Be,
|
|
342
342
|
{
|
|
343
343
|
monthlyCategoryTotals: c,
|
|
344
344
|
onClickRow: oe,
|
|
345
345
|
selectedCategory: L,
|
|
346
|
-
selectedDateRange:
|
|
346
|
+
selectedDateRange: d
|
|
347
347
|
}
|
|
348
348
|
)
|
|
349
349
|
] })
|
|
@@ -354,16 +354,16 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
354
354
|
jt,
|
|
355
355
|
{
|
|
356
356
|
categoryGuid: L,
|
|
357
|
-
dateRange:
|
|
357
|
+
dateRange: d,
|
|
358
358
|
isOpen: N,
|
|
359
|
-
onClose: () =>
|
|
359
|
+
onClose: () => I(!1)
|
|
360
360
|
}
|
|
361
361
|
)
|
|
362
362
|
]
|
|
363
363
|
}
|
|
364
364
|
);
|
|
365
365
|
}, ao = v(Yt), Ut = () => {
|
|
366
|
-
const t =
|
|
366
|
+
const t = We(), { monthlyCategoryTotals: o } = K(), { trends: n } = R(), s = it(o);
|
|
367
367
|
return /* @__PURE__ */ e(
|
|
368
368
|
ye,
|
|
369
369
|
{
|
|
@@ -381,19 +381,19 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
381
381
|
}
|
|
382
382
|
);
|
|
383
383
|
}, Xt = v(Ut), Zt = ({ onPrimaryCtaClick: t, sx: o }) => {
|
|
384
|
-
const { visibleAccounts: n } = le(), { loadMonthlyCategoryTotals: s, monthlyTotalsLoaded: a } = K(), { isInitialized:
|
|
384
|
+
const { visibleAccounts: n } = le(), { loadMonthlyCategoryTotals: s, monthlyTotalsLoaded: a } = K(), { isInitialized: h } = Te(), { trends: u } = R(), { isCopyLoaded: l, selectedAccounts: c, setSelectedAccounts: g } = ee();
|
|
385
385
|
return i.useEffect(() => {
|
|
386
386
|
g(n);
|
|
387
387
|
}, [n]), i.useEffect(() => {
|
|
388
|
-
|
|
389
|
-
}, [
|
|
388
|
+
h && s(c).finally();
|
|
389
|
+
}, [h, c]), !l || !h ? /* @__PURE__ */ e(J, {}) : /* @__PURE__ */ e(
|
|
390
390
|
Ct,
|
|
391
391
|
{
|
|
392
392
|
onPrimaryCtaClick: t,
|
|
393
|
-
primaryCtaLabel:
|
|
394
|
-
subTitle:
|
|
393
|
+
primaryCtaLabel: u.primary_cta,
|
|
394
|
+
subTitle: u.sub_title,
|
|
395
395
|
sx: o,
|
|
396
|
-
title:
|
|
396
|
+
title: u.mini_title,
|
|
397
397
|
children: a ? /* @__PURE__ */ e(Xt, {}) : /* @__PURE__ */ e(J, {})
|
|
398
398
|
}
|
|
399
399
|
);
|
|
@@ -403,14 +403,14 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
403
403
|
transactionType: n,
|
|
404
404
|
percentage: s,
|
|
405
405
|
secondaryLabel: a,
|
|
406
|
-
shouldDisplayPercentage:
|
|
406
|
+
shouldDisplayPercentage: h
|
|
407
407
|
}) => {
|
|
408
|
-
const { availableWidth:
|
|
408
|
+
const { availableWidth: u } = dt(), l = i.useRef(null), c = i.useRef(null), g = wt(Number(Math.abs(s)), {
|
|
409
409
|
style: "percent",
|
|
410
410
|
minimumIntegerDigits: 1
|
|
411
|
-
}), f =
|
|
411
|
+
}), f = u === 288 && Z(o, "0,0.00").length > 10 ? Z(o, "0,0") : Z(o, "0,0.00"), d = n === "spending" ? s > 0 : s >= 0, b = n === "spending" ? "error.main" : "success.main", r = n === "spending" ? "success.main" : "text.secondary", m = l?.current, y = c?.current, p = m && y ? m.scrollWidth > y.clientWidth - Qt : !1;
|
|
412
412
|
return /* @__PURE__ */ C(
|
|
413
|
-
|
|
413
|
+
_,
|
|
414
414
|
{
|
|
415
415
|
sx: {
|
|
416
416
|
border: 1,
|
|
@@ -423,7 +423,7 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
423
423
|
},
|
|
424
424
|
children: [
|
|
425
425
|
/* @__PURE__ */ C(
|
|
426
|
-
|
|
426
|
+
_,
|
|
427
427
|
{
|
|
428
428
|
sx: {
|
|
429
429
|
alignItems: "center",
|
|
@@ -432,13 +432,13 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
432
432
|
},
|
|
433
433
|
children: [
|
|
434
434
|
/* @__PURE__ */ e(X, { color: "text.secondary", variant: "caption", children: t }),
|
|
435
|
-
|
|
436
|
-
|
|
435
|
+
h && /* @__PURE__ */ C(_, { sx: { alignItems: "center", flexDirection: "row", gap: 4 }, children: [
|
|
436
|
+
d ? /* @__PURE__ */ e(Tt, { size: 20, sx: { color: b } }) : /* @__PURE__ */ e(yt, { size: 20, sx: { color: r } }),
|
|
437
437
|
/* @__PURE__ */ e(
|
|
438
438
|
X,
|
|
439
439
|
{
|
|
440
440
|
sx: {
|
|
441
|
-
color:
|
|
441
|
+
color: d ? b : r,
|
|
442
442
|
fontWeight: 600
|
|
443
443
|
},
|
|
444
444
|
variant: "body2",
|
|
@@ -450,7 +450,7 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
450
450
|
}
|
|
451
451
|
),
|
|
452
452
|
/* @__PURE__ */ C(
|
|
453
|
-
|
|
453
|
+
_,
|
|
454
454
|
{
|
|
455
455
|
ref: c,
|
|
456
456
|
sx: {
|
|
@@ -467,10 +467,10 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
467
467
|
children: /* @__PURE__ */ e(Le, { children: f })
|
|
468
468
|
}
|
|
469
469
|
),
|
|
470
|
-
|
|
470
|
+
h && u >= 450 && !p && /* @__PURE__ */ e(
|
|
471
471
|
X,
|
|
472
472
|
{
|
|
473
|
-
color:
|
|
473
|
+
color: d ? b : r,
|
|
474
474
|
variant: "caption",
|
|
475
475
|
children: a
|
|
476
476
|
}
|
|
@@ -483,48 +483,48 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
483
483
|
);
|
|
484
484
|
}, qt = v(() => {
|
|
485
485
|
const { trends: t } = R();
|
|
486
|
-
return /* @__PURE__ */ C(
|
|
486
|
+
return /* @__PURE__ */ C(_, { sx: { alignItems: "start", flexDirection: "row", gap: 12 }, children: [
|
|
487
487
|
/* @__PURE__ */ e(_t, { size: 32 }),
|
|
488
|
-
/* @__PURE__ */ C(
|
|
488
|
+
/* @__PURE__ */ C(_, { children: [
|
|
489
489
|
/* @__PURE__ */ e(X, { fontWeight: 600, variant: "body1", children: t.zero_state_content_header }),
|
|
490
490
|
/* @__PURE__ */ e(X, { color: "text.secondary", variant: "subtitle2", children: t.zero_state_content_description })
|
|
491
491
|
] })
|
|
492
492
|
] });
|
|
493
493
|
}), co = v(({ onCtaClick: t }) => {
|
|
494
|
-
const { visibleAccounts: o } = le(), { onEvent: n } = k(), { monthlyCategoryTotals: s, loadMonthlyCategoryTotals: a, monthlyTotalsLoaded:
|
|
494
|
+
const { visibleAccounts: o } = le(), { onEvent: n } = k(), { monthlyCategoryTotals: s, loadMonthlyCategoryTotals: a, monthlyTotalsLoaded: h } = K(), u = {
|
|
495
495
|
start: ft(/* @__PURE__ */ new Date(), 1),
|
|
496
496
|
end: /* @__PURE__ */ new Date()
|
|
497
497
|
}, { trends: l } = R(), { selectedAccounts: c, setSelectedAccounts: g, isInitialized: f } = ee();
|
|
498
498
|
i.useEffect(() => {
|
|
499
499
|
g(o);
|
|
500
500
|
}, [o]), i.useEffect(() => {
|
|
501
|
-
f && a(c,
|
|
502
|
-
n(
|
|
501
|
+
f && a(c, u.start).then(() => {
|
|
502
|
+
n(T.TRENDS_LOAD_WIDGET, {
|
|
503
503
|
state: o?.length ? "default" : "zeroState"
|
|
504
504
|
});
|
|
505
505
|
});
|
|
506
506
|
}, [f, c]);
|
|
507
|
-
const { spendingData:
|
|
507
|
+
const { spendingData: d, incomeData: b } = i.useMemo(
|
|
508
508
|
() => ({
|
|
509
|
-
spendingData: Me(s,
|
|
510
|
-
incomeData: Ae(s,
|
|
509
|
+
spendingData: Me(s, u),
|
|
510
|
+
incomeData: Ae(s, u)
|
|
511
511
|
}),
|
|
512
|
-
[s,
|
|
513
|
-
), [r, m] =
|
|
512
|
+
[s, u]
|
|
513
|
+
), [r, m] = d, [y, p] = b, D = we(m.y, r.y), w = we(p.y, y.y), E = f && !o?.length, N = () => {
|
|
514
514
|
n(
|
|
515
|
-
|
|
515
|
+
E ? T.TRENDS_CLICK_GET_STARTED : T.TRENDS_CLICK_VIEW_MORE
|
|
516
516
|
), t();
|
|
517
517
|
};
|
|
518
|
-
return !
|
|
518
|
+
return !h || !f ? /* @__PURE__ */ e(J, {}) : /* @__PURE__ */ e(
|
|
519
519
|
Dt,
|
|
520
520
|
{
|
|
521
521
|
className: "mx-trends-microwidget",
|
|
522
522
|
ctaLabel: l.micro_primary_cta_label,
|
|
523
523
|
onCTAClick: N,
|
|
524
|
-
subHeader:
|
|
524
|
+
subHeader: E ? void 0 : l.micro_subheader,
|
|
525
525
|
title: l.title,
|
|
526
|
-
children:
|
|
527
|
-
|
|
526
|
+
children: E ? /* @__PURE__ */ e(qt, {}) : /* @__PURE__ */ C(
|
|
527
|
+
_,
|
|
528
528
|
{
|
|
529
529
|
sx: {
|
|
530
530
|
alignItems: "stretch",
|
|
@@ -548,7 +548,7 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
548
548
|
{
|
|
549
549
|
percentage: w,
|
|
550
550
|
secondaryLabel: l.micro_secondary_label,
|
|
551
|
-
shouldDisplayPercentage: p.y !== 0 &&
|
|
551
|
+
shouldDisplayPercentage: p.y !== 0 && y.y !== 0,
|
|
552
552
|
title: l.income_label,
|
|
553
553
|
totalAmount: p.y,
|
|
554
554
|
transactionType: "income"
|
|
@@ -561,9 +561,9 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
561
561
|
);
|
|
562
562
|
}), Jt = v(
|
|
563
563
|
({ isExpanded: t, onClick: o }) => {
|
|
564
|
-
const n =
|
|
564
|
+
const n = Oe();
|
|
565
565
|
return /* @__PURE__ */ e(Lt, { sx: { bgcolor: "background.paper" }, children: /* @__PURE__ */ e(xt, { onClick: o, sx: { justifyContent: "center" }, children: /* @__PURE__ */ C(
|
|
566
|
-
|
|
566
|
+
_,
|
|
567
567
|
{
|
|
568
568
|
sx: { color: n.palette.primary.main, flexDirection: "row", alignItems: "center" },
|
|
569
569
|
children: [
|
|
@@ -588,11 +588,11 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
588
588
|
name: n,
|
|
589
589
|
transactions: s,
|
|
590
590
|
onClick: a,
|
|
591
|
-
isLastItem:
|
|
592
|
-
showDivider:
|
|
591
|
+
isLastItem: h = !1,
|
|
592
|
+
showDivider: u = !0
|
|
593
593
|
}) => {
|
|
594
594
|
const { trends: l } = R(), { onEvent: c } = k(), g = `${s.length} ${s.length === 1 ? l.transaction : l.transactions}`, f = () => {
|
|
595
|
-
a?.(), c(
|
|
595
|
+
a?.(), c(T.TRENDS_CLICK_LIST_ITEM, {
|
|
596
596
|
...A,
|
|
597
597
|
listItem: n
|
|
598
598
|
});
|
|
@@ -604,33 +604,33 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
604
604
|
leftIcon: o ? /* @__PURE__ */ e(fe, { categoryGuid: o }) : void 0,
|
|
605
605
|
onClick: f,
|
|
606
606
|
rightContent: Z(Math.abs(t), "0,0.00"),
|
|
607
|
-
rightIcon: a ? /* @__PURE__ */ e(
|
|
607
|
+
rightIcon: a ? /* @__PURE__ */ e(qe, {}) : void 0,
|
|
608
608
|
subtitle: g,
|
|
609
609
|
title: n
|
|
610
610
|
}
|
|
611
611
|
),
|
|
612
|
-
|
|
612
|
+
u && /* @__PURE__ */ e(At, { sx: { ml: h ? 24 : 68 } })
|
|
613
613
|
] }, o);
|
|
614
614
|
}
|
|
615
615
|
), en = v(
|
|
616
616
|
({ availableHeight: t = 0, onCategoryClick: o }) => {
|
|
617
|
-
const { collapsedCategories: n, visibleCategories: s, setVisibleListLength: a } = te(), { isLargeDesktop:
|
|
617
|
+
const { collapsedCategories: n, visibleCategories: s, setVisibleListLength: a } = te(), { isLargeDesktop: h, isDesktop: u } = $(), { trends: l } = R(), { onEvent: c } = k(), [g, f] = i.useState(!1), d = u || h;
|
|
618
618
|
i.useEffect(() => {
|
|
619
|
-
const m = Math.floor(t / 64) - 1,
|
|
620
|
-
m !== s.length && (a(
|
|
619
|
+
const m = Math.floor(t / 64) - 1, y = s.length + n.length;
|
|
620
|
+
m !== s.length && (a(d ? Math.max(m, 5) : 5), f(m >= y));
|
|
621
621
|
}, [t]);
|
|
622
|
-
const
|
|
623
|
-
f(!g), c(
|
|
622
|
+
const b = () => {
|
|
623
|
+
f(!g), c(T.TRENDS_CLICK_VIEW_MORE, {
|
|
624
624
|
...A
|
|
625
625
|
});
|
|
626
626
|
}, r = s.length + (g ? n.length : 0);
|
|
627
|
-
return /* @__PURE__ */ e(
|
|
628
|
-
/* @__PURE__ */ e(
|
|
629
|
-
s.map((m,
|
|
627
|
+
return /* @__PURE__ */ e(_, { sx: { bgColor: "background.paper", width: "100%" }, children: /* @__PURE__ */ C(Et, { children: [
|
|
628
|
+
/* @__PURE__ */ e(_, { sx: { pb: 4, pt: 16, px: 16 }, children: /* @__PURE__ */ e(Le, { children: l.categories }) }),
|
|
629
|
+
s.map((m, y) => /* @__PURE__ */ e(
|
|
630
630
|
Ee,
|
|
631
631
|
{
|
|
632
632
|
...m,
|
|
633
|
-
isLastItem:
|
|
633
|
+
isLastItem: y === r - 1,
|
|
634
634
|
onClick: m.transactions.length > 0 ? () => o(m) : void 0,
|
|
635
635
|
showDivider: !0
|
|
636
636
|
},
|
|
@@ -641,8 +641,8 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
641
641
|
{
|
|
642
642
|
in: g,
|
|
643
643
|
sx: { "&.MuiCollapse-root .MuiListItemButton-root": { paddingLeft: 24 } },
|
|
644
|
-
children: n.map((m,
|
|
645
|
-
const p = s.length +
|
|
644
|
+
children: n.map((m, y) => {
|
|
645
|
+
const p = s.length + y;
|
|
646
646
|
return /* @__PURE__ */ e(
|
|
647
647
|
Ee,
|
|
648
648
|
{
|
|
@@ -656,40 +656,39 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
656
656
|
})
|
|
657
657
|
}
|
|
658
658
|
),
|
|
659
|
-
n.length > 0 && /* @__PURE__ */ e(Jt, { isExpanded: g, onClick:
|
|
659
|
+
n.length > 0 && /* @__PURE__ */ e(Jt, { isExpanded: g, onClick: b })
|
|
660
660
|
] }) });
|
|
661
661
|
}
|
|
662
662
|
), tn = ({ beats: t, onInsightCardClick: o }) => {
|
|
663
|
-
const n = Rt(), { onEvent: s } = k(), {
|
|
664
|
-
o?.(
|
|
665
|
-
},
|
|
666
|
-
return /* @__PURE__ */ e(kt, { sx: { height:
|
|
663
|
+
const n = Rt(), { onEvent: s } = k(), { isMobile: a, isDesktop: h, isLargeDesktop: u } = $(), { beatStore: l, endpoint: c, sessionToken: g } = Te(), f = n.palette.mode === "dark", d = h || u, b = d || a ? 1 : 2, r = () => null, m = (w) => {
|
|
664
|
+
o?.(w), s(T.TRENDS_CLICK_INSIGHT, A);
|
|
665
|
+
}, y = d ? "100%" : 170, p = d ? 170 : 124, D = t.length > 0 ? y : p;
|
|
666
|
+
return /* @__PURE__ */ e(kt, { sx: { height: D }, children: /* @__PURE__ */ e(
|
|
667
667
|
pt,
|
|
668
668
|
{
|
|
669
|
-
areBeatsLoading:
|
|
669
|
+
areBeatsLoading: l.isLoading,
|
|
670
670
|
beats: t,
|
|
671
|
-
endpoint:
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
onCardClick: _,
|
|
671
|
+
endpoint: c,
|
|
672
|
+
logOutUser: r,
|
|
673
|
+
onCardClick: m,
|
|
675
674
|
showBorder: !0,
|
|
676
675
|
showCTAColocatedWithText: !1,
|
|
677
676
|
showCarouselControls: !0,
|
|
678
|
-
showHeader:
|
|
677
|
+
showHeader: d,
|
|
679
678
|
showIcon: !0,
|
|
680
679
|
showWithMargin: !1,
|
|
681
|
-
token:
|
|
682
|
-
useDarkMode:
|
|
680
|
+
token: g,
|
|
681
|
+
useDarkMode: f,
|
|
683
682
|
userHasFullInsightFeedBeats: !1,
|
|
684
683
|
variant: "outlined",
|
|
685
|
-
visibleCardsCount:
|
|
684
|
+
visibleCardsCount: b
|
|
686
685
|
}
|
|
687
686
|
) });
|
|
688
687
|
}, nn = v(tn), on = v(({ chartLabel: t, chartColor: o }) => {
|
|
689
688
|
const { onEvent: n } = k(), {
|
|
690
689
|
categoryDetailsChartData: { monthlyAmounts: s, tooltipLabels: a }
|
|
691
690
|
} = te();
|
|
692
|
-
return /* @__PURE__ */ e(
|
|
691
|
+
return /* @__PURE__ */ e(_, { sx: { pt: 12, width: "100%" }, children: /* @__PURE__ */ e(
|
|
693
692
|
ye,
|
|
694
693
|
{
|
|
695
694
|
baseline: "min",
|
|
@@ -703,7 +702,7 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
703
702
|
stroke: o
|
|
704
703
|
}),
|
|
705
704
|
onItemClick: () => {
|
|
706
|
-
n(
|
|
705
|
+
n(T.TRENDS_CLICK_CHART, A);
|
|
707
706
|
},
|
|
708
707
|
showArea: !0,
|
|
709
708
|
showAverage: !0,
|
|
@@ -719,14 +718,14 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
719
718
|
}
|
|
720
719
|
) });
|
|
721
720
|
}), sn = v(({ onClose: t }) => {
|
|
722
|
-
const o =
|
|
723
|
-
if (!
|
|
721
|
+
const o = Oe(), { onEvent: n } = k(), { common: s, trends: a } = R(), { selectedCategoryData: h, selectedDateRangeMonthRange: u } = te(), { sortedTransactions: l } = ce(), [c, g] = i.useState(null);
|
|
722
|
+
if (!h)
|
|
724
723
|
return null;
|
|
725
|
-
const { guid: f, name:
|
|
726
|
-
() => l.find((
|
|
724
|
+
const { guid: f, name: d, is_income: b, totalAmount: r } = h, m = b ? a.category_income : a.category_spending, y = Ht(f, o), p = b ? a.income_label : a.spending_label, D = ` ${h.transactions.length === 1 ? a.transaction : a.transactions} (${h.transactions.length})`, w = i.useMemo(
|
|
725
|
+
() => l.find((I) => I.guid === c),
|
|
727
726
|
[c, l]
|
|
728
|
-
),
|
|
729
|
-
t?.(), n(
|
|
727
|
+
), E = (I) => I.category_guid === f || I.top_level_category_guid === f, N = () => {
|
|
728
|
+
t?.(), n(T.TRENDS_CLICK_BACK, A);
|
|
730
729
|
};
|
|
731
730
|
return /* @__PURE__ */ C(
|
|
732
731
|
Ce,
|
|
@@ -737,28 +736,28 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
737
736
|
shouldShowHeaderShadow: !0,
|
|
738
737
|
title: m,
|
|
739
738
|
children: [
|
|
740
|
-
/* @__PURE__ */ C(
|
|
739
|
+
/* @__PURE__ */ C(_, { sx: { alignItems: "center", height: "100%" }, children: [
|
|
741
740
|
/* @__PURE__ */ C(Nt, { sx: { borderRadius: 0, pb: 4, pt: 16, width: "100%" }, children: [
|
|
742
741
|
/* @__PURE__ */ e(
|
|
743
742
|
ve,
|
|
744
743
|
{
|
|
745
744
|
leftIcon: /* @__PURE__ */ e(fe, { categoryGuid: f }),
|
|
746
745
|
rightContent: Z(Math.abs(r), "0,0.00"),
|
|
747
|
-
subtitle:
|
|
748
|
-
title:
|
|
746
|
+
subtitle: u,
|
|
747
|
+
title: d
|
|
749
748
|
}
|
|
750
749
|
),
|
|
751
|
-
/* @__PURE__ */ e(on, { chartColor:
|
|
752
|
-
/* @__PURE__ */ C(
|
|
750
|
+
/* @__PURE__ */ e(on, { chartColor: y, chartLabel: p }),
|
|
751
|
+
/* @__PURE__ */ C(_, { alignItems: "center", direction: "row", justifyContent: "space-between", sx: { mx: 24 }, children: [
|
|
753
752
|
/* @__PURE__ */ e(Q, { bold: !0, variant: "body1", children: D }),
|
|
754
|
-
/* @__PURE__ */ e(Wt, { filter:
|
|
753
|
+
/* @__PURE__ */ e(Wt, { filter: E })
|
|
755
754
|
] })
|
|
756
755
|
] }),
|
|
757
756
|
/* @__PURE__ */ e(
|
|
758
|
-
|
|
757
|
+
He,
|
|
759
758
|
{
|
|
760
759
|
bgcolor: "transparent",
|
|
761
|
-
filter:
|
|
760
|
+
filter: E,
|
|
762
761
|
height: "calc(100vh - 475px)",
|
|
763
762
|
onClick: g
|
|
764
763
|
}
|
|
@@ -771,7 +770,7 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
771
770
|
isOpen: !!w,
|
|
772
771
|
onClose: () => g(""),
|
|
773
772
|
title: a.transaction,
|
|
774
|
-
children: w && /* @__PURE__ */ e(
|
|
773
|
+
children: w && /* @__PURE__ */ e(Ne, { transaction: w })
|
|
775
774
|
}
|
|
776
775
|
)
|
|
777
776
|
]
|
|
@@ -781,37 +780,37 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
781
780
|
const n = Ae(t, o), s = Me(t, o);
|
|
782
781
|
return [n, s].filter((a) => a.length > 0);
|
|
783
782
|
}, an = (t, o) => {
|
|
784
|
-
const [n, s] = t, a = n,
|
|
783
|
+
const [n, s] = t, a = n, h = s ?? n, u = [];
|
|
785
784
|
if (a) {
|
|
786
785
|
const l = a.reduce((c, g) => c + g.y, 0);
|
|
787
|
-
|
|
786
|
+
u.push({ label: o.income_label, amount: l });
|
|
788
787
|
}
|
|
789
|
-
if (
|
|
790
|
-
const l =
|
|
791
|
-
|
|
788
|
+
if (h) {
|
|
789
|
+
const l = h.reduce((c, g) => c + g.y, 0);
|
|
790
|
+
u.push({ label: o.spending_label, amount: l });
|
|
792
791
|
}
|
|
793
|
-
return
|
|
792
|
+
return u;
|
|
794
793
|
}, cn = ({
|
|
795
794
|
availableHeight: t = 0,
|
|
796
795
|
minHeight: o = 500,
|
|
797
796
|
selectedDateRange: n,
|
|
798
797
|
totals: s
|
|
799
798
|
}) => {
|
|
800
|
-
const a =
|
|
799
|
+
const a = We(), { onEvent: h } = k(), { trends: u } = R(), { isSmallMobile: l, isMobile: c, isSmallTablet: g, isTablet: f } = $(), d = [a.palette.chart?.chart1, a.palette.chart?.chart2], b = rn(s, n), r = an(b, u), [m, y] = i.useState(0), p = 458, D = 195, w = 56, E = c || l ? D : g || f ? p : m;
|
|
801
800
|
return i.useEffect(() => {
|
|
802
|
-
const
|
|
803
|
-
|
|
801
|
+
const I = Math.max(t - w, o);
|
|
802
|
+
y(I);
|
|
804
803
|
}, [t]), /* @__PURE__ */ e(
|
|
805
804
|
ye,
|
|
806
805
|
{
|
|
807
806
|
baseline: "min",
|
|
808
|
-
colors:
|
|
807
|
+
colors: d,
|
|
809
808
|
curveType: "bump",
|
|
810
|
-
datasets:
|
|
811
|
-
height:
|
|
809
|
+
datasets: b,
|
|
810
|
+
height: E,
|
|
812
811
|
labels: r,
|
|
813
812
|
onItemClick: () => {
|
|
814
|
-
|
|
813
|
+
h(T.TRENDS_CLICK_CHART, A);
|
|
815
814
|
},
|
|
816
815
|
showArea: !0,
|
|
817
816
|
showAxisHighlight: !0,
|
|
@@ -859,15 +858,15 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
859
858
|
"WeeklyNoSpendDays",
|
|
860
859
|
"WeeklySmallPurchasesSummary"
|
|
861
860
|
], hn = ({ onBackClick: t, onInsightCardClick: o, sx: n }) => {
|
|
862
|
-
const { onEvent: s } = k(), { config: a } =
|
|
861
|
+
const { onEvent: s } = k(), { config: a } = ht(), { isLargeDesktop: h, isDesktop: u, isMobile: l } = $(), { visibleAccounts: c } = le(), { loadDateRangeCategoryTotals: g, loadMonthlyCategoryTotals: f, monthlyCategoryTotals: d } = K(), { setFilter: b } = ce(), { selectedDateRange: r, setSelectedCategoryData: m, setSelectedDateRange: y } = te(), {
|
|
863
862
|
isCopyLoaded: p,
|
|
864
863
|
isInitialized: D,
|
|
865
864
|
selectedAccounts: w,
|
|
866
|
-
selectedAccountGuids:
|
|
865
|
+
selectedAccountGuids: E,
|
|
867
866
|
setSelectedAccounts: N
|
|
868
|
-
} = ee(), { trends:
|
|
869
|
-
() => c && c.length === 0 ||
|
|
870
|
-
[c,
|
|
867
|
+
} = ee(), { trends: I, connect: O } = R(), { beatStore: M } = Te(), z = Ot() && a.show_insights_widget_in_master, F = u || h, [de, _e] = i.useState(!1), [j, ne] = i.useState(!1), [P, he] = i.useState("Chart"), [Y, oe] = i.useState(""), [ue, se] = i.useState(!1), [re, me] = i.useState(window.innerHeight), S = re - 208, H = re - (z ? 555 : 266), [G, ae] = i.useState(!1), ze = a.show_connections_widget_in_master ? "buttons" : "no-buttons", be = i.useMemo(
|
|
868
|
+
() => c && c.length === 0 || d.length === 0,
|
|
869
|
+
[c, d]
|
|
871
870
|
);
|
|
872
871
|
i.useEffect(() => {
|
|
873
872
|
D && M.loadBeats().finally(() => ne(!0));
|
|
@@ -886,117 +885,117 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
886
885
|
r.end
|
|
887
886
|
);
|
|
888
887
|
}).finally(() => {
|
|
889
|
-
_e(!0), s(
|
|
888
|
+
_e(!0), s(T.TRENDS_LOAD_WIDGET, {
|
|
890
889
|
...A,
|
|
891
890
|
time_period: `${pe(r.end, r.start)}M`
|
|
892
891
|
});
|
|
893
892
|
});
|
|
894
893
|
}, [D, w, r]), i.useEffect(() => {
|
|
895
|
-
if (
|
|
894
|
+
if (d.length !== 0) {
|
|
896
895
|
const x = {
|
|
897
|
-
accounts:
|
|
896
|
+
accounts: E,
|
|
898
897
|
dateRange: { start: r.start, end: r.end }
|
|
899
898
|
};
|
|
900
|
-
|
|
899
|
+
b({
|
|
901
900
|
...x,
|
|
902
|
-
custom: (V) => !!
|
|
901
|
+
custom: (V) => !!d.find(
|
|
903
902
|
(U) => U.top_level_category_guid === V.top_level_category_guid || U.category_guid === V.category_guid
|
|
904
903
|
)
|
|
905
904
|
});
|
|
906
905
|
}
|
|
907
|
-
}, [
|
|
908
|
-
const
|
|
906
|
+
}, [d]);
|
|
907
|
+
const Fe = (x) => {
|
|
909
908
|
m(x), se(!0);
|
|
910
|
-
},
|
|
909
|
+
}, Pe = () => {
|
|
911
910
|
m(null), se(!1);
|
|
912
|
-
},
|
|
913
|
-
ae(!0), s(
|
|
914
|
-
},
|
|
915
|
-
he(V ?? P), s(
|
|
911
|
+
}, Ke = () => {
|
|
912
|
+
ae(!0), s(T.TRENDS_CLICK_CONNECT_ACCOUNTS);
|
|
913
|
+
}, $e = (x, V) => {
|
|
914
|
+
he(V ?? P), s(T.TRENDS_CLICK_TOGGLE_VIEW, {
|
|
916
915
|
...A,
|
|
917
916
|
toggleView: V
|
|
918
917
|
});
|
|
919
|
-
},
|
|
920
|
-
const V = xe(x?.[0], 1), U = x?.[1],
|
|
921
|
-
|
|
918
|
+
}, je = (x) => {
|
|
919
|
+
const V = xe(x?.[0], 1), U = x?.[1], Ze = pe(U, V);
|
|
920
|
+
y({ start: V, end: U }), s(T.TRENDS_CLICK_TIME_WINDOW, {
|
|
922
921
|
...A,
|
|
923
|
-
time_period:
|
|
922
|
+
time_period: Ze + "M"
|
|
924
923
|
});
|
|
925
|
-
},
|
|
926
|
-
s(
|
|
924
|
+
}, Ye = (x) => {
|
|
925
|
+
s(T.TRENDS_CLICK_FILTER, {
|
|
927
926
|
...A,
|
|
928
927
|
filterValue: x
|
|
929
928
|
});
|
|
930
|
-
},
|
|
929
|
+
}, Ue = (x) => {
|
|
931
930
|
oe(x);
|
|
932
|
-
},
|
|
933
|
-
oe(""), s(
|
|
931
|
+
}, Xe = () => {
|
|
932
|
+
oe(""), s(T.TRENDS_CLICK_ALL_CATEGORIES, A);
|
|
934
933
|
};
|
|
935
934
|
return !p || !de ? /* @__PURE__ */ e(J, {}) : /* @__PURE__ */ C(
|
|
936
|
-
|
|
935
|
+
ke,
|
|
937
936
|
{
|
|
938
937
|
accountOptions: c,
|
|
939
|
-
calendarActions: { onRangeChanged:
|
|
938
|
+
calendarActions: { onRangeChanged: je },
|
|
940
939
|
dateRange: r,
|
|
941
940
|
dateRangeVariant: l ? "timeframetabs" : "timeframebuttons",
|
|
942
|
-
onAccountsFilterClick:
|
|
941
|
+
onAccountsFilterClick: Ye,
|
|
943
942
|
onBackClick: t,
|
|
944
943
|
sx: n,
|
|
945
|
-
title:
|
|
944
|
+
title: I.title,
|
|
946
945
|
children: [
|
|
947
946
|
be && /* @__PURE__ */ e(
|
|
948
947
|
Vt,
|
|
949
948
|
{
|
|
950
|
-
header:
|
|
949
|
+
header: I.zero_state_content_header,
|
|
951
950
|
icon: "",
|
|
952
|
-
onClick:
|
|
953
|
-
primaryButton:
|
|
954
|
-
subText:
|
|
951
|
+
onClick: Ke,
|
|
952
|
+
primaryButton: I.empty_state_primary,
|
|
953
|
+
subText: I.empty_state_sub_text,
|
|
955
954
|
sx: { height: S },
|
|
956
|
-
variant:
|
|
955
|
+
variant: ze
|
|
957
956
|
}
|
|
958
957
|
),
|
|
959
958
|
!be && /* @__PURE__ */ C(
|
|
960
|
-
|
|
959
|
+
_,
|
|
961
960
|
{
|
|
962
961
|
sx: {
|
|
963
962
|
px: l ? 0 : 48
|
|
964
963
|
},
|
|
965
964
|
children: [
|
|
966
965
|
/* @__PURE__ */ C(
|
|
967
|
-
|
|
966
|
+
_,
|
|
968
967
|
{
|
|
969
968
|
flexDirection: "row",
|
|
970
969
|
justifyContent: "space-between",
|
|
971
970
|
sx: { pb: l ? 12 : 24, pt: l ? 24 : 48 },
|
|
972
971
|
children: [
|
|
973
972
|
/* @__PURE__ */ e(
|
|
974
|
-
|
|
973
|
+
Ge,
|
|
975
974
|
{
|
|
976
975
|
selectedCategoryGuid: Y,
|
|
977
976
|
selectedDateRange: r
|
|
978
977
|
}
|
|
979
978
|
),
|
|
980
|
-
/* @__PURE__ */ e(
|
|
979
|
+
/* @__PURE__ */ e(Ve, { onTabChange: $e, selectedTab: P })
|
|
981
980
|
]
|
|
982
981
|
}
|
|
983
982
|
),
|
|
984
|
-
/* @__PURE__ */ e(
|
|
983
|
+
/* @__PURE__ */ e(_, { alignItems: "center", flexDirection: "row", width: "100%", children: /* @__PURE__ */ e(W, { flexGrow: 1, children: Y && /* @__PURE__ */ C(ge, { onClick: Xe, sx: { p: 0, pr: 5 }, children: [
|
|
985
984
|
/* @__PURE__ */ e(ie, { name: "arrow_back" }),
|
|
986
|
-
|
|
985
|
+
I.all_categories
|
|
987
986
|
] }) }) }),
|
|
988
|
-
/* @__PURE__ */ C(
|
|
989
|
-
P === "Chart" && /* @__PURE__ */ C(
|
|
987
|
+
/* @__PURE__ */ C(_, { flexDirection: F ? "row" : "column", gap: F ? 48 : 16, children: [
|
|
988
|
+
P === "Chart" && /* @__PURE__ */ C(Qe, { children: [
|
|
990
989
|
/* @__PURE__ */ e(W, { sx: { width: F ? "68%" : "100%" }, children: /* @__PURE__ */ e(
|
|
991
990
|
ln,
|
|
992
991
|
{
|
|
993
992
|
availableHeight: S,
|
|
994
993
|
minHeight: 450,
|
|
995
994
|
selectedDateRange: r,
|
|
996
|
-
totals:
|
|
995
|
+
totals: d
|
|
997
996
|
}
|
|
998
997
|
) }),
|
|
999
|
-
/* @__PURE__ */ C(
|
|
998
|
+
/* @__PURE__ */ C(_, { gap: 16, sx: { width: F ? "32%" : "100%" }, children: [
|
|
1000
999
|
z && j && Se.length > 0 && /* @__PURE__ */ e(
|
|
1001
1000
|
nn,
|
|
1002
1001
|
{
|
|
@@ -1008,23 +1007,23 @@ const Ge = ({ selectedTab: t, onTabChange: o }) => /* @__PURE__ */ e(
|
|
|
1008
1007
|
en,
|
|
1009
1008
|
{
|
|
1010
1009
|
availableHeight: H,
|
|
1011
|
-
onCategoryClick:
|
|
1010
|
+
onCategoryClick: Fe
|
|
1012
1011
|
}
|
|
1013
1012
|
)
|
|
1014
1013
|
] })
|
|
1015
1014
|
] }),
|
|
1016
1015
|
P === "Table" && /* @__PURE__ */ e(W, { sx: { width: "100%" }, children: /* @__PURE__ */ e(
|
|
1017
|
-
|
|
1016
|
+
Be,
|
|
1018
1017
|
{
|
|
1019
1018
|
height: "unset",
|
|
1020
|
-
monthlyCategoryTotals:
|
|
1021
|
-
onClickRow:
|
|
1019
|
+
monthlyCategoryTotals: d,
|
|
1020
|
+
onClickRow: Ue,
|
|
1022
1021
|
selectedCategory: Y,
|
|
1023
1022
|
selectedDateRange: r
|
|
1024
1023
|
}
|
|
1025
1024
|
) })
|
|
1026
1025
|
] }),
|
|
1027
|
-
ue && /* @__PURE__ */ e(sn, { onClose:
|
|
1026
|
+
ue && /* @__PURE__ */ e(sn, { onClose: Pe })
|
|
1028
1027
|
]
|
|
1029
1028
|
}
|
|
1030
1029
|
),
|