@mx-cartographer/experiences 3.7.0-alpha.al1 → 3.7.0-alpha.al10
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/index.es.js +420 -417
- package/dist/index.es.js.map +1 -1
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as t, jsxs as u, Fragment as aA } from "react/jsx-runtime";
|
|
2
|
-
import g, { useMemo as Co, useRef as Gr, useEffect as he, useState as de, createContext as fo, useContext as
|
|
2
|
+
import g, { useMemo as Co, useRef as Gr, useEffect as he, useState as de, createContext as fo, useContext as mo } from "react";
|
|
3
3
|
import { observer as x } from "mobx-react-lite";
|
|
4
4
|
import S from "@mui/material/Box";
|
|
5
5
|
import q from "@mui/material/Divider";
|
|
6
6
|
import oA from "@mui/material/List";
|
|
7
7
|
import nt from "@mui/material/ListSubheader";
|
|
8
8
|
import Ia from "@mui/system/Stack";
|
|
9
|
-
import { AccountsIcon as
|
|
9
|
+
import { AccountsIcon as vo, P as vA, Icon as P, useTokens as SA, Text as y, H2 as $t, CategoryIcon as _e, DialogHeader as po, DialogFooter as yo, Drawer as Eo, Footer as wo, DateRangePicker as Da, H3 as To, H1 as Ee, TextField as Ne, IconWeight as BA, MerchantLogo as He, CategoryIconVariants as Xr, InstitutionLogo as we, THEMES as Oa, createMXTheme as Lt } from "@kyper/mui";
|
|
10
10
|
import Lo from "bowser";
|
|
11
11
|
import { getUnixTime as CA } from "date-fns/getUnixTime";
|
|
12
12
|
import { Honeybadger as xt } from "@honeybadger-io/react";
|
|
@@ -46,7 +46,7 @@ import { selectAll as Mo, interpolateString as Ro, arc as _o } from "d3";
|
|
|
46
46
|
import { useTheme as ze, keyframes as Ho, ThemeProvider as Qr } from "@mui/material/styles";
|
|
47
47
|
import { ResponsiveChartContainer as zo, AreaPlot as qo, LinePlot as Bo, MarkPlot as Ko, BarPlot as ko, ChartsXAxis as Go, ChartsYAxis as Xo, ChartsReferenceLine as Qo, ChartsLegend as Fo, LineChart as Uo } from "@mui/x-charts";
|
|
48
48
|
import { Stack as Ve, Box as re, useTheme as at, Card as Gn, CardContent as Fr, Divider as Mn, Grid as Pa, List as jo } from "@mui/material";
|
|
49
|
-
import { addYears as
|
|
49
|
+
import { addYears as vt } from "date-fns/addYears";
|
|
50
50
|
import { differenceInCalendarDays as Wo } from "date-fns/differenceInCalendarDays";
|
|
51
51
|
import { endOfToday as Qe } from "date-fns/endOfToday";
|
|
52
52
|
import { endOfYear as Na } from "date-fns/endOfYear";
|
|
@@ -95,7 +95,7 @@ import Et from "@mui/icons-material/DeleteOutlined";
|
|
|
95
95
|
import Yn from "@mui/material/Switch";
|
|
96
96
|
import An from "@mui/material/TextField";
|
|
97
97
|
import kt from "@mui/icons-material/Cancel";
|
|
98
|
-
import
|
|
98
|
+
import mn from "@mui/material/Grid";
|
|
99
99
|
import en from "@mui/icons-material/ChevronRight";
|
|
100
100
|
import ss from "@mui/icons-material/HighlightOff";
|
|
101
101
|
import cs from "@mui/icons-material/Search";
|
|
@@ -112,10 +112,10 @@ import { PickersDay as gs } from "@mui/x-date-pickers/PickersDay";
|
|
|
112
112
|
import Cs from "@mui/icons-material/AccessTimeFilled";
|
|
113
113
|
import fs from "@mui/icons-material/MonetizationOn";
|
|
114
114
|
import Ai from "@mui/icons-material/CheckCircle";
|
|
115
|
-
import { isValid as
|
|
115
|
+
import { isValid as ms } from "date-fns/isValid";
|
|
116
116
|
import { getDate as Ct } from "date-fns/getDate";
|
|
117
117
|
import Xe from "@mui/material/Unstable_Grid2";
|
|
118
|
-
import { DatePicker as
|
|
118
|
+
import { DatePicker as vs } from "@mui/x-date-pickers";
|
|
119
119
|
import ei from "@mui/material/Collapse";
|
|
120
120
|
import ps from "@mui/material/Chip";
|
|
121
121
|
import ys from "@mui/icons-material/EditOutlined";
|
|
@@ -181,10 +181,10 @@ const zs = async (A, e, n = "1.0.0", a = "Experiences") => {
|
|
|
181
181
|
if (l?.static && c.push(l.static), l?.dynamic) {
|
|
182
182
|
const d = l.dynamic.indexOf("{"), h = l.dynamic.substring(d + 1, l.dynamic.length - 1), C = Number(l.dynamic.substring(1, d));
|
|
183
183
|
if (g.isValidElement(e[C - 1])) {
|
|
184
|
-
const f = e[C - 1],
|
|
184
|
+
const f = e[C - 1], m = g.cloneElement(f, {
|
|
185
185
|
key: `${h}-${s}`
|
|
186
186
|
});
|
|
187
|
-
c.push(
|
|
187
|
+
c.push(m);
|
|
188
188
|
} else
|
|
189
189
|
c.push(e[C - 1]);
|
|
190
190
|
}
|
|
@@ -814,7 +814,7 @@ const f7 = [
|
|
|
814
814
|
{ id: 5, copy: "frequency_every_quarter" },
|
|
815
815
|
{ id: 6, copy: "frequency_every_other_quarter" },
|
|
816
816
|
{ id: 7, copy: "frequency_every_year" }
|
|
817
|
-
],
|
|
817
|
+
], m7 = {
|
|
818
818
|
ERROR: "ERROR",
|
|
819
819
|
LOADING: "LOADING",
|
|
820
820
|
SUCCESS: "SUCCESS"
|
|
@@ -913,7 +913,7 @@ class Qt {
|
|
|
913
913
|
}
|
|
914
914
|
getGlobalCopy = async (e, n) => this.fetchInstance.post(`${N.LOCALIZED_CONTENT}/${e}`, { translation_key: n }).then((a) => a);
|
|
915
915
|
}
|
|
916
|
-
class
|
|
916
|
+
class v7 {
|
|
917
917
|
fetchInstance;
|
|
918
918
|
constructor(e, n) {
|
|
919
919
|
this.fetchInstance = new XA(e, n);
|
|
@@ -966,7 +966,7 @@ class Fa {
|
|
|
966
966
|
}
|
|
967
967
|
requestWidgetUrl = async (e) => this.fetchInstance.post(N.WIDGET_URLS, e).then((n) => n.widget_url);
|
|
968
968
|
}
|
|
969
|
-
const
|
|
969
|
+
const vn = (A, e) => A.reduce((n, a) => (n[a.guid] = e?.includes(a.guid), n), {}), Ac = (A) => A.reduce((e, n) => {
|
|
970
970
|
const a = Gt[n.account_type], r = {
|
|
971
971
|
accountNumber: n.account_number,
|
|
972
972
|
name: n.name || n.feed_name,
|
|
@@ -987,7 +987,7 @@ const mn = (A, e) => A.reduce((n, a) => (n[a.guid] = e?.includes(a.guid), n), {}
|
|
|
987
987
|
handleClose: d,
|
|
988
988
|
showAccountNumbers: h
|
|
989
989
|
}) => {
|
|
990
|
-
const C = Co(() => Ac(A), [A]), f = A.length < 1,
|
|
990
|
+
const C = Co(() => Ac(A), [A]), f = A.length < 1, m = !!e, v = Object.values(c).every((E) => !!E);
|
|
991
991
|
return /* @__PURE__ */ t(
|
|
992
992
|
bo,
|
|
993
993
|
{
|
|
@@ -997,7 +997,7 @@ const mn = (A, e) => A.reduce((n, a) => (n[a.guid] = e?.includes(a.guid), n), {}
|
|
|
997
997
|
horizontal: "left"
|
|
998
998
|
},
|
|
999
999
|
onClose: d,
|
|
1000
|
-
open:
|
|
1000
|
+
open: m,
|
|
1001
1001
|
sx: { maxHeight: 400, maxWidth: f ? "100%" : 300 },
|
|
1002
1002
|
transformOrigin: {
|
|
1003
1003
|
vertical: "top",
|
|
@@ -1015,9 +1015,9 @@ const mn = (A, e) => A.reduce((n, a) => (n[a.guid] = e?.includes(a.guid), n), {}
|
|
|
1015
1015
|
maxWidth: "100%"
|
|
1016
1016
|
},
|
|
1017
1017
|
children: [
|
|
1018
|
-
/* @__PURE__ */ t(
|
|
1019
|
-
/* @__PURE__ */ t(
|
|
1020
|
-
/* @__PURE__ */ t(
|
|
1018
|
+
/* @__PURE__ */ t(vo, { size: 32 }),
|
|
1019
|
+
/* @__PURE__ */ t(vA, { bold: !0, mt: 12, children: n.zeroStateTitle }),
|
|
1020
|
+
/* @__PURE__ */ t(vA, { mt: 12, children: n.zeroStateDescription }),
|
|
1021
1021
|
/* @__PURE__ */ t(iA, { onClick: o, children: n.zeroStateButton })
|
|
1022
1022
|
]
|
|
1023
1023
|
}
|
|
@@ -1055,13 +1055,13 @@ const mn = (A, e) => A.reduce((n, a) => (n[a.guid] = e?.includes(a.guid), n), {}
|
|
|
1055
1055
|
control: /* @__PURE__ */ t(
|
|
1056
1056
|
Bt,
|
|
1057
1057
|
{
|
|
1058
|
-
checked:
|
|
1059
|
-
"data-ui-test": `checked-${
|
|
1058
|
+
checked: v,
|
|
1059
|
+
"data-ui-test": `checked-${v}`,
|
|
1060
1060
|
disableRipple: !0,
|
|
1061
1061
|
onChange: () => {
|
|
1062
1062
|
const E = {};
|
|
1063
1063
|
Object.keys(c).forEach((L) => {
|
|
1064
|
-
E[L] = !
|
|
1064
|
+
E[L] = !v;
|
|
1065
1065
|
}), l(E);
|
|
1066
1066
|
},
|
|
1067
1067
|
size: "small",
|
|
@@ -1073,7 +1073,7 @@ const mn = (A, e) => A.reduce((n, a) => (n[a.guid] = e?.includes(a.guid), n), {}
|
|
|
1073
1073
|
}
|
|
1074
1074
|
}
|
|
1075
1075
|
),
|
|
1076
|
-
label:
|
|
1076
|
+
label: v ? n.unselectAllAccounts : n.selectAllAccounts
|
|
1077
1077
|
}
|
|
1078
1078
|
) }),
|
|
1079
1079
|
Object.keys(C).map((E) => {
|
|
@@ -1213,14 +1213,14 @@ const ec = (A, e) => {
|
|
|
1213
1213
|
variant: s = "outlined"
|
|
1214
1214
|
}) => {
|
|
1215
1215
|
const { isMobile: c } = jA(), [l, d] = g.useState(null), [h, C] = g.useState(
|
|
1216
|
-
|
|
1216
|
+
vn(A, r)
|
|
1217
1217
|
);
|
|
1218
1218
|
g.useEffect(() => {
|
|
1219
|
-
C(
|
|
1219
|
+
C(vn(A, r));
|
|
1220
1220
|
}, [A, r]);
|
|
1221
|
-
const f = (
|
|
1222
|
-
d(
|
|
1223
|
-
},
|
|
1221
|
+
const f = (v) => {
|
|
1222
|
+
d(v.currentTarget);
|
|
1223
|
+
}, m = () => {
|
|
1224
1224
|
d(null);
|
|
1225
1225
|
};
|
|
1226
1226
|
return /* @__PURE__ */ u(S, { className: "mx-cmn-account-filter", m: 4, sx: { ...o }, children: [
|
|
@@ -1252,22 +1252,22 @@ const ec = (A, e) => {
|
|
|
1252
1252
|
accountFilterButtonEl: l,
|
|
1253
1253
|
accounts: A,
|
|
1254
1254
|
copy: e.accountFilterOptionsCopy,
|
|
1255
|
-
handleClose:
|
|
1256
|
-
onAccountClick: (
|
|
1257
|
-
C({ ...h, [
|
|
1255
|
+
handleClose: m,
|
|
1256
|
+
onAccountClick: (v) => {
|
|
1257
|
+
C({ ...h, [v.guid]: !h[v.guid] });
|
|
1258
1258
|
},
|
|
1259
|
-
onAccountGroupClick: (
|
|
1259
|
+
onAccountGroupClick: (v, E, L) => {
|
|
1260
1260
|
const b = { ...h };
|
|
1261
|
-
E[
|
|
1261
|
+
E[v].forEach((w) => {
|
|
1262
1262
|
b[w.guid] = !L;
|
|
1263
1263
|
}), C(b);
|
|
1264
1264
|
},
|
|
1265
1265
|
onCancelClick: () => {
|
|
1266
|
-
C(
|
|
1266
|
+
C(vn(A, r)), m();
|
|
1267
1267
|
},
|
|
1268
1268
|
onConnectAccountClick: a,
|
|
1269
1269
|
onFilterClick: () => {
|
|
1270
|
-
n(Object.keys(h).filter((
|
|
1270
|
+
n(Object.keys(h).filter((v) => h[v])), m();
|
|
1271
1271
|
},
|
|
1272
1272
|
selectedOptions: h,
|
|
1273
1273
|
setSelectedOptions: C,
|
|
@@ -1400,14 +1400,14 @@ const ec = (A, e) => {
|
|
|
1400
1400
|
width: h,
|
|
1401
1401
|
xAxisLabel: C = ""
|
|
1402
1402
|
}) => {
|
|
1403
|
-
const f = SA(),
|
|
1404
|
-
return /* @__PURE__ */ u("div", { className: `mx-cmn-barchart-bar-column ${
|
|
1403
|
+
const f = SA(), m = ic(f, h), v = l / o * c, E = Math.abs(l) / o * n, L = s === void 0 || s === r ? "primary" : "secondary";
|
|
1404
|
+
return /* @__PURE__ */ u("div", { className: `mx-cmn-barchart-bar-column ${m}`, children: [
|
|
1405
1405
|
/* @__PURE__ */ t("div", { style: { height: c }, children: l >= 0 && /* @__PURE__ */ t(
|
|
1406
1406
|
Ua,
|
|
1407
1407
|
{
|
|
1408
1408
|
ariaLabel: A,
|
|
1409
1409
|
color: a,
|
|
1410
|
-
height:
|
|
1410
|
+
height: v,
|
|
1411
1411
|
index: r,
|
|
1412
1412
|
label: d,
|
|
1413
1413
|
onClick: i,
|
|
@@ -1478,7 +1478,7 @@ const ec = (A, e) => {
|
|
|
1478
1478
|
selectedIndex: c,
|
|
1479
1479
|
valueFormatter: l = (d) => `${d}`
|
|
1480
1480
|
}) => {
|
|
1481
|
-
const d = SA(), h = dc(d), C = a.reduce(cc, []), f = A !== void 0 ? A : C.reduce(oc, 0) / C.length,
|
|
1481
|
+
const d = SA(), h = dc(d), C = a.reduce(cc, []), f = A !== void 0 ? A : C.reduce(oc, 0) / C.length, m = Math.max(...C), v = Math.min(...C), E = C.reduce(sc, 0), L = m >= 0, b = v < 0, w = Wa(L, b, r), I = Wa(b, L, r), D = lc(f, m, v, w || I), O = ($) => c === void 0 || $ === c ? n : `${n}80`, k = () => /* @__PURE__ */ t(
|
|
1482
1482
|
ja,
|
|
1483
1483
|
{
|
|
1484
1484
|
averageLineHeight: D,
|
|
@@ -1631,7 +1631,7 @@ const ec = (A, e) => {
|
|
|
1631
1631
|
}
|
|
1632
1632
|
}), fc = 340, ft = 44;
|
|
1633
1633
|
var Ci = /* @__PURE__ */ ((A) => (A.None = "None", A.Single = "Single", A.Range = "Range", A))(Ci || {});
|
|
1634
|
-
const
|
|
1634
|
+
const mc = ({
|
|
1635
1635
|
copy: A,
|
|
1636
1636
|
beginDate: e = void 0,
|
|
1637
1637
|
endDate: n = void 0,
|
|
@@ -1640,11 +1640,11 @@ const vc = ({
|
|
|
1640
1640
|
selectionType: i = "Single"
|
|
1641
1641
|
/* Single */
|
|
1642
1642
|
}) => {
|
|
1643
|
-
const o = SA(), s =
|
|
1643
|
+
const o = SA(), s = vc(o), [c, l] = g.useState(Z), [d, h] = g.useState(e), [C, f] = g.useState(n);
|
|
1644
1644
|
g.useEffect(() => {
|
|
1645
1645
|
h(e), f(n), e && l(e);
|
|
1646
1646
|
}, [e, n]);
|
|
1647
|
-
const
|
|
1647
|
+
const m = g.useMemo(() => {
|
|
1648
1648
|
const w = Oo({ start: LA(c), end: OA(c) }), I = [];
|
|
1649
1649
|
for (let D = 0; D < w.length; D++) {
|
|
1650
1650
|
const O = w[D], k = Do({ start: O, end: ge(O, 6) }), $ = [];
|
|
@@ -1653,7 +1653,7 @@ const vc = ({
|
|
|
1653
1653
|
I.push($);
|
|
1654
1654
|
}
|
|
1655
1655
|
return I;
|
|
1656
|
-
}, [c]),
|
|
1656
|
+
}, [c]), v = (w) => {
|
|
1657
1657
|
if (i !== "None") {
|
|
1658
1658
|
if (i === "Single") {
|
|
1659
1659
|
h(w), a?.(w);
|
|
@@ -1679,21 +1679,21 @@ const vc = ({
|
|
|
1679
1679
|
onPreviousClick: b
|
|
1680
1680
|
}
|
|
1681
1681
|
),
|
|
1682
|
-
/* @__PURE__ */ t("div", { className: "mx-cmn-calendar-header-row", children:
|
|
1683
|
-
|
|
1682
|
+
/* @__PURE__ */ t("div", { className: "mx-cmn-calendar-header-row", children: m[0].map((w, I) => /* @__PURE__ */ t("div", { className: "mx-cmn-calendar-header-cell", children: /* @__PURE__ */ t(y, { bold: !0, variant: "Small", children: $A(w, "EEEEE") }) }, I)) }),
|
|
1683
|
+
m.map((w, I) => /* @__PURE__ */ t("div", { className: "mx-cmn-calendar-week", children: w.map((D, O) => /* @__PURE__ */ t(
|
|
1684
1684
|
gc,
|
|
1685
1685
|
{
|
|
1686
1686
|
beginDate: d,
|
|
1687
1687
|
date: D,
|
|
1688
1688
|
endDate: C,
|
|
1689
1689
|
isInMonth: xo(D, c),
|
|
1690
|
-
onClick:
|
|
1690
|
+
onClick: v
|
|
1691
1691
|
},
|
|
1692
1692
|
O
|
|
1693
1693
|
)) }, `w-${I}`)),
|
|
1694
1694
|
/* @__PURE__ */ t("div", { className: "mx-cmn-calendar-today-container", children: /* @__PURE__ */ t(iA, { onClick: E, size: "small", variant: "text", children: A.today }) })
|
|
1695
1695
|
] }) });
|
|
1696
|
-
},
|
|
1696
|
+
}, vc = (A) => GA({
|
|
1697
1697
|
width: fc,
|
|
1698
1698
|
"& .MuiPaper-root": {
|
|
1699
1699
|
paddingLeft: 24,
|
|
@@ -1864,7 +1864,7 @@ const vc = ({
|
|
|
1864
1864
|
showMarkLabel: c = !1,
|
|
1865
1865
|
width: l
|
|
1866
1866
|
}) => {
|
|
1867
|
-
const d = ze(), h = n.flat().map((w) => w.x), C = n.flat().map((w) => w.y), f = Math.round(C.reduce((w, I) => I + w, 0) / C.length),
|
|
1867
|
+
const d = ze(), h = n.flat().map((w) => w.x), C = n.flat().map((w) => w.y), f = Math.round(C.reduce((w, I) => I + w, 0) / C.length), m = Math.floor(Math.min(...C) / 100) * 100, v = Math.ceil(Math.max(...C) / 100) * 100, E = m * 0.95, L = v * 2, b = n.map((w, I) => ({
|
|
1868
1868
|
type: i ? "bar" : "line",
|
|
1869
1869
|
curve: "linear",
|
|
1870
1870
|
color: i ? d.palette.chart?.chart6 : e[I] ?? d.palette.primary.main,
|
|
@@ -1892,8 +1892,8 @@ const vc = ({
|
|
|
1892
1892
|
xAxis: [{ data: h, scaleType: i ? "band" : "point" }],
|
|
1893
1893
|
yAxis: [
|
|
1894
1894
|
{
|
|
1895
|
-
min:
|
|
1896
|
-
max:
|
|
1895
|
+
min: m,
|
|
1896
|
+
max: v || 100,
|
|
1897
1897
|
colorMap: o ? {
|
|
1898
1898
|
type: "continuous",
|
|
1899
1899
|
min: E,
|
|
@@ -1991,8 +1991,8 @@ const vc = ({
|
|
|
1991
1991
|
const d = i.current, h = a.current;
|
|
1992
1992
|
if (!d || !h) return;
|
|
1993
1993
|
const C = d.getBoundingClientRect(), f = h.getBoundingClientRect();
|
|
1994
|
-
let
|
|
1995
|
-
|
|
1994
|
+
let m = n.x, v = n.y;
|
|
1995
|
+
m + C.width * 2 > f.right ? m = n.x - C.width : m - C.width < f.left && (m = n.x), v + C.height * 2 > f.bottom && (v = n.y - C.height), s({ x: m, y: v });
|
|
1996
1996
|
})();
|
|
1997
1997
|
}, [n, a]), !e) return null;
|
|
1998
1998
|
const c = e.reduce((l, d) => l + d.y, 0);
|
|
@@ -2107,12 +2107,12 @@ const vc = ({
|
|
|
2107
2107
|
height: o,
|
|
2108
2108
|
width: s
|
|
2109
2109
|
}) => {
|
|
2110
|
-
const c = at(), { isMobile: l } = jA(), d = g.useRef(null), [h, C] = g.useState(null), [f,
|
|
2110
|
+
const c = at(), { isMobile: l } = jA(), d = g.useRef(null), [h, C] = g.useState(null), [f, m] = g.useState({
|
|
2111
2111
|
hoveredSeriesId: null,
|
|
2112
2112
|
hoveredAreaData: null,
|
|
2113
2113
|
isAreaHovered: !1,
|
|
2114
2114
|
cursorPos: { x: 0, y: 0 }
|
|
2115
|
-
}), { hoveredSeriesId:
|
|
2115
|
+
}), { hoveredSeriesId: v, hoveredAreaData: E, isAreaHovered: L, cursorPos: b } = f, w = L && v && E, I = !w, D = [...e, ...r], O = D.flat().map((G) => G.x), k = D.flat().map((G) => G.y), $ = Math.floor(Math.min(...k) / 100) * 100, B = D.reduce((G, pA) => {
|
|
2116
2116
|
const yA = pA.reduce((ce, Le) => ce + Le.y, 0);
|
|
2117
2117
|
return yA > G ? yA : G;
|
|
2118
2118
|
}, 0), R = n.map((G) => et[G]), z = e.map((G, pA) => ({
|
|
@@ -2141,7 +2141,7 @@ const vc = ({
|
|
|
2141
2141
|
{
|
|
2142
2142
|
onMouseMove: (G) => {
|
|
2143
2143
|
const pA = G.currentTarget.getBoundingClientRect();
|
|
2144
|
-
|
|
2144
|
+
m((yA) => ({
|
|
2145
2145
|
...yA,
|
|
2146
2146
|
cursorPos: {
|
|
2147
2147
|
x: G.clientX - pA.left,
|
|
@@ -2166,7 +2166,7 @@ const vc = ({
|
|
|
2166
2166
|
onHighlightChange: (G) => {
|
|
2167
2167
|
const pA = G?.seriesId && rA.find((Le) => Le.id === G.seriesId), yA = pA && G?.dataIndex !== void 0, ce = pA && G?.dataIndex === void 0;
|
|
2168
2168
|
if (yA)
|
|
2169
|
-
|
|
2169
|
+
m({
|
|
2170
2170
|
hoveredSeriesId: String(G.seriesId),
|
|
2171
2171
|
hoveredAreaData: null,
|
|
2172
2172
|
isAreaHovered: !1,
|
|
@@ -2177,14 +2177,14 @@ const vc = ({
|
|
|
2177
2177
|
x: O[fn],
|
|
2178
2178
|
y: Cn
|
|
2179
2179
|
})) ?? [];
|
|
2180
|
-
|
|
2180
|
+
m({
|
|
2181
2181
|
hoveredSeriesId: String(G.seriesId),
|
|
2182
2182
|
hoveredAreaData: Le,
|
|
2183
2183
|
isAreaHovered: !0,
|
|
2184
2184
|
cursorPos: b
|
|
2185
2185
|
});
|
|
2186
2186
|
} else
|
|
2187
|
-
|
|
2187
|
+
m({
|
|
2188
2188
|
hoveredSeriesId: null,
|
|
2189
2189
|
hoveredAreaData: null,
|
|
2190
2190
|
isAreaHovered: !1,
|
|
@@ -2198,10 +2198,10 @@ const vc = ({
|
|
|
2198
2198
|
}
|
|
2199
2199
|
},
|
|
2200
2200
|
slots: {
|
|
2201
|
-
itemContent: (G) => I &&
|
|
2201
|
+
itemContent: (G) => I && v ? /* @__PURE__ */ t(
|
|
2202
2202
|
Dc,
|
|
2203
2203
|
{
|
|
2204
|
-
categoryGuid: sA(
|
|
2204
|
+
categoryGuid: sA(v),
|
|
2205
2205
|
...G
|
|
2206
2206
|
}
|
|
2207
2207
|
) : null
|
|
@@ -2264,7 +2264,7 @@ const vc = ({
|
|
|
2264
2264
|
w && /* @__PURE__ */ t(
|
|
2265
2265
|
Ic,
|
|
2266
2266
|
{
|
|
2267
|
-
categoryGuid: sA(
|
|
2267
|
+
categoryGuid: sA(v),
|
|
2268
2268
|
chartContainerRef: d,
|
|
2269
2269
|
cursorPosition: b,
|
|
2270
2270
|
hoveredAreaData: E
|
|
@@ -2436,7 +2436,7 @@ const vc = ({
|
|
|
2436
2436
|
toolTipContent: i = "",
|
|
2437
2437
|
variant: o = "outlined"
|
|
2438
2438
|
}) => {
|
|
2439
|
-
const s = fA(), c = s.palette.mode === "dark", { isDesktop: l, isMobile: d } = jA(), [h, C] = g.useState(a), [f,
|
|
2439
|
+
const s = fA(), c = s.palette.mode === "dark", { isDesktop: l, isMobile: d } = jA(), [h, C] = g.useState(a), [f, m] = g.useState(n.dateRangePickerCopy.dateRangeThisMonth), [v, E] = g.useState(h), [L, b] = g.useState(!1), [w, I] = g.useState(!0), [D, O] = g.useState(6), k = [
|
|
2440
2440
|
{ label: "3M", value: 3 },
|
|
2441
2441
|
{ label: "6M", value: 6 },
|
|
2442
2442
|
{ label: "9M", value: 9 },
|
|
@@ -2455,16 +2455,16 @@ const vc = ({
|
|
|
2455
2455
|
if (f === n.dateRangePickerCopy.dateRangeThisMonth)
|
|
2456
2456
|
lA[0] = sA ? ye(rA, 1) : YA(rA, 1), lA[1] = OA(sA ? ye(MA, 1) : YA(MA, 1));
|
|
2457
2457
|
else if (f === n.dateRangePickerCopy.dateRangeYTD || f === n.dateRangePickerCopy.dateRangeLastYear)
|
|
2458
|
-
lA[0] = sA ? Ra(Ma(rA), 1) :
|
|
2458
|
+
lA[0] = sA ? Ra(Ma(rA), 1) : vt(Ma(rA), 1), lA[1] = sA ? Ra(Na(rA), 1) : vt(Na(rA), 1);
|
|
2459
2459
|
else {
|
|
2460
2460
|
const G = Wo(MA, rA);
|
|
2461
2461
|
lA[0] = K === "previous" ? ie(rA, G) : ge(rA, G), lA[1] = K === "previous" ? ie(MA, G) : ge(MA, G);
|
|
2462
2462
|
}
|
|
2463
2463
|
C(lA), A.onRangeChanged(lA);
|
|
2464
2464
|
}, R = () => {
|
|
2465
|
-
C(
|
|
2465
|
+
C(v), I(
|
|
2466
2466
|
f === n.dateRangePickerCopy.dateRangeThisMonth || f === n.dateRangePickerCopy.dateRangeLastMonth
|
|
2467
|
-
), A.onRangeChanged(
|
|
2467
|
+
), A.onRangeChanged(v);
|
|
2468
2468
|
}, z = (K) => {
|
|
2469
2469
|
O(K);
|
|
2470
2470
|
};
|
|
@@ -2500,9 +2500,9 @@ const vc = ({
|
|
|
2500
2500
|
children: [
|
|
2501
2501
|
o === "readonly" && /* @__PURE__ */ u(T, { alignItems: "center", direction: "row", gap: 8, children: [
|
|
2502
2502
|
/* @__PURE__ */ t(P, { name: "calendar_month", size: 24 }),
|
|
2503
|
-
/* @__PURE__ */ t(y, { bold: !0, children: j(
|
|
2503
|
+
/* @__PURE__ */ t(y, { bold: !0, children: j(v[0], F.MONTH_DAY) }),
|
|
2504
2504
|
/* @__PURE__ */ t(P, { name: "remove" }),
|
|
2505
|
-
/* @__PURE__ */ t(y, { bold: !0, children: j(
|
|
2505
|
+
/* @__PURE__ */ t(y, { bold: !0, children: j(v[1], F.MONTH_DAY_YEAR) })
|
|
2506
2506
|
] }),
|
|
2507
2507
|
o !== "readonly" && o !== "timeframebuttons" && /* @__PURE__ */ u(
|
|
2508
2508
|
Yo,
|
|
@@ -2617,9 +2617,9 @@ const vc = ({
|
|
|
2617
2617
|
Da,
|
|
2618
2618
|
{
|
|
2619
2619
|
copy: n.dateRangePickerCopy,
|
|
2620
|
-
dateRange:
|
|
2620
|
+
dateRange: v,
|
|
2621
2621
|
onRangeChanged: (K, lA) => {
|
|
2622
|
-
E(K),
|
|
2622
|
+
E(K), m(lA);
|
|
2623
2623
|
},
|
|
2624
2624
|
selectedShortcut: f,
|
|
2625
2625
|
sx: { p: 16 }
|
|
@@ -2644,9 +2644,9 @@ const vc = ({
|
|
|
2644
2644
|
Da,
|
|
2645
2645
|
{
|
|
2646
2646
|
copy: n.dateRangePickerCopy,
|
|
2647
|
-
dateRange:
|
|
2647
|
+
dateRange: v,
|
|
2648
2648
|
onRangeChanged: (K, lA) => {
|
|
2649
|
-
E(K),
|
|
2649
|
+
E(K), m(lA);
|
|
2650
2650
|
},
|
|
2651
2651
|
selectedShortcut: f,
|
|
2652
2652
|
sx: {
|
|
@@ -2778,8 +2778,8 @@ const vc = ({
|
|
|
2778
2778
|
},
|
|
2779
2779
|
children: A
|
|
2780
2780
|
}
|
|
2781
|
-
),
|
|
2782
|
-
|
|
2781
|
+
), mi = g.createContext(null), vi = ({ children: A, availableHeight: e, availableWidth: n }) => /* @__PURE__ */ t(
|
|
2782
|
+
mi.Provider,
|
|
2783
2783
|
{
|
|
2784
2784
|
value: {
|
|
2785
2785
|
availableHeight: e,
|
|
@@ -2793,8 +2793,8 @@ const vc = ({
|
|
|
2793
2793
|
if (!e)
|
|
2794
2794
|
throw new Error(`${A}() must be used within the GlobalDataContext`);
|
|
2795
2795
|
return e;
|
|
2796
|
-
}, DA = () => KA("useAccountStore").globalStore.accountStore, nn = () => KA("useBudgetsStore").globalStore.budgetsStore, ia = () => KA("useCashflowStore").globalStore.cashflowStore, xA = () => KA("useCategoryStore").globalStore.categoryStore, pi = () => KA("useConnectStore").globalStore.connectStore, an = () => KA("useGlobalStore").globalStore,
|
|
2797
|
-
const e = g.useContext(
|
|
2796
|
+
}, DA = () => KA("useAccountStore").globalStore.accountStore, nn = () => KA("useBudgetsStore").globalStore.budgetsStore, ia = () => KA("useCashflowStore").globalStore.cashflowStore, xA = () => KA("useCategoryStore").globalStore.categoryStore, pi = () => KA("useConnectStore").globalStore.connectStore, an = () => KA("useGlobalStore").globalStore, mA = () => KA("useGlobalUiStore").globalStore.globalUiStore, W = () => KA("globalCopyStore").globalStore.copyStore.copy, _c = () => KA("useMerchantStore").globalStore.merchantStore, Hc = () => KA("useNetWorthStore").globalStore.netWorthStore, yi = () => KA("useNotificationStore").globalStore.notificationStore, kA = () => KA("useRecurringActivityStore").globalStore.recurringActivityStore, uA = () => KA("useTransactionStore").globalStore.transactionStore, rn = () => KA("useUserStore").globalStore.userStore, Y = () => ({ onEvent: KA().onEvent }), T7 = () => ({ onPageView: KA().onPageView }), zc = (A = "useWidgetContainerContext") => {
|
|
2797
|
+
const e = g.useContext(mi);
|
|
2798
2798
|
if (!e)
|
|
2799
2799
|
throw new Error(`${A}() must be used within the WidgetContainerContext`);
|
|
2800
2800
|
return e;
|
|
@@ -2858,7 +2858,7 @@ const qe = ({
|
|
|
2858
2858
|
title: o ? /* @__PURE__ */ t(To, { sx: { pb: 4 }, children: o }) : null
|
|
2859
2859
|
}
|
|
2860
2860
|
),
|
|
2861
|
-
/* @__PURE__ */ t(Wr, { ref: s, sx: { p: 0 }, children: /* @__PURE__ */ t(
|
|
2861
|
+
/* @__PURE__ */ t(Wr, { ref: s, sx: { p: 0 }, children: /* @__PURE__ */ t(vi, { availableHeight: c, availableWidth: l, children: e }) })
|
|
2862
2862
|
] });
|
|
2863
2863
|
}, Bc = {
|
|
2864
2864
|
back_arrow_button: "Back to Dashboard"
|
|
@@ -2876,8 +2876,8 @@ const qe = ({
|
|
|
2876
2876
|
sx: d = {},
|
|
2877
2877
|
title: h = ""
|
|
2878
2878
|
}) => {
|
|
2879
|
-
const [C, { height: f, width:
|
|
2880
|
-
c && (c(),
|
|
2879
|
+
const [C, { height: f, width: m }] = Ei(), { onEvent: v } = Y(), { isDesktop: E, isMobile: L, isTablet: b } = jA(), { displayedDateRange: w, selectedAccountGuids: I, setSelectedAccountGuids: D } = mA(), { common: O } = W(), k = () => {
|
|
2880
|
+
c && (c(), v(J.WIDGET_BACK_CLICK));
|
|
2881
2881
|
}, $ = {
|
|
2882
2882
|
accountFilterOptionsCopy: {
|
|
2883
2883
|
accountTypeAccounts: "_1{accountType} accounts",
|
|
@@ -3017,7 +3017,7 @@ const qe = ({
|
|
|
3017
3017
|
}
|
|
3018
3018
|
)
|
|
3019
3019
|
] }),
|
|
3020
|
-
/* @__PURE__ */ t(Wr, { ref: C, sx: { p: 0 }, children: /* @__PURE__ */ t(
|
|
3020
|
+
/* @__PURE__ */ t(Wr, { ref: C, sx: { p: 0 }, children: /* @__PURE__ */ t(vi, { availableHeight: f, availableWidth: m, children: a }) })
|
|
3021
3021
|
]
|
|
3022
3022
|
}
|
|
3023
3023
|
);
|
|
@@ -3040,7 +3040,7 @@ const qe = ({
|
|
|
3040
3040
|
setHasValidInput: d,
|
|
3041
3041
|
...h
|
|
3042
3042
|
}) => {
|
|
3043
|
-
const [C, f] = g.useState(""),
|
|
3043
|
+
const [C, f] = g.useState(""), m = SA(), v = kc(m), E = /^[0-9]*$/, L = /^(\d)*(\,)?([0-9]{1,2})?$/, b = /^(\d)*(\.)?([0-9]{1,2})?$/;
|
|
3044
3044
|
let w;
|
|
3045
3045
|
const I = g.useRef(Jo());
|
|
3046
3046
|
if (A)
|
|
@@ -3074,11 +3074,11 @@ const qe = ({
|
|
|
3074
3074
|
Ne,
|
|
3075
3075
|
{
|
|
3076
3076
|
InputProps: {
|
|
3077
|
-
endAdornment: Me().includes("fr-ca") ? /* @__PURE__ */ t(
|
|
3078
|
-
startAdornment: Me().includes("fr-ca") ? void 0 : /* @__PURE__ */ t(
|
|
3077
|
+
endAdornment: Me().includes("fr-ca") ? /* @__PURE__ */ t(vA, { children: "$" }) : void 0,
|
|
3078
|
+
startAdornment: Me().includes("fr-ca") ? void 0 : /* @__PURE__ */ t(vA, { children: "$" })
|
|
3079
3079
|
},
|
|
3080
3080
|
"aria-label": e || r.enter_amount,
|
|
3081
|
-
className: `mx-cmn-currency-input ${
|
|
3081
|
+
className: `mx-cmn-currency-input ${v}`,
|
|
3082
3082
|
error: !!C,
|
|
3083
3083
|
helperText: C,
|
|
3084
3084
|
inputMode: A ? "decimal" : "numeric",
|
|
@@ -3411,24 +3411,24 @@ const ot = () => {
|
|
|
3411
3411
|
/* @__PURE__ */ t(_A, { amount: A, bold: !0, sx: { fontSize: 12 } })
|
|
3412
3412
|
] });
|
|
3413
3413
|
}, jc = ({ onAddIncomeClick: A }) => {
|
|
3414
|
-
const e = fA(), { availableWidth: n } = bt(), { cashAccounts: a, cashBalance: r } = DA(), { selectedAccountGuids: i } =
|
|
3414
|
+
const e = fA(), { availableWidth: n } = bt(), { cashAccounts: a, cashBalance: r } = DA(), { selectedAccountGuids: i } = mA(), { cashflow: o } = W(), { userProfile: s } = rn(), {
|
|
3415
3415
|
daysUntilNextIncome: c,
|
|
3416
3416
|
expensesTilNextIncome: l,
|
|
3417
3417
|
selectedCashAccounts: d,
|
|
3418
3418
|
setNextIncome: h,
|
|
3419
3419
|
setSelectedCashAccounts: C,
|
|
3420
3420
|
setUpcomingExpenses: f
|
|
3421
|
-
} = ot(), { nextIncomeActivity:
|
|
3421
|
+
} = ot(), { nextIncomeActivity: m, upcomingExpenses: v } = kA();
|
|
3422
3422
|
g.useEffect(() => {
|
|
3423
3423
|
C(
|
|
3424
3424
|
a.filter((I) => i.includes(I.guid))
|
|
3425
3425
|
);
|
|
3426
3426
|
}, [a, i]), g.useEffect(() => {
|
|
3427
|
-
|
|
3428
|
-
}, [
|
|
3427
|
+
m && h(m), f(v);
|
|
3428
|
+
}, [m, v]);
|
|
3429
3429
|
const E = g.useMemo(
|
|
3430
3430
|
() => a.filter((I) => i.includes(I.guid)).reduce((I, D) => I + (D?.balance || 0), 0),
|
|
3431
|
-
[i,
|
|
3431
|
+
[i, v]
|
|
3432
3432
|
), L = g.useMemo(
|
|
3433
3433
|
() => l.filter((I) => i.includes(I.accountGuid || "")).reduce((I, D) => I + D.amount, 0),
|
|
3434
3434
|
[i, l]
|
|
@@ -3447,7 +3447,7 @@ const ot = () => {
|
|
|
3447
3447
|
children: [
|
|
3448
3448
|
/* @__PURE__ */ u(T, { pb: 14, pt: 12, children: [
|
|
3449
3449
|
/* @__PURE__ */ t(_A, { amount: E, variant: "H2" }),
|
|
3450
|
-
/* @__PURE__ */ t(
|
|
3450
|
+
/* @__PURE__ */ t(vA, { variant: "XSmall", whiteSpace: "nowrap", children: H(
|
|
3451
3451
|
o.total_cash_accounts,
|
|
3452
3452
|
d.length
|
|
3453
3453
|
) })
|
|
@@ -3455,19 +3455,19 @@ const ot = () => {
|
|
|
3455
3455
|
/* @__PURE__ */ t(T, { pt: 18, children: /* @__PURE__ */ t(P, { name: "remove" }) }),
|
|
3456
3456
|
/* @__PURE__ */ u(T, { pb: 14, pt: 12, children: [
|
|
3457
3457
|
/* @__PURE__ */ t(_A, { amount: L, variant: "H2" }),
|
|
3458
|
-
/* @__PURE__ */ t(
|
|
3458
|
+
/* @__PURE__ */ t(vA, { variant: "XSmall", whiteSpace: "nowrap", children: H(o.expenses_due, l.length) })
|
|
3459
3459
|
] }),
|
|
3460
3460
|
/* @__PURE__ */ t(T, { pt: 18, children: /* @__PURE__ */ t(P, { name: "equals" }) }),
|
|
3461
3461
|
/* @__PURE__ */ u(T, { pb: 14, pr: 24, pt: 12, children: [
|
|
3462
3462
|
/* @__PURE__ */ t(_A, { amount: b, variant: "H2" }),
|
|
3463
3463
|
/* @__PURE__ */ u(T, { alignItems: "center", direction: "row", gap: 8, children: [
|
|
3464
|
-
/* @__PURE__ */ t(
|
|
3464
|
+
/* @__PURE__ */ t(vA, { variant: "XSmall", whiteSpace: "nowrap", children: o.available_to_spend }),
|
|
3465
3465
|
/* @__PURE__ */ t(jt, { body: o.tooltip_body, title: o.tooltip_title })
|
|
3466
3466
|
] })
|
|
3467
3467
|
] }),
|
|
3468
3468
|
/* @__PURE__ */ t(T, { borderLeft: `1px solid ${e.palette.border.light}`, pb: 12, pl: 24, pt: 12, children: w ? /* @__PURE__ */ u(aA, { children: [
|
|
3469
3469
|
/* @__PURE__ */ t(y, { variant: "H2", children: H(o.days, c) }),
|
|
3470
|
-
/* @__PURE__ */ t(
|
|
3470
|
+
/* @__PURE__ */ t(vA, { variant: "XSmall", whiteSpace: "nowrap", children: o.next_paycheck })
|
|
3471
3471
|
] }) : /* @__PURE__ */ t(
|
|
3472
3472
|
iA,
|
|
3473
3473
|
{
|
|
@@ -4366,10 +4366,10 @@ const WA = () => {
|
|
|
4366
4366
|
}, fl = (A) => {
|
|
4367
4367
|
const e = Li(A);
|
|
4368
4368
|
return Ge(e, 1);
|
|
4369
|
-
},
|
|
4369
|
+
}, ml = (A) => vt(A, 1), mt = (A) => {
|
|
4370
4370
|
const e = NA(A);
|
|
4371
4371
|
return new Date(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate());
|
|
4372
|
-
}, sn = (A) => j(NA(A), F.DAY_OF_WEEK_MONTH_DAY), tr = 65, nr = 34,
|
|
4372
|
+
}, sn = (A) => j(NA(A), F.DAY_OF_WEEK_MONTH_DAY), tr = 65, nr = 34, vl = ({
|
|
4373
4373
|
bgcolor: A,
|
|
4374
4374
|
height: e = "calc(100dvh - 36px)",
|
|
4375
4375
|
loader: n = /* @__PURE__ */ t(Ce, { label: "Loading", size: 40 }),
|
|
@@ -4389,25 +4389,25 @@ const WA = () => {
|
|
|
4389
4389
|
account_guid: L?.account_guid,
|
|
4390
4390
|
transaction_guid: E
|
|
4391
4391
|
}), a?.(E);
|
|
4392
|
-
},
|
|
4392
|
+
}, m = g.useRef(null), v = Yr({
|
|
4393
4393
|
count: l.length,
|
|
4394
|
-
getScrollElement: () =>
|
|
4394
|
+
getScrollElement: () => m.current,
|
|
4395
4395
|
estimateSize: (E) => tr + (Ar(E, l) ? nr : 0),
|
|
4396
4396
|
overscan: 5
|
|
4397
4397
|
});
|
|
4398
|
-
return g.useEffect(() =>
|
|
4398
|
+
return g.useEffect(() => v.measure(), [l]), g.useEffect(() => d(r), [r]), /* @__PURE__ */ t(oA, { children: /* @__PURE__ */ t(S, { height: e, overflow: "auto", ref: m, width: o, children: /* @__PURE__ */ u(
|
|
4399
4399
|
S,
|
|
4400
4400
|
{
|
|
4401
4401
|
height: (
|
|
4402
4402
|
// set the height to auto when there are no transactions so the zero state isn't set to 0
|
|
4403
|
-
|
|
4403
|
+
v.getVirtualItems().length === 0 ? "auto" : v.getTotalSize()
|
|
4404
4404
|
),
|
|
4405
4405
|
position: "relative",
|
|
4406
4406
|
width: "100%",
|
|
4407
4407
|
children: [
|
|
4408
4408
|
(c || i) && n,
|
|
4409
|
-
!c && !i &&
|
|
4410
|
-
!c && !i &&
|
|
4409
|
+
!c && !i && v.getVirtualItems().length === 0 && s,
|
|
4410
|
+
!c && !i && v.getVirtualItems().length > 0 && v.getVirtualItems().map((E) => {
|
|
4411
4411
|
const L = l[E.index], b = Ar(E.index, l), w = hl(E.index, l), I = tr + (b ? nr : 0);
|
|
4412
4412
|
return /* @__PURE__ */ u(
|
|
4413
4413
|
S,
|
|
@@ -4430,7 +4430,7 @@ const WA = () => {
|
|
|
4430
4430
|
]
|
|
4431
4431
|
}
|
|
4432
4432
|
) }) });
|
|
4433
|
-
}, It = x(
|
|
4433
|
+
}, It = x(vl), pl = (A) => /* @__PURE__ */ u(y, { tabIndex: A.tabIndex, variant: "Small", children: [
|
|
4434
4434
|
`${A.row.account}`,
|
|
4435
4435
|
A.row.number && ` | ${A.row.number}`
|
|
4436
4436
|
] }), yl = (A) => {
|
|
@@ -4722,7 +4722,7 @@ const Il = ({
|
|
|
4722
4722
|
showSelected: o,
|
|
4723
4723
|
unselectable: s,
|
|
4724
4724
|
unselectableText: c
|
|
4725
|
-
} = Fe(), { categories: l } = W(), { onEvent: d } = Y(), [h, C] = g.useState(!1), [f,
|
|
4725
|
+
} = Fe(), { categories: l } = W(), { onEvent: d } = Y(), [h, C] = g.useState(!1), [f, m] = g.useState(!1), v = !!e.revision, E = e.guid === a, L = !s.some((w) => w === e.guid);
|
|
4726
4726
|
return /* @__PURE__ */ u(
|
|
4727
4727
|
U,
|
|
4728
4728
|
{
|
|
@@ -4753,7 +4753,7 @@ const Il = ({
|
|
|
4753
4753
|
]
|
|
4754
4754
|
}
|
|
4755
4755
|
),
|
|
4756
|
-
|
|
4756
|
+
v && /* @__PURE__ */ u(S, { className: "mx-cat-subcategory-edit-container", sx: { marginRight: 24 }, children: [
|
|
4757
4757
|
/* @__PURE__ */ t(
|
|
4758
4758
|
HA,
|
|
4759
4759
|
{
|
|
@@ -4770,7 +4770,7 @@ const Il = ({
|
|
|
4770
4770
|
"aria-label": H(l.delete_subcategory_aria, e.name),
|
|
4771
4771
|
edge: "end",
|
|
4772
4772
|
onClick: () => {
|
|
4773
|
-
|
|
4773
|
+
m(!0), i(!0), d(ne.ON_SUBCATEGORY_DELETE_CLICK);
|
|
4774
4774
|
},
|
|
4775
4775
|
children: /* @__PURE__ */ t(Et, { color: "secondary" })
|
|
4776
4776
|
}
|
|
@@ -4780,7 +4780,7 @@ const Il = ({
|
|
|
4780
4780
|
Ml,
|
|
4781
4781
|
{
|
|
4782
4782
|
parentCategory: A,
|
|
4783
|
-
setShowDelete:
|
|
4783
|
+
setShowDelete: m,
|
|
4784
4784
|
showDelete: f,
|
|
4785
4785
|
subCategory: e
|
|
4786
4786
|
}
|
|
@@ -4892,15 +4892,15 @@ const Il = ({
|
|
|
4892
4892
|
setSearchValue: h,
|
|
4893
4893
|
setSelectedGuid: C,
|
|
4894
4894
|
setShowSelected: f,
|
|
4895
|
-
setUnselectable:
|
|
4896
|
-
setUnselectableText:
|
|
4895
|
+
setUnselectable: m,
|
|
4896
|
+
setUnselectableText: v
|
|
4897
4897
|
} = Fe();
|
|
4898
4898
|
return g.useEffect(() => {
|
|
4899
4899
|
e && d(e);
|
|
4900
4900
|
}), g.useEffect(() => {
|
|
4901
4901
|
o.length || s();
|
|
4902
4902
|
}, []), g.useEffect(() => {
|
|
4903
|
-
A && C(A), f(n),
|
|
4903
|
+
A && C(A), f(n), m(a), v(r);
|
|
4904
4904
|
}, [A, n, a, r]), /* @__PURE__ */ u("div", { className: `mx-cat-category-selector ${i}`, children: [
|
|
4905
4905
|
/* @__PURE__ */ t(
|
|
4906
4906
|
on,
|
|
@@ -5097,10 +5097,10 @@ const Si = ({ transaction: A }) => {
|
|
|
5097
5097
|
});
|
|
5098
5098
|
} else
|
|
5099
5099
|
h(E);
|
|
5100
|
-
|
|
5101
|
-
},
|
|
5100
|
+
m();
|
|
5101
|
+
}, m = () => {
|
|
5102
5102
|
l(!1), i(!1);
|
|
5103
|
-
},
|
|
5103
|
+
}, v = g.useMemo(
|
|
5104
5104
|
() => a.find((E) => E.guid === d),
|
|
5105
5105
|
[d]
|
|
5106
5106
|
);
|
|
@@ -5137,7 +5137,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5137
5137
|
ga,
|
|
5138
5138
|
{
|
|
5139
5139
|
initialSelected: A.category_guid,
|
|
5140
|
-
onClose:
|
|
5140
|
+
onClose: m,
|
|
5141
5141
|
onSelect: f,
|
|
5142
5142
|
showDrawer: c,
|
|
5143
5143
|
title: s.actions_select_a_category
|
|
@@ -5161,7 +5161,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5161
5161
|
children: /* @__PURE__ */ t(y, { children: H(
|
|
5162
5162
|
s.actions_all_past_and_future,
|
|
5163
5163
|
A.description,
|
|
5164
|
-
|
|
5164
|
+
v?.name
|
|
5165
5165
|
) })
|
|
5166
5166
|
}
|
|
5167
5167
|
)
|
|
@@ -5208,7 +5208,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5208
5208
|
secondaryText: i.cancel_button,
|
|
5209
5209
|
title: o.date_edit_title,
|
|
5210
5210
|
children: /* @__PURE__ */ t(T, { alignItems: "center", mt: e.Spacing.XXLarge, children: /* @__PURE__ */ t(
|
|
5211
|
-
|
|
5211
|
+
mc,
|
|
5212
5212
|
{
|
|
5213
5213
|
beginDate: NA(l),
|
|
5214
5214
|
copy: {
|
|
@@ -5460,8 +5460,8 @@ const Si = ({ transaction: A }) => {
|
|
|
5460
5460
|
onUpdateAmount: a,
|
|
5461
5461
|
split: r
|
|
5462
5462
|
}) => {
|
|
5463
|
-
const i = SA(), { onEvent: o } = Y(), { transactions: s } = W(), [c, l] = g.useState(`${r.amount}`), [d, h] = g.useState(!1), C = A === 0, f = (
|
|
5464
|
-
isNaN(Number(
|
|
5463
|
+
const i = SA(), { onEvent: o } = Y(), { transactions: s } = W(), [c, l] = g.useState(`${r.amount}`), [d, h] = g.useState(!1), C = A === 0, f = (m) => {
|
|
5464
|
+
isNaN(Number(m)) || (l(m), a(A, Number(m)));
|
|
5465
5465
|
};
|
|
5466
5466
|
return /* @__PURE__ */ u(
|
|
5467
5467
|
S,
|
|
@@ -5471,8 +5471,8 @@ const Si = ({ transaction: A }) => {
|
|
|
5471
5471
|
pb: i.Spacing.Tiny,
|
|
5472
5472
|
px: i.Spacing.XSmall,
|
|
5473
5473
|
children: [
|
|
5474
|
-
/* @__PURE__ */ u(
|
|
5475
|
-
/* @__PURE__ */ t(
|
|
5474
|
+
/* @__PURE__ */ u(mn, { alignItems: C ? "center" : "start", container: !0, children: [
|
|
5475
|
+
/* @__PURE__ */ t(mn, { item: !0, xs: 7, children: /* @__PURE__ */ u(T, { alignItems: "start", children: [
|
|
5476
5476
|
/* @__PURE__ */ t(
|
|
5477
5477
|
iA,
|
|
5478
5478
|
{
|
|
@@ -5497,7 +5497,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5497
5497
|
}
|
|
5498
5498
|
) })
|
|
5499
5499
|
] }) }),
|
|
5500
|
-
/* @__PURE__ */ t(
|
|
5500
|
+
/* @__PURE__ */ t(mn, { item: !0, xs: 5, children: C ? /* @__PURE__ */ t("div", { className: "mx-txn-split-manager-row-top-container", children: /* @__PURE__ */ t(y, { children: X(r.amount, "0,0.00") }) }) : /* @__PURE__ */ u(T, { alignItems: "start", children: [
|
|
5501
5501
|
/* @__PURE__ */ u(T, { alignItems: "start", direction: "row", gap: i.Spacing.XSmall, children: [
|
|
5502
5502
|
/* @__PURE__ */ t(
|
|
5503
5503
|
oa,
|
|
@@ -5544,8 +5544,8 @@ const Si = ({ transaction: A }) => {
|
|
|
5544
5544
|
{
|
|
5545
5545
|
initialSelected: r.category_guid,
|
|
5546
5546
|
onClose: () => h(!1),
|
|
5547
|
-
onSelect: (
|
|
5548
|
-
n(A,
|
|
5547
|
+
onSelect: (m) => {
|
|
5548
|
+
n(A, m), h(!1);
|
|
5549
5549
|
},
|
|
5550
5550
|
showDrawer: d,
|
|
5551
5551
|
title: s.actions_select_a_category
|
|
@@ -5622,40 +5622,40 @@ const Si = ({ transaction: A }) => {
|
|
|
5622
5622
|
has_been_split: !1,
|
|
5623
5623
|
parent_guid: A.guid,
|
|
5624
5624
|
top_level_category_guid: void 0
|
|
5625
|
-
}, [d, h] = g.useState(!1), [C, f] = g.useState(!1), [
|
|
5626
|
-
const B = [...
|
|
5627
|
-
B.push({ ...l }), B[0].amount -= 1,
|
|
5625
|
+
}, [d, h] = g.useState(!1), [C, f] = g.useState(!1), [m, v] = g.useState([]), E = () => {
|
|
5626
|
+
const B = [...m];
|
|
5627
|
+
B.push({ ...l }), B[0].amount -= 1, v(B);
|
|
5628
5628
|
}, L = (B) => {
|
|
5629
5629
|
if (B > 0) {
|
|
5630
|
-
const R =
|
|
5631
|
-
z.splice(B, 1), z[0].amount += R.amount,
|
|
5630
|
+
const R = m[B], z = [...m];
|
|
5631
|
+
z.splice(B, 1), z[0].amount += R.amount, v(z);
|
|
5632
5632
|
}
|
|
5633
5633
|
}, b = (B, R) => {
|
|
5634
|
-
const z = [...
|
|
5634
|
+
const z = [...m];
|
|
5635
5635
|
z[B].amount = R, z[0].amount = A.amount - z.reduce(
|
|
5636
5636
|
(K, lA, rA) => K + (rA !== 0 ? lA.amount : 0),
|
|
5637
5637
|
0
|
|
5638
|
-
),
|
|
5638
|
+
), v(z);
|
|
5639
5639
|
}, w = (B, R) => {
|
|
5640
|
-
const z = [...
|
|
5640
|
+
const z = [...m], K = s.find((lA) => lA.guid === R);
|
|
5641
5641
|
K && (z[B] = {
|
|
5642
5642
|
...z[B],
|
|
5643
5643
|
category_guid: R,
|
|
5644
5644
|
category: K.name,
|
|
5645
5645
|
top_level_category_guid: K.parent_guid || R
|
|
5646
|
-
},
|
|
5646
|
+
}, v(z));
|
|
5647
5647
|
}, I = () => {
|
|
5648
5648
|
if (A.parent_guid || A.has_been_split) {
|
|
5649
5649
|
f(!0);
|
|
5650
5650
|
return;
|
|
5651
5651
|
}
|
|
5652
|
-
|
|
5652
|
+
v([{ ...c }, { ...l }]), e(J.TRANSACTION_DETAILS_CLICK_SPLIT, {
|
|
5653
5653
|
transaction_guid: A.guid
|
|
5654
5654
|
}), h(!0);
|
|
5655
5655
|
}, D = async () => {
|
|
5656
|
-
e(M.ON_TRANSACTION_SPLIT_SAVE_CLICK), await n({ ...A, has_been_split: !0 },
|
|
5656
|
+
e(M.ON_TRANSACTION_SPLIT_SAVE_CLICK), await n({ ...A, has_been_split: !0 }, m), h(!1);
|
|
5657
5657
|
}, O = async () => {
|
|
5658
|
-
e(M.ON_TRANSACTION_SPLIT_CANCEL_CLICK),
|
|
5658
|
+
e(M.ON_TRANSACTION_SPLIT_CANCEL_CLICK), v([{ ...c }, { ...l }]), h(!1);
|
|
5659
5659
|
}, k = async () => {
|
|
5660
5660
|
e(J.TRANSACTION_DETAILS_CLICK_UNSPLIT, {
|
|
5661
5661
|
transaction_guid: A.guid
|
|
@@ -5663,9 +5663,9 @@ const Si = ({ transaction: A }) => {
|
|
|
5663
5663
|
const B = A.parent_guid ?? A.guid;
|
|
5664
5664
|
await a(B);
|
|
5665
5665
|
}, $ = g.useMemo(() => {
|
|
5666
|
-
const B =
|
|
5666
|
+
const B = m.some((z) => !z.category_guid), R = m.some((z) => z.amount <= 0);
|
|
5667
5667
|
return B || R;
|
|
5668
|
-
}, [
|
|
5668
|
+
}, [m]);
|
|
5669
5669
|
return /* @__PURE__ */ u(g.Fragment, { children: [
|
|
5670
5670
|
A && /* @__PURE__ */ t(U, { disableGutters: !0, disablePadding: !0, children: /* @__PURE__ */ u(dA, { onClick: I, children: [
|
|
5671
5671
|
/* @__PURE__ */ t(PA, { children: /* @__PURE__ */ t(Te, { sx: { bgcolor: "border.light" }, variant: "rounded", children: /* @__PURE__ */ t(P, { name: "call_split", sx: { color: "text.primary" }, weight: BA.Dark }) }) }),
|
|
@@ -5698,7 +5698,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5698
5698
|
onCategoryChanged: w,
|
|
5699
5699
|
onDeleteSplit: L,
|
|
5700
5700
|
onUpdateAmount: b,
|
|
5701
|
-
splits:
|
|
5701
|
+
splits: m,
|
|
5702
5702
|
transaction: A
|
|
5703
5703
|
}
|
|
5704
5704
|
)
|
|
@@ -5784,7 +5784,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5784
5784
|
value: o
|
|
5785
5785
|
}
|
|
5786
5786
|
),
|
|
5787
|
-
/* @__PURE__ */ t(
|
|
5787
|
+
/* @__PURE__ */ t(vA, { id: "add-tag-error", sx: { color: "error.main" }, variant: "ParagraphSmall", children: c })
|
|
5788
5788
|
]
|
|
5789
5789
|
}
|
|
5790
5790
|
)
|
|
@@ -5814,13 +5814,13 @@ const Si = ({ transaction: A }) => {
|
|
|
5814
5814
|
}
|
|
5815
5815
|
) });
|
|
5816
5816
|
}, nd = ({ onTagChecked: A, selectedTags: e, tag: n }) => {
|
|
5817
|
-
const { onEvent: a } = Y(), { removeTag: r, updateTag: i } = uA(), { common: o, transactions: s } = W(), [c, l] = g.useState(!1), [d, h] = g.useState(!1), [C, f] = g.useState(""), [
|
|
5817
|
+
const { onEvent: a } = Y(), { removeTag: r, updateTag: i } = uA(), { common: o, transactions: s } = W(), [c, l] = g.useState(!1), [d, h] = g.useState(!1), [C, f] = g.useState(""), [m, v] = g.useState(""), E = async () => {
|
|
5818
5818
|
a(M.ON_TRANSACTION_TAGS_TAG_EDIT_SAVED), n && await i({ ...n, name: C }), l(!1);
|
|
5819
5819
|
}, L = async () => {
|
|
5820
5820
|
a(M.ON_TRANSACTION_TAGS_TAG_DELETED), await r(n.guid), h(!1);
|
|
5821
5821
|
};
|
|
5822
5822
|
g.useEffect(() => {
|
|
5823
|
-
|
|
5823
|
+
v(C.length > 40 ? s.tags_error_name_must_be_40_chars : "");
|
|
5824
5824
|
}, [C]);
|
|
5825
5825
|
const b = () => {
|
|
5826
5826
|
a(M.ON_TRANSACTION_TAGS_TAG_EDIT_CLICK), f(n.name), l(!0);
|
|
@@ -5878,7 +5878,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5878
5878
|
/* @__PURE__ */ t(
|
|
5879
5879
|
Ne,
|
|
5880
5880
|
{
|
|
5881
|
-
"aria-describedby":
|
|
5881
|
+
"aria-describedby": m ? "update-tag-error" : void 0,
|
|
5882
5882
|
"aria-label": s.tags_update_the_tag_name,
|
|
5883
5883
|
name: "update-tag",
|
|
5884
5884
|
onChange: (I) => f(I.target.value),
|
|
@@ -5887,7 +5887,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5887
5887
|
value: C
|
|
5888
5888
|
}
|
|
5889
5889
|
),
|
|
5890
|
-
/* @__PURE__ */ t(
|
|
5890
|
+
/* @__PURE__ */ t(vA, { id: "update-tag-error", sx: { color: "error.main" }, variant: "ParagraphSmall", children: m })
|
|
5891
5891
|
]
|
|
5892
5892
|
}
|
|
5893
5893
|
),
|
|
@@ -5930,18 +5930,18 @@ const Si = ({ transaction: A }) => {
|
|
|
5930
5930
|
g.useEffect(() => {
|
|
5931
5931
|
h(A.tags);
|
|
5932
5932
|
}, [c, A]);
|
|
5933
|
-
const C = (
|
|
5934
|
-
const E = [...d], L = d.indexOf(
|
|
5935
|
-
L >= 0 ? E.splice(L, 1) : E.push(
|
|
5933
|
+
const C = (v) => {
|
|
5934
|
+
const E = [...d], L = d.indexOf(v);
|
|
5935
|
+
L >= 0 ? E.splice(L, 1) : E.push(v), h(E);
|
|
5936
5936
|
}, f = async () => {
|
|
5937
5937
|
if (A.is_manual && !A.guid) {
|
|
5938
5938
|
s({ ...A, tags: d }), l(!1);
|
|
5939
5939
|
return;
|
|
5940
5940
|
}
|
|
5941
5941
|
await a(d, A.guid), await r({ ...A }), e(J.TRANSACTION_DETAILS_CLICK_TAGS, { transaction_guid: A.guid }), l(!1);
|
|
5942
|
-
},
|
|
5942
|
+
}, m = g.useMemo(
|
|
5943
5943
|
() => A.tags.map(
|
|
5944
|
-
(
|
|
5944
|
+
(v, E, L) => `${n.find((b) => b.guid === v)?.name}${E < L.length - 1 ? " / " : ""}`
|
|
5945
5945
|
),
|
|
5946
5946
|
[n, A]
|
|
5947
5947
|
);
|
|
@@ -5959,7 +5959,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5959
5959
|
{
|
|
5960
5960
|
primary: o.tags_title,
|
|
5961
5961
|
primaryTypographyProps: { variant: "XSmall" },
|
|
5962
|
-
secondary: /* @__PURE__ */ t(y, { bold: !0, variant: "Body", children: A.tags?.length > 0 ?
|
|
5962
|
+
secondary: /* @__PURE__ */ t(y, { bold: !0, variant: "Body", children: A.tags?.length > 0 ? m : o.tags_desc })
|
|
5963
5963
|
}
|
|
5964
5964
|
),
|
|
5965
5965
|
/* @__PURE__ */ t(oe, { children: /* @__PURE__ */ t(P, { name: "chevron_right", weight: BA.Dark }) })
|
|
@@ -6191,9 +6191,9 @@ const Si = ({ transaction: A }) => {
|
|
|
6191
6191
|
}
|
|
6192
6192
|
);
|
|
6193
6193
|
var Pe = /* @__PURE__ */ ((A) => (A.Loading = "loading", A.Error = "error", A))(Pe || {}), QA = /* @__PURE__ */ ((A) => (A.Currency = "currency", A.Date = "date", A.Input = "input", A.Select = "select", A))(QA || {});
|
|
6194
|
-
const ir = "connect_widget", or = "connections_widget",
|
|
6194
|
+
const ir = "connect_widget", or = "connections_widget", md = {
|
|
6195
6195
|
close_drawer_aria: "Close drawer"
|
|
6196
|
-
},
|
|
6196
|
+
}, vd = ({
|
|
6197
6197
|
loadWidgetProps: A,
|
|
6198
6198
|
onClose: e,
|
|
6199
6199
|
showConnectWidget: n,
|
|
@@ -6225,7 +6225,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6225
6225
|
}), [n]), /* @__PURE__ */ t(
|
|
6226
6226
|
hA,
|
|
6227
6227
|
{
|
|
6228
|
-
ariaLabelClose:
|
|
6228
|
+
ariaLabelClose: md.close_drawer_aria,
|
|
6229
6229
|
isOpen: n,
|
|
6230
6230
|
onClose: () => {
|
|
6231
6231
|
e(), i();
|
|
@@ -6237,8 +6237,8 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6237
6237
|
] })
|
|
6238
6238
|
}
|
|
6239
6239
|
);
|
|
6240
|
-
}, Ca = x(
|
|
6241
|
-
const { selectedAccounts: A } =
|
|
6240
|
+
}, Ca = x(vd), pd = () => {
|
|
6241
|
+
const { selectedAccounts: A } = mA(), { common: e, transactions: n } = W(), { manualTransaction: a, setIsAmountValid: r, updateManualTransaction: i } = WA(), [o, s] = g.useState(""), [c, l] = g.useState(""), d = g.useMemo(
|
|
6242
6242
|
() => A.filter((E) => E.is_manual),
|
|
6243
6243
|
[A]
|
|
6244
6244
|
).map((E) => ({
|
|
@@ -6253,9 +6253,9 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6253
6253
|
s(E), i({ ...a, amount: Number(E) });
|
|
6254
6254
|
}, f = (E, L) => {
|
|
6255
6255
|
i({ ...a, transaction_type: Number(L) });
|
|
6256
|
-
}, v = (E) => {
|
|
6257
|
-
l(E), i({ ...a, payee: E, description: E });
|
|
6258
6256
|
}, m = (E) => {
|
|
6257
|
+
l(E), i({ ...a, payee: E, description: E });
|
|
6258
|
+
}, v = (E) => {
|
|
6259
6259
|
i({ ...a, account_guid: E });
|
|
6260
6260
|
};
|
|
6261
6261
|
return /* @__PURE__ */ u(S, { className: "mx-txn-manual-transaction-details", children: [
|
|
@@ -6308,7 +6308,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6308
6308
|
{
|
|
6309
6309
|
label: n.payee_title,
|
|
6310
6310
|
name: "payee",
|
|
6311
|
-
onChange: (E) =>
|
|
6311
|
+
onChange: (E) => m(E.target.value),
|
|
6312
6312
|
sx: { bgcolor: "background.paper" },
|
|
6313
6313
|
value: c
|
|
6314
6314
|
}
|
|
@@ -6319,7 +6319,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6319
6319
|
InputLabelProps: { shrink: !0 },
|
|
6320
6320
|
SelectProps: { defaultValue: -1, IconComponent: Zr },
|
|
6321
6321
|
label: n.manual_transaction_select_an_account,
|
|
6322
|
-
onChange: (E) =>
|
|
6322
|
+
onChange: (E) => v(E.target.value),
|
|
6323
6323
|
placeholder: n.manual_transaction_select,
|
|
6324
6324
|
select: !0,
|
|
6325
6325
|
sx: { bgcolor: "background.paper" },
|
|
@@ -6389,25 +6389,25 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6389
6389
|
setSearchValue: d,
|
|
6390
6390
|
setShowInsights: h,
|
|
6391
6391
|
updateManualTransaction: C
|
|
6392
|
-
} = WA(), { addTransaction: f, filter:
|
|
6392
|
+
} = WA(), { addTransaction: f, filter: m, setFilter: v, tags: E, transactions: L, updateTransaction: b } = uA(), { common: w, transactions: I } = W(), { userProfile: D } = rn(), { onEvent: O } = Y(), {
|
|
6393
6393
|
displayedDateRange: k,
|
|
6394
6394
|
isInitialized: $,
|
|
6395
6395
|
selectedAccountGuids: B,
|
|
6396
6396
|
selectedAccounts: R,
|
|
6397
6397
|
setDisplayedDate: z,
|
|
6398
6398
|
setSelectedAccounts: K
|
|
6399
|
-
} =
|
|
6399
|
+
} = mA(), [lA, rA] = g.useState(""), [MA, sA] = g.useState(""), [G, pA] = g.useState(!1), [yA, ce] = g.useState(!1), [Le, Cn] = g.useState(!1);
|
|
6400
6400
|
g.useEffect(() => {
|
|
6401
6401
|
K(r);
|
|
6402
6402
|
}, [r]), g.useEffect(() => {
|
|
6403
6403
|
const IA = LA(Z()), ba = OA(Z());
|
|
6404
|
-
z(IA, ba),
|
|
6404
|
+
z(IA, ba), v({
|
|
6405
6405
|
dateRange: { start: IA, end: ba },
|
|
6406
6406
|
accounts: R.map((go) => go.guid)
|
|
6407
6407
|
}), Cn(!0), O(J.TRANSACTIONS_VIEW);
|
|
6408
6408
|
}, []), g.useEffect(() => {
|
|
6409
|
-
Le &&
|
|
6410
|
-
...
|
|
6409
|
+
Le && v({
|
|
6410
|
+
...m,
|
|
6411
6411
|
dateRange: { start: k.start, end: k.end },
|
|
6412
6412
|
accounts: B
|
|
6413
6413
|
});
|
|
@@ -6420,8 +6420,8 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6420
6420
|
), Be = MA ? L.find((IA) => IA.guid === MA) : void 0, Sa = c && !!s.payee && !!s.account_guid && !!s.category_guid, io = (IA) => {
|
|
6421
6421
|
z(IA[0], IA[1]);
|
|
6422
6422
|
}, oo = (IA) => {
|
|
6423
|
-
d(IA),
|
|
6424
|
-
...
|
|
6423
|
+
d(IA), v({
|
|
6424
|
+
...m,
|
|
6425
6425
|
searchTerm: IA
|
|
6426
6426
|
}), O(J.TRANSACTIONS_CLICK_SEARCH, { search_term: IA });
|
|
6427
6427
|
}, so = () => {
|
|
@@ -6629,13 +6629,13 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6629
6629
|
{ id: _.EveryOtherQuarter, label: le.frequency_every_other_quarter },
|
|
6630
6630
|
{ id: _.EveryYear, label: le.frequency_every_year }
|
|
6631
6631
|
], d = async (f) => {
|
|
6632
|
-
const
|
|
6632
|
+
const m = { ...A, recurrenceType: f };
|
|
6633
6633
|
if (A.activityType === EA.Expense) {
|
|
6634
|
-
const
|
|
6635
|
-
|
|
6634
|
+
const v = n.find((E) => E.guid === A.scheduledPaymentGuid);
|
|
6635
|
+
v && await r(Pi(m, v));
|
|
6636
6636
|
} else {
|
|
6637
|
-
const
|
|
6638
|
-
|
|
6637
|
+
const v = e.find((E) => E.guid === A.sequenceGuid);
|
|
6638
|
+
v && await a(xi(m, v));
|
|
6639
6639
|
}
|
|
6640
6640
|
s(!1);
|
|
6641
6641
|
}, h = () => {
|
|
@@ -6699,11 +6699,11 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6699
6699
|
}, C = async () => {
|
|
6700
6700
|
const f = { ...A, expectedDate: c };
|
|
6701
6701
|
if (A.activityType === EA.Expense) {
|
|
6702
|
-
const
|
|
6703
|
-
|
|
6702
|
+
const m = n.find((v) => v.guid === A.scheduledPaymentGuid);
|
|
6703
|
+
m && await r(Pi(f, m));
|
|
6704
6704
|
} else {
|
|
6705
|
-
const
|
|
6706
|
-
|
|
6705
|
+
const m = e.find((v) => v.guid === A.sequenceGuid);
|
|
6706
|
+
m && await a(xi(f, m));
|
|
6707
6707
|
}
|
|
6708
6708
|
s(!1);
|
|
6709
6709
|
};
|
|
@@ -6747,7 +6747,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6747
6747
|
close_drawer_aria: "Close",
|
|
6748
6748
|
transaction_details_drawer_title: "Transaction Details"
|
|
6749
6749
|
}, Id = ({ activity: A, onDeleted: e }) => {
|
|
6750
|
-
const { categories: n } = xA(), { deleteCashflowSequence: a, deleteScheduledPayment: r, paidActivities: i } = kA(), { filter: o, setFilter: s, transactions: c } = uA(), { selectedAccountGuids: l } =
|
|
6750
|
+
const { categories: n } = xA(), { deleteCashflowSequence: a, deleteScheduledPayment: r, paidActivities: i } = kA(), { filter: o, setFilter: s, transactions: c } = uA(), { selectedAccountGuids: l } = mA(), { onEvent: d } = Y(), [h, C] = g.useState(!1), [f, m] = g.useState(""), v = n.find((I) => I.guid === A.categoryGuid), E = A.activityType === EA.Income, L = g.useMemo(
|
|
6751
6751
|
() => c.find((I) => I.guid === f),
|
|
6752
6752
|
[f]
|
|
6753
6753
|
);
|
|
@@ -6806,13 +6806,13 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6806
6806
|
),
|
|
6807
6807
|
/* @__PURE__ */ t(q, { color: "secondary", variant: "inset" })
|
|
6808
6808
|
] }),
|
|
6809
|
-
|
|
6809
|
+
v && /* @__PURE__ */ u(aA, { children: [
|
|
6810
6810
|
/* @__PURE__ */ t(
|
|
6811
6811
|
Ut,
|
|
6812
6812
|
{
|
|
6813
6813
|
iconName: "monetization_on",
|
|
6814
6814
|
label: JA.activity_category,
|
|
6815
|
-
value:
|
|
6815
|
+
value: v.name
|
|
6816
6816
|
}
|
|
6817
6817
|
),
|
|
6818
6818
|
/* @__PURE__ */ t(q, { color: "secondary", variant: "inset" })
|
|
@@ -6834,13 +6834,13 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6834
6834
|
}
|
|
6835
6835
|
),
|
|
6836
6836
|
/* @__PURE__ */ t(y, { bold: !0, sx: { ml: 24, mt: 16, mb: 4 }, variant: "Body", children: JA.activity_paid_transactions }),
|
|
6837
|
-
/* @__PURE__ */ t(It, { height: "30dvh", onClick:
|
|
6837
|
+
/* @__PURE__ */ t(It, { height: "30dvh", onClick: m }),
|
|
6838
6838
|
/* @__PURE__ */ t(
|
|
6839
6839
|
hA,
|
|
6840
6840
|
{
|
|
6841
6841
|
ariaLabelClose: JA.close_drawer_aria,
|
|
6842
6842
|
isOpen: !!f,
|
|
6843
|
-
onClose: () =>
|
|
6843
|
+
onClose: () => m(""),
|
|
6844
6844
|
title: JA.transaction_details_drawer_title,
|
|
6845
6845
|
children: L && /* @__PURE__ */ t(ln, { transaction: L })
|
|
6846
6846
|
}
|
|
@@ -6863,7 +6863,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6863
6863
|
gridRow: 1,
|
|
6864
6864
|
gridColumn: 1,
|
|
6865
6865
|
zIndex: 2
|
|
6866
|
-
}, un = (A) => A ? { margin: "0 0 -6px -4px" } : void 0, fa = ({ isOffset: A = !1, size: e = 16 }) => /* @__PURE__ */ t(xe, { size: e, sx: { ...un(A) }, children: /* @__PURE__ */ t(Cs, { color: "primary", sx: { fontSize: e, ...dn } }) }),
|
|
6866
|
+
}, un = (A) => A ? { margin: "0 0 -6px -4px" } : void 0, fa = ({ isOffset: A = !1, size: e = 16 }) => /* @__PURE__ */ t(xe, { size: e, sx: { ...un(A) }, children: /* @__PURE__ */ t(Cs, { color: "primary", sx: { fontSize: e, ...dn } }) }), ma = ({ isOffset: A = !1, size: e = 16 }) => /* @__PURE__ */ t(xe, { size: e, sx: { ...un(A) }, children: /* @__PURE__ */ t(fs, { sx: { color: "categories.income", fontSize: e, ...dn } }) }), va = ({ isOffset: A = !1, size: e = 16 }) => /* @__PURE__ */ t(xe, { size: e, sx: { ...un(A) }, children: /* @__PURE__ */ t(kt, { color: "error", sx: { fontSize: e, ...dn } }) }), pa = ({ isOffset: A = !1, size: e = 16 }) => /* @__PURE__ */ t(xe, { size: e, sx: { ...un(A) }, children: /* @__PURE__ */ t(Ai, { color: "success", sx: { fontSize: e, ...dn } }) }), cr = (A, e = null) => {
|
|
6867
6867
|
const n = {
|
|
6868
6868
|
monthly: "monthly",
|
|
6869
6869
|
monthly_ordinal: "monthly on the _1{day}",
|
|
@@ -6880,7 +6880,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6880
6880
|
every_other_quarter: "twice a year",
|
|
6881
6881
|
every_other_quarter_ordinal: "twice a year on the _1{day}"
|
|
6882
6882
|
};
|
|
6883
|
-
let a = e &&
|
|
6883
|
+
let a = e && ms(e) ? H(n.monthly_ordinal, $A(e, "do")) : n.monthly;
|
|
6884
6884
|
switch (A) {
|
|
6885
6885
|
case _.EveryQuarter:
|
|
6886
6886
|
a = e ? H(n.quarterly_ordinal, $A(e, "do")) : n.quarterly;
|
|
@@ -6904,10 +6904,10 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
6904
6904
|
return a;
|
|
6905
6905
|
}, Od = (A) => {
|
|
6906
6906
|
if (A.activityType === EA.Income)
|
|
6907
|
-
return /* @__PURE__ */ t(
|
|
6907
|
+
return /* @__PURE__ */ t(ma, {});
|
|
6908
6908
|
switch (A.activityStatus) {
|
|
6909
6909
|
case wA.Missed:
|
|
6910
|
-
return /* @__PURE__ */ t(
|
|
6910
|
+
return /* @__PURE__ */ t(va, {});
|
|
6911
6911
|
case wA.Paid:
|
|
6912
6912
|
return /* @__PURE__ */ t(pa, {});
|
|
6913
6913
|
default:
|
|
@@ -7098,7 +7098,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7098
7098
|
}) => {
|
|
7099
7099
|
const { searchValue: r, setSearchValue: i } = WA();
|
|
7100
7100
|
return /* @__PURE__ */ u(T, { sx: { bgcolor: A, gap: 16, pt: 8 }, children: [
|
|
7101
|
-
e && /* @__PURE__ */ t(
|
|
7101
|
+
e && /* @__PURE__ */ t(vA, { sx: { mx: 24 }, children: e }),
|
|
7102
7102
|
/* @__PURE__ */ t(
|
|
7103
7103
|
on,
|
|
7104
7104
|
{
|
|
@@ -7171,7 +7171,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7171
7171
|
i(fl(d));
|
|
7172
7172
|
break;
|
|
7173
7173
|
case _.EveryYear:
|
|
7174
|
-
i(
|
|
7174
|
+
i(ml(d));
|
|
7175
7175
|
break;
|
|
7176
7176
|
}
|
|
7177
7177
|
r(Number(l.target.value));
|
|
@@ -7200,7 +7200,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7200
7200
|
}
|
|
7201
7201
|
),
|
|
7202
7202
|
/* @__PURE__ */ t(Jn, { dateAdapter: tn, children: /* @__PURE__ */ t(
|
|
7203
|
-
|
|
7203
|
+
vs,
|
|
7204
7204
|
{
|
|
7205
7205
|
disablePast: !0,
|
|
7206
7206
|
label: n ? ZA.income_date_label : ZA.expense_date_label,
|
|
@@ -7223,24 +7223,24 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7223
7223
|
label: e,
|
|
7224
7224
|
onAddActivity: n = () => null
|
|
7225
7225
|
}) => {
|
|
7226
|
-
const { addCashflowEvent: a, addCashflowSequence: r, addScheduledPayment: i } = kA(), { filter: o, setFilter: s, transactions: c } = uA(), [l, d] = g.useState(!1), [h, C] = g.useState(""), [f,
|
|
7226
|
+
const { addCashflowEvent: a, addCashflowSequence: r, addScheduledPayment: i } = kA(), { filter: o, setFilter: s, transactions: c } = uA(), [l, d] = g.useState(!1), [h, C] = g.useState(""), [f, m] = g.useState(_.EveryMonth), [v, E] = g.useState(null), L = g.useMemo(
|
|
7227
7227
|
() => c.find((D) => D.guid === h),
|
|
7228
7228
|
[h]
|
|
7229
7229
|
), b = () => {
|
|
7230
7230
|
d(!0), s(A ? { ...o, custom: wt } : { ...o, custom: qn });
|
|
7231
7231
|
}, w = async () => {
|
|
7232
|
-
if (n(), !L || !
|
|
7232
|
+
if (n(), !L || !v) {
|
|
7233
7233
|
I();
|
|
7234
7234
|
return;
|
|
7235
7235
|
}
|
|
7236
7236
|
if (A) {
|
|
7237
|
-
const D = Ni(L, f,
|
|
7237
|
+
const D = Ni(L, f, v), O = await r(D);
|
|
7238
7238
|
if (O) {
|
|
7239
7239
|
const k = Mi(O, L);
|
|
7240
7240
|
await a(k);
|
|
7241
7241
|
}
|
|
7242
7242
|
} else {
|
|
7243
|
-
const D = Pd(L, f,
|
|
7243
|
+
const D = Pd(L, f, v);
|
|
7244
7244
|
await i(D, L);
|
|
7245
7245
|
}
|
|
7246
7246
|
I();
|
|
@@ -7291,8 +7291,8 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7291
7291
|
{
|
|
7292
7292
|
frequency: f,
|
|
7293
7293
|
isIncome: A,
|
|
7294
|
-
nextDate:
|
|
7295
|
-
onFrequencyChange:
|
|
7294
|
+
nextDate: v,
|
|
7295
|
+
onFrequencyChange: m,
|
|
7296
7296
|
onNextDateChange: E,
|
|
7297
7297
|
transaction: L
|
|
7298
7298
|
}
|
|
@@ -7319,7 +7319,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7319
7319
|
scheduledPaymentGuid: a.guid
|
|
7320
7320
|
};
|
|
7321
7321
|
}), zd = () => {
|
|
7322
|
-
const { scheduledPayments: A } = kA(), { transactions: e } = uA(), { selectedAccounts: n } =
|
|
7322
|
+
const { scheduledPayments: A } = kA(), { transactions: e } = uA(), { selectedAccounts: n } = mA(), { onEvent: a } = Y(), r = Hd(n, A, e), i = (s) => {
|
|
7323
7323
|
a(J.RECURRING_ACTIVITY_CLICK_EXPENSE, {
|
|
7324
7324
|
transaction_guid: s.transactionGuid
|
|
7325
7325
|
});
|
|
@@ -7341,15 +7341,15 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7341
7341
|
const h = r.find((f) => f.guid === d.cashflow_sequence_guid), C = i.find((f) => f.guid === d.transaction_guid);
|
|
7342
7342
|
return h?.end_date === null && C;
|
|
7343
7343
|
}).map((d) => {
|
|
7344
|
-
const h = r.find((
|
|
7344
|
+
const h = r.find((m) => m.guid === d.cashflow_sequence_guid), C = i.find((m) => m.guid === d.transaction_guid), f = A.find((m) => m.guid === C?.account_guid);
|
|
7345
7345
|
return {
|
|
7346
7346
|
accountGuid: h?.account_guid || f?.guid,
|
|
7347
7347
|
activityStatus: wA.Paid,
|
|
7348
7348
|
activityType: EA.Income,
|
|
7349
7349
|
amount: d.amount,
|
|
7350
7350
|
categoryGuid: d.category_guid,
|
|
7351
|
-
expectedDate:
|
|
7352
|
-
occurredOnDate: d.occurred_on ?
|
|
7351
|
+
expectedDate: mt(d.expected_date),
|
|
7352
|
+
occurredOnDate: d.occurred_on ? mt(d.occurred_on) : void 0,
|
|
7353
7353
|
name: d.name,
|
|
7354
7354
|
institution: f ? Bn(f) : void 0,
|
|
7355
7355
|
institutionGuid: f?.institution_guid,
|
|
@@ -7370,19 +7370,19 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7370
7370
|
);
|
|
7371
7371
|
return h?.end_date === null && !C;
|
|
7372
7372
|
}).map((d) => {
|
|
7373
|
-
const h = r.find((
|
|
7374
|
-
(
|
|
7375
|
-
), f = i.find((
|
|
7373
|
+
const h = r.find((v) => v.guid === d.cashflow_sequence_guid), C = e.find(
|
|
7374
|
+
(v) => v.cashflow_sequence_guid === d.cashflow_sequence_guid && !!v.transaction_guid
|
|
7375
|
+
), f = i.find((v) => v.guid === C?.transaction_guid), m = A.find((v) => v.guid === f?.account_guid);
|
|
7376
7376
|
return {
|
|
7377
|
-
accountGuid: h?.account_guid ||
|
|
7377
|
+
accountGuid: h?.account_guid || m?.guid,
|
|
7378
7378
|
activityStatus: wA.Upcoming,
|
|
7379
7379
|
activityType: EA.Income,
|
|
7380
7380
|
amount: d.amount,
|
|
7381
7381
|
categoryGuid: d.category_guid,
|
|
7382
|
-
expectedDate:
|
|
7382
|
+
expectedDate: mt(d.expected_date),
|
|
7383
7383
|
name: d.name,
|
|
7384
|
-
institution:
|
|
7385
|
-
institutionGuid:
|
|
7384
|
+
institution: m ? Bn(m) : void 0,
|
|
7385
|
+
institutionGuid: m?.institution_guid,
|
|
7386
7386
|
merchantGuid: f?.merchant_guid || void 0,
|
|
7387
7387
|
recurrenceType: Kn(h),
|
|
7388
7388
|
recurrenceDay: h?.repeat_day ? Number(h?.repeat_day) : void 0,
|
|
@@ -7481,9 +7481,9 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7481
7481
|
});
|
|
7482
7482
|
break;
|
|
7483
7483
|
case _.EveryYear:
|
|
7484
|
-
gA(o, d) ? gA(
|
|
7484
|
+
gA(o, d) ? gA(vt(o, 1), h) && a.push({
|
|
7485
7485
|
...s,
|
|
7486
|
-
expectedDate:
|
|
7486
|
+
expectedDate: vt(o, 1)
|
|
7487
7487
|
}) : gA(o, h) && a.push({
|
|
7488
7488
|
...s,
|
|
7489
7489
|
expectedDate: o
|
|
@@ -7491,17 +7491,17 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7491
7491
|
break;
|
|
7492
7492
|
}
|
|
7493
7493
|
return a.forEach((f) => {
|
|
7494
|
-
const
|
|
7495
|
-
(
|
|
7494
|
+
const m = n.find(
|
|
7495
|
+
(v) => v.scheduled_payment_guid === f.scheduledPaymentGuid && v.date > CA(ie(f.expectedDate, 3)) && v.date < CA(ge(f.expectedDate, 3))
|
|
7496
7496
|
);
|
|
7497
|
-
|
|
7497
|
+
m ? (f.transactionGuid = m.guid, f.occurredOnDate = NA(m.date), f.activityStatus = wA.Paid) : gA(f.expectedDate, ie(l, 3)) && (f.activityStatus = wA.Missed);
|
|
7498
7498
|
}), a;
|
|
7499
7499
|
}, kd = {
|
|
7500
7500
|
manage_income_add: "Add Income"
|
|
7501
7501
|
}, Gd = (A, e, n, a, r) => a.map((i) => {
|
|
7502
7502
|
const o = e.find((h) => h.cashflow_sequence_guid === i.guid), s = n.find((h) => h.cashflow_sequence_guid === i.guid), c = r.find((h) => h.guid === o?.transaction_guid), l = A.find((h) => h.guid === c?.account_guid);
|
|
7503
7503
|
let d = /* @__PURE__ */ new Date();
|
|
7504
|
-
return o ? d =
|
|
7504
|
+
return o ? d = mt(o.expected_date) : s && (d = mt(s.expected_date)), {
|
|
7505
7505
|
activityStatus: wA.Upcoming,
|
|
7506
7506
|
activityType: EA.Income,
|
|
7507
7507
|
amount: i.amount,
|
|
@@ -7516,7 +7516,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7516
7516
|
sequenceGuid: i.guid
|
|
7517
7517
|
};
|
|
7518
7518
|
}), Xd = () => {
|
|
7519
|
-
const { selectedAccounts: A } =
|
|
7519
|
+
const { selectedAccounts: A } = mA(), { cashflowEvents: e, cashflowSequences: n, projectedEvents: a } = kA(), { transactions: r } = uA(), { onEvent: i } = Y(), o = Gd(
|
|
7520
7520
|
A,
|
|
7521
7521
|
e,
|
|
7522
7522
|
a,
|
|
@@ -7577,26 +7577,26 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7577
7577
|
missed: "Missed",
|
|
7578
7578
|
upcoming: "Upcoming",
|
|
7579
7579
|
income: "Income"
|
|
7580
|
-
}, { selectedAccountGuids: r } =
|
|
7581
|
-
() => i.filter((
|
|
7580
|
+
}, { selectedAccountGuids: r } = mA(), { activities: i, setSelectedDay: o } = kA(), c = g.useMemo(
|
|
7581
|
+
() => i.filter((m) => r.includes(m.accountGuid || "")),
|
|
7582
7582
|
[r, i]
|
|
7583
7583
|
).filter(
|
|
7584
|
-
(
|
|
7584
|
+
(m) => FA(m.occurredOnDate || m.expectedDate, A)
|
|
7585
7585
|
), l = c.some(
|
|
7586
|
-
(
|
|
7586
|
+
(m) => m.activityType === EA.Expense && m.activityStatus === wA.Upcoming
|
|
7587
7587
|
), d = c.some(
|
|
7588
|
-
(
|
|
7588
|
+
(m) => m.activityType === EA.Expense && m.activityStatus === wA.Missed
|
|
7589
7589
|
), h = c.some(
|
|
7590
|
-
(
|
|
7591
|
-
), C = c.some((
|
|
7590
|
+
(m) => m.activityType === EA.Expense && m.activityStatus === wA.Paid
|
|
7591
|
+
), C = c.some((m) => m.activityType === EA.Income), f = (l ? 1 : 0) + (d ? 1 : 0) + (h ? 1 : 0) + (C ? 1 : 0);
|
|
7592
7592
|
return /* @__PURE__ */ t(
|
|
7593
7593
|
$r,
|
|
7594
7594
|
{
|
|
7595
7595
|
badgeContent: c.length > 0 && /* @__PURE__ */ u(aA, { children: [
|
|
7596
|
-
d && /* @__PURE__ */ t(
|
|
7596
|
+
d && /* @__PURE__ */ t(va, { isOffset: !0 }),
|
|
7597
7597
|
h && /* @__PURE__ */ t(pa, { isOffset: !0 }),
|
|
7598
7598
|
l && /* @__PURE__ */ t(fa, { isOffset: !0 }),
|
|
7599
|
-
C && /* @__PURE__ */ t(
|
|
7599
|
+
C && /* @__PURE__ */ t(ma, { isOffset: !0 })
|
|
7600
7600
|
] }),
|
|
7601
7601
|
overlap: "circular",
|
|
7602
7602
|
sx: {
|
|
@@ -7643,8 +7643,8 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7643
7643
|
mt: 12,
|
|
7644
7644
|
children: [
|
|
7645
7645
|
/* @__PURE__ */ t(_t, { icon: fa, label: "Expense" }),
|
|
7646
|
-
/* @__PURE__ */ t(_t, { icon:
|
|
7647
|
-
/* @__PURE__ */ t(_t, { icon:
|
|
7646
|
+
/* @__PURE__ */ t(_t, { icon: ma, label: "Income" }),
|
|
7647
|
+
/* @__PURE__ */ t(_t, { icon: va, label: "Missed" }),
|
|
7648
7648
|
/* @__PURE__ */ t(_t, { icon: pa, label: "Paid" })
|
|
7649
7649
|
]
|
|
7650
7650
|
}
|
|
@@ -7820,7 +7820,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7820
7820
|
selectedDayActivities: i,
|
|
7821
7821
|
setSelectedDay: o,
|
|
7822
7822
|
upcomingActivities: s
|
|
7823
|
-
} = kA(), [c, l] = g.useState(0), { onEvent: d } = Y(), h = e.filter(wn), C = a.filter(wn), f = n.filter(wn),
|
|
7823
|
+
} = kA(), [c, l] = g.useState(0), { onEvent: d } = Y(), h = e.filter(wn), C = a.filter(wn), f = n.filter(wn), m = h.filter(Rt).reduce(lt, 0), v = C.filter(Rt).reduce(lt, 0), E = f.filter(Rt).reduce(lt, 0), L = h.filter(Rt).length, b = h.filter(En).reduce(lt, 0), w = C.filter(En).reduce(lt, 0), I = h.filter(En).length, D = ($, B) => {
|
|
7824
7824
|
l(B);
|
|
7825
7825
|
}, O = ($) => {
|
|
7826
7826
|
d(J.RECURRING_ACTIVITY_CLICK_UPCOMING, {
|
|
@@ -7836,9 +7836,9 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7836
7836
|
/* @__PURE__ */ t(
|
|
7837
7837
|
dr,
|
|
7838
7838
|
{
|
|
7839
|
-
expected:
|
|
7839
|
+
expected: m,
|
|
7840
7840
|
missed: E,
|
|
7841
|
-
paid:
|
|
7841
|
+
paid: v,
|
|
7842
7842
|
title: Ke.recurring_activity_expenses,
|
|
7843
7843
|
total: L
|
|
7844
7844
|
}
|
|
@@ -7906,7 +7906,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7906
7906
|
recurring_activity_title: "Recurring Transactions",
|
|
7907
7907
|
recurring_activity_settings: "Settings"
|
|
7908
7908
|
}, Jd = ({ onBackClick: A, sx: e = {} }) => {
|
|
7909
|
-
const { accounts: n } = DA(), { isInitialized: a, selectedAccountGuids: r, setSelectedAccounts: i } =
|
|
7909
|
+
const { accounts: n } = DA(), { isInitialized: a, selectedAccountGuids: r, setSelectedAccounts: i } = mA(), { setFilter: o } = uA(), { isLoading: s } = kA(), { onEvent: c } = Y();
|
|
7910
7910
|
g.useEffect(() => {
|
|
7911
7911
|
i(n);
|
|
7912
7912
|
}, [n]), g.useEffect(() => {
|
|
@@ -7957,7 +7957,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7957
7957
|
day_transactions: "Transactions for _1{day}",
|
|
7958
7958
|
recurring_activity_upcoming_activity: "Upcoming Activity"
|
|
7959
7959
|
}, Zd = () => {
|
|
7960
|
-
const { selectedAccountGuids: A } =
|
|
7960
|
+
const { selectedAccountGuids: A } = mA(), { selectedDay: e, selectedDayActivities: n, setSelectedDay: a, upcomingActivities: r } = kA(), i = g.useMemo(
|
|
7961
7961
|
() => r.filter(
|
|
7962
7962
|
(c) => A.includes(c.accountGuid || "")
|
|
7963
7963
|
),
|
|
@@ -7985,7 +7985,7 @@ const ir = "connect_widget", or = "connections_widget", vd = {
|
|
|
7985
7985
|
recurring_activity_subtitle: "Projected expenses and income",
|
|
7986
7986
|
recurring_activity_title: "Recurring Transactions"
|
|
7987
7987
|
}, Au = ({ onPrimaryCtaClick: A, sx: e }) => {
|
|
7988
|
-
const { isInitialized: n, selectedAccountGuids: a } =
|
|
7988
|
+
const { isInitialized: n, selectedAccountGuids: a } = mA(), { setFilter: r } = uA();
|
|
7989
7989
|
return g.useEffect(() => {
|
|
7990
7990
|
n && r({
|
|
7991
7991
|
dateRange: { start: ie(Z(), 90), end: Qe() },
|
|
@@ -8528,7 +8528,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8528
8528
|
);
|
|
8529
8529
|
}) })
|
|
8530
8530
|
] });
|
|
8531
|
-
}, Cu = x(gu),
|
|
8531
|
+
}, Cu = x(gu), mr = {
|
|
8532
8532
|
tooltip_title: "How is this calculated?",
|
|
8533
8533
|
tooltip_body: "This is a breadown by account that projects how much cash you'll have for the next 30 days. It's based on the balances in your checking and savings accounts, includes your projected income, and considers upcoming expenses."
|
|
8534
8534
|
}, fu = () => {
|
|
@@ -8591,7 +8591,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8591
8591
|
}
|
|
8592
8592
|
}
|
|
8593
8593
|
], c = g.useMemo(() => o.map((l) => {
|
|
8594
|
-
const d = a.filter((f) => f.accountGuid === l.guid).reduce((f,
|
|
8594
|
+
const d = a.filter((f) => f.accountGuid === l.guid).reduce((f, m) => f + m.amount, 0), h = r.filter((f) => f.accountGuid === l.guid).reduce((f, m) => f + m.amount, 0), C = (l.balance || 0) + h - d;
|
|
8595
8595
|
return {
|
|
8596
8596
|
account: l,
|
|
8597
8597
|
balance: l.balance || 0,
|
|
@@ -8611,7 +8611,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8611
8611
|
/* @__PURE__ */ u(T, { direction: "row", justifyContent: "space-between", mb: 12, children: [
|
|
8612
8612
|
/* @__PURE__ */ u(T, { alignItems: "center", direction: "row", gap: 8, children: [
|
|
8613
8613
|
/* @__PURE__ */ t(y, { bold: !0, sx: { fontSize: 15 }, children: n.cash_inflow_and_outflow }),
|
|
8614
|
-
/* @__PURE__ */ t(jt, { body:
|
|
8614
|
+
/* @__PURE__ */ t(jt, { body: mr.tooltip_body, title: mr.tooltip_title })
|
|
8615
8615
|
] }),
|
|
8616
8616
|
/* @__PURE__ */ u(y, { bold: !0, sx: { fontSize: 15 }, children: [
|
|
8617
8617
|
j(i.start, F.FULL_MONTH_DAY),
|
|
@@ -8639,7 +8639,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8639
8639
|
}
|
|
8640
8640
|
}
|
|
8641
8641
|
) : c.map((l) => {
|
|
8642
|
-
const { name: d, nickname: h, institution_guid: C, account_number: f } = l.account,
|
|
8642
|
+
const { name: d, nickname: h, institution_guid: C, account_number: f } = l.account, m = h || d;
|
|
8643
8643
|
return /* @__PURE__ */ t(
|
|
8644
8644
|
oA,
|
|
8645
8645
|
{
|
|
@@ -8668,7 +8668,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8668
8668
|
size: 16
|
|
8669
8669
|
}
|
|
8670
8670
|
),
|
|
8671
|
-
/* @__PURE__ */ t(y, { variant: "Small", children: `${
|
|
8671
|
+
/* @__PURE__ */ t(y, { variant: "Small", children: `${m} ${f ? `*${f}` : ""}` })
|
|
8672
8672
|
] }),
|
|
8673
8673
|
/* @__PURE__ */ t(_A, { amount: l.balance, bold: !0, variant: "Small" })
|
|
8674
8674
|
]
|
|
@@ -8727,7 +8727,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8727
8727
|
]
|
|
8728
8728
|
}
|
|
8729
8729
|
);
|
|
8730
|
-
},
|
|
8730
|
+
}, mu = x(fu), vu = () => {
|
|
8731
8731
|
const { cashflow: A } = W(), { isDesktop: e } = jA(), { onEvent: n } = Y(), [a, r] = g.useState(0), i = (o, s) => {
|
|
8732
8732
|
r(s);
|
|
8733
8733
|
};
|
|
@@ -8765,10 +8765,10 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8765
8765
|
}
|
|
8766
8766
|
),
|
|
8767
8767
|
/* @__PURE__ */ t(S, { sx: { mb: 32 } }),
|
|
8768
|
-
/* @__PURE__ */ t(Ft, { index: 0, name: "cashflow", value: a, children: /* @__PURE__ */ t(S, { sx: { m: e ? 48 : 16 }, children: /* @__PURE__ */ t(
|
|
8768
|
+
/* @__PURE__ */ t(Ft, { index: 0, name: "cashflow", value: a, children: /* @__PURE__ */ t(S, { sx: { m: e ? 48 : 16 }, children: /* @__PURE__ */ t(mu, {}) }) }),
|
|
8769
8769
|
/* @__PURE__ */ t(Ft, { index: 1, name: "cashflow", value: a, children: /* @__PURE__ */ t(S, { sx: { m: e ? 48 : 16 }, children: /* @__PURE__ */ t(Cu, {}) }) })
|
|
8770
8770
|
] });
|
|
8771
|
-
}, pu = x(
|
|
8771
|
+
}, pu = x(vu), Se = ({
|
|
8772
8772
|
amount: A,
|
|
8773
8773
|
isMobile: e = !1,
|
|
8774
8774
|
isTotal: n = !1,
|
|
@@ -8798,17 +8798,17 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8798
8798
|
manage_income: "Manage income",
|
|
8799
8799
|
remaining_income_tooltip_title: "How is this calculated?",
|
|
8800
8800
|
remaining_income_tooltip_body: "This value is a projection of how much cash you'll have for the next 30 days. It's based on the balances in your checking and savings accounts, includes your projected income, and considers upcoming expenses."
|
|
8801
|
-
},
|
|
8802
|
-
const [A, e] = g.useState(!1), { availableWidth: n } = bt(), { cashflow: a } = W(), { upcomingExpenses: r, upcomingIncome: i } = kA(), { selectedAccountGuids: o } =
|
|
8803
|
-
() => r.filter(
|
|
8801
|
+
}, vr = (A, e) => (n) => n.accountGuid && A.includes(n.accountGuid) && ($n(n.expectedDate) || yt(n.expectedDate, e.start)) && gA(n.expectedDate, e.end), yu = () => {
|
|
8802
|
+
const [A, e] = g.useState(!1), { availableWidth: n } = bt(), { cashflow: a } = W(), { upcomingExpenses: r, upcomingIncome: i } = kA(), { selectedAccountGuids: o } = mA(), { dateRange: s, selectedCashAccounts: c } = ot(), { userProfile: l } = rn(), d = g.useMemo(
|
|
8803
|
+
() => r.filter(vr(o, s)),
|
|
8804
8804
|
[s, o, r]
|
|
8805
8805
|
), h = g.useMemo(
|
|
8806
|
-
() => i.filter(
|
|
8806
|
+
() => i.filter(vr(o, s)),
|
|
8807
8807
|
[s, o, i]
|
|
8808
8808
|
), C = g.useMemo(
|
|
8809
8809
|
() => c.reduce((b, w) => b + (w?.balance || 0), 0),
|
|
8810
8810
|
[c]
|
|
8811
|
-
), f = d.reduce((b, w) => b + w.amount, 0),
|
|
8811
|
+
), f = d.reduce((b, w) => b + w.amount, 0), m = h.reduce((b, w) => b + w.amount, 0), v = C - f + m, E = i.length > 0 && l?.has_completed_cash_flow_onboarding, L = n < 725;
|
|
8812
8812
|
return /* @__PURE__ */ u(T, { flexDirection: "row", gap: 24, justifyContent: "center", my: L ? 24 : 42, children: [
|
|
8813
8813
|
L ? /* @__PURE__ */ u(T, { border: "1px solid", borderColor: "border.light", borderRadius: 1, mx: 16, width: "100%", children: [
|
|
8814
8814
|
/* @__PURE__ */ t(
|
|
@@ -8823,7 +8823,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8823
8823
|
E ? /* @__PURE__ */ t(
|
|
8824
8824
|
Se,
|
|
8825
8825
|
{
|
|
8826
|
-
amount:
|
|
8826
|
+
amount: m,
|
|
8827
8827
|
isMobile: !0,
|
|
8828
8828
|
label: a.to_be_received,
|
|
8829
8829
|
symbol: "+"
|
|
@@ -8851,7 +8851,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8851
8851
|
/* @__PURE__ */ t(
|
|
8852
8852
|
Se,
|
|
8853
8853
|
{
|
|
8854
|
-
amount:
|
|
8854
|
+
amount: v,
|
|
8855
8855
|
isMobile: !0,
|
|
8856
8856
|
isTotal: !0,
|
|
8857
8857
|
label: a.remaining_cash,
|
|
@@ -8871,7 +8871,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8871
8871
|
/* @__PURE__ */ t(
|
|
8872
8872
|
Se,
|
|
8873
8873
|
{
|
|
8874
|
-
amount:
|
|
8874
|
+
amount: m,
|
|
8875
8875
|
label: a.to_be_received
|
|
8876
8876
|
}
|
|
8877
8877
|
)
|
|
@@ -8890,7 +8890,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8890
8890
|
/* @__PURE__ */ t(
|
|
8891
8891
|
Se,
|
|
8892
8892
|
{
|
|
8893
|
-
amount:
|
|
8893
|
+
amount: v,
|
|
8894
8894
|
label: a.remaining_cash,
|
|
8895
8895
|
tooltip: /* @__PURE__ */ t(
|
|
8896
8896
|
jt,
|
|
@@ -8928,9 +8928,9 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8928
8928
|
children: n.welcome_sub_title
|
|
8929
8929
|
}
|
|
8930
8930
|
),
|
|
8931
|
-
/* @__PURE__ */ t(
|
|
8931
|
+
/* @__PURE__ */ t(vA, { pb: 32, children: n.welcome_description }),
|
|
8932
8932
|
/* @__PURE__ */ u(T, { direction: "column", mb: 32, spacing: 32, children: [
|
|
8933
|
-
/* @__PURE__ */ u(
|
|
8933
|
+
/* @__PURE__ */ u(vA, { sx: { display: "flex", alignItems: "center", fontSize: 18 }, children: [
|
|
8934
8934
|
/* @__PURE__ */ t(
|
|
8935
8935
|
S,
|
|
8936
8936
|
{
|
|
@@ -8946,7 +8946,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8946
8946
|
),
|
|
8947
8947
|
n.bullet_one
|
|
8948
8948
|
] }),
|
|
8949
|
-
/* @__PURE__ */ u(
|
|
8949
|
+
/* @__PURE__ */ u(vA, { sx: { display: "flex", alignItems: "center", fontSize: 18 }, children: [
|
|
8950
8950
|
/* @__PURE__ */ t(
|
|
8951
8951
|
S,
|
|
8952
8952
|
{
|
|
@@ -8962,7 +8962,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8962
8962
|
),
|
|
8963
8963
|
n.bullet_two
|
|
8964
8964
|
] }),
|
|
8965
|
-
/* @__PURE__ */ u(
|
|
8965
|
+
/* @__PURE__ */ u(vA, { sx: { display: "flex", alignItems: "center", fontSize: 18 }, children: [
|
|
8966
8966
|
/* @__PURE__ */ t(
|
|
8967
8967
|
S,
|
|
8968
8968
|
{
|
|
@@ -8989,7 +8989,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8989
8989
|
return /* @__PURE__ */ u(g.Fragment, { children: [
|
|
8990
8990
|
/* @__PURE__ */ t("div", { children: /* @__PURE__ */ t("img", { alt: "Loading", src: Lu }) }),
|
|
8991
8991
|
/* @__PURE__ */ t(Ee, { pb: 12, children: A.loading_title }),
|
|
8992
|
-
/* @__PURE__ */ t(
|
|
8992
|
+
/* @__PURE__ */ t(vA, { children: A.loading_description })
|
|
8993
8993
|
] });
|
|
8994
8994
|
}, bu = x(Su), Iu = "data:image/png;base64,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", Du = Ho`
|
|
8995
8995
|
from {
|
|
@@ -8999,7 +8999,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8999
8999
|
transform: rotate(360deg);
|
|
9000
9000
|
}
|
|
9001
9001
|
`, Ou = () => {
|
|
9002
|
-
const { addCashflowEvent: A, addCashflowSequence: e, cashflowSequences: n } = kA(), { cashflow: a, common: r } = W(), { completeOnboarding: i } = ia(), { isDirty: o } = ot(), { isMobile: s } = jA(), { setDisplayedDate: c } =
|
|
9002
|
+
const { addCashflowEvent: A, addCashflowSequence: e, cashflowSequences: n } = kA(), { cashflow: a, common: r } = W(), { completeOnboarding: i } = ia(), { isDirty: o } = ot(), { isMobile: s } = jA(), { setDisplayedDate: c } = mA(), { filter: l, setFilter: d, transactions: h } = uA(), C = fA(), [f, m] = de(!0), [v, E] = g.useState(_.EveryMonth), [L, b] = de(!1), [w, I] = g.useState(null), [D, O] = de(1), [k, $] = de([]), [B, R] = de(""), z = g.useMemo(
|
|
9003
9003
|
() => h.find((sA) => sA.guid === B),
|
|
9004
9004
|
[B]
|
|
9005
9005
|
), K = !!n.length, lA = async () => {
|
|
@@ -9065,7 +9065,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
9065
9065
|
},
|
|
9066
9066
|
children: [
|
|
9067
9067
|
/* @__PURE__ */ t(Ee, { pb: 12, children: a.add_income_title }),
|
|
9068
|
-
/* @__PURE__ */ t(
|
|
9068
|
+
/* @__PURE__ */ t(vA, { mb: 24, children: a.add_income_description }),
|
|
9069
9069
|
k.length > 0 && !z && /* @__PURE__ */ u(aA, { children: [
|
|
9070
9070
|
/* @__PURE__ */ t(oA, { children: k.map((sA, G) => /* @__PURE__ */ u(g.Fragment, { children: [
|
|
9071
9071
|
/* @__PURE__ */ t(da, { bgcolor: "background.paper", children: sn(
|
|
@@ -9079,7 +9079,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
9079
9079
|
/* @__PURE__ */ t(
|
|
9080
9080
|
iA,
|
|
9081
9081
|
{
|
|
9082
|
-
onClick: () =>
|
|
9082
|
+
onClick: () => m(!0),
|
|
9083
9083
|
startIcon: /* @__PURE__ */ t(P, { name: "add", size: 20 }),
|
|
9084
9084
|
children: a.add_additional_income_button
|
|
9085
9085
|
}
|
|
@@ -9095,17 +9095,17 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
9095
9095
|
custom: (G) => sA ? Hi(G, sA) : wt(G)
|
|
9096
9096
|
}),
|
|
9097
9097
|
onSelected: (sA) => {
|
|
9098
|
-
R(sA),
|
|
9098
|
+
R(sA), m(!1);
|
|
9099
9099
|
}
|
|
9100
9100
|
}
|
|
9101
9101
|
),
|
|
9102
|
-
!K && o && /* @__PURE__ */ t(
|
|
9102
|
+
!K && o && /* @__PURE__ */ t(vA, { color: "error", mt: 16, children: a.confirm_error }),
|
|
9103
9103
|
z && /* @__PURE__ */ u(aA, { children: [
|
|
9104
9104
|
/* @__PURE__ */ t(
|
|
9105
9105
|
_i,
|
|
9106
9106
|
{
|
|
9107
9107
|
bgcolor: "background.paper",
|
|
9108
|
-
frequency:
|
|
9108
|
+
frequency: v,
|
|
9109
9109
|
isIncome: !0,
|
|
9110
9110
|
nextDate: w,
|
|
9111
9111
|
onFrequencyChange: E,
|
|
@@ -9120,7 +9120,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
9120
9120
|
"aria-disabled": !z || !w,
|
|
9121
9121
|
onClick: () => {
|
|
9122
9122
|
const sA = [...k];
|
|
9123
|
-
sA.push({ ...z, nextDate: w, frequency:
|
|
9123
|
+
sA.push({ ...z, nextDate: w, frequency: v }), $(sA), R("");
|
|
9124
9124
|
},
|
|
9125
9125
|
variant: "contained",
|
|
9126
9126
|
children: r.confirm_button
|
|
@@ -9130,7 +9130,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
9130
9130
|
iA,
|
|
9131
9131
|
{
|
|
9132
9132
|
onClick: () => {
|
|
9133
|
-
R(""),
|
|
9133
|
+
R(""), m(!0), lA();
|
|
9134
9134
|
},
|
|
9135
9135
|
variant: "outlined",
|
|
9136
9136
|
children: r.cancel_button
|
|
@@ -9172,7 +9172,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
9172
9172
|
setSelectedAccounts: r,
|
|
9173
9173
|
shouldDisableNextDate: i,
|
|
9174
9174
|
shouldDisablePrevDate: o
|
|
9175
|
-
} =
|
|
9175
|
+
} = mA(), { onEvent: s } = Y(), { cashAccounts: c } = DA(), { setFilter: l } = uA(), { userProfile: d } = rn(), { dateRange: h, setSelectedCashAccounts: C } = ot(), { cashflow: f } = W(), [m, v] = g.useState(!1);
|
|
9176
9176
|
return g.useEffect(() => {
|
|
9177
9177
|
r(c);
|
|
9178
9178
|
}, [c]), g.useEffect(() => {
|
|
@@ -9189,7 +9189,7 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
9189
9189
|
label: f.cashflow_settings,
|
|
9190
9190
|
iconName: "settings",
|
|
9191
9191
|
onClick: () => {
|
|
9192
|
-
|
|
9192
|
+
v(!0), s(J.CASH_FLOW_CLICK_SETTINGS);
|
|
9193
9193
|
}
|
|
9194
9194
|
}
|
|
9195
9195
|
],
|
|
@@ -9213,8 +9213,8 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
9213
9213
|
hA,
|
|
9214
9214
|
{
|
|
9215
9215
|
ariaLabelClose: f.close_drawer_aria,
|
|
9216
|
-
isOpen:
|
|
9217
|
-
onClose: () =>
|
|
9216
|
+
isOpen: m,
|
|
9217
|
+
onClose: () => v(!1),
|
|
9218
9218
|
shouldShowHeaderBorders: !1,
|
|
9219
9219
|
title: f.cashflow_settings,
|
|
9220
9220
|
children: /* @__PURE__ */ t(Bi, {})
|
|
@@ -9911,13 +9911,7 @@ class Tr {
|
|
|
9911
9911
|
};
|
|
9912
9912
|
getAccounts = async () => this.fetchInstance.get(N.ACCOUNTS).then((e) => e.accounts).catch((e) => e);
|
|
9913
9913
|
getMembers = async () => this.fetchInstance.get(N.MEMBERS).then((e) => e.members).catch((e) => e);
|
|
9914
|
-
getMonthlyAccountBalances = async (e) => this.fetchInstance.get(`${N.ACCOUNTS}/${e.guid}/monthly_account_balances`).then(
|
|
9915
|
-
(n) => n.sort(
|
|
9916
|
-
// reduce the monthly balances and sort by year_month
|
|
9917
|
-
n.reduce(this._flattenBalances, []),
|
|
9918
|
-
(a) => a.year_month
|
|
9919
|
-
)
|
|
9920
|
-
).catch((n) => n);
|
|
9914
|
+
getMonthlyAccountBalances = async (e) => this.fetchInstance.get(`${N.ACCOUNTS}/${e.guid}/monthly_account_balances`).then((n) => (console.log(n), n)).catch((n) => n);
|
|
9921
9915
|
getNetWorthChartData = async () => wr.map((n) => ({ x: this.formatMonth(n.x), y: n.y }));
|
|
9922
9916
|
getNetWorthMonthlyList = async () => wr;
|
|
9923
9917
|
_flattenBalances = (e, n) => [
|
|
@@ -9939,13 +9933,22 @@ class Yu {
|
|
|
9939
9933
|
this.api = new Tr(e, n), await this.loadNetWorth();
|
|
9940
9934
|
};
|
|
9941
9935
|
loadNetWorth = async () => {
|
|
9936
|
+
const e = (n, a) => [
|
|
9937
|
+
...n,
|
|
9938
|
+
...a.data.monthly_account_balances
|
|
9939
|
+
];
|
|
9942
9940
|
try {
|
|
9943
|
-
const
|
|
9941
|
+
const n = await this.api.getAccounts(), r = n.map((s) => this.api.getMonthlyAccountBalances(s)).reduce(e, []), i = await this.api.getNetWorthMonthlyList(), o = await this.api.getNetWorthChartData();
|
|
9944
9942
|
V(() => {
|
|
9945
|
-
this.netWorthData = {
|
|
9943
|
+
this.netWorthData = {
|
|
9944
|
+
accounts: n,
|
|
9945
|
+
monthlyAccountBalances: r.sort(
|
|
9946
|
+
(s, c) => s.year_month - c.year_month
|
|
9947
|
+
)
|
|
9948
|
+
}, this.netWorthMonthlyList = i, this.netWorthChartData = o;
|
|
9946
9949
|
});
|
|
9947
|
-
} catch (
|
|
9948
|
-
console.error(`Error occured while loading net worth: ${
|
|
9950
|
+
} catch (n) {
|
|
9951
|
+
console.error(`Error occured while loading net worth: ${n}`);
|
|
9949
9952
|
}
|
|
9950
9953
|
};
|
|
9951
9954
|
}
|
|
@@ -10029,12 +10032,12 @@ const Ln = ({
|
|
|
10029
10032
|
this_will_set_the_balance_of_your_account: "This will set the balance of your _1{account_name} account to $0.00, and keep any past transaction history. This can be undone by marking the account as open.",
|
|
10030
10033
|
unhide_account: "Unhide Account"
|
|
10031
10034
|
}, Ju = () => {
|
|
10032
|
-
const [A, e] = g.useState(!1), [n, a] = g.useState(!1), [r, i] = g.useState(!1), [o, s] = g.useState({}), { selectedAccount: c } = se(), { mergeAccounts: l, updateAccount: d } = DA(), h = Vu(), { onEvent: C } = Y(), f = (
|
|
10035
|
+
const [A, e] = g.useState(!1), [n, a] = g.useState(!1), [r, i] = g.useState(!1), [o, s] = g.useState({}), { selectedAccount: c } = se(), { mergeAccounts: l, updateAccount: d } = DA(), h = Vu(), { onEvent: C } = Y(), f = (v) => {
|
|
10033
10036
|
d({
|
|
10034
10037
|
...c,
|
|
10035
|
-
...
|
|
10038
|
+
...v
|
|
10036
10039
|
});
|
|
10037
|
-
},
|
|
10040
|
+
}, m = () => {
|
|
10038
10041
|
l([c.guid, o.guid]).finally(
|
|
10039
10042
|
() => a(!1)
|
|
10040
10043
|
);
|
|
@@ -10104,20 +10107,20 @@ const Ln = ({
|
|
|
10104
10107
|
isOpen: n,
|
|
10105
10108
|
onClose: () => a(!1),
|
|
10106
10109
|
title: TA.mark_as_duplicate,
|
|
10107
|
-
children: /* @__PURE__ */ t(oA, { children: h.map((
|
|
10108
|
-
const E = h.indexOf(
|
|
10110
|
+
children: /* @__PURE__ */ t(oA, { children: h.map((v) => {
|
|
10111
|
+
const E = h.indexOf(v) === h.length - 1;
|
|
10109
10112
|
return /* @__PURE__ */ u(g.Fragment, { children: [
|
|
10110
10113
|
/* @__PURE__ */ t(
|
|
10111
10114
|
hn,
|
|
10112
10115
|
{
|
|
10113
|
-
account:
|
|
10116
|
+
account: v,
|
|
10114
10117
|
onRowClick: () => {
|
|
10115
|
-
i(!0), s(
|
|
10118
|
+
i(!0), s(v);
|
|
10116
10119
|
}
|
|
10117
10120
|
}
|
|
10118
10121
|
),
|
|
10119
10122
|
/* @__PURE__ */ t(oA, { sx: { ml: E ? 0 : 24 } })
|
|
10120
|
-
] },
|
|
10123
|
+
] }, v.guid);
|
|
10121
10124
|
}) })
|
|
10122
10125
|
}
|
|
10123
10126
|
),
|
|
@@ -10130,7 +10133,7 @@ const Ln = ({
|
|
|
10130
10133
|
},
|
|
10131
10134
|
isOpen: r,
|
|
10132
10135
|
onClose: () => i(!1),
|
|
10133
|
-
onPrimaryAction:
|
|
10136
|
+
onPrimaryAction: m,
|
|
10134
10137
|
children: [
|
|
10135
10138
|
H(
|
|
10136
10139
|
TA.this_means_accounts_will_be_merged,
|
|
@@ -10401,10 +10404,10 @@ const Ln = ({
|
|
|
10401
10404
|
},
|
|
10402
10405
|
label: A.label,
|
|
10403
10406
|
labelId: `${A.label}-select-label`,
|
|
10404
|
-
onChange: (
|
|
10407
|
+
onChange: (v) => o(v.target.value),
|
|
10405
10408
|
placeholder: A.placeholder,
|
|
10406
10409
|
value: i,
|
|
10407
|
-
children: A.options?.map((
|
|
10410
|
+
children: A.options?.map((v) => /* @__PURE__ */ t(Wn, { value: v.value, children: v.label }, v.value))
|
|
10408
10411
|
}
|
|
10409
10412
|
)
|
|
10410
10413
|
] });
|
|
@@ -10426,8 +10429,8 @@ const Ln = ({
|
|
|
10426
10429
|
{
|
|
10427
10430
|
maxDate: YA(/* @__PURE__ */ new Date(), 1),
|
|
10428
10431
|
minDate: /* @__PURE__ */ new Date(),
|
|
10429
|
-
onChange: (
|
|
10430
|
-
r[A.name] && Number(r[A.name]) <= 31 ? o(
|
|
10432
|
+
onChange: (v) => {
|
|
10433
|
+
r[A.name] && Number(r[A.name]) <= 31 ? o(v.getDate()) : o(v);
|
|
10431
10434
|
},
|
|
10432
10435
|
views: ["day"]
|
|
10433
10436
|
}
|
|
@@ -10440,7 +10443,7 @@ const Ln = ({
|
|
|
10440
10443
|
error: !!s,
|
|
10441
10444
|
fullWidth: !0,
|
|
10442
10445
|
helperText: s,
|
|
10443
|
-
onChange:
|
|
10446
|
+
onChange: m,
|
|
10444
10447
|
placeholder: A.placeholder
|
|
10445
10448
|
}
|
|
10446
10449
|
);
|
|
@@ -10450,8 +10453,8 @@ const Ln = ({
|
|
|
10450
10453
|
...r,
|
|
10451
10454
|
[A.name]: i
|
|
10452
10455
|
}), h();
|
|
10453
|
-
},
|
|
10454
|
-
o(
|
|
10456
|
+
}, m = (v) => {
|
|
10457
|
+
o(v.target.value), A.validation && c(A.validation(v.target.value));
|
|
10455
10458
|
};
|
|
10456
10459
|
return /* @__PURE__ */ t(
|
|
10457
10460
|
zA,
|
|
@@ -10657,10 +10660,10 @@ const Ln = ({
|
|
|
10657
10660
|
}, C1 = (A, e) => {
|
|
10658
10661
|
const n = A.filter(Qi);
|
|
10659
10662
|
return Ea(n);
|
|
10660
|
-
}, f1 = (A) => A.filter((e) => e.category_guid === e.top_level_category_guid),
|
|
10663
|
+
}, f1 = (A) => A.filter((e) => e.category_guid === e.top_level_category_guid), m1 = (A, e) => {
|
|
10661
10664
|
const n = typeof A == "string" ? parseFloat(A.replace(/[^0-9.-]+/g, "")) : A, a = typeof e == "string" ? parseFloat(e.replace(/[^0-9.-]+/g, "")) : e;
|
|
10662
10665
|
return (n || 0) - (a || 0);
|
|
10663
|
-
},
|
|
10666
|
+
}, v1 = (A, e) => {
|
|
10664
10667
|
const n = ea.includes(e) ? h1(A) : [], a = ta.includes(e) ? g1(A) : [], r = na.includes(e) ? C1(A) : [];
|
|
10665
10668
|
return [n, a, r].filter((i) => i.length > 0);
|
|
10666
10669
|
}, On = {
|
|
@@ -10682,7 +10685,7 @@ const Ln = ({
|
|
|
10682
10685
|
}
|
|
10683
10686
|
return o;
|
|
10684
10687
|
}, y1 = () => {
|
|
10685
|
-
const A = ze(), { selectedAccount: e } = se(), { monthlyCategoryTotals: n } = xA(), a = [A.palette.chart?.chart1, A.palette.chart?.chart2], r =
|
|
10688
|
+
const A = ze(), { selectedAccount: e } = se(), { monthlyCategoryTotals: n } = xA(), a = [A.palette.chart?.chart1, A.palette.chart?.chart2], r = v1(n, e.account_type), i = p1(r, e.account_type), o = [Q.LOAN, Q.MORTGAGE].includes(e.account_type);
|
|
10686
10689
|
return /* @__PURE__ */ t("div", { "data-testid": "TrendsChart", children: /* @__PURE__ */ t(
|
|
10687
10690
|
ra,
|
|
10688
10691
|
{
|
|
@@ -10765,7 +10768,7 @@ const Ln = ({
|
|
|
10765
10768
|
}, I1 = (A) => ({
|
|
10766
10769
|
list_aria: `${A[0]} accounts`
|
|
10767
10770
|
}), D1 = () => {
|
|
10768
|
-
const [A, e] = g.useState(""), { selectedAccounts: n } =
|
|
10771
|
+
const [A, e] = g.useState(""), { selectedAccounts: n } = mA(), { setSelectedAccount: a, setSelectedMember: r } = se(), { members: i } = DA(), { onEvent: o } = Y(), s = [...new Set(n.map((l) => l.account_type))], c = n.find((l) => A === l.guid);
|
|
10769
10772
|
return g.useEffect(() => {
|
|
10770
10773
|
if (c) {
|
|
10771
10774
|
a(c);
|
|
@@ -10774,13 +10777,13 @@ const Ln = ({
|
|
|
10774
10777
|
}
|
|
10775
10778
|
}, [c, A]), /* @__PURE__ */ u(S, { sx: { pt: 24 }, children: [
|
|
10776
10779
|
s.map((l) => {
|
|
10777
|
-
const d = n.filter((
|
|
10778
|
-
(
|
|
10780
|
+
const d = n.filter((m) => m.account_type === l), h = d.reduce(
|
|
10781
|
+
(m, v) => (v.available_balance || v.balance || 0) + m,
|
|
10779
10782
|
0
|
|
10780
|
-
), C = Gt[d[0].account_type], f = (
|
|
10781
|
-
e(
|
|
10782
|
-
account_guid:
|
|
10783
|
-
account_type:
|
|
10783
|
+
), C = Gt[d[0].account_type], f = (m) => {
|
|
10784
|
+
e(m.guid), o(J.ACCOUNTS_CLICK_ACCOUNT, {
|
|
10785
|
+
account_guid: m.guid,
|
|
10786
|
+
account_type: m.account_type
|
|
10784
10787
|
});
|
|
10785
10788
|
};
|
|
10786
10789
|
return /* @__PURE__ */ t(
|
|
@@ -10799,18 +10802,18 @@ const Ln = ({
|
|
|
10799
10802
|
]
|
|
10800
10803
|
}
|
|
10801
10804
|
) }),
|
|
10802
|
-
children: /* @__PURE__ */ t(Ia, { children: d.map((
|
|
10803
|
-
const
|
|
10805
|
+
children: /* @__PURE__ */ t(Ia, { children: d.map((m) => {
|
|
10806
|
+
const v = n.indexOf(m) === n.length - 1, E = d.indexOf(m) === d.length - 1;
|
|
10804
10807
|
return /* @__PURE__ */ u(g.Fragment, { children: [
|
|
10805
10808
|
/* @__PURE__ */ t(
|
|
10806
10809
|
hn,
|
|
10807
10810
|
{
|
|
10808
|
-
account:
|
|
10809
|
-
onRowClick: () => f(
|
|
10811
|
+
account: m,
|
|
10812
|
+
onRowClick: () => f(m),
|
|
10810
10813
|
shouldShowConnectionStatus: !0
|
|
10811
10814
|
}
|
|
10812
10815
|
),
|
|
10813
|
-
!
|
|
10816
|
+
!v && /* @__PURE__ */ t(
|
|
10814
10817
|
q,
|
|
10815
10818
|
{
|
|
10816
10819
|
sx: {
|
|
@@ -10819,7 +10822,7 @@ const Ln = ({
|
|
|
10819
10822
|
}
|
|
10820
10823
|
}
|
|
10821
10824
|
)
|
|
10822
|
-
] },
|
|
10825
|
+
] }, m.guid);
|
|
10823
10826
|
}) })
|
|
10824
10827
|
},
|
|
10825
10828
|
l
|
|
@@ -10887,7 +10890,7 @@ const Ln = ({
|
|
|
10887
10890
|
sync_accounts: "Sync Accounts",
|
|
10888
10891
|
no_accounts: "No accounts available"
|
|
10889
10892
|
}, N1 = ({ onBackClick: A, sx: e = {} }) => {
|
|
10890
|
-
const [n, a] = g.useState(!1), [r, i] = g.useState(!1), { accounts: o, refreshMembers: s } = DA(), { setSelectedAccounts: c, selectedAccountGuids: l } =
|
|
10893
|
+
const [n, a] = g.useState(!1), [r, i] = g.useState(!1), { accounts: o, refreshMembers: s } = DA(), { setSelectedAccounts: c, selectedAccountGuids: l } = mA(), { isDesktop: d } = jA(), { onEvent: h } = Y();
|
|
10891
10894
|
g.useEffect(() => {
|
|
10892
10895
|
c(o);
|
|
10893
10896
|
}, [o]);
|
|
@@ -10935,7 +10938,7 @@ const Ln = ({
|
|
|
10935
10938
|
}
|
|
10936
10939
|
);
|
|
10937
10940
|
}, z7 = x(N1), M1 = (A, e) => A.filter((n) => e.includes(n.guid)).slice(0, 3), R1 = ({ onPrimaryCtaClick: A, sx: e }) => {
|
|
10938
|
-
const { accounts: n } = DA(), { selectedAccountGuids: a } =
|
|
10941
|
+
const { accounts: n } = DA(), { selectedAccountGuids: a } = mA(), [r, i] = g.useState(n), o = {
|
|
10939
10942
|
title: "Accounts",
|
|
10940
10943
|
primary_cta: "View Accounts",
|
|
10941
10944
|
no_accounts: "No available accounts"
|
|
@@ -11755,7 +11758,7 @@ const Or = {
|
|
|
11755
11758
|
},
|
|
11756
11759
|
shouldShowZeroState: n
|
|
11757
11760
|
}) => {
|
|
11758
|
-
const a = fA(), { budgets: r } = nn(), { categories: i } = xA(), { isInitialized: o } =
|
|
11761
|
+
const a = fA(), { budgets: r } = nn(), { categories: i } = xA(), { isInitialized: o } = mA(), { availableHeight: s, availableWidth: c } = bt(), [l, d] = g.useState(!1), h = g.useMemo(
|
|
11759
11762
|
() => k1(r, i, a),
|
|
11760
11763
|
[r, s, c]
|
|
11761
11764
|
), [C, f] = g.useMemo(() => [450, c - 24], [s, c]);
|
|
@@ -11804,7 +11807,7 @@ const zt = {
|
|
|
11804
11807
|
good_morning: "Good morning!",
|
|
11805
11808
|
heres_your_spending_overview: "Here's your monthly financial overview."
|
|
11806
11809
|
}, rh = () => {
|
|
11807
|
-
const { accounts: A } = DA(), { selectedAccountGuids: e, setSelectedAccountGuids: n } =
|
|
11810
|
+
const { accounts: A } = DA(), { selectedAccountGuids: e, setSelectedAccountGuids: n } = mA(), { isMobile: a } = jA(), { common: r } = W(), i = {
|
|
11808
11811
|
accountFilterOptionsCopy: {
|
|
11809
11812
|
accountTypeAccounts: "_1{accountType} accounts",
|
|
11810
11813
|
cancelButton: r.cancel_button,
|
|
@@ -11843,7 +11846,7 @@ const zt = {
|
|
|
11843
11846
|
)
|
|
11844
11847
|
] }) });
|
|
11845
11848
|
}, ih = x(rh), oh = ({ widgets: A, isLoading: e }) => {
|
|
11846
|
-
const { isDesktop: n, isMobile: a } = jA(), { copyStore: r } = an(), { setSelectedAccounts: i } =
|
|
11849
|
+
const { isDesktop: n, isMobile: a } = jA(), { copyStore: r } = an(), { setSelectedAccounts: i } = mA(), { accounts: o } = DA();
|
|
11847
11850
|
g.useEffect(() => {
|
|
11848
11851
|
i(o);
|
|
11849
11852
|
}, [o]);
|
|
@@ -12060,7 +12063,7 @@ const zt = {
|
|
|
12060
12063
|
};
|
|
12061
12064
|
return /* @__PURE__ */ t(ji.Provider, { value: { toastState: e, showToast: a, hideToast: r, setMessage: i }, children: A });
|
|
12062
12065
|
}, Wi = () => {
|
|
12063
|
-
const A =
|
|
12066
|
+
const A = mo(ji);
|
|
12064
12067
|
if (!A)
|
|
12065
12068
|
throw new Error("useToast must be used within a ToastProvider");
|
|
12066
12069
|
return A;
|
|
@@ -12166,25 +12169,25 @@ const Yi = ({
|
|
|
12166
12169
|
he(() => {
|
|
12167
12170
|
f && !r && d(c);
|
|
12168
12171
|
}, [f, r, c, d]);
|
|
12169
|
-
const
|
|
12172
|
+
const m = (w) => {
|
|
12170
12173
|
const { name: I, checked: D } = w.target;
|
|
12171
12174
|
d((O) => ({
|
|
12172
12175
|
...O,
|
|
12173
12176
|
[I]: D
|
|
12174
12177
|
}));
|
|
12175
|
-
},
|
|
12178
|
+
}, v = Object.values(l).filter(Boolean).length, E = () => {
|
|
12176
12179
|
d(c), i();
|
|
12177
12180
|
}, L = () => {
|
|
12178
12181
|
const w = e.reduce(
|
|
12179
12182
|
(I, D) => ({
|
|
12180
12183
|
...I,
|
|
12181
|
-
[D.name]:
|
|
12184
|
+
[D.name]: v !== e.length
|
|
12182
12185
|
}),
|
|
12183
12186
|
{}
|
|
12184
12187
|
);
|
|
12185
12188
|
d(w);
|
|
12186
12189
|
}, b = () => {
|
|
12187
|
-
const w =
|
|
12190
|
+
const w = v === e.length;
|
|
12188
12191
|
n(
|
|
12189
12192
|
Object.keys(l).filter((I) => l[I]),
|
|
12190
12193
|
w
|
|
@@ -12247,7 +12250,7 @@ const Yi = ({
|
|
|
12247
12250
|
fontSize: 13,
|
|
12248
12251
|
minWidth: 0
|
|
12249
12252
|
},
|
|
12250
|
-
children:
|
|
12253
|
+
children: v === e.length ? A.unselect_all : A.select_all
|
|
12251
12254
|
}
|
|
12252
12255
|
)
|
|
12253
12256
|
]
|
|
@@ -12280,7 +12283,7 @@ const Yi = ({
|
|
|
12280
12283
|
role: "checkbox"
|
|
12281
12284
|
},
|
|
12282
12285
|
name: w.name,
|
|
12283
|
-
onChange:
|
|
12286
|
+
onChange: m,
|
|
12284
12287
|
size: "small"
|
|
12285
12288
|
}
|
|
12286
12289
|
)
|
|
@@ -12318,12 +12321,12 @@ const Yi = ({
|
|
|
12318
12321
|
ai,
|
|
12319
12322
|
{
|
|
12320
12323
|
color: "primary",
|
|
12321
|
-
disabled:
|
|
12324
|
+
disabled: v === 0,
|
|
12322
12325
|
fullWidth: !0,
|
|
12323
12326
|
loading: r,
|
|
12324
12327
|
onClick: b,
|
|
12325
12328
|
variant: "contained",
|
|
12326
|
-
children:
|
|
12329
|
+
children: v > 0 ? `${A.show} ${v} ${v > 1 ? A.hidden_insights : A.hidden_insight}` : A.show_insights
|
|
12327
12330
|
}
|
|
12328
12331
|
)
|
|
12329
12332
|
]
|
|
@@ -12402,13 +12405,13 @@ const Yi = ({
|
|
|
12402
12405
|
e,
|
|
12403
12406
|
n
|
|
12404
12407
|
];
|
|
12405
|
-
},
|
|
12408
|
+
}, mh = ({ content: A, disabledBeatTemplatesStore: e }) => {
|
|
12406
12409
|
const {
|
|
12407
12410
|
items: n,
|
|
12408
12411
|
update: a,
|
|
12409
12412
|
isUpdateError: r,
|
|
12410
12413
|
isUpdateLoading: i
|
|
12411
|
-
} = e, [o, s, c] = fh(n), { toastState: l, showToast: d, hideToast: h, setMessage: C } = Wi(), [f,
|
|
12414
|
+
} = e, [o, s, c] = fh(n), { toastState: l, showToast: d, hideToast: h, setMessage: C } = Wi(), [f, m] = g.useState(!1), [v, E] = g.useState(!1), [L, b] = g.useState(""), [w, I] = g.useState(""), D = hi(i);
|
|
12412
12415
|
he(() => {
|
|
12413
12416
|
D && !i && (r ? d(A.something_went_wrong, "error") : d(void 0, "success"));
|
|
12414
12417
|
}, [D, r]);
|
|
@@ -12430,7 +12433,7 @@ const Yi = ({
|
|
|
12430
12433
|
iconName: "visibility_off_outlined",
|
|
12431
12434
|
itemCount: n.length,
|
|
12432
12435
|
label: A.manage_hidden_insights,
|
|
12433
|
-
onClick: () =>
|
|
12436
|
+
onClick: () => m(!0)
|
|
12434
12437
|
}
|
|
12435
12438
|
),
|
|
12436
12439
|
/* @__PURE__ */ u(
|
|
@@ -12438,7 +12441,7 @@ const Yi = ({
|
|
|
12438
12441
|
{
|
|
12439
12442
|
ariaLabelClose: A.close,
|
|
12440
12443
|
isOpen: f,
|
|
12441
|
-
onClose: () =>
|
|
12444
|
+
onClose: () => m(!1),
|
|
12442
12445
|
shouldShowHeaderBorders: !1,
|
|
12443
12446
|
sx: {
|
|
12444
12447
|
"& .MuiDrawer-paper": {
|
|
@@ -12518,7 +12521,7 @@ const Yi = ({
|
|
|
12518
12521
|
content: A,
|
|
12519
12522
|
disabledBeatTemplates: w !== "" ? o.filter((R) => R.key === L)[0].subcategories.filter((R) => R.key === w)[0].beats : [],
|
|
12520
12523
|
handleEnableBeatTemplates: B,
|
|
12521
|
-
isOpen:
|
|
12524
|
+
isOpen: v,
|
|
12522
12525
|
isUpdateLoading: i,
|
|
12523
12526
|
onClose: $,
|
|
12524
12527
|
translatedSubCatetgory: c[w]
|
|
@@ -12533,12 +12536,12 @@ const Yi = ({
|
|
|
12533
12536
|
disabledBeatTemplatesStore: e,
|
|
12534
12537
|
useDarkMode: n = !1
|
|
12535
12538
|
}) => /* @__PURE__ */ t(Aa, { theme: Lt(n ? "dark" : "light"), children: /* @__PURE__ */ t(ch, { children: /* @__PURE__ */ t(
|
|
12536
|
-
|
|
12539
|
+
mh,
|
|
12537
12540
|
{
|
|
12538
12541
|
content: A,
|
|
12539
12542
|
disabledBeatTemplatesStore: e
|
|
12540
12543
|
}
|
|
12541
|
-
) }) }),
|
|
12544
|
+
) }) }), vh = ({
|
|
12542
12545
|
children: A,
|
|
12543
12546
|
content: e,
|
|
12544
12547
|
isOpen: n = !1,
|
|
@@ -12558,7 +12561,7 @@ const Yi = ({
|
|
|
12558
12561
|
A
|
|
12559
12562
|
] })
|
|
12560
12563
|
}
|
|
12561
|
-
) }), F7 = x(
|
|
12564
|
+
) }), F7 = x(vh), U7 = ({
|
|
12562
12565
|
accountGuid: A,
|
|
12563
12566
|
animation: e,
|
|
12564
12567
|
leftLowerText: n,
|
|
@@ -12579,7 +12582,7 @@ const Yi = ({
|
|
|
12579
12582
|
},
|
|
12580
12583
|
padding: o ? "12px 16px 12px 16px" : "32px 16px 16px 16px"
|
|
12581
12584
|
}, C = /* @__PURE__ */ t(
|
|
12582
|
-
|
|
12585
|
+
vA,
|
|
12583
12586
|
{
|
|
12584
12587
|
bold: !0,
|
|
12585
12588
|
"data-ui-test": "mx-insights-sudd-full-feed-body-header-text",
|
|
@@ -12602,7 +12605,7 @@ const Yi = ({
|
|
|
12602
12605
|
width: h.logoSize
|
|
12603
12606
|
}
|
|
12604
12607
|
),
|
|
12605
|
-
/* @__PURE__ */ t(
|
|
12608
|
+
/* @__PURE__ */ t(vA, { bold: !0, "data-ui-test": "mx-insights-sudd-mini-body-header-text", children: s })
|
|
12606
12609
|
]
|
|
12607
12610
|
}
|
|
12608
12611
|
);
|
|
@@ -12616,26 +12619,26 @@ const Yi = ({
|
|
|
12616
12619
|
position: "relative",
|
|
12617
12620
|
width: "calc(100%-32px)"
|
|
12618
12621
|
},
|
|
12619
|
-
children: /* @__PURE__ */ t(Ms, { children: ({ height:
|
|
12622
|
+
children: /* @__PURE__ */ t(Ms, { children: ({ height: m, width: v }) => /* @__PURE__ */ u(g.Fragment, { children: [
|
|
12620
12623
|
/* @__PURE__ */ t(
|
|
12621
12624
|
Ns,
|
|
12622
12625
|
{
|
|
12623
12626
|
"aria-hidden": !0,
|
|
12624
12627
|
colors: ["#3F9FEB", "#C331B6", "#30C434", "#F1CE31", "#EE3B7C"],
|
|
12625
12628
|
confettiSource: {
|
|
12626
|
-
x:
|
|
12627
|
-
y:
|
|
12629
|
+
x: v / 2,
|
|
12630
|
+
y: m / 2,
|
|
12628
12631
|
w: 20,
|
|
12629
12632
|
h: 20
|
|
12630
12633
|
},
|
|
12631
12634
|
gravity: 0.05,
|
|
12632
|
-
height:
|
|
12635
|
+
height: m,
|
|
12633
12636
|
initialVelocityX: 7,
|
|
12634
12637
|
initialVelocityY: 8,
|
|
12635
12638
|
numberOfPieces: 200,
|
|
12636
12639
|
recycle: !1,
|
|
12637
12640
|
run: e.shouldRun,
|
|
12638
|
-
width:
|
|
12641
|
+
width: v
|
|
12639
12642
|
}
|
|
12640
12643
|
),
|
|
12641
12644
|
!o && /* @__PURE__ */ t(
|
|
@@ -12647,7 +12650,7 @@ const Yi = ({
|
|
|
12647
12650
|
position: "absolute",
|
|
12648
12651
|
right: 0,
|
|
12649
12652
|
top: 0,
|
|
12650
|
-
width:
|
|
12653
|
+
width: v,
|
|
12651
12654
|
zIndex: 10
|
|
12652
12655
|
},
|
|
12653
12656
|
children: /* @__PURE__ */ t(
|
|
@@ -12677,7 +12680,7 @@ const Yi = ({
|
|
|
12677
12680
|
left: 16,
|
|
12678
12681
|
padding: h.padding,
|
|
12679
12682
|
top: 24,
|
|
12680
|
-
width:
|
|
12683
|
+
width: v
|
|
12681
12684
|
},
|
|
12682
12685
|
children: [
|
|
12683
12686
|
o ? f : C,
|
|
@@ -12702,7 +12705,7 @@ const Yi = ({
|
|
|
12702
12705
|
},
|
|
12703
12706
|
children: [
|
|
12704
12707
|
/* @__PURE__ */ t(
|
|
12705
|
-
|
|
12708
|
+
vA,
|
|
12706
12709
|
{
|
|
12707
12710
|
"data-ui-test": "mx-insights-sudd-left-upper-text",
|
|
12708
12711
|
sx: { color: d.palette.secondary.darker },
|
|
@@ -12710,7 +12713,7 @@ const Yi = ({
|
|
|
12710
12713
|
children: a
|
|
12711
12714
|
}
|
|
12712
12715
|
),
|
|
12713
|
-
/* @__PURE__ */ t(
|
|
12716
|
+
/* @__PURE__ */ t(vA, { bold: !0, "data-ui-test": "mx-insights-sudd-left-lower-text", variant: "Small", children: n })
|
|
12714
12717
|
]
|
|
12715
12718
|
}
|
|
12716
12719
|
),
|
|
@@ -12728,7 +12731,7 @@ const Yi = ({
|
|
|
12728
12731
|
},
|
|
12729
12732
|
children: [
|
|
12730
12733
|
/* @__PURE__ */ t(
|
|
12731
|
-
|
|
12734
|
+
vA,
|
|
12732
12735
|
{
|
|
12733
12736
|
"data-ui-test": "mx-insights-sudd-right-upper-text",
|
|
12734
12737
|
sx: { color: d.palette.secondary.darker },
|
|
@@ -12737,7 +12740,7 @@ const Yi = ({
|
|
|
12737
12740
|
}
|
|
12738
12741
|
),
|
|
12739
12742
|
/* @__PURE__ */ t(
|
|
12740
|
-
|
|
12743
|
+
vA,
|
|
12741
12744
|
{
|
|
12742
12745
|
bold: !0,
|
|
12743
12746
|
"data-ui-test": "mx-insights-sudd-right-lower-text",
|
|
@@ -12814,7 +12817,7 @@ const Ta = {
|
|
|
12814
12817
|
...A,
|
|
12815
12818
|
[Vi(e)]: {
|
|
12816
12819
|
action: pe.MICRO_BEAT_CLICKED,
|
|
12817
|
-
category:
|
|
12820
|
+
category: ve.BEAT_INTERACTION,
|
|
12818
12821
|
label: La(e),
|
|
12819
12822
|
value: ee
|
|
12820
12823
|
}
|
|
@@ -12825,7 +12828,7 @@ const Ta = {
|
|
|
12825
12828
|
...A,
|
|
12826
12829
|
[Ji(e)]: {
|
|
12827
12830
|
action: pe.MICRO_BEAT_DISPLAYED,
|
|
12828
|
-
category:
|
|
12831
|
+
category: ve.BEAT_INTERACTION,
|
|
12829
12832
|
label: La(e),
|
|
12830
12833
|
value: ee
|
|
12831
12834
|
}
|
|
@@ -12836,18 +12839,18 @@ const Ta = {
|
|
|
12836
12839
|
...A,
|
|
12837
12840
|
[Zi(e)]: {
|
|
12838
12841
|
action: pe.MICRO_BEAT_DISPLAYED_FIRST_TIME,
|
|
12839
|
-
category:
|
|
12842
|
+
category: ve.BEAT_INTERACTION,
|
|
12840
12843
|
label: La(e),
|
|
12841
12844
|
value: ee
|
|
12842
12845
|
}
|
|
12843
12846
|
}),
|
|
12844
12847
|
{}
|
|
12845
|
-
),
|
|
12848
|
+
), me = {
|
|
12846
12849
|
CARD: "Card",
|
|
12847
12850
|
CAROUSEL_CONTROL: "Carousel Control",
|
|
12848
12851
|
MICRO_WIDGET: "Micro Widget",
|
|
12849
12852
|
VIEW_MORE: "View More"
|
|
12850
|
-
},
|
|
12853
|
+
}, ve = {
|
|
12851
12854
|
MICRO_WIDGET_INTERACTION: "Micro Widget Interaction",
|
|
12852
12855
|
BEAT_INTERACTION: "Beat Interaction"
|
|
12853
12856
|
}, te = {
|
|
@@ -12873,21 +12876,21 @@ const Ta = {
|
|
|
12873
12876
|
MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS: "Micro Widget Carousel No Relevant Insights"
|
|
12874
12877
|
}, Mr = {
|
|
12875
12878
|
[De.MICRO_WIDGET_CAROUSEL]: {
|
|
12876
|
-
label:
|
|
12879
|
+
label: me.MICRO_WIDGET,
|
|
12877
12880
|
name: De.MICRO_WIDGET_CAROUSEL,
|
|
12878
12881
|
path: Nr.INSIGHTS_MICRO_WIDGET,
|
|
12879
12882
|
value: ee
|
|
12880
12883
|
},
|
|
12881
12884
|
// zero state
|
|
12882
12885
|
[De.MICRO_WIDGET_CAROUSEL_ZERO_STATE]: {
|
|
12883
|
-
label:
|
|
12886
|
+
label: me.MICRO_WIDGET,
|
|
12884
12887
|
name: De.MICRO_WIDGET_CAROUSEL_ZERO_STATE,
|
|
12885
12888
|
path: Nr.INSIGHTS_MICRO_WIDGET,
|
|
12886
12889
|
value: ee
|
|
12887
12890
|
},
|
|
12888
12891
|
// no relevant cards
|
|
12889
12892
|
[De.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS]: {
|
|
12890
|
-
label:
|
|
12893
|
+
label: me.MICRO_WIDGET,
|
|
12891
12894
|
name: De.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS,
|
|
12892
12895
|
path: "/micro-widget",
|
|
12893
12896
|
value: ee
|
|
@@ -12896,39 +12899,39 @@ const Ta = {
|
|
|
12896
12899
|
// carousel control interaction events - clicks and swipes
|
|
12897
12900
|
[te.ON_CAROUSEL_BACK_CLICK]: {
|
|
12898
12901
|
action: pe.CONTROL_BACKWARD,
|
|
12899
|
-
category:
|
|
12900
|
-
label:
|
|
12902
|
+
category: ve.MICRO_WIDGET_INTERACTION,
|
|
12903
|
+
label: me.CAROUSEL_CONTROL,
|
|
12901
12904
|
value: ee
|
|
12902
12905
|
},
|
|
12903
12906
|
[te.ON_CAROUSEL_FORWARD_CLICK]: {
|
|
12904
12907
|
action: pe.CONTROL_FORWARD,
|
|
12905
|
-
category:
|
|
12906
|
-
label:
|
|
12908
|
+
category: ve.MICRO_WIDGET_INTERACTION,
|
|
12909
|
+
label: me.CAROUSEL_CONTROL,
|
|
12907
12910
|
value: ee
|
|
12908
12911
|
},
|
|
12909
12912
|
[te.ON_CAROUSEL_BACK_SWIPE]: {
|
|
12910
12913
|
action: pe.SWIPE_BACKWARD,
|
|
12911
|
-
category:
|
|
12912
|
-
label:
|
|
12914
|
+
category: ve.MICRO_WIDGET_INTERACTION,
|
|
12915
|
+
label: me.CAROUSEL_CONTROL,
|
|
12913
12916
|
value: ee
|
|
12914
12917
|
},
|
|
12915
12918
|
[te.ON_CAROUSEL_FORWARD_SWIPE]: {
|
|
12916
12919
|
action: pe.SWIPE_FORWARD,
|
|
12917
|
-
category:
|
|
12918
|
-
label:
|
|
12920
|
+
category: ve.MICRO_WIDGET_INTERACTION,
|
|
12921
|
+
label: me.CAROUSEL_CONTROL,
|
|
12919
12922
|
value: ee
|
|
12920
12923
|
},
|
|
12921
12924
|
// read more card events
|
|
12922
12925
|
[te.ON_VIEW_MORE_CLICKED]: {
|
|
12923
12926
|
action: pe.MICRO_BEAT_CLICKED,
|
|
12924
|
-
category:
|
|
12925
|
-
label:
|
|
12927
|
+
category: ve.BEAT_INTERACTION,
|
|
12928
|
+
label: me.VIEW_MORE,
|
|
12926
12929
|
value: ee
|
|
12927
12930
|
},
|
|
12928
12931
|
[$i.ON_VIEW_MORE_VIEWED]: {
|
|
12929
12932
|
action: pe.MICRO_BEAT_DISPLAYED,
|
|
12930
|
-
category:
|
|
12931
|
-
label:
|
|
12933
|
+
category: ve.BEAT_INTERACTION,
|
|
12934
|
+
label: me.VIEW_MORE,
|
|
12932
12935
|
value: ee
|
|
12933
12936
|
},
|
|
12934
12937
|
...yh(),
|
|
@@ -13860,22 +13863,22 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
13860
13863
|
variant: h,
|
|
13861
13864
|
widthOverrides: C
|
|
13862
13865
|
}) => {
|
|
13863
|
-
const f = window.app?.config.client_guid, { ref:
|
|
13866
|
+
const f = window.app?.config.client_guid, { ref: m, inView: v } = ri({
|
|
13864
13867
|
threshold: to
|
|
13865
13868
|
}), { cardsCopy: E } = Ue(), { onEvent: L } = Ot(), { updateBeat: b } = zh();
|
|
13866
13869
|
he(() => {
|
|
13867
|
-
|
|
13870
|
+
v && (n.has_been_displayed ? L(Ji(n.template)) : (b({
|
|
13868
13871
|
...n,
|
|
13869
13872
|
has_been_displayed: !0
|
|
13870
13873
|
}), L(Zi(n.template))));
|
|
13871
|
-
}, [
|
|
13872
|
-
l?.capture &&
|
|
13874
|
+
}, [v]), he(() => {
|
|
13875
|
+
l?.capture && v && n && f && l.capture("micro_widget_viewed_insight", {
|
|
13873
13876
|
beat_guid: n.guid,
|
|
13874
13877
|
insight_template: n.template,
|
|
13875
13878
|
position: o,
|
|
13876
13879
|
$groups: { client: f }
|
|
13877
13880
|
});
|
|
13878
|
-
}, [n, f, l, o,
|
|
13881
|
+
}, [n, f, l, o, v]);
|
|
13879
13882
|
const w = () => {
|
|
13880
13883
|
c && c(n), L(Vi(n.template)), l?.capture && f && l.capture("micro_widget_clicked_insight", {
|
|
13881
13884
|
beat_guid: n.guid,
|
|
@@ -13904,7 +13907,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
13904
13907
|
),
|
|
13905
13908
|
isActiveCard: s,
|
|
13906
13909
|
onCardClick: w,
|
|
13907
|
-
ref:
|
|
13910
|
+
ref: m,
|
|
13908
13911
|
showCTAColocatedWithText: r,
|
|
13909
13912
|
showIcon: d,
|
|
13910
13913
|
title: n.micro_title && n.micro_title.length > 0 ? n.micro_title : n.title,
|
|
@@ -13939,15 +13942,15 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
13939
13942
|
)
|
|
13940
13943
|
}
|
|
13941
13944
|
),
|
|
13942
|
-
Array.from({ length: n }).map((f,
|
|
13945
|
+
Array.from({ length: n }).map((f, m) => /* @__PURE__ */ t(
|
|
13943
13946
|
"div",
|
|
13944
13947
|
{
|
|
13945
13948
|
className: "mx-insights-micro-carousel-dots",
|
|
13946
13949
|
style: {
|
|
13947
|
-
backgroundColor:
|
|
13950
|
+
backgroundColor: m === e ? C : h
|
|
13948
13951
|
}
|
|
13949
13952
|
},
|
|
13950
|
-
`carousel-button-${
|
|
13953
|
+
`carousel-button-${m}`
|
|
13951
13954
|
)),
|
|
13952
13955
|
/* @__PURE__ */ t(
|
|
13953
13956
|
HA,
|
|
@@ -13996,7 +13999,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
13996
13999
|
variant: l,
|
|
13997
14000
|
widthOverrides: d
|
|
13998
14001
|
}) => {
|
|
13999
|
-
const h = Xh(a, c, d), C = g.useRef(null), [f,
|
|
14002
|
+
const h = Xh(a, c, d), C = g.useRef(null), [f, m] = g.useState(0), [v, E] = g.useState(null), [L, b] = g.useState(null), { carouselCopy: w } = Ue(), { onEvent: I } = Ot(), D = () => {
|
|
14000
14003
|
I(te.ON_CAROUSEL_FORWARD_CLICK), C.current && C.current.scrollTo({
|
|
14001
14004
|
left: (
|
|
14002
14005
|
// Adds the flex gap to the carousel ulRef's width
|
|
@@ -14012,10 +14015,10 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14012
14015
|
behavior: "smooth"
|
|
14013
14016
|
});
|
|
14014
14017
|
}, k = () => {
|
|
14015
|
-
C.current &&
|
|
14018
|
+
C.current && m(C.current.scrollLeft);
|
|
14016
14019
|
}, $ = () => {
|
|
14017
|
-
if (!L || !
|
|
14018
|
-
L -
|
|
14020
|
+
if (!L || !v) return;
|
|
14021
|
+
L - v > Hh ? I(te.ON_CAROUSEL_FORWARD_SWIPE) : I(te.ON_CAROUSEL_BACK_SWIPE);
|
|
14019
14022
|
}, B = (rA) => {
|
|
14020
14023
|
E(rA.targetTouches[0].clientX);
|
|
14021
14024
|
}, R = (rA) => {
|
|
@@ -14121,14 +14124,14 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14121
14124
|
style: h = {},
|
|
14122
14125
|
fontColors: C = {},
|
|
14123
14126
|
title: f,
|
|
14124
|
-
variant:
|
|
14125
|
-
widthOverrides:
|
|
14127
|
+
variant: m,
|
|
14128
|
+
widthOverrides: v
|
|
14126
14129
|
}, E) {
|
|
14127
14130
|
const [L, b] = g.useState(1);
|
|
14128
14131
|
g.useEffect(() => {
|
|
14129
|
-
|
|
14130
|
-
}, [
|
|
14131
|
-
const { cardStyle: w, linkTextStyle: I } = h, D =
|
|
14132
|
+
v && v <= 325 && b(3), v && v > 325 && b(2);
|
|
14133
|
+
}, [v]);
|
|
14134
|
+
const { cardStyle: w, linkTextStyle: I } = h, D = m ? w : { border: "none", boxShadow: "none", ...w }, O = Qh(
|
|
14132
14135
|
D,
|
|
14133
14136
|
r,
|
|
14134
14137
|
C,
|
|
@@ -14147,13 +14150,13 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14147
14150
|
tabIndex: c ? 0 : -1,
|
|
14148
14151
|
children: [
|
|
14149
14152
|
n && /* @__PURE__ */ t("span", { "aria-label": n, style: { visibility: "hidden" } }),
|
|
14150
|
-
/* @__PURE__ */ u(Je, { className: "mx-micro-card", sx: { backgroundColor: a }, variant:
|
|
14153
|
+
/* @__PURE__ */ u(Je, { className: "mx-micro-card", sx: { backgroundColor: a }, variant: m, children: [
|
|
14151
14154
|
/* @__PURE__ */ t(
|
|
14152
14155
|
Qn,
|
|
14153
14156
|
{
|
|
14154
14157
|
avatar: d && s,
|
|
14155
14158
|
subheader: /* @__PURE__ */ t("div", { className: "mx-micro-content-container", children: /* @__PURE__ */ t(
|
|
14156
|
-
|
|
14159
|
+
vA,
|
|
14157
14160
|
{
|
|
14158
14161
|
className: "mx-micro-card-description",
|
|
14159
14162
|
color: C.textColor ? "undefined" : "text.primary",
|
|
@@ -14330,8 +14333,8 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14330
14333
|
showCarouselControls: h,
|
|
14331
14334
|
showHeader: C,
|
|
14332
14335
|
showIcon: f,
|
|
14333
|
-
showWithMargin:
|
|
14334
|
-
token:
|
|
14336
|
+
showWithMargin: m = !0,
|
|
14337
|
+
token: v = "",
|
|
14335
14338
|
useDarkMode: E,
|
|
14336
14339
|
userHasFullInsightFeedBeats: L,
|
|
14337
14340
|
variant: b,
|
|
@@ -14339,8 +14342,8 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14339
14342
|
}) => {
|
|
14340
14343
|
const [I, D] = de("STANDARD"), [O, k] = de(!1), $ = ec([s], ke), B = tc([c], ke);
|
|
14341
14344
|
g.useEffect(() => {
|
|
14342
|
-
ke.initialize(r,
|
|
14343
|
-
}, [r,
|
|
14345
|
+
ke.initialize(r, v);
|
|
14346
|
+
}, [r, v]), g.useEffect(() => {
|
|
14344
14347
|
const K = window.innerHeight;
|
|
14345
14348
|
K < 180 ? D("STANDARD") : K >= 180 && K < 200 ? D("LARGE") : K >= 200 && K < 248 ? D("XLARGE") : K >= 248 && D("XXLARGE");
|
|
14346
14349
|
}, []), g.useEffect(() => {
|
|
@@ -14351,7 +14354,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14351
14354
|
heightOverrides: i,
|
|
14352
14355
|
onCardClick: o,
|
|
14353
14356
|
showIcon: f,
|
|
14354
|
-
showWithMargin:
|
|
14357
|
+
showWithMargin: m,
|
|
14355
14358
|
useDarkMode: E,
|
|
14356
14359
|
widthOverrides: w
|
|
14357
14360
|
}, z = {
|
|
@@ -14417,7 +14420,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14417
14420
|
g.useEffect(() => {
|
|
14418
14421
|
C(De.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS);
|
|
14419
14422
|
}, []);
|
|
14420
|
-
const
|
|
14423
|
+
const m = () => {
|
|
14421
14424
|
r && r(), h(te.ON_NO_RELEVANT_INSIGHTS_CLICKED), i?.capture && f && i.capture("micro_widget_clicked_insight", {
|
|
14422
14425
|
insight_template: "no_relevant_insights",
|
|
14423
14426
|
$groups: { client: f }
|
|
@@ -14432,7 +14435,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14432
14435
|
fontColors: { buttonColor: n?.primary_300 },
|
|
14433
14436
|
heightOverrides: a,
|
|
14434
14437
|
icon: /* @__PURE__ */ t(Ao, {}),
|
|
14435
|
-
onCardClick:
|
|
14438
|
+
onCardClick: m,
|
|
14436
14439
|
showIcon: o,
|
|
14437
14440
|
style: {
|
|
14438
14441
|
cardStyle: {
|
|
@@ -14467,17 +14470,17 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14467
14470
|
}) => {
|
|
14468
14471
|
const l = SA(), d = window.app?.config.client_guid, { ref: h, inView: C } = ri({
|
|
14469
14472
|
threshold: to
|
|
14470
|
-
}), { cardsCopy: f } = Ue(), { onEvent:
|
|
14473
|
+
}), { cardsCopy: f } = Ue(), { onEvent: m } = Ot();
|
|
14471
14474
|
he(() => {
|
|
14472
|
-
C &&
|
|
14475
|
+
C && m($i.ON_VIEW_MORE_VIEWED);
|
|
14473
14476
|
}, [C]), he(() => {
|
|
14474
14477
|
i?.capture && C && d && i.capture("micro_widget_viewed_insight", {
|
|
14475
14478
|
insight_template: "read_more_card",
|
|
14476
14479
|
$groups: { client: d }
|
|
14477
14480
|
});
|
|
14478
14481
|
}, [d, i, C]);
|
|
14479
|
-
const
|
|
14480
|
-
r && r(),
|
|
14482
|
+
const v = () => {
|
|
14483
|
+
r && r(), m(te.ON_VIEW_MORE_CLICKED), i?.capture && d && i.capture("micro_widget_clicked_insight", {
|
|
14481
14484
|
insight_template: "read_more_card",
|
|
14482
14485
|
$groups: { client: d }
|
|
14483
14486
|
});
|
|
@@ -14497,7 +14500,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14497
14500
|
}
|
|
14498
14501
|
),
|
|
14499
14502
|
isActiveCard: A,
|
|
14500
|
-
onCardClick:
|
|
14503
|
+
onCardClick: v,
|
|
14501
14504
|
ref: h,
|
|
14502
14505
|
showIcon: o,
|
|
14503
14506
|
title: f.view_more_card_title,
|
|
@@ -14687,11 +14690,11 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14687
14690
|
const c = at(), { isTablet: l } = jA(), d = {
|
|
14688
14691
|
view_transactions: "View Transactions"
|
|
14689
14692
|
}, h = g.useMemo(
|
|
14690
|
-
() => r ? A.categoryData.find((
|
|
14693
|
+
() => r ? A.categoryData.find((v) => v.guid === r) : void 0,
|
|
14691
14694
|
[r]
|
|
14692
14695
|
), C = g.useMemo(() => A.donutData.length > 0 ? A.donutData : [{ id: "0", color: c.palette.border.light, value: 100 }], [A, c]), f = () => {
|
|
14693
14696
|
a?.(r);
|
|
14694
|
-
},
|
|
14697
|
+
}, m = l ? 32 : 48;
|
|
14695
14698
|
return /* @__PURE__ */ t(wc, { data: C, onClick: n, selectedId: r, size: i, children: /* @__PURE__ */ t(T, { alignItems: "center", height: "100%", justifyContent: "center", width: "100%", children: /* @__PURE__ */ u(T, { alignItems: "center", justifyContent: "center", minHeight: i, minWidth: i, children: [
|
|
14696
14699
|
h && /* @__PURE__ */ u(
|
|
14697
14700
|
T,
|
|
@@ -14707,7 +14710,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14707
14710
|
{
|
|
14708
14711
|
categoryGuid: e ? p.INCOME : h.guid,
|
|
14709
14712
|
color: h.color,
|
|
14710
|
-
size: s === "mini" ? 24 :
|
|
14713
|
+
size: s === "mini" ? 24 : m,
|
|
14711
14714
|
variant: Xr.Transparent
|
|
14712
14715
|
}
|
|
14713
14716
|
),
|
|
@@ -14751,7 +14754,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14751
14754
|
total_income: "Total Income",
|
|
14752
14755
|
total_spending: "Total Spending"
|
|
14753
14756
|
}, d3 = () => {
|
|
14754
|
-
const A = fA(), { selectedAccounts: e } =
|
|
14757
|
+
const A = fA(), { selectedAccounts: e } = mA(), n = g.useMemo(
|
|
14755
14758
|
() => [
|
|
14756
14759
|
A.palette.chartMono.chartMono5,
|
|
14757
14760
|
A.palette.chartMono.chartMono4,
|
|
@@ -14775,10 +14778,10 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14775
14778
|
), h = g.useMemo(
|
|
14776
14779
|
() => ro(a, r, n),
|
|
14777
14780
|
[a, r, n]
|
|
14778
|
-
), C = (
|
|
14779
|
-
l(
|
|
14780
|
-
}, f = (
|
|
14781
|
-
s(o ===
|
|
14781
|
+
), C = (m, v) => {
|
|
14782
|
+
l(v), s("");
|
|
14783
|
+
}, f = (m) => {
|
|
14784
|
+
s(o === m ? "" : m);
|
|
14782
14785
|
};
|
|
14783
14786
|
return /* @__PURE__ */ u(S, { width: "100%", children: [
|
|
14784
14787
|
/* @__PURE__ */ u(rt, { onChange: C, value: c, variant: "fullWidth", children: [
|
|
@@ -14971,15 +14974,15 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14971
14974
|
income_tab_title: "Income",
|
|
14972
14975
|
transactions_drawer_title: "Transactions",
|
|
14973
14976
|
transaction_details_drawer_title: "Transaction Details"
|
|
14974
|
-
},
|
|
14977
|
+
}, m3 = (A) => [
|
|
14975
14978
|
A.palette.chartMono.chartMono5,
|
|
14976
14979
|
A.palette.chartMono.chartMono4,
|
|
14977
14980
|
A.palette.chartMono.chartMono3,
|
|
14978
14981
|
A.palette.chartMono.chartMono2,
|
|
14979
14982
|
A.palette.chartMono.chartMono1,
|
|
14980
14983
|
A.palette.chartMono.chartMono6
|
|
14981
|
-
],
|
|
14982
|
-
const A = at(), { categories: e, dateRangeCategoryTotals: n, loadDateRangeCategoryTotals: a } = xA(), { selectedAccountGuids: r } =
|
|
14984
|
+
], v3 = () => {
|
|
14985
|
+
const A = at(), { categories: e, dateRangeCategoryTotals: n, loadDateRangeCategoryTotals: a } = xA(), { selectedAccountGuids: r } = mA(), { displayedDateRange: i, selectedAccounts: o } = mA(), { setFilter: s, sortedTransactions: c } = uA(), [l, d] = g.useState(""), [h, C] = g.useState(0), [f, m] = g.useState(""), [v, E] = g.useState(!1);
|
|
14983
14986
|
g.useEffect(() => {
|
|
14984
14987
|
a(
|
|
14985
14988
|
o,
|
|
@@ -14991,7 +14994,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14991
14994
|
() => ao(e, n),
|
|
14992
14995
|
[e, n]
|
|
14993
14996
|
), b = g.useMemo(
|
|
14994
|
-
() => ro(e, n,
|
|
14997
|
+
() => ro(e, n, m3(A)),
|
|
14995
14998
|
[e, n]
|
|
14996
14999
|
), w = g.useMemo(
|
|
14997
15000
|
() => c.find((k) => k.guid === f),
|
|
@@ -15063,10 +15066,10 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15063
15066
|
hA,
|
|
15064
15067
|
{
|
|
15065
15068
|
ariaLabelClose: Ie.close_drawer_aria,
|
|
15066
|
-
isOpen:
|
|
15069
|
+
isOpen: v,
|
|
15067
15070
|
onClose: () => E(!1),
|
|
15068
15071
|
title: Ie.transactions_drawer_title,
|
|
15069
|
-
children: /* @__PURE__ */ t(It, { onClick:
|
|
15072
|
+
children: /* @__PURE__ */ t(It, { onClick: m })
|
|
15070
15073
|
}
|
|
15071
15074
|
),
|
|
15072
15075
|
/* @__PURE__ */ t(
|
|
@@ -15074,16 +15077,16 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15074
15077
|
{
|
|
15075
15078
|
ariaLabelClose: Ie.close_drawer_aria,
|
|
15076
15079
|
isOpen: !!w,
|
|
15077
|
-
onClose: () =>
|
|
15080
|
+
onClose: () => m(""),
|
|
15078
15081
|
title: Ie.transaction_details_drawer_title,
|
|
15079
15082
|
children: w && /* @__PURE__ */ t(ln, { transaction: w })
|
|
15080
15083
|
}
|
|
15081
15084
|
)
|
|
15082
15085
|
] });
|
|
15083
|
-
}, p3 = x(
|
|
15086
|
+
}, p3 = x(v3), y3 = {
|
|
15084
15087
|
title: "Spending"
|
|
15085
15088
|
}, E3 = ({ onBackClick: A, sx: e = {} }) => {
|
|
15086
|
-
const { accounts: n } = DA(), { isInitialized: a, setDisplayedDate: r, setSelectedAccounts: i } =
|
|
15089
|
+
const { accounts: n } = DA(), { isInitialized: a, setDisplayedDate: r, setSelectedAccounts: i } = mA(), { onEvent: o } = Y(), [s, c] = g.useState(!1);
|
|
15087
15090
|
g.useEffect(() => {
|
|
15088
15091
|
i(n);
|
|
15089
15092
|
}, [n]), g.useEffect(() => {
|
|
@@ -15145,17 +15148,17 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15145
15148
|
sortable: !0,
|
|
15146
15149
|
hideSortIcons: !1,
|
|
15147
15150
|
type: "number",
|
|
15148
|
-
sortComparator:
|
|
15151
|
+
sortComparator: m1
|
|
15149
15152
|
})
|
|
15150
15153
|
)
|
|
15151
15154
|
], c = g.useMemo(() => {
|
|
15152
15155
|
const l = A.reduce(
|
|
15153
15156
|
(d, h) => {
|
|
15154
|
-
const { category_guid: C, top_level_category_guid: f, month:
|
|
15157
|
+
const { category_guid: C, top_level_category_guid: f, month: m, total: v, year: E } = h;
|
|
15155
15158
|
if (C === f) {
|
|
15156
15159
|
d[C] || (d[C] = { id: C, category: C });
|
|
15157
|
-
const L = j(new Date(E,
|
|
15158
|
-
d[C][L] =
|
|
15160
|
+
const L = j(new Date(E, m, 1), F.MONTH_SHORT);
|
|
15161
|
+
d[C][L] = v;
|
|
15159
15162
|
}
|
|
15160
15163
|
return d;
|
|
15161
15164
|
},
|
|
@@ -15182,7 +15185,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15182
15185
|
title: "Trends",
|
|
15183
15186
|
subTitle: "Transaction trends by category"
|
|
15184
15187
|
}, b3 = ({ onBackClick: A, sx: e }) => {
|
|
15185
|
-
const n = ze(), { isDesktop: a, isTablet: r, isMobile: i } = jA(), { accounts: o } = DA(), { categories: s, loadMonthlyCategoryTotals: c, monthlyCategoryTotals: l } = xA(), { isInitialized: d, selectedAccounts: h, setSelectedAccounts: C } =
|
|
15188
|
+
const n = ze(), { isDesktop: a, isTablet: r, isMobile: i } = jA(), { accounts: o } = DA(), { categories: s, loadMonthlyCategoryTotals: c, monthlyCategoryTotals: l } = xA(), { isInitialized: d, selectedAccounts: h, setSelectedAccounts: C } = mA(), f = n.palette.mode === "dark", [m, v] = g.useState(!1), [E, L] = g.useState("Chart"), [b, w] = g.useState({
|
|
15186
15189
|
start: LA(ye(/* @__PURE__ */ new Date(), 5)),
|
|
15187
15190
|
end: OA(/* @__PURE__ */ new Date())
|
|
15188
15191
|
}), I = (R, z) => {
|
|
@@ -15196,7 +15199,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15196
15199
|
b.start,
|
|
15197
15200
|
b.end
|
|
15198
15201
|
).finally(() => {
|
|
15199
|
-
|
|
15202
|
+
v(!0);
|
|
15200
15203
|
});
|
|
15201
15204
|
}, [s, d, h, w]);
|
|
15202
15205
|
const D = g.useMemo(
|
|
@@ -15215,7 +15218,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15215
15218
|
() => br(D.filter(ya)),
|
|
15216
15219
|
[s, l]
|
|
15217
15220
|
);
|
|
15218
|
-
return !d || !
|
|
15221
|
+
return !d || !m ? /* @__PURE__ */ t(Ce, {}) : /* @__PURE__ */ t(
|
|
15219
15222
|
Re,
|
|
15220
15223
|
{
|
|
15221
15224
|
accountOptions: o,
|
|
@@ -15374,7 +15377,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15374
15377
|
subTitle: "Your total spending over the last 6 months",
|
|
15375
15378
|
title: "Spending Overview"
|
|
15376
15379
|
}, P3 = ({ onPrimaryCtaClick: A, sx: e }) => {
|
|
15377
|
-
const { loadMonthlyCategoryTotals: n } = xA(), { isInitialized: a } = an(), { selectedAccounts: r } =
|
|
15380
|
+
const { loadMonthlyCategoryTotals: n } = xA(), { isInitialized: a } = an(), { selectedAccounts: r } = mA(), [i, o] = g.useState(!1);
|
|
15378
15381
|
return g.useEffect(() => {
|
|
15379
15382
|
a && n(r).finally(() => {
|
|
15380
15383
|
o(!0);
|
|
@@ -15414,7 +15417,7 @@ export {
|
|
|
15414
15417
|
qh as BeatCard,
|
|
15415
15418
|
qt as BottomActions,
|
|
15416
15419
|
K7 as BubbleBudgetsMiniWidget,
|
|
15417
|
-
|
|
15420
|
+
mc as Calendar,
|
|
15418
15421
|
Ci as CalendarSelectionTypes,
|
|
15419
15422
|
Uh as CarouselHeader,
|
|
15420
15423
|
pr as CashflowApi,
|
|
@@ -15463,11 +15466,11 @@ export {
|
|
|
15463
15466
|
j7 as InsightsMicroWidget,
|
|
15464
15467
|
Ih as InsightsMicroWidgetDataProvider,
|
|
15465
15468
|
Us as IterationItemTypes,
|
|
15466
|
-
|
|
15469
|
+
m7 as LOADING_STATUS,
|
|
15467
15470
|
ra as LineChart,
|
|
15468
15471
|
Xc as ListItemWrapper,
|
|
15469
15472
|
Ce as Loader,
|
|
15470
|
-
|
|
15473
|
+
v7 as LocalizedCopyApi,
|
|
15471
15474
|
X7 as ManageAccountsDrawer,
|
|
15472
15475
|
qi as ManageIncome,
|
|
15473
15476
|
Pe as MemberConnectionStatus,
|
|
@@ -15535,8 +15538,8 @@ export {
|
|
|
15535
15538
|
Zh as ViewMoreMicroCard,
|
|
15536
15539
|
Fa as WidgetApi,
|
|
15537
15540
|
Re as WidgetContainer,
|
|
15538
|
-
|
|
15539
|
-
|
|
15541
|
+
mi as WidgetContainerContext,
|
|
15542
|
+
vi as WidgetContainerProvider,
|
|
15540
15543
|
A3 as ZeroStateCard,
|
|
15541
15544
|
Ao as ZeroStateIcon,
|
|
15542
15545
|
zs as analyticsSession,
|
|
@@ -15563,7 +15566,7 @@ export {
|
|
|
15563
15566
|
Vu as useGetMergeableAccounts,
|
|
15564
15567
|
W as useGlobalCopyStore,
|
|
15565
15568
|
an as useGlobalStore,
|
|
15566
|
-
|
|
15569
|
+
mA as useGlobalUiStore,
|
|
15567
15570
|
_c as useMerchantStore,
|
|
15568
15571
|
Hc as useNetWorthStore,
|
|
15569
15572
|
yi as useNotificationStore,
|