@mx-cartographer/experiences 8.0.14 → 8.0.15

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.
Files changed (28) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/EmbeddedCard-B4U5fIbl.mjs +796 -0
  3. package/dist/{ExportCsvAction-ErKh7wJ2.mjs → ExportCsvAction-CHCmCCqf.mjs} +4 -5
  4. package/dist/{ManageIncome-C_XOG9CZ.mjs → ManageIncome-DZ_6f0js.mjs} +3 -3
  5. package/dist/{RecurringSettings-Bt-zMwCB.mjs → RecurringSettings-CJJndcMu.mjs} +1 -1
  6. package/dist/{Transaction-Cn5_iFm0.mjs → Transaction-C3Pg9TKf.mjs} +2 -2
  7. package/dist/TransactionDetails-B9rTYhMA.mjs +1703 -0
  8. package/dist/{TransactionStore-CbZfz7-2.mjs → TransactionStore-BUsgGRL1.mjs} +43 -32
  9. package/dist/accounts/index.es.js +2 -2
  10. package/dist/budgets/index.es.js +5 -6
  11. package/dist/cashflow/index.es.js +3 -3
  12. package/dist/common/index.es.js +20 -20
  13. package/dist/core/index.es.js +1 -1
  14. package/dist/core/types/localization/InsightsFeedCopy.d.ts +11 -0
  15. package/dist/{OnClickEvents-CseHDZ94.mjs → exportTransactionsToCSV-DgdB3TBt.mjs} +70 -24
  16. package/dist/finstrong/index.es.js +3 -3
  17. package/dist/insights/components/shared/InsightsCard/EmbeddedCard.d.ts +1 -2
  18. package/dist/insights/index.es.js +1043 -1566
  19. package/dist/recurringtransactions/index.es.js +4 -4
  20. package/dist/spending/index.es.js +3 -3
  21. package/dist/transactions/components/shared/getEmbeddedInstanceSlotByBeatTemplates.d.ts +8 -0
  22. package/dist/transactions/index.es.js +15 -15
  23. package/dist/transactions/stores/TransactionStore.d.ts +1 -0
  24. package/dist/trends/index.es.js +3 -3
  25. package/package.json +1 -1
  26. package/dist/StatusIndicator-DAWRKwmE.mjs +0 -264
  27. package/dist/TransactionDetails-DA6tdnu0.mjs +0 -1476
  28. package/dist/exportTransactionsToCSV-MCYH_zzN.mjs +0 -48
@@ -1,28 +1,27 @@
1
- import { jsx as E } from "react/jsx-runtime";
1
+ import { jsx as I } from "react/jsx-runtime";
2
2
  import M from "@mui/material/Box";
3
3
  import H from "@mui/material/FormControlLabel";
4
4
  import P from "@mui/material/Radio";
5
- import U from "@mui/material/styles/useTheme";
6
- import B from "@mui/material/Tooltip";
7
- import { makeAutoObservable as p } from "mobx";
8
- import { endOfToday as f } from "date-fns/endOfToday";
5
+ import B from "@mui/material/styles/useTheme";
6
+ import U from "@mui/material/Tooltip";
7
+ import { makeAutoObservable as f } from "mobx";
8
+ import { endOfToday as h } from "date-fns/endOfToday";
9
9
  import { formatISO as K } from "date-fns/formatISO";
10
- import { getUnixTime as O } from "date-fns/getUnixTime";
10
+ import { getUnixTime as E } from "date-fns/getUnixTime";
11
11
  import { isBefore as V } from "date-fns/isBefore";
12
12
  import { startOfMonth as u } from "date-fns/startOfMonth";
13
13
  import { startOfToday as m } from "date-fns/startOfToday";
14
14
  import { subDays as v } from "date-fns/subDays";
15
- import { O as n } from "./OnClickEvents-CseHDZ94.mjs";
15
+ import { O as n, f as Y } from "./exportTransactionsToCSV-DgdB3TBt.mjs";
16
16
  import { T as D } from "./TransactionApi-Ck5Ua-7F.mjs";
17
- import { b as Y } from "./Category-CevNQ03n.mjs";
18
- import { a as y, T as b } from "./Transaction-Cn5_iFm0.mjs";
19
- import { f as F } from "./exportTransactionsToCSV-MCYH_zzN.mjs";
17
+ import { b as F } from "./Category-CevNQ03n.mjs";
18
+ import { T as y, a as b } from "./Transaction-C3Pg9TKf.mjs";
20
19
  import { format as W } from "date-fns/format";
21
20
  import { fromUnixTime as $ } from "date-fns/fromUnixTime";
22
- import { f as C, D as I, O as k } from "./DateFormats-BMpMrZpW.mjs";
21
+ import { f as C, D as O, O as k } from "./DateFormats-BMpMrZpW.mjs";
23
22
  import { f as z } from "./NumberFormatting-QCaNwbjv.mjs";
24
23
  import { endOfMonth as X } from "date-fns/endOfMonth";
25
- import { B as h } from "./BeatApi-EFHXULDx.mjs";
24
+ import { B as R } from "./BeatApi-EFHXULDx.mjs";
26
25
  const j = ({
27
26
  checked: l = !1,
28
27
  label: t,
@@ -30,8 +29,8 @@ const j = ({
30
29
  tooltip: s = "",
31
30
  value: A
32
31
  }) => {
33
- const d = U(), e = d.palette.mode === "light" ? d.palette.grey[400] : d.palette.grey[700], c = l ? d.palette.action.active : e;
34
- return /* @__PURE__ */ E(
32
+ const d = B(), e = d.palette.mode === "light" ? d.palette.grey[400] : d.palette.grey[700], c = l ? d.palette.action.active : e;
33
+ return /* @__PURE__ */ I(
35
34
  M,
36
35
  {
37
36
  bgcolor: "background.paper",
@@ -43,10 +42,10 @@ const j = ({
43
42
  pr: 8,
44
43
  py: 4,
45
44
  sx: { "&:hover": { borderColor: d.palette.action.active }, ...a },
46
- children: /* @__PURE__ */ E(B, { title: s, children: /* @__PURE__ */ E(
45
+ children: /* @__PURE__ */ I(U, { title: s, children: /* @__PURE__ */ I(
47
46
  H,
48
47
  {
49
- control: /* @__PURE__ */ E(
48
+ control: /* @__PURE__ */ I(
50
49
  P,
51
50
  {
52
51
  disableRipple: !0,
@@ -61,7 +60,7 @@ const j = ({
61
60
  ) })
62
61
  }
63
62
  );
64
- }, yt = j, G = {
63
+ }, mt = j, G = {
65
64
  ASC: "ASC",
66
65
  DESC: "DESC",
67
66
  DIRECTION: {
@@ -110,7 +109,7 @@ const j = ({
110
109
  TRANSACTION: "Transaction",
111
110
  TRANSACTIONS_LIST: "Transactions List",
112
111
  UNHIDE_TRANSACTION: "Unhide Transaction"
113
- }, R = {
112
+ }, p = {
114
113
  // splits
115
114
  [n.ON_TRANSACTION_SPLIT_CLICK]: {
116
115
  action: o.SELECT,
@@ -324,7 +323,7 @@ const j = ({
324
323
  category: T.TRANSACTIONS_WIDGET,
325
324
  label: r.DELETE_TRANSACTION
326
325
  }
327
- }, Z = async (l, t) => !t || !R[l] ? null : t.sendAnalyticEvent(R[l]), L = {
326
+ }, Z = async (l, t) => !t || !p[l] ? null : t.sendAnalyticEvent(p[l]), L = {
328
327
  FLAG: "flag",
329
328
  DATE: "date",
330
329
  PAYEE: "payee",
@@ -353,7 +352,7 @@ const j = ({
353
352
  accountIsClosed: i?.is_closed,
354
353
  accountIsHidden: i?.is_hidden,
355
354
  category: S?.name || "Uncategorized",
356
- isIncome: c.top_level_category_guid === Y.INCOME,
355
+ isIncome: c.top_level_category_guid === F.INCOME,
357
356
  isPending: c.feed_status === y.PENDING,
358
357
  number: i?.account_number || "",
359
358
  payee: c.description,
@@ -369,12 +368,12 @@ const j = ({
369
368
  }, tt = (l, t, a) => {
370
369
  const {
371
370
  accounts: s = [],
372
- dateRange: A = { start: u(m()), end: f() },
371
+ dateRange: A = { start: u(m()), end: h() },
373
372
  custom: d = () => !0,
374
373
  searchTerm: e = "",
375
374
  showSplits: c = !1
376
375
  } = l;
377
- return a.filter((i) => c ? !i.has_been_split : !i.parent_guid).filter((i) => !!s.find((S) => S === i.account_guid)).filter((i) => i.date >= O(A.start) && i.date <= O(A.end)).filter(d).filter((i) => {
376
+ return a.filter((i) => c ? !i.has_been_split : !i.parent_guid).filter((i) => !!s.find((S) => S === i.account_guid)).filter((i) => i.date >= E(A.start) && i.date <= E(A.end)).filter(d).filter((i) => {
378
377
  if (e === J && i.has_been_split)
379
378
  return !1;
380
379
  if (/^spl/i.test(e) && (i.has_been_split || i.parent_guid))
@@ -382,7 +381,7 @@ const j = ({
382
381
  const N = i.tags.some(
383
382
  (w) => _(e, t.find((x) => x.guid === w)?.name)
384
383
  ), g = $(i.date);
385
- return _(e, i.payee) || _(e, i.feed_description) || _(e, i.category) || _(e, C(g, I.MONTH)) || _(e, C(g, I.DAY)) || _(e, C(g, I.FULL_MONTH_DAY)) || _(e, C(g, I.MONTH_DAY_YEAR)) || _(e, W(g, k)) || _(e, i.account) || _(e, z(i.amount, "0,0.00")) || _(e, i.memo) || N;
384
+ return _(e, i.payee) || _(e, i.feed_description) || _(e, i.category) || _(e, C(g, O.MONTH)) || _(e, C(g, O.DAY)) || _(e, C(g, O.FULL_MONTH_DAY)) || _(e, C(g, O.MONTH_DAY_YEAR)) || _(e, W(g, k)) || _(e, i.account) || _(e, z(i.amount, "0,0.00")) || _(e, i.memo) || N;
386
385
  });
387
386
  }, at = (l, t, a) => [...l].sort((s, A) => {
388
387
  const d = t, e = (s[d] || "") > (A[d] || "");
@@ -433,7 +432,7 @@ class st {
433
432
  isAmountValid = !1;
434
433
  showInsights = !1;
435
434
  constructor() {
436
- p(this);
435
+ f(this);
437
436
  }
438
437
  setDateRange = (t, a) => {
439
438
  this.beginDate = t, this.endDate = a;
@@ -459,11 +458,11 @@ class st {
459
458
  this.manualTransaction = t;
460
459
  };
461
460
  }
462
- class bt {
461
+ class yt {
463
462
  globalStore;
464
463
  uiStore;
465
464
  api = new D("/", "");
466
- beatApi = new h("/", "");
465
+ beatApi = new R("/", "");
467
466
  associatedBeats = [];
468
467
  associatedBeatsLoaded = !1;
469
468
  associatedBeatsLoading = !1;
@@ -490,7 +489,7 @@ class bt {
490
489
  t.endpoint,
491
490
  t.sessionToken,
492
491
  t.onError
493
- ), this.beatApi = new h(t.endpoint, t.sessionToken, t.onError), p(this);
492
+ ), this.beatApi = new R(t.endpoint, t.sessionToken, t.onError), f(this);
494
493
  }
495
494
  loadTransactionData = async () => {
496
495
  this.globalStore.accountStore.isAccountDataLoaded || await this.globalStore.accountStore.loadAccountData(), this.globalStore.categoryStore.categoriesLoaded || await this.globalStore.categoryStore.loadCategories(), await Promise.all([
@@ -524,7 +523,7 @@ class bt {
524
523
  );
525
524
  }
526
525
  get sortedTransactionsWithSplits() {
527
- return F(this.sortedTransactions, this.detailedTransactions);
526
+ return Y(this.sortedTransactions, this.detailedTransactions);
528
527
  }
529
528
  setAssociatedBeats = (t) => {
530
529
  this.associatedBeats = t, this.associatedBeatsLoading = !1, this.associatedBeatsLoaded = !0;
@@ -616,8 +615,8 @@ class bt {
616
615
  this.setIsLoading(!0), this.transactionsLoading = !0, this.transactions = [];
617
616
  try {
618
617
  const a = await this.api.getTransactionsByDateRange(
619
- O(t),
620
- O(f())
618
+ E(t),
619
+ E(h())
621
620
  );
622
621
  this.setTransactions(a);
623
622
  } catch (a) {
@@ -704,9 +703,21 @@ class bt {
704
703
  ...this.transactions.slice(s + 1)
705
704
  ]);
706
705
  };
706
+ // This is used for loading the transactions list on demand, on clicking the different transactions of the insightful beats.
707
+ loadEmbeddedInstanceTransactions = async (t) => {
708
+ try {
709
+ const a = await this.api.getTransactionsByDateRange(
710
+ E(t),
711
+ E(h())
712
+ );
713
+ this.cachedStartDate = t, this.transactions = a;
714
+ } catch (a) {
715
+ console.error(`Error occurred while loading embedded instance transactions: ${a}`);
716
+ }
717
+ };
707
718
  }
708
719
  export {
709
720
  et as D,
710
- yt as S,
711
- bt as T
721
+ mt as S,
722
+ yt as T
712
723
  };
@@ -55,8 +55,8 @@ import e3 from "@mui/material/AlertTitle";
55
55
  import t3 from "@mui/material/Link";
56
56
  import n3 from "@mui/material/Paper";
57
57
  import { subDays as o3, startOfToday as i3, endOfToday as c3 } from "date-fns";
58
- import { T as a3 } from "../StatusIndicator-DAWRKwmE.mjs";
59
- import { T as s3 } from "../TransactionDetails-DA6tdnu0.mjs";
58
+ import { T as a3 } from "../EmbeddedCard-B4U5fIbl.mjs";
59
+ import { T as s3 } from "../TransactionDetails-B9rTYhMA.mjs";
60
60
  import { T as r1 } from "../TabContentContainer-j01JYR_7.mjs";
61
61
  import { f as d1 } from "../NumberFormatting-QCaNwbjv.mjs";
62
62
  import { C as l3 } from "../ConnectionsDrawer-IA7vnv1J.mjs";
@@ -35,9 +35,9 @@ import { E as ye } from "../EmptyState-DHAkGsjk.mjs";
35
35
  import { A as G } from "../Analytics-0Xm_BjHU.mjs";
36
36
  import Ee from "@mui/material/Tab";
37
37
  import et from "@mui/material/Tabs";
38
- import { e as tt } from "../exportTransactionsToCSV-MCYH_zzN.mjs";
39
- import { T as Ae } from "../StatusIndicator-DAWRKwmE.mjs";
40
- import { T as ot, c as nt } from "../TransactionDetails-DA6tdnu0.mjs";
38
+ import { e as tt } from "../exportTransactionsToCSV-DgdB3TBt.mjs";
39
+ import { T as Ae } from "../EmbeddedCard-B4U5fIbl.mjs";
40
+ import { T as ot, c as nt } from "../TransactionDetails-B9rTYhMA.mjs";
41
41
  import ve from "@mui/material/Card";
42
42
  import Te from "@mui/material/CardContent";
43
43
  import { S as Be } from "../StatusBar-BK_uYHAB.mjs";
@@ -46,7 +46,7 @@ import { u as at, b as rt } from "../CategorySelectorDrawer-Dc9Widy9.mjs";
46
46
  import je from "@mui/material/CardHeader";
47
47
  import { subDays as st } from "date-fns/subDays";
48
48
  import it from "@mui/material/IconButton";
49
- import { M as ct } from "../ManageIncome-C_XOG9CZ.mjs";
49
+ import { M as ct } from "../ManageIncome-DZ_6f0js.mjs";
50
50
  import { u as ze } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
51
51
  import { W as lt } from "../WidgetContainer-D-pbSa7L.mjs";
52
52
  import { u as dt, g as ut, C as mt } from "../BudgetUtil-CLhRnCoX.mjs";
@@ -1265,8 +1265,7 @@ const It = ({
1265
1265
  custom: ({ category_guid: P, top_level_category_guid: F }) => {
1266
1266
  const { category_guid: De } = r;
1267
1267
  return P === De || F === De;
1268
- },
1269
- showSplits: !0
1268
+ }
1270
1269
  }), R(!0));
1271
1270
  }, [r]), !_) return /* @__PURE__ */ e(me, {});
1272
1271
  if (!r) return null;
@@ -18,7 +18,7 @@ import { b as $ } from "../Localization-CPkpIwIx.mjs";
18
18
  import { M as Je } from "../MiniWidgetContainer-Bhkv-hpz.mjs";
19
19
  import { E as Ze } from "../EmptyState-DHAkGsjk.mjs";
20
20
  import { u as Fe } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
21
- import { R as et } from "../RecurringSettings-Bt-zMwCB.mjs";
21
+ import { R as et } from "../RecurringSettings-CJJndcMu.mjs";
22
22
  import tt from "@mui/material/Tabs";
23
23
  import Ce from "@mui/material/Tab";
24
24
  import { getUnixTime as z } from "date-fns/getUnixTime";
@@ -36,7 +36,7 @@ import { alpha as it, keyframes as at } from "@mui/material/styles";
36
36
  import { DataGridPro as rt } from "@mui/x-data-grid-pro";
37
37
  import { T as we } from "../TabContentContainer-j01JYR_7.mjs";
38
38
  import G from "@mui/material/Button";
39
- import { M as st, S as ct, i as lt, d as Se, c as dt } from "../ManageIncome-C_XOG9CZ.mjs";
39
+ import { M as st, S as ct, i as lt, d as Se, c as dt } from "../ManageIncome-DZ_6f0js.mjs";
40
40
  import { D as Ge } from "../Drawer-Bbe4AMB1.mjs";
41
41
  import { subDays as Me } from "date-fns/subDays";
42
42
  import { endOfToday as mt } from "date-fns/endOfToday";
@@ -46,7 +46,7 @@ import { A as K } from "../Account-BiB1F8lL.mjs";
46
46
  import { formatISO as pt } from "date-fns/formatISO";
47
47
  import { fromUnixTime as De } from "date-fns/fromUnixTime";
48
48
  import { startOfMonth as ht } from "date-fns/startOfMonth";
49
- import { S as ft, a as gt } from "../StatusIndicator-DAWRKwmE.mjs";
49
+ import { S as ft, a as gt } from "../EmbeddedCard-B4U5fIbl.mjs";
50
50
  import { c as ve } from "../RecurringTransactions-BbZ6MQsX.mjs";
51
51
  import { h as bt } from "../DateUtil-wcYTmDRD.mjs";
52
52
  import { F as xt, R as Ae } from "../RepeatingTransaction-DF4vJn_v.mjs";
@@ -1,12 +1,12 @@
1
1
  import { G as C } from "../useCombineEvents-Bqojlv8q.mjs";
2
- import { A as Ct, b as Dt, u as At, a as Tt } from "../useCombineEvents-Bqojlv8q.mjs";
2
+ import { A as Ct, b as Dt, u as At, a as Et } from "../useCombineEvents-Bqojlv8q.mjs";
3
3
  import { F as g, A as a } from "../Fetch-B6tMJC1r.mjs";
4
4
  import { B as xt } from "../BeatApi-EFHXULDx.mjs";
5
5
  import { C as F } from "../CategoryStore-FTxUbn0f.mjs";
6
6
  import { a as Bt } from "../CategoryStore-FTxUbn0f.mjs";
7
7
  import { N as G } from "../NotificationStore-D_e8zo5M.mjs";
8
8
  import { a as Mt } from "../NotificationStore-D_e8zo5M.mjs";
9
- import { T as H } from "../Transaction-Cn5_iFm0.mjs";
9
+ import { a as H } from "../Transaction-C3Pg9TKf.mjs";
10
10
  import { H as W } from "../Help-B8mD4aLJ.mjs";
11
11
  import { E as Lt } from "../Help-B8mD4aLJ.mjs";
12
12
  import { M as Pt } from "../MicroWidgetContainer-B_EnfvCq.mjs";
@@ -19,8 +19,8 @@ import { C as Jt } from "../CurrencyInput-DuMktPu3.mjs";
19
19
  import { L as ts } from "../Loader-D3rjKx72.mjs";
20
20
  import { R as rs } from "../ResponsiveButton-DZFp78fJ.mjs";
21
21
  import { S as as } from "../SearchBox-CwDgvWVJ.mjs";
22
- import { T as Q } from "../TransactionStore-CbZfz7-2.mjs";
23
- import { S as ns } from "../TransactionStore-CbZfz7-2.mjs";
22
+ import { T as Q } from "../TransactionStore-BUsgGRL1.mjs";
23
+ import { S as ns } from "../TransactionStore-BUsgGRL1.mjs";
24
24
  import { T as us } from "../TabContentContainer-j01JYR_7.mjs";
25
25
  import { I as hs } from "../IconBacking-B9oC6uL2.mjs";
26
26
  import { D as gs, S as ps } from "../RecurringTransactions-BbZ6MQsX.mjs";
@@ -32,8 +32,8 @@ import { C as bs } from "../CurrencyText-CA-E5N_y.mjs";
32
32
  import { E as Cs } from "../EmptyState-DHAkGsjk.mjs";
33
33
  import { L as As } from "../ListItemAction-4KB7P75M.mjs";
34
34
  import { T as K } from "../TrendsStore-CYdTo7cN.mjs";
35
- import { L as Es } from "../TrendsStore-CYdTo7cN.mjs";
36
- import { L as Is } from "../OnClickEvents-CseHDZ94.mjs";
35
+ import { L as Ts } from "../TrendsStore-CYdTo7cN.mjs";
36
+ import { L as Is } from "../exportTransactionsToCSV-DgdB3TBt.mjs";
37
37
  import { T as vs, a as Ms } from "../ToggleListItem-BLu_fWA2.mjs";
38
38
  import { G as Ls } from "../GlobalAccountFilter-B73Pw1hJ.mjs";
39
39
  import { S as Ps } from "../StatusBar-BK_uYHAB.mjs";
@@ -53,7 +53,7 @@ import { C as nr, f as cr, b as ur, a as dr, g as hr, i as lr } from "../NumberF
53
53
  import { R as _ } from "../repeatingTransactions-DHIG94pi.mjs";
54
54
  import { R as J } from "../RecurringTransactionsStore-BE_eUfTC.mjs";
55
55
  import { S as pr, T as _r } from "../RecurringTransactionsStore-BE_eUfTC.mjs";
56
- import { G as mr, C as yr, D as Sr, W as br, d as wr, a as Cr, m as Dr, t as Ar, l as Tr, v as Er, w as xr, g as Ir, y as Br, u as vr, f as Mr, b as Ur, k as Lr, z as kr, s as Pr, x as Rr, c as Nr, q as Or, n as $r, A as Fr, i as Gr, r as Hr, h as Wr, B as qr, o as Yr, p as Qr } from "../hooks-BxkfR-Ff.mjs";
56
+ import { G as mr, C as yr, D as Sr, W as br, d as wr, a as Cr, m as Dr, t as Ar, l as Er, v as Tr, w as xr, g as Ir, y as Br, u as vr, f as Mr, b as Ur, k as Lr, z as kr, s as Pr, x as Rr, c as Nr, q as Or, n as $r, A as Fr, i as Gr, r as Hr, h as Wr, B as qr, o as Yr, p as Qr } from "../hooks-BxkfR-Ff.mjs";
57
57
  import { u as Vr } from "../useAccountDisplayName-DKwT1mWv.mjs";
58
58
  import { u as jr } from "../useInsightsEnabled-DL_oNyI0.mjs";
59
59
  import { u as Xr } from "../useScreenSize-B6JyS_Lj.mjs";
@@ -65,7 +65,7 @@ import oe from "posthog-js";
65
65
  import { B as ae } from "../BeatStore-C6CAT-ce.mjs";
66
66
  import { endOfMonth as N } from "date-fns/endOfMonth";
67
67
  import { startOfMonth as O } from "date-fns/startOfMonth";
68
- import { startOfToday as T } from "date-fns/startOfToday";
68
+ import { startOfToday as E } from "date-fns/startOfToday";
69
69
  import { D as ie } from "../DebtsStore-BZqNLaqd.mjs";
70
70
  import { F as ne } from "../FinstrongStore-BQxXxxYD.mjs";
71
71
  import { A as ce, m as ue, a as de, b as he } from "../InvestmentUtil-BItV7uEs.mjs";
@@ -76,7 +76,7 @@ import { addMonths as _e } from "date-fns/addMonths";
76
76
  import { getMonth as y } from "date-fns/getMonth";
77
77
  import { i as so } from "../DateUtil-wcYTmDRD.mjs";
78
78
  import { L as oo, b as ao, a as io, g as no } from "../Localization-CPkpIwIx.mjs";
79
- import { alpha as fe, lighten as E, darken as x } from "@mui/material";
79
+ import { alpha as fe, lighten as T, darken as x } from "@mui/material";
80
80
  const lt = [
81
81
  { id: _.Unknown, copy: "frequency_unknown" },
82
82
  { id: _.EveryWeek, copy: "frequency_every_week" },
@@ -111,8 +111,8 @@ const lt = [
111
111
  { key: "success", light: "success_color", dark: "success_color_dark" }
112
112
  ], pt = (o, e, t) => {
113
113
  const s = o.palette.mode === "dark", r = (t?.master?.style?.font_name || e?.system_font) ?? o.typography.fontFamily, i = (d, b) => d ? {
114
- lighter: E(d, 0.5),
115
- light: E(d, 0.25),
114
+ lighter: T(d, 0.5),
115
+ light: T(d, 0.25),
116
116
  main: d,
117
117
  dark: x(d, 0.25),
118
118
  darker: x(d, 0.5)
@@ -407,7 +407,7 @@ class De {
407
407
  api = new M("/", "");
408
408
  globalStore;
409
409
  alert = "";
410
- dateRange = { start: O(T()), end: N(T()) };
410
+ dateRange = { start: O(E()), end: N(E()) };
411
411
  budgets = [];
412
412
  selectedBudget;
413
413
  selectedSubBudget;
@@ -581,7 +581,7 @@ class U {
581
581
  }
582
582
  createSupportTicket = async (e) => this.fetchInstance.post(a.SUPPORT_TICKETS, e).then((t) => t);
583
583
  }
584
- const Ae = (o, e) => o.guid === "general" || o.guid === "insights" ? !0 : o.flags ? o.flags.every((t) => e[t]) : !1, Te = (o, e) => {
584
+ const Ae = (o, e) => o.guid === "general" || o.guid === "insights" ? !0 : o.flags ? o.flags.every((t) => e[t]) : !1, Ee = (o, e) => {
585
585
  const t = [];
586
586
  for (const s of W) {
587
587
  const r = e[s.guid];
@@ -598,7 +598,7 @@ const Ae = (o, e) => o.guid === "general" || o.guid === "insights" ? !0 : o.flag
598
598
  }
599
599
  return t;
600
600
  };
601
- class Ee {
601
+ class Te {
602
602
  alert = { message: "", severity: void 0 };
603
603
  api = new U("/", "");
604
604
  appConfig;
@@ -624,7 +624,7 @@ class Ee {
624
624
  const { client_communication_profile: e, client_profile: t } = this.globalStore.appDataStore.appData, {
625
625
  help: { category_list: s }
626
626
  } = this.globalStore.copyStore.copy;
627
- return Te(
627
+ return Ee(
628
628
  {
629
629
  ...e,
630
630
  ...t,
@@ -1011,7 +1011,7 @@ class St {
1011
1011
  // UI Stores
1012
1012
  globalUiStore;
1013
1013
  constructor(e = k, t = "/", s, r) {
1014
- this.appConfig = e, this.endpoint = t, this.sessionToken = e.options.session_token ?? "", this.onError = s, this.onStoreUpdate = r, this.accountStore = new re(this), this.appDataStore = new Ie(this), this.analyticsStore = new Ce(this), this.beatStore = new ae(this), this.budgetsStore = new De(this), this.cashflowStore = new z(this), this.categoryStore = new F(this), this.connectStore = new Be(this), this.copyStore = new we(this), this.debtsStore = new ie(this), this.finstrongStore = new ne(this), this.goalStore = new V(this), this.helpStore = new Ee(this), this.holdingStore = new xe(this), this.merchantStore = new le(this), this.netWorthStore = new ge(this), this.notificationStore = new G(this), this.recurringTransactionsStore = new J(this), this.settingsStore = new pe(this), this.transactionStore = new Q(this), this.trendsStore = new K(this), this.userStore = new Me(this), this.globalUiStore = new ve(this), l(this), se(() => {
1014
+ this.appConfig = e, this.endpoint = t, this.sessionToken = e.options.session_token ?? "", this.onError = s, this.onStoreUpdate = r, this.accountStore = new re(this), this.appDataStore = new Ie(this), this.analyticsStore = new Ce(this), this.beatStore = new ae(this), this.budgetsStore = new De(this), this.cashflowStore = new z(this), this.categoryStore = new F(this), this.connectStore = new Be(this), this.copyStore = new we(this), this.debtsStore = new ie(this), this.finstrongStore = new ne(this), this.goalStore = new V(this), this.helpStore = new Te(this), this.holdingStore = new xe(this), this.merchantStore = new le(this), this.netWorthStore = new ge(this), this.notificationStore = new G(this), this.recurringTransactionsStore = new J(this), this.settingsStore = new pe(this), this.transactionStore = new Q(this), this.trendsStore = new K(this), this.userStore = new Me(this), this.globalUiStore = new ve(this), l(this), se(() => {
1015
1015
  const { transactions: i } = this.transactionStore;
1016
1016
  this.emitUpdate({
1017
1017
  transactions: i
@@ -1090,7 +1090,7 @@ export {
1090
1090
  gt as LOADING_STATUS,
1091
1091
  oo as LOCALES,
1092
1092
  As as ListItemAction,
1093
- Es as ListItemRow,
1093
+ Ts as ListItemRow,
1094
1094
  Is as ListItemWrapper,
1095
1095
  ts as Loader,
1096
1096
  _t as LocalizedCopyApi,
@@ -1144,10 +1144,10 @@ export {
1144
1144
  Cr as useAppConfig,
1145
1145
  Dr as useBudgetsStore,
1146
1146
  Ar as useCashflowStore,
1147
- Tr as useCategoryStore,
1147
+ Er as useCategoryStore,
1148
1148
  At as useCombineEvents,
1149
- Tt as useCombinePageviews,
1150
- Er as useDebtStore,
1149
+ Et as useCombinePageviews,
1150
+ Tr as useDebtStore,
1151
1151
  xr as useError,
1152
1152
  Ir as useEvent,
1153
1153
  Br as useFinstrongStore,
@@ -2,7 +2,7 @@ import { R as c } from "../repeatingTransactions-DHIG94pi.mjs";
2
2
  import { a as u, e as T, d as i, A as N, f as R, C, g as m, E as y, M as A, N as I, c as M, P as f, h as g, S as b } from "../Account-BiB1F8lL.mjs";
3
3
  import { G as k, M as x, T as v } from "../Goal-0loDagc5.mjs";
4
4
  import { A as E, B as S, I as l, N as w } from "../Notification-DTNYSd8P.mjs";
5
- import { a as F, T as G } from "../Transaction-Cn5_iFm0.mjs";
5
+ import { T as F, a as G } from "../Transaction-C3Pg9TKf.mjs";
6
6
  import { F as W, a as q, b as P, R as U } from "../RepeatingTransaction-DF4vJn_v.mjs";
7
7
  var o = /* @__PURE__ */ ((a) => (a[a.UNKNOWN = 0] = "UNKNOWN", a[a.CORRECT = 1] = "CORRECT", a[a.INCORRECT = 2] = "INCORRECT", a))(o || {}), s = /* @__PURE__ */ ((a) => (a.Missed = "Missed", a.Paid = "Paid", a.Upcoming = "Upcoming expense", a.Income = "Income", a))(s || {}), t = /* @__PURE__ */ ((a) => (a[a.Unknown = 0] = "Unknown", a[a.Subscription = 1] = "Subscription", a[a.Bill = 2] = "Bill", a))(t || {}), n = /* @__PURE__ */ ((a) => (a.Desktop = "Desktop", a.Mobile = "Mobile", a))(n || {});
8
8
  export {
@@ -1,3 +1,13 @@
1
+ interface GeneralInsightsFeedCopy {
2
+ decreased_text: string;
3
+ embedded_description: string;
4
+ increased_text: string;
5
+ monthly_amount: string;
6
+ tip_section_message: string;
7
+ tip_section_title: string;
8
+ transaction_history_title: string;
9
+ trend: string;
10
+ }
1
11
  interface SettingsMenuCopy {
2
12
  close: string;
3
13
  hidden_insight: string;
@@ -21,6 +31,7 @@ interface SettingsMenuCopy {
21
31
  unselect_insight: string;
22
32
  }
23
33
  export interface InsightsFeedCopy {
34
+ general: GeneralInsightsFeedCopy;
24
35
  settings_menu: SettingsMenuCopy;
25
36
  }
26
37
  export {};
@@ -1,42 +1,46 @@
1
- import { jsx as T } from "react/jsx-runtime";
2
- import a from "@mui/material/ListItem";
3
- import o from "@mui/material/ListItemButton";
4
- import { g as i } from "./hooks-BxkfR-Ff.mjs";
5
- const e = ({
6
- children: C,
7
- clickEventName: n,
8
- onClick: _,
9
- sx: N = {}
1
+ import { jsx as _ } from "react/jsx-runtime";
2
+ import s from "@mui/material/ListItem";
3
+ import r from "@mui/material/ListItemButton";
4
+ import { g as A } from "./hooks-BxkfR-Ff.mjs";
5
+ import { fromUnixTime as c } from "date-fns/fromUnixTime";
6
+ import { f as O, D as I } from "./DateFormats-BMpMrZpW.mjs";
7
+ import { c as d } from "./Category-CevNQ03n.mjs";
8
+ import { a as l } from "./Transaction-C3Pg9TKf.mjs";
9
+ const H = ({
10
+ children: T,
11
+ clickEventName: a,
12
+ onClick: n,
13
+ sx: o = {}
10
14
  }) => {
11
- const { onEvent: A } = i();
12
- return _ ? /* @__PURE__ */ T(
13
- a,
15
+ const { onEvent: t } = A();
16
+ return n ? /* @__PURE__ */ _(
17
+ s,
14
18
  {
15
19
  className: "list-wrapper",
16
20
  component: "div",
17
- sx: { bgcolor: "background.paper", ...N },
18
- children: /* @__PURE__ */ T(
19
- o,
21
+ sx: { bgcolor: "background.paper", ...o },
22
+ children: /* @__PURE__ */ _(
23
+ r,
20
24
  {
21
25
  onClick: () => {
22
- n && A(n), _();
26
+ a && t(a), n();
23
27
  },
24
- children: C
28
+ children: T
25
29
  }
26
30
  )
27
31
  }
28
- ) : /* @__PURE__ */ T(
29
- a,
32
+ ) : /* @__PURE__ */ _(
33
+ s,
30
34
  {
31
35
  className: "list-wrapper",
32
36
  component: "div",
33
37
  disableGutters: !1,
34
38
  disablePadding: !1,
35
- sx: { bgcolor: "background.paper", ...N },
36
- children: C
39
+ sx: { bgcolor: "background.paper", ...o },
40
+ children: T
37
41
  }
38
42
  );
39
- }, s = {
43
+ }, P = {
40
44
  ON_TRANSACTION_CATEGORY_CLICK: "onTransactionCategoryClick",
41
45
  ON_TRANSACTION_CATEGORY_CHANGED: "onTransactionCategoryChanged",
42
46
  ON_TRANSACTION_MANUAL_ADD_CLICK: "onTransactionManualAddClick",
@@ -81,7 +85,49 @@ const e = ({
81
85
  ON_TRANSACTION_UNSPLIT: "onTransactionUnsplit",
82
86
  ON_TRANSACTION_UNSPLIT_CANCEL: "onTransactionUnsplitCancel"
83
87
  };
88
+ function E(T) {
89
+ return new Set(
90
+ T.filter((a) => a.parent_guid !== void 0).map((a) => a.parent_guid)
91
+ );
92
+ }
93
+ function S(T) {
94
+ return T.reduce((a, n) => (n.parent_guid && (a[n.parent_guid] || (a[n.parent_guid] = []), a[n.parent_guid].push(n)), a), {});
95
+ }
96
+ function U(T, a) {
97
+ const n = E(a), o = S(a), t = /* @__PURE__ */ new Set(), C = [];
98
+ for (const e of T)
99
+ n.has(e.guid) ? (o[e.guid] ?? []).slice().sort((i, N) => Math.abs(N.amount) - Math.abs(i.amount)).forEach((i) => {
100
+ t.has(i.guid) || (C.push(i), t.add(i.guid));
101
+ }) : t.has(e.guid) || (C.push(e), t.add(e.guid));
102
+ return C;
103
+ }
104
+ const y = (T, a) => {
105
+ const n = p(L(T, a)), o = new Blob([n], { type: "text/csv;charset=utf-8;" }), t = document.createElement("a");
106
+ t.href = URL.createObjectURL(o), t.setAttribute("download", "transactions.csv"), document.body.appendChild(t), t.click(), document.body.removeChild(t), URL.revokeObjectURL(t.href);
107
+ }, L = (T, a) => T.map((n) => ({
108
+ Date: O(c(n.date), I.YEAR_MONTH_DAY),
109
+ Description: g(n),
110
+ "Original Description": n.feed_description,
111
+ Amount: `${n.amount}`,
112
+ Type: n.transaction_type === l.CREDIT ? "Credit" : "Debit",
113
+ "Parent Category": d[n.top_level_category_guid || ""],
114
+ Category: n.category,
115
+ Account: n.account,
116
+ Tags: R(n, a),
117
+ Memo: n.memo,
118
+ Pending: n.isPending ? "TRUE" : "FALSE"
119
+ })), D = (T) => T ? /[,"\n\r]/.test(T) ? `"${T.replace(/"/g, '""')}"` : T : "", p = (T) => {
120
+ const a = Object.keys(T[0]).join(",").concat(`\r
121
+ `), n = T.map((o) => Object.values(o).map(D).join(",")).join(`\r
122
+ `);
123
+ return a + n;
124
+ }, g = (T) => {
125
+ let a = T.parent_guid ? "Split: " : "";
126
+ return a += T.is_hidden ? "(Excluded) " : "", a += T.description, a;
127
+ }, R = (T, a) => T.tags.map((n) => a.filter((t) => t.guid === n)[0]?.name ?? "").join(" ");
84
128
  export {
85
- e as L,
86
- s as O
129
+ H as L,
130
+ P as O,
131
+ y as e,
132
+ U as f
87
133
  };
@@ -41,7 +41,7 @@ import { S as it, c as zn } from "../RecurringTransactions-BbZ6MQsX.mjs";
41
41
  import { A as He } from "../Account-BiB1F8lL.mjs";
42
42
  import { S as Gn } from "../StatusBar-BK_uYHAB.mjs";
43
43
  import { h as Mt } from "../DateUtil-wcYTmDRD.mjs";
44
- import { T as Hn, s as Nn, h as jn, S as Kn, a as Vn } from "../StatusIndicator-DAWRKwmE.mjs";
44
+ import { T as Hn, s as Nn, h as jn, S as Kn, a as Vn } from "../EmbeddedCard-B4U5fIbl.mjs";
45
45
  import { f as Yn, D as Xn } from "../DateFormats-BMpMrZpW.mjs";
46
46
  import { T as de } from "../TabContentContainer-j01JYR_7.mjs";
47
47
  import qn from "@mui/material/useMediaQuery";
@@ -56,11 +56,11 @@ import { formatISO as oo } from "date-fns/formatISO";
56
56
  import { fromUnixTime as ro } from "date-fns/fromUnixTime";
57
57
  import { startOfToday as st } from "date-fns/startOfToday";
58
58
  import { subDays as ao } from "date-fns/subDays";
59
- import { c as io, d as ct, S as so, i as co } from "../ManageIncome-C_XOG9CZ.mjs";
59
+ import { c as io, d as ct, S as so, i as co } from "../ManageIncome-DZ_6f0js.mjs";
60
60
  import { LocalizationProvider as lo, DatePicker as po, StaticDatePicker as _o } from "@mui/x-date-pickers";
61
61
  import { AdapterDateFns as Tt } from "@mui/x-date-pickers/AdapterDateFnsV3";
62
62
  import { F as At, R as Ot } from "../RepeatingTransaction-DF4vJn_v.mjs";
63
- import { R as uo } from "../RecurringSettings-Bt-zMwCB.mjs";
63
+ import { R as uo } from "../RecurringSettings-CJJndcMu.mjs";
64
64
  import { LocalizationProvider as ho } from "@mui/x-date-pickers/LocalizationProvider";
65
65
  import { format as mo } from "date-fns/format";
66
66
  import go from "@mui/lab/Timeline";
@@ -3,8 +3,7 @@ interface EmbeddedCardProps {
3
3
  description: string;
4
4
  callToAction: string;
5
5
  instanceSlot?: React.ReactNode;
6
- onMenuClick?: () => void;
7
6
  onCtaClick?: () => void;
8
7
  }
9
- export declare const EmbeddedCard: ({ title, description, callToAction, instanceSlot, onMenuClick, onCtaClick, }: EmbeddedCardProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const EmbeddedCard: ({ title, description, callToAction, instanceSlot, onCtaClick, }: EmbeddedCardProps) => import("react/jsx-runtime").JSX.Element;
10
9
  export {};