@mx-cartographer/experiences 9.2.9-alpha.al3 → 9.2.9

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 (45) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{AccountDetailsDrawer-CwDPr4i5.mjs → AccountDetailsDrawer-uaxiCVOl.mjs} +2 -2
  3. package/dist/{AccountDetailsDrawer-CwDPr4i5.mjs.map → AccountDetailsDrawer-uaxiCVOl.mjs.map} +1 -1
  4. package/dist/{Analytics-DST_WxYZ.mjs → Analytics-B8AaC22u.mjs} +2 -2
  5. package/dist/{Analytics-DST_WxYZ.mjs.map → Analytics-B8AaC22u.mjs.map} +1 -1
  6. package/dist/{ApiEndpoints-YY8ajnnd.mjs → ApiEndpoints-DXwIYNUV.mjs} +1 -2
  7. package/dist/ApiEndpoints-DXwIYNUV.mjs.map +1 -0
  8. package/dist/{CategorySelectorDrawer-NJsFsKP1.mjs → CategorySelectorDrawer-BYeVJ_kO.mjs} +94 -86
  9. package/dist/{CategorySelectorDrawer-NJsFsKP1.mjs.map → CategorySelectorDrawer-BYeVJ_kO.mjs.map} +1 -1
  10. package/dist/{GlobalCopyApi-DNC5K2QG.mjs → GlobalCopyApi-CLhyon-B.mjs} +2 -2
  11. package/dist/{GlobalCopyApi-DNC5K2QG.mjs.map → GlobalCopyApi-CLhyon-B.mjs.map} +1 -1
  12. package/dist/{ManageIncome-Br11zvAT.mjs → ManageIncome-CtD65bN_.mjs} +3 -3
  13. package/dist/{ManageIncome-Br11zvAT.mjs.map → ManageIncome-CtD65bN_.mjs.map} +1 -1
  14. package/dist/{RecurringSettings-BkRz-uzd.mjs → RecurringSettings-BM2bQfSY.mjs} +2 -2
  15. package/dist/{RecurringSettings-BkRz-uzd.mjs.map → RecurringSettings-BM2bQfSY.mjs.map} +1 -1
  16. package/dist/{TransactionDetails-CLc7oeHT.mjs → TransactionDetails-Bo0rVT-L.mjs} +2 -2
  17. package/dist/{TransactionDetails-CLc7oeHT.mjs.map → TransactionDetails-Bo0rVT-L.mjs.map} +1 -1
  18. package/dist/{UserStore-cI7SJMs_.mjs → UserStore-CgsAunf1.mjs} +145 -166
  19. package/dist/UserStore-CgsAunf1.mjs.map +1 -0
  20. package/dist/{ViewMoreMicroCard-Bx9xa2z5.mjs → ViewMoreMicroCard-B4oeGrbE.mjs} +3 -3
  21. package/dist/{ViewMoreMicroCard-Bx9xa2z5.mjs.map → ViewMoreMicroCard-B4oeGrbE.mjs.map} +1 -1
  22. package/dist/accounts/index.es.js +2 -2
  23. package/dist/budgets/index.es.js +3 -3
  24. package/dist/cashflow/index.es.js +3 -3
  25. package/dist/categories/index.es.js +1 -1
  26. package/dist/common/index.es.js +2 -2
  27. package/dist/core/api/SettingsApi.d.ts +0 -4
  28. package/dist/core/constants/ApiEndpoints.d.ts +0 -1
  29. package/dist/core/index.es.js +4 -4
  30. package/dist/core/stores/SettingsStore.d.ts +0 -4
  31. package/dist/core/types/localization/SettingsCopy.d.ts +0 -6
  32. package/dist/finstrong/index.es.js +2 -2
  33. package/dist/microinsights/index.es.js +1 -1
  34. package/dist/notifications/index.es.js +1 -1
  35. package/dist/recurringtransactions/index.es.js +4 -4
  36. package/dist/settings/components/profile/ProfileTab.d.ts +1 -1
  37. package/dist/settings/index.es.js +416 -460
  38. package/dist/settings/index.es.js.map +1 -1
  39. package/dist/spending/index.es.js +1 -1
  40. package/dist/transactions/index.es.js +3 -3
  41. package/dist/trends/index.es.js +2 -2
  42. package/package.json +1 -1
  43. package/dist/ApiEndpoints-YY8ajnnd.mjs.map +0 -1
  44. package/dist/UserStore-cI7SJMs_.mjs.map +0 -1
  45. package/dist/settings/components/profile/actions/ResetPasswordAction.d.ts +0 -4
@@ -1,17 +1,17 @@
1
- import { jsx as t, jsxs as g } from "react/jsx-runtime";
1
+ import { jsx as t, jsxs as E } from "react/jsx-runtime";
2
2
  import { observer as p } from "mobx-react-lite";
3
- import E from "react";
3
+ import C from "react";
4
4
  import $ from "@mui/material/Stack";
5
- import { G as K, l as f, u as S, f as A, a as B } from "./hooks-97sNJ_lf.mjs";
5
+ import { G as K, l as A, u as b, f as O, a as B } from "./hooks-97sNJ_lf.mjs";
6
6
  import U from "@mui/material/List";
7
7
  import V from "@mui/material/Paper";
8
8
  import { b as _ } from "./Localization-DnoVyBNK.mjs";
9
9
  import Y from "@mui/material/Divider";
10
- import T from "@mui/material/ListItem";
10
+ import G from "@mui/material/ListItem";
11
11
  import W from "@mui/material/ListItemAvatar";
12
- import N from "@mui/material/ListItemButton";
12
+ import R from "@mui/material/ListItemButton";
13
13
  import F from "@mui/material/ListItemIcon";
14
- import G from "@mui/material/ListItemText";
14
+ import w from "@mui/material/ListItemText";
15
15
  import { CheckCircle as M, Edit as j, Delete as X, ExpandMore as z } from "@mxenabled/mx-icons";
16
16
  import { Text as q, TextField as H, CategoryIcon as J } from "@mxenabled/mxui";
17
17
  import Q from "@mui/material/Collapse";
@@ -24,11 +24,11 @@ import { u as ae } from "./useAriaLive-MkYebyUR.mjs";
24
24
  import { L as k } from "./Loader-CxeBwuPG.mjs";
25
25
  import { S as re } from "./SearchBox-Cpgu_gdO.mjs";
26
26
  import { D as ne } from "./Drawer-DsnW2o0v.mjs";
27
- const y = () => {
28
- if (!E.useContext(K))
27
+ const f = () => {
28
+ if (!C.useContext(K))
29
29
  throw new Error("useCategoryUiStore() must be used within the GlobalDataContext");
30
- return f().uiStore;
31
- }, C = {
30
+ return A().uiStore;
31
+ }, g = {
32
32
  ON_CATEGORY_EXPANDED: "onCategoryExpanded",
33
33
  ON_CATEGORY_COLLAPSED: "onCategoryCollapsed",
34
34
  ON_CATEGORY_SELECTED: "onCategorySelected",
@@ -41,7 +41,7 @@ const y = () => {
41
41
  ON_SUBCATEGORY_DELETED: "onSubcategoryDeleted",
42
42
  ON_SUBCATEGORY_SAVED: "onSubcategorySaved"
43
43
  };
44
- var L = /* @__PURE__ */ ((e) => (e.ADD = "add", e.EDIT = "edit", e.DELETE = "delete", e))(L || {});
44
+ var T = /* @__PURE__ */ ((e) => (e.ADD = "add", e.EDIT = "edit", e.DELETE = "delete", e))(T || {});
45
45
  const se = ({
46
46
  categoryName: e = "",
47
47
  onClose: s,
@@ -49,9 +49,9 @@ const se = ({
49
49
  isOpen: l,
50
50
  type: i
51
51
  }) => {
52
- const [a, c] = E.useState(e), { categories: r } = S(), { setShouldDisableDrawerScroll: n } = y();
52
+ const [a, c] = C.useState(e), { categories: r } = b(), { setShouldDisableDrawerScroll: n } = f();
53
53
  let d = "", m = [];
54
- const u = i === "delete", h = e.length > 50 ? `${e.slice(0, 50)}...` : e, b = i === "edit" ? _(r.edit_subcategory_aria, h) : r.add_subcategory_aria;
54
+ const u = i === "delete", h = e.length > 50 ? `${e.slice(0, 50)}...` : e, y = i === "edit" ? _(r.edit_subcategory_aria, h) : r.add_subcategory_aria;
55
55
  switch (i) {
56
56
  case "add":
57
57
  d = r.add_subcategory_title;
@@ -83,13 +83,13 @@ const se = ({
83
83
  children: /* @__PURE__ */ t(Z, { children: u ? m : /* @__PURE__ */ t(
84
84
  H,
85
85
  {
86
- label: b,
86
+ label: y,
87
87
  name: "modify-subcategory",
88
88
  onChange: (D) => c(D.target.value),
89
89
  placeholder: r.input_placeholder,
90
90
  slotProps: {
91
91
  htmlInput: {
92
- "aria-label": b,
92
+ "aria-label": y,
93
93
  maxLength: 50
94
94
  }
95
95
  },
@@ -100,29 +100,29 @@ const se = ({
100
100
  ) })
101
101
  }
102
102
  );
103
- }, R = p(se), ie = ({ announce: e, parentCategory: s }) => {
104
- const [o, l] = E.useState(!1), { addCategory: i } = f(), { categories: a } = S(), { onEvent: c } = A(), { setShouldDisableDrawerScroll: r } = y(), n = async (u) => {
105
- await i(u.trim(), s.guid), e(_(a.add_subcategory_announcement, u)), c(C.ON_SUBCATEGORY_ADDED), l(!1);
103
+ }, I = p(se), ie = ({ announce: e, parentCategory: s }) => {
104
+ const [o, l] = C.useState(!1), { addCategory: i } = A(), { categories: a } = b(), { onEvent: c } = O(), { setShouldDisableDrawerScroll: r } = f(), n = async (u) => {
105
+ await i(u.trim(), s.guid), e(_(a.add_subcategory_announcement, u)), c(g.ON_SUBCATEGORY_ADDED), l(!1);
106
106
  }, d = async () => {
107
- c(C.ON_SUBCATEGORY_ADD_CLICK), r(!0), l(!0);
107
+ c(g.ON_SUBCATEGORY_ADD_CLICK), r(!0), l(!0);
108
108
  }, m = () => {
109
- l(!1), c(C.ON_SUBCATEGORY_ADD_CANCEL_CLICK);
109
+ l(!1), c(g.ON_SUBCATEGORY_ADD_CANCEL_CLICK);
110
110
  };
111
- return /* @__PURE__ */ g(T, { disableGutters: !0, disablePadding: !0, children: [
112
- /* @__PURE__ */ t(N, { onClick: d, sx: { ml: 60 }, children: /* @__PURE__ */ t(
113
- G,
111
+ return /* @__PURE__ */ E(G, { disableGutters: !0, disablePadding: !0, children: [
112
+ /* @__PURE__ */ t(R, { onClick: d, sx: { ml: 60 }, children: /* @__PURE__ */ t(
113
+ w,
114
114
  {
115
115
  primary: a.add_subcategory_button,
116
116
  slotProps: { primary: { color: "primary", fontWeight: "normal", variant: "body1" } }
117
117
  }
118
118
  ) }),
119
119
  o && /* @__PURE__ */ t(
120
- R,
120
+ I,
121
121
  {
122
122
  isOpen: o,
123
123
  onClose: m,
124
124
  onSave: n,
125
- type: L.ADD
125
+ type: T.ADD
126
126
  }
127
127
  )
128
128
  ] });
@@ -132,19 +132,19 @@ const se = ({
132
132
  subCategory: o,
133
133
  showRename: l
134
134
  }) => {
135
- const { onEvent: i } = A(), { updateCategory: a } = f(), { categories: c } = S(), r = async (d) => {
136
- await a({ ...o, name: d }), e(_(c.edit_subcategory_announcement, o.name, d)), i(C.ON_SUBCATEGORY_SAVED), s(!1);
135
+ const { onEvent: i } = O(), { updateCategory: a } = A(), { categories: c } = b(), r = async (d) => {
136
+ await a({ ...o, name: d }), e(_(c.edit_subcategory_announcement, o.name, d)), i(g.ON_SUBCATEGORY_SAVED), s(!1);
137
137
  }, n = () => {
138
- s(!1), i(C.ON_SUBCATEGORY_EDIT_CANCEL_CLICK);
138
+ s(!1), i(g.ON_SUBCATEGORY_EDIT_CANCEL_CLICK);
139
139
  };
140
140
  return /* @__PURE__ */ t(
141
- R,
141
+ I,
142
142
  {
143
143
  categoryName: o.name,
144
144
  isOpen: l,
145
145
  onClose: n,
146
146
  onSave: r,
147
- type: L.EDIT
147
+ type: T.EDIT
148
148
  }
149
149
  );
150
150
  }, de = p(le), ue = ({
@@ -154,19 +154,19 @@ const se = ({
154
154
  setShowDelete: l,
155
155
  subCategory: i
156
156
  }) => {
157
- const { onEvent: a } = A(), { removeCategory: c } = f(), { categories: r } = S(), n = () => {
158
- l(!1), a(C.ON_SUBCATEGORY_DELETE_CLICK);
157
+ const { onEvent: a } = O(), { removeCategory: c } = A(), { categories: r } = b(), n = () => {
158
+ l(!1), a(g.ON_SUBCATEGORY_DELETE_CLICK);
159
159
  }, d = async () => {
160
- await c(i.guid), e(_(r.delete_subcategory_announcement, i.name)), a(C.ON_SUBCATEGORY_DELETED), l(!1);
160
+ await c(i.guid), e(_(r.delete_subcategory_announcement, i.name)), a(g.ON_SUBCATEGORY_DELETED), l(!1);
161
161
  };
162
162
  return /* @__PURE__ */ t(
163
- R,
163
+ I,
164
164
  {
165
165
  categoryName: s.name,
166
166
  isOpen: o,
167
167
  onClose: n,
168
168
  onSave: d,
169
- type: L.DELETE
169
+ type: T.DELETE
170
170
  }
171
171
  );
172
172
  }, me = p(ue), Ce = ({
@@ -182,38 +182,38 @@ const se = ({
182
182
  showSelected: r,
183
183
  unselectable: n,
184
184
  unselectableText: d
185
- } = y(), { categories: m } = S(), { onEvent: u } = A(), [h, b] = E.useState(!1), [D, O] = E.useState(!1), x = !!o.revision, w = o.guid === i, I = !n.some((P) => P === o.guid);
186
- return /* @__PURE__ */ g(
187
- T,
185
+ } = f(), { categories: m } = b(), { onEvent: u } = O(), [h, y] = C.useState(!1), [D, L] = C.useState(!1), N = !!o.revision, S = o.guid === i, x = !n.some((P) => P === o.guid);
186
+ return /* @__PURE__ */ E(
187
+ G,
188
188
  {
189
189
  className: "mx-cat-subcategory-row",
190
190
  disableGutters: !0,
191
191
  disablePadding: !0,
192
192
  sx: { pl: 58 },
193
193
  children: [
194
- /* @__PURE__ */ g(
195
- N,
194
+ /* @__PURE__ */ E(
195
+ R,
196
196
  {
197
- "aria-pressed": w,
197
+ "aria-pressed": S,
198
198
  color: "secondary",
199
199
  onClick: () => {
200
- I && (a(o.guid), l(o.guid), u(C.ON_CATEGORY_SELECTED));
200
+ x && (a(o.guid), l(o.guid), u(g.ON_CATEGORY_SELECTED));
201
201
  },
202
202
  sx: { height: 44, minWidth: 0, overflow: "hidden" },
203
203
  children: [
204
204
  /* @__PURE__ */ t(
205
- G,
205
+ w,
206
206
  {
207
207
  primary: o.name,
208
208
  slotProps: { primary: { fontWeight: "normal", variant: "body1", noWrap: !0 } }
209
209
  }
210
210
  ),
211
- r && w && /* @__PURE__ */ t(M, { fontSize: "small" }),
212
- !I && /* @__PURE__ */ t(oe, { label: d })
211
+ r && S && /* @__PURE__ */ t(M, { fontSize: "small" }),
212
+ !x && /* @__PURE__ */ t(oe, { label: d })
213
213
  ]
214
214
  }
215
215
  ),
216
- x && /* @__PURE__ */ g(
216
+ N && /* @__PURE__ */ E(
217
217
  te,
218
218
  {
219
219
  className: "mx-cat-subcategory-edit-container",
@@ -224,7 +224,7 @@ const se = ({
224
224
  {
225
225
  "aria-label": _(m.edit_subcategory_title, o.name),
226
226
  onClick: () => {
227
- b(!0), c(!0), u(C.ON_SUBCATEGORY_EDIT_CLICK);
227
+ y(!0), c(!0), u(g.ON_SUBCATEGORY_EDIT_CLICK);
228
228
  },
229
229
  children: /* @__PURE__ */ t(j, { color: "secondary" })
230
230
  }
@@ -235,7 +235,7 @@ const se = ({
235
235
  "aria-label": _(m.delete_subcategory_aria, o.name),
236
236
  edge: "end",
237
237
  onClick: () => {
238
- O(!0), c(!0), u(C.ON_SUBCATEGORY_DELETE_CLICK);
238
+ L(!0), c(!0), u(g.ON_SUBCATEGORY_DELETE_CLICK);
239
239
  },
240
240
  children: /* @__PURE__ */ t(X, { color: "secondary" })
241
241
  }
@@ -248,7 +248,7 @@ const se = ({
248
248
  {
249
249
  announce: e,
250
250
  parentCategory: s,
251
- setShowDelete: O,
251
+ setShowDelete: L,
252
252
  showDelete: D,
253
253
  subCategory: o
254
254
  }
@@ -257,7 +257,7 @@ const se = ({
257
257
  de,
258
258
  {
259
259
  announce: e,
260
- setShowRename: b,
260
+ setShowRename: y,
261
261
  showRename: h,
262
262
  subCategory: o
263
263
  }
@@ -265,9 +265,9 @@ const se = ({
265
265
  ]
266
266
  }
267
267
  );
268
- }, _e = p(Ce), ge = ({ categories: e, parentCategory: s }) => {
269
- const { expandedGuid: o, searchValue: l } = y(), { announce: i, ariaLive: a } = ae(), c = s.guid === o, r = !!l;
270
- return /* @__PURE__ */ g(
268
+ }, ge = p(Ce), _e = ({ categories: e, parentCategory: s }) => {
269
+ const { expandedGuid: o, searchValue: l } = f(), { announce: i, ariaLive: a } = ae(), c = s.guid === o, r = !!l;
270
+ return /* @__PURE__ */ E(
271
271
  Q,
272
272
  {
273
273
  in: c || r,
@@ -276,16 +276,16 @@ const se = ({
276
276
  unmountOnExit: !0,
277
277
  children: [
278
278
  a,
279
- /* @__PURE__ */ g(
279
+ /* @__PURE__ */ E(
280
280
  U,
281
281
  {
282
282
  "aria-labelledby": `category-${s.guid}`,
283
283
  className: "mx-cat-subcategory-list",
284
284
  id: `subcategories-${s.guid}`,
285
285
  children: [
286
- e.map((n) => /* @__PURE__ */ g(E.Fragment, { children: [
286
+ e.map((n) => /* @__PURE__ */ E(C.Fragment, { children: [
287
287
  /* @__PURE__ */ t(
288
- _e,
288
+ ge,
289
289
  {
290
290
  announce: i,
291
291
  parentCategory: s,
@@ -301,14 +301,14 @@ const se = ({
301
301
  ]
302
302
  }
303
303
  );
304
- }, Ee = p(ge), pe = ({ category: e, subCategories: s }) => {
305
- const { expandedGuid: o, searchValue: l, setExpandedGuid: i } = y(), { onEvent: a } = A(), c = e.guid === o, r = () => {
304
+ }, Ee = p(_e), pe = ({ category: e, subCategories: s }) => {
305
+ const { expandedGuid: o, searchValue: l, setExpandedGuid: i } = f(), { onEvent: a } = O(), c = e.guid === o, r = () => {
306
306
  const n = e.guid !== o ? e.guid : null;
307
- i(n), a(n ? C.ON_CATEGORY_EXPANDED : C.ON_CATEGORY_COLLAPSED);
307
+ i(n), a(n ? g.ON_CATEGORY_EXPANDED : g.ON_CATEGORY_COLLAPSED);
308
308
  };
309
- return /* @__PURE__ */ g(E.Fragment, { children: [
310
- /* @__PURE__ */ t(T, { disableGutters: !0, disablePadding: !0, children: /* @__PURE__ */ g(
311
- N,
309
+ return /* @__PURE__ */ E(C.Fragment, { children: [
310
+ /* @__PURE__ */ t(G, { disableGutters: !0, disablePadding: !0, children: /* @__PURE__ */ E(
311
+ R,
312
312
  {
313
313
  "aria-controls": `subcategories-${e.guid}`,
314
314
  "aria-expanded": e.guid === o,
@@ -318,7 +318,7 @@ const se = ({
318
318
  children: [
319
319
  /* @__PURE__ */ t(W, { children: /* @__PURE__ */ t(J, { categoryGuid: e.guid }) }),
320
320
  /* @__PURE__ */ t(
321
- G,
321
+ w,
322
322
  {
323
323
  primary: e.name,
324
324
  slotProps: { primary: { fontWeight: "normal", variant: "body1" } }
@@ -341,7 +341,7 @@ const se = ({
341
341
  /* @__PURE__ */ t("li", { style: { listStyle: "none" }, children: /* @__PURE__ */ t(Ee, { categories: s, parentCategory: e }) })
342
342
  ] });
343
343
  }, he = p(pe), Se = () => {
344
- const { categories: e } = f(), { searchValue: s } = y(), { categories: o } = S(), i = ((a, c = "") => a.reduce((r, n) => {
344
+ const { categories: e } = A(), { searchValue: s } = f(), { categories: o } = b(), i = ((a, c = "") => a.reduce((r, n) => {
345
345
  if (n.parent_guid === null) {
346
346
  const m = [
347
347
  {
@@ -373,42 +373,50 @@ const se = ({
373
373
  unselectable: l = [],
374
374
  unselectableText: i = "Unselectable"
375
375
  }) => {
376
- const { categories: a, loadCategories: c } = f(), { common: r } = S(), { isCopyLoaded: n } = B(), {
376
+ const { categories: a, loadCategories: c } = A(), { common: r } = b(), { isCopyLoaded: n } = B(), {
377
377
  searchValue: d,
378
- setOnSelect: m,
379
- setSearchValue: u,
380
- setSelectedGuid: h,
381
- setShowSelected: b,
382
- setUnselectable: D,
383
- setUnselectableText: O
384
- } = y();
385
- return E.useEffect(() => {
386
- s && m(s);
387
- }), E.useEffect(() => {
378
+ setExpandedGuid: m,
379
+ setOnSelect: u,
380
+ setSearchValue: h,
381
+ setSelectedGuid: y,
382
+ setShowSelected: D,
383
+ setUnselectable: L,
384
+ setUnselectableText: N
385
+ } = f();
386
+ return C.useEffect(() => {
387
+ s && u(s);
388
+ }), C.useEffect(() => {
388
389
  a.length || c();
389
- }, []), E.useEffect(() => {
390
- e && h(e), b(o), D(l), O(i);
391
- }, [e, o, l, i]), n ? /* @__PURE__ */ g($, { className: "mx-cat-category-selector", sx: { width: "100%" }, children: [
390
+ }, []), C.useEffect(() => {
391
+ y(e ?? null), h("");
392
+ }, [e]), C.useEffect(() => {
393
+ const S = a.find((x) => x.guid === e);
394
+ m(
395
+ S ? S.parent_guid ?? S.guid : null
396
+ );
397
+ }, [a, e]), C.useEffect(() => {
398
+ D(o), L(l), N(i);
399
+ }, [o, l, i]), n ? /* @__PURE__ */ E($, { className: "mx-cat-category-selector", sx: { width: "100%" }, children: [
392
400
  /* @__PURE__ */ t(
393
401
  re,
394
402
  {
395
403
  ariaLabel: r.search_aria,
396
404
  cancelAriaLabel: r.cancel_search_aria,
397
- onChange: (x) => u(x),
405
+ onChange: (S) => h(S),
398
406
  placeholder: r.search_placeholder,
399
407
  searchValue: d
400
408
  }
401
409
  ),
402
410
  /* @__PURE__ */ t(be, {})
403
411
  ] }) : /* @__PURE__ */ t(k, {});
404
- }, De = p(ye), fe = ({
412
+ }, fe = p(ye), De = ({
405
413
  id: e,
406
414
  onClose: s,
407
415
  title: o,
408
416
  showDrawer: l,
409
417
  ...i
410
418
  }) => {
411
- const { common: a } = S(), { isCopyLoaded: c } = B();
419
+ const { common: a } = b(), { isCopyLoaded: c } = B();
412
420
  return c ? /* @__PURE__ */ t(
413
421
  ne,
414
422
  {
@@ -418,14 +426,14 @@ const se = ({
418
426
  isOpen: l,
419
427
  onClose: s,
420
428
  title: o,
421
- children: /* @__PURE__ */ t(De, { ...i })
429
+ children: /* @__PURE__ */ t(fe, { ...i })
422
430
  }
423
431
  ) : /* @__PURE__ */ t(k, {});
424
- }, Je = p(fe);
432
+ }, Je = p(De);
425
433
  export {
426
434
  he as C,
427
- De as a,
435
+ fe as a,
428
436
  Je as b,
429
- y as u
437
+ f as u
430
438
  };
431
- //# sourceMappingURL=CategorySelectorDrawer-NJsFsKP1.mjs.map
439
+ //# sourceMappingURL=CategorySelectorDrawer-BYeVJ_kO.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CategorySelectorDrawer-NJsFsKP1.mjs","sources":["../src/categories/context/hooks.ts","../src/categories/constants/OnClickEvents.ts","../src/categories/components/CustomCategories/CustomCategoryModal.tsx","../src/categories/components/CustomCategories/AddSubcategory.tsx","../src/categories/components/CustomCategories/RenameSubcategory.tsx","../src/categories/components/CustomCategories/DeleteSubcategory.tsx","../src/categories/components/SubcategoryRow.tsx","../src/categories/components/SubcategoryList.tsx","../src/categories/components/CategoryRow.tsx","../src/categories/components/CategoryList.tsx","../src/categories/components/CategorySelector.tsx","../src/categories/components/CategorySelectorDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { GlobalDataContext, useCategoryStore } from '../../common'\n\nexport const useCategoryUiStore = () => {\n const context = React.useContext(GlobalDataContext)\n\n if (!context) {\n throw new Error('useCategoryUiStore() must be used within the GlobalDataContext')\n }\n\n return useCategoryStore().uiStore\n}\n","export const ON_CLICK_EVENTS = {\n ON_CATEGORY_EXPANDED: 'onCategoryExpanded',\n ON_CATEGORY_COLLAPSED: 'onCategoryCollapsed',\n ON_CATEGORY_SELECTED: 'onCategorySelected',\n ON_SUBCATEGORY_ADD_CLICK: 'onSubcategoryAddClick',\n ON_SUBCATEGORY_ADD_CANCEL_CLICK: 'onSubcategoryAddCancelClick',\n ON_SUBCATEGORY_ADDED: 'onSubcategoryAdded',\n ON_SUBCATEGORY_EDIT_CLICK: 'onSubcategoryEditClick',\n ON_SUBCATEGORY_EDIT_CANCEL_CLICK: 'onSubcategoryEditCancelClick',\n ON_SUBCATEGORY_DELETE_CLICK: 'onSubcategoryDeleteClick',\n ON_SUBCATEGORY_DELETED: 'onSubcategoryDeleted',\n ON_SUBCATEGORY_SAVED: 'onSubcategorySaved',\n}\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { Text } from '@mxenabled/mxui'\nimport { TextField } from '@mxenabled/mxui'\n\nimport { Dialog, useGlobalCopyStore } from '../../../common'\nimport type { DynamicCopyElement } from '../../../core'\nimport DialogContent from '@mui/material/DialogContent'\n\nimport { useCategoryUiStore } from '../../context/hooks'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\nexport enum CustomCategoryModalType {\n ADD = 'add',\n EDIT = 'edit',\n DELETE = 'delete',\n}\n\ninterface CustomCategoryModalProps {\n categoryName?: string\n onClose: () => void\n onSave: (name: string) => void\n isOpen: boolean\n type: CustomCategoryModalType\n}\n\nconst CustomCategoryModal: React.FC<CustomCategoryModalProps> = ({\n categoryName = '',\n onClose,\n onSave,\n isOpen,\n type,\n}) => {\n const [name, setName] = React.useState(categoryName)\n const { categories: copy } = useGlobalCopyStore()\n const { setShouldDisableDrawerScroll } = useCategoryUiStore()\n\n let headingText = ''\n let primaryText: DynamicCopyElement = []\n\n const isDeleteType = type === CustomCategoryModalType.DELETE\n const displayName = categoryName.length > 50 ? `${categoryName.slice(0, 50)}...` : categoryName\n const inputAriaLabel =\n type === CustomCategoryModalType.EDIT\n ? (buildDynamicCopy(copy.edit_subcategory_aria, displayName) as string)\n : copy.add_subcategory_aria\n\n switch (type) {\n case CustomCategoryModalType.ADD:\n headingText = copy.add_subcategory_title\n break\n case CustomCategoryModalType.EDIT:\n headingText = buildDynamicCopy(copy.edit_subcategory_title, displayName) as string\n break\n case CustomCategoryModalType.DELETE:\n headingText = copy.delete_subcategory_heading\n primaryText = buildDynamicCopy(\n copy.all_transactions_in_this_subcategory,\n <Text bold={true} component=\"span\">\n {buildDynamicCopy(copy.all_parent_category, displayName) as string}\n </Text>,\n ) as DynamicCopyElement\n break\n }\n\n return (\n <Dialog\n copy={{\n title: headingText,\n }}\n disablePrimaryButton={!name}\n isOpen={isOpen}\n onClose={() => {\n setShouldDisableDrawerScroll(false)\n onClose()\n }}\n onPrimaryAction={() => {\n setShouldDisableDrawerScroll(false)\n onSave(name)\n }}\n >\n <DialogContent>\n {isDeleteType ? (\n (primaryText as React.ReactNode)\n ) : (\n <TextField\n label={inputAriaLabel}\n name=\"modify-subcategory\"\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => setName(e.target.value)}\n placeholder={copy.input_placeholder}\n slotProps={{\n htmlInput: {\n 'aria-label': inputAriaLabel,\n maxLength: 50,\n },\n }}\n sx={{ width: '100%' }}\n truncate={true}\n value={name}\n />\n )}\n </DialogContent>\n </Dialog>\n )\n}\n\nexport default observer(CustomCategoryModal)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\n\nimport type { Category } from '../../../core'\n\nimport CustomCategoryModal, { CustomCategoryModalType } from './CustomCategoryModal'\n\nimport { ON_CLICK_EVENTS } from '../../constants/OnClickEvents'\nimport { useCategoryStore, useEvent, useGlobalCopyStore } from '../../../common'\nimport { useCategoryUiStore } from '../../context/hooks'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface AddSubcategoryProps {\n announce: (message: string) => void\n parentCategory: Category\n}\n\nconst AddSubcategory: React.FC<AddSubcategoryProps> = ({ announce, parentCategory }) => {\n const [showAdd, setShowAdd] = React.useState(false)\n const { addCategory } = useCategoryStore()\n const { categories: copy } = useGlobalCopyStore()\n const { onEvent } = useEvent()\n const { setShouldDisableDrawerScroll } = useCategoryUiStore()\n\n const handleAdd = async (name: string) => {\n await addCategory(name.trim(), parentCategory.guid)\n announce(buildDynamicCopy(copy.add_subcategory_announcement, name) as string)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_ADDED)\n setShowAdd(false)\n }\n\n const handleAdding = async () => {\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_ADD_CLICK)\n setShouldDisableDrawerScroll(true)\n setShowAdd(true)\n }\n\n const handleModalClose = () => {\n setShowAdd(false)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_ADD_CANCEL_CLICK)\n }\n\n return (\n <ListItem disableGutters={true} disablePadding={true}>\n <ListItemButton onClick={handleAdding} sx={{ ml: 60 }}>\n <ListItemText\n primary={copy.add_subcategory_button}\n slotProps={{ primary: { color: 'primary', fontWeight: 'normal', variant: 'body1' } }}\n />\n </ListItemButton>\n\n {showAdd && (\n <CustomCategoryModal\n isOpen={showAdd}\n onClose={handleModalClose}\n onSave={handleAdd}\n type={CustomCategoryModalType.ADD}\n />\n )}\n </ListItem>\n )\n}\n\nexport default observer(AddSubcategory)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport type { Category } from '../../../core'\n\nimport CustomCategoryModal from './CustomCategoryModal'\n\nimport { CustomCategoryModalType } from './CustomCategoryModal'\nimport { ON_CLICK_EVENTS } from '../../constants/OnClickEvents'\nimport { useCategoryStore, useEvent, useGlobalCopyStore } from '../../../common'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\ninterface RenameSubcategoryProps {\n announce: (message: string) => void\n setShowRename: (show: boolean) => void\n subCategory: Category\n showRename: boolean\n}\n\nconst RenameSubcategory: React.FC<RenameSubcategoryProps> = ({\n announce,\n setShowRename,\n subCategory,\n showRename,\n}) => {\n const { onEvent } = useEvent()\n const { updateCategory } = useCategoryStore()\n const { categories: copy } = useGlobalCopyStore()\n\n const handleRename = async (name: string) => {\n await updateCategory({ ...subCategory, name })\n announce(buildDynamicCopy(copy.edit_subcategory_announcement, subCategory.name, name) as string)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_SAVED)\n setShowRename(false)\n }\n\n const handleModalClose = () => {\n setShowRename(false)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_EDIT_CANCEL_CLICK)\n }\n\n return (\n <CustomCategoryModal\n categoryName={subCategory.name}\n isOpen={showRename}\n onClose={handleModalClose}\n onSave={handleRename}\n type={CustomCategoryModalType.EDIT}\n />\n )\n}\n\nexport default observer(RenameSubcategory)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport CustomCategoryModal, { CustomCategoryModalType } from './CustomCategoryModal'\n\nimport { useCategoryStore, useEvent, useGlobalCopyStore } from '../../../common'\nimport type { Category } from '../../../core'\n\nimport { ON_CLICK_EVENTS } from '../../constants/OnClickEvents'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface DeleteSubcategoryProps {\n announce: (message: string) => void\n parentCategory: Category\n showDelete: boolean\n setShowDelete: (isOpen: boolean) => void\n subCategory: Category\n}\n\nconst DeleteSubcategory: React.FC<DeleteSubcategoryProps> = ({\n announce,\n parentCategory,\n showDelete,\n setShowDelete,\n subCategory,\n}) => {\n const { onEvent } = useEvent()\n const { removeCategory } = useCategoryStore()\n const { categories: copy } = useGlobalCopyStore()\n\n const handleClose = () => {\n setShowDelete(false)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_DELETE_CLICK)\n }\n\n const handleDelete = async () => {\n await removeCategory(subCategory.guid)\n announce(buildDynamicCopy(copy.delete_subcategory_announcement, subCategory.name) as string)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_DELETED)\n setShowDelete(false)\n }\n\n return (\n <CustomCategoryModal\n categoryName={parentCategory.name}\n isOpen={showDelete}\n onClose={handleClose}\n onSave={handleDelete}\n type={CustomCategoryModalType.DELETE}\n />\n )\n}\n\nexport default observer(DeleteSubcategory)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Chip from '@mui/material/Chip'\nimport IconButton from '@mui/material/IconButton'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\n\nimport { CheckCircle, Delete, Edit } from '@mxenabled/mx-icons'\n\nimport type { Category } from '../../core'\n\nimport RenameSubcategory from './CustomCategories/RenameSubcategory'\nimport DeleteSubcategory from './CustomCategories/DeleteSubcategory'\n\nimport { useEvent, useGlobalCopyStore } from '../../common'\nimport { useCategoryUiStore } from '../context/hooks'\nimport { ON_CLICK_EVENTS } from '../constants/OnClickEvents'\nimport { buildDynamicCopy } from '../../core/utils/Localization'\n\ninterface SubcategoryRowProps {\n announce: (message: string) => void\n parentCategory: Category\n subCategory: Category\n}\n\nconst SubcategoryRow: React.FC<SubcategoryRowProps> = ({\n announce,\n parentCategory,\n subCategory,\n}) => {\n const {\n onSelect,\n selectedGuid,\n setSelectedGuid,\n setShouldDisableDrawerScroll,\n showSelected,\n unselectable,\n unselectableText,\n } = useCategoryUiStore()\n const { categories: copy } = useGlobalCopyStore()\n const { onEvent } = useEvent()\n\n const [showRename, setShowRename] = React.useState(false)\n const [showDelete, setShowDelete] = React.useState(false)\n\n const isCustom = Boolean(subCategory.revision)\n const isSelected = subCategory.guid === selectedGuid\n const isSelectable = !unselectable.some((item) => item === subCategory.guid)\n const handleClick = () => {\n if (isSelectable) {\n // Internal state\n setSelectedGuid(subCategory.guid)\n // External notification\n onSelect(subCategory.guid)\n onEvent(ON_CLICK_EVENTS.ON_CATEGORY_SELECTED)\n }\n }\n\n return (\n <ListItem\n className=\"mx-cat-subcategory-row\"\n disableGutters={true}\n disablePadding={true}\n sx={{ pl: 58 }}\n >\n <ListItemButton\n aria-pressed={isSelected}\n color=\"secondary\"\n onClick={handleClick}\n sx={{ height: 44, minWidth: 0, overflow: 'hidden' }}\n >\n <ListItemText\n primary={subCategory.name}\n slotProps={{ primary: { fontWeight: 'normal', variant: 'body1', noWrap: true } }}\n />\n {showSelected && isSelected && <CheckCircle fontSize=\"small\" />}\n {!isSelectable && <Chip label={unselectableText} />}\n </ListItemButton>\n {isCustom && (\n <Box\n className={`mx-cat-subcategory-edit-container`}\n sx={{ marginRight: 24, flexShrink: 0 }}\n >\n <IconButton\n aria-label={buildDynamicCopy(copy.edit_subcategory_title, subCategory.name) as string}\n onClick={() => {\n setShowRename(true)\n setShouldDisableDrawerScroll(true)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_EDIT_CLICK)\n }}\n >\n <Edit color=\"secondary\" />\n </IconButton>\n <IconButton\n aria-label={buildDynamicCopy(copy.delete_subcategory_aria, subCategory.name) as string}\n edge=\"end\"\n onClick={() => {\n setShowDelete(true)\n setShouldDisableDrawerScroll(true)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_DELETE_CLICK)\n }}\n >\n <Delete color=\"secondary\" />\n </IconButton>\n </Box>\n )}\n {showDelete && (\n <DeleteSubcategory\n announce={announce}\n parentCategory={parentCategory}\n setShowDelete={setShowDelete}\n showDelete={showDelete}\n subCategory={subCategory}\n />\n )}\n {showRename && (\n <RenameSubcategory\n announce={announce}\n setShowRename={setShowRename}\n showRename={showRename}\n subCategory={subCategory}\n />\n )}\n </ListItem>\n )\n}\n\nexport default observer(SubcategoryRow)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Collapse from '@mui/material/Collapse'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\n\nimport type { Category } from '../../core'\nimport AddSubcategory from './CustomCategories/AddSubcategory'\nimport SubcategoryRow from './SubcategoryRow'\nimport { useCategoryUiStore } from '../context/hooks'\nimport { useAriaLive } from '../../common/hooks/useAriaLive'\n\ninterface SubcategoryListProps {\n categories: Category[]\n parentCategory: Category\n}\n\nconst SubcategoryList: React.FC<SubcategoryListProps> = ({ categories, parentCategory }) => {\n const { expandedGuid, searchValue } = useCategoryUiStore()\n const { announce, ariaLive } = useAriaLive()\n const isExpanded = parentCategory.guid === expandedGuid\n const isFiltered = Boolean(searchValue)\n\n return (\n <Collapse\n in={isExpanded || isFiltered}\n sx={{ backgroundColor: 'background.default' }}\n timeout=\"auto\"\n unmountOnExit={true}\n >\n {ariaLive}\n <List\n aria-labelledby={`category-${parentCategory.guid}`}\n className=\"mx-cat-subcategory-list\"\n id={`subcategories-${parentCategory.guid}`}\n >\n {categories.map((category) => (\n <React.Fragment key={category.guid}>\n <SubcategoryRow\n announce={announce}\n parentCategory={parentCategory}\n subCategory={category}\n />\n <Divider aria-hidden=\"true\" component=\"li\" sx={{ ml: 58 }} />\n </React.Fragment>\n ))}\n {!isFiltered && <AddSubcategory announce={announce} parentCategory={parentCategory} />}\n </List>\n </Collapse>\n )\n}\n\nexport default observer(SubcategoryList)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Divider from '@mui/material/Divider'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemAvatar from '@mui/material/ListItemAvatar'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemIcon from '@mui/material/ListItemIcon'\nimport ListItemText from '@mui/material/ListItemText'\n\nimport { ExpandMore } from '@mxenabled/mx-icons'\n\nimport { CategoryIcon } from '@mxenabled/mxui'\n\nimport { useEvent } from '../../common'\nimport type { Category } from '../../core'\n\nimport { useCategoryUiStore } from '../context/hooks'\nimport { ON_CLICK_EVENTS } from '../constants/OnClickEvents'\nimport SubcategoryList from './SubcategoryList'\n\ninterface CategoryRowProps {\n category: Category\n subCategories: Category[]\n}\n\nconst CategoryRow: React.FC<CategoryRowProps> = ({ category, subCategories }) => {\n const { expandedGuid, searchValue, setExpandedGuid } = useCategoryUiStore()\n const { onEvent } = useEvent()\n const isExpanded = category.guid === expandedGuid\n\n const handleExpanderClick = () => {\n const guid = category.guid !== expandedGuid ? category.guid : null\n setExpandedGuid(guid)\n onEvent(guid ? ON_CLICK_EVENTS.ON_CATEGORY_EXPANDED : ON_CLICK_EVENTS.ON_CATEGORY_COLLAPSED)\n }\n\n return (\n <React.Fragment>\n <ListItem disableGutters={true} disablePadding={true}>\n <ListItemButton\n aria-controls={`subcategories-${category.guid}`}\n aria-expanded={category.guid === expandedGuid}\n aria-label={category.name}\n id={`category-${category.guid}`}\n key={category.guid}\n onClick={handleExpanderClick}\n >\n <ListItemAvatar>\n <CategoryIcon categoryGuid={category.guid} />\n </ListItemAvatar>\n <ListItemText\n primary={category.name}\n slotProps={{ primary: { fontWeight: 'normal', variant: 'body1' } }}\n />\n <ListItemIcon>\n <ExpandMore\n sx={{\n transition: 'transform 0.3s ease-in-out',\n transform: isExpanded || searchValue ? 'rotate(180deg)' : 'rotate(0deg)',\n }}\n />\n </ListItemIcon>\n </ListItemButton>\n </ListItem>\n <Divider aria-hidden=\"true\" component=\"li\" sx={{ ml: 58 }} />\n <li style={{ listStyle: 'none' }}>\n <SubcategoryList categories={subCategories} parentCategory={category} />\n </li>\n </React.Fragment>\n )\n}\n\nexport default observer(CategoryRow)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport List from '@mui/material/List'\nimport Paper from '@mui/material/Paper'\n\nimport { useCategoryStore, useGlobalCopyStore } from '../../common'\nimport type { Category } from '../../core'\n\nimport { useCategoryUiStore } from '../context/hooks'\nimport CategoryRow from './CategoryRow'\nimport { buildDynamicCopy } from '../../core/utils/Localization'\n\ninterface NestedCategory {\n category: Category\n children: Category[]\n}\n\nconst CategoryList: React.FC = () => {\n const { categories } = useCategoryStore()\n const { searchValue } = useCategoryUiStore()\n const { categories: copy } = useGlobalCopyStore()\n\n const buildNestedCategories = (categories: Category[], filter = ''): NestedCategory[] => {\n return categories.reduce((acc, currCategory) => {\n if (currCategory.parent_guid === null) {\n const categoriesWithParent = [\n {\n ...currCategory,\n name: buildDynamicCopy(copy.all_parent_category, currCategory.name) as string,\n parent_guid: currCategory.guid,\n },\n ...categories,\n ]\n const children = categoriesWithParent.filter(\n (category) =>\n category.parent_guid === currCategory.guid &&\n category.name.toLowerCase().includes(filter.toLowerCase()),\n )\n\n if (currCategory.name.toLowerCase().includes(filter.toLowerCase()) || children.length > 0) {\n return [...acc, { category: { ...currCategory }, children }]\n }\n }\n return acc\n }, [] as NestedCategory[])\n }\n\n const nestedCategories = buildNestedCategories(categories, searchValue)\n\n return (\n <Paper className=\"mx-cat-category-list\" sx={{ boxShadow: 'none' }}>\n <List>\n {nestedCategories.map((nested: NestedCategory) => (\n <CategoryRow\n category={nested.category}\n key={nested.category.guid}\n subCategories={nested.children}\n />\n ))}\n </List>\n </Paper>\n )\n}\n\nexport default observer(CategoryList)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport {\n Loader,\n SearchBox,\n useCategoryStore,\n useGlobalCopyStore,\n useGlobalUiStore,\n} from '../../common'\n\nimport { useCategoryUiStore } from '../context/hooks'\n\nimport CategoryList from './CategoryList'\n\nexport interface CategorySelectorProps {\n initialSelected?: string\n onSelect: (guid: string) => void\n showSelected?: boolean\n unselectable?: string[]\n unselectableText?: string\n}\n\nconst CategorySelector: React.FC<CategorySelectorProps> = ({\n initialSelected,\n onSelect = undefined,\n showSelected = true,\n unselectable = [],\n unselectableText = 'Unselectable',\n}) => {\n const { categories, loadCategories } = useCategoryStore()\n const { common: copy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n\n const {\n searchValue,\n setOnSelect,\n setSearchValue,\n setSelectedGuid,\n setShowSelected,\n setUnselectable,\n setUnselectableText,\n } = useCategoryUiStore()\n\n React.useEffect(() => {\n if (onSelect) {\n setOnSelect(onSelect)\n }\n })\n\n React.useEffect(() => {\n if (!categories.length) {\n loadCategories()\n }\n }, [])\n\n React.useEffect(() => {\n if (initialSelected) {\n setSelectedGuid(initialSelected)\n }\n setShowSelected(showSelected)\n setUnselectable(unselectable)\n setUnselectableText(unselectableText)\n }, [initialSelected, showSelected, unselectable, unselectableText])\n\n if (!isCopyLoaded) {\n return <Loader />\n }\n\n return (\n <Stack className=\"mx-cat-category-selector\" sx={{ width: '100%' }}>\n <SearchBox\n ariaLabel={copy.search_aria}\n cancelAriaLabel={copy.cancel_search_aria}\n onChange={(value) => setSearchValue(value)}\n placeholder={copy.search_placeholder}\n searchValue={searchValue}\n />\n <CategoryList />\n </Stack>\n )\n}\n\nexport default observer(CategorySelector)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { Drawer, Loader, useGlobalCopyStore, useGlobalUiStore } from '../../common'\n\nimport CategorySelector from './CategorySelector'\n\nimport type { CategorySelectorProps } from './CategorySelector'\n\nexport interface CategorySelectorDrawerProps extends CategorySelectorProps {\n disableScroll?: boolean\n id?: string\n onClose: () => void\n title: string\n showDrawer: boolean\n}\n\nconst CategorySelectorDrawer: React.FC<CategorySelectorDrawerProps> = ({\n id,\n onClose,\n title,\n showDrawer,\n ...categorySelectorProps\n}) => {\n const { common: commonCopy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n\n if (!isCopyLoaded) {\n return <Loader />\n }\n\n return (\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n className=\"mx-cat-category-selector-drawer\"\n id={id}\n isOpen={showDrawer}\n onClose={onClose}\n title={title}\n >\n <CategorySelector {...categorySelectorProps} />\n </Drawer>\n )\n}\n\nexport default observer(CategorySelectorDrawer)\n"],"names":["useCategoryUiStore","React","GlobalDataContext","useCategoryStore","ON_CLICK_EVENTS","CustomCategoryModalType","CustomCategoryModal","categoryName","onClose","onSave","isOpen","type","name","setName","copy","useGlobalCopyStore","setShouldDisableDrawerScroll","headingText","primaryText","isDeleteType","displayName","inputAriaLabel","buildDynamicCopy","jsx","Text","Dialog","DialogContent","TextField","e","CustomCategoryModal$1","observer","AddSubcategory","announce","parentCategory","showAdd","setShowAdd","addCategory","onEvent","useEvent","handleAdd","handleAdding","handleModalClose","jsxs","ListItem","ListItemButton","ListItemText","AddSubcategory$1","RenameSubcategory","setShowRename","subCategory","showRename","updateCategory","handleRename","RenameSubcategory$1","DeleteSubcategory","showDelete","setShowDelete","removeCategory","handleClose","handleDelete","DeleteSubcategory$1","SubcategoryRow","onSelect","selectedGuid","setSelectedGuid","showSelected","unselectable","unselectableText","isCustom","isSelected","isSelectable","item","CheckCircle","Chip","Box","IconButton","Edit","Delete","SubcategoryRow$1","SubcategoryList","categories","expandedGuid","searchValue","ariaLive","useAriaLive","isExpanded","isFiltered","Collapse","List","category","Divider","SubcategoryList$1","CategoryRow","subCategories","setExpandedGuid","handleExpanderClick","guid","ListItemAvatar","CategoryIcon","ListItemIcon","ExpandMore","CategoryRow$1","CategoryList","nestedCategories","filter","acc","currCategory","children","Paper","nested","CategoryList$1","CategorySelector","initialSelected","loadCategories","isCopyLoaded","useGlobalUiStore","setOnSelect","setSearchValue","setShowSelected","setUnselectable","setUnselectableText","Stack","SearchBox","value","Loader","CategorySelector$1","CategorySelectorDrawer","id","title","showDrawer","categorySelectorProps","commonCopy","Drawer","CategorySelectorDrawer$1"],"mappings":"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"}
1
+ {"version":3,"file":"CategorySelectorDrawer-BYeVJ_kO.mjs","sources":["../src/categories/context/hooks.ts","../src/categories/constants/OnClickEvents.ts","../src/categories/components/CustomCategories/CustomCategoryModal.tsx","../src/categories/components/CustomCategories/AddSubcategory.tsx","../src/categories/components/CustomCategories/RenameSubcategory.tsx","../src/categories/components/CustomCategories/DeleteSubcategory.tsx","../src/categories/components/SubcategoryRow.tsx","../src/categories/components/SubcategoryList.tsx","../src/categories/components/CategoryRow.tsx","../src/categories/components/CategoryList.tsx","../src/categories/components/CategorySelector.tsx","../src/categories/components/CategorySelectorDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { GlobalDataContext, useCategoryStore } from '../../common'\n\nexport const useCategoryUiStore = () => {\n const context = React.useContext(GlobalDataContext)\n\n if (!context) {\n throw new Error('useCategoryUiStore() must be used within the GlobalDataContext')\n }\n\n return useCategoryStore().uiStore\n}\n","export const ON_CLICK_EVENTS = {\n ON_CATEGORY_EXPANDED: 'onCategoryExpanded',\n ON_CATEGORY_COLLAPSED: 'onCategoryCollapsed',\n ON_CATEGORY_SELECTED: 'onCategorySelected',\n ON_SUBCATEGORY_ADD_CLICK: 'onSubcategoryAddClick',\n ON_SUBCATEGORY_ADD_CANCEL_CLICK: 'onSubcategoryAddCancelClick',\n ON_SUBCATEGORY_ADDED: 'onSubcategoryAdded',\n ON_SUBCATEGORY_EDIT_CLICK: 'onSubcategoryEditClick',\n ON_SUBCATEGORY_EDIT_CANCEL_CLICK: 'onSubcategoryEditCancelClick',\n ON_SUBCATEGORY_DELETE_CLICK: 'onSubcategoryDeleteClick',\n ON_SUBCATEGORY_DELETED: 'onSubcategoryDeleted',\n ON_SUBCATEGORY_SAVED: 'onSubcategorySaved',\n}\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { Text } from '@mxenabled/mxui'\nimport { TextField } from '@mxenabled/mxui'\n\nimport { Dialog, useGlobalCopyStore } from '../../../common'\nimport type { DynamicCopyElement } from '../../../core'\nimport DialogContent from '@mui/material/DialogContent'\n\nimport { useCategoryUiStore } from '../../context/hooks'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\nexport enum CustomCategoryModalType {\n ADD = 'add',\n EDIT = 'edit',\n DELETE = 'delete',\n}\n\ninterface CustomCategoryModalProps {\n categoryName?: string\n onClose: () => void\n onSave: (name: string) => void\n isOpen: boolean\n type: CustomCategoryModalType\n}\n\nconst CustomCategoryModal: React.FC<CustomCategoryModalProps> = ({\n categoryName = '',\n onClose,\n onSave,\n isOpen,\n type,\n}) => {\n const [name, setName] = React.useState(categoryName)\n const { categories: copy } = useGlobalCopyStore()\n const { setShouldDisableDrawerScroll } = useCategoryUiStore()\n\n let headingText = ''\n let primaryText: DynamicCopyElement = []\n\n const isDeleteType = type === CustomCategoryModalType.DELETE\n const displayName = categoryName.length > 50 ? `${categoryName.slice(0, 50)}...` : categoryName\n const inputAriaLabel =\n type === CustomCategoryModalType.EDIT\n ? (buildDynamicCopy(copy.edit_subcategory_aria, displayName) as string)\n : copy.add_subcategory_aria\n\n switch (type) {\n case CustomCategoryModalType.ADD:\n headingText = copy.add_subcategory_title\n break\n case CustomCategoryModalType.EDIT:\n headingText = buildDynamicCopy(copy.edit_subcategory_title, displayName) as string\n break\n case CustomCategoryModalType.DELETE:\n headingText = copy.delete_subcategory_heading\n primaryText = buildDynamicCopy(\n copy.all_transactions_in_this_subcategory,\n <Text bold={true} component=\"span\">\n {buildDynamicCopy(copy.all_parent_category, displayName) as string}\n </Text>,\n ) as DynamicCopyElement\n break\n }\n\n return (\n <Dialog\n copy={{\n title: headingText,\n }}\n disablePrimaryButton={!name}\n isOpen={isOpen}\n onClose={() => {\n setShouldDisableDrawerScroll(false)\n onClose()\n }}\n onPrimaryAction={() => {\n setShouldDisableDrawerScroll(false)\n onSave(name)\n }}\n >\n <DialogContent>\n {isDeleteType ? (\n (primaryText as React.ReactNode)\n ) : (\n <TextField\n label={inputAriaLabel}\n name=\"modify-subcategory\"\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => setName(e.target.value)}\n placeholder={copy.input_placeholder}\n slotProps={{\n htmlInput: {\n 'aria-label': inputAriaLabel,\n maxLength: 50,\n },\n }}\n sx={{ width: '100%' }}\n truncate={true}\n value={name}\n />\n )}\n </DialogContent>\n </Dialog>\n )\n}\n\nexport default observer(CustomCategoryModal)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\n\nimport type { Category } from '../../../core'\n\nimport CustomCategoryModal, { CustomCategoryModalType } from './CustomCategoryModal'\n\nimport { ON_CLICK_EVENTS } from '../../constants/OnClickEvents'\nimport { useCategoryStore, useEvent, useGlobalCopyStore } from '../../../common'\nimport { useCategoryUiStore } from '../../context/hooks'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface AddSubcategoryProps {\n announce: (message: string) => void\n parentCategory: Category\n}\n\nconst AddSubcategory: React.FC<AddSubcategoryProps> = ({ announce, parentCategory }) => {\n const [showAdd, setShowAdd] = React.useState(false)\n const { addCategory } = useCategoryStore()\n const { categories: copy } = useGlobalCopyStore()\n const { onEvent } = useEvent()\n const { setShouldDisableDrawerScroll } = useCategoryUiStore()\n\n const handleAdd = async (name: string) => {\n await addCategory(name.trim(), parentCategory.guid)\n announce(buildDynamicCopy(copy.add_subcategory_announcement, name) as string)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_ADDED)\n setShowAdd(false)\n }\n\n const handleAdding = async () => {\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_ADD_CLICK)\n setShouldDisableDrawerScroll(true)\n setShowAdd(true)\n }\n\n const handleModalClose = () => {\n setShowAdd(false)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_ADD_CANCEL_CLICK)\n }\n\n return (\n <ListItem disableGutters={true} disablePadding={true}>\n <ListItemButton onClick={handleAdding} sx={{ ml: 60 }}>\n <ListItemText\n primary={copy.add_subcategory_button}\n slotProps={{ primary: { color: 'primary', fontWeight: 'normal', variant: 'body1' } }}\n />\n </ListItemButton>\n\n {showAdd && (\n <CustomCategoryModal\n isOpen={showAdd}\n onClose={handleModalClose}\n onSave={handleAdd}\n type={CustomCategoryModalType.ADD}\n />\n )}\n </ListItem>\n )\n}\n\nexport default observer(AddSubcategory)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport type { Category } from '../../../core'\n\nimport CustomCategoryModal from './CustomCategoryModal'\n\nimport { CustomCategoryModalType } from './CustomCategoryModal'\nimport { ON_CLICK_EVENTS } from '../../constants/OnClickEvents'\nimport { useCategoryStore, useEvent, useGlobalCopyStore } from '../../../common'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\ninterface RenameSubcategoryProps {\n announce: (message: string) => void\n setShowRename: (show: boolean) => void\n subCategory: Category\n showRename: boolean\n}\n\nconst RenameSubcategory: React.FC<RenameSubcategoryProps> = ({\n announce,\n setShowRename,\n subCategory,\n showRename,\n}) => {\n const { onEvent } = useEvent()\n const { updateCategory } = useCategoryStore()\n const { categories: copy } = useGlobalCopyStore()\n\n const handleRename = async (name: string) => {\n await updateCategory({ ...subCategory, name })\n announce(buildDynamicCopy(copy.edit_subcategory_announcement, subCategory.name, name) as string)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_SAVED)\n setShowRename(false)\n }\n\n const handleModalClose = () => {\n setShowRename(false)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_EDIT_CANCEL_CLICK)\n }\n\n return (\n <CustomCategoryModal\n categoryName={subCategory.name}\n isOpen={showRename}\n onClose={handleModalClose}\n onSave={handleRename}\n type={CustomCategoryModalType.EDIT}\n />\n )\n}\n\nexport default observer(RenameSubcategory)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport CustomCategoryModal, { CustomCategoryModalType } from './CustomCategoryModal'\n\nimport { useCategoryStore, useEvent, useGlobalCopyStore } from '../../../common'\nimport type { Category } from '../../../core'\n\nimport { ON_CLICK_EVENTS } from '../../constants/OnClickEvents'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface DeleteSubcategoryProps {\n announce: (message: string) => void\n parentCategory: Category\n showDelete: boolean\n setShowDelete: (isOpen: boolean) => void\n subCategory: Category\n}\n\nconst DeleteSubcategory: React.FC<DeleteSubcategoryProps> = ({\n announce,\n parentCategory,\n showDelete,\n setShowDelete,\n subCategory,\n}) => {\n const { onEvent } = useEvent()\n const { removeCategory } = useCategoryStore()\n const { categories: copy } = useGlobalCopyStore()\n\n const handleClose = () => {\n setShowDelete(false)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_DELETE_CLICK)\n }\n\n const handleDelete = async () => {\n await removeCategory(subCategory.guid)\n announce(buildDynamicCopy(copy.delete_subcategory_announcement, subCategory.name) as string)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_DELETED)\n setShowDelete(false)\n }\n\n return (\n <CustomCategoryModal\n categoryName={parentCategory.name}\n isOpen={showDelete}\n onClose={handleClose}\n onSave={handleDelete}\n type={CustomCategoryModalType.DELETE}\n />\n )\n}\n\nexport default observer(DeleteSubcategory)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Chip from '@mui/material/Chip'\nimport IconButton from '@mui/material/IconButton'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\n\nimport { CheckCircle, Delete, Edit } from '@mxenabled/mx-icons'\n\nimport type { Category } from '../../core'\n\nimport RenameSubcategory from './CustomCategories/RenameSubcategory'\nimport DeleteSubcategory from './CustomCategories/DeleteSubcategory'\n\nimport { useEvent, useGlobalCopyStore } from '../../common'\nimport { useCategoryUiStore } from '../context/hooks'\nimport { ON_CLICK_EVENTS } from '../constants/OnClickEvents'\nimport { buildDynamicCopy } from '../../core/utils/Localization'\n\ninterface SubcategoryRowProps {\n announce: (message: string) => void\n parentCategory: Category\n subCategory: Category\n}\n\nconst SubcategoryRow: React.FC<SubcategoryRowProps> = ({\n announce,\n parentCategory,\n subCategory,\n}) => {\n const {\n onSelect,\n selectedGuid,\n setSelectedGuid,\n setShouldDisableDrawerScroll,\n showSelected,\n unselectable,\n unselectableText,\n } = useCategoryUiStore()\n const { categories: copy } = useGlobalCopyStore()\n const { onEvent } = useEvent()\n\n const [showRename, setShowRename] = React.useState(false)\n const [showDelete, setShowDelete] = React.useState(false)\n\n const isCustom = Boolean(subCategory.revision)\n const isSelected = subCategory.guid === selectedGuid\n const isSelectable = !unselectable.some((item) => item === subCategory.guid)\n const handleClick = () => {\n if (isSelectable) {\n // Internal state\n setSelectedGuid(subCategory.guid)\n // External notification\n onSelect(subCategory.guid)\n onEvent(ON_CLICK_EVENTS.ON_CATEGORY_SELECTED)\n }\n }\n\n return (\n <ListItem\n className=\"mx-cat-subcategory-row\"\n disableGutters={true}\n disablePadding={true}\n sx={{ pl: 58 }}\n >\n <ListItemButton\n aria-pressed={isSelected}\n color=\"secondary\"\n onClick={handleClick}\n sx={{ height: 44, minWidth: 0, overflow: 'hidden' }}\n >\n <ListItemText\n primary={subCategory.name}\n slotProps={{ primary: { fontWeight: 'normal', variant: 'body1', noWrap: true } }}\n />\n {showSelected && isSelected && <CheckCircle fontSize=\"small\" />}\n {!isSelectable && <Chip label={unselectableText} />}\n </ListItemButton>\n {isCustom && (\n <Box\n className={`mx-cat-subcategory-edit-container`}\n sx={{ marginRight: 24, flexShrink: 0 }}\n >\n <IconButton\n aria-label={buildDynamicCopy(copy.edit_subcategory_title, subCategory.name) as string}\n onClick={() => {\n setShowRename(true)\n setShouldDisableDrawerScroll(true)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_EDIT_CLICK)\n }}\n >\n <Edit color=\"secondary\" />\n </IconButton>\n <IconButton\n aria-label={buildDynamicCopy(copy.delete_subcategory_aria, subCategory.name) as string}\n edge=\"end\"\n onClick={() => {\n setShowDelete(true)\n setShouldDisableDrawerScroll(true)\n onEvent(ON_CLICK_EVENTS.ON_SUBCATEGORY_DELETE_CLICK)\n }}\n >\n <Delete color=\"secondary\" />\n </IconButton>\n </Box>\n )}\n {showDelete && (\n <DeleteSubcategory\n announce={announce}\n parentCategory={parentCategory}\n setShowDelete={setShowDelete}\n showDelete={showDelete}\n subCategory={subCategory}\n />\n )}\n {showRename && (\n <RenameSubcategory\n announce={announce}\n setShowRename={setShowRename}\n showRename={showRename}\n subCategory={subCategory}\n />\n )}\n </ListItem>\n )\n}\n\nexport default observer(SubcategoryRow)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Collapse from '@mui/material/Collapse'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\n\nimport type { Category } from '../../core'\nimport AddSubcategory from './CustomCategories/AddSubcategory'\nimport SubcategoryRow from './SubcategoryRow'\nimport { useCategoryUiStore } from '../context/hooks'\nimport { useAriaLive } from '../../common/hooks/useAriaLive'\n\ninterface SubcategoryListProps {\n categories: Category[]\n parentCategory: Category\n}\n\nconst SubcategoryList: React.FC<SubcategoryListProps> = ({ categories, parentCategory }) => {\n const { expandedGuid, searchValue } = useCategoryUiStore()\n const { announce, ariaLive } = useAriaLive()\n const isExpanded = parentCategory.guid === expandedGuid\n const isFiltered = Boolean(searchValue)\n\n return (\n <Collapse\n in={isExpanded || isFiltered}\n sx={{ backgroundColor: 'background.default' }}\n timeout=\"auto\"\n unmountOnExit={true}\n >\n {ariaLive}\n <List\n aria-labelledby={`category-${parentCategory.guid}`}\n className=\"mx-cat-subcategory-list\"\n id={`subcategories-${parentCategory.guid}`}\n >\n {categories.map((category) => (\n <React.Fragment key={category.guid}>\n <SubcategoryRow\n announce={announce}\n parentCategory={parentCategory}\n subCategory={category}\n />\n <Divider aria-hidden=\"true\" component=\"li\" sx={{ ml: 58 }} />\n </React.Fragment>\n ))}\n {!isFiltered && <AddSubcategory announce={announce} parentCategory={parentCategory} />}\n </List>\n </Collapse>\n )\n}\n\nexport default observer(SubcategoryList)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Divider from '@mui/material/Divider'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemAvatar from '@mui/material/ListItemAvatar'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemIcon from '@mui/material/ListItemIcon'\nimport ListItemText from '@mui/material/ListItemText'\n\nimport { ExpandMore } from '@mxenabled/mx-icons'\n\nimport { CategoryIcon } from '@mxenabled/mxui'\n\nimport { useEvent } from '../../common'\nimport type { Category } from '../../core'\n\nimport { useCategoryUiStore } from '../context/hooks'\nimport { ON_CLICK_EVENTS } from '../constants/OnClickEvents'\nimport SubcategoryList from './SubcategoryList'\n\ninterface CategoryRowProps {\n category: Category\n subCategories: Category[]\n}\n\nconst CategoryRow: React.FC<CategoryRowProps> = ({ category, subCategories }) => {\n const { expandedGuid, searchValue, setExpandedGuid } = useCategoryUiStore()\n const { onEvent } = useEvent()\n const isExpanded = category.guid === expandedGuid\n\n const handleExpanderClick = () => {\n const guid = category.guid !== expandedGuid ? category.guid : null\n setExpandedGuid(guid)\n onEvent(guid ? ON_CLICK_EVENTS.ON_CATEGORY_EXPANDED : ON_CLICK_EVENTS.ON_CATEGORY_COLLAPSED)\n }\n\n return (\n <React.Fragment>\n <ListItem disableGutters={true} disablePadding={true}>\n <ListItemButton\n aria-controls={`subcategories-${category.guid}`}\n aria-expanded={category.guid === expandedGuid}\n aria-label={category.name}\n id={`category-${category.guid}`}\n key={category.guid}\n onClick={handleExpanderClick}\n >\n <ListItemAvatar>\n <CategoryIcon categoryGuid={category.guid} />\n </ListItemAvatar>\n <ListItemText\n primary={category.name}\n slotProps={{ primary: { fontWeight: 'normal', variant: 'body1' } }}\n />\n <ListItemIcon>\n <ExpandMore\n sx={{\n transition: 'transform 0.3s ease-in-out',\n transform: isExpanded || searchValue ? 'rotate(180deg)' : 'rotate(0deg)',\n }}\n />\n </ListItemIcon>\n </ListItemButton>\n </ListItem>\n <Divider aria-hidden=\"true\" component=\"li\" sx={{ ml: 58 }} />\n <li style={{ listStyle: 'none' }}>\n <SubcategoryList categories={subCategories} parentCategory={category} />\n </li>\n </React.Fragment>\n )\n}\n\nexport default observer(CategoryRow)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport List from '@mui/material/List'\nimport Paper from '@mui/material/Paper'\n\nimport { useCategoryStore, useGlobalCopyStore } from '../../common'\nimport type { Category } from '../../core'\n\nimport { useCategoryUiStore } from '../context/hooks'\nimport CategoryRow from './CategoryRow'\nimport { buildDynamicCopy } from '../../core/utils/Localization'\n\ninterface NestedCategory {\n category: Category\n children: Category[]\n}\n\nconst CategoryList: React.FC = () => {\n const { categories } = useCategoryStore()\n const { searchValue } = useCategoryUiStore()\n const { categories: copy } = useGlobalCopyStore()\n\n const buildNestedCategories = (categories: Category[], filter = ''): NestedCategory[] => {\n return categories.reduce((acc, currCategory) => {\n if (currCategory.parent_guid === null) {\n const categoriesWithParent = [\n {\n ...currCategory,\n name: buildDynamicCopy(copy.all_parent_category, currCategory.name) as string,\n parent_guid: currCategory.guid,\n },\n ...categories,\n ]\n const children = categoriesWithParent.filter(\n (category) =>\n category.parent_guid === currCategory.guid &&\n category.name.toLowerCase().includes(filter.toLowerCase()),\n )\n\n if (currCategory.name.toLowerCase().includes(filter.toLowerCase()) || children.length > 0) {\n return [...acc, { category: { ...currCategory }, children }]\n }\n }\n return acc\n }, [] as NestedCategory[])\n }\n\n const nestedCategories = buildNestedCategories(categories, searchValue)\n\n return (\n <Paper className=\"mx-cat-category-list\" sx={{ boxShadow: 'none' }}>\n <List>\n {nestedCategories.map((nested: NestedCategory) => (\n <CategoryRow\n category={nested.category}\n key={nested.category.guid}\n subCategories={nested.children}\n />\n ))}\n </List>\n </Paper>\n )\n}\n\nexport default observer(CategoryList)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\n\nimport {\n Loader,\n SearchBox,\n useCategoryStore,\n useGlobalCopyStore,\n useGlobalUiStore,\n} from '../../common'\n\nimport { useCategoryUiStore } from '../context/hooks'\n\nimport CategoryList from './CategoryList'\n\nexport interface CategorySelectorProps {\n initialSelected?: string\n onSelect: (guid: string) => void\n showSelected?: boolean\n unselectable?: string[]\n unselectableText?: string\n}\n\nconst CategorySelector: React.FC<CategorySelectorProps> = ({\n initialSelected,\n onSelect = undefined,\n showSelected = true,\n unselectable = [],\n unselectableText = 'Unselectable',\n}) => {\n const { categories, loadCategories } = useCategoryStore()\n const { common: copy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n\n const {\n searchValue,\n setExpandedGuid,\n setOnSelect,\n setSearchValue,\n setSelectedGuid,\n setShowSelected,\n setUnselectable,\n setUnselectableText,\n } = useCategoryUiStore()\n\n React.useEffect(() => {\n if (onSelect) {\n setOnSelect(onSelect)\n }\n })\n\n React.useEffect(() => {\n if (!categories.length) {\n loadCategories()\n }\n }, [])\n\n React.useEffect(() => {\n // Reset per-transaction; keyed off initialSelected so a category reload doesn't clear a typed search term.\n setSelectedGuid(initialSelected ?? null)\n setSearchValue('')\n }, [initialSelected])\n\n React.useEffect(() => {\n // Expand the selection's parent (or its own accordion if top-level).\n const selectedCategory = categories.find((category) => category.guid === initialSelected)\n setExpandedGuid(\n selectedCategory ? (selectedCategory.parent_guid ?? selectedCategory.guid) : null,\n )\n }, [categories, initialSelected])\n\n React.useEffect(() => {\n setShowSelected(showSelected)\n setUnselectable(unselectable)\n setUnselectableText(unselectableText)\n }, [showSelected, unselectable, unselectableText])\n\n if (!isCopyLoaded) {\n return <Loader />\n }\n\n return (\n <Stack className=\"mx-cat-category-selector\" sx={{ width: '100%' }}>\n <SearchBox\n ariaLabel={copy.search_aria}\n cancelAriaLabel={copy.cancel_search_aria}\n onChange={(value) => setSearchValue(value)}\n placeholder={copy.search_placeholder}\n searchValue={searchValue}\n />\n <CategoryList />\n </Stack>\n )\n}\n\nexport default observer(CategorySelector)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { Drawer, Loader, useGlobalCopyStore, useGlobalUiStore } from '../../common'\n\nimport CategorySelector from './CategorySelector'\n\nimport type { CategorySelectorProps } from './CategorySelector'\n\nexport interface CategorySelectorDrawerProps extends CategorySelectorProps {\n disableScroll?: boolean\n id?: string\n onClose: () => void\n title: string\n showDrawer: boolean\n}\n\nconst CategorySelectorDrawer: React.FC<CategorySelectorDrawerProps> = ({\n id,\n onClose,\n title,\n showDrawer,\n ...categorySelectorProps\n}) => {\n const { common: commonCopy } = useGlobalCopyStore()\n const { isCopyLoaded } = useGlobalUiStore()\n\n if (!isCopyLoaded) {\n return <Loader />\n }\n\n return (\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n className=\"mx-cat-category-selector-drawer\"\n id={id}\n isOpen={showDrawer}\n onClose={onClose}\n title={title}\n >\n <CategorySelector {...categorySelectorProps} />\n </Drawer>\n )\n}\n\nexport default observer(CategorySelectorDrawer)\n"],"names":["useCategoryUiStore","React","GlobalDataContext","useCategoryStore","ON_CLICK_EVENTS","CustomCategoryModalType","CustomCategoryModal","categoryName","onClose","onSave","isOpen","type","name","setName","copy","useGlobalCopyStore","setShouldDisableDrawerScroll","headingText","primaryText","isDeleteType","displayName","inputAriaLabel","buildDynamicCopy","jsx","Text","Dialog","DialogContent","TextField","e","CustomCategoryModal$1","observer","AddSubcategory","announce","parentCategory","showAdd","setShowAdd","addCategory","onEvent","useEvent","handleAdd","handleAdding","handleModalClose","jsxs","ListItem","ListItemButton","ListItemText","AddSubcategory$1","RenameSubcategory","setShowRename","subCategory","showRename","updateCategory","handleRename","RenameSubcategory$1","DeleteSubcategory","showDelete","setShowDelete","removeCategory","handleClose","handleDelete","DeleteSubcategory$1","SubcategoryRow","onSelect","selectedGuid","setSelectedGuid","showSelected","unselectable","unselectableText","isCustom","isSelected","isSelectable","item","CheckCircle","Chip","Box","IconButton","Edit","Delete","SubcategoryRow$1","SubcategoryList","categories","expandedGuid","searchValue","ariaLive","useAriaLive","isExpanded","isFiltered","Collapse","List","category","Divider","SubcategoryList$1","CategoryRow","subCategories","setExpandedGuid","handleExpanderClick","guid","ListItemAvatar","CategoryIcon","ListItemIcon","ExpandMore","CategoryRow$1","CategoryList","nestedCategories","filter","acc","currCategory","children","Paper","nested","CategoryList$1","CategorySelector","initialSelected","loadCategories","isCopyLoaded","useGlobalUiStore","setOnSelect","setSearchValue","setShowSelected","setUnselectable","setUnselectableText","selectedCategory","Stack","SearchBox","value","Loader","CategorySelector$1","CategorySelectorDrawer","id","title","showDrawer","categorySelectorProps","commonCopy","Drawer","CategorySelectorDrawer$1"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import h from "bowser";
2
- import { A as r } from "./ApiEndpoints-YY8ajnnd.mjs";
2
+ import { A as r } from "./ApiEndpoints-DXwIYNUV.mjs";
3
3
  import { g as u } from "./Localization-DnoVyBNK.mjs";
4
4
  class o extends Error {
5
5
  status;
@@ -142,4 +142,4 @@ export {
142
142
  c as F,
143
143
  E as G
144
144
  };
145
- //# sourceMappingURL=GlobalCopyApi-DNC5K2QG.mjs.map
145
+ //# sourceMappingURL=GlobalCopyApi-CLhyon-B.mjs.map