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

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 (245) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/README.md +10 -10
  3. package/dist/Account-DR7Plrqy.mjs +119 -0
  4. package/dist/Account-DR7Plrqy.mjs.map +1 -0
  5. package/dist/AccountDetailsDrawer-CZPeLsCq.mjs +922 -0
  6. package/dist/AccountDetailsDrawer-CZPeLsCq.mjs.map +1 -0
  7. package/dist/AccountDetailsHeader-BvbCUQSS.mjs +231 -0
  8. package/dist/AccountDetailsHeader-BvbCUQSS.mjs.map +1 -0
  9. package/dist/AccountUtils-B8ZzWI-d.mjs +28 -0
  10. package/dist/AccountUtils-B8ZzWI-d.mjs.map +1 -0
  11. package/dist/Analytics-CkYXKvco.mjs +54 -0
  12. package/dist/Analytics-CkYXKvco.mjs.map +1 -0
  13. package/dist/Analytics-WeZYytR0.mjs +140 -0
  14. package/dist/Analytics-WeZYytR0.mjs.map +1 -0
  15. package/dist/ApiEndpoints-DXwIYNUV.mjs +50 -0
  16. package/dist/ApiEndpoints-DXwIYNUV.mjs.map +1 -0
  17. package/dist/BeatMaterialIcon-1KOfRZrA.mjs +27 -0
  18. package/dist/BeatMaterialIcon-1KOfRZrA.mjs.map +1 -0
  19. package/dist/BudgetUtil-Bg2AQJpQ.mjs +75 -0
  20. package/dist/BudgetUtil-Bg2AQJpQ.mjs.map +1 -0
  21. package/dist/Category-DEKZGLYe.mjs +302 -0
  22. package/dist/Category-DEKZGLYe.mjs.map +1 -0
  23. package/dist/CategorySelectorDrawer-NJsFsKP1.mjs +431 -0
  24. package/dist/CategorySelectorDrawer-NJsFsKP1.mjs.map +1 -0
  25. package/dist/Connect-BH0Pt6zc.mjs +43 -0
  26. package/dist/Connect-BH0Pt6zc.mjs.map +1 -0
  27. package/dist/ConnectCard-D7uxoH5Y.mjs +55 -0
  28. package/dist/ConnectCard-D7uxoH5Y.mjs.map +1 -0
  29. package/dist/ConnectDrawer-CW4LA3H3.mjs +58 -0
  30. package/dist/ConnectDrawer-CW4LA3H3.mjs.map +1 -0
  31. package/dist/ConnectionsDrawer-CZU9ku-k.mjs +54 -0
  32. package/dist/ConnectionsDrawer-CZU9ku-k.mjs.map +1 -0
  33. package/dist/CurrencyDialog-DumQCTPO.mjs +374 -0
  34. package/dist/CurrencyDialog-DumQCTPO.mjs.map +1 -0
  35. package/dist/CurrencyInput-DaGEQaLW.mjs +88 -0
  36. package/dist/CurrencyInput-DaGEQaLW.mjs.map +1 -0
  37. package/dist/CurrencyText-CCbE6MmF.mjs +21 -0
  38. package/dist/CurrencyText-CCbE6MmF.mjs.map +1 -0
  39. package/dist/DateFormats-HudZ3Bjs.mjs +65 -0
  40. package/dist/DateFormats-HudZ3Bjs.mjs.map +1 -0
  41. package/dist/DateUtil-CzBmbjmA.mjs +75 -0
  42. package/dist/DateUtil-CzBmbjmA.mjs.map +1 -0
  43. package/dist/DebtUtils-i4pI2Uoe.mjs +154 -0
  44. package/dist/DebtUtils-i4pI2Uoe.mjs.map +1 -0
  45. package/dist/Dialog-Bvd2n8hz.mjs +67 -0
  46. package/dist/Dialog-Bvd2n8hz.mjs.map +1 -0
  47. package/dist/Donut-SzzfZDHF.mjs +89 -0
  48. package/dist/Donut-SzzfZDHF.mjs.map +1 -0
  49. package/dist/Drawer-DsnW2o0v.mjs +175 -0
  50. package/dist/Drawer-DsnW2o0v.mjs.map +1 -0
  51. package/dist/EmbeddedCard-DH8vQ3qN.mjs +859 -0
  52. package/dist/EmbeddedCard-DH8vQ3qN.mjs.map +1 -0
  53. package/dist/EmptyState-CJUDc3kD.mjs +85 -0
  54. package/dist/EmptyState-CJUDc3kD.mjs.map +1 -0
  55. package/dist/Error-Dtw6yxkf.mjs +85 -0
  56. package/dist/Error-Dtw6yxkf.mjs.map +1 -0
  57. package/dist/ErrorBoundary-CsdOcnJ9.mjs +24 -0
  58. package/dist/ErrorBoundary-CsdOcnJ9.mjs.map +1 -0
  59. package/dist/ExportCsvAction-C9KWH3Az.mjs +25 -0
  60. package/dist/ExportCsvAction-C9KWH3Az.mjs.map +1 -0
  61. package/dist/GlobalAccountFilter-BhzR5Vb1.mjs +230 -0
  62. package/dist/GlobalAccountFilter-BhzR5Vb1.mjs.map +1 -0
  63. package/dist/GlobalCopyApi-wcnDUzMV.mjs +129 -0
  64. package/dist/GlobalCopyApi-wcnDUzMV.mjs.map +1 -0
  65. package/dist/GoalsUtil-C9EnLWvC.mjs +108 -0
  66. package/dist/GoalsUtil-C9EnLWvC.mjs.map +1 -0
  67. package/dist/HeaderCell-P8w6CmfO.mjs +7 -0
  68. package/dist/HeaderCell-P8w6CmfO.mjs.map +1 -0
  69. package/dist/Help-CkQTjORd.mjs +300 -0
  70. package/dist/Help-CkQTjORd.mjs.map +1 -0
  71. package/dist/Help-aERwhajy.mjs +3210 -0
  72. package/dist/Help-aERwhajy.mjs.map +1 -0
  73. package/dist/IconBacking-DgT8DCeh.mjs +40 -0
  74. package/dist/IconBacking-DgT8DCeh.mjs.map +1 -0
  75. package/dist/InformationTooltip-4su8bn1e.mjs +42 -0
  76. package/dist/InformationTooltip-4su8bn1e.mjs.map +1 -0
  77. package/dist/InvestmentUtil-BItV7uEs.mjs +135 -0
  78. package/dist/InvestmentUtil-BItV7uEs.mjs.map +1 -0
  79. package/dist/LineChart-CUfiH86G.mjs +613 -0
  80. package/dist/LineChart-CUfiH86G.mjs.map +1 -0
  81. package/dist/ListItemAction-BqUCLj_w.mjs +70 -0
  82. package/dist/ListItemAction-BqUCLj_w.mjs.map +1 -0
  83. package/dist/ListItemRow-kH1rn8Xu.mjs +68 -0
  84. package/dist/ListItemRow-kH1rn8Xu.mjs.map +1 -0
  85. package/dist/ListItemWrapper-DRse79Iu.mjs +44 -0
  86. package/dist/ListItemWrapper-DRse79Iu.mjs.map +1 -0
  87. package/dist/Loader-CxeBwuPG.mjs +22 -0
  88. package/dist/Loader-CxeBwuPG.mjs.map +1 -0
  89. package/dist/Localization-DnoVyBNK.mjs +39 -0
  90. package/dist/Localization-DnoVyBNK.mjs.map +1 -0
  91. package/dist/ManageIncome-Dcsnnz86.mjs +906 -0
  92. package/dist/ManageIncome-Dcsnnz86.mjs.map +1 -0
  93. package/dist/MicroWidgetContainer-B2NnKBgW.mjs +46 -0
  94. package/dist/MicroWidgetContainer-B2NnKBgW.mjs.map +1 -0
  95. package/dist/MiniWidgetContainer-Bmv_WeUd.mjs +67 -0
  96. package/dist/MiniWidgetContainer-Bmv_WeUd.mjs.map +1 -0
  97. package/dist/NetWorthUtils-DfSH3z70.mjs +96 -0
  98. package/dist/NetWorthUtils-DfSH3z70.mjs.map +1 -0
  99. package/dist/Notification-DTNYSd8P.mjs +8 -0
  100. package/dist/Notification-DTNYSd8P.mjs.map +1 -0
  101. package/dist/NotificationSettings-CW7okUrk.mjs +678 -0
  102. package/dist/NotificationSettings-CW7okUrk.mjs.map +1 -0
  103. package/dist/NotificationUtils-BRGFTePr.mjs +24 -0
  104. package/dist/NotificationUtils-BRGFTePr.mjs.map +1 -0
  105. package/dist/NumberFormatting--XMeeBfr.mjs +50 -0
  106. package/dist/NumberFormatting--XMeeBfr.mjs.map +1 -0
  107. package/dist/OriginalBalanceAction-YrvxBYAl.mjs +115 -0
  108. package/dist/OriginalBalanceAction-YrvxBYAl.mjs.map +1 -0
  109. package/dist/RecurringSettings-D8hBbXV_.mjs +89 -0
  110. package/dist/RecurringSettings-D8hBbXV_.mjs.map +1 -0
  111. package/dist/RecurringTransactionsUtil-CHWmqvW5.mjs +299 -0
  112. package/dist/RecurringTransactionsUtil-CHWmqvW5.mjs.map +1 -0
  113. package/dist/ResponsiveButton-CC9F_Ezk.mjs +46 -0
  114. package/dist/ResponsiveButton-CC9F_Ezk.mjs.map +1 -0
  115. package/dist/SearchBox-Cpgu_gdO.mjs +51 -0
  116. package/dist/SearchBox-Cpgu_gdO.mjs.map +1 -0
  117. package/dist/Select-CSpkK5cR.mjs +62 -0
  118. package/dist/Select-CSpkK5cR.mjs.map +1 -0
  119. package/dist/SelectionBox-B4xELRgp.mjs +49 -0
  120. package/dist/SelectionBox-B4xELRgp.mjs.map +1 -0
  121. package/dist/SingleSegmentDonut-7Uy6VEld.mjs +70 -0
  122. package/dist/SingleSegmentDonut-7Uy6VEld.mjs.map +1 -0
  123. package/dist/Sizes-DISGrlUg.mjs +7 -0
  124. package/dist/Sizes-DISGrlUg.mjs.map +1 -0
  125. package/dist/SkeletonLoader-BaNboJjD.mjs +39 -0
  126. package/dist/SkeletonLoader-BaNboJjD.mjs.map +1 -0
  127. package/dist/SpendingData-Fii_xATx.mjs +54 -0
  128. package/dist/SpendingData-Fii_xATx.mjs.map +1 -0
  129. package/dist/SpendingLegend-CxvNOg3c.mjs +204 -0
  130. package/dist/SpendingLegend-CxvNOg3c.mjs.map +1 -0
  131. package/dist/StatusBar-CPfSXe80.mjs +31 -0
  132. package/dist/StatusBar-CPfSXe80.mjs.map +1 -0
  133. package/dist/TabContentContainer-B0eYJP5p.mjs +49 -0
  134. package/dist/TabContentContainer-B0eYJP5p.mjs.map +1 -0
  135. package/dist/ToggleListItem-Dl1lXNwj.mjs +92 -0
  136. package/dist/ToggleListItem-Dl1lXNwj.mjs.map +1 -0
  137. package/dist/TransactionDetails-roZ5xLq8.mjs +1708 -0
  138. package/dist/TransactionDetails-roZ5xLq8.mjs.map +1 -0
  139. package/dist/TransactionUtils-BphBJBbU.mjs +235 -0
  140. package/dist/TransactionUtils-BphBJBbU.mjs.map +1 -0
  141. package/dist/TrendsUtil-D9z3kIj_.mjs +70 -0
  142. package/dist/TrendsUtil-D9z3kIj_.mjs.map +1 -0
  143. package/dist/UserStore-C1fdL3Iu.mjs +3054 -0
  144. package/dist/UserStore-C1fdL3Iu.mjs.map +1 -0
  145. package/dist/ViewMoreMicroCard-fnwE0hqd.mjs +1280 -0
  146. package/dist/ViewMoreMicroCard-fnwE0hqd.mjs.map +1 -0
  147. package/dist/WidgetContainer-DJnp6t6c.mjs +483 -0
  148. package/dist/WidgetContainer-DJnp6t6c.mjs.map +1 -0
  149. package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsDrawer.d.ts +6 -0
  150. package/dist/accounts/index.d.ts +1 -0
  151. package/dist/accounts/index.es.js +784 -12
  152. package/dist/accounts/index.es.js.map +1 -0
  153. package/dist/analytics/index.es.js +140 -155
  154. package/dist/analytics/index.es.js.map +1 -0
  155. package/dist/budgets/index.es.js +1267 -1317
  156. package/dist/budgets/index.es.js.map +1 -0
  157. package/dist/cashflow/index.es.js +943 -1047
  158. package/dist/cashflow/index.es.js.map +1 -0
  159. package/dist/categories/index.es.js +5 -4
  160. package/dist/categories/index.es.js.map +1 -0
  161. package/dist/common/components/DataRow.d.ts +1 -0
  162. package/dist/common/components/ListItemWrapper.d.ts +2 -1
  163. package/dist/common/constants/Analytics.d.ts +3 -0
  164. package/dist/common/index.es.js +310 -101
  165. package/dist/common/index.es.js.map +1 -0
  166. package/dist/core/index.es.js +105 -80
  167. package/dist/core/index.es.js.map +1 -0
  168. package/dist/core/stores/RecurringTransactionsStore.d.ts +29 -1
  169. package/dist/core/stores/TransactionStore.d.ts +1 -0
  170. package/dist/core/types/localization/RecurringCopy.d.ts +14 -1
  171. package/dist/core/types/localization/SpendingCopy.d.ts +1 -0
  172. package/dist/core/utils/DateUtil.d.ts +2 -0
  173. package/dist/core/utils/RecurringTransactionsUtil.d.ts +2 -1
  174. package/dist/dashboard/index.es.js +142 -185
  175. package/dist/dashboard/index.es.js.map +1 -0
  176. package/dist/debts/index.es.js +1273 -1384
  177. package/dist/debts/index.es.js.map +1 -0
  178. package/dist/finstrong/index.es.js +3473 -3367
  179. package/dist/finstrong/index.es.js.map +1 -0
  180. package/dist/goals/index.es.js +984 -1103
  181. package/dist/goals/index.es.js.map +1 -0
  182. package/dist/help/index.es.js +26 -3
  183. package/dist/help/index.es.js.map +1 -0
  184. package/dist/hooks-97sNJ_lf.mjs +78 -0
  185. package/dist/hooks-97sNJ_lf.mjs.map +1 -0
  186. package/dist/insights/components/insights/WeeklyNoSpendDays/BubbleWeek.d.ts +4 -1
  187. package/dist/insights/components/insights/WeeklyNoSpendDays/WeeklyNoSpendDays.d.ts +4 -2
  188. package/dist/insights/index.es.js +4871 -93
  189. package/dist/insights/index.es.js.map +1 -0
  190. package/dist/investments/index.es.js +1523 -1533
  191. package/dist/investments/index.es.js.map +1 -0
  192. package/dist/merchants/index.es.js +65 -75
  193. package/dist/merchants/index.es.js.map +1 -0
  194. package/dist/microinsights/index.es.js +826 -15
  195. package/dist/microinsights/index.es.js.map +1 -0
  196. package/dist/networth/index.es.js +504 -550
  197. package/dist/networth/index.es.js.map +1 -0
  198. package/dist/notifications/index.es.js +162 -169
  199. package/dist/notifications/index.es.js.map +1 -0
  200. package/dist/recurringtransactions/components/RecurringTransactionDetails.d.ts +3 -2
  201. package/dist/recurringtransactions/components/RecurringTransactionDetailsDrawer.d.ts +3 -0
  202. package/dist/recurringtransactions/components/RecurringTransactionList.d.ts +11 -0
  203. package/dist/recurringtransactions/components/UpcomingRecurrenceCard.d.ts +8 -0
  204. package/dist/recurringtransactions/components/actions/LinkTransactionDrawer.d.ts +10 -0
  205. package/dist/recurringtransactions/components/actions/MarkAsPaidDialog.d.ts +7 -0
  206. package/dist/recurringtransactions/components/actions/MarkAsUnpaidDialog.d.ts +7 -0
  207. package/dist/recurringtransactions/index.es.js +1012 -10
  208. package/dist/recurringtransactions/index.es.js.map +1 -0
  209. package/dist/settings/index.es.js +892 -13
  210. package/dist/settings/index.es.js.map +1 -0
  211. package/dist/spending/index.es.js +457 -400
  212. package/dist/spending/index.es.js.map +1 -0
  213. package/dist/transactions/components/shared/transactionlist/TransactionRow.d.ts +1 -0
  214. package/dist/transactions/index.es.js +604 -10
  215. package/dist/transactions/index.es.js.map +1 -0
  216. package/dist/trends/index.es.js +1408 -1268
  217. package/dist/trends/index.es.js.map +1 -0
  218. package/dist/useAccountDisplayName-BsiXA0qf.mjs +24 -0
  219. package/dist/useAccountDisplayName-BsiXA0qf.mjs.map +1 -0
  220. package/dist/useAriaLive-MkYebyUR.mjs +36 -0
  221. package/dist/useAriaLive-MkYebyUR.mjs.map +1 -0
  222. package/dist/useDimensions-CeDR9V8N.mjs +37 -0
  223. package/dist/useDimensions-CeDR9V8N.mjs.map +1 -0
  224. package/dist/useInsightsEnabled-D5Sdm0TJ.mjs +12 -0
  225. package/dist/useInsightsEnabled-D5Sdm0TJ.mjs.map +1 -0
  226. package/dist/useScreenSize-mWpmnh5w.mjs +37 -0
  227. package/dist/useScreenSize-mWpmnh5w.mjs.map +1 -0
  228. package/dist/useWidgetLoadTimer-B0tB-yzL.mjs +20 -0
  229. package/dist/useWidgetLoadTimer-B0tB-yzL.mjs.map +1 -0
  230. package/package.json +30 -30
  231. package/dist/Analytics-BKzTPees.mjs +0 -61
  232. package/dist/GlobalCopyApi-BeXzaDH9.mjs +0 -487
  233. package/dist/HeaderCell-EhCUSjvj.mjs +0 -10
  234. package/dist/Loader-BlVzRtUd.mjs +0 -73
  235. package/dist/MiniWidgetContainer-COwnjfy7.mjs +0 -110
  236. package/dist/OriginalBalanceAction-sbiqaxok.mjs +0 -110
  237. package/dist/SpendingLegend-D15ixlQ1.mjs +0 -222
  238. package/dist/accounts-DkyAiLpg.mjs +0 -15632
  239. package/dist/core-BexP5oiV.mjs +0 -4047
  240. package/dist/help-CctDYrAH.mjs +0 -2308
  241. package/dist/insights/components/insights/P2pCategorization/_tests_/P2pCategorizationMultipleTransaction.test.d.ts +0 -0
  242. package/dist/insights/components/insights/P2pCategorization/_tests_/P2pCategorizationSingleTransaction.test.d.ts +0 -0
  243. package/dist/microinsights-CRf3ChsJ.mjs +0 -1814
  244. package/dist/recurringtransactions-gbJ_NA8u.mjs +0 -1564
  245. package/dist/settings-ZMHe439l.mjs +0 -1526
@@ -0,0 +1,230 @@
1
+ import { jsxs as d, jsx as t } from "react/jsx-runtime";
2
+ import B from "react";
3
+ import { observer as I } from "mobx-react-lite";
4
+ import j from "@mui/material/Box";
5
+ import C from "@mui/material/Button";
6
+ import P from "@mui/material/Divider";
7
+ import w from "@mui/material/IconButton";
8
+ import O from "@mui/material/Popover";
9
+ import A from "@mui/material/Stack";
10
+ import E from "@mui/material/Tooltip";
11
+ import { FilterAlt as F } from "@mxenabled/mx-icons";
12
+ import S from "@mui/material/Checkbox";
13
+ import G from "@mui/material/List";
14
+ import g from "@mui/material/ListItem";
15
+ import _ from "@mui/material/ListItemButton";
16
+ import H from "@mui/material/ListItemIcon";
17
+ import v from "@mui/material/ListItemText";
18
+ import { a as M, u as W, c as z } from "./hooks-97sNJ_lf.mjs";
19
+ const R = I(
20
+ ({ allowedAccountTypes: l }) => {
21
+ const { accountFilterMap: s, updateAccountFilterMap: m } = M(), { accounts: x, common: y } = W(), { account_filter: u } = y, { accountsByTypeMap: a } = z(), k = B.useMemo(
22
+ () => Array.from(a.keys()).reduce((e, r) => {
23
+ if (!l || l && l.includes(r)) {
24
+ const i = a.get(r);
25
+ i && e.push(...i);
26
+ }
27
+ return e;
28
+ }, []),
29
+ [a, l]
30
+ ), p = new Map(
31
+ Array.from(s.entries()).filter(([e]) => k.some((r) => r.guid === e))
32
+ ), c = Array.from(p.values()).every((e) => e), f = Array.from(p.values()).some((e) => e), h = () => {
33
+ for (const e of p.keys())
34
+ m(e, !c);
35
+ }, b = (e) => {
36
+ const r = a.get(e);
37
+ if (!r) return;
38
+ const i = r.some((o) => s.get(o.guid));
39
+ for (const o of r)
40
+ m(o.guid, !i);
41
+ };
42
+ return /* @__PURE__ */ d(
43
+ G,
44
+ {
45
+ dense: !0,
46
+ id: "filter_accounts",
47
+ sx: { overflowY: "scroll", maxHeight: 350, minWidth: 280 },
48
+ children: [
49
+ /* @__PURE__ */ t(g, { disableGutters: !0, disablePadding: !0, sx: { py: 16 }, children: /* @__PURE__ */ d(
50
+ _,
51
+ {
52
+ "aria-checked": !c && f ? "mixed" : c,
53
+ disableGutters: !0,
54
+ onClick: h,
55
+ role: "checkbox",
56
+ sx: { p: 0, px: 8 },
57
+ children: [
58
+ /* @__PURE__ */ t(
59
+ S,
60
+ {
61
+ "aria-hidden": !0,
62
+ checked: c,
63
+ disableRipple: !0,
64
+ indeterminate: !c && f,
65
+ size: "small",
66
+ slotProps: { input: { "aria-hidden": !0 } },
67
+ tabIndex: -1
68
+ }
69
+ ),
70
+ /* @__PURE__ */ t(
71
+ v,
72
+ {
73
+ id: "label-select-all",
74
+ primary: u.select_all_accounts,
75
+ slotProps: { primary: { variant: "body1", fontWeight: "normal" } }
76
+ }
77
+ )
78
+ ]
79
+ }
80
+ ) }),
81
+ Array.from(a.keys()).map((e) => {
82
+ const r = a.get(e), i = l ? !l.includes(e) : !1, o = x.account_type_accounts[e];
83
+ return (
84
+ // Account Type Header
85
+ /* @__PURE__ */ t(g, { disableGutters: !0, disablePadding: !0, children: /* @__PURE__ */ d(A, { sx: { pb: 8, width: "100%" }, children: [
86
+ /* @__PURE__ */ t(P, {}),
87
+ /* @__PURE__ */ t(
88
+ G,
89
+ {
90
+ dense: !0,
91
+ subheader: /* @__PURE__ */ t(g, { children: /* @__PURE__ */ t(
92
+ _,
93
+ {
94
+ disableGutters: !0,
95
+ disabled: i,
96
+ onClick: () => b(e),
97
+ sx: { pl: 16, minHeight: 40, justifyContent: "left" },
98
+ children: /* @__PURE__ */ t(
99
+ v,
100
+ {
101
+ primary: o,
102
+ slotProps: { primary: { variant: "body1", fontWeight: "bold" } }
103
+ }
104
+ )
105
+ }
106
+ ) }),
107
+ children: r?.map((n) => (
108
+ // Account Checkbox
109
+ /* @__PURE__ */ t(g, { children: /* @__PURE__ */ d(
110
+ _,
111
+ {
112
+ "aria-checked": !!s.get(n.guid),
113
+ disableGutters: !0,
114
+ disabled: i,
115
+ onClick: () => m(n.guid, !s.get(n.guid)),
116
+ role: "checkbox",
117
+ sx: { p: 0, minHeight: 40 },
118
+ children: [
119
+ /* @__PURE__ */ t(H, { children: /* @__PURE__ */ t(
120
+ S,
121
+ {
122
+ "aria-hidden": !0,
123
+ checked: !!s.get(n.guid),
124
+ disableRipple: !0,
125
+ size: "small",
126
+ slotProps: { input: { "aria-hidden": !0 } },
127
+ tabIndex: -1
128
+ }
129
+ ) }),
130
+ /* @__PURE__ */ t(
131
+ v,
132
+ {
133
+ id: `label-${n.guid}`,
134
+ primary: n.displayName,
135
+ slotProps: { primary: { variant: "body1", fontWeight: "normal" } }
136
+ }
137
+ )
138
+ ]
139
+ }
140
+ ) }, n.guid)
141
+ ))
142
+ }
143
+ )
144
+ ] }) }, e)
145
+ );
146
+ })
147
+ ]
148
+ }
149
+ );
150
+ }
151
+ ), nt = I(
152
+ ({
153
+ allowedAccountTypes: l,
154
+ isDesktop: s,
155
+ onAccountFilterClick: m,
156
+ sx: x = {},
157
+ variant: y = "text"
158
+ }) => {
159
+ const { common: u } = W(), { accountFilterMap: a, resetAccountFilterMap: k } = M(), { detailedAccounts: p, updateAccountFilter: c } = z(), [f, h] = B.useState(null), b = (L) => {
160
+ k(), h(L.currentTarget), m?.();
161
+ }, e = () => {
162
+ h(null);
163
+ }, r = async () => {
164
+ await c(a), h(null);
165
+ }, i = u.account_filter, o = !!f, n = p.length === 0;
166
+ return /* @__PURE__ */ d(j, { sx: { ...x }, children: [
167
+ s ? /* @__PURE__ */ t(
168
+ C,
169
+ {
170
+ "aria-controls": o ? "filter_accounts" : void 0,
171
+ "aria-expanded": o,
172
+ "aria-haspopup": !0,
173
+ "aria-label": i.title,
174
+ disabled: n,
175
+ onClick: b,
176
+ startIcon: /* @__PURE__ */ t(F, { size: 24 }),
177
+ sx: { p: 8, whiteSpace: "nowrap", minWidth: "max-content" },
178
+ variant: y,
179
+ children: u.filter_button
180
+ }
181
+ ) : /* @__PURE__ */ t(E, { id: "filter-accounts", placement: "bottom", title: i.title, children: /* @__PURE__ */ t(
182
+ w,
183
+ {
184
+ "aria-controls": o ? "filter_accounts" : void 0,
185
+ "aria-describedby": "filter-accounts",
186
+ "aria-expanded": o,
187
+ "aria-haspopup": !0,
188
+ "aria-label": i.title,
189
+ color: "primary",
190
+ disabled: n,
191
+ onClick: b,
192
+ sx: { p: 8 },
193
+ children: /* @__PURE__ */ t(F, { size: 24 })
194
+ }
195
+ ) }),
196
+ /* @__PURE__ */ t(
197
+ O,
198
+ {
199
+ anchorEl: f,
200
+ anchorOrigin: { vertical: "bottom", horizontal: "left" },
201
+ onClose: e,
202
+ open: o,
203
+ transformOrigin: { vertical: "top", horizontal: "left" },
204
+ children: /* @__PURE__ */ d(A, { children: [
205
+ /* @__PURE__ */ t(R, { allowedAccountTypes: l }),
206
+ /* @__PURE__ */ t(P, {}),
207
+ /* @__PURE__ */ d(A, { direction: "row", justifyContent: "space-between", spacing: 16, sx: { p: 16 }, children: [
208
+ /* @__PURE__ */ t(C, { fullWidth: !0, onClick: e, variant: "text", children: u.cancel_button }),
209
+ /* @__PURE__ */ t(
210
+ C,
211
+ {
212
+ "aria-label": i.filter_button_generic_aria,
213
+ color: "primary",
214
+ fullWidth: !0,
215
+ onClick: r,
216
+ variant: "contained",
217
+ children: u.filter_button
218
+ }
219
+ )
220
+ ] })
221
+ ] })
222
+ }
223
+ )
224
+ ] });
225
+ }
226
+ );
227
+ export {
228
+ nt as G
229
+ };
230
+ //# sourceMappingURL=GlobalAccountFilter-BhzR5Vb1.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalAccountFilter-BhzR5Vb1.mjs","sources":["../src/common/components/globalaccountfilter/GlobalAccountFilterList.tsx","../src/common/components/GlobalAccountFilter.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport CheckBox from '@mui/material/Checkbox'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemIcon from '@mui/material/ListItemIcon'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\n\nimport { useAccountStore, useGlobalCopyStore, useGlobalUiStore } from '../../context'\nimport { AccountType, type DetailedAccount } from '../../../core'\n\nexport interface GlobalAccountFilterListProps {\n allowedAccountTypes: AccountType[] | undefined\n}\n\nexport const GlobalAccountFilterList = observer(\n ({ allowedAccountTypes }: GlobalAccountFilterListProps) => {\n const { accountFilterMap, updateAccountFilterMap } = useGlobalUiStore()\n const { accounts: accountsCopy, common: commonCopy } = useGlobalCopyStore()\n const { account_filter: copy } = commonCopy\n\n const { accountsByTypeMap } = useAccountStore()\n\n // Allowed accounts\n const allowedAccounts = React.useMemo(\n () =>\n Array.from(accountsByTypeMap.keys()).reduce((acc: DetailedAccount[], accountType) => {\n if (\n !allowedAccountTypes ||\n (allowedAccountTypes && allowedAccountTypes.includes(accountType))\n ) {\n const accounts = accountsByTypeMap.get(accountType)\n if (accounts) {\n acc.push(...accounts)\n }\n }\n return acc\n }, []),\n [accountsByTypeMap, allowedAccountTypes],\n )\n\n // Filters the selection to include only allowed accounts\n const selectionFilter = new Map<string, boolean>(\n Array.from(accountFilterMap.entries()).filter(([guid]) => {\n return allowedAccounts.some((account) => account.guid === guid)\n }),\n )\n\n const allSelected = Array.from(selectionFilter.values()).every((isSelected) => isSelected)\n const someSelected = Array.from(selectionFilter.values()).some((isSelected) => isSelected)\n\n const handleSelectAllClick = () => {\n for (const guid of selectionFilter.keys()) {\n updateAccountFilterMap(guid, !allSelected)\n }\n }\n\n const handleSelectAccountTypeClick = (accountType: AccountType) => {\n const accounts = accountsByTypeMap.get(accountType)\n if (!accounts) return\n\n const someAccountsSelected = accounts.some((account) => accountFilterMap.get(account.guid))\n for (const account of accounts) {\n updateAccountFilterMap(account.guid, !someAccountsSelected)\n }\n }\n\n return (\n <List\n dense={true}\n id=\"filter_accounts\"\n sx={{ overflowY: 'scroll', maxHeight: 350, minWidth: 280 }}\n >\n {/* Select All Checkbox */}\n <ListItem disableGutters={true} disablePadding={true} sx={{ py: 16 }}>\n <ListItemButton\n aria-checked={!allSelected && someSelected ? 'mixed' : allSelected}\n disableGutters={true}\n onClick={handleSelectAllClick}\n role=\"checkbox\"\n sx={{ p: 0, px: 8 }}\n >\n <CheckBox\n aria-hidden={true}\n checked={allSelected}\n disableRipple={true}\n indeterminate={!allSelected && someSelected}\n size=\"small\"\n slotProps={{ input: { 'aria-hidden': true } }}\n tabIndex={-1}\n />\n <ListItemText\n id={`label-select-all`}\n primary={copy.select_all_accounts}\n slotProps={{ primary: { variant: 'body1', fontWeight: 'normal' } }}\n />\n </ListItemButton>\n </ListItem>\n\n {Array.from(accountsByTypeMap.keys()).map((accountType) => {\n const accounts = accountsByTypeMap.get(accountType)\n const disabled = allowedAccountTypes ? !allowedAccountTypes.includes(accountType) : false\n const typeName = accountsCopy.account_type_accounts[accountType]\n\n return (\n // Account Type Header\n <ListItem disableGutters={true} disablePadding={true} key={accountType}>\n <Stack sx={{ pb: 8, width: '100%' }}>\n <Divider />\n <List\n dense={true}\n subheader={\n <ListItem>\n <ListItemButton\n disableGutters={true}\n disabled={disabled}\n onClick={() => handleSelectAccountTypeClick(accountType)}\n sx={{ pl: 16, minHeight: 40, justifyContent: 'left' }}\n >\n <ListItemText\n primary={typeName}\n slotProps={{ primary: { variant: 'body1', fontWeight: 'bold' } }}\n />\n </ListItemButton>\n </ListItem>\n }\n >\n {accounts?.map((account) => (\n // Account Checkbox\n <ListItem key={account.guid}>\n <ListItemButton\n aria-checked={!!accountFilterMap.get(account.guid)}\n disableGutters={true}\n disabled={disabled}\n onClick={() =>\n updateAccountFilterMap(account.guid, !accountFilterMap.get(account.guid))\n }\n role=\"checkbox\"\n sx={{ p: 0, minHeight: 40 }}\n >\n <ListItemIcon>\n <CheckBox\n aria-hidden={true}\n checked={!!accountFilterMap.get(account.guid)}\n disableRipple={true}\n size=\"small\"\n slotProps={{ input: { 'aria-hidden': true } }}\n tabIndex={-1}\n />\n </ListItemIcon>\n <ListItemText\n id={`label-${account.guid}`}\n primary={account.displayName}\n slotProps={{ primary: { variant: 'body1', fontWeight: 'normal' } }}\n />\n </ListItemButton>\n </ListItem>\n ))}\n </List>\n </Stack>\n </ListItem>\n )\n })}\n </List>\n )\n },\n)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Divider from '@mui/material/Divider'\nimport IconButton from '@mui/material/IconButton'\nimport Popover from '@mui/material/Popover'\nimport Stack from '@mui/material/Stack'\nimport Tooltip from '@mui/material/Tooltip'\nimport { SxProps } from '@mui/material/styles'\n\nimport { FilterAlt } from '@mxenabled/mx-icons'\n\nimport { useAccountStore, useGlobalCopyStore, useGlobalUiStore } from '../context'\nimport { AccountType } from '../../core'\n\nimport { GlobalAccountFilterList } from './globalaccountfilter/GlobalAccountFilterList'\n\nexport interface GlobalAccountFilterProps {\n allowedAccountTypes?: AccountType[] | undefined\n isDesktop?: boolean\n onAccountFilterClick?: () => void\n sx?: SxProps\n variant?: 'outlined' | 'text'\n}\n\nexport const GlobalAccountFilter = observer(\n ({\n allowedAccountTypes,\n isDesktop,\n onAccountFilterClick,\n sx = {},\n variant = 'text',\n }: GlobalAccountFilterProps) => {\n const { common: commonCopy } = useGlobalCopyStore()\n const { accountFilterMap, resetAccountFilterMap } = useGlobalUiStore()\n\n const { detailedAccounts, updateAccountFilter } = useAccountStore()\n\n const [filterButtonEl, setFilterButtonEl] = React.useState<HTMLButtonElement | null>(null)\n\n const handleOpen = (event: React.MouseEvent<HTMLButtonElement>) => {\n resetAccountFilterMap()\n setFilterButtonEl(event.currentTarget)\n onAccountFilterClick?.()\n }\n\n const handleCancel = () => {\n setFilterButtonEl(null)\n }\n\n const handleFilter = async () => {\n await updateAccountFilter(accountFilterMap)\n setFilterButtonEl(null)\n }\n\n const copy = commonCopy.account_filter\n const isFilterOpen = Boolean(filterButtonEl)\n const filterDisabled = detailedAccounts.length === 0\n\n return (\n <Box sx={{ ...sx }}>\n {isDesktop ? (\n <Button\n aria-controls={isFilterOpen ? 'filter_accounts' : undefined}\n aria-expanded={isFilterOpen}\n aria-haspopup={true}\n aria-label={copy.title}\n disabled={filterDisabled}\n onClick={handleOpen}\n startIcon={<FilterAlt size={24} />}\n sx={{ p: 8, whiteSpace: 'nowrap', minWidth: 'max-content' }}\n variant={variant}\n >\n {commonCopy.filter_button}\n </Button>\n ) : (\n <Tooltip id=\"filter-accounts\" placement=\"bottom\" title={copy.title}>\n <IconButton\n aria-controls={isFilterOpen ? 'filter_accounts' : undefined}\n aria-describedby=\"filter-accounts\"\n aria-expanded={isFilterOpen}\n aria-haspopup={true}\n aria-label={copy.title}\n color=\"primary\"\n disabled={filterDisabled}\n onClick={handleOpen}\n sx={{ p: 8 }}\n >\n <FilterAlt size={24} />\n </IconButton>\n </Tooltip>\n )}\n\n <Popover\n anchorEl={filterButtonEl}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n onClose={handleCancel}\n open={isFilterOpen}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n >\n <Stack>\n <GlobalAccountFilterList allowedAccountTypes={allowedAccountTypes} />\n <Divider />\n <Stack direction=\"row\" justifyContent=\"space-between\" spacing={16} sx={{ p: 16 }}>\n <Button fullWidth={true} onClick={handleCancel} variant=\"text\">\n {commonCopy.cancel_button}\n </Button>\n <Button\n aria-label={copy.filter_button_generic_aria}\n color=\"primary\"\n fullWidth={true}\n onClick={handleFilter}\n variant=\"contained\"\n >\n {commonCopy.filter_button}\n </Button>\n </Stack>\n </Stack>\n </Popover>\n </Box>\n )\n },\n)\n"],"names":["GlobalAccountFilterList","observer","allowedAccountTypes","accountFilterMap","updateAccountFilterMap","useGlobalUiStore","accountsCopy","commonCopy","useGlobalCopyStore","copy","accountsByTypeMap","useAccountStore","allowedAccounts","React","acc","accountType","accounts","selectionFilter","guid","account","allSelected","isSelected","someSelected","handleSelectAllClick","handleSelectAccountTypeClick","someAccountsSelected","jsxs","List","jsx","ListItem","ListItemButton","CheckBox","ListItemText","disabled","typeName","Stack","Divider","ListItemIcon","GlobalAccountFilter","isDesktop","onAccountFilterClick","sx","variant","resetAccountFilterMap","detailedAccounts","updateAccountFilter","filterButtonEl","setFilterButtonEl","handleOpen","event","handleCancel","handleFilter","isFilterOpen","filterDisabled","Box","Button","FilterAlt","Tooltip","IconButton","Popover"],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import c from "bowser";
2
+ import { A as a } from "./ApiEndpoints-DXwIYNUV.mjs";
3
+ import { g as h } from "./Localization-DnoVyBNK.mjs";
4
+ class o {
5
+ endpoint = "/";
6
+ headers;
7
+ onError;
8
+ constructor(e, n, t, r) {
9
+ this.endpoint = e;
10
+ const s = {
11
+ Accept: "application/json",
12
+ "Accept-Language": h(),
13
+ "Content-Type": "application/json",
14
+ "MD-Session-Token": n
15
+ };
16
+ this.headers = t || s, this.onError = r;
17
+ }
18
+ get = async (e) => {
19
+ const n = {
20
+ method: "GET",
21
+ headers: this.headers
22
+ };
23
+ return fetch(`${this.endpoint}${e}`, n).then((t) => {
24
+ if (t.ok)
25
+ return t.text();
26
+ throw t;
27
+ }).then((t) => t.length ? JSON.parse(t) : {}).then((t) => t).catch((t) => {
28
+ throw this.onError?.(t, void 0, "ApiGetRequestError"), t;
29
+ });
30
+ };
31
+ post = async (e, n) => {
32
+ const t = n ? JSON.stringify(n) : void 0, r = {
33
+ method: "POST",
34
+ headers: this.headers,
35
+ body: t
36
+ };
37
+ return fetch(`${this.endpoint}${e}`, r).then((s) => {
38
+ if (!s.ok)
39
+ throw s;
40
+ return s.text();
41
+ }).then((s) => s.length ? JSON.parse(s) : {}).then((s) => s).catch((s) => {
42
+ throw s;
43
+ });
44
+ };
45
+ put = async (e, n) => {
46
+ const t = JSON.stringify(n), r = {
47
+ method: "PUT",
48
+ headers: this.headers,
49
+ body: t
50
+ };
51
+ return fetch(`${this.endpoint}${e}`, r).then((s) => {
52
+ if (s.ok)
53
+ return s.text();
54
+ throw new Error(`${s.status}`);
55
+ }).then((s) => s.length ? JSON.parse(s) : {}).then((s) => s).catch((s) => {
56
+ throw window?.app?.config?.type === "pulse" && this.onError?.(s.message), s.message;
57
+ });
58
+ };
59
+ delete = async (e) => {
60
+ const n = {
61
+ method: "DELETE",
62
+ headers: this.headers
63
+ };
64
+ return fetch(`${this.endpoint}${e}`, n).then((t) => t.ok ? t.text() : t.text().then((r) => {
65
+ throw new Error(r);
66
+ })).then((t) => t.length ? JSON.parse(t) : {}).then((t) => t).catch((t) => {
67
+ throw t;
68
+ });
69
+ };
70
+ }
71
+ class f {
72
+ fetchInstance;
73
+ constructor(e, n, t) {
74
+ this.fetchInstance = new o(e, n, void 0, t);
75
+ }
76
+ initializeAnalyticsSession = async (e, n) => {
77
+ const t = c.getParser(window.navigator.userAgent), { analytics_session: r } = await this.fetchInstance.post(a.ANALYTICS_SESSION, {
78
+ browser_name: t.getBrowserName() || "Unknown",
79
+ browser_version: t.getBrowserVersion() || "0.0.0",
80
+ is_first_visit: !1,
81
+ product_name: "Individual Widget",
82
+ product_version: e
83
+ });
84
+ return r ? (this.fetchInstance.post(a.ANALYTICS_FEATURE_VISITS, {
85
+ feature_visit: {
86
+ analytics_session_guid: r.guid,
87
+ feature_name: n || "Experiences",
88
+ is_first_visit: r.is_first_visit
89
+ }
90
+ }), { analytics_session: r }) : { analytics_session: null };
91
+ };
92
+ sendAnalyticEvent = async (e) => this.fetchInstance.post(a.ANALYTICS_EVENTS, e).catch((n) => {
93
+ throw n;
94
+ });
95
+ sendAnalyticsPageview = async (e) => this.fetchInstance.post(a.ANALYTICS_PAGEVIEWS, e).catch((n) => {
96
+ throw n;
97
+ });
98
+ }
99
+ class l {
100
+ fetchInstance;
101
+ constructor(e, n, t) {
102
+ this.fetchInstance = new o(e, n, void 0, t);
103
+ }
104
+ getBeats = async (e, n) => {
105
+ const t = `page=${e || 1}&per_page=${n || 5}`;
106
+ return this.fetchInstance.get(`${a.BEATS}?${t}`).then((r) => r.beats);
107
+ };
108
+ getBeatsWithAssociatedTransaction = async (e) => {
109
+ let n = "has_associated_transaction_guid=true";
110
+ return n += e ? `&from_date=${e}` : "", this.fetchInstance.get(`${a.BEATS}?${n}`).then((t) => t.beats);
111
+ };
112
+ getOffers = async () => this.fetchInstance.get(`${a.OFFERS}/${a.PULSE_COMMUNICATIONS}`).then((e) => e.pulse_communications);
113
+ updateBeat = async (e) => this.fetchInstance.put(`${a.BEATS}/${e.guid}`, e).then((n) => n.beat);
114
+ updateOffer = async (e) => this.fetchInstance.put(`${a.OFFERS}/${e.guid}`, e).then((n) => n.beat);
115
+ }
116
+ class g {
117
+ fetchInstance;
118
+ constructor(e, n, t) {
119
+ this.fetchInstance = new o(e, n, void 0, t);
120
+ }
121
+ getGlobalCopy = async (e, n) => this.fetchInstance.post(`${a.LOCALIZED_CONTENT}/${e}`, { translation_key: n }).then((t) => t);
122
+ }
123
+ export {
124
+ f as A,
125
+ l as B,
126
+ o as F,
127
+ g as G
128
+ };
129
+ //# sourceMappingURL=GlobalCopyApi-wcnDUzMV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalCopyApi-wcnDUzMV.mjs","sources":["../src/core/utils/Fetch.ts","../src/core/api/AnalyticsApi.ts","../src/core/api/BeatApi.ts","../src/core/api/GlobalCopyApi.ts"],"sourcesContent":["import { type GlobalErrorHandler } from '../types'\nimport { getLocale } from './Localization'\n\nexport class Fetch {\n endpoint = '/'\n headers: Record<string, string>\n onError?: GlobalErrorHandler\n\n constructor(\n endpoint: string,\n token: string,\n headers?: Record<string, string>,\n onError?: GlobalErrorHandler,\n ) {\n this.endpoint = endpoint\n const defaultHeaders = {\n Accept: 'application/json',\n 'Accept-Language': getLocale(),\n 'Content-Type': 'application/json',\n 'MD-Session-Token': token,\n }\n this.headers = headers || defaultHeaders\n this.onError = onError\n }\n\n get = async (url: string) => {\n const options = {\n method: 'GET',\n headers: this.headers,\n }\n\n return fetch(`${this.endpoint}${url}`, options)\n .then((response) => {\n if (response.ok) {\n return response.text()\n } else {\n throw response\n }\n })\n .then((text) => (text.length ? JSON.parse(text) : {}))\n .then((data) => data)\n .catch((err) => {\n this.onError?.(err, undefined, 'ApiGetRequestError')\n throw err\n })\n }\n\n post = async (url: string, data?: any) => {\n const body = data ? JSON.stringify(data) : undefined\n const options = {\n method: 'POST',\n headers: this.headers,\n body,\n }\n\n return fetch(`${this.endpoint}${url}`, options)\n .then((response) => {\n if (!response.ok) {\n throw response\n }\n\n return response.text()\n })\n .then((text) => (text.length ? JSON.parse(text) : {}))\n .then((data) => data)\n .catch((error) => {\n throw error\n })\n }\n\n put = async (url: string, data: any) => {\n const body = JSON.stringify(data)\n const options = {\n method: 'PUT',\n headers: this.headers,\n body,\n }\n\n return fetch(`${this.endpoint}${url}`, options)\n .then((response) => {\n if (response.ok) {\n return response.text()\n } else {\n throw new Error(`${response.status}`)\n }\n })\n .then((text) => (text.length ? JSON.parse(text) : {}))\n .then((data) => data)\n .catch((err) => {\n if (window?.app?.config?.type === 'pulse') {\n this.onError?.(err.message)\n }\n throw err.message\n })\n }\n\n delete = async (url: string) => {\n const options = {\n method: 'DELETE',\n headers: this.headers,\n }\n\n return fetch(`${this.endpoint}${url}`, options)\n .then((response) => {\n if (response.ok) {\n return response.text()\n } else {\n return response.text().then((text) => {\n throw new Error(text)\n })\n }\n })\n .then((text) => (text.length ? JSON.parse(text) : {}))\n .then((data) => data)\n .catch((err) => {\n throw err\n })\n }\n}\n\nexport default Fetch\n","import Bowser from 'bowser'\n\nimport { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { AnalyticsEvent, GlobalErrorHandler } from '..'\n\nexport class AnalyticsApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n initializeAnalyticsSession = async (version: string, featureName?: string) => {\n const browser = Bowser.getParser(window.navigator.userAgent)\n\n const { analytics_session } = await this.fetchInstance.post(ApiEndpoints.ANALYTICS_SESSION, {\n browser_name: browser.getBrowserName() || 'Unknown',\n browser_version: browser.getBrowserVersion() || '0.0.0',\n is_first_visit: false,\n product_name: 'Individual Widget',\n product_version: version,\n })\n if (!analytics_session) {\n return { analytics_session: null }\n }\n this.fetchInstance.post(ApiEndpoints.ANALYTICS_FEATURE_VISITS, {\n feature_visit: {\n analytics_session_guid: analytics_session.guid,\n feature_name: featureName ? featureName : 'Experiences',\n is_first_visit: analytics_session.is_first_visit,\n },\n })\n return { analytics_session }\n }\n\n sendAnalyticEvent = async (event: AnalyticsEvent) => {\n return this.fetchInstance.post(ApiEndpoints.ANALYTICS_EVENTS, event).catch((err) => {\n throw err\n })\n }\n\n sendAnalyticsPageview = async (event: any) => {\n return this.fetchInstance.post(ApiEndpoints.ANALYTICS_PAGEVIEWS, event).catch((err) => {\n throw err\n })\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { Beat, GlobalErrorHandler } from '..'\n\nexport class BeatApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n getBeats = async (pageNum?: number, perPage?: number) => {\n const beatParams = `page=${pageNum ? pageNum : 1}&per_page=${perPage ? perPage : 5}`\n\n return this.fetchInstance.get(`${ApiEndpoints.BEATS}?${beatParams}`).then((data) => data.beats)\n }\n\n getBeatsWithAssociatedTransaction = async (fromDate?: string) => {\n let beatParams = 'has_associated_transaction_guid=true'\n beatParams += fromDate ? `&from_date=${fromDate}` : ''\n\n return this.fetchInstance.get(`${ApiEndpoints.BEATS}?${beatParams}`).then((data) => data.beats)\n }\n\n getOffers = async () => {\n return this.fetchInstance\n .get(`${ApiEndpoints.OFFERS}/${ApiEndpoints.PULSE_COMMUNICATIONS}`)\n .then((data) => data.pulse_communications)\n }\n\n updateBeat = async (beat: Beat) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.BEATS}/${beat.guid}`, beat)\n .then((data) => data.beat)\n }\n\n updateOffer = async (beat: Beat) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.OFFERS}/${beat.guid}`, beat)\n .then((data) => data.beat)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { GlobalErrorHandler } from '..'\n\nexport class GlobalCopyApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n getGlobalCopy = async (namespace: string, translationKey: string) => {\n return this.fetchInstance\n .post(`${ApiEndpoints.LOCALIZED_CONTENT}/${namespace}`, { translation_key: translationKey })\n .then((data) => data)\n }\n}\n"],"names":["Fetch","endpoint","token","headers","onError","defaultHeaders","getLocale","url","options","response","text","data","err","body","error","AnalyticsApi","version","featureName","browser","Bowser","analytics_session","ApiEndpoints","event","BeatApi","pageNum","perPage","beatParams","fromDate","beat","GlobalCopyApi","namespace","translationKey"],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ import { fromUnixTime as s } from "date-fns/fromUnixTime";
2
+ import { addYears as C } from "date-fns/addYears";
3
+ import { getUnixTime as N } from "date-fns/getUnixTime";
4
+ import { a as g } from "./NumberFormatting--XMeeBfr.mjs";
5
+ import { b as r } from "./Localization-DnoVyBNK.mjs";
6
+ import { f as T, D as O } from "./DateFormats-HudZ3Bjs.mjs";
7
+ var e = /* @__PURE__ */ ((t) => (t[t.DEBT_TRACK = 1] = "DEBT_TRACK", t[t.SAVINGS_TRACK = 2] = "SAVINGS_TRACK", t[t.RETIREMENT_TRACK = 3] = "RETIREMENT_TRACK", t[t.EMERGENCY_FUND_TRACK = 4] = "EMERGENCY_FUND_TRACK", t))(e || {}), I = /* @__PURE__ */ ((t) => (t[t.SAVE_AMOUNT = 1] = "SAVE_AMOUNT", t[t.KEEP_BALANCE_BELOW = 2] = "KEEP_BALANCE_BELOW", t[t.KEEP_BALANCE_ABOVE = 3] = "KEEP_BALANCE_ABOVE", t[t.ACTION = 4] = "ACTION", t))(I || {}), n = /* @__PURE__ */ ((t) => (t[t.AUTOMOBILE = 1] = "AUTOMOBILE", t[t.COLLEGE = 2] = "COLLEGE", t[t.HOUSE = 3] = "HOUSE", t[t.RECREATIONAL_VEHICLE = 4] = "RECREATIONAL_VEHICLE", t[t.VACATION = 5] = "VACATION", t[t.ELECTRONIC = 6] = "ELECTRONIC", t[t.OTHER = 7] = "OTHER", t[t.RETIREMENT = 8] = "RETIREMENT", t[t.EMERGENCY_FUND = 9] = "EMERGENCY_FUND", t[t.SETUP_BUDGETS = 10] = "SETUP_BUDGETS", t[t.START_MONEY_MANAGEMENT = 11] = "START_MONEY_MANAGEMENT", t[t.CREDIT_CARD = 12] = "CREDIT_CARD", t[t.LINE_OF_CREDIT = 13] = "LINE_OF_CREDIT", t[t.LOANS = 14] = "LOANS", t))(n || {});
8
+ function h(t, E) {
9
+ const o = E.track_type === e.DEBT_TRACK ? E.initial_amount : E.amount;
10
+ let _ = E.current_amount / o;
11
+ _ > 1 && (_ = 1), _ = E.track_type === e.DEBT_TRACK ? 1 - _ : _, isNaN(_) && (_ = 1);
12
+ let i = "chart.chart1", a = "common.black";
13
+ E.track_type === e.DEBT_TRACK ? (a = "common.white", i = "chart.chart5") : E.track_type === e.RETIREMENT_TRACK && (i = "chart.chart6");
14
+ const A = {
15
+ style: "percent",
16
+ minimumFractionDigits: 0,
17
+ maximumFractionDigits: 0
18
+ }, c = E.is_complete ? E.completed_at : E.projected_to_complete_at, l = c ? s(c) : /* @__PURE__ */ new Date(), m = r(
19
+ t.goal_percentage,
20
+ g(_, A)
21
+ ), R = r(
22
+ E.is_complete ? t.completed_label : t.goal_projection,
23
+ T(l, O.MONTH_SHORT_YEAR)
24
+ );
25
+ return {
26
+ backgroundColor: i,
27
+ color: a,
28
+ percentage: _,
29
+ percentageText: m,
30
+ projectedText: R
31
+ };
32
+ }
33
+ function K(t) {
34
+ return [
35
+ {
36
+ bgcolor: "chart.chart1",
37
+ icon: "attach_money",
38
+ label: t.saving_goal_label,
39
+ description: t.saving_goal_description,
40
+ subTypes: [
41
+ {
42
+ icon: "ecg_heart",
43
+ label: t.saving_goal_emergency_fund,
44
+ metaType: n.EMERGENCY_FUND
45
+ },
46
+ {
47
+ icon: "directions_car",
48
+ label: t.saving_gaol_automobile,
49
+ metaType: n.AUTOMOBILE
50
+ },
51
+ { icon: "school", label: t.saving_goal_college, metaType: n.COLLEGE },
52
+ { icon: "home", label: t.saving_goal_home, metaType: n.HOUSE },
53
+ {
54
+ icon: "mountain_flag",
55
+ label: t.saving_goal_recreational,
56
+ metaType: n.RECREATIONAL_VEHICLE
57
+ },
58
+ { icon: "airplane_ticket", label: t.saving_goal_vacation, metaType: n.VACATION },
59
+ {
60
+ icon: "desktop_windows",
61
+ label: t.saving_goal_electronic,
62
+ metaType: n.ELECTRONIC
63
+ },
64
+ { icon: "payments", label: t.saving_goal_other, metaType: n.OTHER }
65
+ ],
66
+ type: e.SAVINGS_TRACK
67
+ },
68
+ {
69
+ bgcolor: "chart.chart5",
70
+ icon: "note_stack",
71
+ label: t.debt_goal_label,
72
+ description: t.debt_goal_description,
73
+ subTypes: [],
74
+ type: e.DEBT_TRACK
75
+ },
76
+ {
77
+ bgcolor: "chart.chart6",
78
+ icon: "person",
79
+ label: t.retirement_goal_label,
80
+ description: t.retirement_goal_description,
81
+ subTypes: [],
82
+ type: e.RETIREMENT_TRACK
83
+ }
84
+ ];
85
+ }
86
+ const B = (t, E) => {
87
+ switch (t) {
88
+ case e.DEBT_TRACK:
89
+ return r(E.zero_state_ongoing, "debt");
90
+ case e.SAVINGS_TRACK:
91
+ return r(E.zero_state_ongoing, "saving");
92
+ default:
93
+ return r(E.zero_state_ongoing, "retirement");
94
+ }
95
+ }, U = (t, E) => {
96
+ const o = s(E), _ = C(o, t);
97
+ return N(_);
98
+ };
99
+ export {
100
+ I as G,
101
+ n as M,
102
+ e as T,
103
+ B as a,
104
+ K as b,
105
+ U as c,
106
+ h as g
107
+ };
108
+ //# sourceMappingURL=GoalsUtil-C9EnLWvC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoalsUtil-C9EnLWvC.mjs","sources":["../src/core/types/Goal.ts","../src/core/utils/GoalsUtil.ts"],"sourcesContent":["export interface Goal {\n guid: string\n account_guid: string\n account_is_excluded_from_debts: boolean\n amount: number\n budget_guid: string\n completed_at?: number\n created_at: number\n created_by: number\n current_amount: number\n goal_type: GoalType\n has_been_spent: boolean\n initial_amount: number\n interest_rate?: number\n is_complete: boolean\n is_spendable: boolean\n meta_type: MetaType\n metadata?: string\n monthly_payment?: number\n name: string\n payment_due_at?: number\n position: number\n projected_amount?: number\n projected_growth_rate?: number\n projected_to_complete_at?: number\n retirement_age?: number\n revision: number\n target_amount?: number\n track_type?: TrackType\n updated_at: number\n user_guid: string\n}\n\nexport interface RetirementGoalAccount {\n account_guid: string\n created_at: number\n guid: string\n retirement_goal_guid: string\n updated_at: number\n user_guid: string\n}\n\nexport interface MonthlyCashFlowProfile {\n amount_allocated_for_debt_goals: number\n amount_allocated_for_retirement_goals: number\n amount_allocated_for_savings_goals: number\n budgeted_expenses: number\n budgeted_income: number\n estimated_goals_contribution: number\n extra_payment: number\n guid: string\n payoff_type: number\n user_guid: string\n uses_estimated_goals_contribution: boolean\n}\n\nexport enum TrackType {\n DEBT_TRACK = 1,\n SAVINGS_TRACK = 2,\n RETIREMENT_TRACK = 3,\n EMERGENCY_FUND_TRACK = 4,\n}\n\nexport enum GoalType {\n SAVE_AMOUNT = 1,\n KEEP_BALANCE_BELOW = 2,\n KEEP_BALANCE_ABOVE = 3,\n ACTION = 4,\n}\n\nexport enum MetaType {\n AUTOMOBILE = 1,\n COLLEGE = 2,\n HOUSE = 3,\n RECREATIONAL_VEHICLE = 4,\n VACATION = 5,\n ELECTRONIC = 6,\n OTHER = 7,\n RETIREMENT = 8,\n EMERGENCY_FUND = 9,\n SETUP_BUDGETS = 10,\n START_MONEY_MANAGEMENT = 11,\n CREDIT_CARD = 12,\n LINE_OF_CREDIT = 13,\n LOANS = 14,\n}\n","import { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { addYears } from 'date-fns/addYears'\nimport { getUnixTime } from 'date-fns/getUnixTime'\n\nimport { DATE_FORMATS_INTL, formatDate } from '../constants'\nimport { type Goal, type GoalsCopy, MetaType, TrackType } from '../index'\nimport { formatPercentage } from './NumberFormatting'\nimport { buildDynamicCopy } from './Localization'\n\nexport interface GoalStatusData {\n backgroundColor: string\n color: string\n percentage: number\n percentageText: string\n projectedText: string\n}\n\nexport type GoalType = {\n bgcolor: string\n icon: string\n label: string\n description: string\n subTypes: {\n icon: string\n label: string\n metaType: MetaType\n }[]\n type: TrackType\n}\n\nexport function getGoalStatusData(copy: GoalsCopy, goal: Goal): GoalStatusData {\n const amount = goal.track_type === TrackType.DEBT_TRACK ? goal.initial_amount : goal.amount\n\n let percentage = goal.current_amount / amount\n if (percentage > 1) percentage = 1\n // For Debts, the percentage is inversed.\n percentage = goal.track_type === TrackType.DEBT_TRACK ? 1 - percentage : percentage\n\n // Handle cases where both amounts are 0 producing NaN\n if (isNaN(percentage)) percentage = 1\n\n let backgroundColor = 'chart.chart1'\n let color = 'common.black'\n if (goal.track_type === TrackType.DEBT_TRACK) {\n color = 'common.white'\n backgroundColor = 'chart.chart5'\n } else if (goal.track_type === TrackType.RETIREMENT_TRACK) {\n backgroundColor = 'chart.chart6'\n }\n\n const percentageStyle = {\n style: 'percent',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n } as Intl.NumberFormatOptions\n\n const completionDateUnixTime = goal.is_complete\n ? goal.completed_at\n : goal.projected_to_complete_at\n const completionDate = completionDateUnixTime ? fromUnixTime(completionDateUnixTime) : new Date()\n\n const percentageText = buildDynamicCopy(\n copy.goal_percentage,\n formatPercentage(percentage, percentageStyle),\n ) as string\n\n const projectedText = buildDynamicCopy(\n goal.is_complete ? copy.completed_label : copy.goal_projection,\n formatDate(completionDate, DATE_FORMATS_INTL.MONTH_SHORT_YEAR),\n ) as string\n\n return {\n backgroundColor,\n color,\n percentage,\n percentageText,\n projectedText,\n }\n}\n\nexport function getGoalTypes(copy: GoalsCopy): GoalType[] {\n return [\n {\n bgcolor: 'chart.chart1',\n icon: 'attach_money',\n label: copy.saving_goal_label,\n description: copy.saving_goal_description,\n subTypes: [\n {\n icon: 'ecg_heart',\n label: copy.saving_goal_emergency_fund,\n metaType: MetaType.EMERGENCY_FUND,\n },\n {\n icon: 'directions_car',\n label: copy.saving_gaol_automobile,\n metaType: MetaType.AUTOMOBILE,\n },\n { icon: 'school', label: copy.saving_goal_college, metaType: MetaType.COLLEGE },\n { icon: 'home', label: copy.saving_goal_home, metaType: MetaType.HOUSE },\n {\n icon: 'mountain_flag',\n label: copy.saving_goal_recreational,\n metaType: MetaType.RECREATIONAL_VEHICLE,\n },\n { icon: 'airplane_ticket', label: copy.saving_goal_vacation, metaType: MetaType.VACATION },\n {\n icon: 'desktop_windows',\n label: copy.saving_goal_electronic,\n metaType: MetaType.ELECTRONIC,\n },\n { icon: 'payments', label: copy.saving_goal_other, metaType: MetaType.OTHER },\n ],\n type: TrackType.SAVINGS_TRACK,\n },\n {\n bgcolor: 'chart.chart5',\n icon: 'note_stack',\n label: copy.debt_goal_label,\n description: copy.debt_goal_description,\n subTypes: [],\n type: TrackType.DEBT_TRACK,\n },\n {\n bgcolor: 'chart.chart6',\n icon: 'person',\n label: copy.retirement_goal_label,\n description: copy.retirement_goal_description,\n subTypes: [],\n type: TrackType.RETIREMENT_TRACK,\n },\n ]\n}\n\nexport const getZeroStateOngoing = (trackType: TrackType, copy: GoalsCopy) => {\n switch (trackType) {\n case TrackType.DEBT_TRACK:\n return buildDynamicCopy(copy.zero_state_ongoing, 'debt') as string\n case TrackType.SAVINGS_TRACK:\n return buildDynamicCopy(copy.zero_state_ongoing, 'saving') as string\n default:\n return buildDynamicCopy(copy.zero_state_ongoing, 'retirement') as string\n }\n}\n\nexport const getProjectedRetirementDate = (retirementAge: number, userBirthday: number) => {\n const birthDate = fromUnixTime(userBirthday)\n const retirementDate = addYears(birthDate, retirementAge)\n return getUnixTime(retirementDate)\n}\n"],"names":["TrackType","GoalType","MetaType","getGoalStatusData","copy","goal","amount","percentage","backgroundColor","color","percentageStyle","completionDateUnixTime","completionDate","fromUnixTime","percentageText","buildDynamicCopy","formatPercentage","projectedText","formatDate","DATE_FORMATS_INTL","getGoalTypes","getZeroStateOngoing","trackType","getProjectedRetirementDate","retirementAge","userBirthday","birthDate","retirementDate","addYears","getUnixTime"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { Text as r } from "@mxenabled/mxui";
3
+ const i = (e) => /* @__PURE__ */ o(r, { fontWeight: 600, variant: "body2", children: e.colDef.headerName });
4
+ export {
5
+ i as H
6
+ };
7
+ //# sourceMappingURL=HeaderCell-P8w6CmfO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderCell-P8w6CmfO.mjs","sources":["../src/trends/components/trendstable/HeaderCell.tsx"],"sourcesContent":["import { Text } from '@mxenabled/mxui'\nimport { GridColumnHeaderParams } from '@mui/x-data-grid'\n\nexport const HeaderCell = (params: GridColumnHeaderParams) => (\n <Text fontWeight={600} variant=\"body2\">\n {params.colDef.headerName}\n </Text>\n)\n"],"names":["HeaderCell","params","jsx","Text"],"mappings":";;AAGO,MAAMA,IAAa,CAACC,MACzB,gBAAAC,EAACC,GAAA,EAAK,YAAY,KAAK,SAAQ,SAC5B,UAAAF,EAAO,OAAO,WAAA,CACjB;"}