@feedmepos/mf-connect 0.1.98-beta.77 → 0.1.98-beta.78
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/{App-py_UovMT.js → App-Ddo6B0cR.js} +9 -9
- package/dist/{AuditLogs-CBYgZ7FH.js → AuditLogs-CTW4pKS6.js} +12 -12
- package/dist/{Bin-ju8M0hFD.js → Bin-54ynGToX.js} +8 -8
- package/dist/{Broadcast-BTb4ylCq.js → Broadcast-Bwnrmqhh.js} +12 -12
- package/dist/{CampaignAnalytic-2D7t722G.js → CampaignAnalytic-Q_IRT5AD.js} +7 -7
- package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BcyTpZwP.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BioWaVBq.js} +7 -7
- package/dist/{Card-BiWlWZ6x.js → Card-DVfhElpd.js} +22 -22
- package/dist/{Collections-BPOc6UY8.js → Collections-D1ncD8Mx.js} +8 -8
- package/dist/{Credit-Bb4wVQoC.js → Credit-DXPNdUJ_.js} +12 -12
- package/dist/{DateRangeChip.vue_vue_type_script_setup_true_lang-DG2U57X1.js → DateRangeChip.vue_vue_type_script_setup_true_lang-DiR_5MgW.js} +1 -1
- package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-CCT9ozoB.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-wfV6zhMB.js} +34 -34
- package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-CsychcNd.js → EffectSheet.vue_vue_type_style_index_0_lang-NqbdAsJM.js} +6 -6
- package/dist/{Experience-DBoDu8Cm.js → Experience-B-ksR_d_.js} +13 -13
- package/dist/{FileSaver.min-daHPgPSL.js → FileSaver.min-DcsYCTzs.js} +1 -1
- package/dist/{Game-BiUvjTES.js → Game-CPgjDM23.js} +13 -13
- package/dist/{GiftCardSetup-BPGb-CL2.js → GiftCardSetup-DdH3wEOH.js} +10 -10
- package/dist/GoalPickerPanel.vue_vue_type_script_setup_true_lang-BmskpBdL.js +424 -0
- package/dist/Goals-xDLeFx_e.js +247 -0
- package/dist/{Grab-MCcNgCKI.js → Grab-CggkOy8j.js} +9 -9
- package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-CM7mxUvJ.js → ImageInput.vue_vue_type_script_setup_true_lang-Cm-g1p_m.js} +1 -1
- package/dist/{Index-SjcZ2j_i.js → Index-DcJNte9-.js} +10 -10
- package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-CV97Pgg_.js → LocationPicker.vue_vue_type_script_setup_true_lang-Ba2mtWTj.js} +1 -1
- package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-BOh6ZIXp.js → LottieAnimation.vue_vue_type_script_setup_true_lang-xQYvmoY2.js} +1 -1
- package/dist/{LoyaltyDashboard-DEW10zj_.js → LoyaltyDashboard-BMmC9kTo.js} +19 -16
- package/dist/{MainLayout-Qqi3QprJ.js → MainLayout-5V9aP_OW.js} +3 -3
- package/dist/{Marketing-Dib60MJ-.js → Marketing-C-7HoFsr.js} +4 -4
- package/dist/{MarketingMaterialEdit-D_QFXzja.js → MarketingMaterialEdit-DKQrW2w-.js} +6 -6
- package/dist/{Member-Dcj7oysp.js → Member-BT-tGIGu.js} +7 -7
- package/dist/{MemberDetailSheet.vue_vue_type_script_setup_true_lang-DrUVoRN4.js → MemberDetailSheet.vue_vue_type_script_setup_true_lang-CMc423yy.js} +23 -23
- package/dist/{MemberImportHistory-0GNHB9xb.js → MemberImportHistory-4hgNWaYG.js} +7 -7
- package/dist/{MemberList-D1EF36nF.js → MemberList-CHToXvvZ.js} +14 -14
- package/dist/{MemberTransactions-N7fyQ8Tu.js → MemberTransactions-sF8tlSLx.js} +1 -1
- package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-ChOoxM8X.js → MessageInput.vue_vue_type_script_setup_true_lang-CX5N4HN8.js} +10 -10
- package/dist/{MetricInfoTooltip.vue_vue_type_script_setup_true_lang-DXaA1dNg.js → MetricInfoTooltip.vue_vue_type_script_setup_true_lang-B9xthwp-.js} +1 -1
- package/dist/{Mission-rZt8vCOe.js → Mission-DeRwazDk.js} +14 -14
- package/dist/{Overview-B0QFLXFh.js → Overview-CGHc1dGA.js} +20 -20
- package/dist/{Overview-A705DkOm.js → Overview-D1BfB0go.js} +4 -4
- package/dist/{Point-DkkRK7il.js → Point-DLbz1o1i.js} +14 -14
- package/dist/{Promotion-xd-T2-dQ.js → Promotion-ND7k0GAt.js} +14 -14
- package/dist/{Queue-CDuCwa_c.js → Queue-DSZ6SHw8.js} +12 -12
- package/dist/{Record-BHLRFtLP.js → Record-Cgl4Okdd.js} +9 -9
- package/dist/{Review-DXz6MS9O.js → Review-CQYHHkrB.js} +2 -2
- package/dist/{ReviewFacebookCallback-CM0ivdpZ.js → ReviewFacebookCallback-D-5cP6tF.js} +5 -5
- package/dist/{ReviewGoogleCallback--a0scVu4.js → ReviewGoogleCallback-BqS0lbMq.js} +5 -5
- package/dist/{Reward-CiuyrrgK.js → Reward-CEP9NauM.js} +16 -16
- package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-D89D4DjD.js → RewardGroup.vue_vue_type_script_setup_true_lang-B3A5Vl9M.js} +13 -13
- package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-Dlw-NQtl.js → RuleGroup.vue_vue_type_script_setup_true_lang-Dx4fbmfw.js} +14 -14
- package/dist/{Segment-DyresHK1.js → Segment-DVptqzgz.js} +25 -25
- package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-CSXVvOb5.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-oGVnY7GQ.js} +14 -14
- package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-CoPg1oMO.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-BTAWB1BA.js} +4 -4
- package/dist/{Setting-BPK8w0eT.js → Setting-Cz0VvOFH.js} +14 -14
- package/dist/{SettingAdvertisements-93EXzmkv.js → SettingAdvertisements-D60yC83d.js} +12 -12
- package/dist/{Settings-CVYiGv6m.js → Settings-BrfX54vL.js} +5 -5
- package/dist/{Store-3e4b8AjN.js → Store-9RdTlgUo.js} +26 -26
- package/dist/{StoreRewards-uWqfpsl6.js → StoreRewards-Cutn32ZD.js} +15 -15
- package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-DuuNYvYB.js → StoreTransactions.vue_vue_type_script_setup_true_lang-CJKQBlfI.js} +24 -24
- package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-DhZ7pGPi.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-I-fIH-8N.js} +2 -2
- package/dist/{Tier-DONSsmtj.js → Tier-DQBr9R7i.js} +26 -26
- package/dist/{Title-Ko5lEmYl.js → Title-Ci9aPFLz.js} +22 -22
- package/dist/{Transaction-C5tbK2o8.js → Transaction-DqbHdcPo.js} +2 -2
- package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-DfWj1srU.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-CTmiqIwm.js} +6 -6
- package/dist/{Voucher-BlWeC-0I.js → Voucher-4lhxhd9C.js} +18 -18
- package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-Aoq8uF1S.js → VoucherEditor.vue_vue_type_script_setup_true_lang-CFi6-VKK.js} +12 -12
- package/dist/{WhatsappBot-BKmZ77uJ.js → WhatsappBot-D38goJxM.js} +2 -2
- package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-D6AoU850.js → ZodTextField.vue_vue_type_script_setup_true_lang-Dgge7-H4.js} +2 -2
- package/dist/{app-Qg5rsLCS.js → app-Bb2tSOqF.js} +313 -313
- package/dist/app.js +1 -1
- package/dist/{base.export-B1bfW8El.js → base.export-BBOmcZxx.js} +2 -2
- package/dist/{business-BLk60Wa-.js → business-CjXvFAZn.js} +1 -1
- package/dist/{campaign-DWP1aWZz.js → campaign-D2R8I06-.js} +2 -2
- package/dist/{campaign-CGE8f5UN.js → campaign-G0f6ljXi.js} +8 -8
- package/dist/{campaign.fn-B1Yt9BZe.js → campaign.fn-D-rMF_4s.js} +36 -36
- package/dist/{collection.fn-DwnnquLt.js → collection.fn-Bvg6FCJb.js} +2 -2
- package/dist/{currency-BXNSzxvj.js → currency-BeiHwq_q.js} +1 -1
- package/dist/{duplicateCampaign-DS6X_uLQ.js → duplicateCampaign-Byxy6FXH.js} +2 -2
- package/dist/{effect-B1bo4EpE.js → effect-DqYtqvaw.js} +1 -1
- package/dist/{email-addresses-BWq7G9Jn.js → email-addresses-xIlBl9IU.js} +2 -2
- package/dist/{helper-Cy2y7vuV.js → helper-TqUK4r0b.js} +1 -1
- package/dist/{index-DAH5yRqP.js → index-7guDU5qb.js} +7 -7
- package/dist/{index-Dgd7zWGJ.js → index-9FJqvQeE.js} +3 -3
- package/dist/{index-CY0hT3HV.js → index-B1L4q1L0.js} +29 -24
- package/dist/{index-Swe7a4_X.js → index-B44CZDQD.js} +2 -2
- package/dist/{index-ClWk2SqX.js → index-BDt914jM.js} +1 -1
- package/dist/{index-B0dYeFs8.js → index-BFHYshPb.js} +1 -1
- package/dist/{index-DyPtIo3J.js → index-BvHzJVnj.js} +1 -1
- package/dist/{index-CI-HrzbP.js → index-BvjcosEc.js} +3 -3
- package/dist/{index-BZsEcvBN.js → index-BxEshHrE.js} +8 -8
- package/dist/{index-BJvX9rG4.js → index-C7V7AtVf.js} +2 -2
- package/dist/{index-D4nk586_.js → index-CSI31fuh.js} +4 -4
- package/dist/{index-CnTaGkOT.js → index-DG8fSuaM.js} +1 -1
- package/dist/{index-BmElc5NY.js → index-DMWHB3Zu.js} +2 -2
- package/dist/{index-p9YHYXPf.js → index-DNcisv5D.js} +1 -1
- package/dist/{index-C33MgGOl.js → index-D_ix7k3A.js} +2 -2
- package/dist/{index-Boag5HJA.js → index-Dt8H5FKD.js} +4 -4
- package/dist/{index-1hK_eYK1.js → index-XqDLmdvl.js} +2 -2
- package/dist/{index-B8qRU50F.js → index-nuIbpzmL.js} +1 -1
- package/dist/{index-CNoVkpQ3.js → index-t-aeCJQI.js} +2 -2
- package/dist/{index.esm2017-BIBRdFdm.js → index.esm2017-Byww7zVy.js} +37 -37
- package/dist/{loading-TDsYUHLu.js → loading-pAf2o94t.js} +1 -1
- package/dist/{lodash-abgtdmvd.js → lodash-CnCxUFbR.js} +1 -1
- package/dist/{member-import-DeU7DbJW.js → member-import-D5RxoWpQ.js} +1 -1
- package/dist/{membership-EZT0X6ed.js → membership--1r5zMgb.js} +2 -2
- package/dist/{money-B86Qgxua.js → money-YS0nj9Vy.js} +1 -1
- package/dist/{number-Dsl9GWdS.js → number-DpfYNS77.js} +1 -1
- package/dist/{objectid-D6mg3XC5.js → objectid-CzMdDxLC.js} +9 -9
- package/dist/onboarding-XAuEF8Fv.js +131 -0
- package/dist/{onboardingSetup-BOLuQWax.js → onboardingSetup-CKQDFlu9.js} +2 -2
- package/dist/{plugins-Bhi51Nbd.js → plugins-CO0TBKil.js} +3 -3
- package/dist/{reward-DUv9YGlz.js → reward-CfKDiCkk.js} +1 -1
- package/dist/{rule-DhBVl_w3.js → rule-BuuHD_-S.js} +9 -9
- package/dist/{template-zkPMQqZM.js → template-DYbZtKQg.js} +6 -6
- package/dist/{timezone-CyvzaL88.js → timezone-C64owf7o.js} +1 -1
- package/dist/{transaction.fn-Dq_IkjHc.js → transaction.fn-ClQ1jH9V.js} +2 -2
- package/dist/{trigger-COXS9V0F.js → trigger-DUkCFrPG.js} +5 -5
- package/dist/{useMarketingMaterialActions-D6IOmaPj.js → useMarketingMaterialActions-CA2iWa32.js} +3 -3
- package/dist/{usePagination-BC3Nh3fc.js → usePagination-BZmMaVcI.js} +1 -1
- package/dist/{user-DEiz-sFG.js → user-beTdsIEQ.js} +1 -1
- package/dist/{vue-i18n-BkZRNKBM.js → vue-i18n-Cfu8S_JC.js} +101 -101
- package/dist/{xlsx-DQuDEWD0.js → xlsx-BMeHM9By.js} +224 -224
- package/dist/{zod-lj0bd2h4.js → zod-DTSByurx.js} +1 -1
- package/package.json +1 -1
- package/dist/GoalPickerPanel.vue_vue_type_script_setup_true_lang-Ba0tRqlV.js +0 -417
- package/dist/Goals-Lj7OXqCG.js +0 -244
- package/dist/onboarding-X-5Gm3VM.js +0 -129
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
import { defineComponent as A, resolveComponent as k, openBlock as o, createBlock as p, withCtx as w, createElementVNode as c, unref as t, createVNode as x, ref as ee, computed as I, toDisplayString as h, createElementBlock as r, Fragment as L, renderList as T, createCommentVNode as f, normalizeClass as me, isRef as pe } from "vue";
|
|
2
|
+
import { u as K } from "./vue-i18n-Cfu8S_JC.js";
|
|
3
|
+
import { useRouter as be } from "vue-router";
|
|
4
|
+
import { S as fe } from "./index-D_ix7k3A.js";
|
|
5
|
+
import "./index-BDt914jM.js";
|
|
6
|
+
import { n as te } from "./plugins-CO0TBKil.js";
|
|
7
|
+
import { u as ne } from "./business-CjXvFAZn.js";
|
|
8
|
+
import { u as U, e as ye, i as ge, p as _e, g as oe, o as ve, d as xe, c as he } from "./onboarding-XAuEF8Fv.js";
|
|
9
|
+
import { R as Z } from "./app-Bb2tSOqF.js";
|
|
10
|
+
const ke = ["aria-label"], M = /* @__PURE__ */ A({
|
|
11
|
+
__name: "SectionChip",
|
|
12
|
+
props: {
|
|
13
|
+
label: {},
|
|
14
|
+
tooltip: {}
|
|
15
|
+
},
|
|
16
|
+
setup(u) {
|
|
17
|
+
const { t: P } = K();
|
|
18
|
+
return (s, C) => {
|
|
19
|
+
const e = k("FmChip"), $ = k("FmTooltip");
|
|
20
|
+
return u.tooltip ? (o(), p($, {
|
|
21
|
+
key: 0,
|
|
22
|
+
variant: "plain",
|
|
23
|
+
placement: "top",
|
|
24
|
+
content: u.tooltip
|
|
25
|
+
}, {
|
|
26
|
+
default: w(() => [
|
|
27
|
+
c("button", {
|
|
28
|
+
type: "button",
|
|
29
|
+
class: "inline-flex fm-corner-radius-md",
|
|
30
|
+
"aria-label": t(P)("connect.onboarding.more_about", { section: u.label })
|
|
31
|
+
}, [
|
|
32
|
+
x(e, {
|
|
33
|
+
variant: "plain",
|
|
34
|
+
compact: "",
|
|
35
|
+
label: u.label,
|
|
36
|
+
"right-icon": "help"
|
|
37
|
+
}, null, 8, ["label"])
|
|
38
|
+
], 8, ke)
|
|
39
|
+
]),
|
|
40
|
+
_: 1
|
|
41
|
+
}, 8, ["content"])) : (o(), p(e, {
|
|
42
|
+
key: 1,
|
|
43
|
+
variant: "plain",
|
|
44
|
+
compact: "",
|
|
45
|
+
label: u.label
|
|
46
|
+
}, null, 8, ["label"]));
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}), Ce = { class: "flex items-center gap-16 p-24 flex-wrap" }, $e = { class: "flex flex-col gap-4 flex-1 min-w-[200px]" }, Fe = { class: "fm-typo-en-title-sm-800 text-fm-color-typo-primary" }, Se = { class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary" }, Be = {
|
|
50
|
+
key: 0,
|
|
51
|
+
class: "flex flex-wrap gap-8 mt-4"
|
|
52
|
+
}, Ie = { class: "flex items-center gap-4" }, Ve = {
|
|
53
|
+
key: 0,
|
|
54
|
+
class: "flex items-center gap-16 px-24 py-16 border-t border-fm-color-neutral-gray-100 flex-wrap"
|
|
55
|
+
}, De = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-primary flex-1" }, Pe = {
|
|
56
|
+
key: 1,
|
|
57
|
+
class: "flex flex-col"
|
|
58
|
+
}, Ge = { class: "flex flex-col gap-4 flex-1 min-w-0" }, Le = { class: "flex items-center gap-8 flex-wrap" }, Ee = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, Ne = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary whitespace-nowrap" }, Oe = {
|
|
59
|
+
key: 1,
|
|
60
|
+
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary"
|
|
61
|
+
}, Re = {
|
|
62
|
+
key: 0,
|
|
63
|
+
class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary max-w-[62ch]"
|
|
64
|
+
}, Te = { class: "flex items-center gap-4 shrink-0" }, dt = /* @__PURE__ */ A({
|
|
65
|
+
__name: "SetupCard",
|
|
66
|
+
props: {
|
|
67
|
+
mode: {},
|
|
68
|
+
placement: {}
|
|
69
|
+
},
|
|
70
|
+
emits: ["customise", "next"],
|
|
71
|
+
setup(u, { emit: P }) {
|
|
72
|
+
const s = u, C = P, { t: e } = K(), $ = be(), m = U(), E = ne(), G = `mf-connect-onboarding-collapsed:${s.placement}`, a = ee((() => {
|
|
73
|
+
try {
|
|
74
|
+
return localStorage.getItem(G) === "1";
|
|
75
|
+
} catch {
|
|
76
|
+
return !1;
|
|
77
|
+
}
|
|
78
|
+
})());
|
|
79
|
+
function y() {
|
|
80
|
+
a.value = !a.value;
|
|
81
|
+
try {
|
|
82
|
+
localStorage.setItem(G, a.value ? "1" : "0");
|
|
83
|
+
} catch {
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const b = I(() => {
|
|
87
|
+
const i = m.catalog, v = m.state;
|
|
88
|
+
if (!i || !v) return [];
|
|
89
|
+
const V = s.mode === "goals" ? ye(i, v) : /* @__PURE__ */ new Set();
|
|
90
|
+
return m.ids(s.mode).map((d) => i.items.find((S) => S.id === d)).filter((d) => !!d).map((d) => ({
|
|
91
|
+
item: d,
|
|
92
|
+
title: s.mode === "generic" ? d.genericTitle ?? d.title : d.title,
|
|
93
|
+
done: ge(d, v, s.mode),
|
|
94
|
+
manual: "manual" in d.doneWhen,
|
|
95
|
+
recommended: V.has(d.id),
|
|
96
|
+
section: i.sections[d.section],
|
|
97
|
+
extra: d.extraSection ? i.sections[d.extraSection] : void 0
|
|
98
|
+
}));
|
|
99
|
+
}), B = I(() => b.value.length), l = I(() => b.value.filter((i) => i.done).length), F = I(() => B.value > 0 && l.value === B.value), N = I(() => m.minsLeft(s.mode)), g = I(() => F.value ? e("connect.onboarding.all_set_sub") : l.value > 0 ? e("connect.onboarding.progress_sub", { done: l.value, total: B.value, mins: N.value }) : e(
|
|
100
|
+
s.mode === "generic" ? "connect.onboarding.generic_sub" : "connect.onboarding.goals_sub",
|
|
101
|
+
{ count: B.value, mins: N.value },
|
|
102
|
+
B.value
|
|
103
|
+
)), D = I(() => {
|
|
104
|
+
const i = m.catalog, v = m.state;
|
|
105
|
+
return s.mode !== "goals" || !i || !v ? [] : _e(i, v).map((V) => ({ goal: V, ...oe(i, v, V) }));
|
|
106
|
+
}), z = I(() => F.value ? e("connect.onboarding.all_set_title") : D.value.length === 1 ? e("connect.onboarding.your_goal", { goal: D.value[0].goal.title }) : D.value.length > 1 ? e("connect.onboarding.your_goals") : e("connect.onboarding.start_here")), j = (i) => !!i && !E.isPremium;
|
|
107
|
+
async function O(i) {
|
|
108
|
+
try {
|
|
109
|
+
await m.patch(i);
|
|
110
|
+
} catch {
|
|
111
|
+
te.error(e("connect.onboarding.save_error"), 3e3);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const le = (i) => O({ removed: { [i]: !0 } }), W = I(() => s.placement === "analytic" && s.mode === "generic"), ae = () => O(
|
|
115
|
+
W.value ? { generic: "closed" } : s.placement === "analytic" ? { analyticDismissed: !0 } : { goalsDismissed: !0 }
|
|
116
|
+
);
|
|
117
|
+
function se() {
|
|
118
|
+
W.value ? O({ generic: "closed" }) : s.placement === "analytic" ? $.push({ name: Z["$connect-GOALS"] }) : C("next");
|
|
119
|
+
}
|
|
120
|
+
const ie = (i) => O({ manualDone: { [i]: !0 } });
|
|
121
|
+
function q(i, v) {
|
|
122
|
+
const V = m.state;
|
|
123
|
+
V && $.push(xe(he(i, V, s.mode), v));
|
|
124
|
+
}
|
|
125
|
+
function ce() {
|
|
126
|
+
s.placement === "analytic" ? $.push({ name: Z["$connect-GOALS"] }) : C("customise");
|
|
127
|
+
}
|
|
128
|
+
return (i, v) => {
|
|
129
|
+
const V = k("FmCircularProgress"), d = k("FmChip"), S = k("FmButton"), re = k("FmIcon"), de = k("FmPill"), ue = k("FmCard");
|
|
130
|
+
return o(), p(ue, {
|
|
131
|
+
variant: "outlined",
|
|
132
|
+
class: "flex flex-col overflow-hidden"
|
|
133
|
+
}, {
|
|
134
|
+
default: w(() => [
|
|
135
|
+
c("div", Ce, [
|
|
136
|
+
x(V, {
|
|
137
|
+
size: "xxl",
|
|
138
|
+
class: "shrink-0",
|
|
139
|
+
"current-step": t(l),
|
|
140
|
+
"total-steps": Math.max(t(B), 1)
|
|
141
|
+
}, null, 8, ["current-step", "total-steps"]),
|
|
142
|
+
c("div", $e, [
|
|
143
|
+
c("span", Fe, h(t(z)), 1),
|
|
144
|
+
c("span", Se, h(t(g)), 1),
|
|
145
|
+
t(D).length ? (o(), r("div", Be, [
|
|
146
|
+
(o(!0), r(L, null, T(t(D), (n) => (o(), p(d, {
|
|
147
|
+
key: n.goal.id,
|
|
148
|
+
compact: "",
|
|
149
|
+
variant: n.allDone ? "success" : "plain",
|
|
150
|
+
label: t(e)("connect.onboarding.goal_progress", { goal: n.goal.title, done: n.done, total: n.total })
|
|
151
|
+
}, null, 8, ["variant", "label"]))), 128))
|
|
152
|
+
])) : f("", !0)
|
|
153
|
+
]),
|
|
154
|
+
c("div", Ie, [
|
|
155
|
+
x(S, {
|
|
156
|
+
variant: "tertiary",
|
|
157
|
+
label: t(e)("connect.onboarding.customise"),
|
|
158
|
+
onClick: ce
|
|
159
|
+
}, null, 8, ["label"]),
|
|
160
|
+
x(S, {
|
|
161
|
+
variant: "plain",
|
|
162
|
+
icon: t(a) ? "keyboard_arrow_down" : "keyboard_arrow_up",
|
|
163
|
+
"aria-label": t(a) ? t(e)("connect.onboarding.expand") : t(e)("connect.onboarding.collapse"),
|
|
164
|
+
"aria-expanded": !t(a),
|
|
165
|
+
onClick: y
|
|
166
|
+
}, null, 8, ["icon", "aria-label", "aria-expanded"]),
|
|
167
|
+
x(S, {
|
|
168
|
+
variant: "plain",
|
|
169
|
+
icon: "close",
|
|
170
|
+
"aria-label": t(e)("connect.onboarding.hide"),
|
|
171
|
+
onClick: ae
|
|
172
|
+
}, null, 8, ["aria-label"])
|
|
173
|
+
])
|
|
174
|
+
]),
|
|
175
|
+
t(a) ? f("", !0) : (o(), r(L, { key: 0 }, [
|
|
176
|
+
t(F) ? (o(), r("div", Ve, [
|
|
177
|
+
c("p", De, h(t(e)("connect.onboarding.next_line")), 1),
|
|
178
|
+
x(S, {
|
|
179
|
+
variant: "primary",
|
|
180
|
+
label: t(e)("connect.onboarding.see_next"),
|
|
181
|
+
onClick: se
|
|
182
|
+
}, null, 8, ["label"])
|
|
183
|
+
])) : (o(), r("ul", Pe, [
|
|
184
|
+
(o(!0), r(L, null, T(t(b), (n) => {
|
|
185
|
+
var H, J, Q, X, Y;
|
|
186
|
+
return o(), r("li", {
|
|
187
|
+
key: n.item.id,
|
|
188
|
+
class: "group flex items-start gap-16 px-24 py-16 border-t border-fm-color-neutral-gray-100 hover:bg-fm-color-neutral-gray-100 focus-within:bg-fm-color-neutral-gray-100"
|
|
189
|
+
}, [
|
|
190
|
+
x(re, {
|
|
191
|
+
name: n.done ? "check_circle" : "radio_button_unchecked",
|
|
192
|
+
color: n.done ? "system-success-300" : "neutral-gray-300",
|
|
193
|
+
outline: !n.done,
|
|
194
|
+
class: "shrink-0"
|
|
195
|
+
}, null, 8, ["name", "color", "outline"]),
|
|
196
|
+
c("div", Ge, [
|
|
197
|
+
c("div", Le, [
|
|
198
|
+
c("span", Ee, h(n.title), 1),
|
|
199
|
+
n.done ? (o(), r("span", Oe, h((J = n.section) == null ? void 0 : J.label), 1)) : (o(), r(L, { key: 0 }, [
|
|
200
|
+
n.recommended ? (o(), p(d, {
|
|
201
|
+
key: 0,
|
|
202
|
+
variant: "info",
|
|
203
|
+
compact: "",
|
|
204
|
+
label: t(e)("connect.onboarding.recommended")
|
|
205
|
+
}, null, 8, ["label"])) : f("", !0),
|
|
206
|
+
(H = n.section) != null && H.premium ? (o(), p(de, {
|
|
207
|
+
key: 1,
|
|
208
|
+
variant: "premium"
|
|
209
|
+
})) : f("", !0),
|
|
210
|
+
n.section ? (o(), p(M, {
|
|
211
|
+
key: 2,
|
|
212
|
+
label: n.section.label,
|
|
213
|
+
tooltip: n.section.tooltip
|
|
214
|
+
}, null, 8, ["label", "tooltip"])) : f("", !0),
|
|
215
|
+
n.extra ? (o(), p(M, {
|
|
216
|
+
key: 3,
|
|
217
|
+
label: n.extra.label,
|
|
218
|
+
tooltip: n.extra.tooltip
|
|
219
|
+
}, null, 8, ["label", "tooltip"])) : f("", !0),
|
|
220
|
+
c("span", Ne, " · " + h(t(e)("connect.onboarding.minutes", { mins: n.item.minutes })), 1)
|
|
221
|
+
], 64))
|
|
222
|
+
]),
|
|
223
|
+
n.done ? f("", !0) : (o(), r("p", Re, h(n.item.why), 1))
|
|
224
|
+
]),
|
|
225
|
+
c("div", Te, [
|
|
226
|
+
n.done ? (o(), p(S, {
|
|
227
|
+
key: 1,
|
|
228
|
+
variant: "tertiary",
|
|
229
|
+
label: t(e)("connect.onboarding.open_section", { section: (Y = n.section) == null ? void 0 : Y.label }),
|
|
230
|
+
onClick: (R) => q(n.item, !1)
|
|
231
|
+
}, null, 8, ["label", "onClick"])) : (o(), r(L, { key: 0 }, [
|
|
232
|
+
j((Q = n.section) == null ? void 0 : Q.premium) ? (o(), p(S, {
|
|
233
|
+
key: 0,
|
|
234
|
+
variant: "primary",
|
|
235
|
+
label: t(e)("connect.onboarding.upgrade_unlock"),
|
|
236
|
+
onClick: v[0] || (v[0] = (R) => t(ve)(t(fe).businessId))
|
|
237
|
+
}, null, 8, ["label"])) : f("", !0),
|
|
238
|
+
x(S, {
|
|
239
|
+
variant: j((X = n.section) == null ? void 0 : X.premium) ? "tertiary" : "primary",
|
|
240
|
+
label: t(e)("connect.onboarding.set_up"),
|
|
241
|
+
onClick: (R) => q(n.item, !0)
|
|
242
|
+
}, null, 8, ["variant", "label", "onClick"]),
|
|
243
|
+
n.manual ? (o(), p(S, {
|
|
244
|
+
key: 1,
|
|
245
|
+
variant: "secondary",
|
|
246
|
+
label: t(e)("connect.onboarding.mark_done"),
|
|
247
|
+
onClick: (R) => ie(n.item.id)
|
|
248
|
+
}, null, 8, ["label", "onClick"])) : f("", !0)
|
|
249
|
+
], 64)),
|
|
250
|
+
n.done ? f("", !0) : (o(), p(S, {
|
|
251
|
+
key: 2,
|
|
252
|
+
variant: "plain",
|
|
253
|
+
icon: "close",
|
|
254
|
+
class: "opacity-0 group-hover:opacity-100 focus:opacity-100 group-focus-within:opacity-100 [@media(hover:none)]:opacity-100",
|
|
255
|
+
"aria-label": t(e)("connect.onboarding.remove", { title: n.title }),
|
|
256
|
+
onClick: (R) => le(n.item.id)
|
|
257
|
+
}, null, 8, ["aria-label", "onClick"]))
|
|
258
|
+
])
|
|
259
|
+
]);
|
|
260
|
+
}), 128))
|
|
261
|
+
]))
|
|
262
|
+
], 64))
|
|
263
|
+
]),
|
|
264
|
+
_: 1
|
|
265
|
+
});
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
}), Ae = { class: "flex flex-col gap-24" }, Ke = { class: "grid grid-cols-[repeat(auto-fit,minmax(320px,1fr))] xs:grid-cols-1 gap-12" }, ze = ["aria-checked", "aria-disabled", "onClick"], Me = { class: "flex flex-col gap-8 min-w-0" }, Ue = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, je = { class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary" }, We = { class: "flex flex-wrap gap-8" }, qe = {
|
|
269
|
+
key: 0,
|
|
270
|
+
class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary"
|
|
271
|
+
}, He = {
|
|
272
|
+
key: 1,
|
|
273
|
+
class: "flex"
|
|
274
|
+
}, Je = { class: "flex items-center gap-12" }, Qe = /* @__PURE__ */ A({
|
|
275
|
+
__name: "GoalPicker",
|
|
276
|
+
props: {
|
|
277
|
+
modelValue: {},
|
|
278
|
+
updating: { type: Boolean }
|
|
279
|
+
},
|
|
280
|
+
emits: ["update:modelValue", "build", "cancel"],
|
|
281
|
+
setup(u, { emit: P }) {
|
|
282
|
+
const s = u, C = P, { t: e } = K(), $ = U(), m = ne(), E = I(() => {
|
|
283
|
+
const _ = $.catalog, a = $.state;
|
|
284
|
+
return !_ || !a ? [] : _.goals.map((y) => {
|
|
285
|
+
const b = oe(_, a, y), l = [
|
|
286
|
+
...new Set(
|
|
287
|
+
[...y.coreItemIds, ...y.altItemIds].map((g) => {
|
|
288
|
+
var D;
|
|
289
|
+
return (D = _.items.find((z) => z.id === g)) == null ? void 0 : D.section;
|
|
290
|
+
}).filter((g) => !!g)
|
|
291
|
+
)
|
|
292
|
+
].map((g) => _.sections[g]).filter((g) => !!g), F = l.filter((g) => g.premium);
|
|
293
|
+
let N = "";
|
|
294
|
+
return F.length && !m.isPremium && (N = F.length === l.length ? e("connect.onboarding.premium_nudge_all") : e("connect.onboarding.premium_nudge_some", {
|
|
295
|
+
sections: F.map((g) => g.label).join(", ")
|
|
296
|
+
})), {
|
|
297
|
+
goal: y,
|
|
298
|
+
sections: l,
|
|
299
|
+
nudge: N,
|
|
300
|
+
// Stays pickable while any of its alternatives is still to set up.
|
|
301
|
+
disabled: b.exhausted,
|
|
302
|
+
status: b.exhausted ? e("connect.onboarding.already_set_up") : b.done > 0 ? e("connect.onboarding.partly_set_up", b) : "",
|
|
303
|
+
selected: s.modelValue.includes(y.id)
|
|
304
|
+
};
|
|
305
|
+
});
|
|
306
|
+
});
|
|
307
|
+
function G(_, a) {
|
|
308
|
+
a || C(
|
|
309
|
+
"update:modelValue",
|
|
310
|
+
s.modelValue.includes(_) ? s.modelValue.filter((y) => y !== _) : [...s.modelValue, _]
|
|
311
|
+
);
|
|
312
|
+
}
|
|
313
|
+
return (_, a) => {
|
|
314
|
+
const y = k("FmIcon"), b = k("FmChip"), B = k("FmButton");
|
|
315
|
+
return o(), r("div", Ae, [
|
|
316
|
+
c("div", Ke, [
|
|
317
|
+
(o(!0), r(L, null, T(t(E), (l) => (o(), r("button", {
|
|
318
|
+
key: l.goal.id,
|
|
319
|
+
type: "button",
|
|
320
|
+
role: "checkbox",
|
|
321
|
+
"aria-checked": l.selected,
|
|
322
|
+
"aria-disabled": l.disabled,
|
|
323
|
+
class: me(["flex items-start gap-12 p-16 text-left fm-corner-radius-lg border-1 bg-fm-color-neutral-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-fm-color-primary", [
|
|
324
|
+
l.selected ? "border-fm-color-primary" : "border-fm-color-neutral-gray-200",
|
|
325
|
+
l.disabled ? "opacity-60 cursor-not-allowed" : "cursor-pointer"
|
|
326
|
+
]]),
|
|
327
|
+
onClick: (F) => G(l.goal.id, l.disabled)
|
|
328
|
+
}, [
|
|
329
|
+
x(y, {
|
|
330
|
+
name: l.selected ? "check_box" : "check_box_outline_blank",
|
|
331
|
+
color: l.selected ? "primary" : "neutral-gray-300",
|
|
332
|
+
class: "shrink-0",
|
|
333
|
+
"aria-hidden": "true"
|
|
334
|
+
}, null, 8, ["name", "color"]),
|
|
335
|
+
c("span", Me, [
|
|
336
|
+
c("span", Ue, h(l.goal.title), 1),
|
|
337
|
+
c("span", je, h(l.goal.sub), 1),
|
|
338
|
+
c("span", We, [
|
|
339
|
+
(o(!0), r(L, null, T(l.sections, (F) => (o(), p(M, {
|
|
340
|
+
key: F.label,
|
|
341
|
+
label: F.label
|
|
342
|
+
}, null, 8, ["label"]))), 128))
|
|
343
|
+
]),
|
|
344
|
+
l.nudge ? (o(), r("span", qe, h(l.nudge), 1)) : f("", !0),
|
|
345
|
+
l.status ? (o(), r("span", He, [
|
|
346
|
+
x(b, {
|
|
347
|
+
variant: l.disabled ? "success" : "neutral",
|
|
348
|
+
compact: "",
|
|
349
|
+
label: l.status
|
|
350
|
+
}, null, 8, ["variant", "label"])
|
|
351
|
+
])) : f("", !0)
|
|
352
|
+
])
|
|
353
|
+
], 10, ze))), 128))
|
|
354
|
+
]),
|
|
355
|
+
c("div", Je, [
|
|
356
|
+
x(B, {
|
|
357
|
+
variant: "primary",
|
|
358
|
+
label: u.updating ? t(e)("connect.onboarding.update") : t(e)("connect.onboarding.build"),
|
|
359
|
+
disabled: u.modelValue.length === 0,
|
|
360
|
+
onClick: a[0] || (a[0] = (l) => C("build"))
|
|
361
|
+
}, null, 8, ["label", "disabled"]),
|
|
362
|
+
u.updating ? (o(), p(B, {
|
|
363
|
+
key: 0,
|
|
364
|
+
variant: "tertiary",
|
|
365
|
+
label: t(e)("connect.onboarding.cancel"),
|
|
366
|
+
onClick: a[1] || (a[1] = (l) => C("cancel"))
|
|
367
|
+
}, null, 8, ["label"])) : f("", !0)
|
|
368
|
+
])
|
|
369
|
+
]);
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
}), Xe = { class: "flex flex-col gap-24 p-32 xs:p-16 border-1 border-fm-color-neutral-gray-100 fm-corner-radius-lg" }, Ye = { class: "flex items-start gap-16" }, Ze = { class: "flex flex-col gap-8 flex-1" }, we = { class: "fm-typo-en-title-lg-800 text-fm-color-typo-primary" }, et = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-tertiary" }, ut = /* @__PURE__ */ A({
|
|
373
|
+
__name: "GoalPickerPanel",
|
|
374
|
+
props: {
|
|
375
|
+
updating: { type: Boolean },
|
|
376
|
+
dismissible: { type: Boolean }
|
|
377
|
+
},
|
|
378
|
+
emits: ["built", "cancel", "dismiss"],
|
|
379
|
+
setup(u, { emit: P }) {
|
|
380
|
+
var G;
|
|
381
|
+
const s = u, C = P, { t: e } = K(), $ = U(), m = ee([...((G = $.state) == null ? void 0 : G.pickedGoals) ?? []]);
|
|
382
|
+
async function E() {
|
|
383
|
+
try {
|
|
384
|
+
await $.patch({
|
|
385
|
+
pickedGoals: m.value,
|
|
386
|
+
built: !0,
|
|
387
|
+
goalsDismissed: !1,
|
|
388
|
+
analyticDismissed: !1
|
|
389
|
+
}), C("built");
|
|
390
|
+
} catch {
|
|
391
|
+
te.error(e("connect.onboarding.save_error"), 3e3);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
return (_, a) => {
|
|
395
|
+
const y = k("FmButton");
|
|
396
|
+
return o(), r("section", Xe, [
|
|
397
|
+
c("div", Ye, [
|
|
398
|
+
c("div", Ze, [
|
|
399
|
+
c("h2", we, h(t(e)("connect.onboarding.picker_title")), 1),
|
|
400
|
+
c("p", et, h(t(e)("connect.onboarding.picker_intro")), 1)
|
|
401
|
+
]),
|
|
402
|
+
s.dismissible ? (o(), p(y, {
|
|
403
|
+
key: 0,
|
|
404
|
+
variant: "plain",
|
|
405
|
+
icon: "close",
|
|
406
|
+
"aria-label": t(e)("connect.onboarding.hide"),
|
|
407
|
+
onClick: a[0] || (a[0] = (b) => C("dismiss"))
|
|
408
|
+
}, null, 8, ["aria-label"])) : f("", !0)
|
|
409
|
+
]),
|
|
410
|
+
x(Qe, {
|
|
411
|
+
modelValue: t(m),
|
|
412
|
+
"onUpdate:modelValue": a[1] || (a[1] = (b) => pe(m) ? m.value = b : null),
|
|
413
|
+
updating: u.updating,
|
|
414
|
+
onBuild: E,
|
|
415
|
+
onCancel: a[2] || (a[2] = (b) => C("cancel"))
|
|
416
|
+
}, null, 8, ["modelValue", "updating"])
|
|
417
|
+
]);
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
});
|
|
421
|
+
export {
|
|
422
|
+
ut as _,
|
|
423
|
+
dt as a
|
|
424
|
+
};
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { defineComponent as ee, ref as P, computed as u, onMounted as te, onBeforeUnmount as oe, resolveComponent as g, openBlock as n, createElementBlock as s, Fragment as h, createVNode as p, unref as e, createElementVNode as a, toDisplayString as i, createBlock as y, createCommentVNode as f, renderList as L, withCtx as H } from "vue";
|
|
2
|
+
import { h as ne } from "./moment-D7p2TMB-.js";
|
|
3
|
+
import { u as ae } from "./vue-i18n-Cfu8S_JC.js";
|
|
4
|
+
import { useRouter as le } from "vue-router";
|
|
5
|
+
import { n as se } from "./plugins-CO0TBKil.js";
|
|
6
|
+
import { u as ie, h as ce, p as re, b as de, r as me, d as ue, c as pe } from "./onboarding-XAuEF8Fv.js";
|
|
7
|
+
import { _ as fe, a as ve } from "./GoalPickerPanel.vue_vue_type_script_setup_true_lang-BmskpBdL.js";
|
|
8
|
+
const ye = { class: "px-24 pb-24 flex flex-col gap-24" }, _e = {
|
|
9
|
+
key: 0,
|
|
10
|
+
class: "flex justify-center py-40"
|
|
11
|
+
}, ge = {
|
|
12
|
+
key: 1,
|
|
13
|
+
class: "flex flex-col items-start gap-12"
|
|
14
|
+
}, be = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, xe = {
|
|
15
|
+
key: 2,
|
|
16
|
+
class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
|
|
17
|
+
}, he = {
|
|
18
|
+
key: 1,
|
|
19
|
+
class: "flex flex-col gap-8"
|
|
20
|
+
}, ke = { class: "fm-typo-en-title-lg-800 text-fm-color-typo-primary" }, Ce = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-tertiary" }, Fe = { class: "flex items-center gap-8 flex-wrap" }, we = { class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary" }, $e = { key: 1 }, Be = {
|
|
21
|
+
key: 2,
|
|
22
|
+
class: "flex items-center gap-8"
|
|
23
|
+
}, Pe = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary" }, Se = ["aria-expanded"], Ie = { class: "flex flex-col gap-4 flex-1" }, De = { class: "fm-typo-en-body-md-600 text-fm-color-typo-primary" }, Ee = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary" }, Le = {
|
|
24
|
+
key: 0,
|
|
25
|
+
class: "flex flex-col"
|
|
26
|
+
}, Me = { class: "flex flex-col gap-4 flex-1 min-w-0" }, Ne = { class: "flex items-center gap-8 flex-wrap" }, Ve = { class: "fm-typo-en-body-md-600 text-fm-color-typo-primary" }, Ye = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary" }, Ge = { class: "fm-typo-en-title-sm-600 text-fm-color-typo-primary" }, Oe = {
|
|
27
|
+
key: 0,
|
|
28
|
+
class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary"
|
|
29
|
+
}, Re = { class: "flex flex-col" }, je = { class: "flex flex-col gap-4 flex-1 min-w-0" }, ze = { class: "fm-typo-en-body-md-600 text-fm-color-typo-primary" }, Ae = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary" }, He = { class: "flex items-center gap-12" }, et = /* @__PURE__ */ ee({
|
|
30
|
+
__name: "Goals",
|
|
31
|
+
setup(Ue) {
|
|
32
|
+
const { t: o, locale: M } = ae(), U = le(), m = ie(), k = P(!1), b = P(!1), w = P(!1), S = P(!0), c = u(() => m.catalog), r = u(() => m.state), N = u(() => !!c.value && !!r.value && ce(c.value, r.value)), V = u(() => k.value || !N.value), I = u(() => m.ids("goals")), q = u(
|
|
33
|
+
() => I.value.length > 0 && m.doneCount("goals") === I.value.length
|
|
34
|
+
), Y = u(
|
|
35
|
+
() => c.value && r.value ? re(c.value, r.value) : []
|
|
36
|
+
), $ = u(() => {
|
|
37
|
+
if (!c.value || !r.value) return [];
|
|
38
|
+
const d = r.value;
|
|
39
|
+
return [...new Set(Y.value.flatMap((l) => l.coreItemIds))].filter((l) => d.removed[l]);
|
|
40
|
+
}), C = u(
|
|
41
|
+
() => c.value && r.value ? de(c.value, r.value) : []
|
|
42
|
+
), F = u(() => {
|
|
43
|
+
if (!c.value || !r.value) return [];
|
|
44
|
+
const d = c.value.sections;
|
|
45
|
+
return me(c.value, r.value, I.value).map(({ item: l, liveSince: _ }) => {
|
|
46
|
+
var x;
|
|
47
|
+
return {
|
|
48
|
+
item: l,
|
|
49
|
+
section: ((x = d[l.section]) == null ? void 0 : x.label) ?? "",
|
|
50
|
+
liveSince: _ ? ne(_).format("D MMM YYYY") : ""
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
}), J = u(() => w.value ? F.value : F.value.slice(0, 5));
|
|
54
|
+
async function D(d) {
|
|
55
|
+
try {
|
|
56
|
+
return await m.patch(d), !0;
|
|
57
|
+
} catch {
|
|
58
|
+
return se.error(o("connect.onboarding.save_error"), 3e3), !1;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function B() {
|
|
62
|
+
k.value = !0;
|
|
63
|
+
}
|
|
64
|
+
function K() {
|
|
65
|
+
C.value.length ? b.value = !0 : B();
|
|
66
|
+
}
|
|
67
|
+
const Q = () => D({ removed: Object.fromEntries($.value.map((d) => [d, !1])) }), T = (d) => D({ added: { [d]: !0 }, removed: { [d]: !1 } });
|
|
68
|
+
function W(d) {
|
|
69
|
+
var _;
|
|
70
|
+
const l = (_ = c.value) == null ? void 0 : _.items.find((x) => x.id === d);
|
|
71
|
+
!l || !r.value || U.push(ue(pe(l, r.value, "goals"), !1));
|
|
72
|
+
}
|
|
73
|
+
async function G() {
|
|
74
|
+
S.value = !0, await m.read(M.value), S.value = !1;
|
|
75
|
+
}
|
|
76
|
+
const O = () => {
|
|
77
|
+
document.visibilityState === "visible" && m.read(M.value);
|
|
78
|
+
};
|
|
79
|
+
return te(() => {
|
|
80
|
+
G(), document.addEventListener("visibilitychange", O);
|
|
81
|
+
}), oe(() => document.removeEventListener("visibilitychange", O)), (d, l) => {
|
|
82
|
+
var z;
|
|
83
|
+
const _ = g("FmPageHead"), x = g("FmCircularProgress"), v = g("FmButton"), X = g("FmChip"), R = g("FmIcon"), Z = g("FmPill"), j = g("FmCard");
|
|
84
|
+
return n(), s(h, null, [
|
|
85
|
+
p(_, {
|
|
86
|
+
title: e(o)("connect.navigation.goals")
|
|
87
|
+
}, null, 8, ["title"]),
|
|
88
|
+
a("div", ye, [
|
|
89
|
+
e(S) && !e(m).loaded ? (n(), s("div", _e, [
|
|
90
|
+
p(x, { size: "xl" })
|
|
91
|
+
])) : e(m).loaded ? e(c) ? (n(), s(h, { key: 3 }, [
|
|
92
|
+
e(V) ? (n(), y(fe, {
|
|
93
|
+
key: String(e(k)),
|
|
94
|
+
updating: e(N),
|
|
95
|
+
onBuilt: l[0] || (l[0] = (t) => k.value = !1),
|
|
96
|
+
onCancel: l[1] || (l[1] = (t) => k.value = !1)
|
|
97
|
+
}, null, 8, ["updating"])) : (n(), s("div", he, [
|
|
98
|
+
a("h2", ke, i(e(o)("connect.onboarding.list_title")), 1),
|
|
99
|
+
a("p", Ce, i(e(o)("connect.onboarding.list_intro")), 1)
|
|
100
|
+
])),
|
|
101
|
+
e(V) ? f("", !0) : (n(), s(h, { key: 2 }, [
|
|
102
|
+
a("div", Fe, [
|
|
103
|
+
a("span", we, i(e(o)("connect.onboarding.scoped_to")), 1),
|
|
104
|
+
(n(!0), s(h, null, L(e(Y), (t) => (n(), y(X, {
|
|
105
|
+
key: t.id,
|
|
106
|
+
variant: "neutral",
|
|
107
|
+
compact: "",
|
|
108
|
+
label: t.title
|
|
109
|
+
}, null, 8, ["label"]))), 128)),
|
|
110
|
+
p(v, {
|
|
111
|
+
variant: "tertiary",
|
|
112
|
+
label: e(o)("connect.onboarding.change_goals"),
|
|
113
|
+
onClick: B
|
|
114
|
+
}, null, 8, ["label"])
|
|
115
|
+
]),
|
|
116
|
+
(z = e(r)) != null && z.goalsDismissed ? (n(), s("div", $e, [
|
|
117
|
+
p(v, {
|
|
118
|
+
variant: "secondary",
|
|
119
|
+
label: e(o)("connect.onboarding.show_list"),
|
|
120
|
+
onClick: l[2] || (l[2] = (t) => D({ goalsDismissed: !1 }))
|
|
121
|
+
}, null, 8, ["label"])
|
|
122
|
+
])) : (n(), y(ve, {
|
|
123
|
+
key: 0,
|
|
124
|
+
mode: "goals",
|
|
125
|
+
placement: "goals",
|
|
126
|
+
onCustomise: B,
|
|
127
|
+
onNext: K
|
|
128
|
+
})),
|
|
129
|
+
e($).length ? (n(), s("div", Be, [
|
|
130
|
+
a("span", Pe, i(e(o)("connect.onboarding.removed", { count: e($).length }, e($).length)), 1),
|
|
131
|
+
p(v, {
|
|
132
|
+
variant: "tertiary",
|
|
133
|
+
size: "md",
|
|
134
|
+
label: e(o)("connect.onboarding.add_back"),
|
|
135
|
+
onClick: Q
|
|
136
|
+
}, null, 8, ["label"])
|
|
137
|
+
])) : f("", !0),
|
|
138
|
+
e(C).length ? (n(), y(j, {
|
|
139
|
+
key: 3,
|
|
140
|
+
variant: "outlined",
|
|
141
|
+
class: "flex flex-col overflow-hidden"
|
|
142
|
+
}, {
|
|
143
|
+
default: H(() => [
|
|
144
|
+
a("button", {
|
|
145
|
+
type: "button",
|
|
146
|
+
class: "flex items-center gap-12 px-24 py-16 text-left",
|
|
147
|
+
"aria-expanded": e(b),
|
|
148
|
+
onClick: l[3] || (l[3] = (t) => b.value = !e(b))
|
|
149
|
+
}, [
|
|
150
|
+
a("span", Ie, [
|
|
151
|
+
a("span", De, i(e(o)("connect.onboarding.alternatives", { count: e(C).length }, e(C).length)), 1),
|
|
152
|
+
a("span", Ee, i(e(o)("connect.onboarding.alternatives_hint")), 1)
|
|
153
|
+
]),
|
|
154
|
+
p(R, {
|
|
155
|
+
name: e(b) ? "keyboard_arrow_up" : "keyboard_arrow_down"
|
|
156
|
+
}, null, 8, ["name"])
|
|
157
|
+
], 8, Se),
|
|
158
|
+
e(b) ? (n(), s("ul", Le, [
|
|
159
|
+
(n(!0), s(h, null, L(e(C), (t) => {
|
|
160
|
+
var E, A;
|
|
161
|
+
return n(), s("li", {
|
|
162
|
+
key: t.item.id,
|
|
163
|
+
class: "flex items-center gap-12 px-24 py-16 border-t border-fm-color-neutral-gray-100"
|
|
164
|
+
}, [
|
|
165
|
+
a("div", Me, [
|
|
166
|
+
a("span", Ne, [
|
|
167
|
+
a("span", Ve, i(t.item.title), 1),
|
|
168
|
+
(E = e(c).sections[t.item.section]) != null && E.premium ? (n(), y(Z, {
|
|
169
|
+
key: 0,
|
|
170
|
+
variant: "premium"
|
|
171
|
+
})) : f("", !0)
|
|
172
|
+
]),
|
|
173
|
+
a("span", Ye, i((A = e(c).sections[t.item.section]) == null ? void 0 : A.label) + " · " + i(e(o)("connect.onboarding.minutes", { mins: t.item.minutes })) + " · " + i(t.item.altBlurb ?? t.item.why), 1)
|
|
174
|
+
]),
|
|
175
|
+
p(v, {
|
|
176
|
+
variant: "secondary",
|
|
177
|
+
label: e(o)("connect.onboarding.add"),
|
|
178
|
+
onClick: (qe) => T(t.item.id)
|
|
179
|
+
}, null, 8, ["label", "onClick"])
|
|
180
|
+
]);
|
|
181
|
+
}), 128))
|
|
182
|
+
])) : f("", !0)
|
|
183
|
+
]),
|
|
184
|
+
_: 1
|
|
185
|
+
})) : f("", !0),
|
|
186
|
+
e(q) ? (n(), y(j, {
|
|
187
|
+
key: 4,
|
|
188
|
+
variant: "outlined",
|
|
189
|
+
class: "flex flex-col gap-16 p-24"
|
|
190
|
+
}, {
|
|
191
|
+
default: H(() => [
|
|
192
|
+
a("span", Ge, i(e(o)("connect.onboarding.recap_title")), 1),
|
|
193
|
+
e(F).length ? f("", !0) : (n(), s("p", Oe, i(e(o)("connect.onboarding.recap_empty")), 1)),
|
|
194
|
+
a("ul", Re, [
|
|
195
|
+
(n(!0), s(h, null, L(e(J), (t) => (n(), s("li", {
|
|
196
|
+
key: t.item.id,
|
|
197
|
+
class: "flex items-center gap-12 py-12 border-t border-fm-color-neutral-gray-100 first:border-t-0"
|
|
198
|
+
}, [
|
|
199
|
+
p(R, {
|
|
200
|
+
name: "check_circle",
|
|
201
|
+
color: "system-success-300"
|
|
202
|
+
}),
|
|
203
|
+
a("div", je, [
|
|
204
|
+
a("span", ze, i(t.item.title), 1),
|
|
205
|
+
a("span", Ae, i(t.liveSince ? e(o)("connect.onboarding.live_since", { section: t.section, date: t.liveSince }) : t.section), 1)
|
|
206
|
+
]),
|
|
207
|
+
p(v, {
|
|
208
|
+
variant: "tertiary",
|
|
209
|
+
label: e(o)("connect.onboarding.open_section", { section: t.section }),
|
|
210
|
+
onClick: (E) => W(t.item.id)
|
|
211
|
+
}, null, 8, ["label", "onClick"])
|
|
212
|
+
]))), 128))
|
|
213
|
+
]),
|
|
214
|
+
a("div", He, [
|
|
215
|
+
e(F).length > 5 ? (n(), y(v, {
|
|
216
|
+
key: 0,
|
|
217
|
+
variant: "tertiary",
|
|
218
|
+
label: e(w) ? e(o)("connect.onboarding.show_less") : e(o)("connect.onboarding.show_all", { count: e(F).length }),
|
|
219
|
+
onClick: l[4] || (l[4] = (t) => w.value = !e(w))
|
|
220
|
+
}, null, 8, ["label"])) : f("", !0),
|
|
221
|
+
p(v, {
|
|
222
|
+
variant: "secondary",
|
|
223
|
+
label: e(o)("connect.onboarding.pick_goals"),
|
|
224
|
+
onClick: B
|
|
225
|
+
}, null, 8, ["label"])
|
|
226
|
+
])
|
|
227
|
+
]),
|
|
228
|
+
_: 1
|
|
229
|
+
})) : f("", !0)
|
|
230
|
+
], 64))
|
|
231
|
+
], 64)) : (n(), s("p", xe, i(e(o)("connect.onboarding.unavailable")), 1)) : (n(), s("div", ge, [
|
|
232
|
+
a("p", be, i(e(m).error ? e(o)("connect.onboarding.load_error") : e(o)("connect.onboarding.unavailable")), 1),
|
|
233
|
+
e(m).error ? (n(), y(v, {
|
|
234
|
+
key: 0,
|
|
235
|
+
variant: "secondary",
|
|
236
|
+
label: e(o)("connect.onboarding.retry"),
|
|
237
|
+
onClick: G
|
|
238
|
+
}, null, 8, ["label"])) : f("", !0)
|
|
239
|
+
]))
|
|
240
|
+
])
|
|
241
|
+
], 64);
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
export {
|
|
246
|
+
et as default
|
|
247
|
+
};
|