@mx-cartographer/experiences 9.0.16 → 9.0.17-alpha
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 +4 -5
- package/dist/Account-DR7Plrqy.mjs +1 -0
- package/dist/Account-DR7Plrqy.mjs.map +1 -0
- package/dist/{AccountDetailsDrawer-BuxLfuIm.mjs → AccountDetailsDrawer-CZPeLsCq.mjs} +4 -3
- package/dist/AccountDetailsDrawer-CZPeLsCq.mjs.map +1 -0
- package/dist/{AccountDetailsHeader-ByGNPZpO.mjs → AccountDetailsHeader-BvbCUQSS.mjs} +3 -0
- package/dist/AccountDetailsHeader-BvbCUQSS.mjs.map +1 -0
- package/dist/AccountUtils-B8ZzWI-d.mjs +1 -0
- package/dist/AccountUtils-B8ZzWI-d.mjs.map +1 -0
- package/dist/Analytics-CkYXKvco.mjs +1 -0
- package/dist/Analytics-CkYXKvco.mjs.map +1 -0
- package/dist/Analytics-WeZYytR0.mjs +1 -0
- package/dist/Analytics-WeZYytR0.mjs.map +1 -0
- package/dist/ApiEndpoints-DXwIYNUV.mjs +1 -0
- package/dist/ApiEndpoints-DXwIYNUV.mjs.map +1 -0
- package/dist/BeatMaterialIcon-1KOfRZrA.mjs +1 -0
- package/dist/BeatMaterialIcon-1KOfRZrA.mjs.map +1 -0
- package/dist/BudgetUtil-Bg2AQJpQ.mjs +1 -0
- package/dist/BudgetUtil-Bg2AQJpQ.mjs.map +1 -0
- package/dist/Category-DEKZGLYe.mjs +1 -0
- package/dist/Category-DEKZGLYe.mjs.map +1 -0
- package/dist/CategorySelectorDrawer-NJsFsKP1.mjs +1 -0
- package/dist/CategorySelectorDrawer-NJsFsKP1.mjs.map +1 -0
- package/dist/Connect-BH0Pt6zc.mjs +1 -0
- package/dist/Connect-BH0Pt6zc.mjs.map +1 -0
- package/dist/ConnectCard-D7uxoH5Y.mjs +1 -0
- package/dist/ConnectCard-D7uxoH5Y.mjs.map +1 -0
- package/dist/ConnectDrawer-CW4LA3H3.mjs +1 -0
- package/dist/ConnectDrawer-CW4LA3H3.mjs.map +1 -0
- package/dist/ConnectionsDrawer-CZU9ku-k.mjs +1 -0
- package/dist/ConnectionsDrawer-CZU9ku-k.mjs.map +1 -0
- package/dist/CurrencyDialog-DumQCTPO.mjs +1 -0
- package/dist/CurrencyDialog-DumQCTPO.mjs.map +1 -0
- package/dist/CurrencyInput-DaGEQaLW.mjs +1 -0
- package/dist/CurrencyInput-DaGEQaLW.mjs.map +1 -0
- package/dist/CurrencyText-CCbE6MmF.mjs +1 -0
- package/dist/CurrencyText-CCbE6MmF.mjs.map +1 -0
- package/dist/DateFormats-HudZ3Bjs.mjs +1 -0
- package/dist/DateFormats-HudZ3Bjs.mjs.map +1 -0
- package/dist/DateUtil-CzBmbjmA.mjs +1 -0
- package/dist/DateUtil-CzBmbjmA.mjs.map +1 -0
- package/dist/DebtUtils-i4pI2Uoe.mjs +1 -0
- package/dist/DebtUtils-i4pI2Uoe.mjs.map +1 -0
- package/dist/Dialog-Bvd2n8hz.mjs +1 -0
- package/dist/Dialog-Bvd2n8hz.mjs.map +1 -0
- package/dist/Donut-SzzfZDHF.mjs +1 -0
- package/dist/Donut-SzzfZDHF.mjs.map +1 -0
- package/dist/Drawer-DsnW2o0v.mjs +1 -0
- package/dist/Drawer-DsnW2o0v.mjs.map +1 -0
- package/dist/{EmbeddedCard-BxgB26dd.mjs → EmbeddedCard-DH8vQ3qN.mjs} +184 -181
- package/dist/EmbeddedCard-DH8vQ3qN.mjs.map +1 -0
- package/dist/EmptyState-CJUDc3kD.mjs +1 -0
- package/dist/EmptyState-CJUDc3kD.mjs.map +1 -0
- package/dist/Error-Dtw6yxkf.mjs +1 -0
- package/dist/Error-Dtw6yxkf.mjs.map +1 -0
- package/dist/ErrorBoundary-CsdOcnJ9.mjs +1 -0
- package/dist/ErrorBoundary-CsdOcnJ9.mjs.map +1 -0
- package/dist/{ExportCsvAction-BV69DnpC.mjs → ExportCsvAction-C9KWH3Az.mjs} +2 -1
- package/dist/ExportCsvAction-C9KWH3Az.mjs.map +1 -0
- package/dist/GlobalAccountFilter-BhzR5Vb1.mjs +1 -0
- package/dist/GlobalAccountFilter-BhzR5Vb1.mjs.map +1 -0
- package/dist/GlobalCopyApi-wcnDUzMV.mjs +1 -0
- package/dist/GlobalCopyApi-wcnDUzMV.mjs.map +1 -0
- package/dist/GoalsUtil-C9EnLWvC.mjs +1 -0
- package/dist/GoalsUtil-C9EnLWvC.mjs.map +1 -0
- package/dist/HeaderCell-P8w6CmfO.mjs +1 -0
- package/dist/HeaderCell-P8w6CmfO.mjs.map +1 -0
- package/dist/Help-CkQTjORd.mjs +1 -0
- package/dist/Help-CkQTjORd.mjs.map +1 -0
- package/dist/{Help-BMCejaQr.mjs → Help-aERwhajy.mjs} +3 -2
- package/dist/Help-aERwhajy.mjs.map +1 -0
- package/dist/IconBacking-DgT8DCeh.mjs +1 -0
- package/dist/IconBacking-DgT8DCeh.mjs.map +1 -0
- package/dist/InformationTooltip-4su8bn1e.mjs +1 -0
- package/dist/InformationTooltip-4su8bn1e.mjs.map +1 -0
- package/dist/InvestmentUtil-BItV7uEs.mjs +1 -0
- package/dist/InvestmentUtil-BItV7uEs.mjs.map +1 -0
- package/dist/LineChart-CUfiH86G.mjs +1 -0
- package/dist/LineChart-CUfiH86G.mjs.map +1 -0
- package/dist/ListItemAction-BqUCLj_w.mjs +1 -0
- package/dist/ListItemAction-BqUCLj_w.mjs.map +1 -0
- package/dist/ListItemRow-kH1rn8Xu.mjs +1 -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 +1 -0
- package/dist/Loader-CxeBwuPG.mjs.map +1 -0
- package/dist/Localization-DnoVyBNK.mjs +1 -0
- package/dist/Localization-DnoVyBNK.mjs.map +1 -0
- package/dist/{ManageIncome-BadwsHRL.mjs → ManageIncome-Dcsnnz86.mjs} +9 -8
- package/dist/ManageIncome-Dcsnnz86.mjs.map +1 -0
- package/dist/MicroWidgetContainer-B2NnKBgW.mjs +1 -0
- package/dist/MicroWidgetContainer-B2NnKBgW.mjs.map +1 -0
- package/dist/MiniWidgetContainer-Bmv_WeUd.mjs +1 -0
- package/dist/MiniWidgetContainer-Bmv_WeUd.mjs.map +1 -0
- package/dist/NetWorthUtils-DfSH3z70.mjs +1 -0
- package/dist/NetWorthUtils-DfSH3z70.mjs.map +1 -0
- package/dist/Notification-DTNYSd8P.mjs +1 -0
- package/dist/Notification-DTNYSd8P.mjs.map +1 -0
- package/dist/NotificationSettings-CW7okUrk.mjs +1 -0
- package/dist/NotificationSettings-CW7okUrk.mjs.map +1 -0
- package/dist/NotificationUtils-BRGFTePr.mjs +1 -0
- package/dist/NotificationUtils-BRGFTePr.mjs.map +1 -0
- package/dist/NumberFormatting--XMeeBfr.mjs +1 -0
- package/dist/NumberFormatting--XMeeBfr.mjs.map +1 -0
- package/dist/OriginalBalanceAction-YrvxBYAl.mjs +1 -0
- package/dist/OriginalBalanceAction-YrvxBYAl.mjs.map +1 -0
- package/dist/{RecurringSettings-CGZiV-Ie.mjs → RecurringSettings-D8hBbXV_.mjs} +2 -1
- package/dist/RecurringSettings-D8hBbXV_.mjs.map +1 -0
- package/dist/RecurringTransactionsUtil-CHWmqvW5.mjs +1 -0
- package/dist/RecurringTransactionsUtil-CHWmqvW5.mjs.map +1 -0
- package/dist/ResponsiveButton-CC9F_Ezk.mjs +1 -0
- package/dist/ResponsiveButton-CC9F_Ezk.mjs.map +1 -0
- package/dist/SearchBox-Cpgu_gdO.mjs +1 -0
- package/dist/SearchBox-Cpgu_gdO.mjs.map +1 -0
- package/dist/Select-CSpkK5cR.mjs +1 -0
- package/dist/Select-CSpkK5cR.mjs.map +1 -0
- package/dist/SelectionBox-B4xELRgp.mjs +1 -0
- package/dist/SelectionBox-B4xELRgp.mjs.map +1 -0
- package/dist/SingleSegmentDonut-7Uy6VEld.mjs +1 -0
- package/dist/SingleSegmentDonut-7Uy6VEld.mjs.map +1 -0
- package/dist/Sizes-DISGrlUg.mjs +1 -0
- package/dist/Sizes-DISGrlUg.mjs.map +1 -0
- package/dist/SkeletonLoader-BaNboJjD.mjs +1 -0
- package/dist/SkeletonLoader-BaNboJjD.mjs.map +1 -0
- package/dist/SpendingData-Fii_xATx.mjs +1 -0
- package/dist/SpendingData-Fii_xATx.mjs.map +1 -0
- package/dist/SpendingLegend-CxvNOg3c.mjs +1 -0
- package/dist/SpendingLegend-CxvNOg3c.mjs.map +1 -0
- package/dist/StatusBar-CPfSXe80.mjs +1 -0
- package/dist/StatusBar-CPfSXe80.mjs.map +1 -0
- package/dist/TabContentContainer-B0eYJP5p.mjs +1 -0
- package/dist/TabContentContainer-B0eYJP5p.mjs.map +1 -0
- package/dist/ToggleListItem-Dl1lXNwj.mjs +1 -0
- package/dist/ToggleListItem-Dl1lXNwj.mjs.map +1 -0
- package/dist/{TransactionDetails-DQ_eE7M4.mjs → TransactionDetails-roZ5xLq8.mjs} +2 -1
- package/dist/TransactionDetails-roZ5xLq8.mjs.map +1 -0
- package/dist/TransactionUtils-BphBJBbU.mjs +1 -0
- package/dist/TransactionUtils-BphBJBbU.mjs.map +1 -0
- package/dist/TrendsUtil-D9z3kIj_.mjs +1 -0
- package/dist/TrendsUtil-D9z3kIj_.mjs.map +1 -0
- package/dist/UserStore-C1fdL3Iu.mjs +1 -0
- package/dist/UserStore-C1fdL3Iu.mjs.map +1 -0
- package/dist/{ViewMoreMicroCard-fnwE0hqd.mjs → ViewMoreMicroCard-Dxghxphh.mjs} +352 -355
- package/dist/ViewMoreMicroCard-Dxghxphh.mjs.map +1 -0
- package/dist/WidgetContainer-DJnp6t6c.mjs +1 -0
- package/dist/WidgetContainer-DJnp6t6c.mjs.map +1 -0
- package/dist/accounts/index.es.js +5 -4
- package/dist/accounts/index.es.js.map +1 -0
- package/dist/analytics/index.es.js +1 -0
- package/dist/analytics/index.es.js.map +1 -0
- package/dist/budgets/index.es.js +4 -3
- package/dist/budgets/index.es.js.map +1 -0
- package/dist/cashflow/index.es.js +5 -4
- package/dist/cashflow/index.es.js.map +1 -0
- package/dist/categories/index.es.js +1 -0
- package/dist/categories/index.es.js.map +1 -0
- package/dist/common/components/ListItemWrapper.d.ts +2 -1
- package/dist/common/index.es.js +2 -1
- package/dist/common/index.es.js.map +1 -0
- package/dist/core/index.es.js +1 -0
- package/dist/core/index.es.js.map +1 -0
- package/dist/dashboard/index.es.js +1 -0
- package/dist/dashboard/index.es.js.map +1 -0
- package/dist/debts/index.es.js +64 -63
- package/dist/debts/index.es.js.map +1 -0
- package/dist/finstrong/index.es.js +6 -5
- package/dist/finstrong/index.es.js.map +1 -0
- package/dist/goals/index.es.js +1 -0
- package/dist/goals/index.es.js.map +1 -0
- package/dist/help/index.es.js +2 -1
- package/dist/help/index.es.js.map +1 -0
- package/dist/hooks-97sNJ_lf.mjs +1 -0
- package/dist/hooks-97sNJ_lf.mjs.map +1 -0
- package/dist/insights/index.es.js +3 -2
- package/dist/insights/index.es.js.map +1 -0
- package/dist/investments/index.es.js +1 -0
- package/dist/investments/index.es.js.map +1 -0
- package/dist/merchants/index.es.js +1 -0
- package/dist/merchants/index.es.js.map +1 -0
- package/dist/microinsights/index.es.js +2 -1
- package/dist/microinsights/index.es.js.map +1 -0
- package/dist/networth/index.es.js +1 -0
- package/dist/networth/index.es.js.map +1 -0
- package/dist/notifications/index.es.js +1 -0
- package/dist/notifications/index.es.js.map +1 -0
- package/dist/recurringtransactions/index.es.js +152 -138
- package/dist/recurringtransactions/index.es.js.map +1 -0
- package/dist/settings/index.es.js +2 -1
- package/dist/settings/index.es.js.map +1 -0
- package/dist/spending/index.es.js +3 -2
- 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 +6 -5
- package/dist/transactions/index.es.js.map +1 -0
- package/dist/trends/index.es.js +5 -4
- package/dist/trends/index.es.js.map +1 -0
- package/dist/useAccountDisplayName-BsiXA0qf.mjs +1 -0
- package/dist/useAccountDisplayName-BsiXA0qf.mjs.map +1 -0
- package/dist/useAriaLive-MkYebyUR.mjs +1 -0
- package/dist/useAriaLive-MkYebyUR.mjs.map +1 -0
- package/dist/useDimensions-CeDR9V8N.mjs +1 -0
- package/dist/useDimensions-CeDR9V8N.mjs.map +1 -0
- package/dist/useInsightsEnabled-D5Sdm0TJ.mjs +1 -0
- package/dist/useInsightsEnabled-D5Sdm0TJ.mjs.map +1 -0
- package/dist/useScreenSize-mWpmnh5w.mjs +1 -0
- package/dist/useScreenSize-mWpmnh5w.mjs.map +1 -0
- package/dist/useWidgetLoadTimer-B0tB-yzL.mjs +1 -0
- package/dist/useWidgetLoadTimer-B0tB-yzL.mjs.map +1 -0
- package/package.json +6 -6
- package/dist/ListItemWrapper-BHIbqx7E.mjs +0 -42
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddedCard-DH8vQ3qN.mjs","sources":["../src/transactions/context/hooks.tsx","../src/transactions/constants/OnClickEvents.ts","../src/common/utils/PostMessage.ts","../src/transactions/components/shared/transactionlist/TransactionRow.tsx","../src/common/components/SubheaderRow.tsx","../src/transactions/components/shared/transactionlist/ZeroState.tsx","../src/transactions/utils/Transactions.ts","../src/transactions/components/shared/TransactionList.tsx","../src/insights/components/shared/ChartDrawerTemplate/TipSection.tsx","../src/insights/components/shared/ChartDrawerTemplate/ChartDrawerTemplate.tsx","../src/insights/hooks/useContainerDimensions.ts","../src/insights/components/shared/Charts/BarChart/ChartLegendV2.tsx","../src/insights/components/shared/Charts/BarChart/CustomBarPlotV2.tsx","../src/insights/components/shared/Charts/BarChart/BarChartV2.tsx","../src/insights/components/shared/ChartTransactionWithDrillDown.tsx","../src/insights/components/shared/StatusIndicator.tsx","../src/insights/components/shared/InsightsCard/EmbeddedCard.tsx"],"sourcesContent":["import React from 'react'\nimport { GlobalDataContext, useTransactionStore } from '../../common'\n\nexport const useTransactionsUiStore = () => {\n const context = React.useContext(GlobalDataContext)\n\n if (!context) {\n throw new Error('useTransactionsUiStore() must be used within the GlobalDataContext')\n }\n\n return useTransactionStore().uiStore\n}\n","export const ON_CLICK_EVENTS = {\n ON_TRANSACTION_CATEGORY_CLICK: 'onTransactionCategoryClick',\n ON_TRANSACTION_CATEGORY_CHANGED: 'onTransactionCategoryChanged',\n ON_TRANSACTION_MANUAL_ADD_CLICK: 'onTransactionManualAddClick',\n ON_TRANSACTION_MANUAL_ADD_ADDED: 'onTransactionManualAddAdded',\n ON_TRANSACTION_DATE_CHANGED: 'onTransactionDateChanged',\n ON_TRANSACTION_DATE_CLICK: 'onTransactionDateClick',\n ON_TRANSACTION_DELETE_CANCEL: 'onTransactionDeleteCancel',\n ON_TRANSACTION_DELETE_CLICK: 'onTransactionDeleteClick',\n ON_TRANSACTION_DELETE_DELETED: 'onTransactionDeleted',\n ON_TRANSACTION_DELETE_LOGO_CANCEL: 'onTransactionDeleteLogoCancel',\n ON_TRANSACTION_DELETE_LOGO_CLICK: 'onTransactionDeleteLogoClick',\n ON_TRANSACTION_DELETE_LOGO_DELETED: 'onTransactionDeletedLogo',\n ON_TRANSACTION_DESCRIPTION_EDIT_CLICK: 'onTransactionDescriptionEditClick',\n ON_TRANSACTION_DESCRIPTION_SAVE_CLICK: 'onTransactionDescriptionSaveClick',\n ON_TRANSACTION_EXPORT_CSV_CLICK: 'onTransactionExportCsvClick',\n ON_TRANSACTION_HIDDEN: 'onTransactionHidden',\n ON_TRANSACTION_HIDE_CLICK: 'onTransactionHideClick',\n ON_TRANSACTION_HIDE_CANCEL_CLICK: 'onTransactionHideCancelClick',\n ON_TRANSACTION_LIST_ITEM_CLICK: 'onTransactionListItemClick',\n ON_TRANSACTION_MEMO_CHANGED: 'onTransactionMemoChanged',\n ON_TRANSACTION_MEMO_CLICK: 'onTransactionMemoClick',\n ON_TRANSACTION_SPLIT_ADD_CLICK: 'onTransactionSplitAddClick',\n ON_TRANSACTION_SPLIT_CANCEL_CLICK: 'onTransactionSplitCancelClick',\n ON_TRANSACTION_SPLIT_CATEGORY_CLICK: 'onTransactionSplitCategoryClick',\n ON_TRANSACTION_SPLIT_CLICK: 'onTransactionSplitClick',\n ON_TRANSACTION_SPLIT_DELETE_CLICK: 'onTransactionSplitDeleteClick',\n ON_TRANSACTION_SPLIT_SAVE_CLICK: 'onTransactionSplitSaveClick',\n ON_TRANSACTION_TAGS_CHANGED: 'onTransactionTagsChanged',\n ON_TRANSACTION_TAGS_CLICK: 'onTransactionTagsClick',\n ON_TRANSACTION_TAGS_TAG_ADD_CANCEL_CLICK: 'onTransactionTagsTagAddCancelClick',\n ON_TRANSACTION_TAGS_TAG_ADD_CLICK: 'onTransactionTagsTagAddClick',\n ON_TRANSACTION_TAGS_TAG_ADDED: 'onTransactionTagsTagAdded',\n ON_TRANSACTION_TAGS_TAG_DELETE_CLICK: 'onTransactionTagsTagDeleteClick',\n ON_TRANSACTION_TAGS_TAG_DELETE_CANCEL_CLICK: 'onTransactionTagsTagDeleteCancelClick',\n ON_TRANSACTION_TAGS_TAG_DELETED: 'onTransactionTagsTagDeleted',\n ON_TRANSACTION_TAGS_TAG_EDIT_CLICK: 'onTransactionTagsTagEditClick',\n ON_TRANSACTION_TAGS_TAG_EDIT_SAVED: 'onTransactionTagsTagEditSavedClick',\n ON_TRANSACTION_TOGGLE_FLAG_CLICK: 'onTransactionToggleFlagClick',\n ON_TRANSACTION_UNHIDDEN: 'onTransactionUnHidden',\n ON_TRANSACTION_UNHIDE_CLICK: 'onTransactionUnHideClick',\n ON_TRANSACTION_UNHIDE_CANCEL_CLICK: 'onTransactionUnHideCancelClick',\n ON_TRANSACTION_UNSPLIT: 'onTransactionUnsplit',\n ON_TRANSACTION_UNSPLIT_CANCEL: 'onTransactionUnsplitCancel',\n}\n","export function getReferrer(): string {\n if (window.opener && window.opener.location) {\n return window.opener.location.toString()\n } else {\n return document.referrer\n }\n}\n\nexport interface PostMessageData {\n metadata?: Record<string, any>\n mx: boolean\n type: string\n [key: string]: any\n}\n\nexport function postMessageToParent(message: PostMessageData): boolean {\n const postUrl = getReferrer().replace(/([^:]+:\\/\\/[^\\/]+).*/, '$1') // eslint-disable-line\n const otherWindow = window.parent || window.opener || false\n\n if (otherWindow && otherWindow.postMessage && postUrl) {\n otherWindow.postMessage(message, postUrl)\n return true\n }\n\n return false\n}\n\nexport function postInsightOnTransaction(beatGuid: string): boolean {\n const message: PostMessageData = {\n metadata: { beat_guid: beatGuid },\n mx: true,\n type: 'mx/moneyDashboard/insightOnTransaction',\n }\n\n return postMessageToParent(message)\n}\n\nexport function postClientConfiguredCta(template: string): boolean {\n const message: PostMessageData = {\n metadata: { template: template },\n mx: true,\n type: 'mx/pulse/client_configured_cta',\n }\n\n return postMessageToParent(message)\n}\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport ListItemAvatar from '@mui/material/ListItemAvatar'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport { Icon, MerchantLogo, Text } from '@mxenabled/mxui'\n\nimport { ListItemWrapper, useGlobalCopyStore, useTransactionStore } from '../../../../common'\nimport { Transaction, TransactionType } from '../../../../core'\n\nimport { postInsightOnTransaction } from '../../../../common/utils/PostMessage'\n\nimport { ON_CLICK_EVENTS } from '../../../constants/OnClickEvents'\nimport { useTransactionsUiStore } from '../../../context/hooks'\nimport { formatCurrency } from '../../../../core/utils/NumberFormatting'\n\ninterface TransactionRowProps {\n component?: React.ElementType\n onClick?: (guid: string) => void\n transaction: Transaction\n}\n\nconst TransactionRow: React.FC<TransactionRowProps> = ({ transaction, onClick, component }) => {\n const theme = useTheme()\n const isDarkMode = theme.palette.mode === 'dark'\n\n const { associatedBeats } = useTransactionStore()\n const { expandedSplits } = useTransactionsUiStore()\n const { transactions: copy } = useGlobalCopyStore()\n const { showInsights } = useTransactionsUiStore()\n\n const isCredit = transaction.transaction_type === TransactionType.CREDIT\n\n const beat = React.useMemo(() => {\n return associatedBeats.find((beat) => beat.associated_transaction_guid === transaction.guid)\n }, [associatedBeats, transaction])\n\n const getTransactionStatusIcons = (\n transaction: Transaction,\n isDarkMode: boolean,\n ): React.ReactNode[] => {\n const icons: React.ReactNode[] = []\n\n if (transaction.is_flagged) {\n icons.push(\n <Icon\n fill={true}\n key=\"flag\"\n name=\"flag\"\n size={16}\n sx={{ color: isDarkMode ? 'primary.main' : 'warning.dark' }}\n />,\n )\n }\n\n if (transaction.is_hidden) {\n icons.push(<Icon key=\"hidden\" name=\"visibility_off\" size={16} />)\n }\n\n if (transaction.has_been_split) {\n icons.push(<Icon key=\"split\" name=\"call_split\" size={16} />)\n }\n\n return icons\n }\n\n const getTransactionCategoryText = (transaction: Transaction, copy: any): string => {\n if (transaction.is_hidden) {\n return copy.is_excluded\n }\n\n if (transaction.has_been_split) {\n return copy.split_transaction_category_label\n }\n\n return transaction.category || ''\n }\n\n return (\n //TODO: implement common/components/ListItemRow.tsx\n <ListItemWrapper\n clickEventName={ON_CLICK_EVENTS.ON_TRANSACTION_LIST_ITEM_CLICK}\n {...(component && { component })}\n onClick={onClick ? () => onClick(transaction.guid) : undefined}\n sx={\n transaction.is_hidden ? { backgroundColor: 'grey.50', color: 'text.secondary' } : undefined\n }\n >\n <ListItemAvatar>\n {transaction.parent_guid && expandedSplits.includes(transaction.parent_guid) ? (\n <React.Fragment />\n ) : (\n <MerchantLogo\n categoryGuid={transaction.top_level_category_guid || ''}\n merchantGuid={transaction.merchant_guid || ''}\n />\n )}\n </ListItemAvatar>\n <ListItemText\n disableTypography={true}\n secondary={\n <Stack direction=\"row\" justifyContent=\"space-between\">\n <Stack alignItems=\"center\" direction=\"row\" gap={4}>\n {getTransactionStatusIcons(transaction, isDarkMode)}\n <Text truncate={true} variant=\"caption\">\n {getTransactionCategoryText(transaction, copy)}\n </Text>\n </Stack>\n {beat && showInsights && (\n <Text\n bold={true}\n color=\"action.active\"\n onClick={(e) => {\n e.stopPropagation()\n e.preventDefault()\n\n postInsightOnTransaction(beat.guid)\n }}\n truncate={true}\n variant=\"caption\"\n >\n {beat.short_title}\n </Text>\n )}\n </Stack>\n }\n >\n <Stack direction=\"row\" justifyContent=\"space-between\" sx={{ gap: 8 }}>\n <Text bold={true} truncate={true} variant=\"body1\">\n {transaction.payee || transaction.description || transaction.feed_description}\n </Text>\n <Text\n bold={true}\n color={isCredit ? 'success.main' : 'text.primary'}\n sx={{ flexShrink: 0 }}\n variant=\"body1\"\n >\n {isCredit ? '+' : ''}\n {formatCurrency(transaction.amount, '0,0.00')}\n </Text>\n </Stack>\n </ListItemText>\n </ListItemWrapper>\n )\n}\n\nexport default observer(TransactionRow)\n","import React, { PropsWithChildren } from 'react'\n\nimport Box from '@mui/material/Box'\n\nimport { Text } from '@mxenabled/mxui'\n\ninterface SubheaderRowProps {\n bgcolor?: string\n}\n\nconst SubheaderRow: React.FC<PropsWithChildren<SubheaderRowProps>> = ({\n bgcolor = 'background.default',\n children,\n}) => (\n <Box display=\"inline-block\" sx={{ bgcolor, py: 6, width: '100%' }}>\n <Text bold={true} sx={{ pl: 24 }} variant=\"caption\">\n {children}\n </Text>\n </Box>\n)\n\nexport default SubheaderRow\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { Receipt as ReceiptOutlinedIcon } from '@mxenabled/mx-icons'\n\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../../../common'\n\ninterface ZeroStateProps {\n showIcon?: boolean\n showSubtitle?: boolean\n}\n\nconst ZeroState: React.FC<ZeroStateProps> = ({ showIcon = true, showSubtitle = true }) => {\n const { transactions: copy } = useGlobalCopyStore()\n\n return (\n <Stack alignItems=\"center\" gap={12} height=\"auto\" mb={24} mt={24}>\n {showIcon && <ReceiptOutlinedIcon color=\"action\" sx={{ fontSize: 32 }} />}\n <Text bold={true} color=\"text.secondary\" variant=\"body2\">\n {copy.zero_state_no_transactions}\n </Text>\n {showSubtitle && (\n <Text color=\"text.secondary\" variant=\"caption\">\n {copy.zero_state_there_are_no_transactions}\n </Text>\n )}\n </Stack>\n )\n}\n\nexport default observer(ZeroState)\n","import { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { isSameDay } from 'date-fns/isSameDay'\n\nimport { DATE_FORMATS_INTL, formatDate } from '../../core/constants'\nimport { type DataSeries, type Transaction } from '../../core'\nimport { formatCurrency } from '../../core/utils/NumberFormatting'\n\nexport interface ChartDataProps {\n guid?: string\n label?: string\n localized_label?: string\n amount: number\n date: string\n}\n\nexport const sortByDate = (a: Transaction, b: Transaction) => {\n return b.date - a.date\n}\n\nexport const shouldShowDate = (index: number, transactions: Transaction[]) => {\n const currentDate = fromUnixTime(transactions[index].date)\n const previousDate = fromUnixTime(transactions[index - 1]?.date)\n\n return !isSameDay(currentDate, previousDate)\n}\n\nexport const hasInsetBorder = (index: number, transactions: Transaction[]) => {\n const currentDate = fromUnixTime(transactions[index].date)\n const nextDate = fromUnixTime(transactions[index + 1]?.date)\n\n return isSameDay(currentDate, nextDate)\n}\n\nexport const buildDataSeries = (data?: DataSeries) => {\n if (!data?.data) return []\n\n return data.data.map((row) => {\n return Object.fromEntries((data.names || []).map((name, index) => [name, row[index]]))\n })\n}\n\nexport const buildChartData = (dataSeries: ChartDataProps[], merchantName = '') => {\n const data = dataSeries.map((total) => {\n const label = formatDate(total.date, DATE_FORMATS_INTL.MONTH_SHORT)\n\n return {\n ariaLabel: `\n ${label},\n ${formatCurrency(total.amount, '0.00')},\n ${merchantName}`,\n label,\n value: total.amount,\n formattedAmount: formatCurrency(total.amount, '0,0'),\n }\n })\n\n return data\n}\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { useVirtualizer } from '@tanstack/react-virtual'\n\nimport Box from '@mui/material/Box'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\n\nimport { ANALYTICS_EVENTS, Loader, useEvent } from '../../../common'\nimport { type Transaction } from '../../../core'\n\nimport { useTransactionsUiStore } from '../../context/hooks'\nimport { useTransactionStore } from '../../../common'\n\nimport SubheaderRow from '../../../common/components/SubheaderRow'\nimport TransactionRow from './transactionlist/TransactionRow'\nimport ZeroState from './transactionlist/ZeroState'\n\nimport { hasInsetBorder, shouldShowDate } from '../../utils/Transactions'\nimport { fromUnixToDayOfWeekAndDate } from '../../../core/utils/DateUtil'\n\nconst ROW_HEIGHT = 65\nconst DATE_ROW_HEIGHT = 32\n\nexport interface TransactionListProps {\n bgcolor?: string\n filter?: (t: Transaction) => boolean\n height?: number | string\n loader?: React.JSX.Element\n onClick?: (guid: string) => void\n showInsights?: boolean\n showLoader?: boolean\n transaction?: Transaction[]\n width?: number | string\n zeroState?: React.JSX.Element\n}\n\nconst TransactionList: React.FC<TransactionListProps> = ({\n bgcolor,\n filter,\n height = 'calc(100dvh - 36px)',\n loader = <Loader label=\"Loading\" size={40} />,\n onClick,\n showInsights = false,\n showLoader = false,\n transaction,\n width = '100%',\n zeroState = <ZeroState />,\n}) => {\n const { isLoading, sortedTransactions: allTransactions } = useTransactionStore()\n const transactions = React.useMemo(() => {\n const updatedTransactions = filter ? allTransactions.filter(filter) : allTransactions\n return transaction ?? updatedTransactions\n }, [allTransactions, transaction])\n\n const { clearExpandedSplits, setShowInsights, toggleSplit } = useTransactionsUiStore()\n const { onEvent } = useEvent()\n\n const handleClick = (guid: string) => {\n const transaction = transactions.find((t) => t.guid === guid)\n\n if (transaction?.has_been_split) {\n toggleSplit(transaction.guid)\n return\n }\n\n onEvent(ANALYTICS_EVENTS.ACCOUNT_DETAILS_CLICK_TRANSACTION, {\n account_guid: transaction?.account_guid,\n transaction_guid: guid,\n })\n onClick?.(guid)\n }\n\n const parentRef = React.useRef<HTMLDivElement>(null)\n const rowVirtualizer = useVirtualizer({\n count: transactions.length,\n getScrollElement: () => parentRef.current,\n estimateSize: (i) => ROW_HEIGHT + (shouldShowDate(i, transactions) ? DATE_ROW_HEIGHT : 0),\n overscan: 5,\n })\n\n React.useEffect(() => rowVirtualizer.measure(), [transactions])\n React.useEffect(() => setShowInsights(showInsights), [showInsights])\n\n React.useEffect(() => {\n return () => clearExpandedSplits()\n }, [])\n\n return (\n <List component=\"div\" role=\"list\" sx={{ width: width }}>\n <Box height={height} overflow=\"auto\" ref={parentRef} role=\"presentation\" width={width}>\n <Box\n height={\n // set the height to auto when there are no transactions so the zero state isn't set to 0\n rowVirtualizer.getVirtualItems().length === 0 ? 'auto' : rowVirtualizer.getTotalSize()\n }\n position=\"relative\"\n role=\"presentation\"\n width=\"100%\"\n >\n {(isLoading || showLoader) && loader}\n {!isLoading && !showLoader && rowVirtualizer.getVirtualItems().length === 0 && zeroState}\n {!isLoading &&\n !showLoader &&\n rowVirtualizer.getVirtualItems().length > 0 &&\n rowVirtualizer.getVirtualItems().map((row) => {\n const transaction = transactions[row.index]\n const showDate = shouldShowDate(row.index, transactions)\n const isInset = hasInsetBorder(row.index, transactions)\n const rowHeight = ROW_HEIGHT + (showDate ? DATE_ROW_HEIGHT : 0)\n\n return (\n <Box\n key={transaction.guid}\n role=\"listitem\"\n sx={{\n height: rowHeight,\n position: 'absolute',\n transform: `translateY(${row.start}px)`,\n width: '100%',\n bgcolor: 'background.paper',\n }}\n >\n {showDate && (\n <SubheaderRow bgcolor={bgcolor}>\n {fromUnixToDayOfWeekAndDate(transaction.date)}\n </SubheaderRow>\n )}\n <TransactionRow\n component=\"div\"\n {...(onClick && { onClick: handleClick })}\n transaction={transaction}\n />\n <Divider sx={{ ml: isInset ? 68 : 0 }} />\n </Box>\n )\n })}\n </Box>\n </Box>\n </List>\n )\n}\n\nexport default observer(TransactionList)\n","import { Icon, P } from '@mxenabled/mxui'\n\nimport IconButton from '@mui/material/IconButton'\nimport Stack from '@mui/material/Stack'\nimport { type SxProps } from '@mui/material/styles'\n\nexport interface TipSectionProps {\n message: React.ReactNode\n tipAriaLabel?: string\n onDismiss?: () => void\n onAction?: () => void\n sx?: SxProps\n}\n\nexport const TipSection = ({ message, tipAriaLabel, onDismiss, onAction, sx }: TipSectionProps) => {\n // Priority: action > dismiss > nothing\n const buttonHandler = onAction || onDismiss\n const iconName = onAction ? 'chevron_right' : 'close'\n\n return (\n <Stack\n sx={{\n backgroundColor: 'primary.lighter',\n borderRadius: '8px',\n mb: 24,\n mt: 12,\n p: 12,\n mx: 24,\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n flexDirection: 'row',\n gap: 8,\n ...sx,\n }}\n >\n <Stack sx={{ flexDirection: 'row', gap: 4 }}>\n <Icon color=\"info\" fill={true} name=\"lightbulb\" size={24} />\n <P color=\"primary.dark\" fontWeight={400} noWrap={false} variant=\"subtitle2\">\n {message}\n </P>\n </Stack>\n\n {buttonHandler && (\n <IconButton\n aria-label={tipAriaLabel}\n onClick={buttonHandler}\n size=\"small\"\n sx={{ minHeight: 0, minWidth: 0, p: 0 }}\n >\n <Icon color=\"primary\" fill={true} name={iconName} size={20} />\n </IconButton>\n )}\n </Stack>\n )\n}\n","import React, { useMemo, useState } from 'react'\n\nimport { H3, Text } from '@mxenabled/mxui'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport Tab from '@mui/material/Tab'\nimport Tabs from '@mui/material/Tabs'\n\nimport { TipSection } from './TipSection'\nimport type { TipSectionProps } from './TipSection'\n\ninterface SubHeading {\n category_guid: string\n description: string\n merchant_guid: string\n}\n\nexport interface DrawerBeat {\n heading?: string\n subHeading?: SubHeading\n}\n\ninterface TabData {\n ariaLabel?: string\n formattedAmount: string\n label: string\n value: number\n}\n\nexport interface ChartDrawerTemplateProps {\n ariaLabel: string\n beat: DrawerBeat\n chart: (selectedIndex: number, onBarClick: (index: number) => void) => React.ReactNode\n children?: (selectedIndex: number) => React.ReactNode\n data: TabData[]\n defaultSelectedIndex?: number\n icon?: React.ReactNode\n onTabChange?: (index: number) => void\n tipSection?: TipSectionProps\n}\n\nexport const ChartDrawerTemplate = ({\n ariaLabel,\n beat,\n chart,\n children,\n data,\n defaultSelectedIndex,\n icon,\n onTabChange,\n tipSection,\n}: ChartDrawerTemplateProps) => {\n const { heading, subHeading } = beat\n\n const initialIndex = useMemo(\n () => defaultSelectedIndex ?? (data.length ? data.length - 1 : 0),\n [defaultSelectedIndex, data.length],\n )\n\n const [tabValue, setTabValue] = useState(initialIndex)\n\n const handleTabChange = (_event: React.SyntheticEvent, newValue: number) => {\n onTabChange?.(newValue)\n setTabValue(newValue)\n }\n\n const handleBarClick = (dataIndex: number) => {\n setTabValue(dataIndex)\n }\n\n return (\n <Box sx={{ bgcolor: 'background.paper', width: '100%' }}>\n <Tabs aria-label={ariaLabel} onChange={handleTabChange} value={tabValue} variant=\"fullWidth\">\n {data.map((item, index) => (\n <Tab\n id={`transaction-details-tab-${index}`}\n key={`${item.label}-${index}`}\n label={item.label}\n sx={{ minWidth: 'auto', px: 0 }}\n />\n ))}\n </Tabs>\n\n <Stack sx={{ pt: 16, px: 24 }}>\n {(heading || subHeading) && (\n <Stack sx={{ gap: 4 }}>\n {heading && <H3>{heading}</H3>}\n\n {subHeading && (\n <Stack sx={{ alignItems: 'center', flexDirection: 'row', gap: 8 }}>\n {icon}\n <Text textTransform=\"uppercase\" variant=\"body2\">\n {subHeading.description}\n </Text>\n </Stack>\n )}\n </Stack>\n )}\n </Stack>\n\n {chart?.(tabValue, handleBarClick)}\n\n {tipSection && <TipSection {...tipSection} />}\n\n {children?.(tabValue)}\n </Box>\n )\n}\n","import React, { useEffect, useState } from 'react'\n\nexport const useContainerDimensions = (containerRef: React.RefObject<HTMLDivElement | null>) => {\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 })\n\n useEffect(() => {\n const updateDimensions = () => {\n if (containerRef.current) {\n const { offsetWidth, offsetHeight } = containerRef.current\n setDimensions({ width: offsetWidth, height: offsetHeight })\n }\n }\n\n updateDimensions()\n window.addEventListener('resize', updateDimensions)\n\n return () => {\n window.removeEventListener('resize', updateDimensions)\n }\n }, [containerRef])\n\n return dimensions\n}\n","import { Text } from '@mxenabled/mxui'\n\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\nimport { type SxProps } from '@mui/material/styles'\n\nexport interface LegendV2Props {\n color: string\n legendStyle?: SxProps\n monthlyAmount?: string\n monthlyAmountLabel?: string\n trendAmount?: string\n trendAmountLabel?: string\n}\n\nexport const LegendV2 = ({\n color,\n legendStyle = {},\n monthlyAmount,\n monthlyAmountLabel,\n trendAmount,\n trendAmountLabel,\n}: LegendV2Props) => {\n const theme = useTheme()\n\n return (\n <Stack\n sx={{\n alignItems: 'center',\n flexDirection: 'row',\n gap: 24,\n justifyContent: 'flex-start',\n py: 4,\n width: '100%',\n ...legendStyle,\n }}\n >\n {monthlyAmountLabel && (\n <Stack sx={{ alignItems: 'center', flexDirection: 'row', gap: 8 }}>\n <svg\n aria-hidden=\"true\"\n aria-labelledby=\"chartLegendLabel\"\n fill=\"none\"\n height=\"12\"\n role=\"figure\"\n width=\"12\"\n >\n <rect fill={color} height=\"12\" rx=\"2\" width=\"12\" />\n </svg>\n <Text id=\"chartLegendLabel\" variant=\"caption\">\n {monthlyAmountLabel}: {monthlyAmount}\n </Text>\n </Stack>\n )}\n\n {trendAmountLabel && (\n <Stack sx={{ alignItems: 'center', flexDirection: 'row', gap: 8 }}>\n <svg\n aria-hidden=\"true\"\n aria-labelledby=\"chartLegendLabel\"\n fill=\"none\"\n height=\"12\"\n role=\"figure\"\n width=\"12\"\n >\n <rect fill={theme.palette.chart.chart7} height=\"12\" rx=\"2\" width=\"12\" />\n </svg>\n <Text id=\"chartLegendLabel\" variant=\"caption\">\n {trendAmountLabel}: {trendAmount}\n </Text>\n </Stack>\n )}\n </Stack>\n )\n}\n","import React from 'react'\n\nimport { useTheme } from '@mui/material/styles'\n\nimport type { BarDataProps } from '../../../../types/Charts/BarChart'\n\ninterface BarStyleProps extends React.CSSProperties {\n x?: number\n y?: number\n width?: number\n height?: number\n}\n\nexport interface CustomBarPlotV2Props {\n colorRange: string[]\n data: BarDataProps[]\n dataIndex: number\n removeSelectedTabColorChange?: boolean\n selectedTabIndex: number\n style: BarStyleProps\n}\n\nconst createRoundedRectPath = (w: number, h: number) => {\n if (w <= 0 || h <= 0) return ''\n\n const r = Math.min(4, w / 2, h / 2)\n return `M${r},0 L${w - r},0 Q${w},0 ${w},${r} L${w},${h} L0,${h} L0,${r} Q0,0 ${r},0 Z`\n}\n\nexport const CustomBarPlotV2 = ({\n colorRange,\n data,\n dataIndex,\n removeSelectedTabColorChange,\n selectedTabIndex,\n style,\n ...restProps\n}: CustomBarPlotV2Props) => {\n const theme = useTheme()\n\n const { ariaLabel, formattedAmount } = data[dataIndex]\n\n const shouldAmountAmountTextBeBold = selectedTabIndex === dataIndex ? 'bold' : 400\n\n const x = style.x ?? 0\n const y = style.y ?? 0\n const width = style.width ?? 0\n const height = style.height ?? 0\n\n return (\n <g aria-label={ariaLabel}>\n <path\n {...restProps}\n d={createRoundedRectPath(width, height)}\n fill={colorRange[dataIndex]}\n transform={`translate(${x}, ${y})`}\n />\n <text\n fill={theme.palette.text.primary}\n fontSize={11}\n fontWeight={removeSelectedTabColorChange ? 'bold' : shouldAmountAmountTextBeBold}\n textAnchor=\"middle\"\n x={x + width / 2}\n y={y - 8}\n >\n {formattedAmount}\n </text>\n </g>\n )\n}\n","import React from 'react'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport { type Theme, useTheme } from '@mui/material/styles'\nimport {\n BarPlot,\n type BarSeriesType,\n ChartContainer as ResponsiveChartContainer,\n ChartsReferenceLine,\n ChartsXAxis,\n} from '@mui/x-charts'\nimport { useContainerDimensions } from '../../../../hooks/useContainerDimensions'\n\nimport type { BarChartV2Props } from '../../../../types/Charts/BarChart'\n\nimport { LegendV2 } from './ChartLegendV2'\nimport { CustomBarPlotV2 } from './CustomBarPlotV2'\n\nexport const BarChartV2 = ({\n amounts,\n color,\n data,\n heightOverride,\n margin = {\n bottom: 30,\n left: 40,\n right: 40,\n top: 20,\n },\n onBarClick,\n legendPosition = 'bottom',\n monthlyAmountLabel,\n removeSelectedTabColorChange,\n selectedTabIndex,\n trendAmountLabel,\n}: BarChartV2Props) => {\n const containerRef = React.useRef<HTMLDivElement>(null)\n const { height, width } = useContainerDimensions(containerRef)\n const theme = useTheme()\n\n const chartData = React.useMemo(() => {\n const values = data.map(({ value }) => value)\n const minValue = Math.min(...values)\n const maxValue = Math.max(...values)\n\n return {\n series: [\n {\n data: values,\n type: 'bar',\n },\n ] as BarSeriesType[],\n xAxis: [\n {\n data: data.map(({ label }) => label),\n scaleType: 'band' as const,\n categoryGapRatio: 0.45,\n },\n ],\n yAxis: [\n {\n scaleType: 'linear' as const,\n min: minValue < 0 ? minValue * 1.2 : 0,\n max: maxValue > 0 ? maxValue : 0,\n },\n ],\n }\n }, [data])\n\n const colorRange = React.useMemo(() => {\n const defaultColor = `${color}80`\n if (removeSelectedTabColorChange) return data.map(() => color)\n\n if (selectedTabIndex == null) {\n return [...new Array(data.length - 1).fill(defaultColor), color]\n }\n return data.map((_, index) => (index === selectedTabIndex ? color : defaultColor))\n }, [color, data, selectedTabIndex])\n\n const selectedData = React.useMemo(\n () => data[selectedTabIndex ?? data.length - 1],\n [data, selectedTabIndex],\n )\n\n const lowestValue = data.reduce((min, item) => Math.min(min, item.value), Infinity)\n const isNegative = lowestValue < 0\n\n const legendComponent = (\n <LegendV2\n color={color}\n legendStyle={{ pl: margin.left }}\n monthlyAmount={selectedData.formattedAmount}\n monthlyAmountLabel={monthlyAmountLabel}\n trendAmount={amounts?.formattedAverage}\n trendAmountLabel={trendAmountLabel}\n />\n )\n\n const shouldShowLegend = monthlyAmountLabel || trendAmountLabel\n\n const handleBarClick = (\n _: React.MouseEvent<SVGElement, MouseEvent>,\n { dataIndex }: { dataIndex: number },\n ) => onBarClick?.(dataIndex)\n\n return (\n <Stack sx={{ alignItems: 'center', width: '100%' }}>\n {shouldShowLegend && legendPosition === 'top' && legendComponent}\n <Box\n ref={containerRef}\n sx={{\n height: heightOverride ? heightOverride : 122,\n mb: legendPosition === 'top' ? 0 : 4,\n mt: legendPosition === 'top' ? 4 : 0,\n touchAction: 'pan-y',\n width: '100%',\n '& svg': {\n touchAction: 'pan-y',\n userSelect: 'none',\n },\n '& .recharts-wrapper': {\n touchAction: 'pan-y',\n },\n }}\n >\n <ResponsiveChartContainer\n height={height}\n margin={{\n bottom: margin.bottom,\n left: margin.left,\n right: margin.right,\n top: margin.top || 45,\n }}\n series={chartData.series}\n width={width}\n xAxis={chartData.xAxis}\n yAxis={[{ width: 0 }]}\n >\n {amounts?.average && (\n <ChartsReferenceLine\n labelAlign=\"middle\"\n lineStyle={{\n stroke: theme.palette.chart.chart7,\n strokeDasharray: '4',\n strokeLinecap: 'round',\n strokeWidth: 1,\n }}\n y={amounts?.average}\n />\n )}\n\n {isNegative && (\n <ChartsReferenceLine\n labelAlign=\"middle\"\n lineStyle={{\n stroke: theme.palette.chart.chart7,\n }}\n y={0}\n />\n )}\n\n <ChartsXAxis\n slots={{\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n axisTickLabel: ({ text, ownerState: _, ...restProps }) => {\n const label = data[selectedTabIndex ?? data.length - 1]?.label\n return (\n <text\n {...restProps}\n style={\n {\n ...restProps.style,\n fontWeight: !removeSelectedTabColorChange && label === text ? 'bold' : 400,\n } as React.CSSProperties\n }\n >\n {text}\n </text>\n )\n },\n }}\n sx={(theme) => ({\n '& .MuiChartsAxis-line': {\n stroke: !isNegative ? (theme as Theme).palette.text?.primary : 'none',\n },\n '& .MuiChartsAxis-tickContainer:first-of-type .MuiChartsAxis-tick': {\n display: 'none',\n },\n '& .MuiChartsAxis-tickLabel': {\n transform: isNegative ? 'translateY(15px)' : {},\n },\n })}\n tickLabelStyle={{\n fontSize: 11,\n }}\n />\n <BarPlot\n onItemClick={handleBarClick}\n slots={{\n bar: (props) => {\n const { ownerState, ...defaultProps } = props\n return (\n <CustomBarPlotV2\n {...defaultProps}\n colorRange={colorRange}\n data={data}\n dataIndex={ownerState.dataIndex}\n removeSelectedTabColorChange={removeSelectedTabColorChange}\n selectedTabIndex={selectedTabIndex ?? data.length - 1}\n style={{\n height: props.height,\n x: props.x,\n y: props.y,\n width: props.width,\n }}\n />\n )\n },\n }}\n />\n </ResponsiveChartContainer>\n </Box>\n {shouldShowLegend && legendPosition === 'bottom' && legendComponent}\n </Stack>\n )\n}\n","import React from 'react'\n\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport {\n Drawer,\n Loader,\n useGlobalCopyStore,\n useGlobalUiStore,\n useTransactionStore,\n} from '../../../common'\nimport { exportTransactionsToCSV } from '../../../core/utils/TransactionUtils'\nimport { TransactionList } from '../../../transactions'\n\nimport type { BarDataProps } from '../../types/Charts/BarChart'\n\nimport { ChartDrawerTemplate, type DrawerBeat } from './ChartDrawerTemplate/ChartDrawerTemplate'\nimport type { TipSectionProps } from './ChartDrawerTemplate/TipSection'\nimport { BarChartV2 } from './Charts'\n\ninterface ChartWithTransactionDrillDownProps {\n ariaLabel: string\n barChartProps: React.ComponentProps<typeof BarChartV2>\n beat: DrawerBeat\n data: BarDataProps[]\n defaultSelectedIndex?: number\n icon?: React.ReactNode\n isOpen?: boolean\n onClose: () => void\n onTabChange?: (index: number) => void\n tipSection?: TipSectionProps\n title: string\n transactionListProps?: React.ComponentProps<typeof TransactionList>\n}\n\nconst ChartWithTransactionDrillDown = ({\n ariaLabel,\n barChartProps,\n beat,\n data,\n defaultSelectedIndex = 0,\n icon,\n isOpen = false,\n onClose,\n onTabChange,\n tipSection,\n title,\n transactionListProps = {},\n}: ChartWithTransactionDrillDownProps) => {\n const { common: commonCopy, transactions: transactionsCopy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n const { sortedTransactionsWithSplits, tags } = useTransactionStore()\n\n if (!isCopyLoaded) return <Loader />\n\n return (\n <Drawer ariaLabelClose={commonCopy.close_aria} isOpen={isOpen} onClose={onClose} title={title}>\n <ChartDrawerTemplate\n ariaLabel={ariaLabel}\n beat={beat}\n chart={(selectedTab, onBarClick) => (\n <Box sx={{ pt: 16 }}>\n <BarChartV2\n {...barChartProps}\n onBarClick={(i) => {\n onBarClick(i)\n barChartProps.onBarClick?.(i)\n }}\n selectedTabIndex={selectedTab}\n />\n </Box>\n )}\n data={data}\n defaultSelectedIndex={defaultSelectedIndex}\n icon={icon}\n onTabChange={onTabChange}\n tipSection={tipSection}\n >\n {/* Tab selection will be added here later */}\n {() => {\n return (\n <React.Fragment>\n <Stack\n sx={{\n alignItems: 'center',\n borderBottomColor: 'divider',\n borderBottomStyle: 'solid',\n borderBottomWidth: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n pb: 4,\n pt: 16,\n px: 24,\n }}\n >\n <Text bold={true} variant=\"body1\">\n {transactionsCopy.transactions_title}\n </Text>\n {(transactionListProps?.transaction || sortedTransactionsWithSplits.length > 0) && (\n <Button\n onClick={() => {\n exportTransactionsToCSV(\n transactionListProps?.transaction || sortedTransactionsWithSplits,\n tags,\n )\n }}\n startIcon={<Icon name=\"ios_share\" />}\n sx={{ height: 28 }}\n >\n <Text bold={true} variant=\"body2\">\n {transactionsCopy.export_csv_btn}\n </Text>\n </Button>\n )}\n </Stack>\n <TransactionList {...transactionListProps} />\n </React.Fragment>\n )\n }}\n </ChartDrawerTemplate>\n </Drawer>\n )\n}\n\nexport default ChartWithTransactionDrillDown\n","import { H2, P, Text } from '@mxenabled/mxui'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport type { SxProps } from '@mui/material/styles'\n\ninterface StatusIndicatorProps {\n amount: string | React.ReactNode\n borderRadius?: string\n completeColor?: string\n count?: string\n icon: React.ReactNode\n label: string | React.ReactNode\n leftLabel?: string\n percentComplete?: number\n rightLabel?: string\n sx?: SxProps\n}\n\nconst StatusIndicator = ({\n amount,\n borderRadius = '2px',\n count,\n completeColor = 'success.main',\n icon,\n label,\n leftLabel,\n percentComplete = 0,\n rightLabel,\n sx,\n}: StatusIndicatorProps) => {\n return (\n <Stack className=\"details-container\" sx={{ p: 24, width: '100%', gap: 16, ...sx }}>\n <Stack sx={{ alignItems: 'center', flexDirection: 'row', gap: 12 }}>\n <Box>{icon}</Box>\n <Stack>\n {typeof label === 'string' ? (\n <P dangerouslySetInnerHTML={{ __html: label }} variant={'body2'} />\n ) : (\n label\n )}\n {typeof amount === 'string' ? <H2>{amount}</H2> : amount}\n </Stack>\n </Stack>\n <Stack sx={{ gap: 4 }}>\n <Stack\n sx={{\n bgcolor: 'divider',\n borderRadius,\n flexDirection: 'row',\n height: count ? 20 : 16,\n width: '100%',\n }}\n >\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n py: 2,\n px: 12,\n bgcolor: completeColor,\n borderRadius,\n height: count ? 20 : 16,\n width: `${percentComplete}%`,\n }}\n >\n <Text sx={{ color: 'primary.dark' }} variant=\"caption\">\n {count}\n </Text>\n </Box>\n </Stack>\n {!count && (\n <Stack sx={{ flexDirection: 'row', justifyContent: 'space-between' }}>\n <Text variant=\"body2\">{leftLabel}</Text>\n <Text variant=\"body2\">{rightLabel}</Text>\n </Stack>\n )}\n </Stack>\n </Stack>\n )\n}\n\nexport default StatusIndicator\n","import { P, Text } from '@mxenabled/mxui'\n\nimport Button from '@mui/material/Button'\nimport Card from '@mui/material/Card'\nimport Stack from '@mui/material/Stack'\n\ninterface EmbeddedCardProps {\n title: string\n description: string\n callToAction: string\n instanceSlot?: React.ReactNode\n onCtaClick?: () => void\n}\n\nexport const EmbeddedCard = ({\n title,\n description,\n callToAction,\n instanceSlot = undefined,\n onCtaClick = () => {},\n}: EmbeddedCardProps) => {\n return (\n <Card sx={{ pt: 8, pr: 16, pb: 12, pl: 8, borderRadius: '8px' }}>\n <Stack\n sx={{\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n pt: 4,\n pl: 8,\n }}\n >\n <Text bold={true} variant=\"body1\">\n {title}\n </Text>\n </Stack>\n\n <Stack\n sx={{\n gap: 16,\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'space-between',\n }}\n >\n <Stack>\n <Stack sx={{ pt: 2, pl: 8, pb: 8 }}>\n <P sx={{ fontWeight: 400 }} variant=\"subtitle2\">\n {description}\n </P>\n </Stack>\n <Stack sx={{ alignItems: 'flex-start' }}>\n <Button\n onClick={onCtaClick}\n sx={{\n p: 0,\n height: 24,\n px: 8,\n py: 8,\n fontWeight: 600,\n fontSize: 13,\n lineHeight: '16px',\n }}\n variant=\"text\"\n >\n {callToAction}\n </Button>\n </Stack>\n </Stack>\n {instanceSlot}\n </Stack>\n </Card>\n )\n}\n"],"names":["useTransactionsUiStore","React","GlobalDataContext","useTransactionStore","ON_CLICK_EVENTS","getReferrer","postMessageToParent","message","postUrl","otherWindow","postInsightOnTransaction","beatGuid","postClientConfiguredCta","template","TransactionRow","transaction","onClick","component","isDarkMode","useTheme","associatedBeats","expandedSplits","copy","useGlobalCopyStore","showInsights","isCredit","TransactionType","beat","getTransactionStatusIcons","icons","jsx","Icon","getTransactionCategoryText","jsxs","ListItemWrapper","ListItemAvatar","MerchantLogo","ListItemText","Stack","Text","e","formatCurrency","TransactionRow$1","observer","SubheaderRow","bgcolor","children","Box","ZeroState","showIcon","showSubtitle","ReceiptOutlinedIcon","ZeroState$1","shouldShowDate","index","transactions","currentDate","fromUnixTime","previousDate","isSameDay","hasInsetBorder","nextDate","buildDataSeries","data","row","name","buildChartData","dataSeries","merchantName","total","label","formatDate","DATE_FORMATS_INTL","ROW_HEIGHT","DATE_ROW_HEIGHT","TransactionList","filter","height","loader","Loader","showLoader","width","zeroState","isLoading","allTransactions","updatedTransactions","clearExpandedSplits","setShowInsights","toggleSplit","onEvent","useEvent","handleClick","guid","t","ANALYTICS_EVENTS","parentRef","rowVirtualizer","useVirtualizer","i","List","showDate","isInset","rowHeight","fromUnixToDayOfWeekAndDate","Divider","TransactionList$1","TipSection","tipAriaLabel","onDismiss","onAction","sx","buttonHandler","iconName","P","IconButton","ChartDrawerTemplate","ariaLabel","chart","defaultSelectedIndex","icon","onTabChange","tipSection","heading","subHeading","initialIndex","useMemo","tabValue","setTabValue","useState","handleTabChange","_event","newValue","handleBarClick","dataIndex","Tabs","item","Tab","H3","useContainerDimensions","containerRef","dimensions","setDimensions","useEffect","updateDimensions","offsetWidth","offsetHeight","LegendV2","color","legendStyle","monthlyAmount","monthlyAmountLabel","trendAmount","trendAmountLabel","theme","createRoundedRectPath","w","h","r","CustomBarPlotV2","colorRange","removeSelectedTabColorChange","selectedTabIndex","style","restProps","formattedAmount","shouldAmountAmountTextBeBold","x","y","BarChartV2","amounts","heightOverride","margin","onBarClick","legendPosition","chartData","values","value","minValue","maxValue","defaultColor","_","selectedData","isNegative","min","legendComponent","shouldShowLegend","ResponsiveChartContainer","ChartsReferenceLine","ChartsXAxis","text","BarPlot","props","ownerState","defaultProps","ChartWithTransactionDrillDown","barChartProps","isOpen","onClose","title","transactionListProps","commonCopy","transactionsCopy","isCopyLoaded","useGlobalUiStore","sortedTransactionsWithSplits","tags","Drawer","selectedTab","Button","exportTransactionsToCSV","StatusIndicator","amount","borderRadius","count","completeColor","leftLabel","percentComplete","rightLabel","H2","EmbeddedCard","description","callToAction","instanceSlot","onCtaClick","Card"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState-CJUDc3kD.mjs","sources":["../src/common/components/EmptyState.tsx"],"sourcesContent":["import React from 'react'\n\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport { type SxProps } from '@mui/material/styles'\n\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport { Text } from '@mxenabled/mxui'\n\ninterface EmptyWidgetProps {\n icon: string\n iconColor?: string\n header: string\n onClick?: (buttonType: string) => void\n primaryButton?: string\n primaryButtonStartIcon?: string\n secondaryButton?: string\n subText: string\n sx?: SxProps\n}\n\nexport const EmptyState: React.FC<EmptyWidgetProps> = ({\n icon,\n iconColor,\n header,\n onClick,\n primaryButton,\n primaryButtonStartIcon,\n secondaryButton,\n subText,\n sx,\n}) => {\n return (\n <Stack\n sx={{\n alignItems: 'center',\n alignSelf: 'center',\n maxWidth: '100%',\n p: '12px 16px 24px 16px',\n ...sx,\n }}\n >\n <Icon name={icon} size={48} sx={{ color: iconColor }} />\n <Text\n className=\"empty-state-header\"\n color=\"text.primary\"\n sx={{ fontWeight: 600, mt: 16, textAlign: 'center' }}\n variant=\"body1\"\n >\n {header}\n </Text>\n <Text\n className=\"empty-state-subtext\"\n color=\"text.secondary\"\n sx={{ fontWeight: 400, textAlign: 'center', width: 'calc(100% - 8px)' }}\n variant=\"subtitle2\"\n >\n {subText}\n </Text>\n\n {(primaryButton || secondaryButton) && (\n <Stack\n className=\"buttons-footer\"\n sx={{\n gap: 12,\n mt: 32,\n }}\n >\n {primaryButton && (\n <Button\n onClick={() => onClick?.('primary')}\n startIcon={\n primaryButtonStartIcon ? <Icon name={primaryButtonStartIcon} /> : undefined\n }\n sx={{ textWrap: 'nowrap' }}\n variant=\"contained\"\n >\n {primaryButton}\n </Button>\n )}\n {secondaryButton && (\n <Button\n onClick={() => onClick?.('secondary')}\n sx={{ textWrap: 'nowrap' }}\n variant=\"text\"\n >\n {secondaryButton}\n </Button>\n )}\n </Stack>\n )}\n </Stack>\n )\n}\n"],"names":["EmptyState","icon","iconColor","header","onClick","primaryButton","primaryButtonStartIcon","secondaryButton","subText","sx","jsxs","Stack","jsx","Icon","Text","Button"],"mappings":";;;;;AAsBO,MAAMA,IAAyC,CAAC;AAAA,EACrD,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,IAAAC;AACF,MAEI,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,IAAI;AAAA,MACF,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,UAAU;AAAA,MACV,GAAG;AAAA,MACH,GAAGF;AAAA,IAAA;AAAA,IAGL,UAAA;AAAA,MAAA,gBAAAG,EAACC,GAAA,EAAK,MAAMZ,GAAM,MAAM,IAAI,IAAI,EAAE,OAAOC,EAAA,EAAU,CAAG;AAAA,MACtD,gBAAAU;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAM;AAAA,UACN,IAAI,EAAE,YAAY,KAAK,IAAI,IAAI,WAAW,SAAA;AAAA,UAC1C,SAAQ;AAAA,UAEP,UAAAX;AAAA,QAAA;AAAA,MAAA;AAAA,MAEH,gBAAAS;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAM;AAAA,UACN,IAAI,EAAE,YAAY,KAAK,WAAW,UAAU,OAAO,mBAAA;AAAA,UACnD,SAAQ;AAAA,UAEP,UAAAN;AAAA,QAAA;AAAA,MAAA;AAAA,OAGDH,KAAiBE,MACjB,gBAAAG;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAI;AAAA,YACF,KAAK;AAAA,YACL,IAAI;AAAA,UAAA;AAAA,UAGL,UAAA;AAAA,YAAAN,KACC,gBAAAO;AAAA,cAACG;AAAA,cAAA;AAAA,gBACC,SAAS,MAAMX,IAAU,SAAS;AAAA,gBAClC,WACEE,IAAyB,gBAAAM,EAACC,GAAA,EAAK,MAAMP,GAAwB,IAAK;AAAA,gBAEpE,IAAI,EAAE,UAAU,SAAA;AAAA,gBAChB,SAAQ;AAAA,gBAEP,UAAAD;AAAA,cAAA;AAAA,YAAA;AAAA,YAGJE,KACC,gBAAAK;AAAA,cAACG;AAAA,cAAA;AAAA,gBACC,SAAS,MAAMX,IAAU,WAAW;AAAA,gBACpC,IAAI,EAAE,UAAU,SAAA;AAAA,gBAChB,SAAQ;AAAA,gBAEP,UAAAG;AAAA,cAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA;"}
|
package/dist/Error-Dtw6yxkf.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Error-Dtw6yxkf.mjs","sources":["../src/common/components/Error.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { Box, Button, Stack, useTheme } from '@mui/material'\nimport { Icon, Text } from '@mxenabled/mxui'\n\nimport { GlobalDataContext } from '../context/GlobalDataProvider'\n\nexport const BlobSVG = React.forwardRef<SVGSVGElement, React.SVGProps<SVGSVGElement>>(\n (props, ref) => {\n const theme = useTheme()\n return (\n <svg\n fill=\"none\"\n height=\"60\"\n ref={ref}\n viewBox=\"0 0 72 60\"\n width=\"72\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M28.8288 1.43265C34.4433 4.02036 36.9443 13.1615 44.4378 18.7551C53.8387 25.7725 64.7205 8.05287 70.6592 18.2364C80.9926 35.9558 28.2828 74.5237 25.8072 54.2678C25.1894 49.213 34.1353 42.7165 27.308 38.2971C18.7065 32.7294 9.89746 43.1722 4.34888 37.9733C-8.70438 25.7428 10.0261 -7.2333 28.8288 1.43265Z\"\n fill={theme.palette.primary[100] ?? '#DFE8FD'}\n />\n </svg>\n )\n },\n)\n\nBlobSVG.displayName = 'BlobSVG'\n\ninterface ErrorProps {\n heading?: string\n message?: string\n iconName?: string\n buttonText?: string\n onClick?: () => void\n}\n\nconst Error = ({\n heading: headingProp,\n message: messageProp,\n iconName = 'error',\n buttonText: buttonTextProp,\n onClick,\n}: ErrorProps) => {\n // This is a unique case to handle instance of the error component being used outside the context of the needed provider\n // For example, we still need to show something in the event all network request fail (like copy)\n // This allows us to fall back to hard coded english\n // In a perfect world this will never happen\n // Using React.useContext(GlobalDataContext) directly instead of the useGlobalCopyStore hook\n // returns null (not throwing) when there's no provider, so we can safely use optional chaining (context?.globalStore...)\n // and provide hardcoded fallback strings ('Something went wrong', etc.) when neither props nor context copy are available\n const context = React.useContext(GlobalDataContext)\n const copy = context?.globalStore.copyStore.copy.common\n\n const heading = headingProp ?? (copy?.error_heading ? `${copy.error_heading}!` : 'Oops!')\n const message = messageProp ?? copy?.error_message ?? 'Something went wrong. Please try again.'\n const buttonText = buttonTextProp ?? copy?.refresh_button ?? 'Refresh'\n\n const handleClick = () => {\n onClick?.()\n }\n\n return (\n <Stack alignItems=\"center\" justifyContent=\"center\" style={{ height: '100dvh' }}>\n <Stack\n sx={{\n display: 'flex',\n padding: '48px 16px',\n flexDirection: 'column',\n alignItems: 'center',\n }}\n >\n <Stack\n sx={{\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Box\n sx={{\n position: 'absolute',\n zIndex: 0,\n }}\n >\n <BlobSVG />\n </Box>\n <Icon color=\"primary\" name={iconName} size={48} sx={{ zIndex: 1 }} />\n </Stack>\n <Text bold={true} color=\"text.primary\" mt=\"24px\" variant=\"h2\">\n {heading}\n </Text>\n <Text color=\"text.secondary\" variant=\"subtitle1\">\n {message}\n </Text>\n {onClick && (\n <Button color=\"primary\" onClick={handleClick} sx={{ mt: 48 }} variant=\"contained\">\n {buttonText}\n </Button>\n )}\n </Stack>\n </Stack>\n )\n}\n\nexport default observer(Error)\n"],"names":["BlobSVG","React","props","ref","theme","useTheme","jsx","Error","headingProp","messageProp","iconName","buttonTextProp","onClick","copy","GlobalDataContext","heading","message","buttonText","Stack","jsxs","Box","Icon","Text","Button","Error_default","observer"],"mappings":";;;;;;AAOO,MAAMA,IAAUC,EAAM;AAAA,EAC3B,CAACC,GAAOC,MAAQ;AACd,UAAMC,IAAQC,EAAA;AACd,WACE,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,KAAAH;AAAA,QACA,SAAQ;AAAA,QACR,OAAM;AAAA,QACN,OAAM;AAAA,QACL,GAAGD;AAAA,QAEJ,UAAA,gBAAAI;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAMF,EAAM,QAAQ,QAAQ,GAAG,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACtC;AAAA,IAAA;AAAA,EAGN;AACF;AAEAJ,EAAQ,cAAc;AAUtB,MAAMO,IAAQ,CAAC;AAAA,EACb,SAASC;AAAA,EACT,SAASC;AAAA,EACT,UAAAC,IAAW;AAAA,EACX,YAAYC;AAAA,EACZ,SAAAC;AACF,MAAkB;AAShB,QAAMC,IADUZ,EAAM,WAAWa,CAAiB,GAC5B,YAAY,UAAU,KAAK,QAE3CC,IAAUP,MAAgBK,GAAM,gBAAgB,GAAGA,EAAK,aAAa,MAAM,UAC3EG,IAAUP,KAAeI,GAAM,iBAAiB,2CAChDI,IAAaN,KAAkBE,GAAM,kBAAkB;AAM7D,SACE,gBAAAP,EAACY,GAAA,EAAM,YAAW,UAAS,gBAAe,UAAS,OAAO,EAAE,QAAQ,SAAA,GAClE,UAAA,gBAAAC;AAAA,IAACD;AAAA,IAAA;AAAA,MACC,IAAI;AAAA,QACF,SAAS;AAAA,QACT,SAAS;AAAA,QACT,eAAe;AAAA,QACf,YAAY;AAAA,MAAA;AAAA,MAGd,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAACD;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,YAAY;AAAA,cACZ,gBAAgB;AAAA,YAAA;AAAA,YAGlB,UAAA;AAAA,cAAA,gBAAAZ;AAAA,gBAACc;AAAA,gBAAA;AAAA,kBACC,IAAI;AAAA,oBACF,UAAU;AAAA,oBACV,QAAQ;AAAA,kBAAA;AAAA,kBAGV,4BAACpB,GAAA,CAAA,CAAQ;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEX,gBAAAM,EAACe,GAAA,EAAK,OAAM,WAAU,MAAMX,GAAU,MAAM,IAAI,IAAI,EAAE,QAAQ,EAAA,EAAE,CAAG;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAErE,gBAAAJ,EAACgB,GAAA,EAAK,MAAM,IAAM,OAAM,gBAAe,IAAG,QAAO,SAAQ,MACtD,UAAAP,EAAA,CACH;AAAA,0BACCO,GAAA,EAAK,OAAM,kBAAiB,SAAQ,aAClC,UAAAN,GACH;AAAA,QACCJ,KACC,gBAAAN,EAACiB,GAAA,EAAO,OAAM,WAAU,SArCZ,MAAM;AACxB,UAAAX,IAAA;AAAA,QACF,GAmCsD,IAAI,EAAE,IAAI,GAAA,GAAM,SAAQ,aACnE,UAAAK,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAGN;AAEJ,GAEAO,IAAeC,EAASlB,CAAK;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorBoundary-CsdOcnJ9.mjs","sources":["../src/common/components/ErrorBoundary.tsx"],"sourcesContent":["import React from 'react'\n\nimport { H3 } from '@mxenabled/mxui'\n\nexport interface ErrorProps {\n children?: React.ReactNode\n}\n\nexport interface ErrorState {\n hasError: boolean\n}\n\nconst copy = {\n text: 'Oops! Something went wrong.',\n}\n\nclass ErrorBoundary extends React.Component<ErrorProps, ErrorState> {\n state: ErrorState = {\n hasError: false,\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n console.error('Uncaught error:', error, errorInfo)\n }\n\n static getDerivedStateFromError(): ErrorState {\n return { hasError: true }\n }\n\n render() {\n if (this.state.hasError) return <H3 sx={{ pt: 24 }}>{copy.text}</H3>\n\n return this.props.children\n }\n}\n\nexport default ErrorBoundary\n"],"names":["copy","ErrorBoundary","React","error","errorInfo","jsx","H3"],"mappings":";;;AAYA,MAAMA,IAAO;AAAA,EACX,MAAM;AACR;AAEA,MAAMC,UAAsBC,EAAM,UAAkC;AAAA,EAClE,QAAoB;AAAA,IAClB,UAAU;AAAA,EAAA;AAAA,EAGZ,kBAAkBC,GAAcC,GAA4B;AAC1D,YAAQ,MAAM,mBAAmBD,GAAOC,CAAS;AAAA,EACnD;AAAA,EAEA,OAAO,2BAAuC;AAC5C,WAAO,EAAE,UAAU,GAAA;AAAA,EACrB;AAAA,EAEA,SAAS;AACP,WAAI,KAAK,MAAM,WAAiB,gBAAAC,EAACC,GAAA,EAAG,IAAI,EAAE,IAAI,GAAA,GAAO,UAAAN,EAAK,KAAA,CAAK,IAExD,KAAK,MAAM;AAAA,EACpB;AACF;"}
|
|
@@ -2,7 +2,7 @@ import { jsx as o } from "react/jsx-runtime";
|
|
|
2
2
|
import { observer as c } from "mobx-react-lite";
|
|
3
3
|
import { Icon as i } from "@mxenabled/mxui";
|
|
4
4
|
import { e as p } from "./TransactionUtils-BphBJBbU.mjs";
|
|
5
|
-
import { O as m } from "./EmbeddedCard-
|
|
5
|
+
import { O as m } from "./EmbeddedCard-DH8vQ3qN.mjs";
|
|
6
6
|
import { f as x, g as _, u as C } from "./hooks-97sNJ_lf.mjs";
|
|
7
7
|
import { R as l } from "./ResponsiveButton-CC9F_Ezk.mjs";
|
|
8
8
|
const v = ({ filter: t }) => {
|
|
@@ -22,3 +22,4 @@ const v = ({ filter: t }) => {
|
|
|
22
22
|
export {
|
|
23
23
|
b as E
|
|
24
24
|
};
|
|
25
|
+
//# sourceMappingURL=ExportCsvAction-C9KWH3Az.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExportCsvAction-C9KWH3Az.mjs","sources":["../src/transactions/components/transactionwidget/actions/ExportCsvAction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport { Icon } from '@mxenabled/mxui'\n\nimport { ResponsiveButton, useGlobalCopyStore } from '../../../../common'\nimport { useEvent, useTransactionStore } from '../../../../common'\n\nimport { type Transaction } from '../../../../core'\nimport { exportTransactionsToCSV } from '../../../../core/utils/TransactionUtils'\n\nimport { ON_CLICK_EVENTS } from '../../../constants/OnClickEvents'\n\ninterface ExportCsvActionProps {\n filter?: (t: Transaction) => boolean\n}\n\nconst ExportCsvAction = ({ filter }: ExportCsvActionProps) => {\n const { onEvent } = useEvent()\n const { tags, sortedTransactions } = useTransactionStore()\n const { transactions: copy } = useGlobalCopyStore()\n\n const handleExport = () => {\n onEvent(ON_CLICK_EVENTS.ON_TRANSACTION_EXPORT_CSV_CLICK)\n exportTransactionsToCSV(filter ? sortedTransactions.filter(filter) : sortedTransactions, tags)\n }\n\n return (\n <div className=\"mx-txn-export-csv-action\">\n <ResponsiveButton\n icon={<Icon name=\"open_in_new\" />}\n label={copy.export_csv_btn}\n onClick={handleExport}\n tooltipText={copy.export_csv_title}\n />\n </div>\n )\n}\n\nexport default observer(ExportCsvAction)\n"],"names":["ExportCsvAction","filter","onEvent","useEvent","tags","sortedTransactions","useTransactionStore","copy","useGlobalCopyStore","handleExport","ON_CLICK_EVENTS","exportTransactionsToCSV","jsx","ResponsiveButton","Icon","ExportCsvAction$1","observer"],"mappings":";;;;;;;AAgBA,MAAMA,IAAkB,CAAC,EAAE,QAAAC,QAAmC;AAC5D,QAAM,EAAE,SAAAC,EAAA,IAAYC,EAAA,GACd,EAAE,MAAAC,GAAM,oBAAAC,EAAA,IAAuBC,EAAA,GAC/B,EAAE,cAAcC,EAAA,IAASC,EAAA,GAEzBC,IAAe,MAAM;AACzB,IAAAP,EAAQQ,EAAgB,+BAA+B,GACvDC,EAAwBV,IAASI,EAAmB,OAAOJ,CAAM,IAAII,GAAoBD,CAAI;AAAA,EAC/F;AAEA,SACE,gBAAAQ,EAAC,OAAA,EAAI,WAAU,4BACb,UAAA,gBAAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAM,gBAAAD,EAACE,GAAA,EAAK,MAAK,cAAA,CAAc;AAAA,MAC/B,OAAOP,EAAK;AAAA,MACZ,SAASE;AAAA,MACT,aAAaF,EAAK;AAAA,IAAA;AAAA,EAAA,GAEtB;AAEJ,GAEAQ,IAAeC,EAAShB,CAAe;"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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;"}
|
package/dist/Help-CkQTjORd.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Help-CkQTjORd.mjs","sources":["../src/core/constants/Help.ts"],"sourcesContent":["export const HELP_CATEGORIES = [\n {\n flags: ['show_accounts_widget_in_master'],\n guid: 'accounts',\n icon: 'account_balance',\n title: 'Accounts',\n topics: [\n {\n topicKey: 'accounts-overview',\n },\n {\n topicKey: 'trouble-adding-an-account',\n },\n {\n topicKey: 'need-to-fix-a-broken-account',\n },\n {\n topicKey: 'seeing-outdated-accounts-or-paid-off-loans',\n },\n {\n topicKey: 'seeing-duplicate-accounts',\n },\n ],\n },\n {\n flags: ['show_transactions_widget_in_master'],\n guid: 'transactions',\n icon: 'receipt_long',\n title: 'Transactions',\n topics: [\n {\n topicKey: 'transactions-overview',\n },\n {\n topicKey: 'seeing-duplicate-transactions',\n },\n {\n topicKey: 'missing-transactions',\n },\n {\n topicKey: 'pending-transactions',\n },\n {\n topicKey: 'exporting-transactions',\n },\n ],\n },\n {\n flags: ['show_spending_widget_in_master'],\n guid: 'spending',\n icon: 'donut_small',\n title: 'Spending',\n topics: [\n {\n topicKey: 'spending-widget-overview',\n },\n {\n topicKey: 'not-seeing-all-spending-categories',\n },\n {\n topicKey: 'spending-categories-seem-inaccurate',\n },\n ],\n },\n {\n flags: ['show_budgets_widget_in_master'],\n guid: 'budgets',\n icon: 'bubble_chart',\n title: 'Budgets',\n topics: [\n {\n topicKey: 'budgets-overview',\n },\n ],\n },\n {\n flags: ['show_trends_widget_in_master'],\n guid: 'trends',\n icon: 'multiline_chart',\n title: 'Trends',\n topics: [\n {\n topicKey: 'trends-overview',\n },\n ],\n },\n {\n flags: ['show_debts_widget_in_master'],\n guid: 'debts',\n icon: 'note_stack',\n title: 'Debts',\n topics: [\n {\n topicKey: 'debts-overview',\n },\n ],\n },\n {\n flags: ['show_net_worth_widget_in_master'],\n guid: 'networth',\n icon: 'elevation',\n title: 'Net Worth',\n topics: [\n {\n topicKey: 'net-worth-overview',\n },\n ],\n },\n {\n flags: ['show_goals_widget_in_master'],\n guid: 'goals',\n icon: 'trophy',\n title: 'Goals',\n topics: [\n {\n topicKey: 'goals-overview',\n },\n ],\n },\n {\n flags: ['show_cash_flow_widget_in_master'],\n guid: 'cashflow',\n icon: 'flowsheet',\n title: 'Cash Flow',\n topics: [\n {\n topicKey: 'cash-flow-overview',\n },\n ],\n },\n {\n flags: ['show_recurring_transactions_widget_in_master'],\n guid: 'recurring_transactions',\n icon: 'currency_exchange',\n title: 'Recurring Transactions',\n topics: [\n {\n label: 'Recurring Transactions Widget Overview',\n topicKey: 'overview',\n },\n ],\n },\n {\n flags: ['show_investments_widget_in_master'],\n guid: 'investments',\n icon: 'bid_landscape',\n title: 'Investments',\n topics: [\n {\n topicKey: 'investments-overview',\n },\n ],\n },\n {\n flags: ['show_notifications_widget_in_master'],\n guid: 'alerts',\n icon: 'account_balance',\n title: 'Alerts',\n topics: [\n {\n topicKey: 'notifications-overview',\n },\n ],\n },\n {\n guid: 'general',\n icon: 'info',\n title: 'General',\n topics: [\n {\n topicKey: 'is-my-data-private-and-secure',\n },\n {\n topicKey: 'why-are-some-of-my-transactions-uncategorized',\n },\n {\n topicKey: 'why-cant-i-see-the-software',\n },\n {\n topicKey: 'how-do-i-log-out-of-the-software',\n },\n ],\n },\n {\n guid: 'insights',\n icon: 'lightbulb',\n title: 'Insights',\n topics: [\n {\n topicKey: 'insights-widget-overview',\n },\n ],\n },\n {\n flags: ['display_mobile_devices_in_settings'],\n guid: 'mobile',\n icon: 'phone_iphone',\n title: 'Mobile',\n topics: [\n {\n topicKey: 'mobile-devices-overview',\n },\n ],\n },\n]\n\nexport const HELP_CONTENT = {\n accounts: {\n guid: 'accounts',\n title: 'Accounts',\n topicTitle: 'Accounts Overview',\n content: {\n section1: {\n description:\n \"FinTech Solutions is committed to revolutionizing the way individuals and businesses manage their finances. By providing an integrated platform of smart tools, we make it easier to track personal expenses, manage investments, and optimize business finances all in one place. Our innovative technology empowers users to make informed decisions, whether it's monitoring their spending, analyzing investment performance, or ensuring smooth cash flow for their business operations. With a focus on security, simplicity, and efficiency, FinTech Solutions helps users navigate the complexities of finance with confidence and clarity. Our platform is designed to be intuitive, scalable, and adaptable, allowing users to customize their financial strategies according to their unique needs, ensuring long-term growth and financial success.\",\n image: 'https://assets.mx.com/images/company/careers/value-box-bg.png',\n title: 'Revolutionizing Financial Management',\n },\n section2: {\n description:\n \"FinTech Solutions is committed to revolutionizing the way individuals and businesses manage their finances. By providing an integrated platform of smart tools, we make it easier to track personal expenses, manage investments, and optimize business finances all in one place. Our innovative technology empowers users to make informed decisions, whether it's monitoring their spending, analyzing investment performance, or ensuring smooth cash flow for their business operations. With a focus on security, simplicity, and efficiency, FinTech Solutions helps users navigate the complexities of finance with confidence and clarity.\",\n image: 'https://assets.mx.com/images/company/careers/value-box-bg.png',\n listItems: [\n 'Easily track expenses and manage personal finances.',\n 'Easily track expenses and manage personal finances.',\n 'Manage cash flow and financial operations in one platform.',\n 'Ensure your financial data is protected with industry-leading security measures',\n ],\n listTitle: 'Effortless Financial Solutions',\n subDescription:\n 'FinTech Solutions combines advanced technology with intuitive tools to make financial management easy for both individuals and businesses. Our platform offers everything from budgeting features to real-time insights, empowering users to take control of their financial future with confidence and security.',\n subTitle: 'Simplifying Financial Management',\n title: 'Empowering Financial Management',\n },\n section3: {\n description:\n 'FinTech Solutions provides the tools and insights needed to make informed financial choices. From budgeting and investment tracking to comprehensive business financial management, our platform delivers real-time data and personalized recommendations. With a focus on ease of use and security, we help users navigate the complexities of finance and achieve their financial goals with confidence.',\n image: 'https://assets.mx.com/images/company/careers/value-box-bg.png',\n listItems: [\n 'Track expenses, set budgets, and achieve savings goals.',\n 'Monitor and analyze your investments with real-time updates.',\n 'Streamline cash flow management and financial reporting.',\n 'Protect your financial data with top-tier encryption and security protocols.',\n ],\n listTitle: 'Complete Financial Tools',\n title: 'Empowering Smarter Financial Decisions',\n },\n section4: {\n description:\n \"FinTech Solutions simplifies managing your finances with powerful tools designed for both individuals and businesses. Whether you're tracking personal spending, optimizing investments, or streamlining business operations, our platform provides the insights and features you need to make confident financial decisions. With a focus on ease of use and data security, we help you stay in control of your financial future. Our innovative solutions offer real-time updates, personalized recommendations, and automated reporting, ensuring you're always in the know. Plus, with scalable features tailored to your needs, our platform grows with you, making it the ideal choice for anyone looking to take charge of their financial journey.\",\n title: 'Seamless Financial Management',\n },\n },\n },\n}\n\n// TODO: Add more keys for additional logic\nexport const HELP_BY_CATEGORY_LIST = [\n {\n guid: 'personal_information',\n icon: 'person',\n topics: [\n {\n type: 'external',\n },\n {\n type: 'external',\n },\n {\n type: 'internal',\n },\n {\n type: 'external',\n },\n ],\n },\n {\n guid: 'money_movement',\n icon: 'currency_exchange',\n topics: [\n {\n type: 'external',\n },\n {\n type: 'external',\n },\n {\n type: 'external',\n },\n {\n type: 'external',\n },\n ],\n },\n {\n guid: 'institution',\n icon: 'account_balance',\n topics: [\n {\n type: 'external',\n },\n {\n type: 'other',\n },\n {\n type: 'internal',\n },\n {\n type: 'internal',\n },\n ],\n },\n {\n guid: 'transactions',\n icon: 'compare_arrows',\n topics: [\n {\n type: 'internal',\n },\n {\n type: 'external',\n },\n {\n type: 'internal',\n },\n ],\n },\n]\n\n// TODO: Add more keys for additional logic\nexport const POPULAR_TOPICS_LIST = [\n {\n type: 'external',\n },\n {\n type: 'external',\n },\n {\n type: 'external',\n },\n {\n type: 'external',\n },\n {\n type: 'other',\n },\n {\n type: 'internal',\n },\n]\n"],"names":["HELP_CATEGORIES","HELP_BY_CATEGORY_LIST","POPULAR_TOPICS_LIST"],"mappings":"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"}
|
|
@@ -209,7 +209,7 @@ const kt = ({
|
|
|
209
209
|
E,
|
|
210
210
|
{
|
|
211
211
|
bold: !0,
|
|
212
|
-
color: "primary.
|
|
212
|
+
color: "primary.main",
|
|
213
213
|
onClick: n,
|
|
214
214
|
sx: { cursor: "pointer", fontWeight: 700 },
|
|
215
215
|
variant: "body2",
|
|
@@ -400,7 +400,7 @@ const kt = ({
|
|
|
400
400
|
TRANSACTIONS_EXPORT: `${m}/transactions/ExportTransactions.png`,
|
|
401
401
|
TRANSACTIONS_OVERVIEW: `${m}/transactions/Overview.png`,
|
|
402
402
|
TRANSACTIONS_RULES: `${m}/transactions/TransactionRules.png`,
|
|
403
|
-
TRENDS_WIDGET: `${m}/trends/
|
|
403
|
+
TRENDS_WIDGET: `${m}/trends/TrendsWidget2.png`
|
|
404
404
|
}, Wt = ({ copy: e, topicKey: i }) => ({
|
|
405
405
|
"accounts-overview": /* @__PURE__ */ _(r.Fragment, { children: [
|
|
406
406
|
/* @__PURE__ */ t(
|
|
@@ -3207,3 +3207,4 @@ const kt = ({
|
|
|
3207
3207
|
export {
|
|
3208
3208
|
Ve as H
|
|
3209
3209
|
};
|
|
3210
|
+
//# sourceMappingURL=Help-aERwhajy.mjs.map
|