@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.
- package/CHANGELOG.md +75 -0
- package/README.md +10 -10
- package/dist/Account-DR7Plrqy.mjs +119 -0
- package/dist/Account-DR7Plrqy.mjs.map +1 -0
- package/dist/AccountDetailsDrawer-CZPeLsCq.mjs +922 -0
- package/dist/AccountDetailsDrawer-CZPeLsCq.mjs.map +1 -0
- package/dist/AccountDetailsHeader-BvbCUQSS.mjs +231 -0
- package/dist/AccountDetailsHeader-BvbCUQSS.mjs.map +1 -0
- package/dist/AccountUtils-B8ZzWI-d.mjs +28 -0
- package/dist/AccountUtils-B8ZzWI-d.mjs.map +1 -0
- package/dist/Analytics-CkYXKvco.mjs +54 -0
- package/dist/Analytics-CkYXKvco.mjs.map +1 -0
- package/dist/Analytics-WeZYytR0.mjs +140 -0
- package/dist/Analytics-WeZYytR0.mjs.map +1 -0
- package/dist/ApiEndpoints-DXwIYNUV.mjs +50 -0
- package/dist/ApiEndpoints-DXwIYNUV.mjs.map +1 -0
- package/dist/BeatMaterialIcon-1KOfRZrA.mjs +27 -0
- package/dist/BeatMaterialIcon-1KOfRZrA.mjs.map +1 -0
- package/dist/BudgetUtil-Bg2AQJpQ.mjs +75 -0
- package/dist/BudgetUtil-Bg2AQJpQ.mjs.map +1 -0
- package/dist/Category-DEKZGLYe.mjs +302 -0
- package/dist/Category-DEKZGLYe.mjs.map +1 -0
- package/dist/CategorySelectorDrawer-NJsFsKP1.mjs +431 -0
- package/dist/CategorySelectorDrawer-NJsFsKP1.mjs.map +1 -0
- package/dist/Connect-BH0Pt6zc.mjs +43 -0
- package/dist/Connect-BH0Pt6zc.mjs.map +1 -0
- package/dist/ConnectCard-D7uxoH5Y.mjs +55 -0
- package/dist/ConnectCard-D7uxoH5Y.mjs.map +1 -0
- package/dist/ConnectDrawer-CW4LA3H3.mjs +58 -0
- package/dist/ConnectDrawer-CW4LA3H3.mjs.map +1 -0
- package/dist/ConnectionsDrawer-CZU9ku-k.mjs +54 -0
- package/dist/ConnectionsDrawer-CZU9ku-k.mjs.map +1 -0
- package/dist/CurrencyDialog-DumQCTPO.mjs +374 -0
- package/dist/CurrencyDialog-DumQCTPO.mjs.map +1 -0
- package/dist/CurrencyInput-DaGEQaLW.mjs +88 -0
- package/dist/CurrencyInput-DaGEQaLW.mjs.map +1 -0
- package/dist/CurrencyText-CCbE6MmF.mjs +21 -0
- package/dist/CurrencyText-CCbE6MmF.mjs.map +1 -0
- package/dist/DateFormats-HudZ3Bjs.mjs +65 -0
- package/dist/DateFormats-HudZ3Bjs.mjs.map +1 -0
- package/dist/DateUtil-CzBmbjmA.mjs +75 -0
- package/dist/DateUtil-CzBmbjmA.mjs.map +1 -0
- package/dist/DebtUtils-i4pI2Uoe.mjs +154 -0
- package/dist/DebtUtils-i4pI2Uoe.mjs.map +1 -0
- package/dist/Dialog-Bvd2n8hz.mjs +67 -0
- package/dist/Dialog-Bvd2n8hz.mjs.map +1 -0
- package/dist/Donut-SzzfZDHF.mjs +89 -0
- package/dist/Donut-SzzfZDHF.mjs.map +1 -0
- package/dist/Drawer-DsnW2o0v.mjs +175 -0
- package/dist/Drawer-DsnW2o0v.mjs.map +1 -0
- package/dist/EmbeddedCard-DH8vQ3qN.mjs +859 -0
- package/dist/EmbeddedCard-DH8vQ3qN.mjs.map +1 -0
- package/dist/EmptyState-CJUDc3kD.mjs +85 -0
- package/dist/EmptyState-CJUDc3kD.mjs.map +1 -0
- package/dist/Error-Dtw6yxkf.mjs +85 -0
- package/dist/Error-Dtw6yxkf.mjs.map +1 -0
- package/dist/ErrorBoundary-CsdOcnJ9.mjs +24 -0
- package/dist/ErrorBoundary-CsdOcnJ9.mjs.map +1 -0
- package/dist/ExportCsvAction-C9KWH3Az.mjs +25 -0
- package/dist/ExportCsvAction-C9KWH3Az.mjs.map +1 -0
- package/dist/GlobalAccountFilter-BhzR5Vb1.mjs +230 -0
- package/dist/GlobalAccountFilter-BhzR5Vb1.mjs.map +1 -0
- package/dist/GlobalCopyApi-wcnDUzMV.mjs +129 -0
- package/dist/GlobalCopyApi-wcnDUzMV.mjs.map +1 -0
- package/dist/GoalsUtil-C9EnLWvC.mjs +108 -0
- package/dist/GoalsUtil-C9EnLWvC.mjs.map +1 -0
- package/dist/HeaderCell-P8w6CmfO.mjs +7 -0
- package/dist/HeaderCell-P8w6CmfO.mjs.map +1 -0
- package/dist/Help-CkQTjORd.mjs +300 -0
- package/dist/Help-CkQTjORd.mjs.map +1 -0
- package/dist/Help-aERwhajy.mjs +3210 -0
- package/dist/Help-aERwhajy.mjs.map +1 -0
- package/dist/IconBacking-DgT8DCeh.mjs +40 -0
- package/dist/IconBacking-DgT8DCeh.mjs.map +1 -0
- package/dist/InformationTooltip-4su8bn1e.mjs +42 -0
- package/dist/InformationTooltip-4su8bn1e.mjs.map +1 -0
- package/dist/InvestmentUtil-BItV7uEs.mjs +135 -0
- package/dist/InvestmentUtil-BItV7uEs.mjs.map +1 -0
- package/dist/LineChart-CUfiH86G.mjs +613 -0
- package/dist/LineChart-CUfiH86G.mjs.map +1 -0
- package/dist/ListItemAction-BqUCLj_w.mjs +70 -0
- package/dist/ListItemAction-BqUCLj_w.mjs.map +1 -0
- package/dist/ListItemRow-kH1rn8Xu.mjs +68 -0
- package/dist/ListItemRow-kH1rn8Xu.mjs.map +1 -0
- package/dist/ListItemWrapper-DRse79Iu.mjs +44 -0
- package/dist/ListItemWrapper-DRse79Iu.mjs.map +1 -0
- package/dist/Loader-CxeBwuPG.mjs +22 -0
- package/dist/Loader-CxeBwuPG.mjs.map +1 -0
- package/dist/Localization-DnoVyBNK.mjs +39 -0
- package/dist/Localization-DnoVyBNK.mjs.map +1 -0
- package/dist/ManageIncome-Dcsnnz86.mjs +906 -0
- package/dist/ManageIncome-Dcsnnz86.mjs.map +1 -0
- package/dist/MicroWidgetContainer-B2NnKBgW.mjs +46 -0
- package/dist/MicroWidgetContainer-B2NnKBgW.mjs.map +1 -0
- package/dist/MiniWidgetContainer-Bmv_WeUd.mjs +67 -0
- package/dist/MiniWidgetContainer-Bmv_WeUd.mjs.map +1 -0
- package/dist/NetWorthUtils-DfSH3z70.mjs +96 -0
- package/dist/NetWorthUtils-DfSH3z70.mjs.map +1 -0
- package/dist/Notification-DTNYSd8P.mjs +8 -0
- package/dist/Notification-DTNYSd8P.mjs.map +1 -0
- package/dist/NotificationSettings-CW7okUrk.mjs +678 -0
- package/dist/NotificationSettings-CW7okUrk.mjs.map +1 -0
- package/dist/NotificationUtils-BRGFTePr.mjs +24 -0
- package/dist/NotificationUtils-BRGFTePr.mjs.map +1 -0
- package/dist/NumberFormatting--XMeeBfr.mjs +50 -0
- package/dist/NumberFormatting--XMeeBfr.mjs.map +1 -0
- package/dist/OriginalBalanceAction-YrvxBYAl.mjs +115 -0
- package/dist/OriginalBalanceAction-YrvxBYAl.mjs.map +1 -0
- package/dist/RecurringSettings-D8hBbXV_.mjs +89 -0
- package/dist/RecurringSettings-D8hBbXV_.mjs.map +1 -0
- package/dist/RecurringTransactionsUtil-CHWmqvW5.mjs +299 -0
- package/dist/RecurringTransactionsUtil-CHWmqvW5.mjs.map +1 -0
- package/dist/ResponsiveButton-CC9F_Ezk.mjs +46 -0
- package/dist/ResponsiveButton-CC9F_Ezk.mjs.map +1 -0
- package/dist/SearchBox-Cpgu_gdO.mjs +51 -0
- package/dist/SearchBox-Cpgu_gdO.mjs.map +1 -0
- package/dist/Select-CSpkK5cR.mjs +62 -0
- package/dist/Select-CSpkK5cR.mjs.map +1 -0
- package/dist/SelectionBox-B4xELRgp.mjs +49 -0
- package/dist/SelectionBox-B4xELRgp.mjs.map +1 -0
- package/dist/SingleSegmentDonut-7Uy6VEld.mjs +70 -0
- package/dist/SingleSegmentDonut-7Uy6VEld.mjs.map +1 -0
- package/dist/Sizes-DISGrlUg.mjs +7 -0
- package/dist/Sizes-DISGrlUg.mjs.map +1 -0
- package/dist/SkeletonLoader-BaNboJjD.mjs +39 -0
- package/dist/SkeletonLoader-BaNboJjD.mjs.map +1 -0
- package/dist/SpendingData-Fii_xATx.mjs +54 -0
- package/dist/SpendingData-Fii_xATx.mjs.map +1 -0
- package/dist/SpendingLegend-CxvNOg3c.mjs +204 -0
- package/dist/SpendingLegend-CxvNOg3c.mjs.map +1 -0
- package/dist/StatusBar-CPfSXe80.mjs +31 -0
- package/dist/StatusBar-CPfSXe80.mjs.map +1 -0
- package/dist/TabContentContainer-B0eYJP5p.mjs +49 -0
- package/dist/TabContentContainer-B0eYJP5p.mjs.map +1 -0
- package/dist/ToggleListItem-Dl1lXNwj.mjs +92 -0
- package/dist/ToggleListItem-Dl1lXNwj.mjs.map +1 -0
- package/dist/TransactionDetails-roZ5xLq8.mjs +1708 -0
- package/dist/TransactionDetails-roZ5xLq8.mjs.map +1 -0
- package/dist/TransactionUtils-BphBJBbU.mjs +235 -0
- package/dist/TransactionUtils-BphBJBbU.mjs.map +1 -0
- package/dist/TrendsUtil-D9z3kIj_.mjs +70 -0
- package/dist/TrendsUtil-D9z3kIj_.mjs.map +1 -0
- package/dist/UserStore-C1fdL3Iu.mjs +3054 -0
- package/dist/UserStore-C1fdL3Iu.mjs.map +1 -0
- package/dist/ViewMoreMicroCard-fnwE0hqd.mjs +1280 -0
- package/dist/ViewMoreMicroCard-fnwE0hqd.mjs.map +1 -0
- package/dist/WidgetContainer-DJnp6t6c.mjs +483 -0
- package/dist/WidgetContainer-DJnp6t6c.mjs.map +1 -0
- package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsDrawer.d.ts +6 -0
- package/dist/accounts/index.d.ts +1 -0
- package/dist/accounts/index.es.js +784 -12
- package/dist/accounts/index.es.js.map +1 -0
- package/dist/analytics/index.es.js +140 -155
- package/dist/analytics/index.es.js.map +1 -0
- package/dist/budgets/index.es.js +1267 -1317
- package/dist/budgets/index.es.js.map +1 -0
- package/dist/cashflow/index.es.js +943 -1047
- package/dist/cashflow/index.es.js.map +1 -0
- package/dist/categories/index.es.js +5 -4
- package/dist/categories/index.es.js.map +1 -0
- package/dist/common/components/DataRow.d.ts +1 -0
- package/dist/common/components/ListItemWrapper.d.ts +2 -1
- package/dist/common/constants/Analytics.d.ts +3 -0
- package/dist/common/index.es.js +310 -101
- package/dist/common/index.es.js.map +1 -0
- package/dist/core/index.es.js +105 -80
- package/dist/core/index.es.js.map +1 -0
- package/dist/core/stores/RecurringTransactionsStore.d.ts +29 -1
- package/dist/core/stores/TransactionStore.d.ts +1 -0
- package/dist/core/types/localization/RecurringCopy.d.ts +14 -1
- package/dist/core/types/localization/SpendingCopy.d.ts +1 -0
- package/dist/core/utils/DateUtil.d.ts +2 -0
- package/dist/core/utils/RecurringTransactionsUtil.d.ts +2 -1
- package/dist/dashboard/index.es.js +142 -185
- package/dist/dashboard/index.es.js.map +1 -0
- package/dist/debts/index.es.js +1273 -1384
- package/dist/debts/index.es.js.map +1 -0
- package/dist/finstrong/index.es.js +3473 -3367
- package/dist/finstrong/index.es.js.map +1 -0
- package/dist/goals/index.es.js +984 -1103
- package/dist/goals/index.es.js.map +1 -0
- package/dist/help/index.es.js +26 -3
- package/dist/help/index.es.js.map +1 -0
- package/dist/hooks-97sNJ_lf.mjs +78 -0
- package/dist/hooks-97sNJ_lf.mjs.map +1 -0
- package/dist/insights/components/insights/WeeklyNoSpendDays/BubbleWeek.d.ts +4 -1
- package/dist/insights/components/insights/WeeklyNoSpendDays/WeeklyNoSpendDays.d.ts +4 -2
- package/dist/insights/index.es.js +4871 -93
- package/dist/insights/index.es.js.map +1 -0
- package/dist/investments/index.es.js +1523 -1533
- package/dist/investments/index.es.js.map +1 -0
- package/dist/merchants/index.es.js +65 -75
- package/dist/merchants/index.es.js.map +1 -0
- package/dist/microinsights/index.es.js +826 -15
- package/dist/microinsights/index.es.js.map +1 -0
- package/dist/networth/index.es.js +504 -550
- package/dist/networth/index.es.js.map +1 -0
- package/dist/notifications/index.es.js +162 -169
- package/dist/notifications/index.es.js.map +1 -0
- package/dist/recurringtransactions/components/RecurringTransactionDetails.d.ts +3 -2
- package/dist/recurringtransactions/components/RecurringTransactionDetailsDrawer.d.ts +3 -0
- package/dist/recurringtransactions/components/RecurringTransactionList.d.ts +11 -0
- package/dist/recurringtransactions/components/UpcomingRecurrenceCard.d.ts +8 -0
- package/dist/recurringtransactions/components/actions/LinkTransactionDrawer.d.ts +10 -0
- package/dist/recurringtransactions/components/actions/MarkAsPaidDialog.d.ts +7 -0
- package/dist/recurringtransactions/components/actions/MarkAsUnpaidDialog.d.ts +7 -0
- package/dist/recurringtransactions/index.es.js +1012 -10
- package/dist/recurringtransactions/index.es.js.map +1 -0
- package/dist/settings/index.es.js +892 -13
- package/dist/settings/index.es.js.map +1 -0
- package/dist/spending/index.es.js +457 -400
- package/dist/spending/index.es.js.map +1 -0
- package/dist/transactions/components/shared/transactionlist/TransactionRow.d.ts +1 -0
- package/dist/transactions/index.es.js +604 -10
- package/dist/transactions/index.es.js.map +1 -0
- package/dist/trends/index.es.js +1408 -1268
- package/dist/trends/index.es.js.map +1 -0
- package/dist/useAccountDisplayName-BsiXA0qf.mjs +24 -0
- package/dist/useAccountDisplayName-BsiXA0qf.mjs.map +1 -0
- package/dist/useAriaLive-MkYebyUR.mjs +36 -0
- package/dist/useAriaLive-MkYebyUR.mjs.map +1 -0
- package/dist/useDimensions-CeDR9V8N.mjs +37 -0
- package/dist/useDimensions-CeDR9V8N.mjs.map +1 -0
- package/dist/useInsightsEnabled-D5Sdm0TJ.mjs +12 -0
- package/dist/useInsightsEnabled-D5Sdm0TJ.mjs.map +1 -0
- package/dist/useScreenSize-mWpmnh5w.mjs +37 -0
- package/dist/useScreenSize-mWpmnh5w.mjs.map +1 -0
- package/dist/useWidgetLoadTimer-B0tB-yzL.mjs +20 -0
- package/dist/useWidgetLoadTimer-B0tB-yzL.mjs.map +1 -0
- package/package.json +30 -30
- package/dist/Analytics-BKzTPees.mjs +0 -61
- package/dist/GlobalCopyApi-BeXzaDH9.mjs +0 -487
- package/dist/HeaderCell-EhCUSjvj.mjs +0 -10
- package/dist/Loader-BlVzRtUd.mjs +0 -73
- package/dist/MiniWidgetContainer-COwnjfy7.mjs +0 -110
- package/dist/OriginalBalanceAction-sbiqaxok.mjs +0 -110
- package/dist/SpendingLegend-D15ixlQ1.mjs +0 -222
- package/dist/accounts-DkyAiLpg.mjs +0 -15632
- package/dist/core-BexP5oiV.mjs +0 -4047
- package/dist/help-CctDYrAH.mjs +0 -2308
- package/dist/insights/components/insights/P2pCategorization/_tests_/P2pCategorizationMultipleTransaction.test.d.ts +0 -0
- package/dist/insights/components/insights/P2pCategorization/_tests_/P2pCategorizationSingleTransaction.test.d.ts +0 -0
- package/dist/microinsights-CRf3ChsJ.mjs +0 -1814
- package/dist/recurringtransactions-gbJ_NA8u.mjs +0 -1564
- package/dist/settings-ZMHe439l.mjs +0 -1526
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../src/networth/components/micro/NetworthData.tsx","../../src/networth/components/micro/ZeroState.tsx","../../src/networth/NetWorthMicroWidget.tsx","../../src/networth/components/NetWorthChart.tsx","../../src/networth/components/NetWorthListItem.tsx","../../src/networth/components/NetWorthChange.tsx","../../src/networth/components/GainsLossesDetail.tsx","../../src/networth/components/AssetsLiabilitiesDetail.tsx","../../src/networth/components/NetWorthList.tsx","../../src/networth/components/NetWorthSummary.tsx","../../src/networth/NetWorthWidget.tsx"],"sourcesContent":["import Stack from '@mui/material/Stack'\n\nimport { P, Text } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport { NetWorthCopy } from '../../../core'\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\n\ninterface NetworthDataProps {\n amount: number\n copy: NetWorthCopy\n trendValue: number\n}\n\nconst NetworthData = ({ amount, copy, trendValue }: NetworthDataProps) => {\n const isTrendUp = trendValue > 0\n const trendDirectionIcon = isTrendUp ? 'trending_up' : 'trending_down'\n const trendIcon = trendValue === 0 ? 'trending_flat' : trendDirectionIcon\n\n return (\n <Stack sx={{ flexDirection: 'row', justifyContent: 'space-between' }}>\n <P variant=\"h1\">{formatCurrency(amount, '0,0')}</P>\n {amount !== 0 && (\n <Stack sx={{ color: isTrendUp ? 'success.main' : 'text.secondary' }}>\n <Stack sx={{ flexDirection: 'row', gap: 8 }}>\n <Icon name={trendIcon} size={20} />\n <Text sx={{ fontWeight: 600, textAlign: 'right' }} variant=\"body1\">\n {formatCurrency(trendValue, '0,0.00')}\n </Text>\n </Stack>\n <Text sx={{ display: 'block', textAlign: 'right' }} variant=\"caption\">\n {copy.this_month}\n </Text>\n </Stack>\n )}\n </Stack>\n )\n}\n\nexport default NetworthData\n","import Stack from '@mui/material/Stack'\n\nimport { P, Text } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport { NetWorthCopy } from '../../../core'\n\ninterface ZeroStateProps {\n copy: NetWorthCopy\n}\n\nconst ZeroState = ({ copy }: ZeroStateProps) => {\n return (\n <Stack sx={{ flexDirection: 'row', gap: 12 }}>\n <Icon name=\"elevation\" size={32} sx={{ color: 'text.primary' }} />\n <Stack>\n <Text sx={{ display: 'block', fontWeight: 600 }} variant=\"body1\">\n {copy.empty_widget_header}\n </Text>\n <P sx={{ color: 'text.secondary' }} variant=\"body2\">\n {copy.zero_state_description}\n </P>\n </Stack>\n </Stack>\n )\n}\n\nexport default ZeroState\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport {\n ANALYTICS_EVENTS,\n Loader,\n MicroWidgetContainer,\n useAccountStore,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useNetWorthStore,\n useWidgetLoadTimer,\n} from '../common'\n\nimport NetworthData from './components/micro/NetworthData'\nimport ZeroState from './components/micro/ZeroState'\n\ninterface NetWorthMicroWidgetProps {\n onCTAClick: () => void\n}\n\nexport const NetWorthMicroWidget = observer(({ onCTAClick }: NetWorthMicroWidgetProps) => {\n const { visibleAccounts: accounts } = useAccountStore()\n const { onEvent } = useEvent()\n const { net_worth: copy, common: commonCopy } = useGlobalCopyStore()\n const { isInitialized } = useGlobalUiStore()\n const { isNetWorthDataLoaded, loadNetWorthData, netWorthData, selectedData } = useNetWorthStore()\n\n React.useEffect(() => {\n if (!isNetWorthDataLoaded) {\n loadNetWorthData().finally()\n }\n }, [])\n\n useWidgetLoadTimer({\n widgetName: 'NetWorthMicroWidget',\n isLoaded: isNetWorthDataLoaded,\n })\n\n React.useEffect(() => {\n if (isNetWorthDataLoaded) {\n onEvent(ANALYTICS_EVENTS.NET_WORTH_LOAD_WIDGET, {\n state: !accounts?.length ? 'zeroState' : 'default',\n })\n }\n }, [isNetWorthDataLoaded])\n\n if (!isInitialized || !isNetWorthDataLoaded) return <Loader height={100} />\n\n const handleCTAClick = () => {\n onEvent(\n !accounts.length\n ? ANALYTICS_EVENTS.NET_WORTH_CLICK_GET_STARTED\n : ANALYTICS_EVENTS.NET_WORTH_CLICK_VIEW_DETAILS,\n )\n onCTAClick()\n }\n\n return (\n <MicroWidgetContainer\n className=\"mx-networth-microwidget\"\n ctaLabel={commonCopy.see_details}\n onCTAClick={handleCTAClick}\n title={copy.net_worth}\n >\n {netWorthData.accounts.length ? (\n <NetworthData\n amount={selectedData?.y as number}\n copy={copy}\n trendValue={selectedData?.change as number}\n />\n ) : (\n <ZeroState copy={copy} />\n )}\n </MicroWidgetContainer>\n )\n})\n","import React from 'react'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { useNetWorthStore, useScreenSize, useWidgetContainerProvider } from '../../common'\nimport { LineChart } from '../../common/components/charts/LineChart'\n\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\n\nconst NetWorthChart = () => {\n const { isMobile } = useScreenSize()\n const { availableWidth } = useWidgetContainerProvider()\n const theme = useTheme()\n const {\n hoveredData,\n netWorthChartData: chartData,\n selectedData,\n setHoveredIndex,\n setSelectedIndex,\n } = useNetWorthStore()\n\n // on mobile, chart is same width as list; on desktop, chart takes up what the list does not\n const chartWidthNotMobile = availableWidth - 320\n\n const datasets = chartData.map((point) => {\n return {\n x: formatDate(fromUnixTime(point.x), DATE_FORMATS_INTL.MONTH_SHORT),\n y: point.y,\n }\n })\n\n const selectedMark = selectedData\n ? { index: chartData.findIndex((point) => point.x === selectedData.x) }\n : undefined\n\n const hoveredMark = hoveredData\n ? { index: chartData.findIndex((point) => point.x === hoveredData.x) }\n : undefined\n\n const getMarkStyles = (markIndex: number) => {\n return {\n fill: markIndex === selectedMark?.index ? theme.palette.success.main : '',\n filter:\n markIndex === hoveredMark?.index\n ? `drop-shadow(0px 0px 10px ${theme.palette.success.main})`\n : 'none',\n stroke: theme.palette.success.main,\n }\n }\n\n const onMarkClick = (_event: React.MouseEvent<SVGPathElement, MouseEvent>, dataIndex: number) => {\n setSelectedIndex(dataIndex)\n }\n\n const onMouseEnter = (dataIndex: number) => {\n setHoveredIndex(dataIndex)\n }\n\n const onMouseLeave = () => {\n setHoveredIndex(-1)\n }\n\n return (\n <Stack sx={{ width: '100%' }}>\n <LineChart\n baseline=\"min\" // causes the area below the line to be shaded\n chartFor={'networthChart'}\n chartXaxisSx={{ '& .MuiChartsAxis-tickLabel': { transform: 'translateX(8px)' } }}\n chartYaxisSx={{ '& .MuiChartsAxis-tickLabel': { transform: 'translateX(-8px)' } }}\n colors={[theme.palette.success.main]}\n datasets={[datasets]}\n height={350}\n labels={[]}\n margin={{ right: 20, left: 38 }}\n markHandlers={{ onMarkClick, onMouseEnter, onMouseLeave }}\n markStyles={getMarkStyles}\n showArea={true}\n useCustomMark={true}\n valueFormatterString=\"0.0[0]a\" // formatting example -'109,000' -> '109k', 1,092,742 → $1.1m, $1,236 → $1.2k\n width={isMobile ? availableWidth - 48 : chartWidthNotMobile}\n />\n </Stack>\n )\n}\n\nexport default observer(NetWorthChart)\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Divider from '@mui/material/Divider'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { CurrencyText } from '../../common/'\n\nimport { fromTimestampToMonthYear } from '../../core/utils/DateUtil'\n\nimport { NetWorth } from '../../core/types/NetWorth'\n\ninterface NetWorthListItemProps {\n item: NetWorth\n getStyles: (item: NetWorth) => { backgroundColor: string; borderBottom: string; color: string }\n isHovered: boolean\n isSelected: boolean\n onItemClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>, dataIndex: number) => void\n onMouseEnter: (dataIndex: number) => void\n onMouseLeave: () => void\n}\n\nconst NetWorthListItem: React.FC<NetWorthListItemProps> = ({\n item: dataPoint,\n getStyles,\n isHovered = false,\n isSelected = false,\n onItemClick,\n onMouseEnter,\n onMouseLeave,\n}) => {\n const [listItemStyles, setListItemStyles] = React.useState({\n color: '',\n })\n\n React.useEffect(() => {\n setListItemStyles(getStyles(dataPoint))\n }, [isHovered, isSelected])\n\n return (\n <React.Fragment key={dataPoint.x}>\n <ListItem\n sx={{\n ...listItemStyles,\n minHeight: 44,\n '&:hover': { color: isSelected ? 'inherit' : listItemStyles.color },\n }}\n >\n <ListItemButton\n onClick={(event) => onItemClick?.(event, dataPoint.x)}\n onMouseEnter={() => onMouseEnter(dataPoint.x)}\n onMouseLeave={() => onMouseLeave()}\n sx={{ minHeight: 20, padding: 12 }}\n >\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\" sx={{ fontWeight: 400 }}>\n <Text variant=\"body1\">{fromTimestampToMonthYear(dataPoint.x)}</Text>\n <CurrencyText amount={dataPoint.y} sx={{ color: 'inherit' }} variant=\"body1\" />\n </Stack>\n }\n />\n </ListItemButton>\n </ListItem>\n <Divider />\n </React.Fragment>\n )\n}\n\nexport default observer(NetWorthListItem)\n","import { observer } from 'mobx-react-lite'\n\nimport { Stack, Theme } from '@mui/material'\nimport { TypographyProps } from '@mui/material/Typography'\nimport { Icon, Text } from '@mxenabled/mxui'\nimport { CurrencyText } from '../../common/components/CurrencyText'\nimport { NetWorth } from '../../core/types/NetWorth'\n\ninterface NetWorthChangeProps {\n netWorth: NetWorth\n currencyVariant?: TypographyProps['variant']\n currencyLabel?: string\n iconSize?: number\n theme: Theme\n}\n\nconst NetWorthChange: React.FC<NetWorthChangeProps> = ({\n currencyLabel,\n currencyVariant = 'body2',\n iconSize,\n netWorth,\n theme,\n}) => {\n let iconColor = theme.palette.secondary.main\n let currencyTextColor = theme.palette.secondary.main\n let iconName = 'trending_flat'\n\n if (netWorth.change < 0) {\n iconName = 'trending_down'\n } else if (netWorth.change > 0) {\n iconColor = theme.palette.success.main\n currencyTextColor = theme.palette.success.main\n iconName = 'trending_up'\n }\n\n return (\n <Stack alignItems=\"center\" direction=\"row\" spacing={4}>\n <Icon\n name={iconName}\n size={iconSize}\n sx={{\n color: iconColor,\n }}\n />\n <CurrencyText amount={netWorth.change} color={currencyTextColor} variant={currencyVariant} />\n <Text variant=\"body2\">{currencyLabel}</Text>\n </Stack>\n )\n}\n\nexport default observer(NetWorthChange)\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemText from '@mui/material/ListItemText'\nimport ListSubheader from '@mui/material/ListSubheader'\nimport Stack from '@mui/material/Stack'\n\nimport { useTheme } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { CurrencyText, useGlobalCopyStore } from '../../common/'\nimport { fromTimestampToMonthYear } from '../../core/utils/DateUtil'\n\nimport { GainsLosses } from '../../core/types/NetWorth'\nimport NetWorthChange from './NetWorthChange'\n\nconst GainsLossesDetail: React.FC<GainsLosses> = ({\n netWorth,\n gains,\n losses,\n totalGains,\n totalLosses,\n}) => {\n const { net_worth: copy } = useGlobalCopyStore()\n\n const theme = useTheme()\n\n return (\n <>\n <Stack alignItems=\"center\" justifyContent=\"space-between\" mb={8} pt={24}>\n <Text variant=\"body2\">{fromTimestampToMonthYear(netWorth?.x)}</Text>\n <Text variant=\"body1\">{copy.total_change}</Text>\n {netWorth && (\n <NetWorthChange currencyVariant=\"h1\" iconSize={32} netWorth={netWorth} theme={theme} />\n )}\n </Stack>\n <List>\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.gains}\n </Text>\n <CurrencyText amount={totalGains} sx={{ fontWeight: 400 }} variant=\"caption\" />\n </Stack>\n }\n />\n </ListSubheader>\n {gains?.map((gain) => (\n <React.Fragment key={gain.accountName}>\n <ListItem sx={{ backgroundColor: theme.palette.background.paper, py: 14 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ mr: 10 }} variant=\"body1\">\n {gain.accountName}\n </Text>\n <CurrencyText\n amount={gain.gain}\n sx={{ color: theme.palette.success.main, flexShrink: 0, fontWeight: 700 }}\n variant=\"body1\"\n />\n </Stack>\n }\n sx={{ px: 16 }}\n />\n </ListItem>\n <Divider />\n </React.Fragment>\n ))}\n\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.losses}\n </Text>\n <CurrencyText amount={totalLosses} sx={{ fontWeight: 400 }} variant=\"caption\" />\n </Stack>\n }\n />\n </ListSubheader>\n {losses?.map((loss) => (\n <>\n <ListItem\n key={loss.accountName}\n sx={{ backgroundColor: theme.palette.background.paper, py: 14 }}\n >\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text\n sx={{\n mr: 10,\n }}\n variant=\"body1\"\n >\n {loss.accountName}\n </Text>\n <CurrencyText\n amount={loss.loss}\n sx={{ flexShrink: 0, fontWeight: 700 }}\n variant=\"body1\"\n />\n </Stack>\n }\n sx={{ px: 16 }}\n />\n </ListItem>\n <Divider />\n </>\n ))}\n </List>\n </>\n )\n}\n\nexport default observer(GainsLossesDetail)\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Box from '@mui/material/Box'\nimport Collapse from '@mui/material/Collapse'\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 ListSubheader from '@mui/material/ListSubheader'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Icon, Text } from '@mxenabled/mxui'\n\nimport { CurrencyText, useGlobalCopyStore } from '../../common/'\nimport NetWorthChange from './NetWorthChange'\nimport { AccountGroup, AssetsLiabilities } from '../../core/types/NetWorth'\nimport { groupAccounts } from '../../core/utils/NetWorthUtils'\n\nconst Group: React.FC<AccountGroup> = ({ accounts, name, icon }) => {\n const [isOpen, setIsOpen] = React.useState(false)\n\n return (\n <>\n <ListItem sx={(theme) => ({ backgroundColor: theme.palette.background.paper })}>\n <ListItemButton onClick={() => setIsOpen(!isOpen)}>\n {icon && (\n <ListItemIcon>\n <Icon name={icon} size={24} sx={{ mr: 12 }} />\n </ListItemIcon>\n )}\n <ListItemText\n primary={\n <Text sx={{ fontWeight: 700 }} variant=\"body1\">\n {name}\n </Text>\n }\n />\n <ListItemIcon>\n {isOpen ? <Icon name=\"expand_less\" size={24} /> : <Icon name=\"expand_more\" size={24} />}\n </ListItemIcon>\n </ListItemButton>\n </ListItem>\n <Divider />\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit={true}>\n {accounts.map((account, index) => (\n <List key={account.accountName}>\n <ListItem sx={() => ({ py: 14 })}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\" sx={{ fontWeight: 400 }}>\n <Text\n sx={{\n marginRight: 10,\n }}\n variant=\"body1\"\n >\n {account.accountName}\n </Text>\n <CurrencyText\n amount={account.balance}\n sx={{\n flexShrink: 0,\n }}\n variant=\"body2\"\n />\n </Stack>\n }\n sx={{ pl: 72, pr: 16 }}\n />\n </ListItem>\n {index < accounts.length - 1 ? <Divider variant=\"inset\" /> : <Divider />}\n </List>\n ))}\n </Collapse>\n </>\n )\n}\n\nconst ListGroup: React.FC<{\n groupedAccounts: AccountGroup[]\n}> = ({ groupedAccounts }) => (\n <>\n {groupedAccounts.map(({ accounts, icon, name }) => (\n <Group accounts={accounts} icon={icon} key={name} name={name} />\n ))}\n </>\n)\n\nconst AssetsLiabilitiesDetail: React.FC<AssetsLiabilities> = ({\n netWorth,\n assets,\n liabilities,\n totalAssets,\n totalLiabilities,\n}) => {\n const { net_worth: copy } = useGlobalCopyStore()\n\n const theme = useTheme()\n\n return (\n <>\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n paddingTop: 24,\n marginBottom: 8,\n }}\n >\n <Text variant=\"body1\">{copy.current_net_worth}</Text>\n <CurrencyText amount={netWorth?.y ?? 0} variant=\"h1\" />\n {netWorth && (\n <NetWorthChange\n currencyLabel={copy.this_month}\n iconSize={20}\n netWorth={netWorth}\n theme={theme}\n />\n )}\n </Box>\n <List>\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.assets}\n </Text>\n <CurrencyText amount={totalAssets} sx={{ fontWeight: 400 }} variant=\"caption\" />\n </Stack>\n }\n />\n </ListSubheader>\n <ListGroup groupedAccounts={groupAccounts(assets)} />\n <ListSubheader sx={{ mb: 8, mt: 12, mx: 8 }}>\n <ListItemText\n primary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Text sx={{ fontWeight: 700 }} variant=\"caption\">\n {copy.liabilities}\n </Text>\n <CurrencyText\n amount={totalLiabilities}\n sx={{ fontWeight: 400 }}\n variant=\"caption\"\n />\n </Stack>\n }\n />\n </ListSubheader>\n <ListGroup groupedAccounts={groupAccounts(liabilities)} />\n </List>\n </>\n )\n}\n\nexport default observer(AssetsLiabilitiesDetail)\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport Button from '@mui/material/Button'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListSubheader from '@mui/material/ListSubheader'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport {\n ANALYTICS_EVENTS,\n Drawer,\n useEvent,\n useGlobalCopyStore,\n useNetWorthStore,\n} from '../../common'\n\nimport type { NetWorth } from '../../core/types/NetWorth'\n\nimport NetWorthListItem from './NetWorthListItem'\nimport GainsLossesDetail from './GainsLossesDetail'\nimport AssetsLiabilitiesDetail from './AssetsLiabilitiesDetail'\n\nconst NetWorthList = () => {\n const { net_worth: copy } = useGlobalCopyStore()\n const theme = useTheme()\n const { onEvent } = useEvent()\n\n const {\n assetsLiabilities,\n gainsLosses,\n hoveredData,\n netWorthChartData: chartData,\n selectedData,\n setHoveredIndex,\n setSelectedIndex,\n } = useNetWorthStore()\n\n const [isGlDrawerOpen, setIsGlDrawerOpen] = React.useState(false)\n const [isAlDrawerOpen, setIsAlDrawerOpen] = React.useState(false)\n\n const buildStyles = (lineItem: NetWorth) => {\n const isHovered = lineItem.x === hoveredData?.x\n const isSelected = lineItem.x === selectedData?.x\n\n const listItemStyles = {\n backgroundColor: 'inherit',\n borderBottom: 'inherit',\n color: 'inherit',\n }\n\n if (isHovered) {\n listItemStyles.color = isSelected ? 'inherit' : listItemStyles.color\n listItemStyles.backgroundColor = theme.palette.action.hover\n }\n\n if (isSelected) {\n listItemStyles.backgroundColor = theme.palette.primary.main\n listItemStyles.borderBottom = theme.palette.neutral.light\n listItemStyles.color = theme.palette.common.white\n }\n\n return listItemStyles\n }\n\n const handleListItemClick = (\n event: React.MouseEvent<SVGPathElement | HTMLDivElement, MouseEvent>,\n dataIndex: number,\n ) => {\n setSelectedIndex(dataIndex)\n if (event.currentTarget instanceof HTMLDivElement) {\n setIsGlDrawerOpen(true)\n }\n }\n\n const handleOpenALDrawer = () => {\n setIsAlDrawerOpen(true)\n onEvent(ANALYTICS_EVENTS.NET_WORTH_WIDGET_CLICK_ASSETS_LIABILITIES)\n }\n\n const handleMouseEnter = (dataIndex: number) => {\n setHoveredIndex(dataIndex)\n }\n\n const handleMouseLeave = () => {\n setHoveredIndex(-1)\n }\n\n return (\n <Stack direction=\"column\" sx={{ width: 320 }}>\n <List>\n <ListSubheader sx={{ backgroundColor: 'transparent', mb: 8, mt: 12, px: 12 }}>\n <Text bold={true} component=\"h2\" variant=\"body1\">\n {copy.monthly_totals}\n </Text>\n </ListSubheader>\n <Divider />\n {chartData.map((dataPoint: NetWorth, index: number) => {\n return (\n <NetWorthListItem\n getStyles={buildStyles}\n isHovered={dataPoint.x === hoveredData?.x}\n isSelected={dataPoint.x === selectedData?.x}\n item={dataPoint}\n key={dataPoint.x}\n onItemClick={(event) => handleListItemClick(event, index)}\n onMouseEnter={() => handleMouseEnter(index)}\n onMouseLeave={() => handleMouseLeave()}\n />\n )\n })}\n </List>\n <Button\n onClick={() => handleOpenALDrawer()}\n sx={{ alignSelf: 'center', marginTop: 16, width: 'fit-content' }}\n variant=\"outlined\"\n >\n {copy.view_assets_and_liabilities}\n </Button>\n\n <Drawer\n ariaLabelClose={'Close'}\n isOpen={isGlDrawerOpen}\n onClose={() => setIsGlDrawerOpen(false)}\n shouldShowHeaderBorders={false}\n shouldShowHeaderShadow={true}\n title={copy.gains_and_losses}\n >\n {gainsLosses && <GainsLossesDetail {...gainsLosses} />}\n </Drawer>\n <Drawer\n ariaLabelClose={'Close'}\n isOpen={isAlDrawerOpen}\n onClose={() => setIsAlDrawerOpen(false)}\n shouldShowHeaderBorders={false}\n shouldShowHeaderShadow={true}\n title={copy.assets_and_liabilities}\n >\n {assetsLiabilities && <AssetsLiabilitiesDetail {...assetsLiabilities} />}\n </Drawer>\n </Stack>\n )\n}\n\nexport default observer(NetWorthList)\n","import { observer } from 'mobx-react-lite'\nimport { fromUnixTime, format } from 'date-fns'\n\nimport { useTheme } from '@mui/material/styles'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { CurrencyText, useGlobalCopyStore } from '../../common/'\nimport NetWorthChange from './NetWorthChange'\nimport { NetWorth } from '../../core/types/NetWorth'\n\ninterface NetWorthSummaryProps {\n hoveredData?: NetWorth\n selectedData: NetWorth\n}\n\nconst NetWorthSummary: React.FC<NetWorthSummaryProps> = ({ hoveredData, selectedData }) => {\n const { net_worth: copy } = useGlobalCopyStore()\n const theme = useTheme()\n const summary = hoveredData ? hoveredData : selectedData\n\n const formattedMonth = format(fromUnixTime(summary.x), 'MMMM')\n\n return (\n <Stack alignItems=\"center\" direction=\"column\" m={24}>\n <Text color={theme.palette.secondary.main} variant=\"body2\">\n {`${formattedMonth} ${copy.net_worth}`}\n </Text>\n <CurrencyText amount={summary.y} variant=\"h2\" />\n <NetWorthChange currencyLabel={copy.this_month} netWorth={summary} theme={theme} />\n </Stack>\n )\n}\n\nexport default observer(NetWorthSummary)\n","import React from 'react'\nimport { differenceInMonths } from 'date-fns'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\n\nimport type { DateRange } from '@mui/x-date-pickers-pro'\n\nimport ConnectionsDrawer from '../accounts/components/ConnectionsDrawer'\nimport {\n ANALYTICS_EVENTS,\n EmptyState,\n Loader,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useNetWorthStore,\n useScreenSize,\n useWidgetLoadTimer,\n WidgetContainer,\n} from '../common'\nimport { WidgetProps } from '../core'\n\nimport NetWorthChart from './components/NetWorthChart'\nimport NetWorthList from './components/NetWorthList'\nimport NetWorthSummary from './components/NetWorthSummary'\n\nexport const NetWorthWidget: React.FC<WidgetProps> = observer(({ onBackClick, onMenuClick }) => {\n const { isInitialized } = useGlobalUiStore()\n const { accounts: accountsCopy, net_worth: copy } = useGlobalCopyStore()\n const {\n hoveredData,\n isNetWorthDataLoaded,\n loadNetWorthData,\n netWorthChartData,\n selectedData,\n setTimeframe,\n timeframe,\n } = useNetWorthStore()\n const { isMobile } = useScreenSize()\n const { onEvent } = useEvent()\n\n const [showConnectionsWidget, setShowConnectionsWidget] = React.useState(false)\n\n useWidgetLoadTimer({\n widgetName: 'NetWorthWidget',\n isLoaded: isNetWorthDataLoaded,\n })\n\n React.useEffect(() => {\n if (!isNetWorthDataLoaded) {\n loadNetWorthData().finally()\n }\n onEvent(ANALYTICS_EVENTS.NET_WORTH_VIEW)\n }, [])\n\n React.useEffect(() => {\n onEvent(ANALYTICS_EVENTS.NET_WORTH_WIDGET_CLICK_TIMEFRAME, { time_period: timeframe + 'M' })\n }, [timeframe])\n\n const handleRangeChanged = async (range: DateRange<Date>) => {\n const startDate = range[0]\n const endDate = range[1]\n\n if (startDate && endDate) {\n setTimeframe(differenceInMonths(endDate, startDate))\n }\n }\n\n const handleManageConnections = () => {\n setShowConnectionsWidget(true)\n onEvent(ANALYTICS_EVENTS.ACCOUNTS_CLICK_CONNECT)\n }\n\n if (!isInitialized || !isNetWorthDataLoaded) return <Loader />\n\n const showEmptyState = netWorthChartData.length === 0\n\n return (\n <WidgetContainer\n calendarActions={{ onRangeChanged: handleRangeChanged }}\n dateRangeVariant={isMobile ? 'timeframetabs' : 'timeframebuttons'}\n onAccountsFilterClick={() => onEvent(ANALYTICS_EVENTS.NET_WORTH_WIDGET_CLICK_FILTER)}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n title={copy.net_worth}\n >\n {!showEmptyState ? (\n <>\n {selectedData && (\n <NetWorthSummary hoveredData={hoveredData} selectedData={selectedData} />\n )}\n <Stack\n alignItems={isMobile ? 'center' : 'flex-start'}\n direction={isMobile ? 'column' : 'row'}\n spacing={isMobile ? 0 : 48}\n >\n <NetWorthChart />\n <NetWorthList />\n </Stack>\n </>\n ) : (\n <Box sx={{ justifyItems: 'center' }}>\n <EmptyState\n header={copy.empty_widget_header}\n icon={'elevation'}\n onClick={handleManageConnections}\n primaryButton={copy.empty_widget_button}\n subText={copy.empty_widget_description}\n sx={{\n width: { sm: 432 },\n '.buttons-footer': {\n width: 167,\n },\n }}\n />\n </Box>\n )}\n\n <ConnectionsDrawer\n onClose={() => setShowConnectionsWidget(false)}\n showConnectionsWidget={showConnectionsWidget}\n title={accountsCopy.manage_connections}\n />\n </WidgetContainer>\n )\n})\n"],"names":["NetworthData","amount","copy","trendValue","isTrendUp","trendIcon","jsxs","Stack","jsx","P","formatCurrency","Icon","Text","ZeroState","NetWorthMicroWidget","observer","onCTAClick","accounts","useAccountStore","onEvent","useEvent","commonCopy","useGlobalCopyStore","isInitialized","useGlobalUiStore","isNetWorthDataLoaded","loadNetWorthData","netWorthData","selectedData","useNetWorthStore","React","useWidgetLoadTimer","ANALYTICS_EVENTS","Loader","handleCTAClick","MicroWidgetContainer","NetWorthChart","isMobile","useScreenSize","availableWidth","useWidgetContainerProvider","theme","useTheme","hoveredData","chartData","setHoveredIndex","setSelectedIndex","chartWidthNotMobile","datasets","point","formatDate","fromUnixTime","DATE_FORMATS_INTL","selectedMark","hoveredMark","getMarkStyles","markIndex","onMarkClick","_event","dataIndex","onMouseEnter","onMouseLeave","LineChart","NetWorthChart$1","NetWorthListItem","dataPoint","getStyles","isHovered","isSelected","onItemClick","listItemStyles","setListItemStyles","ListItem","ListItemButton","event","ListItemText","fromTimestampToMonthYear","CurrencyText","Divider","NetWorthListItem$1","NetWorthChange","currencyLabel","currencyVariant","iconSize","netWorth","iconColor","currencyTextColor","iconName","NetWorthChange$1","GainsLossesDetail","gains","losses","totalGains","totalLosses","Fragment","List","ListSubheader","gain","loss","GainsLossesDetail$1","Group","name","icon","isOpen","setIsOpen","ListItemIcon","Collapse","account","index","ListGroup","groupedAccounts","AssetsLiabilitiesDetail","assets","liabilities","totalAssets","totalLiabilities","Box","groupAccounts","AssetsLiabilitiesDetail$1","NetWorthList","assetsLiabilities","gainsLosses","isGlDrawerOpen","setIsGlDrawerOpen","isAlDrawerOpen","setIsAlDrawerOpen","buildStyles","lineItem","handleListItemClick","handleOpenALDrawer","handleMouseEnter","handleMouseLeave","Button","Drawer","NetWorthList$1","NetWorthSummary","summary","formattedMonth","format","NetWorthSummary$1","NetWorthWidget","onBackClick","onMenuClick","accountsCopy","netWorthChartData","setTimeframe","timeframe","showConnectionsWidget","setShowConnectionsWidget","handleRangeChanged","range","startDate","endDate","differenceInMonths","handleManageConnections","showEmptyState","WidgetContainer","EmptyState","ConnectionsDrawer"],"mappings":"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"}
|
|
@@ -1,24 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import G, { useEffect as E } from "react";
|
|
7
|
-
import { observer as m } from "mobx-react-lite";
|
|
8
|
-
import j from "@mui/material/Stack";
|
|
9
|
-
import { CategoryIcon as z, InstitutionLogo as U, Text as p } from "@mxenabled/mxui";
|
|
10
|
-
import $ from "@mui/material/Button";
|
|
11
|
-
import { Icon as F, Settings as P } from "@mxenabled/mx-icons";
|
|
12
|
-
import { Fragment as k, jsx as t, jsxs as l } from "react/jsx-runtime";
|
|
1
|
+
import { A as f, B as N, N as A } from "../Notification-DTNYSd8P.mjs";
|
|
2
|
+
import { A as y } from "../ApiEndpoints-DXwIYNUV.mjs";
|
|
3
|
+
import { jsx as t, jsxs as l, Fragment as S } from "react/jsx-runtime";
|
|
4
|
+
import T, { useEffect as D } from "react";
|
|
5
|
+
import { observer as p } from "mobx-react-lite";
|
|
13
6
|
import b from "@mui/material/Box";
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
7
|
+
import B from "@mui/material/Divider";
|
|
8
|
+
import I from "@mui/material/List";
|
|
9
|
+
import { g as R, s as O } from "../NotificationUtils-BRGFTePr.mjs";
|
|
10
|
+
import { Text as m, InstitutionLogo as G, CategoryIcon as E } from "@mxenabled/mxui";
|
|
11
|
+
import { k as j } from "../DateUtil-CzBmbjmA.mjs";
|
|
12
|
+
import { useTheme as z, Card as U } from "@mui/material";
|
|
13
|
+
import { c as F, o as P, u as C, y as k, a as v, i as V } from "../hooks-97sNJ_lf.mjs";
|
|
14
|
+
import { Icon as W, Settings as $ } from "@mxenabled/mx-icons";
|
|
15
|
+
import M from "@mui/material/Button";
|
|
16
|
+
import X from "@mui/material/Stack";
|
|
17
|
+
import { L as w } from "../Loader-CxeBwuPG.mjs";
|
|
18
|
+
import Y from "@mui/material/IconButton";
|
|
19
|
+
import { N as q } from "../NotificationSettings-CW7okUrk.mjs";
|
|
20
|
+
import { D as x } from "../Drawer-DsnW2o0v.mjs";
|
|
21
|
+
const xt = (i) => {
|
|
22
|
+
switch (i) {
|
|
23
|
+
case N.BudgetExceeded:
|
|
24
|
+
case N.BudgetOffTarget:
|
|
22
25
|
return y.BUDGETS;
|
|
23
26
|
case f.DebtPaymentReminder:
|
|
24
27
|
case f.AccountBalanceLow:
|
|
@@ -31,42 +34,26 @@ var yt = (e) => {
|
|
|
31
34
|
default:
|
|
32
35
|
return null;
|
|
33
36
|
}
|
|
34
|
-
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const { accounts: i } = R(), { budgets: r } = B(), { accounts: n } = C(), o = i.find((c) => c.guid === e.entity_guid), s = r.find((c) => c.guid === e.entity_guid), d = e.entity_guid.includes("GOL"), u = { badge: {
|
|
48
|
-
display: "flex",
|
|
49
|
-
alignItems: "center",
|
|
50
|
-
justifyContent: "center",
|
|
51
|
-
borderRadius: 4,
|
|
52
|
-
marginRight: 12
|
|
53
|
-
} };
|
|
54
|
-
return o || d ? /* @__PURE__ */ t("div", {
|
|
55
|
-
style: u.badge,
|
|
56
|
-
children: /* @__PURE__ */ t(U, {
|
|
37
|
+
}, H = ({ date: i }) => /* @__PURE__ */ t(b, { sx: { display: "flex", justifyContent: "center", mt: 12, py: 8 }, children: /* @__PURE__ */ t(m, { bold: !0, variant: "body2", children: j(i) }) }), J = ({ notification: i }) => {
|
|
38
|
+
const { accounts: e } = F(), { budgets: r } = P(), { accounts: n } = C(), o = e.find((c) => c.guid === i.entity_guid), a = r.find((c) => c.guid === i.entity_guid), d = i.entity_guid.includes("GOL"), u = {
|
|
39
|
+
badge: {
|
|
40
|
+
display: "flex",
|
|
41
|
+
alignItems: "center",
|
|
42
|
+
justifyContent: "center",
|
|
43
|
+
borderRadius: 4,
|
|
44
|
+
marginRight: 12
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
return o || d ? /* @__PURE__ */ t("div", { style: u.badge, children: /* @__PURE__ */ t(
|
|
48
|
+
G,
|
|
49
|
+
{
|
|
57
50
|
alt: o?.institutionName || n.institution_logo_alt,
|
|
58
51
|
institutionGuid: o?.institution_guid ?? "",
|
|
59
52
|
size: 33
|
|
60
|
-
}
|
|
61
|
-
}) : /* @__PURE__ */ t("div", {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
categoryGuid: s?.category_guid,
|
|
65
|
-
size: 36
|
|
66
|
-
})
|
|
67
|
-
});
|
|
68
|
-
}, J = m(H), K = ({ notification: e, onClick: i }) => {
|
|
69
|
-
const { updateNotification: r } = N(), n = M(), o = {
|
|
53
|
+
}
|
|
54
|
+
) }) : /* @__PURE__ */ t("div", { style: u.badge, children: /* @__PURE__ */ t(E, { categoryGuid: a?.category_guid, size: 36 }) });
|
|
55
|
+
}, K = p(J), Q = ({ notification: i, onClick: e }) => {
|
|
56
|
+
const { updateNotification: r } = k(), n = z(), o = {
|
|
70
57
|
card: {
|
|
71
58
|
alignItems: "center",
|
|
72
59
|
cursor: "pointer",
|
|
@@ -74,8 +61,12 @@ var yt = (e) => {
|
|
|
74
61
|
marginBottom: 12,
|
|
75
62
|
paddingX: 24,
|
|
76
63
|
paddingY: 12,
|
|
77
|
-
"&:focus": {
|
|
78
|
-
|
|
64
|
+
"&:focus": {
|
|
65
|
+
backgroundColor: n.palette.background.default
|
|
66
|
+
},
|
|
67
|
+
"&:hover": {
|
|
68
|
+
backgroundColor: n.palette.background.default
|
|
69
|
+
}
|
|
79
70
|
},
|
|
80
71
|
dot: {
|
|
81
72
|
backgroundColor: n.palette.primary.main,
|
|
@@ -87,121 +78,123 @@ var yt = (e) => {
|
|
|
87
78
|
width: 8
|
|
88
79
|
}
|
|
89
80
|
};
|
|
90
|
-
return /* @__PURE__ */ l(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}),
|
|
103
|
-
/* @__PURE__ */ t(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
sx: { pt: 32 },
|
|
127
|
-
variant: "h3",
|
|
128
|
-
children: i.notification_empty_state.no_new_notifications
|
|
129
|
-
}),
|
|
130
|
-
/* @__PURE__ */ t(p, {
|
|
131
|
-
sx: {
|
|
132
|
-
maxWidth: 327,
|
|
133
|
-
pb: 24,
|
|
134
|
-
pt: 12,
|
|
135
|
-
textAlign: "center"
|
|
136
|
-
},
|
|
137
|
-
variant: "subtitle1",
|
|
138
|
-
children: i.notification_empty_state.notification_description
|
|
139
|
-
}),
|
|
140
|
-
/* @__PURE__ */ t($, {
|
|
141
|
-
onClick: e,
|
|
142
|
-
sx: { p: "12px 16px" },
|
|
143
|
-
variant: "outlined",
|
|
144
|
-
children: i.notification_empty_state.manage_notifications
|
|
145
|
-
})
|
|
146
|
-
]
|
|
147
|
-
});
|
|
148
|
-
}), Z = ({ notificationTypes: e, onClick: i, onManageNotifications: r }) => {
|
|
149
|
-
const { isLoading: n, loadNotifications: o, markAllAsViewed: s, recentNotifications: d } = N(), { isInitialized: u } = S(), c = (a) => {
|
|
150
|
-
i?.(a);
|
|
81
|
+
return /* @__PURE__ */ l(U, { onClick: () => {
|
|
82
|
+
e(i), r({ ...i, has_been_viewed: !0 }).finally();
|
|
83
|
+
}, sx: o.card, children: [
|
|
84
|
+
i.has_been_viewed ? null : /* @__PURE__ */ t("div", { "data-testid": "new-message-dot", style: o.dot }),
|
|
85
|
+
/* @__PURE__ */ t(K, { notification: i }),
|
|
86
|
+
/* @__PURE__ */ t(m, { bold: !i.has_been_viewed, truncate: !1, variant: "body2", children: i.content })
|
|
87
|
+
] });
|
|
88
|
+
}, Z = p(
|
|
89
|
+
({ onManageNotifications: i }) => {
|
|
90
|
+
const { notifications: e } = C();
|
|
91
|
+
return /* @__PURE__ */ l(X, { sx: { alignItems: "center", height: "95%", justifyContent: "center" }, children: [
|
|
92
|
+
/* @__PURE__ */ t(W, { name: "notifications", size: 32 }),
|
|
93
|
+
/* @__PURE__ */ t(m, { sx: { pt: 32 }, variant: "h3", children: e.notification_empty_state.no_new_notifications }),
|
|
94
|
+
/* @__PURE__ */ t(
|
|
95
|
+
m,
|
|
96
|
+
{
|
|
97
|
+
sx: {
|
|
98
|
+
maxWidth: 327,
|
|
99
|
+
pb: 24,
|
|
100
|
+
pt: 12,
|
|
101
|
+
textAlign: "center"
|
|
102
|
+
},
|
|
103
|
+
variant: "subtitle1",
|
|
104
|
+
children: e.notification_empty_state.notification_description
|
|
105
|
+
}
|
|
106
|
+
),
|
|
107
|
+
/* @__PURE__ */ t(M, { onClick: i, sx: { p: "12px 16px" }, variant: "outlined", children: e.notification_empty_state.manage_notifications })
|
|
108
|
+
] });
|
|
109
|
+
}
|
|
110
|
+
), tt = ({
|
|
111
|
+
notificationTypes: i,
|
|
112
|
+
onClick: e,
|
|
113
|
+
onManageNotifications: r
|
|
114
|
+
}) => {
|
|
115
|
+
const { isLoading: n, loadNotifications: o, markAllAsViewed: a, recentNotifications: d } = k(), { isInitialized: u } = v(), c = (s) => {
|
|
116
|
+
e?.(s);
|
|
151
117
|
};
|
|
152
|
-
|
|
153
|
-
o().then(() =>
|
|
118
|
+
D(() => {
|
|
119
|
+
o().then(() => a()).finally();
|
|
154
120
|
}, []);
|
|
155
|
-
const g =
|
|
156
|
-
if (!u || n)
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
},
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
121
|
+
const g = i?.includes(A.Insights);
|
|
122
|
+
if (!u || n)
|
|
123
|
+
return /* @__PURE__ */ t(w, {});
|
|
124
|
+
const h = d.slice().sort((s, _) => _.delivered_at - s.delivered_at).filter(
|
|
125
|
+
(s) => g ? R().has(s.notification_type) : !0
|
|
126
|
+
);
|
|
127
|
+
return /* @__PURE__ */ l(S, { children: [
|
|
128
|
+
h.length === 0 && /* @__PURE__ */ t(Z, { onManageNotifications: r }),
|
|
129
|
+
/* @__PURE__ */ t(I, { sx: { p: 16 }, children: h.map((s, _) => {
|
|
130
|
+
const L = O(_, h);
|
|
131
|
+
return /* @__PURE__ */ l(b, { sx: { mb: 12 }, children: [
|
|
132
|
+
L && /* @__PURE__ */ l(b, { sx: { mb: 12 }, children: [
|
|
133
|
+
/* @__PURE__ */ t(H, { date: s.delivered_at }),
|
|
134
|
+
/* @__PURE__ */ t(B, {})
|
|
135
|
+
] }),
|
|
136
|
+
/* @__PURE__ */ t(Q, { notification: s, onClick: c })
|
|
137
|
+
] }, s.guid);
|
|
138
|
+
}) })
|
|
139
|
+
] });
|
|
140
|
+
}, it = p(tt), St = p(
|
|
141
|
+
({ notificationTypes: i, isOpen: e, onClose: r, onNotificationClick: n }) => {
|
|
142
|
+
const { config: o } = V(), { notifications: a, settings: d } = C(), { isCopyLoaded: u } = v(), [c, g] = T.useState(!1);
|
|
143
|
+
return u ? /* @__PURE__ */ l(S, { children: [
|
|
144
|
+
/* @__PURE__ */ l(
|
|
145
|
+
x,
|
|
146
|
+
{
|
|
147
|
+
ariaLabelClose: a.close_notifications,
|
|
148
|
+
isOpen: e,
|
|
149
|
+
onClose: r,
|
|
150
|
+
title: a.notifications_title,
|
|
151
|
+
children: [
|
|
152
|
+
/* @__PURE__ */ t(
|
|
153
|
+
Y,
|
|
154
|
+
{
|
|
155
|
+
"aria-label": d.open_notification_settings_btn_aria,
|
|
156
|
+
onClick: () => g(!0),
|
|
157
|
+
sx: {
|
|
158
|
+
position: "absolute",
|
|
159
|
+
right: 8,
|
|
160
|
+
top: 8
|
|
161
|
+
},
|
|
162
|
+
children: /* @__PURE__ */ t($, { size: 24 })
|
|
163
|
+
}
|
|
164
|
+
),
|
|
165
|
+
/* @__PURE__ */ t(
|
|
166
|
+
it,
|
|
167
|
+
{
|
|
168
|
+
notificationTypes: i,
|
|
169
|
+
onClick: n,
|
|
170
|
+
onManageNotifications: () => g(!0)
|
|
171
|
+
}
|
|
172
|
+
)
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
),
|
|
176
|
+
/* @__PURE__ */ t(
|
|
177
|
+
x,
|
|
178
|
+
{
|
|
179
|
+
ariaLabelClose: a.close_notification_settings,
|
|
180
|
+
isOpen: c,
|
|
181
|
+
onClose: () => g(!1),
|
|
182
|
+
title: d.notification_settings_title,
|
|
183
|
+
children: /* @__PURE__ */ t(
|
|
184
|
+
q,
|
|
185
|
+
{
|
|
186
|
+
notificationTypes: i,
|
|
187
|
+
showPersonalDetails: !o.display_user_profile_in_settings
|
|
188
|
+
}
|
|
189
|
+
)
|
|
190
|
+
}
|
|
191
|
+
)
|
|
192
|
+
] }) : /* @__PURE__ */ t(w, {});
|
|
193
|
+
}
|
|
194
|
+
);
|
|
203
195
|
export {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
196
|
+
St as NotificationDrawer,
|
|
197
|
+
it as NotificationList,
|
|
198
|
+
xt as getNotificationDetailRoute
|
|
207
199
|
};
|
|
200
|
+
//# sourceMappingURL=index.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../src/notifications/constants/NotificationConstants.ts","../../src/notifications/components/DateRow.tsx","../../src/notifications/components/NotificationBadge.tsx","../../src/notifications/components/NotificationCard.tsx","../../src/notifications/components/NotificationsEmptyState.tsx","../../src/notifications/components/NotificationList.tsx","../../src/notifications/components/NotificationDrawer.tsx"],"sourcesContent":["import { ApiEndpoints } from '../../core/constants'\nimport { AccountNotificationTypes, BudgetNotificationTypes } from '../../core'\n\nexport const getNotificationDetailRoute = (notificationType: number) => {\n switch (notificationType) {\n case BudgetNotificationTypes.BudgetExceeded:\n case BudgetNotificationTypes.BudgetOffTarget:\n return ApiEndpoints.BUDGETS\n case AccountNotificationTypes.DebtPaymentReminder:\n case AccountNotificationTypes.AccountBalanceLow:\n case AccountNotificationTypes.AccountDepositLarge:\n return ApiEndpoints.ACCOUNTS\n case AccountNotificationTypes.TransactionExpenseLarge:\n case AccountNotificationTypes.TransactionFeeCharge:\n case AccountNotificationTypes.InternationalTransaction:\n return ApiEndpoints.TRANSACTIONS\n default:\n return null\n }\n}\n","import React from 'react'\nimport Box from '@mui/material/Box'\nimport { Text } from '@mxenabled/mxui'\n\nimport { fromUnixToDayOfWeekAndDate } from '../../core/utils/DateUtil'\n\ninterface DateRowProps {\n date: number\n}\n\nconst DateRow: React.FC<DateRowProps> = ({ date }) => {\n return (\n <Box sx={{ display: 'flex', justifyContent: 'center', mt: 12, py: 8 }}>\n <Text bold={true} variant=\"body2\">\n {fromUnixToDayOfWeekAndDate(date)}\n </Text>\n </Box>\n )\n}\n\nexport default DateRow\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { InstitutionLogo, CategoryIcon } from '@mxenabled/mxui'\n\nimport { useAccountStore, useBudgetsStore, useGlobalCopyStore } from '../../common'\nimport { type Notification } from '../../core'\n\ninterface NotificationBadgeProps {\n notification: Notification\n}\n\nconst NotificationBadge: React.FC<NotificationBadgeProps> = ({ notification }) => {\n // Show notifications for all accounts (including hidden)\n const { accounts } = useAccountStore()\n const { budgets } = useBudgetsStore()\n const { accounts: accountsCopy } = useGlobalCopyStore()\n\n const account = accounts.find((account) => account.guid === notification.entity_guid)\n const budget = budgets.find((budget) => budget.guid === notification.entity_guid)\n const isGoal = notification.entity_guid.includes('GOL')\n\n const styles = {\n badge: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4,\n marginRight: 12,\n },\n }\n\n if (account || isGoal) {\n return (\n <div style={styles.badge}>\n <InstitutionLogo\n alt={account?.institutionName || accountsCopy.institution_logo_alt}\n institutionGuid={account?.institution_guid ?? ''}\n size={33}\n />\n </div>\n )\n } else {\n return (\n <div style={styles.badge}>\n <CategoryIcon categoryGuid={budget?.category_guid} size={36} />\n </div>\n )\n }\n}\n\nexport default observer(NotificationBadge)\n","import React from 'react'\nimport { Card, useTheme } from '@mui/material'\nimport { Text } from '@mxenabled/mxui'\n\nimport { type Notification } from '../../core'\nimport { useNotificationStore } from '../../common'\nimport NotificationBadge from './NotificationBadge'\n\ninterface NotificationCardProps {\n notification: Notification\n onClick: (notification: Notification) => void\n}\n\nconst NotificationCard: React.FC<NotificationCardProps> = ({ notification, onClick }) => {\n const { updateNotification } = useNotificationStore()\n const theme = useTheme()\n\n const styles = {\n card: {\n alignItems: 'center',\n cursor: 'pointer',\n display: 'flex',\n marginBottom: 12,\n paddingX: 24,\n paddingY: 12,\n '&:focus': {\n backgroundColor: theme.palette.background.default,\n },\n '&:hover': {\n backgroundColor: theme.palette.background.default,\n },\n },\n dot: {\n backgroundColor: theme.palette.primary.main,\n borderRadius: '100%',\n flex: '0 0 auto',\n marginLeft: -8,\n marginRight: 8,\n height: 8,\n width: 8,\n },\n }\n\n const handleOnClick = () => {\n onClick(notification)\n updateNotification({ ...notification, has_been_viewed: true }).finally()\n }\n\n return (\n <Card onClick={handleOnClick} sx={styles.card}>\n {!notification.has_been_viewed ? (\n <div data-testid=\"new-message-dot\" style={styles.dot} />\n ) : null}\n <NotificationBadge notification={notification} />\n <Text bold={!notification.has_been_viewed} truncate={false} variant={'body2'}>\n {notification.content}\n </Text>\n </Card>\n )\n}\n\nexport default NotificationCard\n","import { observer } from 'mobx-react-lite'\n\nimport { Icon } from '@mxenabled/mx-icons'\nimport { Text } from '@mxenabled/mxui'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport { useGlobalCopyStore } from '../../common'\n\ninterface NotificationEmptyStateProps {\n onManageNotifications: () => void\n}\n\nexport const NotificationEmptyState = observer(\n ({ onManageNotifications }: NotificationEmptyStateProps) => {\n const { notifications: notificationsCopy } = useGlobalCopyStore()\n\n return (\n <Stack sx={{ alignItems: 'center', height: '95%', justifyContent: 'center' }}>\n <Icon name=\"notifications\" size={32} />\n\n <Text sx={{ pt: 32 }} variant=\"h3\">\n {notificationsCopy.notification_empty_state.no_new_notifications}\n </Text>\n <Text\n sx={{\n maxWidth: 327,\n pb: 24,\n pt: 12,\n textAlign: 'center',\n }}\n variant=\"subtitle1\"\n >\n {notificationsCopy.notification_empty_state.notification_description}\n </Text>\n <Button onClick={onManageNotifications} sx={{ p: '12px 16px' }} variant=\"outlined\">\n {notificationsCopy.notification_empty_state.manage_notifications}\n </Button>\n </Stack>\n )\n },\n)\n","import React, { useEffect } from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\n\nimport {\n shouldShowDate,\n getInsightNotificationTypeValues,\n} from '../../core/utils/NotificationUtils'\nimport {\n type Notification,\n NotificationTypes,\n NotificationTypes as NotificationTypesEnum,\n} from '../../core'\n\nimport { Loader, useGlobalUiStore, useNotificationStore } from '../../common'\n\nimport DateRow from './DateRow'\nimport NotificationCard from './NotificationCard'\nimport { NotificationEmptyState } from './NotificationsEmptyState'\n\nexport interface NotificationListProps {\n notificationTypes?: NotificationTypes[]\n onClick?: (notification: Notification) => void\n onManageNotifications: () => void\n}\n\nconst NotificationList: React.FC<NotificationListProps> = ({\n notificationTypes,\n onClick,\n onManageNotifications,\n}) => {\n const { isLoading, loadNotifications, markAllAsViewed, recentNotifications } =\n useNotificationStore()\n const { isInitialized } = useGlobalUiStore()\n\n const handleClick = (notification: Notification) => {\n onClick?.(notification)\n }\n\n useEffect(() => {\n loadNotifications()\n .then(() => markAllAsViewed())\n .finally()\n }, [])\n\n const isNotificationTypesInsights = notificationTypes?.includes(NotificationTypesEnum.Insights)\n\n if (!isInitialized || isLoading) {\n return <Loader />\n }\n\n const filteredNotifications = recentNotifications\n .slice()\n .sort((a, b) => b.delivered_at - a.delivered_at)\n .filter((notification) =>\n isNotificationTypesInsights\n ? getInsightNotificationTypeValues().has(notification.notification_type)\n : true,\n )\n\n return (\n <>\n {filteredNotifications.length === 0 && (\n <NotificationEmptyState onManageNotifications={onManageNotifications} />\n )}\n <List sx={{ p: 16 }}>\n {filteredNotifications.map((notification, index) => {\n const showDate = shouldShowDate(index, filteredNotifications)\n\n return (\n <Box key={notification.guid} sx={{ mb: 12 }}>\n {showDate && (\n <Box sx={{ mb: 12 }}>\n <DateRow date={notification.delivered_at} />\n <Divider />\n </Box>\n )}\n <NotificationCard notification={notification} onClick={handleClick} />\n </Box>\n )\n })}\n </List>\n </>\n )\n}\n\nexport default observer(NotificationList)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport IconButton from '@mui/material/IconButton'\n\nimport { Settings as SettingsIcon } from '@mxenabled/mx-icons'\n\nimport { Drawer, Loader, useAppConfig, useGlobalCopyStore, useGlobalUiStore } from '../../common'\nimport { type Notification, NotificationTypes } from '../../core'\n\nimport { NotificationSettings } from '../../settings'\n\nimport NotificationList from './NotificationList'\n\ninterface NotificationDrawerProps {\n notificationTypes?: NotificationTypes[]\n isOpen: boolean\n onClose: () => void\n onNotificationClick?: (notification: Notification) => void\n}\n\nexport const NotificationDrawer = observer(\n ({ notificationTypes, isOpen, onClose, onNotificationClick }: NotificationDrawerProps) => {\n const { config } = useAppConfig()\n const { notifications: copy, settings: settingsCopy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n\n const [shouldShowSettings, setShouldShowSettings] = React.useState(false)\n\n if (!isCopyLoaded) return <Loader />\n\n return (\n <>\n <Drawer\n ariaLabelClose={copy.close_notifications}\n isOpen={isOpen}\n onClose={onClose}\n title={copy.notifications_title}\n >\n <IconButton\n aria-label={settingsCopy.open_notification_settings_btn_aria}\n onClick={() => setShouldShowSettings(true)}\n sx={{\n position: 'absolute',\n right: 8,\n top: 8,\n }}\n >\n <SettingsIcon size={24} />\n </IconButton>\n\n <NotificationList\n notificationTypes={notificationTypes}\n onClick={onNotificationClick}\n onManageNotifications={() => setShouldShowSettings(true)}\n />\n </Drawer>\n <Drawer\n ariaLabelClose={copy.close_notification_settings}\n isOpen={shouldShowSettings}\n onClose={() => setShouldShowSettings(false)}\n title={settingsCopy.notification_settings_title}\n >\n <NotificationSettings\n notificationTypes={notificationTypes}\n showPersonalDetails={!config.display_user_profile_in_settings}\n />\n </Drawer>\n </>\n )\n },\n)\n"],"names":["getNotificationDetailRoute","notificationType","BudgetNotificationTypes","ApiEndpoints","AccountNotificationTypes","DateRow","date","jsx","Box","Text","fromUnixToDayOfWeekAndDate","NotificationBadge","notification","accounts","useAccountStore","budgets","useBudgetsStore","accountsCopy","useGlobalCopyStore","account","budget","isGoal","styles","InstitutionLogo","CategoryIcon","NotificationBadge$1","observer","NotificationCard","onClick","updateNotification","useNotificationStore","theme","useTheme","Card","NotificationEmptyState","onManageNotifications","notificationsCopy","jsxs","Stack","Icon","Button","NotificationList","notificationTypes","isLoading","loadNotifications","markAllAsViewed","recentNotifications","isInitialized","useGlobalUiStore","handleClick","useEffect","isNotificationTypesInsights","NotificationTypesEnum","Loader","filteredNotifications","a","b","getInsightNotificationTypeValues","Fragment","List","index","showDate","shouldShowDate","Divider","NotificationList$1","NotificationDrawer","isOpen","onClose","onNotificationClick","config","useAppConfig","copy","settingsCopy","isCopyLoaded","shouldShowSettings","setShouldShowSettings","React","Drawer","IconButton","SettingsIcon","NotificationSettings"],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { RepeatingTransaction } from '../../core';
|
|
1
|
+
import { Recurrence, RepeatingTransaction } from '../../core';
|
|
2
2
|
interface RecurringTransactionDetailsProps {
|
|
3
3
|
onDeleted: () => void;
|
|
4
4
|
recurringTransaction: RepeatingTransaction;
|
|
5
|
+
selectedRecurrence: Recurrence | null;
|
|
5
6
|
}
|
|
6
|
-
export declare const RecurringTransactionDetails: (({ onDeleted, recurringTransaction }: RecurringTransactionDetailsProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
7
|
+
export declare const RecurringTransactionDetails: (({ onDeleted, recurringTransaction, selectedRecurrence }: RecurringTransactionDetailsProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
7
8
|
displayName: string;
|
|
8
9
|
};
|
|
9
10
|
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Transaction, RepeatingTransaction } from '../../core';
|
|
2
|
+
interface RecurringTransactionListProps {
|
|
3
|
+
isIncome?: boolean;
|
|
4
|
+
onMarkAsPaidClick: () => void;
|
|
5
|
+
onMarkAsUnpaidClick: (transactionGuid: string) => void;
|
|
6
|
+
onTransactionClick: (guid: string) => void;
|
|
7
|
+
recurringTransaction: RepeatingTransaction;
|
|
8
|
+
transactions: Transaction[];
|
|
9
|
+
}
|
|
10
|
+
export declare const RecurringTransactionList: ({ isIncome, onMarkAsUnpaidClick, onMarkAsPaidClick, onTransactionClick, recurringTransaction, transactions, }: RecurringTransactionListProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RecurrenceStatus } from '../../core';
|
|
2
|
+
interface UpcomingRecurrenceCardProps {
|
|
3
|
+
expectedDate: Date;
|
|
4
|
+
onMarkAsPaidClick: () => void;
|
|
5
|
+
status?: RecurrenceStatus;
|
|
6
|
+
}
|
|
7
|
+
export declare const UpcomingRecurrenceCard: ({ expectedDate, onMarkAsPaidClick, status, }: UpcomingRecurrenceCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RepeatingTransaction } from '../../../core';
|
|
2
|
+
interface LinkTransactionDrawerProps {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
recurringTransaction: RepeatingTransaction;
|
|
6
|
+
}
|
|
7
|
+
export declare const LinkTransactionDrawer: (({ isOpen, onClose, recurringTransaction }: LinkTransactionDrawerProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface MarkAsPaidDialogProps {
|
|
2
|
+
isOpen: boolean;
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
onLinkTransaction: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const MarkAsPaidDialog: ({ isOpen, onClose, onLinkTransaction }: MarkAsPaidDialogProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface MarkAsUnpaidDialogProps {
|
|
2
|
+
isOpen: boolean;
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
onUnlinkTransaction: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const MarkAsUnpaidDialog: ({ isOpen, onClose, onUnlinkTransaction, }: MarkAsUnpaidDialogProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|