@mx-cartographer/experiences 6.26.18-alpha.mega2 → 6.26.18-alpha.mega4

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 (98) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/dist/Account-DM32_5k9.mjs +30 -0
  3. package/dist/AccountDetailsContent-B_qRSB8l.mjs +677 -0
  4. package/dist/AccountDetailsHeader-CAm6ADMq.mjs +119 -0
  5. package/dist/AccountFields-Bb4pds0q.mjs +135 -0
  6. package/dist/AccountListItem-G7iAesaO.mjs +90 -0
  7. package/dist/AccountStore-RSanus_m.mjs +230 -0
  8. package/dist/Accounts-BfAQRG8R.mjs +9 -0
  9. package/dist/BeatApi-DLu87ijw.mjs +21 -0
  10. package/dist/BeatStore-By4aGoRM.mjs +81 -0
  11. package/dist/BudgetUtil-DcqclhiQ.mjs +101 -0
  12. package/dist/CashflowStore-D9Dpuz7X.mjs +91 -0
  13. package/dist/Category-5S6uwuXz.mjs +301 -0
  14. package/dist/CategorySelectorDrawer-DgrePTRg.mjs +397 -0
  15. package/dist/CategoryStore-B5EW6I1d.mjs +183 -0
  16. package/dist/CategoryUtil-DRyruNgi.mjs +78 -0
  17. package/dist/ConnectDrawer-DPnfeIfn.mjs +508 -0
  18. package/dist/ConnectionsDrawer-BCzpuNsK.mjs +52 -0
  19. package/dist/CurrencyInput-DzsPiUsU.mjs +83 -0
  20. package/dist/CurrencyText-YUhH2caW.mjs +20 -0
  21. package/dist/DateUtil-BcuH7ErC.mjs +48 -0
  22. package/dist/DebtsStore-C6VcBnpG.mjs +60 -0
  23. package/dist/Dialog-CWW597AF.mjs +123 -0
  24. package/dist/Donut-1UMNcG67.mjs +57 -0
  25. package/dist/Drawer-kEE73B87.mjs +113 -0
  26. package/dist/EmptyState-Dcb-o2tl.mjs +55 -0
  27. package/dist/Fetch-CkFKy79O.mjs +116 -0
  28. package/dist/FinstrongStore-mkALvztw.mjs +101 -0
  29. package/dist/GoalStore-DyCr4wNc.mjs +263 -0
  30. package/dist/HeaderCell-DjuifqHJ.mjs +6 -0
  31. package/dist/Help-DhcC-C05.mjs +320 -0
  32. package/dist/Help-toqAK5eD.mjs +3173 -0
  33. package/dist/IconBacking-B9oC6uL2.mjs +39 -0
  34. package/dist/InvestmentUtil-jOyOgzIB.mjs +134 -0
  35. package/dist/LineChart-CQWu5KoO.mjs +403 -0
  36. package/dist/ListItemAction-Df3OPMOW.mjs +69 -0
  37. package/dist/Loader-Dp1P2gNw.mjs +14 -0
  38. package/dist/Localization-2MODESHW.mjs +30 -0
  39. package/dist/ManageIncome-BVt_XQbo.mjs +535 -0
  40. package/dist/MerchantStore-DVH-QOf0.mjs +37 -0
  41. package/dist/MicroWidgetContainer-DaLW43tE.mjs +45 -0
  42. package/dist/MiniWidgetContainer-BcNPxZt2.mjs +39 -0
  43. package/dist/NetWorthStore-DE8CQBMM.mjs +150 -0
  44. package/dist/Notification-AMGWM1Al.mjs +78 -0
  45. package/dist/NotificationSettings-CPZN0l8X.mjs +667 -0
  46. package/dist/NotificationStore-DHtSGySy.mjs +67 -0
  47. package/dist/NumberFormatting-CtWHhyBX.mjs +40 -0
  48. package/dist/OriginalBalanceAction-s9sUxofR.mjs +115 -0
  49. package/dist/RecurringSettings-DIEsympT.mjs +57 -0
  50. package/dist/RecurringTransactionsStore-BKLD3OWo.mjs +263 -0
  51. package/dist/RepeatingTransaction-BPWfaB3f.mjs +282 -0
  52. package/dist/SearchBox-B2_zLv8-.mjs +42 -0
  53. package/dist/SettingsStore-CE7jDVFL.mjs +265 -0
  54. package/dist/SingleSegmentDonut-BgbLgwHi.mjs +69 -0
  55. package/dist/SpendingData-ByFCw95X.mjs +53 -0
  56. package/dist/StatusBar-BK_uYHAB.mjs +30 -0
  57. package/dist/TabContentContainer-j01JYR_7.mjs +21 -0
  58. package/dist/Transaction-C-5-Iuab.mjs +312 -0
  59. package/dist/TransactionApi-DbbcjI2L.mjs +86 -0
  60. package/dist/TransactionDetails-B5qfs9Zh.mjs +1283 -0
  61. package/dist/TransactionStore-BWi6_2Ny.mjs +669 -0
  62. package/dist/TrendsStore-Borh98aN.mjs +448 -0
  63. package/dist/ViewMoreMicroCard-CAPFNz-J.mjs +1959 -0
  64. package/dist/WidgetContainer-CmGNZW0M.mjs +548 -0
  65. package/dist/accounts/index.es.js +752 -0
  66. package/dist/analytics/index.es.js +171 -0
  67. package/dist/budgets/index.es.js +1070 -0
  68. package/dist/cashflow/index.es.js +1098 -0
  69. package/dist/categories/index.es.js +9 -0
  70. package/dist/common/context/hooks.d.ts +13 -13
  71. package/dist/common/index.es.js +1451 -0
  72. package/dist/dashboard/index.es.js +181 -0
  73. package/dist/debts/index.es.js +1460 -0
  74. package/dist/exportTransactionsToCSV-j4g8bdVZ.mjs +47 -0
  75. package/dist/finstrong/index.es.js +1455 -0
  76. package/dist/goals/index.es.js +1209 -0
  77. package/dist/help/components/content/section/index.d.ts +15 -15
  78. package/dist/help/index.es.js +14 -0
  79. package/dist/hooks-ClhFlg78.mjs +71 -0
  80. package/dist/index.d.ts +0 -22
  81. package/dist/insights/index.d.ts +1 -0
  82. package/dist/insights/index.es.js +4 -0
  83. package/dist/investments/index.es.js +1638 -0
  84. package/dist/merchants/index.es.js +79 -0
  85. package/dist/microinsights/index.es.js +16 -0
  86. package/dist/networth/index.es.js +542 -0
  87. package/dist/notifications/index.es.js +192 -0
  88. package/dist/recurringtransactions/index.es.js +879 -0
  89. package/dist/settings/index.es.js +879 -0
  90. package/dist/spending/index.es.js +570 -0
  91. package/dist/transactions/index.es.js +587 -0
  92. package/dist/trends/index.es.js +1103 -0
  93. package/dist/useCombineEvents-DaDBSR_1.mjs +92 -0
  94. package/dist/useDimensions-27p2evRx.mjs +36 -0
  95. package/dist/useScreenSize-B6JyS_Lj.mjs +36 -0
  96. package/package.json +155 -3
  97. package/dist/index.es.js +0 -30339
  98. package/dist/index.es.js.map +0 -1
@@ -0,0 +1,448 @@
1
+ import b, { useState as U, useEffect as q, useRef as xe } from "react";
2
+ import { l as Se, u as be, k as J } from "./hooks-ClhFlg78.mjs";
3
+ import { jsxs as y, jsx as a } from "react/jsx-runtime";
4
+ import D from "@mui/material/Box";
5
+ import N from "@mui/material/Stack";
6
+ import { useTheme as K } from "@mui/material/styles";
7
+ import { LineChart as Me } from "@mui/x-charts";
8
+ import { u as Q } from "./useScreenSize-B6JyS_Lj.mjs";
9
+ import { u as _e } from "./useDimensions-27p2evRx.mjs";
10
+ import { observer as Le } from "mobx-react-lite";
11
+ import Te from "@mui/material/Card";
12
+ import De from "@mui/material/CardContent";
13
+ import W from "@mui/material/Divider";
14
+ import X from "@mui/material/Grid";
15
+ import { CategoryIcon as Re, Text as R } from "@mxenabled/mxui";
16
+ import { b as Ae } from "./Localization-2MODESHW.mjs";
17
+ import { C as O } from "./CurrencyText-YUhH2caW.mjs";
18
+ import { useTheme as He, Card as ke, CardContent as Ie, Box as Ge } from "@mui/material";
19
+ import { f as M, D as _ } from "./Dialog-CWW597AF.mjs";
20
+ import we from "@mui/material/Button";
21
+ import { a as E } from "./Category-5S6uwuXz.mjs";
22
+ import { f as z } from "./NumberFormatting-CtWHhyBX.mjs";
23
+ import { makeAutoObservable as Be } from "mobx";
24
+ import { endOfMonth as V } from "date-fns/endOfMonth";
25
+ import { subMonths as Ee } from "date-fns/subMonths";
26
+ import { addSeconds as Oe } from "date-fns/addSeconds";
27
+ import { fromUnixTime as Ne } from "date-fns/fromUnixTime";
28
+ import { startOfMonth as $e } from "date-fns/startOfMonth";
29
+ import { addMonths as je } from "date-fns/addMonths";
30
+ import { isBefore as Ye } from "date-fns/isBefore";
31
+ const bt = () => {
32
+ const { isInitialized: d, appDataStore: t } = Se(), [o, i] = U(!1);
33
+ return q(() => {
34
+ d && t.clientInsightProfile?.is_enabled && i(!0);
35
+ }, [d, t.clientInsightProfile]), o;
36
+ }, Z = ({ categoryGuid: d, topLevelCategoryGuid: t }) => {
37
+ const { categories: o } = be(), { getCategoryName: i } = J(), n = i(d);
38
+ return /* @__PURE__ */ y(N, { alignItems: "center", direction: "column", gap: "8", justifyContent: "center", mb: 4, children: [
39
+ /* @__PURE__ */ a(
40
+ D,
41
+ {
42
+ "aria-label": Ae(o.category_icon_label_aria, n),
43
+ mb: 4,
44
+ role: "img",
45
+ children: /* @__PURE__ */ a(Re, { categoryGuid: t })
46
+ }
47
+ ),
48
+ /* @__PURE__ */ a(R, { variant: "Body", children: n })
49
+ ] });
50
+ }, Fe = ({
51
+ categoryGuids: { guid: d, topLevelGuid: t },
52
+ hoveredAreaData: o,
53
+ cursorPosition: i,
54
+ chartContainerRef: n
55
+ }) => {
56
+ const c = K(), l = xe(null), [f, g] = U({ x: i.x, y: i.y });
57
+ if (q(() => {
58
+ (() => {
59
+ const m = l.current, C = n.current;
60
+ if (!m || !C) return;
61
+ const u = m.getBoundingClientRect(), v = C.getBoundingClientRect();
62
+ let p = i.x, S = i.y;
63
+ p + u.width * 2 > v.right ? p = i.x - u.width : p - u.width < v.left && (p = i.x), S + u.height * 2 > v.bottom && (S = i.y - u.height), g({ x: p, y: S });
64
+ })();
65
+ }, [i, n]), !o) return null;
66
+ const L = o.reduce((h, m) => h + m.y, 0);
67
+ return /* @__PURE__ */ a(
68
+ Te,
69
+ {
70
+ ref: l,
71
+ sx: {
72
+ position: "absolute",
73
+ top: f.y,
74
+ left: f.x,
75
+ width: 250,
76
+ pointerEvents: "none"
77
+ },
78
+ children: /* @__PURE__ */ y(De, { children: [
79
+ /* @__PURE__ */ y(D, { alignItems: "center", display: "flex", flexDirection: "column", children: [
80
+ /* @__PURE__ */ a(Z, { categoryGuid: d, topLevelCategoryGuid: t }),
81
+ /* @__PURE__ */ a(R, { variant: "Small", children: `${o.length}-month total` }),
82
+ /* @__PURE__ */ a(O, { amount: L, bold: !0, formatString: "0,0", variant: "body2" })
83
+ ] }),
84
+ /* @__PURE__ */ a(W, { sx: { my: 16, width: "100%" } }),
85
+ /* @__PURE__ */ a(X, { container: !0, children: o.map((h, m) => /* @__PURE__ */ y(b.Fragment, { children: [
86
+ m > 0 && m % 3 === 0 && /* @__PURE__ */ a(W, { sx: { my: 16, width: "100%" } }),
87
+ /* @__PURE__ */ a(X, { item: !0, xs: 4, children: /* @__PURE__ */ y(D, { alignItems: "center", display: "flex", flexDirection: "column", children: [
88
+ /* @__PURE__ */ a(R, { color: c.palette.text.secondary, variant: "XSmall", children: h.x }),
89
+ /* @__PURE__ */ a(
90
+ O,
91
+ {
92
+ amount: h.y,
93
+ bold: !0,
94
+ formatString: "0,0",
95
+ variant: "Body"
96
+ }
97
+ )
98
+ ] }) })
99
+ ] }, m)) })
100
+ ] })
101
+ }
102
+ );
103
+ }, Pe = Le(Fe), We = ({
104
+ categoryGuids: { guid: d, topLevelGuid: t },
105
+ itemData: { dataIndex: o },
106
+ series: i,
107
+ xData: n
108
+ }) => {
109
+ const c = He(), l = i.data[o], f = n[o];
110
+ return l === void 0 || !f ? null : /* @__PURE__ */ a(ke, { sx: { pt: 4, px: 8 }, children: /* @__PURE__ */ a(Ie, { children: /* @__PURE__ */ y(Ge, { alignItems: "center", display: "flex", flexDirection: "column", children: [
111
+ /* @__PURE__ */ a(Z, { categoryGuid: d, topLevelCategoryGuid: t }),
112
+ /* @__PURE__ */ a(R, { color: c.palette.text.secondary, variant: "Small", children: M(f, _.MONTH_SHORT_YEAR) }),
113
+ /* @__PURE__ */ a(O, { amount: String(l), bold: !0, formatString: "0,0", variant: "Body" })
114
+ ] }) }) });
115
+ }, Xe = ({
116
+ sx: d,
117
+ categoryGuids: t,
118
+ hoveredLegend: o,
119
+ legendRef: i,
120
+ onHoverLegend: n,
121
+ onClickLegend: c
122
+ }) => {
123
+ const { isMobile: l } = Q(), { getCategoryName: f } = J();
124
+ return /* @__PURE__ */ a(
125
+ N,
126
+ {
127
+ direction: "row",
128
+ flexWrap: "wrap",
129
+ gap: l ? 2 : 6,
130
+ justifyContent: "start",
131
+ ref: i,
132
+ sx: d,
133
+ children: t.map(({ guid: g, top_level_guid: L }) => {
134
+ const h = o === g, m = E[g], C = E[L], u = m ?? C ?? E.default, v = u + "33";
135
+ return /* @__PURE__ */ y(
136
+ we,
137
+ {
138
+ onClick: () => c(g),
139
+ onMouseEnter: () => n(g),
140
+ onMouseLeave: () => n(null),
141
+ sx: {
142
+ color: "text.primary",
143
+ fontWeight: "normal",
144
+ display: "flex",
145
+ justifyContent: "center",
146
+ alignItems: "center",
147
+ paddingX: 8,
148
+ paddingY: 4,
149
+ borderRadius: 1,
150
+ opacity: h ? 1 : 0.7
151
+ },
152
+ children: [
153
+ /* @__PURE__ */ a(
154
+ D,
155
+ {
156
+ sx: {
157
+ width: 16,
158
+ height: 16,
159
+ marginRight: l ? 5 : 10,
160
+ borderRadius: "2px",
161
+ backgroundColor: o ? h ? u : v : u
162
+ }
163
+ }
164
+ ),
165
+ /* @__PURE__ */ a(R, { variant: "Body", children: f(g) })
166
+ ]
167
+ },
168
+ g
169
+ );
170
+ })
171
+ }
172
+ );
173
+ }, Mt = ({
174
+ onHoverArea: d,
175
+ onHoverPoint: t,
176
+ onHoverLegend: o,
177
+ onClickLegend: i,
178
+ stackedDatasets: n,
179
+ unstackedDatasets: c = [],
180
+ availableHeight: l = 0,
181
+ minimumHeight: f = 350
182
+ }) => {
183
+ const g = K(), { isMobile: L } = Q(), [h, { height: m }] = _e(), C = b.useRef(null), [u, v] = b.useState(0);
184
+ b.useEffect(() => {
185
+ const e = Math.max(l - m, f);
186
+ v(e);
187
+ }, [l, m]);
188
+ const [p, S] = b.useState(null), [ee, A] = b.useState({
189
+ hoveredSeriesId: null,
190
+ hoveredAreaData: null,
191
+ isAreaHovered: !1,
192
+ cursorPos: { x: 0, y: 0 }
193
+ }), { hoveredSeriesId: T, hoveredAreaData: $, isAreaHovered: te, cursorPos: H } = ee, j = te && T && $, Y = !j, G = [...n, ...c], oe = G[0]?.dataset.length ?? 0, w = G.flatMap((e) => e.dataset.map((r) => r.x)), re = G.flatMap((e) => e.dataset.map((r) => r.y)), ae = n[0]?.dataset?.map(
194
+ (e, r) => n.reduce((s, x) => s + x.dataset[r]?.y || 0, 0)
195
+ ) ?? [0], ie = Math.max(...ae), ne = Math.max(
196
+ ...c.flatMap((e) => e.dataset.map((r) => r.y))
197
+ ), se = Math.floor(Math.min(...re) / 100) * 100, le = Math.ceil(Math.max(ie, ne) / 100) * 100, k = n.map((e, r) => ({
198
+ id: `stacked-${r}`,
199
+ guid: e.category_guid,
200
+ top_level_guid: e.top_level_category_guid,
201
+ area: !0,
202
+ color: n[r].category_color ?? g.palette.primary.main,
203
+ data: e.dataset.map((s) => s.y),
204
+ label: n[r].category_name,
205
+ stack: "total",
206
+ type: "line",
207
+ highlightScope: { highlight: "item" },
208
+ valueFormatter: (s) => z(s, "0,0")
209
+ })), F = c.map((e, r) => ({
210
+ id: `unstacked-${r}`,
211
+ guid: e.category_guid,
212
+ top_level_guid: e.top_level_category_guid,
213
+ area: !1,
214
+ color: e.category_color,
215
+ data: e.dataset.map((s) => s.y),
216
+ label: e.category_name,
217
+ type: "line",
218
+ valueFormatter: (s) => z(s, "0,0")
219
+ })), P = [...k, ...F], ce = [
220
+ ...k.map(({ guid: e, top_level_guid: r }) => ({
221
+ guid: e,
222
+ top_level_guid: r
223
+ })),
224
+ ...F.map(({ guid: e, top_level_guid: r }) => ({
225
+ guid: e,
226
+ top_level_guid: r
227
+ }))
228
+ ], I = (e) => {
229
+ const s = e.startsWith("stacked-") ? n[parseInt(e.split("-")[1])] : c[parseInt(e.split("-")[1])];
230
+ return {
231
+ guid: s?.category_guid,
232
+ topLevelGuid: s?.top_level_category_guid
233
+ };
234
+ }, de = (e) => {
235
+ S(e), o?.(e ?? "");
236
+ }, me = (e) => {
237
+ i?.(e ?? "");
238
+ }, ue = () => {
239
+ const e = I(String(T)).guid;
240
+ e && i?.(e);
241
+ }, ge = (e) => {
242
+ const r = String(e?.seriesId), s = I(r).guid, x = P.find((B) => B.id === r), fe = x && e?.dataIndex !== void 0, ye = x && e?.dataIndex === void 0;
243
+ if (fe)
244
+ A({
245
+ hoveredSeriesId: r,
246
+ hoveredAreaData: null,
247
+ isAreaHovered: !1,
248
+ cursorPos: H
249
+ }), t?.(s);
250
+ else if (ye) {
251
+ const B = x?.data.map((Ce, ve) => ({
252
+ x: w[ve],
253
+ y: Ce
254
+ })) ?? [];
255
+ A({
256
+ hoveredSeriesId: r,
257
+ hoveredAreaData: B,
258
+ isAreaHovered: !0,
259
+ cursorPos: H
260
+ }), d?.(s);
261
+ } else
262
+ A({
263
+ hoveredSeriesId: null,
264
+ hoveredAreaData: null,
265
+ isAreaHovered: !1,
266
+ cursorPos: H
267
+ });
268
+ }, he = (e) => {
269
+ const r = e.currentTarget.getBoundingClientRect();
270
+ A((s) => ({
271
+ ...s,
272
+ cursorPos: {
273
+ x: e.clientX - r.left,
274
+ y: e.clientY - r.top
275
+ }
276
+ }));
277
+ }, pe = {
278
+ p: 4,
279
+ "& .MuiBarLabel-root": {
280
+ fontSize: 10,
281
+ fontWeight: 600
282
+ },
283
+ "& .MuiAreaElement-root": {
284
+ opacity: 0.4,
285
+ transition: "opacity 0.3s ease"
286
+ },
287
+ "& .MuiAreaElement-root:hover": {
288
+ opacity: 1
289
+ },
290
+ '& [class*="MuiLineElement-series-unstacked-"]': {
291
+ strokeWidth: 3
292
+ },
293
+ ...p && k.reduce((e, r, s) => {
294
+ const x = `.MuiAreaElement-series-stacked-${s}`;
295
+ return e[x] = {
296
+ opacity: k[s].guid === p ? 0.9 : 0.2
297
+ }, e;
298
+ }, {})
299
+ };
300
+ return /* @__PURE__ */ a(D, { onMouseMove: he, ref: C, style: { position: "relative" }, children: /* @__PURE__ */ y(
301
+ N,
302
+ {
303
+ direction: { xs: "column", md: "column" },
304
+ spacing: { xs: 0, md: 4 },
305
+ sx: { width: "100%", position: "relative" },
306
+ children: [
307
+ /* @__PURE__ */ a(
308
+ Me,
309
+ {
310
+ height: u,
311
+ margin: { bottom: 50 },
312
+ onAreaClick: ue,
313
+ onHighlightChange: ge,
314
+ series: P,
315
+ skipAnimation: !0,
316
+ slotProps: {
317
+ legend: {
318
+ hidden: !0
319
+ }
320
+ },
321
+ slots: {
322
+ itemContent: (e) => Y && T ? /* @__PURE__ */ a(
323
+ We,
324
+ {
325
+ categoryGuids: I(T),
326
+ xData: w,
327
+ ...e
328
+ }
329
+ ) : null
330
+ },
331
+ sx: pe,
332
+ tooltip: {
333
+ trigger: Y ? "item" : "none"
334
+ },
335
+ xAxis: [
336
+ {
337
+ data: w,
338
+ scaleType: "time",
339
+ valueFormatter: (e) => M(e, _.MONTH_SHORT_YEAR),
340
+ tickNumber: oe
341
+ // How many ticks to show on the x-axis
342
+ }
343
+ ],
344
+ yAxis: [
345
+ {
346
+ min: se,
347
+ max: le || 100
348
+ }
349
+ ]
350
+ }
351
+ ),
352
+ /* @__PURE__ */ a(
353
+ Xe,
354
+ {
355
+ categoryGuids: ce,
356
+ hoveredLegend: p,
357
+ legendRef: h,
358
+ onClickLegend: me,
359
+ onHoverLegend: de,
360
+ sx: { px: L ? 0 : 24 }
361
+ }
362
+ ),
363
+ j && /* @__PURE__ */ a(
364
+ Pe,
365
+ {
366
+ categoryGuids: I(T),
367
+ chartContainerRef: C,
368
+ cursorPosition: H,
369
+ hoveredAreaData: $.map((e) => ({
370
+ ...e,
371
+ x: M(e.x, _.MONTH_SHORT_YEAR)
372
+ }))
373
+ }
374
+ )
375
+ ]
376
+ }
377
+ ) });
378
+ };
379
+ class _t {
380
+ globalStore;
381
+ selectedCategoryData = null;
382
+ selectedDateRange;
383
+ visibleListLength = 5;
384
+ constructor(t) {
385
+ this.globalStore = t, this.selectedDateRange = {
386
+ start: Oe(V(Ee(/* @__PURE__ */ new Date(), 6)), 1),
387
+ end: V(/* @__PURE__ */ new Date())
388
+ }, Be(this);
389
+ }
390
+ setSelectedCategoryData = (t) => {
391
+ this.selectedCategoryData = t;
392
+ };
393
+ setSelectedDateRange = (t) => {
394
+ this.selectedDateRange = t;
395
+ };
396
+ setVisibleListLength = (t) => {
397
+ this.visibleListLength = t;
398
+ };
399
+ sortCategoriesList = () => !this.detailedCategories || this.detailedCategories.length === 0 ? [] : this.detailedCategories.map((t) => ({
400
+ guid: t.guid,
401
+ name: t.name,
402
+ amount: Math.abs(
403
+ t.monthlyAmounts.reduce((o, i) => o + (i.amount || 0), 0)
404
+ )
405
+ })).filter((t) => t.amount !== 0).sort((t, o) => o.amount - t.amount);
406
+ get detailedCategories() {
407
+ return this.globalStore.categoryStore.detailedCategories;
408
+ }
409
+ get detailedCategoriesWithTransactions() {
410
+ return this.globalStore.categoryStore.detailedCategoriesWithTransactions;
411
+ }
412
+ get selectedDateRangeMonthRange() {
413
+ const t = M(this.selectedDateRange.start, _.MONTH_LONG), o = M(this.selectedDateRange.end, _.MONTH_LONG);
414
+ return `${t} - ${o}`;
415
+ }
416
+ get sortedCategoriesList() {
417
+ return this.sortCategoriesList();
418
+ }
419
+ get visibleListItems() {
420
+ return this.sortedCategoriesList.slice(0, this.visibleListLength);
421
+ }
422
+ get collapsedListItems() {
423
+ return this.sortedCategoriesList.slice(this.visibleListLength);
424
+ }
425
+ get categoryDetailsChartData() {
426
+ if (!this.selectedCategoryData?.transactions || this.selectedCategoryData.transactions.length === 0)
427
+ return [];
428
+ const t = [];
429
+ let o = $e(this.selectedDateRange.start);
430
+ const i = this.selectedDateRange.end;
431
+ for (; Ye(o, i); ) {
432
+ const n = this.selectedCategoryData.transactions.filter((c) => {
433
+ const l = Ne(c.date);
434
+ return l.getFullYear() === o.getFullYear() && l.getMonth() === o.getMonth();
435
+ }).reduce((c, l) => c + Math.abs(l.amount), 0);
436
+ t.push({
437
+ x: M(o, _.MONTH_SHORT),
438
+ y: n
439
+ }), o = je(o, 1);
440
+ }
441
+ return [t];
442
+ }
443
+ }
444
+ export {
445
+ Mt as S,
446
+ _t as T,
447
+ bt as u
448
+ };