@mx-cartographer/experiences 9.1.4-alpha.mm0 → 9.1.4
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 +3 -2
- package/dist/{AccountDetailsDrawer-utXjRHSW.mjs → AccountDetailsDrawer-Cq4kiiKD.mjs} +4 -4
- package/dist/{AccountDetailsDrawer-utXjRHSW.mjs.map → AccountDetailsDrawer-Cq4kiiKD.mjs.map} +1 -1
- package/dist/{AccountDetailsHeader-C84CSN2K.mjs → AccountDetailsHeader-BliEZhz7.mjs} +2 -2
- package/dist/{AccountDetailsHeader-C84CSN2K.mjs.map → AccountDetailsHeader-BliEZhz7.mjs.map} +1 -1
- package/dist/DateUtil-CzBmbjmA.mjs +75 -0
- package/dist/{DateUtil-Bl7d7C1W.mjs.map → DateUtil-CzBmbjmA.mjs.map} +1 -1
- package/dist/{EmbeddedCard-CQEnrozC.mjs → EmbeddedCard-DCOQnTz-.mjs} +37 -38
- package/dist/EmbeddedCard-DCOQnTz-.mjs.map +1 -0
- package/dist/{ExportCsvAction-B_8I-Le6.mjs → ExportCsvAction-C-IisDcv.mjs} +2 -2
- package/dist/{ExportCsvAction-B_8I-Le6.mjs.map → ExportCsvAction-C-IisDcv.mjs.map} +1 -1
- package/dist/{ManageIncome-Czs7daKV.mjs → ManageIncome-B_8i71mE.mjs} +7 -7
- package/dist/{ManageIncome-Czs7daKV.mjs.map → ManageIncome-B_8i71mE.mjs.map} +1 -1
- package/dist/{RecurringSettings-CcS5b1xA.mjs → RecurringSettings-hs0YUp83.mjs} +3 -3
- package/dist/{RecurringSettings-CcS5b1xA.mjs.map → RecurringSettings-hs0YUp83.mjs.map} +1 -1
- package/dist/{RecurringTransactionsUtil-CfWviBh1.mjs → RecurringTransactionsUtil-CHWmqvW5.mjs} +2 -2
- package/dist/{RecurringTransactionsUtil-CfWviBh1.mjs.map → RecurringTransactionsUtil-CHWmqvW5.mjs.map} +1 -1
- package/dist/{TransactionDetails-Kmj8GUlD.mjs → TransactionDetails-DT-MQqOB.mjs} +133 -135
- package/dist/TransactionDetails-DT-MQqOB.mjs.map +1 -0
- package/dist/{UserStore-DSnLgiGh.mjs → UserStore-_QQpkbw9.mjs} +7 -5
- package/dist/UserStore-_QQpkbw9.mjs.map +1 -0
- package/dist/accounts/index.es.js +4 -4
- package/dist/budgets/index.es.js +3 -3
- package/dist/cashflow/index.es.js +6 -6
- package/dist/common/index.es.js +1 -1
- package/dist/core/index.es.js +2 -2
- package/dist/core/utils/DateUtil.d.ts +0 -1
- package/dist/debts/index.es.js +1 -1
- package/dist/finstrong/index.es.js +6 -6
- package/dist/insights/index.es.js +2 -2
- package/dist/networth/index.es.js +1 -1
- package/dist/notifications/index.es.js +1 -1
- package/dist/recurringtransactions/index.es.js +5 -5
- package/dist/spending/index.es.js +28 -28
- package/dist/spending/index.es.js.map +1 -1
- package/dist/transactions/index.es.js +25 -25
- package/dist/transactions/index.es.js.map +1 -1
- package/dist/trends/index.es.js +3 -3
- package/package.json +1 -1
- package/dist/DateUtil-Bl7d7C1W.mjs +0 -76
- package/dist/EmbeddedCard-CQEnrozC.mjs.map +0 -1
- package/dist/TransactionDetails-Kmj8GUlD.mjs.map +0 -1
- package/dist/UserStore-DSnLgiGh.mjs.map +0 -1
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { C as Be, D as He, M as Pe, a as We, T as $e } from "../TransactionDetails-
|
|
2
|
-
import { B as xa, b as Aa } from "../TransactionDetails-
|
|
3
|
-
import { u as B, T as Ge } from "../EmbeddedCard-
|
|
4
|
-
import { a as Sa } from "../EmbeddedCard-
|
|
5
|
-
import { E as va } from "../ExportCsvAction-
|
|
1
|
+
import { C as Be, D as He, M as Pe, a as We, T as $e } from "../TransactionDetails-DT-MQqOB.mjs";
|
|
2
|
+
import { B as xa, b as Aa } from "../TransactionDetails-DT-MQqOB.mjs";
|
|
3
|
+
import { u as B, T as Ge } from "../EmbeddedCard-DCOQnTz-.mjs";
|
|
4
|
+
import { a as Sa } from "../EmbeddedCard-DCOQnTz-.mjs";
|
|
5
|
+
import { E as va } from "../ExportCsvAction-C-IisDcv.mjs";
|
|
6
6
|
import { jsxs as m, jsx as e } from "react/jsx-runtime";
|
|
7
7
|
import u from "react";
|
|
8
8
|
import { observer as D } from "mobx-react-lite";
|
|
9
9
|
import Ve from "@mui/material/Paper";
|
|
10
|
-
import { DataGridPro as
|
|
11
|
-
import { g as H, u as v, f as ne, a as K, c as oe, l as
|
|
10
|
+
import { DataGridPro as Fe } from "@mui/x-data-grid-pro";
|
|
11
|
+
import { g as H, u as v, f as ne, a as K, c as oe, l as Ue, i as Ke, C as ze } from "../hooks-97sNJ_lf.mjs";
|
|
12
12
|
import { L as z } from "../Loader-CxeBwuPG.mjs";
|
|
13
|
-
import { Text as y, Icon as R, MerchantLogo as qe, TextField as Z, P as
|
|
13
|
+
import { Text as y, Icon as R, MerchantLogo as qe, TextField as Z, P as Ye } from "@mxenabled/mxui";
|
|
14
14
|
import w from "@mui/material/Stack";
|
|
15
15
|
import { f as re } from "../NumberFormatting--XMeeBfr.mjs";
|
|
16
|
-
import { T as k, e as
|
|
16
|
+
import { T as k, e as je, D as Xe } from "../TransactionUtils-BphBJBbU.mjs";
|
|
17
17
|
import S from "@mui/material/Box";
|
|
18
18
|
import { useTheme as ie } from "@mui/material/styles";
|
|
19
|
-
import {
|
|
19
|
+
import { fromUnixTime as Je } from "date-fns/fromUnixTime";
|
|
20
20
|
import { f as Qe, D as Ze } from "../DateFormats-HudZ3Bjs.mjs";
|
|
21
21
|
import { A } from "../Analytics-D-jdcL72.mjs";
|
|
22
22
|
import { endOfMonth as et } from "date-fns/endOfMonth";
|
|
23
23
|
import { getUnixTime as tt } from "date-fns/getUnixTime";
|
|
24
24
|
import { startOfMonth as at } from "date-fns/startOfMonth";
|
|
25
|
-
import { startOfToday as
|
|
26
|
-
import { b as
|
|
25
|
+
import { startOfToday as F } from "date-fns/startOfToday";
|
|
26
|
+
import { b as U } from "../Localization-DnoVyBNK.mjs";
|
|
27
27
|
import { C as nt } from "../ConnectDrawer-CW4LA3H3.mjs";
|
|
28
28
|
import ot from "@mui/material/Divider";
|
|
29
29
|
import rt from "@mui/material/MenuItem";
|
|
@@ -193,7 +193,7 @@ const ft = (t) => /* @__PURE__ */ m(y, { tabIndex: t.tabIndex, variant: "body2",
|
|
|
193
193
|
}
|
|
194
194
|
];
|
|
195
195
|
return /* @__PURE__ */ e(Ve, { sx: { height: t, px: 24, width: "100%", boxShadow: "none" }, children: /* @__PURE__ */ e(
|
|
196
|
-
|
|
196
|
+
Fe,
|
|
197
197
|
{
|
|
198
198
|
columns: g,
|
|
199
199
|
disableColumnFilter: !0,
|
|
@@ -338,7 +338,7 @@ const ft = (t) => /* @__PURE__ */ m(y, { tabIndex: t.tabIndex, variant: "body2",
|
|
|
338
338
|
}
|
|
339
339
|
) : /* @__PURE__ */ e(z, {});
|
|
340
340
|
}, Et = D(Nt), kt = ({ onClose: t, transaction: r }) => {
|
|
341
|
-
const { addOrUpdateTransactionRule: i, updateTransaction: a } = H(), { transactions: s } = v(), { categories: c } =
|
|
341
|
+
const { addOrUpdateTransactionRule: i, updateTransaction: a } = H(), { transactions: s } = v(), { categories: c } = Ue(), [l, p] = u.useState(""), b = u.useMemo(
|
|
342
342
|
() => c.find((C) => C.guid === l),
|
|
343
343
|
[l]
|
|
344
344
|
), f = async (C) => {
|
|
@@ -359,7 +359,7 @@ const ft = (t) => /* @__PURE__ */ m(y, { tabIndex: t.tabIndex, variant: "body2",
|
|
|
359
359
|
se,
|
|
360
360
|
{
|
|
361
361
|
copy: {
|
|
362
|
-
title:
|
|
362
|
+
title: U(
|
|
363
363
|
s.actions_apply_to_all_transaction_types,
|
|
364
364
|
r.description
|
|
365
365
|
)
|
|
@@ -370,7 +370,7 @@ const ft = (t) => /* @__PURE__ */ m(y, { tabIndex: t.tabIndex, variant: "body2",
|
|
|
370
370
|
onSecondaryAction: () => f(!1),
|
|
371
371
|
primaryText: s.actions_apply_to_all,
|
|
372
372
|
secondaryText: s.actions_this_time_only,
|
|
373
|
-
children: /* @__PURE__ */ e(
|
|
373
|
+
children: /* @__PURE__ */ e(Ye, { variant: "subtitle1", children: U(
|
|
374
374
|
s.actions_all_past_and_future,
|
|
375
375
|
r.description,
|
|
376
376
|
b?.name
|
|
@@ -391,7 +391,7 @@ const ft = (t) => /* @__PURE__ */ m(y, { tabIndex: t.tabIndex, variant: "body2",
|
|
|
391
391
|
isTransactionDataLoaded: P,
|
|
392
392
|
loadTransactionData: me,
|
|
393
393
|
setFilter: q,
|
|
394
|
-
sortedTransactions:
|
|
394
|
+
sortedTransactions: Y,
|
|
395
395
|
sortedTransactionsWithSplits: _e,
|
|
396
396
|
tags: pe,
|
|
397
397
|
detailedTransactions: ge,
|
|
@@ -400,7 +400,7 @@ const ft = (t) => /* @__PURE__ */ m(y, { tabIndex: t.tabIndex, variant: "body2",
|
|
|
400
400
|
clearExpandedSplits: fe,
|
|
401
401
|
isAmountValid: Ce,
|
|
402
402
|
manualTransaction: L,
|
|
403
|
-
searchValue:
|
|
403
|
+
searchValue: j,
|
|
404
404
|
setSearchValue: ye,
|
|
405
405
|
setShowInsights: be,
|
|
406
406
|
updateManualTransaction: Te
|
|
@@ -410,21 +410,21 @@ const ft = (t) => /* @__PURE__ */ m(y, { tabIndex: t.tabIndex, variant: "body2",
|
|
|
410
410
|
isLoaded: P
|
|
411
411
|
}), u.useEffect(() => {
|
|
412
412
|
P || me().finally();
|
|
413
|
-
const d = at(
|
|
413
|
+
const d = at(F()), Re = et(F());
|
|
414
414
|
N(d, Re), h(A.TRANSACTIONS_VIEW);
|
|
415
415
|
}, []), u.useEffect(() => {
|
|
416
416
|
_ && q({
|
|
417
417
|
accounts: G ? [G] : n,
|
|
418
418
|
dateRange: { start: o.start, end: o.end },
|
|
419
|
-
searchTerm:
|
|
419
|
+
searchTerm: j
|
|
420
420
|
});
|
|
421
421
|
}, [_, o, n]), u.useEffect(() => {
|
|
422
422
|
be(a);
|
|
423
423
|
}, [a]), u.useEffect(() => {
|
|
424
424
|
_ && Se(
|
|
425
|
-
|
|
425
|
+
U(g.showing_transactions_count, Y.length)
|
|
426
426
|
);
|
|
427
|
-
}, [_,
|
|
427
|
+
}, [_, Y]);
|
|
428
428
|
const x = X ? ge.find((d) => d.guid === X) : void 0, Q = Ce && !!L.payee && !!L.account_guid && !!L.category_guid, ve = (d) => {
|
|
429
429
|
fe(), N(d[0], d[1]);
|
|
430
430
|
}, Ie = (d) => {
|
|
@@ -433,11 +433,11 @@ const ft = (t) => /* @__PURE__ */ m(y, { tabIndex: t.tabIndex, variant: "body2",
|
|
|
433
433
|
searchTerm: d
|
|
434
434
|
}), h(A.TRANSACTIONS_CLICK_SEARCH, { search_term: d });
|
|
435
435
|
}, Ne = () => {
|
|
436
|
-
|
|
436
|
+
je(_e, pe), h(A.TRANSACTIONS_CLICK_EXPORT);
|
|
437
437
|
}, Ee = () => {
|
|
438
438
|
c.length > 0 ? (Te({
|
|
439
439
|
...Xe,
|
|
440
|
-
date: tt(
|
|
440
|
+
date: tt(F()),
|
|
441
441
|
user_guid: xe?.user_guid || ""
|
|
442
442
|
}), T(
|
|
443
443
|
"addTransaction"
|
|
@@ -485,7 +485,7 @@ const ft = (t) => /* @__PURE__ */ m(y, { tabIndex: t.tabIndex, variant: "body2",
|
|
|
485
485
|
{
|
|
486
486
|
onChange: Ie,
|
|
487
487
|
placeholder: g.action_bar_search_placeholder,
|
|
488
|
-
searchValue:
|
|
488
|
+
searchValue: j
|
|
489
489
|
}
|
|
490
490
|
) }),
|
|
491
491
|
/* @__PURE__ */ e(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../src/transactions/components/shared/transactiontable/cells/AccountCell.tsx","../../src/transactions/components/shared/transactiontable/cells/AmountCell.tsx","../../src/transactions/components/shared/transactiontable/cells/CategoryCell.tsx","../../src/transactions/components/shared/transactiontable/cells/DateCell.tsx","../../src/transactions/components/shared/transactiontable/cells/FlagCell.tsx","../../src/transactions/components/shared/transactiontable/cells/HeaderCell.tsx","../../src/transactions/components/shared/transactiontable/cells/PayeeCell.tsx","../../src/transactions/components/shared/TransactionTable.tsx","../../src/transactions/components/shared/transactiondetails/ManualTransactionDetails.tsx","../../src/transactions/components/transactionwidget/AddAccountModal.tsx","../../src/transactions/components/transactionwidget/actions/EditCategoryAction.tsx","../../src/transactions/TransactionWidget.tsx"],"sourcesContent":["import { GridCellParams } from '@mui/x-data-grid'\n\nimport { Text } from '@mxenabled/mxui'\n\nconst AccountCell = (params: GridCellParams) => (\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {`${params.row.account}`}\n {params.row.number && ` | ${params.row.number}`}\n </Text>\n)\n\nexport default AccountCell\n","import Stack from '@mui/material/Stack'\n\nimport { GridCellParams } from '@mui/x-data-grid'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { useTransactionStore } from '../../../../../common'\nimport { TransactionType } from '../../../../../core'\n\nimport { useTransactionsUiStore } from '../../../../context/hooks'\nimport { formatCurrency } from '../../../../../core/utils/NumberFormatting'\n\nconst AmountCell = (params: GridCellParams) => {\n const { associatedBeats } = useTransactionStore()\n const { showInsights } = useTransactionsUiStore()\n\n const { amount, transaction_type } = params.row\n const beat = associatedBeats.find((beat) => beat.associated_transaction_guid === params.row.guid)\n\n const isCredit = transaction_type === TransactionType.CREDIT\n\n return (\n <Stack alignItems=\"flex-end\" tabIndex={params.tabIndex}>\n <Text bold={isCredit} color={isCredit ? 'success.main' : 'text.primary'} variant=\"body2\">\n {isCredit ? '+' : ''}\n {formatCurrency(amount, '0,0.00')}\n </Text>\n {beat && showInsights && (\n <Text bold={true} color=\"primary.light\" variant=\"caption\">\n {beat.short_title}\n </Text>\n )}\n </Stack>\n )\n}\n\nexport default AmountCell\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { GridCellParams } from '@mui/x-data-grid-pro'\n\nimport { Icon, Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../../../../common'\n\nconst CategoryCell = (params: GridCellParams) => {\n const { transactions: copy } = useGlobalCopyStore()\n const [isHover, setIsHover] = React.useState(false)\n\n return (\n <Stack\n alignItems=\"center\"\n direction=\"row\"\n gap={8}\n height=\"100%\"\n onMouseEnter={() => setIsHover(true)}\n onMouseLeave={() => setIsHover(false)}\n width=\"100%\"\n >\n {params.row.has_been_split && <Icon name=\"call_split\" size={16} />}\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {params.row.has_been_split ? copy.split_transaction_category_label : params.row.category}\n </Text>\n {!params.row.has_been_split && isHover && (\n <Icon name=\"edit\" sx={{ color: 'action.active' }} />\n )}\n </Stack>\n )\n}\n\nexport default observer(CategoryCell)\n","import { GridCellParams } from '@mui/x-data-grid'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { DATE_FORMATS_INTL, formatDate } from '../../../../../core/constants'\nimport { fromUnixUTC } from '../../../../../core/utils/DateUtil'\n\nconst DateCell = (params: GridCellParams) => {\n return (\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {formatDate(fromUnixUTC(params.row.date), DATE_FORMATS_INTL.MONTH_DAY)}\n </Text>\n )\n}\n\nexport default DateCell\n","import Box from '@mui/material/Box'\nimport { observer } from 'mobx-react-lite'\n\nimport { useTheme } from '@mui/material/styles'\nimport { GridRenderCellParams } from '@mui/x-data-grid-pro'\nimport { Icon } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../../../../common'\n\nconst FlagCell = (params: GridRenderCellParams) => {\n const theme = useTheme()\n const isDarkMode = theme.palette.mode === 'dark'\n\n const { transactions: transactionsCopy } = useGlobalCopyStore()\n const { is_flagged, is_hidden, has_been_viewed, parent_guid } = params.row\n const isChildOfSplit = !!parent_guid\n const hasNotBeenViewed = !has_been_viewed && !isChildOfSplit\n\n return (\n <Box\n aria-label={is_hidden ? transactionsCopy.is_excluded : transactionsCopy.is_flagged}\n tabIndex={params.tabIndex}\n >\n {is_flagged && (\n <Icon\n fill={true}\n name=\"flag\"\n size={16}\n sx={{ color: isDarkMode ? 'primary.main' : 'warning.dark' }}\n />\n )}\n {!is_flagged && is_hidden && <Icon name=\"visibility_off\" size={16} />}\n {hasNotBeenViewed && (\n <svg\n data-testid=\"svg\"\n style={{\n display: 'inline-block',\n height: 16,\n fill: theme.palette.primary.light,\n verticalAlign: 'middle',\n width: 16,\n }}\n viewBox=\"0 0 512 512\"\n >\n <circle cx=\"256\" cy=\"256\" r=\"60\" />\n </svg>\n )}\n </Box>\n )\n}\n\nexport default observer(FlagCell)\n","import { Text } from '@mxenabled/mxui'\n\nimport { GridColumnHeaderParams } from '@mui/x-data-grid'\n\nconst HeaderCell = (params: GridColumnHeaderParams) => (\n <Text fontWeight={600} variant=\"body2\">\n {params.colDef.headerName}\n </Text>\n)\n\nexport default HeaderCell\n","import Stack from '@mui/material/Stack'\n\nimport { GridCellParams } from '@mui/x-data-grid'\n\nimport { MerchantLogo, Text } from '@mxenabled/mxui'\n\ninterface PayeeCellProps extends GridCellParams {\n excludedText: string\n}\n\nconst PayeeCell = (params: PayeeCellProps) => {\n return (\n <Stack alignItems=\"center\" direction=\"row\" gap={8}>\n <MerchantLogo\n categoryGuid={params.row.top_level_category_guid || ''}\n merchantGuid={params.row.merchant_guid || ''}\n />\n <Stack alignItems=\"flex-start\" direction=\"column\">\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {params.row.payee}\n </Text>\n {params.row.is_hidden && <Text variant=\"caption\">{params.excludedText}</Text>}\n </Stack>\n </Stack>\n )\n}\n\nexport default PayeeCell\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Paper from '@mui/material/Paper'\nimport { DataGridPro, GridCellParams, GridColDef } from '@mui/x-data-grid-pro'\n\nimport {\n ANALYTICS_EVENTS,\n Loader,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useTransactionStore,\n} from '../../../common'\n\nimport { useTransactionsUiStore } from '../../context/hooks'\n\nimport {\n AccountCell,\n AmountCell,\n CategoryCell,\n DateCell,\n FlagCell,\n HeaderCell,\n PayeeCell,\n} from './transactiontable/cells'\n\ninterface TransactionTableProps {\n height?: number | string\n onCategoryClick?: (guid: string) => void\n onRowClick?: (guid: string) => void\n}\n\nconst TransactionTable: React.FC<TransactionTableProps> = ({\n height = '100dvh',\n onCategoryClick,\n onRowClick,\n}) => {\n const { onEvent } = useEvent()\n const { transactions: copy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n const { isLoading, sortedTransactions } = useTransactionStore()\n const { clearExpandedSplits, toggleSplit } = useTransactionsUiStore()\n\n React.useEffect(() => {\n return () => clearExpandedSplits()\n }, [])\n\n const rows = React.useMemo(\n () =>\n sortedTransactions.map((transaction) => ({\n id: transaction.guid,\n isHovering: false,\n ...transaction,\n })),\n [sortedTransactions],\n )\n\n const handleCellClick = ({ row: { id, guid, has_been_split }, field }: GridCellParams) => {\n if (has_been_split) return toggleSplit(id)\n\n if (field === 'category') {\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_TABLE_CLICK_CATEGORY, { guid })\n return onCategoryClick?.(guid)\n }\n\n return onRowClick?.(guid)\n }\n\n const handleCellKeyDown = (params: GridCellParams, event: React.KeyboardEvent) => {\n if (event.key !== 'Enter' && event.key !== ' ') return\n handleCellClick(params)\n }\n\n if (!isCopyLoaded) {\n return <Loader />\n }\n\n const columns: GridColDef[] = [\n {\n field: 'flag',\n headerName: '',\n minWidth: 32,\n width: 32,\n sortable: false,\n renderCell: (params) => <FlagCell {...params} />,\n renderHeader: () => <span aria-label={copy.transaction_status} role=\"presentation\" />,\n },\n {\n field: 'date',\n headerName: copy.date_title,\n width: 103,\n renderHeader: HeaderCell,\n renderCell: (params) => (params.row.parent_guid ? null : <DateCell {...params} />),\n sortingOrder: ['desc', 'asc'],\n },\n {\n cellClassName: 'vertical-align-center',\n field: 'payee',\n headerName: copy.payee_title,\n flex: 0.33,\n renderHeader: HeaderCell,\n renderCell: (params) => <PayeeCell {...params} excludedText={copy.is_excluded} />,\n sortingOrder: ['asc', 'desc'],\n },\n {\n field: 'category',\n headerName: copy.category_title,\n flex: 0.25,\n renderHeader: HeaderCell,\n renderCell: (params) => <CategoryCell {...params} />,\n sortingOrder: ['asc', 'desc'],\n },\n {\n field: 'account',\n headerName: copy.account_title,\n flex: 0.33,\n renderHeader: HeaderCell,\n renderCell: (params) => (params.row.parent_guid ? null : <AccountCell {...params} />),\n sortingOrder: ['asc', 'desc'],\n },\n {\n field: 'amount',\n headerName: copy.amount_title,\n flex: 0.25,\n renderHeader: HeaderCell,\n renderCell: AmountCell,\n align: 'right',\n headerAlign: 'right',\n sortingOrder: ['asc', 'desc'],\n },\n ]\n\n return (\n <Paper sx={{ height: height, px: 24, width: '100%', boxShadow: 'none' }}>\n <DataGridPro\n columns={columns}\n disableColumnFilter={true}\n disableColumnMenu={true}\n getCellClassName={(params) => {\n if (params.row.parent_guid) return 'split-row'\n if (params.row.is_hidden) return 'excluded-row'\n return ''\n }}\n hideFooter={true}\n initialState={{ sorting: { sortModel: [{ field: 'date', sort: 'desc' }] } }}\n loading={isLoading}\n onCellClick={handleCellClick}\n onCellKeyDown={handleCellKeyDown}\n rows={rows}\n slotProps={{ baseIconButton: { color: 'secondary', sx: { ml: 8 } } }}\n sx={{\n '& .split-row': {\n bgcolor: 'background.default',\n },\n '& .excluded-row': {\n bgcolor: 'grey.50',\n color: 'text.secondary',\n },\n }}\n />\n </Paper>\n )\n}\n\nexport default observer(TransactionTable)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Divider from '@mui/material/Divider'\nimport MenuItem from '@mui/material/MenuItem'\nimport RadioGroup from '@mui/material/RadioGroup'\nimport Stack from '@mui/material/Stack'\n\nimport { TextField } from '@mxenabled/mxui'\nimport { ExpandMore as ExpandMoreIcon } from '@mxenabled/mx-icons'\n\nimport {\n CurrencyInput,\n SelectionBox,\n useAccountStore,\n useGlobalCopyStore,\n} from '../../../../common'\nimport { TransactionType } from '../../../../core'\n\nimport { useTransactionsUiStore } from '../../../context/hooks'\n\nimport { CategoryAction, DateAction, MemoAction, TagsAction } from './actions'\nimport { formatCurrency } from '../../../../core/utils/NumberFormatting'\n\ntype ManualAccount = {\n label: string\n value: string\n}\nconst ManualTransactionDetails = () => {\n const { visibleAccounts: accounts } = useAccountStore()\n const { common: commonCopy, transactions: copy } = useGlobalCopyStore()\n const { manualTransaction, setIsAmountValid, updateManualTransaction } = useTransactionsUiStore()\n\n const [amount, setAmount] = React.useState('')\n const [payee, setPayee] = React.useState('')\n\n const manualAccounts = React.useMemo(\n () => accounts.filter((account) => account.is_manual),\n [accounts],\n ).map((account) => {\n return {\n label: `${account.name} | ${formatCurrency(account.balance, '0,0.00')}`,\n value: account.guid,\n } as ManualAccount\n })\n\n const currencyCopy = {\n error_amount_is_invalid: commonCopy.currency_input.error_amount_is_invalid,\n error_amount_must_be_equal_to: commonCopy.currency_input.error_amount_must_be_equal_to,\n error_amount_must_be_less_than_or_equal_to:\n commonCopy.currency_input.error_amount_must_be_less_than_or_equal_to,\n enter_amount: commonCopy.currency_input.enter_amount,\n }\n\n const handleAmountChanged = (amount: string) => {\n setAmount(amount)\n updateManualTransaction({ ...manualTransaction, amount: Number(amount) })\n }\n\n const handleTransactionTypeChanged = (_event: React.ChangeEvent<HTMLElement>, value: string) => {\n updateManualTransaction({ ...manualTransaction, transaction_type: Number(value) })\n }\n\n const handlePayeeChanged = (payee: string) => {\n setPayee(payee)\n updateManualTransaction({ ...manualTransaction, payee, description: payee })\n }\n\n const handleAccountChanged = (guid: string) => {\n updateManualTransaction({ ...manualTransaction, account_guid: guid })\n }\n\n return (\n <Box className=\"mx-txn-manual-transaction-details\">\n <Stack gap={40} mx={24} my={32}>\n <Stack\n direction=\"row\"\n sx={{ flexDirection: { xs: 'column', sm: 'row' }, gap: { xs: 40, sm: 8 } }}\n >\n <CurrencyInput\n allowDecimals={true}\n amount={amount}\n ariaLabel={copy.amount_title}\n copy={currencyCopy}\n label={copy.amount_title}\n setAmount={handleAmountChanged}\n setHasValidInput={setIsAmountValid}\n sx={{ bgcolor: 'background.paper' }}\n type=\"number\"\n />\n <RadioGroup name=\"TransactionType\" onChange={handleTransactionTypeChanged} row={true}>\n <Stack alignItems=\"center\" direction=\"row\">\n <SelectionBox\n checked={manualTransaction.transaction_type === TransactionType.CREDIT}\n label={copy.manual_transaction_credit_button_label}\n sx={{ ml: { xs: 0, sm: 8 } }}\n tooltip={copy.manual_transaction_credit_button_tooltip}\n value={TransactionType.CREDIT}\n />\n <SelectionBox\n checked={manualTransaction.transaction_type === TransactionType.DEBIT}\n label={copy.manual_transaction_debit_button_label}\n tooltip={copy.manual_transaction_debit_button_tooltip}\n value={TransactionType.DEBIT}\n />\n </Stack>\n </RadioGroup>\n </Stack>\n\n <TextField\n label={copy.payee_title}\n name=\"payee\"\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => handlePayeeChanged(e.target.value)}\n sx={{ bgcolor: 'background.paper' }}\n value={payee}\n />\n\n <TextField\n label={copy.manual_transaction_select_an_account}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\n handleAccountChanged(e.target.value)\n }\n placeholder={copy.manual_transaction_select}\n select={true}\n slotProps={{\n inputLabel: { shrink: true },\n select: { defaultValue: -1, IconComponent: ExpandMoreIcon },\n }}\n sx={{ bgcolor: 'background.paper' }}\n >\n {manualAccounts.map((account) => (\n <MenuItem key={account.value} value={account.value}>\n {account.label}\n </MenuItem>\n ))}\n </TextField>\n </Stack>\n <Divider light={true} />\n <Box bgcolor=\"background.paper\">\n <CategoryAction transaction={manualTransaction} />\n <DateAction transaction={manualTransaction} />\n <MemoAction transaction={manualTransaction} />\n <TagsAction transaction={manualTransaction} />\n </Box>\n </Box>\n )\n}\n\nexport default observer(ManualTransactionDetails)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { Text } from '@mxenabled/mxui'\nimport { Dialog, Loader, useGlobalCopyStore, useGlobalUiStore } from '../../../common'\nimport { DialogProps } from '../../../common/components/dialog/Dialog'\n\nconst AddAccountModal: React.FC<DialogProps> = ({ copy, isOpen, onClose, onPrimaryAction }) => {\n const { common: commonCopy, transactions: modalCopy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n\n return isCopyLoaded ? (\n <Dialog\n copy={{\n title: copy.title,\n }}\n isOpen={isOpen}\n onClose={onClose}\n onPrimaryAction={onPrimaryAction}\n primaryText={modalCopy.add_manual_account}\n secondaryText={commonCopy.cancel_button}\n >\n <Text component=\"p\" sx={{ marginBottom: '20px' }} truncate={false}>\n {modalCopy.add_account_modal_message}\n </Text>\n <Text component=\"p\" truncate={false}>\n {modalCopy.add_account_modal_cta}\n </Text>\n </Dialog>\n ) : (\n <Loader />\n )\n}\n\nexport default observer(AddAccountModal)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\n\nimport { P } from '@mxenabled/mxui'\n\nimport { CategorySelectorDrawer } from '../../../../categories'\n\nimport { Dialog, useCategoryStore, useGlobalCopyStore } from '../../../../common'\nimport type { Transaction } from '../../../../core'\n\nimport { useTransactionStore } from '../../../../common'\nimport { buildDynamicCopy } from '../../../../core/utils/Localization'\n\ninterface EditCategoryActionProps {\n onClose: () => void\n transaction: Transaction\n}\n\nconst EditCategoryAction: React.FC<EditCategoryActionProps> = ({ onClose, transaction }) => {\n const { addOrUpdateTransactionRule, updateTransaction } = useTransactionStore()\n const { transactions: copy } = useGlobalCopyStore()\n\n const { categories } = useCategoryStore()\n\n const [categoryGuid, setCategoryGuid] = React.useState('')\n\n const category = React.useMemo(\n () => categories.find((item) => item.guid === categoryGuid),\n [categoryGuid],\n )\n\n const handleCategoryChanged = async (applyToAll: boolean) => {\n await updateTransaction({ ...transaction, category_guid: categoryGuid })\n if (applyToAll) {\n await addOrUpdateTransactionRule(categoryGuid, transaction)\n }\n\n setCategoryGuid('')\n onClose()\n }\n\n return (\n <Box className=\"mx-txn-edit-category-action\">\n <CategorySelectorDrawer\n initialSelected={transaction.category_guid}\n onClose={onClose}\n onSelect={(guid: string) => setCategoryGuid(guid)}\n showDrawer={!!transaction}\n title={copy.actions_select_a_category}\n />\n <Dialog\n copy={{\n title: buildDynamicCopy(\n copy.actions_apply_to_all_transaction_types,\n transaction.description,\n ) as string,\n }}\n isOpen={!!categoryGuid}\n onClose={() => handleCategoryChanged(false)}\n onPrimaryAction={() => handleCategoryChanged(true)}\n onSecondaryAction={() => handleCategoryChanged(false)}\n primaryText={copy.actions_apply_to_all}\n secondaryText={copy.actions_this_time_only}\n >\n <P variant=\"subtitle1\">\n {\n buildDynamicCopy(\n copy.actions_all_past_and_future,\n transaction.description,\n category?.name,\n ) as string\n }\n </P>\n </Dialog>\n </Box>\n )\n}\n\nexport default observer(EditCategoryAction)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { getUnixTime } from 'date-fns/getUnixTime'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport type { DateRange } from '@mui/x-date-pickers-pro'\n\nimport {\n ANALYTICS_EVENTS,\n Drawer,\n Loader,\n SearchBox,\n useAccountStore,\n useAppConfig,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useScreenSize,\n useTransactionStore,\n useUserStore,\n useWidgetLoadTimer,\n WidgetContainer,\n} from '../common'\nimport { WidgetProps } from '../core'\n\nimport { useTransactionsUiStore } from './context/hooks'\nimport { DEFAULT_TRANSACTION } from '../core/constants/Transaction'\nimport { exportTransactionsToCSV } from '../core/utils/TransactionUtils'\nimport ConnectDrawer from '../common/components/ConnectDrawer'\nimport ManualTransactionDetails from './components/shared/transactiondetails/ManualTransactionDetails'\nimport TransactionDetails from './components/shared/TransactionDetails'\nimport TransactionList from './components/shared/TransactionList'\nimport TransactionTable from './components/shared/TransactionTable'\nimport AddAccountModal from './components/transactionwidget/AddAccountModal'\nimport EditCategoryAction from './components/transactionwidget/actions/EditCategoryAction'\n\nimport { useCategoryUiStore } from '../categories'\nimport { useAriaLive } from '../common/hooks/useAriaLive'\nimport { SkeletonLoader } from '../common/components/SkeletonLoader'\nimport { buildDynamicCopy } from '../core/utils/Localization'\n\nconst HEADER_HEIGHT = 120\n\nenum Drawers {\n AddTransaction = 'addTransaction',\n Category = 'category',\n Transaction = 'transaction',\n}\n\ninterface TransactionWidgetProps extends WidgetProps {\n height?: string | number\n showInsights?: boolean\n}\n\nconst TransactionWidget: React.FC<TransactionWidgetProps> = ({\n onBackClick,\n onMenuClick,\n height = '100dvh',\n showInsights = false,\n sx = {},\n}) => {\n const { manualAccounts, refreshAccounts } = useAccountStore()\n const { is_mobile_webview, clientConfig, config } = useAppConfig()\n const { setSearchValue: setCategorySearchValue } = useCategoryUiStore()\n const { onEvent } = useEvent()\n const { common: commonCopy, transactions: copy } = useGlobalCopyStore()\n const { displayedDateRange, isInitialized, selectedAccountGuids, setDisplayedDate } =\n useGlobalUiStore()\n const { isDesktop, isTablet } = useScreenSize()\n const theme = useTheme()\n const {\n addTransaction,\n filter,\n isTransactionDataLoaded,\n loadTransactionData,\n setFilter,\n sortedTransactions,\n sortedTransactionsWithSplits,\n tags,\n detailedTransactions: transactions,\n updateTransaction,\n } = useTransactionStore()\n const {\n clearExpandedSplits,\n isAmountValid,\n manualTransaction,\n searchValue,\n setSearchValue,\n setShowInsights,\n updateManualTransaction,\n } = useTransactionsUiStore()\n const { userProfile } = useUserStore()\n\n const [drawerOpen, setDrawerOpen] = React.useState('')\n const [transactionGuid, setTransactionGuid] = React.useState('')\n\n const [addManualAccountModalOpen, setAddManualAccountModalOpen] = React.useState(false)\n const [showConnectWidget, setShowConnectWidget] = React.useState(false)\n\n const { announce, ariaLive } = useAriaLive()\n\n const selected_account_guid = clientConfig?.transactions?.selected_account_guid\n\n useWidgetLoadTimer({\n widgetName: 'TransactionWidget',\n isLoaded: isTransactionDataLoaded,\n })\n\n React.useEffect(() => {\n if (!isTransactionDataLoaded) {\n loadTransactionData().finally()\n }\n\n // Set the displayed date to the current month\n const startDate = startOfMonth(startOfToday())\n const endDate = endOfMonth(startOfToday())\n setDisplayedDate(startDate, endDate)\n\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_VIEW)\n }, [])\n\n React.useEffect(() => {\n if (isInitialized) {\n // Update the filter whenever the display date or account filter changes\n setFilter({\n accounts: selected_account_guid ? [selected_account_guid] : selectedAccountGuids,\n dateRange: { start: displayedDateRange.start, end: displayedDateRange.end },\n searchTerm: searchValue,\n })\n }\n }, [isInitialized, displayedDateRange, selectedAccountGuids])\n\n React.useEffect(() => {\n setShowInsights(showInsights)\n }, [showInsights])\n\n React.useEffect(() => {\n if (isInitialized) {\n announce(\n buildDynamicCopy(copy.showing_transactions_count, sortedTransactions.length) as string,\n )\n }\n }, [isInitialized, sortedTransactions])\n\n const transaction = transactionGuid\n ? transactions.find((transaction) => transaction.guid === transactionGuid)\n : undefined\n\n const isTransactionValid =\n isAmountValid &&\n Boolean(manualTransaction.payee) &&\n Boolean(manualTransaction.account_guid) &&\n Boolean(manualTransaction.category_guid)\n\n const handleDateChanged = (range: DateRange<Date>) => {\n clearExpandedSplits()\n setDisplayedDate(range[0] as Date, range[1] as Date)\n }\n\n const handleSearch = (searchTerm: string) => {\n setSearchValue(searchTerm)\n setFilter({\n ...filter,\n searchTerm,\n })\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_SEARCH, { search_term: searchTerm })\n }\n\n const handleExportCsvClick = () => {\n exportTransactionsToCSV(sortedTransactionsWithSplits, tags)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_EXPORT)\n }\n\n const handleAddTransactionClick = () => {\n if (manualAccounts.length > 0) {\n updateManualTransaction({\n ...DEFAULT_TRANSACTION,\n date: getUnixTime(startOfToday()),\n user_guid: userProfile?.user_guid || '',\n })\n\n setDrawerOpen(Drawers.AddTransaction)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_ADD)\n } else {\n setAddManualAccountModalOpen(true)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_ADD_MANUAL_ACCOUNT_MODAL)\n }\n }\n\n const handleAddTransaction = async () => {\n if (isTransactionValid) {\n await addTransaction(manualTransaction)\n }\n\n setDrawerOpen('')\n }\n\n const handleAddManualAccountClick = () => {\n setAddManualAccountModalOpen(false)\n setShowConnectWidget(true)\n }\n\n const handleConnectWidgetClose = async () => {\n setShowConnectWidget(false)\n await refreshAccounts()\n }\n\n const handleTransactionDrawerClose = async () => {\n // mark transaction as viewed\n if (transaction && !transaction.has_been_viewed) {\n await updateTransaction({ ...transaction, has_been_viewed: true })\n }\n setDrawerOpen('')\n }\n\n if (!isInitialized) {\n return <Loader />\n }\n\n const actions = []\n\n if (!is_mobile_webview && (isDesktop || isTablet)) {\n actions.push({\n iconName: 'open_in_new',\n label: copy.export_csv_btn,\n onClick: handleExportCsvClick,\n })\n }\n\n if (config.show_connections_widget_in_master) {\n actions.push({\n iconName: 'add',\n label: copy.add_transaction_btn,\n onClick: handleAddTransactionClick,\n })\n }\n\n return (\n <WidgetContainer\n actions={actions}\n calendarActions={{\n onRangeChanged: handleDateChanged,\n }}\n hasDivider={true}\n onAccountsFilterClick={() => onEvent(ANALYTICS_EVENTS.ACCOUNTS_CLICK_FILTER)}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n showAccountFilter={!selected_account_guid}\n sx={sx}\n title={copy.transactions_title}\n >\n {!isTransactionDataLoaded ? (\n <SkeletonLoader sx={{ m: 48 }} variant=\"list\" />\n ) : (\n <Stack>\n {ariaLive}\n <Box>\n <SearchBox\n onChange={handleSearch}\n placeholder={copy.action_bar_search_placeholder}\n searchValue={searchValue}\n />\n </Box>\n\n <Box\n sx={{\n [theme.breakpoints.down('md')]: { display: 'none' },\n [theme.breakpoints.up('md')]: { display: 'block' },\n }}\n >\n <TransactionTable\n height={`calc(${height} - ${HEADER_HEIGHT}px)`}\n onCategoryClick={(guid: string) => {\n setTransactionGuid(guid)\n setDrawerOpen(Drawers.Category)\n }}\n onRowClick={(guid: string) => {\n setTransactionGuid(guid)\n setDrawerOpen(Drawers.Transaction)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_DETAILS, { transaction_guid: guid })\n }}\n />\n </Box>\n <Box\n sx={{\n [theme.breakpoints.down('md')]: { display: 'block' },\n [theme.breakpoints.up('md')]: { display: 'none' },\n }}\n >\n <TransactionList\n height={`calc(${height} - ${HEADER_HEIGHT}px)`}\n onClick={(guid: string) => {\n setTransactionGuid(guid)\n setDrawerOpen(Drawers.Transaction)\n }}\n showInsights={showInsights}\n />\n </Box>\n </Stack>\n )}\n\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={drawerOpen === Drawers.Transaction && Boolean(transaction)}\n onClose={handleTransactionDrawerClose}\n title={copy.details_title}\n >\n {transaction && <TransactionDetails transaction={transaction} />}\n </Drawer>\n {transaction && drawerOpen === Drawers.Category && (\n <EditCategoryAction\n onClose={() => {\n setCategorySearchValue('')\n setDrawerOpen('')\n setTransactionGuid('')\n }}\n transaction={transaction}\n />\n )}\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={drawerOpen === Drawers.AddTransaction}\n isPrimaryDisabled={!isTransactionValid}\n onClose={() => setDrawerOpen('')}\n onPrimaryAction={handleAddTransaction}\n title={copy.add_transaction_title}\n >\n <ManualTransactionDetails />\n </Drawer>\n <AddAccountModal\n copy={{ title: copy.add_manual_account }}\n isOpen={addManualAccountModalOpen}\n onClose={() => {\n setAddManualAccountModalOpen(false)\n }}\n onPrimaryAction={handleAddManualAccountClick}\n />\n <ConnectDrawer\n onClose={handleConnectWidgetClose}\n showConnectWidget={showConnectWidget}\n title={copy.add_manual_account}\n />\n </WidgetContainer>\n )\n}\n\nexport default observer(TransactionWidget)\n"],"names":["AccountCell","params","jsxs","Text","AmountCell","associatedBeats","useTransactionStore","showInsights","useTransactionsUiStore","amount","transaction_type","beat","isCredit","TransactionType","Stack","formatCurrency","jsx","CategoryCell","copy","useGlobalCopyStore","isHover","setIsHover","React","Icon","CategoryCell$1","observer","DateCell","formatDate","fromUnixUTC","DATE_FORMATS_INTL","FlagCell","theme","useTheme","isDarkMode","transactionsCopy","is_flagged","is_hidden","has_been_viewed","parent_guid","hasNotBeenViewed","Box","FlagCell$1","HeaderCell","PayeeCell","MerchantLogo","TransactionTable","height","onCategoryClick","onRowClick","onEvent","useEvent","isCopyLoaded","useGlobalUiStore","isLoading","sortedTransactions","clearExpandedSplits","toggleSplit","rows","transaction","handleCellClick","id","guid","has_been_split","field","ANALYTICS_EVENTS","handleCellKeyDown","event","Loader","columns","Paper","DataGridPro","TransactionTable$1","ManualTransactionDetails","accounts","useAccountStore","commonCopy","manualTransaction","setIsAmountValid","updateManualTransaction","setAmount","payee","setPayee","manualAccounts","account","currencyCopy","handleAmountChanged","handleTransactionTypeChanged","_event","value","handlePayeeChanged","handleAccountChanged","CurrencyInput","RadioGroup","SelectionBox","TextField","e","ExpandMoreIcon","MenuItem","Divider","CategoryAction","DateAction","MemoAction","TagsAction","ManualTransactionDetails$1","AddAccountModal","isOpen","onClose","onPrimaryAction","modalCopy","Dialog","AddAccountModal$1","EditCategoryAction","addOrUpdateTransactionRule","updateTransaction","categories","useCategoryStore","categoryGuid","setCategoryGuid","category","item","handleCategoryChanged","applyToAll","CategorySelectorDrawer","buildDynamicCopy","P","EditCategoryAction$1","HEADER_HEIGHT","TransactionWidget","onBackClick","onMenuClick","sx","refreshAccounts","is_mobile_webview","clientConfig","config","useAppConfig","setCategorySearchValue","useCategoryUiStore","displayedDateRange","isInitialized","selectedAccountGuids","setDisplayedDate","isDesktop","isTablet","useScreenSize","addTransaction","filter","isTransactionDataLoaded","loadTransactionData","setFilter","sortedTransactionsWithSplits","tags","transactions","isAmountValid","searchValue","setSearchValue","setShowInsights","userProfile","useUserStore","drawerOpen","setDrawerOpen","transactionGuid","setTransactionGuid","addManualAccountModalOpen","setAddManualAccountModalOpen","showConnectWidget","setShowConnectWidget","announce","ariaLive","useAriaLive","selected_account_guid","useWidgetLoadTimer","startDate","startOfMonth","startOfToday","endDate","endOfMonth","isTransactionValid","handleDateChanged","range","handleSearch","searchTerm","handleExportCsvClick","exportTransactionsToCSV","handleAddTransactionClick","DEFAULT_TRANSACTION","getUnixTime","handleAddTransaction","handleAddManualAccountClick","handleConnectWidgetClose","handleTransactionDrawerClose","actions","WidgetContainer","SearchBox","TransactionList","SkeletonLoader","Drawer","TransactionDetails","ConnectDrawer","TransactionWidget_default"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../src/transactions/components/shared/transactiontable/cells/AccountCell.tsx","../../src/transactions/components/shared/transactiontable/cells/AmountCell.tsx","../../src/transactions/components/shared/transactiontable/cells/CategoryCell.tsx","../../src/transactions/components/shared/transactiontable/cells/DateCell.tsx","../../src/transactions/components/shared/transactiontable/cells/FlagCell.tsx","../../src/transactions/components/shared/transactiontable/cells/HeaderCell.tsx","../../src/transactions/components/shared/transactiontable/cells/PayeeCell.tsx","../../src/transactions/components/shared/TransactionTable.tsx","../../src/transactions/components/shared/transactiondetails/ManualTransactionDetails.tsx","../../src/transactions/components/transactionwidget/AddAccountModal.tsx","../../src/transactions/components/transactionwidget/actions/EditCategoryAction.tsx","../../src/transactions/TransactionWidget.tsx"],"sourcesContent":["import { GridCellParams } from '@mui/x-data-grid'\n\nimport { Text } from '@mxenabled/mxui'\n\nconst AccountCell = (params: GridCellParams) => (\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {`${params.row.account}`}\n {params.row.number && ` | ${params.row.number}`}\n </Text>\n)\n\nexport default AccountCell\n","import Stack from '@mui/material/Stack'\n\nimport { GridCellParams } from '@mui/x-data-grid'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { useTransactionStore } from '../../../../../common'\nimport { TransactionType } from '../../../../../core'\n\nimport { useTransactionsUiStore } from '../../../../context/hooks'\nimport { formatCurrency } from '../../../../../core/utils/NumberFormatting'\n\nconst AmountCell = (params: GridCellParams) => {\n const { associatedBeats } = useTransactionStore()\n const { showInsights } = useTransactionsUiStore()\n\n const { amount, transaction_type } = params.row\n const beat = associatedBeats.find((beat) => beat.associated_transaction_guid === params.row.guid)\n\n const isCredit = transaction_type === TransactionType.CREDIT\n\n return (\n <Stack alignItems=\"flex-end\" tabIndex={params.tabIndex}>\n <Text bold={isCredit} color={isCredit ? 'success.main' : 'text.primary'} variant=\"body2\">\n {isCredit ? '+' : ''}\n {formatCurrency(amount, '0,0.00')}\n </Text>\n {beat && showInsights && (\n <Text bold={true} color=\"primary.light\" variant=\"caption\">\n {beat.short_title}\n </Text>\n )}\n </Stack>\n )\n}\n\nexport default AmountCell\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { GridCellParams } from '@mui/x-data-grid-pro'\n\nimport { Icon, Text } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../../../../common'\n\nconst CategoryCell = (params: GridCellParams) => {\n const { transactions: copy } = useGlobalCopyStore()\n const [isHover, setIsHover] = React.useState(false)\n\n return (\n <Stack\n alignItems=\"center\"\n direction=\"row\"\n gap={8}\n height=\"100%\"\n onMouseEnter={() => setIsHover(true)}\n onMouseLeave={() => setIsHover(false)}\n width=\"100%\"\n >\n {params.row.has_been_split && <Icon name=\"call_split\" size={16} />}\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {params.row.has_been_split ? copy.split_transaction_category_label : params.row.category}\n </Text>\n {!params.row.has_been_split && isHover && (\n <Icon name=\"edit\" sx={{ color: 'action.active' }} />\n )}\n </Stack>\n )\n}\n\nexport default observer(CategoryCell)\n","import { fromUnixTime } from 'date-fns/fromUnixTime'\n\nimport { GridCellParams } from '@mui/x-data-grid'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { DATE_FORMATS_INTL, formatDate } from '../../../../../core/constants'\n\nconst DateCell = (params: GridCellParams) => {\n return (\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {formatDate(fromUnixTime(params.row.date), DATE_FORMATS_INTL.MONTH_DAY)}\n </Text>\n )\n}\n\nexport default DateCell\n","import Box from '@mui/material/Box'\nimport { observer } from 'mobx-react-lite'\n\nimport { useTheme } from '@mui/material/styles'\nimport { GridRenderCellParams } from '@mui/x-data-grid-pro'\nimport { Icon } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../../../../common'\n\nconst FlagCell = (params: GridRenderCellParams) => {\n const theme = useTheme()\n const isDarkMode = theme.palette.mode === 'dark'\n\n const { transactions: transactionsCopy } = useGlobalCopyStore()\n const { is_flagged, is_hidden, has_been_viewed, parent_guid } = params.row\n const isChildOfSplit = !!parent_guid\n const hasNotBeenViewed = !has_been_viewed && !isChildOfSplit\n\n return (\n <Box\n aria-label={is_hidden ? transactionsCopy.is_excluded : transactionsCopy.is_flagged}\n tabIndex={params.tabIndex}\n >\n {is_flagged && (\n <Icon\n fill={true}\n name=\"flag\"\n size={16}\n sx={{ color: isDarkMode ? 'primary.main' : 'warning.dark' }}\n />\n )}\n {!is_flagged && is_hidden && <Icon name=\"visibility_off\" size={16} />}\n {hasNotBeenViewed && (\n <svg\n data-testid=\"svg\"\n style={{\n display: 'inline-block',\n height: 16,\n fill: theme.palette.primary.light,\n verticalAlign: 'middle',\n width: 16,\n }}\n viewBox=\"0 0 512 512\"\n >\n <circle cx=\"256\" cy=\"256\" r=\"60\" />\n </svg>\n )}\n </Box>\n )\n}\n\nexport default observer(FlagCell)\n","import { Text } from '@mxenabled/mxui'\n\nimport { GridColumnHeaderParams } from '@mui/x-data-grid'\n\nconst HeaderCell = (params: GridColumnHeaderParams) => (\n <Text fontWeight={600} variant=\"body2\">\n {params.colDef.headerName}\n </Text>\n)\n\nexport default HeaderCell\n","import Stack from '@mui/material/Stack'\n\nimport { GridCellParams } from '@mui/x-data-grid'\n\nimport { MerchantLogo, Text } from '@mxenabled/mxui'\n\ninterface PayeeCellProps extends GridCellParams {\n excludedText: string\n}\n\nconst PayeeCell = (params: PayeeCellProps) => {\n return (\n <Stack alignItems=\"center\" direction=\"row\" gap={8}>\n <MerchantLogo\n categoryGuid={params.row.top_level_category_guid || ''}\n merchantGuid={params.row.merchant_guid || ''}\n />\n <Stack alignItems=\"flex-start\" direction=\"column\">\n <Text tabIndex={params.tabIndex} variant=\"body2\">\n {params.row.payee}\n </Text>\n {params.row.is_hidden && <Text variant=\"caption\">{params.excludedText}</Text>}\n </Stack>\n </Stack>\n )\n}\n\nexport default PayeeCell\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Paper from '@mui/material/Paper'\nimport { DataGridPro, GridCellParams, GridColDef } from '@mui/x-data-grid-pro'\n\nimport {\n ANALYTICS_EVENTS,\n Loader,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useTransactionStore,\n} from '../../../common'\n\nimport { useTransactionsUiStore } from '../../context/hooks'\n\nimport {\n AccountCell,\n AmountCell,\n CategoryCell,\n DateCell,\n FlagCell,\n HeaderCell,\n PayeeCell,\n} from './transactiontable/cells'\n\ninterface TransactionTableProps {\n height?: number | string\n onCategoryClick?: (guid: string) => void\n onRowClick?: (guid: string) => void\n}\n\nconst TransactionTable: React.FC<TransactionTableProps> = ({\n height = '100dvh',\n onCategoryClick,\n onRowClick,\n}) => {\n const { onEvent } = useEvent()\n const { transactions: copy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n const { isLoading, sortedTransactions } = useTransactionStore()\n const { clearExpandedSplits, toggleSplit } = useTransactionsUiStore()\n\n React.useEffect(() => {\n return () => clearExpandedSplits()\n }, [])\n\n const rows = React.useMemo(\n () =>\n sortedTransactions.map((transaction) => ({\n id: transaction.guid,\n isHovering: false,\n ...transaction,\n })),\n [sortedTransactions],\n )\n\n const handleCellClick = ({ row: { id, guid, has_been_split }, field }: GridCellParams) => {\n if (has_been_split) return toggleSplit(id)\n\n if (field === 'category') {\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_TABLE_CLICK_CATEGORY, { guid })\n return onCategoryClick?.(guid)\n }\n\n return onRowClick?.(guid)\n }\n\n const handleCellKeyDown = (params: GridCellParams, event: React.KeyboardEvent) => {\n if (event.key !== 'Enter' && event.key !== ' ') return\n handleCellClick(params)\n }\n\n if (!isCopyLoaded) {\n return <Loader />\n }\n\n const columns: GridColDef[] = [\n {\n field: 'flag',\n headerName: '',\n minWidth: 32,\n width: 32,\n sortable: false,\n renderCell: (params) => <FlagCell {...params} />,\n renderHeader: () => <span aria-label={copy.transaction_status} role=\"presentation\" />,\n },\n {\n field: 'date',\n headerName: copy.date_title,\n width: 103,\n renderHeader: HeaderCell,\n renderCell: (params) => (params.row.parent_guid ? null : <DateCell {...params} />),\n sortingOrder: ['desc', 'asc'],\n },\n {\n cellClassName: 'vertical-align-center',\n field: 'payee',\n headerName: copy.payee_title,\n flex: 0.33,\n renderHeader: HeaderCell,\n renderCell: (params) => <PayeeCell {...params} excludedText={copy.is_excluded} />,\n sortingOrder: ['asc', 'desc'],\n },\n {\n field: 'category',\n headerName: copy.category_title,\n flex: 0.25,\n renderHeader: HeaderCell,\n renderCell: (params) => <CategoryCell {...params} />,\n sortingOrder: ['asc', 'desc'],\n },\n {\n field: 'account',\n headerName: copy.account_title,\n flex: 0.33,\n renderHeader: HeaderCell,\n renderCell: (params) => (params.row.parent_guid ? null : <AccountCell {...params} />),\n sortingOrder: ['asc', 'desc'],\n },\n {\n field: 'amount',\n headerName: copy.amount_title,\n flex: 0.25,\n renderHeader: HeaderCell,\n renderCell: AmountCell,\n align: 'right',\n headerAlign: 'right',\n sortingOrder: ['asc', 'desc'],\n },\n ]\n\n return (\n <Paper sx={{ height: height, px: 24, width: '100%', boxShadow: 'none' }}>\n <DataGridPro\n columns={columns}\n disableColumnFilter={true}\n disableColumnMenu={true}\n getCellClassName={(params) => {\n if (params.row.parent_guid) return 'split-row'\n if (params.row.is_hidden) return 'excluded-row'\n return ''\n }}\n hideFooter={true}\n initialState={{ sorting: { sortModel: [{ field: 'date', sort: 'desc' }] } }}\n loading={isLoading}\n onCellClick={handleCellClick}\n onCellKeyDown={handleCellKeyDown}\n rows={rows}\n slotProps={{ baseIconButton: { color: 'secondary', sx: { ml: 8 } } }}\n sx={{\n '& .split-row': {\n bgcolor: 'background.default',\n },\n '& .excluded-row': {\n bgcolor: 'grey.50',\n color: 'text.secondary',\n },\n }}\n />\n </Paper>\n )\n}\n\nexport default observer(TransactionTable)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Divider from '@mui/material/Divider'\nimport MenuItem from '@mui/material/MenuItem'\nimport RadioGroup from '@mui/material/RadioGroup'\nimport Stack from '@mui/material/Stack'\n\nimport { TextField } from '@mxenabled/mxui'\nimport { ExpandMore as ExpandMoreIcon } from '@mxenabled/mx-icons'\n\nimport {\n CurrencyInput,\n SelectionBox,\n useAccountStore,\n useGlobalCopyStore,\n} from '../../../../common'\nimport { TransactionType } from '../../../../core'\n\nimport { useTransactionsUiStore } from '../../../context/hooks'\n\nimport { CategoryAction, DateAction, MemoAction, TagsAction } from './actions'\nimport { formatCurrency } from '../../../../core/utils/NumberFormatting'\n\ntype ManualAccount = {\n label: string\n value: string\n}\nconst ManualTransactionDetails = () => {\n const { visibleAccounts: accounts } = useAccountStore()\n const { common: commonCopy, transactions: copy } = useGlobalCopyStore()\n const { manualTransaction, setIsAmountValid, updateManualTransaction } = useTransactionsUiStore()\n\n const [amount, setAmount] = React.useState('')\n const [payee, setPayee] = React.useState('')\n\n const manualAccounts = React.useMemo(\n () => accounts.filter((account) => account.is_manual),\n [accounts],\n ).map((account) => {\n return {\n label: `${account.name} | ${formatCurrency(account.balance, '0,0.00')}`,\n value: account.guid,\n } as ManualAccount\n })\n\n const currencyCopy = {\n error_amount_is_invalid: commonCopy.currency_input.error_amount_is_invalid,\n error_amount_must_be_equal_to: commonCopy.currency_input.error_amount_must_be_equal_to,\n error_amount_must_be_less_than_or_equal_to:\n commonCopy.currency_input.error_amount_must_be_less_than_or_equal_to,\n enter_amount: commonCopy.currency_input.enter_amount,\n }\n\n const handleAmountChanged = (amount: string) => {\n setAmount(amount)\n updateManualTransaction({ ...manualTransaction, amount: Number(amount) })\n }\n\n const handleTransactionTypeChanged = (_event: React.ChangeEvent<HTMLElement>, value: string) => {\n updateManualTransaction({ ...manualTransaction, transaction_type: Number(value) })\n }\n\n const handlePayeeChanged = (payee: string) => {\n setPayee(payee)\n updateManualTransaction({ ...manualTransaction, payee, description: payee })\n }\n\n const handleAccountChanged = (guid: string) => {\n updateManualTransaction({ ...manualTransaction, account_guid: guid })\n }\n\n return (\n <Box className=\"mx-txn-manual-transaction-details\">\n <Stack gap={40} mx={24} my={32}>\n <Stack\n direction=\"row\"\n sx={{ flexDirection: { xs: 'column', sm: 'row' }, gap: { xs: 40, sm: 8 } }}\n >\n <CurrencyInput\n allowDecimals={true}\n amount={amount}\n ariaLabel={copy.amount_title}\n copy={currencyCopy}\n label={copy.amount_title}\n setAmount={handleAmountChanged}\n setHasValidInput={setIsAmountValid}\n sx={{ bgcolor: 'background.paper' }}\n type=\"number\"\n />\n <RadioGroup name=\"TransactionType\" onChange={handleTransactionTypeChanged} row={true}>\n <Stack alignItems=\"center\" direction=\"row\">\n <SelectionBox\n checked={manualTransaction.transaction_type === TransactionType.CREDIT}\n label={copy.manual_transaction_credit_button_label}\n sx={{ ml: { xs: 0, sm: 8 } }}\n tooltip={copy.manual_transaction_credit_button_tooltip}\n value={TransactionType.CREDIT}\n />\n <SelectionBox\n checked={manualTransaction.transaction_type === TransactionType.DEBIT}\n label={copy.manual_transaction_debit_button_label}\n tooltip={copy.manual_transaction_debit_button_tooltip}\n value={TransactionType.DEBIT}\n />\n </Stack>\n </RadioGroup>\n </Stack>\n\n <TextField\n label={copy.payee_title}\n name=\"payee\"\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => handlePayeeChanged(e.target.value)}\n sx={{ bgcolor: 'background.paper' }}\n value={payee}\n />\n\n <TextField\n label={copy.manual_transaction_select_an_account}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\n handleAccountChanged(e.target.value)\n }\n placeholder={copy.manual_transaction_select}\n select={true}\n slotProps={{\n inputLabel: { shrink: true },\n select: { defaultValue: -1, IconComponent: ExpandMoreIcon },\n }}\n sx={{ bgcolor: 'background.paper' }}\n >\n {manualAccounts.map((account) => (\n <MenuItem key={account.value} value={account.value}>\n {account.label}\n </MenuItem>\n ))}\n </TextField>\n </Stack>\n <Divider light={true} />\n <Box bgcolor=\"background.paper\">\n <CategoryAction transaction={manualTransaction} />\n <DateAction transaction={manualTransaction} />\n <MemoAction transaction={manualTransaction} />\n <TagsAction transaction={manualTransaction} />\n </Box>\n </Box>\n )\n}\n\nexport default observer(ManualTransactionDetails)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { Text } from '@mxenabled/mxui'\nimport { Dialog, Loader, useGlobalCopyStore, useGlobalUiStore } from '../../../common'\nimport { DialogProps } from '../../../common/components/dialog/Dialog'\n\nconst AddAccountModal: React.FC<DialogProps> = ({ copy, isOpen, onClose, onPrimaryAction }) => {\n const { common: commonCopy, transactions: modalCopy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n\n return isCopyLoaded ? (\n <Dialog\n copy={{\n title: copy.title,\n }}\n isOpen={isOpen}\n onClose={onClose}\n onPrimaryAction={onPrimaryAction}\n primaryText={modalCopy.add_manual_account}\n secondaryText={commonCopy.cancel_button}\n >\n <Text component=\"p\" sx={{ marginBottom: '20px' }} truncate={false}>\n {modalCopy.add_account_modal_message}\n </Text>\n <Text component=\"p\" truncate={false}>\n {modalCopy.add_account_modal_cta}\n </Text>\n </Dialog>\n ) : (\n <Loader />\n )\n}\n\nexport default observer(AddAccountModal)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\n\nimport { P } from '@mxenabled/mxui'\n\nimport { CategorySelectorDrawer } from '../../../../categories'\n\nimport { Dialog, useCategoryStore, useGlobalCopyStore } from '../../../../common'\nimport type { Transaction } from '../../../../core'\n\nimport { useTransactionStore } from '../../../../common'\nimport { buildDynamicCopy } from '../../../../core/utils/Localization'\n\ninterface EditCategoryActionProps {\n onClose: () => void\n transaction: Transaction\n}\n\nconst EditCategoryAction: React.FC<EditCategoryActionProps> = ({ onClose, transaction }) => {\n const { addOrUpdateTransactionRule, updateTransaction } = useTransactionStore()\n const { transactions: copy } = useGlobalCopyStore()\n\n const { categories } = useCategoryStore()\n\n const [categoryGuid, setCategoryGuid] = React.useState('')\n\n const category = React.useMemo(\n () => categories.find((item) => item.guid === categoryGuid),\n [categoryGuid],\n )\n\n const handleCategoryChanged = async (applyToAll: boolean) => {\n await updateTransaction({ ...transaction, category_guid: categoryGuid })\n if (applyToAll) {\n await addOrUpdateTransactionRule(categoryGuid, transaction)\n }\n\n setCategoryGuid('')\n onClose()\n }\n\n return (\n <Box className=\"mx-txn-edit-category-action\">\n <CategorySelectorDrawer\n initialSelected={transaction.category_guid}\n onClose={onClose}\n onSelect={(guid: string) => setCategoryGuid(guid)}\n showDrawer={!!transaction}\n title={copy.actions_select_a_category}\n />\n <Dialog\n copy={{\n title: buildDynamicCopy(\n copy.actions_apply_to_all_transaction_types,\n transaction.description,\n ) as string,\n }}\n isOpen={!!categoryGuid}\n onClose={() => handleCategoryChanged(false)}\n onPrimaryAction={() => handleCategoryChanged(true)}\n onSecondaryAction={() => handleCategoryChanged(false)}\n primaryText={copy.actions_apply_to_all}\n secondaryText={copy.actions_this_time_only}\n >\n <P variant=\"subtitle1\">\n {\n buildDynamicCopy(\n copy.actions_all_past_and_future,\n transaction.description,\n category?.name,\n ) as string\n }\n </P>\n </Dialog>\n </Box>\n )\n}\n\nexport default observer(EditCategoryAction)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { endOfMonth } from 'date-fns/endOfMonth'\nimport { getUnixTime } from 'date-fns/getUnixTime'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport { useTheme } from '@mui/material/styles'\n\nimport type { DateRange } from '@mui/x-date-pickers-pro'\n\nimport {\n ANALYTICS_EVENTS,\n Drawer,\n Loader,\n SearchBox,\n useAccountStore,\n useAppConfig,\n useEvent,\n useGlobalCopyStore,\n useGlobalUiStore,\n useScreenSize,\n useTransactionStore,\n useUserStore,\n useWidgetLoadTimer,\n WidgetContainer,\n} from '../common'\nimport { WidgetProps } from '../core'\n\nimport { useTransactionsUiStore } from './context/hooks'\nimport { DEFAULT_TRANSACTION } from '../core/constants/Transaction'\nimport { exportTransactionsToCSV } from '../core/utils/TransactionUtils'\nimport ConnectDrawer from '../common/components/ConnectDrawer'\nimport ManualTransactionDetails from './components/shared/transactiondetails/ManualTransactionDetails'\nimport TransactionDetails from './components/shared/TransactionDetails'\nimport TransactionList from './components/shared/TransactionList'\nimport TransactionTable from './components/shared/TransactionTable'\nimport AddAccountModal from './components/transactionwidget/AddAccountModal'\nimport EditCategoryAction from './components/transactionwidget/actions/EditCategoryAction'\n\nimport { useCategoryUiStore } from '../categories'\nimport { useAriaLive } from '../common/hooks/useAriaLive'\nimport { SkeletonLoader } from '../common/components/SkeletonLoader'\nimport { buildDynamicCopy } from '../core/utils/Localization'\n\nconst HEADER_HEIGHT = 120\n\nenum Drawers {\n AddTransaction = 'addTransaction',\n Category = 'category',\n Transaction = 'transaction',\n}\n\ninterface TransactionWidgetProps extends WidgetProps {\n height?: string | number\n showInsights?: boolean\n}\n\nconst TransactionWidget: React.FC<TransactionWidgetProps> = ({\n onBackClick,\n onMenuClick,\n height = '100dvh',\n showInsights = false,\n sx = {},\n}) => {\n const { manualAccounts, refreshAccounts } = useAccountStore()\n const { is_mobile_webview, clientConfig, config } = useAppConfig()\n const { setSearchValue: setCategorySearchValue } = useCategoryUiStore()\n const { onEvent } = useEvent()\n const { common: commonCopy, transactions: copy } = useGlobalCopyStore()\n const { displayedDateRange, isInitialized, selectedAccountGuids, setDisplayedDate } =\n useGlobalUiStore()\n const { isDesktop, isTablet } = useScreenSize()\n const theme = useTheme()\n const {\n addTransaction,\n filter,\n isTransactionDataLoaded,\n loadTransactionData,\n setFilter,\n sortedTransactions,\n sortedTransactionsWithSplits,\n tags,\n detailedTransactions: transactions,\n updateTransaction,\n } = useTransactionStore()\n const {\n clearExpandedSplits,\n isAmountValid,\n manualTransaction,\n searchValue,\n setSearchValue,\n setShowInsights,\n updateManualTransaction,\n } = useTransactionsUiStore()\n const { userProfile } = useUserStore()\n\n const [drawerOpen, setDrawerOpen] = React.useState('')\n const [transactionGuid, setTransactionGuid] = React.useState('')\n\n const [addManualAccountModalOpen, setAddManualAccountModalOpen] = React.useState(false)\n const [showConnectWidget, setShowConnectWidget] = React.useState(false)\n\n const { announce, ariaLive } = useAriaLive()\n\n const selected_account_guid = clientConfig?.transactions?.selected_account_guid\n\n useWidgetLoadTimer({\n widgetName: 'TransactionWidget',\n isLoaded: isTransactionDataLoaded,\n })\n\n React.useEffect(() => {\n if (!isTransactionDataLoaded) {\n loadTransactionData().finally()\n }\n\n // Set the displayed date to the current month\n const startDate = startOfMonth(startOfToday())\n const endDate = endOfMonth(startOfToday())\n setDisplayedDate(startDate, endDate)\n\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_VIEW)\n }, [])\n\n React.useEffect(() => {\n if (isInitialized) {\n // Update the filter whenever the display date or account filter changes\n setFilter({\n accounts: selected_account_guid ? [selected_account_guid] : selectedAccountGuids,\n dateRange: { start: displayedDateRange.start, end: displayedDateRange.end },\n searchTerm: searchValue,\n })\n }\n }, [isInitialized, displayedDateRange, selectedAccountGuids])\n\n React.useEffect(() => {\n setShowInsights(showInsights)\n }, [showInsights])\n\n React.useEffect(() => {\n if (isInitialized) {\n announce(\n buildDynamicCopy(copy.showing_transactions_count, sortedTransactions.length) as string,\n )\n }\n }, [isInitialized, sortedTransactions])\n\n const transaction = transactionGuid\n ? transactions.find((transaction) => transaction.guid === transactionGuid)\n : undefined\n\n const isTransactionValid =\n isAmountValid &&\n Boolean(manualTransaction.payee) &&\n Boolean(manualTransaction.account_guid) &&\n Boolean(manualTransaction.category_guid)\n\n const handleDateChanged = (range: DateRange<Date>) => {\n clearExpandedSplits()\n setDisplayedDate(range[0] as Date, range[1] as Date)\n }\n\n const handleSearch = (searchTerm: string) => {\n setSearchValue(searchTerm)\n setFilter({\n ...filter,\n searchTerm,\n })\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_SEARCH, { search_term: searchTerm })\n }\n\n const handleExportCsvClick = () => {\n exportTransactionsToCSV(sortedTransactionsWithSplits, tags)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_EXPORT)\n }\n\n const handleAddTransactionClick = () => {\n if (manualAccounts.length > 0) {\n updateManualTransaction({\n ...DEFAULT_TRANSACTION,\n date: getUnixTime(startOfToday()),\n user_guid: userProfile?.user_guid || '',\n })\n\n setDrawerOpen(Drawers.AddTransaction)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_ADD)\n } else {\n setAddManualAccountModalOpen(true)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_ADD_MANUAL_ACCOUNT_MODAL)\n }\n }\n\n const handleAddTransaction = async () => {\n if (isTransactionValid) {\n await addTransaction(manualTransaction)\n }\n\n setDrawerOpen('')\n }\n\n const handleAddManualAccountClick = () => {\n setAddManualAccountModalOpen(false)\n setShowConnectWidget(true)\n }\n\n const handleConnectWidgetClose = async () => {\n setShowConnectWidget(false)\n await refreshAccounts()\n }\n\n const handleTransactionDrawerClose = async () => {\n // mark transaction as viewed\n if (transaction && !transaction.has_been_viewed) {\n await updateTransaction({ ...transaction, has_been_viewed: true })\n }\n setDrawerOpen('')\n }\n\n if (!isInitialized) {\n return <Loader />\n }\n\n const actions = []\n\n if (!is_mobile_webview && (isDesktop || isTablet)) {\n actions.push({\n iconName: 'open_in_new',\n label: copy.export_csv_btn,\n onClick: handleExportCsvClick,\n })\n }\n\n if (config.show_connections_widget_in_master) {\n actions.push({\n iconName: 'add',\n label: copy.add_transaction_btn,\n onClick: handleAddTransactionClick,\n })\n }\n\n return (\n <WidgetContainer\n actions={actions}\n calendarActions={{\n onRangeChanged: handleDateChanged,\n }}\n hasDivider={true}\n onAccountsFilterClick={() => onEvent(ANALYTICS_EVENTS.ACCOUNTS_CLICK_FILTER)}\n onBackClick={onBackClick}\n onMenuClick={onMenuClick}\n showAccountFilter={!selected_account_guid}\n sx={sx}\n title={copy.transactions_title}\n >\n {!isTransactionDataLoaded ? (\n <SkeletonLoader sx={{ m: 48 }} variant=\"list\" />\n ) : (\n <Stack>\n {ariaLive}\n <Box>\n <SearchBox\n onChange={handleSearch}\n placeholder={copy.action_bar_search_placeholder}\n searchValue={searchValue}\n />\n </Box>\n\n <Box\n sx={{\n [theme.breakpoints.down('md')]: { display: 'none' },\n [theme.breakpoints.up('md')]: { display: 'block' },\n }}\n >\n <TransactionTable\n height={`calc(${height} - ${HEADER_HEIGHT}px)`}\n onCategoryClick={(guid: string) => {\n setTransactionGuid(guid)\n setDrawerOpen(Drawers.Category)\n }}\n onRowClick={(guid: string) => {\n setTransactionGuid(guid)\n setDrawerOpen(Drawers.Transaction)\n onEvent(ANALYTICS_EVENTS.TRANSACTIONS_CLICK_DETAILS, { transaction_guid: guid })\n }}\n />\n </Box>\n <Box\n sx={{\n [theme.breakpoints.down('md')]: { display: 'block' },\n [theme.breakpoints.up('md')]: { display: 'none' },\n }}\n >\n <TransactionList\n height={`calc(${height} - ${HEADER_HEIGHT}px)`}\n onClick={(guid: string) => {\n setTransactionGuid(guid)\n setDrawerOpen(Drawers.Transaction)\n }}\n showInsights={showInsights}\n />\n </Box>\n </Stack>\n )}\n\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={drawerOpen === Drawers.Transaction && Boolean(transaction)}\n onClose={handleTransactionDrawerClose}\n title={copy.details_title}\n >\n {transaction && <TransactionDetails transaction={transaction} />}\n </Drawer>\n {transaction && drawerOpen === Drawers.Category && (\n <EditCategoryAction\n onClose={() => {\n setCategorySearchValue('')\n setDrawerOpen('')\n setTransactionGuid('')\n }}\n transaction={transaction}\n />\n )}\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={drawerOpen === Drawers.AddTransaction}\n isPrimaryDisabled={!isTransactionValid}\n onClose={() => setDrawerOpen('')}\n onPrimaryAction={handleAddTransaction}\n title={copy.add_transaction_title}\n >\n <ManualTransactionDetails />\n </Drawer>\n <AddAccountModal\n copy={{ title: copy.add_manual_account }}\n isOpen={addManualAccountModalOpen}\n onClose={() => {\n setAddManualAccountModalOpen(false)\n }}\n onPrimaryAction={handleAddManualAccountClick}\n />\n <ConnectDrawer\n onClose={handleConnectWidgetClose}\n showConnectWidget={showConnectWidget}\n title={copy.add_manual_account}\n />\n </WidgetContainer>\n )\n}\n\nexport default observer(TransactionWidget)\n"],"names":["AccountCell","params","jsxs","Text","AmountCell","associatedBeats","useTransactionStore","showInsights","useTransactionsUiStore","amount","transaction_type","beat","isCredit","TransactionType","Stack","formatCurrency","jsx","CategoryCell","copy","useGlobalCopyStore","isHover","setIsHover","React","Icon","CategoryCell$1","observer","DateCell","formatDate","fromUnixTime","DATE_FORMATS_INTL","FlagCell","theme","useTheme","isDarkMode","transactionsCopy","is_flagged","is_hidden","has_been_viewed","parent_guid","hasNotBeenViewed","Box","FlagCell$1","HeaderCell","PayeeCell","MerchantLogo","TransactionTable","height","onCategoryClick","onRowClick","onEvent","useEvent","isCopyLoaded","useGlobalUiStore","isLoading","sortedTransactions","clearExpandedSplits","toggleSplit","rows","transaction","handleCellClick","id","guid","has_been_split","field","ANALYTICS_EVENTS","handleCellKeyDown","event","Loader","columns","Paper","DataGridPro","TransactionTable$1","ManualTransactionDetails","accounts","useAccountStore","commonCopy","manualTransaction","setIsAmountValid","updateManualTransaction","setAmount","payee","setPayee","manualAccounts","account","currencyCopy","handleAmountChanged","handleTransactionTypeChanged","_event","value","handlePayeeChanged","handleAccountChanged","CurrencyInput","RadioGroup","SelectionBox","TextField","e","ExpandMoreIcon","MenuItem","Divider","CategoryAction","DateAction","MemoAction","TagsAction","ManualTransactionDetails$1","AddAccountModal","isOpen","onClose","onPrimaryAction","modalCopy","Dialog","AddAccountModal$1","EditCategoryAction","addOrUpdateTransactionRule","updateTransaction","categories","useCategoryStore","categoryGuid","setCategoryGuid","category","item","handleCategoryChanged","applyToAll","CategorySelectorDrawer","buildDynamicCopy","P","EditCategoryAction$1","HEADER_HEIGHT","TransactionWidget","onBackClick","onMenuClick","sx","refreshAccounts","is_mobile_webview","clientConfig","config","useAppConfig","setCategorySearchValue","useCategoryUiStore","displayedDateRange","isInitialized","selectedAccountGuids","setDisplayedDate","isDesktop","isTablet","useScreenSize","addTransaction","filter","isTransactionDataLoaded","loadTransactionData","setFilter","sortedTransactionsWithSplits","tags","transactions","isAmountValid","searchValue","setSearchValue","setShowInsights","userProfile","useUserStore","drawerOpen","setDrawerOpen","transactionGuid","setTransactionGuid","addManualAccountModalOpen","setAddManualAccountModalOpen","showConnectWidget","setShowConnectWidget","announce","ariaLive","useAriaLive","selected_account_guid","useWidgetLoadTimer","startDate","startOfMonth","startOfToday","endDate","endOfMonth","isTransactionValid","handleDateChanged","range","handleSearch","searchTerm","handleExportCsvClick","exportTransactionsToCSV","handleAddTransactionClick","DEFAULT_TRANSACTION","getUnixTime","handleAddTransaction","handleAddManualAccountClick","handleConnectWidgetClose","handleTransactionDrawerClose","actions","WidgetContainer","SearchBox","TransactionList","SkeletonLoader","Drawer","TransactionDetails","ConnectDrawer","TransactionWidget_default"],"mappings":"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"}
|
package/dist/trends/index.es.js
CHANGED
|
@@ -34,8 +34,8 @@ import { useGridApiContext as Yt, useGridRootProps as jt, DataGridPro as Ut } fr
|
|
|
34
34
|
import Xt from "@mui/material/Badge";
|
|
35
35
|
import Zt from "@mui/material/IconButton";
|
|
36
36
|
import { A as w } from "../Analytics-D-jdcL72.mjs";
|
|
37
|
-
import { T as ct } from "../EmbeddedCard-
|
|
38
|
-
import { T as dt } from "../TransactionDetails-
|
|
37
|
+
import { T as ct } from "../EmbeddedCard-DCOQnTz-.mjs";
|
|
38
|
+
import { T as dt } from "../TransactionDetails-DT-MQqOB.mjs";
|
|
39
39
|
import { D as Pe } from "../Drawer-DsnW2o0v.mjs";
|
|
40
40
|
import { u as Ie } from "../useWidgetLoadTimer-B0tB-yzL.mjs";
|
|
41
41
|
import { L as Le } from "../Loader-CxeBwuPG.mjs";
|
|
@@ -55,7 +55,7 @@ import { g as Oe } from "../TransactionUtils-BphBJBbU.mjs";
|
|
|
55
55
|
import { L as uo } from "../ListItemRow-kH1rn8Xu.mjs";
|
|
56
56
|
import { Stack as mo } from "@mui/material";
|
|
57
57
|
import ho from "@mui/material/ListItemAvatar";
|
|
58
|
-
import { E as go } from "../ExportCsvAction-
|
|
58
|
+
import { E as go } from "../ExportCsvAction-C-IisDcv.mjs";
|
|
59
59
|
import { u as po } from "../useInsightsEnabled-D5Sdm0TJ.mjs";
|
|
60
60
|
import { E as fo } from "../EmptyState-CJUDc3kD.mjs";
|
|
61
61
|
import { C as yo } from "../ConnectDrawer-CW4LA3H3.mjs";
|
package/package.json
CHANGED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { addMonths as D } from "date-fns/addMonths";
|
|
2
|
-
import { addQuarters as c } from "date-fns/addQuarters";
|
|
3
|
-
import { addWeeks as y } from "date-fns/addWeeks";
|
|
4
|
-
import { addYears as g } from "date-fns/addYears";
|
|
5
|
-
import { endOfMonth as h } from "date-fns/endOfMonth";
|
|
6
|
-
import { getDay as u } from "date-fns/getDay";
|
|
7
|
-
import { isBefore as n } from "date-fns/isBefore";
|
|
8
|
-
import { nextDay as p } from "date-fns/nextDay";
|
|
9
|
-
import { setDate as T } from "date-fns/setDate";
|
|
10
|
-
import { startOfToday as r } from "date-fns/startOfToday";
|
|
11
|
-
import { fromUnixTime as l } from "date-fns/fromUnixTime";
|
|
12
|
-
import { f as x, D as d } from "./DateFormats-HudZ3Bjs.mjs";
|
|
13
|
-
const H = (e) => {
|
|
14
|
-
const t = u(e);
|
|
15
|
-
let o = p(e, t);
|
|
16
|
-
for (; n(o, r()); )
|
|
17
|
-
o = y(o, 1);
|
|
18
|
-
return o;
|
|
19
|
-
}, Q = (e) => {
|
|
20
|
-
let t = e;
|
|
21
|
-
for (; n(t, r()); )
|
|
22
|
-
t = y(t, 2);
|
|
23
|
-
return t;
|
|
24
|
-
}, M = (e, t) => {
|
|
25
|
-
const o = r(), [a, i] = [e, t].sort((m, f) => m - f), s = (m, f) => f >= 28 ? h(m) : T(m, f);
|
|
26
|
-
return [
|
|
27
|
-
s(o, a),
|
|
28
|
-
s(o, i),
|
|
29
|
-
s(D(o, 1), a),
|
|
30
|
-
s(D(o, 1), i),
|
|
31
|
-
s(D(o, 2), a),
|
|
32
|
-
s(D(o, 2), i)
|
|
33
|
-
];
|
|
34
|
-
}, K = (e, t) => {
|
|
35
|
-
const o = r(), a = M(e, t);
|
|
36
|
-
return a.find((i) => !n(i, o)) ?? a[a.length - 1];
|
|
37
|
-
}, R = (e) => {
|
|
38
|
-
let t = T(r(), e.getDate());
|
|
39
|
-
for (; n(t, r()); )
|
|
40
|
-
t = D(t, 1);
|
|
41
|
-
return t;
|
|
42
|
-
}, b = (e) => {
|
|
43
|
-
let t = e;
|
|
44
|
-
for (; n(t, r()); )
|
|
45
|
-
t = D(t, 2);
|
|
46
|
-
return t;
|
|
47
|
-
}, j = (e) => {
|
|
48
|
-
let t = c(e, 1);
|
|
49
|
-
for (; n(t, r()); )
|
|
50
|
-
t = c(t, 1);
|
|
51
|
-
return t;
|
|
52
|
-
}, I = (e) => {
|
|
53
|
-
let t = e;
|
|
54
|
-
for (; n(t, r()); )
|
|
55
|
-
t = c(t, 2);
|
|
56
|
-
return t;
|
|
57
|
-
}, L = (e) => g(e, 1), N = (e) => {
|
|
58
|
-
const t = l(e);
|
|
59
|
-
return new Date(t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate());
|
|
60
|
-
}, S = (e) => x(l(e), d.DAY_OF_WEEK_MONTH_DAY), q = (e) => x(N(e), d.DAY_OF_WEEK_MONTH_DAY), v = (e) => e ? x(l(e), d.MONTH_YEAR) : "";
|
|
61
|
-
export {
|
|
62
|
-
I as a,
|
|
63
|
-
j as b,
|
|
64
|
-
b as c,
|
|
65
|
-
R as d,
|
|
66
|
-
K as e,
|
|
67
|
-
Q as f,
|
|
68
|
-
L as g,
|
|
69
|
-
H as h,
|
|
70
|
-
M as i,
|
|
71
|
-
N as j,
|
|
72
|
-
S as k,
|
|
73
|
-
v as l,
|
|
74
|
-
q as m
|
|
75
|
-
};
|
|
76
|
-
//# sourceMappingURL=DateUtil-Bl7d7C1W.mjs.map
|