@mx-cartographer/experiences 8.1.12 → 8.2.0

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 (246) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{Account-CMjOp7S2.mjs → Account-BaJmiJAG.mjs} +4 -4
  3. package/dist/{Account-BIKn4XEZ.mjs → Account-BxHMlV9R.mjs} +1 -1
  4. package/dist/{AccountDetailsHeader-CzefHTWU.mjs → AccountDetailsHeader-CfdnKyJK.mjs} +21 -21
  5. package/dist/{AccountFields-BWmpVsS3.mjs → AccountFields-CAy0x_4i.mjs} +6 -6
  6. package/dist/{AccountListItem-DRDxaRBe.mjs → AccountListItem-BYyeeCf6.mjs} +7 -7
  7. package/dist/{Accounts-DX3xJE97.mjs → AccountUtils-T5_Odvos.mjs} +1 -1
  8. package/dist/{Analytics-CxK7O19c.mjs → Analytics-CkYXKvco.mjs} +1 -1
  9. package/dist/ApiEndpoints-DXwIYNUV.mjs +49 -0
  10. package/dist/BudgetUtil-Bg2AQJpQ.mjs +74 -0
  11. package/dist/{Category-Ccoew_sA.mjs → Category-DEKZGLYe.mjs} +3 -3
  12. package/dist/{CategorySelectorDrawer-hhDdSFHO.mjs → CategorySelectorDrawer-Cu1ohxeM.mjs} +2 -2
  13. package/dist/{Connect-CBBTL1HJ.mjs → Connect-Dk6GZEsA.mjs} +1 -1
  14. package/dist/ConnectCard-Dix8BoV_.mjs +54 -0
  15. package/dist/{ConnectDrawer-DNnuF80E.mjs → ConnectDrawer-DgfsTpyW.mjs} +2 -2
  16. package/dist/{ConnectionsDrawer-DX6d7uwJ.mjs → ConnectionsDrawer-D7IXAza2.mjs} +2 -2
  17. package/dist/CurrencyDialog-d4dL7vA5.mjs +371 -0
  18. package/dist/{CurrencyInput-BMbUVSvz.mjs → CurrencyInput-B59ugxPN.mjs} +15 -16
  19. package/dist/{CurrencyText-oqd6cX3M.mjs → CurrencyText-CCbE6MmF.mjs} +1 -1
  20. package/dist/{DateFormats-CaOj_4eI.mjs → DateFormats-HudZ3Bjs.mjs} +6 -7
  21. package/dist/{DateUtil-D0TO0DaZ.mjs → DateUtil-Bhq59ZVg.mjs} +1 -1
  22. package/dist/DebtUtils-DD3186U-.mjs +153 -0
  23. package/dist/EmbeddedCard-BNl3quCs.mjs +856 -0
  24. package/dist/Error-Dogaw2jO.mjs +84 -0
  25. package/dist/ErrorBoundary-CsdOcnJ9.mjs +23 -0
  26. package/dist/{ExportCsvAction-BDFu6YIe.mjs → ExportCsvAction-hDprC41l.mjs} +6 -5
  27. package/dist/{GlobalAccountFilter-jkFxqPg6.mjs → GlobalAccountFilter-DrhtwPqh.mjs} +1 -1
  28. package/dist/GlobalCopyApi-wcnDUzMV.mjs +128 -0
  29. package/dist/GoalsUtil-C9EnLWvC.mjs +107 -0
  30. package/dist/{Help-C_CM4gpK.mjs → Help-BSQm9o29.mjs} +68 -67
  31. package/dist/{Help-CgpJK03Q.mjs → Help-CkQTjORd.mjs} +6 -27
  32. package/dist/InformationTooltip-4su8bn1e.mjs +41 -0
  33. package/dist/{LineChart-CeZnCZ7j.mjs → LineChart-CejWS_rh.mjs} +2 -2
  34. package/dist/{ListItemAction-CNpknVvo.mjs → ListItemAction-DGjHxNDJ.mjs} +1 -1
  35. package/dist/ListItemRow-kH1rn8Xu.mjs +67 -0
  36. package/dist/ListItemWrapper-B5r-YQQ_.mjs +42 -0
  37. package/dist/Localization-DnoVyBNK.mjs +38 -0
  38. package/dist/{ManageIncome-BX2IqW57.mjs → ManageIncome-DwylSiWs.mjs} +51 -51
  39. package/dist/{MicroWidgetContainer-DAesImQ6.mjs → MicroWidgetContainer-CfKdQfhi.mjs} +1 -1
  40. package/dist/{MiniWidgetContainer-BOv3n4iw.mjs → MiniWidgetContainer-BdPiUU-u.mjs} +1 -1
  41. package/dist/NetWorthUtils-DilGN1nW.mjs +95 -0
  42. package/dist/{NotificationSettings-DatCL2Ej.mjs → NotificationSettings-CCg-Tml2.mjs} +13 -13
  43. package/dist/NotificationUtils-BRGFTePr.mjs +23 -0
  44. package/dist/{NumberFormatting-CyrvFgfd.mjs → NumberFormatting--XMeeBfr.mjs} +2 -1
  45. package/dist/{OriginalBalanceAction-CWQ0CK-T.mjs → OriginalBalanceAction-CvDx0K6k.mjs} +4 -4
  46. package/dist/{RecurringSettings-DCplGEv_.mjs → RecurringSettings-CPXLW6AR.mjs} +9 -9
  47. package/dist/RecurringTransactionsUtil-B3rLEx_g.mjs +253 -0
  48. package/dist/Select-BZRUpOib.mjs +51 -0
  49. package/dist/SelectionBox-Bx2a5rh4.mjs +48 -0
  50. package/dist/Sizes-DISGrlUg.mjs +6 -0
  51. package/dist/{SpendingData-Dj85XEUp.mjs → SpendingData-PKlh8caU.mjs} +6 -6
  52. package/dist/{SpendingLegend-BS8mHUbu.mjs → SpendingLegend-BmkEr9Nh.mjs} +4 -4
  53. package/dist/{TransactionDetails-C_skrQk8.mjs → TransactionDetails-CbBSxdOi.mjs} +33 -33
  54. package/dist/TransactionUtils-BphBJBbU.mjs +234 -0
  55. package/dist/TrendsUtil-D9z3kIj_.mjs +69 -0
  56. package/dist/UserStore-CRpKQjpP.mjs +3002 -0
  57. package/dist/{ViewMoreMicroCard-D1j0w64K.mjs → ViewMoreMicroCard-K69RRs_b.mjs} +28 -30
  58. package/dist/{WidgetContainer-BPJoDkhL.mjs → WidgetContainer-DalWyz5A.mjs} +3 -3
  59. package/dist/accounts/hooks/useUiStore.d.ts +6 -1
  60. package/dist/accounts/index.d.ts +0 -1
  61. package/dist/accounts/index.es.js +62 -64
  62. package/dist/analytics/index.es.js +2 -2
  63. package/dist/budgets/index.es.js +18 -18
  64. package/dist/cashflow/context/hooks.d.ts +15 -1
  65. package/dist/cashflow/index.d.ts +0 -1
  66. package/dist/cashflow/index.es.js +28 -31
  67. package/dist/categories/context/hooks.d.ts +19 -1
  68. package/dist/categories/index.d.ts +0 -1
  69. package/dist/categories/index.es.js +4 -6
  70. package/dist/common/constants/ScheduledPayment.d.ts +1 -1
  71. package/dist/common/constants/index.d.ts +0 -3
  72. package/dist/common/context/GlobalDataProvider.d.ts +1 -1
  73. package/dist/common/context/hooks.d.ts +20 -20
  74. package/dist/common/index.d.ts +3 -1
  75. package/dist/common/index.es.js +215 -961
  76. package/dist/common/utils/AccountFilter.d.ts +1 -1
  77. package/dist/common/utils/index.d.ts +0 -4
  78. package/dist/{common → core}/constants/DefaultConfig.d.ts +1 -1
  79. package/dist/core/constants/Transaction.d.ts +10 -0
  80. package/dist/core/constants/index.d.ts +2 -0
  81. package/dist/core/index.d.ts +1 -1
  82. package/dist/core/index.es.js +94 -79
  83. package/dist/{accounts → core}/stores/AccountStore.d.ts +14 -4
  84. package/dist/{analytics → core}/stores/AnalyticsStore.d.ts +1 -1
  85. package/dist/{common → core}/stores/AppDataStore.d.ts +4 -5
  86. package/dist/{insights/store → core/stores}/BeatStore.d.ts +3 -3
  87. package/dist/{budgets/store → core/stores}/BudgetsStore.d.ts +3 -4
  88. package/dist/{cashflow/stores/UiStore.d.ts → core/stores/CashflowStore.d.ts} +10 -2
  89. package/dist/{categories → core}/stores/CategoryStore.d.ts +24 -4
  90. package/dist/{common → core}/stores/ConnectStore.d.ts +2 -2
  91. package/dist/core/stores/DebtsStore.d.ts +22 -0
  92. package/dist/{finstrong → core}/stores/FinstrongStore.d.ts +4 -4
  93. package/dist/{common → core}/stores/GlobalCopyStore.d.ts +2 -2
  94. package/dist/{common → core}/stores/GlobalStore.d.ts +2 -25
  95. package/dist/{common → core}/stores/GlobalUiStore.d.ts +3 -3
  96. package/dist/{goals → core}/stores/GoalStore.d.ts +3 -3
  97. package/dist/{help/store → core/stores}/HelpStore.d.ts +4 -6
  98. package/dist/{investments → core}/stores/HoldingStore.d.ts +4 -4
  99. package/dist/{merchants → core}/stores/MerchantStore.d.ts +3 -3
  100. package/dist/{networth → core}/stores/NetWorthStore.d.ts +3 -4
  101. package/dist/{notifications → core}/stores/NotificationStore.d.ts +3 -3
  102. package/dist/{recurringtransactions → core}/stores/RecurringTransactionsStore.d.ts +3 -3
  103. package/dist/{settings → core}/stores/SettingsStore.d.ts +4 -5
  104. package/dist/{transactions → core}/stores/TransactionStore.d.ts +27 -6
  105. package/dist/{trends → core}/stores/TrendsStore.d.ts +11 -5
  106. package/dist/{common → core}/stores/UserStore.d.ts +2 -2
  107. package/dist/core/stores/index.d.ts +24 -0
  108. package/dist/{networth → core}/types/NetWorth.d.ts +1 -10
  109. package/dist/core/types/Offer.d.ts +32 -0
  110. package/dist/core/types/index.d.ts +3 -1
  111. package/dist/{accounts/utils/Accounts.d.ts → core/utils/AccountUtils.d.ts} +1 -1
  112. package/dist/{microinsights/utils/beatUtils.d.ts → core/utils/BeatUtils.d.ts} +1 -1
  113. package/dist/{budgets → core}/utils/BudgetUtil.d.ts +2 -2
  114. package/dist/{categories/util → core/utils}/CategoryUtil.d.ts +6 -1
  115. package/dist/core/utils/DebtUtils.d.ts +31 -0
  116. package/dist/core/utils/FinstrongUtils.d.ts +7 -0
  117. package/dist/{goals/util → core/utils}/GoalsUtil.d.ts +1 -1
  118. package/dist/core/utils/HelpUtil.d.ts +3 -0
  119. package/dist/{investments/util → core/utils}/InvestmentUtil.d.ts +2 -2
  120. package/dist/core/utils/Localization.d.ts +3 -0
  121. package/dist/{networth → core}/utils/NetWorthUtils.d.ts +1 -2
  122. package/dist/{notifications → core}/utils/NotificationUtils.d.ts +1 -1
  123. package/dist/{common → core}/utils/NumberFormatting.d.ts +1 -1
  124. package/dist/{recurringtransactions/util/RecurringTransactions.d.ts → core/utils/RecurringTransactionsUtil.d.ts} +1 -1
  125. package/dist/{settings/util/Notifications.d.ts → core/utils/SettingsUtil.d.ts} +1 -1
  126. package/dist/{transactions/utils/buildDetailedTransactions.d.ts → core/utils/TransactionUtils.d.ts} +12 -2
  127. package/dist/{trends/utils/TrendsData.d.ts → core/utils/TrendsUtil.d.ts} +1 -1
  128. package/dist/{common/utils/User.d.ts → core/utils/UserUtils.d.ts} +1 -1
  129. package/dist/core/utils/index.d.ts +1 -1
  130. package/dist/dashboard/index.es.js +4 -4
  131. package/dist/debts/components/DebtsChart.d.ts +1 -1
  132. package/dist/debts/components/DebtsTable.d.ts +1 -1
  133. package/dist/debts/components/SnowballCard.d.ts +1 -1
  134. package/dist/debts/components/actions/InterestRateAction.d.ts +1 -1
  135. package/dist/debts/components/actions/MonthlyPaymentAction.d.ts +1 -1
  136. package/dist/debts/components/actions/OriginalBalanceAction.d.ts +1 -1
  137. package/dist/debts/hooks/useDebtsUiStore.d.ts +1 -1
  138. package/dist/debts/index.d.ts +0 -1
  139. package/dist/debts/index.es.js +568 -691
  140. package/dist/debts/utils/DebtsTable.d.ts +1 -1
  141. package/dist/debts/utils/SnowballCard.d.ts +2 -2
  142. package/dist/finstrong/index.d.ts +0 -1
  143. package/dist/finstrong/index.es.js +1565 -1342
  144. package/dist/finstrong/util/finstrongUtils.d.ts +1 -7
  145. package/dist/goals/components/addgoal/AddGoalListItem.d.ts +1 -1
  146. package/dist/goals/index.d.ts +0 -1
  147. package/dist/goals/index.es.js +71 -73
  148. package/dist/help/index.es.js +4 -4
  149. package/dist/help/utils/index.d.ts +0 -1
  150. package/dist/{hooks-RzCoiTd0.mjs → hooks-BaO_gOI6.mjs} +17 -17
  151. package/dist/insights/index.d.ts +0 -1
  152. package/dist/insights/index.es.js +52 -54
  153. package/dist/investments/components/AnalysisDetails.d.ts +1 -1
  154. package/dist/investments/index.es.js +6 -6
  155. package/dist/merchants/index.d.ts +0 -1
  156. package/dist/merchants/index.es.js +12 -14
  157. package/dist/microinsights/index.es.js +1 -1
  158. package/dist/microinsights/interfaces.d.ts +1 -33
  159. package/dist/networth/components/AssetsLiabilitiesDetail.d.ts +1 -1
  160. package/dist/networth/components/GainsLossesDetail.d.ts +1 -1
  161. package/dist/networth/components/NetWorthChange.d.ts +1 -1
  162. package/dist/networth/components/NetWorthListItem.d.ts +1 -1
  163. package/dist/networth/components/NetWorthSummary.d.ts +1 -1
  164. package/dist/networth/index.d.ts +0 -4
  165. package/dist/networth/index.es.js +232 -237
  166. package/dist/notifications/index.d.ts +0 -2
  167. package/dist/notifications/index.es.js +23 -26
  168. package/dist/recurringtransactions/index.d.ts +0 -1
  169. package/dist/recurringtransactions/index.es.js +92 -96
  170. package/dist/settings/index.d.ts +0 -1
  171. package/dist/settings/index.es.js +11 -13
  172. package/dist/spending/index.es.js +10 -10
  173. package/dist/transactions/context/hooks.d.ts +1 -1
  174. package/dist/transactions/index.d.ts +0 -4
  175. package/dist/transactions/index.es.js +102 -109
  176. package/dist/trends/index.d.ts +0 -1
  177. package/dist/trends/index.es.js +67 -68
  178. package/dist/trends/utils/shared.d.ts +1 -1
  179. package/dist/{useAccountDisplayName-pliH6hz0.mjs → useAccountDisplayName-CFa_MrS6.mjs} +1 -1
  180. package/dist/{useInsightsEnabled-CzJoG8xi.mjs → useInsightsEnabled-DaNLPmUU.mjs} +1 -1
  181. package/dist/{useWidgetLoadTimer-BZjr-BiE.mjs → useWidgetLoadTimer-CJb-RELP.mjs} +1 -1
  182. package/package.json +1 -1
  183. package/dist/AccountApi-WEM2M9tg.mjs +0 -19
  184. package/dist/AccountStore-CGrjC2Oe.mjs +0 -253
  185. package/dist/ApiEndpoints-C5IA97i7.mjs +0 -118
  186. package/dist/BeatApi-C6pBa0Rb.mjs +0 -21
  187. package/dist/BeatStore-C7-PIhpB.mjs +0 -163
  188. package/dist/BudgetUtil-H9igoNVm.mjs +0 -479
  189. package/dist/CashflowStore-BEi92kJg.mjs +0 -91
  190. package/dist/CategoryApi-CogDFScz.mjs +0 -29
  191. package/dist/CategoryStore-CA4NTaKH.mjs +0 -160
  192. package/dist/CategoryUtil-BJOHgYKS.mjs +0 -80
  193. package/dist/DebtsStore-BJlC2-yO.mjs +0 -63
  194. package/dist/EmbeddedCard-B9JoBaan.mjs +0 -811
  195. package/dist/FinstrongApi-FpmsS_sy.mjs +0 -19
  196. package/dist/FinstrongStore-DYawCv1d.mjs +0 -435
  197. package/dist/GlobalCopyApi-DkS-2Zf_.mjs +0 -41
  198. package/dist/Goal-MFBpoOIC.mjs +0 -29
  199. package/dist/GoalStore-BBAEbf43.mjs +0 -395
  200. package/dist/Localization-C_HZg9tJ.mjs +0 -15
  201. package/dist/Localization-CkQ49EKr.mjs +0 -26
  202. package/dist/MerchantApi-D8ahYxiG.mjs +0 -15
  203. package/dist/MerchantStore-CyZTv-BM.mjs +0 -26
  204. package/dist/NetWorthStore-BY-B_hxy.mjs +0 -168
  205. package/dist/NotificationApi-DF0obHoR.mjs +0 -20
  206. package/dist/NotificationStore-DlAM5Ue0.mjs +0 -69
  207. package/dist/RecurringTransactions-DCt94TN4.mjs +0 -297
  208. package/dist/RecurringTransactionsStore-CFJYC7lI.mjs +0 -264
  209. package/dist/RepeatingTransaction-D2gmBTd0.mjs +0 -7
  210. package/dist/RepeatingTransactionsApi-BNZgZPLs.mjs +0 -17
  211. package/dist/SettingsApi-D9d7SLhB.mjs +0 -22
  212. package/dist/SettingsStore-BcbuKfFO.mjs +0 -250
  213. package/dist/Transaction-Cn5_iFm0.mjs +0 -5
  214. package/dist/TransactionApi-CLG2eSNe.mjs +0 -86
  215. package/dist/TransactionStore-amPYxHnA.mjs +0 -710
  216. package/dist/TrendsStore-bYjIGqyR.mjs +0 -183
  217. package/dist/WidgetApi-C0BA2cFX.mjs +0 -102
  218. package/dist/accounts/stores/UiStore.d.ts +0 -10
  219. package/dist/accounts/utils/index.d.ts +0 -1
  220. package/dist/cashflow/stores/CashflowStore.d.ts +0 -8
  221. package/dist/categories/stores/UiStore.d.ts +0 -20
  222. package/dist/common/stores/index.d.ts +0 -3
  223. package/dist/common/utils/Categories.d.ts +0 -6
  224. package/dist/common/utils/Localization.d.ts +0 -3
  225. package/dist/debts/store/DebtsStore.d.ts +0 -10
  226. package/dist/debts/store/DebtsUiStore.d.ts +0 -13
  227. package/dist/debts/utils/DebtStore.d.ts +0 -4
  228. package/dist/debts/utils/DebtsWidget.d.ts +0 -20
  229. package/dist/debts/utils/shared.d.ts +0 -12
  230. package/dist/exportTransactionsToCSV-CSvbZrvL.mjs +0 -133
  231. package/dist/help/constants/index.d.ts +0 -1
  232. package/dist/help/utils/getAccessibleHelpCategories.d.ts +0 -3
  233. package/dist/transactions/analytics.d.ts +0 -3
  234. package/dist/transactions/constants/Transaction.d.ts +0 -2
  235. package/dist/transactions/constants/TransactionsTable.d.ts +0 -17
  236. package/dist/transactions/stores/UiStore.d.ts +0 -25
  237. package/dist/transactions/utils/exportTransactionsToCSV.d.ts +0 -9
  238. package/dist/transactions/utils/sortAndFilterTransactions.d.ts +0 -3
  239. /package/dist/{common → core}/constants/Category.d.ts +0 -0
  240. /package/dist/{common → core}/constants/DateFormats.d.ts +0 -0
  241. /package/dist/{debts/constants/index.d.ts → core/constants/Debts.d.ts} +0 -0
  242. /package/dist/{help → core}/constants/Help.d.ts +0 -0
  243. /package/dist/{investments/constants/index.d.ts → core/constants/Investments.d.ts} +0 -0
  244. /package/dist/{common → core}/constants/Numbers.d.ts +0 -0
  245. /package/dist/{common → core}/constants/Table.d.ts +0 -0
  246. /package/dist/{common → core}/utils/DateUtil.d.ts +0 -0
@@ -0,0 +1,234 @@
1
+ import { format as h } from "date-fns/format";
2
+ import { startOfMonth as M } from "date-fns/startOfMonth";
3
+ import { startOfToday as N } from "date-fns/startOfToday";
4
+ import { subMonths as L } from "date-fns/subMonths";
5
+ import { CategoryIconList as P } from "@mxenabled/mxui";
6
+ import { c as U, a as G, C as S, b as w } from "./Category-DEKZGLYe.mjs";
7
+ import { f as _, D as m, O as H } from "./DateFormats-HudZ3Bjs.mjs";
8
+ import { endOfToday as B } from "date-fns/endOfToday";
9
+ import { fromUnixTime as I } from "date-fns/fromUnixTime";
10
+ import { getUnixTime as y } from "date-fns/getUnixTime";
11
+ import { f as F } from "./NumberFormatting--XMeeBfr.mjs";
12
+ var A = /* @__PURE__ */ ((e) => (e[e.CREDIT = 1] = "CREDIT", e[e.DEBIT = 2] = "DEBIT", e))(A || {}), C = /* @__PURE__ */ ((e) => (e[e.POSTED = 1] = "POSTED", e[e.PENDING = 2] = "PENDING", e))(C || {});
13
+ const j = 3, D = 12, ue = (e, t, n, o) => e.filter((r) => !r.parent_guid).map(
14
+ (r) => v(
15
+ r,
16
+ t,
17
+ n,
18
+ o,
19
+ e.filter((d) => d.parent_guid === r.guid)
20
+ )
21
+ ), ce = (e, t) => {
22
+ const n = P.find((o) => o.guid === e);
23
+ return n ? t.palette.categories[n.colorName] || "" : t.palette.categories.uncategorized || "";
24
+ }, v = (e, t, n, o, r = []) => {
25
+ const d = e.guid, i = e.parent_guid || d, a = d === i, s = n.find((f) => f.category_guid === d)?.total || 0, u = b(
26
+ o.filter((f) => f.category_guid === d)
27
+ ), g = b(
28
+ o.filter(
29
+ (f) => f.category_guid === d || f.top_level_category_guid === d
30
+ )
31
+ ), c = r.map(
32
+ (f) => v(f, t, n, o)
33
+ ), p = c.reduce(
34
+ (f, R) => f + R.currentAmount,
35
+ s
36
+ ), T = t.default_categories[e.guid] ? t.default_categories[e.guid].replace(/&/g, "&") : e.name;
37
+ return {
38
+ ...e,
39
+ currentAmount: s,
40
+ averageAmount: E(u),
41
+ color: G[i],
42
+ icon: U[i],
43
+ isTransfer: i === S.TRANSFER,
44
+ monthlyAmounts: u,
45
+ name: T,
46
+ subCategories: c,
47
+ totalAmount: a ? p : 0,
48
+ totalAverageAmount: E(g),
49
+ totalMonthlyAmounts: a ? g : []
50
+ };
51
+ }, le = (e, t) => e.map((n) => {
52
+ const o = t.filter(
53
+ (r) => r.category_guid === n.guid || r.top_level_category_guid === n.guid
54
+ );
55
+ return {
56
+ ...n,
57
+ transactions: o
58
+ };
59
+ }), E = (e, t = j) => {
60
+ const n = t > history.length ? history.length : t;
61
+ return Math.ceil(
62
+ Math.max(
63
+ 0,
64
+ e.slice(-n).reduce((o, r) => o + r.amount, 0) / n
65
+ )
66
+ );
67
+ }, b = (e) => {
68
+ const t = [], n = N();
69
+ for (let o = 0; o <= D; o++) {
70
+ const r = M(L(n, D - o)), i = e.filter(
71
+ (a) => a.year_month === Number(h(r, "yyyyMM"))
72
+ ).reduce((a, s) => a + s.total, 0);
73
+ t.push({
74
+ amount: i,
75
+ isoDate: h(r, "yyyy-MM-dd"),
76
+ label: _(r, m.MONTH_YEAR)
77
+ });
78
+ }
79
+ return t;
80
+ }, ge = (e, t) => e.find((n) => n.guid === t), fe = (e, t) => {
81
+ const n = e.find((o) => o.subCategories.find((r) => r.guid === t));
82
+ if (n)
83
+ return n.subCategories.find((o) => o.guid === t);
84
+ }, Y = {
85
+ ASC: "ASC",
86
+ DESC: "DESC"
87
+ }, _e = {
88
+ account_guid: "",
89
+ amount: 0,
90
+ currency_code: "",
91
+ date: 0,
92
+ description: "",
93
+ duplicate: !1,
94
+ feed_description: "",
95
+ feed_status: C.POSTED,
96
+ feed_transaction_date: 0,
97
+ has_been_split: !1,
98
+ has_been_viewed: !1,
99
+ is_cleared: !1,
100
+ is_flagged: !1,
101
+ is_hidden: !1,
102
+ is_manual: !0,
103
+ is_personal: !0,
104
+ is_reimbursable: !1,
105
+ is_subscription: !1,
106
+ is_void: !1,
107
+ revision: 1,
108
+ transaction_type: A.DEBIT,
109
+ user_guid: "",
110
+ is_duplicate: !1,
111
+ feed_transacted_at: 0,
112
+ guid: "",
113
+ memo: void 0,
114
+ tags: []
115
+ }, O = {
116
+ DATE: "date",
117
+ AMOUNT: "amount"
118
+ }, me = (e, t, n, o = []) => {
119
+ const r = t.reduce((a, s) => ({ ...a, [s.guid]: s }), {}), d = n.reduce((a, s) => ({ ...a, [s.guid]: s }), {}), i = o.reduce((a, s) => {
120
+ const { transaction_guid: u, tag_guid: g } = s;
121
+ if (!a[u])
122
+ return {
123
+ ...a,
124
+ [u]: [g]
125
+ };
126
+ const c = [...a[u], g];
127
+ return {
128
+ ...a,
129
+ [u]: c
130
+ };
131
+ }, {});
132
+ return e.map((a) => {
133
+ const s = r[a.account_guid], u = a.category_guid ? d[a.category_guid] : null, g = i[a.guid] ?? [];
134
+ return {
135
+ ...a,
136
+ account: s?.user_name || "Unknown",
137
+ accountIsClosed: s?.is_closed,
138
+ accountIsHidden: s?.is_hidden,
139
+ category: u?.name || "Uncategorized",
140
+ isIncome: a.top_level_category_guid === S.INCOME,
141
+ isPending: a.feed_status === C.PENDING,
142
+ number: s?.account_number || "",
143
+ payee: a.description,
144
+ tags: g
145
+ };
146
+ });
147
+ }, x = "uncategorized", pe = (e, t, n, o, r, d) => {
148
+ const i = k(e, r, d), a = V(i, n, o);
149
+ return t.forEach((s) => {
150
+ const u = a.findIndex((c) => c.guid === s), g = d.filter((c) => c.parent_guid === s);
151
+ a.splice(u + 1, 0, ...g);
152
+ }), a;
153
+ }, k = (e, t, n) => {
154
+ const {
155
+ accounts: o = [],
156
+ dateRange: r = { start: M(N()), end: B() },
157
+ custom: d = () => !0,
158
+ searchTerm: i = "",
159
+ showSplits: a = !1
160
+ } = e;
161
+ return n.filter((s) => a ? !s.has_been_split : !s.parent_guid).filter((s) => !!o.find((u) => u === s.account_guid)).filter((s) => s.date >= y(r.start) && s.date <= y(r.end)).filter(d).filter((s) => {
162
+ if (i === x && s.has_been_split)
163
+ return !1;
164
+ if (/^spl/i.test(i) && (s.has_been_split || s.parent_guid))
165
+ return !0;
166
+ const g = s.tags.some(
167
+ (p) => l(i, t.find((T) => T.guid === p)?.name)
168
+ ), c = I(s.date);
169
+ return l(i, s.payee) || l(i, s.feed_description) || l(i, s.category) || l(i, _(c, m.MONTH)) || l(i, _(c, m.DAY)) || l(i, _(c, m.FULL_MONTH_DAY)) || l(i, _(c, m.MONTH_DAY_YEAR)) || l(i, h(c, H)) || l(i, s.account) || l(i, F(s.amount, "0,0.00")) || l(i, s.memo) || g;
170
+ });
171
+ }, V = (e, t, n) => [...e].sort((o, r) => {
172
+ const d = t, i = (o[d] || "") > (r[d] || "");
173
+ let a = i ? -1 : 1, s = i ? 1 : -1;
174
+ return (t === O.DATE || t === O.AMOUNT) && (a = i ? 1 : -1, s = i ? -1 : 1), n === Y.ASC ? a : s;
175
+ }), l = (e, t) => {
176
+ const n = e.toLowerCase().split(" "), o = t?.toString().toLowerCase() ?? "";
177
+ return n.every((r) => o.indexOf(r) > -1);
178
+ };
179
+ function z(e) {
180
+ return new Set(
181
+ e.filter((t) => t.parent_guid !== void 0).map((t) => t.parent_guid)
182
+ );
183
+ }
184
+ function W(e) {
185
+ return e.reduce((t, n) => (n.parent_guid && (t[n.parent_guid] || (t[n.parent_guid] = []), t[n.parent_guid].push(n)), t), {});
186
+ }
187
+ function Te(e, t) {
188
+ const n = z(t), o = W(t), r = /* @__PURE__ */ new Set(), d = [];
189
+ for (const i of e)
190
+ n.has(i.guid) ? (o[i.guid] ?? []).slice().sort((s, u) => Math.abs(u.amount) - Math.abs(s.amount)).forEach((s) => {
191
+ r.has(s.guid) || (d.push(s), r.add(s.guid));
192
+ }) : r.has(i.guid) || (d.push(i), r.add(i.guid));
193
+ return d;
194
+ }
195
+ const he = (e, t) => {
196
+ const n = q($(e, t)), o = new Blob([n], { type: "text/csv;charset=utf-8;" }), r = document.createElement("a");
197
+ r.href = URL.createObjectURL(o), r.setAttribute("download", "transactions.csv"), document.body.appendChild(r), r.click(), document.body.removeChild(r), URL.revokeObjectURL(r.href);
198
+ }, $ = (e, t) => e.map((n) => ({
199
+ Date: _(I(n.date), m.YEAR_MONTH_DAY),
200
+ Description: J(n),
201
+ "Original Description": n.feed_description,
202
+ Amount: `${n.amount}`,
203
+ Type: n.transaction_type === A.CREDIT ? "Credit" : "Debit",
204
+ "Parent Category": w[n.top_level_category_guid || ""],
205
+ Category: n.category,
206
+ Account: n.account,
207
+ Tags: K(n, t),
208
+ Memo: n.memo,
209
+ Pending: n.isPending ? "TRUE" : "FALSE"
210
+ })), Z = (e) => e ? /[,"\n\r]/.test(e) ? `"${e.replace(/"/g, '""')}"` : e : "", q = (e) => {
211
+ const t = Object.keys(e[0]).join(",").concat(`\r
212
+ `), n = e.map((o) => Object.values(o).map(Z).join(",")).join(`\r
213
+ `);
214
+ return t + n;
215
+ }, J = (e) => {
216
+ let t = e.parent_guid ? "Split: " : "";
217
+ return t += e.is_hidden ? "(Excluded) " : "", t += e.description, t;
218
+ }, K = (e, t) => e.tags.map((n) => t.filter((r) => r.guid === n)[0]?.name ?? "").join(" ");
219
+ export {
220
+ O as C,
221
+ _e as D,
222
+ A as T,
223
+ fe as a,
224
+ C as b,
225
+ ue as c,
226
+ le as d,
227
+ he as e,
228
+ ge as f,
229
+ ce as g,
230
+ Y as h,
231
+ me as i,
232
+ Te as j,
233
+ pe as s
234
+ };
@@ -0,0 +1,69 @@
1
+ import { C as b, a as p, b as d } from "./Category-DEKZGLYe.mjs";
2
+ const _ = (e) => p[e] ?? p.default, f = (e) => d[e];
3
+ function C(e, t) {
4
+ const o = [], a = new Date(e);
5
+ for (; a <= t; ) {
6
+ const r = a.getFullYear(), n = String(a.getMonth() + 1).padStart(2, "0");
7
+ o.push(+`${r}${n}`), a.setMonth(a.getMonth() + 1);
8
+ }
9
+ return o;
10
+ }
11
+ const M = (e) => e.reduce((t, o) => {
12
+ const a = {
13
+ top_level_category_guid: o.top_level_category_guid,
14
+ category_guid: o.category_guid,
15
+ amount: o.total,
16
+ year_month: o.year_month
17
+ }, { top_level_category_guid: r, category_guid: n } = a;
18
+ return t[n] || (t[n] = []), t[n].push(a), r !== n && (t[r] || (t[r] = []), t[r].push(a)), t;
19
+ }, {}), E = (e, t, o) => {
20
+ const a = M(e), r = C(t, o);
21
+ return Object.entries(a).map(([n, c]) => {
22
+ const i = c[0].top_level_category_guid, g = r.map((l) => {
23
+ const s = c.filter((y) => y.year_month === l).reduce((y, h) => y + Math.abs(h.amount), 0), u = Number(String(l).slice(0, 4)), m = Number(String(l).slice(4));
24
+ return { x: new Date(u, m - 1), y: s };
25
+ }).sort((l, s) => l.x.getTime() - s.x.getTime());
26
+ return {
27
+ top_level_category_guid: i,
28
+ category_guid: n,
29
+ category_name: f(n),
30
+ category_color: _(i),
31
+ dataset: g
32
+ };
33
+ });
34
+ }, N = (e, t) => {
35
+ const o = typeof e == "string" ? parseFloat(e.replace(/[^0-9.-]+/g, "")) : e, a = typeof t == "string" ? parseFloat(t.replace(/[^0-9.-]+/g, "")) : t;
36
+ return (o || 0) - (a || 0);
37
+ }, x = (e, t) => e.indexOf("General") >= 0 ? 1 : e.localeCompare(t), T = (e, t) => {
38
+ const o = e.subCategories.filter((n) => n.currentAmount !== 0), a = e.totalMonthlyAmounts.slice(-t), r = (n) => n.substring(0, 3) + " " + n.slice(-4);
39
+ return a.map((n) => {
40
+ const c = r(n.label), i = o.map((s) => {
41
+ const u = s.monthlyAmounts.slice(-t).find((m) => r(m.label) === c);
42
+ return {
43
+ label: s.name,
44
+ amount: Math.abs(u?.amount || 0),
45
+ header: c
46
+ };
47
+ }), g = e.monthlyAmounts.slice(-t).find((s) => r(s.label) === c);
48
+ return [{
49
+ label: e.name,
50
+ amount: Math.abs(g?.amount || 0),
51
+ header: c
52
+ }, ...i].sort((s, u) => u.amount - s.amount);
53
+ });
54
+ }, D = (e, t) => {
55
+ const o = e ? e.totalMonthlyAmounts.slice(-t).map((r) => ({
56
+ x: r.label.substring(0, 3),
57
+ y: Math.abs(r.amount)
58
+ })) : [], a = e ? T(e, t) : [];
59
+ return { monthlyAmounts: o, tooltipLabels: a };
60
+ }, L = (e) => e.slice().filter(
61
+ (t) => t.totalAmount !== 0 && !t.isTransfer && t.guid !== b.INVESTMENTS
62
+ ).sort((t, o) => Math.abs(o.totalAmount) - Math.abs(t.totalAmount));
63
+ export {
64
+ N as a,
65
+ D as b,
66
+ x as c,
67
+ L as f,
68
+ E as g
69
+ };