@vue-skuilder/common-ui 0.2.8 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/index.css +1 -1
- package/dist/common-ui.es.js +175 -200
- package/dist/common-ui.es.js.map +1 -1
- package/dist/common-ui.umd.js +17 -17
- package/dist/common-ui.umd.js.map +1 -1
- package/dist/components/SessionControllerDebug.vue.d.ts +3 -2
- package/dist/components/SessionControllerDebug.vue.d.ts.map +1 -1
- package/dist/components/StudySession.types.d.ts +0 -11
- package/dist/components/StudySession.types.d.ts.map +1 -1
- package/dist/components/StudySession.vue.d.ts +1 -0
- package/dist/components/StudySession.vue.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/components/SessionControllerDebug.vue +22 -45
- package/src/components/StudySession.types.ts +0 -12
- package/src/components/StudySession.vue +0 -4
package/dist/common-ui.es.js
CHANGED
|
@@ -1248,19 +1248,15 @@ var Q = /* @__PURE__ */ r(ct, [["render", _sfc_render$17], ["__scopeId", "data-v
|
|
|
1248
1248
|
} },
|
|
1249
1249
|
setup(e) {
|
|
1250
1250
|
let t = R(0), n = null;
|
|
1251
|
-
|
|
1251
|
+
I(() => {
|
|
1252
1252
|
n = setInterval(() => {
|
|
1253
1253
|
t.value++;
|
|
1254
1254
|
}, 500);
|
|
1255
1255
|
}), ce(() => {
|
|
1256
1256
|
n && clearInterval(n);
|
|
1257
|
-
})
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
dequeueCount: 0,
|
|
1261
|
-
items: []
|
|
1262
|
-
},
|
|
1263
|
-
newQueue: {
|
|
1257
|
+
});
|
|
1258
|
+
let r = T(() => (t.value, e.sessionController ? e.sessionController.getDebugInfo() : {
|
|
1259
|
+
supplyQueue: {
|
|
1264
1260
|
length: 0,
|
|
1265
1261
|
dequeueCount: 0,
|
|
1266
1262
|
items: []
|
|
@@ -1275,42 +1271,40 @@ var Q = /* @__PURE__ */ r(ct, [["render", _sfc_render$17], ["__scopeId", "data-v
|
|
|
1275
1271
|
failedCacheSize: 0,
|
|
1276
1272
|
items: []
|
|
1277
1273
|
}
|
|
1278
|
-
}))
|
|
1274
|
+
})), fmtScore = (e) => e === void 0 ? "" : Number.isFinite(e) ? e.toFixed(2) : "REQ";
|
|
1275
|
+
return {
|
|
1276
|
+
debugInfo: r,
|
|
1277
|
+
fmtScore
|
|
1278
|
+
};
|
|
1279
1279
|
}
|
|
1280
1280
|
}), ut = { class: "debug-section" }, dt = { class: "debug-header" }, ft = { class: "debug-stats" }, pt = { class: "text-caption" }, mt = { class: "text-caption ml-2" }, ht = {
|
|
1281
1281
|
key: 0,
|
|
1282
1282
|
class: "debug-items"
|
|
1283
1283
|
}, gt = { class: "text-caption" }, _t = { class: "text-caption text-grey ml-1" }, vt = {
|
|
1284
|
-
|
|
1285
|
-
|
|
1284
|
+
class: "text-caption ml-1",
|
|
1285
|
+
style: { color: "#90caf9" }
|
|
1286
1286
|
}, yt = {
|
|
1287
|
-
key: 1,
|
|
1288
|
-
class: "text-caption text-grey"
|
|
1289
|
-
}, bt = { class: "debug-section" }, xt = { class: "debug-header" }, St = { class: "debug-stats" }, Ct = { class: "text-caption" }, wt = { class: "text-caption ml-2" }, Tt = {
|
|
1290
|
-
key: 0,
|
|
1291
|
-
class: "debug-items"
|
|
1292
|
-
}, Et = { class: "text-caption" }, Dt = { class: "text-caption text-grey ml-1" }, Ot = {
|
|
1293
1287
|
key: 0,
|
|
1294
1288
|
class: "text-caption text-grey"
|
|
1295
|
-
},
|
|
1289
|
+
}, bt = {
|
|
1296
1290
|
key: 1,
|
|
1297
1291
|
class: "text-caption text-grey"
|
|
1298
|
-
},
|
|
1292
|
+
}, xt = { class: "debug-section" }, St = { class: "debug-header" }, Ct = { class: "debug-stats" }, wt = { class: "text-caption" }, Tt = { class: "text-caption ml-2" }, Et = {
|
|
1299
1293
|
key: 0,
|
|
1300
1294
|
class: "debug-items"
|
|
1301
|
-
},
|
|
1295
|
+
}, Dt = { class: "text-caption" }, Ot = { class: "text-caption text-grey ml-1" }, kt = {
|
|
1302
1296
|
key: 0,
|
|
1303
1297
|
class: "text-caption text-grey"
|
|
1304
|
-
},
|
|
1298
|
+
}, At = {
|
|
1305
1299
|
key: 1,
|
|
1306
1300
|
class: "text-caption text-grey"
|
|
1307
|
-
},
|
|
1301
|
+
}, jt = { class: "debug-section" }, Mt = { class: "debug-header" }, Nt = { class: "debug-stats" }, Pt = { class: "text-caption" }, Ft = { class: "text-caption ml-2" }, It = {
|
|
1308
1302
|
key: 0,
|
|
1309
1303
|
class: "debug-items"
|
|
1310
|
-
},
|
|
1304
|
+
}, Lt = { class: "text-caption" }, Rt = {
|
|
1311
1305
|
key: 0,
|
|
1312
1306
|
class: "text-caption text-grey"
|
|
1313
|
-
},
|
|
1307
|
+
}, zt = {
|
|
1314
1308
|
key: 1,
|
|
1315
1309
|
class: "text-caption text-grey"
|
|
1316
1310
|
};
|
|
@@ -1333,84 +1327,65 @@ function _sfc_render$16(e, t, n, r, i, a) {
|
|
|
1333
1327
|
_: 1
|
|
1334
1328
|
}), j(f, { class: "pa-2" }, {
|
|
1335
1329
|
default: W(() => [j(u, { dense: "" }, {
|
|
1336
|
-
default: W(() => [
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
md: "4"
|
|
1380
|
-
}, {
|
|
1381
|
-
default: W(() => [k("div", At, [
|
|
1382
|
-
k("div", jt, [j(s, {
|
|
1383
|
-
size: "x-small",
|
|
1384
|
-
class: "mr-1"
|
|
1385
|
-
}, {
|
|
1386
|
-
default: W(() => t[6] || (t[6] = [A("mdi-alert-circle")])),
|
|
1387
|
-
_: 1
|
|
1388
|
-
}), t[7] || (t[7] = k("strong", null, "Failed Cards Queue", -1))]),
|
|
1389
|
-
k("div", Mt, [k("span", Nt, "Length: " + H(e.debugInfo.failedQueue.length), 1), k("span", Pt, "Dequeued: " + H(e.debugInfo.failedQueue.dequeueCount), 1)]),
|
|
1390
|
-
e.debugInfo.failedQueue.items.length > 0 ? (L(), O("div", Ft, [(L(!0), O(C, null, z(e.debugInfo.failedQueue.items.slice(0, 5), (e, t) => (L(), O("div", {
|
|
1391
|
-
key: t,
|
|
1392
|
-
class: "debug-item"
|
|
1393
|
-
}, [k("span", It, H(t) + ": " + H(e.courseID) + "::" + H(e.cardID), 1), k("span", Lt, "(" + H(e.status) + ")", 1)]))), 128)), e.debugInfo.failedQueue.items.length > 5 ? (L(), O("div", Rt, " ... +" + H(e.debugInfo.failedQueue.items.length - 5) + " more ", 1)) : D("", !0)])) : (L(), O("div", zt, " (empty) "))
|
|
1394
|
-
])]),
|
|
1395
|
-
_: 1
|
|
1396
|
-
})
|
|
1397
|
-
]),
|
|
1330
|
+
default: W(() => [j(l, {
|
|
1331
|
+
cols: "12",
|
|
1332
|
+
md: "8"
|
|
1333
|
+
}, {
|
|
1334
|
+
default: W(() => [k("div", ut, [
|
|
1335
|
+
k("div", dt, [j(s, {
|
|
1336
|
+
size: "x-small",
|
|
1337
|
+
class: "mr-1"
|
|
1338
|
+
}, {
|
|
1339
|
+
default: W(() => t[2] || (t[2] = [A("mdi-sort")])),
|
|
1340
|
+
_: 1
|
|
1341
|
+
}), t[3] || (t[3] = k("strong", null, "Supply Queue", -1))]),
|
|
1342
|
+
k("div", ft, [k("span", pt, "Length: " + H(e.debugInfo.supplyQueue.length), 1), k("span", mt, "Dequeued: " + H(e.debugInfo.supplyQueue.dequeueCount), 1)]),
|
|
1343
|
+
e.debugInfo.supplyQueue.items.length > 0 ? (L(), O("div", ht, [(L(!0), O(C, null, z(e.debugInfo.supplyQueue.items.slice(0, 8), (t, n) => (L(), O("div", {
|
|
1344
|
+
key: n,
|
|
1345
|
+
class: "debug-item"
|
|
1346
|
+
}, [
|
|
1347
|
+
k("span", gt, H(n) + ": " + H(t.courseID) + "::" + H(t.cardID), 1),
|
|
1348
|
+
k("span", _t, "(" + H(t.status) + ")", 1),
|
|
1349
|
+
k("span", vt, H(e.fmtScore(t.score)), 1)
|
|
1350
|
+
]))), 128)), e.debugInfo.supplyQueue.items.length > 8 ? (L(), O("div", yt, " ... +" + H(e.debugInfo.supplyQueue.items.length - 8) + " more ", 1)) : D("", !0)])) : (L(), O("div", bt, " (empty) "))
|
|
1351
|
+
])]),
|
|
1352
|
+
_: 1
|
|
1353
|
+
}), j(l, {
|
|
1354
|
+
cols: "12",
|
|
1355
|
+
md: "4"
|
|
1356
|
+
}, {
|
|
1357
|
+
default: W(() => [k("div", xt, [
|
|
1358
|
+
k("div", St, [j(s, {
|
|
1359
|
+
size: "x-small",
|
|
1360
|
+
class: "mr-1"
|
|
1361
|
+
}, {
|
|
1362
|
+
default: W(() => t[4] || (t[4] = [A("mdi-alert-circle")])),
|
|
1363
|
+
_: 1
|
|
1364
|
+
}), t[5] || (t[5] = k("strong", null, "Failed Cards Queue", -1))]),
|
|
1365
|
+
k("div", Ct, [k("span", wt, "Length: " + H(e.debugInfo.failedQueue.length), 1), k("span", Tt, "Dequeued: " + H(e.debugInfo.failedQueue.dequeueCount), 1)]),
|
|
1366
|
+
e.debugInfo.failedQueue.items.length > 0 ? (L(), O("div", Et, [(L(!0), O(C, null, z(e.debugInfo.failedQueue.items.slice(0, 5), (e, t) => (L(), O("div", {
|
|
1367
|
+
key: t,
|
|
1368
|
+
class: "debug-item"
|
|
1369
|
+
}, [k("span", Dt, H(t) + ": " + H(e.courseID) + "::" + H(e.cardID), 1), k("span", Ot, "(" + H(e.status) + ")", 1)]))), 128)), e.debugInfo.failedQueue.items.length > 5 ? (L(), O("div", kt, " ... +" + H(e.debugInfo.failedQueue.items.length - 5) + " more ", 1)) : D("", !0)])) : (L(), O("div", At, " (empty) "))
|
|
1370
|
+
])]),
|
|
1371
|
+
_: 1
|
|
1372
|
+
})]),
|
|
1398
1373
|
_: 1
|
|
1399
1374
|
}), j(u, { dense: "" }, {
|
|
1400
1375
|
default: W(() => [j(l, { cols: "12" }, {
|
|
1401
|
-
default: W(() => [j(d, { class: "my-2" }), k("div",
|
|
1402
|
-
k("div",
|
|
1376
|
+
default: W(() => [j(d, { class: "my-2" }), k("div", jt, [
|
|
1377
|
+
k("div", Mt, [j(s, {
|
|
1403
1378
|
size: "x-small",
|
|
1404
1379
|
class: "mr-1"
|
|
1405
1380
|
}, {
|
|
1406
|
-
default: W(() => t[
|
|
1381
|
+
default: W(() => t[6] || (t[6] = [A("mdi-database")])),
|
|
1407
1382
|
_: 1
|
|
1408
|
-
}), t[
|
|
1409
|
-
k("div",
|
|
1410
|
-
e.debugInfo.hydratedCache.items.length > 0 ? (L(), O("div",
|
|
1383
|
+
}), t[7] || (t[7] = k("strong", null, "Hydrated Cards Cache", -1))]),
|
|
1384
|
+
k("div", Nt, [k("span", Pt, "Cached: " + H(e.debugInfo.hydratedCache.count), 1), k("span", Ft, "Failed Cache: " + H(e.debugInfo.hydratedCache.failedCacheSize), 1)]),
|
|
1385
|
+
e.debugInfo.hydratedCache.items.length > 0 ? (L(), O("div", It, [(L(!0), O(C, null, z(e.debugInfo.hydratedCache.items.slice(0, 8), (e, t) => (L(), O("div", {
|
|
1411
1386
|
key: t,
|
|
1412
1387
|
class: "debug-item d-inline-block mr-3"
|
|
1413
|
-
}, [k("span",
|
|
1388
|
+
}, [k("span", Lt, H(e.courseID) + "::" + H(e.cardID), 1)]))), 128)), e.debugInfo.hydratedCache.items.length > 8 ? (L(), O("div", Rt, " ... +" + H(e.debugInfo.hydratedCache.items.length - 8) + " more ", 1)) : D("", !0)])) : (L(), O("div", zt, " (empty) "))
|
|
1414
1389
|
])]),
|
|
1415
1390
|
_: 1
|
|
1416
1391
|
})]),
|
|
@@ -1422,7 +1397,7 @@ function _sfc_render$16(e, t, n, r, i, a) {
|
|
|
1422
1397
|
})) : D("", !0);
|
|
1423
1398
|
}
|
|
1424
1399
|
t(_sfc_render$16, "_sfc_render");
|
|
1425
|
-
var
|
|
1400
|
+
var Bt = /* @__PURE__ */ r(lt, [["render", _sfc_render$16], ["__scopeId", "data-v-641ac170"]]), Vt = {};
|
|
1426
1401
|
(function main(e, t, n, r) {
|
|
1427
1402
|
var i = !!(e.Worker && e.Blob && e.Promise && e.OffscreenCanvas && e.OffscreenCanvasRenderingContext2D && e.HTMLCanvasElement && e.HTMLCanvasElement.prototype.transferControlToOffscreen && e.URL && e.URL.createObjectURL), a = typeof Path2D == "function" && typeof DOMMatrix == "function", o = (function() {
|
|
1428
1403
|
if (!e.OffscreenCanvas) return !1;
|
|
@@ -1797,12 +1772,12 @@ var Yt = /* @__PURE__ */ r(lt, [["render", _sfc_render$16], ["__scopeId", "data-
|
|
|
1797
1772
|
}, t.exports.create = confettiCannon, t.exports.shapeFromPath = shapeFromPath, t.exports.shapeFromText = shapeFromText;
|
|
1798
1773
|
})((function() {
|
|
1799
1774
|
return typeof window < "u" ? window : typeof self < "u" ? self : this || {};
|
|
1800
|
-
})(),
|
|
1801
|
-
var
|
|
1802
|
-
|
|
1775
|
+
})(), Vt, !1);
|
|
1776
|
+
var Ht = Vt.exports;
|
|
1777
|
+
Vt.exports.create;
|
|
1803
1778
|
//#endregion
|
|
1804
1779
|
//#region src/components/StudySession.vue?vue&type=script&lang.ts
|
|
1805
|
-
var
|
|
1780
|
+
var Ut = M({
|
|
1806
1781
|
name: "StudySession",
|
|
1807
1782
|
ref: {},
|
|
1808
1783
|
components: {
|
|
@@ -1810,7 +1785,7 @@ var Qt = M({
|
|
|
1810
1785
|
StudySessionTimer: st,
|
|
1811
1786
|
SkMouseTrap: Ne,
|
|
1812
1787
|
HeatMap: Ae,
|
|
1813
|
-
SessionControllerDebug:
|
|
1788
|
+
SessionControllerDebug: Bt
|
|
1814
1789
|
},
|
|
1815
1790
|
props: {
|
|
1816
1791
|
sessionTimeLimit: {
|
|
@@ -1943,7 +1918,7 @@ var Qt = M({
|
|
|
1943
1918
|
}
|
|
1944
1919
|
}))).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) => {});
|
|
1945
1920
|
let t = {};
|
|
1946
|
-
this.sessionConfig?.defaultBatchLimit !== void 0 && (t.defaultBatchLimit = this.sessionConfig.defaultBatchLimit), this.sessionConfig?.
|
|
1921
|
+
this.sessionConfig?.defaultBatchLimit !== void 0 && (t.defaultBatchLimit = this.sessionConfig.defaultBatchLimit), this.sessionConfig?.outcomeObservers?.length && (t.outcomeObservers = this.sessionConfig.outcomeObservers), 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");
|
|
1947
1922
|
} catch (e) {
|
|
1948
1923
|
console.error("[StudySession] Error during session preparation:", e), this.$emit("session-error", {
|
|
1949
1924
|
message: "Failed to prepare study session",
|
|
@@ -2000,7 +1975,7 @@ var Qt = M({
|
|
|
2000
1975
|
} catch (e) {
|
|
2001
1976
|
console.warn(`[StudySession] Error setting shadowWrapper style: ${e}`);
|
|
2002
1977
|
}
|
|
2003
|
-
this.sessionConfig.likesConfetti &&
|
|
1978
|
+
this.sessionConfig.likesConfetti && Ht({
|
|
2004
1979
|
origin: {
|
|
2005
1980
|
y: 1,
|
|
2006
1981
|
x: .25 + .5 * Math.random()
|
|
@@ -2053,17 +2028,17 @@ var Qt = M({
|
|
|
2053
2028
|
}), this.loading = !1;
|
|
2054
2029
|
}
|
|
2055
2030
|
}
|
|
2056
|
-
}),
|
|
2031
|
+
}), Wt = {
|
|
2057
2032
|
key: 0,
|
|
2058
2033
|
class: "StudySession"
|
|
2059
|
-
},
|
|
2034
|
+
}, Gt = { key: 2 }, Kt = { key: 3 }, qt = { class: "text-h4" }, Jt = { key: 0 }, Yt = {
|
|
2060
2035
|
key: 4,
|
|
2061
2036
|
ref: "shadowWrapper",
|
|
2062
2037
|
class: "card-transition-container"
|
|
2063
|
-
},
|
|
2038
|
+
}, Xt = { key: 0 };
|
|
2064
2039
|
function _sfc_render$15(e, t, n, r, i, a) {
|
|
2065
2040
|
let o = V("v-spacer"), s = V("v-progress-circular"), c = V("v-row"), l = V("session-controller-debug"), u = V("heat-map"), d = V("card-viewer"), f = V("StudySessionTimer"), p = V("v-col"), m = V("SkMouseTrap");
|
|
2066
|
-
return e.sessionPrepared ? (L(), O("div",
|
|
2041
|
+
return e.sessionPrepared ? (L(), O("div", Wt, [
|
|
2067
2042
|
e.frameless ? D("", !0) : (L(), E(c, {
|
|
2068
2043
|
key: 0,
|
|
2069
2044
|
align: "center"
|
|
@@ -2081,15 +2056,15 @@ function _sfc_render$15(e, t, n, r, i, a) {
|
|
|
2081
2056
|
key: 1,
|
|
2082
2057
|
"session-controller": e.sessionController
|
|
2083
2058
|
}, null, 8, ["session-controller"])) : D("", !0),
|
|
2084
|
-
e.frameless ? D("", !0) : (L(), O("br",
|
|
2085
|
-
e.sessionFinished ? (L(), O("div",
|
|
2059
|
+
e.frameless ? D("", !0) : (L(), O("br", Gt)),
|
|
2060
|
+
e.sessionFinished ? (L(), O("div", Kt, [B(e.$slots, "session-finished", {
|
|
2086
2061
|
sessionRecord: e.sessionRecord,
|
|
2087
2062
|
report: e.sessionController?.report
|
|
2088
|
-
}, () => [k("div",
|
|
2063
|
+
}, () => [k("div", qt, [
|
|
2089
2064
|
t[1] || (t[1] = k("p", null, "Study session finished! Great job!", -1)),
|
|
2090
|
-
e.sessionController ? (L(), O("p",
|
|
2065
|
+
e.sessionController ? (L(), O("p", Jt, H(e.sessionController.report), 1)) : D("", !0),
|
|
2091
2066
|
j(u, { "activity-records-getter": () => e.user.getActivityRecords() }, null, 8, ["activity-records-getter"])
|
|
2092
|
-
])], !0)])) : (L(), O("div",
|
|
2067
|
+
])], !0)])) : (L(), O("div", Yt, [j(w, { name: e.transitionName }, {
|
|
2093
2068
|
default: W(() => [e.view ? (L(), E(d, {
|
|
2094
2069
|
ref: "cardViewer",
|
|
2095
2070
|
key: e.cardID,
|
|
@@ -2120,7 +2095,7 @@ function _sfc_render$15(e, t, n, r, i, a) {
|
|
|
2120
2095
|
])) : D("", !0)]),
|
|
2121
2096
|
_: 1
|
|
2122
2097
|
}, 8, ["name"])], 512)),
|
|
2123
|
-
e.frameless ? D("", !0) : (L(), O(C, { key: 5 }, [t[2] || (t[2] = k("br", null, null, -1)), e.sessionController ? (L(), O("div",
|
|
2098
|
+
e.frameless ? D("", !0) : (L(), O(C, { key: 5 }, [t[2] || (t[2] = k("br", null, null, -1)), e.sessionController ? (L(), O("div", Xt, [(L(!0), O(C, null, z(e.sessionController.failedCount, (e) => (L(), O("span", {
|
|
2124
2099
|
key: e,
|
|
2125
2100
|
class: "text-h5"
|
|
2126
2101
|
}, "•"))), 128))])) : D("", !0)], 64)),
|
|
@@ -2159,7 +2134,7 @@ function _sfc_render$15(e, t, n, r, i, a) {
|
|
|
2159
2134
|
])) : D("", !0);
|
|
2160
2135
|
}
|
|
2161
2136
|
t(_sfc_render$15, "_sfc_render");
|
|
2162
|
-
var
|
|
2137
|
+
var Zt = /* @__PURE__ */ r(Ut, [["render", _sfc_render$15], ["__scopeId", "data-v-0279250f"]]), Qt = M({
|
|
2163
2138
|
name: "MultipleChoiceOption",
|
|
2164
2139
|
components: { MarkdownRenderer: re(() => import("./MarkdownRenderer-kStoDRNE.mjs").then((e) => e.n)) },
|
|
2165
2140
|
props: {
|
|
@@ -2246,9 +2221,9 @@ function _sfc_render$14(e, t, n, r, i, a) {
|
|
|
2246
2221
|
]);
|
|
2247
2222
|
}
|
|
2248
2223
|
t(_sfc_render$14, "_sfc_render");
|
|
2249
|
-
var
|
|
2224
|
+
var $t = /* @__PURE__ */ r(Qt, [["render", _sfc_render$14], ["__scopeId", "data-v-96de7172"]]), en = M({
|
|
2250
2225
|
name: "RadioMultipleChoice",
|
|
2251
|
-
components: { MultipleChoiceOption:
|
|
2226
|
+
components: { MultipleChoiceOption: $t },
|
|
2252
2227
|
extends: u,
|
|
2253
2228
|
props: { choiceList: {
|
|
2254
2229
|
type: Array,
|
|
@@ -2340,13 +2315,13 @@ var ln = /* @__PURE__ */ r(cn, [["render", _sfc_render$14], ["__scopeId", "data-
|
|
|
2340
2315
|
});
|
|
2341
2316
|
}
|
|
2342
2317
|
}
|
|
2343
|
-
}),
|
|
2318
|
+
}), tn = {
|
|
2344
2319
|
ref: "containerRef",
|
|
2345
2320
|
class: "multipleChoice"
|
|
2346
2321
|
};
|
|
2347
2322
|
function _sfc_render$13(e, t, n, r, i, a) {
|
|
2348
2323
|
let o = V("MultipleChoiceOption");
|
|
2349
|
-
return L(), O("div",
|
|
2324
|
+
return L(), O("div", tn, [(L(!0), O(C, null, z(e.choiceList, (t, n) => (L(), E(o, {
|
|
2350
2325
|
key: n,
|
|
2351
2326
|
content: t,
|
|
2352
2327
|
selected: e.choiceList.indexOf(t) === e.currentSelection,
|
|
@@ -2364,9 +2339,9 @@ function _sfc_render$13(e, t, n, r, i, a) {
|
|
|
2364
2339
|
]))), 128))], 512);
|
|
2365
2340
|
}
|
|
2366
2341
|
t(_sfc_render$13, "_sfc_render");
|
|
2367
|
-
var
|
|
2342
|
+
var nn = /* @__PURE__ */ r(en, [["render", _sfc_render$13]]), rn = M({
|
|
2368
2343
|
name: "TrueFalse",
|
|
2369
|
-
components: { RadioMultipleChoice:
|
|
2344
|
+
components: { RadioMultipleChoice: nn },
|
|
2370
2345
|
props: {
|
|
2371
2346
|
MouseTrap: {
|
|
2372
2347
|
type: Object,
|
|
@@ -2377,17 +2352,17 @@ var fn = /* @__PURE__ */ r(un, [["render", _sfc_render$13]]), pn = M({
|
|
|
2377
2352
|
required: !0
|
|
2378
2353
|
}
|
|
2379
2354
|
}
|
|
2380
|
-
}),
|
|
2355
|
+
}), an = { "data-viewable": "TrueFalse" };
|
|
2381
2356
|
function _sfc_render$12(e, t, n, r, i, a) {
|
|
2382
2357
|
let o = V("RadioMultipleChoice");
|
|
2383
|
-
return L(), O("div",
|
|
2358
|
+
return L(), O("div", an, [j(o, {
|
|
2384
2359
|
"choice-list": ["True", "False"],
|
|
2385
2360
|
MouseTrap: e.MouseTrap,
|
|
2386
2361
|
submit: e.submit
|
|
2387
2362
|
}, null, 8, ["MouseTrap", "submit"])]);
|
|
2388
2363
|
}
|
|
2389
2364
|
t(_sfc_render$12, "_sfc_render");
|
|
2390
|
-
var
|
|
2365
|
+
var on = /* @__PURE__ */ r(rn, [["render", _sfc_render$12]]), sn = M({
|
|
2391
2366
|
name: "UserInputNumber",
|
|
2392
2367
|
ref: {},
|
|
2393
2368
|
extends: u,
|
|
@@ -2429,7 +2404,7 @@ function _sfc_render$11(e, t, n, r, i, a) {
|
|
|
2429
2404
|
});
|
|
2430
2405
|
}
|
|
2431
2406
|
t(_sfc_render$11, "_sfc_render");
|
|
2432
|
-
var
|
|
2407
|
+
var cn = /* @__PURE__ */ r(sn, [["render", _sfc_render$11], ["__scopeId", "data-v-a56dcd1c"]]), ln = M({
|
|
2433
2408
|
name: "CardLoader",
|
|
2434
2409
|
components: { CardViewer: Q },
|
|
2435
2410
|
props: {
|
|
@@ -2517,7 +2492,7 @@ function _sfc_render$10(e, t, n, r, i, a) {
|
|
|
2517
2492
|
]));
|
|
2518
2493
|
}
|
|
2519
2494
|
t(_sfc_render$10, "_sfc_render");
|
|
2520
|
-
var
|
|
2495
|
+
var un = /* @__PURE__ */ r(ln, [["render", _sfc_render$10], ["__scopeId", "data-v-93f758b5"]]);
|
|
2521
2496
|
//#endregion
|
|
2522
2497
|
//#region src/stores/useAuthStore.ts
|
|
2523
2498
|
async function getCurrentUser() {
|
|
@@ -2663,7 +2638,7 @@ function useAuthUI() {
|
|
|
2663
2638
|
}
|
|
2664
2639
|
//#endregion
|
|
2665
2640
|
//#region src/components/auth/UserChip.vue
|
|
2666
|
-
var
|
|
2641
|
+
var dn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
2667
2642
|
__name: "UserChip",
|
|
2668
2643
|
props: {
|
|
2669
2644
|
showLoginButton: { type: Boolean },
|
|
@@ -2864,7 +2839,7 @@ var bn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
|
2864
2839
|
}, 8, ["modelValue"])], 64);
|
|
2865
2840
|
};
|
|
2866
2841
|
}
|
|
2867
|
-
}), [["__scopeId", "data-v-9a38a213"]]),
|
|
2842
|
+
}), [["__scopeId", "data-v-9a38a213"]]), fn = { class: "d-flex flex-column align-start" }, pn = { class: "mb-2" }, mn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
2868
2843
|
__name: "UserLogin",
|
|
2869
2844
|
props: { redirectTo: { default: "/study" } },
|
|
2870
2845
|
emits: [
|
|
@@ -2954,7 +2929,7 @@ var bn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
|
2954
2929
|
})]),
|
|
2955
2930
|
_: 1
|
|
2956
2931
|
}, 8, ["modelValue", "timeout"]),
|
|
2957
|
-
k("div",
|
|
2932
|
+
k("div", fn, [k("div", pn, [j(i, {
|
|
2958
2933
|
class: "mr-2",
|
|
2959
2934
|
type: "submit",
|
|
2960
2935
|
loading: d.value,
|
|
@@ -3006,7 +2981,7 @@ function isPasswordValid(e) {
|
|
|
3006
2981
|
}
|
|
3007
2982
|
//#endregion
|
|
3008
2983
|
//#region src/components/auth/UserRegistration.vue?vue&type=script&lang.ts
|
|
3009
|
-
var
|
|
2984
|
+
var hn = M({
|
|
3010
2985
|
name: "UserRegistration",
|
|
3011
2986
|
props: { onSignupSuccess: {
|
|
3012
2987
|
type: Function,
|
|
@@ -3265,7 +3240,7 @@ function _sfc_render$9(e, t, n, r, i, a) {
|
|
|
3265
3240
|
});
|
|
3266
3241
|
}
|
|
3267
3242
|
t(_sfc_render$9, "_sfc_render");
|
|
3268
|
-
var
|
|
3243
|
+
var gn = /* @__PURE__ */ r(hn, [["render", _sfc_render$9]]), _n = M({
|
|
3269
3244
|
name: "RequestPasswordReset",
|
|
3270
3245
|
emits: ["cancel", "success"],
|
|
3271
3246
|
data() {
|
|
@@ -3301,7 +3276,7 @@ var Tn = /* @__PURE__ */ r(wn, [["render", _sfc_render$9]]), En = M({
|
|
|
3301
3276
|
}
|
|
3302
3277
|
}
|
|
3303
3278
|
}
|
|
3304
|
-
}),
|
|
3279
|
+
}), vn = {
|
|
3305
3280
|
key: 1,
|
|
3306
3281
|
class: "text-center"
|
|
3307
3282
|
};
|
|
@@ -3314,7 +3289,7 @@ function _sfc_render$8(e, t, n, r, i, a) {
|
|
|
3314
3289
|
_: 1
|
|
3315
3290
|
}),
|
|
3316
3291
|
j(d, { class: "pa-6" }, {
|
|
3317
|
-
default: W(() => [e.requestSent ? (L(), O("div",
|
|
3292
|
+
default: W(() => [e.requestSent ? (L(), O("div", vn, [
|
|
3318
3293
|
j(c, {
|
|
3319
3294
|
color: "success",
|
|
3320
3295
|
size: "64",
|
|
@@ -3388,7 +3363,7 @@ function _sfc_render$8(e, t, n, r, i, a) {
|
|
|
3388
3363
|
});
|
|
3389
3364
|
}
|
|
3390
3365
|
t(_sfc_render$8, "_sfc_render");
|
|
3391
|
-
var
|
|
3366
|
+
var yn = /* @__PURE__ */ r(_n, [["render", _sfc_render$8]]), bn = { key: 0 }, xn = { key: "login-buttons" }, Sn = { key: "user-chip" }, Cn = /* @__PURE__ */ r(/* @__PURE__ */ M({
|
|
3392
3367
|
__name: "UserLoginAndRegistrationContainer",
|
|
3393
3368
|
props: {
|
|
3394
3369
|
showLoginButton: { type: Boolean },
|
|
@@ -3438,11 +3413,11 @@ var On = /* @__PURE__ */ r(En, [["render", _sfc_render$8]]), kn = { key: 0 }, An
|
|
|
3438
3413
|
};
|
|
3439
3414
|
return (e, t) => {
|
|
3440
3415
|
let n = V("v-btn"), r = V("v-dialog");
|
|
3441
|
-
return c.value && s.value ? (L(), O("div",
|
|
3416
|
+
return c.value && s.value ? (L(), O("div", bn, [j(w, {
|
|
3442
3417
|
name: "component-fade",
|
|
3443
3418
|
mode: "out-in"
|
|
3444
3419
|
}, {
|
|
3445
|
-
default: W(() => [l.value ? (L(), O("div",
|
|
3420
|
+
default: W(() => [l.value ? (L(), O("div", xn, [
|
|
3446
3421
|
u.value.showLoginRegistration ? (L(), E(r, {
|
|
3447
3422
|
key: 0,
|
|
3448
3423
|
modelValue: d.value,
|
|
@@ -3457,7 +3432,7 @@ var On = /* @__PURE__ */ r(En, [["render", _sfc_render$8]]), kn = { key: 0 }, An
|
|
|
3457
3432
|
default: W(() => t[3] || (t[3] = [A("Sign Up")])),
|
|
3458
3433
|
_: 2
|
|
3459
3434
|
}, 1040)]),
|
|
3460
|
-
default: W(() => [j(
|
|
3435
|
+
default: W(() => [j(gn, {
|
|
3461
3436
|
onToggle: toggle,
|
|
3462
3437
|
onSignupSuccess: handleSignupSuccess,
|
|
3463
3438
|
"on-signup-success": handleSignupSuccess
|
|
@@ -3476,7 +3451,7 @@ var On = /* @__PURE__ */ r(En, [["render", _sfc_render$8]]), kn = { key: 0 }, An
|
|
|
3476
3451
|
default: W(() => t[4] || (t[4] = [A("Log In")])),
|
|
3477
3452
|
_: 2
|
|
3478
3453
|
}, 1040)]),
|
|
3479
|
-
default: W(() => [j(
|
|
3454
|
+
default: W(() => [j(mn, {
|
|
3480
3455
|
onToggle: toggle,
|
|
3481
3456
|
onForgotPassword: openResetDialog
|
|
3482
3457
|
})]),
|
|
@@ -3487,18 +3462,18 @@ var On = /* @__PURE__ */ r(En, [["render", _sfc_render$8]]), kn = { key: 0 }, An
|
|
|
3487
3462
|
"onUpdate:modelValue": t[2] || (t[2] = (e) => p.value = e),
|
|
3488
3463
|
width: "500px"
|
|
3489
3464
|
}, {
|
|
3490
|
-
default: W(() => [j(
|
|
3465
|
+
default: W(() => [j(yn, {
|
|
3491
3466
|
onCancel: closeResetDialog,
|
|
3492
3467
|
onSuccess: closeResetDialog
|
|
3493
3468
|
})]),
|
|
3494
3469
|
_: 1
|
|
3495
3470
|
}, 8, ["modelValue"])
|
|
3496
|
-
])) : (L(), O("div",
|
|
3471
|
+
])) : (L(), O("div", Sn, [j(dn)]))]),
|
|
3497
3472
|
_: 1
|
|
3498
3473
|
})])) : D("", !0);
|
|
3499
3474
|
};
|
|
3500
3475
|
}
|
|
3501
|
-
}), [["__scopeId", "data-v-5a55bdf0"]]),
|
|
3476
|
+
}), [["__scopeId", "data-v-5a55bdf0"]]), wn = M({
|
|
3502
3477
|
name: "VerifyEmail",
|
|
3503
3478
|
emits: ["verified", "error"],
|
|
3504
3479
|
props: { token: {
|
|
@@ -3546,16 +3521,16 @@ var On = /* @__PURE__ */ r(En, [["render", _sfc_render$8]]), kn = { key: 0 }, An
|
|
|
3546
3521
|
return typeof window > "u" ? null : new URLSearchParams(window.location.search).get("token");
|
|
3547
3522
|
}
|
|
3548
3523
|
}
|
|
3549
|
-
}),
|
|
3524
|
+
}), Tn = {
|
|
3550
3525
|
key: 0,
|
|
3551
3526
|
class: "text-center"
|
|
3552
|
-
},
|
|
3527
|
+
}, En = {
|
|
3553
3528
|
key: 1,
|
|
3554
3529
|
class: "text-center"
|
|
3555
|
-
},
|
|
3530
|
+
}, Dn = { key: 0 }, On = {
|
|
3556
3531
|
key: 2,
|
|
3557
3532
|
class: "text-center"
|
|
3558
|
-
},
|
|
3533
|
+
}, kn = {
|
|
3559
3534
|
key: 3,
|
|
3560
3535
|
class: "text-center"
|
|
3561
3536
|
};
|
|
@@ -3581,12 +3556,12 @@ function _sfc_render$7(e, t, n, r, i, a) {
|
|
|
3581
3556
|
_: 1
|
|
3582
3557
|
}),
|
|
3583
3558
|
j(l, { class: "pa-6" }, {
|
|
3584
|
-
default: W(() => [e.isVerifying ? (L(), O("div",
|
|
3559
|
+
default: W(() => [e.isVerifying ? (L(), O("div", Tn, [j(s, {
|
|
3585
3560
|
indeterminate: "",
|
|
3586
3561
|
color: "primary",
|
|
3587
3562
|
size: "64",
|
|
3588
3563
|
class: "mb-4"
|
|
3589
|
-
}), t[3] || (t[3] = k("p", null, "Verifying your email...", -1))])) : e.verificationStatus === "success" ? (L(), O("div",
|
|
3564
|
+
}), t[3] || (t[3] = k("p", null, "Verifying your email...", -1))])) : e.verificationStatus === "success" ? (L(), O("div", En, [
|
|
3590
3565
|
j(c, {
|
|
3591
3566
|
color: "success",
|
|
3592
3567
|
size: "64",
|
|
@@ -3597,8 +3572,8 @@ function _sfc_render$7(e, t, n, r, i, a) {
|
|
|
3597
3572
|
}),
|
|
3598
3573
|
t[5] || (t[5] = k("h3", { class: "mb-2" }, "Email Verified!", -1)),
|
|
3599
3574
|
t[6] || (t[6] = k("p", null, "Your account has been successfully verified.", -1)),
|
|
3600
|
-
e.username ? (L(), O("p",
|
|
3601
|
-
])) : e.verificationStatus === "error" ? (L(), O("div",
|
|
3575
|
+
e.username ? (L(), O("p", Dn, "Welcome, " + H(e.username) + "!", 1)) : D("", !0)
|
|
3576
|
+
])) : e.verificationStatus === "error" ? (L(), O("div", On, [
|
|
3602
3577
|
j(c, {
|
|
3603
3578
|
color: "error",
|
|
3604
3579
|
size: "64",
|
|
@@ -3609,7 +3584,7 @@ function _sfc_render$7(e, t, n, r, i, a) {
|
|
|
3609
3584
|
}),
|
|
3610
3585
|
t[8] || (t[8] = k("h3", { class: "mb-2" }, "Verification Failed", -1)),
|
|
3611
3586
|
k("p", null, H(e.errorMessage), 1)
|
|
3612
|
-
])) : (L(), O("div",
|
|
3587
|
+
])) : (L(), O("div", kn, [
|
|
3613
3588
|
j(c, {
|
|
3614
3589
|
color: "warning",
|
|
3615
3590
|
size: "64",
|
|
@@ -3655,7 +3630,7 @@ function _sfc_render$7(e, t, n, r, i, a) {
|
|
|
3655
3630
|
});
|
|
3656
3631
|
}
|
|
3657
3632
|
t(_sfc_render$7, "_sfc_render");
|
|
3658
|
-
var
|
|
3633
|
+
var An = /* @__PURE__ */ r(wn, [["render", _sfc_render$7]]), jn = M({
|
|
3659
3634
|
name: "ResetPassword",
|
|
3660
3635
|
emits: ["complete", "error"],
|
|
3661
3636
|
props: { token: {
|
|
@@ -3713,7 +3688,7 @@ var zn = /* @__PURE__ */ r(Nn, [["render", _sfc_render$7]]), Bn = M({
|
|
|
3713
3688
|
return typeof window > "u" ? null : new URLSearchParams(window.location.search).get("token");
|
|
3714
3689
|
}
|
|
3715
3690
|
}
|
|
3716
|
-
}),
|
|
3691
|
+
}), Mn = {
|
|
3717
3692
|
key: 1,
|
|
3718
3693
|
class: "text-center"
|
|
3719
3694
|
};
|
|
@@ -3739,7 +3714,7 @@ function _sfc_render$6(e, t, n, r, i, a) {
|
|
|
3739
3714
|
_: 1
|
|
3740
3715
|
}),
|
|
3741
3716
|
j(d, { class: "pa-6" }, {
|
|
3742
|
-
default: W(() => [e.isComplete ? (L(), O("div",
|
|
3717
|
+
default: W(() => [e.isComplete ? (L(), O("div", Mn, [
|
|
3743
3718
|
j(c, {
|
|
3744
3719
|
color: "success",
|
|
3745
3720
|
size: "64",
|
|
@@ -3833,7 +3808,7 @@ function _sfc_render$6(e, t, n, r, i, a) {
|
|
|
3833
3808
|
});
|
|
3834
3809
|
}
|
|
3835
3810
|
t(_sfc_render$6, "_sfc_render");
|
|
3836
|
-
var
|
|
3811
|
+
var Nn = /* @__PURE__ */ r(jn, [["render", _sfc_render$6]]), Pn = M({
|
|
3837
3812
|
name: "SkTagsInput",
|
|
3838
3813
|
components: { VueTagsInput: Te },
|
|
3839
3814
|
props: {
|
|
@@ -3940,13 +3915,13 @@ var Hn = /* @__PURE__ */ r(Bn, [["render", _sfc_render$6]]), Un = M({
|
|
|
3940
3915
|
this.loading = !1;
|
|
3941
3916
|
}
|
|
3942
3917
|
}
|
|
3943
|
-
}),
|
|
3918
|
+
}), Fn = { "data-cy": "tags-input" }, In = { class: "tag-name" }, Ln = {
|
|
3944
3919
|
key: 0,
|
|
3945
3920
|
class: "tag-snippet"
|
|
3946
3921
|
};
|
|
3947
3922
|
function _sfc_render$5(e, t, n, r, i, a) {
|
|
3948
3923
|
let o = V("vue-tags-input"), s = V("v-btn");
|
|
3949
|
-
return L(), O("div",
|
|
3924
|
+
return L(), O("div", Fn, [j(o, {
|
|
3950
3925
|
modelValue: e.tag,
|
|
3951
3926
|
"onUpdate:modelValue": t[0] || (t[0] = (t) => e.tag = t),
|
|
3952
3927
|
tags: e.tags,
|
|
@@ -3955,7 +3930,7 @@ function _sfc_render$5(e, t, n, r, i, a) {
|
|
|
3955
3930
|
"add-on-key": e.separators,
|
|
3956
3931
|
onTagsChanged: e.tagsChanged
|
|
3957
3932
|
}, {
|
|
3958
|
-
"autocomplete-item": W((e) => [k("div", { class: F(["autocomplete-item", { "is-active": e.selected }]) }, [k("span",
|
|
3933
|
+
"autocomplete-item": W((e) => [k("div", { class: F(["autocomplete-item", { "is-active": e.selected }]) }, [k("span", In, H(e.item.text), 1), e.item.data && e.item.data.snippet ? (L(), O("span", Ln, " - " + H(e.item.data.snippet), 1)) : D("", !0)], 2)]),
|
|
3959
3934
|
_: 1
|
|
3960
3935
|
}, 8, [
|
|
3961
3936
|
"modelValue",
|
|
@@ -3975,11 +3950,11 @@ function _sfc_render$5(e, t, n, r, i, a) {
|
|
|
3975
3950
|
}, 8, ["loading", "onClick"]))]);
|
|
3976
3951
|
}
|
|
3977
3952
|
t(_sfc_render$5, "_sfc_render");
|
|
3978
|
-
var
|
|
3953
|
+
var Rn = /* @__PURE__ */ r(Pn, [["render", _sfc_render$5], ["__scopeId", "data-v-f7373dc0"]]), zn = M({
|
|
3979
3954
|
name: "CourseCardBrowser",
|
|
3980
3955
|
components: {
|
|
3981
|
-
CardLoader:
|
|
3982
|
-
TagsInput:
|
|
3956
|
+
CardLoader: un,
|
|
3957
|
+
TagsInput: Rn,
|
|
3983
3958
|
PaginatingToolbar: Ue
|
|
3984
3959
|
},
|
|
3985
3960
|
props: {
|
|
@@ -4134,26 +4109,26 @@ var qn = /* @__PURE__ */ r(Un, [["render", _sfc_render$5], ["__scopeId", "data-v
|
|
|
4134
4109
|
}
|
|
4135
4110
|
}
|
|
4136
4111
|
}
|
|
4137
|
-
}),
|
|
4112
|
+
}), Bn = {
|
|
4138
4113
|
key: 0,
|
|
4139
4114
|
class: "d-flex justify-center align-center pa-6"
|
|
4140
|
-
},
|
|
4115
|
+
}, Vn = { key: 1 }, Hn = {
|
|
4141
4116
|
key: 0,
|
|
4142
4117
|
class: "px-4 py-2 bg-blue-grey-lighten-5"
|
|
4143
|
-
},
|
|
4118
|
+
}, Un = {
|
|
4144
4119
|
key: 0,
|
|
4145
4120
|
class: "mt-4"
|
|
4146
|
-
},
|
|
4121
|
+
}, Wn = { class: "mt-4" }, Gn = {
|
|
4147
4122
|
key: 0,
|
|
4148
4123
|
class: "ml-4"
|
|
4149
4124
|
};
|
|
4150
4125
|
function _sfc_render$4(e, t, n, r, i, a) {
|
|
4151
4126
|
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");
|
|
4152
4127
|
return L(), E(y, null, {
|
|
4153
|
-
default: W(() => [e.updatePending ? (L(), O("div",
|
|
4128
|
+
default: W(() => [e.updatePending ? (L(), O("div", Bn, [j(o, {
|
|
4154
4129
|
indeterminate: "",
|
|
4155
4130
|
color: "primary"
|
|
4156
|
-
})])) : (L(), O("div",
|
|
4131
|
+
})])) : (L(), O("div", Vn, [
|
|
4157
4132
|
j(s, {
|
|
4158
4133
|
title: "Exercises",
|
|
4159
4134
|
page: e.page,
|
|
@@ -4236,13 +4211,13 @@ function _sfc_render$4(e, t, n, r, i, a) {
|
|
|
4236
4211
|
_: 2
|
|
4237
4212
|
}, 1032, ["modelValue", "onUpdate:modelValue"])]),
|
|
4238
4213
|
_: 2
|
|
4239
|
-
}, 1032, ["class"]), n.isOpen ? (L(), O("div",
|
|
4214
|
+
}, 1032, ["class"]), n.isOpen ? (L(), O("div", Hn, [
|
|
4240
4215
|
j(m, {
|
|
4241
4216
|
qualified_id: n.card,
|
|
4242
4217
|
"view-lookup": e.viewLookup,
|
|
4243
4218
|
class: "elevation-1"
|
|
4244
4219
|
}, null, 8, ["qualified_id", "view-lookup"]),
|
|
4245
|
-
e.editMode === "readonly" && e.cardTags[n.card.cardID] ? (L(), O("div",
|
|
4220
|
+
e.editMode === "readonly" && e.cardTags[n.card.cardID] ? (L(), O("div", Un, [j(g, null, {
|
|
4246
4221
|
default: W(() => [(L(!0), O(C, null, z(e.cardTags[n.card.cardID], (e) => (L(), E(h, {
|
|
4247
4222
|
key: e.name,
|
|
4248
4223
|
size: "small",
|
|
@@ -4259,14 +4234,14 @@ function _sfc_render$4(e, t, n, r, i, a) {
|
|
|
4259
4234
|
"card-i-d": n.card.cardID,
|
|
4260
4235
|
class: "mt-4"
|
|
4261
4236
|
}, null, 8, ["course-i-d", "card-i-d"]), [[ue, e.internalEditMode === "tags" && e.editMode === "full"]]),
|
|
4262
|
-
de(k("div",
|
|
4237
|
+
de(k("div", Wn, [j(u, {
|
|
4263
4238
|
color: "error",
|
|
4264
4239
|
variant: "outlined",
|
|
4265
4240
|
onClick: (e) => n.delBtn = !0
|
|
4266
4241
|
}, {
|
|
4267
4242
|
default: W(() => t[6] || (t[6] = [A(" Delete this card ")])),
|
|
4268
4243
|
_: 2
|
|
4269
|
-
}, 1032, ["onClick"]), n.delBtn ? (L(), O("span",
|
|
4244
|
+
}, 1032, ["onClick"]), n.delBtn ? (L(), O("span", Gn, [t[8] || (t[8] = k("span", { class: "mr-2" }, "Are you sure?", -1)), j(u, {
|
|
4270
4245
|
color: "error",
|
|
4271
4246
|
variant: "elevated",
|
|
4272
4247
|
onClick: (t) => e.deleteCard(n.card.cardID)
|
|
@@ -4299,9 +4274,9 @@ function _sfc_render$4(e, t, n, r, i, a) {
|
|
|
4299
4274
|
});
|
|
4300
4275
|
}
|
|
4301
4276
|
t(_sfc_render$4, "_sfc_render");
|
|
4302
|
-
var
|
|
4277
|
+
var Kn = /* @__PURE__ */ r(zn, [["render", _sfc_render$4], ["__scopeId", "data-v-5ecc9d21"]]), qn = M({
|
|
4303
4278
|
name: "CourseInformation",
|
|
4304
|
-
components: { CourseCardBrowser:
|
|
4279
|
+
components: { CourseCardBrowser: Kn },
|
|
4305
4280
|
props: {
|
|
4306
4281
|
courseId: {
|
|
4307
4282
|
type: String,
|
|
@@ -4343,15 +4318,15 @@ var tr = /* @__PURE__ */ r(Jn, [["render", _sfc_render$4], ["__scopeId", "data-v
|
|
|
4343
4318
|
Y(`Dropping course ${this.courseId}`), (await this.user.dropCourse(this.courseId)).ok && (this.userIsRegistered = !1);
|
|
4344
4319
|
}
|
|
4345
4320
|
}
|
|
4346
|
-
}),
|
|
4321
|
+
}), Jn = { key: 0 }, Yn = { class: "text-h4 mb-2" }, Xn = { class: "text-body-2" }, Zn = { key: 0 }, Qn = { key: 1 };
|
|
4347
4322
|
function _sfc_render$3(e, t, n, r, i, a) {
|
|
4348
4323
|
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");
|
|
4349
|
-
return e.updatePending ? D("", !0) : (L(), O("div",
|
|
4324
|
+
return e.updatePending ? D("", !0) : (L(), O("div", Jn, [
|
|
4350
4325
|
B(e.$slots, "header", {
|
|
4351
4326
|
courseConfig: e.courseConfig,
|
|
4352
4327
|
courseId: e.courseId
|
|
4353
|
-
}, () => [k("h1",
|
|
4354
|
-
k("p",
|
|
4328
|
+
}, () => [k("h1", Yn, H(e.courseConfig.name), 1)], !0),
|
|
4329
|
+
k("p", Xn, H(e.courseConfig.description), 1),
|
|
4355
4330
|
B(e.$slots, "actions", {
|
|
4356
4331
|
userIsRegistered: e.userIsRegistered,
|
|
4357
4332
|
courseId: e.courseId,
|
|
@@ -4362,7 +4337,7 @@ function _sfc_render$3(e, t, n, r, i, a) {
|
|
|
4362
4337
|
name: "component-fade",
|
|
4363
4338
|
mode: "out-in"
|
|
4364
4339
|
}, {
|
|
4365
|
-
default: W(() => [e.userIsRegistered ? (L(), O("div",
|
|
4340
|
+
default: W(() => [e.userIsRegistered ? (L(), O("div", Zn, [
|
|
4366
4341
|
j(o, {
|
|
4367
4342
|
color: "success",
|
|
4368
4343
|
"data-cy": "focused-study-session-btn",
|
|
@@ -4405,7 +4380,7 @@ function _sfc_render$3(e, t, n, r, i, a) {
|
|
|
4405
4380
|
default: W(() => t[5] || (t[5] = [A(" Drop this course ")])),
|
|
4406
4381
|
_: 1
|
|
4407
4382
|
}, 8, ["onClick"])) : D("", !0)
|
|
4408
|
-
])) : (L(), O("div",
|
|
4383
|
+
])) : (L(), O("div", Qn, [j(o, {
|
|
4409
4384
|
"data-cy": "register-btn",
|
|
4410
4385
|
color: "primary",
|
|
4411
4386
|
class: "me-2",
|
|
@@ -4465,7 +4440,7 @@ function _sfc_render$3(e, t, n, r, i, a) {
|
|
|
4465
4440
|
]));
|
|
4466
4441
|
}
|
|
4467
4442
|
t(_sfc_render$3, "_sfc_render");
|
|
4468
|
-
var
|
|
4443
|
+
var $n = /* @__PURE__ */ r(qn, [["render", _sfc_render$3], ["__scopeId", "data-v-38e9efe1"]]), er = M({
|
|
4469
4444
|
name: "CardBrowser",
|
|
4470
4445
|
components: { CardViewer: Q },
|
|
4471
4446
|
props: {
|
|
@@ -4505,7 +4480,7 @@ var cr = /* @__PURE__ */ r(nr, [["render", _sfc_render$3], ["__scopeId", "data-v
|
|
|
4505
4480
|
this.viewIndex--, this.viewIndex = (this.viewIndex + this.views.length) % this.views.length;
|
|
4506
4481
|
}
|
|
4507
4482
|
}
|
|
4508
|
-
}),
|
|
4483
|
+
}), tr = {
|
|
4509
4484
|
key: 0,
|
|
4510
4485
|
class: "text-subtitle-1 pa-2"
|
|
4511
4486
|
};
|
|
@@ -4525,7 +4500,7 @@ function _sfc_render$2(e, t, n, r, i, a) {
|
|
|
4525
4500
|
}, null, 8, ["view", "data"]),
|
|
4526
4501
|
t[2] || (t[2] = k("br", null, null, -1)),
|
|
4527
4502
|
t[3] || (t[3] = k("br", null, null, -1)),
|
|
4528
|
-
e.suppressSpinner ? D("", !0) : (L(), O("div",
|
|
4503
|
+
e.suppressSpinner ? D("", !0) : (L(), O("div", tr, [
|
|
4529
4504
|
e.spinner ? (L(), E(c, {
|
|
4530
4505
|
key: 0,
|
|
4531
4506
|
icon: "",
|
|
@@ -4559,7 +4534,7 @@ function _sfc_render$2(e, t, n, r, i, a) {
|
|
|
4559
4534
|
});
|
|
4560
4535
|
}
|
|
4561
4536
|
t(_sfc_render$2, "_sfc_render");
|
|
4562
|
-
var
|
|
4537
|
+
var nr = /* @__PURE__ */ r(er, [["render", _sfc_render$2]]), rr = M({
|
|
4563
4538
|
name: "CourseTagFilterWidget",
|
|
4564
4539
|
props: {
|
|
4565
4540
|
courseId: {
|
|
@@ -4614,13 +4589,13 @@ var dr = /* @__PURE__ */ r(lr, [["render", _sfc_render$2]]), fr = M({
|
|
|
4614
4589
|
fuzzyFilter
|
|
4615
4590
|
};
|
|
4616
4591
|
}
|
|
4617
|
-
}),
|
|
4592
|
+
}), ir = { class: "course-tag-filter-widget" }, ar = {
|
|
4618
4593
|
key: 0,
|
|
4619
4594
|
class: "filter-summary text-caption mt-2"
|
|
4620
|
-
},
|
|
4595
|
+
}, or = { key: 0 }, sr = { key: 1 }, cr = { key: 2 };
|
|
4621
4596
|
function _sfc_render$1(e, t, n, r, i, a) {
|
|
4622
4597
|
let o = V("v-chip"), s = V("v-list-item"), c = V("v-autocomplete"), l = V("v-icon");
|
|
4623
|
-
return L(), O("div",
|
|
4598
|
+
return L(), O("div", ir, [
|
|
4624
4599
|
j(c, {
|
|
4625
4600
|
modelValue: e.localFilter.include,
|
|
4626
4601
|
"onUpdate:modelValue": t[0] || (t[0] = (t) => e.localFilter.include = t),
|
|
@@ -4702,7 +4677,7 @@ function _sfc_render$1(e, t, n, r, i, a) {
|
|
|
4702
4677
|
"disabled",
|
|
4703
4678
|
"custom-filter"
|
|
4704
4679
|
]),
|
|
4705
|
-
e.hasActiveFilter ? (L(), O("div",
|
|
4680
|
+
e.hasActiveFilter ? (L(), O("div", ar, [
|
|
4706
4681
|
j(l, {
|
|
4707
4682
|
size: "small",
|
|
4708
4683
|
color: "info",
|
|
@@ -4711,18 +4686,18 @@ function _sfc_render$1(e, t, n, r, i, a) {
|
|
|
4711
4686
|
default: W(() => t[2] || (t[2] = [A("mdi-filter")])),
|
|
4712
4687
|
_: 1
|
|
4713
4688
|
}),
|
|
4714
|
-
e.localFilter.include.length ? (L(), O("span",
|
|
4715
|
-
e.localFilter.include.length && e.localFilter.exclude.length ? (L(), O("span",
|
|
4716
|
-
e.localFilter.exclude.length ? (L(), O("span",
|
|
4689
|
+
e.localFilter.include.length ? (L(), O("span", or, " Including: " + H(e.localFilter.include.join(", ")), 1)) : D("", !0),
|
|
4690
|
+
e.localFilter.include.length && e.localFilter.exclude.length ? (L(), O("span", sr, " · ")) : D("", !0),
|
|
4691
|
+
e.localFilter.exclude.length ? (L(), O("span", cr, " Excluding: " + H(e.localFilter.exclude.join(", ")), 1)) : D("", !0)
|
|
4717
4692
|
])) : D("", !0)
|
|
4718
4693
|
]);
|
|
4719
4694
|
}
|
|
4720
4695
|
t(_sfc_render$1, "_sfc_render");
|
|
4721
|
-
var
|
|
4696
|
+
var lr = /* @__PURE__ */ r(rr, [["render", _sfc_render$1], ["__scopeId", "data-v-e1ba963b"]]), $ = {
|
|
4722
4697
|
min: 0,
|
|
4723
4698
|
startingMax: 2,
|
|
4724
4699
|
absoluteMax: 10
|
|
4725
|
-
},
|
|
4700
|
+
}, ur = "UserTagPreferenceFilter", dr = M({
|
|
4726
4701
|
name: "UserTagPreferences",
|
|
4727
4702
|
props: {
|
|
4728
4703
|
courseId: {
|
|
@@ -4788,7 +4763,7 @@ var vr = /* @__PURE__ */ r(fr, [["render", _sfc_render$1], ["__scopeId", "data-v
|
|
|
4788
4763
|
try {
|
|
4789
4764
|
if (this.user = await getCurrentUser() ?? null, !this.user) throw Error("User not available");
|
|
4790
4765
|
this.courseDB = X().getCourseDB(this.courseId), this.availableTags = (await this.courseDB.getCourseTagStubs()).rows.map((e) => e.doc).filter(Boolean);
|
|
4791
|
-
let e = await this.user.getStrategyState(this.courseId,
|
|
4766
|
+
let e = await this.user.getStrategyState(this.courseId, ur);
|
|
4792
4767
|
e ? this.preferences.boost = { ...e.boost } : this.preferences.boost = {}, this.savedPreferences.boost = { ...this.preferences.boost }, this.tagMaxRanges = {}, Object.keys(this.preferences.boost).forEach((e) => {
|
|
4793
4768
|
let t = this.preferences.boost[e], n = this.sliderConfigResolved.startingMax;
|
|
4794
4769
|
t > n ? this.tagMaxRanges[e] = Math.min(Math.ceil(t), this.sliderConfigResolved.absoluteMax) : this.tagMaxRanges[e] = n;
|
|
@@ -4839,7 +4814,7 @@ var vr = /* @__PURE__ */ r(fr, [["render", _sfc_render$1], ["__scopeId", "data-v
|
|
|
4839
4814
|
boost: { ...this.preferences.boost },
|
|
4840
4815
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
4841
4816
|
};
|
|
4842
|
-
await this.user.putStrategyState(this.courseId,
|
|
4817
|
+
await this.user.putStrategyState(this.courseId, ur, e), this.savedPreferences.boost = { ...this.preferences.boost }, this.saveSuccess = !0, this.$emit("preferences-saved", e);
|
|
4843
4818
|
} catch (e) {
|
|
4844
4819
|
console.error("Failed to save preferences:", e), this.saveError = "Failed to save preferences. Please try again.";
|
|
4845
4820
|
} finally {
|
|
@@ -4847,13 +4822,13 @@ var vr = /* @__PURE__ */ r(fr, [["render", _sfc_render$1], ["__scopeId", "data-v
|
|
|
4847
4822
|
}
|
|
4848
4823
|
}
|
|
4849
4824
|
}
|
|
4850
|
-
}),
|
|
4825
|
+
}), fr = { key: 1 }, pr = { class: "mb-6" }, mr = { class: "text-subtitle-1 font-weight-bold mb-2" }, hr = { class: "d-flex align-center ga-3 w-100" }, gr = {
|
|
4851
4826
|
class: "text-body-2 flex-shrink-0",
|
|
4852
4827
|
style: {
|
|
4853
4828
|
"min-width": "60px",
|
|
4854
4829
|
"text-align": "right"
|
|
4855
4830
|
}
|
|
4856
|
-
},
|
|
4831
|
+
}, _r = {
|
|
4857
4832
|
key: 2,
|
|
4858
4833
|
class: "d-flex justify-center py-8"
|
|
4859
4834
|
};
|
|
@@ -4873,12 +4848,12 @@ function _sfc_render(e, t, n, r, i, a) {
|
|
|
4873
4848
|
_: 1
|
|
4874
4849
|
})) : D("", !0),
|
|
4875
4850
|
j(_, null, {
|
|
4876
|
-
default: W(() => [e.courseId ? e.loading ? (L(), O("div",
|
|
4851
|
+
default: W(() => [e.courseId ? e.loading ? (L(), O("div", _r, [j(g, {
|
|
4877
4852
|
indeterminate: "",
|
|
4878
4853
|
color: "primary"
|
|
4879
|
-
})])) : (L(), O("div",
|
|
4880
|
-
k("div",
|
|
4881
|
-
k("h3",
|
|
4854
|
+
})])) : (L(), O("div", fr, [
|
|
4855
|
+
k("div", pr, [
|
|
4856
|
+
k("h3", mr, [j(o, {
|
|
4882
4857
|
start: "",
|
|
4883
4858
|
size: "small"
|
|
4884
4859
|
}, {
|
|
@@ -4918,7 +4893,7 @@ function _sfc_render(e, t, n, r, i, a) {
|
|
|
4918
4893
|
key: t,
|
|
4919
4894
|
class: "px-0"
|
|
4920
4895
|
}, {
|
|
4921
|
-
default: W(() => [k("div",
|
|
4896
|
+
default: W(() => [k("div", hr, [
|
|
4922
4897
|
j(f, {
|
|
4923
4898
|
size: "small",
|
|
4924
4899
|
variant: "tonal",
|
|
@@ -4946,7 +4921,7 @@ function _sfc_render(e, t, n, r, i, a) {
|
|
|
4946
4921
|
"max",
|
|
4947
4922
|
"onUpdate:modelValue"
|
|
4948
4923
|
]),
|
|
4949
|
-
k("span",
|
|
4924
|
+
k("span", gr, H(e.formatMultiplier(e.preferences.boost[t])), 1),
|
|
4950
4925
|
j(m, {
|
|
4951
4926
|
icon: "mdi-plus",
|
|
4952
4927
|
size: "small",
|
|
@@ -5041,8 +5016,8 @@ function _sfc_render(e, t, n, r, i, a) {
|
|
|
5041
5016
|
_: 1
|
|
5042
5017
|
}, 8, ["loading"]);
|
|
5043
5018
|
}
|
|
5044
|
-
var
|
|
5019
|
+
var vr = /* @__PURE__ */ r(dr, [["render", _sfc_render], ["__scopeId", "data-v-8fb14605"]]);
|
|
5045
5020
|
//#endregion
|
|
5046
|
-
export { a as AudioAutoPlayer,
|
|
5021
|
+
export { a as AudioAutoPlayer, nr as CardBrowser, at as CardHistoryViewer, un as CardLoader, Ke as CardSearch, Qe as CardSearchResults, Q as CardViewer, f as CodeBlockRenderer, Kn as CourseCardBrowser, $n as CourseInformation, lr as CourseTagFilterWidget, Displayable, m as FillInInput, Ae as HeatMap, y as MarkdownRenderer, _ as MdTokenRenderer, $t as MultipleChoiceOption, Ue as PaginatingToolbar, Question, nn as RadioMultipleChoice, yn as RequestPasswordReset, Nn 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, Rn as TagsInput, dn as UserChip, cn as UserInputNumber, d as UserInputString, mn as UserLogin, Cn as UserLoginAndRegistrationContainer, gn as UserRegistration, vr as UserTagPreferences, An 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, sendVerificationEmail, c as splitByDelimiters, l as splitParagraphToken, g as splitTextToken, useAuthStore, i as useCardPreviewModeStore, useConfigStore, useEntitlements, ee as useQuestionView, n as useViewable, validatePassword, verifyEmail };
|
|
5047
5022
|
|
|
5048
5023
|
//# sourceMappingURL=common-ui.es.js.map
|