@mx-cartographer/experiences 9.4.1 → 9.4.3

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.
Files changed (59) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/budgets/BubbleBudgetsWidget.es.js +29 -29
  3. package/dist/budgets/BubbleBudgetsWidget.es.js.map +1 -1
  4. package/dist/budgets/components/AddBudgets.es.js +16 -13
  5. package/dist/budgets/components/AddBudgets.es.js.map +1 -1
  6. package/dist/budgets/components/BudgetDetailsDrawer.es.js +129 -91
  7. package/dist/budgets/components/BudgetDetailsDrawer.es.js.map +1 -1
  8. package/dist/budgets/components/BudgetDetailsDrawerV2.es.js +16 -13
  9. package/dist/budgets/components/BudgetDetailsDrawerV2.es.js.map +1 -1
  10. package/dist/budgets/components/addbudget/RecalculateBudgets.es.js +14 -11
  11. package/dist/budgets/components/addbudget/RecalculateBudgets.es.js.map +1 -1
  12. package/dist/budgets/components/budgetdetails/AddSubBudget.es.js +58 -55
  13. package/dist/budgets/components/budgetdetails/AddSubBudget.es.js.map +1 -1
  14. package/dist/budgets/components/budgetdetails/BudgetDetails.es.js +8 -5
  15. package/dist/budgets/components/budgetdetails/BudgetDetails.es.js.map +1 -1
  16. package/dist/budgets/components/budgetdetails/SubBudgetAmounts.d.ts +9 -0
  17. package/dist/budgets/components/budgetdetails/SubBudgetAmounts.es.js +69 -0
  18. package/dist/budgets/components/budgetdetails/SubBudgetAmounts.es.js.map +1 -0
  19. package/dist/budgets/components/budgetdetails/SubBudgetList.es.js +68 -55
  20. package/dist/budgets/components/budgetdetails/SubBudgetList.es.js.map +1 -1
  21. package/dist/budgets/components/budgetlist/BudgetRow.es.js +15 -26
  22. package/dist/budgets/components/budgetlist/BudgetRow.es.js.map +1 -1
  23. package/dist/budgets/components/budgetlist/SubBudgetRow.es.js +12 -55
  24. package/dist/budgets/components/budgetlist/SubBudgetRow.es.js.map +1 -1
  25. package/dist/budgets/components/shared/BudgetAmount.es.js +14 -15
  26. package/dist/budgets/components/shared/BudgetAmount.es.js.map +1 -1
  27. package/dist/budgets/components/shared/BudgetDonut.d.ts +8 -0
  28. package/dist/budgets/components/shared/BudgetDonut.es.js +25 -0
  29. package/dist/budgets/components/shared/BudgetDonut.es.js.map +1 -0
  30. package/dist/budgets/components/shared/SubBudgetCategory.d.ts +7 -0
  31. package/dist/budgets/components/shared/SubBudgetCategory.es.js +45 -0
  32. package/dist/budgets/components/shared/SubBudgetCategory.es.js.map +1 -0
  33. package/dist/core/constants/repeatingTransactions.d.ts +6 -0
  34. package/dist/core/constants/repeatingTransactions.es.js +18 -3
  35. package/dist/core/constants/repeatingTransactions.es.js.map +1 -1
  36. package/dist/core/stores/BudgetsStore.d.ts +13 -4
  37. package/dist/core/stores/BudgetsStore.es.js +40 -38
  38. package/dist/core/stores/BudgetsStore.es.js.map +1 -1
  39. package/dist/core/types/RepeatingTransaction.d.ts +2 -0
  40. package/dist/core/types/RepeatingTransaction.es.js.map +1 -1
  41. package/dist/core/types/Transaction.d.ts +1 -0
  42. package/dist/core/types/Transaction.es.js.map +1 -1
  43. package/dist/core/types/localization/BudgetsCopy.d.ts +3 -0
  44. package/dist/core/utils/BudgetUtil.d.ts +1 -0
  45. package/dist/core/utils/BudgetUtil.es.js +55 -51
  46. package/dist/core/utils/BudgetUtil.es.js.map +1 -1
  47. package/dist/core/utils/RecurringTransactionsUtil.d.ts +1 -0
  48. package/dist/core/utils/RecurringTransactionsUtil.es.js +145 -143
  49. package/dist/core/utils/RecurringTransactionsUtil.es.js.map +1 -1
  50. package/dist/core/utils/TransactionUtils.d.ts +1 -0
  51. package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js +16 -14
  52. package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js.map +1 -1
  53. package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js +19 -17
  54. package/dist/recurringtransactions/components/shared/recurringsettings/SelectTransaction.es.js.map +1 -1
  55. package/dist/transactions/components/shared/TransactionList.es.js +16 -12
  56. package/dist/transactions/components/shared/TransactionList.es.js.map +1 -1
  57. package/dist/transactions/components/shared/transactiondetails/actions/AddMerchantBudgetAction.es.js +85 -82
  58. package/dist/transactions/components/shared/transactiondetails/actions/AddMerchantBudgetAction.es.js.map +1 -1
  59. package/package.json +1 -1
@@ -1,98 +1,111 @@
1
- import { buildDynamicCopy as D } from "../../../core/utils/Localization.es.js";
2
- import { useBudgetsStore as v, useGlobalCopyStore as O, useTransactionStore as T } from "../../../common/context/hooks.es.js";
3
- import f from "../../../common/components/dialog/Dialog.es.js";
1
+ import { buildDynamicCopy as c } from "../../../core/utils/Localization.es.js";
2
+ import { useBudgetsStore as O, useGlobalCopyStore as T, useTransactionStore as N } from "../../../common/context/hooks.es.js";
3
+ import b from "../../../common/components/dialog/Dialog.es.js";
4
4
  import w from "../../../common/components/drawer/Drawer.es.js";
5
5
  import F from "../../../transactions/components/shared/TransactionList.es.js";
6
6
  import { BudgetAmount as L } from "../shared/BudgetAmount.es.js";
7
7
  import { Header as P } from "./Header.es.js";
8
- import { SubBudgetZeroState as E } from "../budgetlist/SubBudgetZeroState.es.js";
9
- import { SubBudgetRow as N } from "../budgetlist/SubBudgetRow.es.js";
8
+ import { SubBudgetZeroState as k } from "../budgetlist/SubBudgetZeroState.es.js";
9
+ import { SubBudgetRow as E } from "../budgetlist/SubBudgetRow.es.js";
10
10
  import { AddSubBudget as j } from "./AddSubBudget.es.js";
11
11
  import i from "react";
12
- import { observer as k } from "mobx-react-lite";
13
- import I from "@mui/material/Stack";
14
- import { Text as R } from "@mxenabled/mxui";
15
- import { jsx as t, jsxs as a } from "react/jsx-runtime";
16
- import $ from "@mui/material/Divider";
17
- import G from "@mui/material/List";
18
- var ie = k(({ budget: n }) => {
19
- const { category: _, subBudgets: m } = n, { budgets: o, common: s } = O(), { deleteBudget: b, selectedSubBudget: e, setSelectedSubBudget: h, updateBudget: S } = v(), { filter: c, setFilter: u } = T(), [B, p] = i.useState(!1), [C, d] = i.useState(!1), [l, g] = i.useState("");
12
+ import { observer as I } from "mobx-react-lite";
13
+ import R from "@mui/material/Stack";
14
+ import { Text as $ } from "@mxenabled/mxui";
15
+ import { jsx as r, jsxs as s } from "react/jsx-runtime";
16
+ import G from "@mui/material/Divider";
17
+ import H from "@mui/material/List";
18
+ var ae = I(({ budget: n }) => {
19
+ const { category: h, subBudgets: u } = n, { budgets: o, common: l } = T(), { deleteBudget: S, selectedSubBudget: e, setAlert: g, setSelectedSubBudget: B, updateBudget: C } = O(), { filter: p, setFilter: y } = N(), [x, m] = i.useState(!1), [v, d] = i.useState(!1), [a, f] = i.useState("");
20
20
  i.useEffect(() => {
21
- e && (g(`${e.amount}`), u({
22
- ...c,
23
- custom: (r) => r.category_guid === e.category_guid
21
+ e && (f(`${e.amount}`), y({
22
+ ...p,
23
+ custom: (t) => t.category_guid === e.category_guid
24
24
  }));
25
25
  }, [e]);
26
- const x = async () => {
27
- e && await S({
28
- ...e,
29
- amount: Number(l)
30
- });
31
- }, A = async () => {
32
- e && await b(e.guid), d(!1), y();
33
- }, y = () => {
34
- u({
35
- ...c,
36
- custom: (r) => r.category_guid === n.category_guid || r.top_level_category_guid === n.category_guid
37
- }), h(void 0);
26
+ const A = async () => {
27
+ if (e) {
28
+ const t = await C({
29
+ ...e,
30
+ amount: Number(a)
31
+ });
32
+ m(!1), t || g({
33
+ msg: c(o.error_alert_edit_merchant_budget, e.category.name),
34
+ severity: "error"
35
+ });
36
+ }
37
+ }, D = async () => {
38
+ if (e) {
39
+ const t = await S(e.guid);
40
+ d(!1), t ? _() : g({
41
+ msg: c(o.error_alert_delete_merchant_budget, e.category.name),
42
+ severity: "error"
43
+ });
44
+ }
45
+ }, _ = () => {
46
+ y({
47
+ ...p,
48
+ custom: (t) => t.category_guid === n.category_guid || t.top_level_category_guid === n.category_guid
49
+ }), B(void 0);
38
50
  };
39
- return /* @__PURE__ */ a(i.Fragment, { children: [
40
- /* @__PURE__ */ a(G, {
51
+ return /* @__PURE__ */ s(i.Fragment, { children: [
52
+ /* @__PURE__ */ s(H, {
41
53
  sx: { bgcolor: "background.paper" },
42
- children: [m.length === 0 ? /* @__PURE__ */ t(E, {}) : m.map((r) => /* @__PURE__ */ a(i.Fragment, { children: [/* @__PURE__ */ t(N, { budget: r }), /* @__PURE__ */ t($, {})] }, r.guid)), /* @__PURE__ */ t(j, {
43
- category: _,
54
+ children: [u.length === 0 ? /* @__PURE__ */ r(k, {}) : u.map((t) => /* @__PURE__ */ s(i.Fragment, { children: [/* @__PURE__ */ r(E, { budget: t }), /* @__PURE__ */ r(G, {})] }, t.guid)), /* @__PURE__ */ r(j, {
55
+ category: h,
44
56
  parentBudget: n
45
57
  })]
46
58
  }),
47
- /* @__PURE__ */ t(w, {
48
- ariaLabelClose: s.close_aria,
59
+ /* @__PURE__ */ r(w, {
60
+ ariaLabelClose: l.close_aria,
49
61
  isOpen: !!e,
50
- onClose: y,
51
- onPrimaryAction: () => p(!0),
62
+ onClose: _,
63
+ onPrimaryAction: () => m(!0),
52
64
  onSecondaryAction: () => d(!0),
53
65
  primaryText: o.details_edit_button,
54
66
  secondaryText: o.details_delete_button,
55
67
  title: o.details_title,
56
- children: e && /* @__PURE__ */ a(I, {
68
+ children: e && /* @__PURE__ */ s(R, {
57
69
  gap: 24,
58
- children: [/* @__PURE__ */ t(P, { budget: e }), /* @__PURE__ */ t(F, { height: "100%" })]
70
+ children: [/* @__PURE__ */ r(P, { budget: e }), /* @__PURE__ */ r(F, { height: "100%" })]
59
71
  })
60
72
  }),
61
- e && /* @__PURE__ */ a(i.Fragment, { children: [/* @__PURE__ */ t(f, {
73
+ e && /* @__PURE__ */ s(i.Fragment, { children: [/* @__PURE__ */ r(b, {
62
74
  copy: {
63
- close_aria: s.close_aria,
64
- title: o.details_edit_title
75
+ close_aria: l.close_aria,
76
+ title: o.details_edit_title_subbudget
65
77
  },
66
- disablePrimaryButton: Number(l) <= 0,
67
- isOpen: B,
68
- onClose: () => p(!1),
69
- onPrimaryAction: x,
78
+ disablePrimaryButton: a === "" || Number(a) < 0 || isNaN(Number(a)),
79
+ isOpen: x,
80
+ onClose: () => m(!1),
81
+ onPrimaryAction: A,
70
82
  primaryText: o.edit_save_button,
71
- children: /* @__PURE__ */ t(L, {
72
- amount: l,
83
+ sx: { "& .MuiStack-root:first-of-type": { pb: 8 } },
84
+ children: /* @__PURE__ */ r(L, {
85
+ amount: a,
73
86
  categoryName: e.category.name,
74
- onAmountChanged: g
87
+ onAmountChanged: f
75
88
  })
76
- }), /* @__PURE__ */ t(f, {
89
+ }), /* @__PURE__ */ r(b, {
77
90
  copy: {
78
- close_aria: s.close_aria,
91
+ close_aria: l.close_aria,
79
92
  title: o.delete_title
80
93
  },
81
- isOpen: C,
94
+ isOpen: v,
82
95
  onClose: () => d(!1),
83
- onPrimaryAction: A,
96
+ onPrimaryAction: D,
84
97
  primaryColor: "error",
85
98
  primaryText: "Delete",
86
99
  secondaryColor: "secondary",
87
- children: /* @__PURE__ */ t(R, {
100
+ children: /* @__PURE__ */ r($, {
88
101
  variant: "subtitle1",
89
- children: D(o.delete_description, e.category.name)
102
+ children: c(o.delete_description, e.category.name)
90
103
  })
91
104
  })] })
92
105
  ] });
93
106
  });
94
107
  export {
95
- ie as SubBudgetList
108
+ ae as SubBudgetList
96
109
  };
97
110
 
98
111
  //# sourceMappingURL=SubBudgetList.es.js.map
@@ -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.details_edit_title }}\n disablePrimaryButton={Number(amount) <= 0}\n isOpen={isEditOpen}\n onClose={() => setIsEditOpen(false)}\n onPrimaryAction={handleUpdateBudget}\n primaryText={copy.edit_save_button}\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
+ {"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, setAlert, setSelectedSubBudget, updateBudget } =\n 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 const result = await updateBudget({\n ...selectedSubBudget,\n amount: Number(amount),\n } as Budget)\n setIsEditOpen(false)\n if (!result) {\n setAlert({\n msg: buildDynamicCopy(\n copy.error_alert_edit_merchant_budget,\n selectedSubBudget.category.name,\n ) as string,\n severity: 'error',\n })\n }\n }\n }\n\n const handleDeleteBudget = async () => {\n if (selectedSubBudget) {\n const result = await deleteBudget(selectedSubBudget.guid)\n setIsDeleteOpen(false)\n if (result) {\n handleClose()\n } else {\n setAlert({\n msg: buildDynamicCopy(\n copy.error_alert_delete_merchant_budget,\n selectedSubBudget.category.name,\n ) as string,\n severity: 'error',\n })\n }\n }\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-of-type': {\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 "../../../common/components/donuts/SingleSegmentDonut.es.js";
2
+ import { BudgetDonut as h } from "../shared/BudgetDonut.es.js";
3
3
  import "react";
4
4
  import a from "@mui/material/Stack";
5
- import { CategoryIcon as b, Text as o } from "@mxenabled/mxui";
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 v from "@mui/material/ListItemButton";
9
- import x from "@mui/material/ListItemText";
10
- import C from "@mui/material/ListItemAvatar";
11
- var _ = ({ budget: r, onClick: m }) => {
12
- const { amount: s, budgetColors: { background: d, description: p }, category_guid: l, description: u, percentage: i, subBudgets: f, transaction_total: g } = r, n = i > 100;
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(C, {
16
- sx: {
17
- mb: -8,
18
- mr: 16
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(s, "0,0")}
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: u
50
+ children: l
62
51
  })]
63
52
  })
64
53
  })]
65
54
  }) });
66
55
  };
67
56
  export {
68
- _ as BudgetRow
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 ListItemAvatar from '@mui/material/ListItemAvatar'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\n\nimport { CategoryIcon, Text } from '@mxenabled/mxui'\n\nimport { SingleSegmentDonut } from '../../../common'\nimport { type DetailedBudget } from '../../../core'\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\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 <ListItemAvatar sx={{ mb: -8, mr: 16 }}>\n <SingleSegmentDonut color={background} percent={percentage} size={40}>\n <CategoryIcon categoryGuid={category_guid} variant=\"basic\" />\n </SingleSegmentDonut>\n </ListItemAvatar>\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,MAAgB,IAAI;AAAA,QAAE,IAAI;AAAA,QAAI,IAAI;AAAA,MAAG;AAAA,MACnC,UAAA,gBAAA,EAAC,GAAD;AAAA,QAAoB,OAAO;AAAA,QAAY,SAAS;AAAA,QAAY,MAAM;AAAA,QAChE,UAAA,gBAAA,EAAC,GAAD;AAAA,UAAc,cAAc;AAAA,UAAe,SAAQ;AAAA,QAAS,CAAA;AAAA,MAC1C,CAAA;AAAA,IACN,CAAA,GAChB,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
+ {"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 d } from "../../../common/context/hooks.es.js";
2
- import { formatCurrency as o } from "../../../core/utils/NumberFormatting.es.js";
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 u } from "mobx-react-lite";
6
- import e from "@mui/material/Stack";
7
- import { CategoryIcon as l, Text as n } from "@mxenabled/mxui";
8
- import { jsx as t, jsxs as g } from "react/jsx-runtime";
9
- import y from "@mui/material/ListItem";
10
- import b from "@mui/material/ListItemButton";
11
- import h from "@mui/material/ListItemText";
12
- import S from "@mui/material/ListItemAvatar";
13
- var z = u(({ budget: r }) => {
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
- z as SubBudgetRow
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 ListItemAvatar from '@mui/material/ListItemAvatar'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\n\nimport { CategoryIcon, Text } from '@mxenabled/mxui'\n\nimport { SingleSegmentDonut, useBudgetsStore } from '../../../common'\nimport { type DetailedBudget } from '../../../core'\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\n\ninterface SubBudgetRowProps {\n budget: DetailedBudget\n}\n\nexport const SubBudgetRow: React.FC<SubBudgetRowProps> = observer(({ budget }) => {\n const {\n amount,\n budgetColors: { background },\n category,\n percentage,\n transaction_total,\n } = budget\n\n const { setSelectedSubBudget } = useBudgetsStore()\n\n return (\n <ListItem>\n <ListItemButton onClick={() => setSelectedSubBudget(budget)}>\n <ListItemAvatar sx={{ mb: -8, mr: 16 }}>\n <SingleSegmentDonut color={background} percent={percentage} size={40}>\n <CategoryIcon categoryGuid={category.parent_guid} variant=\"basic\" />\n </SingleSegmentDonut>\n </ListItemAvatar>\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 </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 </ListItemButton>\n </ListItem>\n )\n})\n"],"mappings":";;;;;;;;;;;;AAmBA,IAAa,IAA4C,EAAA,CAAU,EAAE,QAAA,EAAA,MAAa;AAChF,QAAM,EACJ,QAAA,GACA,cAAc,EAAE,YAAA,EAAA,GAChB,UAAA,GACA,YAAA,GACA,mBAAA,EAAA,IACE,GAEE,EAAE,sBAAA,EAAA,IAAyB,EAAgB;AAEjD,SACE,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD;AAAA,IAAgB,SAAA,MAAe,EAAqB,CAAM;AAAA,IAA1D,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,MAAgB,IAAI;AAAA,QAAE,IAAI;AAAA,QAAI,IAAI;AAAA,MAAG;AAAA,MACnC,UAAA,gBAAA,EAAC,GAAD;AAAA,QAAoB,OAAO;AAAA,QAAY,SAAS;AAAA,QAAY,MAAM;AAAA,QAChE,UAAA,gBAAA,EAAC,GAAD;AAAA,UAAc,cAAc,EAAS;AAAA,UAAa,SAAQ;AAAA,QAAS,CAAA;AAAA,MACjD,CAAA;AAAA,IACN,CAAA,GAChB,gBAAA,EAAC,GAAD;AAAA,MACE,SACE,gBAAA,EAAC,GAAD;AAAA,QAAO,WAAU;AAAA,QAAO,WAAU;AAAA,QAAM,gBAAe;AAAA,QACrD,UAAA,gBAAA,EAAC,GAAD;AAAA,UAAM,MAAM;AAAA,UAAM,SAAQ;AAAA,UACvB,UAAA,EAAO,SAAS;AAAA,QACb,CAAA;AAAA,MACD,CAAA;AAAA,MAET,WACE,gBAAA,EAAC,GAAD;AAAA,QAAO,WAAU;AAAA,QAAO,WAAU;AAAA,QAAM,gBAAe;AAAA,QACrD,UAAA,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;AAAA,MACD,CAAA;AAAA,IAEV,CAAA,CACa;AAAA,EACR,CAAA,EAAA,CAAA;AAEd,CAAC"}
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 r } from "../../../core/utils/Localization.es.js";
2
- import { useBudgetsStore as a, useGlobalCopyStore as l, useRecurringTransactionsStore as f } from "../../../common/context/hooks.es.js";
3
- import { formatCurrency as y } from "../../../core/utils/NumberFormatting.es.js";
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 e from "@mui/material/Stack";
7
- import { Text as m } from "@mxenabled/mxui";
8
- import { jsx as t, jsxs as n } from "react/jsx-runtime";
9
- var j = ({ amount: i, categoryName: u, onAmountChanged: c }) => {
10
- const { budgets: o } = l(), { totalBudgeted: d } = a(), { incomeTotal: p } = f(), s = p - d;
11
- return /* @__PURE__ */ n(e, {
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__ */ n(e, { children: [/* @__PURE__ */ t(m, { children: r(o.add_description_top, y(s, "0,0")) }), /* @__PURE__ */ t(m, { children: r(o.add_description_bottom, u) })] }), /* @__PURE__ */ t(b, {
14
- amount: i,
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: o.add_label,
15
+ label: r.add_label,
17
16
  minAmount: 0,
18
- setAmount: c,
17
+ setAmount: p,
19
18
  sx: { ".MuiTypography-body1": { p: 0 } }
20
19
  })]
21
20
  });
22
21
  };
23
22
  export {
24
- j as BudgetAmount
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 {\n CurrencyInput,\n useBudgetsStore,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n} from '../../../common'\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\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 const { totalBudgeted } = useBudgetsStore()\n const { incomeTotal } = useRecurringTransactionsStore()\n\n const unbudgetedIncome = incomeTotal - totalBudgeted\n\n return (\n <Stack gap={16}>\n <Stack>\n <Text>\n {\n buildDynamicCopy(\n copy.add_description_top,\n formatCurrency(unbudgetedIncome, '0,0'),\n ) as string\n }\n </Text>\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":";;;;;;;;AAmBA,IAAa,IAAA,CAA6C,EACxD,QAAA,GACA,cAAA,GACA,iBAAA,EAAA,MACI;AACJ,QAAM,EAAE,SAAS,EAAA,IAAS,EAAmB,GACvC,EAAE,eAAA,EAAA,IAAkB,EAAgB,GACpC,EAAE,aAAA,EAAA,IAAgB,EAA8B,GAEhD,IAAmB,IAAc;AAEvC,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,KAAK;AAAA,IAAZ,UAAA,CACE,gBAAA,EAAC,GAAD,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD,EAAA,UAEI,EACE,EAAK,qBACL,EAAe,GAAkB,KAAK,CACxC,EAEE,CAAA,GACN,gBAAA,EAAC,GAAD,EAAA,UAAO,EAAiB,EAAK,wBAAwB,CAAY,EAAkB,CAAA,CAC9E,EAAA,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"}
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,8 @@
1
+ import { default as React } from 'react';
2
+ interface BudgetDonutProps {
3
+ background: string;
4
+ percentage: number;
5
+ categoryGuid?: string;
6
+ }
7
+ export declare const BudgetDonut: React.FC<BudgetDonutProps>;
8
+ export {};
@@ -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,7 @@
1
+ import { default as React } from 'react';
2
+ import { DetailedBudget } from '../../../core';
3
+ interface SubBudgetCategoryProps {
4
+ budget: DetailedBudget;
5
+ }
6
+ export declare const SubBudgetCategory: React.FC<SubBudgetCategoryProps>;
7
+ export {};
@@ -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 SubBudgetCategoryProps {\n budget: DetailedBudget\n}\n\nexport const SubBudgetCategory: React.FC<SubBudgetCategoryProps> = ({ 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,CAAuD,EAAE,QAAA,EAAA,MAAa;AACjF,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"}
@@ -8,3 +8,9 @@ export declare enum RecurrenceTypes {
8
8
  EveryOtherQuarter = 6,
9
9
  EveryYear = 7
10
10
  }
11
+ export declare const MainClassGuids: {
12
+ readonly PAYROLL: "MNC-bfc102ab-d4c3-41a7-9cf6-fdbf2e1ed7ea";
13
+ readonly PAYROLL_QA: "MNC-cc857751-2758-4f50-bdfe-d1210f40a155";
14
+ };
15
+ export declare const ALLOWED_MERCHANTLESS_BILL_CATEGORIES: readonly [string, string, string, string, string, string, string];
16
+ export declare const ALLOWED_MERCHANTLESS_INCOME_MAIN_CLASSES: readonly ["MNC-bfc102ab-d4c3-41a7-9cf6-fdbf2e1ed7ea", "MNC-cc857751-2758-4f50-bdfe-d1210f40a155"];
@@ -1,7 +1,22 @@
1
- var v = /* @__PURE__ */ (function(t) {
2
- return t[t.Unknown = 0] = "Unknown", t[t.EveryWeek = 1] = "EveryWeek", t[t.EveryOtherWeek = 2] = "EveryOtherWeek", t[t.EveryMonth = 3] = "EveryMonth", t[t.EveryOtherMonth = 4] = "EveryOtherMonth", t[t.EveryQuarter = 5] = "EveryQuarter", t[t.EveryOtherQuarter = 6] = "EveryOtherQuarter", t[t.EveryYear = 7] = "EveryYear", t;
3
- })({});
1
+ import { CategoryGuids as L } from "./Category.es.js";
2
+ var v = /* @__PURE__ */ (function(E) {
3
+ return E[E.Unknown = 0] = "Unknown", E[E.EveryWeek = 1] = "EveryWeek", E[E.EveryOtherWeek = 2] = "EveryOtherWeek", E[E.EveryMonth = 3] = "EveryMonth", E[E.EveryOtherMonth = 4] = "EveryOtherMonth", E[E.EveryQuarter = 5] = "EveryQuarter", E[E.EveryOtherQuarter = 6] = "EveryOtherQuarter", E[E.EveryYear = 7] = "EveryYear", E;
4
+ })({}), O = {
5
+ PAYROLL: "MNC-bfc102ab-d4c3-41a7-9cf6-fdbf2e1ed7ea",
6
+ PAYROLL_QA: "MNC-cc857751-2758-4f50-bdfe-d1210f40a155"
7
+ }, a = [
8
+ L.MORTGAGE_RENT,
9
+ L.BILLS_AND_UTILITIES,
10
+ L.HOME_PHONE,
11
+ L.INTERNET,
12
+ L.MOBILE_PHONE,
13
+ L.TELEVISION,
14
+ L.UTILITIES
15
+ ], A = [O.PAYROLL, O.PAYROLL_QA];
4
16
  export {
17
+ a as ALLOWED_MERCHANTLESS_BILL_CATEGORIES,
18
+ A as ALLOWED_MERCHANTLESS_INCOME_MAIN_CLASSES,
19
+ O as MainClassGuids,
5
20
  v as RecurrenceTypes
6
21
  };
7
22
 
@@ -1 +1 @@
1
- {"version":3,"file":"repeatingTransactions.es.js","names":[],"sources":["../../../src/core/constants/repeatingTransactions.ts"],"sourcesContent":["export enum RecurrenceTypes {\n Unknown = 0,\n EveryWeek = 1,\n EveryOtherWeek = 2,\n EveryMonth = 3,\n EveryOtherMonth = 4,\n EveryQuarter = 5,\n EveryOtherQuarter = 6,\n EveryYear = 7,\n}\n"],"mappings":"AAAA,IAAY,IAAL,0BAAA,GAAA;AACL,SAAA,EAAA,EAAA,UAAA,CAAA,IAAA,WACA,EAAA,EAAA,YAAA,CAAA,IAAA,aACA,EAAA,EAAA,iBAAA,CAAA,IAAA,kBACA,EAAA,EAAA,aAAA,CAAA,IAAA,cACA,EAAA,EAAA,kBAAA,CAAA,IAAA,mBACA,EAAA,EAAA,eAAA,CAAA,IAAA,gBACA,EAAA,EAAA,oBAAA,CAAA,IAAA,qBACA,EAAA,EAAA,YAAA,CAAA,IAAA;AACF,GAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"repeatingTransactions.es.js","names":[],"sources":["../../../src/core/constants/repeatingTransactions.ts"],"sourcesContent":["import { CategoryGuids } from './Category'\n\nexport enum RecurrenceTypes {\n Unknown = 0,\n EveryWeek = 1,\n EveryOtherWeek = 2,\n EveryMonth = 3,\n EveryOtherMonth = 4,\n EveryQuarter = 5,\n EveryOtherQuarter = 6,\n EveryYear = 7,\n}\n\nexport const MainClassGuids = {\n PAYROLL: 'MNC-bfc102ab-d4c3-41a7-9cf6-fdbf2e1ed7ea',\n PAYROLL_QA: 'MNC-cc857751-2758-4f50-bdfe-d1210f40a155',\n} as const\n\nexport const ALLOWED_MERCHANTLESS_BILL_CATEGORIES = [\n CategoryGuids.MORTGAGE_RENT,\n CategoryGuids.BILLS_AND_UTILITIES,\n CategoryGuids.HOME_PHONE,\n CategoryGuids.INTERNET,\n CategoryGuids.MOBILE_PHONE,\n CategoryGuids.TELEVISION,\n CategoryGuids.UTILITIES,\n] as const\n\nexport const ALLOWED_MERCHANTLESS_INCOME_MAIN_CLASSES = [\n MainClassGuids.PAYROLL,\n MainClassGuids.PAYROLL_QA,\n] as const\n"],"mappings":";AAEA,IAAY,IAAL,0BAAA,GAAA;AACL,SAAA,EAAA,EAAA,UAAA,CAAA,IAAA,WACA,EAAA,EAAA,YAAA,CAAA,IAAA,aACA,EAAA,EAAA,iBAAA,CAAA,IAAA,kBACA,EAAA,EAAA,aAAA,CAAA,IAAA,cACA,EAAA,EAAA,kBAAA,CAAA,IAAA,mBACA,EAAA,EAAA,eAAA,CAAA,IAAA,gBACA,EAAA,EAAA,oBAAA,CAAA,IAAA,qBACA,EAAA,EAAA,YAAA,CAAA,IAAA;AACF,GAAA,CAAA,CAAA,GAEa,IAAiB;AAAA,EAC5B,SAAS;AAAA,EACT,YAAY;AACd,GAEa,IAAuC;AAAA,EAClD,EAAc;AAAA,EACd,EAAc;AAAA,EACd,EAAc;AAAA,EACd,EAAc;AAAA,EACd,EAAc;AAAA,EACd,EAAc;AAAA,EACd,EAAc;AAChB,GAEa,IAA2C,CACtD,EAAe,SACf,EAAe,UACjB"}