@mx-cartographer/experiences 3.7.0-alpha.al13 → 3.7.0-alpha.al15
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
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 vo } 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 mo, P as mA, 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 mt } 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";
|
|
@@ -68,7 +68,7 @@ import Zo from "@mui/material/Radio";
|
|
|
68
68
|
import Te from "@mui/material/Avatar";
|
|
69
69
|
import PA from "@mui/material/ListItemAvatar";
|
|
70
70
|
import oe from "@mui/material/ListItemIcon";
|
|
71
|
-
import { makeAutoObservable as bA, runInAction as
|
|
71
|
+
import { makeAutoObservable as bA, runInAction as Y, observable as $o } from "mobx";
|
|
72
72
|
import { differenceInDays as As } from "date-fns/differenceInDays";
|
|
73
73
|
import { getMonth as We } from "date-fns/getMonth";
|
|
74
74
|
import { useVirtualizer as Yr } from "@tanstack/react-virtual";
|
|
@@ -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 vn 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 vs } 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 ms } 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], v = g.cloneElement(f, {
|
|
185
185
|
key: `${h}-${s}`
|
|
186
186
|
});
|
|
187
|
-
c.push(
|
|
187
|
+
c.push(v);
|
|
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
|
+
], v7 = {
|
|
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 m7 {
|
|
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 mn = (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 vn = (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, v = !!e, m = Object.values(c).every((E) => !!E);
|
|
991
991
|
return /* @__PURE__ */ t(
|
|
992
992
|
bo,
|
|
993
993
|
{
|
|
@@ -997,7 +997,7 @@ const vn = (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: v,
|
|
1001
1001
|
sx: { maxHeight: 400, maxWidth: f ? "100%" : 300 },
|
|
1002
1002
|
transformOrigin: {
|
|
1003
1003
|
vertical: "top",
|
|
@@ -1015,9 +1015,9 @@ const vn = (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(mo, { size: 32 }),
|
|
1019
|
+
/* @__PURE__ */ t(mA, { bold: !0, mt: 12, children: n.zeroStateTitle }),
|
|
1020
|
+
/* @__PURE__ */ t(mA, { mt: 12, children: n.zeroStateDescription }),
|
|
1021
1021
|
/* @__PURE__ */ t(iA, { onClick: o, children: n.zeroStateButton })
|
|
1022
1022
|
]
|
|
1023
1023
|
}
|
|
@@ -1055,13 +1055,13 @@ const vn = (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: m,
|
|
1059
|
+
"data-ui-test": `checked-${m}`,
|
|
1060
1060
|
disableRipple: !0,
|
|
1061
1061
|
onChange: () => {
|
|
1062
1062
|
const E = {};
|
|
1063
1063
|
Object.keys(c).forEach((L) => {
|
|
1064
|
-
E[L] = !
|
|
1064
|
+
E[L] = !m;
|
|
1065
1065
|
}), l(E);
|
|
1066
1066
|
},
|
|
1067
1067
|
size: "small",
|
|
@@ -1073,7 +1073,7 @@ const vn = (A, e) => A.reduce((n, a) => (n[a.guid] = e?.includes(a.guid), n), {}
|
|
|
1073
1073
|
}
|
|
1074
1074
|
}
|
|
1075
1075
|
),
|
|
1076
|
-
label:
|
|
1076
|
+
label: m ? 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
|
+
mn(A, r)
|
|
1217
1217
|
);
|
|
1218
1218
|
g.useEffect(() => {
|
|
1219
|
-
C(
|
|
1219
|
+
C(mn(A, r));
|
|
1220
1220
|
}, [A, r]);
|
|
1221
|
-
const f = (
|
|
1222
|
-
d(
|
|
1223
|
-
},
|
|
1221
|
+
const f = (m) => {
|
|
1222
|
+
d(m.currentTarget);
|
|
1223
|
+
}, v = () => {
|
|
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: v,
|
|
1256
|
+
onAccountClick: (m) => {
|
|
1257
|
+
C({ ...h, [m.guid]: !h[m.guid] });
|
|
1258
1258
|
},
|
|
1259
|
-
onAccountGroupClick: (
|
|
1259
|
+
onAccountGroupClick: (m, E, L) => {
|
|
1260
1260
|
const b = { ...h };
|
|
1261
|
-
E[
|
|
1261
|
+
E[m].forEach((w) => {
|
|
1262
1262
|
b[w.guid] = !L;
|
|
1263
1263
|
}), C(b);
|
|
1264
1264
|
},
|
|
1265
1265
|
onCancelClick: () => {
|
|
1266
|
-
C(
|
|
1266
|
+
C(mn(A, r)), v();
|
|
1267
1267
|
},
|
|
1268
1268
|
onConnectAccountClick: a,
|
|
1269
1269
|
onFilterClick: () => {
|
|
1270
|
-
n(Object.keys(h).filter((
|
|
1270
|
+
n(Object.keys(h).filter((m) => h[m])), v();
|
|
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(), v = ic(f, h), m = 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 ${v}`, 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: m,
|
|
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, v = Math.max(...C), m = Math.min(...C), E = C.reduce(sc, 0), L = v >= 0, b = m < 0, w = Wa(L, b, r), I = Wa(b, L, r), D = lc(f, v, m, 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 vc = ({
|
|
1635
1635
|
copy: A,
|
|
1636
1636
|
beginDate: e = void 0,
|
|
1637
1637
|
endDate: n = void 0,
|
|
@@ -1640,11 +1640,11 @@ const mc = ({
|
|
|
1640
1640
|
selectionType: i = "Single"
|
|
1641
1641
|
/* Single */
|
|
1642
1642
|
}) => {
|
|
1643
|
-
const o = SA(), s =
|
|
1643
|
+
const o = SA(), s = mc(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 v = 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 mc = ({
|
|
|
1653
1653
|
I.push($);
|
|
1654
1654
|
}
|
|
1655
1655
|
return I;
|
|
1656
|
-
}, [c]),
|
|
1656
|
+
}, [c]), m = (w) => {
|
|
1657
1657
|
if (i !== "None") {
|
|
1658
1658
|
if (i === "Single") {
|
|
1659
1659
|
h(w), a?.(w);
|
|
@@ -1679,21 +1679,21 @@ const mc = ({
|
|
|
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: v[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
|
+
v.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: m
|
|
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
|
+
}, mc = (A) => GA({
|
|
1697
1697
|
width: fc,
|
|
1698
1698
|
"& .MuiPaper-root": {
|
|
1699
1699
|
paddingLeft: 24,
|
|
@@ -1864,7 +1864,7 @@ const mc = ({
|
|
|
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), v = Math.floor(Math.min(...C) / 100) * 100, m = Math.ceil(Math.max(...C) / 100) * 100, E = v * 0.95, L = m * 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 mc = ({
|
|
|
1892
1892
|
xAxis: [{ data: h, scaleType: i ? "band" : "point" }],
|
|
1893
1893
|
yAxis: [
|
|
1894
1894
|
{
|
|
1895
|
-
min:
|
|
1896
|
-
max:
|
|
1895
|
+
min: v,
|
|
1896
|
+
max: m || 100,
|
|
1897
1897
|
colorMap: o ? {
|
|
1898
1898
|
type: "continuous",
|
|
1899
1899
|
min: E,
|
|
@@ -1991,8 +1991,8 @@ const mc = ({
|
|
|
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 v = n.x, m = n.y;
|
|
1995
|
+
v + C.width * 2 > f.right ? v = n.x - C.width : v - C.width < f.left && (v = n.x), m + C.height * 2 > f.bottom && (m = n.y - C.height), s({ x: v, y: m });
|
|
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 mc = ({
|
|
|
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, v] = 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: m, hoveredAreaData: E, isAreaHovered: L, cursorPos: b } = f, w = L && m && 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 mc = ({
|
|
|
2141
2141
|
{
|
|
2142
2142
|
onMouseMove: (G) => {
|
|
2143
2143
|
const pA = G.currentTarget.getBoundingClientRect();
|
|
2144
|
-
|
|
2144
|
+
v((yA) => ({
|
|
2145
2145
|
...yA,
|
|
2146
2146
|
cursorPos: {
|
|
2147
2147
|
x: G.clientX - pA.left,
|
|
@@ -2166,7 +2166,7 @@ const mc = ({
|
|
|
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
|
+
v({
|
|
2170
2170
|
hoveredSeriesId: String(G.seriesId),
|
|
2171
2171
|
hoveredAreaData: null,
|
|
2172
2172
|
isAreaHovered: !1,
|
|
@@ -2177,14 +2177,14 @@ const mc = ({
|
|
|
2177
2177
|
x: O[fn],
|
|
2178
2178
|
y: Cn
|
|
2179
2179
|
})) ?? [];
|
|
2180
|
-
|
|
2180
|
+
v({
|
|
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
|
+
v({
|
|
2188
2188
|
hoveredSeriesId: null,
|
|
2189
2189
|
hoveredAreaData: null,
|
|
2190
2190
|
isAreaHovered: !1,
|
|
@@ -2198,10 +2198,10 @@ const mc = ({
|
|
|
2198
2198
|
}
|
|
2199
2199
|
},
|
|
2200
2200
|
slots: {
|
|
2201
|
-
itemContent: (G) => I &&
|
|
2201
|
+
itemContent: (G) => I && m ? /* @__PURE__ */ t(
|
|
2202
2202
|
Dc,
|
|
2203
2203
|
{
|
|
2204
|
-
categoryGuid: sA(
|
|
2204
|
+
categoryGuid: sA(m),
|
|
2205
2205
|
...G
|
|
2206
2206
|
}
|
|
2207
2207
|
) : null
|
|
@@ -2264,7 +2264,7 @@ const mc = ({
|
|
|
2264
2264
|
w && /* @__PURE__ */ t(
|
|
2265
2265
|
Ic,
|
|
2266
2266
|
{
|
|
2267
|
-
categoryGuid: sA(
|
|
2267
|
+
categoryGuid: sA(m),
|
|
2268
2268
|
chartContainerRef: d,
|
|
2269
2269
|
cursorPosition: b,
|
|
2270
2270
|
hoveredAreaData: E
|
|
@@ -2436,7 +2436,7 @@ const mc = ({
|
|
|
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, v] = g.useState(n.dateRangePickerCopy.dateRangeThisMonth), [m, 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 mc = ({
|
|
|
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) : mt(Ma(rA), 1), lA[1] = sA ? Ra(Na(rA), 1) : mt(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(m), I(
|
|
2466
2466
|
f === n.dateRangePickerCopy.dateRangeThisMonth || f === n.dateRangePickerCopy.dateRangeLastMonth
|
|
2467
|
-
), A.onRangeChanged(
|
|
2467
|
+
), A.onRangeChanged(m);
|
|
2468
2468
|
}, z = (K) => {
|
|
2469
2469
|
O(K);
|
|
2470
2470
|
};
|
|
@@ -2500,9 +2500,9 @@ const mc = ({
|
|
|
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(m[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(m[1], F.MONTH_DAY_YEAR) })
|
|
2506
2506
|
] }),
|
|
2507
2507
|
o !== "readonly" && o !== "timeframebuttons" && /* @__PURE__ */ u(
|
|
2508
2508
|
Yo,
|
|
@@ -2617,9 +2617,9 @@ const mc = ({
|
|
|
2617
2617
|
Da,
|
|
2618
2618
|
{
|
|
2619
2619
|
copy: n.dateRangePickerCopy,
|
|
2620
|
-
dateRange:
|
|
2620
|
+
dateRange: m,
|
|
2621
2621
|
onRangeChanged: (K, lA) => {
|
|
2622
|
-
E(K),
|
|
2622
|
+
E(K), v(lA);
|
|
2623
2623
|
},
|
|
2624
2624
|
selectedShortcut: f,
|
|
2625
2625
|
sx: { p: 16 }
|
|
@@ -2644,9 +2644,9 @@ const mc = ({
|
|
|
2644
2644
|
Da,
|
|
2645
2645
|
{
|
|
2646
2646
|
copy: n.dateRangePickerCopy,
|
|
2647
|
-
dateRange:
|
|
2647
|
+
dateRange: m,
|
|
2648
2648
|
onRangeChanged: (K, lA) => {
|
|
2649
|
-
E(K),
|
|
2649
|
+
E(K), v(lA);
|
|
2650
2650
|
},
|
|
2651
2651
|
selectedShortcut: f,
|
|
2652
2652
|
sx: {
|
|
@@ -2778,8 +2778,8 @@ const mc = ({
|
|
|
2778
2778
|
},
|
|
2779
2779
|
children: A
|
|
2780
2780
|
}
|
|
2781
|
-
),
|
|
2782
|
-
|
|
2781
|
+
), vi = g.createContext(null), mi = ({ children: A, availableHeight: e, availableWidth: n }) => /* @__PURE__ */ t(
|
|
2782
|
+
vi.Provider,
|
|
2783
2783
|
{
|
|
2784
2784
|
value: {
|
|
2785
2785
|
availableHeight: e,
|
|
@@ -2793,8 +2793,8 @@ const mc = ({
|
|
|
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, vA = () => 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, V = () => ({ onEvent: KA().onEvent }), T7 = () => ({ onPageView: KA().onPageView }), zc = (A = "useWidgetContainerContext") => {
|
|
2797
|
+
const e = g.useContext(vi);
|
|
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(mi, { 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: v }] = Ei(), { onEvent: m } = V(), { isDesktop: E, isMobile: L, isTablet: b } = jA(), { displayedDateRange: w, selectedAccountGuids: I, setSelectedAccountGuids: D } = vA(), { common: O } = W(), k = () => {
|
|
2880
|
+
c && (c(), m(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(mi, { availableHeight: f, availableWidth: v, 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(""), v = SA(), m = kc(v), 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(mA, { children: "$" }) : void 0,
|
|
3078
|
+
startAdornment: Me().includes("fr-ca") ? void 0 : /* @__PURE__ */ t(mA, { children: "$" })
|
|
3079
3079
|
},
|
|
3080
3080
|
"aria-label": e || r.enter_amount,
|
|
3081
|
-
className: `mx-cmn-currency-input ${
|
|
3081
|
+
className: `mx-cmn-currency-input ${m}`,
|
|
3082
3082
|
error: !!C,
|
|
3083
3083
|
helperText: C,
|
|
3084
3084
|
inputMode: A ? "decimal" : "numeric",
|
|
@@ -3298,7 +3298,7 @@ const qe = ({
|
|
|
3298
3298
|
onClick: n,
|
|
3299
3299
|
sx: a = {}
|
|
3300
3300
|
}) => {
|
|
3301
|
-
const { onEvent: r } =
|
|
3301
|
+
const { onEvent: r } = V();
|
|
3302
3302
|
return n ? /* @__PURE__ */ t(U, { sx: { bgcolor: "background.paper", ...a }, children: /* @__PURE__ */ t(
|
|
3303
3303
|
dA,
|
|
3304
3304
|
{
|
|
@@ -3326,14 +3326,14 @@ class Qc {
|
|
|
3326
3326
|
bA(this);
|
|
3327
3327
|
}
|
|
3328
3328
|
initialize = async (e, n) => {
|
|
3329
|
-
this.api = new Qt(e, n), await this.getCopy(this.featureNamespace),
|
|
3329
|
+
this.api = new Qt(e, n), await this.getCopy(this.featureNamespace), Y(() => {
|
|
3330
3330
|
this.isInitialized = !0;
|
|
3331
3331
|
});
|
|
3332
3332
|
};
|
|
3333
3333
|
getCopy = async (e, n = "") => {
|
|
3334
3334
|
try {
|
|
3335
3335
|
const a = await this.api.getGlobalCopy(e, n);
|
|
3336
|
-
|
|
3336
|
+
Y(() => {
|
|
3337
3337
|
this.copy = a[e];
|
|
3338
3338
|
});
|
|
3339
3339
|
} catch (a) {
|
|
@@ -3352,7 +3352,7 @@ class Fc {
|
|
|
3352
3352
|
};
|
|
3353
3353
|
loadBeats = async () => {
|
|
3354
3354
|
const e = await this.api.getBeats();
|
|
3355
|
-
|
|
3355
|
+
Y(() => {
|
|
3356
3356
|
this.beats = e;
|
|
3357
3357
|
});
|
|
3358
3358
|
};
|
|
@@ -3379,7 +3379,7 @@ class Uc {
|
|
|
3379
3379
|
loadBudgets = async () => {
|
|
3380
3380
|
try {
|
|
3381
3381
|
const e = await this.api.getBudgets();
|
|
3382
|
-
|
|
3382
|
+
Y(() => {
|
|
3383
3383
|
this.budgets = e.filter(
|
|
3384
3384
|
(n) => n.category_guid !== p.INCOME && n.category_guid !== p.TRANSFER
|
|
3385
3385
|
);
|
|
@@ -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 } = vA(), { 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: v, upcomingExpenses: m } = 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
|
+
v && h(v), f(m);
|
|
3428
|
+
}, [v, m]);
|
|
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, m]
|
|
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(mA, { 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(mA, { 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(mA, { 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(mA, { variant: "XSmall", whiteSpace: "nowrap", children: o.next_paycheck })
|
|
3471
3471
|
] }) : /* @__PURE__ */ t(
|
|
3472
3472
|
iA,
|
|
3473
3473
|
{
|
|
@@ -4149,7 +4149,7 @@ class cl {
|
|
|
4149
4149
|
};
|
|
4150
4150
|
addTransaction = async (e) => {
|
|
4151
4151
|
const n = await this.api.addTransaction(e);
|
|
4152
|
-
n &&
|
|
4152
|
+
n && Y(
|
|
4153
4153
|
() => this.transactions = this.augmentTransactions([n, ...this.transactions])
|
|
4154
4154
|
);
|
|
4155
4155
|
};
|
|
@@ -4161,19 +4161,19 @@ class cl {
|
|
|
4161
4161
|
);
|
|
4162
4162
|
loadAssociatedBeats = async (e) => {
|
|
4163
4163
|
const n = e ? Un(e, { representation: "date" }) : void 0, a = await this.beatApi.getBeatsWithAssociatedTransaction(n);
|
|
4164
|
-
|
|
4164
|
+
Y(() => this.associatedBeats = a);
|
|
4165
4165
|
};
|
|
4166
4166
|
loadTags = async () => {
|
|
4167
4167
|
const e = await this.api.getTags();
|
|
4168
|
-
|
|
4168
|
+
Y(() => this.tags = e);
|
|
4169
4169
|
};
|
|
4170
4170
|
loadTaggings = async () => {
|
|
4171
4171
|
const e = await this.api.getTaggings();
|
|
4172
|
-
|
|
4172
|
+
Y(() => this.taggings = e);
|
|
4173
4173
|
};
|
|
4174
4174
|
loadTransactionRules = async () => {
|
|
4175
4175
|
const e = await this.api.getTransactionRules();
|
|
4176
|
-
|
|
4176
|
+
Y(() => this.transactionRules = e);
|
|
4177
4177
|
};
|
|
4178
4178
|
loadTransactions = async (e = this.cachedStartDate, n = Qe()) => {
|
|
4179
4179
|
this.setIsLoading(!0), this.transactions = [];
|
|
@@ -4182,7 +4182,7 @@ class cl {
|
|
|
4182
4182
|
CA(e),
|
|
4183
4183
|
CA(n)
|
|
4184
4184
|
);
|
|
4185
|
-
|
|
4185
|
+
Y(() => {
|
|
4186
4186
|
this.transactions = this.augmentTransactions(a);
|
|
4187
4187
|
});
|
|
4188
4188
|
} catch (a) {
|
|
@@ -4208,7 +4208,7 @@ class cl {
|
|
|
4208
4208
|
const n = this.transactions.findIndex((a) => a.guid === e);
|
|
4209
4209
|
if (n >= 0) {
|
|
4210
4210
|
const a = [...this.transactions];
|
|
4211
|
-
a.splice(n, 1),
|
|
4211
|
+
a.splice(n, 1), Y(() => this.transactions = a);
|
|
4212
4212
|
}
|
|
4213
4213
|
};
|
|
4214
4214
|
setFilter = (e) => {
|
|
@@ -4227,7 +4227,7 @@ class cl {
|
|
|
4227
4227
|
r.push(s);
|
|
4228
4228
|
}
|
|
4229
4229
|
const i = this.transactions.findIndex((o) => o.guid === e.guid);
|
|
4230
|
-
i >= 0 &&
|
|
4230
|
+
i >= 0 && Y(
|
|
4231
4231
|
() => this.transactions = this.augmentTransactions([
|
|
4232
4232
|
...this.transactions.slice(0, i),
|
|
4233
4233
|
a,
|
|
@@ -4245,7 +4245,7 @@ class cl {
|
|
|
4245
4245
|
s >= 0 && a.splice(s, 1);
|
|
4246
4246
|
});
|
|
4247
4247
|
const r = a.findIndex((o) => o.guid === e), i = a[r];
|
|
4248
|
-
i.has_been_split = !1, r >= 0 &&
|
|
4248
|
+
i.has_been_split = !1, r >= 0 && Y(
|
|
4249
4249
|
() => this.transactions = [
|
|
4250
4250
|
...a.slice(0, r),
|
|
4251
4251
|
i,
|
|
@@ -4269,7 +4269,7 @@ class cl {
|
|
|
4269
4269
|
};
|
|
4270
4270
|
updateTransaction = async (e) => {
|
|
4271
4271
|
const n = await this.api.updateTransaction(e), a = this.transactions.findIndex((r) => r.guid === e.guid);
|
|
4272
|
-
a >= 0 &&
|
|
4272
|
+
a >= 0 && Y(
|
|
4273
4273
|
() => this.transactions = this.augmentTransactions([
|
|
4274
4274
|
...this.transactions.slice(0, a),
|
|
4275
4275
|
n,
|
|
@@ -4366,10 +4366,10 @@ const WA = () => {
|
|
|
4366
4366
|
}, fl = (A) => {
|
|
4367
4367
|
const e = Li(A);
|
|
4368
4368
|
return Ge(e, 1);
|
|
4369
|
-
},
|
|
4369
|
+
}, vl = (A) => mt(A, 1), vt = (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, ml = ({
|
|
4373
4373
|
bgcolor: A,
|
|
4374
4374
|
height: e = "calc(100dvh - 36px)",
|
|
4375
4375
|
loader: n = /* @__PURE__ */ t(Ce, { label: "Loading", size: 40 }),
|
|
@@ -4379,7 +4379,7 @@ const WA = () => {
|
|
|
4379
4379
|
width: o = "100%",
|
|
4380
4380
|
zeroState: s = /* @__PURE__ */ t(ul, {})
|
|
4381
4381
|
}) => {
|
|
4382
|
-
const { isLoading: c, sortedTransactions: l } = uA(), { setShowInsights: d, toggleSplit: h } = WA(), { onEvent: C } =
|
|
4382
|
+
const { isLoading: c, sortedTransactions: l } = uA(), { setShowInsights: d, toggleSplit: h } = WA(), { onEvent: C } = V(), f = (E) => {
|
|
4383
4383
|
const L = l.find((b) => b.guid === E);
|
|
4384
4384
|
if (L?.has_been_split) {
|
|
4385
4385
|
h(L.guid);
|
|
@@ -4389,25 +4389,25 @@ const WA = () => {
|
|
|
4389
4389
|
account_guid: L?.account_guid,
|
|
4390
4390
|
transaction_guid: E
|
|
4391
4391
|
}), a?.(E);
|
|
4392
|
-
},
|
|
4392
|
+
}, v = g.useRef(null), m = Yr({
|
|
4393
4393
|
count: l.length,
|
|
4394
|
-
getScrollElement: () =>
|
|
4394
|
+
getScrollElement: () => v.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(() => m.measure(), [l]), g.useEffect(() => d(r), [r]), /* @__PURE__ */ t(oA, { children: /* @__PURE__ */ t(S, { height: e, overflow: "auto", ref: v, 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
|
+
m.getVirtualItems().length === 0 ? "auto" : m.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 && m.getVirtualItems().length === 0 && s,
|
|
4410
|
+
!c && !i && m.getVirtualItems().length > 0 && m.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(ml), 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) => {
|
|
@@ -4647,7 +4647,7 @@ const Il = ({
|
|
|
4647
4647
|
}
|
|
4648
4648
|
);
|
|
4649
4649
|
}, ha = x(Il), Dl = ({ parentCategory: A }) => {
|
|
4650
|
-
const [e, n] = g.useState(!1), { addCategory: a } = xA(), { categories: r } = W(), { onEvent: i } =
|
|
4650
|
+
const [e, n] = g.useState(!1), { addCategory: a } = xA(), { categories: r } = W(), { onEvent: i } = V(), { setShouldDisableDrawerScroll: o } = Fe(), s = async (d) => {
|
|
4651
4651
|
await a(d.trim(), A.guid), i(ne.ON_SUBCATEGORY_ADDED), n(!1);
|
|
4652
4652
|
}, c = async () => {
|
|
4653
4653
|
i(ne.ON_SUBCATEGORY_ADD_CLICK), o(!0), n(!0);
|
|
@@ -4677,7 +4677,7 @@ const Il = ({
|
|
|
4677
4677
|
subCategory: e,
|
|
4678
4678
|
showRename: n
|
|
4679
4679
|
}) => {
|
|
4680
|
-
const { updateCategory: a } = xA(), { onEvent: r } =
|
|
4680
|
+
const { updateCategory: a } = xA(), { onEvent: r } = V(), i = async (s) => {
|
|
4681
4681
|
await a({ ...e, name: s }), r(ne.ON_SUBCATEGORY_SAVED), A(!1);
|
|
4682
4682
|
}, o = () => {
|
|
4683
4683
|
A(!1), r(ne.ON_SUBCATEGORY_EDIT_CANCEL_CLICK);
|
|
@@ -4698,7 +4698,7 @@ const Il = ({
|
|
|
4698
4698
|
setShowDelete: n,
|
|
4699
4699
|
subCategory: a
|
|
4700
4700
|
}) => {
|
|
4701
|
-
const { onEvent: r } =
|
|
4701
|
+
const { onEvent: r } = V(), { removeCategory: i } = xA(), o = () => {
|
|
4702
4702
|
n(!1), r(ne.ON_SUBCATEGORY_DELETE_CLICK);
|
|
4703
4703
|
}, s = async () => {
|
|
4704
4704
|
r(ne.ON_SUBCATEGORY_DELETED), await i(a.guid), n(!1);
|
|
@@ -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 } =
|
|
4725
|
+
} = Fe(), { categories: l } = W(), { onEvent: d } = V(), [h, C] = g.useState(!1), [f, v] = g.useState(!1), m = !!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
|
+
m && /* @__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
|
+
v(!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: v,
|
|
4784
4784
|
showDelete: f,
|
|
4785
4785
|
subCategory: e
|
|
4786
4786
|
}
|
|
@@ -4823,7 +4823,7 @@ const Il = ({
|
|
|
4823
4823
|
}
|
|
4824
4824
|
);
|
|
4825
4825
|
}, zl = x(Hl), ql = ({ category: A, subCategories: e }) => {
|
|
4826
|
-
const { expandedGuid: n, searchValue: a, setExpandedGuid: r } = Fe(), { onEvent: i } =
|
|
4826
|
+
const { expandedGuid: n, searchValue: a, setExpandedGuid: r } = Fe(), { onEvent: i } = V(), o = A.guid === n, s = () => {
|
|
4827
4827
|
const c = A.guid !== n ? A.guid : null;
|
|
4828
4828
|
r(c), i(c ? ne.ON_CATEGORY_EXPANDED : ne.ON_CATEGORY_COLLAPSED);
|
|
4829
4829
|
};
|
|
@@ -4892,15 +4892,15 @@ const Il = ({
|
|
|
4892
4892
|
setSearchValue: h,
|
|
4893
4893
|
setSelectedGuid: C,
|
|
4894
4894
|
setShowSelected: f,
|
|
4895
|
-
setUnselectable:
|
|
4896
|
-
setUnselectableText:
|
|
4895
|
+
setUnselectable: v,
|
|
4896
|
+
setUnselectableText: m
|
|
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), v(a), m(r);
|
|
4904
4904
|
}, [A, n, a, r]), /* @__PURE__ */ u("div", { className: `mx-cat-category-selector ${i}`, children: [
|
|
4905
4905
|
/* @__PURE__ */ t(
|
|
4906
4906
|
on,
|
|
@@ -5027,7 +5027,7 @@ class Wl {
|
|
|
5027
5027
|
loadCategories = async () => {
|
|
5028
5028
|
try {
|
|
5029
5029
|
const e = await this.api.getCategories(), { default_categories: n } = this.globalStore.copyStore.copy.categories;
|
|
5030
|
-
|
|
5030
|
+
Y(() => {
|
|
5031
5031
|
this.categories = e.map((a) => ({
|
|
5032
5032
|
...a,
|
|
5033
5033
|
name: n[a.guid] ? n[a.guid].replace(/&/g, "&") : a.name
|
|
@@ -5045,7 +5045,7 @@ class Wl {
|
|
|
5045
5045
|
CA(a),
|
|
5046
5046
|
e
|
|
5047
5047
|
);
|
|
5048
|
-
|
|
5048
|
+
Y(() => {
|
|
5049
5049
|
this.dateRangeCategoryTotals = r, this.detailedCategories = this.augmentCategories(), this.setIsLoadingCategoryTotals(!1);
|
|
5050
5050
|
});
|
|
5051
5051
|
} catch (r) {
|
|
@@ -5056,7 +5056,7 @@ class Wl {
|
|
|
5056
5056
|
const r = CA(LA(n ?? ye(/* @__PURE__ */ new Date(), 5))), i = CA(OA(a ?? /* @__PURE__ */ new Date()));
|
|
5057
5057
|
try {
|
|
5058
5058
|
const o = await this.api.getMonthlyCategoryTotals(r, i, e);
|
|
5059
|
-
|
|
5059
|
+
Y(() => {
|
|
5060
5060
|
this.monthlyCategoryTotals = o, this.detailedCategories = this.augmentCategories();
|
|
5061
5061
|
});
|
|
5062
5062
|
} catch (o) {
|
|
@@ -5082,7 +5082,7 @@ class Wl {
|
|
|
5082
5082
|
};
|
|
5083
5083
|
}
|
|
5084
5084
|
const Si = ({ transaction: A }) => {
|
|
5085
|
-
const { addOrUpdateTransactionRule: e, updateTransaction: n } = uA(), { categories: a } = xA(), { onEvent: r } =
|
|
5085
|
+
const { addOrUpdateTransactionRule: e, updateTransaction: n } = uA(), { categories: a } = xA(), { onEvent: r } = V(), { setShouldDisableDrawerScroll: i, updateManualTransaction: o } = WA(), { transactions: s } = W(), [c, l] = g.useState(!1), [d, h] = g.useState(""), C = async (E) => {
|
|
5086
5086
|
await n({ ...A, category_guid: d }), E && await e(d, A), h(""), r(J.TRANSACTION_DETAILS_CLICK_CATEGORY, {
|
|
5087
5087
|
transaction_guid: A.guid
|
|
5088
5088
|
});
|
|
@@ -5097,10 +5097,10 @@ const Si = ({ transaction: A }) => {
|
|
|
5097
5097
|
});
|
|
5098
5098
|
} else
|
|
5099
5099
|
h(E);
|
|
5100
|
-
|
|
5101
|
-
},
|
|
5100
|
+
v();
|
|
5101
|
+
}, v = () => {
|
|
5102
5102
|
l(!1), i(!1);
|
|
5103
|
-
},
|
|
5103
|
+
}, m = 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: v,
|
|
5141
5141
|
onSelect: f,
|
|
5142
5142
|
showDrawer: c,
|
|
5143
5143
|
title: s.actions_select_a_category
|
|
@@ -5161,13 +5161,13 @@ 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
|
+
m?.name
|
|
5165
5165
|
) })
|
|
5166
5166
|
}
|
|
5167
5167
|
)
|
|
5168
5168
|
] });
|
|
5169
5169
|
}, bi = ({ transaction: A }) => {
|
|
5170
|
-
const e = SA(), { onEvent: n } =
|
|
5170
|
+
const e = SA(), { onEvent: n } = V(), { updateTransaction: a } = uA(), { updateManualTransaction: r } = WA(), { common: i, transactions: o } = W(), [s, c] = g.useState(!1), [l, d] = g.useState(A.date), h = (f) => {
|
|
5171
5171
|
d(CA(f));
|
|
5172
5172
|
}, C = async () => {
|
|
5173
5173
|
if (A.is_manual && !A.guid) {
|
|
@@ -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
|
+
vc,
|
|
5212
5212
|
{
|
|
5213
5213
|
beginDate: NA(l),
|
|
5214
5214
|
copy: {
|
|
@@ -5224,7 +5224,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5224
5224
|
)
|
|
5225
5225
|
] });
|
|
5226
5226
|
}, Yl = ({ transaction: A }) => {
|
|
5227
|
-
const { onEvent: e } =
|
|
5227
|
+
const { onEvent: e } = V(), { removeTransaction: n } = uA(), { setShouldDisableDrawerScroll: a } = WA(), { common: r, transactions: i } = W(), [o, s] = g.useState(!1), c = async () => {
|
|
5228
5228
|
await n(A.guid), e(M.ON_TRANSACTION_DELETE_DELETED);
|
|
5229
5229
|
};
|
|
5230
5230
|
return /* @__PURE__ */ u(S, { className: "mx-txn-delete", children: [
|
|
@@ -5264,7 +5264,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5264
5264
|
)
|
|
5265
5265
|
] });
|
|
5266
5266
|
}, Vl = ({ transaction: A }) => {
|
|
5267
|
-
const { onEvent: e } =
|
|
5267
|
+
const { onEvent: e } = V(), { updateTransaction: n } = uA(), { setShouldDisableDrawerScroll: a } = WA(), { common: r, transactions: i } = W(), [o, s] = g.useState(!1), c = async () => {
|
|
5268
5268
|
await n({ ...A, merchant_guid: "" }), e(J.TRANSACTION_DETAILS_CLICK_DELETE_LOGO, {
|
|
5269
5269
|
transaction_guid: A.guid
|
|
5270
5270
|
});
|
|
@@ -5304,7 +5304,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5304
5304
|
)
|
|
5305
5305
|
] });
|
|
5306
5306
|
}, Jl = ({ transaction: A }) => {
|
|
5307
|
-
const { onEvent: e } =
|
|
5307
|
+
const { onEvent: e } = V(), { updateTransaction: n } = uA(), { setShouldDisableDrawerScroll: a } = WA(), { common: r, transactions: i } = W(), [o, s] = g.useState(!1), c = A.is_hidden, l = async () => {
|
|
5308
5308
|
await n({ ...A, is_hidden: !A.is_hidden }), e(
|
|
5309
5309
|
c ? M.ON_TRANSACTION_UNHIDDEN : M.ON_TRANSACTION_HIDDEN
|
|
5310
5310
|
);
|
|
@@ -5393,7 +5393,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5393
5393
|
] })
|
|
5394
5394
|
] });
|
|
5395
5395
|
}, Di = ({ transaction: A }) => {
|
|
5396
|
-
const { onEvent: e } =
|
|
5396
|
+
const { onEvent: e } = V(), { updateTransaction: n } = uA(), { updateManualTransaction: a } = WA(), { common: r, transactions: i } = W(), [o, s] = g.useState(!1), [c, l] = g.useState("");
|
|
5397
5397
|
g.useEffect(() => {
|
|
5398
5398
|
o && l(A.memo ? A.memo : "");
|
|
5399
5399
|
}, [o]);
|
|
@@ -5460,8 +5460,8 @@ const Si = ({ transaction: A }) => {
|
|
|
5460
5460
|
onUpdateAmount: a,
|
|
5461
5461
|
split: r
|
|
5462
5462
|
}) => {
|
|
5463
|
-
const i = SA(), { onEvent: o } =
|
|
5464
|
-
isNaN(Number(
|
|
5463
|
+
const i = SA(), { onEvent: o } = V(), { transactions: s } = W(), [c, l] = g.useState(`${r.amount}`), [d, h] = g.useState(!1), C = A === 0, f = (v) => {
|
|
5464
|
+
isNaN(Number(v)) || (l(v), a(A, Number(v)));
|
|
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(vn, { alignItems: C ? "center" : "start", container: !0, children: [
|
|
5475
|
+
/* @__PURE__ */ t(vn, { 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(vn, { 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: (v) => {
|
|
5548
|
+
n(A, v), h(!1);
|
|
5549
5549
|
},
|
|
5550
5550
|
showDrawer: d,
|
|
5551
5551
|
title: s.actions_select_a_category
|
|
@@ -5562,7 +5562,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5562
5562
|
splits: r,
|
|
5563
5563
|
transaction: i
|
|
5564
5564
|
}) => {
|
|
5565
|
-
const o = SA(), { transactions: s } = W(), { onEvent: c } =
|
|
5565
|
+
const o = SA(), { transactions: s } = W(), { onEvent: c } = V(), [l, d] = g.useState("");
|
|
5566
5566
|
return g.useEffect(() => {
|
|
5567
5567
|
d(r.length <= 1 ? s.split_transaction_errors_min_splits : ""), d(
|
|
5568
5568
|
r[0].amount < 0 ? H(
|
|
@@ -5607,7 +5607,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5607
5607
|
) })
|
|
5608
5608
|
] });
|
|
5609
5609
|
}, Ad = ({ transaction: A }) => {
|
|
5610
|
-
const { onEvent: e } =
|
|
5610
|
+
const { onEvent: e } = V(), { splitTransaction: n, unSplitTransaction: a } = uA(), { common: r, transactions: i } = W(), { setShouldDisableDrawerScroll: o } = WA(), { categories: s } = xA(), c = {
|
|
5611
5611
|
...A,
|
|
5612
5612
|
amount: A.amount - 1,
|
|
5613
5613
|
guid: "",
|
|
@@ -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), [v, m] = g.useState([]), E = () => {
|
|
5626
|
+
const B = [...v];
|
|
5627
|
+
B.push({ ...l }), B[0].amount -= 1, m(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 = v[B], z = [...v];
|
|
5631
|
+
z.splice(B, 1), z[0].amount += R.amount, m(z);
|
|
5632
5632
|
}
|
|
5633
5633
|
}, b = (B, R) => {
|
|
5634
|
-
const z = [...
|
|
5634
|
+
const z = [...v];
|
|
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
|
+
), m(z);
|
|
5639
5639
|
}, w = (B, R) => {
|
|
5640
|
-
const z = [...
|
|
5640
|
+
const z = [...v], 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
|
+
}, m(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
|
+
m([{ ...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 }, v), h(!1);
|
|
5657
5657
|
}, O = async () => {
|
|
5658
|
-
e(M.ON_TRANSACTION_SPLIT_CANCEL_CLICK),
|
|
5658
|
+
e(M.ON_TRANSACTION_SPLIT_CANCEL_CLICK), m([{ ...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 = v.some((z) => !z.category_guid), R = v.some((z) => z.amount <= 0);
|
|
5667
5667
|
return B || R;
|
|
5668
|
-
}, [
|
|
5668
|
+
}, [v]);
|
|
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: v,
|
|
5702
5702
|
transaction: A
|
|
5703
5703
|
}
|
|
5704
5704
|
)
|
|
@@ -5727,7 +5727,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5727
5727
|
)
|
|
5728
5728
|
] });
|
|
5729
5729
|
}, ed = () => {
|
|
5730
|
-
const A = fA(), { onEvent: e } =
|
|
5730
|
+
const A = fA(), { onEvent: e } = V(), { addTag: n } = uA(), { transactions: a } = W(), [r, i] = g.useState(!1), [o, s] = g.useState(""), [c, l] = g.useState(""), d = g.useRef(null);
|
|
5731
5731
|
g.useEffect(() => {
|
|
5732
5732
|
r && d?.current?.focus();
|
|
5733
5733
|
}, [r]);
|
|
@@ -5784,7 +5784,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5784
5784
|
value: o
|
|
5785
5785
|
}
|
|
5786
5786
|
),
|
|
5787
|
-
/* @__PURE__ */ t(
|
|
5787
|
+
/* @__PURE__ */ t(mA, { 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 } =
|
|
5817
|
+
const { onEvent: a } = V(), { removeTag: r, updateTag: i } = uA(), { common: o, transactions: s } = W(), [c, l] = g.useState(!1), [d, h] = g.useState(!1), [C, f] = g.useState(""), [v, m] = 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
|
+
m(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": v ? "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(mA, { id: "update-tag-error", sx: { color: "error.main" }, variant: "ParagraphSmall", children: v })
|
|
5891
5891
|
]
|
|
5892
5892
|
}
|
|
5893
5893
|
),
|
|
@@ -5926,22 +5926,22 @@ const Si = ({ transaction: A }) => {
|
|
|
5926
5926
|
] }, o.guid)) }) })
|
|
5927
5927
|
] });
|
|
5928
5928
|
}, rd = x(ad), id = ({ transaction: A }) => {
|
|
5929
|
-
const { onEvent: e } =
|
|
5929
|
+
const { onEvent: e } = V(), { tags: n, updateTaggings: a, updateTransaction: r } = uA(), { common: i, transactions: o } = W(), { updateManualTransaction: s } = WA(), [c, l] = g.useState(!1), [d, h] = g.useState(A.tags);
|
|
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 = (m) => {
|
|
5934
|
+
const E = [...d], L = d.indexOf(m);
|
|
5935
|
+
L >= 0 ? E.splice(L, 1) : E.push(m), 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
|
+
}, v = g.useMemo(
|
|
5943
5943
|
() => A.tags.map(
|
|
5944
|
-
(
|
|
5944
|
+
(m, E, L) => `${n.find((b) => b.guid === m)?.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 ? v : o.tags_desc })
|
|
5963
5963
|
}
|
|
5964
5964
|
),
|
|
5965
5965
|
/* @__PURE__ */ t(oe, { children: /* @__PURE__ */ t(P, { name: "chevron_right", weight: BA.Dark }) })
|
|
@@ -5981,7 +5981,7 @@ const Si = ({ transaction: A }) => {
|
|
|
5981
5981
|
)
|
|
5982
5982
|
] });
|
|
5983
5983
|
}, Oi = x(id), od = ({ transaction: A }) => {
|
|
5984
|
-
const { updateTransaction: e } = uA(), { common: n, transactions: a } = W(), { onEvent: r } =
|
|
5984
|
+
const { updateTransaction: e } = uA(), { common: n, transactions: a } = W(), { onEvent: r } = V(), [i, o] = g.useState(!1), [s, c] = g.useState(""), l = g.useRef(null);
|
|
5985
5985
|
g.useEffect(() => {
|
|
5986
5986
|
i && (c(A.description), l?.current?.focus());
|
|
5987
5987
|
}, [i]);
|
|
@@ -6032,7 +6032,7 @@ const Si = ({ transaction: A }) => {
|
|
|
6032
6032
|
)
|
|
6033
6033
|
] }) });
|
|
6034
6034
|
}, sd = ({ transaction: A }) => {
|
|
6035
|
-
const { updateTransaction: e } = uA(), { transactions: n } = W(), { onEvent: a } =
|
|
6035
|
+
const { updateTransaction: e } = uA(), { transactions: n } = W(), { onEvent: a } = V(), r = fA(), i = async () => {
|
|
6036
6036
|
a(J.TRANSACTION_DETAILS_CLICK_FLAG, { transaction_guid: A.guid }), await e({ ...A, is_flagged: !A.is_flagged });
|
|
6037
6037
|
};
|
|
6038
6038
|
return /* @__PURE__ */ t("div", { className: "mx-txn-transaction-flag", children: /* @__PURE__ */ t(
|
|
@@ -6068,7 +6068,7 @@ const Si = ({ transaction: A }) => {
|
|
|
6068
6068
|
topActions: e = Vc,
|
|
6069
6069
|
transaction: n
|
|
6070
6070
|
}) => {
|
|
6071
|
-
const a = SA(), r = n?.number && n.number.length > 4, { onEvent: i } =
|
|
6071
|
+
const a = SA(), r = n?.number && n.number.length > 4, { onEvent: i } = V();
|
|
6072
6072
|
return g.useEffect(
|
|
6073
6073
|
() => i(J.TRANSACTION_DETAILS_VIEW, { transaction_guid: n.guid }),
|
|
6074
6074
|
[]
|
|
@@ -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", vd = {
|
|
6195
6195
|
close_drawer_aria: "Close drawer"
|
|
6196
|
-
},
|
|
6196
|
+
}, md = ({
|
|
6197
6197
|
loadWidgetProps: A,
|
|
6198
6198
|
onClose: e,
|
|
6199
6199
|
showConnectWidget: n,
|
|
@@ -6225,7 +6225,7 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
6225
6225
|
}), [n]), /* @__PURE__ */ t(
|
|
6226
6226
|
hA,
|
|
6227
6227
|
{
|
|
6228
|
-
ariaLabelClose:
|
|
6228
|
+
ariaLabelClose: vd.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", md = {
|
|
|
6237
6237
|
] })
|
|
6238
6238
|
}
|
|
6239
6239
|
);
|
|
6240
|
-
}, Ca = x(
|
|
6241
|
-
const { selectedAccounts: A } =
|
|
6240
|
+
}, Ca = x(md), pd = () => {
|
|
6241
|
+
const { selectedAccounts: A } = vA(), { 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", md = {
|
|
|
6253
6253
|
s(E), i({ ...a, amount: Number(E) });
|
|
6254
6254
|
}, f = (E, L) => {
|
|
6255
6255
|
i({ ...a, transaction_type: Number(L) });
|
|
6256
|
-
}, m = (E) => {
|
|
6257
|
-
l(E), i({ ...a, payee: E, description: E });
|
|
6258
6256
|
}, v = (E) => {
|
|
6257
|
+
l(E), i({ ...a, payee: E, description: E });
|
|
6258
|
+
}, m = (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", md = {
|
|
|
6308
6308
|
{
|
|
6309
6309
|
label: n.payee_title,
|
|
6310
6310
|
name: "payee",
|
|
6311
|
-
onChange: (E) =>
|
|
6311
|
+
onChange: (E) => v(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", md = {
|
|
|
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) => m(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", md = {
|
|
|
6389
6389
|
setSearchValue: d,
|
|
6390
6390
|
setShowInsights: h,
|
|
6391
6391
|
updateManualTransaction: C
|
|
6392
|
-
} = WA(), { addTransaction: f, filter:
|
|
6392
|
+
} = WA(), { addTransaction: f, filter: v, setFilter: m, tags: E, transactions: L, updateTransaction: b } = uA(), { common: w, transactions: I } = W(), { userProfile: D } = rn(), { onEvent: O } = V(), {
|
|
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
|
+
} = vA(), [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), m({
|
|
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 && m({
|
|
6410
|
+
...v,
|
|
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", md = {
|
|
|
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), m({
|
|
6424
|
+
...v,
|
|
6425
6425
|
searchTerm: IA
|
|
6426
6426
|
}), O(J.TRANSACTIONS_CLICK_SEARCH, { search_term: IA });
|
|
6427
6427
|
}, so = () => {
|
|
@@ -6620,7 +6620,7 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
6620
6620
|
frequency_every_year: "Yearly",
|
|
6621
6621
|
frequency_title: "Select payment frequency"
|
|
6622
6622
|
}, Td = ({ activity: A }) => {
|
|
6623
|
-
const { cashflowSequences: e, scheduledPayments: n, updateCashflowSequence: a, updateScheduledPayment: r } = kA(), { onEvent: i } =
|
|
6623
|
+
const { cashflowSequences: e, scheduledPayments: n, updateCashflowSequence: a, updateScheduledPayment: r } = kA(), { onEvent: i } = V(), [o, s] = g.useState(!1), c = A.activityType === EA.Income, l = [
|
|
6624
6624
|
{ id: _.EveryWeek, label: le.frequency_every_week },
|
|
6625
6625
|
{ id: _.EveryOtherWeek, label: le.frequency_every_other_week },
|
|
6626
6626
|
{ id: _.EveryMonth, label: le.frequency_every_month },
|
|
@@ -6629,13 +6629,13 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
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 v = { ...A, recurrenceType: f };
|
|
6633
6633
|
if (A.activityType === EA.Expense) {
|
|
6634
|
-
const
|
|
6635
|
-
|
|
6634
|
+
const m = n.find((E) => E.guid === A.scheduledPaymentGuid);
|
|
6635
|
+
m && await r(Pi(v, m));
|
|
6636
6636
|
} else {
|
|
6637
|
-
const
|
|
6638
|
-
|
|
6637
|
+
const m = e.find((E) => E.guid === A.sequenceGuid);
|
|
6638
|
+
m && await a(xi(v, m));
|
|
6639
6639
|
}
|
|
6640
6640
|
s(!1);
|
|
6641
6641
|
}, h = () => {
|
|
@@ -6689,7 +6689,7 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
6689
6689
|
activity_payment_date: "Next payment date",
|
|
6690
6690
|
close_drawer_aria: "Close"
|
|
6691
6691
|
}, Sd = ({ activity: A }) => {
|
|
6692
|
-
const { cashflowSequences: e, scheduledPayments: n, updateCashflowSequence: a, updateScheduledPayment: r } = kA(), { onEvent: i } =
|
|
6692
|
+
const { cashflowSequences: e, scheduledPayments: n, updateCashflowSequence: a, updateScheduledPayment: r } = kA(), { onEvent: i } = V(), [o, s] = g.useState(!1), [c, l] = g.useState(A.expectedDate), d = A.activityType === EA.Income, h = () => {
|
|
6693
6693
|
l(A.expectedDate), s(!0), i(
|
|
6694
6694
|
d ? "recurring_transactions_widget_income_details_click_next_payment_due" : "recurring_transactions_widget_expense_details_click_next_payment_due",
|
|
6695
6695
|
{
|
|
@@ -6699,11 +6699,11 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
6699
6699
|
}, C = async () => {
|
|
6700
6700
|
const f = { ...A, expectedDate: c };
|
|
6701
6701
|
if (A.activityType === EA.Expense) {
|
|
6702
|
-
const
|
|
6703
|
-
|
|
6702
|
+
const v = n.find((m) => m.guid === A.scheduledPaymentGuid);
|
|
6703
|
+
v && await r(Pi(f, v));
|
|
6704
6704
|
} else {
|
|
6705
|
-
const
|
|
6706
|
-
|
|
6705
|
+
const v = e.find((m) => m.guid === A.sequenceGuid);
|
|
6706
|
+
v && await a(xi(f, v));
|
|
6707
6707
|
}
|
|
6708
6708
|
s(!1);
|
|
6709
6709
|
};
|
|
@@ -6747,7 +6747,7 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
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 } = vA(), { onEvent: d } = V(), [h, C] = g.useState(!1), [f, v] = g.useState(""), m = 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", md = {
|
|
|
6806
6806
|
),
|
|
6807
6807
|
/* @__PURE__ */ t(q, { color: "secondary", variant: "inset" })
|
|
6808
6808
|
] }),
|
|
6809
|
-
|
|
6809
|
+
m && /* @__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: m.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", md = {
|
|
|
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: v }),
|
|
6838
6838
|
/* @__PURE__ */ t(
|
|
6839
6839
|
hA,
|
|
6840
6840
|
{
|
|
6841
6841
|
ariaLabelClose: JA.close_drawer_aria,
|
|
6842
6842
|
isOpen: !!f,
|
|
6843
|
-
onClose: () =>
|
|
6843
|
+
onClose: () => v(""),
|
|
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", md = {
|
|
|
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 } }) }), va = ({ 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 } }) }), ma = ({ 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", md = {
|
|
|
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 && vs(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", md = {
|
|
|
6904
6904
|
return a;
|
|
6905
6905
|
}, Od = (A) => {
|
|
6906
6906
|
if (A.activityType === EA.Income)
|
|
6907
|
-
return /* @__PURE__ */ t(
|
|
6907
|
+
return /* @__PURE__ */ t(va, {});
|
|
6908
6908
|
switch (A.activityStatus) {
|
|
6909
6909
|
case wA.Missed:
|
|
6910
|
-
return /* @__PURE__ */ t(
|
|
6910
|
+
return /* @__PURE__ */ t(ma, {});
|
|
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", md = {
|
|
|
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(mA, { 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", md = {
|
|
|
7171
7171
|
i(fl(d));
|
|
7172
7172
|
break;
|
|
7173
7173
|
case _.EveryYear:
|
|
7174
|
-
i(
|
|
7174
|
+
i(vl(d));
|
|
7175
7175
|
break;
|
|
7176
7176
|
}
|
|
7177
7177
|
r(Number(l.target.value));
|
|
@@ -7200,7 +7200,7 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
7200
7200
|
}
|
|
7201
7201
|
),
|
|
7202
7202
|
/* @__PURE__ */ t(Jn, { dateAdapter: tn, children: /* @__PURE__ */ t(
|
|
7203
|
-
|
|
7203
|
+
ms,
|
|
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", md = {
|
|
|
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, v] = g.useState(_.EveryMonth), [m, 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 || !m) {
|
|
7233
7233
|
I();
|
|
7234
7234
|
return;
|
|
7235
7235
|
}
|
|
7236
7236
|
if (A) {
|
|
7237
|
-
const D = Ni(L, f,
|
|
7237
|
+
const D = Ni(L, f, m), 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, m);
|
|
7244
7244
|
await i(D, L);
|
|
7245
7245
|
}
|
|
7246
7246
|
I();
|
|
@@ -7291,8 +7291,8 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
7291
7291
|
{
|
|
7292
7292
|
frequency: f,
|
|
7293
7293
|
isIncome: A,
|
|
7294
|
-
nextDate:
|
|
7295
|
-
onFrequencyChange:
|
|
7294
|
+
nextDate: m,
|
|
7295
|
+
onFrequencyChange: v,
|
|
7296
7296
|
onNextDateChange: E,
|
|
7297
7297
|
transaction: L
|
|
7298
7298
|
}
|
|
@@ -7319,7 +7319,7 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
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 } = vA(), { onEvent: a } = V(), 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", md = {
|
|
|
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((v) => v.guid === d.cashflow_sequence_guid), C = i.find((v) => v.guid === d.transaction_guid), f = A.find((v) => v.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: vt(d.expected_date),
|
|
7352
|
+
occurredOnDate: d.occurred_on ? vt(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", md = {
|
|
|
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((m) => m.guid === d.cashflow_sequence_guid), C = e.find(
|
|
7374
|
+
(m) => m.cashflow_sequence_guid === d.cashflow_sequence_guid && !!m.transaction_guid
|
|
7375
|
+
), f = i.find((m) => m.guid === C?.transaction_guid), v = A.find((m) => m.guid === f?.account_guid);
|
|
7376
7376
|
return {
|
|
7377
|
-
accountGuid: h?.account_guid ||
|
|
7377
|
+
accountGuid: h?.account_guid || v?.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: vt(d.expected_date),
|
|
7383
7383
|
name: d.name,
|
|
7384
|
-
institution:
|
|
7385
|
-
institutionGuid:
|
|
7384
|
+
institution: v ? Bn(v) : void 0,
|
|
7385
|
+
institutionGuid: v?.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", md = {
|
|
|
7481
7481
|
});
|
|
7482
7482
|
break;
|
|
7483
7483
|
case _.EveryYear:
|
|
7484
|
-
gA(o, d) ? gA(
|
|
7484
|
+
gA(o, d) ? gA(mt(o, 1), h) && a.push({
|
|
7485
7485
|
...s,
|
|
7486
|
-
expectedDate:
|
|
7486
|
+
expectedDate: mt(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", md = {
|
|
|
7491
7491
|
break;
|
|
7492
7492
|
}
|
|
7493
7493
|
return a.forEach((f) => {
|
|
7494
|
-
const
|
|
7495
|
-
(
|
|
7494
|
+
const v = n.find(
|
|
7495
|
+
(m) => m.scheduled_payment_guid === f.scheduledPaymentGuid && m.date > CA(ie(f.expectedDate, 3)) && m.date < CA(ge(f.expectedDate, 3))
|
|
7496
7496
|
);
|
|
7497
|
-
|
|
7497
|
+
v ? (f.transactionGuid = v.guid, f.occurredOnDate = NA(v.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 = vt(o.expected_date) : s && (d = vt(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", md = {
|
|
|
7516
7516
|
sequenceGuid: i.guid
|
|
7517
7517
|
};
|
|
7518
7518
|
}), Xd = () => {
|
|
7519
|
-
const { selectedAccounts: A } =
|
|
7519
|
+
const { selectedAccounts: A } = vA(), { cashflowEvents: e, cashflowSequences: n, projectedEvents: a } = kA(), { transactions: r } = uA(), { onEvent: i } = V(), o = Gd(
|
|
7520
7520
|
A,
|
|
7521
7521
|
e,
|
|
7522
7522
|
a,
|
|
@@ -7537,7 +7537,7 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
7537
7537
|
/* @__PURE__ */ t(zi, { isIncome: !0, label: kd.manage_income_add, onAddActivity: c })
|
|
7538
7538
|
] });
|
|
7539
7539
|
}, qi = x(Xd), Bi = () => {
|
|
7540
|
-
const [A, e] = g.useState(0), { onEvent: n } =
|
|
7540
|
+
const [A, e] = g.useState(0), { onEvent: n } = V();
|
|
7541
7541
|
return /* @__PURE__ */ u(S, { bgcolor: "background.default", height: "100%", children: [
|
|
7542
7542
|
/* @__PURE__ */ u(
|
|
7543
7543
|
rt,
|
|
@@ -7577,26 +7577,26 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
7577
7577
|
missed: "Missed",
|
|
7578
7578
|
upcoming: "Upcoming",
|
|
7579
7579
|
income: "Income"
|
|
7580
|
-
}, { selectedAccountGuids: r } =
|
|
7581
|
-
() => i.filter((
|
|
7580
|
+
}, { selectedAccountGuids: r } = vA(), { activities: i, setSelectedDay: o } = kA(), c = g.useMemo(
|
|
7581
|
+
() => i.filter((v) => r.includes(v.accountGuid || "")),
|
|
7582
7582
|
[r, i]
|
|
7583
7583
|
).filter(
|
|
7584
|
-
(
|
|
7584
|
+
(v) => FA(v.occurredOnDate || v.expectedDate, A)
|
|
7585
7585
|
), l = c.some(
|
|
7586
|
-
(
|
|
7586
|
+
(v) => v.activityType === EA.Expense && v.activityStatus === wA.Upcoming
|
|
7587
7587
|
), d = c.some(
|
|
7588
|
-
(
|
|
7588
|
+
(v) => v.activityType === EA.Expense && v.activityStatus === wA.Missed
|
|
7589
7589
|
), h = c.some(
|
|
7590
|
-
(
|
|
7591
|
-
), C = c.some((
|
|
7590
|
+
(v) => v.activityType === EA.Expense && v.activityStatus === wA.Paid
|
|
7591
|
+
), C = c.some((v) => v.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(ma, { 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(va, { isOffset: !0 })
|
|
7600
7600
|
] }),
|
|
7601
7601
|
overlap: "circular",
|
|
7602
7602
|
sx: {
|
|
@@ -7643,13 +7643,13 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
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: va, label: "Income" }),
|
|
7647
|
+
/* @__PURE__ */ t(_t, { icon: ma, label: "Missed" }),
|
|
7648
7648
|
/* @__PURE__ */ t(_t, { icon: pa, label: "Paid" })
|
|
7649
7649
|
]
|
|
7650
7650
|
}
|
|
7651
7651
|
), lr = 58, jd = () => {
|
|
7652
|
-
const A = fA(), { onEvent: e } =
|
|
7652
|
+
const A = fA(), { onEvent: e } = V(), { selectedDay: n } = kA(), [a, r] = g.useState(
|
|
7653
7653
|
za(/* @__PURE__ */ new Date()) * st + lr
|
|
7654
7654
|
), i = (s) => {
|
|
7655
7655
|
r(za(s) * st + lr), e(J.RECURRING_ACTIVITY_CLICK_CALENDAR_RIGHT);
|
|
@@ -7820,7 +7820,7 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
7820
7820
|
selectedDayActivities: i,
|
|
7821
7821
|
setSelectedDay: o,
|
|
7822
7822
|
upcomingActivities: s
|
|
7823
|
-
} = kA(), [c, l] = g.useState(0), { onEvent: d } =
|
|
7823
|
+
} = kA(), [c, l] = g.useState(0), { onEvent: d } = V(), h = e.filter(wn), C = a.filter(wn), f = n.filter(wn), v = h.filter(Rt).reduce(lt, 0), m = 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", md = {
|
|
|
7836
7836
|
/* @__PURE__ */ t(
|
|
7837
7837
|
dr,
|
|
7838
7838
|
{
|
|
7839
|
-
expected:
|
|
7839
|
+
expected: v,
|
|
7840
7840
|
missed: E,
|
|
7841
|
-
paid:
|
|
7841
|
+
paid: m,
|
|
7842
7842
|
title: Ke.recurring_activity_expenses,
|
|
7843
7843
|
total: L
|
|
7844
7844
|
}
|
|
@@ -7906,7 +7906,7 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
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 } = vA(), { setFilter: o } = uA(), { isLoading: s } = kA(), { onEvent: c } = V();
|
|
7910
7910
|
g.useEffect(() => {
|
|
7911
7911
|
i(n);
|
|
7912
7912
|
}, [n]), g.useEffect(() => {
|
|
@@ -7957,7 +7957,7 @@ const ir = "connect_widget", or = "connections_widget", md = {
|
|
|
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 } = vA(), { 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", md = {
|
|
|
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 } = vA(), { setFilter: r } = uA();
|
|
7989
7989
|
return g.useEffect(() => {
|
|
7990
7990
|
n && r({
|
|
7991
7991
|
dateRange: { start: ie(Z(), 90), end: Qe() },
|
|
@@ -8057,7 +8057,7 @@ class eu {
|
|
|
8057
8057
|
addCashflowEvent = async (e) => {
|
|
8058
8058
|
try {
|
|
8059
8059
|
const n = await this.cashflowApi.addCashflowEvent(e);
|
|
8060
|
-
|
|
8060
|
+
Y(() => {
|
|
8061
8061
|
this.cashflowEvents = [...this.cashflowEvents, n];
|
|
8062
8062
|
});
|
|
8063
8063
|
} catch (n) {
|
|
@@ -8078,7 +8078,7 @@ class eu {
|
|
|
8078
8078
|
await this.globalStore.transactionStore.updateTransaction({
|
|
8079
8079
|
...n,
|
|
8080
8080
|
scheduled_payment_guid: a.guid
|
|
8081
|
-
}),
|
|
8081
|
+
}), Y(() => {
|
|
8082
8082
|
this.scheduledPayments = [...this.scheduledPayments, a];
|
|
8083
8083
|
});
|
|
8084
8084
|
} catch (a) {
|
|
@@ -8094,7 +8094,7 @@ class eu {
|
|
|
8094
8094
|
};
|
|
8095
8095
|
deleteScheduledPayment = async (e) => {
|
|
8096
8096
|
try {
|
|
8097
|
-
await this.api.deleteScheduledPayment(e),
|
|
8097
|
+
await this.api.deleteScheduledPayment(e), Y(() => {
|
|
8098
8098
|
const n = this.scheduledPayments.findIndex((a) => a.guid === e);
|
|
8099
8099
|
n >= 0 && this.scheduledPayments.splice(n, 1);
|
|
8100
8100
|
});
|
|
@@ -8104,7 +8104,7 @@ class eu {
|
|
|
8104
8104
|
};
|
|
8105
8105
|
loadActivity = () => {
|
|
8106
8106
|
this.isLoading = !0, Promise.all([this.loadExpenseActivity(), this.loadIncomeActivity()]).finally(
|
|
8107
|
-
() =>
|
|
8107
|
+
() => Y(() => {
|
|
8108
8108
|
this.isLoading = !1;
|
|
8109
8109
|
})
|
|
8110
8110
|
);
|
|
@@ -8117,7 +8117,7 @@ class eu {
|
|
|
8117
8117
|
};
|
|
8118
8118
|
loadCashflowSequences = async () => {
|
|
8119
8119
|
const e = await this.cashflowApi.getCashflowSequences();
|
|
8120
|
-
|
|
8120
|
+
Y(() => {
|
|
8121
8121
|
this.cashflowSequences = e.filter(
|
|
8122
8122
|
(n) => n.transaction_type === UA.CREDIT
|
|
8123
8123
|
);
|
|
@@ -8129,7 +8129,7 @@ class eu {
|
|
|
8129
8129
|
LA(Z()),
|
|
8130
8130
|
ge(Z(), 30)
|
|
8131
8131
|
);
|
|
8132
|
-
|
|
8132
|
+
Y(() => {
|
|
8133
8133
|
this.projectedEvents = e.filter(
|
|
8134
8134
|
(n) => n.transaction_type === UA.CREDIT
|
|
8135
8135
|
);
|
|
@@ -8144,7 +8144,7 @@ class eu {
|
|
|
8144
8144
|
ie(Z(), 90),
|
|
8145
8145
|
OA(Z())
|
|
8146
8146
|
);
|
|
8147
|
-
|
|
8147
|
+
Y(() => {
|
|
8148
8148
|
this.cashflowEvents = e.filter(
|
|
8149
8149
|
(n) => n.transaction_type === UA.CREDIT
|
|
8150
8150
|
);
|
|
@@ -8156,7 +8156,7 @@ class eu {
|
|
|
8156
8156
|
loadScheduledPayments = async () => {
|
|
8157
8157
|
try {
|
|
8158
8158
|
const e = await this.api.getScheduledPayments();
|
|
8159
|
-
|
|
8159
|
+
Y(() => {
|
|
8160
8160
|
this.scheduledPayments = e;
|
|
8161
8161
|
});
|
|
8162
8162
|
} catch (e) {
|
|
@@ -8190,7 +8190,7 @@ class eu {
|
|
|
8190
8190
|
try {
|
|
8191
8191
|
const n = await this.api.updateScheduledPayment(e), a = this.scheduledPayments.findIndex((r) => r.guid === e.guid);
|
|
8192
8192
|
if (a < 0) return;
|
|
8193
|
-
|
|
8193
|
+
Y(() => {
|
|
8194
8194
|
this.scheduledPayments = [
|
|
8195
8195
|
...this.scheduledPayments.slice(0, a),
|
|
8196
8196
|
n,
|
|
@@ -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), vr = {
|
|
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, v) => f + v.amount, 0), h = r.filter((f) => f.accountGuid === l.guid).reduce((f, v) => f + v.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: vr.tooltip_body, title: vr.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, v = 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: `${v} ${f ? `*${f}` : ""}` })
|
|
8672
8672
|
] }),
|
|
8673
8673
|
/* @__PURE__ */ t(_A, { amount: l.balance, bold: !0, variant: "Small" })
|
|
8674
8674
|
]
|
|
@@ -8727,8 +8727,8 @@ const uu = ({ activity: A }) => /* @__PURE__ */ u(aA, { children: [
|
|
|
8727
8727
|
]
|
|
8728
8728
|
}
|
|
8729
8729
|
);
|
|
8730
|
-
},
|
|
8731
|
-
const { cashflow: A } = W(), { isDesktop: e } = jA(), { onEvent: n } =
|
|
8730
|
+
}, vu = x(fu), mu = () => {
|
|
8731
|
+
const { cashflow: A } = W(), { isDesktop: e } = jA(), { onEvent: n } = V(), [a, r] = g.useState(0), i = (o, s) => {
|
|
8732
8732
|
r(s);
|
|
8733
8733
|
};
|
|
8734
8734
|
return g.useEffect(() => {
|
|
@@ -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(vu, {}) }) }),
|
|
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(mu), 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
|
+
}, mr = (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 } = vA(), { dateRange: s, selectedCashAccounts: c } = ot(), { userProfile: l } = rn(), d = g.useMemo(
|
|
8803
|
+
() => r.filter(mr(o, s)),
|
|
8804
8804
|
[s, o, r]
|
|
8805
8805
|
), h = g.useMemo(
|
|
8806
|
-
() => i.filter(
|
|
8806
|
+
() => i.filter(mr(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), v = h.reduce((b, w) => b + w.amount, 0), m = C - f + v, 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: v,
|
|
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: m,
|
|
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: v,
|
|
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: m,
|
|
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(mA, { pb: 32, children: n.welcome_description }),
|
|
8932
8932
|
/* @__PURE__ */ u(T, { direction: "column", mb: 32, spacing: 32, children: [
|
|
8933
|
-
/* @__PURE__ */ u(
|
|
8933
|
+
/* @__PURE__ */ u(mA, { 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(mA, { 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(mA, { 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(mA, { children: A.loading_description })
|
|
8993
8993
|
] });
|
|
8994
8994
|
}, bu = x(Su), Iu = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAakAAAHiCAYAAABSszP0AACU5ElEQVR4Ae2dCZwb5Xn/n/fVsdpb62Ot9YFlY/Caywsh2EkIXnLZCaE2aRPT0NQmbQNJkwJtQtq0KaZHkhZSoG0SSJNgJ4HE7T9gl5DgXKwDaWwgeB0grLksn7vra7W3znn/7zPSeLW7OmakGWlG+3z5DNJKo/HomPf3Psf7PAwIwmIODgi/dt8HoN73uMCnJPHP4kgChLX7Lg9ERuMQCfohwhiLAEEQVQMDgjAIik69B3xcAT8KjRQMv0iLD4OknwFT72uPVQL5ww4zBhFFiAjjEOEgwknFHXHJxzWBk2oWXtLCwkAQhG0hkSKmgSLU6IJApgC5mBIQAnyVFB6rQEETUsRQzITi6tOELOCHPrLMCKKykEjNUIQQvpOjUnDiENCEiIMSlL8IH4oRECpojakixkQYBUy6KfsUDuHWBtYHBEFYDonUDAAF6fQwBBNCuucUCKAYVaNFVG44gz4ULxkVCwkF+sjyIgjzIZGqMlCQ+sIQkK6rAEAyCAoLkCCVDxIugjAXEimHoyYxAASBJwKKwttJkOwHChdjSogzd8iVhL4WStYgCN2QSDkMFKVaDu2q244p7RQ/ch5q5iGIEJPWlgcgRKJFELkhkbI5aoJDGNoT0lqiWFJ1gpaW/KL7XC5Xz+xGCJF7kCAmIJGyIb0DIgiQkBtLb8TMQlpZ3NXDXRCiLEJipkMiZQMmWUvkwiMy0FyDaGXNaWI9QBAzDBKpCoHC1D8EHUJJtkv3ToCEiSgErtkCJkJccfXM9UMPuQWJmQCDp8QLUE0IqJfvCre4vP+qvO2Wtzvh7awLKkymMJEbjygVxkUPCRZR7aBIXQvVCoNW+f+lUqRWyfsBef9ZcMGd8BYWgjJBwkSUA02wWltYNxBEFVHdIjUVBu+QgvVhee+r0rK6EywEkx8Yh9UglCC58ohyoZZxEqJHAVd3W0v5JmMEYRUzS6Qm+EP5zt8iraqrzbSqtKw8xvhqEiai0mDSBedKj0dx76G1WIRTmakihSyV24eBw03wtuJdJOTOI5yBCLmkdUXuQMJpzGSRSsWsBNwuhWqjUaFCq8nFE+2K4B1kNRFOQUtp94Kri6wrwgnMbJFCNKFyw9pCrj9tPVMSkh1kNRHOh6wrwv6QSCECLpafxAfh7ezSrE+rlcUTqynWRFQjauwKeBfVESTsCImUhoA/lZ/GPilUW7SH0KXHpdUkGKMqEMSMgIPoJlcgYSdIpDQ41EuhuhvicFFvBxZxTXaSS4+YqaBYURo7YQfcQKRQYHQugxcubIQH5R/7qWIUMZNRgMm4q9LRO5AIeVyuPVQ3kKgUJFKSdzcoSztq4aJEko1+8yS8Rz60HwiCAPQmxJNKsG8gqcatKMmCKDczVqT8bvBc5VPOXV4L59dgrT9JjVvEWj3s5EOnYfENs+EQEAShgn3MkqBskGLVSWJFlJMZGZNCy+lNPrjMzcEz9blfDbMlePvwuWIXEASRFS0jkMSKsJoZZUlpbj3NcsrGeT448dNBuAQIgsgJWVZEuZgRInVFbXLemga2Kp84abR6xOjpOJsNBEHA4JjiOzHMmkcjOZdgLAZIrty5Lxn+6YvKTpjBuBPu0L03Ujak2VS1SKE4XVHHLvK7WKuR1yUFcCCIGQoK089ehlW9gyJ4ZgSCqt2kj1thBpPkcfj4tliIMehSkp477yfBMoWqFKlFHqhf36SsNipOBDHT6T4kFv/0d7BhPC78QBQDtubZzHh88ye+E9/y1Y94LG0JNBNgcJvohyrBIyX3Yul8OHduYbdePn7UD/W3LYOyrLivdUPY44JISx30LfZD6OKAQlmFREX4Ybey+vnDYi0QpiGtqq1f/WPvjUAUTdVk961vguUrvMrF2TL2jPLvvez9B1aKf4MyMBQFX+gMBAbGmP/wIFs+Fgd/sw/6rlqi7J7fBFSahigLT78qlv/iZeV6IMyHwb1f+2PvbUAUhePdfUaSIvQwmmDeOheMQploqoHIJW0QSvn9RTeK1r6jrP3Rl/imtkboedd5ym7cBwjCQn79mlgHhDUIuPXm78R33v8RTxcQhnFsggDGnW6apVz1nkb2DrMECjksLZlzvNAHFQIFac25ovvP36Lc53GJ6Hee5ze9dhICQBAW8bPfiZUUg7IWJsQdQBSFI0XqQ03KxTc0K++d64YFYDI9Y7Dw8np7VJu4doXouu5CZduu1/jGn77KVwFBWMALR8VqIKxFQOetD4ogEIZxlEiha++2ucq6831wkRmxp2wcjMLCa/wiBDYB41IfuUx54I0z0PHDHr4GCMJEBiPgG44IstTLQMwV7wTCMI4QKayz90d+uAxde/UMWsAiXh5nrRfVwauX1dsrYQFdgH/YoWw7Ngjtuw9idWqCMIfeM+TmKxuCLKlisL1IofX0Zy3Ke4NeZTlYzFND4uIPzRa2LO+CQnXtCmV7zwm26vgQ0MBCmMJ4TKFmnoStsa1IofVkRWJELrCwbLCGHbdz9XN0/b3lHGXXEwf4eiAIE2htog68hL2xpUi9vV5ZeLNfWW9FYkQ2TsRZ/f5ROO+OBWI32BxMV6/zQviFPr4YCKJEFsziYbeL0RKHMqBw3gWEYWwlUpr1tKYe3m5VYkQ2dpyB1dfPhqftFovKBS70ffYIdAJBmMCCZkFdd60nTOukisM2IqXFnsplPWk8fJKtXtUAv/v8AnvGorKhVaIga4owg4sWcupEbTGMwQ4giqLiIpWZuVeO2JPGqMI8KFAX1sGhry+xv5tvKpcvVHa/ehragSBK5E1BFlo0m/pBWUgIq6IDURQVFakVPmgpV+ZeJphq/kAfvHd1A7ziRIFCgrOg76TaRoEgSucDb+K7aj2URGEFCQWuo7YdxVMxkcKCsL/fpKwrt/X0g9Pssl8NwYVfCYrvfnmx2AMORavnh7X+gCBKpNkHkQ+vgm0kVKYSFgq7+r9u9JKVWgIu+OiWslox6N770xbl6sVesQzKAArT6xE25/EBdln3KJx7jR/2PbxMPL7MByPgcF47zRZ6XWxkXoMYBIIokaZaFnnbeWzviSFgo1HmlxYATYCKhUGXUDzvvf9GFwlUiWCrjoehXAgFzvewJQ1lsJ4Gk1B/OgEtCjBXe41444OzxP4/movVxqsHLJPU5IPwVUGFAt+EqWB33mcOQvvJIZh3ZtzeZZOicQiPxiqfmctk7Ekklf01ULP13hvJIjULNwj4CZSBD82GVbOB4Y+9LBXGl3rE4AW1EL6sQdCPhSAM0lzHI+++EBxjBTDOnwg0M8e674ncuOEqthUsRAjh6wsnr5c/I+wAXDVdgAmCsA9CUdadGIz75za5uxijxcnVhKWJEydGRKA/rNwsBSoIhCXUcCUKBEFAUuGrcbwZGKCiudWEZSLVNyhWKwllswAqhmoVA+MQqPPycSAIQgXHmygom08NCVpDWCVYIlLHB+Pr0PwWgrKDrGQsBv7FLQq5UAkiAxSqeFK5vneA+jdVA24wETSzI5DcAAoLAmEp2K7DwyGirZciCGIqvLN/IOFv9bueoDiVczHNkkKBQjOb4k/l4bVTfPEiP1BhUILIgwKsg+JUzsYUkUL/b5QpN1P8qXy80A+dF85TDgBBEHnR4lSYyAWE4yhZpHoHRCf6fyn+VD5++QZfObsOQlo1dIIg8oNClYwrN2NCFxCOoiSRwgQJaVB3AlFW0IrCnlJAEIQhMKGLEiqcBYMiyFigGwSirDz2MuuUQWDx/nYSKYIoFhdX9rQ2e54AwvYYtqQwAHlikBIkKsEzR/nyw2G2kgSKIEoDF/72DiQ244QbCFtjSKS0DD5FAAUgy8xrJyGw7xh0Xnehsg0IgjABFqTMP/uj292HmTFKXLmeMvjKD7aJ/79DsO7aFcp2SpYgCHORg2C4BvjWlhaqXG5HdIlU74AIMkYZfJXgJ6+w1a+eZqvQgiKBIghrQKHiHv791gZWli4NhH4KitTRAdHhAmUDEGUFradnj0Cnvw763rVM2U2VJQjCWhiDCHfzrSRU9iKvSOGaAkzZBKIsYCv47mN8+WunoQP/vnyhsvuStupq1EgQdicJfMfCFkYddW0Cg78Wm7M98bdrlMAlrXwVEJZzahwC4TEIjCfA39YEPctmKQdInAiicpBQ2Qc3KBCc+uAHL4KVQT/3D8WAsBgvF9E5taxv9SJlL8WcCMIeYIhDepJ81O238kxz92GZI6oiQRAEgShdbS2eLiAqxiSRIoEiCIKYCglVJTkrUiRQBEEQuSChqhSqSJFAEQRBFIKEqhIwEiiCIAi9kFCVG04CRRAEoRfeiQUOgCgbprWPJwiCmAlgejoJVfkgkSIIgjAICtWpIdEOhOWQSBEEQRRBQlE2YHcIICyFRIogCKIIsCuEklA2Uz8qayGRIgiCKBIUKmwES0JlHSRSBEEQJYCNYEmorINEiiAIokRQqGJqY1hBjWFNxg0EQRRF/7ETvm/f9Z2Vh3oOBc6cHPBHxqM+X21NpLbeF3lz5+U9b7/27YcufPMFVNl+hqAICJwIJ7H/3g4gTIP1DiS3AEEQunnp2d/5v/b5+9f8du+LBdfKXLLqou6P/+PNu0msZg4uruxpbfY8AYQpkEgRhAG++vf3dzzyXzvWxiIxQ26dd2zo7Nry4N/vBmKGQOWTzILcfQShk7+/8c7Orh2710AR/GJHVyfeklDNFHjnqSHRN6eJ9QBREpQ4QRA6uP/vH1hZrEBpoFDddeuXVwExI6DFvuZAIkUQBcAY1GPf+VEnmMBj2x5f98vHn6aBawagLvaNK9dTanppkEgRRAEwSWI4PGzaQCOtsrVAzAi01HQgioZEiiDygFaUniw+Ixx941iQrKmZg5qaPhhfB0RRkEgRRB6eeuypxWABv/h/v1gOxIwhqfDVfYNiNRCGIZEiiDy8/vJBSyyeI68fIUtqhiEUZR0lUhiHRIog8nDsjWOWDCp9R07QYDUDoUQK45BIEQRBlAlMpIhAcgMQuiGRIgiCKCssSIkU+iGRIog8zJrbYknNveZZTVTLbwaDiRTUfl4fJFIEkYdFy8/pBwtYsHRBHxAzGqxIQfGpwlDtPmLGgq02nvvZs/N+t68n0PN8T1BLZtAW7jb6Gy2zdq7d/P79QMxosCJFOj61FYickEgRM47Htz2+uOuHT7Xve7q7I181czOrTGSycOmC0FXXXEmWFAFafIpae+SGRIqYMaA4PfTv3+/Eig9QQf72/r/ZCQSRBuNTvQOip62FhYCYBokUUfWgW+/uW/9tzd6fPVPxFf/YV4oaIBJTYaBsEELczxiLADEJEimiqsEaef/yybs2WuW6MwJ26aV+UkQ2cP1U/5Aan/o+EJOg7D6iakH33j/86T9tsoNAoQX1n0/8O7n5iJwIhbVTfb/pkCVFVCUP3fvw8gfu/EbFWyRgksT1n9q4+/c2vz8EBFEIoXQOyPhUSwsjl3AaEimi6sD2Gg/+y7crWnoGXXvvuf49+0mcCCNQWvp0yN1HVBUoULd/6G825UstLwfHD/cFSKCI4mBBcvtNQCJFVBVmd9EtllO9pwJbbvyHNUAQxZBy+1E1CiCRIqqI+//+gZVmd9EthV/s6OqkDrxEMWS4/WY8JFJE1fDYd37UCTZDCudaIIiiILcfQiJFVAVoRdnBzTcVrG6BqfBAEMVAbj8SKaI6kG4127j5poJ1AoEgioDcfiRSRBWAGX2VrseXDyxki6WZgCCKggVPDAjbTsKshkSKcDxPPfaUrd1pmA6PLUGAIIpEYco6IcSMnOiQSBGO59mu52zvTiOXH1EK6PY7OZTohBkIiRTheAZODdo+sHym/zSteSFKIt3SIwgzDBIpwvHgwtlC+6xonQ9NvlqoFFrXX4IoBS7dfjDDIJEiTCMCfDFuUCIxxueNMb5cz76YNKFnv02Xvx12br4NFjbPgkpgx/R4wnkoAgIzbe0UFZglTGMYYAP2xRkGHpY/rFAjKLvlraFqzuMAwWEBm5h8XR3AgUL7nz5xpmAwGYVp1TnnwoLmFvjOH94Mj7zwLDz64m/g6OAZIAjHIZROIUT3TGmQSCJFmEYDKDuTwPxRxpbHBXQMAA+2gLKtkFDF5OyQM4jgftIhF1IY7HApSj+wwv9m+GS4oEhdd9HlqkAhePupK9+jbj979UV4+cRxeLm/F4aj4/K5WdBU45OuwTZ4RIrY3sOvA0HYjYwkiidgBkAiRZgGCgz2GG2QszwUnlHOV7lFYYEaBL7JxSA0Syjb8bF6oezXI1B6QCvqU1e+O+tz7zrvInXLxhXnLIP1W++Bocj4pMcxrvUBKXrIz159iawxoiKkkyh62lpYCKocikkRluBl0NcilLydaBPSNYgCJQUp0iSUXWAyKFDo3isGtLg++bbp4oZxrc+98/fU7Rc3/43qRiSIypDshBkAiRRhOdJ95xthfNXUxwdQoCR6XIJGWdG6QBUozc1XDJsvfzt8KkOo3i2trqnHyyZkBFEeWHAmpKSTSBGWM6qwjjEB66TVdLa/0ijwlZhkUcvELrMF6gMXXw47b7xVFZTfnhqAUlDjV2khap/XNu35xgqmtReLImMaCQX8uAHhaBgoVV/Xj2JShOU0MrEnDmx5jMFqBWAvFxAZA+jEDL4GEN1gMrgmCvnuy2/AzT/9NXxu1SVyu3jSPhdu3aHevrS58DWOQrXpzVdlfa7nxHGwOzHgi2Xsrz3JICCD7gE5OfCdjfkJHOigz8dgjw9kLJBwFDjR6x2Id7a1eLqgSiFLiigLtaDsxqykEWlBnbWiQOwGC3g5LRxPH+1Xbx96OZWlNyRSI/NTx/rh0NCouv32pD5LC7P+cMvk6OAA/MfTPwE7gtaS/JzXhAX/7KiAzXGQEwQBQVWgpiAfC4wL2CD3vQkIx8EYX13Ndf1IpIiygJl/TFpQCTmjjwJ0WGVFIT39KZE6p6k+fdug3v48knIcXDKn+DiVBgrhR773NTg2WJo70QpQnIaA3yKtp85sopQLFKvRDJcs4Qxw8tcXTlTtAl9y9xFlw8MBU9PVi8kDYIlAIb+TAjIUHVfdfChQVy2cBz0JDj+PuuG62jg013jh/ne/BQajMbhkrjHBGopGYNtzT9nSgsJ0/nHgG6VLtehYk5xEdEj/nyUWLmEdaWtqTzUu8CWRKhMPvcQXP9gNq8fi4JtbB+HzW6CvYz703XChcghmCF5pTcUgJVJeoRwway1UNl6W1hSmh//RiqXq358b9MKwMvG89rgR0L1nW+tJYatjjJXcqh4FDrMxMW4IhGOo5gW+JFJl4GM/ZJ2PvQpn3SgH5Rj3zDEZ2H8R4NM/4bCkBUJBP/Rdcx70dC5W+hc0VOcAIYWpX/Mwu0zO6JvKz1996ewapmNJDo+Oe2CBS4FisbNAjQjWGWfMNDcdZv3hOjcgHAUu8B0YEHtaWpil11a5IZGymC/8NLHyF7+OrMHoSKS5DpKe6R+5FK0gbk8eRCsjJVpvWwA971wGoXVLlH6wMTjrxqKyOJPDv1m6vFFKkCaDj2NcSsjX+HIMgjE5QMb5RJFaPB4ey2ia+iMvPAefvPLd0FRTK0WKwRXehBQpAcWCJZRsK1DAzI0jMV6j2lSE44ilFvjugCqCRMpikk+90bLklxODmyJFamRuE4zNaZK3zapwTUUTLbS0/DU8fP4cCH3oQui2k2swIuMfY4yvlTGM4KQn0jrAgGOB2K76qWnNUnQYTLYUUehGBV+FCRUKnxJPUY/HwSVFzSdgT73ONGmMST0qhQqrn1/hTcIVsybKGw3Go/DFl5+FTyxbCefUNeo5nGqZ2Q1LBApSLj95M2Pc0NWEAqxDWlNd1WRNVZ1IYeptFPjKOEBQpHzr4RoG3V6ozAD/+X84v+tznz5Q8+zesBqL4fEENB0/o25IvK4GRqVoDc2fBUNt09tIhKPgl67BDtz+aXdKsD7+ZthTKQsLSxlx1bqB8LC87wWx2yNEnydtGSXlYwnBAhHGVo0CbBgD3tkolO2a5YRuvkx7Jl27byOmpMvnQrVC7HUz0ae5A/F4UcaxYG07Hi8iA8SzhfKAnnPd+txTcN3Fl6vWFHJ4bBhufu7n6u3Hz71Et0AhKHp2wiqBIpxPtVlTVSVSGDxG3/zZtFuRclpgxtK4nNnXC2Wbm0PZZxhfuHv5rq9/9XD/E4+fXDM8lJhkKXjGpAodOqluaGUNzW/RJVhoYX34Yui6Zply6LK28rwnVVAY3ygFqruZKbvngnKf+sTkBIgwMBFqBLFnRM7qxuVAOsT4TQkQO6emnMuBtmOMsfWYjt4Iyja1QO30ZIpwrVBC8nbXsGCrBeiP16F77j+f/qlaZw9BUfrRVcUt0NeEzg7g4lw5CbNMoHByB8V7RokKU23WVFWsk0LraRj4esxuyrUuBF0Yw4zfMp6lhlw5+Ngnzun+p7uWb7vwksacqddoZaFYnfPrA3DBY8/Cwt+8BvWnhrLui4L11edgwzXf57es/2++/vle60vcjEj3Ht7WYmaeDlCUsC4fuurGgK2PZMSaMI6FAsWxEK0mUAXAyhVNBtdWoTWF8alqAZMacOEtWIgioGoXhs4UYlVUfNbxIpUWqE3q+g4dRBRYV6kFixdc0BC+9ysX7LzvgQvvW7DQF8q3ryZYS375Eix/4nlVsLzS6soGWlYoVm/dyjdhqjtYhF+67VBQjGR+YcJDi6JsQ2tpWMD1OEtXJwzSdYeP4TGLqd2nxrGkW1fPvn/9o+2w7bmnoRqQk6w1payD0oPVxyesB62paqlC4WiR0gRKXlQBI6/DlfiVXFmPYrX1eyu33fqZJdsam9wFB2jNJXi+FKslT70ELYdOZN0Pky0+/RPYvOKr/JZ/fGryAM6GoiX/YLXGhFMfjxUoVIqvw4aImAGYTNWO8+PWmEegUITwuHib7XksWosxKt+82bqE6p9/vhOuvv8LqmX1zJHX1UW5uVDkc4mhAXk7EYeyQ98oaX2ulDFBXZOxUlCmJsMQjqRaqlA4OiY1Il18RgVKA4VKDt2D9cya0jx6uOb3WkNyu0/Gqzr+76mBlceORoKFXlN/ckjdWl8+qiZcnFixCGJ1NZP20VyBD7/AOzFu9fm3K/tn/W9obXxhQ2ioc4HhIqKnZEzJI6CnGZRJlQjQksHq5pgNMVco/4KPjTG+HMVoahYeuvPkkB+Sg2wQ/8aKE1PT0Cdl+QkpfDiFShVAnZYpiK6/CLBV7obadtAJxqi+8PP/nfRYky8dvkwk4Oer36ne5zL+VHfeBeqtnYiqv1nroQW91UG1VKFwrCWF2U1JAN0DVDbiwNZiMgBUGIxXaZZVITegxlTrqql3+kxfEyt0Ax7tT7bXHBgwPAvHbD4pGAFcrzT1OQ7KIMaUfMpEoVjpTlUtnDNo4U6xgmozRM47Ja6F/85pwW8aT1dHr0FRYrADb/HfxmNiIkbmazxC7JcXYkkW4lAkom7DUqQQ36Kl0NhxBbibS6/vZyZoRZXTDTcuKhO7JcyjWmr6OdKSSqckl+yuwyQLrHXmZsoDdpg1pi2r0O9+N+L/+lcOr3npt8O6REWzrjCd/cSKhTCwuHXS8+gGXMovgs3Dp4J/8szw8mVXNOpKfEBijM/DD0qNQ03J+ELrSArPpIy8WUzZHgbWGQOGFbg3zpIxLO25GgF9I5BazCsFqEd7HN22A4xvgpQFtv3sc9q/J2C3FK/g1OSKOhC4n2lu2yFpPfnTbT7sRrmsKA15fa1WeKqtChCOpRqsKceJFGY3RZh0MZkEzk5HFb62keVvdV5OtAQLKVa7v/vNo6t7ekaXT01dzwZaVwt+87rqChxYPBfCUqwyXYFbXXNg66/g+mtPQtfXr1F0FRGNpy3NbBUkcuEH0TUsB7dxxtZio0PNTchT1lhE3oYzBQ8fx7YdXhB9uZIysmX/5UvgaGpIwIK2KKxYNgILAhFolH83NyTOPn+yV8DJN5bDBQ0b1b+PyhiU32bWk0a5rSgEJ3BjCl/TwJRdQDiWDGuqCxyK40TKiuwmDEbL4/bVCmUv2AgUqy98uR0LRj5hJG6FYoVChVtYitXUuNVjr0DnikO8Q4tX5TuW9lkbnVFnNjpES0h7XF3MmyFQWuxDXUNVRMFZJRoNQTrOhcL0gff2w7uuPAXtUpyaMkRpKkNDDL7/rSS8b9kKqOENYGeiZUiWyAb2oJJxx0g96JvQEPaEAcffTxc4FEfFpKzMbooq0Jkrk8wOaHGrO79w3gO41qqmJmW+N3kYtDdNjO5T/9biVlNT2LV4VSlrrNQMPOkOVF2CWZCy2I0zucz1UVMZVljHSex9lGPigRl+uKYqZ5bfkf7dqy4dhO/etx+ee/xX8LlPvgZXdITzChTS1CTAWz8MpyKvgp1Bz0Els+0wwWhIum2p1bxzSXXvFUFwKI6xpPAiiTLr/PLo3hhR+PomGVMBG/PWt8/qkxu6JneidfXR06fWLvQI3/FxAV99RYE/WsqhvZHBL/oE/OvLChwbS5ktWlWL08va1E2zrHCN1Q2P8uC/rVO2v3epscrXmOgg0uKSrVZfDSiH5Ewc0gNc1rJUgrNmKWR+75RUdEykGAK+PsHTA7TgakZgC6Tcsix+2Nd84p9X/slbdrd/7LLihGbpMgVeDz0NC+ouBbsSBVZScpAZYILSMOPtbgHd0tuwuxJVW4hSURf3bgUH4hiRKsciRrwYseRMper8GeX2pVDjcXn7YCAanF/L4J9Wus4+944AgzfP4dDoZvB3+xXYeTRV1Xr2a71q3cDMBAu0qj73c77+vUv11cTTwDiSDMgKRRG1Wq0+wbivwYDbFC0tlkWgBtKtzL1M7PYwNiBn9EGMZbGYFKe+21f5Bh9bDUqkJMv33GVJeHz/j+GqeZ8Cu5LgbLldShShF0OKVYd0v4S8Anqwkohbxio5o+QK+8OCaE21tbAQOAxHiBSmiSfK5JfHkjMyIH8f2BzPsRG/t2dgNY/kTqhAgUI+ewGHJ/sVGIqnX5uRYHHwqgtVq6pvBALo9jNSB1CNI4nUQias1Ydp55hCXsdgfylZYWhB4W0LUx5QF/vKf2PumW+GfYOPtHtHu24pVZw0FiySwu0ZltbmPttaU8IGSySmgu7HCMYB0xXq02vZMGsz53fO021apDUckpZYyCPs3YKmGnHxBFrlIXAYjohJYZo4lAm01ipV388I8QUN4RO3rrxvaN3ibfFFDd2KL3flikY5Mtx+gWva4yhWGK9qffmI+vc5vzi8pm7/qaLLKuE6KLSMxgRfDkWC6ei44Ffqaw8KVN2Zby6ee6B9U9PRj232Dj+x2iyB0lh5aRJeDtuzmWkiVZnDEaVt1PPEBdg5NhQ29FRIFVs3osDNgwLjkNaV8CKmowjuyFJJtrekKpF+i0kUNbw0a6BcjHXMCeGG9+u6TwVrXzq90nUyEpxqYa1fiFaVS8aqFHjujLRW4hM+JLSosBnjRdGTHXAEOhqe6u2LXDRrz/Blcw5Ak/6qC56M9hpQJJgg4UqGYd6pu33N4f/e5Iq+GgQLWXFREr7/zFPy89gMTZ42sBNqLK+IjEcnoC79ELA5zngXZQ+WB6emo9tepMq9iBFRF/kKvsppF082wfIcGTnrJkWhWr8wZVEdGBLSzQXQMyygd0zA+YnDoBnWfCQWqNvTt6Huuf6Ib/ksOHlFIALzCk/AoumFvzgAjWFGXlqskum/8b6apaeo5ZPUv7XEC+35ptNfCbb1/R1IoSpLwgBm+a1YOQg/6/kSfGCx7b28VQdmD3LOI3Zb/lGtODEd3dYiVQkrSsPpK+41wfLveGPQ1zMwrSrD8iYmt1SCRU4Swtf80mnATWnw3qRZV6Kp5uxngu65IekejSXl55VOE8d1PZlrezBONbVloNTIzZP+htTfivdCmJMsb/LYFW9NwPdefx72nnwQVs29EeyCmkU3A/o6YWcCOXU6ZKS6PlEcWjq6kxIobB2TqoQVpaFZU+BwwhuWdo2sWbBdafSWNABo1tW8r790y+zvHliPiRuY0HJK8JsiJq0xc0WSkPifAVDGy+s2r6kR8IEPxeDl+LdUobKCc5coEVf8sKE3hjE5BjMjc07GndcCUSac1WvKtpZUJa0ojWqpXzbylkAPbigsnpMRv7t3NMBjSXWhlPfgcEe+DMFpSOvKc3SkY/Z3DnTULWiIwMq5vjMXzYFSaDg8BIFfHYe6g2fg9Sefh+ifz4PaZeVdBYBuPxSqR/77W9Dz2o/hCmlRrWh+L5jFyvYTvuajH19zZsnjhsoMuUHsnQlt4uW1HnTS8g9nw4KYQOGUen6sdyC5BWwIZv/YofmadEFUfWBXugQ7s7kE9RJrroGRRY3Q97YF8r5X12vQapr7mz6Y9eJp8A5OVMJ4vetH0PTW/4O5G34CleLll1yw99duYGNtamr6HN8y+MT39sGpkTgUy5Pb96o1BAfO+cEDUf8G3VYtulMHQV0zVvUVHzwc9jQIqhVYHpSuthZPFzgAW1pSdrCiNGZCNWh0CUorq9v/w9B610A0CAZBkZmF24unVLE6c/EcyGVdodU09zf90HBkRArV9NJFLrcXhp65pKIiteLCpLodO3IYjh45CsdOSqeb502gFnoqgs0fPKYKFNLU/9drT/o3bNP7WlwoWy+U7WPANzklHb1Ykgq0y8g+iVRZYEFwCLaMSVUyFjWVaolNFQLXXZ286aJtI6vm7cy35qoQDUeG4ZwfHYQLHvgtLHz8ICinYhAfTkLLM/1w7sM9sOz7B6D51XBWgUK8jU1qTGr8tcovocHFvqvemoBr1sdl3AqKAquwYz1BDUypx7VfBg6hVnuvS7U8qepyRNS2vpykKlCAA7CdSNnJitJQrSkbF581k5GrF3YPfPBcdYEwlABaV3NeOgWXfWs/XPqt38LirsPQeHS44Ou426Pejr3u/HWeaEF9577pRebrT97VCQZBoWpk1S9UCRKqspGuQGF7bCdSlWpLkA+0pqJSPGGGgFbV6RuW7zz9keX3lWJVabijCd371khLCrGDJVUMWrsQrMqOFlS2auzFWFMIZvu1MOU+Dwha/EqUDFagAAdgq5iU2paAVa4tQT5i0l9ey2BGLThEsTpw66WhhhdOdSz4+ZGwoSzAIsGYFIIihW4/XmuPUOB379NnWGqxp0KgNTU26090x6YyaWCiK6KI0DhTaxyS5UEUBVagcMKaKVuJFFY6B5syk1NkBy6eA56LZ92HWYA1r4VXsYR19b/ctXVn7w8+ewm0XPUM2AG94qMXzZqSQlXU78nHIeSWcaphwTdBFQmVu8rdmXaD8SSWSQqBjbGNuw+tqIQNXX2ZRGRsCmYwmAX46p9eHBm8cLZl5o3HN1ErcPQF43Vq47Ure8AhFBObygQH9GZQ26tUxcDOgCpOlB2RWjMFNsY+IsXtXxEZramZkkCRi6i/Bo5eu7QP41WlJldkw5NhSUWPzdNdfUJxtYQHgj944PR5z29P1pwXAgeA1pQ3vKOkVhyYoo4JFdVQmYKTFVV20OV3Mgy2TqCwjUjZKe08FzMlHT0fXiH21oDYn5lcYbZYaUKlKI2R2Jm2goNv0jO/byD4w23RptQi2dE5f+mYxIKGgf8qOSEHLSqsTAEOxwPiABBlJwlJW3uwbBGTiiiqheIIv3pCqAsOZ0x2lUvO1OV7PjvDbWZiT+bzwwuamsdvaNhde2xkd+1vT7f7DoRXFZtgEfe44UygIZJ835v21iz2h7zXXB5Sjh5aDWcO5qzrdmrOLTA4/9499aCcPcex2R8L1Q58t9sz9ivbZy95Rro6XPHDu5Oec0qyhOpA7BkCtsrJC349TISAKDuMsYCdyyTZQqTizDnp3dLlF5hJCRRNqTI1WasA4JoWrF5eB3yHe0EDWld7ht67eE++vlZnX1vjlhZPLQzPqYNoQ02of74/nJjt7Q82iu5617lnL5bw7L8YrzvzraznNjbro7uOz793rUe6YesBJi1IGm/5o/0VFakxeWnFpaOiOZZ3NyYivvoT/7xyaMEDJVlC6PZjAvoE2DM7thDy/EOUNFEZMlx+prvvzcAWIqU47MKKMWj3CpiRhTBPAr8FYwezUxUQspLZ1yr2+vDq0TGx1hVNQFIKU6TJC9FGrypSGn4PdC/1KvshS1+K8dqVcuuA2vGJ6wfjT4OLvrE97d7LamWhNVV/6t9CVjdNzAkKVFyfN71mZDcOECW76+RAH1Yc2tpDupH3V2uDRyeQdvnZUqQqHpOyY4WJQiQU6JgpCRQDwNefAH4HFMnQ4ubx00v9cGLFHMDbUWk5ZQqUrmM0bTh7HwXr9WV7w1r8KR9yn8pedC59ilHs4t4qIlzLhC0HyJmC5vIDG1JxkYoJe2eWZAP9/gnB58EMB4vu1gB0uYXSn2sfJSEK9p9XCsRRRupTy+dijev2HDxvXyhWcx7oYXTOJ8oeiI8FPhGJBW4FETtH+ikU3a/zDT5S8nWAbhtwIF5mzxn8TCLVWh5KyjS1ioqKFK6NSoLzRAoZd0A2otVgHKQZlN2+PB1VFcYKlmZNiPyW9GhDJ4zO/niX0V5MmIxQ7nR0xXe+L7LkHki63wTg0S9S6QSKkkRGTp5sOcgUogaU/UBUHGHTdaqVFSkHrI3KBQ4IM8Hl18yUXX5Q7oMiiSuFB05FKfw5nl7wn0UNZEnvuWVdIMpHU0aB69Qb0pKq0/06TKCoGf5p0da5miHrwMoTbmlFUcKEPeBMsaXBUFGRsmMxWb2gyy8muPGSCA4DXXreEgaRpI6BU7p8g7meq5ez7FZQ7iz2HBK+i8srUtEQuPueBjF7VI7Ahau+Z1JsBQpsjBhN1fFzHLVV3lDUSWi1/MBmVEyk1GKywpnpshpR4VyR1UsEIDhaZAV46cbzJfRYUtLdl3BoPGUqKFKe1x4G7nsFjBKtf3tRMbRRxtc60YrCrtdkRdmNRBBsRuVEysGuPo2Z4PIblwIlbYINUATDSf3f8XDC2RMWDT5yGDyHvgtQp789SZythnD7c1uHFv7XHjBAurX8poQzJ0thikXZD8647Vx+FRMpJ2b1TWWmuPyKZTSu/zseSlhTborHQuW1MHBtVKu+hfvxM344/q0PwfFv/xmwljdtYFy/NSTde8uHgN/iVG+ED8RusqLsh/w92S4VvSKLeXEG6NSsvqnEpTvMN6XaASHdhEnwy2C+7hl+XAb+8TU+V/6Bq0Eou9ScOZ0LPz2R7iCUEaVlISSbOsFzcmvufcZ9MPDLKyC8e5W8XwOssRfEcMTvq/etHx9X8vaYwmon4wCdimKOONV51NJXKnJSAWVaDEzromyM3apPVMSSipfB1efhqc1l8Sr2ZBVYhFZwKma8N9jJGF9baB9so54v5T0Tz+gef7krTiRaNkCyPrc2j722GA7f/Wdw5omrVIFC5sxfBr4XwiAtqWCNL7tFieKErr1RAZvNtJ7w+tCulXLho87CtiZhswpAFbGksMstWAiXF15jqsErztBhOAaWobr8ZlAtP5eAPs6ltZNnxn0iwlYbsaI0ovJ3cTrGOmZ7zZllN/XdXvYmmonZ6+X/Bqc9jq69/u9dq3Yc1qhpbIJ5F14qb5sh0ROG2FsD4HLBOu6CQ0oyJcRnLScbuvW8LoBaOYIMxdTMML2QFWVz7JaKXhl3n0OLYOZiJtXym8WU7fkEaiDBlw8noWhxGIgzNZW6VKFCK8ozWv4Cs0pNEFennkW4/TD4/Bo4/f3zz1pOyOxzl8OspRPhTPfBYWDS3ymkv7PGy9cPjsMTdhUnBMWpNj161Mvbkbi+15EVZX8wFf3EiAi0NjBbNKEsu0hJKyrglLYceklgfKBKi2N6QBwSOt4cppCfkC6+sUTp3YtRqOKCNfvdyv5CMSr5A+7Gc5z6uP/o5oqtG1KFSpKQsanIsgch8sZxKVA/Vh/LtJ6m4nn+pGpNSbdfgHukW89CD0ApZAqUdHfDmP5ERrKiHIK05INgk07JZRepOLAgVBlaKjoufIUqowFwUMk+sGCiw7jg88blD3o8AR1m9jIaSUDnWJJ3yBhUqN4DPfI2XO+aXiNwFig7pz7W1PvXKytW/TzN6Mp9kKxLGXK17wvAyDeehFmtiydZT1PxdJ+GxAr5jlq80OCRg388JQL5wJhSgzfl0i5H0kOmQMmJCYwY+HfJinIOQkmiy8/QkgirKLtIJThbDg5tJ5APTEX3Vcm6D8y+HGJ8VVy6muRXhYuus1u+LLXJGBVIIbEC/Hc7oqkNhpXs0X1sUSFPIyxPIdQglP21Z77RCRWCJcKqu08TKPWxRh8s/NT14Hv2TN7XunrHoO5bPTD2UTk+SKFqkuIzEM3zb8k3jftot0MWC9VUgRqmWFTVglXRwSaUPbvP6VUmchGvgjgbVgE5KfimE4J/NqJAp5zFBxVhf9csniOea0TIGE7427ew5EDFzpmPZp+nJC9uBV2vD0dVoeIDMTU9vMaVe18UiNG0q42nhYpb5HYuUaDIinIYWlwKbEBZRSqiVKdAIU5PRR9lfPkZwW9KpicROAAlkpO3pGJsYMpEUaYfS9FfJHwSeA7ZjoePB07cCZXENZrdWEguaYSE3PSQKVRalmouYsmJpAWrhAqtZE2goknjAoVQa3jnkY5LVZyyilSC6a/OUOOauDCcgNpjyoH105AhwTqGk3B9EtPp5YA3Ll1MozK6FolN3jIfR2EoBApHNJZ6zVh0+rHwsbH08fS4qfDf1M4h2/HqT24FbywElYSP5fZoRT6wBHQfJy1UtdKHl8+aQqwUqvoMaw4FChf8GhUoag3vWIJgA8oqUkmmr98NXmB17skuBicQZ84qkYQZeTLOs3gowdajmODAH0ukxCXv65IpYUCBQVHTrCIlbX3FEynRwC2ezD+oaa/RxCqRyDhe2lrShA6fz3du55yprBWFuPKIlOKvgch7zwG9oFDVf/VF8J8eK7ivVUKlTR40gSoGL4MeIJyHUIJgA8oqUnrjUXhhaAsEnSRUctB3VNO5UzG+qn8cNuPgP1VMMBjvljNoj9y87tR915RfC35PscR0qygany4mPH08PJZ2vKmDqCp+8Yzjpa2lbOeG56IdD88xMLJVmrIhqDSYOJHL5YfE3joPolcvAN3HiyShZVsPNBwZKrivFUI1nki594oVKAQXgAPhODAudXBAVNw7VLbhP2JwLRGm3uIFhz55TaTG9a/HqAiqCOt8j64sxUTl6yOiwmnsOPh7PdMFSUNJx4NiOuq8oZh4cghS5vHwWHrch5ow4camHC8wsg3sAiZP5CuNFH3HfPW25sljoAcUqkUPH4Dj71sCgxfPybuvKlTyFlPYuUlZf/EiY4eE86lPufwqmpVZNpFKYr0+gxcKXhwoVA3pwC3OpiM6BrNKgT19MC6V6X9HMeIevlgOGAHcpIj5WYHFzEJRZ54RObD0iSSE4kmlXz5muk8/yaHd7Tp7nliSp+DMG5/naaFAaymZTA2AmqWD4oGHcKUtL6bjeD7vhPhpx9PQrCZMc88lnA2jXepmF9CSisOmvPugUCXb6qD2kTdUEdLD/B8dBFc0AWcuz2+wTxUqL7f3dUPYGJ6ouHeobCJVbNHCzAsOU3KV9GN2JQF8ca0HmuVA3i4H1nZWRHUNrDiAty78zFyw2i29sihccvAOJRPQnUhMX9Rq+DwV8EshCbhcUDSuPMJhlEzxM8qsAftYUQjXmbyRWOGH0T+/EOq+eUCNP+lh3s+PSKFKwsm35XcZatcNLvattEClGzIeAsJxCMGDUGHKJlKihHgNXnDjLGVNoViNgP2ECmf8eG5y22DFWhUULgy9SFFZ7anhYSUBXdFo8YuHxxmfp1SBG6cmHoJZ4a1gJ/iofu8IJlOgUPl+dBg8+07pes2cp4+rt3qEyg4k0IMgqJ2NExE2yFgui0hhvT5RYgdbLR6FQoUFLVVXkw0qV2SIk2ULKaf9m/KH43LDhlo375TuwG4pVnuNxrJGYxAYs3mMTw9zztjLikKwhTwmUGBxWT1gUdnxDyyBZKAOfD8+rOs1eoUqG57BGDS+eqag29AspNXeoXDYXY1lw6odOxSbLYtICRdvBhNm7ZlCpQWEKylUmNRRTnGaCooVc0Gnr453lGpZOZXQb34AffEmsBvnnHcU6uYYm4Ri5l/iAr9u918xQuU7MQ4LH3kVIq21ZRMpXEM4LviqelB2A+E84qoXrLpFKm5ipQlNqHzpwHyyAi4NXNzY4rO+oaJeMi2ryLiyTU+SBWci6pZvgOGPLz3DldZukAkIY5bheNz+6fSv/PZ5uPeLtWDHJs9/6XoRrv/IRWAUzf1X84vj4P114XEBhQotI8z8ywWXMSxf/6i0nsIw67lUOLP/nfrXa5lBXMDqhHT5uTkt6nUcFU6eKItIJVM+adNAoYomy9bqehJoPTV5wZagWNXW8pukcHdFI8refPvWe9k43vpB2e5NZyOeAH5HDUA3jyv7u8P8FrA5z+y278T8+LHjUCzo/ou8bxEk22pVsSpkVTW/kIplZQpV3eEhVZRw8wxOvF7xuaXlNR+Gzys91ICTNJyw6XEbozU1wvjGJqZsI7efs6h08kR53H0WLHItt0Bh7Gm2DwqWqLEBPuzuWuPjfilUu6AIGj0QdjMIJ2xeXPbgi8+DXXn+uX1QKvFL56g1/3yPHFSbIuYDhaqmfwxOXjkfZktrqe7w9P3DF82B/nctAqWm9Mseu/JibFhbYqBTqALDCr+pXijbyKJyDpVOnrC84gS2fSimzxDGeeziTsPzmFfnCIE6C2YBolXFeHE/ML9X2Dq+FRkdht6Dr4Bd6T3WC2aA7j9s3aGnSoXvxBgseuS1rAIVba2DU1cuME2gMBaLApU0uHYR09FHGd8UA74YCEdQ6coTlotUrAgrSuuPg1ulhQr//bl19hFMI2Dauq+WbypGqJb4xR75PdjWLXPwJftaUcjw8LC6mQUu/h35q0tU0SqGGilgy+7fD4u/1wPzfn5YdQdirMoomkAhSVFcs0VVqARsHhF8rcLMa5RJWEejq3IxastFKgnGm2dh9QK8fjSxqpRAOFmgNDBOVYxQYVhkXq19ewCFbOzq0zDLmtJAgUKhMlL7bypoZWHyxOLvHYDl9z4Pc7/TA427DoMnNASuAiaRtk4RKVagMokDrEb3Hy4sB8LWxJNVLFKCsWYoAkyOwA2FqtFb/jTvahAoDVWoavhGljFrrQHlUD2DHe481tJ50prC1u1gQ+zs6tN45YA154hW1ah0ASaKsKrizTVq4sTpy+fB2KJGqAkNQ92efpi17QAsQ9F6Ons9wcxCz2YIlAZaVcOM3zIKfA0QtqWScSnTEie4iy8WHIJS9gJswsUXkQEpvyupLug1/KPWRArTzcvRHluDVZFAaaiuPx/fOD6uqKtfsb6gWygFg9cXzFJ2vnSa+2RgPAg2ovfgq2B3XnlZitR6sARMqDj5keVQ++Rx8L+or1IFgpl+c391HCIyRnVGCtXwdUvBHU2Ap28Mksfk5ps+JEztyjtiwXUowwKd+COltVT2xMWUillSJYsU9/BVUpw6MHNHe0xkDO4erIQt7TU55qeCrOn0cb2MxVMFS2vKKFR+G8TCrECOAUEpVGsiEWW3nLmuHAXY4AflPm+OhnS4j3AJ9qZWZdvLp1nnqSizxWwXrShMnLA7IyMjYCXu2TXQe80SGDunURWezFTzbCTlRYT71h8ZUZMssGAtEm33Q2R5C5x41znTrq1S28YbAYXKw3jIK618IGyFIy0p1XJywQZhoIAqDvxaK2ojYqP1simHUGmFbKsV7pIDgYeHIEt/oFZQ7sz8Ww55cvLBoAFE94rZoms4LroPDvI1gzHogAqByRxDfYdRVO2/2LjHWmuvJt2yBNt3oPgsfOQ1VXxygYVpseJE3zsWqX9jfKrptTDU9KS2xl1H1PVTWMEi3pxaDKilmFstUBrjAjZ4GdwHhK3QMvyWtLCyLx0wLlIyrsE8fI0Up9VQJBhfQne6FnfSA67DUPsJpZMpBi24YFzp+Fe14/bKyUVM7C3YR2MKuH7qkjnKzlgSdp2OQGA4zgKKYNMCI1EBHUqRa6zkdxCWg9S0Cq1YIaPRI/pm+6Dv57/5xSpwgEiZnTiRDWzDgZ4JjDUdvPFCaHmuX10nlc2qwn3wcbSg8P7gxbPh5McuBK98zNd9CjyHhtX1VkJeWL3XLFVfM5ZuYInuelEGVzvGqDA9nawp+5HO8LO3SKHJJ917G4GZM0CgRYXCMJoofAGI9EwORcSd0czNzAunqQIJGpVATaTwslVjU6ypdMWJruYccQFMF07IybjbDZG2egi1gQhBllIih8Z5MF5kxpZ0DYcX1+aOS4wwvmowEil6glROtDT0xsZGsAoMIWW6zwdknAk3FBu/3OqOTHaLYtIEVp3ADD+19p/cxjvmwGjnAjhd6wVv/xjEmifP1KJlLj2GFryXWnvYjkot7tctUqpAefkmYOaeKK67cHN9LjxNqLS09BoTm7nVVbmbbyryvfqVpNjlzVPnzyXEAanaNZoOycEqMMz5pjoBOxogdzHbYhZvayQLXAhxAYEzJ086Zm3NmfAw+Oob1bisFeBEL1soCl2AuPFoAuoPj0DDKwNqggXGrtCKOvSH7epaqdkvnYLa7tSWfOeishWdzYeRDtdE+eCQsK9IWSVQGkbaXGtCZXa3UbvW47MKtEaba9jy8XGxJ9c+zUw+V4Spmixh3Qv6vgvtE3rF/unnGr954VVoap0PLQayxTG5yKdz+oiTNfTa5vqasMIExplwO3XlfNV6QrHChb1ocYXXp7L7MA090VzcQmGzKWWSQ1iHAu6KiFTB+Z3VAnX2RNLxID1hEsXkNvJoQVVjNl8+MBA+qkAQE2By7TPG+PJxgx2VE0WWwdLA1ybyCNWxQ87yAo0ZrDqBtWRlvE+diOmlVqegoQWF2YCv3XyJWscP41ct//sGJAJ1MLRhCYyc3wJ2gETKpiiVSUPPL1IyBlEOgdJAoagrW6/gCWaaFYWgyJ+SA6LLA5059xGweszgIsuxROnxSulWzPl7O/zCC7ZcXJyLE736kydQoLRMVvQq6I0FGXUlZorV0FXFV6+wCux4D4T9qFAJq7w/b+7ha8slUBqYVltbRqHCf2+mWVGZ4NopZuKPL5JkJYvUqJLbuntp/357TPd1olekMgUKQa+C3oLG3iILH6NYRRZbl9RRLPL3WLEGe0Ru0BUvhCi7UOUWKTdbLVhl1sOgSFkVaJ5KJSw3u1FTw1eBSUQFWwwlIi2IYK7nxkZHLQucYBZeY5O5g/aojgW92QTKiHWP8VlWRRMtF4mUbTk5Wv4Mv6xSINS25GwtVJB6T3kuPB+JFDCXeZORmAldmPEYueJSR44ctswvfn77edDYYK5IFbKkShUoDXcViZRP5G/YSVQOrthEpNQ4VIXBRIpai/s3ocU2E9ZFFQLXTXETSvEPJPhyM4LeeIwxhc/L9lxkfNwyd8N5y8+DtgXmauBonsQJswQK8Vp8rZQLKbbdbqCGiHZFSULl3X3MzVeWOw6VC5/Fbj+fgy9ss1f/uz2Fm9BJN0xEClqYCSVrkTg54LaDSQzEsid0DA4OWvbbnL9gvhSpNjCTXO4+MwUK8ZbJPW4x4VoqMGtrklBhS0otIshzZ3tVAivdcR4TRQrT4hMGhSOupMo94WbktfhvhWP6S0rpQQpQQYHxyljBXFDuq2fT23dEkuCPKOa5DeVnE4xkyfIbHhq27CI5v/18aDC5OkQ2S8psgULczrekIo1M2UZWlL0RlRYp5mYddrGiNNCSsqJtO2fmWWkoGlhLENOGjYgNipRWvzCh6HuN9m/h7VjCvJI12MoDSuBUzPx+QFOP+dKLL1r62zwPY1KNDWA2J3qPn72vpDsBaJghUIjDY1KReiCBcgKcV9Ddl06WMH2gMQMrUtLNdCOOxFODD7rgjAqVETIFCsHEErd578M3xwVb5WzWcNDabCvq7HHlMYeSE27Ig6+9bplIqZl9cmubPx+shGf0KjNLoLTjOnQpRRgFyksZfY5AuvorZ0lxr3lpyGaDF6DZ1pSZItWQUbHCKqHKJlDNJve98jKllgvjCymPR61LtDkVhQ1app+MR1mWfo6ZfUhDkwWW1PHJ4y9+Z6115i8ir3FepmoYXXwkUM5BT9kys8kcqk0LeluB2dlLLhNFSqs9aJVQlUOgkP4kX49Vxo28pi/COhULqyPjsU+k3X7Hjx6zbCEvZvYh8+ebmziRCyuySp1kSMnLuaeZKw+Qi89ZVCwmZaeMvlyg5WOm9WO2D98qoSqXQCFJOUtKGpgpoUCNJK13EcvY2+q+KF9j5UJezOxDrGirkRmTshKnZPhJy6mriSnbi7HaicpT7qoTKQcBL76BYTnBbLy4zgSDQlixUDizmnsyI0bV5C1OFMspUEYpl0BpjCSgc5y5LRvUMLMPMTsFvZw4IcPPB2JnLYhuIBxLKKxOZMs2weACGxgy+3c5RWpMLP9i1SJeMy0qLSEDsZNAyRjU2nIKlEY0YuFC3nRMCjG7NFK5sHuGnypQjATK6dR7yhuXcnOPdPU5BByotXbZZhzLKrJZVNiC2+hMFxMy1B5bUB6BWlwLPePjE4sppzY9xEy7MzFYl1AqM6kZ01EHrxjQisp082FppOEhYy028nGiz/o28ggv0FuqknhB7CKBqg6ScSi7u8/WCRNTwQSKcrezLoZMocIU+mKyE7Vj4JhjtkBhtY2AL//sW2t6iOKEFSDiJtTlK4XTfdYkgU1dG4WlkY4fL08cyWwwLGW3y0PGkvfUi9zNNbOCbYIYb4b0+j2RjpkzAWFs5SF/lhFFUfqB4lplR4ZdyixSNk+YmIrbpNliMZaNUXjaRVeK1WbELZlILxQ1ErfLrFqBrdtjIpVJJ92MvlgSAvJYAaylx3jlA/NjI+ZZN5ksXHYeDGQUeprTZm5c6mRveSwpBOO2SRMrkZhAWG/BWGzAKbicCHF1MhTMdomL9IYwuaMUrT75d4gloUdJKoeAsJxy1+9z3MoKdQGr3OI2dGlkw+pK7lpyxWhCrR5eKoH0lsJlbumoUrFKpM7reBPWCjyLq9aZMSnEbgWT5bUaKpRmrmYXu6BDGOwCjYhUPD0g3LCauXhY+sa7RELZD0TV4MhGFVhlodQsP7SkwOH1zqLyPfSP6y+p5GSsEihkTmCy5VTXYP6C3nJht6oTMqwayvWcajm5YINp3hw8jjwe47yTxMo6yl1k1rEiVSpmV4TAOnpo1WCyg9X0j6Y2dFei2xOtHe4yNotGkU4kUreqCyUji1ALwHvcxhY94zESydQxFWUiMxHBY3Ke+u6KOdeBM9YkTSCt55wPI+MTfzfNMbc0Uu+x8rn7bNd6BivmTz0nGW9iXr6xGMtJF5pYuXiHElV2Mlow7GicKVImXIhJE0VqLDE5tlMOoUIS6Qi5ahXGU6KVT1hQROIYs0rmjumpmYhi4vg46Hnd+YUF//1YPH0eOUDBkr7s1DkXca59x60Z6BctO3+SmCK1DrakKhE25Oms20i2jA3Ga1L5qSnQPcc9fCOUZzYexN54XIEnkgnlABCOxJEipc32lRKEJm5RCpSWeWiVUKFrbySe47m0CGRaQxpTLZupsIx1XZmoVbvx34tPHFPbV5lihWUj1/dUyrmayZx5E64+7VwzHzOD4WHrrMCpuMqsUloGqvYdTm0fk8CYkQDV7SZcrIO72XooJ9KqUlxwPWO8S8SpV5UZCDu6+3AQUkM4FroScHBHV5DefwOtqVgpIpUeCM1wj9SlP0XtArVSqDBJgkkrpKF2Yv2VNuBrZFpDucD37XanLJqpnwF+LslkypLJFAslM7UqCzhI4SDpcU8XnlLPNTZmTUxq6fLzoN43+VxnzzY3cWJ42Lp42lSsTtTJJFOgkGzfo5xUdUjX+l6XhwXLLlCZcOhkHg4kVM6joEhpFRPw99eoc0HpcDpTCndt0FHpGd0EY+mZul9ndTYzLkYUKrOqq5dDqFAkhjNmqmqmoyu1qe60tNstlxWSKSL5Ztxq/Mid2g+FJa7FrnIcF4/lSmcC5vpepp5rNhHMd66xcWuskSXLz592zq3znVsaqVyJE1MFCq37WBbvBC5fiLr4pga3DZa6SKGS1twgS9KiYidRUKQ0dwwO6CPpOnSFBELLvNNjpcTSAoUY6RtlhgWEa4rMbAFitVCNJ3MP6qqwuCaSKaa64bTv0SiqAKUnGlrPrMxjMjA+YcgUQb3netKiIq1TM/s06hsbs3bVLYZyJk6UQ6P0CpS2b53HPmsxpTW3Vv6Q++TvjdqDOARdHmytXxKa87niIcWAxxtND+hGqzKYIVJmtl/XQKHKFFsUKrM+s4jO89UGeVVg0psZn1e2Y5Zq0Vp1rnoJnn9+1sfrGpy5Vsrqz86VXqDO0wvqB6O5BQrJFDOb4AMP3yh/d2Xvi0QUhy7bBQeSxnSJH7SSMJutrsSUCxQodAviD73WbU33XT3ngCJidkPFbBYVXtylvsfByITVOdOwwhrBzL6xHEV1Zs8LmGq9YVzKijYg5cTFJjwpWhggXzyxxmU7gUqBKepuvgooPuUIdA+bmomPgXuc0eNvr9hBVxModB9hLb5KCJSGFSKFZAoVJnn4zPg3RPmy3uyGFYt5MYsv1+c52/QMv/KJlBVFZrGXG3pUmOZRKSBQnFX2ui4Ih9Xy9PfTGirjMEiW1X1rKGGVZ8ykcPCNFJHGLdI/cBwccGZWrjVFuRiNWzfwo1DVe/TF8fRgr5Js5cWKCuiLlp2X87lah7r7ECuy0GszBGo4Vjgj07ZW1AQ+lzdVp5KwN4bnOigsOPji4K5m5IGx1u4Yg0qmU78bdWT+WQ0KFLovrRJLn5mJGdKL3iS3QG3q76PjqS9Q+7svklpHtbAO4NgQwIv9UDUMDZovUg1t50Pv4MTfl0rjaVa9/FzHAJYGzbWkRobk+ZtbyKKsoDDhNaJ3UmeFd8JsBIN2Kby7BFVStzVFTbpqMlx0own9lgjGs2LJ6dlBlWYkBlXHrFqoKiKj5ouUv3WyEPkyJioNJrvmRgws6LWjS1dkuOgL4QArSsOnxqYIW1O0Z0BLdvAZ+EGiXxtfY4ZAmXkdq1mGVZaQgO4ZT4Vba5jJwAlzU9B99Y3QtmQisw8/r6aMNXoNjZUpjYRC0D9WegHlSuJ1gBV1llRbEMIAjLvKanmWNIwVk5VX6zZnlmV2YHgoVn1JCfObgMhB25LJ8aiWKZbn/AXmuvv0NFFEgdJ+h6fGza0vWU4cNjkKUjq6MRQFnCNSlcRsQVHERKUMp+Bl+RsRtjq3TuokwifMTz9HSyqTBRmC7pOfqb+5vIkTmkBp1HuKrx5RSSPMkda7iy8HwraQSGWAi26d0Jpeo1XO/2blKSOFcalqiE2Nj5qffr7kosvO3m+tn/iccLkAJqIsXVS+0khTBQoTippKSCoSFbTAHBKLmgzPaPRJ2A7HilTCogtxIFJdbr+L5jk/NmVF0kQgOBGPap878Th+9yOJ1O9r/nzz0vHU7L4smC1Qlf7tupz4W2P2KdtETEfXTwqti3EbLdIRwrrZIsYBzjgkITWhY3EvJgScOxscTcSCCuhaTAo/m9qMrD50lZ2K6i9BpZdsldDNFigkUWmRcqIlJUik7ExBkRJioqlfxCauMKsvRBRlJ8SncF3UCR2CutjvbKEy25LCeBRu+Jksm5V7v7YF1nmBrBAoJOngrECziBkfpyhxwgDlrtJRUKQYmyjxM2aTmE2iDBciDiBOS6SYCk4qUMhi8vNa2gxdc2qEI2uVhU1OP0crShMonPCEY9knPm0mZvgND01YUlYJFOLk1PVc4HvCJSKj8cIChHFlp8WWifzocvfh4ryzQpWovEshUaYLEQcSKcyOLemP3xMKVSQOXZGIsnvFbNG1oEHsdDNn1Ssz25J60yXnnbWg8LcUjmf/TZm5oHckXdYJJwxWCRRSjSKlpAtB45YvLV9rGeIqkPVKOAvdX6UvvSZK6CguaSX475bjQuQMQrVC2SZHlQfiCWdaIBpyAA5p95c2ie6L5ijbmr3gmMZvEZOz+85ZpC8hYr4FzQ9x8GxJZ2Q2eMwVKCReYQuiUvPXTIEyXCvTYZO2SuMqs7sP7aOQ3IJ6dkaRQpGIpWM2ejv1momVVhQKk0uIQ3Vc7OFYzyst4fGo6MJbj5s5qSBlJJYQh+QVOG0NSKMHwpfMUXYOx2H3yXEWHBhnK8cVCMgJiC198wMmr5M6v/18Xfs1WFS1vE6Kk5ubX5kBrbRKLwA2ml2Ik95Siy+XJFApqHafjXGLpDjAXCyo9wU4+xsWxjr1mglXxE6vHEyTjC2Wp+CXp1JsdDuCAUA5WISkIPX5mHJAFSZ8L1kuNBQqJSFC3hq+ntk8ZRXDLPGIsj2Z5PPkn2dFSnpq/aPAV9YI5YCPQR+KVaNHdENTqp32cBT8UQV88rs1JFbhCAsOxdnyuJDfh4lCJ62OvuYa6EmMhtsBzFvL4lt0nq79GpqsWw1tRemgmA3iMGrihs73hslY6MIrZbKrCRR+nvXuIsciQZaUEZLltqRELLqS+WoMfbsoVFrDM/yRlKuauZAjoCsRXVmn/qE+hDOgUAJYQP7pU6TC4MZUpUkF0bh8TY2Qe8gX4KNc3spJbNgFIvVBJ9XBD7eOQpNAtOISCQY1Mkjn9tizWQ5+RmPDUfxc1jJw+YF7gCVi6wQoMjzFfFFeE/AKpV2IxLTZI36vRoZlKUzw+mCNbzRhzWJIaRkETo5DYGTUvIkutoWv02khWeHus5K4qlKVLZxn1JLSKr00eFMLqY2gFaxGgSqli4GIx4JCUTaB7WERDDMz1T3JIowzecvD8kMcBMar1hqUI61rlxzZl8vf9mq9L8rs1JtMr9Upy0rzJHbSdIWmPjxVLqQg4Wx+I953cdZXC7Ar1aYx9WxJYBBX/lTkf363dP/ZxapC6wlnsSlLRn6nEoXxoLxZo4Brv3zffYKpltU6aYWGQLgOQAkcHXOtDA3xDigDZlacCJ6nz4pCnNRJF79/r6LsRA91VH7vcWAr5d2y/zYTQr8LD8MHuBsmY6FQoSVkxMLEReo4DpW8WF1hOK44YpCXwtQslCTWR/GLhBJkLOmTn3cgJVzoCWIhxri8vlm/VcLl8pTXPepm3BWSLr8+6fLDAUe3q0Zrt6Hdtxw0yZOsS55v4V05+M+eEpMzDz5d2EolHpO2iXT/cQ/rqGSsSsj3F0+IvYmY2CME3ygY8zOWer8MeLN663b1MoUdEgqkRgXm6mMoVEVydJQvDw1BWQQKiVgjUnih5f29ty1wjiWViIvd+DtHg8IDIiR/GV0RBYJxzldK4QhCmQQLBQqFyqNzTPClC05jyx/0yqCXxGdQqEokJK+HnnKGLEqF8clvWj11oUixEtKjoSxWkoo0OAQWzg3LMSAkP+AeKS2HwCRG42UWKfX/MhYjhWqvFCpDg20563QpSXkRgr2Qlks4ibGquOj21HC0qoJWWlazJrs0IuqAoEBfPJlK7KgDZbe0nmpypVhJv39EXv8hFyiDUCQYtzoyBOugTJhdXHb2vHmqOKGw4+QCExj86USGbGBpJD0VzCuJGoOMiWnZmj4Zb/WBEsJRTM6pAnHBghjLTaYSpcxPkpGDohxQcNIblYOD7j5NaD1hOaXh1JIPVejK1XpeTjT3O7FIxjSk1STHnhB6mlha5KXFFVBAWluK0ind+3Js4j3S0uqRwnWgFCtrSQsre3ZfiqTYI39YK21axyrEksK2KdOqWI0rO/G+x8s6XC62klvQp6bODRFFilI0ouxOJiGkAL8lc2z14axQ5E5/9DLomw3KNiiBN4b5mkQZy8iYXVx28dKluO4tiJanFKlVMg7i89ugQ3QpoBVVaB/87r1MyPcur3NIiZYUKz8HvhbSVpbqMkolvuQWsHS6tkuAtMYhwhXRz5kI16QSkFIDn3oM1d2oWwi1zDwMIWgl2MoiVAKtzupEWtZ9Mi6Nv/c9TFpailCC8g0vF0p8g7TGuqVodZtpYVnFxM8AramEspN5uN0CiBElLs8LnAHOaOMguuXM0M/dLCgFa3EpFpacVYalMPXIuF9fIqYcqHSraznTDUIZMXsh78VLl+70yyAsfo7xuNjF3Gw9upkw8J4tcI+lkexsSeWyogqBoiVv+hgHtHjU32YjU7axjDVD0ko/+5uVlubk2bP2WfGJE8k4qaI9M5pQYUKE1SLFBHQzZYZk9knLiaMlBdADXNmlKEo7sCRaWH4pZl16ratyl0RCJv8MFNVU3230x2Ul0hzf5cQfkmpdpQUL/8bGatK6CnA3b5YXox9FSxo9WmYhGkAhRQ4QqijJTU4Y+vEYmaI0AGr6e0S+cFe2f/OMjEnJX5FvVonWUi7OjEMgUeZinGYWl53bOrevdd7cs78lHNxlDG95OA7tGAdxZ4mFqHGpZ8GuRGLj1nzXyDRhMgJ6Zlyqy8+QWzEz1m01yYRiuxBCWUDBcqEVBd0yjhKQ0fVV0rrq5NK6EsK1X1pZOb93oWVFl5Hpc5WE6JJB9WbByxcYz4kCXXZ28xkBxQZddMmMCqAJF8fJgCpS8SR0i5iyP98xpBckyPOt6ZAClbQwQD6mpBIxyomZlpS3xjdtphgZV/YC5+25XtNg4ww/aQnuTtp1Aid/7xhH5i621uAryxPrxrFlplhReUi7BHcKpvgVSK4BEd/ERGGxKidZDWp0r3EPh4oKlfwRibhS0Nc+k8G4AOdqHCE7Qom6MB01qUSNZN4PJfnigRh0Tn1cxjH8s+uhrEQHzHO1LVy4QFcdRnT7aQOlWWul2kxec6UkoUtagnvAxrCEak3hYvIg2An0VNDYMgkUJOnymyRWIKQbkLknTZwFuGxgSaVR40BejhUYdK+fMg0SKF3MYsr2fMXS6hn01IPSY3hpmKKwuKKusZoEpul6y7yGOTpmniV1yaWX5gwSR2Jil6+WrcFEioV1E4/b0ZKSFvkeTJ4BB6BOeN0yzm2fhKyIkpCxNyCykSlWQoqVSEalG9D9BLDUusrKx6SmIN1Pu+S0MlrGGFVEitNOKVI9QEyjTsai5I9I5BKmQinoemnyQGgoAd0RpfIu3/ER82JSi4PBaRdYLYdQLSh3YrfDWESEPDV8Y2aSi1mlkcxaGIwWlFMECkGXmpJUtqtCZYO+TTi+kJuvMJpYKSzRriiJdYwr7dKy2u2ugAuw8LxYxqgURXTLHxkG5a3rAgfQI2ddjkmSGAW+Rikx/qMmTqQFRcabpCBMt14mka4rOAy5YygFn9dJc620muJqp4+KDixnTFwntXJN56q8kodFSsch7HJliNQcc9x0vLYBBqJQEkxAyJt0noeBJaFPAbGLu9l6qCTSQ0MTYGNIK0p+Xu6eZDLeySC+KZYYCwGUt4OCLucNCoe0qh4QLtYhf2i4/iEI5hFSXXsKhJxkgidT60xKE4PJFk8QbAaWJyyhJJopmFVlf8n552MlhIKWodorLWOpmavWHAuouXW+ulC1FDBO5tQlXZgAJYSIMA9HoSr7xEdJiJ3VkoRVCVwuT5dQlG5Ixj579MTpxQtbZ98GZcJQhEH9oeHmgoDLxVcJHFiL8zVjqvshNU1VOLNMPgfRnwRWssVC5OdErzk9J1vbirOIin2dFbiFOABODqYoqrekr6wxqtRyDnTxhYAoCXQBupn70mgi+ddH+84cdAl2dVtbSwgspqgwuGq+J1MVFtJ18gLMxefhD08wdZY0MXiLlGkoFNEPisBMtJBThSmTOhB7hgRbLqx1gc54Rk2KSS0xUFg2kxO95rgbW9tK+5nIa6yvlktLoML9okpFjVEllG0uN18jrx2rY54hJUExKLPANZqtrQ04a7z16PGBUJKLJw8fH7jtnPktO8BCSs7VSv8AwtIUzPD18jvUG6G6CXdCFcJxUS1THhgXrCPJ2TysPj4eh/ZKx3CqjdFhc0RqwdLzIZIw/DKIFfGabLil29Dov9/ggW4cGKQHY7Ceq16HqkAVKhwXOBxgbr7WdKsqbT05LYRgdzIz+xbOb7m3t3dgB0ihOtY/sHLBvJY7wSLs2RTJQdQynN2mRo+TcR5UbNrd1omc6jMvaQITIEZjYJjDR805B+FtNPTvy0lQuM0jB1r8aZVe6dueSPefnMT2mBjrDqkFYyn2ZAmCTc7sQ1efFKqrk0w8KuNUfqviVCRSJhEBvphzLDyNy4yMN3/LBq5LUhs1pgcpke7dJUw4NgbhGZvo+2PWOZt5bDPTzxcty98y3srPY06gTa3ybcWxq4GzsW4MHXDWzlILgNE/WmjCh2GDPoxvy3CCWoePLCfr4JCY5jZNx6QuPdp7auvR/tMPxsf4bUuWtJjqXnW0SGEBzJLqi5nIEMDmuimXVEL6/uIJdfGl7kHJ7ZrYeI4ZNB4Lj51MH18POEB6sCVC+ti5+udg1SbtuElF/7Fxka8rR/07BIUVj2fk8xgzqSRSNoHSPg+3GyYJyFSwaXWpzJvfBvW1kx8r9HmgOxlmGGroQBF7RCJVSQMTtJjAjtscrSw1fiU/tx4RV/YLLI6bEWsicbIeBdw5x9qFbXM2H+k9vcVTK548eHDgajOFqqIipbrGOLZ4L+6CTDAIjAJfX68oO8spViiOUc5X1kP+NSvujEEbByMUFm0WrVlDOINHMcKB0uvR19GUa5Uf5FbjnRAsPLYmLJoVpoqdKzUg6zm2K+Nc1EE0njrfdNffs8fGc8D9cJB362hSh68x+nmIuDmW1Jx5bUV/HqdNcDnWZ1nIW+jzYOAskRoSfGMDV3ZyE5OiMEErfRdrRqoiha1q5E0PiVL5EQrkTbVd1DZ7ixQq8NSCqUJVEZFCcRpnfJW8JgNNQtkOReJj0BMRsH6E8ZvqhLIt3X7AclAQRwUEB4F31Mt/F//GZoJYIVwO5ljhXB1kM1HXHBn8tLO596YeO1OwjJDN5TTVolAFy6AloeecET2fx0mTMuuWrTgPGuvy75Pr8zCD2YGAKkAaOj+P4Angd/hBuc9bZCka7MyLjQ+hDMi3Ex5W+E3a9QBE1RHR8TvMEKpH5Z9XgwmUPSSLzdaGgd8kbzulyJRcINMNYq8cW3xjwDfhsaFM4JoVrDgxyvgmtKywmWA8AqEx+U2OjsuZ5aiMqUT1u+M0cHCPSutlZAxgeCx1LDymtuHf+BweW687TgMHykg0ddyRKcfFTfv38JwVA8fGc47FJx9j6jkX83mMmZTZFzw/ezxKz+dx7HDpBW49vsZpn8fwWHG/D6MMCn5LJOUusxS3UCZdD0BUFZhlqrcjLwqVjBHuxxgVmEBZRQrTtVFM8MeM6z68oByCEvGCUFPfNaEq1wWCWX1MnazmvjBxAMKBaCRjQDrr0snY8PFoxiAfjeWP2eBz+BpNsCLRiRhS5nHxb0yh1gZiPD7+nS/xAl+jnnN60EbxUd2JWc4Zn9P2jcRgkrWQDaOfR98xcyyp2YG2oj8PM5JU8N/Pdtx8nweuJSy1mCdaUdLC7xkXsGFY8PVWXhvoxSh0PRDOxehvcdH82bfKgYodPXH6HiiRaSKFrjiF6U+jRpeCnh/kiGCdEWDrRTpjp0ZaQGACeHHw9AeIx5YXSMH6YDHgiwdR0EqovYeBbRRavJ++MNfLWEpWf7ySMSDhwIiDeuaGj0d1DPK5jh1LH3t0ynHxbxyQCw3EuVAtjViGBTflnPG5eBHH1vt5jJhkSc1ZeH7Rn8fYSOnJG3MC8/M+n+3zSMSge+4UVx/+bo1aRVh0GMUDa0MaEQ/8d6QrXXdFlanXg3TBbyw0jhgZZ3IeQ45X5bAUZzpT08/1EPe5bpUv7Dzad/pWKIFpIoVxlVGFG2pUNsz4LflmaqMKWx2HyZXUPUyEwCRwtqjdlxdIMCqy/2jxBz0i+FoZT9qMwuYucaaqlqnJ+HfldIPKJJmIGQKxvOMyKAUz0uDr6o1XUudTEifSv9sNboPeBxQPd3pCiOKB1+qo9Gjk2h+vYZzAjafc8YaKsWZeD1J3A/nGEbwWZQxrI5QAijaGDtwmeGSI/BRKmsjGkpaWsEth10k77JYjvQOdUCTTQtfCxZvlD7VjFHi4UPYagi6FqIBweqYWrAWYVCID40QxNrk7p7xwQm4T+5K4pTUVz5gZRxVYPSXjVz2PcZCzu7T1VFNEJV/VypSbFhiu4aInJibem3zcX1vpiqxVhBldebFFRinfiRnJEwsXtRk+B6/8LWmTvlGm/m4D0mvQVcx1o5bwArZK82LEAKuRs+ap13dC8HljDNbJ37i/nsFWMIgLRF9mMrg6JuQYR/B6lJZUEMW3gSm7wCDomZEeYez/1e0GStSwGo+ruKQ0XEd19MTAdUwRT/b2DlxaTK2/aSIVU1LWACY2eBgP6YkbyR/nfkVaSqrbS1op2uN4UaAwTN3fK8R+Mxc2pGZSE6OJPA9fVLqqatLpvXhBYLxKTCwODBcbD5Mz0U3yjfnlB9ddK6QrRc5UteN60qnNhDmYUXFi5eWXQV0JInWmv7RzwPTzOS1FVVLvGAHersV58LYGlP3FHEi1pgR0y0F9tfYYXt9SUAY1Gw+rv48qsAF/yziJLOb6QNf7+JTHco0jSWBqkhOe07h0JclrSbf7X1pP6xPplPRaoOao5UApIWNzYWtL99HjA3cmucBECsMZf9NjUhmlScYEXK/Hhy3N/FC2x/EHn63nUmrGZR7Z1mbE0vEdPP8pAgUeXlxPGbzY5cWk1iLEiwRT34GwDDPq9gXPOx8qSSlV1DOvH5d0vZViMWD23dTHpAt+LV4fSexBFkv9e/i4OoksArw+eJZzxMSNqfGnBFerSqhIz0en3liZ9Jis1lqumO2RIbKjFpZtYCWN2VjrTx4nXEwixSSRwiSITFHRm4iALj+9iw9xP7PXM6WDtpP+/bh8I2hNjcTBL6aUV/GK4hufZb5XPK6ggrKWYFZh2VJbbYyWGBerbzCns29NiY3msl2j+NvF60MVqAx3ObqxoViyTBhxTBkXfJX2NwqSdCkGIeM89Iwz2r7a/WLFlDCGEOYYFTEvuxEUtsFofMqNQdKzf2WpRoyW1aR9cmBksNZzPKNk+/fHcmRxSZdE53jVVu2sDsxokYGutpJFarg0kSq2RchUzPjNZrtGpi51QCEbFsUnNIgcFc3RAhpk6c7TRscZkf2YMra2Sm6WZfa5BPTVcWU3r4LWQqXg4uaIFCZSSIG6kTHx4MGDA5fqrUjhzpzR5ELPPnpRrQ8Tj5f338qRZqyU6d83yvBYHBrrKPMCGTUhs88MgSi1n1W2kkjFUK7frFXXp57jGn2PmExiZfsSFE5pAUbqZ3rcS3Gb5vla1NbSdeT46Z1un8C09C16XlNV5sTw8BA4mS/99z741FefVsUqk+88/Av53sZgJmFGtQlTRKrE88hV7YJwBoKROx885oZnErV8C+Pslt7egaCe/auiVcevfr4LFs5tAhzbV7zpLWcfx8H+5SMD8Ivu49BzNAzHTo/CO1fOh7/eeCnYkWdeOQHHTo3Bpi8/Cf/xibfBgtn1cOz4afjiXf8DQ0Pj8Oc3XwMzBTMsqdb586HS1DeYY0kRFSHsM5B1WK2UmjQxFXT7Gcn2czcK5T5wKK++8rvA0KnD6zd/4H2h0yPKLrUOmlDgkT2Hgo8+d3Tl86+fCg5NsUq+/fNX4Z8/tNKW77m1qXa9FKlgz5Ew3PClX0S2fvKt2++97/+pbQq+sfWJyOYPvGVbYK7fNP9431DE9/jTBxY/+8vngt0vHmq//c+v2fmB964KgQ14+blnMdC+GkpgVn39dvn7LvoCO3DgAMZCSoqfzm6o2yrPYRAIx0GFchHzii5kgtl+R/vOrMckCnQB5tvX7dQvYu+vf7n8khVL186+ZN32U0NKCB/74qMvrHxkz+HVfeHxrIVml7Q2hv7zTy7fadf3/JbzZu/f98bpIN4/MTju+/C9T633HTqjilI0mvD9w92PLP/6XR8tyT/+0FMHF+/+3Yngi4fDwYMnhoMwLD+Knn3qczt+9Ny8D12zqqQsMrMYCg9AqVxxxZtDbl5C0DsZh1K5YPn5VA2BcCxmJU1kQwh2JyZRyLtL8u3nSHdfb+9xn8/rbqlrWfjAWAwiOPDe/b+/W5dLnPz1nvDffuCinX901bkhsDGf/4NLun+8r3elKh6S8GjMDy2L5Z1xgIGT8JPuI6s/9sBe6B8c89fXuCNvOb819Kn3Lj+Q75jHzoz6vvnkG8t/I63K34bC7ZF4crKPvVEaC4GF0qw6CvsOnsaF3IZX/1vB6dOnSypQ6vXWRObOay3J6hw4fbqkeERjYyPNxAlHw5k7BBaBFpS0pkJHe09tXtg2Z2uu/RwpUm1t8yNy24PZex++7+m1T77Yl9MtdPVF8/bc9ZHLdi+YVe+INFK09G7496c3hUfjqUHaJb+iZRfJaGMCom6377HnjnRq+z75Yv/qr+46EH7oL9627bKls9UBEUWp66UT8x5//mj7y0eHgrmEexKLzlO3cAkFd80mMj5ekkBIgSp5BhgeCJd0Dk1+P4kU4WhcSWt79KWsKY7W1NZc+zg2cQIH4w9++emNmtUxFZ+HR257/4qdf/G+FcUvTKwAKDYP/cWV2+78f79d88yrpycKgbonf1X3fPACuPWdS+Dqf9vjv+Hff7Xp/Zct3POrAyfbewfGAtOsJQcSjURLeg8LFy4oSwPMfMyaNYtEinAs2J6jRWcPqWLRY005VqTe/8WuTfncezjQa9aFU3Dt6l6sBFsHH3/x9OJXjmcXX43gnFSr2eDsWuh65bT/u0+9sQ5KpEYKO9iESDRSkki1traW/N0fO3q0GUpgzpw5JFKEc+G8LBO9tDV1B+SwphwpUujiyyVQAb+v75sff8t2pwmU+79/3e7+zi83HpbuvYfmLIJBln8J23Vfew46FjZB91Hz1oYtCzSGwCYMDw2X5Hpsv/DCiltSgbY2EinCyYSgDKStqTtyZfo5bjHvf/z4wPJcMSi0oJwmUOi2/NgDe9ec938n1/5LQwuck0zAF4ZO6XqtmQKFrLlg3gGwAf39fSW7K69YvbofSmRocKgWSmDhOYtIpAjHwl3lESkVwbYxJu7I9pTjLKnvPR3KmSThJBcfZiRicsOvD5zq0GJIX2qYBW+LReDD48PwI189PF5TD+UCBR6zC8EGvNpzoOKZfcjY6GgNlECz3x8FgnAgZlQ+N0LcBzs8Mbjn4MEB/9Safo4SqeffOO3PlShx7eWLuqYKFFopLxwON7/aO+Kf1eCdNmitWNCkLrIsh7DhuTyy9+jiX79yIpgpTFP58+ZW+OXpI/CVwRPw9NzFBd1+ZoBJJijwYBNKzaozI7PPDK5cc5UtzoMgDMN4CMqIWnz2+Olt2Wr6OUqkHn7qYHuu525+97KzZfvRSvnKE690Gs10a673hms9rkit1x2pq3FF6n2uyLzmOlXAFs6pC7fUeSOa2GkCN5WXjw01nxmJ+QbGYr6jp8b8uKbpwPHh4CCuedIBxqTur2uGz44MwMdHw6p1ZSUoUF/7s1W2skAHBwdLsmDMyuw7depU0RYdrZEiHE4Iyg3jO7K5/BwlUsfDkazZVpiVhoMsWiub//PX6188Em6HIkAhma48p6HcfK3eDzePDaob3rfKmkIX3z2bLt++7tLKp2tnMjI8XJIldcmll1a8ygOtkSKcTFnjUWnSCRQPTk2gcFTixGg0nnPwwoSKd/3Dz28qVqDsBIoSWlPNiiLjU9ZUdsdFzj/7+3c9YDeBQvqO95YUk/L7/eNgAgNniq96UVvrm9E9iAjnguujyhmPykQIIcMOSmfmY1XRqiMaV3xfeOSF68M6XWpOAC0o5H0Rc1t0YP3Cuz5y6baHb3n7LrtW4RgbGy3JkjIjs69UFi06h+JRhCNhUN541GR4F2NsTeYjjnL3nTevsf+ZV8vvfqsEaE097a2FK2Pjalo6xqqKBeNO775k/t6b33NetxOyH0up2ze3dW6fGZl9SClVL2iNFOFUWCXiUWlUl1//mUczs/wcJVK3XXth9w/2Hl4TkZYTzAC+V9uoitQ10RH4Wp2xcRuTQC5b0tLzvkvnH7B7Yd2plFK3r9nEWFApVS9ojRThVDwVFClEUcROj0/ZAOkKFI4SqQWzaiP/eP3K7f/8yIvrzxZgrWIe99XDVwZBClVEilTu/dBS8tfXhFcsbAq1L/T3vf/S+YecVnEjk1IsGLu42YLnLqUeUoQDESGr6/UVgoPoAu5Cl99W/Ntxi3nRKpDbfU/sOxb4+H/t3VTNVhW6/F7weOFtsel5ABhbWnfZ/G6nC1I2BgeHip6ALFt+vmnxqFJKM1140UVkSREOxBWCCuMCV1dSTKSiO7bA7LNvnJk3E9x+v5JxqYtHB8/GpZzSG6sUYrHiLanFwWDFxYHWSBEOJgQVpq2tJSTjUn4tLuVYkXr4qYOdMAN4wZ1a13pxIgqx2Q2OLJ5rhFLr9plV5aGU86A1UoQTwdTzQAsLgQ1gArpcddAp7+5wpEihq6+a0s3zoWX1LfO5wnf+zdXbnNK8sVhKqduHmX1gEqdOnipapKiPFOFEKpt6PhlFEYc4F0G870iR+tlve4MwQzjs8qi3nz+3sTte5QKFlFK3z8zMvlJax1MfKcKJuFxgmwaxjIluYGryhDMX8+4/NLAYZgiDnANrikdgrTcEM4BS6vaZmdlXiliambxBEOUAq57PaWK2ESlMngAQHXjfkSI1Gp0Z66SQVcvHQnV/eK/P+/LNJXfedQLHjx5rgSKxiziYVZaJIMoFE9w2AoVEfBAGAUG870iROnN6YEbEo5At7x3rZnVhYGPHAjADKKWHk5mZfaVYdHYoy0QQRrCTqw/B1h3yJowZfo4UqejI2IywpPz13nD7OfNn1IBXSnsMM/s3lVKJ3ayyTARRLmY3Vj71fBoMwj4fOE+kjvUO+CJDgzNCpDCD8Tvd85tFYFkoseQPdsMMYHy8uAmImZl9SLGt480+D4KwGg68mzFmu4kVExBKAAQdl933Qs9hP4yNwEzhjkf61r3t73/zwIILqj+zDym2bl+zyWuTinU7emuoRQfhLOzm6tNICjHIQQk6zpJ69Y3+ZhieORm+aE195jv71sAMQcaCinL3rVixIgQ2wKyuwARRDuyW1ZeJtKScVwUdeeHA0QBE5WQ1KQ1Bg+0rsKTQ21cEurEVPP69dG6dWgQU270fPjnmPx4eaw6dGAsMjEb8dipg++SLfasfeupgzw1vX1LxjrNWE43EirKk2i+80FRxKDY21traSmukCMdgt6y+SciYlFRRv+NE6uChE6kst1O9APMWGXkpoEB9/aZVumI7WNXi2ddPB368r3flwRPDQagwX3nilU4pUtugyim2bp9090XBBgQWLKDq54RjUAC6wcYIAc4TqaO9p1MiNXDKsEhdtKhJd6YctlXH7fN/cEn382+c9j/+/LFgJQUL/11pTS2uZmvqpRdfLMp68XprImZm9iHFto63Q4FbgtCDnWr15cNRIvX8bw/6w0NjqcEDkycMuvyubG8taiDDgq5y6660YFW7NXXwtdeLEoa581ptEwda3t5OIkU4AjvV6suHo0Tq8V/snyiHhAIVPgkwu03Xa2s8PGJG9fBMwcK/v/vL14PdB8MBLZ6Fj50ZjZ4dbFkyLk9zwA/YEyqRADWehgI7PpIS2CUrABr1jc0zwZoqBrskK6BFR2ukCKfgBegCB+Aokfrlr3vaJz0wFNYtUvNb6i0ZyFJNGHMvhPuHe3es/NpT+zZkfRJFq2efPLkgwIIloIfHnz/aXq0idezo0WYoAiuSFYrJMrSTRUcQ+eAM+lr8zBFWv2NS0HER74sHjkwWKYxL6eSic/whqABLF80pHEg/HoL1C5JdmH1YaNd9BwfaoUrpO95blLvP7My+YqmtpTVShDNggu8BuyPAz0CEHCNS39q+e/m0B9Hlp3PNlJGkCTP5o9+/MuRvqit4kgv8NeGX711/37VvWpg3+7Ca+2iNjY0WldlnRa28YlrHm1mFnSCsxGODDryFEAzUa9AxIvXwI7/qzPrEwEnQQ7FJE2bwt7es31lonx//Yr9alv7rN6/uevxvrr4vl1Wlx9pyKmNjxqtN2CkORC06CCeAZZBaWuzv6uOMLRbgcoYl9Y8yrnM2q28qpwprj1lJE8WC1tTffOr3tvu8npyD6cHDJ4IPPfIrNTEkda4s637nz28KQZVSTNq3FXGgYlvHU4sOwgnYfW1UJswFYduLFKad57SiEOny88XH8s6krUqaMMJf/Mnanh9845YH8rn+7r7/8XXH+gd8H7t/T2cut94df3BJ1RaajUaML+S1IrOv2Nbx1KKDsDu4NqrNAWuj0gTjo2BvSwoF6oZPfnVTTitK8uHr3rrr3avP35vvOJVKmpjKZZcsCT/0n5/Ylkuo+k4MBjbdvm39Y785mrVW3xXnze6upEVoNZFoxLA4WJHZV2zreEo/J+yOdPV1gXPwL1nSYl9L6qFHfr04n0DhQP/gv33sgS/fccOeqy6YG8p3rEolTWQDhepn2z/3wEXLF2atmfWSmJM1ew9jUdVsRV377vfcUkyywq4f7+oEk9n6jW8WVdD3Ux+7eT0QhE3BYrJOSJhAjh4d6JBmXwjv206k0HpacdVnbvn0P3x3cy6BWrK4NYQWybp3rFRdPbhWySfjTtn2vfbyRV1/8b4VtiqiuKCtJfLT7X+z/dr3XDpZdOYtlAG07JP4ezZdvr1arSiMARUjUFZRbLuQM2fOVG3mJeF8sJisExImEMWTDIokqOtBbSdSv3v1uD+fe+/qt12w5/923rENLRLtsX/8wQsrI3Fl2sCCAqW3oGwl+Pq//mnXWaFCccpRixDfB9YRhCql2BgQUlPjJRcbQejAKRUmEKYwaUkJNcHDMRUnMDPuo3941a7P3/aBaZkpDz91sHPqY3YXKA0Uqn9fvqvvnp8eWh+p8U0brJfUi5AT3kcpYAyosanp7KSjYTSR1yIZqXef3XdeYJ7p4t0ya3Z4cHBI/Te8McXnzTIBQmLSeo95Jyx4WsxL2BcRcooVhXDGViYZU+uUOkKkMP6E7r1M60kjWyacUwRKY9A/vybSODx9IBw4CQeffTH44Y+fWPvw1/58F1QpV65Z0ye3+/A+f2J/0PuVJzbl2z/y2GfvAwv5j6/ff3ZdW80tWzeyN/qzxgnF/Ja+6AMfq/r2KYTz8bhc9q8wkYEA6PAocBvet30KeqC1ue9n//O5B7IJFFYk/+lve1dlPuY0gTp2ZtSXzRJUC9CGUqG0J3/9u9Uf+8y3ZkR33tMDozVHY0nAbSgpoNLsPz7of2k8Dto54aYhAi1UYYKwPZh2btfuu9no7R0I4m1bW0sIb21vSX3z7j/bvmBeS1Y3yv0/fU3GopJnLRBM0Xaaa+wT33hm7VRL0CdikUjPPp9agDbNT365f/Wx/oG9uT6LauGO3a8FfvRC9pqMi2pc6i1/2xc3veWt5/b8/vVXHLj0Tdb2b3r/rw4Fcj75m/7Vi3/2WuDCixeE3nbV+aGNH15N1ekJ2+GwtHOI82QHS/L92t+2t6SyWVAaTT7XpG6s85rrHONzRf7jx68sf+bV0x2ZjwX8vr6n/3X9fde+4+JJYhuNJnyf2fJw1VtTB18/mVMUjkST6nbo4Mng9x/as+6D1/77LRs3/Mf6fb8JWZJVp+e4eC4/+t/uzr/99H9vvmjpZz977bu/vPFf/umxlVadE0EYAa2o1hbmmAoTiAvYesbYDu1vx9Tuy8Zt117YnZl6/uLhcBAcxM9eODYp1oEC9cO/uXrbgln1EUyowEzGzOfR7Ycp+lDFnDk9Yuj9/eaZgx0oVp+6+dumC/iBHmNV2SORuO/ll461/9dXn9yA5/ROafGRYBEVhTug2vkUhGCdroxMREeL1IJZtZG2jJJH2BQQYzzgEMYiibPn+mbpqtx31/sfQIHSHrvr7z68e2q9v0/+3beresFof99gAIrgx9KaQVE4dmzAtO//he7DRZ2LBlpZmmChxbf94T2LgSDKBFpRNQo4JhaFpBfxhrV4FOJokUI+sXbZJLfYnf/z4ipwCHOba1X35NUXzdvzv7dfPa1SOi76/f1r3zzp/WUWoq02fvLjF0oWhT/+0P0bwSR6jw8W1YQxG2jxoUvwTRf83S1oXZkppgSRDWwP76S0cxW30imSYtKY53iRuvqi+X2ZLr9nXzvlmKaAn752xd4PXxnc9fAtb8+ZXn7352/YE2j1T8oi+8rWn3VCFfLG6ydKFgUUqo/e8PW1YAKHQqdLEs1sDIbH/Ghd/d67v3yTFS5KgtBw0uLdszC2CRjfkfmQ40UKXX6XBFvOmrR94fHAQ08ddISlgWWOvrzp8oI+47+66b2TRAytqR8/ud/0AbTS/O7FY6a8p18+2bPajDhQZDxmmbWDYoUuSs2yAoIwEaf0jMpETT0X4F/U1tKV+XhJKeixaNQXjcenXchjY5GcM+Lo+HjeweOCc2f73rF6mXq/vtYLrx54veBs8yOXNvuW1k+ka8cGTna+ekAJgQPhLnfEM6UO4VWXL4Yb/2B136Gjp84O4l6WWH78WF+zy+POmZLudbsibq9nUgZkjccT8dbUlCWNfXhkehJEvt/GodDJIJjE3V94bP2WL7wvBCVQbHzMCJpl9fxzoeCXvvwHe+bMa1S/r3J+T0T14UQrKiGUW6VITQt7sN6B5JZCL0Yx6us7sTweV3zxWNSfTCR9SUXxKUpykkAp8jF8PNsxkvEkZThZiMvjyjlr8rjdk57j3BVx8ZQQ+urq+lAUZ89uOVTf0KB75iUFcvnoyGggFo3544m4X1GET94vaVA/HArD6GgMzKC+3gPnBFugWMbkeRwKlXciOre1HubMrc/6HOdMipZXdfv6fL4+l8sVmT2n5cCs2bNoQTExCbSi5rWwHeAwjvadOegS7OrMpAlEl0iVExTEeBbrrBhwbVEiHitrgNrt8UZqatymzYCNCIedGM1iRY2O5C4cnJATn0QyUQM6iMUStUJRdO1rNTU+r+7vx+1yR93Sus36XJbfjYesKaIIfMDvdZqr72jvqc0yFrVpYWDW1VOfs13FCbwozbow6xuAqBDZxNWpgksQTsGJsSgVKVAgWNY6mI5PnCAIgiBSODEWla7VF1zY1rI12/MkUgRBEFWAiyt7nGhFKVy5Q1pRd+Z6nkSKIAjC4WB1CY/idlwJJLSisAxSLisKIZEiCIJwOAIUR8aiCllRCIkUQRCEg0Erqq3F0wUOQ48VhZBIEQRBOBin9YvSULi4p5AVhTiifTxBEAQxHSf2i0JwXZQQ0CGtqOsK7UuWFEEQhENxqhUFjN+B1SX07EqWFEEQhAPBhbtOtKKO9Q/cIQC62gKTyx/lgkSKIAjCgTh14W5SiM16rSiE3H0EQRAOw6kLd5NMPInJElOLyOaDRIogCMJBOHXh7tG+gXuEInYWSjmfCrn7CIIgHAQmSziyyjmIDYkovxQMQiJFEAThEJyYcq7GoZhQs/kWLmkxLK7k7iMIgnAINcC3goM4eHDAr8ahQNxnJA6VCYkUQRCEA3BisoS3TjwohNi2MDD7XigSEimCIAibg26+uU3uLnAQ6nooRQwuapu9BUqAYlIEQRA2B5MlGGOmdCwvB6pACbEhHuG610PlgkSKIAjCxjitskRaoDbHx9mlS4pIlJgKiRRBEIRNQTefkypLaAJVbCZfNigmRRAEYVOctCYqU6CKzeTLBllSBEEQNsRJbr6zMSjp4jPLgtIgkSIIgrAZTnHz4Toobx3cIwUqKAXq6iUmCxRCIkUQBGEznODmS1eSeFRJit2L5s8uOYsvFxSTIgiCsBFOcPMd6R3oTFeS2CYF6lawELKkCIIgbIIT3HzHTwzcoijiViHYjYvaZnWBxZBIEQRB2AQ7u/nS7r0HpUCBWWug9OB+/hj4gSAIgqgY8xohsqiJ77Grmw+tp6S0nrBQbCl1+IqB+f9eDABBEARRERIKuCNx9TYh/+yWPr9uaVLthC+xLqgwmvWE913SvWfm+ie9sGsfxOAXQRAEUSl+eRD2DkYgAgICcgtKkVoubzFItVXe3yYFKwRlJJ1afosAaT0JcWe5radMKLuPIAiighwagEOqQCEM+uSojK3ht8ltpxSqDZCEJ+F2cQeUARQnXJjrqRMHFUVh8TG2pJIChVDiBEEQRIUYGINTv+2DUNYnGWBiAgqVXxWrz4jN4IKrrbCqMi0nAWyHS2GXtrXNCoENIEuKIAiiAsSSEHmhH14vuCOKFZNixeCAtKp+DZ8WnWASmZaT9C4GUZwWzmupSOwpFyRSBEEQFeA3R+Gls24+faAbcLsUq0el+28TlAAuxj3ad+bJSW49m4mTBrn7CIIgygzGoU6NwQgYBa0qIeNVAr4k3X/74S79KesoTJzDmnQyhHwd2xkfg+uWLJll6/JLJFIEQRBlJG8cSg+pWNUuKVSPwl+LnDEqdOW5akAKk7IGGNuMwqQoYrcb+KV2tJhyQSJFEARRJnTHoQoTkmIVkDEqXMOkFndV1zQBdAJTVkolk7ciyAC6hOC7XQo4Spgycfs4+IAgCIKwFEWaPj0nWU+dK+Grqy9u3G1tYM3+WuGvkeN2Y41ofvqQq+OLvxrZ955lMSlQIgQg3XiC7wcONy5sbXFMy/l8sFseiY8DQRAEYSlJRUSEUKBYEtIKiysQGY2xcFywyHBEDPacdsFIjM8b+Ad+KVQp7jcG3XuAIAiCsAxMlCgpDpWfTWpa+t2VL6NkBZSCThAEYSElJ0oUBuv9laUiRSUgkSIIgrAITJR47hgcAGvB47fDFlGVHS1IpAiCICwABWrPYdgfSajVza0kIi2pCIxAB1QhJFIEQRAWUERFiVLAwrQkUgRBEERhXjsFrxdVUaJ4+kDASqhCSKQIgiBMBDP5Xj4JR6G8DMqtBaoQEimCIAiTOD4ExyzO5MtHM1QhJFIEQRAmMByF8G+OwWtAmAqJFEEQRImkM/leAsJ0SKQIgiBKoIyp5rlRICD/vx+qEKqCThAEUSSaQJUx1Tw7XI1HhaAKIUuKIAiiCJIKJGwhUCmC0uTogiqERIogCMIgKFDPHLGJQAnAckgR+AKritYcUyGRIgiCMAgKVJkX6+aGwWIpVF1QpVBMiiAIwgA9J+GAbQQKEdAJLqjaflIcV0cDQRAEURAUqFdPQR/YByyFtAO+xEJQpbi11dGLW6TJSBAEQWTFdgKVikVVtRWFqDEpFCqyqAiCILJjQwsKWSOF6r5qtqKQs4kTJFQEQRDTsaVAYRwKuZttgSpnUuIEuf4IgiAmsKVAKbBamheL5XY1zACmZfeRUBEEQdjYgtIEqsrdfBpZU9BRqBJJSJw7B84FgiCIGQQu1N1/HF46NgxhsA8+wBgU3s4ggUJyrpP63Uk4GheQaJ8Ly4EgCGIGoFWSsNU6KCbHYAXWyXvb4C52K8ww8i7mRVN3LAqRlfPhQhenhb8EQVQvWCz2N0fhJZsIlE9tB8+gXQpUSN6/Du5mXTADccsPwZ9vh2Py6xo/AqGLW6Gdk1ARBFGFKNKC2tcLoaFY4THRQuZJQfKrwiRU994T8u9/manipMHgdnFQ7861LvB5PeqHRxAEURXE4hAZT1a4UKxQ418huR2S93dAA3TDFmanmFjFYEZ2HhgQ/igomwVUbKZBEARhGpxBX2sz38oYs0O7DSILhkQKOSiEr2ZQ2cyE2gmSIAjCkXAQ3a1+1xMkUPbGsEhpHB8U65iirAaCIAjHoXS1tXi6gLA9RYsU0jsgOuWX3QkEQRAOgXH+RKCZ7QHCEZQkUkjfoFgtFGUdEARB2BjGICIE/35by8xZCFsNlCxSyIkREVDiyvWUUEEQhB2RA124BvjWlhbKmHMapogUQpl/BEHYEx7yAewggXImpokUgpl/tUOwQbr/2oEgCKLCuLiyp7XZ8wQQjsVUkdKghAqCICoNJUhUB5aIFHJ8SLTzpLKO3H8EQZQTjD9xD/9+awOzWyddoggsEymE4lQEQZQXij9VG5aKFKJWqBiCTlr4SxCElVD8qTqxXKQ0aD0VQRBWgOuf3JzvmNPEeoCoOsomUgi5/wiCMBMsEOsV/Pvk3qteyipSCLn/CIIwA3LvzQzKLlIaJwZEh8KUdUJQfyqCIPSD2XsC+A4qbzQzqJhIIeT+IwjCGJS9N9OoqEhp0OJfgiDygckRwHgXLc6dedhCpBCyqgiCyA5ZTzMZ24gUQkkVBEFMhnfJ2FMXEDMWW4mUhnT/BRkoG8iqIoiZCaaWMzffQaWNCFuKFEJWFUHMVMh6IiawrUhpUKyKIGYKFHsipmN7kdKgDECCqE4oc4/Ih2NECkGrKgKwQYpVEAiCqALIeiLywyf99WlxK/y1CIIePiM64LPiFl37flpaQbeLe2CLKOyyu11skMd+MNux8YcsfdVbXcB34KpzfOw/fs2X//gABEAHuC9uevZ9Qh7zw9/na48NFa6Igfuu/zZf/+kf81VgMs8fA7/e42rn8Y+/4CsL7Yvv66H9fLGe90cQZpO6fvlWvJ5JoIh8TBYpN+yAJDyoS6juYt1y3xYpKncU3PduGQRVYBBGYV/BY/8r2wFC/oYVuFcVqyy0trDuGvkD58C7P/UW5cB39vGV//hz1gEFwH1f6BVtegb9dcuhr8Erou/6Br8JhaLQvvMaxOBD+2Ddx3bwNWAily2A8DnNyiAKZqF9tfP46h7YUOg8FjRB5I1TouXy/+SfNfucCSIXqmsPeNc8P7+fyhoRepju7kMRScIdUoRuBD18RmyWR1kpxeW2gvt+WmyR+24CF1wNXyrwA03tiwLYDfVy/y3ZZ1voAhxnyvU3/YBdD5yJr29QdkMBPvYI6zSy71MhtvKhjco2FIx8+6JQfnUvW3/tBdCl59hGQCvpy0/zNVs/qOxEgcm376d/xFY/1M3W6jmPf/8/aL/nab7+LedA98PXK7uAICyDXHuEccyJSaHrD+AWKSa35RKTs6BLkcl9jQqVC67Ltz8WrP3Qw2JLYx1rNluoUHwe3s/W6BEqFJOP7+SbLglAz84/VnaCiaBF99kn+Np/WafsKnQeRsQHz/m2H/GNUvz6tukQQYIwAhWEJUqBF9wDY0SFQNefC+6U7rzCrsK72b3SlXebtNaeTItbvn23SNffnfJeh7p/nmOjC7Drz/kGeextKZdCfr7+AdG1qFHocqN9/p2i+55rlO03bOebCsW/0OX2gxuUB145DUEUCtDJu77JNxZyK6IwoUB98jG+vtC+f/FW6PnaemXbvl5ox2Pniz3hOT/0IWWb3Cfw/m18U6FjE4Qe8DpknD8RaHHdSwJFFEthSwqtGS5n7f8qxaUQKVfhg1KwbixoJaUE6kF5Bneqcaj8+25W9wUI6bHA0AUYA+hUQCkYp/ruPgj+6ABfftf7lN2FLAjN4vjwJWI3CheYyO99m6//bR+0o7C8V4pGvn1RRFCo/vNaZWchiwr3veG/+SafGyI/3KRsy/cetX3lxAD0WI0EkQ0UJyH4noAf9jDGyConSkKfuy8lVEKKyZ0F9zUiVLivIi0kgPsKimBK1HBfHDivU623ArRuEY/ee62y++ql+S0DI/EebSB/+xLoNjvuhC7In7zGVv3Jm8SuQiKIltHm/+Hr//JKZbceUdMrPrjvnzzCN0bi4COhIoyCyUxegC6KOxFmwaRQdEox6Sq4pxGhulX4waMK1W0GhGprwWNr+wopOkyKYCELLC2Yn74K7vyrKyGYb30VDs6P97CgHgvJaqF6rIetueFSeOLu9yp7C+2P7sq3LIYQZi7m28+I+KAAfvBhvnFgDPwkVIQ+eEj+r4vceoTZMDWRgUOzLvFJZfItNiBU9wBaSYWsnpSYPCqPvcOAUAXl/rcVtMC0YwPceOJzUqZA6SxUYgkHaT0WlV5R08Csu3eeK0KFLB9NqPRmCeL+TbVsvJCo4fvCmJNeK8mIC5KYqZA4EdbC1UQGAYfUxbaFuIttlQP+fl373ivNfUxjd+mYhaO1FZexJlxLpWdfLvdlMj4lpAgWWqeF+2NmoIxptX4RVmIQN3MxcDY+sYOv1ZPEYDQudXyINWPmX6EFxZjUcUOH2PXY76BTzxom3H9oXNTqWRu171PKA+fNgdAHHuI3FUoC+d8/Vna+Z5nY+9Ef8Jv0rEMjZhIoTqnFuCRQhJVMxKQw5oNrmOrgzoJp5Kn40B1QL11uWyrke05ZaugmxPPeUtAC01yQDLq1fTFtPZtlhRYHCtXNq5S9ZlsQmpX0iVViZyGRM7qGyej6L73nYdSyI6oZspyI8jI5ccKI+BhJkLAKTXiwnh+De3UtKP4rca8854FMUUOxSjBYzYQyybLAeM+KuaJfj8WkCdsd71R2F3KjaYP+1Uthj9lrmNDiefkkm6dX1PSKDwnVTIfEiagMuSpO6M/OMypUWJPvX9h9uvb9K7FBilB3wWOj8HDAWn9bdVXKyJEEgs0W5U1nZoKF3niPtq/e6hRaVYgL50FPIfExkkaOaGn1ZguVlRU1CLtC4kRUluwp6MaF6h5dmXyIsTJKRqpT3Kre3q1jPVdq/y3phJFp5zF1nZURNxqKz+M9bJWRMkqBRuj75geU7YVSw42sYTKSVm9EfKysqEHYA1znxBnv9iiwh1LJiUqTe52UEfGZcLvdqWf9kmVllIySEsz1Mg6X1b2piZWQltWfPcI2GCmj9MhLbNUX1io7C8W0tEEfrSSz1zDh/nc/xVfpsajQ+vr8T/lGPeJDZZSqE1qES9iR/It5jaSRI5+RbjcGXQXXLyFGRBDdflw9D12LeA2REsx78lmNQgjfyTC0/+WPlVuPDepzo6kD+eN84yfeAk/oWcOk10qycg2TEfHJdEEWsgIJu8NDLoDuuX7oIXEi7Ia+ihOpZIN9Uny2FdzXDmWUjGLgPK78D9E5FIcvfuv3C5dR0gZyPWWUMoXq365RtheywKxaw2REfKiMknNJd8MNCenSo3gTYWcY3C4ezeXumoQR8bFDGSWjGDyPgc9CWHMF5lscbKQ6hbbvuHTn6REfI2nkCFph/cPg01vvj8ooVR/k0iOcBorUQTkYhQu1wlAxIj7FlFHSE9MyUkZJI2WFdaiLkQsdO6m6Fe804lY8PiTauYAOoShZq54bESqtKkTfMASsWMNkVRklrCN4dBACeqxAoryQ1UQ4GZZRZgh093jSKz5GMvlS+2P1ix1qJ998GCmjpB0XEzX0L/q9R57HtoLngXxadMrPA0tFbcNEizhAMNcCYRSfNy+CHj1C9fEdfO2zR6HDijVMRsooaeKjx0pCAfy/w9Dxq5uV+yiZwg7wEOPQM68JuslqIpxKKiY1Ud/Or0uojIiPkUoWiN74V0pMtHPWYwVuVc9D71qqEuNwuOaKS+ttqjsQY0n4oetJ38ZB/8k3YLUVa5iMpNXjeew7Du16rCQ87pql7OANHcohIMqO5s6Td0NkNRHVwETixITLDV1jhbPojKSRGy2jtEWei95ySynxWS/vXV3wnLVOv2iB6Y3DeeW+X9Dh+stjYaI70JWEdsGUdiHAh4P+yychqGdhrhEryegaJqNllLCNyF+9HXYUchXqKdBLmIe2rimpQA8JE1FtTM/uS1VvwKD5dTrdbvfobslhVRmlCfHZXNDyMdCSvqjzKOAK1QTrj7eLm/ce07foVxOqKxZCt9lrmNACOzLMmo3U+9PbRoSwDhImYqaQPQXdyKBvdRklI/2uUudcuH3HhFCFTF8kbKyixhZ/LdxipIzSklkQ+p8PK9vNXMOEhWz3HOaLzS6jRJgLCRMxE8m9Tmpi0C+cbJASnzt0xXpw3wQEdSUlIAYHfd3nbLAlfTrBZJPORA3DFTU+fRXcePtV4FMU6RLMkdKuVUWXwhZ2ShklolTU2nnqRsJEzETyL+Y1MuhbibH412ZILfotfM6YmcfU5At9LemNr/+6R1ccbkpFDS1LMKnGByd3E9bceVasYdJ6aOlZ60Q1/KxBSxeXd0OUlUcQeipOGBn0rcRI/EsTH6aupcpvgaWyDx9VW9LricMZseyMVtRICeaWqS5WzBR0cWhPCAhiOxGjZZSsWsNktDo7kQuylggiF6l1UvpKEuEC2h26XHraa/TV+8NB329JGaXUoN9dMJNvckv6wnE4I5adyRU1sI5g7zAEH+mGjk/+EL7orwG/HvHR1jD983vg+3rSw62oTkFo8JCcdPRhbCnghz6ylggiN0wOuAOgJ317YiAPy8H5ap1llMyvTlHMoK+nosZkodIbh7vHQINI/VmQeitqpPetcUFg85uUB7a8k0v3kBLANPdsuxspo2SkOzEJVW7S65b6cFGtUKCPRIkgjMEMZ/LpHfQRY0J1a7q/k94ySkFdlpqRihoTi5o7DAiVPsE0UlHeSEWN1HGfTJ+z+h2eGBEBiENAYFyLQSCz43AxZZT0dCfWKmrM5Bp+KEgK8LCbSdedFKRR6b5bQv2YCKIkUjEpo5l8xsoo6Rcfo2WU9GKkosbklvTmChVirKLGk+nWJ3oyG1MVNXKcsyZc8rsIvOu/lOt/2883WVFGCa2veY1i8OvXiS6oYrQEB45JNyRIBGEZE4kTRoRqYvaur4wSZq+5YI3uMkp64z1GmBAfv7Rkri64/8Sgf13B1iBGuxMbszC3qiKvt0KGwRT8lfNh666PwgNysPXLGEmAgeLPlgJvpDpFNcFQhDjvQzFS5EYuO4IoL5Oz+4xk8hVTRgkH0DqTYzhGSVkyi3WdB55zvXTd6BFLow0ijcbssPSTXherfqHKmRCDlldCAT8XcpOiJQdo/3v+S1l38Xw+r5qqTaAIKYxH5DfR5+borsO/IRxNQh9ZRgRReaanoBvN5NPKKDE56JtpcWhutHo5MG8xebAwMugbxVhhWv2u0NQ5b9JdqT5VUaNwMV2jCTFpDg4Iv08Kl3CBD4VMWhg+tMA4l7d4n+Hjik+ehy9XIocVqG44IcVGCg+TtyK1Bk4VI5fcEi6ISDEKj8YhQiJEEPYn+zopI+nbiJGSREaz875k0boRI4N+Mce2op2JkXOeqKjRXVB8jCbEFAkKG97We8CXjE8WLhQ7dzK/mCVhcjJGJONvEhyCmGngwIUNET8j9qn3C4ED6GfknPl2cYeuY6MVUWnwHDAFX885Gz/2Ft3HxUnBX6qiomffzXI7qOs7wVggvj89+0983/qOTRAEUQbyV5woJpOPSXdepatTGMHKihpG3HnGjosVNdBKus7A+jbQmdmoPyGGIAjCYnjeZ3GQ4oCZcGHpa3my4Az7btXVd6McELcYsk62CD9UilRL+UvlOaNV9SCYCX4eAg5ZcNwuQIFCl+ztYlPeffE7jMn3p+c7vFe6zOLy+xawW903FZ8kCIKoGLygmOAgF1eFqlvXwFXMoD8CmwsOthopt5S57jm0RlzynBl0qu5NM0Uz9Xncp34Weo+LFlihCQGec2oCUXhCMFl89uX9DnHfu9lmaX1h0dgn5bE3AEEQRIXg6kz/dnFP3r1w4LqLXXd24EJ3Uz6MDvpocSiwRJf4oGgq8shmC5VmNWIdwVHYZ2pcJvV53CmP+6Cu4yZgq5oFWWhCMGHpbtYlVCnxwazDwuLzZXar/G3cJze01iofPyQIYgaDg6Hemf5EgkRhy6eY5Au94oPWhhUJD0YTCFKf3T7dn8dnxJO6BfAz4t6CE4KJ4+4z8Nlp3+GtBvY1/7MmCIIoQComZWSmfzfbImfXd8ptK3xO50wfrRN9Ma0tcqY/qGtAROsrCfsLWoFGMRLDQeIQUt8ffh56XKeYeo9NH/Vwl2rNbNAVd0q58zp0uVgnvsN7Cp5zat/bDMcZCYIgTMfITP9WA+4wzBrDmb6R1Gm94pOyZB41PfkCzxlLEqVSuPOLsWbJWGVxGLEwcTHx7To/DyNWUir1fYCEiiCIymLUJaUXI4M+YkR0Uuf8qCXre3DQTw3O+WM4E0JceaFKiY/R9W2FJwWpCcGA6dmKBEEQhsAB16qsLr2DvlGsElfEWAxnq7qv3oEcY05WxOFS53zQkFDpiUtmxhkruXSAIAjCMowM+kYoj1DdYWBffW43dKXpd+fpd4UaEaqUO0/oEh8rP2eCIAhbYFXWWMrt9qglC1FTZZSMCZVet5tVcTitjJKezwOtOr1llAiCIGxDagDVW4duswE3061gVQznM2oCgfkuS60enh5BmRAqI+ns+sTHSBwudVx9QoX7UA0/giBsAtcVO/ky26F7AW0cdoCRMkoKXKdWpzA7lRzTtxXoMORSxPMtdM5fVtuRYLr35oIxHEzfxjJRAEFdn0dqKcBtMAqFxSeVzn6bWlFe33Gv1lVGSatkgVUd9ZwzQRCEhXC1KoSe2Elqvcwh3SV49JZR0gZ9bNdupHSQHlLrrvyGLDX9g36qosaofI/5zhnLIgn1/fl1fR7aWio952F0X71llHDff2VLdJVRIgiCsBCuLlwVcqY/qmumv1XXAtqpZZQKud0mZu+dqhVhJimh0mcFTgz69+ge9PWUUUoVhL06XXO+cFkpo+cRl9ao2WWUUue9WV30SxAEUSFSwyYmG7gAG/Wt19lQDwfDO6DekoaInemirOaiNRfkcF/B95dqWYFu0DtNbYUxsW9Qnsvmgt17tfPQ08kYwTgcg66CHZK1lhxMumad0lKFIAgincigL2CeCtzrXQtkLJPPqhTnVNLDQd3uK73JF0YqakysM7Jy0a++OFxqTRctzCUIwrZMb3qYagJ4C2DAv5AVYQStISLAVmmB3ZbXArOy+V5KoLDJ4b0FLRkArRV8uKAVmNp3qzzuekDXXr7PLmUxoluzw6Jmi/rb16cs3ZAl1itBEIQlpCwZ84PleEyMx+i1kFLrdsw/j1T7+k7d+xvdV8/+qTJRnYaObQSrjksQBFFG/j8PBBCz3Jop0AAAAABJRU5ErkJggg==", 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 } = vA(), { filter: l, setFilter: d, transactions: h } = uA(), C = fA(), [f, v] = de(!0), [m, 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(mA, { 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: () => v(!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), v(!1);
|
|
9099
9099
|
}
|
|
9100
9100
|
}
|
|
9101
9101
|
),
|
|
9102
|
-
!K && o && /* @__PURE__ */ t(
|
|
9102
|
+
!K && o && /* @__PURE__ */ t(mA, { 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: m,
|
|
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: m }), $(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(""), v(!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
|
+
} = vA(), { onEvent: s } = V(), { cashAccounts: c } = DA(), { setFilter: l } = uA(), { userProfile: d } = rn(), { dateRange: h, setSelectedCashAccounts: C } = ot(), { cashflow: f } = W(), [v, m] = 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
|
+
m(!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: v,
|
|
9217
|
+
onClose: () => m(!1),
|
|
9218
9218
|
shouldShowHeaderBorders: !1,
|
|
9219
9219
|
title: f.cashflow_settings,
|
|
9220
9220
|
children: /* @__PURE__ */ t(Bi, {})
|
|
@@ -9429,13 +9429,13 @@ class Bu {
|
|
|
9429
9429
|
loadMerchants = async (e = "") => {
|
|
9430
9430
|
this.isLoading = !0;
|
|
9431
9431
|
const n = await this.api.getMerchants([e]);
|
|
9432
|
-
|
|
9432
|
+
Y(() => {
|
|
9433
9433
|
this.merchants = n, this.isLoading = !1;
|
|
9434
9434
|
});
|
|
9435
9435
|
};
|
|
9436
9436
|
loadMerchantByGuid = async (e) => {
|
|
9437
9437
|
const n = await this.api.getMerchantByGuid(e);
|
|
9438
|
-
|
|
9438
|
+
Y(() => this.merchant = n);
|
|
9439
9439
|
};
|
|
9440
9440
|
}
|
|
9441
9441
|
const R7 = (A) => {
|
|
@@ -9482,7 +9482,7 @@ class ku {
|
|
|
9482
9482
|
try {
|
|
9483
9483
|
this.isLoading = !0;
|
|
9484
9484
|
const e = await this.api.getNotifications();
|
|
9485
|
-
|
|
9485
|
+
Y(() => {
|
|
9486
9486
|
this.notifications = e, this.recentNotifications = Ku(e), this.isLoading = !1;
|
|
9487
9487
|
});
|
|
9488
9488
|
} catch (e) {
|
|
@@ -9579,7 +9579,7 @@ class Wu {
|
|
|
9579
9579
|
loadUserProfile = async () => {
|
|
9580
9580
|
try {
|
|
9581
9581
|
const e = await this.api.getUserProfile();
|
|
9582
|
-
|
|
9582
|
+
Y(() => {
|
|
9583
9583
|
this.userProfile = e;
|
|
9584
9584
|
});
|
|
9585
9585
|
} catch (e) {
|
|
@@ -9589,7 +9589,7 @@ class Wu {
|
|
|
9589
9589
|
updateUserProfile = async (e) => {
|
|
9590
9590
|
try {
|
|
9591
9591
|
const n = await this.api.updateUserProfile(e);
|
|
9592
|
-
|
|
9592
|
+
Y(() => {
|
|
9593
9593
|
this.userProfile = n;
|
|
9594
9594
|
});
|
|
9595
9595
|
} catch (n) {
|
|
@@ -9911,14 +9911,9 @@ 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((n) => n).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);
|
|
9915
9915
|
getNetWorthChartData = async () => wr.map((n) => ({ x: this.formatMonth(n.x), y: n.y }));
|
|
9916
9916
|
getNetWorthMonthlyList = async () => wr;
|
|
9917
|
-
_flattenBalances = (e, n) => [
|
|
9918
|
-
//todo: balance is a response object
|
|
9919
|
-
...e,
|
|
9920
|
-
...n.data.monthly_account_balances
|
|
9921
|
-
];
|
|
9922
9917
|
}
|
|
9923
9918
|
class Yu {
|
|
9924
9919
|
api = new Tr("/", "");
|
|
@@ -9930,24 +9925,30 @@ class Yu {
|
|
|
9930
9925
|
this.globalStore = e, bA(this);
|
|
9931
9926
|
}
|
|
9932
9927
|
initialize = async (e, n) => {
|
|
9933
|
-
this.api = new Tr(e, n), await this.
|
|
9928
|
+
this.api = new Tr(e, n), await this.loadNetWorthData();
|
|
9934
9929
|
};
|
|
9935
|
-
|
|
9936
|
-
|
|
9930
|
+
/*eslint-disable no-console*/
|
|
9931
|
+
loadNetWorthData = async () => {
|
|
9937
9932
|
try {
|
|
9938
|
-
const
|
|
9939
|
-
console.log(
|
|
9940
|
-
const r = a.reduce(e, []), i = await this.api.getNetWorthMonthlyList(), o = await this.api.getNetWorthChartData();
|
|
9941
|
-
V(() => {
|
|
9933
|
+
const e = await this.api.getAccounts(), n = e.map((a) => this.api.getMonthlyAccountBalances(a));
|
|
9934
|
+
console.log(Promise.all(n)), Y(() => {
|
|
9942
9935
|
this.netWorthData = {
|
|
9943
|
-
accounts:
|
|
9944
|
-
monthlyAccountBalances:
|
|
9945
|
-
|
|
9946
|
-
)
|
|
9947
|
-
}, this.netWorthMonthlyList = i, this.netWorthChartData = o;
|
|
9936
|
+
accounts: e,
|
|
9937
|
+
monthlyAccountBalances: n
|
|
9938
|
+
};
|
|
9948
9939
|
});
|
|
9949
|
-
} catch (
|
|
9950
|
-
console.error(`Error occured while loading net worth: ${
|
|
9940
|
+
} catch (e) {
|
|
9941
|
+
console.error(`Error occured while loading net worth data: ${e}`);
|
|
9942
|
+
}
|
|
9943
|
+
};
|
|
9944
|
+
loadChartData = async () => {
|
|
9945
|
+
try {
|
|
9946
|
+
const e = await this.api.getNetWorthMonthlyList(), n = await this.api.getNetWorthChartData();
|
|
9947
|
+
Y(() => {
|
|
9948
|
+
this.netWorthMonthlyList = e, this.netWorthChartData = n;
|
|
9949
|
+
});
|
|
9950
|
+
} catch (e) {
|
|
9951
|
+
console.error(`Error occured while loading chart data: ${e}`);
|
|
9951
9952
|
}
|
|
9952
9953
|
};
|
|
9953
9954
|
}
|
|
@@ -10031,12 +10032,12 @@ const Ln = ({
|
|
|
10031
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.",
|
|
10032
10033
|
unhide_account: "Unhide Account"
|
|
10033
10034
|
}, Ju = () => {
|
|
10034
|
-
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 } =
|
|
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 } = V(), f = (m) => {
|
|
10035
10036
|
d({
|
|
10036
10037
|
...c,
|
|
10037
|
-
...
|
|
10038
|
+
...m
|
|
10038
10039
|
});
|
|
10039
|
-
},
|
|
10040
|
+
}, v = () => {
|
|
10040
10041
|
l([c.guid, o.guid]).finally(
|
|
10041
10042
|
() => a(!1)
|
|
10042
10043
|
);
|
|
@@ -10106,20 +10107,20 @@ const Ln = ({
|
|
|
10106
10107
|
isOpen: n,
|
|
10107
10108
|
onClose: () => a(!1),
|
|
10108
10109
|
title: TA.mark_as_duplicate,
|
|
10109
|
-
children: /* @__PURE__ */ t(oA, { children: h.map((
|
|
10110
|
-
const E = h.indexOf(
|
|
10110
|
+
children: /* @__PURE__ */ t(oA, { children: h.map((m) => {
|
|
10111
|
+
const E = h.indexOf(m) === h.length - 1;
|
|
10111
10112
|
return /* @__PURE__ */ u(g.Fragment, { children: [
|
|
10112
10113
|
/* @__PURE__ */ t(
|
|
10113
10114
|
hn,
|
|
10114
10115
|
{
|
|
10115
|
-
account:
|
|
10116
|
+
account: m,
|
|
10116
10117
|
onRowClick: () => {
|
|
10117
|
-
i(!0), s(
|
|
10118
|
+
i(!0), s(m);
|
|
10118
10119
|
}
|
|
10119
10120
|
}
|
|
10120
10121
|
),
|
|
10121
10122
|
/* @__PURE__ */ t(oA, { sx: { ml: E ? 0 : 24 } })
|
|
10122
|
-
] },
|
|
10123
|
+
] }, m.guid);
|
|
10123
10124
|
}) })
|
|
10124
10125
|
}
|
|
10125
10126
|
),
|
|
@@ -10132,7 +10133,7 @@ const Ln = ({
|
|
|
10132
10133
|
},
|
|
10133
10134
|
isOpen: r,
|
|
10134
10135
|
onClose: () => i(!1),
|
|
10135
|
-
onPrimaryAction:
|
|
10136
|
+
onPrimaryAction: v,
|
|
10136
10137
|
children: [
|
|
10137
10138
|
H(
|
|
10138
10139
|
TA.this_means_accounts_will_be_merged,
|
|
@@ -10403,10 +10404,10 @@ const Ln = ({
|
|
|
10403
10404
|
},
|
|
10404
10405
|
label: A.label,
|
|
10405
10406
|
labelId: `${A.label}-select-label`,
|
|
10406
|
-
onChange: (
|
|
10407
|
+
onChange: (m) => o(m.target.value),
|
|
10407
10408
|
placeholder: A.placeholder,
|
|
10408
10409
|
value: i,
|
|
10409
|
-
children: A.options?.map((
|
|
10410
|
+
children: A.options?.map((m) => /* @__PURE__ */ t(Wn, { value: m.value, children: m.label }, m.value))
|
|
10410
10411
|
}
|
|
10411
10412
|
)
|
|
10412
10413
|
] });
|
|
@@ -10428,8 +10429,8 @@ const Ln = ({
|
|
|
10428
10429
|
{
|
|
10429
10430
|
maxDate: YA(/* @__PURE__ */ new Date(), 1),
|
|
10430
10431
|
minDate: /* @__PURE__ */ new Date(),
|
|
10431
|
-
onChange: (
|
|
10432
|
-
r[A.name] && Number(r[A.name]) <= 31 ? o(
|
|
10432
|
+
onChange: (m) => {
|
|
10433
|
+
r[A.name] && Number(r[A.name]) <= 31 ? o(m.getDate()) : o(m);
|
|
10433
10434
|
},
|
|
10434
10435
|
views: ["day"]
|
|
10435
10436
|
}
|
|
@@ -10442,7 +10443,7 @@ const Ln = ({
|
|
|
10442
10443
|
error: !!s,
|
|
10443
10444
|
fullWidth: !0,
|
|
10444
10445
|
helperText: s,
|
|
10445
|
-
onChange:
|
|
10446
|
+
onChange: v,
|
|
10446
10447
|
placeholder: A.placeholder
|
|
10447
10448
|
}
|
|
10448
10449
|
);
|
|
@@ -10452,8 +10453,8 @@ const Ln = ({
|
|
|
10452
10453
|
...r,
|
|
10453
10454
|
[A.name]: i
|
|
10454
10455
|
}), h();
|
|
10455
|
-
},
|
|
10456
|
-
o(
|
|
10456
|
+
}, v = (m) => {
|
|
10457
|
+
o(m.target.value), A.validation && c(A.validation(m.target.value));
|
|
10457
10458
|
};
|
|
10458
10459
|
return /* @__PURE__ */ t(
|
|
10459
10460
|
zA,
|
|
@@ -10471,7 +10472,7 @@ const Ln = ({
|
|
|
10471
10472
|
}
|
|
10472
10473
|
);
|
|
10473
10474
|
}, e1 = x(A1), t1 = () => {
|
|
10474
|
-
const A = window.app?.config, { onEvent: e } =
|
|
10475
|
+
const A = window.app?.config, { onEvent: e } = V(), { selectedAccount: n } = se(), a = cu(n), r = n.member_is_managed_by_user || !n.member_is_managed_by_user && A.enable_renaming_home_accounts, [i, o] = g.useState(!1), [s, c] = g.useState(a[0]), l = a.filter(
|
|
10475
10476
|
(d) => r || n[d.name] || n[d.name] === 0
|
|
10476
10477
|
);
|
|
10477
10478
|
return /* @__PURE__ */ u(aA, { children: [
|
|
@@ -10513,7 +10514,7 @@ const Ln = ({
|
|
|
10513
10514
|
)
|
|
10514
10515
|
] });
|
|
10515
10516
|
}, n1 = x(t1), a1 = () => {
|
|
10516
|
-
const { onEvent: A } =
|
|
10517
|
+
const { onEvent: A } = V();
|
|
10517
10518
|
return g.useEffect(() => A(J.ACCOUNT_DETAILS_VIEW), []), /* @__PURE__ */ u(oA, { children: [
|
|
10518
10519
|
/* @__PURE__ */ t(n1, {}),
|
|
10519
10520
|
/* @__PURE__ */ t($u, {}),
|
|
@@ -10579,7 +10580,7 @@ const Ln = ({
|
|
|
10579
10580
|
aria_close: "Close",
|
|
10580
10581
|
transaction_drawer_title: "Transaction Details"
|
|
10581
10582
|
}, c1 = () => {
|
|
10582
|
-
const [A, e] = g.useState(""), { onEvent: n } =
|
|
10583
|
+
const [A, e] = g.useState(""), { onEvent: n } = V(), { selectedAccount: a } = se(), { setFilter: r, sortedTransactions: i } = uA(), o = g.useMemo(() => i.find((s) => s.guid === A), [A]);
|
|
10583
10584
|
return g.useEffect(() => {
|
|
10584
10585
|
r({
|
|
10585
10586
|
dateRange: { start: ts(ns(), 90), end: as() },
|
|
@@ -10659,10 +10660,10 @@ const Ln = ({
|
|
|
10659
10660
|
}, C1 = (A, e) => {
|
|
10660
10661
|
const n = A.filter(Qi);
|
|
10661
10662
|
return Ea(n);
|
|
10662
|
-
}, 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), v1 = (A, e) => {
|
|
10663
10664
|
const n = typeof A == "string" ? parseFloat(A.replace(/[^0-9.-]+/g, "")) : A, a = typeof e == "string" ? parseFloat(e.replace(/[^0-9.-]+/g, "")) : e;
|
|
10664
10665
|
return (n || 0) - (a || 0);
|
|
10665
|
-
},
|
|
10666
|
+
}, m1 = (A, e) => {
|
|
10666
10667
|
const n = ea.includes(e) ? h1(A) : [], a = ta.includes(e) ? g1(A) : [], r = na.includes(e) ? C1(A) : [];
|
|
10667
10668
|
return [n, a, r].filter((i) => i.length > 0);
|
|
10668
10669
|
}, On = {
|
|
@@ -10684,7 +10685,7 @@ const Ln = ({
|
|
|
10684
10685
|
}
|
|
10685
10686
|
return o;
|
|
10686
10687
|
}, y1 = () => {
|
|
10687
|
-
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 = m1(n, e.account_type), i = p1(r, e.account_type), o = [Q.LOAN, Q.MORTGAGE].includes(e.account_type);
|
|
10688
10689
|
return /* @__PURE__ */ t("div", { "data-testid": "TrendsChart", children: /* @__PURE__ */ t(
|
|
10689
10690
|
ra,
|
|
10690
10691
|
{
|
|
@@ -10767,7 +10768,7 @@ const Ln = ({
|
|
|
10767
10768
|
}, I1 = (A) => ({
|
|
10768
10769
|
list_aria: `${A[0]} accounts`
|
|
10769
10770
|
}), D1 = () => {
|
|
10770
|
-
const [A, e] = g.useState(""), { selectedAccounts: n } =
|
|
10771
|
+
const [A, e] = g.useState(""), { selectedAccounts: n } = vA(), { setSelectedAccount: a, setSelectedMember: r } = se(), { members: i } = DA(), { onEvent: o } = V(), s = [...new Set(n.map((l) => l.account_type))], c = n.find((l) => A === l.guid);
|
|
10771
10772
|
return g.useEffect(() => {
|
|
10772
10773
|
if (c) {
|
|
10773
10774
|
a(c);
|
|
@@ -10776,13 +10777,13 @@ const Ln = ({
|
|
|
10776
10777
|
}
|
|
10777
10778
|
}, [c, A]), /* @__PURE__ */ u(S, { sx: { pt: 24 }, children: [
|
|
10778
10779
|
s.map((l) => {
|
|
10779
|
-
const d = n.filter((
|
|
10780
|
-
(
|
|
10780
|
+
const d = n.filter((v) => v.account_type === l), h = d.reduce(
|
|
10781
|
+
(v, m) => (m.available_balance || m.balance || 0) + v,
|
|
10781
10782
|
0
|
|
10782
|
-
), C = Gt[d[0].account_type], f = (
|
|
10783
|
-
e(
|
|
10784
|
-
account_guid:
|
|
10785
|
-
account_type:
|
|
10783
|
+
), C = Gt[d[0].account_type], f = (v) => {
|
|
10784
|
+
e(v.guid), o(J.ACCOUNTS_CLICK_ACCOUNT, {
|
|
10785
|
+
account_guid: v.guid,
|
|
10786
|
+
account_type: v.account_type
|
|
10786
10787
|
});
|
|
10787
10788
|
};
|
|
10788
10789
|
return /* @__PURE__ */ t(
|
|
@@ -10801,18 +10802,18 @@ const Ln = ({
|
|
|
10801
10802
|
]
|
|
10802
10803
|
}
|
|
10803
10804
|
) }),
|
|
10804
|
-
children: /* @__PURE__ */ t(Ia, { children: d.map((
|
|
10805
|
-
const
|
|
10805
|
+
children: /* @__PURE__ */ t(Ia, { children: d.map((v) => {
|
|
10806
|
+
const m = n.indexOf(v) === n.length - 1, E = d.indexOf(v) === d.length - 1;
|
|
10806
10807
|
return /* @__PURE__ */ u(g.Fragment, { children: [
|
|
10807
10808
|
/* @__PURE__ */ t(
|
|
10808
10809
|
hn,
|
|
10809
10810
|
{
|
|
10810
|
-
account:
|
|
10811
|
-
onRowClick: () => f(
|
|
10811
|
+
account: v,
|
|
10812
|
+
onRowClick: () => f(v),
|
|
10812
10813
|
shouldShowConnectionStatus: !0
|
|
10813
10814
|
}
|
|
10814
10815
|
),
|
|
10815
|
-
!
|
|
10816
|
+
!m && /* @__PURE__ */ t(
|
|
10816
10817
|
q,
|
|
10817
10818
|
{
|
|
10818
10819
|
sx: {
|
|
@@ -10821,7 +10822,7 @@ const Ln = ({
|
|
|
10821
10822
|
}
|
|
10822
10823
|
}
|
|
10823
10824
|
)
|
|
10824
|
-
] },
|
|
10825
|
+
] }, v.guid);
|
|
10825
10826
|
}) })
|
|
10826
10827
|
},
|
|
10827
10828
|
l
|
|
@@ -10889,7 +10890,7 @@ const Ln = ({
|
|
|
10889
10890
|
sync_accounts: "Sync Accounts",
|
|
10890
10891
|
no_accounts: "No accounts available"
|
|
10891
10892
|
}, N1 = ({ onBackClick: A, sx: e = {} }) => {
|
|
10892
|
-
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 } = vA(), { isDesktop: d } = jA(), { onEvent: h } = V();
|
|
10893
10894
|
g.useEffect(() => {
|
|
10894
10895
|
c(o);
|
|
10895
10896
|
}, [o]);
|
|
@@ -10937,7 +10938,7 @@ const Ln = ({
|
|
|
10937
10938
|
}
|
|
10938
10939
|
);
|
|
10939
10940
|
}, z7 = x(N1), M1 = (A, e) => A.filter((n) => e.includes(n.guid)).slice(0, 3), R1 = ({ onPrimaryCtaClick: A, sx: e }) => {
|
|
10940
|
-
const { accounts: n } = DA(), { selectedAccountGuids: a } =
|
|
10941
|
+
const { accounts: n } = DA(), { selectedAccountGuids: a } = vA(), [r, i] = g.useState(n), o = {
|
|
10941
10942
|
title: "Accounts",
|
|
10942
10943
|
primary_cta: "View Accounts",
|
|
10943
10944
|
no_accounts: "No available accounts"
|
|
@@ -11491,7 +11492,7 @@ class z1 {
|
|
|
11491
11492
|
addAccount = async (e) => {
|
|
11492
11493
|
try {
|
|
11493
11494
|
const n = await this.api.createAccount(e);
|
|
11494
|
-
|
|
11495
|
+
Y(() => {
|
|
11495
11496
|
this.accounts = [...this.accounts, n];
|
|
11496
11497
|
});
|
|
11497
11498
|
} catch (n) {
|
|
@@ -11519,7 +11520,7 @@ class z1 {
|
|
|
11519
11520
|
await this.loadMembers();
|
|
11520
11521
|
try {
|
|
11521
11522
|
const e = await this.api.getAccounts();
|
|
11522
|
-
|
|
11523
|
+
Y(() => {
|
|
11523
11524
|
this.accounts = this.sortAccounts(this.augmentAccounts(e));
|
|
11524
11525
|
});
|
|
11525
11526
|
} catch (e) {
|
|
@@ -11529,7 +11530,7 @@ class z1 {
|
|
|
11529
11530
|
loadInstitutions = async () => {
|
|
11530
11531
|
try {
|
|
11531
11532
|
const e = await this.api.getInstitutions();
|
|
11532
|
-
|
|
11533
|
+
Y(() => {
|
|
11533
11534
|
this.institutions = e;
|
|
11534
11535
|
});
|
|
11535
11536
|
} catch (e) {
|
|
@@ -11539,7 +11540,7 @@ class z1 {
|
|
|
11539
11540
|
loadMembers = async () => {
|
|
11540
11541
|
try {
|
|
11541
11542
|
const e = await this.api.getMembers();
|
|
11542
|
-
|
|
11543
|
+
Y(() => {
|
|
11543
11544
|
this.members = e;
|
|
11544
11545
|
});
|
|
11545
11546
|
} catch (e) {
|
|
@@ -11549,7 +11550,7 @@ class z1 {
|
|
|
11549
11550
|
mergeAccounts = async (e) => {
|
|
11550
11551
|
try {
|
|
11551
11552
|
const n = await this.api.mergeAccounts(e), a = n[Object.keys(n)[0]];
|
|
11552
|
-
|
|
11553
|
+
Y(() => {
|
|
11553
11554
|
const r = this.accounts.findIndex((o) => o.guid === e[1]);
|
|
11554
11555
|
this.accounts.splice(r, 1);
|
|
11555
11556
|
const i = this.accounts.findIndex((o) => o.guid === e[0]);
|
|
@@ -11572,7 +11573,7 @@ class z1 {
|
|
|
11572
11573
|
};
|
|
11573
11574
|
removeAccount = async (e) => {
|
|
11574
11575
|
try {
|
|
11575
|
-
await this.api.deleteAccount(e),
|
|
11576
|
+
await this.api.deleteAccount(e), Y(() => {
|
|
11576
11577
|
const n = this.accounts.findIndex((a) => a.guid === e);
|
|
11577
11578
|
this.accounts.splice(n, 1);
|
|
11578
11579
|
});
|
|
@@ -11583,7 +11584,7 @@ class z1 {
|
|
|
11583
11584
|
updateAccount = async (e) => {
|
|
11584
11585
|
try {
|
|
11585
11586
|
const n = await this.api.updateAccount(e);
|
|
11586
|
-
|
|
11587
|
+
Y(() => {
|
|
11587
11588
|
const a = this.accounts.findIndex(
|
|
11588
11589
|
(r) => r.guid === n.guid
|
|
11589
11590
|
);
|
|
@@ -11757,7 +11758,7 @@ const Or = {
|
|
|
11757
11758
|
},
|
|
11758
11759
|
shouldShowZeroState: n
|
|
11759
11760
|
}) => {
|
|
11760
|
-
const a = fA(), { budgets: r } = nn(), { categories: i } = xA(), { isInitialized: o } =
|
|
11761
|
+
const a = fA(), { budgets: r } = nn(), { categories: i } = xA(), { isInitialized: o } = vA(), { availableHeight: s, availableWidth: c } = bt(), [l, d] = g.useState(!1), h = g.useMemo(
|
|
11761
11762
|
() => k1(r, i, a),
|
|
11762
11763
|
[r, s, c]
|
|
11763
11764
|
), [C, f] = g.useMemo(() => [450, c - 24], [s, c]);
|
|
@@ -11806,7 +11807,7 @@ const zt = {
|
|
|
11806
11807
|
good_morning: "Good morning!",
|
|
11807
11808
|
heres_your_spending_overview: "Here's your monthly financial overview."
|
|
11808
11809
|
}, rh = () => {
|
|
11809
|
-
const { accounts: A } = DA(), { selectedAccountGuids: e, setSelectedAccountGuids: n } =
|
|
11810
|
+
const { accounts: A } = DA(), { selectedAccountGuids: e, setSelectedAccountGuids: n } = vA(), { isMobile: a } = jA(), { common: r } = W(), i = {
|
|
11810
11811
|
accountFilterOptionsCopy: {
|
|
11811
11812
|
accountTypeAccounts: "_1{accountType} accounts",
|
|
11812
11813
|
cancelButton: r.cancel_button,
|
|
@@ -11845,7 +11846,7 @@ const zt = {
|
|
|
11845
11846
|
)
|
|
11846
11847
|
] }) });
|
|
11847
11848
|
}, ih = x(rh), oh = ({ widgets: A, isLoading: e }) => {
|
|
11848
|
-
const { isDesktop: n, isMobile: a } = jA(), { copyStore: r } = an(), { setSelectedAccounts: i } =
|
|
11849
|
+
const { isDesktop: n, isMobile: a } = jA(), { copyStore: r } = an(), { setSelectedAccounts: i } = vA(), { accounts: o } = DA();
|
|
11849
11850
|
g.useEffect(() => {
|
|
11850
11851
|
i(o);
|
|
11851
11852
|
}, [o]);
|
|
@@ -12062,7 +12063,7 @@ const zt = {
|
|
|
12062
12063
|
};
|
|
12063
12064
|
return /* @__PURE__ */ t(ji.Provider, { value: { toastState: e, showToast: a, hideToast: r, setMessage: i }, children: A });
|
|
12064
12065
|
}, Wi = () => {
|
|
12065
|
-
const A =
|
|
12066
|
+
const A = vo(ji);
|
|
12066
12067
|
if (!A)
|
|
12067
12068
|
throw new Error("useToast must be used within a ToastProvider");
|
|
12068
12069
|
return A;
|
|
@@ -12168,25 +12169,25 @@ const Yi = ({
|
|
|
12168
12169
|
he(() => {
|
|
12169
12170
|
f && !r && d(c);
|
|
12170
12171
|
}, [f, r, c, d]);
|
|
12171
|
-
const
|
|
12172
|
+
const v = (w) => {
|
|
12172
12173
|
const { name: I, checked: D } = w.target;
|
|
12173
12174
|
d((O) => ({
|
|
12174
12175
|
...O,
|
|
12175
12176
|
[I]: D
|
|
12176
12177
|
}));
|
|
12177
|
-
},
|
|
12178
|
+
}, m = Object.values(l).filter(Boolean).length, E = () => {
|
|
12178
12179
|
d(c), i();
|
|
12179
12180
|
}, L = () => {
|
|
12180
12181
|
const w = e.reduce(
|
|
12181
12182
|
(I, D) => ({
|
|
12182
12183
|
...I,
|
|
12183
|
-
[D.name]:
|
|
12184
|
+
[D.name]: m !== e.length
|
|
12184
12185
|
}),
|
|
12185
12186
|
{}
|
|
12186
12187
|
);
|
|
12187
12188
|
d(w);
|
|
12188
12189
|
}, b = () => {
|
|
12189
|
-
const w =
|
|
12190
|
+
const w = m === e.length;
|
|
12190
12191
|
n(
|
|
12191
12192
|
Object.keys(l).filter((I) => l[I]),
|
|
12192
12193
|
w
|
|
@@ -12249,7 +12250,7 @@ const Yi = ({
|
|
|
12249
12250
|
fontSize: 13,
|
|
12250
12251
|
minWidth: 0
|
|
12251
12252
|
},
|
|
12252
|
-
children:
|
|
12253
|
+
children: m === e.length ? A.unselect_all : A.select_all
|
|
12253
12254
|
}
|
|
12254
12255
|
)
|
|
12255
12256
|
]
|
|
@@ -12282,7 +12283,7 @@ const Yi = ({
|
|
|
12282
12283
|
role: "checkbox"
|
|
12283
12284
|
},
|
|
12284
12285
|
name: w.name,
|
|
12285
|
-
onChange:
|
|
12286
|
+
onChange: v,
|
|
12286
12287
|
size: "small"
|
|
12287
12288
|
}
|
|
12288
12289
|
)
|
|
@@ -12320,12 +12321,12 @@ const Yi = ({
|
|
|
12320
12321
|
ai,
|
|
12321
12322
|
{
|
|
12322
12323
|
color: "primary",
|
|
12323
|
-
disabled:
|
|
12324
|
+
disabled: m === 0,
|
|
12324
12325
|
fullWidth: !0,
|
|
12325
12326
|
loading: r,
|
|
12326
12327
|
onClick: b,
|
|
12327
12328
|
variant: "contained",
|
|
12328
|
-
children:
|
|
12329
|
+
children: m > 0 ? `${A.show} ${m} ${m > 1 ? A.hidden_insights : A.hidden_insight}` : A.show_insights
|
|
12329
12330
|
}
|
|
12330
12331
|
)
|
|
12331
12332
|
]
|
|
@@ -12404,13 +12405,13 @@ const Yi = ({
|
|
|
12404
12405
|
e,
|
|
12405
12406
|
n
|
|
12406
12407
|
];
|
|
12407
|
-
},
|
|
12408
|
+
}, vh = ({ content: A, disabledBeatTemplatesStore: e }) => {
|
|
12408
12409
|
const {
|
|
12409
12410
|
items: n,
|
|
12410
12411
|
update: a,
|
|
12411
12412
|
isUpdateError: r,
|
|
12412
12413
|
isUpdateLoading: i
|
|
12413
|
-
} = 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, v] = g.useState(!1), [m, E] = g.useState(!1), [L, b] = g.useState(""), [w, I] = g.useState(""), D = hi(i);
|
|
12414
12415
|
he(() => {
|
|
12415
12416
|
D && !i && (r ? d(A.something_went_wrong, "error") : d(void 0, "success"));
|
|
12416
12417
|
}, [D, r]);
|
|
@@ -12432,7 +12433,7 @@ const Yi = ({
|
|
|
12432
12433
|
iconName: "visibility_off_outlined",
|
|
12433
12434
|
itemCount: n.length,
|
|
12434
12435
|
label: A.manage_hidden_insights,
|
|
12435
|
-
onClick: () =>
|
|
12436
|
+
onClick: () => v(!0)
|
|
12436
12437
|
}
|
|
12437
12438
|
),
|
|
12438
12439
|
/* @__PURE__ */ u(
|
|
@@ -12440,7 +12441,7 @@ const Yi = ({
|
|
|
12440
12441
|
{
|
|
12441
12442
|
ariaLabelClose: A.close,
|
|
12442
12443
|
isOpen: f,
|
|
12443
|
-
onClose: () =>
|
|
12444
|
+
onClose: () => v(!1),
|
|
12444
12445
|
shouldShowHeaderBorders: !1,
|
|
12445
12446
|
sx: {
|
|
12446
12447
|
"& .MuiDrawer-paper": {
|
|
@@ -12520,7 +12521,7 @@ const Yi = ({
|
|
|
12520
12521
|
content: A,
|
|
12521
12522
|
disabledBeatTemplates: w !== "" ? o.filter((R) => R.key === L)[0].subcategories.filter((R) => R.key === w)[0].beats : [],
|
|
12522
12523
|
handleEnableBeatTemplates: B,
|
|
12523
|
-
isOpen:
|
|
12524
|
+
isOpen: m,
|
|
12524
12525
|
isUpdateLoading: i,
|
|
12525
12526
|
onClose: $,
|
|
12526
12527
|
translatedSubCatetgory: c[w]
|
|
@@ -12535,12 +12536,12 @@ const Yi = ({
|
|
|
12535
12536
|
disabledBeatTemplatesStore: e,
|
|
12536
12537
|
useDarkMode: n = !1
|
|
12537
12538
|
}) => /* @__PURE__ */ t(Aa, { theme: Lt(n ? "dark" : "light"), children: /* @__PURE__ */ t(ch, { children: /* @__PURE__ */ t(
|
|
12538
|
-
|
|
12539
|
+
vh,
|
|
12539
12540
|
{
|
|
12540
12541
|
content: A,
|
|
12541
12542
|
disabledBeatTemplatesStore: e
|
|
12542
12543
|
}
|
|
12543
|
-
) }) }),
|
|
12544
|
+
) }) }), mh = ({
|
|
12544
12545
|
children: A,
|
|
12545
12546
|
content: e,
|
|
12546
12547
|
isOpen: n = !1,
|
|
@@ -12560,7 +12561,7 @@ const Yi = ({
|
|
|
12560
12561
|
A
|
|
12561
12562
|
] })
|
|
12562
12563
|
}
|
|
12563
|
-
) }), F7 = x(
|
|
12564
|
+
) }), F7 = x(mh), U7 = ({
|
|
12564
12565
|
accountGuid: A,
|
|
12565
12566
|
animation: e,
|
|
12566
12567
|
leftLowerText: n,
|
|
@@ -12581,7 +12582,7 @@ const Yi = ({
|
|
|
12581
12582
|
},
|
|
12582
12583
|
padding: o ? "12px 16px 12px 16px" : "32px 16px 16px 16px"
|
|
12583
12584
|
}, C = /* @__PURE__ */ t(
|
|
12584
|
-
|
|
12585
|
+
mA,
|
|
12585
12586
|
{
|
|
12586
12587
|
bold: !0,
|
|
12587
12588
|
"data-ui-test": "mx-insights-sudd-full-feed-body-header-text",
|
|
@@ -12604,7 +12605,7 @@ const Yi = ({
|
|
|
12604
12605
|
width: h.logoSize
|
|
12605
12606
|
}
|
|
12606
12607
|
),
|
|
12607
|
-
/* @__PURE__ */ t(
|
|
12608
|
+
/* @__PURE__ */ t(mA, { bold: !0, "data-ui-test": "mx-insights-sudd-mini-body-header-text", children: s })
|
|
12608
12609
|
]
|
|
12609
12610
|
}
|
|
12610
12611
|
);
|
|
@@ -12618,26 +12619,26 @@ const Yi = ({
|
|
|
12618
12619
|
position: "relative",
|
|
12619
12620
|
width: "calc(100%-32px)"
|
|
12620
12621
|
},
|
|
12621
|
-
children: /* @__PURE__ */ t(Ms, { children: ({ height:
|
|
12622
|
+
children: /* @__PURE__ */ t(Ms, { children: ({ height: v, width: m }) => /* @__PURE__ */ u(g.Fragment, { children: [
|
|
12622
12623
|
/* @__PURE__ */ t(
|
|
12623
12624
|
Ns,
|
|
12624
12625
|
{
|
|
12625
12626
|
"aria-hidden": !0,
|
|
12626
12627
|
colors: ["#3F9FEB", "#C331B6", "#30C434", "#F1CE31", "#EE3B7C"],
|
|
12627
12628
|
confettiSource: {
|
|
12628
|
-
x:
|
|
12629
|
-
y:
|
|
12629
|
+
x: m / 2,
|
|
12630
|
+
y: v / 2,
|
|
12630
12631
|
w: 20,
|
|
12631
12632
|
h: 20
|
|
12632
12633
|
},
|
|
12633
12634
|
gravity: 0.05,
|
|
12634
|
-
height:
|
|
12635
|
+
height: v,
|
|
12635
12636
|
initialVelocityX: 7,
|
|
12636
12637
|
initialVelocityY: 8,
|
|
12637
12638
|
numberOfPieces: 200,
|
|
12638
12639
|
recycle: !1,
|
|
12639
12640
|
run: e.shouldRun,
|
|
12640
|
-
width:
|
|
12641
|
+
width: m
|
|
12641
12642
|
}
|
|
12642
12643
|
),
|
|
12643
12644
|
!o && /* @__PURE__ */ t(
|
|
@@ -12649,7 +12650,7 @@ const Yi = ({
|
|
|
12649
12650
|
position: "absolute",
|
|
12650
12651
|
right: 0,
|
|
12651
12652
|
top: 0,
|
|
12652
|
-
width:
|
|
12653
|
+
width: m,
|
|
12653
12654
|
zIndex: 10
|
|
12654
12655
|
},
|
|
12655
12656
|
children: /* @__PURE__ */ t(
|
|
@@ -12679,7 +12680,7 @@ const Yi = ({
|
|
|
12679
12680
|
left: 16,
|
|
12680
12681
|
padding: h.padding,
|
|
12681
12682
|
top: 24,
|
|
12682
|
-
width:
|
|
12683
|
+
width: m
|
|
12683
12684
|
},
|
|
12684
12685
|
children: [
|
|
12685
12686
|
o ? f : C,
|
|
@@ -12704,7 +12705,7 @@ const Yi = ({
|
|
|
12704
12705
|
},
|
|
12705
12706
|
children: [
|
|
12706
12707
|
/* @__PURE__ */ t(
|
|
12707
|
-
|
|
12708
|
+
mA,
|
|
12708
12709
|
{
|
|
12709
12710
|
"data-ui-test": "mx-insights-sudd-left-upper-text",
|
|
12710
12711
|
sx: { color: d.palette.secondary.darker },
|
|
@@ -12712,7 +12713,7 @@ const Yi = ({
|
|
|
12712
12713
|
children: a
|
|
12713
12714
|
}
|
|
12714
12715
|
),
|
|
12715
|
-
/* @__PURE__ */ t(
|
|
12716
|
+
/* @__PURE__ */ t(mA, { bold: !0, "data-ui-test": "mx-insights-sudd-left-lower-text", variant: "Small", children: n })
|
|
12716
12717
|
]
|
|
12717
12718
|
}
|
|
12718
12719
|
),
|
|
@@ -12730,7 +12731,7 @@ const Yi = ({
|
|
|
12730
12731
|
},
|
|
12731
12732
|
children: [
|
|
12732
12733
|
/* @__PURE__ */ t(
|
|
12733
|
-
|
|
12734
|
+
mA,
|
|
12734
12735
|
{
|
|
12735
12736
|
"data-ui-test": "mx-insights-sudd-right-upper-text",
|
|
12736
12737
|
sx: { color: d.palette.secondary.darker },
|
|
@@ -12739,7 +12740,7 @@ const Yi = ({
|
|
|
12739
12740
|
}
|
|
12740
12741
|
),
|
|
12741
12742
|
/* @__PURE__ */ t(
|
|
12742
|
-
|
|
12743
|
+
mA,
|
|
12743
12744
|
{
|
|
12744
12745
|
bold: !0,
|
|
12745
12746
|
"data-ui-test": "mx-insights-sudd-right-lower-text",
|
|
@@ -12778,7 +12779,7 @@ class ph {
|
|
|
12778
12779
|
};
|
|
12779
12780
|
loadCopy = async () => {
|
|
12780
12781
|
const e = await this.copyApi.getGlobalCopy(this.namespace, this.translationKey);
|
|
12781
|
-
|
|
12782
|
+
Y(() => {
|
|
12782
12783
|
this.copyObject = e[this.translationKey];
|
|
12783
12784
|
});
|
|
12784
12785
|
};
|
|
@@ -12816,7 +12817,7 @@ const Ta = {
|
|
|
12816
12817
|
...A,
|
|
12817
12818
|
[Vi(e)]: {
|
|
12818
12819
|
action: pe.MICRO_BEAT_CLICKED,
|
|
12819
|
-
category:
|
|
12820
|
+
category: me.BEAT_INTERACTION,
|
|
12820
12821
|
label: La(e),
|
|
12821
12822
|
value: ee
|
|
12822
12823
|
}
|
|
@@ -12827,7 +12828,7 @@ const Ta = {
|
|
|
12827
12828
|
...A,
|
|
12828
12829
|
[Ji(e)]: {
|
|
12829
12830
|
action: pe.MICRO_BEAT_DISPLAYED,
|
|
12830
|
-
category:
|
|
12831
|
+
category: me.BEAT_INTERACTION,
|
|
12831
12832
|
label: La(e),
|
|
12832
12833
|
value: ee
|
|
12833
12834
|
}
|
|
@@ -12838,18 +12839,18 @@ const Ta = {
|
|
|
12838
12839
|
...A,
|
|
12839
12840
|
[Zi(e)]: {
|
|
12840
12841
|
action: pe.MICRO_BEAT_DISPLAYED_FIRST_TIME,
|
|
12841
|
-
category:
|
|
12842
|
+
category: me.BEAT_INTERACTION,
|
|
12842
12843
|
label: La(e),
|
|
12843
12844
|
value: ee
|
|
12844
12845
|
}
|
|
12845
12846
|
}),
|
|
12846
12847
|
{}
|
|
12847
|
-
),
|
|
12848
|
+
), ve = {
|
|
12848
12849
|
CARD: "Card",
|
|
12849
12850
|
CAROUSEL_CONTROL: "Carousel Control",
|
|
12850
12851
|
MICRO_WIDGET: "Micro Widget",
|
|
12851
12852
|
VIEW_MORE: "View More"
|
|
12852
|
-
},
|
|
12853
|
+
}, me = {
|
|
12853
12854
|
MICRO_WIDGET_INTERACTION: "Micro Widget Interaction",
|
|
12854
12855
|
BEAT_INTERACTION: "Beat Interaction"
|
|
12855
12856
|
}, te = {
|
|
@@ -12875,21 +12876,21 @@ const Ta = {
|
|
|
12875
12876
|
MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS: "Micro Widget Carousel No Relevant Insights"
|
|
12876
12877
|
}, Mr = {
|
|
12877
12878
|
[De.MICRO_WIDGET_CAROUSEL]: {
|
|
12878
|
-
label:
|
|
12879
|
+
label: ve.MICRO_WIDGET,
|
|
12879
12880
|
name: De.MICRO_WIDGET_CAROUSEL,
|
|
12880
12881
|
path: Nr.INSIGHTS_MICRO_WIDGET,
|
|
12881
12882
|
value: ee
|
|
12882
12883
|
},
|
|
12883
12884
|
// zero state
|
|
12884
12885
|
[De.MICRO_WIDGET_CAROUSEL_ZERO_STATE]: {
|
|
12885
|
-
label:
|
|
12886
|
+
label: ve.MICRO_WIDGET,
|
|
12886
12887
|
name: De.MICRO_WIDGET_CAROUSEL_ZERO_STATE,
|
|
12887
12888
|
path: Nr.INSIGHTS_MICRO_WIDGET,
|
|
12888
12889
|
value: ee
|
|
12889
12890
|
},
|
|
12890
12891
|
// no relevant cards
|
|
12891
12892
|
[De.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS]: {
|
|
12892
|
-
label:
|
|
12893
|
+
label: ve.MICRO_WIDGET,
|
|
12893
12894
|
name: De.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS,
|
|
12894
12895
|
path: "/micro-widget",
|
|
12895
12896
|
value: ee
|
|
@@ -12898,39 +12899,39 @@ const Ta = {
|
|
|
12898
12899
|
// carousel control interaction events - clicks and swipes
|
|
12899
12900
|
[te.ON_CAROUSEL_BACK_CLICK]: {
|
|
12900
12901
|
action: pe.CONTROL_BACKWARD,
|
|
12901
|
-
category:
|
|
12902
|
-
label:
|
|
12902
|
+
category: me.MICRO_WIDGET_INTERACTION,
|
|
12903
|
+
label: ve.CAROUSEL_CONTROL,
|
|
12903
12904
|
value: ee
|
|
12904
12905
|
},
|
|
12905
12906
|
[te.ON_CAROUSEL_FORWARD_CLICK]: {
|
|
12906
12907
|
action: pe.CONTROL_FORWARD,
|
|
12907
|
-
category:
|
|
12908
|
-
label:
|
|
12908
|
+
category: me.MICRO_WIDGET_INTERACTION,
|
|
12909
|
+
label: ve.CAROUSEL_CONTROL,
|
|
12909
12910
|
value: ee
|
|
12910
12911
|
},
|
|
12911
12912
|
[te.ON_CAROUSEL_BACK_SWIPE]: {
|
|
12912
12913
|
action: pe.SWIPE_BACKWARD,
|
|
12913
|
-
category:
|
|
12914
|
-
label:
|
|
12914
|
+
category: me.MICRO_WIDGET_INTERACTION,
|
|
12915
|
+
label: ve.CAROUSEL_CONTROL,
|
|
12915
12916
|
value: ee
|
|
12916
12917
|
},
|
|
12917
12918
|
[te.ON_CAROUSEL_FORWARD_SWIPE]: {
|
|
12918
12919
|
action: pe.SWIPE_FORWARD,
|
|
12919
|
-
category:
|
|
12920
|
-
label:
|
|
12920
|
+
category: me.MICRO_WIDGET_INTERACTION,
|
|
12921
|
+
label: ve.CAROUSEL_CONTROL,
|
|
12921
12922
|
value: ee
|
|
12922
12923
|
},
|
|
12923
12924
|
// read more card events
|
|
12924
12925
|
[te.ON_VIEW_MORE_CLICKED]: {
|
|
12925
12926
|
action: pe.MICRO_BEAT_CLICKED,
|
|
12926
|
-
category:
|
|
12927
|
-
label:
|
|
12927
|
+
category: me.BEAT_INTERACTION,
|
|
12928
|
+
label: ve.VIEW_MORE,
|
|
12928
12929
|
value: ee
|
|
12929
12930
|
},
|
|
12930
12931
|
[$i.ON_VIEW_MORE_VIEWED]: {
|
|
12931
12932
|
action: pe.MICRO_BEAT_DISPLAYED,
|
|
12932
|
-
category:
|
|
12933
|
-
label:
|
|
12933
|
+
category: me.BEAT_INTERACTION,
|
|
12934
|
+
label: ve.VIEW_MORE,
|
|
12934
12935
|
value: ee
|
|
12935
12936
|
},
|
|
12936
12937
|
...yh(),
|
|
@@ -12959,7 +12960,7 @@ class bh {
|
|
|
12959
12960
|
bA(this), this.copyStore = new ph(), this.insightsMicroWidgetStore = new Sh();
|
|
12960
12961
|
}
|
|
12961
12962
|
initialize = async (e, n) => {
|
|
12962
|
-
await this.copyStore.initialize(e, n), await this.insightsMicroWidgetStore.initialize(e, n), this.session = await zs(e, n, "1.0.0", "Micro Insights Carousel"),
|
|
12963
|
+
await this.copyStore.initialize(e, n), await this.insightsMicroWidgetStore.initialize(e, n), this.session = await zs(e, n, "1.0.0", "Micro Insights Carousel"), Y(() => {
|
|
12963
12964
|
this.isInitialized = !0;
|
|
12964
12965
|
});
|
|
12965
12966
|
};
|
|
@@ -13862,22 +13863,22 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
13862
13863
|
variant: h,
|
|
13863
13864
|
widthOverrides: C
|
|
13864
13865
|
}) => {
|
|
13865
|
-
const f = window.app?.config.client_guid, { ref:
|
|
13866
|
+
const f = window.app?.config.client_guid, { ref: v, inView: m } = ri({
|
|
13866
13867
|
threshold: to
|
|
13867
13868
|
}), { cardsCopy: E } = Ue(), { onEvent: L } = Ot(), { updateBeat: b } = zh();
|
|
13868
13869
|
he(() => {
|
|
13869
|
-
|
|
13870
|
+
m && (n.has_been_displayed ? L(Ji(n.template)) : (b({
|
|
13870
13871
|
...n,
|
|
13871
13872
|
has_been_displayed: !0
|
|
13872
13873
|
}), L(Zi(n.template))));
|
|
13873
|
-
}, [
|
|
13874
|
-
l?.capture &&
|
|
13874
|
+
}, [m]), he(() => {
|
|
13875
|
+
l?.capture && m && n && f && l.capture("micro_widget_viewed_insight", {
|
|
13875
13876
|
beat_guid: n.guid,
|
|
13876
13877
|
insight_template: n.template,
|
|
13877
13878
|
position: o,
|
|
13878
13879
|
$groups: { client: f }
|
|
13879
13880
|
});
|
|
13880
|
-
}, [n, f, l, o,
|
|
13881
|
+
}, [n, f, l, o, m]);
|
|
13881
13882
|
const w = () => {
|
|
13882
13883
|
c && c(n), L(Vi(n.template)), l?.capture && f && l.capture("micro_widget_clicked_insight", {
|
|
13883
13884
|
beat_guid: n.guid,
|
|
@@ -13906,7 +13907,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
13906
13907
|
),
|
|
13907
13908
|
isActiveCard: s,
|
|
13908
13909
|
onCardClick: w,
|
|
13909
|
-
ref:
|
|
13910
|
+
ref: v,
|
|
13910
13911
|
showCTAColocatedWithText: r,
|
|
13911
13912
|
showIcon: d,
|
|
13912
13913
|
title: n.micro_title && n.micro_title.length > 0 ? n.micro_title : n.title,
|
|
@@ -13941,15 +13942,15 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
13941
13942
|
)
|
|
13942
13943
|
}
|
|
13943
13944
|
),
|
|
13944
|
-
Array.from({ length: n }).map((f,
|
|
13945
|
+
Array.from({ length: n }).map((f, v) => /* @__PURE__ */ t(
|
|
13945
13946
|
"div",
|
|
13946
13947
|
{
|
|
13947
13948
|
className: "mx-insights-micro-carousel-dots",
|
|
13948
13949
|
style: {
|
|
13949
|
-
backgroundColor:
|
|
13950
|
+
backgroundColor: v === e ? C : h
|
|
13950
13951
|
}
|
|
13951
13952
|
},
|
|
13952
|
-
`carousel-button-${
|
|
13953
|
+
`carousel-button-${v}`
|
|
13953
13954
|
)),
|
|
13954
13955
|
/* @__PURE__ */ t(
|
|
13955
13956
|
HA,
|
|
@@ -13998,7 +13999,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
13998
13999
|
variant: l,
|
|
13999
14000
|
widthOverrides: d
|
|
14000
14001
|
}) => {
|
|
14001
|
-
const h = Xh(a, c, d), C = g.useRef(null), [f,
|
|
14002
|
+
const h = Xh(a, c, d), C = g.useRef(null), [f, v] = g.useState(0), [m, E] = g.useState(null), [L, b] = g.useState(null), { carouselCopy: w } = Ue(), { onEvent: I } = Ot(), D = () => {
|
|
14002
14003
|
I(te.ON_CAROUSEL_FORWARD_CLICK), C.current && C.current.scrollTo({
|
|
14003
14004
|
left: (
|
|
14004
14005
|
// Adds the flex gap to the carousel ulRef's width
|
|
@@ -14014,10 +14015,10 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14014
14015
|
behavior: "smooth"
|
|
14015
14016
|
});
|
|
14016
14017
|
}, k = () => {
|
|
14017
|
-
C.current &&
|
|
14018
|
+
C.current && v(C.current.scrollLeft);
|
|
14018
14019
|
}, $ = () => {
|
|
14019
|
-
if (!L || !
|
|
14020
|
-
L -
|
|
14020
|
+
if (!L || !m) return;
|
|
14021
|
+
L - m > Hh ? I(te.ON_CAROUSEL_FORWARD_SWIPE) : I(te.ON_CAROUSEL_BACK_SWIPE);
|
|
14021
14022
|
}, B = (rA) => {
|
|
14022
14023
|
E(rA.targetTouches[0].clientX);
|
|
14023
14024
|
}, R = (rA) => {
|
|
@@ -14123,14 +14124,14 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14123
14124
|
style: h = {},
|
|
14124
14125
|
fontColors: C = {},
|
|
14125
14126
|
title: f,
|
|
14126
|
-
variant:
|
|
14127
|
-
widthOverrides:
|
|
14127
|
+
variant: v,
|
|
14128
|
+
widthOverrides: m
|
|
14128
14129
|
}, E) {
|
|
14129
14130
|
const [L, b] = g.useState(1);
|
|
14130
14131
|
g.useEffect(() => {
|
|
14131
|
-
|
|
14132
|
-
}, [
|
|
14133
|
-
const { cardStyle: w, linkTextStyle: I } = h, D =
|
|
14132
|
+
m && m <= 325 && b(3), m && m > 325 && b(2);
|
|
14133
|
+
}, [m]);
|
|
14134
|
+
const { cardStyle: w, linkTextStyle: I } = h, D = v ? w : { border: "none", boxShadow: "none", ...w }, O = Qh(
|
|
14134
14135
|
D,
|
|
14135
14136
|
r,
|
|
14136
14137
|
C,
|
|
@@ -14149,13 +14150,13 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14149
14150
|
tabIndex: c ? 0 : -1,
|
|
14150
14151
|
children: [
|
|
14151
14152
|
n && /* @__PURE__ */ t("span", { "aria-label": n, style: { visibility: "hidden" } }),
|
|
14152
|
-
/* @__PURE__ */ u(Je, { className: "mx-micro-card", sx: { backgroundColor: a }, variant:
|
|
14153
|
+
/* @__PURE__ */ u(Je, { className: "mx-micro-card", sx: { backgroundColor: a }, variant: v, children: [
|
|
14153
14154
|
/* @__PURE__ */ t(
|
|
14154
14155
|
Qn,
|
|
14155
14156
|
{
|
|
14156
14157
|
avatar: d && s,
|
|
14157
14158
|
subheader: /* @__PURE__ */ t("div", { className: "mx-micro-content-container", children: /* @__PURE__ */ t(
|
|
14158
|
-
|
|
14159
|
+
mA,
|
|
14159
14160
|
{
|
|
14160
14161
|
className: "mx-micro-card-description",
|
|
14161
14162
|
color: C.textColor ? "undefined" : "text.primary",
|
|
@@ -14332,8 +14333,8 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14332
14333
|
showCarouselControls: h,
|
|
14333
14334
|
showHeader: C,
|
|
14334
14335
|
showIcon: f,
|
|
14335
|
-
showWithMargin:
|
|
14336
|
-
token:
|
|
14336
|
+
showWithMargin: v = !0,
|
|
14337
|
+
token: m = "",
|
|
14337
14338
|
useDarkMode: E,
|
|
14338
14339
|
userHasFullInsightFeedBeats: L,
|
|
14339
14340
|
variant: b,
|
|
@@ -14341,8 +14342,8 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14341
14342
|
}) => {
|
|
14342
14343
|
const [I, D] = de("STANDARD"), [O, k] = de(!1), $ = ec([s], ke), B = tc([c], ke);
|
|
14343
14344
|
g.useEffect(() => {
|
|
14344
|
-
ke.initialize(r,
|
|
14345
|
-
}, [r,
|
|
14345
|
+
ke.initialize(r, m);
|
|
14346
|
+
}, [r, m]), g.useEffect(() => {
|
|
14346
14347
|
const K = window.innerHeight;
|
|
14347
14348
|
K < 180 ? D("STANDARD") : K >= 180 && K < 200 ? D("LARGE") : K >= 200 && K < 248 ? D("XLARGE") : K >= 248 && D("XXLARGE");
|
|
14348
14349
|
}, []), g.useEffect(() => {
|
|
@@ -14353,7 +14354,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14353
14354
|
heightOverrides: i,
|
|
14354
14355
|
onCardClick: o,
|
|
14355
14356
|
showIcon: f,
|
|
14356
|
-
showWithMargin:
|
|
14357
|
+
showWithMargin: v,
|
|
14357
14358
|
useDarkMode: E,
|
|
14358
14359
|
widthOverrides: w
|
|
14359
14360
|
}, z = {
|
|
@@ -14419,7 +14420,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14419
14420
|
g.useEffect(() => {
|
|
14420
14421
|
C(De.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS);
|
|
14421
14422
|
}, []);
|
|
14422
|
-
const
|
|
14423
|
+
const v = () => {
|
|
14423
14424
|
r && r(), h(te.ON_NO_RELEVANT_INSIGHTS_CLICKED), i?.capture && f && i.capture("micro_widget_clicked_insight", {
|
|
14424
14425
|
insight_template: "no_relevant_insights",
|
|
14425
14426
|
$groups: { client: f }
|
|
@@ -14434,7 +14435,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14434
14435
|
fontColors: { buttonColor: n?.primary_300 },
|
|
14435
14436
|
heightOverrides: a,
|
|
14436
14437
|
icon: /* @__PURE__ */ t(Ao, {}),
|
|
14437
|
-
onCardClick:
|
|
14438
|
+
onCardClick: v,
|
|
14438
14439
|
showIcon: o,
|
|
14439
14440
|
style: {
|
|
14440
14441
|
cardStyle: {
|
|
@@ -14469,17 +14470,17 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14469
14470
|
}) => {
|
|
14470
14471
|
const l = SA(), d = window.app?.config.client_guid, { ref: h, inView: C } = ri({
|
|
14471
14472
|
threshold: to
|
|
14472
|
-
}), { cardsCopy: f } = Ue(), { onEvent:
|
|
14473
|
+
}), { cardsCopy: f } = Ue(), { onEvent: v } = Ot();
|
|
14473
14474
|
he(() => {
|
|
14474
|
-
C &&
|
|
14475
|
+
C && v($i.ON_VIEW_MORE_VIEWED);
|
|
14475
14476
|
}, [C]), he(() => {
|
|
14476
14477
|
i?.capture && C && d && i.capture("micro_widget_viewed_insight", {
|
|
14477
14478
|
insight_template: "read_more_card",
|
|
14478
14479
|
$groups: { client: d }
|
|
14479
14480
|
});
|
|
14480
14481
|
}, [d, i, C]);
|
|
14481
|
-
const
|
|
14482
|
-
r && r(),
|
|
14482
|
+
const m = () => {
|
|
14483
|
+
r && r(), v(te.ON_VIEW_MORE_CLICKED), i?.capture && d && i.capture("micro_widget_clicked_insight", {
|
|
14483
14484
|
insight_template: "read_more_card",
|
|
14484
14485
|
$groups: { client: d }
|
|
14485
14486
|
});
|
|
@@ -14499,7 +14500,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14499
14500
|
}
|
|
14500
14501
|
),
|
|
14501
14502
|
isActiveCard: A,
|
|
14502
|
-
onCardClick:
|
|
14503
|
+
onCardClick: m,
|
|
14503
14504
|
ref: h,
|
|
14504
14505
|
showIcon: o,
|
|
14505
14506
|
title: f.view_more_card_title,
|
|
@@ -14689,11 +14690,11 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14689
14690
|
const c = at(), { isTablet: l } = jA(), d = {
|
|
14690
14691
|
view_transactions: "View Transactions"
|
|
14691
14692
|
}, h = g.useMemo(
|
|
14692
|
-
() => r ? A.categoryData.find((
|
|
14693
|
+
() => r ? A.categoryData.find((m) => m.guid === r) : void 0,
|
|
14693
14694
|
[r]
|
|
14694
14695
|
), C = g.useMemo(() => A.donutData.length > 0 ? A.donutData : [{ id: "0", color: c.palette.border.light, value: 100 }], [A, c]), f = () => {
|
|
14695
14696
|
a?.(r);
|
|
14696
|
-
},
|
|
14697
|
+
}, v = l ? 32 : 48;
|
|
14697
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: [
|
|
14698
14699
|
h && /* @__PURE__ */ u(
|
|
14699
14700
|
T,
|
|
@@ -14709,7 +14710,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14709
14710
|
{
|
|
14710
14711
|
categoryGuid: e ? p.INCOME : h.guid,
|
|
14711
14712
|
color: h.color,
|
|
14712
|
-
size: s === "mini" ? 24 :
|
|
14713
|
+
size: s === "mini" ? 24 : v,
|
|
14713
14714
|
variant: Xr.Transparent
|
|
14714
14715
|
}
|
|
14715
14716
|
),
|
|
@@ -14753,7 +14754,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14753
14754
|
total_income: "Total Income",
|
|
14754
14755
|
total_spending: "Total Spending"
|
|
14755
14756
|
}, d3 = () => {
|
|
14756
|
-
const A = fA(), { selectedAccounts: e } =
|
|
14757
|
+
const A = fA(), { selectedAccounts: e } = vA(), n = g.useMemo(
|
|
14757
14758
|
() => [
|
|
14758
14759
|
A.palette.chartMono.chartMono5,
|
|
14759
14760
|
A.palette.chartMono.chartMono4,
|
|
@@ -14777,10 +14778,10 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14777
14778
|
), h = g.useMemo(
|
|
14778
14779
|
() => ro(a, r, n),
|
|
14779
14780
|
[a, r, n]
|
|
14780
|
-
), C = (
|
|
14781
|
-
l(
|
|
14782
|
-
}, f = (
|
|
14783
|
-
s(o ===
|
|
14781
|
+
), C = (v, m) => {
|
|
14782
|
+
l(m), s("");
|
|
14783
|
+
}, f = (v) => {
|
|
14784
|
+
s(o === v ? "" : v);
|
|
14784
14785
|
};
|
|
14785
14786
|
return /* @__PURE__ */ u(S, { width: "100%", children: [
|
|
14786
14787
|
/* @__PURE__ */ u(rt, { onChange: C, value: c, variant: "fullWidth", children: [
|
|
@@ -14973,15 +14974,15 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14973
14974
|
income_tab_title: "Income",
|
|
14974
14975
|
transactions_drawer_title: "Transactions",
|
|
14975
14976
|
transaction_details_drawer_title: "Transaction Details"
|
|
14976
|
-
},
|
|
14977
|
+
}, v3 = (A) => [
|
|
14977
14978
|
A.palette.chartMono.chartMono5,
|
|
14978
14979
|
A.palette.chartMono.chartMono4,
|
|
14979
14980
|
A.palette.chartMono.chartMono3,
|
|
14980
14981
|
A.palette.chartMono.chartMono2,
|
|
14981
14982
|
A.palette.chartMono.chartMono1,
|
|
14982
14983
|
A.palette.chartMono.chartMono6
|
|
14983
|
-
],
|
|
14984
|
-
const A = at(), { categories: e, dateRangeCategoryTotals: n, loadDateRangeCategoryTotals: a } = xA(), { selectedAccountGuids: r } =
|
|
14984
|
+
], m3 = () => {
|
|
14985
|
+
const A = at(), { categories: e, dateRangeCategoryTotals: n, loadDateRangeCategoryTotals: a } = xA(), { selectedAccountGuids: r } = vA(), { displayedDateRange: i, selectedAccounts: o } = vA(), { setFilter: s, sortedTransactions: c } = uA(), [l, d] = g.useState(""), [h, C] = g.useState(0), [f, v] = g.useState(""), [m, E] = g.useState(!1);
|
|
14985
14986
|
g.useEffect(() => {
|
|
14986
14987
|
a(
|
|
14987
14988
|
o,
|
|
@@ -14993,7 +14994,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
14993
14994
|
() => ao(e, n),
|
|
14994
14995
|
[e, n]
|
|
14995
14996
|
), b = g.useMemo(
|
|
14996
|
-
() => ro(e, n,
|
|
14997
|
+
() => ro(e, n, v3(A)),
|
|
14997
14998
|
[e, n]
|
|
14998
14999
|
), w = g.useMemo(
|
|
14999
15000
|
() => c.find((k) => k.guid === f),
|
|
@@ -15065,10 +15066,10 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15065
15066
|
hA,
|
|
15066
15067
|
{
|
|
15067
15068
|
ariaLabelClose: Ie.close_drawer_aria,
|
|
15068
|
-
isOpen:
|
|
15069
|
+
isOpen: m,
|
|
15069
15070
|
onClose: () => E(!1),
|
|
15070
15071
|
title: Ie.transactions_drawer_title,
|
|
15071
|
-
children: /* @__PURE__ */ t(It, { onClick:
|
|
15072
|
+
children: /* @__PURE__ */ t(It, { onClick: v })
|
|
15072
15073
|
}
|
|
15073
15074
|
),
|
|
15074
15075
|
/* @__PURE__ */ t(
|
|
@@ -15076,16 +15077,16 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15076
15077
|
{
|
|
15077
15078
|
ariaLabelClose: Ie.close_drawer_aria,
|
|
15078
15079
|
isOpen: !!w,
|
|
15079
|
-
onClose: () =>
|
|
15080
|
+
onClose: () => v(""),
|
|
15080
15081
|
title: Ie.transaction_details_drawer_title,
|
|
15081
15082
|
children: w && /* @__PURE__ */ t(ln, { transaction: w })
|
|
15082
15083
|
}
|
|
15083
15084
|
)
|
|
15084
15085
|
] });
|
|
15085
|
-
}, p3 = x(
|
|
15086
|
+
}, p3 = x(m3), y3 = {
|
|
15086
15087
|
title: "Spending"
|
|
15087
15088
|
}, E3 = ({ onBackClick: A, sx: e = {} }) => {
|
|
15088
|
-
const { accounts: n } = DA(), { isInitialized: a, setDisplayedDate: r, setSelectedAccounts: i } =
|
|
15089
|
+
const { accounts: n } = DA(), { isInitialized: a, setDisplayedDate: r, setSelectedAccounts: i } = vA(), { onEvent: o } = V(), [s, c] = g.useState(!1);
|
|
15089
15090
|
g.useEffect(() => {
|
|
15090
15091
|
i(n);
|
|
15091
15092
|
}, [n]), g.useEffect(() => {
|
|
@@ -15147,17 +15148,17 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15147
15148
|
sortable: !0,
|
|
15148
15149
|
hideSortIcons: !1,
|
|
15149
15150
|
type: "number",
|
|
15150
|
-
sortComparator:
|
|
15151
|
+
sortComparator: v1
|
|
15151
15152
|
})
|
|
15152
15153
|
)
|
|
15153
15154
|
], c = g.useMemo(() => {
|
|
15154
15155
|
const l = A.reduce(
|
|
15155
15156
|
(d, h) => {
|
|
15156
|
-
const { category_guid: C, top_level_category_guid: f, month:
|
|
15157
|
+
const { category_guid: C, top_level_category_guid: f, month: v, total: m, year: E } = h;
|
|
15157
15158
|
if (C === f) {
|
|
15158
15159
|
d[C] || (d[C] = { id: C, category: C });
|
|
15159
|
-
const L = j(new Date(E,
|
|
15160
|
-
d[C][L] =
|
|
15160
|
+
const L = j(new Date(E, v, 1), F.MONTH_SHORT);
|
|
15161
|
+
d[C][L] = m;
|
|
15161
15162
|
}
|
|
15162
15163
|
return d;
|
|
15163
15164
|
},
|
|
@@ -15184,7 +15185,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15184
15185
|
title: "Trends",
|
|
15185
15186
|
subTitle: "Transaction trends by category"
|
|
15186
15187
|
}, b3 = ({ onBackClick: A, sx: e }) => {
|
|
15187
|
-
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 } = vA(), f = n.palette.mode === "dark", [v, m] = g.useState(!1), [E, L] = g.useState("Chart"), [b, w] = g.useState({
|
|
15188
15189
|
start: LA(ye(/* @__PURE__ */ new Date(), 5)),
|
|
15189
15190
|
end: OA(/* @__PURE__ */ new Date())
|
|
15190
15191
|
}), I = (R, z) => {
|
|
@@ -15198,7 +15199,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15198
15199
|
b.start,
|
|
15199
15200
|
b.end
|
|
15200
15201
|
).finally(() => {
|
|
15201
|
-
|
|
15202
|
+
m(!0);
|
|
15202
15203
|
});
|
|
15203
15204
|
}, [s, d, h, w]);
|
|
15204
15205
|
const D = g.useMemo(
|
|
@@ -15217,7 +15218,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15217
15218
|
() => br(D.filter(ya)),
|
|
15218
15219
|
[s, l]
|
|
15219
15220
|
);
|
|
15220
|
-
return !d || !
|
|
15221
|
+
return !d || !v ? /* @__PURE__ */ t(Ce, {}) : /* @__PURE__ */ t(
|
|
15221
15222
|
Re,
|
|
15222
15223
|
{
|
|
15223
15224
|
accountOptions: o,
|
|
@@ -15376,7 +15377,7 @@ const Dt = g.createContext(null), Ih = ({
|
|
|
15376
15377
|
subTitle: "Your total spending over the last 6 months",
|
|
15377
15378
|
title: "Spending Overview"
|
|
15378
15379
|
}, P3 = ({ onPrimaryCtaClick: A, sx: e }) => {
|
|
15379
|
-
const { loadMonthlyCategoryTotals: n } = xA(), { isInitialized: a } = an(), { selectedAccounts: r } =
|
|
15380
|
+
const { loadMonthlyCategoryTotals: n } = xA(), { isInitialized: a } = an(), { selectedAccounts: r } = vA(), [i, o] = g.useState(!1);
|
|
15380
15381
|
return g.useEffect(() => {
|
|
15381
15382
|
a && n(r).finally(() => {
|
|
15382
15383
|
o(!0);
|
|
@@ -15416,7 +15417,7 @@ export {
|
|
|
15416
15417
|
qh as BeatCard,
|
|
15417
15418
|
qt as BottomActions,
|
|
15418
15419
|
K7 as BubbleBudgetsMiniWidget,
|
|
15419
|
-
|
|
15420
|
+
vc as Calendar,
|
|
15420
15421
|
Ci as CalendarSelectionTypes,
|
|
15421
15422
|
Uh as CarouselHeader,
|
|
15422
15423
|
pr as CashflowApi,
|
|
@@ -15465,11 +15466,11 @@ export {
|
|
|
15465
15466
|
j7 as InsightsMicroWidget,
|
|
15466
15467
|
Ih as InsightsMicroWidgetDataProvider,
|
|
15467
15468
|
Us as IterationItemTypes,
|
|
15468
|
-
|
|
15469
|
+
v7 as LOADING_STATUS,
|
|
15469
15470
|
ra as LineChart,
|
|
15470
15471
|
Xc as ListItemWrapper,
|
|
15471
15472
|
Ce as Loader,
|
|
15472
|
-
|
|
15473
|
+
m7 as LocalizedCopyApi,
|
|
15473
15474
|
X7 as ManageAccountsDrawer,
|
|
15474
15475
|
qi as ManageIncome,
|
|
15475
15476
|
Pe as MemberConnectionStatus,
|
|
@@ -15537,8 +15538,8 @@ export {
|
|
|
15537
15538
|
Zh as ViewMoreMicroCard,
|
|
15538
15539
|
Fa as WidgetApi,
|
|
15539
15540
|
Re as WidgetContainer,
|
|
15540
|
-
|
|
15541
|
-
|
|
15541
|
+
vi as WidgetContainerContext,
|
|
15542
|
+
mi as WidgetContainerProvider,
|
|
15542
15543
|
A3 as ZeroStateCard,
|
|
15543
15544
|
Ao as ZeroStateIcon,
|
|
15544
15545
|
zs as analyticsSession,
|
|
@@ -15561,11 +15562,11 @@ export {
|
|
|
15561
15562
|
Fe as useCategoryUiStore,
|
|
15562
15563
|
ec as useCombineEvents,
|
|
15563
15564
|
tc as useCombinePageviews,
|
|
15564
|
-
|
|
15565
|
+
V as useEvent,
|
|
15565
15566
|
Vu as useGetMergeableAccounts,
|
|
15566
15567
|
W as useGlobalCopyStore,
|
|
15567
15568
|
an as useGlobalStore,
|
|
15568
|
-
|
|
15569
|
+
vA as useGlobalUiStore,
|
|
15569
15570
|
_c as useMerchantStore,
|
|
15570
15571
|
Hc as useNetWorthStore,
|
|
15571
15572
|
yi as useNotificationStore,
|