@mx-cartographer/experiences 6.26.0 → 6.26.1-alpha.mega1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AccountStore-DkL93tXL.mjs +317 -0
- package/dist/AccountStore-DkL93tXL.mjs.map +1 -0
- package/dist/BudgetUtil-CVqAdv-j.mjs +187 -0
- package/dist/BudgetUtil-CVqAdv-j.mjs.map +1 -0
- package/dist/CashflowStore-gPEEBiXo.mjs +53 -0
- package/dist/CashflowStore-gPEEBiXo.mjs.map +1 -0
- package/dist/CategoryStore-m7oieLzP.mjs +260 -0
- package/dist/CategoryStore-m7oieLzP.mjs.map +1 -0
- package/dist/ConnectMiniWidget-CQWafYtQ.mjs +22966 -0
- package/dist/ConnectMiniWidget-CQWafYtQ.mjs.map +1 -0
- package/dist/DebtsStore-cUhIgJx6.mjs +145 -0
- package/dist/DebtsStore-cUhIgJx6.mjs.map +1 -0
- package/dist/Donut-CGNFni9y.mjs +58 -0
- package/dist/Donut-CGNFni9y.mjs.map +1 -0
- package/dist/FinstrongStore-BDG7l0nI.mjs +183 -0
- package/dist/FinstrongStore-BDG7l0nI.mjs.map +1 -0
- package/dist/GoalStore-o2waGeyf.mjs +293 -0
- package/dist/GoalStore-o2waGeyf.mjs.map +1 -0
- package/dist/Loader-CwdK8lfx.mjs +147 -0
- package/dist/Loader-CwdK8lfx.mjs.map +1 -0
- package/dist/MerchantStore-Cck9IGIH.mjs +125 -0
- package/dist/MerchantStore-Cck9IGIH.mjs.map +1 -0
- package/dist/NetWorthStore-D5eUfGQt.mjs +66 -0
- package/dist/NetWorthStore-D5eUfGQt.mjs.map +1 -0
- package/dist/NotificationStore-DCxw8W7u.mjs +141 -0
- package/dist/NotificationStore-DCxw8W7u.mjs.map +1 -0
- package/dist/RecurringTransactionsStore-Bijrgllq.mjs +337 -0
- package/dist/RecurringTransactionsStore-Bijrgllq.mjs.map +1 -0
- package/dist/SettingsStore-BhOYgUOa.mjs +352 -0
- package/dist/SettingsStore-BhOYgUOa.mjs.map +1 -0
- package/dist/TransactionApi-Dnbyi1JL.mjs +175 -0
- package/dist/TransactionApi-Dnbyi1JL.mjs.map +1 -0
- package/dist/TransactionStore-CiEtt5XJ.mjs +417 -0
- package/dist/TransactionStore-CiEtt5XJ.mjs.map +1 -0
- package/dist/TrendsStore-Idq3QfoA.mjs +131 -0
- package/dist/TrendsStore-Idq3QfoA.mjs.map +1 -0
- package/dist/accounts/index.es.js +18 -0
- package/dist/accounts/index.es.js.map +1 -0
- package/dist/analytics/index.es.js +170 -0
- package/dist/analytics/index.es.js.map +1 -0
- package/dist/budgets/index.es.js +1116 -0
- package/dist/budgets/index.es.js.map +1 -0
- package/dist/cashflow/index.es.js +118 -0
- package/dist/cashflow/index.es.js.map +1 -0
- package/dist/categories/index.es.js +10 -0
- package/dist/categories/index.es.js.map +1 -0
- package/dist/common/context/hooks.d.ts +13 -13
- package/dist/common/index.es.js +1549 -0
- package/dist/common/index.es.js.map +1 -0
- package/dist/dashboard/index.es.js +257 -0
- package/dist/dashboard/index.es.js.map +1 -0
- package/dist/debts/index.es.js +9 -0
- package/dist/debts/index.es.js.map +1 -0
- package/dist/finstrong/index.es.js +11 -0
- package/dist/finstrong/index.es.js.map +1 -0
- package/dist/goals/index.es.js +9 -0
- package/dist/goals/index.es.js.map +1 -0
- package/dist/help/components/content/section/index.d.ts +15 -15
- package/dist/help/index.es.js +6 -0
- package/dist/help/index.es.js.map +1 -0
- package/dist/investments/index.es.js +1694 -0
- package/dist/investments/index.es.js.map +1 -0
- package/dist/merchants/index.es.js +7 -0
- package/dist/merchants/index.es.js.map +1 -0
- package/dist/microinsights/index.es.js +21 -0
- package/dist/microinsights/index.es.js.map +1 -0
- package/dist/networth/index.es.js +11 -0
- package/dist/networth/index.es.js.map +1 -0
- package/dist/notifications/index.es.js +116 -0
- package/dist/notifications/index.es.js.map +1 -0
- package/dist/recurringtransactions/index.es.js +14 -0
- package/dist/recurringtransactions/index.es.js.map +1 -0
- package/dist/settings/index.es.js +112 -0
- package/dist/settings/index.es.js.map +1 -0
- package/dist/spending/index.es.js +632 -0
- package/dist/spending/index.es.js.map +1 -0
- package/dist/transactions/index.es.js +19 -0
- package/dist/transactions/index.es.js.map +1 -0
- package/dist/trends/index.es.js +10 -0
- package/dist/trends/index.es.js.map +1 -0
- package/package.json +91 -3
- package/dist/index.d.ts +0 -22
- package/dist/index.es.js +0 -29907
- package/dist/index.es.js.map +0 -1
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { makeAutoObservable as h, runInAction as n } from "mobx";
|
|
2
|
+
import "bowser";
|
|
3
|
+
import "date-fns/getUnixTime";
|
|
4
|
+
import { ae as d, af as r, aN as a } from "./ConnectMiniWidget-CQWafYtQ.mjs";
|
|
5
|
+
import "date-fns/intlFormat";
|
|
6
|
+
import "date-fns/addMonths";
|
|
7
|
+
import "date-fns/addQuarters";
|
|
8
|
+
import "date-fns/addWeeks";
|
|
9
|
+
import "date-fns/addYears";
|
|
10
|
+
import "date-fns/getDay";
|
|
11
|
+
import "date-fns/isBefore";
|
|
12
|
+
import "date-fns/nextDay";
|
|
13
|
+
import "date-fns/setDate";
|
|
14
|
+
import "date-fns/startOfToday";
|
|
15
|
+
import "date-fns/fromUnixTime";
|
|
16
|
+
import "react";
|
|
17
|
+
import "numeral";
|
|
18
|
+
import "@mui/material";
|
|
19
|
+
import "react/jsx-runtime";
|
|
20
|
+
import "@mui/material/Button";
|
|
21
|
+
import "@mxenabled/mxui";
|
|
22
|
+
import "@mui/material/Tooltip";
|
|
23
|
+
import "@mui/material/Box";
|
|
24
|
+
import "@mui/material/IconButton";
|
|
25
|
+
import "./Loader-CwdK8lfx.mjs";
|
|
26
|
+
import "@mui/material/styles/useTheme";
|
|
27
|
+
import "@mui/material/useMediaQuery";
|
|
28
|
+
import "@mxenabled/cssinjs";
|
|
29
|
+
import "date-fns/addDays";
|
|
30
|
+
import "date-fns/eachDayOfInterval";
|
|
31
|
+
import "date-fns/eachWeekOfInterval";
|
|
32
|
+
import "date-fns/endOfMonth";
|
|
33
|
+
import "date-fns/format";
|
|
34
|
+
import "date-fns/isSameMonth";
|
|
35
|
+
import "date-fns/startOfMonth";
|
|
36
|
+
import "date-fns/subMonths";
|
|
37
|
+
import "@mui/material/Paper";
|
|
38
|
+
import "@mxenabled/mx-icons";
|
|
39
|
+
import "date-fns/isSameDay";
|
|
40
|
+
import "date-fns/isWithinInterval";
|
|
41
|
+
import "d3";
|
|
42
|
+
import "@mui/material/styles";
|
|
43
|
+
import "@mui/x-charts";
|
|
44
|
+
import "@mui/x-charts/ChartsTooltip";
|
|
45
|
+
import "@mui/material/Stack";
|
|
46
|
+
import "date-fns/differenceInCalendarDays";
|
|
47
|
+
import "date-fns/endOfToday";
|
|
48
|
+
import "date-fns/endOfYear";
|
|
49
|
+
import "date-fns/startOfYear";
|
|
50
|
+
import "date-fns/subDays";
|
|
51
|
+
import "date-fns/subYears";
|
|
52
|
+
import "@mui/material/ButtonGroup";
|
|
53
|
+
import "@mui/material/Tab";
|
|
54
|
+
import "@mui/material/Tabs";
|
|
55
|
+
import "@mui/material/ToggleButton";
|
|
56
|
+
import "@mui/material/ToggleButtonGroup";
|
|
57
|
+
import "@mui/material/Dialog";
|
|
58
|
+
import "@mui/material/DialogContent";
|
|
59
|
+
import "@mui/material/Card";
|
|
60
|
+
import "@mui/material/CardContent";
|
|
61
|
+
import "@mui/material/CardHeader";
|
|
62
|
+
import "uuid";
|
|
63
|
+
import "@mui/material/CircularProgress";
|
|
64
|
+
import "@mui/material/FormControlLabel";
|
|
65
|
+
import "@mui/material/Radio";
|
|
66
|
+
import "@mui/material/Avatar";
|
|
67
|
+
import "@mui/material/ListItem";
|
|
68
|
+
import "@mui/material/ListItemAvatar";
|
|
69
|
+
import "@mui/material/ListItemButton";
|
|
70
|
+
import "@mui/material/ListItemText";
|
|
71
|
+
import "@mui/material/ListItemIcon";
|
|
72
|
+
import "@mui/material/MenuItem";
|
|
73
|
+
import "@mui/material/TextField";
|
|
74
|
+
import "@mui/material/Switch";
|
|
75
|
+
import "posthog-js";
|
|
76
|
+
import "date-fns/differenceInDays";
|
|
77
|
+
import "@mui/x-data-grid-pro";
|
|
78
|
+
import "date-fns";
|
|
79
|
+
import "@mui/material/Divider";
|
|
80
|
+
import "@mui/material/List";
|
|
81
|
+
import "date-fns/formatISO";
|
|
82
|
+
import "date-fns/isAfter";
|
|
83
|
+
import "date-fns/parseISO";
|
|
84
|
+
import "date-fns/subQuarters";
|
|
85
|
+
import "date-fns/lastDayOfMonth";
|
|
86
|
+
import "date-fns/setDayOfYear";
|
|
87
|
+
import "date-fns/addSeconds";
|
|
88
|
+
import "date-fns/differenceInCalendarMonths";
|
|
89
|
+
import "date-fns/getMonth";
|
|
90
|
+
class m {
|
|
91
|
+
fetchInstance;
|
|
92
|
+
constructor(t, e) {
|
|
93
|
+
this.fetchInstance = new d(t, e);
|
|
94
|
+
}
|
|
95
|
+
addGoal = async (t) => this.fetchInstance.post(r.GOALS, t).then((e) => e.goal);
|
|
96
|
+
addRetirementGoal = async (t) => this.fetchInstance.post(r.RETIREMENT_GOALS, t).then((e) => e.retirement_goal);
|
|
97
|
+
addRetirementGoalAccount = async (t) => this.fetchInstance.post(r.RETIREMENT_GOAL_ACCOUNTS, t).then((e) => e.retirement_goal_account);
|
|
98
|
+
getGoalByGuid = async (t) => this.fetchInstance.get(`${r.GOALS}/${t}`).then((e) => e.goal);
|
|
99
|
+
getGoals = async () => this.fetchInstance.get(r.GOALS).then((t) => t.goals);
|
|
100
|
+
getMonthlyCashFlowProfile = async () => this.fetchInstance.get(r.MONTHLY_CASH_FLOW_PROFILE).then((t) => t.monthly_cash_flow_profile);
|
|
101
|
+
getRetirementGoals = async () => this.fetchInstance.get(r.RETIREMENT_GOALS).then((t) => t.retirement_goals);
|
|
102
|
+
getRetirementGoalAccounts = async () => this.fetchInstance.get(r.RETIREMENT_GOAL_ACCOUNTS).then((t) => t.retirement_goal_accounts);
|
|
103
|
+
removeGoal = async (t) => this.fetchInstance.delete(`${r.GOALS}/${t}`).then((e) => e);
|
|
104
|
+
removeRetirementGoal = async (t) => this.fetchInstance.delete(`${r.RETIREMENT_GOALS}/${t}`).then((e) => e);
|
|
105
|
+
removeRetirementGoalAccount = async (t) => this.fetchInstance.delete(`${r.RETIREMENT_GOAL_ACCOUNTS}/${t}`).then((e) => e);
|
|
106
|
+
reorderGoals = async (t) => this.fetchInstance.post(`${r.GOALS}/reposition`, { goals: t }).then((e) => e.goals);
|
|
107
|
+
updateGoal = async (t) => this.fetchInstance.put(`${r.GOALS}/${t.guid}`, t).then((e) => e.goal);
|
|
108
|
+
updateMonthlyCashFlowProfile = async (t) => this.fetchInstance.put(`${r.MONTHLY_CASH_FLOW_PROFILE}`, t).then((e) => e.monthly_cash_flow_profile);
|
|
109
|
+
updateRetirementGoal = async (t) => this.fetchInstance.put(`${r.RETIREMENT_GOALS}/${t.guid}`, t).then((e) => e.retirement_goal);
|
|
110
|
+
}
|
|
111
|
+
class zt {
|
|
112
|
+
globalStore;
|
|
113
|
+
api = new m("/", "");
|
|
114
|
+
alert = "";
|
|
115
|
+
goals = [];
|
|
116
|
+
retirementGoalAccounts = [];
|
|
117
|
+
newRetirementGoalAccounts = [];
|
|
118
|
+
selectedGoal = void 0;
|
|
119
|
+
monthlyCashFlowProfile = void 0;
|
|
120
|
+
goalsLoaded = !1;
|
|
121
|
+
constructor(t) {
|
|
122
|
+
this.globalStore = t, this.api = new m(t.endpoint, t.sessionToken), h(this);
|
|
123
|
+
}
|
|
124
|
+
get orderedGoals() {
|
|
125
|
+
return this.goals.slice().sort((t, e) => t.position - e.position);
|
|
126
|
+
}
|
|
127
|
+
get debtGoals() {
|
|
128
|
+
return this.orderedGoals.filter((t) => t.track_type === a.DEBT_TRACK);
|
|
129
|
+
}
|
|
130
|
+
get retirmentGoals() {
|
|
131
|
+
return this.orderedGoals.filter((t) => t.track_type === a.RETIREMENT_TRACK);
|
|
132
|
+
}
|
|
133
|
+
get savingGoals() {
|
|
134
|
+
return this.orderedGoals.filter((t) => t.track_type === a.SAVINGS_TRACK);
|
|
135
|
+
}
|
|
136
|
+
get ongoingGoalsForMicroWidget() {
|
|
137
|
+
const t = this.goals.filter(
|
|
138
|
+
(o) => !o.is_complete && o.track_type !== a.EMERGENCY_FUND_TRACK && o.track_type !== null
|
|
139
|
+
), e = [
|
|
140
|
+
a.SAVINGS_TRACK,
|
|
141
|
+
a.DEBT_TRACK,
|
|
142
|
+
a.RETIREMENT_TRACK
|
|
143
|
+
];
|
|
144
|
+
return t.sort((o, i) => {
|
|
145
|
+
const s = o.track_type ? e.indexOf(o.track_type) : -1, c = i.track_type ? e.indexOf(i.track_type) : -1;
|
|
146
|
+
return s - c;
|
|
147
|
+
}).slice(0, 3);
|
|
148
|
+
}
|
|
149
|
+
addGoal = async (t) => {
|
|
150
|
+
try {
|
|
151
|
+
const e = await this.api.addGoal(t);
|
|
152
|
+
n(() => {
|
|
153
|
+
this.goals = [...this.goals, e];
|
|
154
|
+
});
|
|
155
|
+
} catch (e) {
|
|
156
|
+
console.error(`Error occurred while adding goal: ${e}`);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
addRetirementGoal = async (t) => {
|
|
160
|
+
const e = this.globalStore.copyStore.copy.goals;
|
|
161
|
+
try {
|
|
162
|
+
const o = await this.api.addRetirementGoal(t), i = [];
|
|
163
|
+
for (const s of this.newRetirementGoalAccounts) {
|
|
164
|
+
const c = await this.api.addRetirementGoalAccount({
|
|
165
|
+
...s,
|
|
166
|
+
retirement_goal_guid: o.guid
|
|
167
|
+
});
|
|
168
|
+
i.push(c);
|
|
169
|
+
}
|
|
170
|
+
this.setNewRetirementGoalAccounts([]), n(() => {
|
|
171
|
+
this.goals = [
|
|
172
|
+
...this.goals,
|
|
173
|
+
{
|
|
174
|
+
...o,
|
|
175
|
+
amount: o.target_amount,
|
|
176
|
+
name: e.retirement,
|
|
177
|
+
track_type: a.RETIREMENT_TRACK
|
|
178
|
+
}
|
|
179
|
+
], this.retirementGoalAccounts = [...this.retirementGoalAccounts, ...i];
|
|
180
|
+
});
|
|
181
|
+
} catch (o) {
|
|
182
|
+
console.error(`Error occurred while adding retirement goal: ${o}`);
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
addRetirementGoalAccount = async (t) => {
|
|
186
|
+
try {
|
|
187
|
+
const e = await this.api.addRetirementGoalAccount(t);
|
|
188
|
+
n(() => {
|
|
189
|
+
this.retirementGoalAccounts = [...this.retirementGoalAccounts, e];
|
|
190
|
+
});
|
|
191
|
+
} catch (e) {
|
|
192
|
+
console.error(`Error occurred while adding retirement goal account: ${e}`);
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
loadGoals = async () => {
|
|
196
|
+
const t = this.globalStore.copyStore.copy.goals;
|
|
197
|
+
try {
|
|
198
|
+
const e = await this.api.getGoals(), o = await this.api.getRetirementGoals(), i = await this.api.getRetirementGoalAccounts(), s = await this.api.getMonthlyCashFlowProfile(), c = [
|
|
199
|
+
...e,
|
|
200
|
+
...o.map((l) => ({
|
|
201
|
+
...l,
|
|
202
|
+
amount: l.target_amount,
|
|
203
|
+
name: t.retirement,
|
|
204
|
+
track_type: a.RETIREMENT_TRACK
|
|
205
|
+
}))
|
|
206
|
+
];
|
|
207
|
+
n(() => {
|
|
208
|
+
this.goals = c, this.retirementGoalAccounts = i, this.monthlyCashFlowProfile = s, this.goalsLoaded = !0;
|
|
209
|
+
});
|
|
210
|
+
} catch (e) {
|
|
211
|
+
console.error(`Error occured while getting goals: ${e}`);
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
deleteGoal = async (t) => {
|
|
215
|
+
try {
|
|
216
|
+
await this.api.removeGoal(t), n(() => {
|
|
217
|
+
const e = this.goals.findIndex((o) => o.guid === t);
|
|
218
|
+
e >= 0 && this.goals.splice(e, 1);
|
|
219
|
+
});
|
|
220
|
+
} catch (e) {
|
|
221
|
+
console.error(`Error occured while deleting goal: ${e}`);
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
deleteRetirementGoal = async (t) => {
|
|
225
|
+
try {
|
|
226
|
+
const e = this.retirementGoalAccounts.filter(
|
|
227
|
+
(o) => o.retirement_goal_guid === t.guid
|
|
228
|
+
);
|
|
229
|
+
for (const o of e)
|
|
230
|
+
await this.deleteRetirementGoalAccount(o.guid);
|
|
231
|
+
await this.api.removeRetirementGoal(t.guid), n(() => {
|
|
232
|
+
const o = this.goals.findIndex((i) => i.guid === t.guid);
|
|
233
|
+
o >= 0 && this.goals.splice(o, 1);
|
|
234
|
+
});
|
|
235
|
+
} catch (e) {
|
|
236
|
+
console.error(`Error deleting retirement goal: ${e}`);
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
deleteRetirementGoalAccount = async (t) => {
|
|
240
|
+
try {
|
|
241
|
+
await this.api.removeRetirementGoalAccount(t), n(() => {
|
|
242
|
+
const e = this.retirementGoalAccounts.findIndex((o) => o.guid === t);
|
|
243
|
+
e >= 0 && this.retirementGoalAccounts.splice(e, 1);
|
|
244
|
+
});
|
|
245
|
+
} catch (e) {
|
|
246
|
+
console.error(`Error deleting retirement goal account: ${e}`);
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
reorderGoals = async (t) => {
|
|
250
|
+
try {
|
|
251
|
+
const e = await this.api.reorderGoals(t);
|
|
252
|
+
n(() => {
|
|
253
|
+
for (const o of e) {
|
|
254
|
+
const i = this.goals.findIndex((s) => s.guid === o.guid);
|
|
255
|
+
i >= 0 && (this.goals[i].position = o.position);
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
} catch (e) {
|
|
259
|
+
console.error(`Error reordering goals: ${e}`);
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
setAlert = (t) => this.alert = t;
|
|
263
|
+
setNewRetirementGoalAccounts = (t) => {
|
|
264
|
+
this.newRetirementGoalAccounts = t;
|
|
265
|
+
};
|
|
266
|
+
setSelectedGoal = (t) => this.selectedGoal = t;
|
|
267
|
+
updateGoal = async (t) => {
|
|
268
|
+
try {
|
|
269
|
+
const e = await this.api.updateGoal(t);
|
|
270
|
+
n(() => {
|
|
271
|
+
const o = this.goals.findIndex((i) => i.guid === t.guid);
|
|
272
|
+
o >= 0 && (this.goals[o] = e), this.selectedGoal?.guid === t.guid && this.setSelectedGoal(e);
|
|
273
|
+
});
|
|
274
|
+
} catch (e) {
|
|
275
|
+
console.error(`Error occurred while updating goal: ${e}`);
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
updateMonthlyCashFlowProfile = async (t) => {
|
|
279
|
+
try {
|
|
280
|
+
const e = await this.api.updateMonthlyCashFlowProfile(t);
|
|
281
|
+
n(() => {
|
|
282
|
+
this.monthlyCashFlowProfile = e;
|
|
283
|
+
});
|
|
284
|
+
} catch (e) {
|
|
285
|
+
console.error(`Error occurred while updating monthly Cash Flow profile: ${e}`);
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
export {
|
|
290
|
+
m as G,
|
|
291
|
+
zt as a
|
|
292
|
+
};
|
|
293
|
+
//# sourceMappingURL=GoalStore-o2waGeyf.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GoalStore-o2waGeyf.mjs","sources":["../src/goals/api/GoalApi.ts","../src/goals/stores/GoalStore.ts"],"sourcesContent":["import {\n ApiEndpoints,\n Fetch,\n Goal,\n MonthlyCashFlowProfile,\n RetirementGoalAccount,\n} from '../../common'\n\nexport class GoalApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string) {\n this.fetchInstance = new Fetch(endpoint, token)\n }\n\n addGoal = async (goal: Goal) => {\n return this.fetchInstance.post(ApiEndpoints.GOALS, goal).then((data) => data.goal)\n }\n\n addRetirementGoal = async (goal: Goal) => {\n return this.fetchInstance\n .post(ApiEndpoints.RETIREMENT_GOALS, goal)\n .then((data) => data.retirement_goal)\n }\n\n addRetirementGoalAccount = async (retirementAccount: RetirementGoalAccount) => {\n return this.fetchInstance\n .post(ApiEndpoints.RETIREMENT_GOAL_ACCOUNTS, retirementAccount)\n .then((data) => data.retirement_goal_account)\n }\n\n getGoalByGuid = async (guid: string) => {\n return this.fetchInstance.get(`${ApiEndpoints.GOALS}/${guid}`).then((data) => data.goal)\n }\n\n getGoals = async () => {\n return this.fetchInstance.get(ApiEndpoints.GOALS).then((data) => data.goals)\n }\n\n getMonthlyCashFlowProfile = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.MONTHLY_CASH_FLOW_PROFILE)\n .then((data) => data.monthly_cash_flow_profile)\n }\n\n getRetirementGoals = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.RETIREMENT_GOALS)\n .then((data) => data.retirement_goals)\n }\n\n getRetirementGoalAccounts = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.RETIREMENT_GOAL_ACCOUNTS)\n .then((data) => data.retirement_goal_accounts)\n }\n\n removeGoal = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.GOALS}/${guid}`).then((data) => data)\n }\n\n removeRetirementGoal = async (guid: string) => {\n return this.fetchInstance\n .delete(`${ApiEndpoints.RETIREMENT_GOALS}/${guid}`)\n .then((data) => data)\n }\n\n removeRetirementGoalAccount = async (guid: string) => {\n return this.fetchInstance\n .delete(`${ApiEndpoints.RETIREMENT_GOAL_ACCOUNTS}/${guid}`)\n .then((data) => data)\n }\n\n reorderGoals = async (goals: Goal[]) => {\n return this.fetchInstance\n .post(`${ApiEndpoints.GOALS}/reposition`, { goals: goals })\n .then((data) => data.goals)\n }\n\n updateGoal = async (goal: Goal) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.GOALS}/${goal.guid}`, goal)\n .then((data) => data.goal)\n }\n\n updateMonthlyCashFlowProfile = async (profile: MonthlyCashFlowProfile) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.MONTHLY_CASH_FLOW_PROFILE}`, profile)\n .then((data) => data.monthly_cash_flow_profile)\n }\n\n updateRetirementGoal = async (goal: Goal) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.RETIREMENT_GOALS}/${goal.guid}`, goal)\n .then((data) => data.retirement_goal)\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { GoalApi } from '../api/GoalApi'\n\nimport {\n type Goal,\n type MonthlyCashFlowProfile,\n type RetirementGoalAccount,\n GlobalStore,\n TrackType,\n} from '../../common'\n\nexport class GoalStore {\n globalStore: GlobalStore\n api = new GoalApi('/', '')\n\n alert: string = ''\n goals: Goal[] = []\n retirementGoalAccounts: RetirementGoalAccount[] = []\n newRetirementGoalAccounts: RetirementGoalAccount[] = []\n selectedGoal: Goal | undefined = undefined\n monthlyCashFlowProfile: MonthlyCashFlowProfile | undefined = undefined\n goalsLoaded = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new GoalApi(globalStore.endpoint, globalStore.sessionToken)\n\n makeAutoObservable(this)\n }\n\n get orderedGoals(): Goal[] {\n return this.goals.slice().sort((a, b) => a.position - b.position)\n }\n\n get debtGoals() {\n return this.orderedGoals.filter((goal) => goal.track_type === TrackType.DEBT_TRACK)\n }\n\n get retirmentGoals() {\n return this.orderedGoals.filter((goal) => goal.track_type === TrackType.RETIREMENT_TRACK)\n }\n\n get savingGoals() {\n return this.orderedGoals.filter((goal) => goal.track_type === TrackType.SAVINGS_TRACK)\n }\n\n get ongoingGoalsForMicroWidget() {\n const ongoingGoals = this.goals.filter(\n (goal) =>\n !goal.is_complete &&\n goal.track_type !== TrackType.EMERGENCY_FUND_TRACK &&\n goal.track_type !== null,\n )\n const priorityOrder = [\n TrackType.SAVINGS_TRACK,\n TrackType.DEBT_TRACK,\n TrackType.RETIREMENT_TRACK,\n ]\n return ongoingGoals\n .sort((a, b) => {\n const aIndex = a.track_type ? priorityOrder.indexOf(a.track_type) : -1\n const bIndex = b.track_type ? priorityOrder.indexOf(b.track_type) : -1\n return aIndex - bIndex\n })\n .slice(0, 3)\n }\n\n addGoal = async (goal: Goal) => {\n try {\n const newGoal = await this.api.addGoal(goal)\n\n runInAction(() => {\n this.goals = [...this.goals, newGoal]\n })\n } catch (error) {\n console.error(`Error occurred while adding goal: ${error}`)\n }\n }\n\n addRetirementGoal = async (goal: Goal) => {\n const goalsCopy = this.globalStore.copyStore.copy.goals\n try {\n const newGoal: Goal = await this.api.addRetirementGoal(goal)\n const newAccounts = [] as RetirementGoalAccount[]\n for (const account of this.newRetirementGoalAccounts) {\n const newAccount = await this.api.addRetirementGoalAccount({\n ...account,\n retirement_goal_guid: newGoal.guid,\n })\n newAccounts.push(newAccount)\n }\n this.setNewRetirementGoalAccounts([])\n\n runInAction(() => {\n this.goals = [\n ...this.goals,\n {\n ...newGoal,\n amount: newGoal.target_amount,\n name: goalsCopy.retirement,\n track_type: TrackType.RETIREMENT_TRACK,\n } as Goal,\n ]\n this.retirementGoalAccounts = [...this.retirementGoalAccounts, ...newAccounts]\n })\n } catch (error) {\n console.error(`Error occurred while adding retirement goal: ${error}`)\n }\n }\n\n addRetirementGoalAccount = async (account: RetirementGoalAccount) => {\n try {\n const newAccount = await this.api.addRetirementGoalAccount(account)\n\n runInAction(() => {\n this.retirementGoalAccounts = [...this.retirementGoalAccounts, newAccount]\n })\n } catch (error) {\n console.error(`Error occurred while adding retirement goal account: ${error}`)\n }\n }\n\n loadGoals = async () => {\n const goalsCopy = this.globalStore.copyStore.copy.goals\n\n try {\n const goals = await this.api.getGoals()\n const retirementGoals = await this.api.getRetirementGoals()\n const retirementGoalAccounts = await this.api.getRetirementGoalAccounts()\n const monthlyCashFlowProfile = await this.api.getMonthlyCashFlowProfile()\n\n const allGoals = [\n ...goals,\n ...retirementGoals.map((goal: Goal) => ({\n ...goal,\n amount: goal.target_amount,\n name: goalsCopy.retirement,\n track_type: TrackType.RETIREMENT_TRACK,\n })),\n ]\n\n runInAction(() => {\n this.goals = allGoals\n this.retirementGoalAccounts = retirementGoalAccounts\n this.monthlyCashFlowProfile = monthlyCashFlowProfile\n this.goalsLoaded = true\n })\n } catch (error) {\n console.error(`Error occured while getting goals: ${error}`)\n }\n }\n\n deleteGoal = async (guid: string) => {\n try {\n await this.api.removeGoal(guid)\n\n runInAction(() => {\n const index = this.goals.findIndex((g) => g.guid === guid)\n if (index >= 0) {\n this.goals.splice(index, 1)\n }\n })\n } catch (error) {\n console.error(`Error occured while deleting goal: ${error}`)\n }\n }\n\n deleteRetirementGoal = async (goal: Goal) => {\n try {\n const accounts = this.retirementGoalAccounts.filter(\n (g) => g.retirement_goal_guid === goal.guid,\n )\n for (const account of accounts) {\n await this.deleteRetirementGoalAccount(account.guid)\n }\n await this.api.removeRetirementGoal(goal.guid)\n\n runInAction(() => {\n const index = this.goals.findIndex((g) => g.guid === goal.guid)\n if (index >= 0) {\n this.goals.splice(index, 1)\n }\n })\n } catch (error) {\n console.error(`Error deleting retirement goal: ${error}`)\n }\n }\n\n deleteRetirementGoalAccount = async (guid: string) => {\n try {\n await this.api.removeRetirementGoalAccount(guid)\n\n runInAction(() => {\n const index = this.retirementGoalAccounts.findIndex((rga) => rga.guid === guid)\n if (index >= 0) {\n this.retirementGoalAccounts.splice(index, 1)\n }\n })\n } catch (error) {\n console.error(`Error deleting retirement goal account: ${error}`)\n }\n }\n\n reorderGoals = async (goals: Goal[]) => {\n try {\n const reordered = (await this.api.reorderGoals(goals)) as Goal[]\n\n runInAction(() => {\n for (const goal of reordered) {\n const index = this.goals.findIndex((g) => g.guid === goal.guid)\n if (index >= 0) {\n this.goals[index].position = goal.position\n }\n }\n })\n } catch (error) {\n console.error(`Error reordering goals: ${error}`)\n }\n }\n\n setAlert = (alert: string) => (this.alert = alert)\n\n setNewRetirementGoalAccounts = (accounts: RetirementGoalAccount[]) => {\n this.newRetirementGoalAccounts = accounts\n }\n\n setSelectedGoal = (goal: Goal | undefined) => (this.selectedGoal = goal)\n\n updateGoal = async (goal: Goal) => {\n try {\n const updatedGoal = await this.api.updateGoal(goal)\n\n runInAction(() => {\n const index = this.goals.findIndex((g) => g.guid === goal.guid)\n if (index >= 0) {\n this.goals[index] = updatedGoal\n }\n if (this.selectedGoal?.guid === goal.guid) {\n this.setSelectedGoal(updatedGoal)\n }\n })\n } catch (error) {\n console.error(`Error occurred while updating goal: ${error}`)\n }\n }\n\n updateMonthlyCashFlowProfile = async (profile: MonthlyCashFlowProfile) => {\n try {\n const updatedProfile = await this.api.updateMonthlyCashFlowProfile(profile)\n\n runInAction(() => {\n this.monthlyCashFlowProfile = updatedProfile\n })\n } catch (error) {\n console.error(`Error occurred while updating monthly Cash Flow profile: ${error}`)\n }\n }\n}\n"],"names":["GoalApi","endpoint","token","Fetch","goal","ApiEndpoints","data","retirementAccount","guid","goals","profile","GoalStore","globalStore","makeAutoObservable","a","b","TrackType","ongoingGoals","priorityOrder","aIndex","bIndex","newGoal","runInAction","error","goalsCopy","newAccounts","account","newAccount","retirementGoals","retirementGoalAccounts","monthlyCashFlowProfile","allGoals","index","g","accounts","rga","reordered","alert","updatedGoal","updatedProfile"],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import a from "react";
|
|
2
|
+
import { jsx as n, jsxs as m } from "react/jsx-runtime";
|
|
3
|
+
import C from "@mui/material/Button";
|
|
4
|
+
import x from "@mui/material/Card";
|
|
5
|
+
import v from "@mui/material/CardHeader";
|
|
6
|
+
import w from "@mui/material/CardContent";
|
|
7
|
+
import D from "@mui/material/IconButton";
|
|
8
|
+
import { Icon as G, ChevronRight as T } from "@mxenabled/mx-icons";
|
|
9
|
+
import { Text as f, H3 as W, useTokens as y } from "@mxenabled/mxui";
|
|
10
|
+
import E from "@mui/material/CircularProgress";
|
|
11
|
+
import R from "@mui/material/Stack";
|
|
12
|
+
const p = a.createContext(null), $ = ({
|
|
13
|
+
children: o,
|
|
14
|
+
globalStore: t,
|
|
15
|
+
onEvent: s,
|
|
16
|
+
onPageView: r
|
|
17
|
+
}) => /* @__PURE__ */ n(
|
|
18
|
+
p.Provider,
|
|
19
|
+
{
|
|
20
|
+
value: {
|
|
21
|
+
globalStore: t,
|
|
22
|
+
onEvent: s,
|
|
23
|
+
onPageView: r,
|
|
24
|
+
children: o
|
|
25
|
+
},
|
|
26
|
+
children: o
|
|
27
|
+
}
|
|
28
|
+
), h = a.createContext(null), P = ({ children: o, availableHeight: t, availableWidth: s }) => /* @__PURE__ */ n(
|
|
29
|
+
h.Provider,
|
|
30
|
+
{
|
|
31
|
+
value: {
|
|
32
|
+
availableHeight: t,
|
|
33
|
+
availableWidth: s,
|
|
34
|
+
children: o
|
|
35
|
+
},
|
|
36
|
+
children: o
|
|
37
|
+
}
|
|
38
|
+
), e = (o = "useGlobalStore") => {
|
|
39
|
+
const t = a.useContext(p);
|
|
40
|
+
if (!t)
|
|
41
|
+
throw new Error(`${o}() must be used within the GlobalDataContext`);
|
|
42
|
+
return t;
|
|
43
|
+
}, q = () => e("useAccountStore").globalStore.accountStore, X = () => e("useAppConfig").globalStore.appDataStore.appConfig, _ = () => e("useAnalyticsStore").globalStore.analyticsStore, J = () => e("useBudgetsStore").globalStore.budgetsStore, K = () => e("useCashflowStore").globalStore.cashflowStore, Q = () => e("useCategoryStore").globalStore.categoryStore, Y = () => e("useConnectStore").globalStore.connectStore, Z = () => e("useDebtsStore").globalStore.debtsStore, ee = () => e("useFinstrongStore").globalStore.finstrongStore, te = () => e("useGlobalStore").globalStore, oe = () => e("useGlobalUiStore").globalStore.globalUiStore, re = () => e("globalCopyStore").globalStore.copyStore.copy, se = () => e("useGoalStore").globalStore.goalStore, ne = () => e("useHelpStore").globalStore.helpStore, ae = () => e("useHoldingStore").globalStore.holdingStore, ie = () => e("useMerchantStore").globalStore.merchantStore, le = () => e("useNetWorthStore").globalStore.netWorthStore, ce = () => e("useNotificationStore").globalStore.notificationStore, ue = () => e("useRecurringTransactionsStore").globalStore.recurringTransactionsStore, Se = () => e("useSettingsStore").globalStore.settingsStore, ge = () => e("useTransactionStore").globalStore.transactionStore, be = () => e("useTrendsStore").globalStore.trendsStore, de = () => e("useUserStore").globalStore.userStore, me = () => ({ onEvent: e().onEvent }), fe = () => ({ onPageView: e().onPageView }), k = (o = "useWidgetContainerContext") => {
|
|
44
|
+
const t = a.useContext(h);
|
|
45
|
+
if (!t)
|
|
46
|
+
throw new Error(`${o}() must be used within the WidgetContainerContext`);
|
|
47
|
+
return t;
|
|
48
|
+
}, pe = () => k(), z = (o, t) => a.useMemo(() => {
|
|
49
|
+
let s = null;
|
|
50
|
+
return (...r) => {
|
|
51
|
+
s && clearTimeout(s), s = setTimeout(() => {
|
|
52
|
+
o(...r);
|
|
53
|
+
}, t);
|
|
54
|
+
};
|
|
55
|
+
}, [o, t]);
|
|
56
|
+
function A(o = 100) {
|
|
57
|
+
const [t, s] = a.useState({
|
|
58
|
+
width: 0,
|
|
59
|
+
height: 0
|
|
60
|
+
}), r = a.useRef(null), c = a.useRef(t), S = z((l, i) => {
|
|
61
|
+
(l !== c.current.width || i !== c.current.height) && (s({ width: l, height: i }), c.current = { width: l, height: i });
|
|
62
|
+
}, o), g = a.useCallback(
|
|
63
|
+
(l) => {
|
|
64
|
+
if (r.current && (r.current.disconnect(), r.current = null), l?.nodeType === Node.ELEMENT_NODE) {
|
|
65
|
+
const i = new ResizeObserver(([u]) => {
|
|
66
|
+
if (u && u.borderBoxSize) {
|
|
67
|
+
const { inlineSize: b, blockSize: d } = u.borderBoxSize[0];
|
|
68
|
+
S(b, d);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
i.observe(l), r.current = i;
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
[S]
|
|
75
|
+
);
|
|
76
|
+
return a.useEffect(() => () => {
|
|
77
|
+
r.current && r.current.disconnect();
|
|
78
|
+
}, []), [g, t];
|
|
79
|
+
}
|
|
80
|
+
const he = ({
|
|
81
|
+
className: o = "mx-cmn-mini-widget",
|
|
82
|
+
closeLabel: t,
|
|
83
|
+
children: s,
|
|
84
|
+
onClose: r,
|
|
85
|
+
onPrimaryCtaClick: c,
|
|
86
|
+
primaryCtaLabel: S = "",
|
|
87
|
+
subTitle: g = "",
|
|
88
|
+
sx: l = {},
|
|
89
|
+
title: i = ""
|
|
90
|
+
}) => {
|
|
91
|
+
const [u, { height: b, width: d }] = A();
|
|
92
|
+
return /* @__PURE__ */ m(x, { className: o, sx: { ...l }, children: [
|
|
93
|
+
/* @__PURE__ */ n(
|
|
94
|
+
v,
|
|
95
|
+
{
|
|
96
|
+
action: r ? /* @__PURE__ */ n(D, { "aria-label": t, onClick: r, children: /* @__PURE__ */ n(G, { name: "close", size: 24 }) }) : c && /* @__PURE__ */ n(C, { endIcon: /* @__PURE__ */ n(T, {}), onClick: c, children: /* @__PURE__ */ n(f, { bold: !0, variant: "Small", children: S }) }),
|
|
97
|
+
subheader: g || null,
|
|
98
|
+
subheaderTypographyProps: { variant: "Small" },
|
|
99
|
+
sx: { pb: 4 },
|
|
100
|
+
title: i ? /* @__PURE__ */ n(W, { sx: { pb: 4 }, children: i }) : null
|
|
101
|
+
}
|
|
102
|
+
),
|
|
103
|
+
/* @__PURE__ */ n(w, { ref: u, sx: { p: 0 }, children: /* @__PURE__ */ n(P, { availableHeight: b, availableWidth: d, children: s }) })
|
|
104
|
+
] });
|
|
105
|
+
}, Ce = ({ height: o = 250, label: t = "", size: s = 32 }) => {
|
|
106
|
+
const r = y();
|
|
107
|
+
return /* @__PURE__ */ m(R, { alignItems: "center", gap: r.Spacing.XLarge, height: o, justifyContent: "center", children: [
|
|
108
|
+
/* @__PURE__ */ n(E, { size: s }),
|
|
109
|
+
t && /* @__PURE__ */ n(f, { children: t })
|
|
110
|
+
] });
|
|
111
|
+
};
|
|
112
|
+
export {
|
|
113
|
+
P as A,
|
|
114
|
+
A as B,
|
|
115
|
+
Y as C,
|
|
116
|
+
p as G,
|
|
117
|
+
Ce as L,
|
|
118
|
+
he as M,
|
|
119
|
+
h as W,
|
|
120
|
+
_ as a,
|
|
121
|
+
re as b,
|
|
122
|
+
me as c,
|
|
123
|
+
oe as d,
|
|
124
|
+
te as e,
|
|
125
|
+
q as f,
|
|
126
|
+
X as g,
|
|
127
|
+
Q as h,
|
|
128
|
+
ge as i,
|
|
129
|
+
ae as j,
|
|
130
|
+
pe as k,
|
|
131
|
+
ue as l,
|
|
132
|
+
K as m,
|
|
133
|
+
Z as n,
|
|
134
|
+
ee as o,
|
|
135
|
+
se as p,
|
|
136
|
+
ne as q,
|
|
137
|
+
ie as r,
|
|
138
|
+
le as s,
|
|
139
|
+
ce as t,
|
|
140
|
+
J as u,
|
|
141
|
+
fe as v,
|
|
142
|
+
Se as w,
|
|
143
|
+
be as x,
|
|
144
|
+
de as y,
|
|
145
|
+
$ as z
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=Loader-CwdK8lfx.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loader-CwdK8lfx.mjs","sources":["../src/common/context/GlobalDataProvider.tsx","../src/common/context/WidgetContainerProvider.tsx","../src/common/context/hooks.tsx","../src/common/hooks/useDimensions.tsx","../src/common/components/MiniWidgetContainer.tsx","../src/common/components/Loader.tsx"],"sourcesContent":["import React from 'react'\n\nimport { GlobalStore } from '..'\n\nexport interface GlobalStoreContextTypes {\n children: React.ReactNode\n onEvent: (event: string, props?: object) => void\n onPageView: (pageViewEvent: string) => void\n globalStore: GlobalStore\n}\nexport const GlobalDataContext = React.createContext<GlobalStoreContextTypes | null>(null)\n\nexport const GlobalDataProvider: React.FC<React.PropsWithChildren<GlobalStoreContextTypes>> = ({\n children,\n globalStore,\n onEvent,\n onPageView,\n}) => {\n return (\n <GlobalDataContext.Provider\n value={{\n globalStore,\n onEvent,\n onPageView,\n children,\n }}\n >\n {children}\n </GlobalDataContext.Provider>\n )\n}\n","import React from 'react'\n\nexport interface WidgetContainerContextTypes {\n children: React.ReactNode\n availableHeight: number\n availableWidth: number\n}\nexport const WidgetContainerContext = React.createContext<WidgetContainerContextTypes | null>(null)\n\nexport const WidgetContainerProvider: React.FC<\n React.PropsWithChildren<WidgetContainerContextTypes>\n> = ({ children, availableHeight, availableWidth }) => {\n return (\n <WidgetContainerContext.Provider\n value={{\n availableHeight,\n availableWidth,\n children,\n }}\n >\n {children}\n </WidgetContainerContext.Provider>\n )\n}\n","import React from 'react'\nimport { GlobalDataContext } from './GlobalDataProvider'\nimport { WidgetContainerContext } from './WidgetContainerProvider'\n\nexport const useGlobalDataContext = (providerName = 'useGlobalStore') => {\n const context = React.useContext(GlobalDataContext)\n\n if (!context) {\n throw new Error(`${providerName}() must be used within the GlobalDataContext`)\n }\n return context\n}\n\nexport const useAccountStore = () =>\n useGlobalDataContext('useAccountStore').globalStore.accountStore\nexport const useAppConfig = () =>\n useGlobalDataContext('useAppConfig').globalStore.appDataStore.appConfig\nexport const useAnalyticsStore = () =>\n useGlobalDataContext('useAnalyticsStore').globalStore.analyticsStore\nexport const useBudgetsStore = () =>\n useGlobalDataContext('useBudgetsStore').globalStore.budgetsStore\nexport const useCashflowStore = () =>\n useGlobalDataContext('useCashflowStore').globalStore.cashflowStore\nexport const useCategoryStore = () =>\n useGlobalDataContext('useCategoryStore').globalStore.categoryStore\nexport const useConnectStore = () =>\n useGlobalDataContext('useConnectStore').globalStore.connectStore\nexport const useDebtStore = () => useGlobalDataContext('useDebtsStore').globalStore.debtsStore\nexport const useFinstrongStore = () =>\n useGlobalDataContext('useFinstrongStore').globalStore.finstrongStore\nexport const useGlobalStore = () => useGlobalDataContext('useGlobalStore').globalStore\nexport const useGlobalUiStore = () =>\n useGlobalDataContext('useGlobalUiStore').globalStore.globalUiStore\nexport const useGlobalCopyStore = () =>\n useGlobalDataContext('globalCopyStore').globalStore.copyStore.copy\nexport const useGoalStore = () => useGlobalDataContext('useGoalStore').globalStore.goalStore\nexport const useHelpStore = () => useGlobalDataContext('useHelpStore').globalStore.helpStore\nexport const useHoldingStore = () =>\n useGlobalDataContext('useHoldingStore').globalStore.holdingStore\nexport const useMerchantStore = () =>\n useGlobalDataContext('useMerchantStore').globalStore.merchantStore\nexport const useNetWorthStore = () =>\n useGlobalDataContext('useNetWorthStore').globalStore.netWorthStore\nexport const useNotificationStore = () =>\n useGlobalDataContext('useNotificationStore').globalStore.notificationStore\nexport const useRecurringTransactionsStore = () =>\n useGlobalDataContext('useRecurringTransactionsStore').globalStore.recurringTransactionsStore\nexport const useSettingsStore = () =>\n useGlobalDataContext('useSettingsStore').globalStore.settingsStore\nexport const useTransactionStore = () =>\n useGlobalDataContext('useTransactionStore').globalStore.transactionStore\nexport const useTrendsStore = () => useGlobalDataContext('useTrendsStore').globalStore.trendsStore\nexport const useUserStore = () => useGlobalDataContext('useUserStore').globalStore.userStore\n\nexport const useEvent = () => ({ onEvent: useGlobalDataContext().onEvent })\nexport const usePageView = () => ({ onPageView: useGlobalDataContext().onPageView })\n\nexport const useWidgetContainerContext = (providerName = 'useWidgetContainerContext') => {\n const context = React.useContext(WidgetContainerContext)\n\n if (!context) {\n throw new Error(`${providerName}() must be used within the WidgetContainerContext`)\n }\n\n return context\n}\n\nexport const useWidgetContainerProvider = () => useWidgetContainerContext()\n","// Based off the useMeasure hook from useHooks.com/usemeasure(ui.dev). Converted to typescript and added a debounce. https://github.com/uidotdev/usehooks/blob/main/index.js\n\nimport React from 'react'\n\ntype Dimensions = {\n width: number\n height: number\n}\n\n// Memoized debounce function\nconst useDebounce = <T extends (...args: any[]) => void>(func: T, delay: number) => {\n return React.useMemo(() => {\n let timeoutId: NodeJS.Timeout | null = null\n return (...args: Parameters<T>) => {\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n timeoutId = setTimeout(() => {\n func(...args)\n }, delay)\n }\n }, [func, delay])\n}\n\nexport function useDimensions(\n debounceDelay: number = 100,\n): [React.RefCallback<HTMLElement>, Dimensions] {\n const [dimensions, setDimensions] = React.useState<Dimensions>({\n width: 0,\n height: 0,\n })\n\n const observerRef = React.useRef<ResizeObserver | null>(null)\n const previousDimensions = React.useRef<Dimensions>(dimensions)\n\n const debouncedSetDimensions = useDebounce((width: number, height: number) => {\n if (\n width !== previousDimensions.current.width ||\n height !== previousDimensions.current.height\n ) {\n setDimensions({ width, height })\n previousDimensions.current = { width, height }\n }\n }, debounceDelay)\n\n const customRef = React.useCallback(\n (node: HTMLElement | null) => {\n if (observerRef.current) {\n observerRef.current.disconnect()\n observerRef.current = null\n }\n\n if (node?.nodeType === Node.ELEMENT_NODE) {\n const observer = new ResizeObserver(([entry]) => {\n if (entry && entry.borderBoxSize) {\n const { inlineSize: width, blockSize: height } = entry.borderBoxSize[0]\n debouncedSetDimensions(width, height)\n }\n })\n\n observer.observe(node)\n observerRef.current = observer\n }\n },\n [debouncedSetDimensions],\n )\n\n // Add cleanup effect\n React.useEffect(() => {\n return () => {\n if (observerRef.current) {\n observerRef.current.disconnect()\n }\n }\n }, [])\n\n return [customRef, dimensions]\n}\n","import React from 'react'\n\nimport Button from '@mui/material/Button'\nimport Card from '@mui/material/Card'\nimport CardHeader from '@mui/material/CardHeader'\nimport CardContent from '@mui/material/CardContent'\nimport IconButton from '@mui/material/IconButton'\nimport type { SxProps } from '@mui/material/styles'\n\nimport { Icon } from '@mxenabled/mx-icons'\nimport { ChevronRight } from '@mxenabled/mx-icons'\n\nimport { H3, Text } from '@mxenabled/mxui'\n\nimport { WidgetContainerProvider } from '../context'\nimport { useDimensions } from '../hooks/useDimensions'\n\ninterface CardContainerProps {\n className?: string\n closeLabel?: string\n onClose?: () => void\n onPrimaryCtaClick?: () => void\n primaryCtaLabel?: string\n subTitle?: string\n sx?: SxProps\n title?: string\n}\n\nconst MiniWidgetContainer: React.FC<React.PropsWithChildren<CardContainerProps>> = ({\n className = 'mx-cmn-mini-widget',\n closeLabel,\n children,\n onClose,\n onPrimaryCtaClick,\n primaryCtaLabel = '',\n subTitle = '',\n sx = {},\n title = '',\n}) => {\n const [containerRef, { height, width }] = useDimensions()\n\n return (\n <Card className={className} sx={{ ...sx }}>\n <CardHeader\n action={\n onClose ? (\n <IconButton aria-label={closeLabel} onClick={onClose}>\n <Icon name=\"close\" size={24} />\n </IconButton>\n ) : (\n onPrimaryCtaClick && (\n <Button endIcon={<ChevronRight />} onClick={onPrimaryCtaClick}>\n <Text bold={true} variant=\"Small\">\n {primaryCtaLabel}\n </Text>\n </Button>\n )\n )\n }\n subheader={subTitle ? subTitle : null}\n subheaderTypographyProps={{ variant: 'Small' }}\n sx={{ pb: 4 }}\n title={title ? <H3 sx={{ pb: 4 }}>{title}</H3> : null}\n />\n\n <CardContent ref={containerRef} sx={{ p: 0 }}>\n <WidgetContainerProvider availableHeight={height} availableWidth={width}>\n {children}\n </WidgetContainerProvider>\n </CardContent>\n </Card>\n )\n}\n\nexport default MiniWidgetContainer\n","import React from 'react'\n\nimport CircularProgress from '@mui/material/CircularProgress'\nimport Stack from '@mui/material/Stack'\n\nimport { Text, useTokens } from '@mxenabled/mxui'\n\ninterface LoaderProps {\n height?: number\n label?: string\n size?: number\n}\n\nconst Loader: React.FC<LoaderProps> = ({ height = 250, label = '', size = 32 }) => {\n const tokens = useTokens()\n\n return (\n <Stack alignItems=\"center\" gap={tokens.Spacing.XLarge} height={height} justifyContent=\"center\">\n <CircularProgress size={size} />\n {label && <Text>{label}</Text>}\n </Stack>\n )\n}\n\nexport default Loader\n"],"names":["GlobalDataContext","React","GlobalDataProvider","children","globalStore","onEvent","onPageView","jsx","WidgetContainerContext","WidgetContainerProvider","availableHeight","availableWidth","useGlobalDataContext","providerName","context","useAccountStore","useAppConfig","useAnalyticsStore","useBudgetsStore","useCashflowStore","useCategoryStore","useConnectStore","useDebtStore","useFinstrongStore","useGlobalStore","useGlobalUiStore","useGlobalCopyStore","useGoalStore","useHelpStore","useHoldingStore","useMerchantStore","useNetWorthStore","useNotificationStore","useRecurringTransactionsStore","useSettingsStore","useTransactionStore","useTrendsStore","useUserStore","useEvent","usePageView","useWidgetContainerContext","useWidgetContainerProvider","useDebounce","func","delay","timeoutId","args","useDimensions","debounceDelay","dimensions","setDimensions","observerRef","previousDimensions","debouncedSetDimensions","width","height","customRef","node","observer","entry","MiniWidgetContainer","className","closeLabel","onClose","onPrimaryCtaClick","primaryCtaLabel","subTitle","sx","title","containerRef","Card","CardHeader","IconButton","Icon","Button","ChevronRight","Text","H3","CardContent","Loader","label","size","tokens","useTokens","jsxs","Stack","CircularProgress"],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { makeAutoObservable as c, runInAction as m } from "mobx";
|
|
2
|
+
import "bowser";
|
|
3
|
+
import "date-fns/getUnixTime";
|
|
4
|
+
import { ae as h, af as p } from "./ConnectMiniWidget-CQWafYtQ.mjs";
|
|
5
|
+
import "date-fns/intlFormat";
|
|
6
|
+
import "date-fns/addMonths";
|
|
7
|
+
import "date-fns/addQuarters";
|
|
8
|
+
import "date-fns/addWeeks";
|
|
9
|
+
import "date-fns/addYears";
|
|
10
|
+
import "date-fns/getDay";
|
|
11
|
+
import "date-fns/isBefore";
|
|
12
|
+
import "date-fns/nextDay";
|
|
13
|
+
import "date-fns/setDate";
|
|
14
|
+
import "date-fns/startOfToday";
|
|
15
|
+
import "date-fns/fromUnixTime";
|
|
16
|
+
import "react";
|
|
17
|
+
import "numeral";
|
|
18
|
+
import "@mui/material";
|
|
19
|
+
import "react/jsx-runtime";
|
|
20
|
+
import "@mui/material/Button";
|
|
21
|
+
import "@mxenabled/mxui";
|
|
22
|
+
import "@mui/material/Tooltip";
|
|
23
|
+
import "@mui/material/Box";
|
|
24
|
+
import "@mui/material/IconButton";
|
|
25
|
+
import "./Loader-CwdK8lfx.mjs";
|
|
26
|
+
import "@mui/material/styles/useTheme";
|
|
27
|
+
import "@mui/material/useMediaQuery";
|
|
28
|
+
import "@mxenabled/cssinjs";
|
|
29
|
+
import "date-fns/addDays";
|
|
30
|
+
import "date-fns/eachDayOfInterval";
|
|
31
|
+
import "date-fns/eachWeekOfInterval";
|
|
32
|
+
import "date-fns/endOfMonth";
|
|
33
|
+
import "date-fns/format";
|
|
34
|
+
import "date-fns/isSameMonth";
|
|
35
|
+
import "date-fns/startOfMonth";
|
|
36
|
+
import "date-fns/subMonths";
|
|
37
|
+
import "@mui/material/Paper";
|
|
38
|
+
import "@mxenabled/mx-icons";
|
|
39
|
+
import "date-fns/isSameDay";
|
|
40
|
+
import "date-fns/isWithinInterval";
|
|
41
|
+
import "d3";
|
|
42
|
+
import "@mui/material/styles";
|
|
43
|
+
import "@mui/x-charts";
|
|
44
|
+
import "@mui/x-charts/ChartsTooltip";
|
|
45
|
+
import "@mui/material/Stack";
|
|
46
|
+
import "date-fns/differenceInCalendarDays";
|
|
47
|
+
import "date-fns/endOfToday";
|
|
48
|
+
import "date-fns/endOfYear";
|
|
49
|
+
import "date-fns/startOfYear";
|
|
50
|
+
import "date-fns/subDays";
|
|
51
|
+
import "date-fns/subYears";
|
|
52
|
+
import "@mui/material/ButtonGroup";
|
|
53
|
+
import "@mui/material/Tab";
|
|
54
|
+
import "@mui/material/Tabs";
|
|
55
|
+
import "@mui/material/ToggleButton";
|
|
56
|
+
import "@mui/material/ToggleButtonGroup";
|
|
57
|
+
import "@mui/material/Dialog";
|
|
58
|
+
import "@mui/material/DialogContent";
|
|
59
|
+
import "@mui/material/Card";
|
|
60
|
+
import "@mui/material/CardContent";
|
|
61
|
+
import "@mui/material/CardHeader";
|
|
62
|
+
import "uuid";
|
|
63
|
+
import "@mui/material/CircularProgress";
|
|
64
|
+
import "@mui/material/FormControlLabel";
|
|
65
|
+
import "@mui/material/Radio";
|
|
66
|
+
import "@mui/material/Avatar";
|
|
67
|
+
import "@mui/material/ListItem";
|
|
68
|
+
import "@mui/material/ListItemAvatar";
|
|
69
|
+
import "@mui/material/ListItemButton";
|
|
70
|
+
import "@mui/material/ListItemText";
|
|
71
|
+
import "@mui/material/ListItemIcon";
|
|
72
|
+
import "@mui/material/MenuItem";
|
|
73
|
+
import "@mui/material/TextField";
|
|
74
|
+
import "@mui/material/Switch";
|
|
75
|
+
import "posthog-js";
|
|
76
|
+
import "date-fns/differenceInDays";
|
|
77
|
+
import "@mui/x-data-grid-pro";
|
|
78
|
+
import "date-fns";
|
|
79
|
+
import "@mui/material/Divider";
|
|
80
|
+
import "@mui/material/List";
|
|
81
|
+
import "date-fns/formatISO";
|
|
82
|
+
import "date-fns/isAfter";
|
|
83
|
+
import "date-fns/parseISO";
|
|
84
|
+
import "date-fns/subQuarters";
|
|
85
|
+
import "date-fns/lastDayOfMonth";
|
|
86
|
+
import "date-fns/setDayOfYear";
|
|
87
|
+
import "date-fns/addSeconds";
|
|
88
|
+
import "date-fns/differenceInCalendarMonths";
|
|
89
|
+
import "date-fns/getMonth";
|
|
90
|
+
class e {
|
|
91
|
+
fetchInstance;
|
|
92
|
+
constructor(t, i) {
|
|
93
|
+
this.fetchInstance = new h(t, i);
|
|
94
|
+
}
|
|
95
|
+
getMerchants = async (t = [], i = [], a = 1, s = 25) => {
|
|
96
|
+
let o = p.MERCHANTS;
|
|
97
|
+
return o += `?page=${a}&per_page=${s}`, t.length && t.forEach((r) => o += `&fuzzy_name[]=${r}`), i.length && i.forEach((r) => o += `&guid[]=${r}`), this.fetchInstance.get(o).then((r) => r.merchants);
|
|
98
|
+
};
|
|
99
|
+
getMerchantByGuid = async (t) => this.fetchInstance.get(`${p.MERCHANTS}/${t}`).then((i) => i.merchant);
|
|
100
|
+
}
|
|
101
|
+
class Qt {
|
|
102
|
+
globalStore;
|
|
103
|
+
api = new e("/", "");
|
|
104
|
+
merchant = null;
|
|
105
|
+
merchants = [];
|
|
106
|
+
isLoading = !1;
|
|
107
|
+
constructor(t) {
|
|
108
|
+
this.globalStore = t, this.api = new e(t.endpoint, t.sessionToken), c(this);
|
|
109
|
+
}
|
|
110
|
+
loadMerchants = async (t = "") => {
|
|
111
|
+
this.isLoading = !0;
|
|
112
|
+
const i = await this.api.getMerchants([t]);
|
|
113
|
+
m(() => {
|
|
114
|
+
this.merchants = i, this.isLoading = !1;
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
loadMerchantByGuid = async (t) => {
|
|
118
|
+
const i = await this.api.getMerchantByGuid(t);
|
|
119
|
+
m(() => this.merchant = i);
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
export {
|
|
123
|
+
Qt as M
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=MerchantStore-Cck9IGIH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MerchantStore-Cck9IGIH.mjs","sources":["../src/merchants/api/MerchantApi.ts","../src/merchants/stores/MerchantStore.ts"],"sourcesContent":["import { ApiEndpoints, Fetch } from '../../common'\n\nexport class MerchantApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string) {\n this.fetchInstance = new Fetch(endpoint, token)\n }\n\n getMerchants = async (\n searchValues = [] as string[],\n guids = [] as string[],\n page = 1,\n perPage = 25,\n ) => {\n let url = ApiEndpoints.MERCHANTS\n url += `?page=${page}&per_page=${perPage}`\n\n if (searchValues.length) {\n searchValues.forEach((value) => (url += `&fuzzy_name[]=${value}`))\n }\n\n if (guids.length) {\n guids.forEach((guid) => (url += `&guid[]=${guid}`))\n }\n\n return this.fetchInstance.get(url).then((data) => data.merchants)\n }\n\n getMerchantByGuid = async (guid: string) => {\n return this.fetchInstance.get(`${ApiEndpoints.MERCHANTS}/${guid}`).then((data) => data.merchant)\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\n\nimport { MerchantApi } from '../api/MerchantApi'\n\nimport { GlobalStore, Merchant } from '../../common'\n\nexport interface CopyObject {\n [key: string]: string\n}\n\nexport class MerchantStore {\n globalStore: GlobalStore\n api: MerchantApi = new MerchantApi('/', '')\n\n merchant: Merchant | null = null\n merchants: Merchant[] = []\n isLoading = false\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.api = new MerchantApi(globalStore.endpoint, globalStore.sessionToken)\n\n makeAutoObservable(this)\n }\n\n loadMerchants = async (searchValue = '') => {\n this.isLoading = true\n\n const merchants = await this.api.getMerchants([searchValue])\n\n runInAction(() => {\n this.merchants = merchants\n this.isLoading = false\n })\n }\n\n loadMerchantByGuid = async (guid: string) => {\n const merchant = await this.api.getMerchantByGuid(guid)\n\n runInAction(() => (this.merchant = merchant))\n }\n}\n"],"names":["MerchantApi","endpoint","token","Fetch","searchValues","guids","page","perPage","url","ApiEndpoints","value","guid","data","MerchantStore","globalStore","makeAutoObservable","searchValue","merchants","runInAction","merchant"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,MAAMA,EAAY;AAAA,EACvB;AAAA,EAEA,YAAYC,GAAkBC,GAAe;AAC3C,SAAK,gBAAgB,IAAIC,EAAMF,GAAUC,CAAK;AAAA,EAChD;AAAA,EAEA,eAAe,OACbE,IAAe,CAAA,GACfC,IAAQ,CACR,GAAAC,IAAO,GACPC,IAAU,OACP;AACH,QAAIC,IAAMC,EAAa;AAChB,WAAAD,KAAA,SAASF,CAAI,aAAaC,CAAO,IAEpCH,EAAa,UACfA,EAAa,QAAQ,CAACM,MAAWF,KAAO,iBAAiBE,CAAK,EAAG,GAG/DL,EAAM,UACRA,EAAM,QAAQ,CAACM,MAAUH,KAAO,WAAWG,CAAI,EAAG,GAG7C,KAAK,cAAc,IAAIH,CAAG,EAAE,KAAK,CAACI,MAASA,EAAK,SAAS;AAAA,EAAA;AAAA,EAGlE,oBAAoB,OAAOD,MAClB,KAAK,cAAc,IAAI,GAAGF,EAAa,SAAS,IAAIE,CAAI,EAAE,EAAE,KAAK,CAACC,MAASA,EAAK,QAAQ;AAEnG;ACtBO,MAAMC,GAAc;AAAA,EACzB;AAAA,EACA,MAAmB,IAAIb,EAAY,KAAK,EAAE;AAAA,EAE1C,WAA4B;AAAA,EAC5B,YAAwB,CAAA;AAAA,EACxB,YAAY;AAAA,EAEZ,YAAYc,GAA0B;AACpC,SAAK,cAAcA,GACnB,KAAK,MAAM,IAAId,EAAYc,EAAY,UAAUA,EAAY,YAAY,GAEzEC,EAAmB,IAAI;AAAA,EACzB;AAAA,EAEA,gBAAgB,OAAOC,IAAc,OAAO;AAC1C,SAAK,YAAY;AAEjB,UAAMC,IAAY,MAAM,KAAK,IAAI,aAAa,CAACD,CAAW,CAAC;AAE3D,IAAAE,EAAY,MAAM;AAChB,WAAK,YAAYD,GACjB,KAAK,YAAY;AAAA,IAAA,CAClB;AAAA,EAAA;AAAA,EAGH,qBAAqB,OAAON,MAAiB;AAC3C,UAAMQ,IAAW,MAAM,KAAK,IAAI,kBAAkBR,CAAI;AAE1C,IAAAO,EAAA,MAAO,KAAK,WAAWC,CAAS;AAAA,EAAA;AAEhD;"}
|