472 lines
12 KiB
TypeScript
472 lines
12 KiB
TypeScript
import {
|
|
FaListUl,
|
|
FaUnderline,
|
|
FaPen,
|
|
FaBookOpen,
|
|
FaEnvelope,
|
|
FaComments,
|
|
FaHandshake,
|
|
FaParagraph,
|
|
FaLightbulb,
|
|
FaHeadphones,
|
|
FaWpforms,
|
|
} from 'react-icons/fa6';
|
|
|
|
import {
|
|
FaEdit,
|
|
FaFileAlt,
|
|
FaUserFriends,
|
|
FaCheckSquare,
|
|
FaQuestionCircle,
|
|
} from 'react-icons/fa';
|
|
import { ExerciseGen } from './generatedExercises';
|
|
import { BsListCheck } from 'react-icons/bs';
|
|
|
|
const quantity = (quantity: number, tooltip?: string) => {
|
|
return {
|
|
param: "quantity",
|
|
label: "Quantity",
|
|
tooltip: tooltip ? tooltip : "Exercise Quantity",
|
|
value: quantity
|
|
}
|
|
}
|
|
|
|
const difficulty = () => {
|
|
return {
|
|
param: "difficulty",
|
|
label: "Difficulty",
|
|
tooltip: "Exercise difficulty",
|
|
}
|
|
}
|
|
|
|
const generate = () => {
|
|
return {
|
|
param: "generate",
|
|
value: true
|
|
}
|
|
}
|
|
|
|
const reading = (passage: number) => {
|
|
const readingExercises = [
|
|
{
|
|
label: `Passage ${passage} - Multiple Choice`,
|
|
type: `reading_${passage}`,
|
|
icon: BsListCheck,
|
|
sectionId: passage,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "multipleChoice"
|
|
},
|
|
quantity(5, "Quantity of Multiple Choice Questions"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "reading"
|
|
},
|
|
{
|
|
label: `Passage ${passage} - Fill Blanks`,
|
|
type: `reading_${passage}`,
|
|
icon: FaEdit,
|
|
sectionId: passage,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "fillBlanks"
|
|
},
|
|
{
|
|
param: "num_random_words",
|
|
label: "Random Words",
|
|
tooltip: "Words that are not the solution",
|
|
value: 1
|
|
},
|
|
quantity(4, "Quantity of Blanks"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "reading"
|
|
},
|
|
{
|
|
label: `Passage ${passage} - Write Blanks`,
|
|
type: `reading_${passage}`,
|
|
icon: FaPen,
|
|
sectionId: passage,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "writeBlanks"
|
|
},
|
|
{
|
|
param: "max_words",
|
|
label: "Word Limit",
|
|
tooltip: "How many words a solution can have",
|
|
value: 3
|
|
},
|
|
quantity(4, "Quantity of Blanks"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "reading"
|
|
},
|
|
{
|
|
label: `Passage ${passage} - True False`,
|
|
type: `reading_${passage}`,
|
|
icon: FaCheckSquare,
|
|
sectionId: passage,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "trueFalse"
|
|
},
|
|
quantity(4, "Quantity of Statements"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "reading"
|
|
},
|
|
{
|
|
label: `Passage ${passage} - Paragraph Match`,
|
|
type: `reading_${passage}`,
|
|
icon: FaParagraph,
|
|
sectionId: passage,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "paragraphMatch"
|
|
},
|
|
quantity(5, "Quantity of Matches"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "reading"
|
|
},
|
|
];
|
|
|
|
if (passage === 3) {
|
|
readingExercises.push(
|
|
{
|
|
label: `Passage 3 - Idea Match`,
|
|
type: `reading_3`,
|
|
icon: FaLightbulb,
|
|
sectionId: passage,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "ideaMatch"
|
|
},
|
|
quantity(5, "Quantity of Ideas"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "reading"
|
|
},
|
|
);
|
|
}
|
|
return readingExercises;
|
|
}
|
|
|
|
const listening = (section: number) => {
|
|
const listeningExercises = [
|
|
{
|
|
label: `Section ${section} - Multiple Choice`,
|
|
type: `listening_${section}`,
|
|
icon: FaHeadphones,
|
|
sectionId: section,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: section == 3 ? "multipleChoice3Options" : "multipleChoice"
|
|
},
|
|
quantity(5, "Quantity of Multiple Choice Questions"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "listening"
|
|
},
|
|
{
|
|
label: `Section ${section} - Write Blanks: Questions`,
|
|
type: `listening_${section}`,
|
|
icon: FaQuestionCircle,
|
|
sectionId: section,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "writeBlanksQuestions"
|
|
},
|
|
quantity(5, "Quantity of Blanks"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "listening"
|
|
},
|
|
{
|
|
label: `Section ${section} - True False`,
|
|
type: `listening_${section}`,
|
|
icon: FaCheckSquare,
|
|
sectionId: section,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "trueFalse"
|
|
},
|
|
quantity(4, "Quantity of Statements"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "listening"
|
|
},
|
|
];
|
|
|
|
if (section === 1 || section === 4) {
|
|
listeningExercises.push(
|
|
{
|
|
label: `Section ${section} - Write Blanks: Fill`,
|
|
type: `listening_${section}`,
|
|
icon: FaEdit,
|
|
sectionId: section,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "writeBlanksFill"
|
|
},
|
|
quantity(5, "Quantity of Blanks"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "listening"
|
|
}
|
|
);
|
|
listeningExercises.push(
|
|
{
|
|
label: `Section ${section} - Write Blanks: Form`,
|
|
type: `listening_${section}`,
|
|
sectionId: section,
|
|
icon: FaWpforms,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "writeBlanksForm"
|
|
},
|
|
quantity(5, "Quantity of Blanks"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "listening"
|
|
}
|
|
);
|
|
}
|
|
return listeningExercises;
|
|
}
|
|
|
|
const EXERCISES: ExerciseGen[] = [
|
|
/*{
|
|
label: "Multiple Choice",
|
|
type: "multipleChoice",
|
|
icon: FaListUl,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "multipleChoice"
|
|
},
|
|
quantity(10, "Amount"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "level"
|
|
},*/
|
|
{
|
|
label: "Multiple Choice: Blank Space",
|
|
type: "mcBlank",
|
|
icon: FaEdit,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "mcBlank"
|
|
},
|
|
quantity(10, "Amount"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "level"
|
|
},
|
|
{
|
|
label: "Multiple Choice: Underlined",
|
|
type: "mcUnderline",
|
|
icon: FaUnderline,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "mcUnderline"
|
|
},
|
|
quantity(10, "Amount"),
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "level"
|
|
},
|
|
/*{
|
|
label: "Blank Space", <- Assuming this is FillBlanks aswell
|
|
type: "blankSpaceText",
|
|
icon: FaPen,
|
|
extra: [
|
|
quantity(10, "Nº of Blanks"),
|
|
{
|
|
label: "Passage Word Size",
|
|
param: "text_size",
|
|
value: "250"
|
|
},
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "level"
|
|
},*/
|
|
{
|
|
label: "Fill Blanks: Multiple Choice",
|
|
type: "fillBlanksMC",
|
|
icon: FaPen,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "fillBlanksMC"
|
|
},
|
|
quantity(10, "Nº of Blanks"),
|
|
{
|
|
label: "Passage Word Size",
|
|
param: "text_size",
|
|
value: "250"
|
|
},
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "level"
|
|
},
|
|
// Removing this since level supports reading aswell
|
|
/*{
|
|
label: "Reading Passage: Multiple Choice",
|
|
type: "passageUtas",
|
|
icon: FaBookOpen,
|
|
extra: [
|
|
{
|
|
param: "name",
|
|
value: "passageUtas"
|
|
},
|
|
// in the utas exam there was only mc so I'm assuming short answers are deprecated
|
|
//{
|
|
// label: "Short Answers",
|
|
// param: "sa_qty",
|
|
// value: "10"
|
|
//},
|
|
quantity(10, "Multiple Choice Quantity"),
|
|
{
|
|
label: "Reading Passage Topic",
|
|
param: "topic",
|
|
value: "",
|
|
type: "text"
|
|
},
|
|
{
|
|
label: "Passage Word Size",
|
|
param: "text_size",
|
|
value: "700"
|
|
},
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "level"
|
|
},*/
|
|
{
|
|
label: "Task 1 - Letter",
|
|
type: "writing_letter",
|
|
icon: FaEnvelope,
|
|
extra: [
|
|
{
|
|
label: "Letter Topic",
|
|
param: "topic",
|
|
value: "",
|
|
type: "text"
|
|
},
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "writing"
|
|
},
|
|
{
|
|
label: "Task 2 - Essay",
|
|
type: "writing_2",
|
|
icon: FaFileAlt,
|
|
extra: [
|
|
{
|
|
label: "Essay Topic",
|
|
param: "topic",
|
|
value: "",
|
|
type: "text"
|
|
},
|
|
difficulty(),
|
|
generate()
|
|
],
|
|
module: "writing"
|
|
},
|
|
{
|
|
label: "Exercise 1",
|
|
type: "speaking_1",
|
|
icon: FaComments,
|
|
extra: [
|
|
difficulty(),
|
|
generate(),
|
|
{
|
|
label: "First Topic",
|
|
param: "first_topic",
|
|
value: "",
|
|
type: "text"
|
|
},
|
|
{
|
|
label: "Second Topic",
|
|
param: "second_topic",
|
|
value: "",
|
|
type: "text"
|
|
},
|
|
],
|
|
module: "speaking"
|
|
},
|
|
{
|
|
label: "Exercise 2",
|
|
type: "speaking_2",
|
|
icon: FaUserFriends,
|
|
extra: [
|
|
difficulty(),
|
|
generate(),
|
|
{
|
|
label: "Topic",
|
|
param: "topic",
|
|
value: "",
|
|
type: "text"
|
|
},
|
|
],
|
|
module: "speaking"
|
|
},
|
|
{
|
|
label: "Interactive",
|
|
type: "speaking_3",
|
|
icon: FaHandshake,
|
|
extra: [
|
|
difficulty(),
|
|
generate(),
|
|
{
|
|
label: "Topic",
|
|
param: "topic",
|
|
value: "",
|
|
type: "text"
|
|
},
|
|
],
|
|
module: "speaking"
|
|
},
|
|
...reading(1),
|
|
...reading(2),
|
|
...reading(3),
|
|
...listening(1),
|
|
...listening(2),
|
|
...listening(3),
|
|
...listening(4),
|
|
]
|
|
|
|
export default EXERCISES;
|