@mx-cartographer/experiences 9.1.0 → 9.1.2

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 (59) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/{AccountDetailsDrawer-CZPeLsCq.mjs → AccountDetailsDrawer-Cq4kiiKD.mjs} +5 -5
  3. package/dist/{AccountDetailsDrawer-CZPeLsCq.mjs.map → AccountDetailsDrawer-Cq4kiiKD.mjs.map} +1 -1
  4. package/dist/AccountDetailsHeader-BliEZhz7.mjs +230 -0
  5. package/dist/AccountDetailsHeader-BliEZhz7.mjs.map +1 -0
  6. package/dist/AccountUtils-Cbh8r9cP.mjs +29 -0
  7. package/dist/AccountUtils-Cbh8r9cP.mjs.map +1 -0
  8. package/dist/{Analytics-WeZYytR0.mjs → Analytics-D-jdcL72.mjs} +3 -3
  9. package/dist/Analytics-D-jdcL72.mjs.map +1 -0
  10. package/dist/{EmbeddedCard-DH8vQ3qN.mjs → EmbeddedCard-DCOQnTz-.mjs} +2 -2
  11. package/dist/{EmbeddedCard-DH8vQ3qN.mjs.map → EmbeddedCard-DCOQnTz-.mjs.map} +1 -1
  12. package/dist/{ExportCsvAction-C9KWH3Az.mjs → ExportCsvAction-C-IisDcv.mjs} +2 -2
  13. package/dist/{ExportCsvAction-C9KWH3Az.mjs.map → ExportCsvAction-C-IisDcv.mjs.map} +1 -1
  14. package/dist/{Help-aERwhajy.mjs → Help-zVZdcmlk.mjs} +2 -2
  15. package/dist/{Help-aERwhajy.mjs.map → Help-zVZdcmlk.mjs.map} +1 -1
  16. package/dist/{ManageIncome-Dcsnnz86.mjs → ManageIncome-B_8i71mE.mjs} +6 -6
  17. package/dist/{ManageIncome-Dcsnnz86.mjs.map → ManageIncome-B_8i71mE.mjs.map} +1 -1
  18. package/dist/{NetWorthUtils-DfSH3z70.mjs → NetWorthUtils-Dj7CgAg2.mjs} +2 -2
  19. package/dist/{NetWorthUtils-DfSH3z70.mjs.map → NetWorthUtils-Dj7CgAg2.mjs.map} +1 -1
  20. package/dist/{RecurringSettings-D8hBbXV_.mjs → RecurringSettings-hs0YUp83.mjs} +3 -3
  21. package/dist/{RecurringSettings-D8hBbXV_.mjs.map → RecurringSettings-hs0YUp83.mjs.map} +1 -1
  22. package/dist/{TransactionDetails-roZ5xLq8.mjs → TransactionDetails-DT-MQqOB.mjs} +3 -3
  23. package/dist/{TransactionDetails-roZ5xLq8.mjs.map → TransactionDetails-DT-MQqOB.mjs.map} +1 -1
  24. package/dist/{UserStore-C1fdL3Iu.mjs → UserStore-BjnNCO5a.mjs} +266 -199
  25. package/dist/UserStore-BjnNCO5a.mjs.map +1 -0
  26. package/dist/{WidgetContainer-DJnp6t6c.mjs → WidgetContainer-CjdCY4sj.mjs} +21 -21
  27. package/dist/WidgetContainer-CjdCY4sj.mjs.map +1 -0
  28. package/dist/accounts/index.es.js +6 -6
  29. package/dist/budgets/index.es.js +5 -5
  30. package/dist/cashflow/context/hooks.d.ts +7 -6
  31. package/dist/cashflow/index.es.js +436 -464
  32. package/dist/cashflow/index.es.js.map +1 -1
  33. package/dist/common/components/daterangeselector/DateRangeSelector.d.ts +5 -0
  34. package/dist/common/index.es.js +3 -3
  35. package/dist/core/index.es.js +1 -1
  36. package/dist/core/stores/CashflowStore.d.ts +8 -7
  37. package/dist/core/stores/RecurringTransactionsStore.d.ts +24 -0
  38. package/dist/core/utils/AccountUtils.d.ts +8 -0
  39. package/dist/debts/index.es.js +3 -3
  40. package/dist/finstrong/index.es.js +5 -5
  41. package/dist/goals/index.es.js +2 -2
  42. package/dist/help/index.es.js +2 -2
  43. package/dist/insights/index.es.js +2 -2
  44. package/dist/investments/index.es.js +2 -2
  45. package/dist/networth/index.es.js +79 -77
  46. package/dist/networth/index.es.js.map +1 -1
  47. package/dist/recurringtransactions/index.es.js +6 -6
  48. package/dist/settings/index.es.js +2 -2
  49. package/dist/spending/index.es.js +4 -4
  50. package/dist/transactions/index.es.js +7 -7
  51. package/dist/trends/index.es.js +5 -5
  52. package/package.json +1 -1
  53. package/dist/AccountDetailsHeader-BvbCUQSS.mjs +0 -231
  54. package/dist/AccountDetailsHeader-BvbCUQSS.mjs.map +0 -1
  55. package/dist/AccountUtils-B8ZzWI-d.mjs +0 -28
  56. package/dist/AccountUtils-B8ZzWI-d.mjs.map +0 -1
  57. package/dist/Analytics-WeZYytR0.mjs.map +0 -1
  58. package/dist/UserStore-C1fdL3Iu.mjs.map +0 -1
  59. package/dist/WidgetContainer-DJnp6t6c.mjs.map +0 -1
@@ -0,0 +1,230 @@
1
+ import { jsx as l, jsxs as p } from "react/jsx-runtime";
2
+ import { observer as g } from "mobx-react-lite";
3
+ import d from "@mui/material/Stack";
4
+ import { Text as b, Icon as y, H3 as M, InstitutionLogo as H, H2 as U } from "@mxenabled/mxui";
5
+ import { f as _, i as C, a as Y, b as w } from "./NumberFormatting--XMeeBfr.mjs";
6
+ import h from "react";
7
+ import { G as j, c as v, l as k, e as V, i as z, u as B } from "./hooks-97sNJ_lf.mjs";
8
+ import { c as u, b as W, f as $, h as q } from "./Account-DR7Plrqy.mjs";
9
+ import { g as A, a as K, u as J, i as Q, b as X, c as Z } from "./AccountUtils-Cbh8r9cP.mjs";
10
+ import { F as o } from "./Connect-BH0Pt6zc.mjs";
11
+ import { j as T } from "./DateUtil-CzBmbjmA.mjs";
12
+ import { b as s } from "./Localization-DnoVyBNK.mjs";
13
+ import { f as S, D } from "./DateFormats-HudZ3Bjs.mjs";
14
+ import ee from "@mui/material/Card";
15
+ import te from "@mui/material/CardContent";
16
+ import ae from "@mui/material/CardHeader";
17
+ import { L as ne } from "./Loader-CxeBwuPG.mjs";
18
+ import { I as ie, P as re, S as le } from "./TabContentContainer-B0eYJP5p.mjs";
19
+ import { u as se } from "./useAccountDisplayName-BsiXA0qf.mjs";
20
+ const I = () => {
21
+ if (!h.useContext(j))
22
+ throw new Error("useCategoryUiStore() must be used within the GlobalDataContext");
23
+ return v().uiStore;
24
+ }, Pe = (n, e) => {
25
+ const r = [
26
+ {
27
+ event: "account_details_click_account_name",
28
+ label: e.account_name,
29
+ name: "user_name",
30
+ placeholder: s(e.enter_value, e.account_name),
31
+ type: o.Input,
32
+ validation: (t) => t ? "" : s(e.field_is_required, e.account_name),
33
+ valueFormatter: (t) => t
34
+ }
35
+ ];
36
+ if (K(n)) {
37
+ r.unshift({
38
+ label: e.account_balance,
39
+ name: "balance",
40
+ placeholder: s(e.enter_value, e.account_balance),
41
+ type: o.Currency,
42
+ valueFormatter: (a) => _(a, "0,0.00")
43
+ });
44
+ const t = Object.keys(u).filter((a) => Number(a)).map((a) => ({
45
+ label: e.account_types[a],
46
+ value: Number(a),
47
+ icon: /* @__PURE__ */ l(y, { name: W[a] })
48
+ }));
49
+ r.push({
50
+ label: e.account_type,
51
+ name: "account_type",
52
+ options: t,
53
+ placeholder: s(e.select_value, e.account_type),
54
+ type: o.Select,
55
+ valueFormatter: (a) => t.find((i) => i.value === a)?.label
56
+ });
57
+ }
58
+ if (n.account_type === u.PROPERTY) {
59
+ const t = Object.keys($).filter((a) => Number(a)).map((a) => ({
60
+ label: e.property_types[a],
61
+ value: Number(a),
62
+ icon: /* @__PURE__ */ l(y, { name: q[a] })
63
+ }));
64
+ r.push({
65
+ label: e.property_type,
66
+ name: "property_type",
67
+ options: t,
68
+ placeholder: s(e.select_value, e.property_type),
69
+ type: o.Select,
70
+ valueFormatter: (a) => t.find((i) => i.value === a)?.label
71
+ });
72
+ }
73
+ if (J(n)) {
74
+ let t = e.interest_rate, a = "interest_rate";
75
+ n.is_manual || (typeof n.apr == "number" && (t = e.apr, a = "apr"), typeof n.apy == "number" && (t = e.apy, a = "apy")), r.push({
76
+ event: "account_details_click_interest_rate",
77
+ label: t,
78
+ name: a,
79
+ placeholder: s(e.enter_value, t),
80
+ type: o.Input,
81
+ validation: (i) => C(i) ? "" : e.error_amount_is_invalid,
82
+ valueFormatter: (i) => C(i) ? Y(i / 100) : i
83
+ });
84
+ }
85
+ return Q(n) && (r.push({
86
+ label: e.minimum_payment,
87
+ name: "minimum_payment",
88
+ placeholder: s(e.enter_value, e.minimum_payment),
89
+ type: o.Currency,
90
+ valueFormatter: (t) => _(t, "0,0.00")
91
+ }), n.payment_due_at ? r.push({
92
+ label: e.next_payment,
93
+ name: "payment_due_at",
94
+ type: o.Date,
95
+ valueFormatter: (t) => {
96
+ const a = typeof t == "number" ? T(t) : t;
97
+ return S(a, D.MED_MONTH_SHORT_DAY_FULL_YEAR);
98
+ }
99
+ }) : r.push({
100
+ label: e.day_payment_due,
101
+ name: "day_payment_is_due",
102
+ placeholder: s(e.enter_value, e.day_payment_due),
103
+ type: o.Date,
104
+ valueFormatter: (t) => s(
105
+ e.day_of_every_month,
106
+ w(t <= 31 ? t : new Date(t).getDate())
107
+ )
108
+ })), X(n) && r.push({
109
+ label: e.credit_limit,
110
+ name: "credit_limit",
111
+ placeholder: s(e.enter_value, e.credit_limit),
112
+ type: o.Currency,
113
+ valueFormatter: (t) => _(t, "0,0.00")
114
+ }), Z(n) && r.push({
115
+ label: e.original_balance,
116
+ minAmount: 1,
117
+ name: "original_balance",
118
+ placeholder: s(e.enter_value, e.original_balance),
119
+ type: o.Currency,
120
+ valueFormatter: (t) => _(t, "0,0.00")
121
+ }), r;
122
+ }, N = (n, e, r) => {
123
+ let t = "", a = null, i = null, m = null, c = !1;
124
+ switch (n.account_type) {
125
+ // checking or savings
126
+ case 1:
127
+ case 2: {
128
+ n.available_balance != null && r ? (t = e.available_balance, a = A(n, r), i = e.current_balance, m = _(n.balance, "0,0.00"), c = !0) : (t = e.current_balance, a = A(n, r));
129
+ break;
130
+ }
131
+ default:
132
+ if (t = e.current_balance, a = n.balance, n.minimum_payment && n.payment_due_at) {
133
+ const f = T(n.payment_due_at);
134
+ i = /* @__PURE__ */ l(b, { component: "strong", variant: "caption", children: s(
135
+ e.payment_due_on,
136
+ _(n.minimum_payment, "0,0.00"),
137
+ S(f, D.FULL_MONTH_DAY)
138
+ ) });
139
+ } else n.credit_limit && (i = e.available_credit, m = _(n.credit_limit - (n?.balance ?? 0), "0,0.00"));
140
+ }
141
+ return {
142
+ firstSubtitle: t,
143
+ firstValue: a,
144
+ secondSubtitle: i,
145
+ secondValue: m,
146
+ hasAvailableBalance: c
147
+ };
148
+ }, xe = (n, e, r) => n.reduce((a, i) => {
149
+ const c = N(i, e, r).firstValue || 0;
150
+ return a + c;
151
+ }, 0), oe = (n, e) => {
152
+ const r = [u.LOAN, u.MORTGAGE, u.PROPERTY].includes(
153
+ n
154
+ ), t = [
155
+ u.CREDIT_CARD,
156
+ u.LINE_OF_CREDIT,
157
+ u.PREPAID,
158
+ u.CHECKING_LINE_OF_CREDIT
159
+ ].includes(n);
160
+ return r ? { title: e.label_payments, description: e.chart_title_payments } : t ? { title: e.label_payments_spend, description: e.chart_title_payments_spend } : { title: e.label_income_spend, description: e.chart_title_income_spend };
161
+ }, ue = ({
162
+ sx: n,
163
+ ChartComponent: e,
164
+ header: r
165
+ }) => {
166
+ const { loadMonthlyCategoryTotals: t } = k(), { isInitialized: a } = V(), { selectedAccount: i } = I(), [m, c] = h.useState(!1);
167
+ return h.useEffect(() => {
168
+ a && t([i]).finally(() => {
169
+ c(!0);
170
+ });
171
+ }, [a, i]), !a || !m ? /* @__PURE__ */ l(ne, {}) : /* @__PURE__ */ p(
172
+ ee,
173
+ {
174
+ sx: {
175
+ "& .MuiCardContent-root:last-child": {
176
+ pb: 0
177
+ },
178
+ ...n
179
+ },
180
+ children: [
181
+ /* @__PURE__ */ l(ae, { sx: { pb: 0 }, title: /* @__PURE__ */ l(M, { sx: { pb: 4 }, children: r }) }),
182
+ /* @__PURE__ */ l(te, { sx: { p: 0 }, children: e ? /* @__PURE__ */ l(e, {}) : null })
183
+ ]
184
+ }
185
+ );
186
+ }, me = g(ue), ce = ({
187
+ customDetailsChart: n,
188
+ ChartComponent: e
189
+ }) => {
190
+ const { institutions: r } = v(), { selectedAccount: t } = I(), { config: a } = z(), { accounts: i } = B(), { firstSubtitle: m, firstValue: c, hasAvailableBalance: f, secondSubtitle: E, secondValue: F } = N(t, i, a.display_available_balance_in_accounts), O = r.find(
191
+ (G) => G.guid === t?.institution_guid
192
+ ), P = [
193
+ ...ie,
194
+ ...re,
195
+ ...le
196
+ ].includes(t.account_type), x = se(t), { title: R, description: L } = oe(t.account_type, i);
197
+ return /* @__PURE__ */ p(d, { bgcolor: "background.default", p: 24, children: [
198
+ /* @__PURE__ */ p(d, { gap: 12, children: [
199
+ /* @__PURE__ */ l(
200
+ H,
201
+ {
202
+ alt: i.institution_logo_alt,
203
+ institutionGuid: t.institution_guid || "",
204
+ size: 64
205
+ }
206
+ ),
207
+ /* @__PURE__ */ l(b, { variant: "body2", children: O?.name })
208
+ ] }),
209
+ /* @__PURE__ */ p(d, { gap: 8, mb: 24, mt: 4, children: [
210
+ /* @__PURE__ */ l(U, { children: x }),
211
+ /* @__PURE__ */ p(d, { direction: "row", justifyContent: "space-between", children: [
212
+ /* @__PURE__ */ l(b, { bold: f, variant: "body1", children: m }),
213
+ /* @__PURE__ */ l(b, { bold: !0, variant: "body1", children: _(c, "0,0.00") })
214
+ ] }),
215
+ /* @__PURE__ */ p(d, { direction: "row", justifyContent: "space-between", children: [
216
+ /* @__PURE__ */ l(b, { variant: "body2", children: E }),
217
+ /* @__PURE__ */ l(b, { variant: "body2", children: F })
218
+ ] })
219
+ ] }),
220
+ P && /* @__PURE__ */ l(d, { "aria-label": L, role: "img", children: n || /* @__PURE__ */ l(me, { ChartComponent: e, header: R }) })
221
+ ] });
222
+ }, Re = g(ce);
223
+ export {
224
+ Re as A,
225
+ N as a,
226
+ Pe as b,
227
+ xe as g,
228
+ I as u
229
+ };
230
+ //# sourceMappingURL=AccountDetailsHeader-BliEZhz7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountDetailsHeader-BliEZhz7.mjs","sources":["../src/accounts/hooks/useUiStore.ts","../src/accounts/utils/AccountFields.tsx","../src/accounts/utils/AccountDetails.ts","../src/accounts/components/detailsdrawer/Accounts/AccountDetailsChart.tsx","../src/accounts/components/detailsdrawer/Accounts/AccountDetailsHeader.tsx"],"sourcesContent":["import React from 'react'\nimport { GlobalDataContext, useAccountStore } from '../../common'\n\nexport const useAccountUiStore = () => {\n const context = React.useContext(GlobalDataContext)\n\n if (!context) {\n throw new Error('useCategoryUiStore() must be used within the GlobalDataContext')\n }\n\n return useAccountStore().uiStore\n}\n","import { Icon, Text } from '@mxenabled/mxui'\n\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\nimport { AccountIcon, AccountType, PropertyType } from '../../core'\nimport type { Account, AccountsCopy } from '../../core'\n\nimport { PropertyIcon } from '../../core/types/Account'\nimport {\n getAccountStartingBalance,\n isAccountLiability,\n isManual,\n usesCreditLimitField,\n usesInterestRateField,\n usesOriginalBalanceField,\n} from '../../core/utils/AccountUtils'\nimport { FieldType } from '../constants/Accounts'\nimport { fromUnixUTC } from '../../core/utils/DateUtil'\nimport {\n formatCurrency,\n formatOrdinal,\n formatPercentage,\n isValidNumber,\n} from '../../core/utils/NumberFormatting'\nimport { buildDynamicCopy } from '../../core/utils/Localization'\n\ntype SelectOption = {\n label: string\n value: number\n icon: React.ReactElement\n}\n\nexport type AccountField = {\n event?: string\n label: string\n minAmount?: number\n options?: SelectOption[]\n name: keyof Account\n placeholder?: string\n type?: string\n validation?: (val: any) => string\n valueFormatter: (val: any) => any\n}\n\nexport const getAccountDetailFields = (account: Account, copy: AccountsCopy) => {\n const fields: AccountField[] = [\n {\n event: 'account_details_click_account_name',\n label: copy.account_name,\n name: 'user_name',\n placeholder: buildDynamicCopy(copy.enter_value, copy.account_name) as string,\n type: FieldType.Input,\n validation: (val: string) =>\n val ? '' : (buildDynamicCopy(copy.field_is_required, copy.account_name) as string),\n valueFormatter: (val) => val,\n },\n ]\n\n if (isManual(account)) {\n fields.unshift({\n label: copy.account_balance,\n name: 'balance',\n placeholder: buildDynamicCopy(copy.enter_value, copy.account_balance) as string,\n type: FieldType.Currency,\n valueFormatter: (val) => formatCurrency(val, '0,0.00'),\n })\n\n const accountTypeOptions = Object.keys(AccountType)\n .filter((key) => Number(key))\n .map((value) => ({\n label: copy.account_types[value],\n value: Number(value),\n icon: <Icon name={AccountIcon[value]} />,\n }))\n\n fields.push({\n label: copy.account_type,\n name: 'account_type',\n options: accountTypeOptions,\n placeholder: buildDynamicCopy(copy.select_value, copy.account_type) as string,\n type: FieldType.Select,\n valueFormatter: (val) => accountTypeOptions.find((option) => option.value === val)?.label,\n })\n }\n\n if (account.account_type === AccountType.PROPERTY) {\n const propertyTypeOptions = Object.keys(PropertyType)\n .filter((key) => Number(key))\n .map((value) => ({\n label: copy.property_types[value],\n value: Number(value),\n icon: <Icon name={PropertyIcon[value]} />,\n }))\n\n fields.push({\n label: copy.property_type,\n name: 'property_type',\n options: propertyTypeOptions,\n placeholder: buildDynamicCopy(copy.select_value, copy.property_type) as string,\n type: FieldType.Select,\n valueFormatter: (val) => propertyTypeOptions.find((option) => option.value === val)?.label,\n })\n }\n\n if (usesInterestRateField(account)) {\n let label = copy.interest_rate\n let fieldName = 'interest_rate' as keyof Account\n\n if (!account.is_manual) {\n if (typeof account.apr === 'number') {\n label = copy.apr\n fieldName = 'apr'\n }\n if (typeof account.apy === 'number') {\n label = copy.apy\n fieldName = 'apy'\n }\n }\n\n fields.push({\n event: 'account_details_click_interest_rate',\n label,\n name: fieldName,\n placeholder: buildDynamicCopy(copy.enter_value, label) as string,\n type: FieldType.Input,\n validation: (val) => (!isValidNumber(val) ? copy.error_amount_is_invalid : ''),\n valueFormatter: (val) => (isValidNumber(val) ? formatPercentage(val / 100) : val),\n })\n }\n\n if (isAccountLiability(account)) {\n fields.push({\n label: copy.minimum_payment,\n name: 'minimum_payment',\n placeholder: buildDynamicCopy(copy.enter_value, copy.minimum_payment) as string,\n type: FieldType.Currency,\n valueFormatter: (val) => formatCurrency(val, '0,0.00'),\n })\n\n if (account.payment_due_at) {\n fields.push({\n label: copy.next_payment,\n name: 'payment_due_at',\n type: FieldType.Date,\n valueFormatter: (val) => {\n // accounts for Unix and DateTime values\n const dateTimeStamp = typeof val === 'number' ? fromUnixUTC(val) : val\n return formatDate(dateTimeStamp, DATE_FORMATS_INTL.MED_MONTH_SHORT_DAY_FULL_YEAR)\n },\n })\n } else {\n fields.push({\n label: copy.day_payment_due,\n name: 'day_payment_is_due',\n placeholder: buildDynamicCopy(copy.enter_value, copy.day_payment_due) as string,\n type: FieldType.Date,\n valueFormatter: (val) =>\n buildDynamicCopy(\n copy.day_of_every_month,\n formatOrdinal(val <= 31 ? val : new Date(val).getDate()),\n ) as string,\n })\n }\n }\n\n if (usesCreditLimitField(account)) {\n fields.push({\n label: copy.credit_limit,\n name: 'credit_limit',\n placeholder: buildDynamicCopy(copy.enter_value, copy.credit_limit) as string,\n type: FieldType.Currency,\n valueFormatter: (val) => formatCurrency(val, '0,0.00'),\n })\n }\n\n if (usesOriginalBalanceField(account)) {\n fields.push({\n label: copy.original_balance,\n minAmount: 1,\n name: 'original_balance',\n placeholder: buildDynamicCopy(copy.enter_value, copy.original_balance) as string,\n type: FieldType.Currency,\n valueFormatter: (val) => formatCurrency(val, '0,0.00'),\n })\n }\n\n return fields\n}\nexport const getAccountBalanceDetails = (\n account: Account,\n copy: AccountsCopy,\n showAvailableBalance: boolean,\n) => {\n let firstSubtitle = ''\n let firstValue = null\n let secondSubtitle = null\n let secondValue = null\n let hasAvailableBalance = false\n\n switch (account.account_type) {\n // checking or savings\n case 1:\n case 2: {\n // some savings accounts only have balance, and not available_balance\n if (account.available_balance != null && showAvailableBalance) {\n firstSubtitle = copy.available_balance\n firstValue = getAccountStartingBalance(account, showAvailableBalance)\n secondSubtitle = copy.current_balance\n secondValue = formatCurrency(account.balance, '0,0.00')\n hasAvailableBalance = true\n } else {\n firstSubtitle = copy.current_balance\n firstValue = getAccountStartingBalance(account, showAvailableBalance)\n }\n break\n }\n default: {\n firstSubtitle = copy.current_balance\n firstValue = account.balance\n if (account.minimum_payment && account.payment_due_at) {\n const dateTimeStamp = fromUnixUTC(account.payment_due_at)\n secondSubtitle = (\n <Text component=\"strong\" variant=\"caption\">\n {\n buildDynamicCopy(\n copy.payment_due_on,\n formatCurrency(account.minimum_payment, '0,0.00'),\n formatDate(dateTimeStamp, DATE_FORMATS_INTL.FULL_MONTH_DAY),\n ) as string\n }\n </Text>\n )\n } else if (account.credit_limit) {\n secondSubtitle = copy.available_credit\n secondValue = formatCurrency(account.credit_limit - (account?.balance ?? 0), '0,0.00')\n }\n }\n }\n\n return {\n firstSubtitle,\n firstValue,\n secondSubtitle,\n secondValue,\n hasAvailableBalance,\n }\n}\n\nexport const getClosedAccountBalanceTotal = (\n accounts: Account[],\n copy: AccountsCopy,\n showAvailableBalance: boolean,\n) => {\n const total = accounts.reduce((sum, account) => {\n const details = getAccountBalanceDetails(account, copy, showAvailableBalance)\n const firstValue = details.firstValue || 0\n return sum + firstValue\n }, 0)\n\n return total\n}\n","import { AccountType, type AccountsCopy } from '../../core'\n\nexport const getChartLabels = (\n accountType: AccountType,\n copy: AccountsCopy,\n): { title: string; description: string } => {\n const hasPayments = [AccountType.LOAN, AccountType.MORTGAGE, AccountType.PROPERTY].includes(\n accountType,\n )\n\n const hasPaymentsAndSpend = [\n AccountType.CREDIT_CARD,\n AccountType.LINE_OF_CREDIT,\n AccountType.PREPAID,\n AccountType.CHECKING_LINE_OF_CREDIT,\n ].includes(accountType)\n\n if (hasPayments) return { title: copy.label_payments, description: copy.chart_title_payments }\n if (hasPaymentsAndSpend)\n return { title: copy.label_payments_spend, description: copy.chart_title_payments_spend }\n return { title: copy.label_income_spend, description: copy.chart_title_income_spend }\n}\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Card from '@mui/material/Card'\nimport CardContent from '@mui/material/CardContent'\nimport CardHeader from '@mui/material/CardHeader'\n\nimport { H3 } from '@mxenabled/mxui'\n\nimport { Loader, useCategoryStore, useGlobalStore } from '../../../../common'\nimport { MiniWidgetProps } from '../../../../core'\n\nimport { useAccountUiStore } from '../../../hooks/useUiStore'\n\ninterface AccountDetailsChartProps extends MiniWidgetProps {\n ChartComponent?: React.ComponentType\n header?: string\n}\n\nconst AccountDetailsChart: React.FC<AccountDetailsChartProps> = ({\n sx,\n ChartComponent,\n header,\n}) => {\n const { loadMonthlyCategoryTotals } = useCategoryStore()\n const { isInitialized } = useGlobalStore()\n const { selectedAccount } = useAccountUiStore()\n\n const [isWidgetInitialized, setIsWidgetInitialized] = React.useState(false)\n\n React.useEffect(() => {\n if (isInitialized) {\n loadMonthlyCategoryTotals([selectedAccount]).finally(() => {\n setIsWidgetInitialized(true)\n })\n }\n }, [isInitialized, selectedAccount])\n\n if (!isInitialized || !isWidgetInitialized) {\n return <Loader />\n }\n\n return (\n <Card\n sx={{\n '& .MuiCardContent-root:last-child': {\n pb: 0,\n },\n ...sx,\n }}\n >\n <CardHeader sx={{ pb: 0 }} title={<H3 sx={{ pb: 4 }}>{header}</H3>} />\n\n <CardContent sx={{ p: 0 }}>{ChartComponent ? <ChartComponent /> : null}</CardContent>\n </Card>\n )\n}\n\nexport default observer(AccountDetailsChart)\n","import { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { H2, InstitutionLogo, Text } from '@mxenabled/mxui'\n\nimport {\n useAccountStore,\n INCOME_ACCOUNT_TYPES,\n PAYMENT_ACCOUNT_TYPES,\n SPENDING_ACCOUNT_TYPES,\n useAccountDisplayName,\n useGlobalCopyStore,\n useAppConfig,\n} from '../../../../common'\nimport { useAccountUiStore } from '../../../hooks/useUiStore'\nimport { getAccountBalanceDetails } from '../../../utils/AccountFields'\nimport { getChartLabels } from '../../../utils/AccountDetails'\n\nimport AccountDetailsChart from './AccountDetailsChart'\nimport { formatCurrency } from '../../../../core/utils/NumberFormatting'\n\ninterface AccountDetailsHeaderProps {\n ChartComponent?: React.ComponentType\n customDetailsChart?: React.ReactElement\n}\n\nconst AccountDetailsHeader = ({\n customDetailsChart,\n ChartComponent,\n}: AccountDetailsHeaderProps) => {\n const { institutions } = useAccountStore()\n const { selectedAccount: account } = useAccountUiStore()\n const { config } = useAppConfig()\n const { accounts: accountsCopy } = useGlobalCopyStore()\n const { firstSubtitle, firstValue, hasAvailableBalance, secondSubtitle, secondValue } =\n getAccountBalanceDetails(account, accountsCopy, config.display_available_balance_in_accounts)\n\n const institution = institutions.find(\n (institution) => institution.guid === account?.institution_guid,\n )\n\n const showChart = [\n ...INCOME_ACCOUNT_TYPES,\n ...PAYMENT_ACCOUNT_TYPES,\n ...SPENDING_ACCOUNT_TYPES,\n ].includes(account.account_type)\n\n const displayName = useAccountDisplayName(account)\n\n const { title, description } = getChartLabels(account.account_type, accountsCopy)\n\n return (\n <Stack bgcolor=\"background.default\" p={24}>\n <Stack gap={12}>\n <InstitutionLogo\n alt={accountsCopy.institution_logo_alt}\n institutionGuid={account.institution_guid || ''}\n size={64}\n />\n <Text variant=\"body2\">{institution?.name}</Text>\n </Stack>\n <Stack gap={8} mb={24} mt={4}>\n <H2>{displayName}</H2>\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text bold={hasAvailableBalance} variant=\"body1\">\n {firstSubtitle}\n </Text>\n <Text bold={true} variant=\"body1\">\n {formatCurrency(firstValue, '0,0.00')}\n </Text>\n </Stack>\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text variant=\"body2\">{secondSubtitle}</Text>\n <Text variant=\"body2\">{secondValue}</Text>\n </Stack>\n </Stack>\n {showChart && (\n <Stack aria-label={description} role=\"img\">\n {customDetailsChart ? (\n customDetailsChart\n ) : (\n <AccountDetailsChart ChartComponent={ChartComponent} header={title} />\n )}\n </Stack>\n )}\n </Stack>\n )\n}\n\nexport default observer(AccountDetailsHeader)\n"],"names":["useAccountUiStore","React","GlobalDataContext","useAccountStore","getAccountDetailFields","account","copy","fields","buildDynamicCopy","FieldType","val","isManual","formatCurrency","accountTypeOptions","AccountType","key","value","jsx","Icon","AccountIcon","option","propertyTypeOptions","PropertyType","PropertyIcon","usesInterestRateField","label","fieldName","isValidNumber","formatPercentage","isAccountLiability","dateTimeStamp","fromUnixUTC","formatDate","DATE_FORMATS_INTL","formatOrdinal","usesCreditLimitField","usesOriginalBalanceField","getAccountBalanceDetails","showAvailableBalance","firstSubtitle","firstValue","secondSubtitle","secondValue","hasAvailableBalance","getAccountStartingBalance","Text","getClosedAccountBalanceTotal","accounts","sum","getChartLabels","accountType","hasPayments","hasPaymentsAndSpend","AccountDetailsChart","sx","ChartComponent","header","loadMonthlyCategoryTotals","useCategoryStore","isInitialized","useGlobalStore","selectedAccount","isWidgetInitialized","setIsWidgetInitialized","Loader","jsxs","Card","CardHeader","H3","CardContent","AccountDetailsChart$1","observer","AccountDetailsHeader","customDetailsChart","institutions","config","useAppConfig","accountsCopy","useGlobalCopyStore","institution","showChart","INCOME_ACCOUNT_TYPES","PAYMENT_ACCOUNT_TYPES","SPENDING_ACCOUNT_TYPES","displayName","useAccountDisplayName","title","description","Stack","InstitutionLogo","H2","AccountDetailsHeader$1"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { c as t, C as _, E as l, P as p, M as y } from "./Account-DR7Plrqy.mjs";
2
+ const I = (e) => e && (e.account_type === t.CREDIT_CARD || e.account_type === t.LOAN || e.account_type === t.MORTGAGE || e.account_type === t.LINE_OF_CREDIT || e.account_type === t.CHECKING_LINE_OF_CREDIT), g = (e, n) => (e.account_type === t.CHECKING || e.account_type === t.SAVINGS) && e.available_balance != null && n ? e.available_balance : e.balance || 0, m = (e) => e.is_manual || !e.guid, f = (e) => e.account_type === t.LINE_OF_CREDIT || e.account_type === t.CREDIT_CARD || e.account_type === t.CHECKING_LINE_OF_CREDIT, A = (e) => e.account_type === t.SAVINGS || e.account_type === t.CHECKING || e.account_type === t.LINE_OF_CREDIT || e.account_type === t.CREDIT_CARD || e.account_type === t.LOAN || e.account_type === t.MORTGAGE, R = (e) => e.account_type === t.LOAN || e.account_type === t.MORTGAGE, N = (e, n, s, a, c) => e.filter((i) => !(i.member_is_managed_by_user && a)).filter((i) => !(!i.member_is_managed_by_user && c)).sort(E).map((i) => {
3
+ const u = n.find((r) => r.guid === i.institution_guid), o = s.find((r) => r.guid === i.member_guid);
4
+ return C(i, u, o);
5
+ }), C = (e, n, s) => {
6
+ let a = _.Connected;
7
+ s && (l.includes(s.connection_status) ? a = _.Error : p.includes(s.connection_status) ? a = _.Processing : y.includes(s.connection_status) && (a = _.RequiresMfa));
8
+ const c = [
9
+ e.user_name || e.feed_name || "",
10
+ e.account_number ? `*${e.account_number}` : ""
11
+ ].join(" ").trim();
12
+ return {
13
+ ...e,
14
+ connectionStatus: a,
15
+ displayName: c,
16
+ institution: n,
17
+ member: s
18
+ };
19
+ }, E = (e, n) => e.account_type > n.account_type ? 1 : e.account_type < n.account_type ? -1 : (e.name || "") > (n.name || "") ? 1 : (e.name || "") < (n.name || "") ? -1 : 0;
20
+ export {
21
+ m as a,
22
+ f as b,
23
+ R as c,
24
+ N as d,
25
+ g,
26
+ I as i,
27
+ A as u
28
+ };
29
+ //# sourceMappingURL=AccountUtils-Cbh8r9cP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountUtils-Cbh8r9cP.mjs","sources":["../src/core/utils/AccountUtils.ts"],"sourcesContent":["import {\n type Account,\n type DetailedAccount,\n type Institution,\n type Member,\n AccountType,\n ConnectionStatus,\n ErrorStatuses,\n MfaStatuses,\n ProcessingStatuses,\n} from '../'\n\nexport const isAccountLiability = (account: Account) =>\n account &&\n (account.account_type === AccountType.CREDIT_CARD ||\n account.account_type === AccountType.LOAN ||\n account.account_type === AccountType.MORTGAGE ||\n account.account_type === AccountType.LINE_OF_CREDIT ||\n account.account_type === AccountType.CHECKING_LINE_OF_CREDIT)\n\n/**\n * Returns the balance to use as an account's spendable / starting balance.\n * For checking/savings accounts it uses available_balance when present and\n * enabled via config, otherwise the current balance. All other account types\n * use the current balance. Single source of truth shared by the Accounts,\n * Financial Strength, and Cash Flow experiences.\n */\nexport const getAccountStartingBalance = (\n account: Account,\n showAvailableBalance: boolean,\n): number => {\n const isCheckingOrSavings =\n account.account_type === AccountType.CHECKING || account.account_type === AccountType.SAVINGS\n\n if (isCheckingOrSavings && account.available_balance != null && showAvailableBalance) {\n return account.available_balance\n }\n\n return account.balance || 0\n}\n\nexport const isManual = (account: Account) => account.is_manual || !account.guid\n\nexport const usesCreditLimitField = (account: Account) =>\n account.account_type === AccountType.LINE_OF_CREDIT ||\n account.account_type === AccountType.CREDIT_CARD ||\n account.account_type === AccountType.CHECKING_LINE_OF_CREDIT\n\nexport const usesInterestRateField = (account: Account) =>\n account.account_type === AccountType.SAVINGS ||\n account.account_type === AccountType.CHECKING ||\n account.account_type === AccountType.LINE_OF_CREDIT ||\n account.account_type === AccountType.CREDIT_CARD ||\n account.account_type === AccountType.LOAN ||\n account.account_type === AccountType.MORTGAGE\n\nexport const usesOriginalBalanceField = (account: Account) =>\n account.account_type === AccountType.LOAN || account.account_type === AccountType.MORTGAGE\n\nexport const augmentAccounts = (\n accounts: Account[],\n institutions: Institution[],\n members: Member[],\n shouldExcludeExternalAccounts: boolean,\n shouldExcludeHeldAccounts: boolean,\n): DetailedAccount[] => {\n return accounts\n .filter((account) => !(account.member_is_managed_by_user && shouldExcludeExternalAccounts))\n .filter((account) => !(!account.member_is_managed_by_user && shouldExcludeHeldAccounts))\n .sort(accountSorter)\n .map((account) => {\n const institution = institutions.find((inst) => inst.guid === account.institution_guid)\n const member = members.find((member) => member.guid === account.member_guid)\n\n return buildDetailedAccount(account, institution, member)\n })\n}\n\nconst buildDetailedAccount = (account: Account, institution?: Institution, member?: Member) => {\n // TODO: Needs to be localized here\n let connectionStatus = ConnectionStatus.Connected\n if (member) {\n if (ErrorStatuses.includes(member.connection_status)) {\n connectionStatus = ConnectionStatus.Error\n } else if (ProcessingStatuses.includes(member.connection_status)) {\n connectionStatus = ConnectionStatus.Processing\n } else if (MfaStatuses.includes(member.connection_status)) {\n connectionStatus = ConnectionStatus.RequiresMfa\n }\n }\n\n const displayName = [\n account.user_name || account.feed_name || '',\n account.account_number ? `*${account.account_number}` : '',\n ]\n .join(' ')\n .trim()\n\n return {\n ...account,\n connectionStatus,\n displayName,\n institution,\n member,\n }\n}\n\nconst accountSorter = (a: Account, b: Account) => {\n // orders by account type descending (Checking -> Savings -> Credit card)\n if (a.account_type > b.account_type) return 1\n if (a.account_type < b.account_type) return -1\n // orders by name (Emergency Savings -> Health Savings -> Rainy Day Savings)\n if ((a.name || '') > (b.name || '')) return 1\n if ((a.name || '') < (b.name || '')) return -1\n return 0\n}\n"],"names":["isAccountLiability","account","AccountType","getAccountStartingBalance","showAvailableBalance","isManual","usesCreditLimitField","usesInterestRateField","usesOriginalBalanceField","augmentAccounts","accounts","institutions","members","shouldExcludeExternalAccounts","shouldExcludeHeldAccounts","accountSorter","institution","inst","member","buildDetailedAccount","connectionStatus","ConnectionStatus","ErrorStatuses","ProcessingStatuses","MfaStatuses","displayName","a","b"],"mappings":";AAYO,MAAMA,IAAqB,CAACC,MACjCA,MACCA,EAAQ,iBAAiBC,EAAY,eACpCD,EAAQ,iBAAiBC,EAAY,QACrCD,EAAQ,iBAAiBC,EAAY,YACrCD,EAAQ,iBAAiBC,EAAY,kBACrCD,EAAQ,iBAAiBC,EAAY,0BAS5BC,IAA4B,CACvCF,GACAG,OAGEH,EAAQ,iBAAiBC,EAAY,YAAYD,EAAQ,iBAAiBC,EAAY,YAE7DD,EAAQ,qBAAqB,QAAQG,IACvDH,EAAQ,oBAGVA,EAAQ,WAAW,GAGfI,IAAW,CAACJ,MAAqBA,EAAQ,aAAa,CAACA,EAAQ,MAE/DK,IAAuB,CAACL,MACnCA,EAAQ,iBAAiBC,EAAY,kBACrCD,EAAQ,iBAAiBC,EAAY,eACrCD,EAAQ,iBAAiBC,EAAY,yBAE1BK,IAAwB,CAACN,MACpCA,EAAQ,iBAAiBC,EAAY,WACrCD,EAAQ,iBAAiBC,EAAY,YACrCD,EAAQ,iBAAiBC,EAAY,kBACrCD,EAAQ,iBAAiBC,EAAY,eACrCD,EAAQ,iBAAiBC,EAAY,QACrCD,EAAQ,iBAAiBC,EAAY,UAE1BM,IAA2B,CAACP,MACvCA,EAAQ,iBAAiBC,EAAY,QAAQD,EAAQ,iBAAiBC,EAAY,UAEvEO,IAAkB,CAC7BC,GACAC,GACAC,GACAC,GACAC,MAEOJ,EACJ,OAAO,CAACT,MAAY,EAAEA,EAAQ,6BAA6BY,EAA8B,EACzF,OAAO,CAACZ,MAAY,EAAE,CAACA,EAAQ,6BAA6Ba,EAA0B,EACtF,KAAKC,CAAa,EAClB,IAAI,CAACd,MAAY;AAChB,QAAMe,IAAcL,EAAa,KAAK,CAACM,MAASA,EAAK,SAAShB,EAAQ,gBAAgB,GAChFiB,IAASN,EAAQ,KAAK,CAACM,MAAWA,EAAO,SAASjB,EAAQ,WAAW;AAE3E,SAAOkB,EAAqBlB,GAASe,GAAaE,CAAM;AAC1D,CAAC,GAGCC,IAAuB,CAAClB,GAAkBe,GAA2BE,MAAoB;AAE7F,MAAIE,IAAmBC,EAAiB;AACxC,EAAIH,MACEI,EAAc,SAASJ,EAAO,iBAAiB,IACjDE,IAAmBC,EAAiB,QAC3BE,EAAmB,SAASL,EAAO,iBAAiB,IAC7DE,IAAmBC,EAAiB,aAC3BG,EAAY,SAASN,EAAO,iBAAiB,MACtDE,IAAmBC,EAAiB;AAIxC,QAAMI,IAAc;AAAA,IAClBxB,EAAQ,aAAaA,EAAQ,aAAa;AAAA,IAC1CA,EAAQ,iBAAiB,IAAIA,EAAQ,cAAc,KAAK;AAAA,EAAA,EAEvD,KAAK,GAAG,EACR,KAAA;AAEH,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,kBAAAmB;AAAA,IACA,aAAAK;AAAA,IACA,aAAAT;AAAA,IACA,QAAAE;AAAA,EAAA;AAEJ,GAEMH,IAAgB,CAACW,GAAYC,MAE7BD,EAAE,eAAeC,EAAE,eAAqB,IACxCD,EAAE,eAAeC,EAAE,eAAqB,MAEvCD,EAAE,QAAQ,OAAOC,EAAE,QAAQ,MAAY,KACvCD,EAAE,QAAQ,OAAOC,EAAE,QAAQ,MAAY,KACrC;"}
@@ -50,11 +50,11 @@ const _ = {
50
50
  INVESTMENT_WIDGET_ALLOCATION_CLICK: "investment_widget_allocation_click",
51
51
  INVESTMENT_WIDGET_ANALYSIS_CLICK: "investment_widget_analysis_click",
52
52
  INVESTMENT_WIDGET_DETAILS_CLICK: "investment_widget_details_click",
53
- NET_WORTH_VIEW: "net_worth",
53
+ NET_WORTH_VIEW: "netWorth",
54
54
  NETWORTH_MICRO_WIDGET_CTA: "net_worth_micro_widget_click_see_details_cta",
55
55
  NET_WORTH_WIDGET_CLICK_ASSETS_LIABILITIES: "net_worth_widget_click_view_assets_liabilities",
56
56
  NET_WORTH_WIDGET_CLICK_FILTER: "net_worth_widget_click_filter_accounts",
57
- NET_WORTH_WIDGET_CLICK_TIMEFRAME: "net_worth_widget_click_time_period",
57
+ NET_WORTH_WIDGET_CLICK_TIMEFRAME: "netWorth_click_timePeriod",
58
58
  RECURRING_ACTIVITY_CLICK_ADD_EXPENSE: "recurring_transactions_widget_manage_expenses_click_add_expense",
59
59
  RECURRING_ACTIVITY_CLICK_ADD_INCOME: "recurring_transactions_widget_income_details_click_add_income",
60
60
  RECURRING_ACTIVITY_CLICK_CALENDAR_RIGHT: "recurring_transactions_widget_click_calendar_right",
@@ -137,4 +137,4 @@ const _ = {
137
137
  export {
138
138
  _ as A
139
139
  };
140
- //# sourceMappingURL=Analytics-WeZYytR0.mjs.map
140
+ //# sourceMappingURL=Analytics-D-jdcL72.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Analytics-D-jdcL72.mjs","sources":["../src/common/constants/Analytics.ts"],"sourcesContent":["export const ANALYTICS_EVENTS = {\n ACCOUNTS_CLICK_ACCOUNT: 'accounts_widget_click_account',\n ACCOUNTS_CLICK_CONNECT: 'accounts_widget_click_connect_accounts',\n ACCOUNTS_CLICK_FILTER: 'accounts_widget_click_filter_accounts',\n ACCOUNTS_CLICK_SYNC: 'accounts_widget_click_sync',\n ACCOUNT_DETAILS_CLICK_HIDE: 'account_details_click_hide_account',\n ACCOUNT_DETAILS_CLICK_MARK_CLOSED: 'account_details_click_mark_as_closed',\n ACCOUNT_DETAILS_CLICK_MARK_DUPLICATE: 'account_details_click_mark_as_duplicate',\n ACCOUNT_DETAILS_CLICK_TRANSACTION: 'account_details_click_transaction',\n ACCOUNT_DETAILS_VIEW: 'account_details',\n ACCOUNT_DETAILS_VIEW_TRANSACTIONS: 'account_details_transactions',\n BUDGETS_CLICK_ADD: 'budgets_widget_click_add_budget',\n BUDGETS_CLICK_BUDGET_CATEGORY: 'budgets_widget_click_budget_category',\n BUDGETS_CLICK_EDIT_INCOME: 'budgets_widget_click_edit_income',\n BUDGETS_CLICK_FILTER: 'budgets_widget_click_filter_accounts',\n BUDGETS_VIEW: 'budgets',\n CASH_FLOW_CLICK_FILTER: 'cash_flow_widget_click_filter_accounts',\n CASH_FLOW_CLICK_SETTINGS: 'cash_flow_widget_click_settings',\n DEBTS_CLICK_CHART_AREA: 'debts_widget_click_chart_area',\n DEBTS_CLICK_FILTER: 'debts_widget_click_filter_accounts',\n DEBTS_CLICK_PAYDOWN: 'debts_widget_click_paydown',\n DEBTS_CLICK_PRIORITY: 'debts_widget_click_priority',\n DEBTS_CLICK_PRIORITIZE: 'debts_widget_click_prioritize',\n DEBTS_CLICK_SNOWBALL_CTA: 'debts_widget_click_snowball_cta',\n DEBTS_CLICK_TABLE_ROW: 'debts_widget_click_table_row',\n DEBTS_CLICK_TABLE_SORT: 'debts_widget_click_table_sort',\n DEBTS_SAVE_BALANCE_ACTION: 'debts_widget_click_balance_action',\n DEBTS_SAVE_PAYDOWN_ACTION: 'debts_widget_click_paydown_action',\n DEBTS_SAVE_PAYMENT_ACTION: 'debts_widget_click_payment_action',\n DEBTS_SAVE_RATE_ACTION: 'debts_widget_click_rate_action',\n DEBTS_VIEW: 'debts',\n DEBT_DETAILS_VIEW: 'debt_details',\n DEBT_SCHEDULE_VIEW: 'debt_schedule',\n GOALS_CLICK_ADD: 'goals_widget_click_add',\n GOALS_CLICK_FILTER: 'goals_widget_click_filter_accounts',\n GOALS_VIEW: 'goals',\n GOALS_MICRO_WIDGET_CTA: 'goals_micro_widget_click_see_details_cta',\n HELP_CLICK_CATEGORY: 'help_click_category',\n HELP_CLICK_REQUEST_SUPPORT: 'help_click_requestSupport',\n HELP_CLICK_SUPPORT_FOR_INSTITUTION: 'help_click_supportForInstitution',\n HELP_CLICK_SUPPORT_FOR_MISSING_INSTITUTION: 'help_click_supportForMissingInstitution',\n HELP_CLICK_SUPPORT_TOPIC: 'help_click_supportTopic',\n HELP_CLICK_TOPIC: 'help_click_topic',\n HELP_EXPAND_CATEGORY: 'help_expand_category',\n HELP_EXPAND_TOPIC: 'help_expand_topic',\n HELP_OPEN_SUPPORT_REQUEST: 'help_open_supportRequest',\n HELP_SUBMIT_SUPPORT_REQUEST: 'help_submit_supportRequest',\n INVESTMENTS: 'Investments',\n INVESTMENT_WIDGET_ACCOUNT_FILTER_CLICK: 'investment_widget_account_filter_click',\n INVESTMENT_WIDGET_ALLOCATION_CLICK: 'investment_widget_allocation_click',\n INVESTMENT_WIDGET_ANALYSIS_CLICK: 'investment_widget_analysis_click',\n INVESTMENT_WIDGET_DETAILS_CLICK: 'investment_widget_details_click',\n NET_WORTH_VIEW: 'netWorth',\n NETWORTH_MICRO_WIDGET_CTA: 'net_worth_micro_widget_click_see_details_cta',\n NET_WORTH_WIDGET_CLICK_ASSETS_LIABILITIES: 'net_worth_widget_click_view_assets_liabilities',\n NET_WORTH_WIDGET_CLICK_FILTER: 'net_worth_widget_click_filter_accounts',\n NET_WORTH_WIDGET_CLICK_TIMEFRAME: 'netWorth_click_timePeriod',\n RECURRING_ACTIVITY_CLICK_ADD_EXPENSE:\n 'recurring_transactions_widget_manage_expenses_click_add_expense',\n RECURRING_ACTIVITY_CLICK_ADD_INCOME:\n 'recurring_transactions_widget_income_details_click_add_income',\n RECURRING_ACTIVITY_CLICK_CALENDAR_RIGHT: 'recurring_transactions_widget_click_calendar_right',\n RECURRING_ACTIVITY_CLICK_EXPENSE: 'recurring_transactions_widget_manage_expenses_click_expense',\n RECURRING_ACTIVITY_CLICK_FILTER: 'recurring_transactions_widget_click_filter_accounts',\n RECURRING_ACTIVITY_CLICK_INCOME: 'recurring_transactions_widget_click_income',\n RECURRING_ACTIVITY_CLICK_PAID: 'recurring_transactions_widget_click_paid_expense',\n RECURRING_ACTIVITY_CLICK_SETTINGS: 'recurring_transactions_widget_click_settings',\n RECURRING_ACTIVITY_CLICK_UPCOMING: 'recurring_transactions_widget_click_upcoming_transaction',\n RECURRING_TRANSACTIONS_CLICK_ADD_EXPENSE:\n 'recurring_transactions_widget_manage_expenses_click_add_expense',\n RECURRING_TRANSACTIONS_CLICK_ADD_INCOME:\n 'recurring_transactions_widget_income_details_click_add_income',\n RECURRING_TRANSACTIONS_CLICK_CALENDAR_RIGHT: 'recurring_transactions_widget_click_calendar_right',\n RECURRING_TRANSACTIONS_CLICK_EXPENSE:\n 'recurring_transactions_widget_manage_expenses_click_expense',\n RECURRING_TRANSACTIONS_CLICK_FILTER: 'recurring_transactions_widget_click_filter_accounts',\n RECURRING_TRANSACTIONS_CLICK_INCOME: 'recurring_transactions_widget_click_income',\n RECURRING_TRANSACTIONS_CLICK_PAID: 'recurring_transactions_widget_click_paid_expense',\n RECURRING_TRANSACTIONS_CLICK_SETTINGS: 'recurring_transactions_widget_click_settings',\n RECURRING_TRANSACTIONS_CLICK_UPCOMING: 'recurring_transactions_widget_click_upcoming_transaction',\n RECURRING_TRANSACTIONS_DETAILS_CLICK_DELETE: 'recurring_transactions_widget_details_click_delete',\n RECURRING_TRANSACTIONS_DETAILS_CLICK_PAYMENT_SCHEDULE:\n 'recurring_transactions_widget_details_click_payment_schedule',\n RECURRING_TRANSACTIONS_LIST_CLICK_MARK_AS_PAID:\n 'recurring_transactions_widget_list_click_mark_as_paid',\n RECURRING_TRANSACTIONS_LIST_CLICK_MARK_AS_UNPAID:\n 'recurring_transactions_widget_list_click_mark_as_unpaid',\n RECURRING_TRANSACTIONS_LIST_CLICK_MORE_MENU: 'recurring_transactions_widget_list_click_more_menu',\n RECURRING_TRANSACTIONS_MICRO_WIDGET_CTA: 'recurring_transactions_micro_widget_click_view_all_cta',\n SPENDING_CLICK_FILTER: 'spending_widget_click_filter_accounts',\n SPENDING_VIEW: 'spending',\n TRANSACTIONS_ADD_MANUAL_ACCOUNT_MODAL: 'transactions_add_manual_account_modal',\n TRANSACTIONS_CLICK_ADD: 'transactions_click_add_transaction',\n TRANSACTIONS_CLICK_DETAILS: 'transactions_click_transaction_details',\n TRANSACTIONS_CLICK_EXPORT: 'transactions_click_export_csv',\n TRANSACTIONS_CLICK_FILTER: 'transactions_click_filter_accounts',\n TRANSACTIONS_CLICK_SEARCH: 'transactions_click_search',\n TRANSACTIONS_VIEW: 'transactions',\n TRANSACTION_DETAILS_CLICK_AMOUNT: 'transaction_details_click_transaction_amount',\n TRANSACTION_DETAILS_CLICK_CATEGORY: 'transaction_details_click_category',\n TRANSACTION_DETAILS_CLICK_DATE: 'transaction_details_click_date',\n TRANSACTION_DETAILS_CLICK_DELETE_LOGO: 'transaction_details_click_delete_merchant_logo',\n TRANSACTION_DETAILS_CLICK_DESCRIPTION: 'transaction_details_click_edit_description',\n TRANSACTION_DETAILS_CLICK_FLAG: 'transaction_details_click_flag_transaction',\n TRANSACTION_DETAILS_CLICK_MEMO: 'transaction_details_click_memo',\n TRANSACTION_DETAILS_CLICK_SPLIT: 'transaction_details_click_split_transaction',\n TRANSACTION_DETAILS_CLICK_TAGS: 'transaction_details_click_tags',\n TRANSACTION_DETAILS_CLICK_UNSPLIT: 'transaction_details_click_unsplit_transaction',\n TRANSACTION_DETAILS_VIEW: 'transaction_details',\n TRANSACTIONS_TABLE_CLICK_CATEGORY: 'transactions_table_click_category',\n WIDGET_BACK_CLICK: 'widget_back_button_click',\n\n // NEW ANAYTICS EVENT FORMAT\n // widget_action_subject\n GOALS_CLICK_GET_STARTED: 'goals_click_getStarted',\n GOALS_CLICK_VIEW_DETAILS: 'goals_click_viewDetails',\n GOALS_LOAD_WIDGET: 'goals_load_widget',\n NET_WORTH_CLICK_GET_STARTED: 'netWorth_click_getStarted',\n NET_WORTH_CLICK_VIEW_DETAILS: 'netWorth_click_viewDetails',\n NET_WORTH_LOAD_WIDGET: 'netWorth_load_widget',\n RECURRING_TRANSACTIONS_CLICK_GET_STARTED: 'recurringTransactions_click_getStarted',\n RECURRING_TRANSACTIONS_CLICK_VIEW_ALL: 'recurringTransactions_click_viewAll',\n RECURRING_TRANSACTIONS_LOAD_WIDGET: 'recurringTransactions_load_widget',\n TRENDS_CLICK_ALL_CATEGORIES: 'trends_click_allCategories',\n TRENDS_CLICK_BACK: 'trends_click_back',\n TRENDS_CLICK_CHART: 'trends_click_chart',\n TRENDS_CLICK_CONNECT_ACCOUNTS: 'trends_click_connectAccounts',\n TRENDS_CLICK_EXPORT_CSV: 'trends_click_exportCSV',\n TRENDS_CLICK_FILTER: 'trends_click_filter',\n TRENDS_CLICK_GET_STARTED: 'trends_click_getStarted',\n TRENDS_CLICK_INSIGHT: 'trends_click_insight',\n TRENDS_CLICK_LEGEND: 'trends_click_legend',\n TRENDS_CLICK_LIST_ITEM: 'trends_click_listItem',\n TRENDS_CLICK_TABLE_SORT: 'trends_click_tableSort',\n TRENDS_CLICK_TIME_WINDOW: 'trends_click_timeWindow',\n TRENDS_CLICK_TOGGLE_VIEW: 'trends_click_toggleView',\n TRENDS_CLICK_VIEW_MORE: 'trends_click_viewMore',\n TRENDS_CLICK_VIEW_TRANSACTIONS: 'trends_click_viewTransactions',\n TRENDS_HOVER_AREA: 'trends_hover_chartArea',\n TRENDS_HOVER_POINT: 'trends_hover_chartPoint',\n TRENDS_HOVER_LEGEND: 'trends_hover_ChartLegend',\n TRENDS_LOAD_WIDGET: 'trends_load_widget',\n TRENDS_VIEW_TRANSACTIONS: 'trends_view_transactions',\n WIDGET_SIZE_CHANGED: 'widget_size_changed',\n}\n"],"names":["ANALYTICS_EVENTS"],"mappings":"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"}
@@ -21,7 +21,7 @@ import { isSameDay as F } from "date-fns/isSameDay";
21
21
  import { f as ut, D as pt } from "./DateFormats-HudZ3Bjs.mjs";
22
22
  import { k as mt } from "./DateUtil-CzBmbjmA.mjs";
23
23
  import { L as Z } from "./Loader-CxeBwuPG.mjs";
24
- import { A as gt } from "./Analytics-WeZYytR0.mjs";
24
+ import { A as gt } from "./Analytics-D-jdcL72.mjs";
25
25
  import At from "@mui/material/Tab";
26
26
  import Nt from "@mui/material/Tabs";
27
27
  import ft from "@mui/material/IconButton";
@@ -856,4 +856,4 @@ export {
856
856
  W as s,
857
857
  K as u
858
858
  };
859
- //# sourceMappingURL=EmbeddedCard-DH8vQ3qN.mjs.map
859
+ //# sourceMappingURL=EmbeddedCard-DCOQnTz-.mjs.map