@mx-cartographer/experiences 9.4.0 → 9.4.1-alpha.al0
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 +5 -0
- package/dist/budgets/components/BudgetDetailsDrawer.es.js +133 -95
- package/dist/budgets/components/BudgetDetailsDrawer.es.js.map +1 -1
- package/dist/budgets/components/budgetdetails/AddSubBudget.es.js +64 -63
- package/dist/budgets/components/budgetdetails/AddSubBudget.es.js.map +1 -1
- package/dist/budgets/components/budgetdetails/SubBudgetAmounts.d.ts +10 -0
- package/dist/budgets/components/budgetdetails/SubBudgetAmounts.es.js +58 -0
- package/dist/budgets/components/budgetdetails/SubBudgetAmounts.es.js.map +1 -0
- package/dist/budgets/components/budgetdetails/SubBudgetList.es.js +42 -41
- package/dist/budgets/components/budgetdetails/SubBudgetList.es.js.map +1 -1
- package/dist/budgets/components/budgetlist/BudgetRow.es.js +15 -26
- package/dist/budgets/components/budgetlist/BudgetRow.es.js.map +1 -1
- package/dist/budgets/components/budgetlist/SubBudgetRow.es.js +12 -55
- package/dist/budgets/components/budgetlist/SubBudgetRow.es.js.map +1 -1
- package/dist/budgets/components/shared/BudgetAmount.es.js +14 -15
- package/dist/budgets/components/shared/BudgetAmount.es.js.map +1 -1
- package/dist/budgets/components/shared/BudgetDonut.d.ts +8 -0
- package/dist/budgets/components/shared/BudgetDonut.es.js +25 -0
- package/dist/budgets/components/shared/BudgetDonut.es.js.map +1 -0
- package/dist/budgets/components/shared/SubBudgetCategory.d.ts +7 -0
- package/dist/budgets/components/shared/SubBudgetCategory.es.js +45 -0
- package/dist/budgets/components/shared/SubBudgetCategory.es.js.map +1 -0
- package/dist/core/stores/BudgetsStore.d.ts +3 -1
- package/dist/core/stores/BudgetsStore.es.js +40 -32
- package/dist/core/stores/BudgetsStore.es.js.map +1 -1
- package/dist/core/types/localization/BudgetsCopy.d.ts +3 -0
- package/dist/core/utils/BudgetUtil.es.js +56 -50
- package/dist/core/utils/BudgetUtil.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,85 +1,86 @@
|
|
|
1
1
|
import { buildDynamicCopy as D } from "../../../core/utils/Localization.es.js";
|
|
2
2
|
import { useBudgetsStore as v, useGlobalCopyStore as O, useTransactionStore as T } from "../../../common/context/hooks.es.js";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import { BudgetAmount as
|
|
7
|
-
import { Header as
|
|
8
|
-
import { SubBudgetZeroState as
|
|
9
|
-
import { SubBudgetRow as
|
|
10
|
-
import { AddSubBudget as
|
|
3
|
+
import y from "../../../common/components/dialog/Dialog.es.js";
|
|
4
|
+
import N from "../../../common/components/drawer/Drawer.es.js";
|
|
5
|
+
import w from "../../../transactions/components/shared/TransactionList.es.js";
|
|
6
|
+
import { BudgetAmount as F } from "../shared/BudgetAmount.es.js";
|
|
7
|
+
import { Header as L } from "./Header.es.js";
|
|
8
|
+
import { SubBudgetZeroState as P } from "../budgetlist/SubBudgetZeroState.es.js";
|
|
9
|
+
import { SubBudgetRow as k } from "../budgetlist/SubBudgetRow.es.js";
|
|
10
|
+
import { AddSubBudget as E } from "./AddSubBudget.es.js";
|
|
11
11
|
import i from "react";
|
|
12
|
-
import { observer as
|
|
12
|
+
import { observer as j } from "mobx-react-lite";
|
|
13
13
|
import I from "@mui/material/Stack";
|
|
14
14
|
import { Text as R } from "@mxenabled/mxui";
|
|
15
|
-
import { jsx as t, jsxs as
|
|
15
|
+
import { jsx as t, jsxs as s } from "react/jsx-runtime";
|
|
16
16
|
import $ from "@mui/material/Divider";
|
|
17
17
|
import G from "@mui/material/List";
|
|
18
|
-
var ie =
|
|
19
|
-
const { category: _, subBudgets:
|
|
18
|
+
var ie = j(({ budget: n }) => {
|
|
19
|
+
const { category: _, subBudgets: c } = n, { budgets: o, common: d } = O(), { deleteBudget: b, selectedSubBudget: e, setSelectedSubBudget: h, updateBudget: S } = v(), { filter: u, setFilter: p } = T(), [B, l] = i.useState(!1), [C, m] = i.useState(!1), [a, g] = i.useState("");
|
|
20
20
|
i.useEffect(() => {
|
|
21
|
-
e && (g(`${e.amount}`),
|
|
22
|
-
...
|
|
21
|
+
e && (g(`${e.amount}`), p({
|
|
22
|
+
...u,
|
|
23
23
|
custom: (r) => r.category_guid === e.category_guid
|
|
24
24
|
}));
|
|
25
25
|
}, [e]);
|
|
26
26
|
const x = async () => {
|
|
27
|
-
e && await S({
|
|
27
|
+
e && (await S({
|
|
28
28
|
...e,
|
|
29
|
-
amount: Number(
|
|
30
|
-
});
|
|
29
|
+
amount: Number(a)
|
|
30
|
+
}), l(!1));
|
|
31
31
|
}, A = async () => {
|
|
32
|
-
e && await b(e.guid),
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
...
|
|
32
|
+
e && await b(e.guid), m(!1), f();
|
|
33
|
+
}, f = () => {
|
|
34
|
+
p({
|
|
35
|
+
...u,
|
|
36
36
|
custom: (r) => r.category_guid === n.category_guid || r.top_level_category_guid === n.category_guid
|
|
37
37
|
}), h(void 0);
|
|
38
38
|
};
|
|
39
|
-
return /* @__PURE__ */
|
|
40
|
-
/* @__PURE__ */
|
|
39
|
+
return /* @__PURE__ */ s(i.Fragment, { children: [
|
|
40
|
+
/* @__PURE__ */ s(G, {
|
|
41
41
|
sx: { bgcolor: "background.paper" },
|
|
42
|
-
children: [
|
|
42
|
+
children: [c.length === 0 ? /* @__PURE__ */ t(P, {}) : c.map((r) => /* @__PURE__ */ s(i.Fragment, { children: [/* @__PURE__ */ t(k, { budget: r }), /* @__PURE__ */ t($, {})] }, r.guid)), /* @__PURE__ */ t(E, {
|
|
43
43
|
category: _,
|
|
44
44
|
parentBudget: n
|
|
45
45
|
})]
|
|
46
46
|
}),
|
|
47
|
-
/* @__PURE__ */ t(
|
|
48
|
-
ariaLabelClose:
|
|
47
|
+
/* @__PURE__ */ t(N, {
|
|
48
|
+
ariaLabelClose: d.close_aria,
|
|
49
49
|
isOpen: !!e,
|
|
50
|
-
onClose:
|
|
51
|
-
onPrimaryAction: () =>
|
|
52
|
-
onSecondaryAction: () =>
|
|
50
|
+
onClose: f,
|
|
51
|
+
onPrimaryAction: () => l(!0),
|
|
52
|
+
onSecondaryAction: () => m(!0),
|
|
53
53
|
primaryText: o.details_edit_button,
|
|
54
54
|
secondaryText: o.details_delete_button,
|
|
55
55
|
title: o.details_title,
|
|
56
|
-
children: e && /* @__PURE__ */
|
|
56
|
+
children: e && /* @__PURE__ */ s(I, {
|
|
57
57
|
gap: 24,
|
|
58
|
-
children: [/* @__PURE__ */ t(
|
|
58
|
+
children: [/* @__PURE__ */ t(L, { budget: e }), /* @__PURE__ */ t(w, { height: "100%" })]
|
|
59
59
|
})
|
|
60
60
|
}),
|
|
61
|
-
e && /* @__PURE__ */
|
|
61
|
+
e && /* @__PURE__ */ s(i.Fragment, { children: [/* @__PURE__ */ t(y, {
|
|
62
62
|
copy: {
|
|
63
|
-
close_aria:
|
|
64
|
-
title: o.
|
|
63
|
+
close_aria: d.close_aria,
|
|
64
|
+
title: o.details_edit_title_subbudget
|
|
65
65
|
},
|
|
66
|
-
disablePrimaryButton: Number(
|
|
66
|
+
disablePrimaryButton: a === "" || Number(a) < 0 || isNaN(Number(a)),
|
|
67
67
|
isOpen: B,
|
|
68
|
-
onClose: () =>
|
|
68
|
+
onClose: () => l(!1),
|
|
69
69
|
onPrimaryAction: x,
|
|
70
70
|
primaryText: o.edit_save_button,
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
sx: { "& .MuiStack-root:first-child": { pb: 8 } },
|
|
72
|
+
children: /* @__PURE__ */ t(F, {
|
|
73
|
+
amount: a,
|
|
73
74
|
categoryName: e.category.name,
|
|
74
75
|
onAmountChanged: g
|
|
75
76
|
})
|
|
76
|
-
}), /* @__PURE__ */ t(
|
|
77
|
+
}), /* @__PURE__ */ t(y, {
|
|
77
78
|
copy: {
|
|
78
|
-
close_aria:
|
|
79
|
+
close_aria: d.close_aria,
|
|
79
80
|
title: o.delete_title
|
|
80
81
|
},
|
|
81
82
|
isOpen: C,
|
|
82
|
-
onClose: () =>
|
|
83
|
+
onClose: () => m(!1),
|
|
83
84
|
onPrimaryAction: A,
|
|
84
85
|
primaryColor: "error",
|
|
85
86
|
primaryText: "Delete",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubBudgetList.es.js","names":[],"sources":["../../../../src/budgets/components/budgetdetails/SubBudgetList.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport {\n Dialog,\n Drawer,\n useBudgetsStore,\n useGlobalCopyStore,\n useTransactionStore,\n} from '../../../common'\nimport { type Budget, type DetailedBudget, type Transaction } from '../../../core'\n\nimport { TransactionList } from '../../../transactions'\n\nimport { SubBudgetZeroState } from '../budgetlist/SubBudgetZeroState'\nimport { SubBudgetRow } from '../budgetlist/SubBudgetRow'\nimport { BudgetAmount } from '../shared/BudgetAmount'\nimport { AddSubBudget } from './AddSubBudget'\nimport { Header } from './Header'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface SubBudgetListProps {\n budget: DetailedBudget\n}\n\nexport const SubBudgetList: React.FC<SubBudgetListProps> = observer(({ budget }) => {\n const { category, subBudgets } = budget\n const { budgets: copy, common: commonCopy } = useGlobalCopyStore()\n const { deleteBudget, selectedSubBudget, setSelectedSubBudget, updateBudget } = useBudgetsStore()\n const { filter, setFilter } = useTransactionStore()\n\n const [isEditOpen, setIsEditOpen] = React.useState(false)\n const [isDeleteOpen, setIsDeleteOpen] = React.useState(false)\n const [amount, setAmount] = React.useState(``)\n\n React.useEffect(() => {\n if (selectedSubBudget) {\n setAmount(`${selectedSubBudget.amount}`)\n setFilter({\n ...filter,\n custom: (t: Transaction) => t.category_guid === selectedSubBudget.category_guid,\n })\n }\n }, [selectedSubBudget])\n\n const handleUpdateBudget = async () => {\n if (selectedSubBudget) {\n await updateBudget({\n ...selectedSubBudget,\n amount: Number(amount),\n } as Budget)\n }\n }\n\n const handleDeleteBudget = async () => {\n if (selectedSubBudget) {\n await deleteBudget(selectedSubBudget.guid)\n }\n setIsDeleteOpen(false)\n handleClose()\n }\n\n const handleClose = () => {\n setFilter({\n ...filter,\n custom: (t: Transaction) =>\n t.category_guid === budget.category_guid ||\n t.top_level_category_guid === budget.category_guid,\n })\n setSelectedSubBudget(undefined)\n }\n\n return (\n <React.Fragment>\n <List sx={{ bgcolor: 'background.paper' }}>\n {subBudgets.length === 0 ? (\n <SubBudgetZeroState />\n ) : (\n subBudgets.map((subBudget) => (\n <React.Fragment key={subBudget.guid}>\n <SubBudgetRow budget={subBudget} />\n <Divider />\n </React.Fragment>\n ))\n )}\n <AddSubBudget category={category} parentBudget={budget} />\n </List>\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={Boolean(selectedSubBudget)}\n onClose={handleClose}\n onPrimaryAction={() => setIsEditOpen(true)}\n onSecondaryAction={() => setIsDeleteOpen(true)}\n primaryText={copy.details_edit_button}\n secondaryText={copy.details_delete_button}\n title={copy.details_title}\n >\n {selectedSubBudget && (\n <Stack gap={24}>\n <Header budget={selectedSubBudget} />\n <TransactionList height=\"100%\" />\n </Stack>\n )}\n </Drawer>\n\n {selectedSubBudget && (\n <React.Fragment>\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.
|
|
1
|
+
{"version":3,"file":"SubBudgetList.es.js","names":[],"sources":["../../../../src/budgets/components/budgetdetails/SubBudgetList.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport {\n Dialog,\n Drawer,\n useBudgetsStore,\n useGlobalCopyStore,\n useTransactionStore,\n} from '../../../common'\nimport { type Budget, type DetailedBudget, type Transaction } from '../../../core'\n\nimport { TransactionList } from '../../../transactions'\n\nimport { SubBudgetZeroState } from '../budgetlist/SubBudgetZeroState'\nimport { SubBudgetRow } from '../budgetlist/SubBudgetRow'\nimport { BudgetAmount } from '../shared/BudgetAmount'\nimport { AddSubBudget } from './AddSubBudget'\nimport { Header } from './Header'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface SubBudgetListProps {\n budget: DetailedBudget\n}\n\nexport const SubBudgetList: React.FC<SubBudgetListProps> = observer(({ budget }) => {\n const { category, subBudgets } = budget\n const { budgets: copy, common: commonCopy } = useGlobalCopyStore()\n const { deleteBudget, selectedSubBudget, setSelectedSubBudget, updateBudget } = useBudgetsStore()\n const { filter, setFilter } = useTransactionStore()\n\n const [isEditOpen, setIsEditOpen] = React.useState(false)\n const [isDeleteOpen, setIsDeleteOpen] = React.useState(false)\n const [amount, setAmount] = React.useState(``)\n\n React.useEffect(() => {\n if (selectedSubBudget) {\n setAmount(`${selectedSubBudget.amount}`)\n setFilter({\n ...filter,\n custom: (t: Transaction) => t.category_guid === selectedSubBudget.category_guid,\n })\n }\n }, [selectedSubBudget])\n\n const handleUpdateBudget = async () => {\n if (selectedSubBudget) {\n await updateBudget({\n ...selectedSubBudget,\n amount: Number(amount),\n } as Budget)\n setIsEditOpen(false)\n }\n }\n\n const handleDeleteBudget = async () => {\n if (selectedSubBudget) {\n await deleteBudget(selectedSubBudget.guid)\n }\n setIsDeleteOpen(false)\n handleClose()\n }\n\n const handleClose = () => {\n setFilter({\n ...filter,\n custom: (t: Transaction) =>\n t.category_guid === budget.category_guid ||\n t.top_level_category_guid === budget.category_guid,\n })\n setSelectedSubBudget(undefined)\n }\n\n return (\n <React.Fragment>\n <List sx={{ bgcolor: 'background.paper' }}>\n {subBudgets.length === 0 ? (\n <SubBudgetZeroState />\n ) : (\n subBudgets.map((subBudget) => (\n <React.Fragment key={subBudget.guid}>\n <SubBudgetRow budget={subBudget} />\n <Divider />\n </React.Fragment>\n ))\n )}\n <AddSubBudget category={category} parentBudget={budget} />\n </List>\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={Boolean(selectedSubBudget)}\n onClose={handleClose}\n onPrimaryAction={() => setIsEditOpen(true)}\n onSecondaryAction={() => setIsDeleteOpen(true)}\n primaryText={copy.details_edit_button}\n secondaryText={copy.details_delete_button}\n title={copy.details_title}\n >\n {selectedSubBudget && (\n <Stack gap={24}>\n <Header budget={selectedSubBudget} />\n <TransactionList height=\"100%\" />\n </Stack>\n )}\n </Drawer>\n\n {selectedSubBudget && (\n <React.Fragment>\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.details_edit_title_subbudget }}\n disablePrimaryButton={amount === '' || Number(amount) < 0 || isNaN(Number(amount))}\n isOpen={isEditOpen}\n onClose={() => setIsEditOpen(false)}\n onPrimaryAction={handleUpdateBudget}\n primaryText={copy.edit_save_button}\n sx={{\n '& .MuiStack-root:first-child': {\n pb: 8,\n },\n }}\n >\n <BudgetAmount\n amount={amount}\n categoryName={selectedSubBudget.category.name}\n onAmountChanged={setAmount}\n />\n </Dialog>\n\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.delete_title }}\n isOpen={isDeleteOpen}\n onClose={() => setIsDeleteOpen(false)}\n onPrimaryAction={handleDeleteBudget}\n primaryColor=\"error\"\n primaryText=\"Delete\"\n secondaryColor=\"secondary\"\n >\n <Text variant=\"subtitle1\">\n {buildDynamicCopy(copy.delete_description, selectedSubBudget.category.name) as string}\n </Text>\n </Dialog>\n </React.Fragment>\n )}\n </React.Fragment>\n )\n})\n"],"mappings":"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"}
|
|
@@ -1,32 +1,21 @@
|
|
|
1
1
|
import { formatCurrency as c } from "../../../core/utils/NumberFormatting.es.js";
|
|
2
|
-
import h from "
|
|
2
|
+
import { BudgetDonut as h } from "../shared/BudgetDonut.es.js";
|
|
3
3
|
import "react";
|
|
4
4
|
import a from "@mui/material/Stack";
|
|
5
|
-
import {
|
|
5
|
+
import { Text as o } from "@mxenabled/mxui";
|
|
6
6
|
import { jsx as t, jsxs as e } from "react/jsx-runtime";
|
|
7
7
|
import y from "@mui/material/ListItem";
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return /* @__PURE__ */ t(y, { children: /* @__PURE__ */ e(v, {
|
|
8
|
+
import b from "@mui/material/ListItemButton";
|
|
9
|
+
import v from "@mui/material/ListItemText";
|
|
10
|
+
var R = ({ budget: r, onClick: m }) => {
|
|
11
|
+
const { amount: d, budgetColors: { background: s, description: p }, category_guid: u, description: l, percentage: i, subBudgets: f, transaction_total: g } = r, n = i > 100;
|
|
12
|
+
return /* @__PURE__ */ t(y, { children: /* @__PURE__ */ e(b, {
|
|
14
13
|
onClick: () => m?.(r),
|
|
15
|
-
children: [/* @__PURE__ */ t(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
children: /* @__PURE__ */ t(h, {
|
|
21
|
-
color: d,
|
|
22
|
-
percent: i,
|
|
23
|
-
size: 40,
|
|
24
|
-
children: /* @__PURE__ */ t(b, {
|
|
25
|
-
categoryGuid: l,
|
|
26
|
-
variant: "basic"
|
|
27
|
-
})
|
|
28
|
-
})
|
|
29
|
-
}), /* @__PURE__ */ t(x, {
|
|
14
|
+
children: [/* @__PURE__ */ t(h, {
|
|
15
|
+
background: s,
|
|
16
|
+
categoryGuid: u,
|
|
17
|
+
percentage: i
|
|
18
|
+
}), /* @__PURE__ */ t(v, {
|
|
30
19
|
primary: /* @__PURE__ */ e(a, {
|
|
31
20
|
component: "span",
|
|
32
21
|
direction: "row",
|
|
@@ -40,7 +29,7 @@ var _ = ({ budget: r, onClick: m }) => {
|
|
|
40
29
|
variant: "body1",
|
|
41
30
|
children: `
|
|
42
31
|
${c(g, "0,0")} /
|
|
43
|
-
${c(
|
|
32
|
+
${c(d, "0,0")}
|
|
44
33
|
`
|
|
45
34
|
})]
|
|
46
35
|
}),
|
|
@@ -58,14 +47,14 @@ var _ = ({ budget: r, onClick: m }) => {
|
|
|
58
47
|
...n && { ".MuiListItemButton-root:hover &, .MuiListItemButton-root:active &": { color: "error.dark" } }
|
|
59
48
|
},
|
|
60
49
|
variant: "caption",
|
|
61
|
-
children:
|
|
50
|
+
children: l
|
|
62
51
|
})]
|
|
63
52
|
})
|
|
64
53
|
})]
|
|
65
54
|
}) });
|
|
66
55
|
};
|
|
67
56
|
export {
|
|
68
|
-
|
|
57
|
+
R as BudgetRow
|
|
69
58
|
};
|
|
70
59
|
|
|
71
60
|
//# sourceMappingURL=BudgetRow.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BudgetRow.es.js","names":[],"sources":["../../../../src/budgets/components/budgetlist/BudgetRow.tsx"],"sourcesContent":["import React from 'react'\n\nimport ListItem from '@mui/material/ListItem'\nimport
|
|
1
|
+
{"version":3,"file":"BudgetRow.es.js","names":[],"sources":["../../../../src/budgets/components/budgetlist/BudgetRow.tsx"],"sourcesContent":["import React from 'react'\n\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { type DetailedBudget } from '../../../core'\n\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\nimport { BudgetDonut } from '../shared/BudgetDonut'\n\ninterface BudgetRowProps {\n budget: DetailedBudget\n onClick?: (budget: DetailedBudget) => void\n}\n\nexport const BudgetRow: React.FC<BudgetRowProps> = ({ budget, onClick }) => {\n const {\n amount,\n budgetColors: { background, description: descriptionColor },\n category_guid,\n description,\n percentage,\n subBudgets,\n transaction_total,\n } = budget\n\n const overBudget = percentage > 100\n\n return (\n <ListItem>\n <ListItemButton onClick={() => onClick?.(budget)}>\n <BudgetDonut background={background} categoryGuid={category_guid} percentage={percentage} />\n <ListItemText\n primary={\n <Stack component=\"span\" direction=\"row\" justifyContent=\"space-between\">\n <Text bold={true} variant=\"body1\">\n {budget.category.name}\n </Text>\n <Text fontWeight={400} variant=\"body1\">\n {`\n ${formatCurrency(transaction_total, '0,0')} /\n ${formatCurrency(amount, '0,0')}\n `}\n </Text>\n </Stack>\n }\n secondary={\n <Stack component=\"span\" direction=\"row\" justifyContent=\"space-between\">\n <Text variant=\"caption\">{`${subBudgets.length} Sub-budgets`}</Text>\n <Text\n bold={overBudget}\n sx={{\n color: descriptionColor,\n ...(overBudget && {\n '.MuiListItemButton-root:hover &, .MuiListItemButton-root:active &': {\n color: 'error.dark',\n },\n }),\n }}\n variant=\"caption\"\n >\n {description}\n </Text>\n </Stack>\n }\n />\n </ListItemButton>\n </ListItem>\n )\n}\n"],"mappings":";;;;;;;;;AAmBA,IAAa,IAAA,CAAuC,EAAE,QAAA,GAAQ,SAAA,EAAA,MAAc;AAC1E,QAAM,EACJ,QAAA,GACA,cAAc,EAAE,YAAA,GAAY,aAAa,EAAA,GACzC,eAAA,GACA,aAAA,GACA,YAAA,GACA,YAAA,GACA,mBAAA,EAAA,IACE,GAEE,IAAa,IAAa;AAEhC,SACE,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD;AAAA,IAAgB,SAAA,MAAe,IAAU,CAAM;AAAA,IAA/C,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,MAAyB,YAAA;AAAA,MAAY,cAAc;AAAA,MAA2B,YAAA;AAAA,IAAa,CAAA,GAC3F,gBAAA,EAAC,GAAD;AAAA,MACE,SACE,gBAAA,EAAC,GAAD;AAAA,QAAO,WAAU;AAAA,QAAO,WAAU;AAAA,QAAM,gBAAe;AAAA,QAAvD,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,UAAM,MAAM;AAAA,UAAM,SAAQ;AAAA,UACvB,UAAA,EAAO,SAAS;AAAA,QACb,CAAA,GACN,gBAAA,EAAC,GAAD;AAAA,UAAM,YAAY;AAAA,UAAK,SAAQ;AAAA,UAC5B,UAAA;AAAA,oBACG,EAAe,GAAmB,KAAK,CAAA;AAAA,oBACvC,EAAe,GAAQ,KAAK,CAAA;AAAA;AAAA,QAE5B,CAAA,CACD;AAAA;MAET,WACE,gBAAA,EAAC,GAAD;AAAA,QAAO,WAAU;AAAA,QAAO,WAAU;AAAA,QAAM,gBAAe;AAAA,QAAvD,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,UAAM,SAAQ;AAAA,UAAW,UAAA,GAAG,EAAW,MAAA;AAAA,QAA2B,CAAA,GAClE,gBAAA,EAAC,GAAD;AAAA,UACE,MAAM;AAAA,UACN,IAAI;AAAA,YACF,OAAO;AAAA,YACP,GAAI,KAAc,EAChB,qEAAqE,EACnE,OAAO,aACT,EACF;AAAA,UACF;AAAA,UACA,SAAQ;AAAA,UAEP,UAAA;AAAA,QACG,CAAA,CACD;AAAA;IAEV,CAAA,CACa;AAAA,EACR,CAAA,EAAA,CAAA;AAEd"}
|
|
@@ -1,62 +1,19 @@
|
|
|
1
|
-
import { useBudgetsStore as
|
|
2
|
-
import {
|
|
3
|
-
import f from "../../../common/components/donuts/SingleSegmentDonut.es.js";
|
|
1
|
+
import { useBudgetsStore as e } from "../../../common/context/hooks.es.js";
|
|
2
|
+
import { SubBudgetCategory as m } from "../shared/SubBudgetCategory.es.js";
|
|
4
3
|
import "react";
|
|
5
|
-
import { observer as
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const { amount: i, budgetColors: { background: m }, category: c, percentage: a, transaction_total: s } = r, { setSelectedSubBudget: p } = d();
|
|
15
|
-
return /* @__PURE__ */ t(y, { children: /* @__PURE__ */ g(b, {
|
|
16
|
-
onClick: () => p(r),
|
|
17
|
-
children: [/* @__PURE__ */ t(S, {
|
|
18
|
-
sx: {
|
|
19
|
-
mb: -8,
|
|
20
|
-
mr: 16
|
|
21
|
-
},
|
|
22
|
-
children: /* @__PURE__ */ t(f, {
|
|
23
|
-
color: m,
|
|
24
|
-
percent: a,
|
|
25
|
-
size: 40,
|
|
26
|
-
children: /* @__PURE__ */ t(l, {
|
|
27
|
-
categoryGuid: c.parent_guid,
|
|
28
|
-
variant: "basic"
|
|
29
|
-
})
|
|
30
|
-
})
|
|
31
|
-
}), /* @__PURE__ */ t(h, {
|
|
32
|
-
primary: /* @__PURE__ */ t(e, {
|
|
33
|
-
component: "span",
|
|
34
|
-
direction: "row",
|
|
35
|
-
justifyContent: "space-between",
|
|
36
|
-
children: /* @__PURE__ */ t(n, {
|
|
37
|
-
bold: !0,
|
|
38
|
-
variant: "body1",
|
|
39
|
-
children: r.category.name
|
|
40
|
-
})
|
|
41
|
-
}),
|
|
42
|
-
secondary: /* @__PURE__ */ t(e, {
|
|
43
|
-
component: "span",
|
|
44
|
-
direction: "row",
|
|
45
|
-
justifyContent: "space-between",
|
|
46
|
-
children: /* @__PURE__ */ t(n, {
|
|
47
|
-
fontWeight: 400,
|
|
48
|
-
variant: "body1",
|
|
49
|
-
children: `
|
|
50
|
-
${o(s, "0,0")} /
|
|
51
|
-
${o(i, "0,0")}
|
|
52
|
-
`
|
|
53
|
-
})
|
|
54
|
-
})
|
|
55
|
-
})]
|
|
4
|
+
import { observer as i } from "mobx-react-lite";
|
|
5
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
6
|
+
import u from "@mui/material/ListItem";
|
|
7
|
+
import p from "@mui/material/ListItemButton";
|
|
8
|
+
var l = i(({ budget: t }) => {
|
|
9
|
+
const { setSelectedSubBudget: o } = e();
|
|
10
|
+
return /* @__PURE__ */ r(u, { children: /* @__PURE__ */ r(p, {
|
|
11
|
+
onClick: () => o(t),
|
|
12
|
+
children: /* @__PURE__ */ r(m, { budget: t })
|
|
56
13
|
}) });
|
|
57
14
|
});
|
|
58
15
|
export {
|
|
59
|
-
|
|
16
|
+
l as SubBudgetRow
|
|
60
17
|
};
|
|
61
18
|
|
|
62
19
|
//# sourceMappingURL=SubBudgetRow.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubBudgetRow.es.js","names":[],"sources":["../../../../src/budgets/components/budgetlist/SubBudgetRow.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport ListItem from '@mui/material/ListItem'\nimport
|
|
1
|
+
{"version":3,"file":"SubBudgetRow.es.js","names":[],"sources":["../../../../src/budgets/components/budgetlist/SubBudgetRow.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\n\nimport { useBudgetsStore } from '../../../common'\nimport { SubBudgetCategory } from '../shared/SubBudgetCategory'\nimport { type DetailedBudget } from '../../../core'\n\ninterface SubBudgetRowProps {\n budget: DetailedBudget\n}\n\nexport const SubBudgetRow: React.FC<SubBudgetRowProps> = observer(({ budget }) => {\n const { setSelectedSubBudget } = useBudgetsStore()\n\n return (\n <ListItem>\n <ListItemButton onClick={() => setSelectedSubBudget(budget)}>\n <SubBudgetCategory budget={budget} />\n </ListItemButton>\n </ListItem>\n )\n})\n"],"mappings":";;;;;;;AAcA,IAAa,IAA4C,EAAA,CAAU,EAAE,QAAA,EAAA,MAAa;AAChF,QAAM,EAAE,sBAAA,EAAA,IAAyB,EAAgB;AAEjD,SACE,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD;AAAA,IAAgB,SAAA,MAAe,EAAqB,CAAM;AAAA,IACxD,UAAA,gBAAA,EAAC,GAAD,EAA2B,QAAA,EAAS,CAAA;AAAA,EACtB,CAAA,EACR,CAAA;AAEd,CAAC"}
|
|
@@ -1,27 +1,26 @@
|
|
|
1
|
-
import { buildDynamicCopy as
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import b from "../../../common/components/CurrencyInput.es.js";
|
|
1
|
+
import { buildDynamicCopy as i } from "../../../core/utils/Localization.es.js";
|
|
2
|
+
import { useGlobalCopyStore as u } from "../../../common/context/hooks.es.js";
|
|
3
|
+
import n from "../../../common/components/CurrencyInput.es.js";
|
|
5
4
|
import "react";
|
|
6
|
-
import
|
|
7
|
-
import { Text as
|
|
8
|
-
import { jsx as
|
|
9
|
-
var
|
|
10
|
-
const { budgets:
|
|
11
|
-
return /* @__PURE__ */
|
|
5
|
+
import t from "@mui/material/Stack";
|
|
6
|
+
import { Text as a } from "@mxenabled/mxui";
|
|
7
|
+
import { jsx as o, jsxs as d } from "react/jsx-runtime";
|
|
8
|
+
var h = ({ amount: m, categoryName: e, onAmountChanged: p }) => {
|
|
9
|
+
const { budgets: r } = u();
|
|
10
|
+
return /* @__PURE__ */ d(t, {
|
|
12
11
|
gap: 16,
|
|
13
|
-
children: [/* @__PURE__ */
|
|
14
|
-
amount:
|
|
12
|
+
children: [/* @__PURE__ */ o(t, { children: /* @__PURE__ */ o(a, { children: i(r.add_description_bottom, e) }) }), /* @__PURE__ */ o(n, {
|
|
13
|
+
amount: m,
|
|
15
14
|
autoFocus: !0,
|
|
16
|
-
label:
|
|
15
|
+
label: r.add_label,
|
|
17
16
|
minAmount: 0,
|
|
18
|
-
setAmount:
|
|
17
|
+
setAmount: p,
|
|
19
18
|
sx: { ".MuiTypography-body1": { p: 0 } }
|
|
20
19
|
})]
|
|
21
20
|
});
|
|
22
21
|
};
|
|
23
22
|
export {
|
|
24
|
-
|
|
23
|
+
h as BudgetAmount
|
|
25
24
|
};
|
|
26
25
|
|
|
27
26
|
//# sourceMappingURL=BudgetAmount.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BudgetAmount.es.js","names":[],"sources":["../../../../src/budgets/components/shared/BudgetAmount.tsx"],"sourcesContent":["import React from 'react'\n\nimport Stack from '@mui/material/Stack'\nimport { Text } from '@mxenabled/mxui'\nimport {
|
|
1
|
+
{"version":3,"file":"BudgetAmount.es.js","names":[],"sources":["../../../../src/budgets/components/shared/BudgetAmount.tsx"],"sourcesContent":["import React from 'react'\n\nimport Stack from '@mui/material/Stack'\nimport { Text } from '@mxenabled/mxui'\nimport { CurrencyInput, useGlobalCopyStore } from '../../../common'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface BudgetAmountProps {\n amount: string\n categoryName: string\n onAmountChanged: (amount: string) => void\n}\n\nexport const BudgetAmount: React.FC<BudgetAmountProps> = ({\n amount,\n categoryName,\n onAmountChanged,\n}) => {\n const { budgets: copy } = useGlobalCopyStore()\n\n return (\n <Stack gap={16}>\n <Stack>\n <Text>{buildDynamicCopy(copy.add_description_bottom, categoryName) as string}</Text>\n </Stack>\n <CurrencyInput\n amount={amount}\n autoFocus={true}\n label={copy.add_label}\n minAmount={0}\n setAmount={onAmountChanged}\n sx={{ '.MuiTypography-body1': { p: 0 } }}\n />\n </Stack>\n )\n}\n"],"mappings":";;;;;;;AAaA,IAAa,IAAA,CAA6C,EACxD,QAAA,GACA,cAAA,GACA,iBAAA,EAAA,MACI;AACJ,QAAM,EAAE,SAAS,EAAA,IAAS,EAAmB;AAE7C,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,KAAK;AAAA,IAAZ,UAAA,CACE,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD,EAAA,UAAO,EAAiB,EAAK,wBAAwB,CAAY,EAAkB,CAAA,EAC9E,CAAA,GACP,gBAAA,EAAC,GAAD;AAAA,MACU,QAAA;AAAA,MACR,WAAW;AAAA,MACX,OAAO,EAAK;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,MACX,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,EAAE;AAAA,IACxC,CAAA,CACI;AAAA;AAEX"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import e from "../../../common/components/donuts/SingleSegmentDonut.es.js";
|
|
2
|
+
import "react";
|
|
3
|
+
import { CategoryIcon as i } from "@mxenabled/mxui";
|
|
4
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
5
|
+
import n from "@mui/material/ListItemAvatar";
|
|
6
|
+
var g = ({ background: o, percentage: m, categoryGuid: t }) => /* @__PURE__ */ r(n, {
|
|
7
|
+
sx: {
|
|
8
|
+
mb: -8,
|
|
9
|
+
mr: 16
|
|
10
|
+
},
|
|
11
|
+
children: /* @__PURE__ */ r(e, {
|
|
12
|
+
color: o,
|
|
13
|
+
percent: m,
|
|
14
|
+
size: 40,
|
|
15
|
+
children: t && /* @__PURE__ */ r(i, {
|
|
16
|
+
categoryGuid: t,
|
|
17
|
+
variant: "basic"
|
|
18
|
+
})
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
export {
|
|
22
|
+
g as BudgetDonut
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=BudgetDonut.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BudgetDonut.es.js","names":[],"sources":["../../../../src/budgets/components/shared/BudgetDonut.tsx"],"sourcesContent":["import React from 'react'\n\nimport ListItemAvatar from '@mui/material/ListItemAvatar'\n\nimport { CategoryIcon } from '@mxenabled/mxui'\n\nimport { SingleSegmentDonut } from '../../../common'\n\ninterface BudgetDonutProps {\n background: string\n percentage: number\n categoryGuid?: string\n}\n\nexport const BudgetDonut: React.FC<BudgetDonutProps> = ({\n background,\n percentage,\n categoryGuid,\n}) => {\n return (\n <ListItemAvatar sx={{ mb: -8, mr: 16 }}>\n <SingleSegmentDonut color={background} percent={percentage} size={40}>\n {categoryGuid && <CategoryIcon categoryGuid={categoryGuid} variant=\"basic\" />}\n </SingleSegmentDonut>\n </ListItemAvatar>\n )\n}\n"],"mappings":";;;;;AAcA,IAAa,IAAA,CAA2C,EACtD,YAAA,GACA,YAAA,GACA,cAAA,EAAA,MAGE,gBAAA,EAAC,GAAD;AAAA,EAAgB,IAAI;AAAA,IAAE,IAAI;AAAA,IAAI,IAAI;AAAA,EAAG;AAAA,EACnC,UAAA,gBAAA,EAAC,GAAD;AAAA,IAAoB,OAAO;AAAA,IAAY,SAAS;AAAA,IAAY,MAAM;AAAA,IAC/D,UAAA,KAAgB,gBAAA,EAAC,GAAD;AAAA,MAA4B,cAAA;AAAA,MAAc,SAAQ;AAAA,IAAS,CAAA;AAAA,EAC1D,CAAA;AACN,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { formatCurrency as e } from "../../../core/utils/NumberFormatting.es.js";
|
|
2
|
+
import { BudgetDonut as d } from "./BudgetDonut.es.js";
|
|
3
|
+
import "react";
|
|
4
|
+
import o from "@mui/material/Stack";
|
|
5
|
+
import { Text as n } from "@mxenabled/mxui";
|
|
6
|
+
import { Fragment as s, jsx as t, jsxs as u } from "react/jsx-runtime";
|
|
7
|
+
import g from "@mui/material/ListItemText";
|
|
8
|
+
var w = ({ budget: r }) => {
|
|
9
|
+
const { amount: a, budgetColors: { background: i }, category: c, percentage: m, transaction_total: p } = r;
|
|
10
|
+
return /* @__PURE__ */ u(s, { children: [/* @__PURE__ */ t(d, {
|
|
11
|
+
background: i,
|
|
12
|
+
categoryGuid: c.parent_guid,
|
|
13
|
+
percentage: m
|
|
14
|
+
}), /* @__PURE__ */ t(g, {
|
|
15
|
+
primary: /* @__PURE__ */ t(o, {
|
|
16
|
+
component: "span",
|
|
17
|
+
direction: "row",
|
|
18
|
+
justifyContent: "space-between",
|
|
19
|
+
children: /* @__PURE__ */ t(n, {
|
|
20
|
+
bold: !0,
|
|
21
|
+
truncate: !0,
|
|
22
|
+
variant: "body1",
|
|
23
|
+
children: r.category.name
|
|
24
|
+
})
|
|
25
|
+
}),
|
|
26
|
+
secondary: /* @__PURE__ */ t(o, {
|
|
27
|
+
component: "span",
|
|
28
|
+
direction: "row",
|
|
29
|
+
justifyContent: "space-between",
|
|
30
|
+
children: /* @__PURE__ */ t(n, {
|
|
31
|
+
fontWeight: 400,
|
|
32
|
+
variant: "body1",
|
|
33
|
+
children: `
|
|
34
|
+
${e(p, "0,0")} /
|
|
35
|
+
${e(a, "0,0")}
|
|
36
|
+
`
|
|
37
|
+
})
|
|
38
|
+
})
|
|
39
|
+
})] });
|
|
40
|
+
};
|
|
41
|
+
export {
|
|
42
|
+
w as SubBudgetCategory
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=SubBudgetCategory.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubBudgetCategory.es.js","names":[],"sources":["../../../../src/budgets/components/shared/SubBudgetCategory.tsx"],"sourcesContent":["import React from 'react'\n\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { BudgetDonut } from './BudgetDonut'\nimport { type DetailedBudget } from '../../../core'\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\n\ninterface SubBudgetCategory {\n budget: DetailedBudget\n}\n\nexport const SubBudgetCategory: React.FC<SubBudgetCategory> = ({ budget }) => {\n const {\n amount,\n budgetColors: { background },\n category,\n percentage,\n transaction_total,\n } = budget\n\n return (\n <>\n <BudgetDonut\n background={background}\n categoryGuid={category.parent_guid}\n percentage={percentage}\n />\n <ListItemText\n primary={\n <Stack component=\"span\" direction=\"row\" justifyContent=\"space-between\">\n <Text bold={true} truncate={true} variant=\"body1\">\n {budget.category.name}\n </Text>\n </Stack>\n }\n secondary={\n <Stack component=\"span\" direction=\"row\" justifyContent=\"space-between\">\n <Text fontWeight={400} variant=\"body1\">\n {`\n ${formatCurrency(transaction_total, '0,0')} / \n ${formatCurrency(amount, '0,0')}\n `}\n </Text>\n </Stack>\n }\n />\n </>\n )\n}\n"],"mappings":";;;;;;;AAeA,IAAa,IAAA,CAAkD,EAAE,QAAA,EAAA,MAAa;AAC5E,QAAM,EACJ,QAAA,GACA,cAAc,EAAE,YAAA,EAAA,GAChB,UAAA,GACA,YAAA,GACA,mBAAA,EAAA,IACE;AAEJ,SACE,gBAAA,EAAA,GAAA,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IACc,YAAA;AAAA,IACZ,cAAc,EAAS;AAAA,IACX,YAAA;AAAA,EACb,CAAA,GACD,gBAAA,EAAC,GAAD;AAAA,IACE,SACE,gBAAA,EAAC,GAAD;AAAA,MAAO,WAAU;AAAA,MAAO,WAAU;AAAA,MAAM,gBAAe;AAAA,MACrD,UAAA,gBAAA,EAAC,GAAD;AAAA,QAAM,MAAM;AAAA,QAAM,UAAU;AAAA,QAAM,SAAQ;AAAA,QACvC,UAAA,EAAO,SAAS;AAAA,MACb,CAAA;AAAA,IACD,CAAA;AAAA,IAET,WACE,gBAAA,EAAC,GAAD;AAAA,MAAO,WAAU;AAAA,MAAO,WAAU;AAAA,MAAM,gBAAe;AAAA,MACrD,UAAA,gBAAA,EAAC,GAAD;AAAA,QAAM,YAAY;AAAA,QAAK,SAAQ;AAAA,QAC5B,UAAA;AAAA,kBACG,EAAe,GAAmB,KAAK,CAAA;AAAA,kBACvC,EAAe,GAAQ,KAAK,CAAA;AAAA;AAAA,MAE5B,CAAA;AAAA,IACD,CAAA;AAAA,EAEV,CAAA,CACD,EAAA,CAAA;AAEN"}
|
|
@@ -36,7 +36,9 @@ export declare class BudgetsStore {
|
|
|
36
36
|
data: Budget[];
|
|
37
37
|
isSuccess: boolean;
|
|
38
38
|
}>;
|
|
39
|
-
updateBudget: (budget: Budget) => Promise<
|
|
39
|
+
updateBudget: (budget: Budget) => Promise<{
|
|
40
|
+
isSuccess: boolean;
|
|
41
|
+
}>;
|
|
40
42
|
getMerchantBudgetByMerchantGuid: (merchantGuid: string) => MerchantBudget | undefined;
|
|
41
43
|
setMerchantBudgets: (merchantBudgets: MerchantBudget[]) => void;
|
|
42
44
|
addMerchantBudget: (merchantGuid: string, amount: number) => Promise<{
|