catchup-library-web 2.5.16 → 2.5.18

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "catchup-library-web",
3
- "version": "2.5.16",
3
+ "version": "2.5.18",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -26,7 +26,7 @@ const GroupingActivityContent = ({
26
26
  answerMap: any,
27
27
  key: any,
28
28
  value: string | null,
29
- index: number | null
29
+ index: number | null,
30
30
  ) => {
31
31
  if (isPreview) return;
32
32
  if (value) {
@@ -39,7 +39,9 @@ const GroupingActivityContent = ({
39
39
 
40
40
  return (
41
41
  <div className="flex flex-row flex-wrap h-full">
42
- <div className={`${isFullScreen ? "w-full" : "w-full md:w-[30%] md:overflow-y-auto"}`}>
42
+ <div
43
+ className={`${isFullScreen ? "w-full" : "w-full md:w-[40%] md:overflow-y-auto"}`}
44
+ >
43
45
  <ActivityBodyContent
44
46
  bodyMap={groupingBodyMap}
45
47
  templateType={"GROUPING"}
@@ -51,7 +53,9 @@ const GroupingActivityContent = ({
51
53
  <div className={`${isFullScreen ? "hidden" : "hidden md:block"}`}>
52
54
  <VerticalDividerLine />
53
55
  </div>
54
- <div className={`${isFullScreen ? "w-full" : "w-full md:flex-1 md:overflow-y-auto"}`}>
56
+ <div
57
+ className={`${isFullScreen ? "w-full" : "w-full md:flex-1 md:overflow-y-auto"}`}
58
+ >
55
59
  <GroupingActivityMaterialContent
56
60
  uniqueValue={JSON.stringify(data.contentMap)}
57
61
  answerMap={answerMap}
@@ -25,7 +25,7 @@ const MatchingActivityContent = ({
25
25
  const handleMatchingAnswerOnChange = (
26
26
  answerMap: any,
27
27
  key: any,
28
- value: string | null
28
+ value: string | null,
29
29
  ) => {
30
30
  if (isPreview) return;
31
31
  answerMap[key] = value;
@@ -34,7 +34,9 @@ const MatchingActivityContent = ({
34
34
 
35
35
  return (
36
36
  <div className="flex flex-row flex-wrap h-full">
37
- <div className={`${isFullScreen ? "w-full" : "w-full md:w-[30%] md:overflow-y-auto"}`}>
37
+ <div
38
+ className={`${isFullScreen ? "w-full" : "w-full md:w-[40%] md:overflow-y-auto"}`}
39
+ >
38
40
  <ActivityBodyContent
39
41
  bodyMap={matchingBodyMap}
40
42
  templateType={"MATCHING"}
@@ -46,7 +48,9 @@ const MatchingActivityContent = ({
46
48
  <div className={`${isFullScreen ? "hidden" : "hidden md:block"}`}>
47
49
  <VerticalDividerLine />
48
50
  </div>
49
- <div className={`${isFullScreen ? "w-full" : "w-full md:flex-1 md:overflow-y-auto"}`}>
51
+ <div
52
+ className={`${isFullScreen ? "w-full" : "w-full md:flex-1 md:overflow-y-auto"}`}
53
+ >
50
54
  <MatchingActivityMaterialContent
51
55
  uniqueValue={JSON.stringify(data.contentMap)}
52
56
  answerMap={answerMap}
@@ -25,7 +25,7 @@ const OrderingActivityContent = ({
25
25
  const handleOrderingAnswerOnChange = (
26
26
  answerMap: any,
27
27
  primaryKey: any,
28
- secondaryKey: any
28
+ secondaryKey: any,
29
29
  ) => {
30
30
  if (isPreview) return;
31
31
  const prevValue = answerMap[primaryKey];
@@ -36,7 +36,9 @@ const OrderingActivityContent = ({
36
36
 
37
37
  return (
38
38
  <div className="flex flex-row flex-wrap h-full">
39
- <div className={`${isFullScreen ? "w-full" : "w-full md:w-[30%] md:overflow-y-auto"}`}>
39
+ <div
40
+ className={`${isFullScreen ? "w-full" : "w-full md:w-[40%] md:overflow-y-auto"}`}
41
+ >
40
42
  <ActivityBodyContent
41
43
  bodyMap={orderingBodyMap}
42
44
  templateType={"ORDERING"}
@@ -48,7 +50,9 @@ const OrderingActivityContent = ({
48
50
  <div className={`${isFullScreen ? "hidden" : "hidden md:block"}`}>
49
51
  <VerticalDividerLine />
50
52
  </div>
51
- <div className={`${isFullScreen ? "w-full" : "w-full md:flex-1 md:overflow-y-auto"}`}>
53
+ <div
54
+ className={`${isFullScreen ? "w-full" : "w-full md:flex-1 md:overflow-y-auto"}`}
55
+ >
52
56
  <OrderingActivityMaterialContent
53
57
  uniqueValue={JSON.stringify(data.contentMap)}
54
58
  answerMap={answerMap}
@@ -47,15 +47,16 @@ const DropdownActivityMaterialContent = ({
47
47
  };
48
48
 
49
49
  return (
50
- <div className="flex flex-row flex-wrap items-center">
51
- <div className="hidden md:block">
50
+ <div className="flex flex-col h-full">
51
+ <div className="hidden md:block flex-shrink-0">
52
52
  <span className="font-semibold text-xl opacity-60">
53
53
  {i18n.t("please_select_dropdown_text")}
54
54
  </span>
55
55
  </div>
56
- <div className="hidden md:contents">
56
+ <div className="hidden md:block flex-shrink-0">
57
57
  <DividerLine />
58
58
  </div>
59
+ <div className="flex-1 min-h-0 overflow-y-auto">
59
60
  <div className="w-full flex flex-row flex-wrap">
60
61
  {Object.keys(displayAnswerMap).map(
61
62
  (materialKey: string, index: number) => {
@@ -215,6 +216,7 @@ const DropdownActivityMaterialContent = ({
215
216
  }
216
217
  )}
217
218
  </div>
219
+ </div>
218
220
  </div>
219
221
  );
220
222
  };
@@ -175,16 +175,16 @@ const FillInTheBlanksActivityMaterialContent = ({
175
175
 
176
176
  return (
177
177
  <div
178
- className="flex flex-row flex-wrap items-center"
178
+ className="flex flex-col h-full"
179
179
  onMouseMove={handleMouseMove}
180
180
  onMouseUp={handleMouseUp}
181
181
  >
182
- <div className="hidden md:block">
182
+ <div className="hidden md:block flex-shrink-0">
183
183
  <span className="font-semibold text-xl opacity-60">
184
184
  {i18n.t("please_select_fill_in_the_blanks_text")}
185
185
  </span>
186
186
  </div>
187
- <div className="hidden md:contents">
187
+ <div className="hidden md:block flex-shrink-0">
188
188
  <DividerLine />
189
189
  </div>
190
190
 
@@ -252,6 +252,7 @@ const FillInTheBlanksActivityMaterialContent = ({
252
252
  </div>
253
253
  )}
254
254
 
255
+ <div className="flex-1 min-h-0 overflow-y-auto">
255
256
  <div className="w-full flex flex-row flex-wrap gap-x-2 gap-y-2 my-2">
256
257
  {shuffleOptionList.map((option, index) =>
257
258
  checkAnswerProvided(displayAnswerMap, option) ? (
@@ -439,6 +440,7 @@ const FillInTheBlanksActivityMaterialContent = ({
439
440
  );
440
441
  })}
441
442
  </div>
443
+ </div>
442
444
  </div>
443
445
  );
444
446
  };
@@ -254,7 +254,7 @@ const GroupingActivityMaterialContent = ({
254
254
  const filteredMaterialList = retrieveFilteredMaterialList(displayAnswerMap);
255
255
 
256
256
  return (
257
- <div onMouseMove={handleMouseMove} onMouseUp={handleMouseUp}>
257
+ <div className="flex flex-col h-full" onMouseMove={handleMouseMove} onMouseUp={handleMouseUp}>
258
258
  {/* Floating drag preview for mouse */}
259
259
  {draggedValue && mousePosition.x > 0 && (
260
260
  <div
@@ -353,7 +353,7 @@ const GroupingActivityMaterialContent = ({
353
353
 
354
354
  {filteredMaterialList.length > 0 ? (
355
355
  <>
356
- <div className="flex-1 flex flex-row gap-x-4 overflow-x-auto py-2">
356
+ <div className="flex-shrink-0 flex flex-row gap-x-4 overflow-x-auto py-2">
357
357
  {filteredMaterialList.map((materialValue, index) => {
358
358
  return (
359
359
  <div
@@ -421,9 +421,10 @@ const GroupingActivityMaterialContent = ({
421
421
  );
422
422
  })}
423
423
  </div>
424
- <DividerLine />
424
+ <div className="flex-shrink-0"><DividerLine /></div>
425
425
  </>
426
426
  ) : null}
427
+ <div className="flex-1 min-h-0 overflow-y-auto">
427
428
  {Object.keys(displayAnswerMap).map((answerMapKey, index) => (
428
429
  <div key={index} className="flex flex-row w-full">
429
430
  <div className="w-1/3">
@@ -569,6 +570,7 @@ const GroupingActivityMaterialContent = ({
569
570
  </div>
570
571
  </div>
571
572
  ))}
573
+ </div>
572
574
  </div>
573
575
  );
574
576
  };
@@ -55,18 +55,19 @@ const MCMAActivityMaterialContent = ({
55
55
 
56
56
  const correctAnswerList = retrieveCorrectAnswerList();
57
57
 
58
- return Object.keys(materialMap).map((materialKey, index) => {
58
+ return (<div className="flex flex-col h-full">{Object.keys(materialMap).map((materialKey, index) => {
59
59
  return (
60
- <div key={index} className="flex flex-row items-center my-1">
61
- <div className="flex-1 flex flex-col justify-center border-catchup-lighter-gray rounded-catchup-xlarge px-5 md:px-0">
62
- <div className="hidden md:block">
60
+ <div key={index} className="flex flex-col flex-1 min-h-0">
61
+ <div className="flex-1 flex flex-col border-catchup-lighter-gray rounded-catchup-xlarge px-5 md:px-0 min-h-0">
62
+ <div className="hidden md:block flex-shrink-0">
63
63
  <span className="font-semibold text-xl opacity-60">
64
64
  {i18n.t("please_select_mcma_text")}
65
65
  </span>
66
66
  </div>
67
- <div className="hidden md:contents">
67
+ <div className="hidden md:block flex-shrink-0">
68
68
  <DividerLine />
69
69
  </div>
70
+ <div className="flex-1 min-h-0 overflow-y-auto">
70
71
  {checkCanAnswerQuestion() ? (
71
72
  <div className="flex flex-row w-full flex-wrap ">
72
73
  {materialMap[materialKey].map(
@@ -165,10 +166,11 @@ const MCMAActivityMaterialContent = ({
165
166
  ))}
166
167
  </p>
167
168
  )}
169
+ </div>
168
170
  </div>
169
171
  </div>
170
172
  );
171
- });
173
+ })}</div>);
172
174
  };
173
175
 
174
176
  export default MCMAActivityMaterialContent;
@@ -47,18 +47,19 @@ const MCSAActivityMaterialContent = ({
47
47
 
48
48
  const correctAnswer = retrieveCorrectAnswer();
49
49
 
50
- return Object.keys(materialMap).map((materialKey, index) => {
50
+ return (<div className="flex flex-col h-full">{Object.keys(materialMap).map((materialKey, index) => {
51
51
  return (
52
- <div className="flex flex-row items-center my-1" key={index}>
53
- <div className="flex-1 flex flex-col justify-center border-catchup-lighter-gray rounded-catchup-xlarge px-5 md:px-0">
54
- <div className="hidden md:block">
52
+ <div className="flex flex-col flex-1 min-h-0" key={index}>
53
+ <div className="flex-1 flex flex-col border-catchup-lighter-gray rounded-catchup-xlarge px-5 md:px-0 min-h-0">
54
+ <div className="hidden md:block flex-shrink-0">
55
55
  <span className="font-semibold text-xl opacity-60">
56
56
  {i18n.t("please_select_mcsa_text")}
57
57
  </span>
58
58
  </div>
59
- <div className="hidden md:contents">
59
+ <div className="hidden md:block flex-shrink-0">
60
60
  <DividerLine />
61
61
  </div>
62
+ <div className="flex-1 min-h-0 overflow-y-auto">
62
63
  {checkCanAnswerQuestion() ? (
63
64
  <div
64
65
  className={`flex flex-row w-full ${
@@ -159,10 +160,11 @@ const MCSAActivityMaterialContent = ({
159
160
  ))}
160
161
  </p>
161
162
  )}
163
+ </div>
162
164
  </div>
163
165
  </div>
164
166
  );
165
- });
167
+ })}</div>);
166
168
  };
167
169
 
168
170
  export default MCSAActivityMaterialContent;
@@ -253,7 +253,7 @@ const MatchingActivityMaterialContent = ({
253
253
  const filteredMaterialList = retrieveFilteredMaterialList(displayAnswerMap);
254
254
 
255
255
  return (
256
- <div onMouseMove={handleMouseMove} onMouseUp={handleMouseUp}>
256
+ <div className="flex flex-col h-full" onMouseMove={handleMouseMove} onMouseUp={handleMouseUp}>
257
257
  {draggedValue && mousePosition.x > 0 && (
258
258
  <div
259
259
  className="fixed pointer-events-none z-50 opacity-80"
@@ -425,6 +425,7 @@ const MatchingActivityMaterialContent = ({
425
425
  </>
426
426
  ) : null}
427
427
 
428
+ <div className="flex-1 min-h-0 overflow-y-auto">
428
429
  {Object.keys(displayAnswerMap).map((answerMapKey, index) => {
429
430
  const learnerAnswerState = checkAnswerState(
430
431
  materialMap[answerMapKey],
@@ -551,6 +552,7 @@ const MatchingActivityMaterialContent = ({
551
552
  </div>
552
553
  );
553
554
  })}
555
+ </div>
554
556
  </div>
555
557
  );
556
558
  };
@@ -101,16 +101,16 @@ const OpenEndedActivityMaterialContent = ({
101
101
  };
102
102
 
103
103
  return (
104
- <>
105
- <div className="">
106
- <div className="hidden md:block">
104
+ <div className="flex flex-col h-full">
105
+ <div className="hidden md:block flex-shrink-0">
107
106
  <span className="font-semibold text-xl opacity-60">
108
107
  {i18n.t("please_select_open_ended_text")}
109
108
  </span>
110
109
  </div>
111
- <div className="hidden md:contents">
110
+ <div className="hidden md:block flex-shrink-0">
112
111
  <DividerLine />
113
112
  </div>
113
+ <div className="flex-1 min-h-0 overflow-y-auto">
114
114
  {contentMap.type === "TEXT"
115
115
  ? RenderTextContent(answerMap)
116
116
  : contentMap.type === "IMAGE"
@@ -118,8 +118,8 @@ const OpenEndedActivityMaterialContent = ({
118
118
  : contentMap.type === "AUDIO"
119
119
  ? RenderAudioContent(answerMap)
120
120
  : null}
121
+ </div>
121
122
  </div>
122
- </>
123
123
  );
124
124
  };
125
125
 
@@ -153,7 +153,7 @@ const OrderingActivityMaterialContent = ({
153
153
 
154
154
  return (
155
155
  <div
156
- className="flex flex-row flex-wrap"
156
+ className="flex flex-col h-full"
157
157
  onMouseMove={handleMouseMove}
158
158
  onMouseUp={handleMouseUp}
159
159
  >
@@ -247,6 +247,7 @@ const OrderingActivityMaterialContent = ({
247
247
  </div>
248
248
  )}
249
249
 
250
+ <div className="flex-1 min-h-0 overflow-y-auto">
250
251
  {Object.keys(displayAnswerMap).map((materialKey, index) => {
251
252
  const learnerAnswerState = checkAnswerState(
252
253
  displayAnswerMap[materialKey] + "",
@@ -347,6 +348,7 @@ const OrderingActivityMaterialContent = ({
347
348
  </div>
348
349
  );
349
350
  })}
351
+ </div>
350
352
  </div>
351
353
  );
352
354
  };
@@ -49,16 +49,16 @@ const TrueFalseActivityMaterialContent = ({
49
49
  };
50
50
 
51
51
  return (
52
- <div className="">
53
- <div className="hidden md:block">
52
+ <div className="flex flex-col h-full">
53
+ <div className="hidden md:block flex-shrink-0">
54
54
  <span className="font-semibold text-xl opacity-60">
55
55
  {i18n.t("please_select_true_false_text")}
56
56
  </span>
57
57
  </div>
58
- <div className="hidden md:contents">
58
+ <div className="hidden md:block flex-shrink-0">
59
59
  <DividerLine />
60
60
  </div>
61
- <div className="flex flex-row justify-end items-center gap-x-2">
61
+ <div className="flex flex-row justify-end items-center gap-x-2 flex-shrink-0">
62
62
  <div className="w-[50px]">
63
63
  <p className="font-bold text-lg">{i18n.t("true")}</p>
64
64
  </div>
@@ -66,6 +66,7 @@ const TrueFalseActivityMaterialContent = ({
66
66
  <p className="font-bold text-lg">{i18n.t("false")}</p>
67
67
  </div>
68
68
  </div>
69
+ <div className="flex-1 min-h-0 overflow-y-auto">
69
70
  {checkCanAnswerQuestion() ? (
70
71
  <div className={`flex flex-row w-full justify-center flex-wrap`}>
71
72
  {shuffleOptionList.map((shuffleOption, index) => {
@@ -191,6 +192,7 @@ const TrueFalseActivityMaterialContent = ({
191
192
  ))}
192
193
  </>
193
194
  )}
195
+ </div>
194
196
  </div>
195
197
  );
196
198
  };