catchup-library-web 1.13.1 → 1.14.0
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 +12 -32
- package/dist/index.d.ts +12 -32
- package/dist/index.js +108 -205
- package/dist/index.mjs +107 -202
- package/package.json +1 -1
- package/src/components/activities/ActivityPreviewByAnswerData.tsx +10 -41
- package/src/components/activities/ActivityPreviewByData.tsx +8 -32
- package/src/properties/ActivityProperties.ts +2 -2
- package/src/utilization/CatchtivityUtilization.ts +68 -140
- package/src/utilization/CategoryUtilization.ts +24 -24
- package/src/utilization/IndividualModelUtilization.ts +8 -14
|
@@ -13,7 +13,10 @@ import ActivitySolutionContent from "./solution-content/ActivitySolutionContent"
|
|
|
13
13
|
import ActivityEvaluationRubricContent from "./evaluation-rubric-content/ActivityEvaluationRubricContent";
|
|
14
14
|
import DividerLine from "../dividers/DividerLine";
|
|
15
15
|
import i18n from "../../language/i18n";
|
|
16
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
constructActivityAnswerMap,
|
|
18
|
+
retrieveDifficultyByActivityTypeFromData,
|
|
19
|
+
} from "../../utilization/CatchtivityUtilization";
|
|
17
20
|
import { IActivityPreviewByAnswerDataProps } from "../../properties/ActivityProperties";
|
|
18
21
|
import ActivityEmptyContent from "./empty-content/ActivityEmptyContent";
|
|
19
22
|
|
|
@@ -25,14 +28,13 @@ const ActivityPreviewByAnswerData = ({
|
|
|
25
28
|
typeOptionList = [],
|
|
26
29
|
showSolution = false,
|
|
27
30
|
showEvaluationRubric = false,
|
|
28
|
-
|
|
31
|
+
showDifficulty = true,
|
|
29
32
|
isFullScreen = false,
|
|
30
33
|
showCorrectAnswer = false,
|
|
31
34
|
}: IActivityPreviewByAnswerDataProps) => {
|
|
32
35
|
const [key, setKey] = useState(new Date().getTime());
|
|
33
36
|
const [selectedType, setSelectedType] = useState<string | null>(null);
|
|
34
37
|
const [optionList, setOptionList] = useState<any[]>([]);
|
|
35
|
-
// Define proper types for answer data
|
|
36
38
|
interface AnswerItem {
|
|
37
39
|
type: string;
|
|
38
40
|
isEmpty?: boolean;
|
|
@@ -46,13 +48,11 @@ const ActivityPreviewByAnswerData = ({
|
|
|
46
48
|
|
|
47
49
|
const [answer, setAnswer] = useState<Answer>({ data: [] });
|
|
48
50
|
|
|
49
|
-
// Reset component when data changes
|
|
50
51
|
useEffect(() => {
|
|
51
52
|
if (!data) return;
|
|
52
53
|
setKey(new Date().getTime());
|
|
53
54
|
}, [data]);
|
|
54
55
|
|
|
55
|
-
// Helper function to check if answer map exists for a specific type
|
|
56
56
|
const checkAnswerMapExists = (type: string): AnswerItem | null => {
|
|
57
57
|
if (data && data.answerMap && Array.isArray(data.answerMap)) {
|
|
58
58
|
const foundAnswer = data.answerMap.find(
|
|
@@ -63,37 +63,6 @@ const ActivityPreviewByAnswerData = ({
|
|
|
63
63
|
return null;
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
// Helper function to retrieve taxonomy name from activity type
|
|
67
|
-
const retrieveTaxonomyNameFromActivityType = (type: string) => {
|
|
68
|
-
if (!data) return "";
|
|
69
|
-
|
|
70
|
-
let taxonomyMap = { name: "" };
|
|
71
|
-
|
|
72
|
-
const taxonomyMapNames: { [key: string]: string } = {
|
|
73
|
-
ORDERING: "orderingTaxonomyMap",
|
|
74
|
-
DROPDOWN: "dropdownTaxonomyMap",
|
|
75
|
-
MCSA: "MCSATaxonomyMap",
|
|
76
|
-
MCMA: "MCMATaxonomyMap",
|
|
77
|
-
MATCHING: "matchingTaxonomyMap",
|
|
78
|
-
GROUPING: "groupingTaxonomyMap",
|
|
79
|
-
FILL_IN_THE_BLANKS: "fillInTheBlanksTaxonomyMap",
|
|
80
|
-
OPEN_ENDED: "openEndedTaxonomyMap",
|
|
81
|
-
TRUE_FALSE: "trueFalseTaxonomyMap",
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const mapName = taxonomyMapNames[type];
|
|
85
|
-
if (mapName && data[mapName]) {
|
|
86
|
-
try {
|
|
87
|
-
taxonomyMap = JSON.parse(data[mapName]);
|
|
88
|
-
} catch (error) {
|
|
89
|
-
console.error(`Error parsing taxonomy map for ${type}:`, error);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return taxonomyMap.name || "";
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
// Construct answer data based on available activity types
|
|
97
66
|
useEffect(() => {
|
|
98
67
|
if (!data) return;
|
|
99
68
|
|
|
@@ -146,7 +115,6 @@ const ActivityPreviewByAnswerData = ({
|
|
|
146
115
|
constructAnswerBasedOnData();
|
|
147
116
|
}, [data, lockedType]);
|
|
148
117
|
|
|
149
|
-
// Set up option list for type selection
|
|
150
118
|
useEffect(() => {
|
|
151
119
|
if (!data || !answer.data.length) return;
|
|
152
120
|
|
|
@@ -163,19 +131,20 @@ const ActivityPreviewByAnswerData = ({
|
|
|
163
131
|
);
|
|
164
132
|
}
|
|
165
133
|
|
|
166
|
-
if (
|
|
134
|
+
if (showDifficulty) {
|
|
167
135
|
setOptionList(
|
|
168
136
|
currentTypeOptionList.map((typeOption: any) => ({
|
|
169
137
|
...typeOption,
|
|
170
|
-
subText: i18n.t(
|
|
138
|
+
subText: i18n.t(
|
|
139
|
+
retrieveDifficultyByActivityTypeFromData(typeOption.id, data)
|
|
140
|
+
),
|
|
171
141
|
}))
|
|
172
142
|
);
|
|
173
143
|
} else {
|
|
174
144
|
setOptionList(currentTypeOptionList);
|
|
175
145
|
}
|
|
176
|
-
}, [data, answer.data, lockedType, typeOptionList,
|
|
146
|
+
}, [data, answer.data, lockedType, typeOptionList, showDifficulty]);
|
|
177
147
|
|
|
178
|
-
// Render the appropriate activity content based on selected type
|
|
179
148
|
const RenderSelectedActivityContent = () => {
|
|
180
149
|
const commonProps = {
|
|
181
150
|
answer,
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
constructAnswerBasedOnData,
|
|
4
|
+
retrieveDifficultyByActivityTypeFromData,
|
|
5
|
+
} from "../../utilization/CatchtivityUtilization";
|
|
3
6
|
import DropdownActivityContent from "./DropdownActivityContent";
|
|
4
7
|
import FillInTheBlanksActivityContent from "./FillInTheBlanksActivityContent";
|
|
5
8
|
import GroupingActivityContent from "./GroupingActivityContent";
|
|
@@ -23,7 +26,7 @@ const ActivityPreviewByData = ({
|
|
|
23
26
|
typeOptionList,
|
|
24
27
|
showSolution,
|
|
25
28
|
showEvaluationRubric,
|
|
26
|
-
|
|
29
|
+
showDifficulty,
|
|
27
30
|
isFullScreen,
|
|
28
31
|
}: IActivityPreviewByDataProps) => {
|
|
29
32
|
const [key, setKey] = useState(new Date().getTime());
|
|
@@ -52,33 +55,6 @@ const ActivityPreviewByData = ({
|
|
|
52
55
|
}, [typeOptionList, lockedType]);
|
|
53
56
|
|
|
54
57
|
useEffect(() => {
|
|
55
|
-
const retrieveTaxonomyNameByActivityTypeFromData = (
|
|
56
|
-
type: string | null
|
|
57
|
-
) => {
|
|
58
|
-
let taxonomyMap = {
|
|
59
|
-
name: "",
|
|
60
|
-
};
|
|
61
|
-
if (type === "ORDERING") {
|
|
62
|
-
taxonomyMap = JSON.parse(data["orderingTaxonomyMap"]);
|
|
63
|
-
} else if (type === "DROPDOWN") {
|
|
64
|
-
taxonomyMap = JSON.parse(data["dropdownTaxonomyMap"]);
|
|
65
|
-
} else if (type === "MCSA") {
|
|
66
|
-
taxonomyMap = JSON.parse(data["MCSATaxonomyMap"]);
|
|
67
|
-
} else if (type === "MCMA") {
|
|
68
|
-
taxonomyMap = JSON.parse(data["MCMATaxonomyMap"]);
|
|
69
|
-
} else if (type === "MATCHING") {
|
|
70
|
-
taxonomyMap = JSON.parse(data["matchingTaxonomyMap"]);
|
|
71
|
-
} else if (type === "GROUPING") {
|
|
72
|
-
taxonomyMap = JSON.parse(data["groupingTaxonomyMap"]);
|
|
73
|
-
} else if (type === "FILL_IN_THE_BLANKS") {
|
|
74
|
-
taxonomyMap = JSON.parse(data["fillInTheBlanksTaxonomyMap"]);
|
|
75
|
-
} else if (type === "OPEN_ENDED") {
|
|
76
|
-
taxonomyMap = JSON.parse(data["openEndedTaxonomyMap"]);
|
|
77
|
-
} else if (type === "TRUE_FALSE") {
|
|
78
|
-
taxonomyMap = JSON.parse(data["trueFalseTaxonomyMap"]);
|
|
79
|
-
}
|
|
80
|
-
return taxonomyMap.name;
|
|
81
|
-
};
|
|
82
58
|
if (!data) return;
|
|
83
59
|
if (!typeOptionList) return;
|
|
84
60
|
if (typeOptionList.length === 0) return;
|
|
@@ -88,19 +64,19 @@ const ActivityPreviewByData = ({
|
|
|
88
64
|
(typeOption: any) => typeOption.id === lockedType
|
|
89
65
|
);
|
|
90
66
|
}
|
|
91
|
-
if (
|
|
67
|
+
if (showDifficulty) {
|
|
92
68
|
setOptionList(
|
|
93
69
|
currentTypeOptionList.map((typeOption: any) => ({
|
|
94
70
|
...typeOption,
|
|
95
71
|
subText: i18n.t(
|
|
96
|
-
|
|
72
|
+
retrieveDifficultyByActivityTypeFromData(typeOption.id, data)
|
|
97
73
|
),
|
|
98
74
|
}))
|
|
99
75
|
);
|
|
100
76
|
} else {
|
|
101
77
|
setOptionList(currentTypeOptionList);
|
|
102
78
|
}
|
|
103
|
-
}, [data, lockedType, typeOptionList,
|
|
79
|
+
}, [data, lockedType, typeOptionList, showDifficulty]);
|
|
104
80
|
|
|
105
81
|
if (!data) return;
|
|
106
82
|
const answer = constructAnswerBasedOnData(data);
|
|
@@ -223,7 +223,7 @@ export interface IActivityPreviewByDataProps {
|
|
|
223
223
|
showDescription: boolean;
|
|
224
224
|
lockedType: string;
|
|
225
225
|
typeOptionList: any[];
|
|
226
|
-
|
|
226
|
+
showDifficulty: boolean;
|
|
227
227
|
showSolution: boolean;
|
|
228
228
|
showEvaluationRubric: boolean;
|
|
229
229
|
isFullScreen: boolean;
|
|
@@ -237,7 +237,7 @@ export interface IActivityPreviewByAnswerDataProps {
|
|
|
237
237
|
typeOptionList?: any[];
|
|
238
238
|
showSolution?: boolean;
|
|
239
239
|
showEvaluationRubric?: boolean;
|
|
240
|
-
|
|
240
|
+
showDifficulty?: boolean;
|
|
241
241
|
isFullScreen?: boolean;
|
|
242
242
|
showCorrectAnswer?: boolean;
|
|
243
243
|
}
|
|
@@ -109,93 +109,6 @@ export const retrieveDurationInSecondsOptionList = () => {
|
|
|
109
109
|
];
|
|
110
110
|
};
|
|
111
111
|
|
|
112
|
-
export const retrieveTaxonomyType = () => {
|
|
113
|
-
return [
|
|
114
|
-
{
|
|
115
|
-
value: "BLOOM",
|
|
116
|
-
text: i18n.t("BLOOM"),
|
|
117
|
-
},
|
|
118
|
-
];
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
export const retrieveTaxonomyGroupName = () => {
|
|
122
|
-
return [
|
|
123
|
-
{
|
|
124
|
-
type: "BLOOM",
|
|
125
|
-
value: "BLOOM",
|
|
126
|
-
text: i18n.t("BLOOM"),
|
|
127
|
-
},
|
|
128
|
-
];
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
export const retrieveTaxonomyName = () => {
|
|
132
|
-
return [
|
|
133
|
-
{
|
|
134
|
-
stage: 1,
|
|
135
|
-
groupName: "BLOOM",
|
|
136
|
-
value: "REMEMBER",
|
|
137
|
-
text: i18n.t("REMEMBER"),
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
stage: 2,
|
|
141
|
-
groupName: "BLOOM",
|
|
142
|
-
value: "UNDERSTAND",
|
|
143
|
-
text: i18n.t("UNDERSTAND"),
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
stage: 3,
|
|
147
|
-
groupName: "BLOOM",
|
|
148
|
-
value: "APPLY",
|
|
149
|
-
text: i18n.t("APPLY"),
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
stage: 4,
|
|
153
|
-
groupName: "BLOOM",
|
|
154
|
-
value: "ANALYZE",
|
|
155
|
-
text: i18n.t("ANALYZE"),
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
stage: 5,
|
|
159
|
-
groupName: "BLOOM",
|
|
160
|
-
value: "EVALUATE",
|
|
161
|
-
text: i18n.t("EVALUATE"),
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
stage: 6,
|
|
165
|
-
groupName: "BLOOM",
|
|
166
|
-
value: "CREATE",
|
|
167
|
-
text: i18n.t("CREATE"),
|
|
168
|
-
},
|
|
169
|
-
];
|
|
170
|
-
};
|
|
171
|
-
|
|
172
|
-
// export const constructInputWithSpecialExpressionList = (inputText: string) => {
|
|
173
|
-
// const inputPartList = [];
|
|
174
|
-
// if (!inputText) return [];
|
|
175
|
-
// const splittedBold = inputText.split("**");
|
|
176
|
-
// let isBold = false;
|
|
177
|
-
// for (let i = 0; i < splittedBold.length; i++) {
|
|
178
|
-
// let isUnderline = false;
|
|
179
|
-
// const splittedUnderline = splittedBold[i].split("__");
|
|
180
|
-
// for (let j = 0; j < splittedUnderline.length; j++) {
|
|
181
|
-
// let isEquation = false;
|
|
182
|
-
// const splittedEquation = splittedUnderline[j].split("$$");
|
|
183
|
-
// for (let k = 0; k < splittedEquation.length; k++) {
|
|
184
|
-
// inputPartList.push({
|
|
185
|
-
// value: splittedEquation[k],
|
|
186
|
-
// isEquation,
|
|
187
|
-
// isUnderline,
|
|
188
|
-
// isBold,
|
|
189
|
-
// });
|
|
190
|
-
// isEquation = !isEquation;
|
|
191
|
-
// }
|
|
192
|
-
// isUnderline = !isUnderline;
|
|
193
|
-
// }
|
|
194
|
-
// isBold = !isBold;
|
|
195
|
-
// }
|
|
196
|
-
// return inputPartList;
|
|
197
|
-
// };
|
|
198
|
-
|
|
199
112
|
export const constructInputWithSpecialExpressionList = (inputText: string) => {
|
|
200
113
|
const inputPartList = [];
|
|
201
114
|
if (!inputText) return [];
|
|
@@ -1477,45 +1390,45 @@ export const findBestFitActivity = (
|
|
|
1477
1390
|
activity;
|
|
1478
1391
|
const parsedData = JSON.parse(data);
|
|
1479
1392
|
const {
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1393
|
+
orderingDifficulty,
|
|
1394
|
+
dropdownDifficulty,
|
|
1395
|
+
MCSADifficulty,
|
|
1396
|
+
MCMADifficulty,
|
|
1397
|
+
matchingDifficulty,
|
|
1398
|
+
groupingDifficulty,
|
|
1399
|
+
fillInTheBlanksDifficulty,
|
|
1400
|
+
openEndedDifficulty,
|
|
1401
|
+
trueFalseDifficulty,
|
|
1489
1402
|
} = parsedData;
|
|
1490
|
-
const
|
|
1491
|
-
if (
|
|
1492
|
-
|
|
1403
|
+
const difficultyMap: any = {};
|
|
1404
|
+
if (orderingDifficulty) {
|
|
1405
|
+
difficultyMap["orderingDifficulty"] = JSON.parse(orderingDifficulty);
|
|
1493
1406
|
}
|
|
1494
|
-
if (
|
|
1495
|
-
|
|
1407
|
+
if (dropdownDifficulty) {
|
|
1408
|
+
difficultyMap["dropdownDifficulty"] = JSON.parse(dropdownDifficulty);
|
|
1496
1409
|
}
|
|
1497
|
-
if (
|
|
1498
|
-
|
|
1410
|
+
if (MCSADifficulty) {
|
|
1411
|
+
difficultyMap["MCSADifficulty"] = JSON.parse(MCSADifficulty);
|
|
1499
1412
|
}
|
|
1500
|
-
if (
|
|
1501
|
-
|
|
1413
|
+
if (MCMADifficulty) {
|
|
1414
|
+
difficultyMap["MCMADifficulty"] = JSON.parse(MCMADifficulty);
|
|
1502
1415
|
}
|
|
1503
|
-
if (
|
|
1504
|
-
|
|
1416
|
+
if (matchingDifficulty) {
|
|
1417
|
+
difficultyMap["matchingDifficulty"] = JSON.parse(matchingDifficulty);
|
|
1505
1418
|
}
|
|
1506
|
-
if (
|
|
1507
|
-
|
|
1419
|
+
if (groupingDifficulty) {
|
|
1420
|
+
difficultyMap["groupingDifficulty"] = JSON.parse(groupingDifficulty);
|
|
1508
1421
|
}
|
|
1509
|
-
if (
|
|
1510
|
-
|
|
1511
|
-
|
|
1422
|
+
if (fillInTheBlanksDifficulty) {
|
|
1423
|
+
difficultyMap["fillInTheBlanksDifficulty"] = JSON.parse(
|
|
1424
|
+
fillInTheBlanksDifficulty
|
|
1512
1425
|
);
|
|
1513
1426
|
}
|
|
1514
|
-
if (
|
|
1515
|
-
|
|
1427
|
+
if (trueFalseDifficulty) {
|
|
1428
|
+
difficultyMap["trueFalseDifficulty"] = JSON.parse(trueFalseDifficulty);
|
|
1516
1429
|
}
|
|
1517
|
-
if (
|
|
1518
|
-
|
|
1430
|
+
if (openEndedDifficulty) {
|
|
1431
|
+
difficultyMap["openEndedDifficulty"] = JSON.parse(openEndedDifficulty);
|
|
1519
1432
|
}
|
|
1520
1433
|
let coterieField = "VERBAL";
|
|
1521
1434
|
if (
|
|
@@ -1550,40 +1463,28 @@ export const findBestFitActivity = (
|
|
|
1550
1463
|
const activityTemplateValueMap: any = {};
|
|
1551
1464
|
for (const activityTemplateDTO of activityTemplateDTOList) {
|
|
1552
1465
|
const { type } = activityTemplateDTO;
|
|
1553
|
-
let
|
|
1466
|
+
let currentDifficulty: string = "";
|
|
1554
1467
|
if (type === "ORDERING") {
|
|
1555
|
-
|
|
1468
|
+
currentDifficulty = difficultyMap["orderingDifficulty"];
|
|
1556
1469
|
} else if (type === "DROPDOWN") {
|
|
1557
|
-
|
|
1470
|
+
currentDifficulty = difficultyMap["dropdownDifficulty"];
|
|
1558
1471
|
} else if (type === "MCSA") {
|
|
1559
|
-
|
|
1472
|
+
currentDifficulty = difficultyMap["MCSADifficulty"];
|
|
1560
1473
|
} else if (type === "MCMA") {
|
|
1561
|
-
|
|
1474
|
+
currentDifficulty = difficultyMap["MCMADifficulty"];
|
|
1562
1475
|
} else if (type === "MATCHING") {
|
|
1563
|
-
|
|
1476
|
+
currentDifficulty = difficultyMap["matchingDifficulty"];
|
|
1564
1477
|
} else if (type === "GROUPING") {
|
|
1565
|
-
|
|
1478
|
+
currentDifficulty = difficultyMap["groupingDifficulty"];
|
|
1566
1479
|
} else if (type === "FILL_IN_THE_BLANKS") {
|
|
1567
|
-
|
|
1480
|
+
currentDifficulty = difficultyMap["fillInTheBlanksDifficulty"];
|
|
1568
1481
|
} else if (type === "OPEN_ENDED") {
|
|
1569
|
-
|
|
1482
|
+
currentDifficulty = difficultyMap["openEndedDifficulty"];
|
|
1570
1483
|
} else if (type === "TRUE_FALSE") {
|
|
1571
|
-
|
|
1484
|
+
currentDifficulty = difficultyMap["trueFalseDifficulty"];
|
|
1572
1485
|
}
|
|
1573
1486
|
|
|
1574
|
-
const
|
|
1575
|
-
type: taxonomyType,
|
|
1576
|
-
groupName: taxonomyGroupName,
|
|
1577
|
-
name: taxonomyName,
|
|
1578
|
-
} = currentTaxonomyMap;
|
|
1579
|
-
const taxonomyString =
|
|
1580
|
-
taxonomyType.toLowerCase() +
|
|
1581
|
-
taxonomyGroupName.toLowerCase().charAt(0).toUpperCase() +
|
|
1582
|
-
taxonomyGroupName.toLowerCase().substring(1) +
|
|
1583
|
-
taxonomyName.toLowerCase().charAt(0).toUpperCase() +
|
|
1584
|
-
taxonomyName.toLowerCase().substring(1);
|
|
1585
|
-
|
|
1586
|
-
const currentTaxonomyScore = foundModel[taxonomyString];
|
|
1487
|
+
const currentDifficultyScore = foundModel[currentDifficulty];
|
|
1587
1488
|
const splittedTypeList = type.split("_");
|
|
1588
1489
|
let activityTemplateString = "";
|
|
1589
1490
|
for (let i = 0; i < splittedTypeList.length; i++) {
|
|
@@ -1596,7 +1497,7 @@ export const findBestFitActivity = (
|
|
|
1596
1497
|
}
|
|
1597
1498
|
}
|
|
1598
1499
|
const currentActivityTemplateScore = foundModel[activityTemplateString];
|
|
1599
|
-
const currentScore =
|
|
1500
|
+
const currentScore = currentDifficultyScore * currentActivityTemplateScore;
|
|
1600
1501
|
activityTemplateValueMap[type] = currentScore;
|
|
1601
1502
|
if (currentScore < bestScore) {
|
|
1602
1503
|
bestScore = currentScore;
|
|
@@ -2389,3 +2290,30 @@ export const constructActivityItemListSolutionOnly = (solutionMap: any) => {
|
|
|
2389
2290
|
});
|
|
2390
2291
|
return itemList;
|
|
2391
2292
|
};
|
|
2293
|
+
|
|
2294
|
+
export const retrieveDifficultyByActivityTypeFromData = (
|
|
2295
|
+
type: string,
|
|
2296
|
+
data: any
|
|
2297
|
+
) => {
|
|
2298
|
+
let difficulty = "";
|
|
2299
|
+
if (type === "ORDERING") {
|
|
2300
|
+
difficulty = data["orderingDifficulty"];
|
|
2301
|
+
} else if (type === "DROPDOWN") {
|
|
2302
|
+
difficulty = data["dropdownDifficulty"];
|
|
2303
|
+
} else if (type === "MCSA") {
|
|
2304
|
+
difficulty = data["MCSADifficulty"];
|
|
2305
|
+
} else if (type === "MCMA") {
|
|
2306
|
+
difficulty = data["MCMADifficulty"];
|
|
2307
|
+
} else if (type === "MATCHING") {
|
|
2308
|
+
difficulty = data["matchingDifficulty"];
|
|
2309
|
+
} else if (type === "GROUPING") {
|
|
2310
|
+
difficulty = data["groupingDifficulty"];
|
|
2311
|
+
} else if (type === "FILL_IN_THE_BLANKS") {
|
|
2312
|
+
difficulty = data["fillInTheBlanksDifficulty"];
|
|
2313
|
+
} else if (type === "OPEN_ENDED") {
|
|
2314
|
+
difficulty = data["openEndedDifficulty"];
|
|
2315
|
+
} else if (type === "TRUE_FALSE") {
|
|
2316
|
+
difficulty = data["trueFalseDifficulty"];
|
|
2317
|
+
}
|
|
2318
|
+
return difficulty;
|
|
2319
|
+
};
|
|
@@ -7,25 +7,25 @@ export const retrieveCategoryVersionCodeOptionList = () => {
|
|
|
7
7
|
value: "MEB-IO-MAT-2024",
|
|
8
8
|
text: i18n.t("MEB-IO-MAT-2024"),
|
|
9
9
|
type: "MATHEMATICS",
|
|
10
|
-
availableLevelList: [5],
|
|
10
|
+
availableLevelList: [5, 6],
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
value: "MEB-IO-MAT-2018",
|
|
14
14
|
text: i18n.t("MEB-IO-MAT-2018"),
|
|
15
15
|
type: "MATHEMATICS",
|
|
16
|
-
availableLevelList: [4,
|
|
16
|
+
availableLevelList: [4, 7, 8],
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
value: "MEB-IO-TUR-2024",
|
|
20
20
|
text: i18n.t("MEB-IO-TUR-2024"),
|
|
21
21
|
type: "TURKISH",
|
|
22
|
-
availableLevelList: [5],
|
|
22
|
+
availableLevelList: [5, 6],
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
value: "MEB-IO-TUR-2019",
|
|
26
26
|
text: i18n.t("MEB-IO-TUR-2019"),
|
|
27
27
|
type: "TURKISH",
|
|
28
|
-
availableLevelList: [4,
|
|
28
|
+
availableLevelList: [4, 7, 8],
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
value: "MEB-IO-HAY-2018",
|
|
@@ -43,25 +43,25 @@ export const retrieveCategoryVersionCodeOptionList = () => {
|
|
|
43
43
|
value: "MEB-IO-FEN-2024",
|
|
44
44
|
text: i18n.t("MEB-IO-FEN-2024"),
|
|
45
45
|
type: "SCIENCE",
|
|
46
|
-
availableLevelList: [5],
|
|
46
|
+
availableLevelList: [5, 6],
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
value: "MEB-IO-SCI-2018",
|
|
50
50
|
text: i18n.t("MEB-IO-SCI-2018"),
|
|
51
51
|
type: "SCIENCE",
|
|
52
|
-
availableLevelList: [4,
|
|
52
|
+
availableLevelList: [4, 7, 8],
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
value: "MEB-IO-SOS-2024",
|
|
56
56
|
text: i18n.t("MEB-IO-SOS-2024"),
|
|
57
57
|
type: "SOCIAL_STUDIES",
|
|
58
|
-
availableLevelList: [5],
|
|
58
|
+
availableLevelList: [5, 6],
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
value: "MEB-IO-SOS-2018",
|
|
62
62
|
text: i18n.t("MEB-IO-SOS-2018"),
|
|
63
63
|
type: "SOCIAL_STUDIES",
|
|
64
|
-
availableLevelList: [4,
|
|
64
|
+
availableLevelList: [4, 7],
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
value: "MEB-IO-ITA-2018",
|
|
@@ -79,61 +79,61 @@ export const retrieveCategoryVersionCodeOptionList = () => {
|
|
|
79
79
|
value: "MEB-AL-MAT-2024",
|
|
80
80
|
text: i18n.t("MEB-AL-MAT-2024"),
|
|
81
81
|
type: "MATHEMATICS",
|
|
82
|
-
availableLevelList: [9],
|
|
82
|
+
availableLevelList: [9, 10],
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
value: "MEB-AL-MAT-2018",
|
|
86
86
|
text: i18n.t("MEB-AL-MAT-2018"),
|
|
87
87
|
type: "MATHEMATICS",
|
|
88
|
-
availableLevelList: [
|
|
88
|
+
availableLevelList: [11, 12],
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
value: "MEB-AL-FİZ-2024",
|
|
92
92
|
text: i18n.t("MEB-AL-FİZ-2024"),
|
|
93
93
|
type: "PHYSICS",
|
|
94
|
-
availableLevelList: [9],
|
|
94
|
+
availableLevelList: [9, 10],
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
97
|
value: "MEB-AL-FIZ-2018",
|
|
98
98
|
text: i18n.t("MEB-AL-FIZ-2018"),
|
|
99
99
|
type: "PHYSICS",
|
|
100
|
-
availableLevelList: [
|
|
100
|
+
availableLevelList: [11, 12],
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
value: "MEB-AL-BİY-2024",
|
|
104
104
|
text: i18n.t("MEB-AL-BİY-2024"),
|
|
105
105
|
type: "BIOLOGY",
|
|
106
|
-
availableLevelList: [9],
|
|
106
|
+
availableLevelList: [9, 10],
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
109
|
value: "MEB-AL-BIO-2018",
|
|
110
110
|
text: i18n.t("MEB-AL-BIO-2018"),
|
|
111
111
|
type: "BIOLOGY",
|
|
112
|
-
availableLevelList: [
|
|
112
|
+
availableLevelList: [11, 12],
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
value: "MEB-AL-KİM-2024",
|
|
116
116
|
text: i18n.t("MEB-AL-KİM-2024"),
|
|
117
117
|
type: "CHEMISTRY",
|
|
118
|
-
availableLevelList: [9],
|
|
118
|
+
availableLevelList: [9, 10],
|
|
119
119
|
},
|
|
120
120
|
{
|
|
121
121
|
value: "MEB-AL-KIM-2018",
|
|
122
122
|
text: i18n.t("MEB-AL-KIM-2018"),
|
|
123
123
|
type: "CHEMISTRY",
|
|
124
|
-
availableLevelList: [
|
|
124
|
+
availableLevelList: [11, 12],
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
127
|
value: "MEB-AL-TAR-2024",
|
|
128
128
|
text: i18n.t("MEB-AL-TAR-2024"),
|
|
129
129
|
type: "HISTORY",
|
|
130
|
-
availableLevelList: [9],
|
|
130
|
+
availableLevelList: [9, 10],
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
value: "MEB-AL-TAR-2018",
|
|
134
134
|
text: i18n.t("MEB-AL-TAR-2018"),
|
|
135
135
|
type: "HISTORY",
|
|
136
|
-
availableLevelList: [
|
|
136
|
+
availableLevelList: [11],
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
value: "MEB-AL-ITA-2018",
|
|
@@ -145,13 +145,13 @@ export const retrieveCategoryVersionCodeOptionList = () => {
|
|
|
145
145
|
value: "MEB-AL-COĞ-2024",
|
|
146
146
|
text: i18n.t("MEB-AL-COĞ-2024"),
|
|
147
147
|
type: "GEOGRAPHY",
|
|
148
|
-
availableLevelList: [9],
|
|
148
|
+
availableLevelList: [9, 10],
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
value: "MEB-AL-COĞ-2018",
|
|
152
152
|
text: i18n.t("MEB-AL-COĞ-2018"),
|
|
153
153
|
type: "GEOGRAPHY",
|
|
154
|
-
availableLevelList: [
|
|
154
|
+
availableLevelList: [11, 12],
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
value: "MEB-IO-DKAB-2018",
|
|
@@ -169,25 +169,25 @@ export const retrieveCategoryVersionCodeOptionList = () => {
|
|
|
169
169
|
value: "MEB-AL-FEL-2024",
|
|
170
170
|
text: i18n.t("MEB-AL-FEL-2024"),
|
|
171
171
|
type: "PHILOSOPHY",
|
|
172
|
-
availableLevelList: [9],
|
|
172
|
+
availableLevelList: [9, 10],
|
|
173
173
|
},
|
|
174
174
|
{
|
|
175
175
|
value: "MEB-AL-FEL-2018",
|
|
176
176
|
text: i18n.t("MEB-AL-FEL-2018"),
|
|
177
177
|
type: "PHILOSOPHY",
|
|
178
|
-
availableLevelList: [
|
|
178
|
+
availableLevelList: [11],
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
181
|
value: "MEB-AL-TDE-2024",
|
|
182
182
|
text: i18n.t("MEB-AL-TDE-2024"),
|
|
183
183
|
type: "LITERATURE",
|
|
184
|
-
availableLevelList: [9],
|
|
184
|
+
availableLevelList: [9, 10],
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
187
|
value: "MEB-AL-LIT-2018",
|
|
188
188
|
text: i18n.t("MEB-AL-LIT-2018"),
|
|
189
189
|
type: "LITERATURE",
|
|
190
|
-
availableLevelList: [
|
|
190
|
+
availableLevelList: [11, 12],
|
|
191
191
|
},
|
|
192
192
|
// {
|
|
193
193
|
// value: "CEFR-STANDARDS-A1",
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
const NUMBER_OF_ACTIVITY_TEMPLATE = 9;
|
|
2
|
-
const
|
|
3
|
-
const
|
|
2
|
+
const NUMBER_OF_DIFFICULTY = 3;
|
|
3
|
+
const INITIAL_DIFFICULTY_VALUE = 1 / NUMBER_OF_DIFFICULTY;
|
|
4
4
|
const INITIAL_TEMPLATE_VALUE = 1 / NUMBER_OF_ACTIVITY_TEMPLATE;
|
|
5
5
|
|
|
6
6
|
export const constructBaseVerbalIndvidualModel = (userId: any) => {
|
|
7
7
|
return {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
bloomBloomEvaluate: INITIAL_TAXONOMY_VALUE,
|
|
12
|
-
bloomBloomRemember: INITIAL_TAXONOMY_VALUE,
|
|
13
|
-
bloomBloomUnderstand: INITIAL_TAXONOMY_VALUE,
|
|
8
|
+
easy: INITIAL_DIFFICULTY_VALUE,
|
|
9
|
+
medium: INITIAL_DIFFICULTY_VALUE,
|
|
10
|
+
hard: INITIAL_DIFFICULTY_VALUE,
|
|
14
11
|
dropdown: INITIAL_TEMPLATE_VALUE,
|
|
15
12
|
coterieField: "VERBAL",
|
|
16
13
|
fillInTheBlanks: INITIAL_TEMPLATE_VALUE,
|
|
@@ -27,12 +24,9 @@ export const constructBaseVerbalIndvidualModel = (userId: any) => {
|
|
|
27
24
|
|
|
28
25
|
export const constructBaseNumericIndividualModel = (userId: any) => {
|
|
29
26
|
return {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
bloomBloomEvaluate: INITIAL_TAXONOMY_VALUE,
|
|
34
|
-
bloomBloomRemember: INITIAL_TAXONOMY_VALUE,
|
|
35
|
-
bloomBloomUnderstand: INITIAL_TAXONOMY_VALUE,
|
|
27
|
+
easy: INITIAL_DIFFICULTY_VALUE,
|
|
28
|
+
medium: INITIAL_DIFFICULTY_VALUE,
|
|
29
|
+
hard: INITIAL_DIFFICULTY_VALUE,
|
|
36
30
|
dropdown: INITIAL_TEMPLATE_VALUE,
|
|
37
31
|
coterieField: "NUMERIC",
|
|
38
32
|
fillInTheBlanks: INITIAL_TEMPLATE_VALUE,
|