@mx-cartographer/experiences 4.0.14-alpha.JB0 → 4.0.14-alpha.JB2

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 (75) hide show
  1. package/dist/AccountStore-B23-oV1B.mjs +244 -0
  2. package/dist/AccountStore-B23-oV1B.mjs.map +1 -0
  3. package/dist/BeatApi-BxXgbSJY.mjs +99 -0
  4. package/dist/BeatApi-BxXgbSJY.mjs.map +1 -0
  5. package/dist/BudgetUtil-BSn9Zr71.mjs +208 -0
  6. package/dist/BudgetUtil-BSn9Zr71.mjs.map +1 -0
  7. package/dist/CashflowApi-zcebgnO1.mjs +103 -0
  8. package/dist/CashflowApi-zcebgnO1.mjs.map +1 -0
  9. package/dist/CashflowStore-gPEEBiXo.mjs +53 -0
  10. package/dist/CashflowStore-gPEEBiXo.mjs.map +1 -0
  11. package/dist/Categories-XVFviD23.mjs +117 -0
  12. package/dist/Categories-XVFviD23.mjs.map +1 -0
  13. package/dist/CategoryStore-CSNSMNA6.mjs +298 -0
  14. package/dist/CategoryStore-CSNSMNA6.mjs.map +1 -0
  15. package/dist/ConnectMiniWidget-Ep65CtHH.mjs +10854 -0
  16. package/dist/ConnectMiniWidget-Ep65CtHH.mjs.map +1 -0
  17. package/dist/DebtsStore-Duf3n1vZ.mjs +127 -0
  18. package/dist/DebtsStore-Duf3n1vZ.mjs.map +1 -0
  19. package/dist/Donut-DgMeKScZ.mjs +53 -0
  20. package/dist/Donut-DgMeKScZ.mjs.map +1 -0
  21. package/dist/Fetch-DpUi1_Dx.mjs +99 -0
  22. package/dist/Fetch-DpUi1_Dx.mjs.map +1 -0
  23. package/dist/GoalStore-BYoRLx99.mjs +128 -0
  24. package/dist/GoalStore-BYoRLx99.mjs.map +1 -0
  25. package/dist/MerchantStore-RhLvDvX-.mjs +118 -0
  26. package/dist/MerchantStore-RhLvDvX-.mjs.map +1 -0
  27. package/dist/NetWorthStore-syD1VnxE.mjs +66 -0
  28. package/dist/NetWorthStore-syD1VnxE.mjs.map +1 -0
  29. package/dist/NotificationStore-CqTYHfJC.mjs +141 -0
  30. package/dist/NotificationStore-CqTYHfJC.mjs.map +1 -0
  31. package/dist/RecurringActivityStore-B_COvGWG.mjs +304 -0
  32. package/dist/RecurringActivityStore-B_COvGWG.mjs.map +1 -0
  33. package/dist/StackedLineChart-CCqGRwvs.mjs +342 -0
  34. package/dist/StackedLineChart-CCqGRwvs.mjs.map +1 -0
  35. package/dist/TransactionStore-BUrjBWkk.mjs +478 -0
  36. package/dist/TransactionStore-BUrjBWkk.mjs.map +1 -0
  37. package/dist/index.es.js +12 -17869
  38. package/dist/index.es.js.map +1 -1
  39. package/dist/index.es10.js +107 -0
  40. package/dist/index.es10.js.map +1 -0
  41. package/dist/index.es11.js +159 -0
  42. package/dist/index.es11.js.map +1 -0
  43. package/dist/index.es12.js +483 -0
  44. package/dist/index.es12.js.map +1 -0
  45. package/dist/index.es13.js +620 -0
  46. package/dist/index.es13.js.map +1 -0
  47. package/dist/index.es14.js +788 -0
  48. package/dist/index.es14.js.map +1 -0
  49. package/dist/index.es15.js +891 -0
  50. package/dist/index.es15.js.map +1 -0
  51. package/dist/index.es16.js +962 -0
  52. package/dist/index.es16.js.map +1 -0
  53. package/dist/index.es17.js +1904 -0
  54. package/dist/index.es17.js.map +1 -0
  55. package/dist/index.es2.js +11 -0
  56. package/dist/index.es2.js.map +1 -0
  57. package/dist/index.es3.js +10 -0
  58. package/dist/index.es3.js.map +1 -0
  59. package/dist/index.es4.js +9 -0
  60. package/dist/index.es4.js.map +1 -0
  61. package/dist/index.es5.js +7 -0
  62. package/dist/index.es5.js.map +1 -0
  63. package/dist/index.es6.js +7 -0
  64. package/dist/index.es6.js.map +1 -0
  65. package/dist/index.es7.js +10 -0
  66. package/dist/index.es7.js.map +1 -0
  67. package/dist/index.es8.js +10 -0
  68. package/dist/index.es8.js.map +1 -0
  69. package/dist/index.es9.js +18 -0
  70. package/dist/index.es9.js.map +1 -0
  71. package/dist/useCombineEvents-CZUDHE96.mjs +170 -0
  72. package/dist/useCombineEvents-CZUDHE96.mjs.map +1 -0
  73. package/dist/usePrevious-BLb3umpI.mjs +11 -0
  74. package/dist/usePrevious-BLb3umpI.mjs.map +1 -0
  75. package/package.json +1 -1
@@ -0,0 +1,620 @@
1
+ import { jsxs as u, jsx as t } from "react/jsx-runtime";
2
+ import { observer as M } from "mobx-react-lite";
3
+ import "bowser";
4
+ import "date-fns/getUnixTime";
5
+ import "date-fns/intlFormat";
6
+ import { V as w, aj as H, a7 as D, ab as x, aa as Q, a9 as $, ai as j, aD as st, au as ct, av as P, x as lt, z as dt, a8 as mt, ar as pt, at as X, az as ut, aA as gt } from "./ConnectMiniWidget-Ep65CtHH.mjs";
7
+ import p from "react";
8
+ import "@honeybadger-io/react";
9
+ import "numeral";
10
+ import "date-fns/addMonths";
11
+ import "date-fns/addQuarters";
12
+ import "date-fns/addWeeks";
13
+ import "date-fns/addYears";
14
+ import "date-fns/getDay";
15
+ import "date-fns/isBefore";
16
+ import "date-fns/nextDay";
17
+ import "date-fns/setDate";
18
+ import { startOfToday as Y } from "date-fns/startOfToday";
19
+ import "date-fns/fromUnixTime";
20
+ import ht from "@mui/material/Button";
21
+ import { Text as g, CategoryIcon as yt, CategoryIconVariants as ft } from "@kyper/mui";
22
+ import "@mui/material/Tooltip";
23
+ import T from "@mui/material/Box";
24
+ import "@mui/material/IconButton";
25
+ import Ct from "@mui/material/styles/useTheme";
26
+ import "@mui/material/useMediaQuery";
27
+ import "@mxenabled/cssinjs";
28
+ import "date-fns/addDays";
29
+ import "date-fns/eachDayOfInterval";
30
+ import "date-fns/eachWeekOfInterval";
31
+ import { endOfMonth as Z } from "date-fns/endOfMonth";
32
+ import "date-fns/format";
33
+ import "date-fns/isSameMonth";
34
+ import { startOfMonth as tt } from "date-fns/startOfMonth";
35
+ import "date-fns/subMonths";
36
+ import "@mui/material/Paper";
37
+ import "@mui/icons-material/KeyboardArrowLeftRounded";
38
+ import "@mui/icons-material/KeyboardArrowRightRounded";
39
+ import "date-fns/isSameDay";
40
+ import "date-fns/isWithinInterval";
41
+ import "d3";
42
+ import "@mui/material/styles";
43
+ import "@mui/x-charts";
44
+ import y from "@mui/material/Stack";
45
+ import { useTheme as et } from "@mui/material";
46
+ import "date-fns/differenceInCalendarDays";
47
+ import "date-fns/endOfToday";
48
+ import "date-fns/endOfYear";
49
+ import "date-fns/startOfYear";
50
+ import "date-fns/subDays";
51
+ import "date-fns/subYears";
52
+ import "@mui/material/ButtonGroup";
53
+ import I from "@mui/material/Tab";
54
+ import ot from "@mui/material/Tabs";
55
+ import "@mui/material/ToggleButton";
56
+ import "@mui/material/ToggleButtonGroup";
57
+ import "@mui/material/Dialog";
58
+ import "@mui/material/DialogContent";
59
+ import "@mui/icons-material/ArrowBackOutlined";
60
+ import "uuid";
61
+ import "@mui/material/CircularProgress";
62
+ import "@mui/material/FormControlLabel";
63
+ import "@mui/material/Radio";
64
+ import "@mui/material/Avatar";
65
+ import K from "@mui/material/ListItem";
66
+ import "@mui/material/ListItemAvatar";
67
+ import bt from "@mui/material/ListItemButton";
68
+ import "@mui/material/ListItemText";
69
+ import "@mui/material/ListItemIcon";
70
+ import "mobx";
71
+ import "date-fns/differenceInDays";
72
+ import "@mui/x-data-grid-pro";
73
+ import "date-fns";
74
+ import "date-fns/getMonth";
75
+ import "date-fns/isAfter";
76
+ import "date-fns/parseISO";
77
+ import "date-fns/subWeeks";
78
+ import "date-fns/formatISO";
79
+ import "@mui/material/Card";
80
+ import "@mui/material/CardHeader";
81
+ import "@mui/material/CardContent";
82
+ import { D as St } from "./Donut-DgMeKScZ.mjs";
83
+ import _t from "@mui/material/Collapse";
84
+ import N from "@mui/material/Divider";
85
+ import U from "@mui/material/List";
86
+ const R = 5, Tt = (o, l) => l.reduce((r, s) => {
87
+ if (s.total > 0) {
88
+ const n = o.find((d) => d.guid === s.category_guid);
89
+ if (!n) return r;
90
+ const c = n.parent_guid ?? n.guid, i = o.find((d) => d.guid === c);
91
+ if (!i) return r;
92
+ const e = {
93
+ guid: n.guid,
94
+ name: n.guid === c ? `General ${n.name}` : n.name,
95
+ color: H[i.guid],
96
+ amount: s.total
97
+ }, a = r.find((d) => d.guid === c);
98
+ a ? (a.amount += s.total, a.categoryTotals?.push(e)) : r.push({
99
+ guid: c,
100
+ name: i.name,
101
+ color: H[i.guid],
102
+ categoryTotals: [e],
103
+ amount: s.total
104
+ });
105
+ }
106
+ return r;
107
+ }, []), nt = (o, l) => {
108
+ const r = Tt(o, l), s = r.filter((a) => a.guid !== w.INCOME && a.guid !== w.TRANSFER).sort((a, d) => d.amount - a.amount), n = s.reduce(
109
+ (a, d) => a + d.amount,
110
+ 0
111
+ ), c = s.length > R ? R : s.length, i = s.slice(0, c), e = i.map((a) => ({
112
+ id: a.guid,
113
+ color: a.color,
114
+ label: a.name,
115
+ value: a.amount / n * 100
116
+ }));
117
+ if (s.length > 5) {
118
+ const a = s.slice(R, r.length), d = a.reduce(
119
+ (f, m) => f + m.amount,
120
+ 0
121
+ );
122
+ i.push({
123
+ guid: "other",
124
+ color: "#ACB0B3",
125
+ // TODO: Get from theme
126
+ name: "Other",
127
+ // TODO: Needs localization
128
+ categoryTotals: a,
129
+ amount: d
130
+ }), e.push({
131
+ id: "other",
132
+ color: "#ACB0B3",
133
+ // TODO: Get from theme,
134
+ label: "Other",
135
+ // TODO: Needs localization
136
+ value: d / n * 100
137
+ });
138
+ }
139
+ return {
140
+ categoryData: i,
141
+ donutData: e,
142
+ totalAmount: n
143
+ };
144
+ }, at = (o, l, r) => {
145
+ const s = o.filter(
146
+ (e) => e.parent_guid === w.INCOME
147
+ ), n = l.filter((e) => s.some((a) => a.guid === e.category_guid)).sort((e, a) => e.total - a.total).map((e, a) => ({
148
+ guid: e.category_guid,
149
+ name: o.find((d) => d.guid === e.category_guid)?.name,
150
+ color: r[a],
151
+ categoryTotals: [],
152
+ amount: Math.abs(e.total)
153
+ })), c = n.reduce(
154
+ (e, a) => e + a.amount,
155
+ 0
156
+ ), i = n.map((e) => ({
157
+ id: e.guid,
158
+ color: e.color,
159
+ label: e.name,
160
+ value: e.amount / c * 100
161
+ }));
162
+ return {
163
+ categoryData: n,
164
+ donutData: i,
165
+ totalAmount: c
166
+ };
167
+ }, E = ({ amount: o, label: l }) => /* @__PURE__ */ u(y, { direction: "column", children: [
168
+ /* @__PURE__ */ t(g, { bold: !0, sx: { textTransform: "none" }, variant: "Body", children: l }),
169
+ /* @__PURE__ */ t(g, { variant: "XSmall", children: D(o, "0,0") })
170
+ ] }), Mt = ({
171
+ data: o,
172
+ isIncome: l = !1,
173
+ onSelected: r,
174
+ onViewTransactions: s,
175
+ selectedId: n,
176
+ size: c = 150,
177
+ totalLabel: i,
178
+ variant: e = "mini"
179
+ }) => {
180
+ const { spending: a } = x(), d = et(), { isTablet: f } = Q(), m = p.useMemo(
181
+ () => n ? o.categoryData.find((S) => S.guid === n) : void 0,
182
+ [n]
183
+ ), C = p.useMemo(() => o.donutData.length > 0 ? o.donutData : [{ id: "0", color: d.palette.border.light, value: 100 }], [o, d]), v = () => {
184
+ s?.(n);
185
+ }, b = f ? 32 : 48;
186
+ return /* @__PURE__ */ t(St, { data: C, onClick: r, selectedId: n, size: c, children: /* @__PURE__ */ t(y, { alignItems: "center", height: "100%", justifyContent: "center", width: "100%", children: /* @__PURE__ */ u(y, { alignItems: "center", justifyContent: "center", minHeight: c, minWidth: c, children: [
187
+ m && /* @__PURE__ */ u(
188
+ y,
189
+ {
190
+ alignItems: "center",
191
+ gap: e === "mini" ? 0 : 8,
192
+ mb: e === "mini" ? 0 : 8,
193
+ mt: e === "mini" ? 0 : -16,
194
+ sx: e === "mini" ? { gap: 0, mb: 0 } : { gap: { xs: 4, xl: 8 }, mb: { xs: 4, xl: 8 } },
195
+ children: [
196
+ /* @__PURE__ */ t(
197
+ yt,
198
+ {
199
+ categoryGuid: l ? w.INCOME : m.guid,
200
+ size: e === "mini" ? 24 : b,
201
+ variant: ft.Transparent
202
+ }
203
+ ),
204
+ /* @__PURE__ */ t(g, { color: "secondary", noWrap: !0, variant: e === "mini" ? "Tiny" : "Body", children: m ? m.name : i })
205
+ ]
206
+ }
207
+ ),
208
+ !m && e === "full" && /* @__PURE__ */ t(g, { bold: !0, color: "secondary", sx: { mb: { xs: 4, xl: 8 } }, children: i }),
209
+ /* @__PURE__ */ t(g, { variant: e === "mini" ? "H2" : "H1", children: m ? D(m.amount, "0,0") : D(o.totalAmount, "0,0") }),
210
+ !m && e === "mini" && /* @__PURE__ */ t(g, { color: "secondary", noWrap: !0, variant: "Tiny", children: i }),
211
+ e === "full" && /* @__PURE__ */ t(
212
+ ht,
213
+ {
214
+ "aria-label": `View ${m?.name || ""} Transactions`,
215
+ disabled: o.categoryData.length === 0,
216
+ onClick: v,
217
+ sx: { mt: { xl: 4, xs: 0 }, zIndex: 1 },
218
+ variant: "text",
219
+ children: a.view_transactions
220
+ }
221
+ )
222
+ ] }) }) });
223
+ }, L = M(Mt), q = ({ data: o, onSelected: l, selectedId: r }) => /* @__PURE__ */ t(y, { gap: 8, height: "100%", justifyContent: "center", my: "auto", children: o.categoryData.map((s) => /* @__PURE__ */ u(
224
+ y,
225
+ {
226
+ alignItems: "center",
227
+ "aria-label": s.name,
228
+ "aria-selected": s.guid === r,
229
+ direction: "row",
230
+ gap: 8,
231
+ onClick: () => l(s.guid),
232
+ role: "button",
233
+ sx: { cursor: "pointer" },
234
+ children: [
235
+ /* @__PURE__ */ t(T, { borderRadius: 4, height: 8, sx: { backgroundColor: s.color }, width: 8 }),
236
+ /* @__PURE__ */ t(g, { bold: s.guid === r, variant: "XSmall", children: s.name })
237
+ ]
238
+ },
239
+ s.guid
240
+ )) }), xt = () => {
241
+ const o = Ct(), { spending: l } = x(), { selectedAccounts: r } = $(), s = p.useMemo(
242
+ () => [
243
+ o.palette.chartMono.chartMono5,
244
+ o.palette.chartMono.chartMono4,
245
+ o.palette.chartMono.chartMono3,
246
+ o.palette.chartMono.chartMono2,
247
+ o.palette.chartMono.chartMono1,
248
+ o.palette.chartMono.chartMono6
249
+ ],
250
+ [o]
251
+ ), { categories: n, dateRangeCategoryTotals: c, loadDateRangeCategoryTotals: i } = j();
252
+ p.useEffect(() => {
253
+ i(
254
+ r,
255
+ tt(/* @__PURE__ */ new Date()),
256
+ Z(/* @__PURE__ */ new Date())
257
+ ).finally();
258
+ }, [r]);
259
+ const [e, a] = p.useState(""), [d, f] = p.useState(0), m = p.useMemo(
260
+ () => nt(n, c),
261
+ [n, c]
262
+ ), C = p.useMemo(
263
+ () => at(n, c, s),
264
+ [n, c, s]
265
+ ), v = (S, O) => {
266
+ f(O), a("");
267
+ }, b = (S) => {
268
+ a(e === S ? "" : S);
269
+ };
270
+ return /* @__PURE__ */ u(T, { width: "100%", children: [
271
+ /* @__PURE__ */ u(ot, { onChange: v, value: d, variant: "fullWidth", children: [
272
+ /* @__PURE__ */ t(
273
+ I,
274
+ {
275
+ label: /* @__PURE__ */ t(
276
+ E,
277
+ {
278
+ amount: m.totalAmount,
279
+ label: l.spend_tab_title
280
+ }
281
+ )
282
+ }
283
+ ),
284
+ /* @__PURE__ */ t(
285
+ I,
286
+ {
287
+ label: /* @__PURE__ */ t(
288
+ E,
289
+ {
290
+ amount: C.totalAmount,
291
+ label: l.income_tab_title
292
+ }
293
+ )
294
+ }
295
+ )
296
+ ] }),
297
+ d === 0 && /* @__PURE__ */ t(T, { children: /* @__PURE__ */ u(y, { direction: "row", gap: 16, justifyContent: "center", p: 24, children: [
298
+ /* @__PURE__ */ t(
299
+ L,
300
+ {
301
+ data: m,
302
+ onSelected: b,
303
+ selectedId: e,
304
+ totalLabel: l.total_spending
305
+ }
306
+ ),
307
+ /* @__PURE__ */ t(
308
+ q,
309
+ {
310
+ data: m,
311
+ onSelected: b,
312
+ selectedId: e
313
+ }
314
+ )
315
+ ] }) }),
316
+ d === 1 && /* @__PURE__ */ t(T, { children: /* @__PURE__ */ u(y, { direction: "row", gap: 16, justifyContent: "center", p: 24, children: [
317
+ /* @__PURE__ */ t(
318
+ L,
319
+ {
320
+ data: C,
321
+ isIncome: !0,
322
+ onSelected: b,
323
+ selectedId: e,
324
+ totalLabel: l.total_income
325
+ }
326
+ ),
327
+ /* @__PURE__ */ t(q, { data: C, onSelected: b, selectedId: e })
328
+ ] }) })
329
+ ] });
330
+ }, Dt = M(xt), wt = ({ onPrimaryCtaClick: o, sx: l = {} }) => {
331
+ const { spending: r } = x();
332
+ return /* @__PURE__ */ t(
333
+ st,
334
+ {
335
+ className: "mx-exp-spending-miniwidget",
336
+ onPrimaryCtaClick: o,
337
+ primaryCtaLabel: r.primary_cta,
338
+ sx: l,
339
+ title: r.mini_title,
340
+ children: /* @__PURE__ */ t(Dt, {})
341
+ }
342
+ );
343
+ }, po = M(wt), vt = ({
344
+ data: o,
345
+ onSelected: l,
346
+ selectedId: r = "",
347
+ title: s
348
+ }) => {
349
+ const { spending: n } = x(), c = o.categoryData.find((i) => i.guid === r);
350
+ return /* @__PURE__ */ u(y, { direction: "column", justifyContent: "center", maxWidth: 400, minWidth: 275, width: "100%", children: [
351
+ /* @__PURE__ */ t(g, { bold: !0, sx: { py: 12 }, children: `${s} ${n.by_category}` }),
352
+ /* @__PURE__ */ t(N, { "aria-hidden": "true" }),
353
+ /* @__PURE__ */ t(U, { children: o.categoryData.map((i) => /* @__PURE__ */ u(p.Fragment, { children: [
354
+ /* @__PURE__ */ t(
355
+ K,
356
+ {
357
+ disableGutters: !0,
358
+ disablePadding: !0,
359
+ sx: {
360
+ minHeight: 44
361
+ },
362
+ children: /* @__PURE__ */ u(
363
+ bt,
364
+ {
365
+ "aria-expanded": c?.guid === i.guid,
366
+ onClick: () => l(i.guid),
367
+ sx: { minHeight: 44, px: 8, py: 0 },
368
+ children: [
369
+ /* @__PURE__ */ t(
370
+ T,
371
+ {
372
+ borderRadius: 4,
373
+ flexShrink: 0,
374
+ height: 8,
375
+ sx: { backgroundColor: i.color, mr: 8 },
376
+ width: 8
377
+ }
378
+ ),
379
+ /* @__PURE__ */ u(
380
+ y,
381
+ {
382
+ alignItems: "center",
383
+ direction: "row",
384
+ justifyContent: "space-between",
385
+ width: "100%",
386
+ children: [
387
+ /* @__PURE__ */ t(g, { bold: r === i.guid, children: i.name }),
388
+ /* @__PURE__ */ t(g, { bold: r === i.guid, variant: "Body", children: D(i.amount, "0,0") })
389
+ ]
390
+ }
391
+ )
392
+ ]
393
+ }
394
+ )
395
+ }
396
+ ),
397
+ /* @__PURE__ */ t(N, {}),
398
+ i.categoryTotals && i.categoryTotals.length > 0 && /* @__PURE__ */ t(_t, { in: c?.guid === i.guid, unmountOnExit: !0, children: /* @__PURE__ */ u(U, { children: [
399
+ c?.categoryTotals?.map((e) => /* @__PURE__ */ t(
400
+ K,
401
+ {
402
+ sx: {
403
+ pl: 24,
404
+ pr: 8,
405
+ py: 0
406
+ },
407
+ children: /* @__PURE__ */ u(y, { direction: "row", justifyContent: "space-between", width: "100%", children: [
408
+ /* @__PURE__ */ u(g, { children: [
409
+ e.name,
410
+ " "
411
+ ] }),
412
+ /* @__PURE__ */ t(g, { children: D(e.amount, "0,0") })
413
+ ] })
414
+ },
415
+ e.guid
416
+ )),
417
+ /* @__PURE__ */ t(N, {})
418
+ ] }) })
419
+ ] }, i.guid)) }),
420
+ /* @__PURE__ */ t(g, { bold: !0, sx: { mt: 12, pr: 8, textAlign: "right" }, children: `${n.total}: ${D(o.totalAmount, "0,0")}` })
421
+ ] });
422
+ }, At = M(vt), It = ({
423
+ data: o,
424
+ onSelected: l,
425
+ onViewTransactions: r,
426
+ selectedId: s,
427
+ title: n
428
+ }) => {
429
+ const { isDesktop: c, isMobile: i } = Q(), { isLoadingCategoryTotals: e } = j(), { spending: a } = x();
430
+ return /* @__PURE__ */ u(
431
+ y,
432
+ {
433
+ alignItems: i ? "center" : "flex-start",
434
+ direction: i ? "column" : "row",
435
+ gap: { xs: 16, md: 64, xl: 100 },
436
+ justifyContent: "center",
437
+ pt: 50,
438
+ px: 8,
439
+ children: [
440
+ e && /* @__PURE__ */ t(
441
+ L,
442
+ {
443
+ data: {
444
+ categoryData: [],
445
+ donutData: [],
446
+ totalAmount: 0
447
+ },
448
+ onSelected: () => {
449
+ },
450
+ selectedId: "",
451
+ size: c ? 400 : 300,
452
+ totalLabel: "Loading ...",
453
+ variant: "full"
454
+ }
455
+ ),
456
+ !e && /* @__PURE__ */ t(
457
+ L,
458
+ {
459
+ data: o,
460
+ onSelected: l,
461
+ onViewTransactions: r,
462
+ selectedId: s,
463
+ size: c ? 400 : 300,
464
+ totalLabel: a.total_amount,
465
+ variant: "full"
466
+ }
467
+ ),
468
+ /* @__PURE__ */ t(At, { data: o, onSelected: l, selectedId: s, title: n })
469
+ ]
470
+ }
471
+ );
472
+ }, J = M(It), Et = (o) => [
473
+ o.palette.chartMono.chartMono5,
474
+ o.palette.chartMono.chartMono4,
475
+ o.palette.chartMono.chartMono3,
476
+ o.palette.chartMono.chartMono2,
477
+ o.palette.chartMono.chartMono1,
478
+ o.palette.chartMono.chartMono6
479
+ ], Lt = () => {
480
+ const o = et(), { categories: l, dateRangeCategoryTotals: r, loadDateRangeCategoryTotals: s } = j(), { spending: n } = x(), { displayedDateRange: c, selectedAccounts: i, selectedAccountGuids: e } = $(), { setFilter: a, sortedTransactions: d } = ct(), [f, m] = p.useState(""), [C, v] = p.useState(0), [b, S] = p.useState(""), [O, k] = p.useState(!1);
481
+ p.useEffect(() => {
482
+ s(
483
+ i,
484
+ c.start,
485
+ c.end
486
+ ).finally();
487
+ }, [i, c]);
488
+ const W = p.useMemo(
489
+ () => nt(l, r),
490
+ [l, r]
491
+ ), z = p.useMemo(
492
+ () => at(l, r, Et(o)),
493
+ [l, r]
494
+ ), B = p.useMemo(
495
+ () => d.find((h) => h.guid === b),
496
+ [b]
497
+ ), it = (h, A) => {
498
+ v(A), m("");
499
+ }, V = (h) => {
500
+ m(f === h || h === "0" ? "" : h);
501
+ }, F = (h) => {
502
+ const A = {
503
+ accounts: e,
504
+ dateRange: c
505
+ };
506
+ if (C === 0)
507
+ if (h === "other") {
508
+ const _ = W.categoryData.find((G) => G.guid === "other");
509
+ a({
510
+ ...A,
511
+ custom: (G) => !!_?.categoryTotals?.find((rt) => rt.guid === G.top_level_category_guid)
512
+ });
513
+ } else
514
+ a({
515
+ ...A,
516
+ custom: (_) => h ? _.top_level_category_guid === h : _.top_level_category_guid !== w.INCOME
517
+ });
518
+ else
519
+ a({
520
+ ...A,
521
+ custom: (_) => h ? _.category_guid === h : _.top_level_category_guid === w.INCOME
522
+ });
523
+ k(!0);
524
+ };
525
+ return /* @__PURE__ */ u(T, { children: [
526
+ /* @__PURE__ */ u(ot, { onChange: it, value: C, variant: "fullWidth", children: [
527
+ /* @__PURE__ */ t(
528
+ I,
529
+ {
530
+ label: /* @__PURE__ */ t(
531
+ E,
532
+ {
533
+ amount: W.totalAmount,
534
+ label: n.spend_tab_title
535
+ }
536
+ )
537
+ }
538
+ ),
539
+ /* @__PURE__ */ t(
540
+ I,
541
+ {
542
+ label: /* @__PURE__ */ t(
543
+ E,
544
+ {
545
+ amount: z.totalAmount,
546
+ label: n.income_tab_title
547
+ }
548
+ )
549
+ }
550
+ )
551
+ ] }),
552
+ C === 0 && /* @__PURE__ */ t(
553
+ J,
554
+ {
555
+ data: W,
556
+ onSelected: V,
557
+ onViewTransactions: F,
558
+ selectedId: f,
559
+ title: n.spend_tab_title
560
+ }
561
+ ),
562
+ C === 1 && /* @__PURE__ */ t(
563
+ J,
564
+ {
565
+ data: z,
566
+ onSelected: V,
567
+ onViewTransactions: F,
568
+ selectedId: f,
569
+ title: n.income_tab_title
570
+ }
571
+ ),
572
+ /* @__PURE__ */ t(
573
+ P,
574
+ {
575
+ ariaLabelClose: n.close_drawer_aria,
576
+ isOpen: O,
577
+ onClose: () => k(!1),
578
+ title: n.transactions_drawer_title,
579
+ children: /* @__PURE__ */ t(lt, { onClick: S })
580
+ }
581
+ ),
582
+ /* @__PURE__ */ t(
583
+ P,
584
+ {
585
+ ariaLabelClose: n.close_drawer_aria,
586
+ isOpen: !!B,
587
+ onClose: () => S(""),
588
+ title: n.transaction_details_drawer_title,
589
+ children: B && /* @__PURE__ */ t(dt, { transaction: B })
590
+ }
591
+ )
592
+ ] });
593
+ }, Ot = M(Lt), Wt = ({ onBackClick: o, sx: l = {} }) => {
594
+ const { accounts: r } = mt(), { spending: s } = x(), { isInitialized: n, setDisplayedDate: c, setSelectedAccounts: i } = $(), { onEvent: e } = pt(), [a, d] = p.useState(!1);
595
+ p.useEffect(() => {
596
+ i(r);
597
+ }, [r]), p.useEffect(() => {
598
+ c(tt(Y()), Z(Y())), d(!0), e(X.SPENDING_VIEW);
599
+ }, []);
600
+ const f = (m) => {
601
+ c(m[0], m[1]);
602
+ };
603
+ return !n || !a ? /* @__PURE__ */ t(ut, {}) : /* @__PURE__ */ t(
604
+ gt,
605
+ {
606
+ accountOptions: r,
607
+ calendarActions: { onRangeChanged: f },
608
+ onAccountsFilterClick: () => e(X.SPENDING_CLICK_FILTER),
609
+ onBackClick: o,
610
+ sx: l,
611
+ title: s.title,
612
+ children: /* @__PURE__ */ t(T, { height: "calc(100dvh - 150px)", overflow: "scroll", width: "100%", children: /* @__PURE__ */ t(Ot, {}) })
613
+ }
614
+ );
615
+ }, uo = M(Wt);
616
+ export {
617
+ po as SpendingMiniWidget,
618
+ uo as SpendingWidget
619
+ };
620
+ //# sourceMappingURL=index.es13.js.map