@mx-cartographer/experiences 9.0.3 → 9.1.0-alpha.bb1

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 (121) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/dist/Analytics-BKzTPees.mjs +61 -0
  3. package/dist/GlobalCopyApi-BeXzaDH9.mjs +487 -0
  4. package/dist/HeaderCell-EhCUSjvj.mjs +10 -0
  5. package/dist/Loader-BlVzRtUd.mjs +73 -0
  6. package/dist/MiniWidgetContainer-COwnjfy7.mjs +110 -0
  7. package/dist/OriginalBalanceAction-sbiqaxok.mjs +110 -0
  8. package/dist/SpendingLegend-D15ixlQ1.mjs +222 -0
  9. package/dist/accounts/index.es.js +12 -1598
  10. package/dist/accounts-DkyAiLpg.mjs +15632 -0
  11. package/dist/analytics/index.es.js +155 -139
  12. package/dist/budgets/index.es.js +1317 -1266
  13. package/dist/cashflow/index.es.js +1047 -942
  14. package/dist/categories/index.es.js +4 -4
  15. package/dist/common/index.es.js +101 -310
  16. package/dist/core/index.es.js +80 -104
  17. package/dist/core-BexP5oiV.mjs +4047 -0
  18. package/dist/dashboard/index.es.js +185 -141
  19. package/dist/debts/index.es.js +1384 -1272
  20. package/dist/finstrong/index.es.js +3366 -3471
  21. package/dist/goals/index.es.js +1103 -984
  22. package/dist/help/index.es.js +3 -25
  23. package/dist/help-CctDYrAH.mjs +2308 -0
  24. package/dist/insights/index.es.js +93 -4843
  25. package/dist/investments/index.es.js +1533 -1522
  26. package/dist/merchants/index.es.js +75 -64
  27. package/dist/microinsights/index.es.js +15 -824
  28. package/dist/microinsights-CRf3ChsJ.mjs +1814 -0
  29. package/dist/networth/index.es.js +550 -503
  30. package/dist/notifications/index.es.js +169 -161
  31. package/dist/recurringtransactions/index.es.js +10 -962
  32. package/dist/recurringtransactions-gbJ_NA8u.mjs +1564 -0
  33. package/dist/settings/index.es.js +13 -880
  34. package/dist/settings-ZMHe439l.mjs +1526 -0
  35. package/dist/spending/index.es.js +400 -456
  36. package/dist/transactions/index.es.js +10 -603
  37. package/dist/trends/index.es.js +1268 -1407
  38. package/package.json +28 -28
  39. package/dist/Account-BaJmiJAG.mjs +0 -118
  40. package/dist/Account-BxHMlV9R.mjs +0 -30
  41. package/dist/AccountDetailsHeader-DIysk_4w.mjs +0 -95
  42. package/dist/AccountDisplayName-CO7z3v99.mjs +0 -11
  43. package/dist/AccountFields-mwJ8NXsX.mjs +0 -141
  44. package/dist/AccountListItem-BDXHs4tV.mjs +0 -94
  45. package/dist/AccountUtils-T5_Odvos.mjs +0 -27
  46. package/dist/Accounts-CseLC3lL.mjs +0 -5
  47. package/dist/Analytics-CkYXKvco.mjs +0 -53
  48. package/dist/Analytics-CzGzz_sE.mjs +0 -136
  49. package/dist/ApiEndpoints-DXwIYNUV.mjs +0 -49
  50. package/dist/BudgetUtil-Bg2AQJpQ.mjs +0 -74
  51. package/dist/Category-DEKZGLYe.mjs +0 -301
  52. package/dist/CategorySelectorDrawer-8soGrhB8.mjs +0 -430
  53. package/dist/Connect-Dk6GZEsA.mjs +0 -39
  54. package/dist/ConnectCard-CCep7Zqe.mjs +0 -54
  55. package/dist/ConnectDrawer-Cnjr3Ddg.mjs +0 -58
  56. package/dist/ConnectionsDrawer-CtfPXk0M.mjs +0 -54
  57. package/dist/CurrencyDialog-DumQCTPO.mjs +0 -373
  58. package/dist/CurrencyInput-adTIRtL3.mjs +0 -87
  59. package/dist/CurrencyText-CCbE6MmF.mjs +0 -20
  60. package/dist/DateFormats-HudZ3Bjs.mjs +0 -64
  61. package/dist/DateUtil-Bhq59ZVg.mjs +0 -58
  62. package/dist/DebtUtils-DD3186U-.mjs +0 -153
  63. package/dist/Dialog-Bvd2n8hz.mjs +0 -66
  64. package/dist/Donut-SzzfZDHF.mjs +0 -88
  65. package/dist/Drawer-BXqqBMxg.mjs +0 -174
  66. package/dist/EmbeddedCard-DPwJjqMH.mjs +0 -856
  67. package/dist/EmptyState-CJUDc3kD.mjs +0 -84
  68. package/dist/Error-Dogaw2jO.mjs +0 -84
  69. package/dist/ErrorBoundary-CsdOcnJ9.mjs +0 -23
  70. package/dist/ExportCsvAction-Bw02ZJEj.mjs +0 -24
  71. package/dist/GlobalAccountFilter-7Cg2-9A5.mjs +0 -237
  72. package/dist/GlobalCopyApi-wcnDUzMV.mjs +0 -128
  73. package/dist/GoalsUtil-C9EnLWvC.mjs +0 -107
  74. package/dist/HeaderCell-P8w6CmfO.mjs +0 -6
  75. package/dist/Help-CkQTjORd.mjs +0 -299
  76. package/dist/Help-DJ8PrVHX.mjs +0 -3209
  77. package/dist/IconBacking-DgT8DCeh.mjs +0 -39
  78. package/dist/InformationTooltip-4su8bn1e.mjs +0 -41
  79. package/dist/InvestmentUtil-BItV7uEs.mjs +0 -134
  80. package/dist/LineChart-CejWS_rh.mjs +0 -612
  81. package/dist/ListItemAction-CzZ8s39Z.mjs +0 -69
  82. package/dist/ListItemRow-kH1rn8Xu.mjs +0 -67
  83. package/dist/ListItemWrapper-B5r-YQQ_.mjs +0 -42
  84. package/dist/Loader-CxeBwuPG.mjs +0 -21
  85. package/dist/Localization-DnoVyBNK.mjs +0 -38
  86. package/dist/ManageIncome-D1yBODQi.mjs +0 -595
  87. package/dist/MicroWidgetContainer-CfKdQfhi.mjs +0 -45
  88. package/dist/MiniWidgetContainer-BdPiUU-u.mjs +0 -66
  89. package/dist/NetWorthUtils-DilGN1nW.mjs +0 -95
  90. package/dist/Notification-DTNYSd8P.mjs +0 -7
  91. package/dist/NotificationSettings-B4JA5IKE.mjs +0 -677
  92. package/dist/NotificationUtils-BRGFTePr.mjs +0 -23
  93. package/dist/NumberFormatting--XMeeBfr.mjs +0 -49
  94. package/dist/OriginalBalanceAction-BybTXDtO.mjs +0 -114
  95. package/dist/RecurringSettings-D2xbNb67.mjs +0 -88
  96. package/dist/RecurringTransactionsUtil-B3rLEx_g.mjs +0 -253
  97. package/dist/ResponsiveButton-CC9F_Ezk.mjs +0 -45
  98. package/dist/SearchBox-Cpgu_gdO.mjs +0 -50
  99. package/dist/Select-BFt-HD-L.mjs +0 -55
  100. package/dist/SelectionBox-B4xELRgp.mjs +0 -48
  101. package/dist/SingleSegmentDonut-7Uy6VEld.mjs +0 -69
  102. package/dist/Sizes-DISGrlUg.mjs +0 -6
  103. package/dist/SkeletonLoader-BaNboJjD.mjs +0 -38
  104. package/dist/SpendingData-Fii_xATx.mjs +0 -53
  105. package/dist/SpendingLegend-5Ct_FZ8o.mjs +0 -193
  106. package/dist/StatusBar-CPfSXe80.mjs +0 -30
  107. package/dist/TabContentContainer-CnMXkVqr.mjs +0 -21
  108. package/dist/ToggleListItem-Dl1lXNwj.mjs +0 -91
  109. package/dist/TransactionDetails-DctXr07p.mjs +0 -1714
  110. package/dist/TransactionUtils-BphBJBbU.mjs +0 -234
  111. package/dist/TrendsUtil-D9z3kIj_.mjs +0 -69
  112. package/dist/UserStore-CRpKQjpP.mjs +0 -3002
  113. package/dist/ViewMoreMicroCard-BD_MNc2z.mjs +0 -1295
  114. package/dist/WidgetContainer-CmbU4CBH.mjs +0 -482
  115. package/dist/hooks-BaO_gOI6.mjs +0 -77
  116. package/dist/useAccountDisplayName-CFa_MrS6.mjs +0 -15
  117. package/dist/useAriaLive-MkYebyUR.mjs +0 -35
  118. package/dist/useDimensions-CeDR9V8N.mjs +0 -36
  119. package/dist/useInsightsEnabled-DaNLPmUU.mjs +0 -11
  120. package/dist/useScreenSize-mWpmnh5w.mjs +0 -36
  121. package/dist/useWidgetLoadTimer-CJb-RELP.mjs +0 -19
@@ -1,856 +0,0 @@
1
- import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
- import I, { useMemo as X, useState as P, useEffect as q } from "react";
3
- import L from "@mui/material/Box";
4
- import Y from "@mui/material/Button";
5
- import l from "@mui/material/Stack";
6
- import { MerchantLogo as J, Text as m, Icon as k, P as $, H3 as tt, H2 as et } from "@mxenabled/mxui";
7
- import { Receipt as nt, Icon as rt } from "@mxenabled/mx-icons";
8
- import { T as it, e as ot } from "./TransactionUtils-BphBJBbU.mjs";
9
- import { observer as V } from "mobx-react-lite";
10
- import { useVirtualizer as at } from "@tanstack/react-virtual";
11
- import st from "@mui/material/Divider";
12
- import ct from "@mui/material/List";
13
- import { G as lt, h as G, u as z, g as dt, b as Tt } from "./hooks-BaO_gOI6.mjs";
14
- import ht from "@mui/material/ListItemAvatar";
15
- import Ct from "@mui/material/ListItemText";
16
- import { useTheme as M } from "@mui/material/styles";
17
- import { f as H } from "./NumberFormatting--XMeeBfr.mjs";
18
- import { L as _t } from "./ListItemWrapper-B5r-YQQ_.mjs";
19
- import { fromUnixTime as v } from "date-fns/fromUnixTime";
20
- import { isSameDay as F } from "date-fns/isSameDay";
21
- import { f as ut, D as pt } from "./DateFormats-HudZ3Bjs.mjs";
22
- import { i as mt } from "./DateUtil-Bhq59ZVg.mjs";
23
- import { L as Z } from "./Loader-CxeBwuPG.mjs";
24
- import { A as gt } from "./Analytics-CzGzz_sE.mjs";
25
- import At from "@mui/material/Tab";
26
- import Nt from "@mui/material/Tabs";
27
- import ft from "@mui/material/IconButton";
28
- import { D as It } from "./Drawer-BXqqBMxg.mjs";
29
- import { ChartContainer as xt, ChartsReferenceLine as U, ChartsXAxis as St, BarPlot as Ot } from "@mui/x-charts";
30
- import Dt from "@mui/material/Card";
31
- const K = () => {
32
- if (!I.useContext(lt))
33
- throw new Error("useTransactionsUiStore() must be used within the GlobalDataContext");
34
- return G().uiStore;
35
- }, bt = {
36
- ON_TRANSACTION_CATEGORY_CLICK: "onTransactionCategoryClick",
37
- ON_TRANSACTION_CATEGORY_CHANGED: "onTransactionCategoryChanged",
38
- ON_TRANSACTION_MANUAL_ADD_CLICK: "onTransactionManualAddClick",
39
- ON_TRANSACTION_MANUAL_ADD_ADDED: "onTransactionManualAddAdded",
40
- ON_TRANSACTION_DATE_CHANGED: "onTransactionDateChanged",
41
- ON_TRANSACTION_DATE_CLICK: "onTransactionDateClick",
42
- ON_TRANSACTION_DELETE_CANCEL: "onTransactionDeleteCancel",
43
- ON_TRANSACTION_DELETE_CLICK: "onTransactionDeleteClick",
44
- ON_TRANSACTION_DELETE_DELETED: "onTransactionDeleted",
45
- ON_TRANSACTION_DELETE_LOGO_CANCEL: "onTransactionDeleteLogoCancel",
46
- ON_TRANSACTION_DELETE_LOGO_CLICK: "onTransactionDeleteLogoClick",
47
- ON_TRANSACTION_DELETE_LOGO_DELETED: "onTransactionDeletedLogo",
48
- ON_TRANSACTION_DESCRIPTION_EDIT_CLICK: "onTransactionDescriptionEditClick",
49
- ON_TRANSACTION_DESCRIPTION_SAVE_CLICK: "onTransactionDescriptionSaveClick",
50
- ON_TRANSACTION_EXPORT_CSV_CLICK: "onTransactionExportCsvClick",
51
- ON_TRANSACTION_HIDDEN: "onTransactionHidden",
52
- ON_TRANSACTION_HIDE_CLICK: "onTransactionHideClick",
53
- ON_TRANSACTION_HIDE_CANCEL_CLICK: "onTransactionHideCancelClick",
54
- ON_TRANSACTION_LIST_ITEM_CLICK: "onTransactionListItemClick",
55
- ON_TRANSACTION_MEMO_CHANGED: "onTransactionMemoChanged",
56
- ON_TRANSACTION_MEMO_CLICK: "onTransactionMemoClick",
57
- ON_TRANSACTION_SPLIT_ADD_CLICK: "onTransactionSplitAddClick",
58
- ON_TRANSACTION_SPLIT_CANCEL_CLICK: "onTransactionSplitCancelClick",
59
- ON_TRANSACTION_SPLIT_CATEGORY_CLICK: "onTransactionSplitCategoryClick",
60
- ON_TRANSACTION_SPLIT_CLICK: "onTransactionSplitClick",
61
- ON_TRANSACTION_SPLIT_DELETE_CLICK: "onTransactionSplitDeleteClick",
62
- ON_TRANSACTION_SPLIT_SAVE_CLICK: "onTransactionSplitSaveClick",
63
- ON_TRANSACTION_TAGS_CHANGED: "onTransactionTagsChanged",
64
- ON_TRANSACTION_TAGS_CLICK: "onTransactionTagsClick",
65
- ON_TRANSACTION_TAGS_TAG_ADD_CANCEL_CLICK: "onTransactionTagsTagAddCancelClick",
66
- ON_TRANSACTION_TAGS_TAG_ADD_CLICK: "onTransactionTagsTagAddClick",
67
- ON_TRANSACTION_TAGS_TAG_ADDED: "onTransactionTagsTagAdded",
68
- ON_TRANSACTION_TAGS_TAG_DELETE_CLICK: "onTransactionTagsTagDeleteClick",
69
- ON_TRANSACTION_TAGS_TAG_DELETE_CANCEL_CLICK: "onTransactionTagsTagDeleteCancelClick",
70
- ON_TRANSACTION_TAGS_TAG_DELETED: "onTransactionTagsTagDeleted",
71
- ON_TRANSACTION_TAGS_TAG_EDIT_CLICK: "onTransactionTagsTagEditClick",
72
- ON_TRANSACTION_TAGS_TAG_EDIT_SAVED: "onTransactionTagsTagEditSavedClick",
73
- ON_TRANSACTION_TOGGLE_FLAG_CLICK: "onTransactionToggleFlagClick",
74
- ON_TRANSACTION_UNHIDDEN: "onTransactionUnHidden",
75
- ON_TRANSACTION_UNHIDE_CLICK: "onTransactionUnHideClick",
76
- ON_TRANSACTION_UNHIDE_CANCEL_CLICK: "onTransactionUnHideCancelClick",
77
- ON_TRANSACTION_UNSPLIT: "onTransactionUnsplit",
78
- ON_TRANSACTION_UNSPLIT_CANCEL: "onTransactionUnsplitCancel"
79
- };
80
- function Et() {
81
- return window.opener && window.opener.location ? window.opener.location.toString() : document.referrer;
82
- }
83
- function Q(t) {
84
- const r = Et().replace(/([^:]+:\/\/[^\/]+).*/, "$1"), n = window.parent || window.opener || !1;
85
- return n && n.postMessage && r ? (n.postMessage(t, r), !0) : !1;
86
- }
87
- function Lt(t) {
88
- return Q({
89
- metadata: { beat_guid: t },
90
- mx: !0,
91
- type: "mx/moneyDashboard/insightOnTransaction"
92
- });
93
- }
94
- function fe(t) {
95
- return Q({
96
- metadata: { template: t },
97
- mx: !0,
98
- type: "mx/pulse/client_configured_cta"
99
- });
100
- }
101
- const yt = ({ transaction: t, onClick: r }) => {
102
- const i = M().palette.mode === "dark", { associatedBeats: o } = G(), { expandedSplits: c } = K(), { transactions: T } = z(), { showInsights: g } = K(), C = t.transaction_type === it.CREDIT, d = I.useMemo(() => o.find((a) => a.associated_transaction_guid === t.guid), [o, t]), p = (a, u) => {
103
- const A = [];
104
- return a.is_flagged && A.push(
105
- /* @__PURE__ */ e(
106
- k,
107
- {
108
- fill: !0,
109
- name: "flag",
110
- size: 16,
111
- sx: { color: u ? "primary.main" : "warning.dark" }
112
- },
113
- "flag"
114
- )
115
- ), a.is_hidden && A.push(/* @__PURE__ */ e(k, { name: "visibility_off", size: 16 }, "hidden")), a.has_been_split && A.push(/* @__PURE__ */ e(k, { name: "call_split", size: 16 }, "split")), A;
116
- }, _ = (a, u) => a.is_hidden ? u.is_excluded : a.has_been_split ? u.split_transaction_category_label : a.category || "";
117
- return (
118
- //TODO: implement common/components/ListItemRow.tsx
119
- /* @__PURE__ */ s(
120
- _t,
121
- {
122
- clickEventName: bt.ON_TRANSACTION_LIST_ITEM_CLICK,
123
- onClick: r ? () => r(t.guid) : void 0,
124
- sx: t.is_hidden ? { backgroundColor: "grey.50", color: "text.secondary" } : void 0,
125
- children: [
126
- /* @__PURE__ */ e(ht, { children: t.parent_guid && c.includes(t.parent_guid) ? /* @__PURE__ */ e(I.Fragment, {}) : /* @__PURE__ */ e(
127
- J,
128
- {
129
- categoryGuid: t.top_level_category_guid || "",
130
- merchantGuid: t.merchant_guid || ""
131
- }
132
- ) }),
133
- /* @__PURE__ */ e(
134
- Ct,
135
- {
136
- disableTypography: !0,
137
- secondary: /* @__PURE__ */ s(l, { direction: "row", justifyContent: "space-between", children: [
138
- /* @__PURE__ */ s(l, { alignItems: "center", direction: "row", gap: 4, children: [
139
- p(t, i),
140
- /* @__PURE__ */ e(m, { truncate: !0, variant: "caption", children: _(t, T) })
141
- ] }),
142
- d && g && /* @__PURE__ */ e(
143
- m,
144
- {
145
- bold: !0,
146
- color: "action.active",
147
- onClick: (a) => {
148
- a.stopPropagation(), a.preventDefault(), Lt(d.guid);
149
- },
150
- truncate: !0,
151
- variant: "caption",
152
- children: d.short_title
153
- }
154
- )
155
- ] }),
156
- children: /* @__PURE__ */ s(l, { direction: "row", justifyContent: "space-between", sx: { gap: 8 }, children: [
157
- /* @__PURE__ */ e(m, { bold: !0, truncate: !0, variant: "body1", children: t.payee || t.description || t.feed_description }),
158
- /* @__PURE__ */ s(
159
- m,
160
- {
161
- bold: !0,
162
- color: C ? "success.main" : "text.primary",
163
- sx: { flexShrink: 0 },
164
- variant: "body1",
165
- children: [
166
- C ? "+" : "",
167
- H(t.amount, "0,0.00")
168
- ]
169
- }
170
- )
171
- ] })
172
- }
173
- )
174
- ]
175
- }
176
- )
177
- );
178
- }, wt = V(yt), Rt = ({
179
- bgcolor: t = "background.default",
180
- children: r
181
- }) => /* @__PURE__ */ e(L, { display: "inline-block", sx: { bgcolor: t, py: 6, width: "100%" }, children: /* @__PURE__ */ e(m, { bold: !0, sx: { pl: 24 }, variant: "caption", children: r }) }), kt = ({ showIcon: t = !0, showSubtitle: r = !0 }) => {
182
- const { transactions: n } = z();
183
- return /* @__PURE__ */ s(l, { alignItems: "center", gap: 12, height: "auto", mb: 24, mt: 24, children: [
184
- t && /* @__PURE__ */ e(nt, { color: "action", sx: { fontSize: 32 } }),
185
- /* @__PURE__ */ e(m, { bold: !0, color: "text.secondary", variant: "body2", children: n.zero_state_no_transactions }),
186
- r && /* @__PURE__ */ e(m, { color: "text.secondary", variant: "caption", children: n.zero_state_there_are_no_transactions })
187
- ] });
188
- }, vt = V(kt), W = (t, r) => {
189
- const n = v(r[t].date), i = v(r[t - 1]?.date);
190
- return !F(n, i);
191
- }, Gt = (t, r) => {
192
- const n = v(r[t].date), i = v(r[t + 1]?.date);
193
- return F(n, i);
194
- }, Ie = (t) => t?.data ? t.data.map((r) => Object.fromEntries((t.names || []).map((n, i) => [n, r[i]]))) : [], xe = (t, r = "") => t.map((i) => {
195
- const o = ut(i.date, pt.MONTH_SHORT);
196
- return {
197
- ariaLabel: `
198
- ${o},
199
- ${H(i.amount, "0.00")},
200
- ${r}`,
201
- label: o,
202
- value: i.amount,
203
- formattedAmount: H(i.amount, "0,0")
204
- };
205
- }), B = 65, j = 32, Mt = ({
206
- bgcolor: t,
207
- filter: r,
208
- height: n = "calc(100dvh - 36px)",
209
- loader: i = /* @__PURE__ */ e(Z, { label: "Loading", size: 40 }),
210
- onClick: o,
211
- showInsights: c = !1,
212
- showLoader: T = !1,
213
- transaction: g,
214
- width: C = "100%",
215
- zeroState: d = /* @__PURE__ */ e(vt, {})
216
- }) => {
217
- const { isLoading: p, sortedTransactions: _ } = G(), a = I.useMemo(() => {
218
- const N = r ? _.filter(r) : _;
219
- return g ?? N;
220
- }, [_, g]), { clearExpandedSplits: u, setShowInsights: A, toggleSplit: b } = K(), { onEvent: S } = dt(), O = (N) => {
221
- const D = a.find((y) => y.guid === N);
222
- if (D?.has_been_split) {
223
- b(D.guid);
224
- return;
225
- }
226
- S(gt.ACCOUNT_DETAILS_CLICK_TRANSACTION, {
227
- account_guid: D?.account_guid,
228
- transaction_guid: N
229
- }), o?.(N);
230
- }, w = I.useRef(null), f = at({
231
- count: a.length,
232
- getScrollElement: () => w.current,
233
- estimateSize: (N) => B + (W(N, a) ? j : 0),
234
- overscan: 5
235
- });
236
- return I.useEffect(() => f.measure(), [a]), I.useEffect(() => A(c), [c]), I.useEffect(() => () => u(), []), /* @__PURE__ */ e(ct, { component: "div", role: "list", sx: { width: C }, children: /* @__PURE__ */ e(L, { height: n, overflow: "auto", ref: w, role: "presentation", width: C, children: /* @__PURE__ */ s(
237
- L,
238
- {
239
- height: (
240
- // set the height to auto when there are no transactions so the zero state isn't set to 0
241
- f.getVirtualItems().length === 0 ? "auto" : f.getTotalSize()
242
- ),
243
- position: "relative",
244
- role: "presentation",
245
- width: "100%",
246
- children: [
247
- (p || T) && i,
248
- !p && !T && f.getVirtualItems().length === 0 && d,
249
- !p && !T && f.getVirtualItems().length > 0 && f.getVirtualItems().map((N) => {
250
- const D = a[N.index], y = W(N.index, a), h = Gt(N.index, a), x = B + (y ? j : 0);
251
- return /* @__PURE__ */ s(
252
- L,
253
- {
254
- role: "listitem",
255
- sx: {
256
- height: x,
257
- position: "absolute",
258
- transform: `translateY(${N.start}px)`,
259
- width: "100%",
260
- bgcolor: "background.paper"
261
- },
262
- children: [
263
- y && /* @__PURE__ */ e(Rt, { bgcolor: t, children: mt(D.date) }),
264
- /* @__PURE__ */ e(
265
- wt,
266
- {
267
- ...o && { onClick: O },
268
- transaction: D
269
- }
270
- ),
271
- /* @__PURE__ */ e(st, { sx: { ml: h ? 68 : 0 } })
272
- ]
273
- },
274
- D.guid
275
- );
276
- })
277
- ]
278
- }
279
- ) }) });
280
- }, Ht = V(Mt), Kt = ({ message: t, tipAriaLabel: r, onDismiss: n, onAction: i, sx: o }) => {
281
- const c = i || n, T = i ? "chevron_right" : "close";
282
- return /* @__PURE__ */ s(
283
- l,
284
- {
285
- sx: {
286
- backgroundColor: "primary.lighter",
287
- borderRadius: "8px",
288
- mb: 24,
289
- mt: 12,
290
- p: 12,
291
- mx: 24,
292
- alignItems: "flex-start",
293
- justifyContent: "space-between",
294
- flexDirection: "row",
295
- gap: 8,
296
- ...o
297
- },
298
- children: [
299
- /* @__PURE__ */ s(l, { sx: { flexDirection: "row", gap: 4 }, children: [
300
- /* @__PURE__ */ e(k, { color: "info", fill: !0, name: "lightbulb", size: 24 }),
301
- /* @__PURE__ */ e($, { color: "primary.dark", fontWeight: 400, noWrap: !1, variant: "subtitle2", children: t })
302
- ] }),
303
- c && /* @__PURE__ */ e(
304
- ft,
305
- {
306
- "aria-label": r,
307
- onClick: c,
308
- size: "small",
309
- sx: { minHeight: 0, minWidth: 0, p: 0 },
310
- children: /* @__PURE__ */ e(k, { color: "primary", fill: !0, name: T, size: 20 })
311
- }
312
- )
313
- ]
314
- }
315
- );
316
- }, $t = ({
317
- ariaLabel: t,
318
- beat: r,
319
- chart: n,
320
- children: i,
321
- data: o,
322
- defaultSelectedIndex: c,
323
- icon: T,
324
- onTabChange: g,
325
- tipSection: C
326
- }) => {
327
- const { heading: d, subHeading: p } = r, _ = X(
328
- () => c ?? (o.length ? o.length - 1 : 0),
329
- [c, o.length]
330
- ), [a, u] = P(_), A = (S, O) => {
331
- g?.(O), u(O);
332
- }, b = (S) => {
333
- u(S);
334
- };
335
- return /* @__PURE__ */ s(L, { sx: { bgcolor: "background.paper", width: "100%" }, children: [
336
- /* @__PURE__ */ e(Nt, { "aria-label": t, onChange: A, value: a, variant: "fullWidth", children: o.map((S, O) => /* @__PURE__ */ e(
337
- At,
338
- {
339
- id: `transaction-details-tab-${O}`,
340
- label: S.label,
341
- sx: { minWidth: "auto", px: 0 }
342
- },
343
- `${S.label}-${O}`
344
- )) }),
345
- /* @__PURE__ */ e(l, { sx: { pt: 16, px: 24 }, children: (d || p) && /* @__PURE__ */ s(l, { sx: { gap: 4 }, children: [
346
- d && /* @__PURE__ */ e(tt, { children: d }),
347
- p && /* @__PURE__ */ s(l, { sx: { alignItems: "center", flexDirection: "row", gap: 8 }, children: [
348
- T,
349
- /* @__PURE__ */ e(m, { textTransform: "uppercase", variant: "body2", children: p.description })
350
- ] })
351
- ] }) }),
352
- n?.(a, b),
353
- C && /* @__PURE__ */ e(Kt, { ...C }),
354
- i?.(a)
355
- ] });
356
- }, Vt = (t) => {
357
- const [r, n] = P({ width: 0, height: 0 });
358
- return q(() => {
359
- const i = () => {
360
- if (t.current) {
361
- const { offsetWidth: o, offsetHeight: c } = t.current;
362
- n({ width: o, height: c });
363
- }
364
- };
365
- return i(), window.addEventListener("resize", i), () => {
366
- window.removeEventListener("resize", i);
367
- };
368
- }, [t]), r;
369
- }, zt = ({
370
- color: t,
371
- legendStyle: r = {},
372
- monthlyAmount: n,
373
- monthlyAmountLabel: i,
374
- trendAmount: o,
375
- trendAmountLabel: c
376
- }) => {
377
- const T = M();
378
- return /* @__PURE__ */ s(
379
- l,
380
- {
381
- sx: {
382
- alignItems: "center",
383
- flexDirection: "row",
384
- gap: 24,
385
- justifyContent: "flex-start",
386
- py: 4,
387
- width: "100%",
388
- ...r
389
- },
390
- children: [
391
- i && /* @__PURE__ */ s(l, { sx: { alignItems: "center", flexDirection: "row", gap: 8 }, children: [
392
- /* @__PURE__ */ e(
393
- "svg",
394
- {
395
- "aria-hidden": "true",
396
- "aria-labelledby": "chartLegendLabel",
397
- fill: "none",
398
- height: "12",
399
- role: "figure",
400
- width: "12",
401
- children: /* @__PURE__ */ e("rect", { fill: t, height: "12", rx: "2", width: "12" })
402
- }
403
- ),
404
- /* @__PURE__ */ s(m, { id: "chartLegendLabel", variant: "caption", children: [
405
- i,
406
- ": ",
407
- n
408
- ] })
409
- ] }),
410
- c && /* @__PURE__ */ s(l, { sx: { alignItems: "center", flexDirection: "row", gap: 8 }, children: [
411
- /* @__PURE__ */ e(
412
- "svg",
413
- {
414
- "aria-hidden": "true",
415
- "aria-labelledby": "chartLegendLabel",
416
- fill: "none",
417
- height: "12",
418
- role: "figure",
419
- width: "12",
420
- children: /* @__PURE__ */ e("rect", { fill: T.palette.chart.chart7, height: "12", rx: "2", width: "12" })
421
- }
422
- ),
423
- /* @__PURE__ */ s(m, { id: "chartLegendLabel", variant: "caption", children: [
424
- c,
425
- ": ",
426
- o
427
- ] })
428
- ] })
429
- ]
430
- }
431
- );
432
- }, Ut = (t, r) => {
433
- if (t <= 0 || r <= 0) return "";
434
- const n = Math.min(4, t / 2, r / 2);
435
- return `M${n},0 L${t - n},0 Q${t},0 ${t},${n} L${t},${r} L0,${r} L0,${n} Q0,0 ${n},0 Z`;
436
- }, Wt = ({
437
- colorRange: t,
438
- data: r,
439
- dataIndex: n,
440
- removeSelectedTabColorChange: i,
441
- selectedTabIndex: o,
442
- style: c,
443
- ...T
444
- }) => {
445
- const g = M(), { ariaLabel: C, formattedAmount: d } = r[n], p = o === n ? "bold" : 400, _ = c.x ?? 0, a = c.y ?? 0, u = c.width ?? 0, A = c.height ?? 0;
446
- return /* @__PURE__ */ s("g", { "aria-label": C, children: [
447
- /* @__PURE__ */ e(
448
- "path",
449
- {
450
- ...T,
451
- d: Ut(u, A),
452
- fill: t[n],
453
- transform: `translate(${_}, ${a})`
454
- }
455
- ),
456
- /* @__PURE__ */ e(
457
- "text",
458
- {
459
- fill: g.palette.text.primary,
460
- fontSize: 11,
461
- fontWeight: i ? "bold" : p,
462
- textAnchor: "middle",
463
- x: _ + u / 2,
464
- y: a - 8,
465
- children: d
466
- }
467
- )
468
- ] });
469
- }, Bt = ({
470
- amounts: t,
471
- color: r,
472
- data: n,
473
- heightOverride: i,
474
- margin: o = {
475
- bottom: 30,
476
- left: 40,
477
- right: 40,
478
- top: 20
479
- },
480
- onBarClick: c,
481
- legendPosition: T = "bottom",
482
- monthlyAmountLabel: g,
483
- removeSelectedTabColorChange: C,
484
- selectedTabIndex: d,
485
- trendAmountLabel: p
486
- }) => {
487
- const _ = I.useRef(null), { height: a, width: u } = Vt(_), A = M(), b = I.useMemo(() => {
488
- const h = n.map(({ value: R }) => R), x = Math.min(...h), E = Math.max(...h);
489
- return {
490
- series: [
491
- {
492
- data: h,
493
- type: "bar"
494
- }
495
- ],
496
- xAxis: [
497
- {
498
- data: n.map(({ label: R }) => R),
499
- scaleType: "band",
500
- categoryGapRatio: 0.45
501
- }
502
- ],
503
- yAxis: [
504
- {
505
- scaleType: "linear",
506
- min: x < 0 ? x * 1.2 : 0,
507
- max: E > 0 ? E : 0
508
- }
509
- ]
510
- };
511
- }, [n]), S = I.useMemo(() => {
512
- const h = `${r}80`;
513
- return C ? n.map(() => r) : d == null ? [...new Array(n.length - 1).fill(h), r] : n.map((x, E) => E === d ? r : h);
514
- }, [r, n, d]), O = I.useMemo(
515
- () => n[d ?? n.length - 1],
516
- [n, d]
517
- ), f = n.reduce((h, x) => Math.min(h, x.value), 1 / 0) < 0, N = /* @__PURE__ */ e(
518
- zt,
519
- {
520
- color: r,
521
- legendStyle: { pl: o.left },
522
- monthlyAmount: O.formattedAmount,
523
- monthlyAmountLabel: g,
524
- trendAmount: t?.formattedAverage,
525
- trendAmountLabel: p
526
- }
527
- ), D = g || p, y = (h, { dataIndex: x }) => c?.(x);
528
- return /* @__PURE__ */ s(l, { sx: { alignItems: "center", width: "100%" }, children: [
529
- D && T === "top" && N,
530
- /* @__PURE__ */ e(
531
- L,
532
- {
533
- ref: _,
534
- sx: {
535
- height: i || 122,
536
- mb: T === "top" ? 0 : 4,
537
- mt: T === "top" ? 4 : 0,
538
- touchAction: "pan-y",
539
- width: "100%",
540
- "& svg": {
541
- touchAction: "pan-y",
542
- userSelect: "none"
543
- },
544
- "& .recharts-wrapper": {
545
- touchAction: "pan-y"
546
- }
547
- },
548
- children: /* @__PURE__ */ s(
549
- xt,
550
- {
551
- height: a,
552
- margin: {
553
- bottom: o.bottom,
554
- left: o.left,
555
- right: o.right,
556
- top: o.top || 45
557
- },
558
- series: b.series,
559
- width: u,
560
- xAxis: b.xAxis,
561
- yAxis: [{ width: 0 }],
562
- children: [
563
- t?.average && /* @__PURE__ */ e(
564
- U,
565
- {
566
- labelAlign: "middle",
567
- lineStyle: {
568
- stroke: A.palette.chart.chart7,
569
- strokeDasharray: "4",
570
- strokeLinecap: "round",
571
- strokeWidth: 1
572
- },
573
- y: t?.average
574
- }
575
- ),
576
- f && /* @__PURE__ */ e(
577
- U,
578
- {
579
- labelAlign: "middle",
580
- lineStyle: {
581
- stroke: A.palette.chart.chart7
582
- },
583
- y: 0
584
- }
585
- ),
586
- /* @__PURE__ */ e(
587
- St,
588
- {
589
- slots: {
590
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
591
- axisTickLabel: ({ text: h, ownerState: x, ...E }) => {
592
- const R = n[d ?? n.length - 1]?.label;
593
- return /* @__PURE__ */ e(
594
- "text",
595
- {
596
- ...E,
597
- style: {
598
- ...E.style,
599
- fontWeight: !C && R === h ? "bold" : 400
600
- },
601
- children: h
602
- }
603
- );
604
- }
605
- },
606
- sx: (h) => ({
607
- "& .MuiChartsAxis-line": {
608
- stroke: f ? "none" : h.palette.text?.primary
609
- },
610
- "& .MuiChartsAxis-tickContainer:first-of-type .MuiChartsAxis-tick": {
611
- display: "none"
612
- },
613
- "& .MuiChartsAxis-tickLabel": {
614
- transform: f ? "translateY(15px)" : {}
615
- }
616
- }),
617
- tickLabelStyle: {
618
- fontSize: 11
619
- }
620
- }
621
- ),
622
- /* @__PURE__ */ e(
623
- Ot,
624
- {
625
- onItemClick: y,
626
- slots: {
627
- bar: (h) => {
628
- const { ownerState: x, ...E } = h;
629
- return /* @__PURE__ */ e(
630
- Wt,
631
- {
632
- ...E,
633
- colorRange: S,
634
- data: n,
635
- dataIndex: x.dataIndex,
636
- removeSelectedTabColorChange: C,
637
- selectedTabIndex: d ?? n.length - 1,
638
- style: {
639
- height: h.height,
640
- x: h.x,
641
- y: h.y,
642
- width: h.width
643
- }
644
- }
645
- );
646
- }
647
- }
648
- }
649
- )
650
- ]
651
- }
652
- )
653
- }
654
- ),
655
- D && T === "bottom" && N
656
- ] });
657
- }, Se = ({
658
- ariaLabel: t,
659
- barChartProps: r,
660
- beat: n,
661
- data: i,
662
- defaultSelectedIndex: o = 0,
663
- icon: c,
664
- isOpen: T = !1,
665
- onClose: g,
666
- onTabChange: C,
667
- tipSection: d,
668
- title: p,
669
- transactionListProps: _ = {}
670
- }) => {
671
- const { common: a, transactions: u } = z(), { isCopyLoaded: A } = Tt(), { sortedTransactionsWithSplits: b, tags: S } = G();
672
- return A ? /* @__PURE__ */ e(It, { ariaLabelClose: a.close_aria, isOpen: T, onClose: g, title: p, children: /* @__PURE__ */ e(
673
- $t,
674
- {
675
- ariaLabel: t,
676
- beat: n,
677
- chart: (O, w) => /* @__PURE__ */ e(L, { sx: { pt: 16 }, children: /* @__PURE__ */ e(
678
- Bt,
679
- {
680
- ...r,
681
- onBarClick: (f) => {
682
- w(f), r.onBarClick?.(f);
683
- },
684
- selectedTabIndex: O
685
- }
686
- ) }),
687
- data: i,
688
- defaultSelectedIndex: o,
689
- icon: c,
690
- onTabChange: C,
691
- tipSection: d,
692
- children: () => /* @__PURE__ */ s(I.Fragment, { children: [
693
- /* @__PURE__ */ s(
694
- l,
695
- {
696
- sx: {
697
- alignItems: "center",
698
- borderBottomColor: "divider",
699
- borderBottomStyle: "solid",
700
- borderBottomWidth: 1,
701
- flexDirection: "row",
702
- justifyContent: "space-between",
703
- pb: 4,
704
- pt: 16,
705
- px: 24
706
- },
707
- children: [
708
- /* @__PURE__ */ e(m, { bold: !0, variant: "body1", children: u.transactions_title }),
709
- (_?.transaction || b.length > 0) && /* @__PURE__ */ e(
710
- Y,
711
- {
712
- onClick: () => {
713
- ot(
714
- _?.transaction || b,
715
- S
716
- );
717
- },
718
- startIcon: /* @__PURE__ */ e(rt, { name: "ios_share" }),
719
- sx: { height: 28 },
720
- children: /* @__PURE__ */ e(m, { bold: !0, variant: "body2", children: u.export_csv_btn })
721
- }
722
- )
723
- ]
724
- }
725
- ),
726
- /* @__PURE__ */ e(Ht, { ..._ })
727
- ] })
728
- }
729
- ) }) : /* @__PURE__ */ e(Z, {});
730
- }, Oe = ({
731
- amount: t,
732
- borderRadius: r = "2px",
733
- count: n,
734
- completeColor: i = "success.main",
735
- icon: o,
736
- label: c,
737
- leftLabel: T,
738
- percentComplete: g = 0,
739
- rightLabel: C,
740
- sx: d
741
- }) => /* @__PURE__ */ s(l, { className: "details-container", sx: { p: 24, width: "100%", gap: 16, ...d }, children: [
742
- /* @__PURE__ */ s(l, { sx: { alignItems: "center", flexDirection: "row", gap: 12 }, children: [
743
- /* @__PURE__ */ e(L, { children: o }),
744
- /* @__PURE__ */ s(l, { children: [
745
- typeof c == "string" ? /* @__PURE__ */ e($, { dangerouslySetInnerHTML: { __html: c }, variant: "body2" }) : c,
746
- typeof t == "string" ? /* @__PURE__ */ e(et, { children: t }) : t
747
- ] })
748
- ] }),
749
- /* @__PURE__ */ s(l, { sx: { gap: 4 }, children: [
750
- /* @__PURE__ */ e(
751
- l,
752
- {
753
- sx: {
754
- bgcolor: "divider",
755
- borderRadius: r,
756
- flexDirection: "row",
757
- height: n ? 20 : 16,
758
- width: "100%"
759
- },
760
- children: /* @__PURE__ */ e(
761
- L,
762
- {
763
- sx: {
764
- alignItems: "center",
765
- display: "flex",
766
- py: 2,
767
- px: 12,
768
- bgcolor: i,
769
- borderRadius: r,
770
- height: n ? 20 : 16,
771
- width: `${g}%`
772
- },
773
- children: /* @__PURE__ */ e(m, { sx: { color: "primary.dark" }, variant: "caption", children: n })
774
- }
775
- )
776
- }
777
- ),
778
- !n && /* @__PURE__ */ s(l, { sx: { flexDirection: "row", justifyContent: "space-between" }, children: [
779
- /* @__PURE__ */ e(m, { variant: "body2", children: T }),
780
- /* @__PURE__ */ e(m, { variant: "body2", children: C })
781
- ] })
782
- ] })
783
- ] }), De = ({
784
- title: t,
785
- description: r,
786
- callToAction: n,
787
- instanceSlot: i = void 0,
788
- onCtaClick: o = () => {
789
- }
790
- }) => /* @__PURE__ */ s(Dt, { sx: { pt: 8, pr: 16, pb: 12, pl: 8, borderRadius: "8px" }, children: [
791
- /* @__PURE__ */ e(
792
- l,
793
- {
794
- sx: {
795
- flexDirection: "row",
796
- alignItems: "center",
797
- justifyContent: "space-between",
798
- pt: 4,
799
- pl: 8
800
- },
801
- children: /* @__PURE__ */ e(m, { bold: !0, variant: "body1", children: t })
802
- }
803
- ),
804
- /* @__PURE__ */ s(
805
- l,
806
- {
807
- sx: {
808
- gap: 16,
809
- alignItems: "center",
810
- flexDirection: "row",
811
- justifyContent: "space-between"
812
- },
813
- children: [
814
- /* @__PURE__ */ s(l, { children: [
815
- /* @__PURE__ */ e(l, { sx: { pt: 2, pl: 8, pb: 8 }, children: /* @__PURE__ */ e($, { sx: { fontWeight: 400 }, variant: "subtitle2", children: r }) }),
816
- /* @__PURE__ */ e(l, { sx: { alignItems: "flex-start" }, children: /* @__PURE__ */ e(
817
- Y,
818
- {
819
- onClick: o,
820
- sx: {
821
- p: 0,
822
- height: 24,
823
- px: 8,
824
- py: 8,
825
- fontWeight: 600,
826
- fontSize: 13,
827
- lineHeight: "16px"
828
- },
829
- variant: "text",
830
- children: n
831
- }
832
- ) })
833
- ] }),
834
- i
835
- ]
836
- }
837
- )
838
- ] });
839
- export {
840
- Bt as B,
841
- Se as C,
842
- De as E,
843
- bt as O,
844
- Rt as S,
845
- Ht as T,
846
- wt as a,
847
- Oe as b,
848
- Ie as c,
849
- xe as d,
850
- Vt as e,
851
- $t as f,
852
- Gt as h,
853
- fe as p,
854
- W as s,
855
- K as u
856
- };