catchup-library-web 2.0.7 → 2.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +26 -27
- package/dist/index.d.ts +26 -27
- package/dist/index.js +287 -527
- package/dist/index.mjs +287 -526
- package/package.json +1 -1
- package/src/components/activities/ActivityPreviewByAnswerData.tsx +118 -121
- package/src/components/activities/ActivityPreviewByData.tsx +10 -10
- package/src/components/activities/DropdownActivityContent.tsx +9 -35
- package/src/components/activities/FillInTheBlanksActivityContent.tsx +9 -34
- package/src/components/activities/GroupingActivityContent.tsx +4 -8
- package/src/components/activities/MCMAActivityContent.tsx +8 -8
- package/src/components/activities/MCSAActivityContent.tsx +8 -8
- package/src/components/activities/MatchingActivityContent.tsx +4 -8
- package/src/components/activities/OpenEndedActivityContent.tsx +4 -8
- package/src/components/activities/OrderingActivityContent.tsx +4 -8
- package/src/components/activities/TrueFalseActivityContent.tsx +4 -12
- package/src/components/activities/material-contents/DropdownActivityMaterialContent.tsx +9 -19
- package/src/components/activities/material-contents/FillInTheBlanksActivityMaterialContent.tsx +9 -24
- package/src/components/activities/material-contents/GroupingActivityMaterialContent.tsx +7 -18
- package/src/components/activities/material-contents/MCMAActivityMaterialContent.tsx +2 -10
- package/src/components/activities/material-contents/MCSAActivityMaterialContent.tsx +2 -10
- package/src/components/activities/material-contents/MatchingActivityMaterialContent.tsx +7 -17
- package/src/components/activities/material-contents/OpenEndedActivityMaterialContent.tsx +2 -21
- package/src/components/activities/material-contents/OrderingActivityMaterialContent.tsx +4 -16
- package/src/components/activities/material-contents/TrueFalseActivityMaterialContent.tsx +4 -27
- package/src/properties/ActivityProperties.ts +21 -20
- package/src/utilization/CatchtivityUtilization.ts +55 -147
package/dist/index.mjs
CHANGED
|
@@ -2127,45 +2127,29 @@ var retrieveDefaultOpenEndedMap = () => {
|
|
|
2127
2127
|
var retrieveDefaultTrueFalseMap = () => {
|
|
2128
2128
|
return { trueList: [], falseList: [] };
|
|
2129
2129
|
};
|
|
2130
|
-
var retrieveCurrentDefaultDataMap = (
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
if (
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
);
|
|
2139
|
-
} else if (
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
);
|
|
2143
|
-
} else if (
|
|
2144
|
-
|
|
2145
|
-
activityData.MCSAMaterialMap
|
|
2146
|
-
);
|
|
2147
|
-
} else if (activityTemplate.type === "MCMA") {
|
|
2148
|
-
defaultDataMap.answerMap = retrieveDefaultMCMAMap(
|
|
2149
|
-
activityData.MCMAMaterialMap
|
|
2150
|
-
);
|
|
2151
|
-
} else if (activityTemplate.type === "MATCHING") {
|
|
2152
|
-
defaultDataMap.answerMap = retrieveDefaultMatchingMap(
|
|
2153
|
-
activityData.matchingMaterialMap
|
|
2154
|
-
);
|
|
2155
|
-
} else if (activityTemplate.type === "GROUPING") {
|
|
2156
|
-
defaultDataMap.answerMap = retrieveDefaultGroupingMap(
|
|
2157
|
-
activityData.groupingMaterialMap
|
|
2158
|
-
);
|
|
2159
|
-
} else if (activityTemplate.type === "FILL_IN_THE_BLANKS") {
|
|
2160
|
-
defaultDataMap.answerMap = retrieveDefaultFillInTheBlanksMap(
|
|
2130
|
+
var retrieveCurrentDefaultDataMap = (activityTemplateType, activityData) => {
|
|
2131
|
+
if (activityTemplateType === "ORDERING") {
|
|
2132
|
+
return retrieveDefaultOrderingDataMap(activityData.orderingMaterialMap);
|
|
2133
|
+
} else if (activityTemplateType === "DROPDOWN") {
|
|
2134
|
+
return retrieveDefaultDropdownMap(activityData.dropdownMaterialMap);
|
|
2135
|
+
} else if (activityTemplateType === "MCSA") {
|
|
2136
|
+
return retrieveDefaultMCSAMap(activityData.MCSAMaterialMap);
|
|
2137
|
+
} else if (activityTemplateType === "MCMA") {
|
|
2138
|
+
return retrieveDefaultMCMAMap(activityData.MCMAMaterialMap);
|
|
2139
|
+
} else if (activityTemplateType === "MATCHING") {
|
|
2140
|
+
return retrieveDefaultMatchingMap(activityData.matchingMaterialMap);
|
|
2141
|
+
} else if (activityTemplateType === "GROUPING") {
|
|
2142
|
+
return retrieveDefaultGroupingMap(activityData.groupingMaterialMap);
|
|
2143
|
+
} else if (activityTemplateType === "FILL_IN_THE_BLANKS") {
|
|
2144
|
+
return retrieveDefaultFillInTheBlanksMap(
|
|
2161
2145
|
activityData.fillInTheBlanksMaterialMap
|
|
2162
2146
|
);
|
|
2163
|
-
} else if (
|
|
2164
|
-
|
|
2165
|
-
} else if (
|
|
2166
|
-
|
|
2147
|
+
} else if (activityTemplateType === "OPEN_ENDED") {
|
|
2148
|
+
return retrieveDefaultOpenEndedMap();
|
|
2149
|
+
} else if (activityTemplateType === "TRUE_FALSE") {
|
|
2150
|
+
return retrieveDefaultTrueFalseMap();
|
|
2167
2151
|
}
|
|
2168
|
-
return
|
|
2152
|
+
return {};
|
|
2169
2153
|
};
|
|
2170
2154
|
var constructActivityAnswerMap = (activityTemplate, activityData) => {
|
|
2171
2155
|
if (activityTemplate.type === "ORDERING") {
|
|
@@ -2197,63 +2181,11 @@ var constructActivityAnswerMap = (activityTemplate, activityData) => {
|
|
|
2197
2181
|
} else if (activityTemplate.type === "TRUE_FALSE") {
|
|
2198
2182
|
activityData.trueFalseMaterialMap = { trueList: [], falseList: [] };
|
|
2199
2183
|
}
|
|
2200
|
-
return retrieveCurrentDefaultDataMap(activityTemplate, activityData);
|
|
2184
|
+
return retrieveCurrentDefaultDataMap(activityTemplate.type, activityData);
|
|
2201
2185
|
};
|
|
2202
2186
|
var ignoreMathematicalExpression = (inputText) => {
|
|
2203
2187
|
return inputText.replaceAll("{", "").replaceAll("}", "").replaceAll("_", "").replaceAll("^", "").replaceAll("\\frac", "").replaceAll("\\text", "").replaceAll("\\sqrt", "");
|
|
2204
2188
|
};
|
|
2205
|
-
var checkIfAnswerIsEmpty = (answer) => {
|
|
2206
|
-
const { data } = answer;
|
|
2207
|
-
if (data && data.length > 0) {
|
|
2208
|
-
const foundAnswer = data[0];
|
|
2209
|
-
const { type, answerMap } = foundAnswer;
|
|
2210
|
-
if (type === "ORDERING") {
|
|
2211
|
-
return false;
|
|
2212
|
-
} else if (type === "DROPDOWN") {
|
|
2213
|
-
for (const key of Object.keys(answerMap)) {
|
|
2214
|
-
if (answerMap[key] !== "DEFAULT_OPTION") {
|
|
2215
|
-
return false;
|
|
2216
|
-
}
|
|
2217
|
-
}
|
|
2218
|
-
} else if (type === "MCSA") {
|
|
2219
|
-
const key = Object.keys(answerMap)[0];
|
|
2220
|
-
if (answerMap[key] !== "ANSWER_KEY") {
|
|
2221
|
-
return false;
|
|
2222
|
-
}
|
|
2223
|
-
} else if (type === "MCMA") {
|
|
2224
|
-
const key = Object.keys(answerMap)[0];
|
|
2225
|
-
if (answerMap[key].length !== 0) {
|
|
2226
|
-
return false;
|
|
2227
|
-
}
|
|
2228
|
-
} else if (type === "MATCHING") {
|
|
2229
|
-
for (const key of Object.keys(answerMap)) {
|
|
2230
|
-
if (answerMap[key]) {
|
|
2231
|
-
return false;
|
|
2232
|
-
}
|
|
2233
|
-
}
|
|
2234
|
-
} else if (type === "GROUPING") {
|
|
2235
|
-
for (const key of Object.keys(answerMap)) {
|
|
2236
|
-
if (answerMap[key].length !== 0) {
|
|
2237
|
-
return false;
|
|
2238
|
-
}
|
|
2239
|
-
}
|
|
2240
|
-
} else if (type === "FILL_IN_THE_BLANKS") {
|
|
2241
|
-
for (const key of Object.keys(answerMap)) {
|
|
2242
|
-
if (answerMap[key]) {
|
|
2243
|
-
return false;
|
|
2244
|
-
}
|
|
2245
|
-
}
|
|
2246
|
-
} else if (type === "OPEN_ENDED") {
|
|
2247
|
-
const key = Object.keys(answerMap)[0];
|
|
2248
|
-
if (answerMap[key]) {
|
|
2249
|
-
return false;
|
|
2250
|
-
}
|
|
2251
|
-
} else if (type === "TRUE_FALSE") {
|
|
2252
|
-
return answerMap.trueList.length === 0 && answerMap.falseList.length === 0;
|
|
2253
|
-
}
|
|
2254
|
-
}
|
|
2255
|
-
return true;
|
|
2256
|
-
};
|
|
2257
2189
|
var constructActivityAnswerStateList = (answerList, activityList) => {
|
|
2258
2190
|
const stateList = [];
|
|
2259
2191
|
activityList.forEach((activity, index) => {
|
|
@@ -2267,7 +2199,7 @@ var constructActivityAnswerStateList = (answerList, activityList) => {
|
|
|
2267
2199
|
};
|
|
2268
2200
|
var retrieveActivityAnswerFromAnswerList = (answerList, activity) => {
|
|
2269
2201
|
return answerList.find(
|
|
2270
|
-
(answer) => parseFloat(answer.
|
|
2202
|
+
(answer) => parseFloat(answer.activityId) === parseFloat(activity.id)
|
|
2271
2203
|
);
|
|
2272
2204
|
};
|
|
2273
2205
|
var checkActivityAnswerState = (answerList, activity) => {
|
|
@@ -2449,7 +2381,7 @@ var retrieveClockTimeLeft = (type, value, durationType, durationInMinutes, activ
|
|
|
2449
2381
|
var retrieveEachTimeSpentInSeconds = (activityProgressList, activity) => {
|
|
2450
2382
|
if (!activityProgressList || !activity) return 0;
|
|
2451
2383
|
const foundActivityProgress = activityProgressList.find(
|
|
2452
|
-
(activityProgress) => parseFloat(activityProgress.
|
|
2384
|
+
(activityProgress) => parseFloat(activityProgress.activityId) === parseFloat(activity.id)
|
|
2453
2385
|
);
|
|
2454
2386
|
if (foundActivityProgress) {
|
|
2455
2387
|
return foundActivityProgress.timeSpent / 1e3;
|
|
@@ -2819,82 +2751,63 @@ var constructActivityData = (activityTemplateType, contentMap, bodyMap, material
|
|
|
2819
2751
|
return constructedData;
|
|
2820
2752
|
};
|
|
2821
2753
|
var constructAnswerBasedOnData = (data) => {
|
|
2822
|
-
const answer = { data: [] };
|
|
2823
2754
|
if (Object.keys(data).find((dataKey) => dataKey === "orderingMaterialMap")) {
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
JSON.parse(JSON.stringify(data))
|
|
2828
|
-
)
|
|
2755
|
+
return constructActivityAnswerMap(
|
|
2756
|
+
{ type: "ORDERING" },
|
|
2757
|
+
JSON.parse(JSON.stringify(data))
|
|
2829
2758
|
);
|
|
2830
2759
|
}
|
|
2831
2760
|
if (Object.keys(data).find((dataKey) => dataKey === "dropdownMaterialMap")) {
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
JSON.parse(JSON.stringify(data))
|
|
2836
|
-
)
|
|
2761
|
+
return constructActivityAnswerMap(
|
|
2762
|
+
{ type: "DROPDOWN" },
|
|
2763
|
+
JSON.parse(JSON.stringify(data))
|
|
2837
2764
|
);
|
|
2838
2765
|
}
|
|
2839
2766
|
if (Object.keys(data).find((dataKey) => dataKey === "MCSAMaterialMap")) {
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
JSON.parse(JSON.stringify(data))
|
|
2844
|
-
)
|
|
2767
|
+
return constructActivityAnswerMap(
|
|
2768
|
+
{ type: "MCSA" },
|
|
2769
|
+
JSON.parse(JSON.stringify(data))
|
|
2845
2770
|
);
|
|
2846
2771
|
}
|
|
2847
2772
|
if (Object.keys(data).find((dataKey) => dataKey === "MCMAMaterialMap")) {
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
JSON.parse(JSON.stringify(data))
|
|
2852
|
-
)
|
|
2773
|
+
return constructActivityAnswerMap(
|
|
2774
|
+
{ type: "MCMA" },
|
|
2775
|
+
JSON.parse(JSON.stringify(data))
|
|
2853
2776
|
);
|
|
2854
2777
|
}
|
|
2855
2778
|
if (Object.keys(data).find((dataKey) => dataKey === "matchingMaterialMap")) {
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
JSON.parse(JSON.stringify(data))
|
|
2860
|
-
)
|
|
2779
|
+
return constructActivityAnswerMap(
|
|
2780
|
+
{ type: "MATCHING" },
|
|
2781
|
+
JSON.parse(JSON.stringify(data))
|
|
2861
2782
|
);
|
|
2862
2783
|
}
|
|
2863
2784
|
if (Object.keys(data).find((dataKey) => dataKey === "groupingMaterialMap")) {
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
JSON.parse(JSON.stringify(data))
|
|
2868
|
-
)
|
|
2785
|
+
return constructActivityAnswerMap(
|
|
2786
|
+
{ type: "GROUPING" },
|
|
2787
|
+
JSON.parse(JSON.stringify(data))
|
|
2869
2788
|
);
|
|
2870
2789
|
}
|
|
2871
2790
|
if (Object.keys(data).find(
|
|
2872
2791
|
(dataKey) => dataKey === "fillInTheBlanksMaterialMap"
|
|
2873
2792
|
)) {
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
JSON.parse(JSON.stringify(data))
|
|
2878
|
-
)
|
|
2793
|
+
return constructActivityAnswerMap(
|
|
2794
|
+
{ type: "FILL_IN_THE_BLANKS" },
|
|
2795
|
+
JSON.parse(JSON.stringify(data))
|
|
2879
2796
|
);
|
|
2880
2797
|
}
|
|
2881
2798
|
if (Object.keys(data).find((dataKey) => dataKey === "openEndedMaterialMap")) {
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
JSON.parse(JSON.stringify(data))
|
|
2886
|
-
)
|
|
2799
|
+
return constructActivityAnswerMap(
|
|
2800
|
+
{ type: "OPEN_ENDED" },
|
|
2801
|
+
JSON.parse(JSON.stringify(data))
|
|
2887
2802
|
);
|
|
2888
2803
|
}
|
|
2889
2804
|
if (Object.keys(data).find((dataKey) => dataKey === "trueFalseMaterialMap")) {
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
JSON.parse(JSON.stringify(data))
|
|
2894
|
-
)
|
|
2805
|
+
return constructActivityAnswerMap(
|
|
2806
|
+
{ type: "TRUE_FALSE" },
|
|
2807
|
+
JSON.parse(JSON.stringify(data))
|
|
2895
2808
|
);
|
|
2896
2809
|
}
|
|
2897
|
-
return
|
|
2810
|
+
return {};
|
|
2898
2811
|
};
|
|
2899
2812
|
var constructActivityItemListBodyOnly = (bodyMap) => {
|
|
2900
2813
|
const itemList = [];
|
|
@@ -4445,7 +4358,7 @@ var ShowMaterialMediaByContentType_default = ShowMaterialMediaByContentType;
|
|
|
4445
4358
|
import { jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4446
4359
|
var DropdownActivityMaterialContent = ({
|
|
4447
4360
|
uniqueValue,
|
|
4448
|
-
|
|
4361
|
+
answerMap,
|
|
4449
4362
|
materialMap,
|
|
4450
4363
|
contentMap,
|
|
4451
4364
|
checkCanAnswerQuestion,
|
|
@@ -4456,27 +4369,16 @@ var DropdownActivityMaterialContent = ({
|
|
|
4456
4369
|
const [updated, setUpdated] = useState15(false);
|
|
4457
4370
|
useEffect6(() => {
|
|
4458
4371
|
if (!showCorrectAnswer) return;
|
|
4459
|
-
|
|
4460
|
-
(answerData) => answerData.type === "DROPDOWN"
|
|
4461
|
-
);
|
|
4462
|
-
if (foundAnswer.answerMap.length === 0) return;
|
|
4463
|
-
if (Object.keys(materialMap).length === 0) return;
|
|
4464
|
-
foundAnswer.answerMap = Object.keys(materialMap).map(
|
|
4372
|
+
answerMap = Object.keys(materialMap).map(
|
|
4465
4373
|
(materialMapKey, index) => Object.keys(materialMap[materialMapKey])[0]
|
|
4466
4374
|
);
|
|
4467
|
-
onChange(
|
|
4375
|
+
onChange(answerMap, 0, Object.keys(materialMap[0])[0]);
|
|
4468
4376
|
setUpdated(true);
|
|
4469
4377
|
}, [showCorrectAnswer]);
|
|
4470
4378
|
useEffect6(() => {
|
|
4471
4379
|
if (!updated) return;
|
|
4472
4380
|
setUpdated(false);
|
|
4473
4381
|
}, [updated]);
|
|
4474
|
-
const retrieveAnswerMap = () => {
|
|
4475
|
-
const foundIndex = answer.data.findIndex(
|
|
4476
|
-
(answerData) => answerData.type === "DROPDOWN"
|
|
4477
|
-
);
|
|
4478
|
-
return answer.data[foundIndex].answerMap;
|
|
4479
|
-
};
|
|
4480
4382
|
const checkAnswerState = (correctAnswer, learnerAnswer) => {
|
|
4481
4383
|
if (!isPreview) return null;
|
|
4482
4384
|
if (correctAnswer === learnerAnswer) {
|
|
@@ -4484,7 +4386,6 @@ var DropdownActivityMaterialContent = ({
|
|
|
4484
4386
|
}
|
|
4485
4387
|
return "INCORRECT";
|
|
4486
4388
|
};
|
|
4487
|
-
const answerMap = retrieveAnswerMap();
|
|
4488
4389
|
return /* @__PURE__ */ jsxs15("div", { className: "flex flex-row flex-wrap items-center", children: [
|
|
4489
4390
|
/* @__PURE__ */ jsx25("div", { className: "hidden md:block", children: /* @__PURE__ */ jsx25("span", { className: "font-semibold text-xl opacity-60", children: i18n_default.t("please_select_dropdown_text") }) }),
|
|
4490
4391
|
/* @__PURE__ */ jsx25("div", { className: "hidden md:contents", children: /* @__PURE__ */ jsx25(DividerLine_default, {}) }),
|
|
@@ -4526,7 +4427,11 @@ var DropdownActivityMaterialContent = ({
|
|
|
4526
4427
|
value: materialOption
|
|
4527
4428
|
})),
|
|
4528
4429
|
onChange: (e) => {
|
|
4529
|
-
onChange(
|
|
4430
|
+
onChange(
|
|
4431
|
+
answerMap,
|
|
4432
|
+
materialKey,
|
|
4433
|
+
e.target.value
|
|
4434
|
+
);
|
|
4530
4435
|
}
|
|
4531
4436
|
}
|
|
4532
4437
|
) }) : /* @__PURE__ */ jsx25(
|
|
@@ -4556,7 +4461,7 @@ var DropdownActivityMaterialContent = ({
|
|
|
4556
4461
|
) }, index2),
|
|
4557
4462
|
onClick: (e) => {
|
|
4558
4463
|
onChange(
|
|
4559
|
-
|
|
4464
|
+
answerMap,
|
|
4560
4465
|
materialKey,
|
|
4561
4466
|
e.target.currentSrc
|
|
4562
4467
|
);
|
|
@@ -4600,7 +4505,7 @@ var DropdownActivityMaterialContent_default = DropdownActivityMaterialContent;
|
|
|
4600
4505
|
import { useState as useState16, useEffect as useEffect7 } from "react";
|
|
4601
4506
|
import { jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
4602
4507
|
var DropdownActivityContent = ({
|
|
4603
|
-
|
|
4508
|
+
answerMap,
|
|
4604
4509
|
data,
|
|
4605
4510
|
canAnswerQuestion,
|
|
4606
4511
|
changeAnswer,
|
|
@@ -4611,35 +4516,15 @@ var DropdownActivityContent = ({
|
|
|
4611
4516
|
const contentMap = parseContentMapFromData(data);
|
|
4612
4517
|
const dropdownBodyMap = parseBodyMapFromData(data, "DROPDOWN");
|
|
4613
4518
|
const dropdownMaterialMap = parseMaterialMapFromData(data, "DROPDOWN");
|
|
4614
|
-
const [currentAnswerMap, setCurrentAnswerMap] = useState16(
|
|
4615
|
-
return retrieveCurrentAnswerMap();
|
|
4616
|
-
});
|
|
4617
|
-
function retrieveCurrentAnswerMap() {
|
|
4618
|
-
let foundIndex = answer.data.findIndex(
|
|
4619
|
-
(answerData) => answerData.type === "DROPDOWN"
|
|
4620
|
-
);
|
|
4621
|
-
return answer.data[foundIndex].answerMap;
|
|
4622
|
-
}
|
|
4519
|
+
const [currentAnswerMap, setCurrentAnswerMap] = useState16(answerMap);
|
|
4623
4520
|
useEffect7(() => {
|
|
4624
|
-
setCurrentAnswerMap(
|
|
4625
|
-
}, [
|
|
4626
|
-
const handleDropdownAnswerOnChange = (
|
|
4521
|
+
setCurrentAnswerMap(answerMap);
|
|
4522
|
+
}, [answerMap]);
|
|
4523
|
+
const handleDropdownAnswerOnChange = (answerMap2, key, value) => {
|
|
4627
4524
|
if (isPreview) return;
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
return __spreadProps(__spreadValues({}, item), {
|
|
4632
|
-
answerMap: __spreadProps(__spreadValues({}, item.answerMap), {
|
|
4633
|
-
[key]: value
|
|
4634
|
-
})
|
|
4635
|
-
});
|
|
4636
|
-
}
|
|
4637
|
-
return item;
|
|
4638
|
-
})
|
|
4639
|
-
});
|
|
4640
|
-
const newAnswerMap = __spreadProps(__spreadValues({}, currentAnswerMap), { [key]: value });
|
|
4641
|
-
setCurrentAnswerMap(newAnswerMap);
|
|
4642
|
-
changeAnswer(newAnswer);
|
|
4525
|
+
answerMap2 = __spreadProps(__spreadValues({}, currentAnswerMap), { [key]: value });
|
|
4526
|
+
setCurrentAnswerMap(answerMap2);
|
|
4527
|
+
changeAnswer(answerMap2);
|
|
4643
4528
|
};
|
|
4644
4529
|
return /* @__PURE__ */ jsxs16("div", { className: "flex flex-row flex-wrap", children: [
|
|
4645
4530
|
/* @__PURE__ */ jsx26("div", { className: `${isFullScreen ? "w-full" : "w-full md:w-[60%]"}`, children: /* @__PURE__ */ jsx26(
|
|
@@ -4657,7 +4542,7 @@ var DropdownActivityContent = ({
|
|
|
4657
4542
|
DropdownActivityMaterialContent_default,
|
|
4658
4543
|
{
|
|
4659
4544
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
4660
|
-
|
|
4545
|
+
answerMap,
|
|
4661
4546
|
materialMap: dropdownMaterialMap,
|
|
4662
4547
|
contentMap,
|
|
4663
4548
|
checkCanAnswerQuestion: canAnswerQuestion,
|
|
@@ -4702,7 +4587,7 @@ var InputWithSpecialExpression_default = InputWithSpecialExpression;
|
|
|
4702
4587
|
import { jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4703
4588
|
var FillInTheBlanksActivityMaterialContent = ({
|
|
4704
4589
|
uniqueValue,
|
|
4705
|
-
|
|
4590
|
+
answerMap,
|
|
4706
4591
|
optionList,
|
|
4707
4592
|
materialMap,
|
|
4708
4593
|
contentMap,
|
|
@@ -4732,22 +4617,11 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4732
4617
|
}, [optionList]);
|
|
4733
4618
|
useEffect8(() => {
|
|
4734
4619
|
if (!showCorrectAnswer) return;
|
|
4735
|
-
|
|
4736
|
-
(answerData) => answerData.type === "FILL_IN_THE_BLANKS"
|
|
4737
|
-
);
|
|
4738
|
-
if (!foundAnswer || foundAnswer.answerMap.length === 0) return;
|
|
4739
|
-
if (Object.keys(materialMap).length === 0) return;
|
|
4740
|
-
foundAnswer.answerMap = Object.keys(materialMap).map(
|
|
4620
|
+
answerMap = Object.keys(materialMap).map(
|
|
4741
4621
|
(materialMapKey) => JSON.parse(materialMap[materialMapKey])[0]
|
|
4742
4622
|
);
|
|
4743
|
-
onChange(
|
|
4744
|
-
}, [showCorrectAnswer
|
|
4745
|
-
const retrieveAnswerMap = () => {
|
|
4746
|
-
const foundIndex = answer.data.findIndex(
|
|
4747
|
-
(answerData) => answerData.type === "FILL_IN_THE_BLANKS"
|
|
4748
|
-
);
|
|
4749
|
-
return answer.data[foundIndex].answerMap;
|
|
4750
|
-
};
|
|
4623
|
+
onChange(answerMap, 0, JSON.parse(materialMap[0])[0]);
|
|
4624
|
+
}, [showCorrectAnswer]);
|
|
4751
4625
|
const checkAnswerState = (correctAnswerList, learnerAnswer) => {
|
|
4752
4626
|
if (!isPreview) return null;
|
|
4753
4627
|
const foundIndex = correctAnswerList.findIndex(
|
|
@@ -4781,7 +4655,7 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4781
4655
|
};
|
|
4782
4656
|
const handleMouseUp = () => {
|
|
4783
4657
|
if (dropTargetIndex !== null && draggedOption !== null) {
|
|
4784
|
-
onChange(
|
|
4658
|
+
onChange(answerMap, dropTargetIndex, draggedOption);
|
|
4785
4659
|
}
|
|
4786
4660
|
setDraggedOption(null);
|
|
4787
4661
|
setDropTargetIndex(null);
|
|
@@ -4812,7 +4686,7 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4812
4686
|
};
|
|
4813
4687
|
const handleTouchEnd = () => {
|
|
4814
4688
|
if (dropTargetIndex !== null && draggedOption !== null) {
|
|
4815
|
-
onChange(
|
|
4689
|
+
onChange(answerMap, dropTargetIndex, draggedOption);
|
|
4816
4690
|
}
|
|
4817
4691
|
setDraggedOption(null);
|
|
4818
4692
|
setDropTargetIndex(null);
|
|
@@ -4825,11 +4699,10 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4825
4699
|
};
|
|
4826
4700
|
const handleDropZoneClick = (index) => {
|
|
4827
4701
|
if (selectedOption !== null) {
|
|
4828
|
-
onChange(
|
|
4702
|
+
onChange(answerMap, index, selectedOption);
|
|
4829
4703
|
setSelectedOption(null);
|
|
4830
4704
|
}
|
|
4831
4705
|
};
|
|
4832
|
-
const answerMap = retrieveAnswerMap();
|
|
4833
4706
|
return /* @__PURE__ */ jsxs17(
|
|
4834
4707
|
"div",
|
|
4835
4708
|
{
|
|
@@ -4968,7 +4841,7 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
4968
4841
|
onClick: (e) => {
|
|
4969
4842
|
if (answerMap[materialKey]) {
|
|
4970
4843
|
e.stopPropagation();
|
|
4971
|
-
onChange(
|
|
4844
|
+
onChange(answerMap, materialKey, "");
|
|
4972
4845
|
}
|
|
4973
4846
|
},
|
|
4974
4847
|
children: answerMap[materialKey] ? /* @__PURE__ */ jsx28(
|
|
@@ -5007,7 +4880,7 @@ var FillInTheBlanksActivityMaterialContent = ({
|
|
|
5007
4880
|
className: "flex-1 cursor-pointer",
|
|
5008
4881
|
onClick: (e) => {
|
|
5009
4882
|
e.stopPropagation();
|
|
5010
|
-
onChange(
|
|
4883
|
+
onChange(answerMap, materialKey, "");
|
|
5011
4884
|
},
|
|
5012
4885
|
children: /* @__PURE__ */ jsx28(
|
|
5013
4886
|
ShowMaterialMediaByContentType_default,
|
|
@@ -5043,7 +4916,7 @@ var FillInTheBlanksActivityMaterialContent_default = FillInTheBlanksActivityMate
|
|
|
5043
4916
|
import { useState as useState18, useEffect as useEffect9 } from "react";
|
|
5044
4917
|
import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
5045
4918
|
var FillInTheBlanksActivityContent = ({
|
|
5046
|
-
|
|
4919
|
+
answerMap,
|
|
5047
4920
|
data,
|
|
5048
4921
|
canAnswerQuestion,
|
|
5049
4922
|
changeAnswer,
|
|
@@ -5061,18 +4934,10 @@ var FillInTheBlanksActivityContent = ({
|
|
|
5061
4934
|
"FILL_IN_THE_BLANKS"
|
|
5062
4935
|
);
|
|
5063
4936
|
const fillInTheBlanksIncorrectList = data.fillInTheBlanksIncorrectList ? JSON.parse(data.fillInTheBlanksIncorrectList) : [];
|
|
5064
|
-
const [currentAnswerMap, setCurrentAnswerMap] = useState18(
|
|
5065
|
-
return retrieveCurrentAnswerMap();
|
|
5066
|
-
});
|
|
5067
|
-
function retrieveCurrentAnswerMap() {
|
|
5068
|
-
let foundIndex = answer.data.findIndex(
|
|
5069
|
-
(answerData) => answerData.type === "FILL_IN_THE_BLANKS"
|
|
5070
|
-
);
|
|
5071
|
-
return answer.data[foundIndex].answerMap;
|
|
5072
|
-
}
|
|
4937
|
+
const [currentAnswerMap, setCurrentAnswerMap] = useState18(answerMap);
|
|
5073
4938
|
useEffect9(() => {
|
|
5074
|
-
setCurrentAnswerMap(
|
|
5075
|
-
}, [
|
|
4939
|
+
setCurrentAnswerMap(answerMap);
|
|
4940
|
+
}, [answerMap]);
|
|
5076
4941
|
const constructAnswerOptionList = () => {
|
|
5077
4942
|
const optionList = [];
|
|
5078
4943
|
Object.keys(fillInTheBlanksMaterialMap).forEach((key) => {
|
|
@@ -5091,23 +4956,11 @@ var FillInTheBlanksActivityContent = ({
|
|
|
5091
4956
|
});
|
|
5092
4957
|
return optionList;
|
|
5093
4958
|
};
|
|
5094
|
-
const handleFillInTheBlanksAnswerOnChange = (
|
|
4959
|
+
const handleFillInTheBlanksAnswerOnChange = (answerMap2, key, value) => {
|
|
5095
4960
|
if (isPreview) return;
|
|
5096
|
-
|
|
5097
|
-
|
|
5098
|
-
|
|
5099
|
-
return __spreadProps(__spreadValues({}, item), {
|
|
5100
|
-
answerMap: __spreadProps(__spreadValues({}, item.answerMap), {
|
|
5101
|
-
[key]: value
|
|
5102
|
-
})
|
|
5103
|
-
});
|
|
5104
|
-
}
|
|
5105
|
-
return item;
|
|
5106
|
-
})
|
|
5107
|
-
});
|
|
5108
|
-
const newAnswerMap = __spreadProps(__spreadValues({}, currentAnswerMap), { [key]: value });
|
|
5109
|
-
setCurrentAnswerMap(newAnswerMap);
|
|
5110
|
-
changeAnswer(newAnswer);
|
|
4961
|
+
answerMap2 = __spreadProps(__spreadValues({}, currentAnswerMap), { [key]: value });
|
|
4962
|
+
setCurrentAnswerMap(answerMap2);
|
|
4963
|
+
changeAnswer(answerMap2);
|
|
5111
4964
|
};
|
|
5112
4965
|
return /* @__PURE__ */ jsxs18("div", { className: "flex flex-row flex-wrap", children: [
|
|
5113
4966
|
/* @__PURE__ */ jsx29("div", { className: `${isFullScreen ? "w-full" : "w-full md:w-[60%]"}`, children: /* @__PURE__ */ jsx29(
|
|
@@ -5125,7 +4978,7 @@ var FillInTheBlanksActivityContent = ({
|
|
|
5125
4978
|
FillInTheBlanksActivityMaterialContent_default,
|
|
5126
4979
|
{
|
|
5127
4980
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
5128
|
-
|
|
4981
|
+
answerMap,
|
|
5129
4982
|
optionList: constructAnswerOptionList(),
|
|
5130
4983
|
materialMap: fillInTheBlanksMaterialMap,
|
|
5131
4984
|
contentMap,
|
|
@@ -5145,7 +4998,7 @@ import { InlineMath as InlineMath5 } from "react-katex";
|
|
|
5145
4998
|
import { Fragment as Fragment3, jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
5146
4999
|
var GroupingActivityMaterialContent = ({
|
|
5147
5000
|
uniqueValue,
|
|
5148
|
-
|
|
5001
|
+
answerMap,
|
|
5149
5002
|
materialMap,
|
|
5150
5003
|
contentMap,
|
|
5151
5004
|
checkCanAnswerQuestion,
|
|
@@ -5195,10 +5048,8 @@ var GroupingActivityMaterialContent = ({
|
|
|
5195
5048
|
}, [materialMap, isShuffled]);
|
|
5196
5049
|
useEffect10(() => {
|
|
5197
5050
|
if (!showCorrectAnswer) return;
|
|
5198
|
-
|
|
5199
|
-
|
|
5200
|
-
).answerMap = materialMap;
|
|
5201
|
-
}, [showCorrectAnswer, answer, materialMap]);
|
|
5051
|
+
answerMap = materialMap;
|
|
5052
|
+
}, [showCorrectAnswer, answerMap, materialMap]);
|
|
5202
5053
|
useEffect10(() => {
|
|
5203
5054
|
if (!dropTargetKey || !dropZoneRefs.current[dropTargetKey]) return;
|
|
5204
5055
|
const dropZoneElement = dropZoneRefs.current[dropTargetKey];
|
|
@@ -5243,13 +5094,6 @@ var GroupingActivityMaterialContent = ({
|
|
|
5243
5094
|
};
|
|
5244
5095
|
requestAnimationFrame(animate);
|
|
5245
5096
|
}, [dropTargetKey]);
|
|
5246
|
-
const retrieveAnswerMap = () => {
|
|
5247
|
-
const foundIndex = answer.data.findIndex(
|
|
5248
|
-
(answerData) => answerData.type === "GROUPING"
|
|
5249
|
-
);
|
|
5250
|
-
const answerMap2 = answer.data[foundIndex].answerMap;
|
|
5251
|
-
return answerMap2;
|
|
5252
|
-
};
|
|
5253
5097
|
const retrieveFilteredMaterialList = (answerMap2) => {
|
|
5254
5098
|
const selectedValueList = [];
|
|
5255
5099
|
Object.keys(answerMap2).forEach((key) => {
|
|
@@ -5294,7 +5138,7 @@ var GroupingActivityMaterialContent = ({
|
|
|
5294
5138
|
};
|
|
5295
5139
|
const handleMouseUp = () => {
|
|
5296
5140
|
if (dropTargetKey !== null && draggedValue !== null) {
|
|
5297
|
-
onChange(
|
|
5141
|
+
onChange(answerMap, dropTargetKey, draggedValue, null);
|
|
5298
5142
|
}
|
|
5299
5143
|
setDraggedValue(null);
|
|
5300
5144
|
setDropTargetKey(null);
|
|
@@ -5326,7 +5170,7 @@ var GroupingActivityMaterialContent = ({
|
|
|
5326
5170
|
};
|
|
5327
5171
|
const handleTouchEnd = () => {
|
|
5328
5172
|
if (dropTargetKey !== null && draggedValue !== null) {
|
|
5329
|
-
onChange(
|
|
5173
|
+
onChange(answerMap, dropTargetKey, draggedValue, null);
|
|
5330
5174
|
}
|
|
5331
5175
|
setDraggedValue(null);
|
|
5332
5176
|
setDropTargetKey(null);
|
|
@@ -5340,11 +5184,10 @@ var GroupingActivityMaterialContent = ({
|
|
|
5340
5184
|
};
|
|
5341
5185
|
const handleDropZoneClick = (answerMapKey) => {
|
|
5342
5186
|
if (selectedValue !== null) {
|
|
5343
|
-
onChange(
|
|
5187
|
+
onChange(answerMap, answerMapKey, selectedValue, null);
|
|
5344
5188
|
setSelectedValue(null);
|
|
5345
5189
|
}
|
|
5346
5190
|
};
|
|
5347
|
-
const answerMap = retrieveAnswerMap();
|
|
5348
5191
|
const filteredMaterialList = retrieveFilteredMaterialList(answerMap);
|
|
5349
5192
|
return /* @__PURE__ */ jsxs19("div", { onMouseMove: handleMouseMove, onMouseUp: handleMouseUp, children: [
|
|
5350
5193
|
draggedValue && mousePosition.x > 0 && /* @__PURE__ */ jsx30(
|
|
@@ -5492,7 +5335,7 @@ var GroupingActivityMaterialContent = ({
|
|
|
5492
5335
|
e.stopPropagation();
|
|
5493
5336
|
if (checkCanAnswerQuestion()) {
|
|
5494
5337
|
onChange(
|
|
5495
|
-
|
|
5338
|
+
answerMap,
|
|
5496
5339
|
answerMapKey,
|
|
5497
5340
|
null,
|
|
5498
5341
|
answerMapIndex
|
|
@@ -5539,7 +5382,7 @@ var GroupingActivityMaterialContent_default = GroupingActivityMaterialContent;
|
|
|
5539
5382
|
// src/components/activities/GroupingActivityContent.tsx
|
|
5540
5383
|
import { Fragment as Fragment4, jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
5541
5384
|
var GroupingActivityContent = ({
|
|
5542
|
-
|
|
5385
|
+
answerMap,
|
|
5543
5386
|
data,
|
|
5544
5387
|
canAnswerQuestion,
|
|
5545
5388
|
changeAnswer,
|
|
@@ -5549,18 +5392,14 @@ var GroupingActivityContent = ({
|
|
|
5549
5392
|
const contentMap = parseContentMapFromData(data);
|
|
5550
5393
|
const groupingBodyMap = parseBodyMapFromData(data, "GROUPING");
|
|
5551
5394
|
const groupingMaterialMap = parseMaterialMapFromData(data, "GROUPING");
|
|
5552
|
-
const handleGroupingAnswerOnChange = (
|
|
5395
|
+
const handleGroupingAnswerOnChange = (answerMap2, key, value, index) => {
|
|
5553
5396
|
if (isPreview) return;
|
|
5554
|
-
let foundIndex = answer2.data.findIndex(
|
|
5555
|
-
(answerData) => answerData.type === "GROUPING"
|
|
5556
|
-
);
|
|
5557
|
-
const answerMap = answer2.data[foundIndex].answerMap;
|
|
5558
5397
|
if (value) {
|
|
5559
|
-
|
|
5398
|
+
answerMap2[key].push(value);
|
|
5560
5399
|
} else {
|
|
5561
|
-
|
|
5400
|
+
answerMap2[key].splice(index, 1);
|
|
5562
5401
|
}
|
|
5563
|
-
changeAnswer(
|
|
5402
|
+
changeAnswer(answerMap2);
|
|
5564
5403
|
};
|
|
5565
5404
|
return /* @__PURE__ */ jsxs20(Fragment4, { children: [
|
|
5566
5405
|
/* @__PURE__ */ jsx31(
|
|
@@ -5575,7 +5414,7 @@ var GroupingActivityContent = ({
|
|
|
5575
5414
|
GroupingActivityMaterialContent_default,
|
|
5576
5415
|
{
|
|
5577
5416
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
5578
|
-
|
|
5417
|
+
answerMap,
|
|
5579
5418
|
materialMap: groupingMaterialMap,
|
|
5580
5419
|
contentMap,
|
|
5581
5420
|
checkCanAnswerQuestion: canAnswerQuestion,
|
|
@@ -5594,7 +5433,7 @@ import { InlineMath as InlineMath6 } from "react-katex";
|
|
|
5594
5433
|
import { Fragment as Fragment5, jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5595
5434
|
var MatchingActivityMaterialContent = ({
|
|
5596
5435
|
uniqueValue,
|
|
5597
|
-
|
|
5436
|
+
answerMap,
|
|
5598
5437
|
materialMap,
|
|
5599
5438
|
contentMap,
|
|
5600
5439
|
checkCanAnswerQuestion,
|
|
@@ -5642,10 +5481,8 @@ var MatchingActivityMaterialContent = ({
|
|
|
5642
5481
|
}, [materialMap, isShuffled]);
|
|
5643
5482
|
useEffect11(() => {
|
|
5644
5483
|
if (!showCorrectAnswer) return;
|
|
5645
|
-
|
|
5646
|
-
|
|
5647
|
-
).answerMap = materialMap;
|
|
5648
|
-
}, [showCorrectAnswer, answer, materialMap]);
|
|
5484
|
+
answerMap = materialMap;
|
|
5485
|
+
}, [showCorrectAnswer]);
|
|
5649
5486
|
useEffect11(() => {
|
|
5650
5487
|
if (!dropTargetKey || !dropZoneRefs.current[dropTargetKey]) return;
|
|
5651
5488
|
const dropZoneElement = dropZoneRefs.current[dropTargetKey];
|
|
@@ -5690,12 +5527,6 @@ var MatchingActivityMaterialContent = ({
|
|
|
5690
5527
|
};
|
|
5691
5528
|
requestAnimationFrame(animate);
|
|
5692
5529
|
}, [dropTargetKey]);
|
|
5693
|
-
const retrieveAnswerMap = () => {
|
|
5694
|
-
const foundIndex = answer.data.findIndex(
|
|
5695
|
-
(answerData) => answerData.type === "MATCHING"
|
|
5696
|
-
);
|
|
5697
|
-
return answer.data[foundIndex].answerMap;
|
|
5698
|
-
};
|
|
5699
5530
|
const retrieveFilteredMaterialList = (answerMap2) => {
|
|
5700
5531
|
const selectedValueList = [];
|
|
5701
5532
|
Object.keys(answerMap2).forEach((key) => {
|
|
@@ -5734,7 +5565,7 @@ var MatchingActivityMaterialContent = ({
|
|
|
5734
5565
|
};
|
|
5735
5566
|
const handleMouseUp = () => {
|
|
5736
5567
|
if (dropTargetKey !== null && draggedValue !== null) {
|
|
5737
|
-
onChange(
|
|
5568
|
+
onChange(answerMap, dropTargetKey, draggedValue);
|
|
5738
5569
|
}
|
|
5739
5570
|
setDraggedValue(null);
|
|
5740
5571
|
setDropTargetKey(null);
|
|
@@ -5766,7 +5597,7 @@ var MatchingActivityMaterialContent = ({
|
|
|
5766
5597
|
};
|
|
5767
5598
|
const handleTouchEnd = () => {
|
|
5768
5599
|
if (dropTargetKey !== null && draggedValue !== null) {
|
|
5769
|
-
onChange(
|
|
5600
|
+
onChange(answerMap, dropTargetKey, draggedValue);
|
|
5770
5601
|
}
|
|
5771
5602
|
setDraggedValue(null);
|
|
5772
5603
|
setDropTargetKey(null);
|
|
@@ -5780,11 +5611,10 @@ var MatchingActivityMaterialContent = ({
|
|
|
5780
5611
|
};
|
|
5781
5612
|
const handleDropZoneClick = (answerMapKey) => {
|
|
5782
5613
|
if (selectedValue !== null) {
|
|
5783
|
-
onChange(
|
|
5614
|
+
onChange(answerMap, answerMapKey, selectedValue);
|
|
5784
5615
|
setSelectedValue(null);
|
|
5785
5616
|
}
|
|
5786
5617
|
};
|
|
5787
|
-
const answerMap = retrieveAnswerMap();
|
|
5788
5618
|
const filteredMaterialList = retrieveFilteredMaterialList(answerMap);
|
|
5789
5619
|
return /* @__PURE__ */ jsxs21("div", { onMouseMove: handleMouseMove, onMouseUp: handleMouseUp, children: [
|
|
5790
5620
|
draggedValue && mousePosition.x > 0 && /* @__PURE__ */ jsx32(
|
|
@@ -5931,7 +5761,7 @@ var MatchingActivityMaterialContent = ({
|
|
|
5931
5761
|
onClick: (e) => {
|
|
5932
5762
|
e.stopPropagation();
|
|
5933
5763
|
if (checkCanAnswerQuestion() && answerMap[answerMapKey]) {
|
|
5934
|
-
onChange(
|
|
5764
|
+
onChange(answerMap, answerMapKey, null);
|
|
5935
5765
|
setSelectedValue(null);
|
|
5936
5766
|
}
|
|
5937
5767
|
},
|
|
@@ -5966,7 +5796,7 @@ var MatchingActivityMaterialContent_default = MatchingActivityMaterialContent;
|
|
|
5966
5796
|
// src/components/activities/MatchingActivityContent.tsx
|
|
5967
5797
|
import { Fragment as Fragment6, jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
5968
5798
|
var MatchingActivityContent = ({
|
|
5969
|
-
|
|
5799
|
+
answerMap,
|
|
5970
5800
|
data,
|
|
5971
5801
|
canAnswerQuestion,
|
|
5972
5802
|
changeAnswer,
|
|
@@ -5976,14 +5806,10 @@ var MatchingActivityContent = ({
|
|
|
5976
5806
|
const contentMap = parseContentMapFromData(data);
|
|
5977
5807
|
const matchingBodyMap = parseBodyMapFromData(data, "MATCHING");
|
|
5978
5808
|
const matchingMaterialMap = parseMaterialMapFromData(data, "MATCHING");
|
|
5979
|
-
const handleMatchingAnswerOnChange = (
|
|
5809
|
+
const handleMatchingAnswerOnChange = (answerMap2, key, value) => {
|
|
5980
5810
|
if (isPreview) return;
|
|
5981
|
-
|
|
5982
|
-
|
|
5983
|
-
);
|
|
5984
|
-
const answerMap = answer2.data[foundIndex].answerMap;
|
|
5985
|
-
answerMap[key] = value;
|
|
5986
|
-
changeAnswer(answer2);
|
|
5811
|
+
answerMap2[key] = value;
|
|
5812
|
+
changeAnswer(answerMap2);
|
|
5987
5813
|
};
|
|
5988
5814
|
return /* @__PURE__ */ jsxs22(Fragment6, { children: [
|
|
5989
5815
|
/* @__PURE__ */ jsx33(
|
|
@@ -5998,7 +5824,7 @@ var MatchingActivityContent = ({
|
|
|
5998
5824
|
MatchingActivityMaterialContent_default,
|
|
5999
5825
|
{
|
|
6000
5826
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
6001
|
-
|
|
5827
|
+
answerMap,
|
|
6002
5828
|
materialMap: matchingMaterialMap,
|
|
6003
5829
|
contentMap,
|
|
6004
5830
|
checkCanAnswerQuestion: canAnswerQuestion,
|
|
@@ -6016,19 +5842,13 @@ import { InlineMath as InlineMath7 } from "react-katex";
|
|
|
6016
5842
|
import { jsx as jsx34, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
6017
5843
|
var MCMAActivityMaterialContent = ({
|
|
6018
5844
|
uniqueValue,
|
|
6019
|
-
|
|
5845
|
+
answerMap,
|
|
6020
5846
|
materialMap,
|
|
6021
5847
|
contentMap,
|
|
6022
5848
|
checkCanAnswerQuestion,
|
|
6023
5849
|
onChange,
|
|
6024
5850
|
isPreview
|
|
6025
5851
|
}) => {
|
|
6026
|
-
const retrieveAnswerMap = () => {
|
|
6027
|
-
const foundIndex = answer.data.findIndex(
|
|
6028
|
-
(answerData) => answerData.type === "MCMA"
|
|
6029
|
-
);
|
|
6030
|
-
return answer.data[foundIndex].answerMap;
|
|
6031
|
-
};
|
|
6032
5852
|
const retrieveCorrectAnswerList = () => {
|
|
6033
5853
|
return JSON.parse(Object.keys(materialMap)[0]);
|
|
6034
5854
|
};
|
|
@@ -6043,7 +5863,6 @@ var MCMAActivityMaterialContent = ({
|
|
|
6043
5863
|
}
|
|
6044
5864
|
return "INCORRECT";
|
|
6045
5865
|
};
|
|
6046
|
-
const answerMap = retrieveAnswerMap();
|
|
6047
5866
|
const correctAnswerList = retrieveCorrectAnswerList();
|
|
6048
5867
|
return Object.keys(materialMap).map((materialKey, index) => {
|
|
6049
5868
|
return /* @__PURE__ */ jsx34("div", { className: "flex flex-row items-center my-1", children: /* @__PURE__ */ jsxs23("div", { className: "flex-1 flex flex-col justify-center border-catchup-lighter-gray rounded-catchup-xlarge px-5 md:px-0", children: [
|
|
@@ -6067,7 +5886,7 @@ var MCMAActivityMaterialContent = ({
|
|
|
6067
5886
|
{
|
|
6068
5887
|
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" : ""}`,
|
|
6069
5888
|
onClick: () => {
|
|
6070
|
-
onChange(
|
|
5889
|
+
onChange(answerMap, materialKey, materialSubKey);
|
|
6071
5890
|
},
|
|
6072
5891
|
children: [
|
|
6073
5892
|
/* @__PURE__ */ jsx34(
|
|
@@ -6121,7 +5940,7 @@ var MCMAActivityMaterialContent_default = MCMAActivityMaterialContent;
|
|
|
6121
5940
|
// src/components/activities/MCMAActivityContent.tsx
|
|
6122
5941
|
import { jsx as jsx35, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
6123
5942
|
var MCMAActivityContent = ({
|
|
6124
|
-
|
|
5943
|
+
answerMap,
|
|
6125
5944
|
data,
|
|
6126
5945
|
canAnswerQuestion,
|
|
6127
5946
|
changeAnswer,
|
|
@@ -6131,21 +5950,17 @@ var MCMAActivityContent = ({
|
|
|
6131
5950
|
const contentMap = parseContentMapFromData(data);
|
|
6132
5951
|
const MCMABodyMap = parseBodyMapFromData(data, "MCMA");
|
|
6133
5952
|
const MCMAMaterialMap = parseMaterialMapFromData(data, "MCMA");
|
|
6134
|
-
const handleMCMAAnswerOnChange = (
|
|
5953
|
+
const handleMCMAAnswerOnChange = (answerMap2, key, value) => {
|
|
6135
5954
|
if (isPreview) return;
|
|
6136
|
-
|
|
6137
|
-
(answerData) => answerData.type === "MCMA"
|
|
6138
|
-
);
|
|
6139
|
-
const answerMap = answer2.data[foundIndex].answerMap;
|
|
6140
|
-
const foundSubIndex = answerMap[key].findIndex(
|
|
5955
|
+
const foundSubIndex = answerMap2[key].findIndex(
|
|
6141
5956
|
(answerMaterialKey) => answerMaterialKey === value
|
|
6142
5957
|
);
|
|
6143
5958
|
if (foundSubIndex === -1) {
|
|
6144
|
-
|
|
5959
|
+
answerMap2[key].push(value);
|
|
6145
5960
|
} else {
|
|
6146
|
-
|
|
5961
|
+
answerMap2[key].splice(foundSubIndex, 1);
|
|
6147
5962
|
}
|
|
6148
|
-
changeAnswer(
|
|
5963
|
+
changeAnswer(answerMap2);
|
|
6149
5964
|
};
|
|
6150
5965
|
return /* @__PURE__ */ jsxs24("div", { className: "flex flex-row flex-wrap", children: [
|
|
6151
5966
|
/* @__PURE__ */ jsx35("div", { className: `${isFullScreen ? "w-full" : "w-full md:w-[60%]"}`, children: /* @__PURE__ */ jsx35(ActivityBodyContent_default, { bodyMap: MCMABodyMap, templateType: "MCMA" }) }),
|
|
@@ -6155,7 +5970,7 @@ var MCMAActivityContent = ({
|
|
|
6155
5970
|
MCMAActivityMaterialContent_default,
|
|
6156
5971
|
{
|
|
6157
5972
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
6158
|
-
|
|
5973
|
+
answerMap,
|
|
6159
5974
|
materialMap: MCMAMaterialMap,
|
|
6160
5975
|
contentMap,
|
|
6161
5976
|
checkCanAnswerQuestion: canAnswerQuestion,
|
|
@@ -6172,19 +5987,13 @@ import { InlineMath as InlineMath8 } from "react-katex";
|
|
|
6172
5987
|
import { jsx as jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
6173
5988
|
var MCSAActivityMaterialContent = ({
|
|
6174
5989
|
uniqueValue,
|
|
6175
|
-
|
|
5990
|
+
answerMap,
|
|
6176
5991
|
materialMap,
|
|
6177
5992
|
contentMap,
|
|
6178
5993
|
checkCanAnswerQuestion,
|
|
6179
5994
|
onChange,
|
|
6180
5995
|
isPreview
|
|
6181
5996
|
}) => {
|
|
6182
|
-
const retrieveAnswerMap = () => {
|
|
6183
|
-
const foundIndex = answer.data.findIndex(
|
|
6184
|
-
(answerData) => answerData.type === "MCSA"
|
|
6185
|
-
);
|
|
6186
|
-
return answer.data[foundIndex].answerMap;
|
|
6187
|
-
};
|
|
6188
5997
|
const retrieveCorrectAnswer = () => {
|
|
6189
5998
|
return Object.keys(materialMap)[0];
|
|
6190
5999
|
};
|
|
@@ -6196,7 +6005,6 @@ var MCSAActivityMaterialContent = ({
|
|
|
6196
6005
|
}
|
|
6197
6006
|
return "INCORRECT";
|
|
6198
6007
|
};
|
|
6199
|
-
const answerMap = retrieveAnswerMap();
|
|
6200
6008
|
const correctAnswer = retrieveCorrectAnswer();
|
|
6201
6009
|
return Object.keys(materialMap).map((materialKey, index) => {
|
|
6202
6010
|
return /* @__PURE__ */ jsx36("div", { className: "flex flex-row items-center my-1", children: /* @__PURE__ */ jsxs25("div", { className: "flex-1 flex flex-col justify-center border-catchup-lighter-gray rounded-catchup-xlarge px-5 md:px-0", children: [
|
|
@@ -6218,7 +6026,7 @@ var MCSAActivityMaterialContent = ({
|
|
|
6218
6026
|
{
|
|
6219
6027
|
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" : ""}`,
|
|
6220
6028
|
onClick: () => {
|
|
6221
|
-
onChange(
|
|
6029
|
+
onChange(answerMap, materialKey, materialSubKey);
|
|
6222
6030
|
},
|
|
6223
6031
|
children: [
|
|
6224
6032
|
/* @__PURE__ */ jsx36(
|
|
@@ -6274,7 +6082,7 @@ var MCSAActivityMaterialContent_default = MCSAActivityMaterialContent;
|
|
|
6274
6082
|
// src/components/activities/MCSAActivityContent.tsx
|
|
6275
6083
|
import { jsx as jsx37, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
6276
6084
|
var MCSAActivityContent = ({
|
|
6277
|
-
|
|
6085
|
+
answerMap,
|
|
6278
6086
|
data,
|
|
6279
6087
|
canAnswerQuestion,
|
|
6280
6088
|
changeAnswer,
|
|
@@ -6284,14 +6092,10 @@ var MCSAActivityContent = ({
|
|
|
6284
6092
|
const contentMap = parseContentMapFromData(data);
|
|
6285
6093
|
const MCSABodyMap = parseBodyMapFromData(data, "MCSA");
|
|
6286
6094
|
const MCSAMaterialMap = parseMaterialMapFromData(data, "MCSA");
|
|
6287
|
-
const handleMCSAAnswerOnChange = (
|
|
6095
|
+
const handleMCSAAnswerOnChange = (answerMap2, key, value) => {
|
|
6288
6096
|
if (isPreview) return;
|
|
6289
|
-
|
|
6290
|
-
|
|
6291
|
-
);
|
|
6292
|
-
const answerMap = answer2.data[foundIndex].answerMap;
|
|
6293
|
-
answerMap[key] = value;
|
|
6294
|
-
changeAnswer(answer2);
|
|
6097
|
+
answerMap2[key] = value;
|
|
6098
|
+
changeAnswer(answerMap2);
|
|
6295
6099
|
};
|
|
6296
6100
|
return /* @__PURE__ */ jsxs26("div", { className: "flex flex-row flex-wrap", children: [
|
|
6297
6101
|
/* @__PURE__ */ jsx37("div", { className: `${isFullScreen ? "w-full" : "w-full md:w-[60%]"}`, children: /* @__PURE__ */ jsx37(ActivityBodyContent_default, { bodyMap: MCSABodyMap, templateType: "MCSA" }) }),
|
|
@@ -6301,7 +6105,7 @@ var MCSAActivityContent = ({
|
|
|
6301
6105
|
MCSAActivityMaterialContent_default,
|
|
6302
6106
|
{
|
|
6303
6107
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
6304
|
-
|
|
6108
|
+
answerMap,
|
|
6305
6109
|
materialMap: MCSAMaterialMap,
|
|
6306
6110
|
contentMap,
|
|
6307
6111
|
checkCanAnswerQuestion: canAnswerQuestion,
|
|
@@ -6344,26 +6148,11 @@ var retrieveDocumentTypeFromExtension = (format) => {
|
|
|
6344
6148
|
// src/components/activities/material-contents/OpenEndedActivityMaterialContent.tsx
|
|
6345
6149
|
import { Fragment as Fragment7, jsx as jsx38, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
6346
6150
|
var OpenEndedActivityMaterialContent = ({
|
|
6347
|
-
|
|
6151
|
+
answerMap,
|
|
6348
6152
|
contentMap,
|
|
6349
6153
|
checkCanAnswerQuestion,
|
|
6350
6154
|
onChange
|
|
6351
6155
|
}) => {
|
|
6352
|
-
const retrieveAnswer = () => {
|
|
6353
|
-
if (!answer)
|
|
6354
|
-
return {
|
|
6355
|
-
answerMap: {
|
|
6356
|
-
ANSWER: ""
|
|
6357
|
-
}
|
|
6358
|
-
};
|
|
6359
|
-
return answer.data.find(
|
|
6360
|
-
(answerData) => answerData.type === "OPEN_ENDED"
|
|
6361
|
-
);
|
|
6362
|
-
};
|
|
6363
|
-
const retrieveAnswerMap = () => {
|
|
6364
|
-
const { answerMap: answerMap2 } = retrieveAnswer();
|
|
6365
|
-
return answerMap2;
|
|
6366
|
-
};
|
|
6367
6156
|
const RenderTextContent = (answerMap2) => {
|
|
6368
6157
|
const answerMapAnswer = answerMap2["ANSWER"];
|
|
6369
6158
|
let documentType = "TEXT";
|
|
@@ -6403,7 +6192,7 @@ var OpenEndedActivityMaterialContent = ({
|
|
|
6403
6192
|
useMinHeight: true,
|
|
6404
6193
|
onChange: (e) => {
|
|
6405
6194
|
if (checkCanAnswerQuestion()) {
|
|
6406
|
-
onChange(
|
|
6195
|
+
onChange(answerMap2, e.target.value);
|
|
6407
6196
|
}
|
|
6408
6197
|
}
|
|
6409
6198
|
}
|
|
@@ -6437,7 +6226,6 @@ var OpenEndedActivityMaterialContent = ({
|
|
|
6437
6226
|
}
|
|
6438
6227
|
) });
|
|
6439
6228
|
};
|
|
6440
|
-
const answerMap = retrieveAnswerMap();
|
|
6441
6229
|
return /* @__PURE__ */ jsx38(Fragment7, { children: /* @__PURE__ */ jsxs27("div", { className: "", children: [
|
|
6442
6230
|
/* @__PURE__ */ jsx38("div", { className: "hidden md:block", children: /* @__PURE__ */ jsx38("span", { className: "font-semibold text-xl opacity-60", children: i18n_default.t("please_select_open_ended_text") }) }),
|
|
6443
6231
|
/* @__PURE__ */ jsx38("div", { className: "hidden md:contents", children: /* @__PURE__ */ jsx38(DividerLine_default, {}) }),
|
|
@@ -6449,7 +6237,7 @@ var OpenEndedActivityMaterialContent_default = OpenEndedActivityMaterialContent;
|
|
|
6449
6237
|
// src/components/activities/OpenEndedActivityContent.tsx
|
|
6450
6238
|
import { Fragment as Fragment8, jsx as jsx39, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
6451
6239
|
var OpenEndedActivityContent = ({
|
|
6452
|
-
|
|
6240
|
+
answerMap,
|
|
6453
6241
|
data,
|
|
6454
6242
|
changeAnswer,
|
|
6455
6243
|
canAnswerQuestion,
|
|
@@ -6459,14 +6247,10 @@ var OpenEndedActivityContent = ({
|
|
|
6459
6247
|
}) => {
|
|
6460
6248
|
const contentMap = parseContentMapFromData(data);
|
|
6461
6249
|
const openEndedBodyMap = parseBodyMapFromData(data, "OPEN_ENDED");
|
|
6462
|
-
const handleOpenEndedAnswerOnChange = (
|
|
6250
|
+
const handleOpenEndedAnswerOnChange = (answerMap2, value) => {
|
|
6463
6251
|
if (isPreview) return;
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
);
|
|
6467
|
-
const answerMap = answer2.data[foundIndex].answerMap;
|
|
6468
|
-
answerMap["ANSWER"] = value;
|
|
6469
|
-
changeAnswer(answer2);
|
|
6252
|
+
answerMap2["ANSWER"] = value;
|
|
6253
|
+
changeAnswer(answerMap2);
|
|
6470
6254
|
};
|
|
6471
6255
|
return /* @__PURE__ */ jsxs28("div", { className: "flex flex-row flex-wrap", children: [
|
|
6472
6256
|
/* @__PURE__ */ jsx39(
|
|
@@ -6494,7 +6278,7 @@ var OpenEndedActivityContent = ({
|
|
|
6494
6278
|
/* @__PURE__ */ jsx39("div", { className: `${isFullScreen ? "w-full" : "w-full md:flex-1"}`, children: /* @__PURE__ */ jsx39(
|
|
6495
6279
|
OpenEndedActivityMaterialContent_default,
|
|
6496
6280
|
{
|
|
6497
|
-
|
|
6281
|
+
answerMap,
|
|
6498
6282
|
contentMap,
|
|
6499
6283
|
checkCanAnswerQuestion: canAnswerQuestion,
|
|
6500
6284
|
onChange: handleOpenEndedAnswerOnChange
|
|
@@ -6548,7 +6332,7 @@ var useScreenSize_default = useScreenSize;
|
|
|
6548
6332
|
import { jsx as jsx40, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
6549
6333
|
var OrderingActivityMaterialContent = ({
|
|
6550
6334
|
uniqueValue,
|
|
6551
|
-
|
|
6335
|
+
answerMap,
|
|
6552
6336
|
materialMap,
|
|
6553
6337
|
contentMap,
|
|
6554
6338
|
checkCanAnswerQuestion,
|
|
@@ -6583,19 +6367,10 @@ var OrderingActivityMaterialContent = ({
|
|
|
6583
6367
|
}, [screenSize]);
|
|
6584
6368
|
useEffect13(() => {
|
|
6585
6369
|
if (!showCorrectAnswer) return;
|
|
6586
|
-
|
|
6587
|
-
|
|
6588
|
-
).answerMap;
|
|
6589
|
-
Object.keys(answerMap2).forEach((answerKey, index) => {
|
|
6590
|
-
answerMap2[answerKey] = index;
|
|
6370
|
+
Object.keys(answerMap).forEach((answerKey, index) => {
|
|
6371
|
+
answerMap[answerKey] = index;
|
|
6591
6372
|
});
|
|
6592
6373
|
}, [showCorrectAnswer]);
|
|
6593
|
-
const retrieveAnswerMap = () => {
|
|
6594
|
-
const foundIndex = answer.data.findIndex(
|
|
6595
|
-
(answerData) => answerData.type === "ORDERING"
|
|
6596
|
-
);
|
|
6597
|
-
return answer.data[foundIndex].answerMap;
|
|
6598
|
-
};
|
|
6599
6374
|
const checkAnswerState = (correctAnswer, learnerAnswer) => {
|
|
6600
6375
|
if (!isPreview) return null;
|
|
6601
6376
|
if (correctAnswer === learnerAnswer) {
|
|
@@ -6644,7 +6419,7 @@ var OrderingActivityMaterialContent = ({
|
|
|
6644
6419
|
};
|
|
6645
6420
|
const handleMouseUp = () => {
|
|
6646
6421
|
if (dropTargetKey !== null && draggedKey !== null && dropTargetKey !== draggedKey) {
|
|
6647
|
-
onChange(
|
|
6422
|
+
onChange(answerMap, draggedKey, dropTargetKey);
|
|
6648
6423
|
}
|
|
6649
6424
|
setDraggedKey(null);
|
|
6650
6425
|
setDropTargetKey(null);
|
|
@@ -6676,7 +6451,7 @@ var OrderingActivityMaterialContent = ({
|
|
|
6676
6451
|
};
|
|
6677
6452
|
const handleTouchEnd = () => {
|
|
6678
6453
|
if (dropTargetKey !== null && draggedKey !== null && dropTargetKey !== draggedKey) {
|
|
6679
|
-
onChange(
|
|
6454
|
+
onChange(answerMap, draggedKey, dropTargetKey);
|
|
6680
6455
|
}
|
|
6681
6456
|
setDraggedKey(null);
|
|
6682
6457
|
setDropTargetKey(null);
|
|
@@ -6690,12 +6465,11 @@ var OrderingActivityMaterialContent = ({
|
|
|
6690
6465
|
} else if (selectedKey === materialKey) {
|
|
6691
6466
|
setSelectedKey(null);
|
|
6692
6467
|
} else {
|
|
6693
|
-
onChange(
|
|
6468
|
+
onChange(answerMap, selectedKey, materialKey);
|
|
6694
6469
|
setSelectedKey(null);
|
|
6695
6470
|
}
|
|
6696
6471
|
setDraggedKey(null);
|
|
6697
6472
|
};
|
|
6698
|
-
const answerMap = retrieveAnswerMap();
|
|
6699
6473
|
return /* @__PURE__ */ jsxs29(
|
|
6700
6474
|
"div",
|
|
6701
6475
|
{
|
|
@@ -6833,7 +6607,7 @@ var OrderingActivityMaterialContent_default = OrderingActivityMaterialContent;
|
|
|
6833
6607
|
// src/components/activities/OrderingActivityContent.tsx
|
|
6834
6608
|
import { Fragment as Fragment9, jsx as jsx41, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
6835
6609
|
var OrderingActivityContent = ({
|
|
6836
|
-
|
|
6610
|
+
answerMap,
|
|
6837
6611
|
data,
|
|
6838
6612
|
canAnswerQuestion,
|
|
6839
6613
|
changeAnswer,
|
|
@@ -6844,16 +6618,12 @@ var OrderingActivityContent = ({
|
|
|
6844
6618
|
const contentMap = parseContentMapFromData(data);
|
|
6845
6619
|
const orderingBodyMap = parseBodyMapFromData(data, "ORDERING");
|
|
6846
6620
|
const orderingMaterialMap = parseMaterialMapFromData(data, "ORDERING");
|
|
6847
|
-
const handleOrderingAnswerOnChange = (
|
|
6621
|
+
const handleOrderingAnswerOnChange = (answerMap2, primaryKey, secondaryKey) => {
|
|
6848
6622
|
if (isPreview) return;
|
|
6849
|
-
|
|
6850
|
-
|
|
6851
|
-
|
|
6852
|
-
|
|
6853
|
-
const prevValue = answerMap[primaryKey];
|
|
6854
|
-
answerMap[primaryKey] = answerMap[secondaryKey];
|
|
6855
|
-
answerMap[secondaryKey] = prevValue;
|
|
6856
|
-
changeAnswer(answer2);
|
|
6623
|
+
const prevValue = answerMap2[primaryKey];
|
|
6624
|
+
answerMap2[primaryKey] = answerMap2[secondaryKey];
|
|
6625
|
+
answerMap2[secondaryKey] = prevValue;
|
|
6626
|
+
changeAnswer(answerMap2);
|
|
6857
6627
|
};
|
|
6858
6628
|
return /* @__PURE__ */ jsxs30(Fragment9, { children: [
|
|
6859
6629
|
/* @__PURE__ */ jsx41(
|
|
@@ -6868,7 +6638,7 @@ var OrderingActivityContent = ({
|
|
|
6868
6638
|
OrderingActivityMaterialContent_default,
|
|
6869
6639
|
{
|
|
6870
6640
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
6871
|
-
|
|
6641
|
+
answerMap,
|
|
6872
6642
|
materialMap: orderingMaterialMap,
|
|
6873
6643
|
contentMap,
|
|
6874
6644
|
checkCanAnswerQuestion: canAnswerQuestion,
|
|
@@ -6887,7 +6657,7 @@ import { InlineMath as InlineMath10 } from "react-katex";
|
|
|
6887
6657
|
import { Fragment as Fragment10, jsx as jsx42, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
6888
6658
|
var TrueFalseActivityMaterialContent = ({
|
|
6889
6659
|
uniqueValue,
|
|
6890
|
-
|
|
6660
|
+
answerMap,
|
|
6891
6661
|
materialMap,
|
|
6892
6662
|
contentMap,
|
|
6893
6663
|
checkCanAnswerQuestion,
|
|
@@ -6895,7 +6665,6 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6895
6665
|
isPreview,
|
|
6896
6666
|
showCorrectAnswer
|
|
6897
6667
|
}) => {
|
|
6898
|
-
const { screenSize } = useScreenSize_default();
|
|
6899
6668
|
const [shuffleOptionList, setShuffleOptionList] = useState23([]);
|
|
6900
6669
|
useEffect14(() => {
|
|
6901
6670
|
const optionList = [];
|
|
@@ -6909,26 +6678,8 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6909
6678
|
}, []);
|
|
6910
6679
|
useEffect14(() => {
|
|
6911
6680
|
if (!showCorrectAnswer) return;
|
|
6912
|
-
|
|
6913
|
-
(answerData) => answerData.type === "TRUE_FALSE"
|
|
6914
|
-
).answerMap = materialMap;
|
|
6681
|
+
answerMap = materialMap;
|
|
6915
6682
|
}, [showCorrectAnswer]);
|
|
6916
|
-
const retrieveAnswer = () => {
|
|
6917
|
-
if (!answer)
|
|
6918
|
-
return {
|
|
6919
|
-
answerMap: {
|
|
6920
|
-
trueList: [],
|
|
6921
|
-
falseList: []
|
|
6922
|
-
}
|
|
6923
|
-
};
|
|
6924
|
-
return answer.data.find(
|
|
6925
|
-
(answerData) => answerData.type === "TRUE_FALSE"
|
|
6926
|
-
);
|
|
6927
|
-
};
|
|
6928
|
-
const retrieveAnswerMap = () => {
|
|
6929
|
-
const { answerMap: answerMap2 } = retrieveAnswer();
|
|
6930
|
-
return answerMap2;
|
|
6931
|
-
};
|
|
6932
6683
|
const checkAnswerState = (correctAnswer, learnerAnswer) => {
|
|
6933
6684
|
if (!isPreview) return null;
|
|
6934
6685
|
if (correctAnswer === learnerAnswer) {
|
|
@@ -6936,7 +6687,6 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6936
6687
|
}
|
|
6937
6688
|
return "INCORRECT";
|
|
6938
6689
|
};
|
|
6939
|
-
const answerMap = retrieveAnswerMap();
|
|
6940
6690
|
return /* @__PURE__ */ jsxs31("div", { className: "", children: [
|
|
6941
6691
|
/* @__PURE__ */ jsx42("div", { className: "hidden md:block", children: /* @__PURE__ */ jsx42("span", { className: "font-semibold text-xl opacity-60", children: i18n_default.t("please_select_true_false_text") }) }),
|
|
6942
6692
|
/* @__PURE__ */ jsx42("div", { className: "hidden md:contents", children: /* @__PURE__ */ jsx42(DividerLine_default, {}) }),
|
|
@@ -6986,7 +6736,7 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6986
6736
|
alt: "checkbox",
|
|
6987
6737
|
size: "small",
|
|
6988
6738
|
onClick: () => {
|
|
6989
|
-
onChange(
|
|
6739
|
+
onChange(answerMap, "TRUE", shuffleOption);
|
|
6990
6740
|
}
|
|
6991
6741
|
}
|
|
6992
6742
|
) }) }),
|
|
@@ -6997,7 +6747,7 @@ var TrueFalseActivityMaterialContent = ({
|
|
|
6997
6747
|
alt: "checkbox",
|
|
6998
6748
|
size: "small",
|
|
6999
6749
|
onClick: () => {
|
|
7000
|
-
onChange(
|
|
6750
|
+
onChange(answerMap, "FALSE", shuffleOption);
|
|
7001
6751
|
}
|
|
7002
6752
|
}
|
|
7003
6753
|
) }) })
|
|
@@ -7023,7 +6773,7 @@ var TrueFalseActivityMaterialContent_default = TrueFalseActivityMaterialContent;
|
|
|
7023
6773
|
// src/components/activities/TrueFalseActivityContent.tsx
|
|
7024
6774
|
import { jsx as jsx43, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
7025
6775
|
var TrueFalseActivityContent = ({
|
|
7026
|
-
|
|
6776
|
+
answerMap,
|
|
7027
6777
|
data,
|
|
7028
6778
|
canAnswerQuestion,
|
|
7029
6779
|
changeAnswer,
|
|
@@ -7034,43 +6784,36 @@ var TrueFalseActivityContent = ({
|
|
|
7034
6784
|
const contentMap = parseContentMapFromData(data);
|
|
7035
6785
|
const trueFalseBodyMap = parseBodyMapFromData(data, "TRUE_FALSE");
|
|
7036
6786
|
const trueFalseMaterialMap = parseMaterialMapFromData(data, "TRUE_FALSE");
|
|
7037
|
-
const
|
|
7038
|
-
let foundIndex = answer.data.findIndex(
|
|
7039
|
-
(answerData) => answerData.type === "TRUE_FALSE"
|
|
7040
|
-
);
|
|
7041
|
-
return answer.data[foundIndex].answerMap;
|
|
7042
|
-
};
|
|
7043
|
-
const handleTrueFalseAnswerOnChange = (answer2, key, value) => {
|
|
6787
|
+
const handleTrueFalseAnswerOnChange = (answerMap2, key, value) => {
|
|
7044
6788
|
if (isPreview) return;
|
|
7045
|
-
const answerMap = retrieveCurrentAnswerMap();
|
|
7046
6789
|
if (key === "TRUE") {
|
|
7047
|
-
const foundFalseIndex =
|
|
6790
|
+
const foundFalseIndex = answerMap2.falseList.findIndex(
|
|
7048
6791
|
(item) => item === value
|
|
7049
6792
|
);
|
|
7050
6793
|
if (foundFalseIndex !== -1) {
|
|
7051
|
-
|
|
6794
|
+
answerMap2.falseList.splice(foundFalseIndex, 1);
|
|
7052
6795
|
}
|
|
7053
|
-
const foundTrueIndex =
|
|
6796
|
+
const foundTrueIndex = answerMap2.falseList.findIndex(
|
|
7054
6797
|
(item) => item === value
|
|
7055
6798
|
);
|
|
7056
6799
|
if (foundTrueIndex === -1) {
|
|
7057
|
-
|
|
6800
|
+
answerMap2.trueList.push(value);
|
|
7058
6801
|
}
|
|
7059
6802
|
} else if (key === "FALSE") {
|
|
7060
|
-
const foundTrueIndex =
|
|
6803
|
+
const foundTrueIndex = answerMap2.trueList.findIndex(
|
|
7061
6804
|
(item) => item === value
|
|
7062
6805
|
);
|
|
7063
6806
|
if (foundTrueIndex !== -1) {
|
|
7064
|
-
|
|
6807
|
+
answerMap2.trueList.splice(foundTrueIndex, 1);
|
|
7065
6808
|
}
|
|
7066
|
-
const foundFalseIndex =
|
|
6809
|
+
const foundFalseIndex = answerMap2.falseList.findIndex(
|
|
7067
6810
|
(item) => item === value
|
|
7068
6811
|
);
|
|
7069
6812
|
if (foundFalseIndex === -1) {
|
|
7070
|
-
|
|
6813
|
+
answerMap2.falseList.push(value);
|
|
7071
6814
|
}
|
|
7072
6815
|
}
|
|
7073
|
-
changeAnswer(
|
|
6816
|
+
changeAnswer(answerMap2);
|
|
7074
6817
|
};
|
|
7075
6818
|
return /* @__PURE__ */ jsxs32("div", { className: "flex flex-row flex-wrap", children: [
|
|
7076
6819
|
/* @__PURE__ */ jsx43("div", { className: `${isFullScreen ? "w-full" : "w-full md:w-[40%]"}`, children: /* @__PURE__ */ jsx43(
|
|
@@ -7086,7 +6829,7 @@ var TrueFalseActivityContent = ({
|
|
|
7086
6829
|
TrueFalseActivityMaterialContent_default,
|
|
7087
6830
|
{
|
|
7088
6831
|
uniqueValue: JSON.stringify(data.contentMap),
|
|
7089
|
-
|
|
6832
|
+
answerMap,
|
|
7090
6833
|
materialMap: trueFalseMaterialMap,
|
|
7091
6834
|
contentMap,
|
|
7092
6835
|
checkCanAnswerQuestion: canAnswerQuestion,
|
|
@@ -7314,7 +7057,7 @@ var ActivityPreviewByData = ({
|
|
|
7314
7057
|
}
|
|
7315
7058
|
}, [data, lockedType, typeOptionList, showDifficulty]);
|
|
7316
7059
|
if (!data) return;
|
|
7317
|
-
const
|
|
7060
|
+
const answerMap = constructAnswerBasedOnData(data);
|
|
7318
7061
|
return /* @__PURE__ */ jsxs36("div", { children: [
|
|
7319
7062
|
showType ? /* @__PURE__ */ jsxs36(Fragment11, { children: [
|
|
7320
7063
|
/* @__PURE__ */ jsxs36("div", { className: "mb-4", children: [
|
|
@@ -7335,7 +7078,7 @@ var ActivityPreviewByData = ({
|
|
|
7335
7078
|
selectedType ? /* @__PURE__ */ jsx47("div", { className: "", children: selectedType === "ORDERING" && data["orderingBodyMap"] != null && data["orderingMaterialMap"] != null ? /* @__PURE__ */ jsx47(
|
|
7336
7079
|
OrderingActivityContent_default,
|
|
7337
7080
|
{
|
|
7338
|
-
|
|
7081
|
+
answerMap,
|
|
7339
7082
|
changeAnswer: () => {
|
|
7340
7083
|
},
|
|
7341
7084
|
canAnswerQuestion: () => {
|
|
@@ -7349,7 +7092,7 @@ var ActivityPreviewByData = ({
|
|
|
7349
7092
|
) : selectedType === "DROPDOWN" && data["dropdownBodyMap"] != null && data["dropdownMaterialMap"] != null ? /* @__PURE__ */ jsx47(
|
|
7350
7093
|
DropdownActivityContent_default,
|
|
7351
7094
|
{
|
|
7352
|
-
|
|
7095
|
+
answerMap,
|
|
7353
7096
|
changeAnswer: () => {
|
|
7354
7097
|
},
|
|
7355
7098
|
canAnswerQuestion: () => {
|
|
@@ -7363,7 +7106,7 @@ var ActivityPreviewByData = ({
|
|
|
7363
7106
|
) : selectedType === "MCSA" && data["MCSABodyMap"] != null && data["MCSAMaterialMap"] != null ? /* @__PURE__ */ jsx47(
|
|
7364
7107
|
MCSAActivityContent_default,
|
|
7365
7108
|
{
|
|
7366
|
-
|
|
7109
|
+
answerMap,
|
|
7367
7110
|
changeAnswer: () => {
|
|
7368
7111
|
},
|
|
7369
7112
|
canAnswerQuestion: () => {
|
|
@@ -7377,7 +7120,7 @@ var ActivityPreviewByData = ({
|
|
|
7377
7120
|
) : selectedType === "MCMA" && data["MCMABodyMap"] != null && data["MCMAMaterialMap"] != null ? /* @__PURE__ */ jsx47(
|
|
7378
7121
|
MCMAActivityContent_default,
|
|
7379
7122
|
{
|
|
7380
|
-
|
|
7123
|
+
answerMap,
|
|
7381
7124
|
changeAnswer: () => {
|
|
7382
7125
|
},
|
|
7383
7126
|
canAnswerQuestion: () => {
|
|
@@ -7391,7 +7134,7 @@ var ActivityPreviewByData = ({
|
|
|
7391
7134
|
) : selectedType === "MATCHING" && data["matchingBodyMap"] != null && data["matchingMaterialMap"] != null ? /* @__PURE__ */ jsx47(
|
|
7392
7135
|
MatchingActivityContent_default,
|
|
7393
7136
|
{
|
|
7394
|
-
|
|
7137
|
+
answerMap,
|
|
7395
7138
|
changeAnswer: () => {
|
|
7396
7139
|
},
|
|
7397
7140
|
canAnswerQuestion: () => {
|
|
@@ -7404,7 +7147,7 @@ var ActivityPreviewByData = ({
|
|
|
7404
7147
|
) : selectedType === "GROUPING" && data["groupingBodyMap"] != null && data["groupingMaterialMap"] != null ? /* @__PURE__ */ jsx47(
|
|
7405
7148
|
GroupingActivityContent_default,
|
|
7406
7149
|
{
|
|
7407
|
-
|
|
7150
|
+
answerMap,
|
|
7408
7151
|
changeAnswer: () => {
|
|
7409
7152
|
},
|
|
7410
7153
|
canAnswerQuestion: () => {
|
|
@@ -7417,7 +7160,7 @@ var ActivityPreviewByData = ({
|
|
|
7417
7160
|
) : selectedType === "FILL_IN_THE_BLANKS" && data["fillInTheBlanksBodyMap"] != null && data["fillInTheBlanksMaterialMap"] != null ? /* @__PURE__ */ jsx47(
|
|
7418
7161
|
FillInTheBlanksActivityContent_default,
|
|
7419
7162
|
{
|
|
7420
|
-
|
|
7163
|
+
answerMap,
|
|
7421
7164
|
changeAnswer: () => {
|
|
7422
7165
|
},
|
|
7423
7166
|
canAnswerQuestion: () => {
|
|
@@ -7431,7 +7174,7 @@ var ActivityPreviewByData = ({
|
|
|
7431
7174
|
) : selectedType === "OPEN_ENDED" && data["openEndedBodyMap"] != null ? /* @__PURE__ */ jsx47(
|
|
7432
7175
|
OpenEndedActivityContent_default,
|
|
7433
7176
|
{
|
|
7434
|
-
|
|
7177
|
+
answerMap,
|
|
7435
7178
|
canAnswerQuestion: () => false,
|
|
7436
7179
|
changeAnswer: () => {
|
|
7437
7180
|
},
|
|
@@ -7443,7 +7186,7 @@ var ActivityPreviewByData = ({
|
|
|
7443
7186
|
) : selectedType === "TRUE_FALSE" && data["trueFalseBodyMap"] != null && data["trueFalseMaterialMap"] != null ? /* @__PURE__ */ jsx47(
|
|
7444
7187
|
TrueFalseActivityContent_default,
|
|
7445
7188
|
{
|
|
7446
|
-
|
|
7189
|
+
answerMap,
|
|
7447
7190
|
changeAnswer: () => {
|
|
7448
7191
|
},
|
|
7449
7192
|
canAnswerQuestion: () => {
|
|
@@ -7476,135 +7219,157 @@ var ActivityPreviewByData_default = ActivityPreviewByData;
|
|
|
7476
7219
|
// src/components/activities/ActivityPreviewByAnswerData.tsx
|
|
7477
7220
|
import { useEffect as useEffect16, useState as useState25 } from "react";
|
|
7478
7221
|
import { Fragment as Fragment12, jsx as jsx48, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
7222
|
+
var ACTIVITY_TEMPLATE_LIST = [
|
|
7223
|
+
{ type: "ORDERING", materialMap: "orderingMaterialMap" },
|
|
7224
|
+
{ type: "DROPDOWN", materialMap: "dropdownMaterialMap" },
|
|
7225
|
+
{ type: "MCSA", materialMap: "MCSAMaterialMap" },
|
|
7226
|
+
{ type: "MCMA", materialMap: "MCMAMaterialMap" },
|
|
7227
|
+
{ type: "MATCHING", materialMap: "matchingMaterialMap" },
|
|
7228
|
+
{ type: "GROUPING", materialMap: "groupingMaterialMap" },
|
|
7229
|
+
{
|
|
7230
|
+
type: "FILL_IN_THE_BLANKS",
|
|
7231
|
+
materialMap: "fillInTheBlanksMaterialMap"
|
|
7232
|
+
},
|
|
7233
|
+
{ type: "OPEN_ENDED", materialMap: "openEndedMaterialMap" },
|
|
7234
|
+
{ type: "TRUE_FALSE", materialMap: "trueFalseMaterialMap" }
|
|
7235
|
+
];
|
|
7479
7236
|
var ActivityPreviewByAnswerData = ({
|
|
7480
7237
|
data,
|
|
7238
|
+
answerType = null,
|
|
7481
7239
|
showType = true,
|
|
7482
7240
|
showDescription = true,
|
|
7483
|
-
|
|
7484
|
-
typeOptionList = [],
|
|
7241
|
+
lockedTypeList = [],
|
|
7485
7242
|
showSolution = false,
|
|
7486
7243
|
showEvaluationRubric = false,
|
|
7487
7244
|
showDifficulty = true,
|
|
7488
7245
|
isFullScreen = false,
|
|
7489
7246
|
showCorrectAnswer = false
|
|
7490
7247
|
}) => {
|
|
7491
|
-
var _a;
|
|
7492
|
-
const [key, setKey] = useState25((/* @__PURE__ */ new Date()).getTime());
|
|
7493
7248
|
const [selectedType, setSelectedType] = useState25(null);
|
|
7494
7249
|
const [optionList, setOptionList] = useState25([]);
|
|
7495
|
-
const [
|
|
7250
|
+
const [answerMapMap, setAnswerMapMap] = useState25({});
|
|
7251
|
+
const [activityTemplateTypeList, setActivityTemplateTypeList] = useState25([]);
|
|
7496
7252
|
useEffect16(() => {
|
|
7497
7253
|
if (!data) return;
|
|
7498
|
-
|
|
7499
|
-
|
|
7500
|
-
|
|
7501
|
-
if (
|
|
7502
|
-
|
|
7503
|
-
(
|
|
7254
|
+
let currentActivityTemplateMapList = JSON.parse(
|
|
7255
|
+
JSON.stringify(ACTIVITY_TEMPLATE_LIST)
|
|
7256
|
+
);
|
|
7257
|
+
if (lockedTypeList.length > 0) {
|
|
7258
|
+
currentActivityTemplateMapList = currentActivityTemplateMapList.filter(
|
|
7259
|
+
(activityTemplateMap) => lockedTypeList.includes(activityTemplateMap.type)
|
|
7504
7260
|
);
|
|
7505
|
-
return foundAnswer || null;
|
|
7506
7261
|
}
|
|
7507
|
-
|
|
7508
|
-
|
|
7509
|
-
|
|
7510
|
-
|
|
7511
|
-
const constructAnswerBasedOnData2 = () => {
|
|
7512
|
-
const newAnswer = { data: [] };
|
|
7513
|
-
const activityTypes = [
|
|
7514
|
-
{ type: "ORDERING", materialMap: "orderingMaterialMap" },
|
|
7515
|
-
{ type: "DROPDOWN", materialMap: "dropdownMaterialMap" },
|
|
7516
|
-
{ type: "MCSA", materialMap: "MCSAMaterialMap" },
|
|
7517
|
-
{ type: "MCMA", materialMap: "MCMAMaterialMap" },
|
|
7518
|
-
{ type: "MATCHING", materialMap: "matchingMaterialMap" },
|
|
7519
|
-
{ type: "GROUPING", materialMap: "groupingMaterialMap" },
|
|
7520
|
-
{
|
|
7521
|
-
type: "FILL_IN_THE_BLANKS",
|
|
7522
|
-
materialMap: "fillInTheBlanksMaterialMap"
|
|
7523
|
-
},
|
|
7524
|
-
{ type: "OPEN_ENDED", materialMap: "openEndedMaterialMap" },
|
|
7525
|
-
{ type: "TRUE_FALSE", materialMap: "trueFalseMaterialMap" }
|
|
7526
|
-
];
|
|
7527
|
-
activityTypes.forEach(({ type, materialMap }) => {
|
|
7528
|
-
if (data[materialMap]) {
|
|
7529
|
-
const foundAnswer = checkAnswerMapExists(type);
|
|
7530
|
-
const answerItem = foundAnswer || constructActivityAnswerMap(
|
|
7531
|
-
{ type },
|
|
7532
|
-
JSON.parse(JSON.stringify(data))
|
|
7533
|
-
);
|
|
7534
|
-
newAnswer.data.push(answerItem);
|
|
7535
|
-
}
|
|
7536
|
-
});
|
|
7537
|
-
setAnswer(newAnswer);
|
|
7538
|
-
if (newAnswer.data.length > 0) {
|
|
7539
|
-
if (lockedType && newAnswer.data.find((item) => item.type === lockedType)) {
|
|
7540
|
-
setSelectedType(lockedType);
|
|
7541
|
-
} else {
|
|
7542
|
-
setSelectedType(newAnswer.data[0].type);
|
|
7543
|
-
}
|
|
7262
|
+
const currentActivityTemplateTypeList = [];
|
|
7263
|
+
for (const activityTemplateMap of currentActivityTemplateMapList) {
|
|
7264
|
+
if (data[activityTemplateMap.materialMap]) {
|
|
7265
|
+
currentActivityTemplateTypeList.push(activityTemplateMap);
|
|
7544
7266
|
}
|
|
7545
|
-
};
|
|
7546
|
-
constructAnswerBasedOnData2();
|
|
7547
|
-
}, [data, lockedType]);
|
|
7548
|
-
useEffect16(() => {
|
|
7549
|
-
if (!data || !answer.data.length) return;
|
|
7550
|
-
let currentTypeOptionList = typeOptionList || answer.data.map((item) => ({
|
|
7551
|
-
id: item.type,
|
|
7552
|
-
text: i18n_default.t(item.type)
|
|
7553
|
-
}));
|
|
7554
|
-
if (lockedType) {
|
|
7555
|
-
currentTypeOptionList = currentTypeOptionList.filter(
|
|
7556
|
-
(typeOption) => typeOption.id === lockedType
|
|
7557
|
-
);
|
|
7558
7267
|
}
|
|
7559
|
-
|
|
7560
|
-
|
|
7561
|
-
|
|
7562
|
-
|
|
7563
|
-
|
|
7268
|
+
setActivityTemplateTypeList(currentActivityTemplateMapList);
|
|
7269
|
+
}, [data, answerType, lockedTypeList]);
|
|
7270
|
+
useEffect16(() => {
|
|
7271
|
+
if (activityTemplateTypeList.length === 0) return;
|
|
7272
|
+
const currentOptionList = [];
|
|
7273
|
+
for (const activityTemplateType of activityTemplateTypeList) {
|
|
7274
|
+
const currentTypeOption = {
|
|
7275
|
+
id: activityTemplateType.type,
|
|
7276
|
+
value: i18n_default.t(activityTemplateType.type)
|
|
7277
|
+
};
|
|
7278
|
+
if (showDifficulty) {
|
|
7279
|
+
currentTypeOption.subText = i18n_default.t(
|
|
7280
|
+
retrieveDifficultyByActivityTypeFromData(
|
|
7281
|
+
activityTemplateType.type,
|
|
7282
|
+
data
|
|
7564
7283
|
)
|
|
7565
|
-
|
|
7566
|
-
|
|
7567
|
-
|
|
7568
|
-
|
|
7284
|
+
);
|
|
7285
|
+
}
|
|
7286
|
+
currentOptionList.push(currentTypeOption);
|
|
7287
|
+
}
|
|
7288
|
+
setOptionList(currentOptionList);
|
|
7289
|
+
}, [activityTemplateTypeList, showDifficulty]);
|
|
7290
|
+
useEffect16(() => {
|
|
7291
|
+
if (optionList.length === 0) return;
|
|
7292
|
+
setSelectedType(optionList[0].id);
|
|
7293
|
+
}, [optionList]);
|
|
7294
|
+
useEffect16(() => {
|
|
7295
|
+
if (activityTemplateTypeList.length === 0) return;
|
|
7296
|
+
const currentAnswerMapMap = {};
|
|
7297
|
+
for (const activityTemplateMap of activityTemplateTypeList) {
|
|
7298
|
+
if (answerType === activityTemplateMap.type) {
|
|
7299
|
+
currentAnswerMapMap[activityTemplateMap.type] = data.answerMap;
|
|
7300
|
+
} else {
|
|
7301
|
+
currentAnswerMapMap[activityTemplateMap.type] = constructActivityAnswerMap(
|
|
7302
|
+
{ type: activityTemplateMap.type },
|
|
7303
|
+
JSON.parse(JSON.stringify(data))
|
|
7304
|
+
);
|
|
7305
|
+
}
|
|
7569
7306
|
}
|
|
7570
|
-
|
|
7307
|
+
setAnswerMapMap(currentAnswerMapMap);
|
|
7308
|
+
}, [activityTemplateTypeList]);
|
|
7571
7309
|
const RenderSelectedActivityContent = () => {
|
|
7310
|
+
if (!selectedType) return null;
|
|
7572
7311
|
const commonProps = {
|
|
7573
|
-
|
|
7312
|
+
answerMap: answerMapMap[selectedType],
|
|
7574
7313
|
data,
|
|
7575
7314
|
canAnswerQuestion: () => true,
|
|
7576
|
-
// changeAnswer: (newAnswer: Answer) =>
|
|
7577
|
-
// setAnswer(JSON.parse(JSON.stringify(newAnswer))),
|
|
7578
7315
|
changeAnswer: () => {
|
|
7579
7316
|
},
|
|
7580
7317
|
isPreview: true,
|
|
7581
7318
|
showCorrectAnswer,
|
|
7582
7319
|
isFullScreen
|
|
7583
7320
|
};
|
|
7321
|
+
const isEmpty = answerMapMap[selectedType].isEmpty;
|
|
7584
7322
|
switch (selectedType) {
|
|
7585
7323
|
case "ORDERING":
|
|
7586
|
-
return data.orderingBodyMap && data.orderingMaterialMap ? /* @__PURE__ */
|
|
7324
|
+
return data.orderingBodyMap && data.orderingMaterialMap ? /* @__PURE__ */ jsxs37(Fragment12, { children: [
|
|
7325
|
+
isEmpty && /* @__PURE__ */ jsx48(ActivityEmptyContent_default, {}),
|
|
7326
|
+
/* @__PURE__ */ jsx48(OrderingActivityContent_default, __spreadValues({}, commonProps))
|
|
7327
|
+
] }) : null;
|
|
7587
7328
|
case "DROPDOWN":
|
|
7588
|
-
return data.dropdownBodyMap && data.dropdownMaterialMap ? /* @__PURE__ */
|
|
7329
|
+
return data.dropdownBodyMap && data.dropdownMaterialMap ? /* @__PURE__ */ jsxs37(Fragment12, { children: [
|
|
7330
|
+
isEmpty && /* @__PURE__ */ jsx48(ActivityEmptyContent_default, {}),
|
|
7331
|
+
/* @__PURE__ */ jsx48(DropdownActivityContent_default, __spreadValues({}, commonProps))
|
|
7332
|
+
] }) : null;
|
|
7589
7333
|
case "MCSA":
|
|
7590
|
-
return data.MCSABodyMap && data.MCSAMaterialMap ? /* @__PURE__ */
|
|
7334
|
+
return data.MCSABodyMap && data.MCSAMaterialMap ? /* @__PURE__ */ jsxs37(Fragment12, { children: [
|
|
7335
|
+
isEmpty && /* @__PURE__ */ jsx48(ActivityEmptyContent_default, {}),
|
|
7336
|
+
/* @__PURE__ */ jsx48(MCSAActivityContent_default, __spreadValues({}, commonProps))
|
|
7337
|
+
] }) : null;
|
|
7591
7338
|
case "MCMA":
|
|
7592
|
-
return data.MCMABodyMap && data.MCMAMaterialMap ? /* @__PURE__ */
|
|
7339
|
+
return data.MCMABodyMap && data.MCMAMaterialMap ? /* @__PURE__ */ jsxs37(Fragment12, { children: [
|
|
7340
|
+
isEmpty && /* @__PURE__ */ jsx48(ActivityEmptyContent_default, {}),
|
|
7341
|
+
/* @__PURE__ */ jsx48(MCMAActivityContent_default, __spreadValues({}, commonProps))
|
|
7342
|
+
] }) : null;
|
|
7593
7343
|
case "MATCHING":
|
|
7594
|
-
return data.matchingBodyMap && data.matchingMaterialMap ? /* @__PURE__ */
|
|
7344
|
+
return data.matchingBodyMap && data.matchingMaterialMap ? /* @__PURE__ */ jsxs37(Fragment12, { children: [
|
|
7345
|
+
isEmpty && /* @__PURE__ */ jsx48(ActivityEmptyContent_default, {}),
|
|
7346
|
+
/* @__PURE__ */ jsx48(MatchingActivityContent_default, __spreadValues({}, commonProps))
|
|
7347
|
+
] }) : null;
|
|
7595
7348
|
case "GROUPING":
|
|
7596
|
-
return data.groupingBodyMap && data.groupingMaterialMap ? /* @__PURE__ */
|
|
7349
|
+
return data.groupingBodyMap && data.groupingMaterialMap ? /* @__PURE__ */ jsxs37(Fragment12, { children: [
|
|
7350
|
+
isEmpty && /* @__PURE__ */ jsx48(ActivityEmptyContent_default, {}),
|
|
7351
|
+
/* @__PURE__ */ jsx48(GroupingActivityContent_default, __spreadValues({}, commonProps))
|
|
7352
|
+
] }) : null;
|
|
7597
7353
|
case "FILL_IN_THE_BLANKS":
|
|
7598
|
-
return data.fillInTheBlanksBodyMap && data.fillInTheBlanksMaterialMap ? /* @__PURE__ */
|
|
7354
|
+
return data.fillInTheBlanksBodyMap && data.fillInTheBlanksMaterialMap ? /* @__PURE__ */ jsxs37(Fragment12, { children: [
|
|
7355
|
+
isEmpty && /* @__PURE__ */ jsx48(ActivityEmptyContent_default, {}),
|
|
7356
|
+
/* @__PURE__ */ jsx48(FillInTheBlanksActivityContent_default, __spreadValues({}, commonProps))
|
|
7357
|
+
] }) : null;
|
|
7599
7358
|
case "OPEN_ENDED":
|
|
7600
|
-
return data.openEndedBodyMap ? /* @__PURE__ */
|
|
7601
|
-
|
|
7602
|
-
|
|
7603
|
-
|
|
7604
|
-
|
|
7605
|
-
|
|
7359
|
+
return data.openEndedBodyMap ? /* @__PURE__ */ jsxs37(Fragment12, { children: [
|
|
7360
|
+
isEmpty && /* @__PURE__ */ jsx48(ActivityEmptyContent_default, {}),
|
|
7361
|
+
/* @__PURE__ */ jsx48(
|
|
7362
|
+
OpenEndedActivityContent_default,
|
|
7363
|
+
__spreadProps(__spreadValues({}, commonProps), {
|
|
7364
|
+
showMaterialContent: true
|
|
7365
|
+
})
|
|
7366
|
+
)
|
|
7367
|
+
] }) : null;
|
|
7606
7368
|
case "TRUE_FALSE":
|
|
7607
|
-
return data.trueFalseBodyMap && data.trueFalseMaterialMap ? /* @__PURE__ */
|
|
7369
|
+
return data.trueFalseBodyMap && data.trueFalseMaterialMap ? /* @__PURE__ */ jsxs37(Fragment12, { children: [
|
|
7370
|
+
isEmpty && /* @__PURE__ */ jsx48(ActivityEmptyContent_default, {}),
|
|
7371
|
+
/* @__PURE__ */ jsx48(TrueFalseActivityContent_default, __spreadValues({}, commonProps))
|
|
7372
|
+
] }) : null;
|
|
7608
7373
|
default:
|
|
7609
7374
|
return null;
|
|
7610
7375
|
}
|
|
@@ -7627,10 +7392,7 @@ var ActivityPreviewByAnswerData = ({
|
|
|
7627
7392
|
] }),
|
|
7628
7393
|
/* @__PURE__ */ jsx48(DividerLine_default, {})
|
|
7629
7394
|
] }) : null,
|
|
7630
|
-
/* @__PURE__ */
|
|
7631
|
-
((_a = answer == null ? void 0 : answer.data[0]) == null ? void 0 : _a.isEmpty) ? /* @__PURE__ */ jsx48(ActivityEmptyContent_default, {}) : null,
|
|
7632
|
-
selectedType ? /* @__PURE__ */ jsx48("div", { children: RenderSelectedActivityContent() }, selectedType) : null
|
|
7633
|
-
] }),
|
|
7395
|
+
/* @__PURE__ */ jsx48("div", { className: "flex flex-col my-2 w-full p-5", children: RenderSelectedActivityContent() }),
|
|
7634
7396
|
selectedType && showSolution ? /* @__PURE__ */ jsx48("div", { className: "my-4", children: /* @__PURE__ */ jsx48(
|
|
7635
7397
|
ActivitySolutionContent_default,
|
|
7636
7398
|
{
|
|
@@ -7645,7 +7407,7 @@ var ActivityPreviewByAnswerData = ({
|
|
|
7645
7407
|
data
|
|
7646
7408
|
}
|
|
7647
7409
|
) }) : null
|
|
7648
|
-
] }
|
|
7410
|
+
] });
|
|
7649
7411
|
};
|
|
7650
7412
|
var ActivityPreviewByAnswerData_default = ActivityPreviewByAnswerData;
|
|
7651
7413
|
|
|
@@ -10822,7 +10584,6 @@ export {
|
|
|
10822
10584
|
calculateLevenshteinDistance,
|
|
10823
10585
|
calculateStartDateOfWeek,
|
|
10824
10586
|
checkActivityAnswerState,
|
|
10825
|
-
checkIfAnswerIsEmpty,
|
|
10826
10587
|
constructActivityAnswerMap,
|
|
10827
10588
|
constructActivityAnswerStateList,
|
|
10828
10589
|
constructActivityData,
|