@mx-cartographer/experiences 9.4.2 → 9.4.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 +10 -1
- package/dist/core/constants/Investments.d.ts +3 -0
- package/dist/core/constants/Investments.es.js +34 -11
- package/dist/core/constants/Investments.es.js.map +1 -1
- package/dist/core/constants/repeatingTransactions.d.ts +6 -0
- package/dist/core/constants/repeatingTransactions.es.js +18 -3
- package/dist/core/constants/repeatingTransactions.es.js.map +1 -1
- package/dist/core/stores/HoldingStore.d.ts +3 -0
- package/dist/core/stores/HoldingStore.es.js +39 -29
- package/dist/core/stores/HoldingStore.es.js.map +1 -1
- package/dist/core/types/RepeatingTransaction.d.ts +2 -0
- package/dist/core/types/RepeatingTransaction.es.js.map +1 -1
- package/dist/core/types/Transaction.d.ts +1 -0
- package/dist/core/types/Transaction.es.js.map +1 -1
- package/dist/core/utils/InvestmentUtil.d.ts +4 -0
- package/dist/core/utils/InvestmentUtil.es.js +71 -58
- package/dist/core/utils/InvestmentUtil.es.js.map +1 -1
- package/dist/core/utils/RecurringTransactionsUtil.d.ts +1 -0
- package/dist/core/utils/RecurringTransactionsUtil.es.js +145 -143
- package/dist/core/utils/RecurringTransactionsUtil.es.js.map +1 -1
- package/dist/core/utils/TransactionUtils.d.ts +1 -0
- package/dist/investments/InvestmentsWidget.es.js +100 -66
- package/dist/investments/InvestmentsWidget.es.js.map +1 -1
- package/dist/investments/components/allocation/util/createInvestementsAllocationData.es.js +50 -59
- package/dist/investments/components/allocation/util/createInvestementsAllocationData.es.js.map +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js +16 -14
- package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js.map +1 -1
- package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js +19 -17
- package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js.map +1 -1
- package/dist/transactions/components/shared/TransactionList.es.js +16 -12
- package/dist/transactions/components/shared/TransactionList.es.js.map +1 -1
- package/package.json +1 -1
package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectTransaction.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/SelectTransaction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { P } from '@mxenabled/mxui'\n\nimport { SearchBox, useGlobalCopyStore } from '../../../../common'\nimport { TransactionList, useTransactionsUiStore } from '../../../../transactions'\n\ninterface SelectTransactionProps {\n bgcolor?: string\n description?: string\n onSearch: (value: string) => void\n onSelected: (guid: string) => void\n}\n\nexport const SelectTransaction = observer(\n ({\n bgcolor = 'background.default',\n description,\n onSearch,\n onSelected,\n }: SelectTransactionProps) => {\n const { recurring: recurringCopy } = useGlobalCopyStore()\n const { searchValue, setSearchValue } = useTransactionsUiStore()\n\n return (\n <Stack sx={{ bgcolor, gap: 16, pt: 8 }}>\n {description && <P sx={{ mx: 24 }}>{description}</P>}\n <SearchBox\n ariaLabel={recurringCopy.select_transaction_search_aria}\n cancelAriaLabel={recurringCopy.select_transaction_search_cancel_aria}\n onChange={(value) => {\n setSearchValue(value)\n onSearch(value)\n }}\n placeholder={recurringCopy.select_transaction_search_placeholder}\n searchValue={searchValue}\n />\n <TransactionList
|
|
1
|
+
{"version":3,"file":"SelectTransaction.es.js","names":[],"sources":["../../../../../src/recurringtransactions/components/shared/recurringsettings/SelectTransaction.tsx"],"sourcesContent":["import { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport { P } from '@mxenabled/mxui'\n\nimport { SearchBox, useGlobalCopyStore } from '../../../../common'\nimport { isEligibleRepeatingTransaction } from '../../../../core/utils/RecurringTransactionsUtil'\nimport { TransactionList, useTransactionsUiStore } from '../../../../transactions'\n\ninterface SelectTransactionProps {\n bgcolor?: string\n description?: string\n onSearch: (value: string) => void\n onSelected: (guid: string) => void\n}\n\nexport const SelectTransaction = observer(\n ({\n bgcolor = 'background.default',\n description,\n onSearch,\n onSelected,\n }: SelectTransactionProps) => {\n const { recurring: recurringCopy } = useGlobalCopyStore()\n const { searchValue, setSearchValue } = useTransactionsUiStore()\n\n return (\n <Stack sx={{ bgcolor, gap: 16, pt: 8 }}>\n {description && <P sx={{ mx: 24 }}>{description}</P>}\n <SearchBox\n ariaLabel={recurringCopy.select_transaction_search_aria}\n cancelAriaLabel={recurringCopy.select_transaction_search_cancel_aria}\n onChange={(value) => {\n setSearchValue(value)\n onSearch(value)\n }}\n placeholder={recurringCopy.select_transaction_search_placeholder}\n searchValue={searchValue}\n />\n <TransactionList\n bgcolor={bgcolor}\n filter={isEligibleRepeatingTransaction}\n height=\"auto\"\n onClick={onSelected}\n showLoader={false}\n />\n </Stack>\n )\n },\n)\n"],"mappings":";;;;;;;;;AAiBA,IAAa,IAAoB,EAAA,CAC9B,EACC,SAAA,IAAU,sBACV,aAAA,GACA,UAAA,GACA,YAAA,EAAA,MAC4B;AAC5B,QAAM,EAAE,WAAW,EAAA,IAAkB,EAAmB,GAClD,EAAE,aAAA,GAAa,gBAAA,EAAA,IAAmB,EAAuB;AAE/D,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI;AAAA,MAAE,SAAA;AAAA,MAAS,KAAK;AAAA,MAAI,IAAI;AAAA,IAAE;AAAA,IAArC,UAAA;AAAA,MACG,KAAe,gBAAA,EAAC,GAAD;AAAA,QAAG,IAAI,EAAE,IAAI,GAAG;AAAA,QAAI,UAAA;AAAA,MAAe,CAAA;AAAA,MACnD,gBAAA,EAAC,GAAD;AAAA,QACE,WAAW,EAAc;AAAA,QACzB,iBAAiB,EAAc;AAAA,QAC/B,UAAA,CAAW,MAAU;AACnB,UAAA,EAAe,CAAK,GACpB,EAAS,CAAK;AAAA,QAChB;AAAA,QACA,aAAa,EAAc;AAAA,QACd,aAAA;AAAA,MACd,CAAA;AAAA,MACD,gBAAA,EAAC,GAAD;AAAA,QACW,SAAA;AAAA,QACT,QAAQ;AAAA,QACR,QAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,MACb,CAAA;AAAA,IACI;AAAA;AAEX,CACF"}
|
|
@@ -10,18 +10,22 @@ import { hasInsetBorder as B, shouldShowDate as T } from "../../utils/Transactio
|
|
|
10
10
|
import i from "react";
|
|
11
11
|
import { observer as G } from "mobx-react-lite";
|
|
12
12
|
import { jsx as o, jsxs as S } from "react/jsx-runtime";
|
|
13
|
-
import
|
|
13
|
+
import u from "@mui/material/Box";
|
|
14
14
|
import Y from "@mui/material/Divider";
|
|
15
15
|
import y from "@mui/material/List";
|
|
16
16
|
import { useVirtualizer as K } from "@tanstack/react-virtual";
|
|
17
|
-
var _ = 65, v = 32, M = ({ bgcolor: x, filter:
|
|
17
|
+
var _ = 65, v = 32, M = ({ bgcolor: x, filter: s, height: E = "calc(100dvh - 36px)", loader: I = /* @__PURE__ */ o(U, {
|
|
18
18
|
label: "Loading",
|
|
19
19
|
size: 40
|
|
20
|
-
}), onClick: f, showInsights: d = !1, showLoader:
|
|
21
|
-
const { isLoading:
|
|
22
|
-
const t =
|
|
20
|
+
}), onClick: f, showInsights: d = !1, showLoader: l = !1, transaction: p, width: g = "100%", zeroState: A = /* @__PURE__ */ o(w, {}) }) => {
|
|
21
|
+
const { isLoading: c, sortedTransactions: m } = N(), e = i.useMemo(() => {
|
|
22
|
+
const t = s ? m.filter(s) : m;
|
|
23
23
|
return p ?? t;
|
|
24
|
-
}, [
|
|
24
|
+
}, [
|
|
25
|
+
m,
|
|
26
|
+
s,
|
|
27
|
+
p
|
|
28
|
+
]), { clearExpandedSplits: C, setShowInsights: R, toggleSplit: b } = k(), { onEvent: D } = z(), L = (t) => {
|
|
25
29
|
const r = e.find((a) => a.guid === t);
|
|
26
30
|
if (r?.has_been_split) {
|
|
27
31
|
b(r.guid);
|
|
@@ -41,23 +45,23 @@ var _ = 65, v = 32, M = ({ bgcolor: x, filter: u, height: E = "calc(100dvh - 36p
|
|
|
41
45
|
component: "div",
|
|
42
46
|
role: "list",
|
|
43
47
|
sx: { width: g },
|
|
44
|
-
children: /* @__PURE__ */ o(
|
|
48
|
+
children: /* @__PURE__ */ o(u, {
|
|
45
49
|
height: E,
|
|
46
50
|
overflow: "auto",
|
|
47
51
|
ref: h,
|
|
48
52
|
role: "presentation",
|
|
49
53
|
width: g,
|
|
50
|
-
children: /* @__PURE__ */ S(
|
|
54
|
+
children: /* @__PURE__ */ S(u, {
|
|
51
55
|
height: n.getVirtualItems().length === 0 ? "auto" : n.getTotalSize(),
|
|
52
56
|
position: "relative",
|
|
53
57
|
role: "presentation",
|
|
54
58
|
width: "100%",
|
|
55
59
|
children: [
|
|
56
|
-
(
|
|
57
|
-
!
|
|
58
|
-
!
|
|
60
|
+
(c || l) && I,
|
|
61
|
+
!c && !l && n.getVirtualItems().length === 0 && A,
|
|
62
|
+
!c && !l && n.getVirtualItems().length > 0 && n.getVirtualItems().map((t) => {
|
|
59
63
|
const r = e[t.index], a = T(t.index, e), V = B(t.index, e);
|
|
60
|
-
return /* @__PURE__ */ S(
|
|
64
|
+
return /* @__PURE__ */ S(u, {
|
|
61
65
|
role: "listitem",
|
|
62
66
|
sx: {
|
|
63
67
|
height: _ + (a ? v : 0),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionList.es.js","names":[],"sources":["../../../../src/transactions/components/shared/TransactionList.tsx"],"sourcesContent":["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 { fromUnixUTCToDayOfWeekAndDate } 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 {fromUnixUTCToDayOfWeekAndDate(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"],"mappings":";;;;;;;;;;;;;;;;AAqBA,IAAM,IAAa,IACb,IAAkB,IAelB,IAAA,CAAmD,EACvD,SAAA,GACA,QAAA,GACA,QAAA,IAAS,uBACT,QAAA,IAAS,gBAAA,EAAC,GAAD;AAAA,EAAQ,OAAM;AAAA,EAAU,MAAM;AAAK,CAAA,GAC5C,SAAA,GACA,cAAA,IAAe,IACf,YAAA,IAAa,IACb,aAAA,GACA,OAAA,IAAQ,QACR,WAAA,IAAY,gBAAA,EAAC,GAAD,CAAY,CAAA,EAAA,MACpB;AACJ,QAAM,EAAE,WAAA,GAAW,oBAAoB,EAAA,IAAoB,EAAoB,GACzE,IAAe,EAAM,QAAA,MAAc;AACvC,UAAM,IAAsB,IAAS,EAAgB,OAAO,CAAM,IAAI;AACtE,WAAO,KAAe;AAAA,EACxB,GAAG,
|
|
1
|
+
{"version":3,"file":"TransactionList.es.js","names":[],"sources":["../../../../src/transactions/components/shared/TransactionList.tsx"],"sourcesContent":["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 { fromUnixUTCToDayOfWeekAndDate } 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, filter, 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 {fromUnixUTCToDayOfWeekAndDate(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"],"mappings":"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"}
|