@vue-skuilder/common-ui 0.2.21 → 0.2.23
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/assets/index.css +1 -1
- package/dist/common-ui.es.js +104 -98
- package/dist/common-ui.es.js.map +1 -1
- package/dist/common-ui.umd.js +7 -7
- package/dist/common-ui.umd.js.map +1 -1
- package/dist/components/StudySession.types.d.ts +7 -1
- package/dist/components/StudySession.types.d.ts.map +1 -1
- package/dist/components/StudySession.vue.d.ts.map +1 -1
- package/dist/components/auth/UserLogin.vue.d.ts.map +1 -1
- package/dist/components/auth/UserRegistration.vue.d.ts +8 -0
- package/dist/components/auth/UserRegistration.vue.d.ts.map +1 -1
- package/dist/services/authAPI.d.ts +10 -0
- package/dist/services/authAPI.d.ts.map +1 -1
- package/dist/stores/useAuthStore.d.ts +8 -0
- package/dist/stores/useAuthStore.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/components/StudySession.types.ts +8 -1
- package/src/components/StudySession.vue +26 -0
- package/src/components/auth/UserLogin.vue +23 -5
- package/src/services/authAPI.ts +13 -0
package/dist/common-ui.es.js
CHANGED
|
@@ -986,6 +986,7 @@ async function resolveLoginIdentifier(e, t) {
|
|
|
986
986
|
} catch {}
|
|
987
987
|
return {
|
|
988
988
|
ok: !1,
|
|
989
|
+
status: n.status,
|
|
989
990
|
error: e || `HTTP ${n.status}: ${n.statusText}`
|
|
990
991
|
};
|
|
991
992
|
}
|
|
@@ -1917,6 +1918,9 @@ var Ut = M({
|
|
|
1917
1918
|
async created() {
|
|
1918
1919
|
this.userCourseRegDoc = await this.user.getCourseRegistrationsDoc(), console.log("[StudySession] Created lifecycle hook - starting initSession"), await this.initSession(), console.log("[StudySession] InitSession completed in created hook");
|
|
1919
1920
|
},
|
|
1921
|
+
beforeUnmount() {
|
|
1922
|
+
this.sessionController && !this.sessionFinished && this.sessionController.endSession("abandoned"), this.intervalHandler && clearInterval(this.intervalHandler);
|
|
1923
|
+
},
|
|
1920
1924
|
errorCaptured(e, t, n) {
|
|
1921
1925
|
return console.error(`[StudySession] Card render error (${n}), skipping card "${this.cardID}":`, e), this.sessionController && this.sessionController.nextCard().then((e) => this.loadCard(e)), !1;
|
|
1922
1926
|
},
|
|
@@ -1963,7 +1967,9 @@ var Ut = M({
|
|
|
1963
1967
|
}
|
|
1964
1968
|
}))).filter((e) => e !== null)), this.timeRemaining = this.sessionTimeLimit * 60, e = await Promise.all(this.contentSources.filter((e) => e.type === "classroom").map(async (e) => await this.dataLayer.getClassroomDB(e.id, "student"))), e.forEach((e) => {});
|
|
1965
1969
|
let t = {};
|
|
1966
|
-
this.sessionConfig?.defaultBatchLimit !== void 0 && (t.defaultBatchLimit = this.sessionConfig.defaultBatchLimit), this.sessionConfig?.outcomeObservers?.length && (t.outcomeObservers = this.sessionConfig.outcomeObservers)
|
|
1970
|
+
this.sessionConfig?.defaultBatchLimit !== void 0 && (t.defaultBatchLimit = this.sessionConfig.defaultBatchLimit), this.sessionConfig?.outcomeObservers?.length && (t.outcomeObservers = this.sessionConfig.outcomeObservers);
|
|
1971
|
+
let n = this.contentSources.find((e) => e.type === "course")?.id;
|
|
1972
|
+
n && (t.courseId = n), this.sessionConfig?.sessionStateSnapshot && (t.stateSnapshotProvider = this.sessionConfig.sessionStateSnapshot), this.sessionController = N(new ve(this.sessionContentSources, 60 * this.sessionTimeLimit, this.dataLayer, this.getViewComponent, void 0, t)), this.sessionController.sessionRecord = this.sessionRecord, this.sessionConfig?.initHints && (this.sessionController.setSessionHints(this.sessionConfig.initHints), console.log("[StudySession] Applied init hints as session-durable hints")), await this.sessionController.prepareSession(), this.intervalHandler = setInterval(this.tick, 1e3), this.sessionPrepared = !0, console.log("[StudySession] Session preparation complete, emitting session-prepared event"), this.$emit("session-prepared"), console.log("[StudySession] Event emission completed");
|
|
1967
1973
|
} catch (e) {
|
|
1968
1974
|
console.error("[StudySession] Error during session preparation:", e), this.$emit("session-error", {
|
|
1969
1975
|
message: "Failed to prepare study session",
|
|
@@ -1993,7 +1999,7 @@ var Ut = M({
|
|
|
1993
1999
|
return this.sessionRecord.filter((n) => n.card.course_id === e && n.card.card_id === t).length;
|
|
1994
2000
|
},
|
|
1995
2001
|
async processResponse(e) {
|
|
1996
|
-
this.$emit("card-response", e), this.timerIsActive = !0, e.cardID = this.cardID, e.courseID = this.courseID, this.currentCard.records.push(e), console.log("[StudySession] StudySession.processResponse is running...");
|
|
2002
|
+
this.$emit("card-response", e), this.timerIsActive = !0, e.cardID = this.cardID, e.courseID = this.courseID, e.sessionId = this.sessionController?.sessionId, this.currentCard.records.push(e), console.log("[StudySession] StudySession.processResponse is running...");
|
|
1997
2003
|
let t = this.logCardRecord(e).catch((e) => {
|
|
1998
2004
|
throw console.error("[StudySession] putCardRecord failed:", e), e;
|
|
1999
2005
|
}), n = 1, r = 1;
|
|
@@ -2185,7 +2191,7 @@ function _sfc_render$15(e, t, n, r, i, a) {
|
|
|
2185
2191
|
])) : D("", !0);
|
|
2186
2192
|
}
|
|
2187
2193
|
t(_sfc_render$15, "_sfc_render");
|
|
2188
|
-
var Zt = /* @__PURE__ */ r(Ut, [["render", _sfc_render$15], ["__scopeId", "data-v-
|
|
2194
|
+
var Zt = /* @__PURE__ */ r(Ut, [["render", _sfc_render$15], ["__scopeId", "data-v-c765534b"]]), Qt = M({
|
|
2189
2195
|
name: "MultipleChoiceOption",
|
|
2190
2196
|
components: { MarkdownRenderer: re(() => import("./MarkdownRenderer-kStoDRNE.mjs").then((e) => e.n)) },
|
|
2191
2197
|
props: {
|
|
@@ -2890,7 +2896,7 @@ var dn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
|
2890
2896
|
}, 8, ["modelValue"])], 64);
|
|
2891
2897
|
};
|
|
2892
2898
|
}
|
|
2893
|
-
}), [["__scopeId", "data-v-9a38a213"]]), fn = { class: "d-flex flex-column align-start" }, pn = { class: "mb-2" }, mn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
2899
|
+
}), [["__scopeId", "data-v-9a38a213"]]), fn = { class: "d-flex flex-column align-start" }, pn = { class: "mb-2" }, mn = "Username or password was incorrect.", hn = "Login is temporarily unavailable. Please try again in a moment.", gn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
2894
2900
|
__name: "UserLogin",
|
|
2895
2901
|
props: { redirectTo: { default: "/study" } },
|
|
2896
2902
|
emits: [
|
|
@@ -2899,12 +2905,12 @@ var dn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
|
2899
2905
|
"forgotPassword"
|
|
2900
2906
|
],
|
|
2901
2907
|
setup(e, { emit: t }) {
|
|
2902
|
-
let n = e, r = t, i = we(), a = Ce(), o = useAuthStore(), s = useConfigStore(), c = R(""), l = R(""), u = R(!1), d = R(!1), f = R(!1), p = R(7e3), m = R(void 0),
|
|
2908
|
+
let n = e, r = t, i = we(), a = Ce(), o = useAuthStore(), s = useConfigStore(), c = R(""), l = R(""), u = R(!1), d = R(!1), f = R(!1), p = R(7e3), m = R("Username or password was incorrect."), h = R(void 0), g = T(() => a.name === "login"), _ = T(() => ({
|
|
2903
2909
|
color: f.value ? "error" : "success",
|
|
2904
2910
|
text: f.value ? "Try again" : "Log In"
|
|
2905
|
-
})), initBadLogin = () => {
|
|
2906
|
-
f.value = !0, Z({
|
|
2907
|
-
text:
|
|
2911
|
+
})), initBadLogin = (e = mn) => {
|
|
2912
|
+
m.value = e, f.value = !0, Z({
|
|
2913
|
+
text: e,
|
|
2908
2914
|
status: J.error,
|
|
2909
2915
|
timeout: p.value
|
|
2910
2916
|
}), setTimeout(() => {
|
|
@@ -2913,17 +2919,17 @@ var dn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
|
2913
2919
|
}, login = async () => {
|
|
2914
2920
|
d.value = !0, Y("Starting login attempt"), Y(`Login attempt for identifier: ${c.value}`);
|
|
2915
2921
|
try {
|
|
2916
|
-
Y("Attempting to get User instance"),
|
|
2922
|
+
Y("Attempting to get User instance"), h.value = await getCurrentUser(), Y("Got User instance, attempting login");
|
|
2917
2923
|
let e = c.value;
|
|
2918
2924
|
if (c.value.includes("@")) {
|
|
2919
2925
|
let t = await resolveLoginIdentifier(c.value, l.value);
|
|
2920
2926
|
if (!t.ok || !t.username) {
|
|
2921
|
-
Y("Email identifier did not resolve
|
|
2927
|
+
t.status === 401 ? (Y("Email identifier did not resolve: invalid credentials"), initBadLogin()) : (Y(`Email login unavailable (resolver error: ${t.error ?? "network"})`), initBadLogin(hn)), d.value = !1;
|
|
2922
2928
|
return;
|
|
2923
2929
|
}
|
|
2924
2930
|
e = t.username;
|
|
2925
2931
|
}
|
|
2926
|
-
await
|
|
2932
|
+
await h.value.login(e, l.value), Y("Login successful"), Y("Initializing user config"), s.init(), Y("User config initialized"), Y("Setting authentication state"), o.loginAndRegistration.loggedIn = !0, Y(`Authentication state set, redirecting to: ${n.redirectTo}`), r("loginSuccess", n.redirectTo), i.push(n.redirectTo), Y("Login and redirect complete");
|
|
2927
2933
|
} catch (e) {
|
|
2928
2934
|
Y("Login attempt failed"), Y(`Login error details: ${JSON.stringify(e)}`), console.log(`login error: ${JSON.stringify(e)}`), Y("Initiating bad login feedback"), initBadLogin();
|
|
2929
2935
|
}
|
|
@@ -2931,19 +2937,19 @@ var dn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
|
2931
2937
|
}, toggle = () => {
|
|
2932
2938
|
Y("Toggling registration / login forms."), r("toggle");
|
|
2933
2939
|
}, handleForgotPassword = () => {
|
|
2934
|
-
Y("Forgot password clicked"),
|
|
2940
|
+
Y("Forgot password clicked"), g.value ? i.push("/request-reset") : r("forgotPassword");
|
|
2935
2941
|
};
|
|
2936
2942
|
return (e, t) => {
|
|
2937
|
-
let n = V("v-card-title"), r = V("v-text-field"), i = V("v-btn"), a = V("v-snackbar"), o = V("v-icon"), s = V("router-link"),
|
|
2938
|
-
return L(), E(
|
|
2939
|
-
default: W(() => [
|
|
2943
|
+
let n = V("v-card-title"), r = V("v-text-field"), i = V("v-btn"), a = V("v-snackbar"), o = V("v-icon"), s = V("router-link"), h = V("v-form"), v = V("v-card-text"), y = V("v-card");
|
|
2944
|
+
return L(), E(y, null, {
|
|
2945
|
+
default: W(() => [g.value ? D("", !0) : (L(), E(n, {
|
|
2940
2946
|
key: 0,
|
|
2941
2947
|
class: "text-h5 bg-grey-lighten-2"
|
|
2942
2948
|
}, {
|
|
2943
2949
|
default: W(() => t[5] || (t[5] = [A("Log In")])),
|
|
2944
2950
|
_: 1
|
|
2945
|
-
})), j(
|
|
2946
|
-
default: W(() => [j(
|
|
2951
|
+
})), j(v, null, {
|
|
2952
|
+
default: W(() => [j(h, {
|
|
2947
2953
|
onsubmit: "return false;",
|
|
2948
2954
|
onSubmit: K(login, ["prevent"])
|
|
2949
2955
|
}, {
|
|
@@ -2980,7 +2986,7 @@ var dn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
|
2980
2986
|
location: "bottom right",
|
|
2981
2987
|
timeout: p.value
|
|
2982
2988
|
}, {
|
|
2983
|
-
default: W(() => [
|
|
2989
|
+
default: W(() => [A(H(m.value) + " ", 1), j(i, {
|
|
2984
2990
|
color: "pink",
|
|
2985
2991
|
variant: "text",
|
|
2986
2992
|
onClick: t[3] || (t[3] = (e) => f.value = !1)
|
|
@@ -2994,19 +3000,19 @@ var dn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
|
2994
3000
|
class: "mr-2",
|
|
2995
3001
|
type: "submit",
|
|
2996
3002
|
loading: d.value,
|
|
2997
|
-
color:
|
|
3003
|
+
color: _.value.color
|
|
2998
3004
|
}, {
|
|
2999
3005
|
default: W(() => [j(o, { start: "" }, {
|
|
3000
|
-
default: W(() => t[
|
|
3006
|
+
default: W(() => t[7] || (t[7] = [A("mdi-lock-open")])),
|
|
3001
3007
|
_: 1
|
|
3002
|
-
}), t[
|
|
3008
|
+
}), t[8] || (t[8] = A(" Log In "))]),
|
|
3003
3009
|
_: 1
|
|
3004
|
-
}, 8, ["loading", "color"]),
|
|
3010
|
+
}, 8, ["loading", "color"]), g.value ? (L(), E(s, {
|
|
3005
3011
|
key: 0,
|
|
3006
3012
|
to: "signup"
|
|
3007
3013
|
}, {
|
|
3008
3014
|
default: W(() => [j(i, { variant: "text" }, {
|
|
3009
|
-
default: W(() => t[
|
|
3015
|
+
default: W(() => t[9] || (t[9] = [A("Create New Account")])),
|
|
3010
3016
|
_: 1
|
|
3011
3017
|
})]),
|
|
3012
3018
|
_: 1
|
|
@@ -3015,7 +3021,7 @@ var dn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
|
3015
3021
|
variant: "text",
|
|
3016
3022
|
onClick: toggle
|
|
3017
3023
|
}, {
|
|
3018
|
-
default: W(() => t[
|
|
3024
|
+
default: W(() => t[10] || (t[10] = [A("Create New Account")])),
|
|
3019
3025
|
_: 1
|
|
3020
3026
|
}))]), B(e.$slots, "forgot-password", {}, () => [k("a", {
|
|
3021
3027
|
href: "#",
|
|
@@ -3031,7 +3037,7 @@ var dn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
|
3031
3037
|
});
|
|
3032
3038
|
};
|
|
3033
3039
|
}
|
|
3034
|
-
}), [["__scopeId", "data-v-
|
|
3040
|
+
}), [["__scopeId", "data-v-764d1a76"]]);
|
|
3035
3041
|
//#endregion
|
|
3036
3042
|
//#region src/utils/passwordValidation.ts
|
|
3037
3043
|
function validatePassword(e) {
|
|
@@ -3042,7 +3048,7 @@ function isPasswordValid(e) {
|
|
|
3042
3048
|
}
|
|
3043
3049
|
//#endregion
|
|
3044
3050
|
//#region src/components/auth/UserRegistration.vue?vue&type=script&lang.ts
|
|
3045
|
-
var
|
|
3051
|
+
var _n = M({
|
|
3046
3052
|
name: "UserRegistration",
|
|
3047
3053
|
props: { onSignupSuccess: {
|
|
3048
3054
|
type: Function,
|
|
@@ -3300,7 +3306,7 @@ function _sfc_render$9(e, t, n, r, i, a) {
|
|
|
3300
3306
|
});
|
|
3301
3307
|
}
|
|
3302
3308
|
t(_sfc_render$9, "_sfc_render");
|
|
3303
|
-
var
|
|
3309
|
+
var vn = /* @__PURE__ */ r(_n, [["render", _sfc_render$9]]), yn = M({
|
|
3304
3310
|
name: "RequestPasswordReset",
|
|
3305
3311
|
emits: ["cancel", "success"],
|
|
3306
3312
|
data() {
|
|
@@ -3336,7 +3342,7 @@ var gn = /* @__PURE__ */ r(hn, [["render", _sfc_render$9]]), _n = M({
|
|
|
3336
3342
|
}
|
|
3337
3343
|
}
|
|
3338
3344
|
}
|
|
3339
|
-
}),
|
|
3345
|
+
}), bn = {
|
|
3340
3346
|
key: 1,
|
|
3341
3347
|
class: "text-center"
|
|
3342
3348
|
};
|
|
@@ -3349,7 +3355,7 @@ function _sfc_render$8(e, t, n, r, i, a) {
|
|
|
3349
3355
|
_: 1
|
|
3350
3356
|
}),
|
|
3351
3357
|
j(d, { class: "pa-6" }, {
|
|
3352
|
-
default: W(() => [e.requestSent ? (L(), O("div",
|
|
3358
|
+
default: W(() => [e.requestSent ? (L(), O("div", bn, [
|
|
3353
3359
|
j(c, {
|
|
3354
3360
|
color: "success",
|
|
3355
3361
|
size: "64",
|
|
@@ -3423,7 +3429,7 @@ function _sfc_render$8(e, t, n, r, i, a) {
|
|
|
3423
3429
|
});
|
|
3424
3430
|
}
|
|
3425
3431
|
t(_sfc_render$8, "_sfc_render");
|
|
3426
|
-
var
|
|
3432
|
+
var xn = /* @__PURE__ */ r(yn, [["render", _sfc_render$8]]), Sn = { key: 0 }, Cn = { key: "login-buttons" }, wn = { key: "user-chip" }, Tn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
3427
3433
|
__name: "UserLoginAndRegistrationContainer",
|
|
3428
3434
|
props: {
|
|
3429
3435
|
showLoginButton: { type: Boolean },
|
|
@@ -3473,11 +3479,11 @@ var yn = /* @__PURE__ */ r(_n, [["render", _sfc_render$8]]), bn = { key: 0 }, xn
|
|
|
3473
3479
|
};
|
|
3474
3480
|
return (e, t) => {
|
|
3475
3481
|
let n = V("v-btn"), r = V("v-dialog");
|
|
3476
|
-
return c.value && s.value ? (L(), O("div",
|
|
3482
|
+
return c.value && s.value ? (L(), O("div", Sn, [j(w, {
|
|
3477
3483
|
name: "component-fade",
|
|
3478
3484
|
mode: "out-in"
|
|
3479
3485
|
}, {
|
|
3480
|
-
default: W(() => [l.value ? (L(), O("div",
|
|
3486
|
+
default: W(() => [l.value ? (L(), O("div", Cn, [
|
|
3481
3487
|
u.value.showLoginRegistration ? (L(), E(r, {
|
|
3482
3488
|
key: 0,
|
|
3483
3489
|
modelValue: d.value,
|
|
@@ -3492,7 +3498,7 @@ var yn = /* @__PURE__ */ r(_n, [["render", _sfc_render$8]]), bn = { key: 0 }, xn
|
|
|
3492
3498
|
default: W(() => t[3] || (t[3] = [A("Sign Up")])),
|
|
3493
3499
|
_: 2
|
|
3494
3500
|
}, 1040)]),
|
|
3495
|
-
default: W(() => [j(
|
|
3501
|
+
default: W(() => [j(vn, {
|
|
3496
3502
|
onToggle: toggle,
|
|
3497
3503
|
onSignupSuccess: handleSignupSuccess,
|
|
3498
3504
|
"on-signup-success": handleSignupSuccess
|
|
@@ -3511,7 +3517,7 @@ var yn = /* @__PURE__ */ r(_n, [["render", _sfc_render$8]]), bn = { key: 0 }, xn
|
|
|
3511
3517
|
default: W(() => t[4] || (t[4] = [A("Log In")])),
|
|
3512
3518
|
_: 2
|
|
3513
3519
|
}, 1040)]),
|
|
3514
|
-
default: W(() => [j(
|
|
3520
|
+
default: W(() => [j(gn, {
|
|
3515
3521
|
onToggle: toggle,
|
|
3516
3522
|
onForgotPassword: openResetDialog
|
|
3517
3523
|
})]),
|
|
@@ -3522,18 +3528,18 @@ var yn = /* @__PURE__ */ r(_n, [["render", _sfc_render$8]]), bn = { key: 0 }, xn
|
|
|
3522
3528
|
"onUpdate:modelValue": t[2] || (t[2] = (e) => p.value = e),
|
|
3523
3529
|
width: "500px"
|
|
3524
3530
|
}, {
|
|
3525
|
-
default: W(() => [j(
|
|
3531
|
+
default: W(() => [j(xn, {
|
|
3526
3532
|
onCancel: closeResetDialog,
|
|
3527
3533
|
onSuccess: closeResetDialog
|
|
3528
3534
|
})]),
|
|
3529
3535
|
_: 1
|
|
3530
3536
|
}, 8, ["modelValue"])
|
|
3531
|
-
])) : (L(), O("div",
|
|
3537
|
+
])) : (L(), O("div", wn, [j(dn)]))]),
|
|
3532
3538
|
_: 1
|
|
3533
3539
|
})])) : D("", !0);
|
|
3534
3540
|
};
|
|
3535
3541
|
}
|
|
3536
|
-
}), [["__scopeId", "data-v-5a55bdf0"]]),
|
|
3542
|
+
}), [["__scopeId", "data-v-5a55bdf0"]]), En = M({
|
|
3537
3543
|
name: "VerifyEmail",
|
|
3538
3544
|
emits: ["verified", "error"],
|
|
3539
3545
|
props: { token: {
|
|
@@ -3581,16 +3587,16 @@ var yn = /* @__PURE__ */ r(_n, [["render", _sfc_render$8]]), bn = { key: 0 }, xn
|
|
|
3581
3587
|
return typeof window > "u" ? null : new URLSearchParams(window.location.search).get("token");
|
|
3582
3588
|
}
|
|
3583
3589
|
}
|
|
3584
|
-
}),
|
|
3590
|
+
}), Dn = {
|
|
3585
3591
|
key: 0,
|
|
3586
3592
|
class: "text-center"
|
|
3587
|
-
},
|
|
3593
|
+
}, On = {
|
|
3588
3594
|
key: 1,
|
|
3589
3595
|
class: "text-center"
|
|
3590
|
-
},
|
|
3596
|
+
}, kn = { key: 0 }, An = {
|
|
3591
3597
|
key: 2,
|
|
3592
3598
|
class: "text-center"
|
|
3593
|
-
},
|
|
3599
|
+
}, jn = {
|
|
3594
3600
|
key: 3,
|
|
3595
3601
|
class: "text-center"
|
|
3596
3602
|
};
|
|
@@ -3616,12 +3622,12 @@ function _sfc_render$7(e, t, n, r, i, a) {
|
|
|
3616
3622
|
_: 1
|
|
3617
3623
|
}),
|
|
3618
3624
|
j(l, { class: "pa-6" }, {
|
|
3619
|
-
default: W(() => [e.isVerifying ? (L(), O("div",
|
|
3625
|
+
default: W(() => [e.isVerifying ? (L(), O("div", Dn, [j(s, {
|
|
3620
3626
|
indeterminate: "",
|
|
3621
3627
|
color: "primary",
|
|
3622
3628
|
size: "64",
|
|
3623
3629
|
class: "mb-4"
|
|
3624
|
-
}), t[3] || (t[3] = k("p", null, "Verifying your email...", -1))])) : e.verificationStatus === "success" ? (L(), O("div",
|
|
3630
|
+
}), t[3] || (t[3] = k("p", null, "Verifying your email...", -1))])) : e.verificationStatus === "success" ? (L(), O("div", On, [
|
|
3625
3631
|
j(c, {
|
|
3626
3632
|
color: "success",
|
|
3627
3633
|
size: "64",
|
|
@@ -3632,8 +3638,8 @@ function _sfc_render$7(e, t, n, r, i, a) {
|
|
|
3632
3638
|
}),
|
|
3633
3639
|
t[5] || (t[5] = k("h3", { class: "mb-2" }, "Email Verified!", -1)),
|
|
3634
3640
|
t[6] || (t[6] = k("p", null, "Your account has been successfully verified.", -1)),
|
|
3635
|
-
e.username ? (L(), O("p",
|
|
3636
|
-
])) : e.verificationStatus === "error" ? (L(), O("div",
|
|
3641
|
+
e.username ? (L(), O("p", kn, "Welcome, " + H(e.username) + "!", 1)) : D("", !0)
|
|
3642
|
+
])) : e.verificationStatus === "error" ? (L(), O("div", An, [
|
|
3637
3643
|
j(c, {
|
|
3638
3644
|
color: "error",
|
|
3639
3645
|
size: "64",
|
|
@@ -3644,7 +3650,7 @@ function _sfc_render$7(e, t, n, r, i, a) {
|
|
|
3644
3650
|
}),
|
|
3645
3651
|
t[8] || (t[8] = k("h3", { class: "mb-2" }, "Verification Failed", -1)),
|
|
3646
3652
|
k("p", null, H(e.errorMessage), 1)
|
|
3647
|
-
])) : (L(), O("div",
|
|
3653
|
+
])) : (L(), O("div", jn, [
|
|
3648
3654
|
j(c, {
|
|
3649
3655
|
color: "warning",
|
|
3650
3656
|
size: "64",
|
|
@@ -3690,7 +3696,7 @@ function _sfc_render$7(e, t, n, r, i, a) {
|
|
|
3690
3696
|
});
|
|
3691
3697
|
}
|
|
3692
3698
|
t(_sfc_render$7, "_sfc_render");
|
|
3693
|
-
var
|
|
3699
|
+
var Mn = /* @__PURE__ */ r(En, [["render", _sfc_render$7]]), Nn = M({
|
|
3694
3700
|
name: "ResetPassword",
|
|
3695
3701
|
emits: ["complete", "error"],
|
|
3696
3702
|
props: { token: {
|
|
@@ -3748,7 +3754,7 @@ var An = /* @__PURE__ */ r(wn, [["render", _sfc_render$7]]), jn = M({
|
|
|
3748
3754
|
return typeof window > "u" ? null : new URLSearchParams(window.location.search).get("token");
|
|
3749
3755
|
}
|
|
3750
3756
|
}
|
|
3751
|
-
}),
|
|
3757
|
+
}), Pn = {
|
|
3752
3758
|
key: 1,
|
|
3753
3759
|
class: "text-center"
|
|
3754
3760
|
};
|
|
@@ -3774,7 +3780,7 @@ function _sfc_render$6(e, t, n, r, i, a) {
|
|
|
3774
3780
|
_: 1
|
|
3775
3781
|
}),
|
|
3776
3782
|
j(d, { class: "pa-6" }, {
|
|
3777
|
-
default: W(() => [e.isComplete ? (L(), O("div",
|
|
3783
|
+
default: W(() => [e.isComplete ? (L(), O("div", Pn, [
|
|
3778
3784
|
j(c, {
|
|
3779
3785
|
color: "success",
|
|
3780
3786
|
size: "64",
|
|
@@ -3868,7 +3874,7 @@ function _sfc_render$6(e, t, n, r, i, a) {
|
|
|
3868
3874
|
});
|
|
3869
3875
|
}
|
|
3870
3876
|
t(_sfc_render$6, "_sfc_render");
|
|
3871
|
-
var
|
|
3877
|
+
var Fn = /* @__PURE__ */ r(Nn, [["render", _sfc_render$6]]), In = M({
|
|
3872
3878
|
name: "SkTagsInput",
|
|
3873
3879
|
components: { VueTagsInput: Te },
|
|
3874
3880
|
props: {
|
|
@@ -3975,13 +3981,13 @@ var Nn = /* @__PURE__ */ r(jn, [["render", _sfc_render$6]]), Pn = M({
|
|
|
3975
3981
|
this.loading = !1;
|
|
3976
3982
|
}
|
|
3977
3983
|
}
|
|
3978
|
-
}),
|
|
3984
|
+
}), Ln = { "data-cy": "tags-input" }, Rn = { class: "tag-name" }, zn = {
|
|
3979
3985
|
key: 0,
|
|
3980
3986
|
class: "tag-snippet"
|
|
3981
3987
|
};
|
|
3982
3988
|
function _sfc_render$5(e, t, n, r, i, a) {
|
|
3983
3989
|
let o = V("vue-tags-input"), s = V("v-btn");
|
|
3984
|
-
return L(), O("div",
|
|
3990
|
+
return L(), O("div", Ln, [j(o, {
|
|
3985
3991
|
modelValue: e.tag,
|
|
3986
3992
|
"onUpdate:modelValue": t[0] || (t[0] = (t) => e.tag = t),
|
|
3987
3993
|
tags: e.tags,
|
|
@@ -3990,7 +3996,7 @@ function _sfc_render$5(e, t, n, r, i, a) {
|
|
|
3990
3996
|
"add-on-key": e.separators,
|
|
3991
3997
|
onTagsChanged: e.tagsChanged
|
|
3992
3998
|
}, {
|
|
3993
|
-
"autocomplete-item": W((e) => [k("div", { class: F(["autocomplete-item", { "is-active": e.selected }]) }, [k("span",
|
|
3999
|
+
"autocomplete-item": W((e) => [k("div", { class: F(["autocomplete-item", { "is-active": e.selected }]) }, [k("span", Rn, H(e.item.text), 1), e.item.data && e.item.data.snippet ? (L(), O("span", zn, " - " + H(e.item.data.snippet), 1)) : D("", !0)], 2)]),
|
|
3994
4000
|
_: 1
|
|
3995
4001
|
}, 8, [
|
|
3996
4002
|
"modelValue",
|
|
@@ -4010,11 +4016,11 @@ function _sfc_render$5(e, t, n, r, i, a) {
|
|
|
4010
4016
|
}, 8, ["loading", "onClick"]))]);
|
|
4011
4017
|
}
|
|
4012
4018
|
t(_sfc_render$5, "_sfc_render");
|
|
4013
|
-
var
|
|
4019
|
+
var Bn = /* @__PURE__ */ r(In, [["render", _sfc_render$5], ["__scopeId", "data-v-f7373dc0"]]), Vn = M({
|
|
4014
4020
|
name: "CourseCardBrowser",
|
|
4015
4021
|
components: {
|
|
4016
4022
|
CardLoader: un,
|
|
4017
|
-
TagsInput:
|
|
4023
|
+
TagsInput: Bn,
|
|
4018
4024
|
PaginatingToolbar: Ue
|
|
4019
4025
|
},
|
|
4020
4026
|
props: {
|
|
@@ -4169,26 +4175,26 @@ var Rn = /* @__PURE__ */ r(Pn, [["render", _sfc_render$5], ["__scopeId", "data-v
|
|
|
4169
4175
|
}
|
|
4170
4176
|
}
|
|
4171
4177
|
}
|
|
4172
|
-
}),
|
|
4178
|
+
}), Hn = {
|
|
4173
4179
|
key: 0,
|
|
4174
4180
|
class: "d-flex justify-center align-center pa-6"
|
|
4175
|
-
},
|
|
4181
|
+
}, Un = { key: 1 }, Wn = {
|
|
4176
4182
|
key: 0,
|
|
4177
4183
|
class: "px-4 py-2 bg-blue-grey-lighten-5"
|
|
4178
|
-
},
|
|
4184
|
+
}, Gn = {
|
|
4179
4185
|
key: 0,
|
|
4180
4186
|
class: "mt-4"
|
|
4181
|
-
},
|
|
4187
|
+
}, Kn = { class: "mt-4" }, qn = {
|
|
4182
4188
|
key: 0,
|
|
4183
4189
|
class: "ml-4"
|
|
4184
4190
|
};
|
|
4185
4191
|
function _sfc_render$4(e, t, n, r, i, a) {
|
|
4186
4192
|
let o = V("v-progress-circular"), s = V("paginating-toolbar"), c = V("v-list-item-title"), l = V("v-list-item-subtitle"), u = V("v-btn"), d = V("v-icon"), f = V("v-speed-dial"), p = V("v-list-item"), m = V("card-loader"), h = V("v-chip"), g = V("v-chip-group"), _ = V("tags-input"), v = V("v-list"), y = V("v-card");
|
|
4187
4193
|
return L(), E(y, null, {
|
|
4188
|
-
default: W(() => [e.updatePending ? (L(), O("div",
|
|
4194
|
+
default: W(() => [e.updatePending ? (L(), O("div", Hn, [j(o, {
|
|
4189
4195
|
indeterminate: "",
|
|
4190
4196
|
color: "primary"
|
|
4191
|
-
})])) : (L(), O("div",
|
|
4197
|
+
})])) : (L(), O("div", Un, [
|
|
4192
4198
|
j(s, {
|
|
4193
4199
|
title: "Exercises",
|
|
4194
4200
|
page: e.page,
|
|
@@ -4271,13 +4277,13 @@ function _sfc_render$4(e, t, n, r, i, a) {
|
|
|
4271
4277
|
_: 2
|
|
4272
4278
|
}, 1032, ["modelValue", "onUpdate:modelValue"])]),
|
|
4273
4279
|
_: 2
|
|
4274
|
-
}, 1032, ["class"]), n.isOpen ? (L(), O("div",
|
|
4280
|
+
}, 1032, ["class"]), n.isOpen ? (L(), O("div", Wn, [
|
|
4275
4281
|
j(m, {
|
|
4276
4282
|
qualified_id: n.card,
|
|
4277
4283
|
"view-lookup": e.viewLookup,
|
|
4278
4284
|
class: "elevation-1"
|
|
4279
4285
|
}, null, 8, ["qualified_id", "view-lookup"]),
|
|
4280
|
-
e.editMode === "readonly" && e.cardTags[n.card.cardID] ? (L(), O("div",
|
|
4286
|
+
e.editMode === "readonly" && e.cardTags[n.card.cardID] ? (L(), O("div", Gn, [j(g, null, {
|
|
4281
4287
|
default: W(() => [(L(!0), O(C, null, z(e.cardTags[n.card.cardID], (e) => (L(), E(h, {
|
|
4282
4288
|
key: e.name,
|
|
4283
4289
|
size: "small",
|
|
@@ -4294,14 +4300,14 @@ function _sfc_render$4(e, t, n, r, i, a) {
|
|
|
4294
4300
|
"card-i-d": n.card.cardID,
|
|
4295
4301
|
class: "mt-4"
|
|
4296
4302
|
}, null, 8, ["course-i-d", "card-i-d"]), [[ue, e.internalEditMode === "tags" && e.editMode === "full"]]),
|
|
4297
|
-
de(k("div",
|
|
4303
|
+
de(k("div", Kn, [j(u, {
|
|
4298
4304
|
color: "error",
|
|
4299
4305
|
variant: "outlined",
|
|
4300
4306
|
onClick: (e) => n.delBtn = !0
|
|
4301
4307
|
}, {
|
|
4302
4308
|
default: W(() => t[6] || (t[6] = [A(" Delete this card ")])),
|
|
4303
4309
|
_: 2
|
|
4304
|
-
}, 1032, ["onClick"]), n.delBtn ? (L(), O("span",
|
|
4310
|
+
}, 1032, ["onClick"]), n.delBtn ? (L(), O("span", qn, [t[8] || (t[8] = k("span", { class: "mr-2" }, "Are you sure?", -1)), j(u, {
|
|
4305
4311
|
color: "error",
|
|
4306
4312
|
variant: "elevated",
|
|
4307
4313
|
onClick: (t) => e.deleteCard(n.card.cardID)
|
|
@@ -4334,9 +4340,9 @@ function _sfc_render$4(e, t, n, r, i, a) {
|
|
|
4334
4340
|
});
|
|
4335
4341
|
}
|
|
4336
4342
|
t(_sfc_render$4, "_sfc_render");
|
|
4337
|
-
var
|
|
4343
|
+
var Jn = /* @__PURE__ */ r(Vn, [["render", _sfc_render$4], ["__scopeId", "data-v-5ecc9d21"]]), Yn = M({
|
|
4338
4344
|
name: "CourseInformation",
|
|
4339
|
-
components: { CourseCardBrowser:
|
|
4345
|
+
components: { CourseCardBrowser: Jn },
|
|
4340
4346
|
props: {
|
|
4341
4347
|
courseId: {
|
|
4342
4348
|
type: String,
|
|
@@ -4378,15 +4384,15 @@ var Kn = /* @__PURE__ */ r(zn, [["render", _sfc_render$4], ["__scopeId", "data-v
|
|
|
4378
4384
|
Y(`Dropping course ${this.courseId}`), (await this.user.dropCourse(this.courseId)).ok && (this.userIsRegistered = !1);
|
|
4379
4385
|
}
|
|
4380
4386
|
}
|
|
4381
|
-
}),
|
|
4387
|
+
}), Xn = { key: 0 }, Zn = { class: "text-h4 mb-2" }, Qn = { class: "text-body-2" }, $n = { key: 0 }, er = { key: 1 };
|
|
4382
4388
|
function _sfc_render$3(e, t, n, r, i, a) {
|
|
4383
4389
|
let o = V("v-btn"), s = V("v-icon"), c = V("v-toolbar-title"), l = V("v-toolbar-items"), u = V("v-toolbar"), d = V("v-chip"), f = V("v-card-text"), p = V("v-card"), m = V("course-card-browser");
|
|
4384
|
-
return e.updatePending ? D("", !0) : (L(), O("div",
|
|
4390
|
+
return e.updatePending ? D("", !0) : (L(), O("div", Xn, [
|
|
4385
4391
|
B(e.$slots, "header", {
|
|
4386
4392
|
courseConfig: e.courseConfig,
|
|
4387
4393
|
courseId: e.courseId
|
|
4388
|
-
}, () => [k("h1",
|
|
4389
|
-
k("p",
|
|
4394
|
+
}, () => [k("h1", Zn, H(e.courseConfig.name), 1)], !0),
|
|
4395
|
+
k("p", Qn, H(e.courseConfig.description), 1),
|
|
4390
4396
|
B(e.$slots, "actions", {
|
|
4391
4397
|
userIsRegistered: e.userIsRegistered,
|
|
4392
4398
|
courseId: e.courseId,
|
|
@@ -4397,7 +4403,7 @@ function _sfc_render$3(e, t, n, r, i, a) {
|
|
|
4397
4403
|
name: "component-fade",
|
|
4398
4404
|
mode: "out-in"
|
|
4399
4405
|
}, {
|
|
4400
|
-
default: W(() => [e.userIsRegistered ? (L(), O("div",
|
|
4406
|
+
default: W(() => [e.userIsRegistered ? (L(), O("div", $n, [
|
|
4401
4407
|
j(o, {
|
|
4402
4408
|
color: "success",
|
|
4403
4409
|
"data-cy": "focused-study-session-btn",
|
|
@@ -4440,7 +4446,7 @@ function _sfc_render$3(e, t, n, r, i, a) {
|
|
|
4440
4446
|
default: W(() => t[5] || (t[5] = [A(" Drop this course ")])),
|
|
4441
4447
|
_: 1
|
|
4442
4448
|
}, 8, ["onClick"])) : D("", !0)
|
|
4443
|
-
])) : (L(), O("div",
|
|
4449
|
+
])) : (L(), O("div", er, [j(o, {
|
|
4444
4450
|
"data-cy": "register-btn",
|
|
4445
4451
|
color: "primary",
|
|
4446
4452
|
class: "me-2",
|
|
@@ -4500,7 +4506,7 @@ function _sfc_render$3(e, t, n, r, i, a) {
|
|
|
4500
4506
|
]));
|
|
4501
4507
|
}
|
|
4502
4508
|
t(_sfc_render$3, "_sfc_render");
|
|
4503
|
-
var
|
|
4509
|
+
var tr = /* @__PURE__ */ r(Yn, [["render", _sfc_render$3], ["__scopeId", "data-v-38e9efe1"]]), nr = M({
|
|
4504
4510
|
name: "CardBrowser",
|
|
4505
4511
|
components: { CardViewer: Q },
|
|
4506
4512
|
props: {
|
|
@@ -4540,7 +4546,7 @@ var $n = /* @__PURE__ */ r(qn, [["render", _sfc_render$3], ["__scopeId", "data-v
|
|
|
4540
4546
|
this.viewIndex--, this.viewIndex = (this.viewIndex + this.views.length) % this.views.length;
|
|
4541
4547
|
}
|
|
4542
4548
|
}
|
|
4543
|
-
}),
|
|
4549
|
+
}), rr = {
|
|
4544
4550
|
key: 0,
|
|
4545
4551
|
class: "text-subtitle-1 pa-2"
|
|
4546
4552
|
};
|
|
@@ -4560,7 +4566,7 @@ function _sfc_render$2(e, t, n, r, i, a) {
|
|
|
4560
4566
|
}, null, 8, ["view", "data"]),
|
|
4561
4567
|
t[2] || (t[2] = k("br", null, null, -1)),
|
|
4562
4568
|
t[3] || (t[3] = k("br", null, null, -1)),
|
|
4563
|
-
e.suppressSpinner ? D("", !0) : (L(), O("div",
|
|
4569
|
+
e.suppressSpinner ? D("", !0) : (L(), O("div", rr, [
|
|
4564
4570
|
e.spinner ? (L(), E(c, {
|
|
4565
4571
|
key: 0,
|
|
4566
4572
|
icon: "",
|
|
@@ -4594,7 +4600,7 @@ function _sfc_render$2(e, t, n, r, i, a) {
|
|
|
4594
4600
|
});
|
|
4595
4601
|
}
|
|
4596
4602
|
t(_sfc_render$2, "_sfc_render");
|
|
4597
|
-
var
|
|
4603
|
+
var ir = /* @__PURE__ */ r(nr, [["render", _sfc_render$2]]), ar = M({
|
|
4598
4604
|
name: "CourseTagFilterWidget",
|
|
4599
4605
|
props: {
|
|
4600
4606
|
courseId: {
|
|
@@ -4649,13 +4655,13 @@ var nr = /* @__PURE__ */ r(er, [["render", _sfc_render$2]]), rr = M({
|
|
|
4649
4655
|
fuzzyFilter
|
|
4650
4656
|
};
|
|
4651
4657
|
}
|
|
4652
|
-
}),
|
|
4658
|
+
}), or = { class: "course-tag-filter-widget" }, sr = {
|
|
4653
4659
|
key: 0,
|
|
4654
4660
|
class: "filter-summary text-caption mt-2"
|
|
4655
|
-
},
|
|
4661
|
+
}, cr = { key: 0 }, lr = { key: 1 }, ur = { key: 2 };
|
|
4656
4662
|
function _sfc_render$1(e, t, n, r, i, a) {
|
|
4657
4663
|
let o = V("v-chip"), s = V("v-list-item"), c = V("v-autocomplete"), l = V("v-icon");
|
|
4658
|
-
return L(), O("div",
|
|
4664
|
+
return L(), O("div", or, [
|
|
4659
4665
|
j(c, {
|
|
4660
4666
|
modelValue: e.localFilter.include,
|
|
4661
4667
|
"onUpdate:modelValue": t[0] || (t[0] = (t) => e.localFilter.include = t),
|
|
@@ -4737,7 +4743,7 @@ function _sfc_render$1(e, t, n, r, i, a) {
|
|
|
4737
4743
|
"disabled",
|
|
4738
4744
|
"custom-filter"
|
|
4739
4745
|
]),
|
|
4740
|
-
e.hasActiveFilter ? (L(), O("div",
|
|
4746
|
+
e.hasActiveFilter ? (L(), O("div", sr, [
|
|
4741
4747
|
j(l, {
|
|
4742
4748
|
size: "small",
|
|
4743
4749
|
color: "info",
|
|
@@ -4746,18 +4752,18 @@ function _sfc_render$1(e, t, n, r, i, a) {
|
|
|
4746
4752
|
default: W(() => t[2] || (t[2] = [A("mdi-filter")])),
|
|
4747
4753
|
_: 1
|
|
4748
4754
|
}),
|
|
4749
|
-
e.localFilter.include.length ? (L(), O("span",
|
|
4750
|
-
e.localFilter.include.length && e.localFilter.exclude.length ? (L(), O("span",
|
|
4751
|
-
e.localFilter.exclude.length ? (L(), O("span",
|
|
4755
|
+
e.localFilter.include.length ? (L(), O("span", cr, " Including: " + H(e.localFilter.include.join(", ")), 1)) : D("", !0),
|
|
4756
|
+
e.localFilter.include.length && e.localFilter.exclude.length ? (L(), O("span", lr, " · ")) : D("", !0),
|
|
4757
|
+
e.localFilter.exclude.length ? (L(), O("span", ur, " Excluding: " + H(e.localFilter.exclude.join(", ")), 1)) : D("", !0)
|
|
4752
4758
|
])) : D("", !0)
|
|
4753
4759
|
]);
|
|
4754
4760
|
}
|
|
4755
4761
|
t(_sfc_render$1, "_sfc_render");
|
|
4756
|
-
var
|
|
4762
|
+
var dr = /* @__PURE__ */ r(ar, [["render", _sfc_render$1], ["__scopeId", "data-v-e1ba963b"]]), $ = {
|
|
4757
4763
|
min: 0,
|
|
4758
4764
|
startingMax: 2,
|
|
4759
4765
|
absoluteMax: 10
|
|
4760
|
-
},
|
|
4766
|
+
}, fr = "UserTagPreferenceFilter", pr = M({
|
|
4761
4767
|
name: "UserTagPreferences",
|
|
4762
4768
|
props: {
|
|
4763
4769
|
courseId: {
|
|
@@ -4823,7 +4829,7 @@ var lr = /* @__PURE__ */ r(rr, [["render", _sfc_render$1], ["__scopeId", "data-v
|
|
|
4823
4829
|
try {
|
|
4824
4830
|
if (this.user = await getCurrentUser() ?? null, !this.user) throw Error("User not available");
|
|
4825
4831
|
this.courseDB = X().getCourseDB(this.courseId), this.availableTags = (await this.courseDB.getCourseTagStubs()).rows.map((e) => e.doc).filter(Boolean);
|
|
4826
|
-
let e = await this.user.getStrategyState(this.courseId,
|
|
4832
|
+
let e = await this.user.getStrategyState(this.courseId, fr);
|
|
4827
4833
|
e ? this.preferences.boost = { ...e.boost } : this.preferences.boost = {}, this.savedPreferences.boost = { ...this.preferences.boost }, this.tagMaxRanges = {}, Object.keys(this.preferences.boost).forEach((e) => {
|
|
4828
4834
|
let t = this.preferences.boost[e], n = this.sliderConfigResolved.startingMax;
|
|
4829
4835
|
t > n ? this.tagMaxRanges[e] = Math.min(Math.ceil(t), this.sliderConfigResolved.absoluteMax) : this.tagMaxRanges[e] = n;
|
|
@@ -4874,7 +4880,7 @@ var lr = /* @__PURE__ */ r(rr, [["render", _sfc_render$1], ["__scopeId", "data-v
|
|
|
4874
4880
|
boost: { ...this.preferences.boost },
|
|
4875
4881
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
4876
4882
|
};
|
|
4877
|
-
await this.user.putStrategyState(this.courseId,
|
|
4883
|
+
await this.user.putStrategyState(this.courseId, fr, e), this.savedPreferences.boost = { ...this.preferences.boost }, this.saveSuccess = !0, this.$emit("preferences-saved", e);
|
|
4878
4884
|
} catch (e) {
|
|
4879
4885
|
console.error("Failed to save preferences:", e), this.saveError = "Failed to save preferences. Please try again.";
|
|
4880
4886
|
} finally {
|
|
@@ -4882,13 +4888,13 @@ var lr = /* @__PURE__ */ r(rr, [["render", _sfc_render$1], ["__scopeId", "data-v
|
|
|
4882
4888
|
}
|
|
4883
4889
|
}
|
|
4884
4890
|
}
|
|
4885
|
-
}),
|
|
4891
|
+
}), mr = { key: 1 }, hr = { class: "mb-6" }, gr = { class: "text-subtitle-1 font-weight-bold mb-2" }, _r = { class: "d-flex align-center ga-3 w-100" }, vr = {
|
|
4886
4892
|
class: "text-body-2 flex-shrink-0",
|
|
4887
4893
|
style: {
|
|
4888
4894
|
"min-width": "60px",
|
|
4889
4895
|
"text-align": "right"
|
|
4890
4896
|
}
|
|
4891
|
-
},
|
|
4897
|
+
}, yr = {
|
|
4892
4898
|
key: 2,
|
|
4893
4899
|
class: "d-flex justify-center py-8"
|
|
4894
4900
|
};
|
|
@@ -4908,12 +4914,12 @@ function _sfc_render(e, t, n, r, i, a) {
|
|
|
4908
4914
|
_: 1
|
|
4909
4915
|
})) : D("", !0),
|
|
4910
4916
|
j(_, null, {
|
|
4911
|
-
default: W(() => [e.courseId ? e.loading ? (L(), O("div",
|
|
4917
|
+
default: W(() => [e.courseId ? e.loading ? (L(), O("div", yr, [j(g, {
|
|
4912
4918
|
indeterminate: "",
|
|
4913
4919
|
color: "primary"
|
|
4914
|
-
})])) : (L(), O("div",
|
|
4915
|
-
k("div",
|
|
4916
|
-
k("h3",
|
|
4920
|
+
})])) : (L(), O("div", mr, [
|
|
4921
|
+
k("div", hr, [
|
|
4922
|
+
k("h3", gr, [j(o, {
|
|
4917
4923
|
start: "",
|
|
4918
4924
|
size: "small"
|
|
4919
4925
|
}, {
|
|
@@ -4953,7 +4959,7 @@ function _sfc_render(e, t, n, r, i, a) {
|
|
|
4953
4959
|
key: t,
|
|
4954
4960
|
class: "px-0"
|
|
4955
4961
|
}, {
|
|
4956
|
-
default: W(() => [k("div",
|
|
4962
|
+
default: W(() => [k("div", _r, [
|
|
4957
4963
|
j(f, {
|
|
4958
4964
|
size: "small",
|
|
4959
4965
|
variant: "tonal",
|
|
@@ -4981,7 +4987,7 @@ function _sfc_render(e, t, n, r, i, a) {
|
|
|
4981
4987
|
"max",
|
|
4982
4988
|
"onUpdate:modelValue"
|
|
4983
4989
|
]),
|
|
4984
|
-
k("span",
|
|
4990
|
+
k("span", vr, H(e.formatMultiplier(e.preferences.boost[t])), 1),
|
|
4985
4991
|
j(m, {
|
|
4986
4992
|
icon: "mdi-plus",
|
|
4987
4993
|
size: "small",
|
|
@@ -5076,8 +5082,8 @@ function _sfc_render(e, t, n, r, i, a) {
|
|
|
5076
5082
|
_: 1
|
|
5077
5083
|
}, 8, ["loading"]);
|
|
5078
5084
|
}
|
|
5079
|
-
var
|
|
5085
|
+
var br = /* @__PURE__ */ r(pr, [["render", _sfc_render], ["__scopeId", "data-v-8fb14605"]]);
|
|
5080
5086
|
//#endregion
|
|
5081
|
-
export { a as AudioAutoPlayer,
|
|
5087
|
+
export { a as AudioAutoPlayer, ir as CardBrowser, at as CardHistoryViewer, un as CardLoader, Ke as CardSearch, Qe as CardSearchResults, Q as CardViewer, f as CodeBlockRenderer, Jn as CourseCardBrowser, tr as CourseInformation, dr as CourseTagFilterWidget, Displayable, m as FillInInput, Ae as HeatMap, y as MarkdownRenderer, _ as MdTokenRenderer, $t as MultipleChoiceOption, Ue as PaginatingToolbar, Question, nn as RadioMultipleChoice, xn as RequestPasswordReset, Fn as ResetPassword, Bt as SessionControllerDebug, Ne as SkMouseTrap, Fe as SkMouseTrapToolTip, e as SkldrMouseTrap, Be as SnackbarService, Zt as StudySession, st as StudySessionTimer, on as TFSelect, Bn as TagsInput, dn as UserChip, cn as UserInputNumber, d as UserInputString, gn as UserLogin, Tn as UserLoginAndRegistrationContainer, vn as UserRegistration, br as UserTagPreferences, Mn as VerifyEmail, Z as alertUser, h as containsComponent, getCurrentUser, getUserStatus, v as isComponent, isDefineComponent, s as isInlineComponent, isPasswordValid, o as isQuestionView, p as parseComponentSyntax, b as parseComponentToken, te as piniaPlugin, requestPasswordReset, resetPassword, resolveLoginIdentifier, sendVerificationEmail, c as splitByDelimiters, l as splitParagraphToken, g as splitTextToken, useAuthStore, i as useCardPreviewModeStore, useConfigStore, useEntitlements, ee as useQuestionView, n as useViewable, validatePassword, verifyEmail };
|
|
5082
5088
|
|
|
5083
5089
|
//# sourceMappingURL=common-ui.es.js.map
|