@tinyweb_dev/oe-exam-sdk 0.2.8 → 0.2.10
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/components/exams/take/ExamTakingPageContainer.js +6 -0
- package/dist/components/exams/take/components/QuestionRenderer.js +7 -3
- package/dist/components/exams/take/components/question-renderers/MoversChooseBestAnswerRenderer.js +5 -4
- package/dist/components/exams/take/components/question-renderers/MoversWordOrderingGroupRenderer.d.ts +13 -0
- package/dist/components/exams/take/components/question-renderers/MoversWordOrderingGroupRenderer.js +30 -0
- package/dist/components/exams/take/components/question-renderers/index.d.ts +1 -0
- package/dist/components/exams/take/components/question-renderers/index.js +1 -0
- package/dist/components/exams/take/utils/answer-transformers.js +8 -1
- package/dist/components/exams/take/utils/question-transformers.d.ts +16 -1
- package/dist/components/exams/take/utils/question-transformers.js +49 -4
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/questions/_shared/config/question-types.config.js +18 -0
- package/dist/components/questions/_shared/types/choose-the-correct-answer-group.type.d.ts +1 -0
- package/dist/components/questions/_shared/types/index.d.ts +1 -0
- package/dist/components/questions/_shared/types/index.js +1 -0
- package/dist/components/questions/_shared/types/match-columns-to-make-sentences.type.d.ts +56 -0
- package/dist/components/questions/_shared/types/match-columns-to-make-sentences.type.js +2 -0
- package/dist/components/questions/_shared/types/match-word-to-picture-group.type.d.ts +35 -0
- package/dist/components/questions/_shared/types/match-word-to-picture-group.type.js +2 -0
- package/dist/components/questions/_shared/types/word-ordering-group.type.d.ts +34 -0
- package/dist/components/questions/_shared/types/word-ordering-group.type.js +2 -0
- package/dist/components/questions/components/QuestionSearchDropdown.js +3 -0
- package/dist/components/questions/components/QuestionTypeSelector.js +3 -0
- package/dist/components/questions/creator/question-type-registry.js +6 -0
- package/dist/components/questions/types/choose-the-correct-answer/ChooseTheCorrectAnswerClient.js +6 -4
- package/dist/components/questions/types/choose-the-correct-answer/ChooseTheCorrectAnswerCreator.js +16 -4
- package/dist/components/questions/types/choose-the-correct-answer-group/ChooseTheCorrectAnswerGroupClient.js +2 -3
- package/dist/components/questions/types/choose-the-correct-answer-group/ChooseTheCorrectAnswerGroupCreator.js +6 -4
- package/dist/components/questions/types/choose-the-correct-answer-group/map-choose-the-correct-answer-group-data.js +16 -2
- package/dist/components/questions/types/choose-the-correct-answer-group/transform.js +4 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/MatchColumnsToMakeSentencesClient.d.ts +2 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/MatchColumnsToMakeSentencesClient.js +74 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/MatchColumnsToMakeSentencesCreator.d.ts +2 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/MatchColumnsToMakeSentencesCreator.js +222 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/index.d.ts +5 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/index.js +5 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/map-match-columns-to-make-sentences-data.d.ts +8 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/map-match-columns-to-make-sentences-data.js +199 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/register.d.ts +2 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/register.js +36 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/transform.d.ts +2 -0
- package/dist/components/questions/types/match-columns-to-make-sentences/transform.js +66 -0
- package/dist/components/questions/types/match-word-to-picture-group/MatchWordToPictureGroupClient.d.ts +2 -0
- package/dist/components/questions/types/match-word-to-picture-group/MatchWordToPictureGroupClient.js +65 -0
- package/dist/components/questions/types/match-word-to-picture-group/MatchWordToPictureGroupCreator.d.ts +2 -0
- package/dist/components/questions/types/match-word-to-picture-group/MatchWordToPictureGroupCreator.js +95 -0
- package/dist/components/questions/types/match-word-to-picture-group/MatchWordToPictureGroupImageField.d.ts +6 -0
- package/dist/components/questions/types/match-word-to-picture-group/MatchWordToPictureGroupImageField.js +16 -0
- package/dist/components/questions/types/match-word-to-picture-group/index.d.ts +5 -0
- package/dist/components/questions/types/match-word-to-picture-group/index.js +5 -0
- package/dist/components/questions/types/match-word-to-picture-group/map-match-word-to-picture-group-data.d.ts +4 -0
- package/dist/components/questions/types/match-word-to-picture-group/map-match-word-to-picture-group-data.js +77 -0
- package/dist/components/questions/types/match-word-to-picture-group/register.d.ts +2 -0
- package/dist/components/questions/types/match-word-to-picture-group/register.js +36 -0
- package/dist/components/questions/types/match-word-to-picture-group/transform.d.ts +2 -0
- package/dist/components/questions/types/match-word-to-picture-group/transform.js +36 -0
- package/dist/components/questions/types/word-ordering-group/WordOrderingGroupClient.d.ts +2 -0
- package/dist/components/questions/types/word-ordering-group/WordOrderingGroupClient.js +25 -0
- package/dist/components/questions/types/word-ordering-group/WordOrderingGroupCreator.d.ts +2 -0
- package/dist/components/questions/types/word-ordering-group/WordOrderingGroupCreator.js +106 -0
- package/dist/components/questions/types/word-ordering-group/index.d.ts +5 -0
- package/dist/components/questions/types/word-ordering-group/index.js +5 -0
- package/dist/components/questions/types/word-ordering-group/map-word-ordering-group-data.d.ts +4 -0
- package/dist/components/questions/types/word-ordering-group/map-word-ordering-group-data.js +74 -0
- package/dist/components/questions/types/word-ordering-group/register.d.ts +2 -0
- package/dist/components/questions/types/word-ordering-group/register.js +36 -0
- package/dist/components/questions/types/word-ordering-group/transform.d.ts +2 -0
- package/dist/components/questions/types/word-ordering-group/transform.js +33 -0
- package/dist/components/questions/viewer/MatchColumnsToMakeSentencesViewer.d.ts +8 -0
- package/dist/components/questions/viewer/MatchColumnsToMakeSentencesViewer.js +49 -0
- package/dist/components/questions/viewer/MatchWordToPictureGroupViewer.js +2 -2
- package/dist/components/questions/viewer/QuestionViewer.js +6 -0
- package/dist/components/questions/viewer/WordOrderingGroupViewer.d.ts +7 -0
- package/dist/components/questions/viewer/WordOrderingGroupViewer.js +29 -0
- package/dist/components/questions/viewer/index.d.ts +2 -0
- package/dist/components/questions/viewer/index.js +2 -0
- package/dist/components/results/renderers/ReviewChooseBestAnswerRenderer.js +3 -2
- package/dist/components/results/renderers/review-question-body-dedicated.js +1 -1
- package/dist/components/results/renderers/review-question-body-movers.js +6 -2
- package/dist/components/results/review-data.js +13 -0
- package/dist/components/shared/RichTextEditor.d.ts +4 -2
- package/dist/components/shared/RichTextEditor.js +34 -11
- package/dist/components/shared/RichTextHtml.d.ts +8 -0
- package/dist/components/shared/RichTextHtml.js +9 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/shared/constants/question-skills.js +6 -0
- package/dist/shared/lib/rich-text.d.ts +3 -0
- package/dist/shared/lib/rich-text.js +24 -0
- package/dist/shared/lib/utils/question-reverse-transform.js +111 -2
- package/dist/shared/lib/utils/question-transform.js +6 -0
- package/dist/shared/lib/validation/choose-correct-answer.validation.js +4 -2
- package/dist/shared/types/common.types.d.ts +1 -1
- package/dist/shared/types/questions/choose-the-correct-answer-group.d.ts +1 -0
- package/dist/shared/types/questions/index.d.ts +3 -0
- package/dist/shared/types/questions/index.js +6 -0
- package/dist/shared/types/questions/match-columns-to-make-sentences.d.ts +50 -0
- package/dist/shared/types/questions/match-columns-to-make-sentences.js +1 -0
- package/dist/shared/types/questions/match-word-to-picture-group.d.ts +31 -0
- package/dist/shared/types/questions/match-word-to-picture-group.js +1 -0
- package/dist/shared/types/questions/word-ordering-group.d.ts +28 -0
- package/dist/shared/types/questions/word-ordering-group.js +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { isRichTextEmpty } from '../../lib/rich-text';
|
|
2
3
|
// Validation schema for Choose the Correct Answer form
|
|
3
4
|
export const chooseCorrectAnswerFormSchema = z.object({
|
|
4
5
|
question: z.string().optional(),
|
|
@@ -35,7 +36,8 @@ export const chooseCorrectAnswerFormSchema = z.object({
|
|
|
35
36
|
})
|
|
36
37
|
.pipe(z.number().min(1, 'Điểm số phải >= 1')),
|
|
37
38
|
}).superRefine((data, ctx) => {
|
|
38
|
-
const
|
|
39
|
+
const isOptionFilled = (opt) => data.optionType === 'image' ? opt.trim() !== '' : !isRichTextEmpty(opt);
|
|
40
|
+
const filledOptions = data.options.filter((opt) => isOptionFilled(opt));
|
|
39
41
|
if (filledOptions.length < 2) {
|
|
40
42
|
ctx.addIssue({
|
|
41
43
|
code: z.ZodIssueCode.custom,
|
|
@@ -47,7 +49,7 @@ export const chooseCorrectAnswerFormSchema = z.object({
|
|
|
47
49
|
}
|
|
48
50
|
// Validate each option based on type
|
|
49
51
|
data.options.forEach((opt, index) => {
|
|
50
|
-
if (opt
|
|
52
|
+
if (!isOptionFilled(opt)) {
|
|
51
53
|
ctx.addIssue({
|
|
52
54
|
code: z.ZodIssueCode.custom,
|
|
53
55
|
message: data.optionType === 'image'
|
|
@@ -29,7 +29,7 @@ export declare enum StudentSelectionType {
|
|
|
29
29
|
}
|
|
30
30
|
export type ResultStatus = 'PENDING' | 'PARTIAL_GRADED' | 'GRADED';
|
|
31
31
|
export type StudentStatus = 'NOT_STARTED' | 'IN_PROGRESS' | 'SUBMITTED';
|
|
32
|
-
export type QuestionType = 'FILL_IN_BLANK' | 'TRUE_FALSE' | 'MATCHING' | 'ORDERING' | 'LISTENING' | 'COLORING' | 'ESSAY' | 'LISTEN_AND_FILL_IN_THE_BLANK_WITH_IMAGE' | 'LISTEN_AND_TICK_ANSWER' | 'LISTEN_AND_FILL_NAME_NUMBER' | 'LISTENING_FILL_BLANK' | 'LISTENING_COLOR' | 'TICK_TRUE_OR_FALSE' | 'TICK_YES_OR_NO' | 'READING_TICK_CROSS' | 'ARRANGE_LETTERS_INTO_WORDS' | 'READ_PASSAGE_AND_COMPLETE_STORY' | 'CLOZE_TEST_WITH_TICK_BOX' | 'READ_AND_CHOOSE_APPROPRIATE_WORD' | 'WRITE_SHORT_PARAGRAPH' | 'LABEL_THE_PICTURE' | 'READING_LETTER_ARRANGE' | 'READING_PASSAGE_FILL' | 'FILL_BLANK' | 'FILL_MISSING_WORDS_IN_GRID' | 'LOOK_PICTURE_CHOOSE_CORRECT_ANSWER' | 'LOOK_PICTURE_FILL_BLANK_CHOOSE_ANSWER' | 'LOOK_PICTURE_FILL_WORD_HINT' | 'LABEL_THE_PICTURE' | 'READ_AND_COLOR_OBJECTS' | 'IMAGE_OBJECT_MATCHING' | 'READ_PASSAGE_AND_ANSWER_QUESTIONS' | 'CHOOSE_THE_CORRECT_ANSWER' | 'CHOOSE_THE_CORRECT_ANSWER_GROUP' | 'TRUE_FALSE_GROUP' | 'TRUE_FALSE_CORRECT_GROUP' | 'FILL_IN_BLANK_GROUP' | 'MATCHING_WITH_LINES_GROUP' | 'CROSS_OUT_WORD_GROUP' | 'SPONTANEOUS_QA_GROUP' | 'WORD_ORDER_AND_MATCH_GROUP' | 'WRITE_A_SHORT_LETTER' | 'WRITE_CORRECT_VERB_FORM' | 'CHOOSE_CORRECT_ADJECTIVE' | 'ANSWER_THE_QUESTION' | 'ANSWER_THE_QUESTION_GROUP' | 'WORD_ORDERING' | 'WORD_FILL_PARAGRAPH' | 'MATCH_BY_WRITING_ANSWER' | 'MATCH_WORD_TO_PICTURE' | 'WRITE_SENTENCES' | 'LISTEN_AND_CHOOSE_FROM_ANSWER_GROUP' | 'LISTEN_AND_CHOOSE_OBJECTS_IN_SCENE' | 'LISTEN_AND_DRAG_OBJECTS_INTO_SCENE' | 'LISTEN_AND_SPEAK_ANSWER' | 'LISTEN_AND_SPEAK_IMAGE_GROUP' | 'LISTEN_AND_SPEAK_QUESTION_LIST' | 'LISTEN_AND_SPEAK_COMPARE_IMAGES' | 'LISTEN_AND_SPEAK_WITH_STORY_IMAGES' | 'LISTEN_AND_SPEAK_ODD_ONE_OUT' | 'LISTEN_AND_SPEAK_INFO_EXCHANGE' | 'READ_DISPLAYED_CONTENT' | 'SPEAKING_DESCRIBE_IMAGE' | 'SPONTANEOUS_QA' | 'SPEAKING_CONVERSATION' | 'GN_SPEAKING_INTERVIEW' | 'SPEAKING_CUE_CARD' | 'WORD_FILL_STRUCTURED_FORM' | 'CROSSWORD_PUZZLE' | 'FIND_WORDS_IN_MATRIX';
|
|
32
|
+
export type QuestionType = 'FILL_IN_BLANK' | 'TRUE_FALSE' | 'MATCHING' | 'ORDERING' | 'LISTENING' | 'COLORING' | 'ESSAY' | 'LISTEN_AND_FILL_IN_THE_BLANK_WITH_IMAGE' | 'LISTEN_AND_TICK_ANSWER' | 'LISTEN_AND_FILL_NAME_NUMBER' | 'LISTENING_FILL_BLANK' | 'LISTENING_COLOR' | 'TICK_TRUE_OR_FALSE' | 'TICK_YES_OR_NO' | 'READING_TICK_CROSS' | 'ARRANGE_LETTERS_INTO_WORDS' | 'READ_PASSAGE_AND_COMPLETE_STORY' | 'CLOZE_TEST_WITH_TICK_BOX' | 'READ_AND_CHOOSE_APPROPRIATE_WORD' | 'WRITE_SHORT_PARAGRAPH' | 'LABEL_THE_PICTURE' | 'READING_LETTER_ARRANGE' | 'READING_PASSAGE_FILL' | 'FILL_BLANK' | 'FILL_MISSING_WORDS_IN_GRID' | 'LOOK_PICTURE_CHOOSE_CORRECT_ANSWER' | 'LOOK_PICTURE_FILL_BLANK_CHOOSE_ANSWER' | 'LOOK_PICTURE_FILL_WORD_HINT' | 'LABEL_THE_PICTURE' | 'READ_AND_COLOR_OBJECTS' | 'IMAGE_OBJECT_MATCHING' | 'READ_PASSAGE_AND_ANSWER_QUESTIONS' | 'CHOOSE_THE_CORRECT_ANSWER' | 'CHOOSE_THE_CORRECT_ANSWER_GROUP' | 'TRUE_FALSE_GROUP' | 'TRUE_FALSE_CORRECT_GROUP' | 'FILL_IN_BLANK_GROUP' | 'MATCHING_WITH_LINES_GROUP' | 'CROSS_OUT_WORD_GROUP' | 'SPONTANEOUS_QA_GROUP' | 'WORD_ORDER_AND_MATCH_GROUP' | 'WRITE_A_SHORT_LETTER' | 'WRITE_CORRECT_VERB_FORM' | 'CHOOSE_CORRECT_ADJECTIVE' | 'ANSWER_THE_QUESTION' | 'ANSWER_THE_QUESTION_GROUP' | 'WORD_ORDERING' | 'WORD_FILL_PARAGRAPH' | 'MATCH_BY_WRITING_ANSWER' | 'MATCH_WORD_TO_PICTURE' | 'WRITE_SENTENCES' | 'LISTEN_AND_CHOOSE_FROM_ANSWER_GROUP' | 'LISTEN_AND_CHOOSE_OBJECTS_IN_SCENE' | 'LISTEN_AND_DRAG_OBJECTS_INTO_SCENE' | 'LISTEN_AND_SPEAK_ANSWER' | 'LISTEN_AND_SPEAK_IMAGE_GROUP' | 'LISTEN_AND_SPEAK_QUESTION_LIST' | 'LISTEN_AND_SPEAK_COMPARE_IMAGES' | 'LISTEN_AND_SPEAK_WITH_STORY_IMAGES' | 'LISTEN_AND_SPEAK_ODD_ONE_OUT' | 'LISTEN_AND_SPEAK_INFO_EXCHANGE' | 'READ_DISPLAYED_CONTENT' | 'SPEAKING_DESCRIBE_IMAGE' | 'SPONTANEOUS_QA' | 'SPEAKING_CONVERSATION' | 'GN_SPEAKING_INTERVIEW' | 'SPEAKING_CUE_CARD' | 'WORD_FILL_STRUCTURED_FORM' | 'CROSSWORD_PUZZLE' | 'FIND_WORDS_IN_MATRIX' | 'MATCH_COLUMNS_TO_MAKE_SENTENCES' | 'MATCH_WORD_TO_PICTURE_GROUP' | 'WORD_ORDERING_GROUP';
|
|
33
33
|
export type Level = 'Pre-A1' | 'A1' | 'A2' | 'B1' | 'B2' | 'C1' | 'C2';
|
|
34
34
|
export type Difficulty = 'EASY' | 'MEDIUM' | 'HARD';
|
|
35
35
|
export type Skill = 'LISTENING' | 'READING' | 'WRITING' | 'SPEAKING';
|
|
@@ -34,5 +34,8 @@ export * from './crossword-puzzle';
|
|
|
34
34
|
export * from './find-words-in-matrix';
|
|
35
35
|
export * from './match-word-to-picture';
|
|
36
36
|
export * from './matching-with-lines-group';
|
|
37
|
+
export * from './match-columns-to-make-sentences';
|
|
38
|
+
export * from './match-word-to-picture-group';
|
|
39
|
+
export * from './word-ordering-group';
|
|
37
40
|
export * from './true-false-correct-group';
|
|
38
41
|
export * from './fill-in-blank-group';
|
|
@@ -54,6 +54,12 @@ export * from './find-words-in-matrix';
|
|
|
54
54
|
export * from './match-word-to-picture';
|
|
55
55
|
// MATCHING_WITH_LINES_GROUP
|
|
56
56
|
export * from './matching-with-lines-group';
|
|
57
|
+
// MATCH_COLUMNS_TO_MAKE_SENTENCES
|
|
58
|
+
export * from './match-columns-to-make-sentences';
|
|
59
|
+
// MATCH_WORD_TO_PICTURE_GROUP
|
|
60
|
+
export * from './match-word-to-picture-group';
|
|
61
|
+
// WORD_ORDERING_GROUP
|
|
62
|
+
export * from './word-ordering-group';
|
|
57
63
|
// TRUE_FALSE_CORRECT_GROUP
|
|
58
64
|
export * from './true-false-correct-group';
|
|
59
65
|
// FILL_IN_BLANK_GROUP
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export declare const MATCH_COLUMNS_TO_MAKE_SENTENCE_ITEM_TYPE: "MATCH_COLUMNS_TO_MAKE_SENTENCE";
|
|
2
|
+
export interface MatchColumnsFragment {
|
|
3
|
+
id: string;
|
|
4
|
+
text: string;
|
|
5
|
+
}
|
|
6
|
+
export interface MatchColumnsColumn {
|
|
7
|
+
id: string;
|
|
8
|
+
label?: string;
|
|
9
|
+
role: 'stem' | 'choice';
|
|
10
|
+
fragments: MatchColumnsFragment[];
|
|
11
|
+
}
|
|
12
|
+
export interface MatchColumnsItemAnswer {
|
|
13
|
+
fragmentIds: string[];
|
|
14
|
+
sentence: string;
|
|
15
|
+
}
|
|
16
|
+
export interface MatchColumnsGroupItemContent {
|
|
17
|
+
stemFragmentId: string;
|
|
18
|
+
}
|
|
19
|
+
export interface MatchColumnsGroupItem {
|
|
20
|
+
questionType?: typeof MATCH_COLUMNS_TO_MAKE_SENTENCE_ITEM_TYPE;
|
|
21
|
+
isExample?: boolean;
|
|
22
|
+
content: MatchColumnsGroupItemContent;
|
|
23
|
+
correctAnswer?: {
|
|
24
|
+
answer: MatchColumnsItemAnswer;
|
|
25
|
+
};
|
|
26
|
+
points?: number;
|
|
27
|
+
questionNumber?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface MatchColumnsGroupContent {
|
|
30
|
+
meta?: {
|
|
31
|
+
title?: string;
|
|
32
|
+
instruction?: string;
|
|
33
|
+
};
|
|
34
|
+
columns: MatchColumnsColumn[];
|
|
35
|
+
items: MatchColumnsGroupItem[];
|
|
36
|
+
}
|
|
37
|
+
export interface MatchColumnsGroupCorrectAnswer {
|
|
38
|
+
answer: MatchColumnsItemAnswer[];
|
|
39
|
+
}
|
|
40
|
+
export interface MatchColumnsGroupAPIPayload {
|
|
41
|
+
id?: string;
|
|
42
|
+
questionType: 'MATCH_COLUMNS_TO_MAKE_SENTENCES';
|
|
43
|
+
content: MatchColumnsGroupContent;
|
|
44
|
+
correctAnswer: MatchColumnsGroupCorrectAnswer;
|
|
45
|
+
points: number;
|
|
46
|
+
explanation?: string;
|
|
47
|
+
questionNumber: number;
|
|
48
|
+
partId?: string;
|
|
49
|
+
partNo?: number;
|
|
50
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const MATCH_COLUMNS_TO_MAKE_SENTENCE_ITEM_TYPE = 'MATCH_COLUMNS_TO_MAKE_SENTENCE';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare const MATCH_WORD_TO_PICTURE_ITEM_TYPE: "MATCH_WORD_TO_PICTURE";
|
|
2
|
+
export interface MatchWordToPictureGroupItem {
|
|
3
|
+
questionType?: typeof MATCH_WORD_TO_PICTURE_ITEM_TYPE;
|
|
4
|
+
isExample?: boolean;
|
|
5
|
+
content: {
|
|
6
|
+
imageUrl: string;
|
|
7
|
+
};
|
|
8
|
+
correctAnswer?: {
|
|
9
|
+
answer: string;
|
|
10
|
+
};
|
|
11
|
+
points?: number;
|
|
12
|
+
questionNumber?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface MatchWordToPictureGroupContent {
|
|
15
|
+
meta?: {
|
|
16
|
+
instruction?: string;
|
|
17
|
+
wordBank?: string[];
|
|
18
|
+
};
|
|
19
|
+
items: MatchWordToPictureGroupItem[];
|
|
20
|
+
}
|
|
21
|
+
export interface MatchWordToPictureGroupAPIPayload {
|
|
22
|
+
id?: string;
|
|
23
|
+
questionType: 'MATCH_WORD_TO_PICTURE_GROUP';
|
|
24
|
+
content: MatchWordToPictureGroupContent;
|
|
25
|
+
correctAnswer: {
|
|
26
|
+
answer: string[];
|
|
27
|
+
};
|
|
28
|
+
points: number;
|
|
29
|
+
explanation?: string;
|
|
30
|
+
questionNumber: number;
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const MATCH_WORD_TO_PICTURE_ITEM_TYPE = 'MATCH_WORD_TO_PICTURE';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare const WORD_ORDERING_ITEM_TYPE: "WORD_ORDERING";
|
|
2
|
+
export interface WordOrderingGroupItem {
|
|
3
|
+
questionType?: typeof WORD_ORDERING_ITEM_TYPE;
|
|
4
|
+
isExample?: boolean;
|
|
5
|
+
content: {
|
|
6
|
+
words: string[];
|
|
7
|
+
};
|
|
8
|
+
correctAnswer?: {
|
|
9
|
+
answer: string[];
|
|
10
|
+
};
|
|
11
|
+
points?: number;
|
|
12
|
+
questionNumber?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface WordOrderingGroupAPIPayload {
|
|
15
|
+
questionType: 'WORD_ORDERING_GROUP';
|
|
16
|
+
content: {
|
|
17
|
+
meta?: {
|
|
18
|
+
instruction?: string;
|
|
19
|
+
};
|
|
20
|
+
items: WordOrderingGroupItem[];
|
|
21
|
+
};
|
|
22
|
+
correctAnswer: {
|
|
23
|
+
answer: string[][];
|
|
24
|
+
};
|
|
25
|
+
points: number;
|
|
26
|
+
explanation?: string;
|
|
27
|
+
questionNumber: number;
|
|
28
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const WORD_ORDERING_ITEM_TYPE = 'WORD_ORDERING';
|