@mx-cartographer/experiences 7.13.2 → 7.13.3
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
CHANGED
|
@@ -2,10 +2,10 @@ import { jsxs as u, jsx as l } from "react/jsx-runtime";
|
|
|
2
2
|
import T from "react";
|
|
3
3
|
import x from "@mui/material/ListItem";
|
|
4
4
|
import S from "@mui/material/ListItemButton";
|
|
5
|
-
import
|
|
5
|
+
import b from "@mui/material/ListItemIcon";
|
|
6
6
|
import R from "@mui/material/ListItemText";
|
|
7
7
|
import h from "@mui/material/Stack";
|
|
8
|
-
import { Text as
|
|
8
|
+
import { Text as f } from "@mxenabled/mxui";
|
|
9
9
|
import { makeAutoObservable as A } from "mobx";
|
|
10
10
|
import { addSeconds as N } from "date-fns/addSeconds";
|
|
11
11
|
import { differenceInCalendarMonths as v } from "date-fns/differenceInCalendarMonths";
|
|
@@ -24,7 +24,7 @@ const rt = ({
|
|
|
24
24
|
rightContentBold: c = !0
|
|
25
25
|
}) => {
|
|
26
26
|
const g = /* @__PURE__ */ u(T.Fragment, { children: [
|
|
27
|
-
t && /* @__PURE__ */ l(
|
|
27
|
+
t && /* @__PURE__ */ l(b, { sx: { ml: 0 }, children: t }),
|
|
28
28
|
/* @__PURE__ */ l(R, { children: /* @__PURE__ */ u(
|
|
29
29
|
h,
|
|
30
30
|
{
|
|
@@ -35,18 +35,18 @@ const rt = ({
|
|
|
35
35
|
},
|
|
36
36
|
children: [
|
|
37
37
|
/* @__PURE__ */ u(h, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
38
|
-
/* @__PURE__ */ l(
|
|
39
|
-
n && /* @__PURE__ */ l(
|
|
38
|
+
/* @__PURE__ */ l(f, { bold: i, variant: "body1", children: r }),
|
|
39
|
+
n && /* @__PURE__ */ l(f, { variant: "caption", children: n })
|
|
40
40
|
] }),
|
|
41
41
|
/* @__PURE__ */ u(h, { sx: { flexDirection: "row", alignItems: "center", gap: 1 }, children: [
|
|
42
|
-
a && /* @__PURE__ */ l(
|
|
43
|
-
o && /* @__PURE__ */ l(
|
|
42
|
+
a && /* @__PURE__ */ l(f, { bold: c, display: "flex", variant: "body1", children: a }),
|
|
43
|
+
o && /* @__PURE__ */ l(b, { children: o })
|
|
44
44
|
] })
|
|
45
45
|
]
|
|
46
46
|
}
|
|
47
47
|
) })
|
|
48
48
|
] });
|
|
49
|
-
return /* @__PURE__ */ l(x, {
|
|
49
|
+
return /* @__PURE__ */ l(x, { children: e ? /* @__PURE__ */ l(
|
|
50
50
|
S,
|
|
51
51
|
{
|
|
52
52
|
onClick: e,
|
package/dist/common/index.es.js
CHANGED
|
@@ -32,8 +32,8 @@ import { C as vs, G as Ms, M as ks, T as Ns } from "../GoalStore-DB58sKTC.mjs";
|
|
|
32
32
|
import { C as Ls } from "../CurrencyText-CA-E5N_y.mjs";
|
|
33
33
|
import { E as Ps } from "../EmptyState-DHAkGsjk.mjs";
|
|
34
34
|
import { L as $s } from "../ListItemAction-4KB7P75M.mjs";
|
|
35
|
-
import { T as z } from "../TrendsStore-
|
|
36
|
-
import { L as Gs } from "../TrendsStore-
|
|
35
|
+
import { T as z } from "../TrendsStore-CYdTo7cN.mjs";
|
|
36
|
+
import { L as Gs } from "../TrendsStore-CYdTo7cN.mjs";
|
|
37
37
|
import { A as Ws, B as qs, I as Ys, N as Qs, T as Ks, a as zs } from "../Notification-CMBNDGC-.mjs";
|
|
38
38
|
import { G as Vs } from "../GlobalAccountFilter-B73Pw1hJ.mjs";
|
|
39
39
|
import { S as Xs } from "../StatusBar-BK_uYHAB.mjs";
|
package/dist/trends/index.es.js
CHANGED
|
@@ -3,7 +3,7 @@ import g, { useRef as vt, useState as Dt, useEffect as It } from "react";
|
|
|
3
3
|
import { observer as A } from "mobx-react-lite";
|
|
4
4
|
import { CategoryIcon as we, Text as F, Icon as He, H3 as Ge, P as pe, ChevronRightIcon as Lt } from "@mxenabled/mxui";
|
|
5
5
|
import N from "@mui/material/Box";
|
|
6
|
-
import
|
|
6
|
+
import S from "@mui/material/Stack";
|
|
7
7
|
import Te from "@mui/material/Button";
|
|
8
8
|
import { addSeconds as et } from "date-fns/addSeconds";
|
|
9
9
|
import { differenceInCalendarMonths as Se } from "date-fns/differenceInCalendarMonths";
|
|
@@ -23,19 +23,19 @@ import { C as xe } from "../CurrencyText-CA-E5N_y.mjs";
|
|
|
23
23
|
import { C as Re, b as ze, c as Wt } from "../Category-CevNQ03n.mjs";
|
|
24
24
|
import { f as Y, D as P } from "../DateFormats-BMpMrZpW.mjs";
|
|
25
25
|
import { f as re, a as Ot } from "../NumberFormatting-QCaNwbjv.mjs";
|
|
26
|
-
import { c as Gt, a as Ke, g as Bt, L as Pt } from "../TrendsStore-
|
|
27
|
-
import { T as us } from "../TrendsStore-
|
|
26
|
+
import { c as Gt, a as Ke, g as Bt, L as Pt } from "../TrendsStore-CYdTo7cN.mjs";
|
|
27
|
+
import { T as us } from "../TrendsStore-CYdTo7cN.mjs";
|
|
28
28
|
import { c as Vt, i as Ft, d as $t, e as zt, b as at, g as it, f as Ye } from "../SpendingData-Bz1bCWAs.mjs";
|
|
29
29
|
import Kt from "@mui/material/ToggleButton";
|
|
30
30
|
import Yt from "@mui/material/ToggleButtonGroup";
|
|
31
|
-
import { parseISO as
|
|
31
|
+
import { parseISO as lt } from "date-fns/parseISO";
|
|
32
32
|
import { H as ke } from "../HeaderCell-P8w6CmfO.mjs";
|
|
33
33
|
import { T as W, b as jt } from "../ViewMoreMicroCard-D24H9kDm.mjs";
|
|
34
34
|
import { useGridApiContext as Ut, useGridRootProps as Xt, DataGridPro as Zt } from "@mui/x-data-grid-pro";
|
|
35
35
|
import Qt from "@mui/material/Badge";
|
|
36
36
|
import qt from "@mui/material/IconButton";
|
|
37
37
|
import { A as v } from "../Analytics-BYItVAe-.mjs";
|
|
38
|
-
import { T as
|
|
38
|
+
import { T as ct } from "../StatusIndicator-CIKUOoN_.mjs";
|
|
39
39
|
import { T as dt } from "../TransactionDetails-CBrqmEw1.mjs";
|
|
40
40
|
import { D as Pe } from "../Drawer-Bbe4AMB1.mjs";
|
|
41
41
|
import { u as Ie } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
|
|
@@ -46,10 +46,10 @@ import { M as Jt } from "../MiniWidgetContainer-xLWSV6Wz.mjs";
|
|
|
46
46
|
import { subMonths as eo } from "date-fns";
|
|
47
47
|
import { TrendingUp as to, TrendingDown as oo, MultilineChart as no, ExpandLess as so, ExpandMore as ro, ArrowBack as ao } from "@mxenabled/mx-icons";
|
|
48
48
|
import { M as io } from "../MicroWidgetContainer-B_EnfvCq.mjs";
|
|
49
|
-
import
|
|
49
|
+
import lo from "@mui/material/Collapse";
|
|
50
50
|
import We from "@mui/material/List";
|
|
51
51
|
import mt from "@mui/material/ListItem";
|
|
52
|
-
import
|
|
52
|
+
import co from "@mui/material/ListItemButton";
|
|
53
53
|
import uo from "@mui/material/ListItemIcon";
|
|
54
54
|
import ht from "@mui/material/ListItemText";
|
|
55
55
|
import gt from "@mui/material/styles/useTheme";
|
|
@@ -62,7 +62,7 @@ import { E as fo } from "../EmptyState-DHAkGsjk.mjs";
|
|
|
62
62
|
import { C as yo } from "../ConnectDrawer-C0wjwcJt.mjs";
|
|
63
63
|
const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
64
64
|
const { categories: n } = R(), { getCategoryName: o } = U(), r = o(t);
|
|
65
|
-
return /* @__PURE__ */ C(
|
|
65
|
+
return /* @__PURE__ */ C(S, { alignItems: "center", direction: "column", gap: "8", justifyContent: "center", mb: 4, children: [
|
|
66
66
|
/* @__PURE__ */ e(
|
|
67
67
|
N,
|
|
68
68
|
{
|
|
@@ -80,7 +80,7 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
80
80
|
cursorPosition: o,
|
|
81
81
|
chartContainerRef: r
|
|
82
82
|
}) => {
|
|
83
|
-
const
|
|
83
|
+
const i = ae(), a = vt(null), [c, u] = Dt({ x: o.x, y: o.y });
|
|
84
84
|
if (It(() => {
|
|
85
85
|
(() => {
|
|
86
86
|
const m = a.current, _ = r.current;
|
|
@@ -90,15 +90,15 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
90
90
|
f + h.width * 2 > p.right ? f = o.x - h.width : f - h.width < p.left && (f = o.x), T + h.height * 2 > p.bottom && (T = o.y - h.height), u({ x: f, y: T });
|
|
91
91
|
})();
|
|
92
92
|
}, [o, r]), !n) return null;
|
|
93
|
-
const
|
|
93
|
+
const l = n.reduce((y, m) => y + m.y, 0);
|
|
94
94
|
return /* @__PURE__ */ e(
|
|
95
95
|
tt,
|
|
96
96
|
{
|
|
97
97
|
ref: a,
|
|
98
98
|
sx: {
|
|
99
99
|
position: "absolute",
|
|
100
|
-
top:
|
|
101
|
-
left:
|
|
100
|
+
top: c.y,
|
|
101
|
+
left: c.x,
|
|
102
102
|
width: 250,
|
|
103
103
|
pointerEvents: "none"
|
|
104
104
|
},
|
|
@@ -106,13 +106,13 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
106
106
|
/* @__PURE__ */ C(N, { alignItems: "center", display: "flex", flexDirection: "column", children: [
|
|
107
107
|
/* @__PURE__ */ e(pt, { categoryGuid: t, topLevelCategoryGuid: s }),
|
|
108
108
|
/* @__PURE__ */ e(F, { variant: "body2", children: `${n.length}-month total` }),
|
|
109
|
-
/* @__PURE__ */ e(xe, { amount:
|
|
109
|
+
/* @__PURE__ */ e(xe, { amount: l, bold: !0, formatString: "0,0", variant: "body2" })
|
|
110
110
|
] }),
|
|
111
111
|
/* @__PURE__ */ e(Ne, { sx: { my: 16, width: "100%" } }),
|
|
112
112
|
/* @__PURE__ */ e($e, { container: !0, children: n.map((y, m) => /* @__PURE__ */ C(g.Fragment, { children: [
|
|
113
113
|
m > 0 && m % 3 === 0 && /* @__PURE__ */ e(Ne, { sx: { my: 16, width: "100%" } }),
|
|
114
114
|
/* @__PURE__ */ e($e, { item: !0, xs: 4, children: /* @__PURE__ */ C(N, { alignItems: "center", display: "flex", flexDirection: "column", children: [
|
|
115
|
-
/* @__PURE__ */ e(F, { color:
|
|
115
|
+
/* @__PURE__ */ e(F, { color: i.palette.text.secondary, variant: "caption", children: y.x }),
|
|
116
116
|
/* @__PURE__ */ e(
|
|
117
117
|
xe,
|
|
118
118
|
{
|
|
@@ -133,11 +133,11 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
133
133
|
hoveredLegend: n,
|
|
134
134
|
legendRef: o,
|
|
135
135
|
onHoverLegend: r,
|
|
136
|
-
onClickLegend:
|
|
136
|
+
onClickLegend: i
|
|
137
137
|
}) => {
|
|
138
|
-
const { isMobile: a } = j(), { getCategoryName:
|
|
138
|
+
const { isMobile: a } = j(), { getCategoryName: c } = U();
|
|
139
139
|
return /* @__PURE__ */ e(
|
|
140
|
-
|
|
140
|
+
S,
|
|
141
141
|
{
|
|
142
142
|
direction: "row",
|
|
143
143
|
flexWrap: "wrap",
|
|
@@ -145,12 +145,12 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
145
145
|
justifyContent: "start",
|
|
146
146
|
ref: o,
|
|
147
147
|
sx: t,
|
|
148
|
-
children: s.map(({ guid: u, top_level_guid:
|
|
149
|
-
const y = n === u, m = Re[u], _ = Re[
|
|
148
|
+
children: s.map(({ guid: u, top_level_guid: l }) => {
|
|
149
|
+
const y = n === u, m = Re[u], _ = Re[l], h = m ?? _ ?? Re.default, p = h + "33";
|
|
150
150
|
return /* @__PURE__ */ C(
|
|
151
151
|
Te,
|
|
152
152
|
{
|
|
153
|
-
onClick: () =>
|
|
153
|
+
onClick: () => i(u),
|
|
154
154
|
onMouseEnter: () => r(u),
|
|
155
155
|
onMouseLeave: () => r(null),
|
|
156
156
|
sx: {
|
|
@@ -177,7 +177,7 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
),
|
|
180
|
-
/* @__PURE__ */ e(F, { variant: "body1", children:
|
|
180
|
+
/* @__PURE__ */ e(F, { variant: "body1", children: c(u) })
|
|
181
181
|
]
|
|
182
182
|
},
|
|
183
183
|
u
|
|
@@ -190,15 +190,15 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
190
190
|
series: n,
|
|
191
191
|
xData: o
|
|
192
192
|
}) => {
|
|
193
|
-
const r = Rt(),
|
|
193
|
+
const r = Rt(), i = ae();
|
|
194
194
|
if (!r?.identifier) return null;
|
|
195
|
-
const { dataIndex: a, seriesId:
|
|
196
|
-
if (a == null || !
|
|
197
|
-
const
|
|
198
|
-
return
|
|
195
|
+
const { dataIndex: a, seriesId: c } = r.identifier;
|
|
196
|
+
if (a == null || !c) return null;
|
|
197
|
+
const l = n.find((m) => m.id === c)?.data?.[a], y = o?.[a];
|
|
198
|
+
return l === void 0 || !y ? null : /* @__PURE__ */ e(tt, { sx: { pt: 4, px: 8 }, children: /* @__PURE__ */ e(ot, { children: /* @__PURE__ */ C(N, { alignItems: "center", display: "flex", flexDirection: "column", children: [
|
|
199
199
|
/* @__PURE__ */ e(pt, { categoryGuid: t, topLevelCategoryGuid: s }),
|
|
200
|
-
/* @__PURE__ */ e(F, { color:
|
|
201
|
-
/* @__PURE__ */ e(xe, { amount: String(
|
|
200
|
+
/* @__PURE__ */ e(F, { color: i.palette.text.secondary, variant: "body2", children: Y(y, P.MONTH_SHORT_YEAR) }),
|
|
201
|
+
/* @__PURE__ */ e(xe, { amount: String(l), bold: !0, formatString: "0,0", variant: "body1" })
|
|
202
202
|
] }) }) });
|
|
203
203
|
}, So = ({
|
|
204
204
|
onHoverArea: t,
|
|
@@ -206,25 +206,25 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
206
206
|
onHoverLegend: n,
|
|
207
207
|
onClickLegend: o,
|
|
208
208
|
stackedDatasets: r,
|
|
209
|
-
unstackedDatasets:
|
|
209
|
+
unstackedDatasets: i = [],
|
|
210
210
|
availableHeight: a = 0,
|
|
211
|
-
minimumHeight:
|
|
211
|
+
minimumHeight: c = 350
|
|
212
212
|
}) => {
|
|
213
|
-
const u = ae(), { isMobile:
|
|
213
|
+
const u = ae(), { isMobile: l } = j(), [y, { height: m }] = Nt(), _ = g.useRef(null), [h, p] = g.useState(0);
|
|
214
214
|
g.useEffect(() => {
|
|
215
|
-
const d = Math.max(a - m,
|
|
215
|
+
const d = Math.max(a - m, c);
|
|
216
216
|
p(d);
|
|
217
217
|
}, [a, m]);
|
|
218
|
-
const [f, T] = g.useState(null), [
|
|
218
|
+
const [f, T] = g.useState(null), [x, k] = g.useState({
|
|
219
219
|
hoveredSeriesId: null,
|
|
220
220
|
hoveredAreaData: null,
|
|
221
221
|
isAreaHovered: !1,
|
|
222
222
|
cursorPos: { x: 0, y: 0 }
|
|
223
|
-
}), { hoveredSeriesId: L, hoveredAreaData: E, isAreaHovered: w, cursorPos: M } =
|
|
223
|
+
}), { hoveredSeriesId: L, hoveredAreaData: E, isAreaHovered: w, cursorPos: M } = x, ie = w && L && E, X = !ie, V = [...r, ...i], Z = V[0]?.dataset.length ?? 0, O = V.flatMap((d) => d.dataset.map((b) => b.x)), G = V.flatMap((d) => d.dataset.map((b) => b.y)), Q = r[0]?.dataset?.map(
|
|
224
224
|
(d, b) => r.reduce((I, K) => I + K.dataset[b]?.y || 0, 0)
|
|
225
|
-
) ?? [0], Ce = Math.max(...Q),
|
|
226
|
-
...
|
|
227
|
-
), q = Math.floor(Math.min(...G) / 100) * 100,
|
|
225
|
+
) ?? [0], Ce = Math.max(...Q), le = Math.max(
|
|
226
|
+
...i.flatMap((d) => d.dataset.map((b) => b.y))
|
|
227
|
+
), q = Math.floor(Math.min(...G) / 100) * 100, ce = Math.ceil(Math.max(Ce, le) / 100) * 100, z = r.map((d, b) => ({
|
|
228
228
|
id: `stacked-${b}`,
|
|
229
229
|
guid: d.category_guid,
|
|
230
230
|
top_level_guid: d.top_level_category_guid,
|
|
@@ -236,7 +236,7 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
236
236
|
type: "line",
|
|
237
237
|
highlightScope: { highlight: "item" },
|
|
238
238
|
valueFormatter: (I) => re(I, "0,0")
|
|
239
|
-
})), J =
|
|
239
|
+
})), J = i.map((d, b) => ({
|
|
240
240
|
id: `unstacked-${b}`,
|
|
241
241
|
guid: d.category_guid,
|
|
242
242
|
top_level_guid: d.top_level_category_guid,
|
|
@@ -256,7 +256,7 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
256
256
|
top_level_guid: b
|
|
257
257
|
}))
|
|
258
258
|
], te = (d) => {
|
|
259
|
-
const I = d.startsWith("stacked-") ? r[parseInt(d.split("-")[1])] :
|
|
259
|
+
const I = d.startsWith("stacked-") ? r[parseInt(d.split("-")[1])] : i[parseInt(d.split("-")[1])];
|
|
260
260
|
return {
|
|
261
261
|
guid: I?.category_guid,
|
|
262
262
|
topLevelGuid: I?.top_level_category_guid
|
|
@@ -346,7 +346,7 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
346
346
|
}
|
|
347
347
|
},
|
|
348
348
|
children: /* @__PURE__ */ C(
|
|
349
|
-
|
|
349
|
+
S,
|
|
350
350
|
{
|
|
351
351
|
direction: { xs: "column", md: "column" },
|
|
352
352
|
spacing: { xs: 0, md: 4 },
|
|
@@ -389,7 +389,7 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
389
389
|
yAxis: [
|
|
390
390
|
{
|
|
391
391
|
min: q,
|
|
392
|
-
max:
|
|
392
|
+
max: ce || 100,
|
|
393
393
|
valueFormatter: (d) => Et(d).format("0a")
|
|
394
394
|
}
|
|
395
395
|
]
|
|
@@ -403,7 +403,7 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
403
403
|
legendRef: y,
|
|
404
404
|
onClickLegend: de,
|
|
405
405
|
onHoverLegend: se,
|
|
406
|
-
sx: { px:
|
|
406
|
+
sx: { px: l ? 0 : 24 }
|
|
407
407
|
}
|
|
408
408
|
),
|
|
409
409
|
ie && /* @__PURE__ */ e(
|
|
@@ -448,8 +448,8 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
448
448
|
}
|
|
449
449
|
);
|
|
450
450
|
}, yt = ({ selectedDateRange: t, selectedCategoryGuid: s }) => {
|
|
451
|
-
const { trends: n } = R(), { isMobile: o, isDesktop: r } = j(), { getCategoryName:
|
|
452
|
-
const
|
|
451
|
+
const { trends: n } = R(), { isMobile: o, isDesktop: r } = j(), { getCategoryName: i } = U(), a = g.useMemo(() => {
|
|
452
|
+
const l = t.start.getFullYear() === t.end.getFullYear() ? Y(
|
|
453
453
|
t.start,
|
|
454
454
|
o ? P.MONTH_SHORT : P.MONTH_LONG
|
|
455
455
|
) : Y(
|
|
@@ -459,8 +459,8 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
459
459
|
t.end,
|
|
460
460
|
o ? P.MONTH_SHORT_YEAR : P.MONTH_YEAR
|
|
461
461
|
);
|
|
462
|
-
return `${
|
|
463
|
-
}, [t, o]), u =
|
|
462
|
+
return `${l} - ${y}`;
|
|
463
|
+
}, [t, o]), u = i(s) || (o ? n.sub_title : n.sub_title_by_category);
|
|
464
464
|
return /* @__PURE__ */ C(N, { children: [
|
|
465
465
|
/* @__PURE__ */ e(
|
|
466
466
|
Ge,
|
|
@@ -478,27 +478,27 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
478
478
|
] });
|
|
479
479
|
}, xo = (t) => {
|
|
480
480
|
const s = t.id === "total";
|
|
481
|
-
return /* @__PURE__ */ C(
|
|
481
|
+
return /* @__PURE__ */ C(S, { alignItems: "center", direction: "row", role: "rowheader", tabIndex: t.tabIndex, children: [
|
|
482
482
|
!s && /* @__PURE__ */ e(N, { "aria-hidden": !0, children: /* @__PURE__ */ e(we, { categoryGuid: t.row.top_level_category_guid, variant: "twotone" }) }),
|
|
483
483
|
/* @__PURE__ */ e(F, { bold: s, sx: { ml: 12 }, variant: s ? "body1" : "body2", children: t.row.category })
|
|
484
484
|
] });
|
|
485
485
|
}, je = (t) => {
|
|
486
|
-
const s = t.row.category_guid, n = t.row.top_level_category_guid, o = s === ze.INCOME || n === ze.INCOME, r = t.id === "total",
|
|
487
|
-
return /* @__PURE__ */ e(
|
|
486
|
+
const s = t.row.category_guid, n = t.row.top_level_category_guid, o = s === ze.INCOME || n === ze.INCOME, r = t.id === "total", i = t.field === "total", a = i ? t.row[t.field] : t.row.monthlyAmounts[t.field];
|
|
487
|
+
return /* @__PURE__ */ e(S, { alignItems: "flex-end", direction: "row", tabIndex: t.tabIndex, children: /* @__PURE__ */ e(
|
|
488
488
|
xe,
|
|
489
489
|
{
|
|
490
490
|
amount: o ? Math.abs(a) : a,
|
|
491
491
|
isIncome: o,
|
|
492
|
-
sx: { fontWeight: o ||
|
|
492
|
+
sx: { fontWeight: o || i || r ? 600 : 500 },
|
|
493
493
|
symbol: o ? "+" : void 0,
|
|
494
494
|
variant: r ? "body1" : "body2"
|
|
495
495
|
}
|
|
496
496
|
) });
|
|
497
497
|
}, Ue = (t, s) => {
|
|
498
|
-
const n = Y(
|
|
498
|
+
const n = Y(lt(s.isoDate), P.MONTH_LONG);
|
|
499
499
|
return t[n] = s.amount, t;
|
|
500
500
|
}, Xe = (t) => (s, n) => {
|
|
501
|
-
const o = Y(
|
|
501
|
+
const o = Y(lt(n.isoDate), P.MONTH_LONG);
|
|
502
502
|
return s + (t.includes(o) ? n.amount : 0);
|
|
503
503
|
}, wo = (t, s) => {
|
|
504
504
|
const n = [], o = new Date(t);
|
|
@@ -519,11 +519,11 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
519
519
|
sortable: !0,
|
|
520
520
|
sortComparator: Gt,
|
|
521
521
|
type: "string"
|
|
522
|
-
}, o = t.map((
|
|
523
|
-
field:
|
|
522
|
+
}, o = t.map((i) => ({
|
|
523
|
+
field: i,
|
|
524
524
|
flex: 1,
|
|
525
525
|
headerClassName: "trends-table-header",
|
|
526
|
-
headerName:
|
|
526
|
+
headerName: i,
|
|
527
527
|
minWidth: 100,
|
|
528
528
|
renderHeader: ke,
|
|
529
529
|
renderCell: je,
|
|
@@ -533,7 +533,7 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
533
533
|
hideSortIcons: !1,
|
|
534
534
|
type: "number",
|
|
535
535
|
sortComparator: Ke,
|
|
536
|
-
valueGetter: (a,
|
|
536
|
+
valueGetter: (a, c) => c.monthlyAmounts?.[i] ?? 0
|
|
537
537
|
})), r = {
|
|
538
538
|
field: "total",
|
|
539
539
|
flex: 1,
|
|
@@ -551,21 +551,21 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
551
551
|
};
|
|
552
552
|
return [n, ...o, r];
|
|
553
553
|
}, Ze = (t, s, n, o, r) => {
|
|
554
|
-
const
|
|
555
|
-
let
|
|
556
|
-
return r && (
|
|
554
|
+
const i = t.filter((a) => a.is_income === n).map((a) => {
|
|
555
|
+
let c = a.totalMonthlyAmounts;
|
|
556
|
+
return r && (c = a.monthlyAmounts), {
|
|
557
557
|
id: a.guid,
|
|
558
558
|
category: a.name,
|
|
559
559
|
category_guid: a.guid,
|
|
560
560
|
isParent: !1,
|
|
561
561
|
top_level_category_guid: a.parent_guid || a.guid,
|
|
562
|
-
total:
|
|
563
|
-
monthlyAmounts:
|
|
562
|
+
total: c.reduce(Xe(o), 0),
|
|
563
|
+
monthlyAmounts: c.reduce(Ue, {})
|
|
564
564
|
};
|
|
565
565
|
});
|
|
566
566
|
if (r && r.is_income === n) {
|
|
567
567
|
const a = r.monthlyAmounts.reduce(Xe(o), 0);
|
|
568
|
-
a !== 0 &&
|
|
568
|
+
a !== 0 && i.push({
|
|
569
569
|
id: `sub-${r.guid}`,
|
|
570
570
|
category: rt(s.category_general, r.name),
|
|
571
571
|
category_guid: r.guid,
|
|
@@ -575,7 +575,7 @@ const pt = ({ categoryGuid: t, topLevelCategoryGuid: s }) => {
|
|
|
575
575
|
monthlyAmounts: r.monthlyAmounts.reduce(Ue, {})
|
|
576
576
|
});
|
|
577
577
|
}
|
|
578
|
-
return
|
|
578
|
+
return i;
|
|
579
579
|
}, Do = Mt("div")({
|
|
580
580
|
display: "flex",
|
|
581
581
|
visibility: "hidden",
|
|
@@ -587,22 +587,22 @@ function Io({
|
|
|
587
587
|
sortingOrder: n,
|
|
588
588
|
disabled: o,
|
|
589
589
|
className: r,
|
|
590
|
-
field:
|
|
590
|
+
field: i
|
|
591
591
|
}) {
|
|
592
|
-
const a = Ut(),
|
|
592
|
+
const a = Ut(), c = Xt();
|
|
593
593
|
let u = null;
|
|
594
|
-
const
|
|
595
|
-
if (t === "asc" ? u =
|
|
596
|
-
const m = a.current.getColumn(
|
|
594
|
+
const l = {};
|
|
595
|
+
if (t === "asc" ? u = c.slots.columnSortedAscendingIcon : t === "desc" ? u = c.slots.columnSortedDescendingIcon : (u = c.slots.columnUnsortedIcon ?? null, l.sortingOrder = n), !u) return null;
|
|
596
|
+
const m = a.current.getColumn(i)?.headerName ?? i;
|
|
597
597
|
let _ = "";
|
|
598
598
|
t === "asc" ? _ = ", sorted ascending" : t === "desc" && (_ = ", sorted descending");
|
|
599
|
-
const h = ["Total", "Category"].includes(m) ? "" : " category totals", p = `Sort by ${m}${h}${_}`, f = /* @__PURE__ */ e(u, { className: "MuiDataGrid-sortIcon", fontSize: "small", ...
|
|
599
|
+
const h = ["Total", "Category"].includes(m) ? "" : " category totals", p = `Sort by ${m}${h}${_}`, f = /* @__PURE__ */ e(u, { className: "MuiDataGrid-sortIcon", fontSize: "small", ...l }), T = /* @__PURE__ */ e(
|
|
600
600
|
qt,
|
|
601
601
|
{
|
|
602
602
|
disabled: o,
|
|
603
603
|
size: "small",
|
|
604
604
|
tabIndex: -1,
|
|
605
|
-
...
|
|
605
|
+
...c.slotProps?.baseIconButton,
|
|
606
606
|
"aria-label": p,
|
|
607
607
|
className: `MuiDataGrid-sortButton${r ? ` ${r}` : ""}`,
|
|
608
608
|
title: p,
|
|
@@ -618,7 +618,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
618
618
|
rows: o,
|
|
619
619
|
totalRow: r
|
|
620
620
|
}) => {
|
|
621
|
-
const
|
|
621
|
+
const i = ae(), { onEvent: a } = $(), c = i.palette.mode === "light";
|
|
622
622
|
return /* @__PURE__ */ e(
|
|
623
623
|
Zt,
|
|
624
624
|
{
|
|
@@ -647,11 +647,11 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
647
647
|
borderStyle: "solid",
|
|
648
648
|
borderRadius: 2,
|
|
649
649
|
"& .MuiDataGrid-columnHeaders": {
|
|
650
|
-
bgcolor:
|
|
650
|
+
bgcolor: c ? "neutral.50" : "neutral.800",
|
|
651
651
|
borderBottom: "none"
|
|
652
652
|
},
|
|
653
653
|
"& .trends-table-header": {
|
|
654
|
-
bgcolor:
|
|
654
|
+
bgcolor: c ? "neutral.50" : "neutral.800"
|
|
655
655
|
}
|
|
656
656
|
}
|
|
657
657
|
}
|
|
@@ -663,20 +663,20 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
663
663
|
height: o = "100%",
|
|
664
664
|
sx: r = {}
|
|
665
665
|
}) => {
|
|
666
|
-
const { trends:
|
|
666
|
+
const { trends: i } = R(), { trendsCategories: a } = U(), c = g.useMemo(() => wo(t.start, t.end), [t]), u = g.useMemo(() => vo(c, i), [c, i]), l = g.useMemo(() => {
|
|
667
667
|
if (s)
|
|
668
668
|
return a.find((h) => h.guid === s);
|
|
669
669
|
}, [s, a]), [y, m] = g.useMemo(() => {
|
|
670
670
|
let h = a;
|
|
671
|
-
return
|
|
671
|
+
return l && (h = l.subCategories.filter(
|
|
672
672
|
(p) => p.monthlyAmounts.some((f) => f.amount !== 0)
|
|
673
673
|
)), [
|
|
674
|
-
Ze(h,
|
|
675
|
-
Ze(h,
|
|
674
|
+
Ze(h, i, !0, c, l),
|
|
675
|
+
Ze(h, i, !1, c, l)
|
|
676
676
|
];
|
|
677
|
-
}, [a, l, i
|
|
677
|
+
}, [a, c, l, i]), _ = {
|
|
678
678
|
id: "total",
|
|
679
|
-
category:
|
|
679
|
+
category: i.table_column_total,
|
|
680
680
|
category_guid: "total",
|
|
681
681
|
isParent: !1,
|
|
682
682
|
top_level_category_guid: "total",
|
|
@@ -689,26 +689,26 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
689
689
|
)
|
|
690
690
|
};
|
|
691
691
|
return /* @__PURE__ */ C(
|
|
692
|
-
|
|
692
|
+
S,
|
|
693
693
|
{
|
|
694
694
|
gap: 24,
|
|
695
695
|
sx: { height: o, width: "100%", overflowX: "auto", boxShadow: "none", ...r },
|
|
696
696
|
children: [
|
|
697
|
-
(!
|
|
697
|
+
(!l || l && l.is_income) && /* @__PURE__ */ e(
|
|
698
698
|
Qe,
|
|
699
699
|
{
|
|
700
700
|
columns: u,
|
|
701
701
|
onRowClick: n,
|
|
702
|
-
parentCategory:
|
|
702
|
+
parentCategory: l,
|
|
703
703
|
rows: y
|
|
704
704
|
}
|
|
705
705
|
),
|
|
706
|
-
(!
|
|
706
|
+
(!l || l && !l.is_income) && /* @__PURE__ */ e(
|
|
707
707
|
Qe,
|
|
708
708
|
{
|
|
709
709
|
columns: u,
|
|
710
710
|
onRowClick: n,
|
|
711
|
-
parentCategory:
|
|
711
|
+
parentCategory: l,
|
|
712
712
|
rows: m,
|
|
713
713
|
totalRow: _
|
|
714
714
|
}
|
|
@@ -724,18 +724,18 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
724
724
|
isOpen: n,
|
|
725
725
|
onClose: o
|
|
726
726
|
}) => {
|
|
727
|
-
const { onEvent: r } = $(), { selectedAccountGuids:
|
|
728
|
-
() => u.find((h) => h.guid ===
|
|
729
|
-
[
|
|
727
|
+
const { onEvent: r } = $(), { selectedAccountGuids: i } = fe(), { common: a } = R(), { setFilter: c, sortedTransactions: u } = ve(), [l, y] = g.useState(""), m = g.useMemo(
|
|
728
|
+
() => u.find((h) => h.guid === l),
|
|
729
|
+
[l, u]
|
|
730
730
|
);
|
|
731
731
|
g.useEffect(() => {
|
|
732
|
-
|
|
733
|
-
accounts:
|
|
732
|
+
c({
|
|
733
|
+
accounts: i,
|
|
734
734
|
dateRange: s,
|
|
735
735
|
custom: (h) => t === "" || t === h.category_guid || t === h.top_level_category_guid,
|
|
736
736
|
showSplits: !!t
|
|
737
737
|
});
|
|
738
|
-
}, [
|
|
738
|
+
}, [i, t, s]), g.useEffect(() => r(v.TRENDS_VIEW_TRANSACTIONS), []);
|
|
739
739
|
const _ = () => {
|
|
740
740
|
y(""), o();
|
|
741
741
|
};
|
|
@@ -748,14 +748,14 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
748
748
|
title: Eo.title,
|
|
749
749
|
children: [
|
|
750
750
|
m && /* @__PURE__ */ e(dt, { transaction: m }),
|
|
751
|
-
!m && /* @__PURE__ */ e(
|
|
751
|
+
!m && /* @__PURE__ */ e(ct, { onClick: y })
|
|
752
752
|
]
|
|
753
753
|
}
|
|
754
754
|
);
|
|
755
755
|
}, Ao = A(Mo), Ro = ({ onBackClick: t, sx: s }) => {
|
|
756
|
-
const { onEvent: n } = $(), { isDesktop: o, isTablet: r, isMobile:
|
|
756
|
+
const { onEvent: n } = $(), { isDesktop: o, isTablet: r, isMobile: i } = j(), { isAccountDataLoaded: a, loadAccountData: c } = De(), {
|
|
757
757
|
categoriesLoaded: u,
|
|
758
|
-
loadCategories:
|
|
758
|
+
loadCategories: l,
|
|
759
759
|
loadDateRangeCategoryTotals: y,
|
|
760
760
|
loadMonthlyCategoryTotals: m,
|
|
761
761
|
monthlyCategoryTotals: _,
|
|
@@ -764,33 +764,33 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
764
764
|
isTransactionDataLoaded: p,
|
|
765
765
|
loadTransactionData: f,
|
|
766
766
|
sortedTransactions: T
|
|
767
|
-
} = ve(), { selectedDateRange:
|
|
767
|
+
} = ve(), { selectedDateRange: x, setSelectedDateRange: k } = ye(), { isInitialized: L, selectedAccounts: E } = fe(), { trends: w } = R(), [M, ie] = g.useState(!1), [X, V] = g.useState(!1), [Z, O] = g.useState("Chart"), [G, Q] = g.useState(""), [Ce, le] = g.useState(window.innerHeight), ce = Ce - (i ? 315 : 345);
|
|
768
768
|
Ie({
|
|
769
769
|
widgetName: "TrendsFullWidget",
|
|
770
770
|
isLoaded: M
|
|
771
771
|
}), g.useEffect(() => {
|
|
772
|
-
const D = () =>
|
|
773
|
-
return window.addEventListener("resize", D), a ||
|
|
772
|
+
const D = () => le(window.innerHeight);
|
|
773
|
+
return window.addEventListener("resize", D), a || c().finally(), u || l().finally(), p || f().finally(), () => window.removeEventListener("resize", D);
|
|
774
774
|
}, []), g.useEffect(() => {
|
|
775
|
-
L && y(E,
|
|
775
|
+
L && y(E, x.start, x.end).then(() => {
|
|
776
776
|
m(
|
|
777
777
|
E,
|
|
778
|
-
|
|
779
|
-
|
|
778
|
+
x.start,
|
|
779
|
+
x.end
|
|
780
780
|
);
|
|
781
781
|
}).finally(() => {
|
|
782
782
|
ie(!0), n(v.TRENDS_LOAD_WIDGET, {
|
|
783
783
|
...W,
|
|
784
|
-
time_period: `${Se(
|
|
784
|
+
time_period: `${Se(x.end, x.start)}M`
|
|
785
785
|
});
|
|
786
786
|
});
|
|
787
|
-
}, [L, E,
|
|
787
|
+
}, [L, E, x]);
|
|
788
788
|
const z = g.useMemo(() => {
|
|
789
789
|
if (!M) return { stackedDatasets: [], unstackedDatasets: [] };
|
|
790
790
|
const D = Bt(
|
|
791
791
|
_,
|
|
792
|
-
|
|
793
|
-
|
|
792
|
+
x.start,
|
|
793
|
+
x.end
|
|
794
794
|
), B = G.length ? D.filter(
|
|
795
795
|
(d) => d.top_level_category_guid === G || d.category_guid === G
|
|
796
796
|
) : Vt(D);
|
|
@@ -798,7 +798,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
798
798
|
stackedDatasets: B.filter(Ft),
|
|
799
799
|
unstackedDatasets: B.filter($t)
|
|
800
800
|
};
|
|
801
|
-
}, [_, G,
|
|
801
|
+
}, [_, G, x]), J = (D, B) => {
|
|
802
802
|
O(B ?? Z), n(v.TRENDS_CLICK_TOGGLE_VIEW);
|
|
803
803
|
}, ne = (D) => {
|
|
804
804
|
const B = et(D?.[0], 1), d = D?.[1], b = Se(d, B);
|
|
@@ -822,7 +822,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
822
822
|
ut,
|
|
823
823
|
{
|
|
824
824
|
calendarActions: { onRangeChanged: ne },
|
|
825
|
-
dateRange:
|
|
825
|
+
dateRange: x,
|
|
826
826
|
dateRangeVariant: "timeframebuttons",
|
|
827
827
|
onAccountsFilterClick: ee,
|
|
828
828
|
onBackClick: t,
|
|
@@ -830,7 +830,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
830
830
|
title: w.title,
|
|
831
831
|
children: [
|
|
832
832
|
/* @__PURE__ */ C(
|
|
833
|
-
|
|
833
|
+
S,
|
|
834
834
|
{
|
|
835
835
|
sx: {
|
|
836
836
|
// eslint-disable-next-line no-nested-ternary
|
|
@@ -838,24 +838,24 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
838
838
|
},
|
|
839
839
|
children: [
|
|
840
840
|
/* @__PURE__ */ C(
|
|
841
|
-
|
|
841
|
+
S,
|
|
842
842
|
{
|
|
843
843
|
flexDirection: "row",
|
|
844
844
|
justifyContent: "space-between",
|
|
845
|
-
sx: { pb:
|
|
845
|
+
sx: { pb: i ? 12 : 24, pt: i ? 24 : 48 },
|
|
846
846
|
children: [
|
|
847
847
|
/* @__PURE__ */ e(
|
|
848
848
|
yt,
|
|
849
849
|
{
|
|
850
850
|
selectedCategoryGuid: G,
|
|
851
|
-
selectedDateRange:
|
|
851
|
+
selectedDateRange: x
|
|
852
852
|
}
|
|
853
853
|
),
|
|
854
854
|
/* @__PURE__ */ e(ft, { onTabChange: J, selectedTab: Z })
|
|
855
855
|
]
|
|
856
856
|
}
|
|
857
857
|
),
|
|
858
|
-
/* @__PURE__ */ C(
|
|
858
|
+
/* @__PURE__ */ C(S, { alignItems: "center", flexDirection: "row", width: "100%", children: [
|
|
859
859
|
/* @__PURE__ */ e(N, { flexGrow: 1, children: G && /* @__PURE__ */ C(Te, { onClick: () => Q(""), sx: { p: 0, pr: 5 }, children: [
|
|
860
860
|
/* @__PURE__ */ e(He, { name: "arrow_back" }),
|
|
861
861
|
w.all_categories
|
|
@@ -866,7 +866,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
866
866
|
Z === "Chart" && /* @__PURE__ */ e(
|
|
867
867
|
So,
|
|
868
868
|
{
|
|
869
|
-
availableHeight:
|
|
869
|
+
availableHeight: ce,
|
|
870
870
|
onClickLegend: se,
|
|
871
871
|
onHoverArea: ue,
|
|
872
872
|
onHoverLegend: de,
|
|
@@ -880,7 +880,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
880
880
|
{
|
|
881
881
|
onClickRow: te,
|
|
882
882
|
selectedCategory: G,
|
|
883
|
-
selectedDateRange:
|
|
883
|
+
selectedDateRange: x
|
|
884
884
|
}
|
|
885
885
|
)
|
|
886
886
|
] })
|
|
@@ -891,7 +891,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
891
891
|
Ao,
|
|
892
892
|
{
|
|
893
893
|
categoryGuid: G,
|
|
894
|
-
dateRange:
|
|
894
|
+
dateRange: x,
|
|
895
895
|
isOpen: X,
|
|
896
896
|
onClose: () => V(!1)
|
|
897
897
|
}
|
|
@@ -918,23 +918,23 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
918
918
|
}
|
|
919
919
|
);
|
|
920
920
|
}, Ho = A(ko), No = ({ onPrimaryCtaClick: t, sx: s }) => {
|
|
921
|
-
const { isAccountDataLoaded: n, loadAccountData: o } = De(), { loadMonthlyCategoryTotals: r, monthlyTotalsLoaded:
|
|
921
|
+
const { isAccountDataLoaded: n, loadAccountData: o } = De(), { loadMonthlyCategoryTotals: r, monthlyTotalsLoaded: i } = U(), { isInitialized: a } = Be(), { trends: c } = R(), { selectedAccounts: u } = fe();
|
|
922
922
|
return g.useEffect(() => {
|
|
923
923
|
n || o().finally();
|
|
924
924
|
}, []), Ie({
|
|
925
925
|
widgetName: "TrendsMiniWidget",
|
|
926
|
-
isLoaded:
|
|
926
|
+
isLoaded: i
|
|
927
927
|
}), g.useEffect(() => {
|
|
928
928
|
a && n && r(u).finally();
|
|
929
|
-
}, [n, a, u]), !n || !a || !
|
|
929
|
+
}, [n, a, u]), !n || !a || !i ? /* @__PURE__ */ e(Le, {}) : /* @__PURE__ */ e(
|
|
930
930
|
Jt,
|
|
931
931
|
{
|
|
932
932
|
contentStyles: { height: "calc(100% - 72px)", minHeight: 300, ":last-child": { pb: 0 } },
|
|
933
933
|
onPrimaryCtaClick: t,
|
|
934
|
-
primaryCtaLabel:
|
|
935
|
-
subTitle:
|
|
934
|
+
primaryCtaLabel: c.primary_cta,
|
|
935
|
+
subTitle: c.sub_title,
|
|
936
936
|
sx: { height: "100%", ...s },
|
|
937
|
-
title:
|
|
937
|
+
title: c.mini_title,
|
|
938
938
|
children: /* @__PURE__ */ e(Ho, {})
|
|
939
939
|
}
|
|
940
940
|
);
|
|
@@ -944,14 +944,14 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
944
944
|
transactionType: n,
|
|
945
945
|
percentage: o,
|
|
946
946
|
secondaryLabel: r,
|
|
947
|
-
shouldDisplayPercentage:
|
|
947
|
+
shouldDisplayPercentage: i
|
|
948
948
|
}) => {
|
|
949
|
-
const { availableWidth: a } = nt(),
|
|
949
|
+
const { availableWidth: a } = nt(), c = g.useRef(null), u = g.useRef(null), l = Ot(Number(Math.abs(o)), {
|
|
950
950
|
style: "percent",
|
|
951
951
|
minimumIntegerDigits: 1
|
|
952
|
-
}), y = a === 288 && re(s, "0,0.00").length > 10 ? re(s, "0,0") : re(s, "0,0.00"), m = n === "spending" ? o > 0 : o >= 0, _ = n === "spending" ? "error.main" : "success.main", h = n === "spending" ? "success.main" : "text.secondary", p =
|
|
952
|
+
}), y = a === 288 && re(s, "0,0.00").length > 10 ? re(s, "0,0") : re(s, "0,0.00"), m = n === "spending" ? o > 0 : o >= 0, _ = n === "spending" ? "error.main" : "success.main", h = n === "spending" ? "success.main" : "text.secondary", p = c?.current, f = u?.current, T = p && f ? p.scrollWidth > f.clientWidth - Wo : !1;
|
|
953
953
|
return /* @__PURE__ */ C(
|
|
954
|
-
|
|
954
|
+
S,
|
|
955
955
|
{
|
|
956
956
|
sx: {
|
|
957
957
|
border: 1,
|
|
@@ -964,7 +964,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
964
964
|
},
|
|
965
965
|
children: [
|
|
966
966
|
/* @__PURE__ */ C(
|
|
967
|
-
|
|
967
|
+
S,
|
|
968
968
|
{
|
|
969
969
|
sx: {
|
|
970
970
|
alignItems: "center",
|
|
@@ -973,7 +973,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
973
973
|
},
|
|
974
974
|
children: [
|
|
975
975
|
/* @__PURE__ */ e(pe, { color: "text.secondary", variant: "caption", children: t }),
|
|
976
|
-
|
|
976
|
+
i && /* @__PURE__ */ C(S, { sx: { alignItems: "center", flexDirection: "row", gap: 4 }, children: [
|
|
977
977
|
m ? /* @__PURE__ */ e(to, { size: 20, sx: { color: _ } }) : /* @__PURE__ */ e(oo, { size: 20, sx: { color: h } }),
|
|
978
978
|
/* @__PURE__ */ e(
|
|
979
979
|
pe,
|
|
@@ -983,7 +983,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
983
983
|
fontWeight: 600
|
|
984
984
|
},
|
|
985
985
|
variant: "body2",
|
|
986
|
-
children:
|
|
986
|
+
children: l
|
|
987
987
|
}
|
|
988
988
|
)
|
|
989
989
|
] })
|
|
@@ -991,7 +991,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
991
991
|
}
|
|
992
992
|
),
|
|
993
993
|
/* @__PURE__ */ C(
|
|
994
|
-
|
|
994
|
+
S,
|
|
995
995
|
{
|
|
996
996
|
ref: u,
|
|
997
997
|
sx: {
|
|
@@ -1003,12 +1003,12 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1003
1003
|
/* @__PURE__ */ e(
|
|
1004
1004
|
N,
|
|
1005
1005
|
{
|
|
1006
|
-
ref:
|
|
1006
|
+
ref: c,
|
|
1007
1007
|
sx: { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" },
|
|
1008
1008
|
children: /* @__PURE__ */ e(Ge, { children: y })
|
|
1009
1009
|
}
|
|
1010
1010
|
),
|
|
1011
|
-
|
|
1011
|
+
i && a >= 450 && !T && /* @__PURE__ */ e(
|
|
1012
1012
|
pe,
|
|
1013
1013
|
{
|
|
1014
1014
|
color: m ? _ : h,
|
|
@@ -1024,9 +1024,9 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1024
1024
|
);
|
|
1025
1025
|
}, Oo = A(() => {
|
|
1026
1026
|
const { trends: t } = R();
|
|
1027
|
-
return /* @__PURE__ */ C(
|
|
1027
|
+
return /* @__PURE__ */ C(S, { sx: { alignItems: "start", flexDirection: "row", gap: 12 }, children: [
|
|
1028
1028
|
/* @__PURE__ */ e(no, { size: 32 }),
|
|
1029
|
-
/* @__PURE__ */ C(
|
|
1029
|
+
/* @__PURE__ */ C(S, { children: [
|
|
1030
1030
|
/* @__PURE__ */ e(pe, { fontWeight: 600, variant: "body1", children: t.zero_state_content_header }),
|
|
1031
1031
|
/* @__PURE__ */ e(pe, { color: "text.secondary", variant: "subtitle2", children: t.zero_state_content_description })
|
|
1032
1032
|
] })
|
|
@@ -1036,13 +1036,13 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1036
1036
|
g.useEffect(() => {
|
|
1037
1037
|
s || n().finally();
|
|
1038
1038
|
}, []);
|
|
1039
|
-
const { onEvent: r } = $(), { monthlyCategoryTotals:
|
|
1039
|
+
const { onEvent: r } = $(), { monthlyCategoryTotals: i, loadMonthlyCategoryTotals: a, monthlyTotalsLoaded: c } = U(), u = {
|
|
1040
1040
|
start: eo(/* @__PURE__ */ new Date(), 1),
|
|
1041
1041
|
end: /* @__PURE__ */ new Date()
|
|
1042
|
-
}, { trends:
|
|
1042
|
+
}, { trends: l } = R(), { selectedAccounts: y, isInitialized: m } = fe();
|
|
1043
1043
|
Ie({
|
|
1044
1044
|
widgetName: "TrendsMicroWidget",
|
|
1045
|
-
isLoaded:
|
|
1045
|
+
isLoaded: c
|
|
1046
1046
|
}), g.useEffect(() => {
|
|
1047
1047
|
m && a(y, u.start).then(() => {
|
|
1048
1048
|
r(v.TRENDS_LOAD_WIDGET, {
|
|
@@ -1052,25 +1052,25 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1052
1052
|
}, [m, y]);
|
|
1053
1053
|
const { spendingData: _, incomeData: h } = g.useMemo(
|
|
1054
1054
|
() => ({
|
|
1055
|
-
spendingData: at(
|
|
1056
|
-
incomeData: it(
|
|
1055
|
+
spendingData: at(i, u),
|
|
1056
|
+
incomeData: it(i, u)
|
|
1057
1057
|
}),
|
|
1058
|
-
[
|
|
1059
|
-
), [p, f] = _, [T,
|
|
1058
|
+
[i, u]
|
|
1059
|
+
), [p, f] = _, [T, x] = h, k = Ye(f.y, p.y), L = Ye(x.y, T.y), E = m && !o?.length, w = () => {
|
|
1060
1060
|
r(
|
|
1061
1061
|
E ? v.TRENDS_CLICK_GET_STARTED : v.TRENDS_CLICK_VIEW_MORE
|
|
1062
1062
|
), t();
|
|
1063
1063
|
};
|
|
1064
|
-
return !
|
|
1064
|
+
return !c || !m ? /* @__PURE__ */ e(Le, {}) : /* @__PURE__ */ e(
|
|
1065
1065
|
io,
|
|
1066
1066
|
{
|
|
1067
1067
|
className: "mx-trends-microwidget",
|
|
1068
|
-
ctaLabel:
|
|
1068
|
+
ctaLabel: l.micro_primary_cta_label,
|
|
1069
1069
|
onCTAClick: w,
|
|
1070
|
-
subHeader: E ? void 0 :
|
|
1071
|
-
title:
|
|
1070
|
+
subHeader: E ? void 0 : l.micro_subheader,
|
|
1071
|
+
title: l.title,
|
|
1072
1072
|
children: E ? /* @__PURE__ */ e(Oo, {}) : /* @__PURE__ */ C(
|
|
1073
|
-
|
|
1073
|
+
S,
|
|
1074
1074
|
{
|
|
1075
1075
|
sx: {
|
|
1076
1076
|
alignItems: "stretch",
|
|
@@ -1082,9 +1082,9 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1082
1082
|
qe,
|
|
1083
1083
|
{
|
|
1084
1084
|
percentage: k,
|
|
1085
|
-
secondaryLabel:
|
|
1085
|
+
secondaryLabel: l.micro_secondary_label,
|
|
1086
1086
|
shouldDisplayPercentage: f.y !== 0 && p.y !== 0,
|
|
1087
|
-
title:
|
|
1087
|
+
title: l.spending_label,
|
|
1088
1088
|
totalAmount: f.y,
|
|
1089
1089
|
transactionType: "spending"
|
|
1090
1090
|
}
|
|
@@ -1093,10 +1093,10 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1093
1093
|
qe,
|
|
1094
1094
|
{
|
|
1095
1095
|
percentage: L,
|
|
1096
|
-
secondaryLabel:
|
|
1097
|
-
shouldDisplayPercentage:
|
|
1098
|
-
title:
|
|
1099
|
-
totalAmount:
|
|
1096
|
+
secondaryLabel: l.micro_secondary_label,
|
|
1097
|
+
shouldDisplayPercentage: x.y !== 0 && T.y !== 0,
|
|
1098
|
+
title: l.income_label,
|
|
1099
|
+
totalAmount: x.y,
|
|
1100
1100
|
transactionType: "income"
|
|
1101
1101
|
}
|
|
1102
1102
|
)
|
|
@@ -1108,8 +1108,8 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1108
1108
|
}), Go = A(
|
|
1109
1109
|
({ isExpanded: t, onClick: s }) => {
|
|
1110
1110
|
const n = gt();
|
|
1111
|
-
return /* @__PURE__ */ e(mt, {
|
|
1112
|
-
|
|
1111
|
+
return /* @__PURE__ */ e(mt, { children: /* @__PURE__ */ e(co, { onClick: s, sx: { justifyContent: "center" }, children: /* @__PURE__ */ C(
|
|
1112
|
+
S,
|
|
1113
1113
|
{
|
|
1114
1114
|
sx: { color: n.palette.primary.main, flexDirection: "row", alignItems: "center" },
|
|
1115
1115
|
children: [
|
|
@@ -1134,10 +1134,10 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1134
1134
|
name: n,
|
|
1135
1135
|
transactions: o,
|
|
1136
1136
|
onClick: r,
|
|
1137
|
-
isLastItem:
|
|
1137
|
+
isLastItem: i = !1,
|
|
1138
1138
|
showDivider: a = !0
|
|
1139
1139
|
}) => {
|
|
1140
|
-
const { trends:
|
|
1140
|
+
const { trends: c } = R(), { onEvent: u } = $(), l = ae(), y = `${o.length} ${o.length === 1 ? c.transaction : c.transactions}`, m = () => {
|
|
1141
1141
|
r?.(), u(v.TRENDS_CLICK_LIST_ITEM, {
|
|
1142
1142
|
...W,
|
|
1143
1143
|
listItem: n
|
|
@@ -1152,8 +1152,8 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1152
1152
|
{
|
|
1153
1153
|
categoryGuid: s,
|
|
1154
1154
|
sx: {
|
|
1155
|
-
bgcolor: At(Oe(s,
|
|
1156
|
-
border: `1px solid ${Oe(s,
|
|
1155
|
+
bgcolor: At(Oe(s, l), 0.15),
|
|
1156
|
+
border: `1px solid ${Oe(s, l)}`,
|
|
1157
1157
|
color: "text.primary"
|
|
1158
1158
|
}
|
|
1159
1159
|
}
|
|
@@ -1165,23 +1165,23 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1165
1165
|
title: n
|
|
1166
1166
|
}
|
|
1167
1167
|
),
|
|
1168
|
-
a && /* @__PURE__ */ e(Ne, { component: "li", sx: { ml:
|
|
1168
|
+
a && /* @__PURE__ */ e(Ne, { component: "li", sx: { ml: i ? 24 : 68 } })
|
|
1169
1169
|
] }, s);
|
|
1170
1170
|
}
|
|
1171
1171
|
), Bo = A(
|
|
1172
1172
|
({ availableHeight: t = 0, onCategoryClick: s }) => {
|
|
1173
|
-
const { collapsedCategories: n, visibleCategories: o, setVisibleListLength: r } = ye(), { isLargeDesktop:
|
|
1173
|
+
const { collapsedCategories: n, visibleCategories: o, setVisibleListLength: r } = ye(), { isLargeDesktop: i, isDesktop: a } = j(), { trends: c } = R(), { onEvent: u } = $(), [l, y] = g.useState(!1), m = a || i;
|
|
1174
1174
|
g.useEffect(() => {
|
|
1175
1175
|
const p = Math.floor(t / 64) - 1, f = o.length + n.length;
|
|
1176
1176
|
p !== o.length && (r(m ? Math.max(p, 5) : 5), y(p >= f));
|
|
1177
1177
|
}, [t]);
|
|
1178
1178
|
const _ = () => {
|
|
1179
|
-
y(!
|
|
1179
|
+
y(!l), u(v.TRENDS_CLICK_VIEW_MORE, {
|
|
1180
1180
|
...W
|
|
1181
1181
|
});
|
|
1182
|
-
}, h = o.length + (
|
|
1183
|
-
return /* @__PURE__ */ C(
|
|
1184
|
-
/* @__PURE__ */ e(
|
|
1182
|
+
}, h = o.length + (l ? n.length : 0);
|
|
1183
|
+
return /* @__PURE__ */ C(S, { sx: { width: "100%" }, children: [
|
|
1184
|
+
/* @__PURE__ */ e(S, { sx: { pb: 4, pt: 16, px: 16 }, children: /* @__PURE__ */ e(Ge, { children: c.categories }) }),
|
|
1185
1185
|
/* @__PURE__ */ C(We, { children: [
|
|
1186
1186
|
o.map((p, f) => /* @__PURE__ */ e(
|
|
1187
1187
|
Je,
|
|
@@ -1194,10 +1194,10 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1194
1194
|
p.guid
|
|
1195
1195
|
)),
|
|
1196
1196
|
/* @__PURE__ */ e(
|
|
1197
|
-
|
|
1197
|
+
lo,
|
|
1198
1198
|
{
|
|
1199
1199
|
component: "li",
|
|
1200
|
-
in:
|
|
1200
|
+
in: l,
|
|
1201
1201
|
sx: { "&.MuiCollapse-root .MuiListItemButton-root": { paddingLeft: 24 } },
|
|
1202
1202
|
children: /* @__PURE__ */ e(We, { children: n.map((p, f) => {
|
|
1203
1203
|
const T = o.length + f;
|
|
@@ -1214,27 +1214,27 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1214
1214
|
}) })
|
|
1215
1215
|
}
|
|
1216
1216
|
),
|
|
1217
|
-
n.length > 0 && /* @__PURE__ */ e(Go, { isExpanded:
|
|
1217
|
+
n.length > 0 && /* @__PURE__ */ e(Go, { isExpanded: l, onClick: _ })
|
|
1218
1218
|
] })
|
|
1219
1219
|
] });
|
|
1220
1220
|
}
|
|
1221
1221
|
), Po = ({ beats: t, onInsightCardClick: s }) => {
|
|
1222
|
-
const { onEvent: n } = $(), { isMobile: o, isDesktop: r, isLargeDesktop:
|
|
1223
|
-
s?.(
|
|
1224
|
-
}, h =
|
|
1225
|
-
return /* @__PURE__ */ e(mo, { sx: { height:
|
|
1222
|
+
const { onEvent: n } = $(), { isMobile: o, isDesktop: r, isLargeDesktop: i } = j(), { beatStore: a, endpoint: c, sessionToken: u } = Be(), l = r || i, y = l || o ? 1 : 2, m = () => null, _ = (T) => {
|
|
1223
|
+
s?.(T), n(v.TRENDS_CLICK_INSIGHT, W);
|
|
1224
|
+
}, h = l ? 200 : 170, p = l ? 170 : 124, f = t.length > 0 ? h : p;
|
|
1225
|
+
return /* @__PURE__ */ e(mo, { sx: { height: f }, children: /* @__PURE__ */ e(
|
|
1226
1226
|
jt,
|
|
1227
1227
|
{
|
|
1228
1228
|
areBeatsLoading: a.isLoading,
|
|
1229
1229
|
beats: t,
|
|
1230
|
-
endpoint:
|
|
1230
|
+
endpoint: c,
|
|
1231
1231
|
headerSx: { p: 0 },
|
|
1232
1232
|
logOutUser: m,
|
|
1233
1233
|
onCardClick: _,
|
|
1234
1234
|
showBorder: !0,
|
|
1235
1235
|
showCTAColocatedWithText: !1,
|
|
1236
1236
|
showCarouselControls: !0,
|
|
1237
|
-
showHeader:
|
|
1237
|
+
showHeader: l,
|
|
1238
1238
|
showIcon: !0,
|
|
1239
1239
|
showWithMargin: !1,
|
|
1240
1240
|
token: u,
|
|
@@ -1247,7 +1247,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1247
1247
|
const { onEvent: n } = $(), {
|
|
1248
1248
|
categoryDetailsChartData: { monthlyAmounts: o, tooltipLabels: r }
|
|
1249
1249
|
} = ye();
|
|
1250
|
-
return /* @__PURE__ */ e(
|
|
1250
|
+
return /* @__PURE__ */ e(S, { sx: { pt: 12, width: "100%" }, children: /* @__PURE__ */ e(
|
|
1251
1251
|
Ve,
|
|
1252
1252
|
{
|
|
1253
1253
|
baseline: "min",
|
|
@@ -1277,15 +1277,15 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1277
1277
|
}
|
|
1278
1278
|
) });
|
|
1279
1279
|
}), $o = A(() => {
|
|
1280
|
-
const t = gt(), { is_mobile_webview: s } = st(), { isDesktop: n, isSmallTablet: o, isTablet: r } = j(), { common:
|
|
1281
|
-
if (!
|
|
1280
|
+
const t = gt(), { is_mobile_webview: s } = st(), { isDesktop: n, isSmallTablet: o, isTablet: r } = j(), { common: i, trends: a } = R(), { selectedCategoryData: c, selectedDateRangeMonthRange: u } = ye(), { sortedTransactions: l } = ve(), [y, m] = g.useState(null);
|
|
1281
|
+
if (!c)
|
|
1282
1282
|
return null;
|
|
1283
|
-
const { guid: _, name: h, is_income: p, totalAmount: f } =
|
|
1284
|
-
() =>
|
|
1285
|
-
[y,
|
|
1286
|
-
), E =
|
|
1287
|
-
return /* @__PURE__ */ C(
|
|
1288
|
-
/* @__PURE__ */ C(
|
|
1283
|
+
const { guid: _, name: h, is_income: p, totalAmount: f } = c, T = Oe(_, t), x = p ? a.income_label : a.spending_label, k = ` ${c.transactions.length === 1 ? a.transaction : a.transactions} (${c.transactions.length})`, L = g.useMemo(
|
|
1284
|
+
() => l.find((M) => M.guid === y),
|
|
1285
|
+
[y, l]
|
|
1286
|
+
), E = l.length > 0 && !s && (n || r && !o), w = (M) => M.category_guid === _ || M.top_level_category_guid === _;
|
|
1287
|
+
return /* @__PURE__ */ C(S, { sx: { alignItems: "center", height: "100%" }, children: [
|
|
1288
|
+
/* @__PURE__ */ C(S, { sx: { borderRadius: 0, pb: 4, pt: 16, px: 12, width: "100%" }, children: [
|
|
1289
1289
|
/* @__PURE__ */ e(We, { sx: { px: 12 }, children: /* @__PURE__ */ C(mt, { children: [
|
|
1290
1290
|
/* @__PURE__ */ e(ho, { children: /* @__PURE__ */ e(we, { categoryGuid: _ }) }),
|
|
1291
1291
|
/* @__PURE__ */ e(
|
|
@@ -1299,14 +1299,14 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1299
1299
|
),
|
|
1300
1300
|
/* @__PURE__ */ e(F, { component: "div", variant: "h3", children: re(Math.abs(f), "0,0.00") })
|
|
1301
1301
|
] }) }),
|
|
1302
|
-
/* @__PURE__ */ e(Fo, { chartColor: T, chartLabel:
|
|
1303
|
-
/* @__PURE__ */ C(
|
|
1302
|
+
/* @__PURE__ */ e(Fo, { chartColor: T, chartLabel: x }),
|
|
1303
|
+
/* @__PURE__ */ C(S, { alignItems: "center", direction: "row", justifyContent: "space-between", sx: { mx: 12 }, children: [
|
|
1304
1304
|
/* @__PURE__ */ e(F, { bold: !0, variant: "body1", children: k }),
|
|
1305
1305
|
E && /* @__PURE__ */ e(go, { filter: w })
|
|
1306
1306
|
] })
|
|
1307
1307
|
] }),
|
|
1308
1308
|
/* @__PURE__ */ e(
|
|
1309
|
-
|
|
1309
|
+
ct,
|
|
1310
1310
|
{
|
|
1311
1311
|
bgcolor: "transparent",
|
|
1312
1312
|
filter: w,
|
|
@@ -1317,7 +1317,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1317
1317
|
/* @__PURE__ */ e(
|
|
1318
1318
|
Pe,
|
|
1319
1319
|
{
|
|
1320
|
-
ariaLabelClose:
|
|
1320
|
+
ariaLabelClose: i.close_aria,
|
|
1321
1321
|
isOpen: !!L,
|
|
1322
1322
|
onClose: () => m(""),
|
|
1323
1323
|
title: a.transaction,
|
|
@@ -1329,14 +1329,14 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1329
1329
|
const n = it(t, s), o = at(t, s);
|
|
1330
1330
|
return [n, o].filter((r) => r.length > 0);
|
|
1331
1331
|
}, Ko = (t, s) => {
|
|
1332
|
-
const [n, o] = t, r = n,
|
|
1332
|
+
const [n, o] = t, r = n, i = o ?? n, a = [];
|
|
1333
1333
|
if (r) {
|
|
1334
|
-
const
|
|
1335
|
-
a.push({ label: s.income_label, amount:
|
|
1334
|
+
const c = r.reduce((u, l) => u + l.y, 0);
|
|
1335
|
+
a.push({ label: s.income_label, amount: c });
|
|
1336
1336
|
}
|
|
1337
|
-
if (
|
|
1338
|
-
const
|
|
1339
|
-
a.push({ label: s.spending_label, amount:
|
|
1337
|
+
if (i) {
|
|
1338
|
+
const c = i.reduce((u, l) => u + l.y, 0);
|
|
1339
|
+
a.push({ label: s.spending_label, amount: c });
|
|
1340
1340
|
}
|
|
1341
1341
|
return a;
|
|
1342
1342
|
}, Yo = ({
|
|
@@ -1345,7 +1345,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1345
1345
|
selectedDateRange: n,
|
|
1346
1346
|
totals: o
|
|
1347
1347
|
}) => {
|
|
1348
|
-
const r = ae(), { onEvent:
|
|
1348
|
+
const r = ae(), { onEvent: i } = $(), { trends: a } = R(), { isSmallMobile: c, isMobile: u, isSmallTablet: l, isTablet: y } = j(), m = [r.palette.chart?.chart1, r.palette.chart?.chart2], _ = zo(o, n), h = Ko(_, a), [p, f] = g.useState(0), T = 458, x = 195, k = 56, L = u || c ? x : l || y ? T : p;
|
|
1349
1349
|
return g.useEffect(() => {
|
|
1350
1350
|
const w = Math.max(t - k, s);
|
|
1351
1351
|
f(w);
|
|
@@ -1359,7 +1359,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1359
1359
|
height: L,
|
|
1360
1360
|
labels: h,
|
|
1361
1361
|
onItemClick: () => {
|
|
1362
|
-
|
|
1362
|
+
i(v.TRENDS_CLICK_CHART, W);
|
|
1363
1363
|
},
|
|
1364
1364
|
showArea: !0,
|
|
1365
1365
|
showAxisHighlight: !0,
|
|
@@ -1412,22 +1412,22 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1412
1412
|
onClickHandler: s ? n : void 0,
|
|
1413
1413
|
primaryButton: s ? t.empty_state_primary : void 0
|
|
1414
1414
|
}), Zo = ({ onBackClick: t, onInsightCardClick: s, sx: n }) => {
|
|
1415
|
-
const { onEvent: o } = $(), { config: r } = st(), { isDesktop:
|
|
1415
|
+
const { onEvent: o } = $(), { config: r } = st(), { isDesktop: i, isLargeDesktop: a, isMobile: c } = j(), { isAccountDataLoaded: u, loadAccountData: l, visibleAccounts: y } = De(), {
|
|
1416
1416
|
categoriesLoaded: m,
|
|
1417
1417
|
loadCategories: _,
|
|
1418
1418
|
loadDateRangeCategoryTotals: h,
|
|
1419
1419
|
loadMonthlyCategoryTotals: p,
|
|
1420
1420
|
monthlyCategoryTotals: f,
|
|
1421
1421
|
monthlyTotalsLoaded: T
|
|
1422
|
-
} = U(), { isTransactionDataLoaded:
|
|
1422
|
+
} = U(), { isTransactionDataLoaded: x, loadTransactionData: k, setFilter: L } = ve(), { selectedCategoryData: E, selectedDateRange: w, setSelectedCategoryData: M, setSelectedDateRange: ie } = ye(), { isInitialized: X, selectedAccounts: V, selectedAccountGuids: Z } = fe(), { trends: O, connect: G } = R(), { beatStore: Q } = Be(), le = po() && r.show_insights_widget_in_master, q = i || a, [ce, z] = g.useState(!1), [J, ne] = g.useState(!1), [ee, te] = g.useState("Chart"), [se, de] = g.useState(""), [ue, me] = g.useState(window.innerHeight), D = q ? 56 : 0, B = ue - 208, d = ue - (le ? 550 + D : 266), [b, I] = g.useState(!1), K = r.show_connections_widget_in_master;
|
|
1423
1423
|
Ie({
|
|
1424
1424
|
widgetName: "TrendsWidget",
|
|
1425
|
-
isLoaded:
|
|
1425
|
+
isLoaded: ce
|
|
1426
1426
|
});
|
|
1427
1427
|
const _e = g.useMemo(() => J ? Q.getFilteredBeats({ templates: Uo }) : [], [J]);
|
|
1428
1428
|
g.useEffect(() => {
|
|
1429
1429
|
const H = () => me(window.innerHeight);
|
|
1430
|
-
return window.addEventListener("resize", H), u ||
|
|
1430
|
+
return window.addEventListener("resize", H), u || l().finally(), m || _().finally(), x || k().finally(), () => window.removeEventListener("resize", H);
|
|
1431
1431
|
}, []), g.useEffect(() => {
|
|
1432
1432
|
X && u && (Q.loadBeats().finally(() => ne(!0)), h(V, w.start, w.end).then(() => {
|
|
1433
1433
|
p(
|
|
@@ -1482,7 +1482,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1482
1482
|
}, St = () => {
|
|
1483
1483
|
de(""), o(v.TRENDS_CLICK_ALL_CATEGORIES, W);
|
|
1484
1484
|
};
|
|
1485
|
-
if (!X || !u || !
|
|
1485
|
+
if (!X || !u || !ce || !T)
|
|
1486
1486
|
return /* @__PURE__ */ e(Le, {});
|
|
1487
1487
|
const Fe = y.length === 0 || f.length === 0, be = Xo(O, K, Me);
|
|
1488
1488
|
return /* @__PURE__ */ C(
|
|
@@ -1490,25 +1490,25 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1490
1490
|
{
|
|
1491
1491
|
calendarActions: { onRangeChanged: _t },
|
|
1492
1492
|
dateRange: w,
|
|
1493
|
-
dateRangeVariant:
|
|
1493
|
+
dateRangeVariant: c ? "timeframetabs" : "timeframebuttons",
|
|
1494
1494
|
onAccountsFilterClick: bt,
|
|
1495
1495
|
onBackClick: t,
|
|
1496
1496
|
sx: n,
|
|
1497
1497
|
title: O.title,
|
|
1498
1498
|
children: [
|
|
1499
1499
|
/* @__PURE__ */ C(
|
|
1500
|
-
|
|
1500
|
+
S,
|
|
1501
1501
|
{
|
|
1502
1502
|
sx: {
|
|
1503
|
-
px:
|
|
1503
|
+
px: c ? 0 : 48
|
|
1504
1504
|
},
|
|
1505
1505
|
children: [
|
|
1506
1506
|
/* @__PURE__ */ C(
|
|
1507
|
-
|
|
1507
|
+
S,
|
|
1508
1508
|
{
|
|
1509
1509
|
flexDirection: "row",
|
|
1510
1510
|
justifyContent: "space-between",
|
|
1511
|
-
sx: { px:
|
|
1511
|
+
sx: { px: c ? 16 : 0, py: 16 },
|
|
1512
1512
|
children: [
|
|
1513
1513
|
/* @__PURE__ */ e(
|
|
1514
1514
|
yt,
|
|
@@ -1521,7 +1521,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1521
1521
|
]
|
|
1522
1522
|
}
|
|
1523
1523
|
),
|
|
1524
|
-
/* @__PURE__ */ e(
|
|
1524
|
+
/* @__PURE__ */ e(S, { alignItems: "center", flexDirection: "row", sx: { pb: 8 }, width: "100%", children: /* @__PURE__ */ e(N, { flexGrow: 1, children: se && /* @__PURE__ */ C(Te, { onClick: St, sx: { p: 0, pr: 5 }, children: [
|
|
1525
1525
|
/* @__PURE__ */ e(ao, {}),
|
|
1526
1526
|
O.all_categories
|
|
1527
1527
|
] }) }) }),
|
|
@@ -1536,7 +1536,7 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1536
1536
|
sx: { height: B, maxWidth: 432 }
|
|
1537
1537
|
}
|
|
1538
1538
|
),
|
|
1539
|
-
!Fe && /* @__PURE__ */ C(
|
|
1539
|
+
!Fe && /* @__PURE__ */ C(S, { flexDirection: q ? "row" : "column", gap: q ? 48 : 16, children: [
|
|
1540
1540
|
ee === "Chart" && /* @__PURE__ */ C(wt, { children: [
|
|
1541
1541
|
/* @__PURE__ */ e(N, { sx: { width: q ? "68%" : "100%" }, children: /* @__PURE__ */ e(
|
|
1542
1542
|
jo,
|
|
@@ -1547,8 +1547,8 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1547
1547
|
totals: f
|
|
1548
1548
|
}
|
|
1549
1549
|
) }),
|
|
1550
|
-
/* @__PURE__ */ C(
|
|
1551
|
-
|
|
1550
|
+
/* @__PURE__ */ C(S, { gap: 16, sx: { width: q ? "32%" : "100%" }, children: [
|
|
1551
|
+
le && J && _e.length > 0 && /* @__PURE__ */ e(
|
|
1552
1552
|
Vo,
|
|
1553
1553
|
{
|
|
1554
1554
|
beats: _e,
|
|
@@ -1599,11 +1599,11 @@ const Lo = g.memo(Io), Qe = ({
|
|
|
1599
1599
|
]
|
|
1600
1600
|
}
|
|
1601
1601
|
);
|
|
1602
|
-
},
|
|
1602
|
+
}, ls = A(Zo);
|
|
1603
1603
|
export {
|
|
1604
1604
|
rs as TrendsFullWidget,
|
|
1605
1605
|
is as TrendsMicroWidget,
|
|
1606
1606
|
as as TrendsMiniWidget,
|
|
1607
1607
|
us as TrendsStore,
|
|
1608
|
-
|
|
1608
|
+
ls as TrendsWidget
|
|
1609
1609
|
};
|