catchup-library-web 1.15.3 → 1.15.4
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/index.d.mts +9 -2
- package/dist/index.d.ts +9 -2
- package/dist/index.js +649 -563
- package/dist/index.mjs +608 -523
- package/package.json +2 -1
- package/src/components/activities/ActivityPreviewByData.tsx +1 -0
- package/src/components/activities/OpenEndedActivityContent.tsx +2 -31
- package/src/components/activities/body-content/ShowBodyMediaByContentType.tsx +4 -24
- package/src/components/activities/material-content/OpenEndedActivityMaterialContent.tsx +52 -2
- package/src/components/pdfs/BasePDF.tsx +69 -0
- package/src/index.ts +2 -0
- package/src/properties/ActivityProperties.ts +2 -0
- package/src/properties/PDFProperties.ts +3 -0
package/dist/index.js
CHANGED
|
@@ -80,6 +80,7 @@ __export(index_exports, {
|
|
|
80
80
|
BaseLoading: () => BaseLoading_default,
|
|
81
81
|
BaseLoadingWithText: () => BaseLoadingWithText_default,
|
|
82
82
|
BaseModal: () => BaseModal_default,
|
|
83
|
+
BasePDF: () => BasePDF_default,
|
|
83
84
|
BaseTitle: () => BaseTitle_default,
|
|
84
85
|
BlueVerticalDividerLine: () => BlueVerticalDividerLine_default,
|
|
85
86
|
BrandLabel: () => BrandLabel_default,
|
|
@@ -1198,15 +1199,66 @@ var BaseModal = ({
|
|
|
1198
1199
|
};
|
|
1199
1200
|
var BaseModal_default = BaseModal;
|
|
1200
1201
|
|
|
1201
|
-
// src/components/
|
|
1202
|
+
// src/components/pdfs/BasePDF.tsx
|
|
1203
|
+
var import_react10 = require("react");
|
|
1204
|
+
var import_react_pdf = require("react-pdf");
|
|
1202
1205
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1206
|
+
var BasePDF = ({ file }) => {
|
|
1207
|
+
const [pageNumber, setPageNumber] = (0, import_react10.useState)(1);
|
|
1208
|
+
const [numberOfPages, setNumberOfPages] = (0, import_react10.useState)(0);
|
|
1209
|
+
const handleOnDocumentLoadSuccess = ({ numPages }) => {
|
|
1210
|
+
setPageNumber(1);
|
|
1211
|
+
setNumberOfPages(numPages);
|
|
1212
|
+
};
|
|
1213
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_pdf.Document, { file, onLoadSuccess: handleOnDocumentLoadSuccess, children: [
|
|
1214
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_pdf.Page, { pageNumber }),
|
|
1215
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex flex-row items-center justify-center", children: [
|
|
1216
|
+
pageNumber === 1 ? null : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "px-2", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "cursor-pointer", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1217
|
+
BaseImage_default,
|
|
1218
|
+
{
|
|
1219
|
+
alt: "arrow-left",
|
|
1220
|
+
src: "/icons/arrow-left.webp",
|
|
1221
|
+
size: "small",
|
|
1222
|
+
onClick: () => {
|
|
1223
|
+
setPageNumber(pageNumber - 1);
|
|
1224
|
+
}
|
|
1225
|
+
}
|
|
1226
|
+
) }) }),
|
|
1227
|
+
Array.from(Array(numberOfPages).keys()).filter((index) => index < pageNumber + 5).filter((index) => index > pageNumber - 5).map((index) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "px-2", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1228
|
+
"p",
|
|
1229
|
+
{
|
|
1230
|
+
className: `${pageNumber === index + 1 ? "text-2xl" : "text-md"} cursor-pointer`,
|
|
1231
|
+
onClick: () => {
|
|
1232
|
+
setPageNumber(index + 1);
|
|
1233
|
+
},
|
|
1234
|
+
children: index + 1
|
|
1235
|
+
}
|
|
1236
|
+
) }, index)),
|
|
1237
|
+
numberOfPages === 0 || pageNumber === numberOfPages ? null : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "px-2", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "cursor-pointer", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1238
|
+
BaseImage_default,
|
|
1239
|
+
{
|
|
1240
|
+
src: "/icons/arrow-right.webp",
|
|
1241
|
+
alt: "arrow-right",
|
|
1242
|
+
size: "small",
|
|
1243
|
+
onClick: () => {
|
|
1244
|
+
setPageNumber(pageNumber + 1);
|
|
1245
|
+
}
|
|
1246
|
+
}
|
|
1247
|
+
) }) })
|
|
1248
|
+
] })
|
|
1249
|
+
] });
|
|
1250
|
+
};
|
|
1251
|
+
var BasePDF_default = BasePDF;
|
|
1252
|
+
|
|
1253
|
+
// src/components/activities/empty-content/ActivityEmptyContent.tsx
|
|
1254
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1203
1255
|
var ActivityEmptyContent = () => {
|
|
1204
|
-
return /* @__PURE__ */ (0,
|
|
1256
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex flex-col items-center justify-center border-2 border-catchup-orange rounded-catchup-xlarge px-5 py-2 my-5 bg-catchup-orange", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-catchup-white text-xl", children: i18n_default.t("you_have_set_this_activity_as_empty") }) }) });
|
|
1205
1257
|
};
|
|
1206
1258
|
var ActivityEmptyContent_default = ActivityEmptyContent;
|
|
1207
1259
|
|
|
1208
1260
|
// src/components/activities/body-content/ShowBodyMediaByContentType.tsx
|
|
1209
|
-
var
|
|
1261
|
+
var import_react11 = require("react");
|
|
1210
1262
|
var import_react_modal2 = __toESM(require("react-modal"));
|
|
1211
1263
|
|
|
1212
1264
|
// src/utilization/CatchtivityUtilization.ts
|
|
@@ -3250,15 +3302,15 @@ var retrieveDifficultyByActivityTypeFromData = (type, data) => {
|
|
|
3250
3302
|
|
|
3251
3303
|
// src/components/activities/body-content/ShowBodyMediaByContentType.tsx
|
|
3252
3304
|
var import_react_katex = require("react-katex");
|
|
3253
|
-
var
|
|
3305
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
3254
3306
|
var ShowBodyMediaByContentType = ({
|
|
3255
3307
|
index,
|
|
3256
3308
|
type,
|
|
3257
3309
|
value,
|
|
3258
3310
|
size
|
|
3259
3311
|
}) => {
|
|
3260
|
-
const [showFullScreen, setShowFullScreen] = (0,
|
|
3261
|
-
const [selectedFullScreenItem, setSelectedFullScreenItem] = (0,
|
|
3312
|
+
const [showFullScreen, setShowFullScreen] = (0, import_react11.useState)(false);
|
|
3313
|
+
const [selectedFullScreenItem, setSelectedFullScreenItem] = (0, import_react11.useState)("");
|
|
3262
3314
|
const convertToPercentage = (size2) => {
|
|
3263
3315
|
switch (size2) {
|
|
3264
3316
|
case "1/3":
|
|
@@ -3272,11 +3324,11 @@ var ShowBodyMediaByContentType = ({
|
|
|
3272
3324
|
}
|
|
3273
3325
|
};
|
|
3274
3326
|
const renderSpecialExpressions = (inputPart, inputPartIndex) => {
|
|
3275
|
-
return /* @__PURE__ */ (0,
|
|
3327
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3276
3328
|
"span",
|
|
3277
3329
|
{
|
|
3278
3330
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
3279
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
3331
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_katex.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
3280
3332
|
},
|
|
3281
3333
|
inputPartIndex
|
|
3282
3334
|
);
|
|
@@ -3296,7 +3348,7 @@ var ShowBodyMediaByContentType = ({
|
|
|
3296
3348
|
};
|
|
3297
3349
|
const renderTextContent = (text, itemKey) => {
|
|
3298
3350
|
const balancedText = balanceSpecialChars(text);
|
|
3299
|
-
return /* @__PURE__ */ (0,
|
|
3351
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text-xl", children: constructInputWithSpecialExpressionList(balancedText).map(
|
|
3300
3352
|
(inputPart, inputPartIndex) => renderSpecialExpressions(inputPart, inputPartIndex)
|
|
3301
3353
|
) }, itemKey);
|
|
3302
3354
|
};
|
|
@@ -3329,7 +3381,7 @@ var ShowBodyMediaByContentType = ({
|
|
|
3329
3381
|
currentIndex++;
|
|
3330
3382
|
const itemKey = `text-inside-${index}-${currentIndex}`;
|
|
3331
3383
|
valuePartList.push(
|
|
3332
|
-
/* @__PURE__ */ (0,
|
|
3384
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text-xl font-bold", children: constructInputWithSpecialExpressionList(textInsideTag).map(
|
|
3333
3385
|
(inputPart, inputPartIndex) => renderSpecialExpressions(inputPart, inputPartIndex)
|
|
3334
3386
|
) }, itemKey)
|
|
3335
3387
|
);
|
|
@@ -3349,7 +3401,7 @@ var ShowBodyMediaByContentType = ({
|
|
|
3349
3401
|
if (textBeforeTag.trim() !== "") {
|
|
3350
3402
|
currentIndex++;
|
|
3351
3403
|
valuePartList.push(
|
|
3352
|
-
/* @__PURE__ */ (0,
|
|
3404
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3353
3405
|
"p",
|
|
3354
3406
|
{
|
|
3355
3407
|
className: "text-xl",
|
|
@@ -3368,12 +3420,12 @@ var ShowBodyMediaByContentType = ({
|
|
|
3368
3420
|
);
|
|
3369
3421
|
currentIndex++;
|
|
3370
3422
|
valuePartList.push(
|
|
3371
|
-
/* @__PURE__ */ (0,
|
|
3423
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
3372
3424
|
"div",
|
|
3373
3425
|
{
|
|
3374
3426
|
className: "relative w-[200px]",
|
|
3375
3427
|
children: [
|
|
3376
|
-
/* @__PURE__ */ (0,
|
|
3428
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3377
3429
|
BaseImage_default,
|
|
3378
3430
|
{
|
|
3379
3431
|
src: imageSource,
|
|
@@ -3382,12 +3434,12 @@ var ShowBodyMediaByContentType = ({
|
|
|
3382
3434
|
className: "rounded-catchup-xlarge"
|
|
3383
3435
|
}
|
|
3384
3436
|
),
|
|
3385
|
-
/* @__PURE__ */ (0,
|
|
3437
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3386
3438
|
"div",
|
|
3387
3439
|
{
|
|
3388
3440
|
className: "absolute flex items-center justify-center top-2 right-2 h-6 w-6 cursor-pointer border rounded-catchup-xlarge border-catchup-blue p-1",
|
|
3389
3441
|
onClick: () => handleOpenFullScreen(imageSource),
|
|
3390
|
-
children: /* @__PURE__ */ (0,
|
|
3442
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3391
3443
|
BaseImage_default,
|
|
3392
3444
|
{
|
|
3393
3445
|
src: "/icons/arrow-up.webp",
|
|
@@ -3416,7 +3468,7 @@ var ShowBodyMediaByContentType = ({
|
|
|
3416
3468
|
if (textBeforeTag.trim() !== "") {
|
|
3417
3469
|
currentIndex++;
|
|
3418
3470
|
valuePartList.push(
|
|
3419
|
-
/* @__PURE__ */ (0,
|
|
3471
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3420
3472
|
"p",
|
|
3421
3473
|
{
|
|
3422
3474
|
className: "text-xl",
|
|
@@ -3435,7 +3487,7 @@ var ShowBodyMediaByContentType = ({
|
|
|
3435
3487
|
);
|
|
3436
3488
|
currentIndex++;
|
|
3437
3489
|
valuePartList.push(
|
|
3438
|
-
/* @__PURE__ */ (0,
|
|
3490
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3439
3491
|
"video",
|
|
3440
3492
|
{
|
|
3441
3493
|
src: videoSource,
|
|
@@ -3458,7 +3510,7 @@ var ShowBodyMediaByContentType = ({
|
|
|
3458
3510
|
if (textBeforeTag.trim() !== "") {
|
|
3459
3511
|
currentIndex++;
|
|
3460
3512
|
valuePartList.push(
|
|
3461
|
-
/* @__PURE__ */ (0,
|
|
3513
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3462
3514
|
"p",
|
|
3463
3515
|
{
|
|
3464
3516
|
className: "text-xl",
|
|
@@ -3477,7 +3529,7 @@ var ShowBodyMediaByContentType = ({
|
|
|
3477
3529
|
);
|
|
3478
3530
|
currentIndex++;
|
|
3479
3531
|
valuePartList.push(
|
|
3480
|
-
/* @__PURE__ */ (0,
|
|
3532
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3481
3533
|
"audio",
|
|
3482
3534
|
{
|
|
3483
3535
|
src: audioSource,
|
|
@@ -3503,13 +3555,13 @@ var ShowBodyMediaByContentType = ({
|
|
|
3503
3555
|
if (regexMatchImageText) {
|
|
3504
3556
|
const imageText = regexMatchImageText[1];
|
|
3505
3557
|
valuePartList.push(
|
|
3506
|
-
/* @__PURE__ */ (0,
|
|
3558
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
3507
3559
|
"div",
|
|
3508
3560
|
{
|
|
3509
3561
|
className: "bg-catchup-gray-50 relative px-4 py-4 rounded-catchup-small mt-2",
|
|
3510
3562
|
children: [
|
|
3511
|
-
/* @__PURE__ */ (0,
|
|
3512
|
-
/* @__PURE__ */ (0,
|
|
3563
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "absolute -top-3 bg-catchup-white border rounded-catchup-small px-2 left-2", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "font-bold", children: i18n_default.t("image_description") }) }),
|
|
3564
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text-xl", children: imageText })
|
|
3513
3565
|
]
|
|
3514
3566
|
},
|
|
3515
3567
|
`img-desc-${index}-${currentIndex}`
|
|
@@ -3523,7 +3575,7 @@ var ShowBodyMediaByContentType = ({
|
|
|
3523
3575
|
return valuePartList;
|
|
3524
3576
|
};
|
|
3525
3577
|
const RenderShowFullScreenItem = () => {
|
|
3526
|
-
return /* @__PURE__ */ (0,
|
|
3578
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3527
3579
|
import_react_modal2.default,
|
|
3528
3580
|
{
|
|
3529
3581
|
isOpen: showFullScreen,
|
|
@@ -3552,8 +3604,8 @@ var ShowBodyMediaByContentType = ({
|
|
|
3552
3604
|
}
|
|
3553
3605
|
},
|
|
3554
3606
|
contentLabel: "Image Fullscreen View",
|
|
3555
|
-
children: /* @__PURE__ */ (0,
|
|
3556
|
-
/* @__PURE__ */ (0,
|
|
3607
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex-1 flex flex-col", children: [
|
|
3608
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "ml-auto px-5 py-3", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3557
3609
|
BaseImage_default,
|
|
3558
3610
|
{
|
|
3559
3611
|
src: "/icons/cross-red.webp",
|
|
@@ -3565,7 +3617,7 @@ var ShowBodyMediaByContentType = ({
|
|
|
3565
3617
|
}
|
|
3566
3618
|
}
|
|
3567
3619
|
) }),
|
|
3568
|
-
/* @__PURE__ */ (0,
|
|
3620
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "flex items-center justify-center h-[500]", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3569
3621
|
BaseImage_default,
|
|
3570
3622
|
{
|
|
3571
3623
|
src: selectedFullScreenItem,
|
|
@@ -3581,16 +3633,16 @@ var ShowBodyMediaByContentType = ({
|
|
|
3581
3633
|
const RenderMainContent = () => {
|
|
3582
3634
|
switch (type) {
|
|
3583
3635
|
case "TEXT":
|
|
3584
|
-
return /* @__PURE__ */ (0,
|
|
3636
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "mb-1 flex flex-row flex-wrap items-center mx-auto w-full", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "whitespace-pre-wrap", children: retrieveValueParts(value) }) });
|
|
3585
3637
|
case "IMAGE":
|
|
3586
|
-
return /* @__PURE__ */ (0,
|
|
3638
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "mb-1 flex flex-col items-center relative", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
3587
3639
|
"div",
|
|
3588
3640
|
{
|
|
3589
3641
|
className: `${convertToPercentage(
|
|
3590
3642
|
size || ""
|
|
3591
3643
|
)} rounded-catchup-xlarge relative`,
|
|
3592
3644
|
children: [
|
|
3593
|
-
/* @__PURE__ */ (0,
|
|
3645
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3594
3646
|
BaseImage_default,
|
|
3595
3647
|
{
|
|
3596
3648
|
src: value,
|
|
@@ -3599,12 +3651,12 @@ var ShowBodyMediaByContentType = ({
|
|
|
3599
3651
|
className: "w-full rounded-catchup-xlarge"
|
|
3600
3652
|
}
|
|
3601
3653
|
),
|
|
3602
|
-
/* @__PURE__ */ (0,
|
|
3654
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3603
3655
|
"div",
|
|
3604
3656
|
{
|
|
3605
3657
|
className: "absolute flex items-center justify-center top-2 right-2 h-6 w-6 cursor-pointer border rounded-catchup-xlarge border-catchup-blue p-1",
|
|
3606
3658
|
onClick: () => handleOpenFullScreen(value),
|
|
3607
|
-
children: /* @__PURE__ */ (0,
|
|
3659
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3608
3660
|
BaseImage_default,
|
|
3609
3661
|
{
|
|
3610
3662
|
src: "/icons/arrow-up.webp",
|
|
@@ -3619,7 +3671,7 @@ var ShowBodyMediaByContentType = ({
|
|
|
3619
3671
|
}
|
|
3620
3672
|
) });
|
|
3621
3673
|
case "VIDEO":
|
|
3622
|
-
return /* @__PURE__ */ (0,
|
|
3674
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "mb-1 flex flex-col items-center", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3623
3675
|
"video",
|
|
3624
3676
|
{
|
|
3625
3677
|
src: value,
|
|
@@ -3630,12 +3682,12 @@ var ShowBodyMediaByContentType = ({
|
|
|
3630
3682
|
}
|
|
3631
3683
|
) });
|
|
3632
3684
|
case "AUDIO":
|
|
3633
|
-
return /* @__PURE__ */ (0,
|
|
3685
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "mb-1 flex flex-col items-center", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("audio", { src: value, controls: true, className: "rounded-catchup-xlarge" }) });
|
|
3634
3686
|
default:
|
|
3635
3687
|
return null;
|
|
3636
3688
|
}
|
|
3637
3689
|
};
|
|
3638
|
-
return /* @__PURE__ */ (0,
|
|
3690
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "w-full", children: [
|
|
3639
3691
|
RenderShowFullScreenItem(),
|
|
3640
3692
|
RenderMainContent()
|
|
3641
3693
|
] }, `body-content-${index}`);
|
|
@@ -3643,7 +3695,7 @@ var ShowBodyMediaByContentType = ({
|
|
|
3643
3695
|
var ShowBodyMediaByContentType_default = ShowBodyMediaByContentType;
|
|
3644
3696
|
|
|
3645
3697
|
// src/components/activities/body-content/ActivityBodyContent.tsx
|
|
3646
|
-
var
|
|
3698
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
3647
3699
|
var ActivityBodyContent = ({
|
|
3648
3700
|
templateType,
|
|
3649
3701
|
bodyMap,
|
|
@@ -3724,7 +3776,7 @@ var ActivityBodyContent = ({
|
|
|
3724
3776
|
key
|
|
3725
3777
|
});
|
|
3726
3778
|
}).filter(Boolean);
|
|
3727
|
-
return /* @__PURE__ */ (0,
|
|
3779
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex flex-col justify-center items-center", children: processedBodies.map((body, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3728
3780
|
ShowBodyMediaByContentType_default,
|
|
3729
3781
|
{
|
|
3730
3782
|
index,
|
|
@@ -3738,16 +3790,16 @@ var ActivityBodyContent = ({
|
|
|
3738
3790
|
var ActivityBodyContent_default = ActivityBodyContent;
|
|
3739
3791
|
|
|
3740
3792
|
// src/components/dividers/DividerLine.tsx
|
|
3741
|
-
var
|
|
3793
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
3742
3794
|
var DividerLine = () => {
|
|
3743
|
-
return /* @__PURE__ */ (0,
|
|
3795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "bg-catchup-gray-50 h-[1px] w-full my-3" });
|
|
3744
3796
|
};
|
|
3745
3797
|
var DividerLine_default = DividerLine;
|
|
3746
3798
|
|
|
3747
3799
|
// src/components/dividers/VerticalDividerLine.tsx
|
|
3748
|
-
var
|
|
3800
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
3749
3801
|
var VerticalDividerLine = () => {
|
|
3750
|
-
return /* @__PURE__ */ (0,
|
|
3802
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "bg-catchup-gray-50 h-full w-[1px] mx-3" });
|
|
3751
3803
|
};
|
|
3752
3804
|
var VerticalDividerLine_default = VerticalDividerLine;
|
|
3753
3805
|
|
|
@@ -3756,8 +3808,8 @@ var import_react_katex2 = require("react-katex");
|
|
|
3756
3808
|
|
|
3757
3809
|
// src/components/groups/InputGroup.tsx
|
|
3758
3810
|
var import_react_select = __toESM(require("react-select"));
|
|
3759
|
-
var
|
|
3760
|
-
var
|
|
3811
|
+
var import_react12 = require("react");
|
|
3812
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
3761
3813
|
var InputGroup = ({
|
|
3762
3814
|
type,
|
|
3763
3815
|
title,
|
|
@@ -3778,12 +3830,12 @@ var InputGroup = ({
|
|
|
3778
3830
|
limit,
|
|
3779
3831
|
useMath
|
|
3780
3832
|
}) => {
|
|
3781
|
-
const textAreaRef = (0,
|
|
3782
|
-
const latexTextAreaRef = (0,
|
|
3783
|
-
const [showMathConstructor, setShowMathConstructor] = (0,
|
|
3784
|
-
const [mathValue, setMathValue] = (0,
|
|
3785
|
-
const mathFieldRef = (0,
|
|
3786
|
-
(0,
|
|
3833
|
+
const textAreaRef = (0, import_react12.useRef)(null);
|
|
3834
|
+
const latexTextAreaRef = (0, import_react12.useRef)(null);
|
|
3835
|
+
const [showMathConstructor, setShowMathConstructor] = (0, import_react12.useState)(false);
|
|
3836
|
+
const [mathValue, setMathValue] = (0, import_react12.useState)("");
|
|
3837
|
+
const mathFieldRef = (0, import_react12.useRef)(null);
|
|
3838
|
+
(0, import_react12.useEffect)(() => {
|
|
3787
3839
|
if (!textAreaRef) return;
|
|
3788
3840
|
if (!textAreaRef.current) return;
|
|
3789
3841
|
if (value) {
|
|
@@ -3792,7 +3844,7 @@ var InputGroup = ({
|
|
|
3792
3844
|
textAreaRef.current.style.height = `44px`;
|
|
3793
3845
|
}
|
|
3794
3846
|
}, [textAreaRef, value]);
|
|
3795
|
-
(0,
|
|
3847
|
+
(0, import_react12.useEffect)(() => {
|
|
3796
3848
|
if (!latexTextAreaRef) return;
|
|
3797
3849
|
if (!latexTextAreaRef.current) return;
|
|
3798
3850
|
if (value) {
|
|
@@ -3801,7 +3853,7 @@ var InputGroup = ({
|
|
|
3801
3853
|
latexTextAreaRef.current.style.height = `44px`;
|
|
3802
3854
|
}
|
|
3803
3855
|
}, [latexTextAreaRef, value]);
|
|
3804
|
-
(0,
|
|
3856
|
+
(0, import_react12.useEffect)(() => {
|
|
3805
3857
|
if (!useMath) return;
|
|
3806
3858
|
import("mathlive").then(({ MathfieldElement }) => {
|
|
3807
3859
|
if (!customElements.get("math-field")) {
|
|
@@ -3836,7 +3888,7 @@ var InputGroup = ({
|
|
|
3836
3888
|
onChange && onChange(e);
|
|
3837
3889
|
}
|
|
3838
3890
|
};
|
|
3839
|
-
const handleMathFieldChange = (0,
|
|
3891
|
+
const handleMathFieldChange = (0, import_react12.useCallback)(() => {
|
|
3840
3892
|
if (!mathFieldRef.current) return;
|
|
3841
3893
|
const latexValue = mathFieldRef.current.value;
|
|
3842
3894
|
const wasFocused = mathFieldRef.current === document.activeElement;
|
|
@@ -3859,7 +3911,7 @@ var InputGroup = ({
|
|
|
3859
3911
|
setShowMathConstructor(true);
|
|
3860
3912
|
};
|
|
3861
3913
|
const MathConstructorModal = () => {
|
|
3862
|
-
return /* @__PURE__ */ (0,
|
|
3914
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3863
3915
|
BaseModal_default,
|
|
3864
3916
|
{
|
|
3865
3917
|
isOpen: showMathConstructor,
|
|
@@ -3870,10 +3922,10 @@ var InputGroup = ({
|
|
|
3870
3922
|
setShowMathConstructor(false);
|
|
3871
3923
|
},
|
|
3872
3924
|
size: "large",
|
|
3873
|
-
children: /* @__PURE__ */ (0,
|
|
3874
|
-
/* @__PURE__ */ (0,
|
|
3875
|
-
/* @__PURE__ */ (0,
|
|
3876
|
-
/* @__PURE__ */ (0,
|
|
3925
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(FullCard_default, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "bg-white rounded-lg overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "p-6 space-y-6", children: [
|
|
3926
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { children: [
|
|
3927
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "text-md font-semibold pl-2 py-1 text-catchup-gray-400", children: i18n_default.t("math_editor") }),
|
|
3928
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "border border-catchup-gray-100 rounded-catchup-large focus-within:border-catchup-blue-400 focus-within:shadow-input", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3877
3929
|
"math-field",
|
|
3878
3930
|
{
|
|
3879
3931
|
ref: mathFieldRef,
|
|
@@ -3900,10 +3952,10 @@ var InputGroup = ({
|
|
|
3900
3952
|
}
|
|
3901
3953
|
) })
|
|
3902
3954
|
] }),
|
|
3903
|
-
/* @__PURE__ */ (0,
|
|
3904
|
-
/* @__PURE__ */ (0,
|
|
3905
|
-
/* @__PURE__ */ (0,
|
|
3906
|
-
/* @__PURE__ */ (0,
|
|
3955
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { children: [
|
|
3956
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "text-md font-semibold pl-2 py-1 text-catchup-gray-400", children: i18n_default.t("latex_output") }),
|
|
3957
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "relative", children: [
|
|
3958
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3907
3959
|
"textarea",
|
|
3908
3960
|
{
|
|
3909
3961
|
ref: latexTextAreaRef,
|
|
@@ -3913,7 +3965,7 @@ var InputGroup = ({
|
|
|
3913
3965
|
placeholder: i18n_default.t("latex_will_appear_here")
|
|
3914
3966
|
}
|
|
3915
3967
|
),
|
|
3916
|
-
/* @__PURE__ */ (0,
|
|
3968
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3917
3969
|
"button",
|
|
3918
3970
|
{
|
|
3919
3971
|
onClick: handleCopyLatex,
|
|
@@ -3929,13 +3981,13 @@ var InputGroup = ({
|
|
|
3929
3981
|
);
|
|
3930
3982
|
};
|
|
3931
3983
|
const CheckboxInputGroup = () => {
|
|
3932
|
-
return /* @__PURE__ */ (0,
|
|
3984
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
3933
3985
|
"div",
|
|
3934
3986
|
{
|
|
3935
3987
|
className: "flex flex-row items-center gap-x-1 cursor-pointer",
|
|
3936
3988
|
onClick,
|
|
3937
3989
|
children: [
|
|
3938
|
-
/* @__PURE__ */ (0,
|
|
3990
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3939
3991
|
BaseImage_default,
|
|
3940
3992
|
{
|
|
3941
3993
|
src: value ? "/icons/checkbox.webp" : "/icons/checkbox-empty.webp",
|
|
@@ -3945,15 +3997,15 @@ var InputGroup = ({
|
|
|
3945
3997
|
}
|
|
3946
3998
|
}
|
|
3947
3999
|
),
|
|
3948
|
-
/* @__PURE__ */ (0,
|
|
4000
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "", children: title })
|
|
3949
4001
|
]
|
|
3950
4002
|
}
|
|
3951
4003
|
);
|
|
3952
4004
|
};
|
|
3953
4005
|
const FileInputGroup = () => {
|
|
3954
|
-
return /* @__PURE__ */ (0,
|
|
3955
|
-
title ? /* @__PURE__ */ (0,
|
|
3956
|
-
/* @__PURE__ */ (0,
|
|
4006
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "my-1", children: [
|
|
4007
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "text-md font-semibold pl-2 py-1 text-catchup-gray-400", children: title }) : null,
|
|
4008
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3957
4009
|
"input",
|
|
3958
4010
|
{
|
|
3959
4011
|
className: "w-full py-2 px-4 border border-catchup-gray-100 placeholder-catchup-gray-200 rounded-catchup-large text-black focus:outline-none focus:border-catchup-blue-400 focus:shadow-input",
|
|
@@ -3970,9 +4022,9 @@ var InputGroup = ({
|
|
|
3970
4022
|
] });
|
|
3971
4023
|
};
|
|
3972
4024
|
const DateInputGroup = () => {
|
|
3973
|
-
return /* @__PURE__ */ (0,
|
|
3974
|
-
title ? /* @__PURE__ */ (0,
|
|
3975
|
-
/* @__PURE__ */ (0,
|
|
4025
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "my-1", children: [
|
|
4026
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "text-md font-semibold pl-2 py-1 text-catchup-gray-400", children: title }) : null,
|
|
4027
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3976
4028
|
"input",
|
|
3977
4029
|
{
|
|
3978
4030
|
className: `w-full py-2 px-4 border ${errorText ? "border-catchup-red shadow-error" : theme === "red" ? "border-catchup-red bg-catchup-red text-catchup-white focus:border-catchup-red" : "border-catchup-gray-100 placeholder-catchup-gray-200 focus:border-catchup-blue-400"} rounded-catchup-large text-black focus:outline-none focus:shadow-input`,
|
|
@@ -3987,9 +4039,9 @@ var InputGroup = ({
|
|
|
3987
4039
|
] });
|
|
3988
4040
|
};
|
|
3989
4041
|
const SearchableSelectInputGroup = () => {
|
|
3990
|
-
return /* @__PURE__ */ (0,
|
|
3991
|
-
title ? /* @__PURE__ */ (0,
|
|
3992
|
-
/* @__PURE__ */ (0,
|
|
4042
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "my-1", children: [
|
|
4043
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "text-md font-semibold pl-2 py-1 text-catchup-gray-400 ", children: title }) : null,
|
|
4044
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3993
4045
|
import_react_select.default,
|
|
3994
4046
|
{
|
|
3995
4047
|
options: convertOptionListToSelectComponent(
|
|
@@ -4052,16 +4104,16 @@ var InputGroup = ({
|
|
|
4052
4104
|
] });
|
|
4053
4105
|
};
|
|
4054
4106
|
const TextAreaInputGroup = () => {
|
|
4055
|
-
return /* @__PURE__ */ (0,
|
|
4056
|
-
/* @__PURE__ */ (0,
|
|
4057
|
-
/* @__PURE__ */ (0,
|
|
4058
|
-
/* @__PURE__ */ (0,
|
|
4107
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "my-1 flex-1 flex flex-col relative", children: [
|
|
4108
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex flex-row justify-between items-center", children: [
|
|
4109
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { children: title ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "text-md font-semibold pl-2 py-1 text-catchup-gray-400", children: title }) : null }),
|
|
4110
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { children: value && limit ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("p", { className: "text-md font-semibold pr-2 py-1 text-catchup-gray-400", children: [
|
|
4059
4111
|
value.length,
|
|
4060
4112
|
" / ",
|
|
4061
4113
|
limit
|
|
4062
4114
|
] }) : null })
|
|
4063
4115
|
] }),
|
|
4064
|
-
/* @__PURE__ */ (0,
|
|
4116
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4065
4117
|
"textarea",
|
|
4066
4118
|
{
|
|
4067
4119
|
ref: textAreaRef,
|
|
@@ -4074,22 +4126,22 @@ var InputGroup = ({
|
|
|
4074
4126
|
onKeyDown
|
|
4075
4127
|
}
|
|
4076
4128
|
),
|
|
4077
|
-
useMath && /* @__PURE__ */ (0,
|
|
4129
|
+
useMath && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4078
4130
|
"button",
|
|
4079
4131
|
{
|
|
4080
4132
|
className: "absolute right-2 top-1/2 transform -translate-y-1/2 bg-catchup-blue-400 text-white rounded-md px-3 py-1 shadow-sm hover:bg-catchup-blue-500 transition-colors duration-200 z-10",
|
|
4081
4133
|
onClick: handleOpenMathConstructor,
|
|
4082
4134
|
type: "button",
|
|
4083
|
-
children: /* @__PURE__ */ (0,
|
|
4084
|
-
/* @__PURE__ */ (0,
|
|
4085
|
-
/* @__PURE__ */ (0,
|
|
4135
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center gap-x-1", children: [
|
|
4136
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "text-sm font-medium", children: "\u{1D453}(x)" }),
|
|
4137
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4086
4138
|
"svg",
|
|
4087
4139
|
{
|
|
4088
4140
|
className: "w-3 h-3",
|
|
4089
4141
|
fill: "none",
|
|
4090
4142
|
stroke: "currentColor",
|
|
4091
4143
|
viewBox: "0 0 24 24",
|
|
4092
|
-
children: /* @__PURE__ */ (0,
|
|
4144
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4093
4145
|
"path",
|
|
4094
4146
|
{
|
|
4095
4147
|
strokeLinecap: "round",
|
|
@@ -4106,13 +4158,13 @@ var InputGroup = ({
|
|
|
4106
4158
|
] });
|
|
4107
4159
|
};
|
|
4108
4160
|
const TextInputGroup = () => {
|
|
4109
|
-
return /* @__PURE__ */ (0,
|
|
4110
|
-
title ? /* @__PURE__ */ (0,
|
|
4111
|
-
/* @__PURE__ */ (0,
|
|
4161
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "my-1 relative", children: [
|
|
4162
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "text-md font-semibold pl-2 py-1 text-catchup-gray-400", children: title }) : null,
|
|
4163
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4112
4164
|
"div",
|
|
4113
4165
|
{
|
|
4114
4166
|
className: `w-full border ${errorText ? "border-catchup-red shadow-error" : "border-catchup-gray-100"} rounded-catchup-large focus-within:border-catchup-blue-400 focus-within:shadow-input ${disabled ? "bg-catchup-lighter-gray" : "bg-white"}`,
|
|
4115
|
-
children: /* @__PURE__ */ (0,
|
|
4167
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4116
4168
|
"input",
|
|
4117
4169
|
{
|
|
4118
4170
|
disabled,
|
|
@@ -4128,22 +4180,22 @@ var InputGroup = ({
|
|
|
4128
4180
|
)
|
|
4129
4181
|
}
|
|
4130
4182
|
),
|
|
4131
|
-
useMath && /* @__PURE__ */ (0,
|
|
4183
|
+
useMath && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4132
4184
|
"button",
|
|
4133
4185
|
{
|
|
4134
4186
|
className: "absolute right-2 top-1/2 transform -translate-y-1/2 bg-catchup-blue-400 text-white rounded-md px-3 py-1 shadow-sm hover:bg-catchup-blue-500 transition-colors duration-200",
|
|
4135
4187
|
onClick: handleOpenMathConstructor,
|
|
4136
4188
|
type: "button",
|
|
4137
|
-
children: /* @__PURE__ */ (0,
|
|
4138
|
-
/* @__PURE__ */ (0,
|
|
4139
|
-
/* @__PURE__ */ (0,
|
|
4189
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center gap-x-1", children: [
|
|
4190
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "text-sm font-medium", children: "\u{1D453}(x)" }),
|
|
4191
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4140
4192
|
"svg",
|
|
4141
4193
|
{
|
|
4142
4194
|
className: "w-3 h-3",
|
|
4143
4195
|
fill: "none",
|
|
4144
4196
|
stroke: "currentColor",
|
|
4145
4197
|
viewBox: "0 0 24 24",
|
|
4146
|
-
children: /* @__PURE__ */ (0,
|
|
4198
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4147
4199
|
"path",
|
|
4148
4200
|
{
|
|
4149
4201
|
strokeLinecap: "round",
|
|
@@ -4176,16 +4228,16 @@ var InputGroup = ({
|
|
|
4176
4228
|
return CheckboxInputGroup();
|
|
4177
4229
|
}
|
|
4178
4230
|
};
|
|
4179
|
-
return /* @__PURE__ */ (0,
|
|
4231
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
|
|
4180
4232
|
RenderMainContent(),
|
|
4181
|
-
/* @__PURE__ */ (0,
|
|
4233
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(MathConstructorModal, {})
|
|
4182
4234
|
] });
|
|
4183
4235
|
};
|
|
4184
4236
|
var InputGroup_default = InputGroup;
|
|
4185
4237
|
|
|
4186
4238
|
// src/components/activities/material-content/DropdownActivityMaterialContent.tsx
|
|
4187
|
-
var import_react14 = require("react");
|
|
4188
4239
|
var import_react15 = require("react");
|
|
4240
|
+
var import_react16 = require("react");
|
|
4189
4241
|
|
|
4190
4242
|
// src/utilization/AppUtilization.ts
|
|
4191
4243
|
var colors = [
|
|
@@ -4285,11 +4337,11 @@ var getColorByIndex = (index) => {
|
|
|
4285
4337
|
};
|
|
4286
4338
|
|
|
4287
4339
|
// src/components/dropdowns/MediaDropdown.tsx
|
|
4288
|
-
var
|
|
4289
|
-
var
|
|
4340
|
+
var import_react13 = require("react");
|
|
4341
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
4290
4342
|
var MediaDropdown = ({ id, answer, optionList }) => {
|
|
4291
|
-
const [showDropdown, setShowDropdown] = (0,
|
|
4292
|
-
return /* @__PURE__ */ (0,
|
|
4343
|
+
const [showDropdown, setShowDropdown] = (0, import_react13.useState)(false);
|
|
4344
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
4293
4345
|
"div",
|
|
4294
4346
|
{
|
|
4295
4347
|
className: "w-full relative",
|
|
@@ -4300,17 +4352,17 @@ var MediaDropdown = ({ id, answer, optionList }) => {
|
|
|
4300
4352
|
setShowDropdown(false);
|
|
4301
4353
|
},
|
|
4302
4354
|
children: [
|
|
4303
|
-
/* @__PURE__ */ (0,
|
|
4304
|
-
/* @__PURE__ */ (0,
|
|
4355
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "w-full flex flex-col items-center justify-center", children: answer }),
|
|
4356
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
4305
4357
|
"ul",
|
|
4306
4358
|
{
|
|
4307
4359
|
className: `absolute ${showDropdown ? "opacity-100 visible" : "opacity-0 invisible"} flex flex-col items-center w-[300px] rounded-catchup-xlarge border-3 transition-all duration-300 border-catchup-blue bg-catchup-white px-4 py-4 translate-x-1/2 right-1/2 mt-2 z-10`,
|
|
4308
|
-
children: optionList.map((option, index) => /* @__PURE__ */ (0,
|
|
4360
|
+
children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
4309
4361
|
"li",
|
|
4310
4362
|
{
|
|
4311
4363
|
className: `${option.listItemClassNames ? option.listItemClassNames : ""}`,
|
|
4312
4364
|
children: [
|
|
4313
|
-
/* @__PURE__ */ (0,
|
|
4365
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
4314
4366
|
"div",
|
|
4315
4367
|
{
|
|
4316
4368
|
className: `w-full flex flex-col my-2 ${option.divClassNames ? option.divClassNames : ""}`,
|
|
@@ -4318,7 +4370,7 @@ var MediaDropdown = ({ id, answer, optionList }) => {
|
|
|
4318
4370
|
children: option.media
|
|
4319
4371
|
}
|
|
4320
4372
|
),
|
|
4321
|
-
index !== optionList.length - 1 ? /* @__PURE__ */ (0,
|
|
4373
|
+
index !== optionList.length - 1 ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "w-full border my-1 border-catchup-light-blue rounded-catchup-full" }) : null
|
|
4322
4374
|
]
|
|
4323
4375
|
},
|
|
4324
4376
|
option.id
|
|
@@ -4333,24 +4385,24 @@ var MediaDropdown = ({ id, answer, optionList }) => {
|
|
|
4333
4385
|
var MediaDropdown_default = MediaDropdown;
|
|
4334
4386
|
|
|
4335
4387
|
// src/components/activities/material-content/ShowMaterialMediaByContentType.tsx
|
|
4336
|
-
var
|
|
4388
|
+
var import_react14 = require("react");
|
|
4337
4389
|
var import_react_modal3 = __toESM(require("react-modal"));
|
|
4338
|
-
var
|
|
4390
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
4339
4391
|
var ShowMaterialMediaByContentType = ({
|
|
4340
4392
|
key,
|
|
4341
4393
|
contentType,
|
|
4342
4394
|
src,
|
|
4343
4395
|
canFullScreen
|
|
4344
4396
|
}) => {
|
|
4345
|
-
const [showFullScreen, setShowFullScreen] = (0,
|
|
4346
|
-
const [selectedFullScreenItem, setSelectedFullScreenItem] = (0,
|
|
4347
|
-
const [isLoaded, setIsLoaded] = (0,
|
|
4348
|
-
const [isFullHeight, setIsFullHeight] = (0,
|
|
4349
|
-
const imageRef = (0,
|
|
4350
|
-
(0,
|
|
4397
|
+
const [showFullScreen, setShowFullScreen] = (0, import_react14.useState)(false);
|
|
4398
|
+
const [selectedFullScreenItem, setSelectedFullScreenItem] = (0, import_react14.useState)(null);
|
|
4399
|
+
const [isLoaded, setIsLoaded] = (0, import_react14.useState)(false);
|
|
4400
|
+
const [isFullHeight, setIsFullHeight] = (0, import_react14.useState)(false);
|
|
4401
|
+
const imageRef = (0, import_react14.useRef)(null);
|
|
4402
|
+
(0, import_react14.useEffect)(() => {
|
|
4351
4403
|
setIsLoaded(false);
|
|
4352
4404
|
}, []);
|
|
4353
|
-
(0,
|
|
4405
|
+
(0, import_react14.useEffect)(() => {
|
|
4354
4406
|
if (!isLoaded) return;
|
|
4355
4407
|
if (!imageRef) return;
|
|
4356
4408
|
if (!imageRef.current) return;
|
|
@@ -4363,7 +4415,7 @@ var ShowMaterialMediaByContentType = ({
|
|
|
4363
4415
|
}
|
|
4364
4416
|
}, [isLoaded, key]);
|
|
4365
4417
|
const RenderShowFullScreenItem = () => {
|
|
4366
|
-
return /* @__PURE__ */ (0,
|
|
4418
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4367
4419
|
import_react_modal3.default,
|
|
4368
4420
|
{
|
|
4369
4421
|
isOpen: showFullScreen,
|
|
@@ -4394,8 +4446,8 @@ var ShowMaterialMediaByContentType = ({
|
|
|
4394
4446
|
}
|
|
4395
4447
|
},
|
|
4396
4448
|
contentLabel: "",
|
|
4397
|
-
children: /* @__PURE__ */ (0,
|
|
4398
|
-
/* @__PURE__ */ (0,
|
|
4449
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex-1 flex flex-col", children: [
|
|
4450
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "ml-auto px-5 py-3", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4399
4451
|
BaseImage_default,
|
|
4400
4452
|
{
|
|
4401
4453
|
src: "/icons/cross-red.webp",
|
|
@@ -4407,7 +4459,7 @@ var ShowMaterialMediaByContentType = ({
|
|
|
4407
4459
|
}
|
|
4408
4460
|
}
|
|
4409
4461
|
) }),
|
|
4410
|
-
/* @__PURE__ */ (0,
|
|
4462
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4411
4463
|
BaseImage_default,
|
|
4412
4464
|
{
|
|
4413
4465
|
src: selectedFullScreenItem,
|
|
@@ -4420,14 +4472,14 @@ var ShowMaterialMediaByContentType = ({
|
|
|
4420
4472
|
}
|
|
4421
4473
|
);
|
|
4422
4474
|
};
|
|
4423
|
-
return contentType === "IMAGE" ? /* @__PURE__ */ (0,
|
|
4475
|
+
return contentType === "IMAGE" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { children: [
|
|
4424
4476
|
RenderShowFullScreenItem(),
|
|
4425
|
-
/* @__PURE__ */ (0,
|
|
4477
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "my-2", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "h-full flex flex-row flex-wrap items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4426
4478
|
"div",
|
|
4427
4479
|
{
|
|
4428
4480
|
className: `${isFullHeight ? "h-catchup-activity-box-item" : "max-w-catchup-activity-box-item"} flex flex-col justify-center items-center relative`,
|
|
4429
4481
|
children: [
|
|
4430
|
-
/* @__PURE__ */ (0,
|
|
4482
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4431
4483
|
BaseImage_default,
|
|
4432
4484
|
{
|
|
4433
4485
|
src,
|
|
@@ -4440,7 +4492,7 @@ var ShowMaterialMediaByContentType = ({
|
|
|
4440
4492
|
}
|
|
4441
4493
|
}
|
|
4442
4494
|
),
|
|
4443
|
-
src !== null && src !== "" && src !== "DEFAULT_OPTION" && canFullScreen ? /* @__PURE__ */ (0,
|
|
4495
|
+
src !== null && src !== "" && src !== "DEFAULT_OPTION" && canFullScreen ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4444
4496
|
"div",
|
|
4445
4497
|
{
|
|
4446
4498
|
className: "absolute flex items-center justify-center top-2 right-2 h-6 w-6 cursor-pointer border rounded-catchup-xlarge border-catchup-blue p-1",
|
|
@@ -4452,7 +4504,7 @@ var ShowMaterialMediaByContentType = ({
|
|
|
4452
4504
|
setShowFullScreen(true);
|
|
4453
4505
|
setSelectedFullScreenItem(src);
|
|
4454
4506
|
},
|
|
4455
|
-
children: /* @__PURE__ */ (0,
|
|
4507
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4456
4508
|
BaseImage_default,
|
|
4457
4509
|
{
|
|
4458
4510
|
src: "/icons/arrow-up.webp",
|
|
@@ -4466,7 +4518,7 @@ var ShowMaterialMediaByContentType = ({
|
|
|
4466
4518
|
]
|
|
4467
4519
|
}
|
|
4468
4520
|
) }) })
|
|
4469
|
-
] }, key) : contentType === "VIDEO" ? /* @__PURE__ */ (0,
|
|
4521
|
+
] }, key) : contentType === "VIDEO" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "my-2", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "h-full flex flex-row flex-wrap items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "h-full flex flex-col justify-center items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4470
4522
|
"video",
|
|
4471
4523
|
{
|
|
4472
4524
|
className: "h-catchup-activity-box-item rounded-catchup-xlarge",
|
|
@@ -4475,7 +4527,7 @@ var ShowMaterialMediaByContentType = ({
|
|
|
4475
4527
|
onClick: () => {
|
|
4476
4528
|
}
|
|
4477
4529
|
}
|
|
4478
|
-
) }) }) }) : contentType === "AUDIO" ? /* @__PURE__ */ (0,
|
|
4530
|
+
) }) }) }) : contentType === "AUDIO" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "my-2", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "h-full flex flex-row flex-wrap items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "h-full flex flex-col justify-center items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4479
4531
|
"audio",
|
|
4480
4532
|
{
|
|
4481
4533
|
className: "h-catchup-activity-box-item rounded-catchup-xlarge",
|
|
@@ -4489,7 +4541,7 @@ var ShowMaterialMediaByContentType = ({
|
|
|
4489
4541
|
var ShowMaterialMediaByContentType_default = ShowMaterialMediaByContentType;
|
|
4490
4542
|
|
|
4491
4543
|
// src/components/activities/material-content/DropdownActivityMaterialContent.tsx
|
|
4492
|
-
var
|
|
4544
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
4493
4545
|
var DropdownActivityMaterialContent = ({
|
|
4494
4546
|
uniqueValue,
|
|
4495
4547
|
answer,
|
|
@@ -4500,8 +4552,8 @@ var DropdownActivityMaterialContent = ({
|
|
|
4500
4552
|
isPreview,
|
|
4501
4553
|
showCorrectAnswer
|
|
4502
4554
|
}) => {
|
|
4503
|
-
const [updated, setUpdated] = (0,
|
|
4504
|
-
(0,
|
|
4555
|
+
const [updated, setUpdated] = (0, import_react16.useState)(false);
|
|
4556
|
+
(0, import_react15.useEffect)(() => {
|
|
4505
4557
|
if (!showCorrectAnswer) return;
|
|
4506
4558
|
const foundAnswer = answer.data.find(
|
|
4507
4559
|
(answerData) => answerData.type === "DROPDOWN"
|
|
@@ -4514,7 +4566,7 @@ var DropdownActivityMaterialContent = ({
|
|
|
4514
4566
|
onChange(answer, 0, Object.keys(materialMap[0])[0]);
|
|
4515
4567
|
setUpdated(true);
|
|
4516
4568
|
}, [showCorrectAnswer]);
|
|
4517
|
-
(0,
|
|
4569
|
+
(0, import_react15.useEffect)(() => {
|
|
4518
4570
|
if (!updated) return;
|
|
4519
4571
|
setUpdated(false);
|
|
4520
4572
|
}, [updated]);
|
|
@@ -4532,22 +4584,22 @@ var DropdownActivityMaterialContent = ({
|
|
|
4532
4584
|
return "INCORRECT";
|
|
4533
4585
|
};
|
|
4534
4586
|
const answerMap = retrieveAnswerMap();
|
|
4535
|
-
return /* @__PURE__ */ (0,
|
|
4536
|
-
/* @__PURE__ */ (0,
|
|
4537
|
-
/* @__PURE__ */ (0,
|
|
4538
|
-
/* @__PURE__ */ (0,
|
|
4587
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "flex flex-row flex-wrap items-center", children: [
|
|
4588
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "hidden md:block", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "font-semibold text-xl opacity-60", children: i18n_default.t("please_select_dropdown_text") }) }),
|
|
4589
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "hidden md:contents", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DividerLine_default, {}) }),
|
|
4590
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "w-full flex flex-row flex-wrap", children: Object.keys(answerMap).map((materialKey, index) => {
|
|
4539
4591
|
const answerKey = Object.keys(materialMap[materialKey])[0];
|
|
4540
4592
|
const learnerAnswerState = checkAnswerState(
|
|
4541
4593
|
answerKey,
|
|
4542
4594
|
answerMap[materialKey]
|
|
4543
4595
|
);
|
|
4544
|
-
return /* @__PURE__ */ (0,
|
|
4545
|
-
/* @__PURE__ */ (0,
|
|
4596
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "w-full md:w-1/2", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "mx-2", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "w-full flex flex-row my-2 gap-x-2", children: [
|
|
4597
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "my-auto", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("p", { className: "text-xl", children: [
|
|
4546
4598
|
parseFloat(materialKey) + 1,
|
|
4547
4599
|
"."
|
|
4548
4600
|
] }) }),
|
|
4549
|
-
/* @__PURE__ */ (0,
|
|
4550
|
-
/* @__PURE__ */ (0,
|
|
4601
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "w-full relative", children: [
|
|
4602
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex-1", children: checkCanAnswerQuestion() ? contentMap.type === "TEXT" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4551
4603
|
InputGroup_default,
|
|
4552
4604
|
{
|
|
4553
4605
|
type: "select",
|
|
@@ -4555,13 +4607,13 @@ var DropdownActivityMaterialContent = ({
|
|
|
4555
4607
|
optionList: shuffleArray(
|
|
4556
4608
|
materialMap[materialKey][answerKey]
|
|
4557
4609
|
).map((materialOption) => ({
|
|
4558
|
-
text: /* @__PURE__ */ (0,
|
|
4610
|
+
text: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "text-xl whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(
|
|
4559
4611
|
materialOption
|
|
4560
|
-
).map((inputPart, index2) => /* @__PURE__ */ (0,
|
|
4612
|
+
).map((inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4561
4613
|
"span",
|
|
4562
4614
|
{
|
|
4563
4615
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
4564
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
4616
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4565
4617
|
import_react_katex2.InlineMath,
|
|
4566
4618
|
{
|
|
4567
4619
|
math: inputPart.value
|
|
@@ -4576,11 +4628,11 @@ var DropdownActivityMaterialContent = ({
|
|
|
4576
4628
|
onChange(answer, materialKey, e.target.value);
|
|
4577
4629
|
}
|
|
4578
4630
|
}
|
|
4579
|
-
) }) : /* @__PURE__ */ (0,
|
|
4631
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4580
4632
|
MediaDropdown_default,
|
|
4581
4633
|
{
|
|
4582
4634
|
id: materialKey,
|
|
4583
|
-
answer: answerMap[materialKey] === "DEFAULT_OPTION" ? /* @__PURE__ */ (0,
|
|
4635
|
+
answer: answerMap[materialKey] === "DEFAULT_OPTION" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "w-catchup-activity-box-item border h-catchup-activity-box-item rounded-catchup-xlarge border-dashed border-catchup-blue", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "h-full flex flex-col items-center justify-center px-4 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "italic", children: i18n_default.t("please_select") }) }) }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4584
4636
|
ShowMaterialMediaByContentType_default,
|
|
4585
4637
|
{
|
|
4586
4638
|
contentType: contentMap.type,
|
|
@@ -4592,7 +4644,7 @@ var DropdownActivityMaterialContent = ({
|
|
|
4592
4644
|
optionList: materialMap[materialKey][answerKey].map(
|
|
4593
4645
|
(materialOption, index2) => ({
|
|
4594
4646
|
id: index2,
|
|
4595
|
-
media: /* @__PURE__ */ (0,
|
|
4647
|
+
media: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4596
4648
|
ShowMaterialMediaByContentType_default,
|
|
4597
4649
|
{
|
|
4598
4650
|
contentType: contentMap.type,
|
|
@@ -4611,24 +4663,24 @@ var DropdownActivityMaterialContent = ({
|
|
|
4611
4663
|
})
|
|
4612
4664
|
)
|
|
4613
4665
|
}
|
|
4614
|
-
) : /* @__PURE__ */ (0,
|
|
4666
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "text-xl whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(
|
|
4615
4667
|
answerMap[materialKey]
|
|
4616
|
-
).map((inputPart, index2) => /* @__PURE__ */ (0,
|
|
4668
|
+
).map((inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4617
4669
|
"span",
|
|
4618
4670
|
{
|
|
4619
4671
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
4620
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
4672
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_katex2.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
4621
4673
|
},
|
|
4622
4674
|
index2
|
|
4623
4675
|
)) }) }),
|
|
4624
|
-
learnerAnswerState === "CORRECT" ? /* @__PURE__ */ (0,
|
|
4676
|
+
learnerAnswerState === "CORRECT" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "absolute -top-2 right-3 bg-catchup-white", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4625
4677
|
BaseImage_default,
|
|
4626
4678
|
{
|
|
4627
4679
|
src: "/icons/checkbox.webp",
|
|
4628
4680
|
alt: "chekbbox",
|
|
4629
4681
|
size: "small"
|
|
4630
4682
|
}
|
|
4631
|
-
) }) : learnerAnswerState === "INCORRECT" ? /* @__PURE__ */ (0,
|
|
4683
|
+
) }) : learnerAnswerState === "INCORRECT" ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "absolute -top-2 right-3 bg-catchup-white", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4632
4684
|
BaseImage_default,
|
|
4633
4685
|
{
|
|
4634
4686
|
src: "/icons/cross-red.webp",
|
|
@@ -4644,8 +4696,8 @@ var DropdownActivityMaterialContent = ({
|
|
|
4644
4696
|
var DropdownActivityMaterialContent_default = DropdownActivityMaterialContent;
|
|
4645
4697
|
|
|
4646
4698
|
// src/components/activities/DropdownActivityContent.tsx
|
|
4647
|
-
var
|
|
4648
|
-
var
|
|
4699
|
+
var import_react17 = require("react");
|
|
4700
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
4649
4701
|
var DropdownActivityContent = ({
|
|
4650
4702
|
answer,
|
|
4651
4703
|
data,
|
|
@@ -4658,7 +4710,7 @@ var DropdownActivityContent = ({
|
|
|
4658
4710
|
const contentMap = parseContentMapFromData(data);
|
|
4659
4711
|
const dropdownBodyMap = parseBodyMapFromData(data, "DROPDOWN");
|
|
4660
4712
|
const dropdownMaterialMap = parseMaterialMapFromData(data, "DROPDOWN");
|
|
4661
|
-
const [currentAnswerMap, setCurrentAnswerMap] = (0,
|
|
4713
|
+
const [currentAnswerMap, setCurrentAnswerMap] = (0, import_react17.useState)(() => {
|
|
4662
4714
|
return retrieveCurrentAnswerMap();
|
|
4663
4715
|
});
|
|
4664
4716
|
function retrieveCurrentAnswerMap() {
|
|
@@ -4667,7 +4719,7 @@ var DropdownActivityContent = ({
|
|
|
4667
4719
|
);
|
|
4668
4720
|
return answer.data[foundIndex].answerMap;
|
|
4669
4721
|
}
|
|
4670
|
-
(0,
|
|
4722
|
+
(0, import_react17.useEffect)(() => {
|
|
4671
4723
|
setCurrentAnswerMap(retrieveCurrentAnswerMap());
|
|
4672
4724
|
}, [answer]);
|
|
4673
4725
|
const handleDropdownAnswerOnChange = (answerObj, key, value) => {
|
|
@@ -4687,8 +4739,8 @@ var DropdownActivityContent = ({
|
|
|
4687
4739
|
setCurrentAnswerMap(newAnswerMap);
|
|
4688
4740
|
changeAnswer(newAnswer);
|
|
4689
4741
|
};
|
|
4690
|
-
return /* @__PURE__ */ (0,
|
|
4691
|
-
/* @__PURE__ */ (0,
|
|
4742
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex flex-row flex-wrap", children: [
|
|
4743
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: `${isFullScreen ? "w-full" : "w-full md:w-[60%]"}`, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4692
4744
|
ActivityBodyContent_default,
|
|
4693
4745
|
{
|
|
4694
4746
|
bodyMap: dropdownBodyMap,
|
|
@@ -4697,9 +4749,9 @@ var DropdownActivityContent = ({
|
|
|
4697
4749
|
templateType: "DROPDOWN"
|
|
4698
4750
|
}
|
|
4699
4751
|
) }),
|
|
4700
|
-
/* @__PURE__ */ (0,
|
|
4701
|
-
/* @__PURE__ */ (0,
|
|
4702
|
-
/* @__PURE__ */ (0,
|
|
4752
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: `${isFullScreen ? "contents" : "contents md:hidden"}`, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(DividerLine_default, {}) }),
|
|
4753
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: `${isFullScreen ? "hidden" : "hidden md:block"}`, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(VerticalDividerLine_default, {}) }),
|
|
4754
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: `${isFullScreen ? "w-full" : "w-full md:flex-1"}`, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4703
4755
|
DropdownActivityMaterialContent_default,
|
|
4704
4756
|
{
|
|
4705
4757
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
@@ -4718,13 +4770,13 @@ var DropdownActivityContent_default = DropdownActivityContent;
|
|
|
4718
4770
|
|
|
4719
4771
|
// src/components/activities/material-content/FillInTheBlanksActivityMaterialContent.tsx
|
|
4720
4772
|
var import_react_katex3 = require("react-katex");
|
|
4721
|
-
var import_react18 = require("react");
|
|
4722
4773
|
var import_react19 = require("react");
|
|
4774
|
+
var import_react20 = require("react");
|
|
4723
4775
|
var import_react_dnd3 = require("react-dnd");
|
|
4724
4776
|
|
|
4725
4777
|
// src/components/dnds/DraggableItem.tsx
|
|
4726
4778
|
var import_react_dnd = require("react-dnd");
|
|
4727
|
-
var
|
|
4779
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
4728
4780
|
var DraggableItem = ({
|
|
4729
4781
|
item,
|
|
4730
4782
|
type,
|
|
@@ -4745,20 +4797,20 @@ var DraggableItem = ({
|
|
|
4745
4797
|
})
|
|
4746
4798
|
});
|
|
4747
4799
|
const opacity = isDragging ? 0.4 : 1;
|
|
4748
|
-
return /* @__PURE__ */ (0,
|
|
4800
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
4749
4801
|
"div",
|
|
4750
4802
|
{
|
|
4751
4803
|
className: `${isDragging ? "w-[0px] opacity-0" : "opacity-100"} transition-all duration-500`,
|
|
4752
|
-
children: /* @__PURE__ */ (0,
|
|
4804
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { ref: drag, className: "", style: { opacity }, children: component })
|
|
4753
4805
|
}
|
|
4754
4806
|
);
|
|
4755
4807
|
};
|
|
4756
4808
|
var DraggableItem_default = DraggableItem;
|
|
4757
4809
|
|
|
4758
4810
|
// src/components/dnds/DroppableItem.tsx
|
|
4759
|
-
var
|
|
4811
|
+
var import_react18 = require("react");
|
|
4760
4812
|
var import_react_dnd2 = require("react-dnd");
|
|
4761
|
-
var
|
|
4813
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
4762
4814
|
var DroppableItem = ({
|
|
4763
4815
|
item,
|
|
4764
4816
|
type,
|
|
@@ -4767,7 +4819,7 @@ var DroppableItem = ({
|
|
|
4767
4819
|
target,
|
|
4768
4820
|
setTarget
|
|
4769
4821
|
}) => {
|
|
4770
|
-
const ref = (0,
|
|
4822
|
+
const ref = (0, import_react18.useRef)(null);
|
|
4771
4823
|
const [, drop] = (0, import_react_dnd2.useDrop)({
|
|
4772
4824
|
accept: type,
|
|
4773
4825
|
hover() {
|
|
@@ -4777,12 +4829,12 @@ var DroppableItem = ({
|
|
|
4777
4829
|
}
|
|
4778
4830
|
});
|
|
4779
4831
|
dropRef(drop(ref));
|
|
4780
|
-
return /* @__PURE__ */ (0,
|
|
4832
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: `w-full transition-all duration-500 h-full`, ref, children: component });
|
|
4781
4833
|
};
|
|
4782
4834
|
var DroppableItem_default = DroppableItem;
|
|
4783
4835
|
|
|
4784
4836
|
// src/components/activities/material-content/FillInTheBlanksActivityMaterialContent.tsx
|
|
4785
|
-
var
|
|
4837
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
4786
4838
|
var FillInTheBlanksActivityMaterialContent = ({
|
|
4787
4839
|
uniqueValue,
|
|
4788
4840
|
answer,
|
|
@@ -4794,9 +4846,9 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4794
4846
|
isPreview,
|
|
4795
4847
|
showCorrectAnswer
|
|
4796
4848
|
}) => {
|
|
4797
|
-
const [shuffleOptionList, setShuffleOptionList] = (0,
|
|
4798
|
-
const [selectedOption, setSelectedOption] = (0,
|
|
4799
|
-
const [pasteOptionIndex, setPasteOptionIndex] = (0,
|
|
4849
|
+
const [shuffleOptionList, setShuffleOptionList] = (0, import_react19.useState)([]);
|
|
4850
|
+
const [selectedOption, setSelectedOption] = (0, import_react19.useState)(null);
|
|
4851
|
+
const [pasteOptionIndex, setPasteOptionIndex] = (0, import_react19.useState)(null);
|
|
4800
4852
|
const [{ isOver, canDrop }, drop] = (0, import_react_dnd3.useDrop)({
|
|
4801
4853
|
accept: "FILL_IN_THE_BLANKS",
|
|
4802
4854
|
drop: () => {
|
|
@@ -4806,10 +4858,10 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4806
4858
|
canDrop: monitor.canDrop()
|
|
4807
4859
|
})
|
|
4808
4860
|
});
|
|
4809
|
-
(0,
|
|
4861
|
+
(0, import_react20.useEffect)(() => {
|
|
4810
4862
|
setShuffleOptionList(shuffleArray(optionList));
|
|
4811
4863
|
}, []);
|
|
4812
|
-
(0,
|
|
4864
|
+
(0, import_react20.useEffect)(() => {
|
|
4813
4865
|
if (!showCorrectAnswer) return;
|
|
4814
4866
|
const foundAnswer = answer.data.find(
|
|
4815
4867
|
(answerData) => answerData.type === "FILL_IN_THE_BLANKS"
|
|
@@ -4841,12 +4893,12 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4841
4893
|
return Object.keys(answerMap2).findIndex((key) => answerMap2[key] === option) !== -1;
|
|
4842
4894
|
};
|
|
4843
4895
|
const answerMap = retrieveAnswerMap();
|
|
4844
|
-
return /* @__PURE__ */ (0,
|
|
4896
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex flex-row flex-wrap items-center", onMouseUp: () => {
|
|
4845
4897
|
}, children: [
|
|
4846
|
-
/* @__PURE__ */ (0,
|
|
4847
|
-
/* @__PURE__ */ (0,
|
|
4848
|
-
/* @__PURE__ */ (0,
|
|
4849
|
-
(option, index) => checkAnswerProvided(answerMap, option) ? /* @__PURE__ */ (0,
|
|
4898
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "hidden md:block", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "font-semibold text-xl opacity-60", children: i18n_default.t("please_select_fill_in_the_blanks_text") }) }),
|
|
4899
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "hidden md:contents", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DividerLine_default, {}) }),
|
|
4900
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "w-full flex flex-row flex-wrap gap-x-2 gap-y-2 my-2", children: shuffleOptionList.map(
|
|
4901
|
+
(option, index) => checkAnswerProvided(answerMap, option) ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "opacity-30", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4850
4902
|
ShowMaterialMediaByContentType_default,
|
|
4851
4903
|
{
|
|
4852
4904
|
contentType: contentMap.type,
|
|
@@ -4854,12 +4906,12 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4854
4906
|
canFullScreen: true
|
|
4855
4907
|
},
|
|
4856
4908
|
`${uniqueValue}-${index}`
|
|
4857
|
-
) }, index) : /* @__PURE__ */ (0,
|
|
4909
|
+
) }, index) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4858
4910
|
DraggableItem_default,
|
|
4859
4911
|
{
|
|
4860
4912
|
item: { index: option },
|
|
4861
4913
|
type: "FILL_IN_THE_BLANKS",
|
|
4862
|
-
component: contentMap.type === "TEXT" ? /* @__PURE__ */ (0,
|
|
4914
|
+
component: contentMap.type === "TEXT" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4863
4915
|
"div",
|
|
4864
4916
|
{
|
|
4865
4917
|
className: "border-catchup-blue border-2 px-2 py-1 rounded-catchup-xlarge cursor-pointer",
|
|
@@ -4867,9 +4919,9 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4867
4919
|
setSelectedOption(option);
|
|
4868
4920
|
setPasteOptionIndex(null);
|
|
4869
4921
|
},
|
|
4870
|
-
children: /* @__PURE__ */ (0,
|
|
4922
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "italic whitespace-pre-wrap", children: option })
|
|
4871
4923
|
}
|
|
4872
|
-
) : /* @__PURE__ */ (0,
|
|
4924
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4873
4925
|
"div",
|
|
4874
4926
|
{
|
|
4875
4927
|
className: "border-catchup-blue border-2 px-2 py-1 rounded-catchup-xlarge cursor-pointer",
|
|
@@ -4877,7 +4929,7 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4877
4929
|
setSelectedOption(option);
|
|
4878
4930
|
setPasteOptionIndex(null);
|
|
4879
4931
|
},
|
|
4880
|
-
children: /* @__PURE__ */ (0,
|
|
4932
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4881
4933
|
ShowMaterialMediaByContentType_default,
|
|
4882
4934
|
{
|
|
4883
4935
|
contentType: contentMap.type,
|
|
@@ -4895,12 +4947,12 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4895
4947
|
index
|
|
4896
4948
|
)
|
|
4897
4949
|
) }),
|
|
4898
|
-
/* @__PURE__ */ (0,
|
|
4950
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex flex-row flex-wrap", children: Object.keys(answerMap).map((materialKey, index) => {
|
|
4899
4951
|
const learnerAnswerState = checkAnswerState(
|
|
4900
4952
|
JSON.parse(materialMap[materialKey]),
|
|
4901
4953
|
answerMap[materialKey]
|
|
4902
4954
|
);
|
|
4903
|
-
return /* @__PURE__ */ (0,
|
|
4955
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "w-full md:w-1/2", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "mx-2", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4904
4956
|
DroppableItem_default,
|
|
4905
4957
|
{
|
|
4906
4958
|
item: { index },
|
|
@@ -4908,13 +4960,13 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4908
4960
|
target: pasteOptionIndex,
|
|
4909
4961
|
setTarget: setPasteOptionIndex,
|
|
4910
4962
|
dropRef: drop,
|
|
4911
|
-
component: /* @__PURE__ */ (0,
|
|
4912
|
-
/* @__PURE__ */ (0,
|
|
4963
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "w-full flex flex-row my-2 gap-x-2", children: [
|
|
4964
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "my-auto", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("p", { className: "text-xl", children: [
|
|
4913
4965
|
parseFloat(materialKey) + 1,
|
|
4914
4966
|
"."
|
|
4915
4967
|
] }) }),
|
|
4916
|
-
/* @__PURE__ */ (0,
|
|
4917
|
-
/* @__PURE__ */ (0,
|
|
4968
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex-1", children: checkCanAnswerQuestion() ? contentMap.type === "TEXT" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "relative", children: [
|
|
4969
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4918
4970
|
InputGroup_default,
|
|
4919
4971
|
{
|
|
4920
4972
|
type: "textarea",
|
|
@@ -4929,14 +4981,14 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4929
4981
|
}
|
|
4930
4982
|
}
|
|
4931
4983
|
) }),
|
|
4932
|
-
learnerAnswerState === "CORRECT" ? /* @__PURE__ */ (0,
|
|
4984
|
+
learnerAnswerState === "CORRECT" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "absolute -top-[10px] right-4 bg-catchup-white", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4933
4985
|
BaseImage_default,
|
|
4934
4986
|
{
|
|
4935
4987
|
src: "/icons/checkbox.webp",
|
|
4936
4988
|
alt: "checkbox",
|
|
4937
4989
|
size: "small"
|
|
4938
4990
|
}
|
|
4939
|
-
) }) : learnerAnswerState === "INCORRECT" ? /* @__PURE__ */ (0,
|
|
4991
|
+
) }) : learnerAnswerState === "INCORRECT" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "absolute -top-[10px] right-4 bg-catchup-white", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4940
4992
|
BaseImage_default,
|
|
4941
4993
|
{
|
|
4942
4994
|
src: "/icons/cross-red.webp",
|
|
@@ -4944,20 +4996,20 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4944
4996
|
size: "small"
|
|
4945
4997
|
}
|
|
4946
4998
|
) }) : null
|
|
4947
|
-
] }) : answerMap[materialKey] === "" ? /* @__PURE__ */ (0,
|
|
4999
|
+
] }) : answerMap[materialKey] === "" ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4948
5000
|
"div",
|
|
4949
5001
|
{
|
|
4950
5002
|
className: `w-catchup-activity-box-item border h-catchup-activity-box-item rounded-catchup-xlarge border-dashed ${learnerAnswerState === "CORRECT" ? "border-catchup-green" : learnerAnswerState === "INCORRECT" ? "border-catchup-red" : "border-catchup-blue"}`,
|
|
4951
|
-
children: /* @__PURE__ */ (0,
|
|
5003
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "h-full flex flex-col items-center justify-center px-4 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "italic", children: i18n_default.t("please_drop_here") }) })
|
|
4952
5004
|
}
|
|
4953
|
-
) : /* @__PURE__ */ (0,
|
|
5005
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4954
5006
|
"div",
|
|
4955
5007
|
{
|
|
4956
5008
|
className: "flex-1 cursor-pointer",
|
|
4957
5009
|
onClick: () => {
|
|
4958
5010
|
onChange(answer, materialKey, "");
|
|
4959
5011
|
},
|
|
4960
|
-
children: /* @__PURE__ */ (0,
|
|
5012
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4961
5013
|
ShowMaterialMediaByContentType_default,
|
|
4962
5014
|
{
|
|
4963
5015
|
contentType: contentMap.type,
|
|
@@ -4967,13 +5019,13 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4967
5019
|
`${uniqueValue}-${index}`
|
|
4968
5020
|
)
|
|
4969
5021
|
}
|
|
4970
|
-
) : /* @__PURE__ */ (0,
|
|
5022
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "text-xl", children: constructInputWithSpecialExpressionList(
|
|
4971
5023
|
answerMap[materialKey]
|
|
4972
|
-
).map((inputPart, index2) => /* @__PURE__ */ (0,
|
|
5024
|
+
).map((inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4973
5025
|
"span",
|
|
4974
5026
|
{
|
|
4975
5027
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
4976
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
5028
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_katex3.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
4977
5029
|
},
|
|
4978
5030
|
index2
|
|
4979
5031
|
)) }, materialKey) })
|
|
@@ -4987,8 +5039,8 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4987
5039
|
var FillInTheBlanksActivityMaterialContent_default = FillInTheBlanksActivityMaterialContent;
|
|
4988
5040
|
|
|
4989
5041
|
// src/components/activities/FillInTheBlanksActivityContent.tsx
|
|
4990
|
-
var
|
|
4991
|
-
var
|
|
5042
|
+
var import_react21 = require("react");
|
|
5043
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
4992
5044
|
var FillInTheBlanksActivityContent = ({
|
|
4993
5045
|
answer,
|
|
4994
5046
|
data,
|
|
@@ -5008,7 +5060,7 @@ var FillInTheBlanksActivityContent = ({
|
|
|
5008
5060
|
"FILL_IN_THE_BLANKS"
|
|
5009
5061
|
);
|
|
5010
5062
|
const fillInTheBlanksIncorrectList = data.fillInTheBlanksIncorrectList ? JSON.parse(data.fillInTheBlanksIncorrectList) : [];
|
|
5011
|
-
const [currentAnswerMap, setCurrentAnswerMap] = (0,
|
|
5063
|
+
const [currentAnswerMap, setCurrentAnswerMap] = (0, import_react21.useState)(() => {
|
|
5012
5064
|
return retrieveCurrentAnswerMap();
|
|
5013
5065
|
});
|
|
5014
5066
|
function retrieveCurrentAnswerMap() {
|
|
@@ -5017,7 +5069,7 @@ var FillInTheBlanksActivityContent = ({
|
|
|
5017
5069
|
);
|
|
5018
5070
|
return answer.data[foundIndex].answerMap;
|
|
5019
5071
|
}
|
|
5020
|
-
(0,
|
|
5072
|
+
(0, import_react21.useEffect)(() => {
|
|
5021
5073
|
setCurrentAnswerMap(retrieveCurrentAnswerMap());
|
|
5022
5074
|
}, [answer]);
|
|
5023
5075
|
const constructAnswerOptionList = () => {
|
|
@@ -5055,8 +5107,8 @@ var FillInTheBlanksActivityContent = ({
|
|
|
5055
5107
|
setCurrentAnswerMap(newAnswerMap);
|
|
5056
5108
|
changeAnswer(newAnswer);
|
|
5057
5109
|
};
|
|
5058
|
-
return /* @__PURE__ */ (0,
|
|
5059
|
-
/* @__PURE__ */ (0,
|
|
5110
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex flex-row flex-wrap", children: [
|
|
5111
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: `${isFullScreen ? "w-full" : "w-full md:w-[60%]"}`, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
5060
5112
|
ActivityBodyContent_default,
|
|
5061
5113
|
{
|
|
5062
5114
|
bodyMap: fillInTheBlanksBodyMap,
|
|
@@ -5065,9 +5117,9 @@ var FillInTheBlanksActivityContent = ({
|
|
|
5065
5117
|
templateType: "FILL_IN_THE_BLANKS"
|
|
5066
5118
|
}
|
|
5067
5119
|
) }),
|
|
5068
|
-
/* @__PURE__ */ (0,
|
|
5069
|
-
/* @__PURE__ */ (0,
|
|
5070
|
-
/* @__PURE__ */ (0,
|
|
5120
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: `${isFullScreen ? "contents" : "contents md:hidden"}`, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DividerLine_default, {}) }),
|
|
5121
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: `${isFullScreen ? "hidden" : "hidden md:block"}`, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(VerticalDividerLine_default, {}) }),
|
|
5122
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: `${isFullScreen ? "w-full" : "w-full md:flex-1"}`, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
5071
5123
|
FillInTheBlanksActivityMaterialContent_default,
|
|
5072
5124
|
{
|
|
5073
5125
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
@@ -5086,22 +5138,22 @@ var FillInTheBlanksActivityContent = ({
|
|
|
5086
5138
|
var FillInTheBlanksActivityContent_default = FillInTheBlanksActivityContent;
|
|
5087
5139
|
|
|
5088
5140
|
// src/components/activities/material-content/GroupingActivityMaterialContent.tsx
|
|
5089
|
-
var
|
|
5141
|
+
var import_react23 = require("react");
|
|
5090
5142
|
var import_react_dnd4 = require("react-dnd");
|
|
5091
5143
|
var import_react_katex4 = require("react-katex");
|
|
5092
5144
|
|
|
5093
5145
|
// src/hooks/useScreenSize.ts
|
|
5094
|
-
var
|
|
5146
|
+
var import_react22 = require("react");
|
|
5095
5147
|
var useScreenSize = () => {
|
|
5096
|
-
const [containerSize, setContainerSize] = (0,
|
|
5148
|
+
const [containerSize, setContainerSize] = (0, import_react22.useState)({
|
|
5097
5149
|
width: 0,
|
|
5098
5150
|
height: 0
|
|
5099
5151
|
});
|
|
5100
|
-
const [screenSize, setScreenSize] = (0,
|
|
5152
|
+
const [screenSize, setScreenSize] = (0, import_react22.useState)({
|
|
5101
5153
|
width: window.innerWidth,
|
|
5102
5154
|
height: window.innerHeight
|
|
5103
5155
|
});
|
|
5104
|
-
(0,
|
|
5156
|
+
(0, import_react22.useEffect)(() => {
|
|
5105
5157
|
const handleResize = () => {
|
|
5106
5158
|
setScreenSize({
|
|
5107
5159
|
width: window.innerWidth,
|
|
@@ -5126,7 +5178,7 @@ var useScreenSize = () => {
|
|
|
5126
5178
|
var useScreenSize_default = useScreenSize;
|
|
5127
5179
|
|
|
5128
5180
|
// src/components/activities/material-content/GroupingActivityMaterialContent.tsx
|
|
5129
|
-
var
|
|
5181
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
5130
5182
|
var GroupingActivityMaterialContent = ({
|
|
5131
5183
|
uniqueValue,
|
|
5132
5184
|
answer,
|
|
@@ -5137,10 +5189,10 @@ var GroupingActivityMaterialContent = ({
|
|
|
5137
5189
|
isPreview,
|
|
5138
5190
|
showCorrectAnswer
|
|
5139
5191
|
}) => {
|
|
5140
|
-
const [selectedValue, setSelectedValue] = (0,
|
|
5141
|
-
const [selectedTargetKey, setSelectedTargetKey] = (0,
|
|
5142
|
-
const [isShuffled, setIsShuffled] = (0,
|
|
5143
|
-
const [shuffledMaterialList, setShuffledMaterialList] = (0,
|
|
5192
|
+
const [selectedValue, setSelectedValue] = (0, import_react23.useState)(null);
|
|
5193
|
+
const [selectedTargetKey, setSelectedTargetKey] = (0, import_react23.useState)(null);
|
|
5194
|
+
const [isShuffled, setIsShuffled] = (0, import_react23.useState)(false);
|
|
5195
|
+
const [shuffledMaterialList, setShuffledMaterialList] = (0, import_react23.useState)([]);
|
|
5144
5196
|
const { screenSize, containerSize } = useScreenSize_default();
|
|
5145
5197
|
const [{ isOver, canDrop }, drop] = (0, import_react_dnd4.useDrop)({
|
|
5146
5198
|
accept: "GROUPING",
|
|
@@ -5151,16 +5203,16 @@ var GroupingActivityMaterialContent = ({
|
|
|
5151
5203
|
canDrop: monitor.canDrop()
|
|
5152
5204
|
})
|
|
5153
5205
|
});
|
|
5154
|
-
const ref = (0,
|
|
5155
|
-
const itemsRef = (0,
|
|
5156
|
-
const [maxWidth, setMaxWidth] = (0,
|
|
5157
|
-
(0,
|
|
5206
|
+
const ref = (0, import_react23.useRef)(null);
|
|
5207
|
+
const itemsRef = (0, import_react23.useRef)(null);
|
|
5208
|
+
const [maxWidth, setMaxWidth] = (0, import_react23.useState)(0);
|
|
5209
|
+
(0, import_react23.useEffect)(() => {
|
|
5158
5210
|
if (!ref) return;
|
|
5159
5211
|
if (!ref.current) return;
|
|
5160
5212
|
if (!screenSize) return;
|
|
5161
5213
|
setMaxWidth(ref.current.offsetWidth - 12);
|
|
5162
5214
|
}, [ref, screenSize]);
|
|
5163
|
-
(0,
|
|
5215
|
+
(0, import_react23.useEffect)(() => {
|
|
5164
5216
|
const shuffleArray2 = (array) => {
|
|
5165
5217
|
if (!isShuffled) {
|
|
5166
5218
|
const copyArray = JSON.parse(JSON.stringify(array));
|
|
@@ -5181,7 +5233,7 @@ var GroupingActivityMaterialContent = ({
|
|
|
5181
5233
|
});
|
|
5182
5234
|
setShuffledMaterialList(shuffleArray2(materialList));
|
|
5183
5235
|
}, []);
|
|
5184
|
-
(0,
|
|
5236
|
+
(0, import_react23.useEffect)(() => {
|
|
5185
5237
|
if (!showCorrectAnswer) return;
|
|
5186
5238
|
answer.data.find(
|
|
5187
5239
|
(answerData) => answerData.type === "GROUPING"
|
|
@@ -5225,19 +5277,19 @@ var GroupingActivityMaterialContent = ({
|
|
|
5225
5277
|
};
|
|
5226
5278
|
const answerMap = retrieveAnswerMap();
|
|
5227
5279
|
const filteredMaterialList = retrieveFilteredMaterialList(answerMap);
|
|
5228
|
-
return /* @__PURE__ */ (0,
|
|
5229
|
-
/* @__PURE__ */ (0,
|
|
5280
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
|
|
5281
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5230
5282
|
"div",
|
|
5231
5283
|
{
|
|
5232
5284
|
ref: itemsRef,
|
|
5233
5285
|
className: "flex-1 flex flex-row gap-x-4 gap-y-4 overflow-auto py-2",
|
|
5234
5286
|
children: filteredMaterialList.map((materialValue, index) => {
|
|
5235
|
-
return /* @__PURE__ */ (0,
|
|
5287
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5236
5288
|
DraggableItem_default,
|
|
5237
5289
|
{
|
|
5238
5290
|
item: { index: materialValue },
|
|
5239
5291
|
type: "GROUPING",
|
|
5240
|
-
component: /* @__PURE__ */ (0,
|
|
5292
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5241
5293
|
"div",
|
|
5242
5294
|
{
|
|
5243
5295
|
className: `${selectedValue === materialValue ? "border-catchup-blue" : "border-catchup-lighter-gray"} h-catchup-activity-covering-box-item flex flex-col items-center justify-center border-2 rounded-catchup-xlarge cursor-pointer transition-all duration-300`,
|
|
@@ -5251,22 +5303,22 @@ var GroupingActivityMaterialContent = ({
|
|
|
5251
5303
|
setSelectedValue(null);
|
|
5252
5304
|
}
|
|
5253
5305
|
},
|
|
5254
|
-
children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0,
|
|
5306
|
+
children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5255
5307
|
"div",
|
|
5256
5308
|
{
|
|
5257
5309
|
className: `flex flex-col items-center justify-center m-4 min-h-[64px] min-w-[200px]`,
|
|
5258
|
-
children: /* @__PURE__ */ (0,
|
|
5310
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-xl text-center whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(
|
|
5259
5311
|
materialValue
|
|
5260
|
-
).map((inputPart, index2) => /* @__PURE__ */ (0,
|
|
5312
|
+
).map((inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5261
5313
|
"span",
|
|
5262
5314
|
{
|
|
5263
5315
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
5264
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
5316
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_katex4.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
5265
5317
|
},
|
|
5266
5318
|
index2
|
|
5267
5319
|
)) })
|
|
5268
5320
|
}
|
|
5269
|
-
) : /* @__PURE__ */ (0,
|
|
5321
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5270
5322
|
ShowMaterialMediaByContentType_default,
|
|
5271
5323
|
{
|
|
5272
5324
|
contentType: contentMap.type,
|
|
@@ -5291,22 +5343,22 @@ var GroupingActivityMaterialContent = ({
|
|
|
5291
5343
|
})
|
|
5292
5344
|
}
|
|
5293
5345
|
),
|
|
5294
|
-
filteredMaterialList.length > 0 ? /* @__PURE__ */ (0,
|
|
5295
|
-
Object.keys(answerMap).map((answerMapKey, index) => /* @__PURE__ */ (0,
|
|
5296
|
-
/* @__PURE__ */ (0,
|
|
5346
|
+
filteredMaterialList.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DividerLine_default, {}) : null,
|
|
5347
|
+
Object.keys(answerMap).map((answerMapKey, index) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex flex-row w-full", children: [
|
|
5348
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "w-1/3", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5297
5349
|
"div",
|
|
5298
5350
|
{
|
|
5299
5351
|
className: `border-catchup-blue h-catchup-activity-outer-box-item flex flex-col items-center justify-center border-2 rounded-catchup-xlarge transition-all duration-300 my-3`,
|
|
5300
|
-
children: /* @__PURE__ */ (0,
|
|
5352
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5301
5353
|
"div",
|
|
5302
5354
|
{
|
|
5303
5355
|
className: `flex flex-col items-center justify-center transition-all duration-300 m-4`,
|
|
5304
|
-
children: /* @__PURE__ */ (0,
|
|
5305
|
-
(inputPart, index2) => /* @__PURE__ */ (0,
|
|
5356
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-xl p-5 whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(answerMapKey).map(
|
|
5357
|
+
(inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5306
5358
|
"span",
|
|
5307
5359
|
{
|
|
5308
5360
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
5309
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
5361
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_katex4.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
5310
5362
|
},
|
|
5311
5363
|
index2
|
|
5312
5364
|
)
|
|
@@ -5315,12 +5367,12 @@ var GroupingActivityMaterialContent = ({
|
|
|
5315
5367
|
)
|
|
5316
5368
|
}
|
|
5317
5369
|
) }),
|
|
5318
|
-
/* @__PURE__ */ (0,
|
|
5319
|
-
/* @__PURE__ */ (0,
|
|
5370
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "mx-4 w-[2px] bg-catchup-lighter-gray" }),
|
|
5371
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "flex-1", ref, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "h-full py-3", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5320
5372
|
"div",
|
|
5321
5373
|
{
|
|
5322
5374
|
className: `${canDrop ? selectedTargetKey === answerMapKey ? "bg-catchup-light-blue" : "bg-catchup-light-blue opacity-40" : ""} flex-1 border-catchup-blue rounded-catchup-xlarge border-2 h-full p-1`,
|
|
5323
|
-
children: /* @__PURE__ */ (0,
|
|
5375
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5324
5376
|
DroppableItem_default,
|
|
5325
5377
|
{
|
|
5326
5378
|
item: { index: answerMapKey },
|
|
@@ -5328,7 +5380,7 @@ var GroupingActivityMaterialContent = ({
|
|
|
5328
5380
|
target: selectedTargetKey,
|
|
5329
5381
|
setTarget: setSelectedTargetKey,
|
|
5330
5382
|
dropRef: drop,
|
|
5331
|
-
component: /* @__PURE__ */ (0,
|
|
5383
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5332
5384
|
"div",
|
|
5333
5385
|
{
|
|
5334
5386
|
className: "h-full flex-1 flex flex-row items-center overflow-x-auto",
|
|
@@ -5341,7 +5393,7 @@ var GroupingActivityMaterialContent = ({
|
|
|
5341
5393
|
materialMap[answerMapKey],
|
|
5342
5394
|
answerMapValue
|
|
5343
5395
|
);
|
|
5344
|
-
return /* @__PURE__ */ (0,
|
|
5396
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "p-1", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "h-catchup-activity-box-item", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5345
5397
|
"div",
|
|
5346
5398
|
{
|
|
5347
5399
|
className: `${learnerAnswerState === "EMPTY" ? "border-catchup-lighter-gray" : learnerAnswerState === "CORRECT" ? "border-catchup-green" : learnerAnswerState === "INCORRECT" ? "border-catchup-red" : "border-catchup-blue"} border-2 rounded-catchup-xlarge h-full flex flex-col items-center justify-center transition-all duration-300 cursor-pointer`,
|
|
@@ -5357,17 +5409,17 @@ var GroupingActivityMaterialContent = ({
|
|
|
5357
5409
|
setSelectedValue(null);
|
|
5358
5410
|
}
|
|
5359
5411
|
},
|
|
5360
|
-
children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0,
|
|
5412
|
+
children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5361
5413
|
"div",
|
|
5362
5414
|
{
|
|
5363
5415
|
className: `flex flex-col items-center justify-center transition-all duration-300 min-h-[64px] min-w-[200px]`,
|
|
5364
|
-
children: /* @__PURE__ */ (0,
|
|
5416
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "m-2", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-xl text-center whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(
|
|
5365
5417
|
answerMapValue
|
|
5366
|
-
).map((inputPart, index2) => /* @__PURE__ */ (0,
|
|
5418
|
+
).map((inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5367
5419
|
"span",
|
|
5368
5420
|
{
|
|
5369
5421
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
5370
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
5422
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5371
5423
|
import_react_katex4.InlineMath,
|
|
5372
5424
|
{
|
|
5373
5425
|
math: inputPart.value
|
|
@@ -5377,7 +5429,7 @@ var GroupingActivityMaterialContent = ({
|
|
|
5377
5429
|
index2
|
|
5378
5430
|
)) }) })
|
|
5379
5431
|
}
|
|
5380
|
-
) : /* @__PURE__ */ (0,
|
|
5432
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5381
5433
|
ShowMaterialMediaByContentType_default,
|
|
5382
5434
|
{
|
|
5383
5435
|
contentType: contentMap.type,
|
|
@@ -5403,7 +5455,7 @@ var GroupingActivityMaterialContent = ({
|
|
|
5403
5455
|
var GroupingActivityMaterialContent_default = GroupingActivityMaterialContent;
|
|
5404
5456
|
|
|
5405
5457
|
// src/components/activities/GroupingActivityContent.tsx
|
|
5406
|
-
var
|
|
5458
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
5407
5459
|
var GroupingActivityContent = ({
|
|
5408
5460
|
answer,
|
|
5409
5461
|
data,
|
|
@@ -5428,16 +5480,16 @@ var GroupingActivityContent = ({
|
|
|
5428
5480
|
}
|
|
5429
5481
|
changeAnswer(answer2);
|
|
5430
5482
|
};
|
|
5431
|
-
return /* @__PURE__ */ (0,
|
|
5432
|
-
/* @__PURE__ */ (0,
|
|
5483
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
|
|
5484
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
5433
5485
|
ActivityBodyContent_default,
|
|
5434
5486
|
{
|
|
5435
5487
|
bodyMap: groupingBodyMap,
|
|
5436
5488
|
templateType: "GROUPING"
|
|
5437
5489
|
}
|
|
5438
5490
|
),
|
|
5439
|
-
/* @__PURE__ */ (0,
|
|
5440
|
-
/* @__PURE__ */ (0,
|
|
5491
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(DividerLine_default, {}),
|
|
5492
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
5441
5493
|
GroupingActivityMaterialContent_default,
|
|
5442
5494
|
{
|
|
5443
5495
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
@@ -5455,10 +5507,10 @@ var GroupingActivityContent = ({
|
|
|
5455
5507
|
var GroupingActivityContent_default = GroupingActivityContent;
|
|
5456
5508
|
|
|
5457
5509
|
// src/components/activities/material-content/MatchingActivityMaterialContent.tsx
|
|
5458
|
-
var
|
|
5510
|
+
var import_react24 = require("react");
|
|
5459
5511
|
var import_react_dnd5 = require("react-dnd");
|
|
5460
5512
|
var import_react_katex5 = require("react-katex");
|
|
5461
|
-
var
|
|
5513
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
5462
5514
|
var MatchingActivityMaterialContent = ({
|
|
5463
5515
|
uniqueValue,
|
|
5464
5516
|
answer,
|
|
@@ -5469,10 +5521,10 @@ var MatchingActivityMaterialContent = ({
|
|
|
5469
5521
|
isPreview,
|
|
5470
5522
|
showCorrectAnswer
|
|
5471
5523
|
}) => {
|
|
5472
|
-
const [selectedValue, setSelectedValue] = (0,
|
|
5473
|
-
const [selectedTargetKey, setSelectedTargetKey] = (0,
|
|
5474
|
-
const [isShuffled, setIsShuffled] = (0,
|
|
5475
|
-
const [shuffledMaterialList, setShuffledMaterialList] = (0,
|
|
5524
|
+
const [selectedValue, setSelectedValue] = (0, import_react24.useState)(null);
|
|
5525
|
+
const [selectedTargetKey, setSelectedTargetKey] = (0, import_react24.useState)(null);
|
|
5526
|
+
const [isShuffled, setIsShuffled] = (0, import_react24.useState)(false);
|
|
5527
|
+
const [shuffledMaterialList, setShuffledMaterialList] = (0, import_react24.useState)([]);
|
|
5476
5528
|
const [{ isOver, canDrop }, drop] = (0, import_react_dnd5.useDrop)({
|
|
5477
5529
|
accept: "MATCHING",
|
|
5478
5530
|
drop: () => {
|
|
@@ -5483,8 +5535,8 @@ var MatchingActivityMaterialContent = ({
|
|
|
5483
5535
|
})
|
|
5484
5536
|
});
|
|
5485
5537
|
const { containerSize } = useScreenSize_default();
|
|
5486
|
-
const itemsRef = (0,
|
|
5487
|
-
(0,
|
|
5538
|
+
const itemsRef = (0, import_react24.useRef)(null);
|
|
5539
|
+
(0, import_react24.useEffect)(() => {
|
|
5488
5540
|
const shuffleArray2 = (array) => {
|
|
5489
5541
|
if (!isShuffled) {
|
|
5490
5542
|
const copyArray = JSON.parse(JSON.stringify(array));
|
|
@@ -5503,13 +5555,13 @@ var MatchingActivityMaterialContent = ({
|
|
|
5503
5555
|
});
|
|
5504
5556
|
setShuffledMaterialList(shuffleArray2(materialList));
|
|
5505
5557
|
}, []);
|
|
5506
|
-
(0,
|
|
5558
|
+
(0, import_react24.useEffect)(() => {
|
|
5507
5559
|
if (!showCorrectAnswer) return;
|
|
5508
5560
|
answer.data.find(
|
|
5509
5561
|
(answerData) => answerData.type === "MATCHING"
|
|
5510
5562
|
).answerMap = materialMap;
|
|
5511
5563
|
}, [showCorrectAnswer]);
|
|
5512
|
-
(0,
|
|
5564
|
+
(0, import_react24.useEffect)(() => {
|
|
5513
5565
|
if (!itemsRef) return;
|
|
5514
5566
|
if (!itemsRef.current) return;
|
|
5515
5567
|
if (!containerSize) return;
|
|
@@ -5554,18 +5606,18 @@ var MatchingActivityMaterialContent = ({
|
|
|
5554
5606
|
};
|
|
5555
5607
|
const answerMap = retrieveAnswerMap();
|
|
5556
5608
|
const filteredMaterialList = retrieveFilteredMaterialList(answerMap);
|
|
5557
|
-
return /* @__PURE__ */ (0,
|
|
5558
|
-
/* @__PURE__ */ (0,
|
|
5609
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
5610
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5559
5611
|
"div",
|
|
5560
5612
|
{
|
|
5561
5613
|
ref: itemsRef,
|
|
5562
5614
|
className: "flex-1 flex flex-row gap-x-4 gap-y-4 overflow-auto py-2",
|
|
5563
|
-
children: filteredMaterialList.map((materialValue, index) => /* @__PURE__ */ (0,
|
|
5615
|
+
children: filteredMaterialList.map((materialValue, index) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5564
5616
|
DraggableItem_default,
|
|
5565
5617
|
{
|
|
5566
5618
|
item: { index: materialValue },
|
|
5567
5619
|
type: "MATCHING",
|
|
5568
|
-
component: /* @__PURE__ */ (0,
|
|
5620
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5569
5621
|
"div",
|
|
5570
5622
|
{
|
|
5571
5623
|
className: `${selectedValue === materialValue ? "border-catchup-blue" : "border-catchup-lighter-gray"} h-catchup-activity-covering-box-item flex flex-col items-center justify-center border-2 rounded-catchup-xlarge cursor-pointer transition-all duration-300`,
|
|
@@ -5579,22 +5631,22 @@ var MatchingActivityMaterialContent = ({
|
|
|
5579
5631
|
setSelectedValue(null);
|
|
5580
5632
|
}
|
|
5581
5633
|
},
|
|
5582
|
-
children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0,
|
|
5634
|
+
children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5583
5635
|
"div",
|
|
5584
5636
|
{
|
|
5585
5637
|
className: `flex flex-col items-center justify-center m-4 min-h-[64px] min-w-[200px]`,
|
|
5586
|
-
children: /* @__PURE__ */ (0,
|
|
5638
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("p", { className: "text-xl p-5 whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(
|
|
5587
5639
|
materialValue
|
|
5588
|
-
).map((inputPart, index2) => /* @__PURE__ */ (0,
|
|
5640
|
+
).map((inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5589
5641
|
"span",
|
|
5590
5642
|
{
|
|
5591
5643
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
5592
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
5644
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_katex5.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
5593
5645
|
},
|
|
5594
5646
|
index2
|
|
5595
5647
|
)) })
|
|
5596
5648
|
}
|
|
5597
|
-
) : /* @__PURE__ */ (0,
|
|
5649
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5598
5650
|
ShowMaterialMediaByContentType_default,
|
|
5599
5651
|
{
|
|
5600
5652
|
contentType: contentMap.type,
|
|
@@ -5618,27 +5670,27 @@ var MatchingActivityMaterialContent = ({
|
|
|
5618
5670
|
))
|
|
5619
5671
|
}
|
|
5620
5672
|
),
|
|
5621
|
-
filteredMaterialList.length > 0 ? /* @__PURE__ */ (0,
|
|
5673
|
+
filteredMaterialList.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DividerLine_default, {}) : null,
|
|
5622
5674
|
Object.keys(answerMap).map((answerMapKey, index) => {
|
|
5623
5675
|
const learnerAnswerState = checkAnswerState(
|
|
5624
5676
|
materialMap[answerMapKey],
|
|
5625
5677
|
answerMap[answerMapKey]
|
|
5626
5678
|
);
|
|
5627
|
-
return /* @__PURE__ */ (0,
|
|
5628
|
-
/* @__PURE__ */ (0,
|
|
5679
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex flex-row w-full", children: [
|
|
5680
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "w-1/3", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5629
5681
|
"div",
|
|
5630
5682
|
{
|
|
5631
5683
|
className: `h-catchup-activity-outer-box-item flex flex-col items-center justify-center border-2 rounded-catchup-xlarge transition-all duration-300 my-3 ${learnerAnswerState === "EMPTY" ? "border-catchup-blue" : learnerAnswerState === "CORRECT" ? "border-catchup-green" : learnerAnswerState === "INCORRECT" ? "border-catchup-red" : "border-catchup-blue"}`,
|
|
5632
|
-
children: /* @__PURE__ */ (0,
|
|
5684
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5633
5685
|
"div",
|
|
5634
5686
|
{
|
|
5635
5687
|
className: `flex flex-col items-center justify-center transition-all duration-300 m-4`,
|
|
5636
|
-
children: /* @__PURE__ */ (0,
|
|
5637
|
-
(inputPart, index2) => /* @__PURE__ */ (0,
|
|
5688
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("p", { className: "text-xl p-5 whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(answerMapKey).map(
|
|
5689
|
+
(inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5638
5690
|
"span",
|
|
5639
5691
|
{
|
|
5640
5692
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
5641
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
5693
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_katex5.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
5642
5694
|
},
|
|
5643
5695
|
index2
|
|
5644
5696
|
)
|
|
@@ -5647,8 +5699,8 @@ var MatchingActivityMaterialContent = ({
|
|
|
5647
5699
|
)
|
|
5648
5700
|
}
|
|
5649
5701
|
) }),
|
|
5650
|
-
/* @__PURE__ */ (0,
|
|
5651
|
-
/* @__PURE__ */ (0,
|
|
5702
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "mx-4 w-[2px] bg-catchup-lighter-gray" }),
|
|
5703
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5652
5704
|
"div",
|
|
5653
5705
|
{
|
|
5654
5706
|
className: `${canDrop ? selectedTargetKey === answerMapKey ? "bg-catchup-light-blue" : "bg-catchup-light-blue opacity-40" : ""} h-catchup-activity-outer-box-item flex flex-col items-center justify-center border-2 rounded-catchup-xlarge cursor-pointer transition-all duration-300 my-3 ${learnerAnswerState === "EMPTY" ? "border-catchup-blue" : learnerAnswerState === "CORRECT" ? "border-catchup-green" : learnerAnswerState === "INCORRECT" ? "border-catchup-red" : "border-catchup-blue"}`,
|
|
@@ -5657,7 +5709,7 @@ var MatchingActivityMaterialContent = ({
|
|
|
5657
5709
|
setSelectedValue(null);
|
|
5658
5710
|
}
|
|
5659
5711
|
},
|
|
5660
|
-
children: /* @__PURE__ */ (0,
|
|
5712
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5661
5713
|
DroppableItem_default,
|
|
5662
5714
|
{
|
|
5663
5715
|
item: { index: answerMapKey },
|
|
@@ -5665,7 +5717,7 @@ var MatchingActivityMaterialContent = ({
|
|
|
5665
5717
|
target: selectedTargetKey,
|
|
5666
5718
|
setTarget: setSelectedTargetKey,
|
|
5667
5719
|
dropRef: drop,
|
|
5668
|
-
component: /* @__PURE__ */ (0,
|
|
5720
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5669
5721
|
"div",
|
|
5670
5722
|
{
|
|
5671
5723
|
className: `h-full flex-1 flex flex-row items-center justify-center `,
|
|
@@ -5678,16 +5730,16 @@ var MatchingActivityMaterialContent = ({
|
|
|
5678
5730
|
);
|
|
5679
5731
|
}
|
|
5680
5732
|
},
|
|
5681
|
-
children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0,
|
|
5733
|
+
children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("p", { className: "text-xl p-5 whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(
|
|
5682
5734
|
answerMap[answerMapKey]
|
|
5683
|
-
).map((inputPart, index2) => /* @__PURE__ */ (0,
|
|
5735
|
+
).map((inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5684
5736
|
"span",
|
|
5685
5737
|
{
|
|
5686
5738
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
5687
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
5739
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_katex5.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
5688
5740
|
},
|
|
5689
5741
|
index2
|
|
5690
|
-
)) }) : /* @__PURE__ */ (0,
|
|
5742
|
+
)) }) : /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5691
5743
|
ShowMaterialMediaByContentType_default,
|
|
5692
5744
|
{
|
|
5693
5745
|
contentType: contentMap.type,
|
|
@@ -5710,7 +5762,7 @@ var MatchingActivityMaterialContent = ({
|
|
|
5710
5762
|
var MatchingActivityMaterialContent_default = MatchingActivityMaterialContent;
|
|
5711
5763
|
|
|
5712
5764
|
// src/components/activities/MatchingActivityContent.tsx
|
|
5713
|
-
var
|
|
5765
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
5714
5766
|
var MatchingActivityContent = ({
|
|
5715
5767
|
answer,
|
|
5716
5768
|
data,
|
|
@@ -5731,16 +5783,16 @@ var MatchingActivityContent = ({
|
|
|
5731
5783
|
answerMap[key] = value;
|
|
5732
5784
|
changeAnswer(answer2);
|
|
5733
5785
|
};
|
|
5734
|
-
return /* @__PURE__ */ (0,
|
|
5735
|
-
/* @__PURE__ */ (0,
|
|
5786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: [
|
|
5787
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
5736
5788
|
ActivityBodyContent_default,
|
|
5737
5789
|
{
|
|
5738
5790
|
bodyMap: matchingBodyMap,
|
|
5739
5791
|
templateType: "MATCHING"
|
|
5740
5792
|
}
|
|
5741
5793
|
),
|
|
5742
|
-
/* @__PURE__ */ (0,
|
|
5743
|
-
/* @__PURE__ */ (0,
|
|
5794
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(DividerLine_default, {}),
|
|
5795
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
5744
5796
|
MatchingActivityMaterialContent_default,
|
|
5745
5797
|
{
|
|
5746
5798
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
@@ -5759,7 +5811,7 @@ var MatchingActivityContent_default = MatchingActivityContent;
|
|
|
5759
5811
|
|
|
5760
5812
|
// src/components/activities/material-content/MCMAActivityMaterialContent.tsx
|
|
5761
5813
|
var import_react_katex6 = require("react-katex");
|
|
5762
|
-
var
|
|
5814
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
5763
5815
|
var MCMAActivityMaterialContent = ({
|
|
5764
5816
|
uniqueValue,
|
|
5765
5817
|
answer,
|
|
@@ -5792,10 +5844,10 @@ var MCMAActivityMaterialContent = ({
|
|
|
5792
5844
|
const answerMap = retrieveAnswerMap();
|
|
5793
5845
|
const correctAnswerList = retrieveCorrectAnswerList();
|
|
5794
5846
|
return Object.keys(materialMap).map((materialKey, index) => {
|
|
5795
|
-
return /* @__PURE__ */ (0,
|
|
5796
|
-
/* @__PURE__ */ (0,
|
|
5797
|
-
/* @__PURE__ */ (0,
|
|
5798
|
-
checkCanAnswerQuestion() ? /* @__PURE__ */ (0,
|
|
5847
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "flex flex-row items-center my-1", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex-1 flex flex-col justify-center border-catchup-lighter-gray rounded-catchup-xlarge px-5 md:px-0", children: [
|
|
5848
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "hidden md:block", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "font-semibold text-xl opacity-60", children: i18n_default.t("please_select_mcma_text") }) }),
|
|
5849
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "hidden md:contents", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DividerLine_default, {}) }),
|
|
5850
|
+
checkCanAnswerQuestion() ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "flex flex-row w-full flex-wrap ", children: materialMap[materialKey].map(
|
|
5799
5851
|
(materialSubKey, index2) => {
|
|
5800
5852
|
const foundAnswer = answerMap[materialKey].find(
|
|
5801
5853
|
(learnerAnswer) => learnerAnswer === materialSubKey
|
|
@@ -5808,7 +5860,7 @@ var MCMAActivityMaterialContent = ({
|
|
|
5808
5860
|
const foundIndex = correctAnswerList.findIndex(
|
|
5809
5861
|
(correctAnswer) => correctAnswer === materialSubKey
|
|
5810
5862
|
);
|
|
5811
|
-
return /* @__PURE__ */ (0,
|
|
5863
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
5812
5864
|
"div",
|
|
5813
5865
|
{
|
|
5814
5866
|
className: `w-full flex flex-row items-center justify-center cursor-pointer my-2 gap-x-2 ${learnerAnswerState === "EMPTY" && foundIndex !== -1 || learnerAnswerState === "CORRECT" ? "border-2 border-catchup-green rounded-catchup-xlarge p-2" : learnerAnswerState === "INCORRECT" ? "border-2 border-catchup-red rounded-catchup-xlarge p-2" : ""}`,
|
|
@@ -5816,7 +5868,7 @@ var MCMAActivityMaterialContent = ({
|
|
|
5816
5868
|
onChange(answer, materialKey, materialSubKey);
|
|
5817
5869
|
},
|
|
5818
5870
|
children: [
|
|
5819
|
-
/* @__PURE__ */ (0,
|
|
5871
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
5820
5872
|
BaseImage_default,
|
|
5821
5873
|
{
|
|
5822
5874
|
src: answerMap[materialKey].includes(materialSubKey) ? "/icons/checkbox.webp" : "/icons/checkbox-empty.webp",
|
|
@@ -5826,16 +5878,16 @@ var MCMAActivityMaterialContent = ({
|
|
|
5826
5878
|
}
|
|
5827
5879
|
}
|
|
5828
5880
|
),
|
|
5829
|
-
/* @__PURE__ */ (0,
|
|
5881
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "flex-1", children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "text-xl whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(
|
|
5830
5882
|
materialSubKey
|
|
5831
|
-
).map((inputPart, index3) => /* @__PURE__ */ (0,
|
|
5883
|
+
).map((inputPart, index3) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
5832
5884
|
"span",
|
|
5833
5885
|
{
|
|
5834
5886
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
5835
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
5887
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_katex6.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
5836
5888
|
},
|
|
5837
5889
|
index3
|
|
5838
|
-
)) }) : /* @__PURE__ */ (0,
|
|
5890
|
+
)) }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
5839
5891
|
ShowMaterialMediaByContentType_default,
|
|
5840
5892
|
{
|
|
5841
5893
|
contentType: contentMap.type,
|
|
@@ -5849,13 +5901,13 @@ var MCMAActivityMaterialContent = ({
|
|
|
5849
5901
|
index2
|
|
5850
5902
|
);
|
|
5851
5903
|
}
|
|
5852
|
-
) }) : /* @__PURE__ */ (0,
|
|
5904
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "text-xl", children: constructInputWithSpecialExpressionList(
|
|
5853
5905
|
answerMap[materialKey]
|
|
5854
|
-
).map((inputPart, index2) => /* @__PURE__ */ (0,
|
|
5906
|
+
).map((inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
5855
5907
|
"span",
|
|
5856
5908
|
{
|
|
5857
5909
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
5858
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
5910
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_katex6.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
5859
5911
|
},
|
|
5860
5912
|
index2
|
|
5861
5913
|
)) }, materialKey)
|
|
@@ -5865,7 +5917,7 @@ var MCMAActivityMaterialContent = ({
|
|
|
5865
5917
|
var MCMAActivityMaterialContent_default = MCMAActivityMaterialContent;
|
|
5866
5918
|
|
|
5867
5919
|
// src/components/activities/MCMAActivityContent.tsx
|
|
5868
|
-
var
|
|
5920
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
5869
5921
|
var MCMAActivityContent = ({
|
|
5870
5922
|
answer,
|
|
5871
5923
|
data,
|
|
@@ -5892,11 +5944,11 @@ var MCMAActivityContent = ({
|
|
|
5892
5944
|
}
|
|
5893
5945
|
changeAnswer(answer2);
|
|
5894
5946
|
};
|
|
5895
|
-
return /* @__PURE__ */ (0,
|
|
5896
|
-
/* @__PURE__ */ (0,
|
|
5897
|
-
/* @__PURE__ */ (0,
|
|
5898
|
-
/* @__PURE__ */ (0,
|
|
5899
|
-
/* @__PURE__ */ (0,
|
|
5947
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex flex-row flex-wrap", children: [
|
|
5948
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: `${isFullScreen ? "w-full" : "w-full md:w-[60%]"}`, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ActivityBodyContent_default, { bodyMap: MCMABodyMap, templateType: "MCMA" }) }),
|
|
5949
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: `${isFullScreen ? "contents" : "contents md:hidden"}`, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DividerLine_default, {}) }),
|
|
5950
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: `${isFullScreen ? "hidden" : "hidden md:block"}`, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(VerticalDividerLine_default, {}) }),
|
|
5951
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: `${isFullScreen ? "w-full" : "w-full md:flex-1"}`, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
5900
5952
|
MCMAActivityMaterialContent_default,
|
|
5901
5953
|
{
|
|
5902
5954
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
@@ -5914,7 +5966,7 @@ var MCMAActivityContent_default = MCMAActivityContent;
|
|
|
5914
5966
|
|
|
5915
5967
|
// src/components/activities/material-content/MCSAActivityMaterialContent.tsx
|
|
5916
5968
|
var import_react_katex7 = require("react-katex");
|
|
5917
|
-
var
|
|
5969
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
5918
5970
|
var MCSAActivityMaterialContent = ({
|
|
5919
5971
|
uniqueValue,
|
|
5920
5972
|
answer,
|
|
@@ -5944,10 +5996,10 @@ var MCSAActivityMaterialContent = ({
|
|
|
5944
5996
|
const answerMap = retrieveAnswerMap();
|
|
5945
5997
|
const correctAnswer = retrieveCorrectAnswer();
|
|
5946
5998
|
return Object.keys(materialMap).map((materialKey, index) => {
|
|
5947
|
-
return /* @__PURE__ */ (0,
|
|
5948
|
-
/* @__PURE__ */ (0,
|
|
5949
|
-
/* @__PURE__ */ (0,
|
|
5950
|
-
checkCanAnswerQuestion() ? /* @__PURE__ */ (0,
|
|
5999
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "flex flex-row items-center my-1", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex-1 flex flex-col justify-center border-catchup-lighter-gray rounded-catchup-xlarge px-5 md:px-0", children: [
|
|
6000
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "hidden md:block", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "font-semibold text-xl opacity-60", children: i18n_default.t("please_select_mcsa_text") }) }),
|
|
6001
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "hidden md:contents", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DividerLine_default, {}) }),
|
|
6002
|
+
checkCanAnswerQuestion() ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
5951
6003
|
"div",
|
|
5952
6004
|
{
|
|
5953
6005
|
className: `flex flex-row w-full ${Object.keys(materialMap[materialKey]).length <= 4 ? "justify-center" : ""} flex-wrap`,
|
|
@@ -5958,7 +6010,7 @@ var MCSAActivityMaterialContent = ({
|
|
|
5958
6010
|
materialSubKey,
|
|
5959
6011
|
answerMap[materialKey]
|
|
5960
6012
|
);
|
|
5961
|
-
return /* @__PURE__ */ (0,
|
|
6013
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
5962
6014
|
"div",
|
|
5963
6015
|
{
|
|
5964
6016
|
className: `w-full flex flex-row items-center justify-center cursor-pointer my-2 gap-x-2 ${learnerAnswerState === "EMPTY" && materialSubKey === correctAnswer || learnerAnswerState === "CORRECT" ? "border-2 border-catchup-green rounded-catchup-xlarge p-2" : learnerAnswerState === "INCORRECT" ? "border-2 border-catchup-red rounded-catchup-xlarge p-2" : ""}`,
|
|
@@ -5966,7 +6018,7 @@ var MCSAActivityMaterialContent = ({
|
|
|
5966
6018
|
onChange(answer, materialKey, materialSubKey);
|
|
5967
6019
|
},
|
|
5968
6020
|
children: [
|
|
5969
|
-
/* @__PURE__ */ (0,
|
|
6021
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
5970
6022
|
BaseImage_default,
|
|
5971
6023
|
{
|
|
5972
6024
|
src: answerMap[materialKey] === materialSubKey ? "/icons/item-element.webp" : "/icons/not-selected-item-element.webp",
|
|
@@ -5976,16 +6028,16 @@ var MCSAActivityMaterialContent = ({
|
|
|
5976
6028
|
}
|
|
5977
6029
|
}
|
|
5978
6030
|
),
|
|
5979
|
-
/* @__PURE__ */ (0,
|
|
6031
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "flex-1", children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "text-xl whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(
|
|
5980
6032
|
materialSubKey
|
|
5981
|
-
).map((inputPart, index3) => /* @__PURE__ */ (0,
|
|
6033
|
+
).map((inputPart, index3) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
5982
6034
|
"span",
|
|
5983
6035
|
{
|
|
5984
6036
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
5985
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
6037
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_katex7.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
5986
6038
|
},
|
|
5987
6039
|
index3
|
|
5988
|
-
)) }) : /* @__PURE__ */ (0,
|
|
6040
|
+
)) }) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
5989
6041
|
ShowMaterialMediaByContentType_default,
|
|
5990
6042
|
{
|
|
5991
6043
|
contentType: contentMap.type,
|
|
@@ -6001,13 +6053,13 @@ var MCSAActivityMaterialContent = ({
|
|
|
6001
6053
|
}
|
|
6002
6054
|
)
|
|
6003
6055
|
}
|
|
6004
|
-
) : /* @__PURE__ */ (0,
|
|
6056
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "text-xl whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(
|
|
6005
6057
|
answerMap[materialKey]
|
|
6006
|
-
).map((inputPart, index2) => /* @__PURE__ */ (0,
|
|
6058
|
+
).map((inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
6007
6059
|
"span",
|
|
6008
6060
|
{
|
|
6009
6061
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
6010
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
6062
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_katex7.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
6011
6063
|
},
|
|
6012
6064
|
index2
|
|
6013
6065
|
)) })
|
|
@@ -6017,7 +6069,7 @@ var MCSAActivityMaterialContent = ({
|
|
|
6017
6069
|
var MCSAActivityMaterialContent_default = MCSAActivityMaterialContent;
|
|
6018
6070
|
|
|
6019
6071
|
// src/components/activities/MCSAActivityContent.tsx
|
|
6020
|
-
var
|
|
6072
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
6021
6073
|
var MCSAActivityContent = ({
|
|
6022
6074
|
answer,
|
|
6023
6075
|
data,
|
|
@@ -6037,11 +6089,11 @@ var MCSAActivityContent = ({
|
|
|
6037
6089
|
answerMap[key] = value;
|
|
6038
6090
|
changeAnswer(answer2);
|
|
6039
6091
|
};
|
|
6040
|
-
return /* @__PURE__ */ (0,
|
|
6041
|
-
/* @__PURE__ */ (0,
|
|
6042
|
-
/* @__PURE__ */ (0,
|
|
6043
|
-
/* @__PURE__ */ (0,
|
|
6044
|
-
/* @__PURE__ */ (0,
|
|
6092
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-row flex-wrap", children: [
|
|
6093
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: `${isFullScreen ? "w-full" : "w-full md:w-[60%]"}`, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ActivityBodyContent_default, { bodyMap: MCSABodyMap, templateType: "MCSA" }) }),
|
|
6094
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: `${isFullScreen ? "contents" : "contents md:hidden"}`, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(DividerLine_default, {}) }),
|
|
6095
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: `${isFullScreen ? "hidden" : "hidden md:block"}`, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(VerticalDividerLine_default, {}) }),
|
|
6096
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: `${isFullScreen ? "w-full" : "w-full md:flex-1"}`, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6045
6097
|
MCSAActivityMaterialContent_default,
|
|
6046
6098
|
{
|
|
6047
6099
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
@@ -6057,11 +6109,39 @@ var MCSAActivityContent = ({
|
|
|
6057
6109
|
};
|
|
6058
6110
|
var MCSAActivityContent_default = MCSAActivityContent;
|
|
6059
6111
|
|
|
6112
|
+
// src/utilization/StorageUtilization.ts
|
|
6113
|
+
var convertDataURLtoFile = (dataurl, filename) => {
|
|
6114
|
+
var arr = dataurl.split(","), mime = (arr[0].match(/:(.*?);/) || [])[1], bstr = atob(arr[arr.length - 1]), n = bstr.length, u8arr = new Uint8Array(n);
|
|
6115
|
+
while (n--) {
|
|
6116
|
+
u8arr[n] = bstr.charCodeAt(n);
|
|
6117
|
+
}
|
|
6118
|
+
return new File([u8arr], filename, { type: mime });
|
|
6119
|
+
};
|
|
6120
|
+
var retrieveDocumentTypeFromAcceptedFormat = (format) => {
|
|
6121
|
+
if (format === "application/pdf") {
|
|
6122
|
+
return "PDF";
|
|
6123
|
+
} else if (format === "image/jpeg" || format === "image/png" || format === "image/jpg" || format === "image/webp") {
|
|
6124
|
+
return "IMAGE";
|
|
6125
|
+
} else if (format === "audio/mp3") {
|
|
6126
|
+
return "AUDIO";
|
|
6127
|
+
}
|
|
6128
|
+
};
|
|
6129
|
+
var retrieveDocumentTypeFromExtension = (format) => {
|
|
6130
|
+
if (format === "pdf") {
|
|
6131
|
+
return "PDF";
|
|
6132
|
+
} else if (format === "jpeg" || format === "png" || format === "jpg" || format === "webp") {
|
|
6133
|
+
return "IMAGE";
|
|
6134
|
+
} else if (format === "mp3") {
|
|
6135
|
+
return "AUDIO";
|
|
6136
|
+
}
|
|
6137
|
+
};
|
|
6138
|
+
|
|
6060
6139
|
// src/components/activities/material-content/OpenEndedActivityMaterialContent.tsx
|
|
6061
|
-
var
|
|
6140
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
6062
6141
|
var OpenEndedActivityMaterialContent = ({
|
|
6063
6142
|
answer,
|
|
6064
6143
|
contentMap,
|
|
6144
|
+
checkCanAnswerQuestion,
|
|
6065
6145
|
onChange
|
|
6066
6146
|
}) => {
|
|
6067
6147
|
const retrieveAnswer = () => {
|
|
@@ -6081,33 +6161,63 @@ var OpenEndedActivityMaterialContent = ({
|
|
|
6081
6161
|
};
|
|
6082
6162
|
const RenderTextContent = (answerMap2) => {
|
|
6083
6163
|
const answerMapAnswer = answerMap2["ANSWER"];
|
|
6084
|
-
return /* @__PURE__ */ (0,
|
|
6164
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
6085
6165
|
InputGroup_default,
|
|
6086
6166
|
{
|
|
6087
6167
|
type: "textarea",
|
|
6088
6168
|
value: answerMapAnswer,
|
|
6089
6169
|
useMinHeight: true,
|
|
6090
6170
|
onChange: (e) => {
|
|
6091
|
-
|
|
6171
|
+
if (checkCanAnswerQuestion()) {
|
|
6172
|
+
onChange(answer, e.target.value);
|
|
6173
|
+
}
|
|
6092
6174
|
}
|
|
6093
6175
|
}
|
|
6094
6176
|
);
|
|
6095
6177
|
};
|
|
6178
|
+
const RenderImageContent = (answerMap2) => {
|
|
6179
|
+
const answerMapAnswer = answerMap2["ANSWER"];
|
|
6180
|
+
const extension = answerMapAnswer.split(".").pop();
|
|
6181
|
+
const documentType = retrieveDocumentTypeFromExtension(extension);
|
|
6182
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children: documentType === "IMAGE" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-col justify-center items-center my-5", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
6183
|
+
BaseImage_default,
|
|
6184
|
+
{
|
|
6185
|
+
src: answerMapAnswer,
|
|
6186
|
+
alt: "document",
|
|
6187
|
+
size: "custom",
|
|
6188
|
+
className: "w-[80%] rounded-catchup-xlarge"
|
|
6189
|
+
}
|
|
6190
|
+
) }) : documentType === "PDF" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-col justify-center items-center my-5", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(BasePDF_default, { file: answerMapAnswer }) }) : null });
|
|
6191
|
+
};
|
|
6192
|
+
const RenderAudioContent = (answerMap2) => {
|
|
6193
|
+
const answerMapAnswer = answerMap2["ANSWER"];
|
|
6194
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "h-[56px]", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
6195
|
+
"audio",
|
|
6196
|
+
{
|
|
6197
|
+
className: "h-full w-full rounded-catchup-xlarge",
|
|
6198
|
+
src: answerMapAnswer,
|
|
6199
|
+
controls: true,
|
|
6200
|
+
onClick: () => {
|
|
6201
|
+
}
|
|
6202
|
+
}
|
|
6203
|
+
) });
|
|
6204
|
+
};
|
|
6096
6205
|
const answerMap = retrieveAnswerMap();
|
|
6097
|
-
return /* @__PURE__ */ (0,
|
|
6098
|
-
/* @__PURE__ */ (0,
|
|
6099
|
-
/* @__PURE__ */ (0,
|
|
6100
|
-
contentMap.type === "TEXT" ? RenderTextContent(answerMap) : null
|
|
6206
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "", children: [
|
|
6207
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "hidden md:block", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "font-semibold text-xl opacity-60", children: i18n_default.t("please_select_open_ended_text") }) }),
|
|
6208
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "hidden md:contents", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(DividerLine_default, {}) }),
|
|
6209
|
+
contentMap.type === "TEXT" ? RenderTextContent(answerMap) : contentMap.type === "IMAGE" ? RenderImageContent(answerMap) : contentMap.type === "AUDIO" ? RenderAudioContent(answerMap) : null
|
|
6101
6210
|
] }) });
|
|
6102
6211
|
};
|
|
6103
6212
|
var OpenEndedActivityMaterialContent_default = OpenEndedActivityMaterialContent;
|
|
6104
6213
|
|
|
6105
6214
|
// src/components/activities/OpenEndedActivityContent.tsx
|
|
6106
|
-
var
|
|
6215
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
6107
6216
|
var OpenEndedActivityContent = ({
|
|
6108
6217
|
answer,
|
|
6109
6218
|
data,
|
|
6110
6219
|
changeAnswer,
|
|
6220
|
+
canAnswerQuestion,
|
|
6111
6221
|
showMaterialContent,
|
|
6112
6222
|
isFullScreen
|
|
6113
6223
|
}) => {
|
|
@@ -6121,12 +6231,12 @@ var OpenEndedActivityContent = ({
|
|
|
6121
6231
|
answerMap["ANSWER"] = value;
|
|
6122
6232
|
changeAnswer(answer2);
|
|
6123
6233
|
};
|
|
6124
|
-
return /* @__PURE__ */ (0,
|
|
6125
|
-
/* @__PURE__ */ (0,
|
|
6234
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-row flex-wrap", children: [
|
|
6235
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
6126
6236
|
"div",
|
|
6127
6237
|
{
|
|
6128
6238
|
className: `${showMaterialContent ? isFullScreen ? "w-full" : "w-full md:w-[40%]" : "w-full"}`,
|
|
6129
|
-
children: /* @__PURE__ */ (0,
|
|
6239
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
6130
6240
|
ActivityBodyContent_default,
|
|
6131
6241
|
{
|
|
6132
6242
|
bodyMap: openEndedBodyMap,
|
|
@@ -6135,20 +6245,21 @@ var OpenEndedActivityContent = ({
|
|
|
6135
6245
|
)
|
|
6136
6246
|
}
|
|
6137
6247
|
),
|
|
6138
|
-
showMaterialContent ? /* @__PURE__ */ (0,
|
|
6139
|
-
/* @__PURE__ */ (0,
|
|
6248
|
+
showMaterialContent ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
6249
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
6140
6250
|
"div",
|
|
6141
6251
|
{
|
|
6142
6252
|
className: `${isFullScreen ? "contents" : "contents md:hidden"}`,
|
|
6143
|
-
children: /* @__PURE__ */ (0,
|
|
6253
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(DividerLine_default, {})
|
|
6144
6254
|
}
|
|
6145
6255
|
),
|
|
6146
|
-
/* @__PURE__ */ (0,
|
|
6147
|
-
/* @__PURE__ */ (0,
|
|
6256
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: `${isFullScreen ? "hidden" : "hidden md:block"}`, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(VerticalDividerLine_default, {}) }),
|
|
6257
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: `${isFullScreen ? "w-full" : "w-full md:flex-1"}`, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
6148
6258
|
OpenEndedActivityMaterialContent_default,
|
|
6149
6259
|
{
|
|
6150
6260
|
answer,
|
|
6151
6261
|
contentMap,
|
|
6262
|
+
checkCanAnswerQuestion: canAnswerQuestion,
|
|
6152
6263
|
onChange: handleOpenEndedAnswerOnChange
|
|
6153
6264
|
}
|
|
6154
6265
|
) })
|
|
@@ -6158,14 +6269,14 @@ var OpenEndedActivityContent = ({
|
|
|
6158
6269
|
var OpenEndedActivityContent_default = OpenEndedActivityContent;
|
|
6159
6270
|
|
|
6160
6271
|
// src/components/activities/material-content/OrderingActivityMaterialContent.tsx
|
|
6161
|
-
var
|
|
6272
|
+
var import_react26 = require("react");
|
|
6162
6273
|
var import_react_dnd7 = require("react-dnd");
|
|
6163
6274
|
var import_react_katex8 = require("react-katex");
|
|
6164
6275
|
|
|
6165
6276
|
// src/components/dnds/DraggableDroppableItem.tsx
|
|
6166
|
-
var
|
|
6277
|
+
var import_react25 = require("react");
|
|
6167
6278
|
var import_react_dnd6 = require("react-dnd");
|
|
6168
|
-
var
|
|
6279
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
6169
6280
|
var DraggableDroppableItem = ({
|
|
6170
6281
|
item,
|
|
6171
6282
|
type,
|
|
@@ -6175,7 +6286,7 @@ var DraggableDroppableItem = ({
|
|
|
6175
6286
|
target,
|
|
6176
6287
|
setTarget
|
|
6177
6288
|
}) => {
|
|
6178
|
-
const ref = (0,
|
|
6289
|
+
const ref = (0, import_react25.useRef)(null);
|
|
6179
6290
|
const [, drop] = (0, import_react_dnd6.useDrop)({
|
|
6180
6291
|
accept: type,
|
|
6181
6292
|
hover() {
|
|
@@ -6202,19 +6313,19 @@ var DraggableDroppableItem = ({
|
|
|
6202
6313
|
});
|
|
6203
6314
|
const opacity = isDragging ? 0.4 : 1;
|
|
6204
6315
|
drag(drop(ref));
|
|
6205
|
-
return /* @__PURE__ */ (0,
|
|
6316
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
6206
6317
|
"div",
|
|
6207
6318
|
{
|
|
6208
6319
|
className: `${isDragging ? "w-[0px] opacity-0" : "w-full opacity-100"} transition-all duration-500`,
|
|
6209
6320
|
ref: dropRef,
|
|
6210
|
-
children: /* @__PURE__ */ (0,
|
|
6321
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { ref, className: "w-full", style: { opacity }, children: component })
|
|
6211
6322
|
}
|
|
6212
6323
|
);
|
|
6213
6324
|
};
|
|
6214
6325
|
var DraggableDroppableItem_default = DraggableDroppableItem;
|
|
6215
6326
|
|
|
6216
6327
|
// src/components/activities/material-content/OrderingActivityMaterialContent.tsx
|
|
6217
|
-
var
|
|
6328
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
6218
6329
|
var OrderingActivityMaterialContent = ({
|
|
6219
6330
|
uniqueValue,
|
|
6220
6331
|
answer,
|
|
@@ -6225,10 +6336,10 @@ var OrderingActivityMaterialContent = ({
|
|
|
6225
6336
|
isPreview,
|
|
6226
6337
|
showCorrectAnswer
|
|
6227
6338
|
}) => {
|
|
6228
|
-
const [selectedTargetKey, setSelectedTargetKey] = (0,
|
|
6229
|
-
const [selectedKey, setSelectedKey] = (0,
|
|
6339
|
+
const [selectedTargetKey, setSelectedTargetKey] = (0, import_react26.useState)(null);
|
|
6340
|
+
const [selectedKey, setSelectedKey] = (0, import_react26.useState)(null);
|
|
6230
6341
|
const { screenSize } = useScreenSize_default();
|
|
6231
|
-
const [view, setView] = (0,
|
|
6342
|
+
const [view, setView] = (0, import_react26.useState)("PC");
|
|
6232
6343
|
const [{ isOver, canDrop }, drop] = (0, import_react_dnd7.useDrop)({
|
|
6233
6344
|
accept: "ORDERING",
|
|
6234
6345
|
drop: () => {
|
|
@@ -6238,7 +6349,7 @@ var OrderingActivityMaterialContent = ({
|
|
|
6238
6349
|
canDrop: monitor.canDrop()
|
|
6239
6350
|
})
|
|
6240
6351
|
});
|
|
6241
|
-
(0,
|
|
6352
|
+
(0, import_react26.useEffect)(() => {
|
|
6242
6353
|
if (!screenSize) return;
|
|
6243
6354
|
if (screenSize.width <= 768) {
|
|
6244
6355
|
setView("TABLET");
|
|
@@ -6246,7 +6357,7 @@ var OrderingActivityMaterialContent = ({
|
|
|
6246
6357
|
setView("PC");
|
|
6247
6358
|
}
|
|
6248
6359
|
}, [screenSize]);
|
|
6249
|
-
(0,
|
|
6360
|
+
(0, import_react26.useEffect)(() => {
|
|
6250
6361
|
if (!showCorrectAnswer) return;
|
|
6251
6362
|
const answerMap2 = answer.data.find(
|
|
6252
6363
|
(answerData) => answerData.type === "ORDERING"
|
|
@@ -6291,12 +6402,12 @@ var OrderingActivityMaterialContent = ({
|
|
|
6291
6402
|
return 0;
|
|
6292
6403
|
};
|
|
6293
6404
|
const answerMap = retrieveAnswerMap();
|
|
6294
|
-
return /* @__PURE__ */ (0,
|
|
6405
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "flex flex-row flex-wrap", children: Object.keys(answerMap).map((materialKey, index) => {
|
|
6295
6406
|
const learnerAnswerState = checkAnswerState(
|
|
6296
6407
|
answerMap[materialKey] + "",
|
|
6297
6408
|
index + ""
|
|
6298
6409
|
);
|
|
6299
|
-
return /* @__PURE__ */ (0,
|
|
6410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-full lg:w-1/2", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
6300
6411
|
"div",
|
|
6301
6412
|
{
|
|
6302
6413
|
className: `flex flex-row items-center my-4 mx-2`,
|
|
@@ -6304,26 +6415,26 @@ var OrderingActivityMaterialContent = ({
|
|
|
6304
6415
|
marginTop: view === "PC" ? calculateMarginTop(parseFloat(materialKey)) : 0
|
|
6305
6416
|
},
|
|
6306
6417
|
children: [
|
|
6307
|
-
/* @__PURE__ */ (0,
|
|
6418
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "mr-3", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6308
6419
|
"div",
|
|
6309
6420
|
{
|
|
6310
6421
|
className: `min-h-catchup-activity-outer-box-item w-catchup-activity-box-item flex flex-col items-center justify-center cursor-pointer transition-all duration-300`,
|
|
6311
|
-
children: /* @__PURE__ */ (0,
|
|
6422
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6312
6423
|
"div",
|
|
6313
6424
|
{
|
|
6314
6425
|
className: `${selectedKey === materialKey ? "border-2 border-catchup-light-gray" : "border-2 border-catchup-blue"} flex flex-col items-center justify-center transition-all duration-300 rounded-catchup-full w-[50px] h-[50px]`,
|
|
6315
|
-
children: /* @__PURE__ */ (0,
|
|
6426
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "", children: parseFloat(materialKey) + 1 })
|
|
6316
6427
|
}
|
|
6317
6428
|
)
|
|
6318
6429
|
}
|
|
6319
6430
|
) }),
|
|
6320
|
-
/* @__PURE__ */ (0,
|
|
6431
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6321
6432
|
DraggableDroppableItem_default,
|
|
6322
6433
|
{
|
|
6323
6434
|
item: { index: materialKey },
|
|
6324
6435
|
type: "ORDERING",
|
|
6325
6436
|
dropRef: drop,
|
|
6326
|
-
component: /* @__PURE__ */ (0,
|
|
6437
|
+
component: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6327
6438
|
"div",
|
|
6328
6439
|
{
|
|
6329
6440
|
className: `${canDrop ? selectedKey !== materialKey ? selectedTargetKey === materialKey ? "bg-catchup-light-blue rounded-catchup-xlarge" : "bg-catchup-light-blue rounded-catchup-xlarge opacity-40" : "" : ""} flex-1 min-h-catchup-activity-outer-box-item flex flex-col items-center justify-center border-2 rounded-catchup-xlarge cursor-pointer p-3 ${learnerAnswerState === "CORRECT" ? "border-catchup-green" : learnerAnswerState === "INCORRECT" ? "border-catchup-red" : "border-catchup-blue"}`,
|
|
@@ -6332,16 +6443,16 @@ var OrderingActivityMaterialContent = ({
|
|
|
6332
6443
|
setSelectedKey(materialKey);
|
|
6333
6444
|
}
|
|
6334
6445
|
},
|
|
6335
|
-
children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0,
|
|
6446
|
+
children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "text-xl whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(
|
|
6336
6447
|
materialMap[answerMap[materialKey]]
|
|
6337
|
-
).map((inputPart, index2) => /* @__PURE__ */ (0,
|
|
6448
|
+
).map((inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6338
6449
|
"span",
|
|
6339
6450
|
{
|
|
6340
6451
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
6341
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
6452
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_katex8.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
6342
6453
|
},
|
|
6343
6454
|
index2
|
|
6344
|
-
)) }) : /* @__PURE__ */ (0,
|
|
6455
|
+
)) }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6345
6456
|
ShowMaterialMediaByContentType_default,
|
|
6346
6457
|
{
|
|
6347
6458
|
contentType: contentMap.type,
|
|
@@ -6373,7 +6484,7 @@ var OrderingActivityMaterialContent = ({
|
|
|
6373
6484
|
var OrderingActivityMaterialContent_default = OrderingActivityMaterialContent;
|
|
6374
6485
|
|
|
6375
6486
|
// src/components/activities/OrderingActivityContent.tsx
|
|
6376
|
-
var
|
|
6487
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
6377
6488
|
var OrderingActivityContent = ({
|
|
6378
6489
|
answer,
|
|
6379
6490
|
data,
|
|
@@ -6396,16 +6507,16 @@ var OrderingActivityContent = ({
|
|
|
6396
6507
|
answerMap[secondaryKey] = prevValue;
|
|
6397
6508
|
changeAnswer(answer2);
|
|
6398
6509
|
};
|
|
6399
|
-
return /* @__PURE__ */ (0,
|
|
6400
|
-
/* @__PURE__ */ (0,
|
|
6510
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
6511
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
6401
6512
|
ActivityBodyContent_default,
|
|
6402
6513
|
{
|
|
6403
6514
|
bodyMap: orderingBodyMap,
|
|
6404
6515
|
templateType: "ORDERING"
|
|
6405
6516
|
}
|
|
6406
6517
|
),
|
|
6407
|
-
/* @__PURE__ */ (0,
|
|
6408
|
-
/* @__PURE__ */ (0,
|
|
6518
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(DividerLine_default, {}),
|
|
6519
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
6409
6520
|
OrderingActivityMaterialContent_default,
|
|
6410
6521
|
{
|
|
6411
6522
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
@@ -6423,9 +6534,9 @@ var OrderingActivityContent = ({
|
|
|
6423
6534
|
var OrderingActivityContent_default = OrderingActivityContent;
|
|
6424
6535
|
|
|
6425
6536
|
// src/components/activities/material-content/TrueFalseActivityMaterialContent.tsx
|
|
6426
|
-
var
|
|
6537
|
+
var import_react27 = require("react");
|
|
6427
6538
|
var import_react_katex9 = require("react-katex");
|
|
6428
|
-
var
|
|
6539
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
6429
6540
|
var TrueFalseActivityMaterialContent = ({
|
|
6430
6541
|
uniqueValue,
|
|
6431
6542
|
answer,
|
|
@@ -6437,8 +6548,8 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6437
6548
|
showCorrectAnswer
|
|
6438
6549
|
}) => {
|
|
6439
6550
|
const { screenSize } = useScreenSize_default();
|
|
6440
|
-
const [shuffleOptionList, setShuffleOptionList] = (0,
|
|
6441
|
-
(0,
|
|
6551
|
+
const [shuffleOptionList, setShuffleOptionList] = (0, import_react27.useState)([]);
|
|
6552
|
+
(0, import_react27.useEffect)(() => {
|
|
6442
6553
|
const optionList = [];
|
|
6443
6554
|
optionList.push(...materialMap.trueList);
|
|
6444
6555
|
optionList.push(...materialMap.falseList);
|
|
@@ -6448,7 +6559,7 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6448
6559
|
setShuffleOptionList(shuffleArray(optionList));
|
|
6449
6560
|
}
|
|
6450
6561
|
}, []);
|
|
6451
|
-
(0,
|
|
6562
|
+
(0, import_react27.useEffect)(() => {
|
|
6452
6563
|
if (!showCorrectAnswer) return;
|
|
6453
6564
|
answer.data.find(
|
|
6454
6565
|
(answerData) => answerData.type === "TRUE_FALSE"
|
|
@@ -6478,14 +6589,14 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6478
6589
|
return "INCORRECT";
|
|
6479
6590
|
};
|
|
6480
6591
|
const answerMap = retrieveAnswerMap();
|
|
6481
|
-
return /* @__PURE__ */ (0,
|
|
6482
|
-
/* @__PURE__ */ (0,
|
|
6483
|
-
/* @__PURE__ */ (0,
|
|
6484
|
-
/* @__PURE__ */ (0,
|
|
6485
|
-
/* @__PURE__ */ (0,
|
|
6486
|
-
/* @__PURE__ */ (0,
|
|
6592
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "", children: [
|
|
6593
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "hidden md:block", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "font-semibold text-xl opacity-60", children: i18n_default.t("please_select_true_false_text") }) }),
|
|
6594
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "hidden md:contents", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(DividerLine_default, {}) }),
|
|
6595
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-row justify-end items-center gap-x-2", children: [
|
|
6596
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-[50px]", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "font-bold text-lg", children: i18n_default.t("true") }) }),
|
|
6597
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-[50px]", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "font-bold text-lg", children: i18n_default.t("false") }) })
|
|
6487
6598
|
] }),
|
|
6488
|
-
checkCanAnswerQuestion() ? /* @__PURE__ */ (0,
|
|
6599
|
+
checkCanAnswerQuestion() ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: `flex flex-row w-full justify-center flex-wrap`, children: shuffleOptionList.map((shuffleOption, index) => {
|
|
6489
6600
|
const correctAnswer = materialMap.trueList.find(
|
|
6490
6601
|
(trueItem) => trueItem === shuffleOption
|
|
6491
6602
|
) !== void 0 ? "TRUE" : "FALSE";
|
|
@@ -6496,21 +6607,21 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6496
6607
|
correctAnswer,
|
|
6497
6608
|
learnerAnswer
|
|
6498
6609
|
);
|
|
6499
|
-
return /* @__PURE__ */ (0,
|
|
6610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
6500
6611
|
"div",
|
|
6501
6612
|
{
|
|
6502
6613
|
className: `w-full flex flex-row items-center justify-center cursor-pointer my-2 ${learnerAnswerState === "CORRECT" ? "border-2 border-catchup-green rounded-catchup-xlarge p-2" : learnerAnswerState === "INCORRECT" ? "border-2 border-catchup-red rounded-catchup-xlarge p-2" : ""}`,
|
|
6503
6614
|
children: [
|
|
6504
|
-
/* @__PURE__ */ (0,
|
|
6615
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex-1", children: contentMap.type === "TEXT" ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-xl p-2 whitespace-pre-wrap", children: constructInputWithSpecialExpressionList(
|
|
6505
6616
|
shuffleOption
|
|
6506
|
-
).map((inputPart, index2) => /* @__PURE__ */ (0,
|
|
6617
|
+
).map((inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
6507
6618
|
"span",
|
|
6508
6619
|
{
|
|
6509
6620
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
6510
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
6621
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_katex9.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
6511
6622
|
},
|
|
6512
6623
|
index2
|
|
6513
|
-
)) }) : /* @__PURE__ */ (0,
|
|
6624
|
+
)) }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
6514
6625
|
ShowMaterialMediaByContentType_default,
|
|
6515
6626
|
{
|
|
6516
6627
|
contentType: contentMap.type,
|
|
@@ -6519,8 +6630,8 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6519
6630
|
},
|
|
6520
6631
|
`${uniqueValue}-${index}`
|
|
6521
6632
|
) }),
|
|
6522
|
-
/* @__PURE__ */ (0,
|
|
6523
|
-
/* @__PURE__ */ (0,
|
|
6633
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
|
|
6634
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-[50px]", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex flex-col items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
6524
6635
|
BaseImage_default,
|
|
6525
6636
|
{
|
|
6526
6637
|
src: answerMap.trueList.includes(shuffleOption) ? "/icons/checkbox.webp" : "/icons/checkbox-empty.webp",
|
|
@@ -6531,7 +6642,7 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6531
6642
|
}
|
|
6532
6643
|
}
|
|
6533
6644
|
) }) }),
|
|
6534
|
-
/* @__PURE__ */ (0,
|
|
6645
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-[50px]", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex flex-col items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
6535
6646
|
BaseImage_default,
|
|
6536
6647
|
{
|
|
6537
6648
|
src: answerMap.falseList.includes(shuffleOption) ? "/icons/checkbox.webp" : "/icons/checkbox-empty.webp",
|
|
@@ -6547,14 +6658,14 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6547
6658
|
},
|
|
6548
6659
|
index
|
|
6549
6660
|
);
|
|
6550
|
-
}) }) : /* @__PURE__ */ (0,
|
|
6551
|
-
answerMap.trueList.map((item) => /* @__PURE__ */ (0,
|
|
6552
|
-
/* @__PURE__ */ (0,
|
|
6553
|
-
/* @__PURE__ */ (0,
|
|
6661
|
+
}) }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
|
|
6662
|
+
answerMap.trueList.map((item) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
|
|
6663
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { children: item }) }),
|
|
6664
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-[50px]", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "underline", children: i18n_default.t("true") }) })
|
|
6554
6665
|
] })),
|
|
6555
|
-
answerMap.falseList.map((item) => /* @__PURE__ */ (0,
|
|
6556
|
-
/* @__PURE__ */ (0,
|
|
6557
|
-
/* @__PURE__ */ (0,
|
|
6666
|
+
answerMap.falseList.map((item) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
|
|
6667
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { children: item }) }),
|
|
6668
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-[50px]", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "underline", children: i18n_default.t("false") }) })
|
|
6558
6669
|
] }))
|
|
6559
6670
|
] })
|
|
6560
6671
|
] });
|
|
@@ -6562,7 +6673,7 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6562
6673
|
var TrueFalseActivityMaterialContent_default = TrueFalseActivityMaterialContent;
|
|
6563
6674
|
|
|
6564
6675
|
// src/components/activities/TrueFalseActivityContent.tsx
|
|
6565
|
-
var
|
|
6676
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
6566
6677
|
var TrueFalseActivityContent = ({
|
|
6567
6678
|
answer,
|
|
6568
6679
|
data,
|
|
@@ -6612,17 +6723,17 @@ var TrueFalseActivityContent = ({
|
|
|
6612
6723
|
}
|
|
6613
6724
|
changeAnswer(answer2);
|
|
6614
6725
|
};
|
|
6615
|
-
return /* @__PURE__ */ (0,
|
|
6616
|
-
/* @__PURE__ */ (0,
|
|
6726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-row flex-wrap", children: [
|
|
6727
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: `${isFullScreen ? "w-full" : "w-full md:w-[40%]"}`, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6617
6728
|
ActivityBodyContent_default,
|
|
6618
6729
|
{
|
|
6619
6730
|
bodyMap: trueFalseBodyMap,
|
|
6620
6731
|
templateType: "GROUPING"
|
|
6621
6732
|
}
|
|
6622
6733
|
) }),
|
|
6623
|
-
/* @__PURE__ */ (0,
|
|
6624
|
-
/* @__PURE__ */ (0,
|
|
6625
|
-
/* @__PURE__ */ (0,
|
|
6734
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: `${isFullScreen ? "contents" : "contents md:hidden"}`, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(DividerLine_default, {}) }),
|
|
6735
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: `${isFullScreen ? "hidden" : "hidden md:block"}`, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(VerticalDividerLine_default, {}) }),
|
|
6736
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: `${isFullScreen ? "w-full" : "w-full md:flex-1"}`, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6626
6737
|
TrueFalseActivityMaterialContent_default,
|
|
6627
6738
|
{
|
|
6628
6739
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
@@ -6641,7 +6752,7 @@ var TrueFalseActivityContent_default = TrueFalseActivityContent;
|
|
|
6641
6752
|
|
|
6642
6753
|
// src/components/activities/solution-content/ActivitySolutionContent.tsx
|
|
6643
6754
|
var import_react_katex10 = require("react-katex");
|
|
6644
|
-
var
|
|
6755
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
6645
6756
|
var ActivitySolutionContent = ({
|
|
6646
6757
|
activityTemplateType,
|
|
6647
6758
|
data
|
|
@@ -6671,8 +6782,8 @@ var ActivitySolutionContent = ({
|
|
|
6671
6782
|
return null;
|
|
6672
6783
|
}
|
|
6673
6784
|
if (!solutionMap || Object.keys(solutionMap).length === 0) return null;
|
|
6674
|
-
return /* @__PURE__ */ (0,
|
|
6675
|
-
/* @__PURE__ */ (0,
|
|
6785
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "mx-2", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "p-4 border-catchup-blue border-2 rounded-catchup-xlarge", children: [
|
|
6786
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("p", { className: "text-xl font-bold text-center mb-3", children: i18n_default.t("solution") }),
|
|
6676
6787
|
Object.keys(solutionMap).map((key) => {
|
|
6677
6788
|
let currentItem;
|
|
6678
6789
|
try {
|
|
@@ -6682,12 +6793,12 @@ var ActivitySolutionContent = ({
|
|
|
6682
6793
|
return null;
|
|
6683
6794
|
}
|
|
6684
6795
|
const { value } = currentItem;
|
|
6685
|
-
return /* @__PURE__ */ (0,
|
|
6686
|
-
(inputPart, partIndex) => /* @__PURE__ */ (0,
|
|
6796
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "my-3 text-xl", children: constructInputWithSpecialExpressionList(value).map(
|
|
6797
|
+
(inputPart, partIndex) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
6687
6798
|
"span",
|
|
6688
6799
|
{
|
|
6689
6800
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
6690
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
6801
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react_katex10.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
6691
6802
|
},
|
|
6692
6803
|
`${key}_part_${partIndex}`
|
|
6693
6804
|
)
|
|
@@ -6699,7 +6810,7 @@ var ActivitySolutionContent_default = ActivitySolutionContent;
|
|
|
6699
6810
|
|
|
6700
6811
|
// src/components/activities/evaluation-rubric-content/ActivityEvaluationRubricContent.tsx
|
|
6701
6812
|
var import_react_katex11 = require("react-katex");
|
|
6702
|
-
var
|
|
6813
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
6703
6814
|
var ActivityEvaluationRubricContent = ({
|
|
6704
6815
|
activityTemplateType,
|
|
6705
6816
|
data
|
|
@@ -6728,21 +6839,21 @@ var ActivityEvaluationRubricContent = ({
|
|
|
6728
6839
|
}
|
|
6729
6840
|
if (!evaluationRubricMap || Object.keys(evaluationRubricMap).length === 0)
|
|
6730
6841
|
return null;
|
|
6731
|
-
return /* @__PURE__ */ (0,
|
|
6732
|
-
/* @__PURE__ */ (0,
|
|
6842
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "mx-2", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "p-4 border-catchup-gray-400 border-2 rounded-catchup-xlarge", children: [
|
|
6843
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("p", { className: "text-xl font-bold text-center mb-3", children: i18n_default.t("evaluation_rubric") }),
|
|
6733
6844
|
Object.keys(evaluationRubricMap).map((key, index) => {
|
|
6734
6845
|
const currentItem = JSON.parse(evaluationRubricMap[key]);
|
|
6735
6846
|
const { value } = currentItem;
|
|
6736
|
-
return /* @__PURE__ */ (0,
|
|
6847
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
6737
6848
|
"p",
|
|
6738
6849
|
{
|
|
6739
6850
|
className: "my-1 text-xl whitespace-pre-wrap",
|
|
6740
6851
|
children: constructInputWithSpecialExpressionList(value).map(
|
|
6741
|
-
(inputPart, index2) => /* @__PURE__ */ (0,
|
|
6852
|
+
(inputPart, index2) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
6742
6853
|
"span",
|
|
6743
6854
|
{
|
|
6744
6855
|
className: `${inputPart.isBold ? "font-bold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
6745
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
6856
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "text-2xl", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_react_katex11.InlineMath, { math: inputPart.value }) }) : inputPart.value
|
|
6746
6857
|
},
|
|
6747
6858
|
index2
|
|
6748
6859
|
)
|
|
@@ -6756,31 +6867,31 @@ var ActivityEvaluationRubricContent = ({
|
|
|
6756
6867
|
var ActivityEvaluationRubricContent_default = ActivityEvaluationRubricContent;
|
|
6757
6868
|
|
|
6758
6869
|
// src/components/activities/ActivityPreviewByData.tsx
|
|
6759
|
-
var
|
|
6870
|
+
var import_react28 = require("react");
|
|
6760
6871
|
|
|
6761
6872
|
// src/components/boxes/SelectionBox.tsx
|
|
6762
|
-
var
|
|
6873
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
6763
6874
|
var SelectionBox = ({
|
|
6764
6875
|
optionList,
|
|
6765
6876
|
selectedId,
|
|
6766
6877
|
handleSelectOnClick
|
|
6767
6878
|
}) => {
|
|
6768
|
-
return /* @__PURE__ */ (0,
|
|
6879
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
6769
6880
|
"div",
|
|
6770
6881
|
{
|
|
6771
6882
|
className: `${option.id === selectedId ? "border-catchup-blue-400" : "border-catchup-gray-100 hover:border-catchup-blue-500"} border-2 rounded-catchup-xlarge py-3 px-8 cursor-pointer duration-300 transition-all`,
|
|
6772
6883
|
onClick: () => {
|
|
6773
6884
|
handleSelectOnClick(option.id);
|
|
6774
6885
|
},
|
|
6775
|
-
children: /* @__PURE__ */ (0,
|
|
6886
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
6776
6887
|
"div",
|
|
6777
6888
|
{
|
|
6778
6889
|
className: `flex flex-row items-center gap-x-1 ${option.id === selectedId ? "opacity-100" : "opacity-50"}`,
|
|
6779
6890
|
children: [
|
|
6780
6891
|
option.icon,
|
|
6781
|
-
/* @__PURE__ */ (0,
|
|
6782
|
-
/* @__PURE__ */ (0,
|
|
6783
|
-
option.subText ? /* @__PURE__ */ (0,
|
|
6892
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex-1 flex flex-col items-center", children: [
|
|
6893
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { children: option.text }),
|
|
6894
|
+
option.subText ? /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("p", { className: "text-md", children: [
|
|
6784
6895
|
"(",
|
|
6785
6896
|
option.subText,
|
|
6786
6897
|
")"
|
|
@@ -6796,7 +6907,7 @@ var SelectionBox = ({
|
|
|
6796
6907
|
var SelectionBox_default = SelectionBox;
|
|
6797
6908
|
|
|
6798
6909
|
// src/components/activities/ActivityPreviewByData.tsx
|
|
6799
|
-
var
|
|
6910
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
6800
6911
|
var ActivityPreviewByData = ({
|
|
6801
6912
|
data,
|
|
6802
6913
|
showType,
|
|
@@ -6808,14 +6919,14 @@ var ActivityPreviewByData = ({
|
|
|
6808
6919
|
showDifficulty,
|
|
6809
6920
|
isFullScreen
|
|
6810
6921
|
}) => {
|
|
6811
|
-
const [key, setKey] = (0,
|
|
6812
|
-
const [selectedType, setSelectedType] = (0,
|
|
6813
|
-
const [optionList, setOptionList] = (0,
|
|
6814
|
-
(0,
|
|
6922
|
+
const [key, setKey] = (0, import_react28.useState)((/* @__PURE__ */ new Date()).getTime());
|
|
6923
|
+
const [selectedType, setSelectedType] = (0, import_react28.useState)(null);
|
|
6924
|
+
const [optionList, setOptionList] = (0, import_react28.useState)([]);
|
|
6925
|
+
(0, import_react28.useEffect)(() => {
|
|
6815
6926
|
if (!data) return;
|
|
6816
6927
|
setKey((/* @__PURE__ */ new Date()).getTime());
|
|
6817
6928
|
}, [data]);
|
|
6818
|
-
(0,
|
|
6929
|
+
(0, import_react28.useEffect)(() => {
|
|
6819
6930
|
if (!typeOptionList) return;
|
|
6820
6931
|
if (typeOptionList.length === 0) return;
|
|
6821
6932
|
let foundTypeOption;
|
|
@@ -6830,7 +6941,7 @@ var ActivityPreviewByData = ({
|
|
|
6830
6941
|
setSelectedType(typeOptionList[0].id);
|
|
6831
6942
|
}
|
|
6832
6943
|
}, [typeOptionList, lockedType]);
|
|
6833
|
-
(0,
|
|
6944
|
+
(0, import_react28.useEffect)(() => {
|
|
6834
6945
|
if (!data) return;
|
|
6835
6946
|
if (!typeOptionList) return;
|
|
6836
6947
|
if (typeOptionList.length === 0) return;
|
|
@@ -6854,10 +6965,10 @@ var ActivityPreviewByData = ({
|
|
|
6854
6965
|
}, [data, lockedType, typeOptionList, showDifficulty]);
|
|
6855
6966
|
if (!data) return;
|
|
6856
6967
|
const answer = constructAnswerBasedOnData(data);
|
|
6857
|
-
return /* @__PURE__ */ (0,
|
|
6858
|
-
showType ? /* @__PURE__ */ (0,
|
|
6859
|
-
showDescription ? /* @__PURE__ */ (0,
|
|
6860
|
-
/* @__PURE__ */ (0,
|
|
6968
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
|
|
6969
|
+
showType ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "mb-4", children: [
|
|
6970
|
+
showDescription ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "my-2", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("p", { className: "font-semibold text-lg", children: i18n_default.t("activity_template") }) }) : null,
|
|
6971
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6861
6972
|
SelectionBox_default,
|
|
6862
6973
|
{
|
|
6863
6974
|
optionList,
|
|
@@ -6868,7 +6979,7 @@ var ActivityPreviewByData = ({
|
|
|
6868
6979
|
}
|
|
6869
6980
|
)
|
|
6870
6981
|
] }) : null,
|
|
6871
|
-
selectedType ? /* @__PURE__ */ (0,
|
|
6982
|
+
selectedType ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "", children: selectedType === "ORDERING" && data["orderingBodyMap"] != null && data["orderingMaterialMap"] != null ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6872
6983
|
OrderingActivityContent_default,
|
|
6873
6984
|
{
|
|
6874
6985
|
answer,
|
|
@@ -6882,7 +6993,7 @@ var ActivityPreviewByData = ({
|
|
|
6882
6993
|
showCorrectAnswer: true,
|
|
6883
6994
|
isFullScreen
|
|
6884
6995
|
}
|
|
6885
|
-
) : selectedType === "DROPDOWN" && data["dropdownBodyMap"] != null && data["dropdownMaterialMap"] != null ? /* @__PURE__ */ (0,
|
|
6996
|
+
) : selectedType === "DROPDOWN" && data["dropdownBodyMap"] != null && data["dropdownMaterialMap"] != null ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6886
6997
|
DropdownActivityContent_default,
|
|
6887
6998
|
{
|
|
6888
6999
|
answer,
|
|
@@ -6896,7 +7007,7 @@ var ActivityPreviewByData = ({
|
|
|
6896
7007
|
showCorrectAnswer: true,
|
|
6897
7008
|
isFullScreen
|
|
6898
7009
|
}
|
|
6899
|
-
) : selectedType === "MCSA" && data["MCSABodyMap"] != null && data["MCSAMaterialMap"] != null ? /* @__PURE__ */ (0,
|
|
7010
|
+
) : selectedType === "MCSA" && data["MCSABodyMap"] != null && data["MCSAMaterialMap"] != null ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6900
7011
|
MCSAActivityContent_default,
|
|
6901
7012
|
{
|
|
6902
7013
|
answer,
|
|
@@ -6910,7 +7021,7 @@ var ActivityPreviewByData = ({
|
|
|
6910
7021
|
showCorrectAnswer: true,
|
|
6911
7022
|
isFullScreen
|
|
6912
7023
|
}
|
|
6913
|
-
) : selectedType === "MCMA" && data["MCMABodyMap"] != null && data["MCMAMaterialMap"] != null ? /* @__PURE__ */ (0,
|
|
7024
|
+
) : selectedType === "MCMA" && data["MCMABodyMap"] != null && data["MCMAMaterialMap"] != null ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6914
7025
|
MCMAActivityContent_default,
|
|
6915
7026
|
{
|
|
6916
7027
|
answer,
|
|
@@ -6924,7 +7035,7 @@ var ActivityPreviewByData = ({
|
|
|
6924
7035
|
showCorrectAnswer: true,
|
|
6925
7036
|
isFullScreen
|
|
6926
7037
|
}
|
|
6927
|
-
) : selectedType === "MATCHING" && data["matchingBodyMap"] != null && data["matchingMaterialMap"] != null ? /* @__PURE__ */ (0,
|
|
7038
|
+
) : selectedType === "MATCHING" && data["matchingBodyMap"] != null && data["matchingMaterialMap"] != null ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6928
7039
|
MatchingActivityContent_default,
|
|
6929
7040
|
{
|
|
6930
7041
|
answer,
|
|
@@ -6938,7 +7049,7 @@ var ActivityPreviewByData = ({
|
|
|
6938
7049
|
showCorrectAnswer: true,
|
|
6939
7050
|
isFullScreen
|
|
6940
7051
|
}
|
|
6941
|
-
) : selectedType === "GROUPING" && data["groupingBodyMap"] != null && data["groupingMaterialMap"] != null ? /* @__PURE__ */ (0,
|
|
7052
|
+
) : selectedType === "GROUPING" && data["groupingBodyMap"] != null && data["groupingMaterialMap"] != null ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6942
7053
|
GroupingActivityContent_default,
|
|
6943
7054
|
{
|
|
6944
7055
|
answer,
|
|
@@ -6952,7 +7063,7 @@ var ActivityPreviewByData = ({
|
|
|
6952
7063
|
showCorrectAnswer: true,
|
|
6953
7064
|
isFullScreen
|
|
6954
7065
|
}
|
|
6955
|
-
) : selectedType === "FILL_IN_THE_BLANKS" && data["fillInTheBlanksBodyMap"] != null && data["fillInTheBlanksMaterialMap"] != null ? /* @__PURE__ */ (0,
|
|
7066
|
+
) : selectedType === "FILL_IN_THE_BLANKS" && data["fillInTheBlanksBodyMap"] != null && data["fillInTheBlanksMaterialMap"] != null ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6956
7067
|
FillInTheBlanksActivityContent_default,
|
|
6957
7068
|
{
|
|
6958
7069
|
answer,
|
|
@@ -6966,17 +7077,18 @@ var ActivityPreviewByData = ({
|
|
|
6966
7077
|
showCorrectAnswer: true,
|
|
6967
7078
|
isFullScreen
|
|
6968
7079
|
}
|
|
6969
|
-
) : selectedType === "OPEN_ENDED" && data["openEndedBodyMap"] != null ? /* @__PURE__ */ (0,
|
|
7080
|
+
) : selectedType === "OPEN_ENDED" && data["openEndedBodyMap"] != null ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6970
7081
|
OpenEndedActivityContent_default,
|
|
6971
7082
|
{
|
|
6972
7083
|
answer,
|
|
7084
|
+
canAnswerQuestion: () => false,
|
|
6973
7085
|
changeAnswer: () => {
|
|
6974
7086
|
},
|
|
6975
7087
|
showMaterialContent: true,
|
|
6976
7088
|
data,
|
|
6977
7089
|
isFullScreen
|
|
6978
7090
|
}
|
|
6979
|
-
) : selectedType === "TRUE_FALSE" && data["trueFalseBodyMap"] != null && data["trueFalseMaterialMap"] != null ? /* @__PURE__ */ (0,
|
|
7091
|
+
) : selectedType === "TRUE_FALSE" && data["trueFalseBodyMap"] != null && data["trueFalseMaterialMap"] != null ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6980
7092
|
TrueFalseActivityContent_default,
|
|
6981
7093
|
{
|
|
6982
7094
|
answer,
|
|
@@ -6991,14 +7103,14 @@ var ActivityPreviewByData = ({
|
|
|
6991
7103
|
isFullScreen
|
|
6992
7104
|
}
|
|
6993
7105
|
) : null }, selectedType) : null,
|
|
6994
|
-
selectedType && showSolution ? /* @__PURE__ */ (0,
|
|
7106
|
+
selectedType && showSolution ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "my-4", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6995
7107
|
ActivitySolutionContent_default,
|
|
6996
7108
|
{
|
|
6997
7109
|
activityTemplateType: selectedType,
|
|
6998
7110
|
data
|
|
6999
7111
|
}
|
|
7000
7112
|
) }) : null,
|
|
7001
|
-
selectedType && showEvaluationRubric ? /* @__PURE__ */ (0,
|
|
7113
|
+
selectedType && showEvaluationRubric ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "my-4", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
7002
7114
|
ActivityEvaluationRubricContent_default,
|
|
7003
7115
|
{
|
|
7004
7116
|
activityTemplateType: selectedType,
|
|
@@ -7010,8 +7122,8 @@ var ActivityPreviewByData = ({
|
|
|
7010
7122
|
var ActivityPreviewByData_default = ActivityPreviewByData;
|
|
7011
7123
|
|
|
7012
7124
|
// src/components/activities/ActivityPreviewByAnswerData.tsx
|
|
7013
|
-
var
|
|
7014
|
-
var
|
|
7125
|
+
var import_react29 = require("react");
|
|
7126
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
7015
7127
|
var ActivityPreviewByAnswerData = ({
|
|
7016
7128
|
data,
|
|
7017
7129
|
showType = true,
|
|
@@ -7025,11 +7137,11 @@ var ActivityPreviewByAnswerData = ({
|
|
|
7025
7137
|
showCorrectAnswer = false
|
|
7026
7138
|
}) => {
|
|
7027
7139
|
var _a;
|
|
7028
|
-
const [key, setKey] = (0,
|
|
7029
|
-
const [selectedType, setSelectedType] = (0,
|
|
7030
|
-
const [optionList, setOptionList] = (0,
|
|
7031
|
-
const [answer, setAnswer] = (0,
|
|
7032
|
-
(0,
|
|
7140
|
+
const [key, setKey] = (0, import_react29.useState)((/* @__PURE__ */ new Date()).getTime());
|
|
7141
|
+
const [selectedType, setSelectedType] = (0, import_react29.useState)(null);
|
|
7142
|
+
const [optionList, setOptionList] = (0, import_react29.useState)([]);
|
|
7143
|
+
const [answer, setAnswer] = (0, import_react29.useState)({ data: [] });
|
|
7144
|
+
(0, import_react29.useEffect)(() => {
|
|
7033
7145
|
if (!data) return;
|
|
7034
7146
|
setKey((/* @__PURE__ */ new Date()).getTime());
|
|
7035
7147
|
}, [data]);
|
|
@@ -7042,7 +7154,7 @@ var ActivityPreviewByAnswerData = ({
|
|
|
7042
7154
|
}
|
|
7043
7155
|
return null;
|
|
7044
7156
|
};
|
|
7045
|
-
(0,
|
|
7157
|
+
(0, import_react29.useEffect)(() => {
|
|
7046
7158
|
if (!data) return;
|
|
7047
7159
|
const constructAnswerBasedOnData2 = () => {
|
|
7048
7160
|
const newAnswer = { data: [] };
|
|
@@ -7081,7 +7193,7 @@ var ActivityPreviewByAnswerData = ({
|
|
|
7081
7193
|
};
|
|
7082
7194
|
constructAnswerBasedOnData2();
|
|
7083
7195
|
}, [data, lockedType]);
|
|
7084
|
-
(0,
|
|
7196
|
+
(0, import_react29.useEffect)(() => {
|
|
7085
7197
|
if (!data || !answer.data.length) return;
|
|
7086
7198
|
let currentTypeOptionList = typeOptionList || answer.data.map((item) => ({
|
|
7087
7199
|
id: item.type,
|
|
@@ -7116,37 +7228,37 @@ var ActivityPreviewByAnswerData = ({
|
|
|
7116
7228
|
};
|
|
7117
7229
|
switch (selectedType) {
|
|
7118
7230
|
case "ORDERING":
|
|
7119
|
-
return data.orderingBodyMap && data.orderingMaterialMap ? /* @__PURE__ */ (0,
|
|
7231
|
+
return data.orderingBodyMap && data.orderingMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(OrderingActivityContent_default, __spreadValues({}, commonProps)) : null;
|
|
7120
7232
|
case "DROPDOWN":
|
|
7121
|
-
return data.dropdownBodyMap && data.dropdownMaterialMap ? /* @__PURE__ */ (0,
|
|
7233
|
+
return data.dropdownBodyMap && data.dropdownMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DropdownActivityContent_default, __spreadValues({}, commonProps)) : null;
|
|
7122
7234
|
case "MCSA":
|
|
7123
|
-
return data.MCSABodyMap && data.MCSAMaterialMap ? /* @__PURE__ */ (0,
|
|
7235
|
+
return data.MCSABodyMap && data.MCSAMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(MCSAActivityContent_default, __spreadValues({}, commonProps)) : null;
|
|
7124
7236
|
case "MCMA":
|
|
7125
|
-
return data.MCMABodyMap && data.MCMAMaterialMap ? /* @__PURE__ */ (0,
|
|
7237
|
+
return data.MCMABodyMap && data.MCMAMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(MCMAActivityContent_default, __spreadValues({}, commonProps)) : null;
|
|
7126
7238
|
case "MATCHING":
|
|
7127
|
-
return data.matchingBodyMap && data.matchingMaterialMap ? /* @__PURE__ */ (0,
|
|
7239
|
+
return data.matchingBodyMap && data.matchingMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(MatchingActivityContent_default, __spreadValues({}, commonProps)) : null;
|
|
7128
7240
|
case "GROUPING":
|
|
7129
|
-
return data.groupingBodyMap && data.groupingMaterialMap ? /* @__PURE__ */ (0,
|
|
7241
|
+
return data.groupingBodyMap && data.groupingMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(GroupingActivityContent_default, __spreadValues({}, commonProps)) : null;
|
|
7130
7242
|
case "FILL_IN_THE_BLANKS":
|
|
7131
|
-
return data.fillInTheBlanksBodyMap && data.fillInTheBlanksMaterialMap ? /* @__PURE__ */ (0,
|
|
7243
|
+
return data.fillInTheBlanksBodyMap && data.fillInTheBlanksMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(FillInTheBlanksActivityContent_default, __spreadValues({}, commonProps)) : null;
|
|
7132
7244
|
case "OPEN_ENDED":
|
|
7133
|
-
return data.openEndedBodyMap ? /* @__PURE__ */ (0,
|
|
7245
|
+
return data.openEndedBodyMap ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7134
7246
|
OpenEndedActivityContent_default,
|
|
7135
7247
|
__spreadProps(__spreadValues({}, commonProps), {
|
|
7136
7248
|
showMaterialContent: true
|
|
7137
7249
|
})
|
|
7138
7250
|
) : null;
|
|
7139
7251
|
case "TRUE_FALSE":
|
|
7140
|
-
return data.trueFalseBodyMap && data.trueFalseMaterialMap ? /* @__PURE__ */ (0,
|
|
7252
|
+
return data.trueFalseBodyMap && data.trueFalseMaterialMap ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(TrueFalseActivityContent_default, __spreadValues({}, commonProps)) : null;
|
|
7141
7253
|
default:
|
|
7142
7254
|
return null;
|
|
7143
7255
|
}
|
|
7144
7256
|
};
|
|
7145
7257
|
if (!data) return null;
|
|
7146
|
-
return /* @__PURE__ */ (0,
|
|
7147
|
-
showType && optionList.length > 0 ? /* @__PURE__ */ (0,
|
|
7148
|
-
showDescription ? /* @__PURE__ */ (0,
|
|
7149
|
-
/* @__PURE__ */ (0,
|
|
7258
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
|
|
7259
|
+
showType && optionList.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "mb-4", children: [
|
|
7260
|
+
showDescription ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "my-2", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "font-semibold text-lg", children: i18n_default.t("activity_template") }) }) : null,
|
|
7261
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7150
7262
|
SelectionBox_default,
|
|
7151
7263
|
{
|
|
7152
7264
|
optionList,
|
|
@@ -7157,19 +7269,19 @@ var ActivityPreviewByAnswerData = ({
|
|
|
7157
7269
|
}
|
|
7158
7270
|
)
|
|
7159
7271
|
] }) : null,
|
|
7160
|
-
/* @__PURE__ */ (0,
|
|
7161
|
-
/* @__PURE__ */ (0,
|
|
7162
|
-
((_a = answer == null ? void 0 : answer.data[0]) == null ? void 0 : _a.isEmpty) ? /* @__PURE__ */ (0,
|
|
7163
|
-
selectedType ? /* @__PURE__ */ (0,
|
|
7272
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DividerLine_default, {}),
|
|
7273
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex flex-col my-2 w-full p-5", children: [
|
|
7274
|
+
((_a = answer == null ? void 0 : answer.data[0]) == null ? void 0 : _a.isEmpty) ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ActivityEmptyContent_default, {}) : null,
|
|
7275
|
+
selectedType ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { children: RenderSelectedActivityContent() }, selectedType) : null
|
|
7164
7276
|
] }),
|
|
7165
|
-
selectedType && showSolution ? /* @__PURE__ */ (0,
|
|
7277
|
+
selectedType && showSolution ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "my-4", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7166
7278
|
ActivitySolutionContent_default,
|
|
7167
7279
|
{
|
|
7168
7280
|
activityTemplateType: selectedType,
|
|
7169
7281
|
data
|
|
7170
7282
|
}
|
|
7171
7283
|
) }) : null,
|
|
7172
|
-
selectedType && showEvaluationRubric ? /* @__PURE__ */ (0,
|
|
7284
|
+
selectedType && showEvaluationRubric ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "my-4", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7173
7285
|
ActivityEvaluationRubricContent_default,
|
|
7174
7286
|
{
|
|
7175
7287
|
activityTemplateType: selectedType,
|
|
@@ -7181,9 +7293,9 @@ var ActivityPreviewByAnswerData = ({
|
|
|
7181
7293
|
var ActivityPreviewByAnswerData_default = ActivityPreviewByAnswerData;
|
|
7182
7294
|
|
|
7183
7295
|
// src/components/dividers/BlueVerticalDividerLine.tsx
|
|
7184
|
-
var
|
|
7296
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
7185
7297
|
var BlueVerticalDividerLine = ({ opacity }) => {
|
|
7186
|
-
return /* @__PURE__ */ (0,
|
|
7298
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7187
7299
|
"div",
|
|
7188
7300
|
{
|
|
7189
7301
|
className: `w-[2px] h-[40px] my-4 bg-catchup-blue ${opacity === "medium" ? "opacity-50" : ""}`
|
|
@@ -7193,7 +7305,7 @@ var BlueVerticalDividerLine = ({ opacity }) => {
|
|
|
7193
7305
|
var BlueVerticalDividerLine_default = BlueVerticalDividerLine;
|
|
7194
7306
|
|
|
7195
7307
|
// src/components/groups/LeftTextRightInputGroup.tsx
|
|
7196
|
-
var
|
|
7308
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
7197
7309
|
var LeftTextRightInputGroup = ({
|
|
7198
7310
|
type,
|
|
7199
7311
|
title,
|
|
@@ -7203,9 +7315,9 @@ var LeftTextRightInputGroup = ({
|
|
|
7203
7315
|
disabled,
|
|
7204
7316
|
errorText
|
|
7205
7317
|
}) => {
|
|
7206
|
-
return /* @__PURE__ */ (0,
|
|
7207
|
-
/* @__PURE__ */ (0,
|
|
7208
|
-
/* @__PURE__ */ (0,
|
|
7318
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "w-full flex flex-row mx-2", children: [
|
|
7319
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "w-catchup-input-group-title py-5", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("p", { children: title }) }),
|
|
7320
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7209
7321
|
InputGroup_default,
|
|
7210
7322
|
{
|
|
7211
7323
|
type,
|
|
@@ -7221,14 +7333,14 @@ var LeftTextRightInputGroup = ({
|
|
|
7221
7333
|
var LeftTextRightInputGroup_default = LeftTextRightInputGroup;
|
|
7222
7334
|
|
|
7223
7335
|
// src/components/boxes/SelectionCheckbox.tsx
|
|
7224
|
-
var
|
|
7336
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
7225
7337
|
var SelectionCheckbox = ({
|
|
7226
7338
|
optionList,
|
|
7227
7339
|
selectedIdList,
|
|
7228
7340
|
handleSelectOnClick,
|
|
7229
7341
|
handleRemoveOnClick
|
|
7230
7342
|
}) => {
|
|
7231
|
-
return /* @__PURE__ */ (0,
|
|
7343
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
7232
7344
|
"div",
|
|
7233
7345
|
{
|
|
7234
7346
|
className: `${selectedIdList.findIndex(
|
|
@@ -7243,14 +7355,14 @@ var SelectionCheckbox = ({
|
|
|
7243
7355
|
handleRemoveOnClick(option.id);
|
|
7244
7356
|
}
|
|
7245
7357
|
},
|
|
7246
|
-
children: /* @__PURE__ */ (0,
|
|
7358
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
7247
7359
|
"div",
|
|
7248
7360
|
{
|
|
7249
7361
|
className: `flex flex-row items-center gap-x-1 ${selectedIdList.findIndex(
|
|
7250
7362
|
(selectedId) => selectedId === option.id
|
|
7251
7363
|
) > -1 ? "opacity-100" : "opacity-50"}`,
|
|
7252
7364
|
children: [
|
|
7253
|
-
/* @__PURE__ */ (0,
|
|
7365
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
7254
7366
|
BaseImage_default,
|
|
7255
7367
|
{
|
|
7256
7368
|
src: selectedIdList.findIndex(
|
|
@@ -7260,7 +7372,7 @@ var SelectionCheckbox = ({
|
|
|
7260
7372
|
size: "small"
|
|
7261
7373
|
}
|
|
7262
7374
|
),
|
|
7263
|
-
/* @__PURE__ */ (0,
|
|
7375
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { children: option.text }) })
|
|
7264
7376
|
]
|
|
7265
7377
|
}
|
|
7266
7378
|
)
|
|
@@ -7271,7 +7383,7 @@ var SelectionCheckbox = ({
|
|
|
7271
7383
|
var SelectionCheckbox_default = SelectionCheckbox;
|
|
7272
7384
|
|
|
7273
7385
|
// src/components/tabs/SelectionTab.tsx
|
|
7274
|
-
var
|
|
7386
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
7275
7387
|
var SelectionTab = ({
|
|
7276
7388
|
optionList,
|
|
7277
7389
|
selectedId,
|
|
@@ -7281,7 +7393,7 @@ var SelectionTab = ({
|
|
|
7281
7393
|
textColor,
|
|
7282
7394
|
borderColor
|
|
7283
7395
|
}) => {
|
|
7284
|
-
return /* @__PURE__ */ (0,
|
|
7396
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap mb-2 text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
7285
7397
|
"div",
|
|
7286
7398
|
{
|
|
7287
7399
|
className: `${selectedId === option.id ? selectedTextColor ? selectedTextColor : "text-catchup-blue-500" : textColor ? textColor : "text-catchup-gray-300"} ${selectedId === option.id ? selectedBorderColor ? selectedBorderColor : "border-catchup-blue-500" : borderColor ? borderColor : "border-catchup-gray-50"} border-b-2 transition-all duration-300 p-3 cursor-pointer`,
|
|
@@ -7289,8 +7401,8 @@ var SelectionTab = ({
|
|
|
7289
7401
|
handleSelectOnClick(option.id);
|
|
7290
7402
|
},
|
|
7291
7403
|
children: [
|
|
7292
|
-
/* @__PURE__ */ (0,
|
|
7293
|
-
option.subTitle ? /* @__PURE__ */ (0,
|
|
7404
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-lg", children: option.title }),
|
|
7405
|
+
option.subTitle ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-md", children: option.subTitle }) : null
|
|
7294
7406
|
]
|
|
7295
7407
|
},
|
|
7296
7408
|
index
|
|
@@ -7299,20 +7411,20 @@ var SelectionTab = ({
|
|
|
7299
7411
|
var SelectionTab_default = SelectionTab;
|
|
7300
7412
|
|
|
7301
7413
|
// src/components/tabs/SelectionTabFill.tsx
|
|
7302
|
-
var
|
|
7414
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
7303
7415
|
var SelectionTabFill = ({
|
|
7304
7416
|
optionList,
|
|
7305
7417
|
selectedId,
|
|
7306
7418
|
handleSelectOnClick
|
|
7307
7419
|
}) => {
|
|
7308
|
-
return /* @__PURE__ */ (0,
|
|
7420
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "w-full flex flex-row bg-catchup-gray-50 gap-x-2 rounded-catchup-medium px-4 py-2 justify-center text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7309
7421
|
"div",
|
|
7310
7422
|
{
|
|
7311
7423
|
className: "cursor-pointer",
|
|
7312
7424
|
onClick: () => {
|
|
7313
7425
|
handleSelectOnClick(option.id);
|
|
7314
7426
|
},
|
|
7315
|
-
children: /* @__PURE__ */ (0,
|
|
7427
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7316
7428
|
"p",
|
|
7317
7429
|
{
|
|
7318
7430
|
className: `${selectedId === option.id ? "text-catchup-white bg-catchup-blue-500" : "text-catchup-gray-300"} transition-all duration-300 rounded-catchup-medium px-2 py-1`,
|
|
@@ -7326,57 +7438,57 @@ var SelectionTabFill = ({
|
|
|
7326
7438
|
var SelectionTabFill_default = SelectionTabFill;
|
|
7327
7439
|
|
|
7328
7440
|
// src/components/labels/ActivityTemplateLabel.tsx
|
|
7329
|
-
var
|
|
7441
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
7330
7442
|
var ActivityTemplateLabel = ({
|
|
7331
7443
|
title,
|
|
7332
7444
|
font
|
|
7333
7445
|
}) => {
|
|
7334
|
-
return /* @__PURE__ */ (0,
|
|
7335
|
-
/* @__PURE__ */ (0,
|
|
7336
|
-
/* @__PURE__ */ (0,
|
|
7446
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
|
|
7447
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(BaseImage_default, { src: "/icons/activity.webp", alt: "label", size: "xsmall" }),
|
|
7448
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: font ? font : "text-sm", children: title })
|
|
7337
7449
|
] }) });
|
|
7338
7450
|
};
|
|
7339
7451
|
var ActivityTemplateLabel_default = ActivityTemplateLabel;
|
|
7340
7452
|
|
|
7341
7453
|
// src/components/labels/BrandLabel.tsx
|
|
7342
|
-
var
|
|
7454
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
7343
7455
|
var BrandLabel = ({ title, icon, font }) => {
|
|
7344
|
-
return /* @__PURE__ */ (0,
|
|
7345
|
-
icon ? icon : /* @__PURE__ */ (0,
|
|
7346
|
-
/* @__PURE__ */ (0,
|
|
7456
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
|
|
7457
|
+
icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(BaseImage_default, { src: "/icons/brand-label.webp", alt: "label", size: "xsmall" }),
|
|
7458
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: font ? font : "text-sm", children: title })
|
|
7347
7459
|
] }) });
|
|
7348
7460
|
};
|
|
7349
7461
|
var BrandLabel_default = BrandLabel;
|
|
7350
7462
|
|
|
7351
7463
|
// src/components/labels/CoterieLabel.tsx
|
|
7352
|
-
var
|
|
7464
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
7353
7465
|
var CoterieLabel = ({ title, font }) => {
|
|
7354
|
-
return /* @__PURE__ */ (0,
|
|
7466
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: font ? font : "text-sm", children: title }) });
|
|
7355
7467
|
};
|
|
7356
7468
|
var CoterieLabel_default = CoterieLabel;
|
|
7357
7469
|
|
|
7358
7470
|
// src/components/labels/GradeLabel.tsx
|
|
7359
|
-
var
|
|
7471
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
7360
7472
|
var GradeLabel = ({ title, font }) => {
|
|
7361
|
-
return /* @__PURE__ */ (0,
|
|
7473
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: font ? font : "text-sm", children: title }) });
|
|
7362
7474
|
};
|
|
7363
7475
|
var GradeLabel_default = GradeLabel;
|
|
7364
7476
|
|
|
7365
7477
|
// src/components/labels/OutcomeLabel.tsx
|
|
7366
|
-
var
|
|
7478
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
7367
7479
|
var OutcomeLabel = ({ title, font }) => {
|
|
7368
|
-
return /* @__PURE__ */ (0,
|
|
7369
|
-
/* @__PURE__ */ (0,
|
|
7370
|
-
/* @__PURE__ */ (0,
|
|
7480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
|
|
7481
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(BaseImage_default, { src: "/icons/category.webp", alt: "label", size: "xsmall" }),
|
|
7482
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: font ? font : "text-sm", children: title })
|
|
7371
7483
|
] }) });
|
|
7372
7484
|
};
|
|
7373
7485
|
var OutcomeLabel_default = OutcomeLabel;
|
|
7374
7486
|
|
|
7375
7487
|
// src/components/labels/PersonalLabel.tsx
|
|
7376
|
-
var
|
|
7488
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
7377
7489
|
var PersonalLabel = ({ title, icon, font }) => {
|
|
7378
|
-
return /* @__PURE__ */ (0,
|
|
7379
|
-
icon ? icon : /* @__PURE__ */ (0,
|
|
7490
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-personal-label-border bg-personal-label text-personal-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
|
|
7491
|
+
icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
7380
7492
|
BaseImage_default,
|
|
7381
7493
|
{
|
|
7382
7494
|
src: "/icons/personal-label.webp",
|
|
@@ -7384,16 +7496,16 @@ var PersonalLabel = ({ title, icon, font }) => {
|
|
|
7384
7496
|
size: "xsmall"
|
|
7385
7497
|
}
|
|
7386
7498
|
),
|
|
7387
|
-
/* @__PURE__ */ (0,
|
|
7499
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: font ? font : "text-sm", children: title })
|
|
7388
7500
|
] }) });
|
|
7389
7501
|
};
|
|
7390
7502
|
var PersonalLabel_default = PersonalLabel;
|
|
7391
7503
|
|
|
7392
7504
|
// src/components/labels/PublishingHouseLabel.tsx
|
|
7393
|
-
var
|
|
7505
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
7394
7506
|
var PublishingHouseLabel = ({ title, icon, font }) => {
|
|
7395
|
-
return /* @__PURE__ */ (0,
|
|
7396
|
-
icon ? icon : /* @__PURE__ */ (0,
|
|
7507
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
|
|
7508
|
+
icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
7397
7509
|
BaseImage_default,
|
|
7398
7510
|
{
|
|
7399
7511
|
src: "/icons/publishing-house-label.webp",
|
|
@@ -7401,79 +7513,79 @@ var PublishingHouseLabel = ({ title, icon, font }) => {
|
|
|
7401
7513
|
size: "xsmall"
|
|
7402
7514
|
}
|
|
7403
7515
|
),
|
|
7404
|
-
/* @__PURE__ */ (0,
|
|
7516
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: font ? font : "text-sm", children: title })
|
|
7405
7517
|
] }) });
|
|
7406
7518
|
};
|
|
7407
7519
|
var PublishingHouseLabel_default = PublishingHouseLabel;
|
|
7408
7520
|
|
|
7409
7521
|
// src/components/labels/ActivityLabel.tsx
|
|
7410
|
-
var
|
|
7522
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
7411
7523
|
var ActivityLabel = ({ title, font }) => {
|
|
7412
|
-
return /* @__PURE__ */ (0,
|
|
7524
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: font ? font : "text-sm", children: title }) });
|
|
7413
7525
|
};
|
|
7414
7526
|
var ActivityLabel_default = ActivityLabel;
|
|
7415
7527
|
|
|
7416
7528
|
// src/components/infos/InfoWithText.tsx
|
|
7417
|
-
var
|
|
7529
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
7418
7530
|
var InfoWithText = (props) => {
|
|
7419
7531
|
const { value } = props;
|
|
7420
|
-
return /* @__PURE__ */ (0,
|
|
7421
|
-
/* @__PURE__ */ (0,
|
|
7422
|
-
/* @__PURE__ */ (0,
|
|
7532
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "w-full flex flex-row items-center gap-x-2 my-2", children: [
|
|
7533
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(BaseImage_default, { src: "/icons/info.webp", alt: "info", size: "small" }),
|
|
7534
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "", children: value }) })
|
|
7423
7535
|
] });
|
|
7424
7536
|
};
|
|
7425
7537
|
var InfoWithText_default = InfoWithText;
|
|
7426
7538
|
|
|
7427
7539
|
// src/components/texts/InputWithSpecialExpression.tsx
|
|
7428
7540
|
var import_react_katex12 = require("react-katex");
|
|
7429
|
-
var
|
|
7541
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
7430
7542
|
var InputWithSpecialExpression = ({
|
|
7431
7543
|
value,
|
|
7432
7544
|
showSpecialOnly
|
|
7433
7545
|
}) => {
|
|
7434
7546
|
const inputWithSpecialExpressionList = constructInputWithSpecialExpressionList(value);
|
|
7435
|
-
return showSpecialOnly ? inputWithSpecialExpressionList.length > 1 ? /* @__PURE__ */ (0,
|
|
7547
|
+
return showSpecialOnly ? inputWithSpecialExpressionList.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "m-2", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
7436
7548
|
"span",
|
|
7437
7549
|
{
|
|
7438
7550
|
className: `${inputPart.isBold ? "font-semibold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
7439
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
7551
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-lg", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_katex12.InlineMath, { math: inputPart.value }, index) }) : inputPart.value
|
|
7440
7552
|
}
|
|
7441
|
-
)) }) }) : null : /* @__PURE__ */ (0,
|
|
7553
|
+
)) }) }) : null : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "m-2", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
7442
7554
|
"span",
|
|
7443
7555
|
{
|
|
7444
7556
|
className: `${inputPart.isBold ? "font-semibold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
|
|
7445
|
-
children: inputPart.isEquation ? /* @__PURE__ */ (0,
|
|
7557
|
+
children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-lg", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_react_katex12.InlineMath, { math: inputPart.value }, index) }) : inputPart.value
|
|
7446
7558
|
}
|
|
7447
7559
|
)) }) });
|
|
7448
7560
|
};
|
|
7449
7561
|
var InputWithSpecialExpression_default = InputWithSpecialExpression;
|
|
7450
7562
|
|
|
7451
7563
|
// src/components/titles/BaseTitle.tsx
|
|
7452
|
-
var
|
|
7564
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
7453
7565
|
var BaseTitle = ({
|
|
7454
7566
|
title,
|
|
7455
7567
|
totalItemCount,
|
|
7456
7568
|
itemName,
|
|
7457
7569
|
description
|
|
7458
7570
|
}) => {
|
|
7459
|
-
return /* @__PURE__ */ (0,
|
|
7460
|
-
/* @__PURE__ */ (0,
|
|
7571
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-y-2", children: [
|
|
7572
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { className: "text-2xl font-medium", children: [
|
|
7461
7573
|
title,
|
|
7462
|
-
totalItemCount && itemName ? /* @__PURE__ */ (0,
|
|
7574
|
+
totalItemCount && itemName ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "p-2 text-base text-catchup-blue-600 border border-catchup-blue-300 rounded-catchup-3xlarge mx-2 bg-catchup-blue-100", children: [
|
|
7463
7575
|
totalItemCount,
|
|
7464
7576
|
" ",
|
|
7465
7577
|
itemName
|
|
7466
7578
|
] }) : null
|
|
7467
7579
|
] }),
|
|
7468
|
-
description ? /* @__PURE__ */ (0,
|
|
7580
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "", children: description }) : null
|
|
7469
7581
|
] });
|
|
7470
7582
|
};
|
|
7471
7583
|
var BaseTitle_default = BaseTitle;
|
|
7472
7584
|
|
|
7473
7585
|
// src/components/titles/SubTitle.tsx
|
|
7474
|
-
var
|
|
7586
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
7475
7587
|
var SubTitle = ({ title }) => {
|
|
7476
|
-
return /* @__PURE__ */ (0,
|
|
7588
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-xl font-medium text-catchup-darker-blue", children: title });
|
|
7477
7589
|
};
|
|
7478
7590
|
var SubTitle_default = SubTitle;
|
|
7479
7591
|
|
|
@@ -9876,33 +9988,6 @@ var constructCombinedOutcomeActivityScoreMapFromCombinedReport = (combinedCatchx
|
|
|
9876
9988
|
return combinedOutcomeActivityScoreMap;
|
|
9877
9989
|
};
|
|
9878
9990
|
|
|
9879
|
-
// src/utilization/StorageUtilization.ts
|
|
9880
|
-
var convertDataURLtoFile = (dataurl, filename) => {
|
|
9881
|
-
var arr = dataurl.split(","), mime = (arr[0].match(/:(.*?);/) || [])[1], bstr = atob(arr[arr.length - 1]), n = bstr.length, u8arr = new Uint8Array(n);
|
|
9882
|
-
while (n--) {
|
|
9883
|
-
u8arr[n] = bstr.charCodeAt(n);
|
|
9884
|
-
}
|
|
9885
|
-
return new File([u8arr], filename, { type: mime });
|
|
9886
|
-
};
|
|
9887
|
-
var retrieveDocumentTypeFromAcceptedFormat = (format) => {
|
|
9888
|
-
if (format === "application/pdf") {
|
|
9889
|
-
return "PDF";
|
|
9890
|
-
} else if (format === "image/jpeg" || format === "image/png" || format === "image/jpg" || format === "image/webp") {
|
|
9891
|
-
return "IMAGE";
|
|
9892
|
-
} else if (format === "audio/mp3") {
|
|
9893
|
-
return "AUDIO";
|
|
9894
|
-
}
|
|
9895
|
-
};
|
|
9896
|
-
var retrieveDocumentTypeFromExtension = (format) => {
|
|
9897
|
-
if (format === "pdf") {
|
|
9898
|
-
return "PDF";
|
|
9899
|
-
} else if (format === "jpeg" || format === "png" || format === "jpg" || format === "webp") {
|
|
9900
|
-
return "IMAGE";
|
|
9901
|
-
} else if (format === "mp3") {
|
|
9902
|
-
return "AUDIO";
|
|
9903
|
-
}
|
|
9904
|
-
};
|
|
9905
|
-
|
|
9906
9991
|
// src/utilization/TokenUtilization.ts
|
|
9907
9992
|
var retrieveTokenUsageTypeOptionList = () => {
|
|
9908
9993
|
return [
|
|
@@ -10145,6 +10230,7 @@ var retrieveActivityMethodologyOptionList = () => {
|
|
|
10145
10230
|
BaseLoading,
|
|
10146
10231
|
BaseLoadingWithText,
|
|
10147
10232
|
BaseModal,
|
|
10233
|
+
BasePDF,
|
|
10148
10234
|
BaseTitle,
|
|
10149
10235
|
BlueVerticalDividerLine,
|
|
10150
10236
|
BrandLabel,
|