@tinyweb_dev/oe-exam-sdk 0.1.26 → 0.1.28
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/README.md +79 -5
- package/dist/components/exams/ExamPreviewDialog.d.ts +7 -6
- package/dist/components/exams/ExamPreviewDialog.js +1 -1
- package/dist/components/exams/index.d.ts +0 -1
- package/dist/components/exams/take/components/QuestionRenderer.js +1 -1
- package/dist/components/exams/take/components/question-renderers/MoversListenAndWriteRenderer.js +1 -1
- package/dist/components/exams/take/components/question-renderers/MoversWordFillStructuredFormRenderer.js +1 -1
- package/dist/components/exams/take/exam-taking.utils.d.ts +0 -13
- package/dist/components/exams/take/exam-taking.utils.js +1 -1
- package/dist/components/exams/take/utils/answer-transformers.js +1 -1
- package/dist/components/exams/take/utils/question-transformers.d.ts +7 -17
- package/dist/components/exams/take/utils/question-transformers.js +1 -1
- package/dist/components/questions/_shared/config/question-types.config.js +1 -1
- package/dist/components/questions/_shared/types/choose-the-correct-answer-group.type.d.ts +36 -0
- package/dist/components/questions/_shared/types/cross-out-word-group.type.d.ts +40 -0
- package/dist/components/questions/_shared/types/index.d.ts +1 -0
- package/dist/components/questions/_shared/types/index.js +1 -1
- package/dist/components/questions/_shared/types/true-false-group.type.d.ts +31 -0
- package/dist/components/questions/_shared/types/true-false-group.type.js +1 -0
- package/dist/components/questions/_shared/types/word-fill-structured-form.type.d.ts +11 -17
- package/dist/components/questions/creator/question-type-registry.js +1 -1
- package/dist/components/questions/index.d.ts +0 -1
- package/dist/components/questions/index.js +1 -1
- package/dist/components/questions/types/choose-the-correct-answer-group/ChooseTheCorrectAnswerGroupClient.d.ts +2 -0
- package/dist/components/questions/types/choose-the-correct-answer-group/ChooseTheCorrectAnswerGroupClient.js +1 -0
- package/dist/components/questions/types/choose-the-correct-answer-group/ChooseTheCorrectAnswerGroupCreator.d.ts +2 -0
- package/dist/components/questions/types/choose-the-correct-answer-group/ChooseTheCorrectAnswerGroupCreator.js +1 -0
- package/dist/components/questions/types/choose-the-correct-answer-group/index.d.ts +3 -0
- package/dist/components/questions/types/choose-the-correct-answer-group/index.js +1 -0
- package/dist/components/questions/types/choose-the-correct-answer-group/map-choose-the-correct-answer-group-data.d.ts +4 -0
- package/dist/components/questions/types/choose-the-correct-answer-group/map-choose-the-correct-answer-group-data.js +1 -0
- package/dist/components/questions/types/choose-the-correct-answer-group/register.d.ts +2 -0
- package/dist/components/questions/types/choose-the-correct-answer-group/register.js +1 -0
- package/dist/components/questions/types/choose-the-correct-answer-group/transform.d.ts +2 -0
- package/dist/components/questions/types/choose-the-correct-answer-group/transform.js +1 -0
- package/dist/components/questions/types/cross-out-word-group/CrossOutWordGroupClient.d.ts +2 -0
- package/dist/components/questions/types/cross-out-word-group/CrossOutWordGroupClient.js +1 -0
- package/dist/components/questions/types/cross-out-word-group/CrossOutWordGroupCreator.d.ts +2 -0
- package/dist/components/questions/types/cross-out-word-group/CrossOutWordGroupCreator.js +1 -0
- package/dist/components/questions/types/cross-out-word-group/index.d.ts +5 -0
- package/dist/components/questions/types/cross-out-word-group/index.js +1 -0
- package/dist/components/questions/types/cross-out-word-group/map-cross-out-word-group-data.d.ts +6 -0
- package/dist/components/questions/types/cross-out-word-group/map-cross-out-word-group-data.js +1 -0
- package/dist/components/questions/types/cross-out-word-group/register.d.ts +2 -0
- package/dist/components/questions/types/cross-out-word-group/register.js +1 -0
- package/dist/components/questions/types/cross-out-word-group/transform.d.ts +2 -0
- package/dist/components/questions/types/cross-out-word-group/transform.js +1 -0
- package/dist/components/questions/types/true-false-group/TrueFalseGroupClient.d.ts +2 -0
- package/dist/components/questions/types/true-false-group/TrueFalseGroupClient.js +1 -0
- package/dist/components/questions/types/true-false-group/TrueFalseGroupCreator.d.ts +2 -0
- package/dist/components/questions/types/true-false-group/TrueFalseGroupCreator.js +1 -0
- package/dist/components/questions/types/true-false-group/index.d.ts +5 -0
- package/dist/components/questions/types/true-false-group/index.js +1 -0
- package/dist/components/questions/types/true-false-group/map-true-false-group-data.d.ts +4 -0
- package/dist/components/questions/types/true-false-group/map-true-false-group-data.js +1 -0
- package/dist/components/questions/types/true-false-group/register.d.ts +2 -0
- package/dist/components/questions/types/true-false-group/register.js +1 -0
- package/dist/components/questions/types/true-false-group/transform.d.ts +2 -0
- package/dist/components/questions/types/true-false-group/transform.js +1 -0
- package/dist/components/questions/types/word-fill-structured-form/index.d.ts +1 -0
- package/dist/components/questions/types/word-fill-structured-form/index.js +1 -1
- package/dist/components/questions/types/word-fill-structured-form/map-wfsf-question-data.d.ts +7 -0
- package/dist/components/questions/types/word-fill-structured-form/map-wfsf-question-data.js +1 -0
- package/dist/components/questions/types/word-fill-structured-form/register.js +1 -1
- package/dist/components/questions/types/word-fill-structured-form/transform.js +1 -1
- package/dist/components/questions/viewer/ChooseTheCorrectAnswerGroupViewer.d.ts +8 -0
- package/dist/components/questions/viewer/ChooseTheCorrectAnswerGroupViewer.js +1 -0
- package/dist/components/questions/viewer/CrossOutWordGroupViewer.d.ts +7 -0
- package/dist/components/questions/viewer/CrossOutWordGroupViewer.js +1 -0
- package/dist/components/questions/viewer/QuestionViewer.js +1 -1
- package/dist/components/questions/viewer/SpontaneousQaGroupViewer.d.ts +4 -0
- package/dist/components/questions/viewer/SpontaneousQaGroupViewer.js +1 -0
- package/dist/components/questions/viewer/TrueFalseGroupViewer.d.ts +8 -0
- package/dist/components/questions/viewer/TrueFalseGroupViewer.js +1 -0
- package/dist/components/questions/viewer/WordFillStructuredFormViewer.d.ts +9 -0
- package/dist/components/questions/viewer/WordFillStructuredFormViewer.js +1 -0
- package/dist/components/questions/viewer/WordOrderAndMatchGroupViewer.d.ts +4 -0
- package/dist/components/questions/viewer/WordOrderAndMatchGroupViewer.js +1 -0
- package/dist/components/questions/viewer/index.d.ts +6 -0
- package/dist/components/questions/viewer/index.js +1 -1
- package/dist/components/results/renderers/review-question-body-dedicated.js +1 -1
- package/dist/components/results/review-data.js +1 -1
- package/dist/components/themes/english-certification/EcWordFillStructuredForm.js +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +1 -1
- package/dist/mcp/config.d.ts +12 -0
- package/dist/mcp/config.js +1 -0
- package/dist/mcp/http-client.d.ts +6 -0
- package/dist/mcp/http-client.js +1 -0
- package/dist/mcp/index.d.ts +6 -0
- package/dist/mcp/index.js +2 -0
- package/dist/mcp/tools/_helpers.d.ts +4 -0
- package/dist/mcp/tools/_helpers.js +1 -0
- package/dist/mcp/tools/exams.d.ts +2 -0
- package/dist/mcp/tools/exams.js +1 -0
- package/dist/mcp/tools/index.d.ts +2 -0
- package/dist/mcp/tools/index.js +1 -0
- package/dist/mcp/tools/results.d.ts +2 -0
- package/dist/mcp/tools/results.js +1 -0
- package/dist/shared/constants/question-skills.js +1 -1
- package/dist/shared/lib/i18n/messages/en/admin.d.ts +4 -11
- package/dist/shared/lib/i18n/messages/en/admin.js +1 -1
- package/dist/shared/lib/i18n/messages/en.d.ts +4 -11
- package/dist/shared/lib/i18n/messages/vi/admin.d.ts +4 -11
- package/dist/shared/lib/i18n/messages/vi/admin.js +1 -1
- package/dist/shared/lib/i18n/messages/vi.d.ts +4 -11
- package/dist/shared/lib/utils/question-reverse-transform.js +1 -1
- package/dist/shared/lib/utils/question-transform.js +1 -1
- package/dist/shared/types/common.types.d.ts +1 -1
- package/dist/shared/types/questions/choose-the-correct-answer-group.d.ts +41 -0
- package/dist/shared/types/questions/choose-the-correct-answer-group.js +1 -0
- package/dist/shared/types/questions/cross-out-word-group.d.ts +41 -0
- package/dist/shared/types/questions/cross-out-word-group.js +1 -0
- package/dist/shared/types/questions/index.d.ts +2 -0
- package/dist/shared/types/questions/index.js +1 -1
- package/package.json +166 -169
- package/dist/components/exams/ExamPreviewPartContent.d.ts +0 -18
- package/dist/components/exams/ExamPreviewPartContent.js +0 -1
- package/dist/components/exams/ExamPreviewSidebar.d.ts +0 -17
- package/dist/components/exams/ExamPreviewSidebar.js +0 -1
- package/dist/components/exams/exam-preview.types.d.ts +0 -34
- package/dist/components/exams/exam-preview.types.js +0 -1
- package/dist/components/questions/_shared/utils/parseFillBlankStem.d.ts +0 -30
- package/dist/components/questions/_shared/utils/parseFillBlankStem.js +0 -1
- package/dist/components/questions/question-bank/EditQuestionBankDialog.d.ts +0 -2
- package/dist/components/questions/question-bank/EditQuestionBankDialog.js +0 -1
- package/dist/components/questions/question-bank/QuestionEditorRenderer.d.ts +0 -23
- package/dist/components/questions/question-bank/QuestionEditorRenderer.js +0 -1
- package/dist/components/questions/question-bank/difficulty.d.ts +0 -15
- package/dist/components/questions/question-bank/difficulty.js +0 -1
- package/dist/components/questions/question-bank/editor-adapters/choice-adapters.d.ts +0 -5
- package/dist/components/questions/question-bank/editor-adapters/choice-adapters.js +0 -1
- package/dist/components/questions/question-bank/editor-adapters/index.d.ts +0 -5
- package/dist/components/questions/question-bank/editor-adapters/index.js +0 -1
- package/dist/components/questions/question-bank/editor-adapters/media-adapters.d.ts +0 -6
- package/dist/components/questions/question-bank/editor-adapters/media-adapters.js +0 -1
- package/dist/components/questions/question-bank/editor-adapters/types.d.ts +0 -1
- package/dist/components/questions/question-bank/editor-adapters/unsupported-fallback.d.ts +0 -8
- package/dist/components/questions/question-bank/editor-adapters/unsupported-fallback.js +0 -1
- package/dist/components/questions/question-bank/editor-adapters/writing-adapters.d.ts +0 -5
- package/dist/components/questions/question-bank/editor-adapters/writing-adapters.js +0 -1
- package/dist/components/questions/question-bank/index.d.ts +0 -4
- package/dist/components/questions/question-bank/index.js +0 -1
- package/dist/components/questions/question-bank/types.d.ts +0 -59
- /package/dist/components/questions/{question-bank/editor-adapters/types.js → _shared/types/choose-the-correct-answer-group.type.js} +0 -0
- /package/dist/components/questions/{question-bank/types.js → _shared/types/cross-out-word-group.type.js} +0 -0
|
@@ -275,12 +275,6 @@ declare const vi: {
|
|
|
275
275
|
readonly 'admin.questionBank.dialog.edit.save': "Lưu thay đổi";
|
|
276
276
|
readonly 'admin.questionBank.dialog.edit.codeError': "Vui lòng nhập mã câu hỏi";
|
|
277
277
|
readonly 'admin.questionBank.dialog.edit.titleError': "Vui lòng nhập tiêu đề";
|
|
278
|
-
readonly 'admin.questionBank.dialog.edit.loading': "Đang tải...";
|
|
279
|
-
readonly 'admin.questionBank.dialog.edit.unsupportedNote': "Lưu ý:";
|
|
280
|
-
readonly 'admin.questionBank.dialog.edit.unsupportedType': "Loại câu hỏi \"{type}\" chưa hỗ trợ chỉnh sửa trực tiếp trong giao diện này. Vui lòng sử dụng trang tạo đề thi để chỉnh sửa câu hỏi này.";
|
|
281
|
-
readonly 'admin.questionBank.dialog.edit.contentLabel': "Nội dung câu hỏi";
|
|
282
|
-
readonly 'admin.questionBank.dialog.edit.answerLabel': "Đáp án đúng";
|
|
283
|
-
readonly 'admin.questionBank.dialog.edit.explanationLabel': "Giải thích";
|
|
284
278
|
readonly 'admin.questionBank.dialog.delete.title': "Xác nhận xóa câu hỏi";
|
|
285
279
|
readonly 'admin.questionBank.dialog.delete.message': "Bạn có chắc chắn muốn xóa câu hỏi";
|
|
286
280
|
readonly 'admin.questionBank.dialog.delete.warning': "Hành động này không thể hoàn tác.";
|
|
@@ -1550,6 +1544,9 @@ declare const vi: {
|
|
|
1550
1544
|
readonly 'admin.exams.shuffle.info3': "Các câu hỏi trong cùng 1 Part được xáo trộn ngẫu nhiên";
|
|
1551
1545
|
readonly 'admin.exams.shuffle.info4': "Các đề thi con được liên kết với đề thi cha để quản lý";
|
|
1552
1546
|
readonly 'admin.exams.shuffle.countLabel': "Số lượng đề thi con muốn tạo";
|
|
1547
|
+
readonly 'admin.exams.shuffle.strategyLabel': "Lựa chọn xử lý đề thi cũ";
|
|
1548
|
+
readonly 'admin.exams.shuffle.keepOld': "Giữ lại các đề thi cũ và thêm đề mới";
|
|
1549
|
+
readonly 'admin.exams.shuffle.replaceAll': "Tạo bộ đề mới hoàn toàn";
|
|
1553
1550
|
readonly 'admin.exams.shuffle.existingVariants': "Đề thi đã có ({count})";
|
|
1554
1551
|
readonly 'admin.exams.shuffle.deleteAll': "Xóa tất cả ({count})";
|
|
1555
1552
|
readonly 'admin.exams.shuffle.loading': "Đang tải...";
|
|
@@ -1640,25 +1637,21 @@ declare const vi: {
|
|
|
1640
1637
|
readonly 'admin.exams.preview.totalPoints': "Tổng điểm:";
|
|
1641
1638
|
readonly 'admin.exams.preview.progress': "Tiến độ";
|
|
1642
1639
|
readonly 'admin.exams.preview.loading': "Đang tải...";
|
|
1643
|
-
readonly 'admin.exams.preview.questionNavigation': "Điều hướng
|
|
1640
|
+
readonly 'admin.exams.preview.questionNavigation': "Điều hướng câu hỏi";
|
|
1644
1641
|
readonly 'admin.exams.preview.all': "Tất cả";
|
|
1645
1642
|
readonly 'admin.exams.preview.allQuestions': "Tất cả {count} câu hỏi";
|
|
1646
1643
|
readonly 'admin.exams.preview.partQuestions': "Part {part}: {count} câu";
|
|
1647
1644
|
readonly 'admin.exams.preview.collapse': "Thu gọn";
|
|
1648
1645
|
readonly 'admin.exams.preview.detail': "Chi tiết";
|
|
1649
1646
|
readonly 'admin.exams.preview.questionIndex': "Câu hỏi {index} / {total}";
|
|
1650
|
-
readonly 'admin.exams.preview.partIndex': "Part {index} / {total}";
|
|
1651
1647
|
readonly 'admin.exams.preview.noQuestions': "Chưa có câu hỏi";
|
|
1652
1648
|
readonly 'admin.exams.preview.loadingQuestions': "Đang tải câu hỏi...";
|
|
1653
1649
|
readonly 'admin.exams.preview.retry': "Thử lại";
|
|
1654
1650
|
readonly 'admin.exams.preview.examNoQuestions': "Đề thi này chưa có câu hỏi nào.";
|
|
1655
1651
|
readonly 'admin.exams.preview.prevQuestion': "Câu trước";
|
|
1656
|
-
readonly 'admin.exams.preview.prevPart': "Part trước";
|
|
1657
1652
|
readonly 'admin.exams.preview.prev': "Trước";
|
|
1658
1653
|
readonly 'admin.exams.preview.nextQuestion': "Câu tiếp theo";
|
|
1659
|
-
readonly 'admin.exams.preview.nextPart': "Part tiếp theo";
|
|
1660
1654
|
readonly 'admin.exams.preview.next': "Tiếp";
|
|
1661
|
-
readonly 'admin.exams.preview.questionLabel': "Câu {number}";
|
|
1662
1655
|
readonly 'admin.exams.preview.footerNote': "Đây là chế độ xem trước để kiểm tra bố cục và nội dung đề thi.";
|
|
1663
1656
|
readonly 'admin.exams.preview.close': "Đóng";
|
|
1664
1657
|
readonly 'admin.exams.preview.loadError': "Không thể tải câu hỏi. Vui lòng thử lại.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const e=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),t=t=>e(t)?t:{},n=e=>Array.isArray(e)?e:[],o=(e,t="")=>"string"==typeof e?e:t,r=(e,t)=>"number"==typeof e&&Number.isFinite(e)?e:t,s=e=>t(e.correctAnswer??e.correct_answer),i=e=>t(e.questionGroup??e.question_group),a=e=>Number.parseFloat(String(e.total_points??e.points??1))||1,_=e=>{const t=e?.toUpperCase();return"EASY"===t||"MEDIUM"===t||"HARD"===t?t:void 0},p=e=>{const t=e?.toUpperCase();return"LISTENING"===t||"READING"===t||"WRITING"===t||"SPEAKING"===t?t:void 0},E=e=>({content:e.content,answer:s(e)}),c=e=>{const r=t(e.content),i=s(e);return{content:"",answer:{imageUrl:o(r.imageUrl),question:o(r.question),options:n(r.options).map(e=>"string"==typeof e?e:o(t(e).text)),correctAnswer:i.answer??i.correctAnswer??-1,explanation:o(e.explanation),points:a(e)}}},u=e=>{const n=t(e.content),_=s(e),p=i(e);return{content:"",answer:{...t(p.payload),...n,..._,groupNumber:r(p.groupNumber,1),explanation:o(e.explanation),points:a(e)}}},A=e=>{const n=s(e),r=t(e.content);return{content:e.content??"",answer:{...n,...r,explanation:o(e.explanation),points:a(e)}}},l={CHOOSE_THE_CORRECT_ANSWER:e=>{const r=t(e.content),i=s(e),_=i.answer??-1,p=Boolean(r.multipleAnswers??i.multipleAnswers??Array.isArray(_));return{content:"",answer:{question:o(r.question),optionType:o(r.optionType,"text"),options:n(r.options),imageUrl:o(r.imageUrl),askerName:o(r.askerName),answererName:o(r.answererName),correctAnswer:p?Array.isArray(_)?_:-1===_?[]:[_]:Array.isArray(_)?_[0]??-1:_,multipleAnswers:p,explanation:o(e.explanation),points:a(e)}}},CHOOSE_THE_CORRECT_ANSWER_GROUP:e=>{const i=t(e.content),a=s(e),_=n(a.answer).map(e=>o(e)),p=n(i.items).map((e,s)=>{const i=t(e),a=t(i.content),p=t(i.correctAnswer),E=n(a.options).map((e,n)=>{const r=t(e);return{id:o(r.id,`opt-${n+1}`),text:o(r.text)}}),c=!0===i.isExample;return{question:o(a.question),optionType:"image"===o(a.optionType,"text")?"image":"text",options:E.length>=2?E:[{id:"opt-1",text:""},{id:"opt-2",text:""},{id:"opt-3",text:""}],correctAnswer:o(p.answer)||_[s]||E[0]?.id||"opt-1",isExample:c,points:c?0:r(i.points,1),questionNumber:r(i.questionNumber,s+1)}});return{content:"",answer:{instruction:o(t(i.meta).instruction,"Choose the correct answer."),items:p,explanation:o(e.explanation),points:p.reduce((e,t)=>t.isExample?e:e+t.points,0)}}},TRUE_FALSE_GROUP:e=>{const i=t(e.content),a=s(e),_=n(a.answer),p=n(i.items).map((e,n)=>{const s=t(e),i=t(s.content),a=t(s.correctAnswer),p=!0===s.isExample,E="boolean"==typeof a.answer?a.answer:"boolean"!=typeof _[n]||_[n];return{question:o(i.question),correctAnswer:E,isExample:p,points:p?0:r(s.points,1),questionNumber:r(s.questionNumber,n+1)}});return{content:"",answer:{instruction:o(t(i.meta).instruction,"Tick True or False."),items:p,explanation:o(e.explanation),points:p.reduce((e,t)=>t.isExample?e:e+t.points,0)}}},CROSS_OUT_WORD_GROUP:e=>{const i=t(e.content),a=s(e),_=n(a.answer),p=n(i.items).map((e,n)=>{const s=t(e),i=t(s.content),a=t(t(s.correctAnswer).answer),p=t(_[n]),E=Object.keys(a).length>0?a:p,c=!0===s.isExample,u="CROSS_OUT_AND_REPLACE"===i.type||"CROSS_OUT_AND_REPLACE"===E.type?"CROSS_OUT_AND_REPLACE":"CROSS_OUT",A="CROSS_OUT_AND_REPLACE"===u?{type:"CROSS_OUT_AND_REPLACE",crossOut:o(E.crossOut),replaceWith:o(E.replaceWith)}:{type:"CROSS_OUT",crossOut:o(E.crossOut)};return{type:u,question:o(i.question),correctAnswer:A,isExample:c,points:c?0:r(s.points,1),questionNumber:r(s.questionNumber,n+1)}});return{content:"",answer:{instruction:o(t(i.meta).instruction,"Cross out the extra or incorrect word. If the word is incorrect, write the correct word. If the line is correct, leave it blank."),items:p,explanation:o(e.explanation),points:p.reduce((e,t)=>t.isExample?e:e+t.points,0)}}},LOOK_PICTURE_CHOOSE_CORRECT_ANSWER:c,LOOK_PICTURE_FILL_BLANK_CHOOSE_ANSWER:c,FILL_IN_BLANK:e=>{const r=t(e.content),i=s(e),_=t(n(r.blanks)[0]);return{content:"",answer:{question:o(r.question??_.text),answers:Array.isArray(i.answers)?i.answers:[],caseSensitive:Boolean(i.caseSensitive??!1),imageUrl:o(r.imageUrl),showHints:Boolean(r.showHints??!1),hints:n(r.hints),explanation:o(e.explanation),points:a(e),blanks:n(r.blanks)}}},READ_PASSAGE_AND_ANSWER_QUESTIONS:e=>{const _=t(e.content),p=s(e),E=i(e),c=t(E.payload);return{content:"",answer:{passage:o(c.passage??_.passage),passageTitle:o(c.passageTitle??_.passageTitle),instructions:o(c.instructions??_.instructions),singleQuestion:{id:o(e.id,`question-${String(e.question_number??e.questionNumber??1)}`),question:o(_.question),options:n(_.options),correctAnswer:p.correctAnswer??p.answer??-1,points:a(e),groupNumber:r(E.groupNumber,1)}}}},LABEL_THE_PICTURE:e=>{const r=t(e.content),i=s(e),a=t(i.labels??i.answers);return{content:"",answer:{imageUrl:o(r.imageUrl),wordBank:n(r.wordBank),labels:n(r.labels).map(e=>{const n=t(e),r=o(n.id);return{...n,correctAnswer:n.correctAnswer??a[r]??""}})}}},READ_AND_COLOR_OBJECTS:u,IMAGE_OBJECT_MATCHING:u,FILL_MISSING_WORDS_IN_GRID:e=>({content:e.content??{},answer:s(e)}),LOOK_PICTURE_FILL_WORD_HINT:u,ANSWER_THE_QUESTION:u,TRUE_FALSE:A,WORD_ORDERING:A,WORD_FILL_PARAGRAPH:A,MATCH_BY_WRITING_ANSWER:u,WRITE_SENTENCES:u,WRITE_A_SHORT_LETTER:A,WRITE_CORRECT_VERB_FORM:A,CHOOSE_CORRECT_ADJECTIVE:A,WORD_FILL_STRUCTURED_FORM:u,LISTEN_AND_CHOOSE_FROM_ANSWER_GROUP:u,LISTEN_AND_CHOOSE_OBJECTS_IN_SCENE:u,LISTEN_AND_DRAG_OBJECTS_INTO_SCENE:u,LISTEN_AND_SPEAK_ANSWER:u,LISTEN_AND_SPEAK_IMAGE_GROUP:u,LISTEN_AND_SPEAK_QUESTION_LIST:u,LISTEN_AND_SPEAK_COMPARE_IMAGES:u,LISTEN_AND_SPEAK_WITH_STORY_IMAGES:u,LISTEN_AND_SPEAK_ODD_ONE_OUT:u,LISTEN_AND_SPEAK_INFO_EXCHANGE:u,SPEAKING_DESCRIBE_IMAGE:A,READ_DISPLAYED_CONTENT:A,SPONTANEOUS_QA:A,SPEAKING_CONVERSATION:u,SPEAKING_CUE_CARD:A,GN_SPEAKING_INTERVIEW:u};export function transformApiQuestionToFrontend(t){const n=String(t.questionType??t.question_type??t.type??""),s=(l[n]??E)(t),i=(t=>{const n=t.questionBank??t.question_bank;return e(n)?n:void 0})(t);return{id:o(t.id),type:n,content:s.content,answer:s.answer,points:a(t),level:(c=t.level,"Pre-A1"===c||"A1"===c||"A2"===c||"B1"===c||"B2"===c||"C1"===c||"C2"===c?c:void 0),difficulty:_(o(t.difficulty??t.difficult_level)),skill:p(o(t.questionSkillType??t.question_skill_type??t.skill)),explanation:o(t.explanation),partId:o(t.partId??t.part_id),questionNumber:r(t.questionNumber??t.question_number,1),isCompleted:!0,questionGroup:t.questionGroup,questionBank:i?{id:o(i.id),code:o(i.code),title:o(i.title)}:void 0};var c}export function transformApiQuestionsToFrontend(e){return e.map(transformApiQuestionToFrontend)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{validateQuestionForTransform as o}from"./question-transform-validation";import{transformLookPictureChooseCorrectAnswer as t}from"../../../components/questions/types/look-picture-choose-correct-answer/transform";import{transformLookPictureFillBlankChooseAnswer as s}from"../../../components/questions/types/look-picture-fill-blank-choose-answer/transform";import{transformLookPictureFillWordHint as e}from"../../../components/questions/types/look-picture-fill-word-hint/transform";import{transformReadAndColorObjects as n}from"../../../components/questions/types/read-and-color-objects/transform";import{transformReadPassageAndAnswerQuestions as r}from"../../../components/questions/types/read-passage-and-answer-questions/transform";import{transformArrangeLettersIntoWords as a}from"../../../components/questions/types/arrange-letters-into-words/transform";import{transformWriteShortParagraph as i}from"../../../components/questions/types/write-short-paragraph/transform";import{transformWriteAShortLetter as p}from"../../../components/questions/types/write-a-short-letter/transform";import{transformFillMissingWordsInGrid as m}from"../../../components/questions/types/fill-missing-words-in-grid/transform";import{transformLabelThePicture as u}from"../../../components/questions/types/label-the-picture/transform";import{transformChooseTheCorrectAnswer as c}from"../../../components/questions/types/choose-the-correct-answer/transform";import{
|
|
1
|
+
import{validateQuestionForTransform as o}from"./question-transform-validation";import{transformLookPictureChooseCorrectAnswer as t}from"../../../components/questions/types/look-picture-choose-correct-answer/transform";import{transformLookPictureFillBlankChooseAnswer as s}from"../../../components/questions/types/look-picture-fill-blank-choose-answer/transform";import{transformLookPictureFillWordHint as e}from"../../../components/questions/types/look-picture-fill-word-hint/transform";import{transformReadAndColorObjects as n}from"../../../components/questions/types/read-and-color-objects/transform";import{transformReadPassageAndAnswerQuestions as r}from"../../../components/questions/types/read-passage-and-answer-questions/transform";import{transformArrangeLettersIntoWords as a}from"../../../components/questions/types/arrange-letters-into-words/transform";import{transformWriteShortParagraph as i}from"../../../components/questions/types/write-short-paragraph/transform";import{transformWriteAShortLetter as p}from"../../../components/questions/types/write-a-short-letter/transform";import{transformFillMissingWordsInGrid as m}from"../../../components/questions/types/fill-missing-words-in-grid/transform";import{transformLabelThePicture as u}from"../../../components/questions/types/label-the-picture/transform";import{transformChooseTheCorrectAnswer as c}from"../../../components/questions/types/choose-the-correct-answer/transform";import{transformChooseTheCorrectAnswerGroup as _}from"../../../components/questions/types/choose-the-correct-answer-group/transform";import{transformCrossOutWordGroup as E}from"../../../components/questions/types/cross-out-word-group/transform";import{transformFillInBlank as f}from"../../../components/questions/types/fill-in-blank/transform";import{transformWriteCorrectVerbForm as N}from"../../../components/questions/types/write-correct-verb-form/transform";import{transformChooseCorrectAdjective as A}from"../../../components/questions/types/choose-correct-adjective/transform";import{transformAnswerTheQuestion as I}from"../../../components/questions/types/answer-the-question/transform";import{transformTrueFalse as T}from"../../../components/questions/types/true-false/transform";import{transformWordOrdering as d}from"../../../components/questions/types/word-ordering/transform";import{transformWordFillParagraph as R}from"../../../components/questions/types/word-fill-paragraph/transform";import{transformMatchByWritingAnswer as S}from"../../../components/questions/types/match-by-writing-answer/transform";import{transformWriteSentences as l}from"../../../components/questions/types/write-sentences/transform";import{transformListenAndChooseFromAnswerGroup as O}from"../../../components/questions/types/listen-and-choose-from-answer-group/transform";import{transformListenAndChooseObjectsInScene as q}from"../../../components/questions/types/listen-and-choose-objects-in-scene/transform";import{transformListenAndDragObjectsIntoScene as D}from"../../../components/questions/types/listen-and-drag-objects-into-scene/transform";import{transformListenAndSpeakAnswer as C}from"../../../components/questions/types/listen-and-speak-answer/transform";import{transformListenAndSpeakImageGroup as y}from"../../../components/questions/types/listen-and-speak-image-group/transform";import{transformListenAndSpeakQuestionList as L}from"../../../components/questions/types/listen-and-speak-question-list/transform";import{transformListenAndSpeakCompareImages as G}from"../../../components/questions/types/listen-and-speak-compare-images/transform";import{transformListenAndSpeakOddOneOut as g}from"../../../components/questions/types/listen-and-speak-odd-one-out/transform";import{transformListenAndSpeakWithStoryImages as w}from"../../../components/questions/types/listen-and-speak-with-story-images/transform";import{transformListenAndSpeakInfoExchange as h}from"../../../components/questions/types/listen-and-speak-info-exchange/transform";import{transformSpeakingDescribeImage as k}from"../../../components/questions/types/speaking-describe-image/transform";import{transformReadDisplayedContent as P}from"../../../components/questions/types/read-displayed-content/transform";import{transformSpontaneousQA as b}from"../../../components/questions/types/spontaneous-qa/transform";import{transformSpeakingConversation as W}from"../../../components/questions/types/speaking-conversation/transform";import{transformSpeakingCueCard as B}from"../../../components/questions/types/speaking-cue-card/transform";import{transformGNSpeakingInterview as H}from"../../../components/questions/types/gn-speaking-interview/transform";import{transformWordFillStructuredForm as U}from"../../../components/questions/types/word-fill-structured-form/transform";const v={LOOK_PICTURE_CHOOSE_CORRECT_ANSWER:t,LOOK_PICTURE_FILL_BLANK_CHOOSE_ANSWER:s,LOOK_PICTURE_FILL_WORD_HINT:e,READ_AND_COLOR_OBJECTS:n,IMAGE_OBJECT_MATCHING:n,READ_PASSAGE_AND_ANSWER_QUESTIONS:r,ARRANGE_LETTERS_INTO_WORDS:a,WRITE_SHORT_PARAGRAPH:i,WRITE_A_SHORT_LETTER:p,FILL_MISSING_WORDS_IN_GRID:m,LABEL_THE_PICTURE:u,CHOOSE_THE_CORRECT_ANSWER:c,CHOOSE_THE_CORRECT_ANSWER_GROUP:_,CROSS_OUT_WORD_GROUP:E,FILL_IN_BLANK:f,WRITE_CORRECT_VERB_FORM:N,CHOOSE_CORRECT_ADJECTIVE:A,ANSWER_THE_QUESTION:I,TRUE_FALSE:T,WORD_ORDERING:d,WORD_FILL_PARAGRAPH:R,MATCH_BY_WRITING_ANSWER:S,WRITE_SENTENCES:l,LISTEN_AND_CHOOSE_FROM_ANSWER_GROUP:O,LISTEN_AND_CHOOSE_OBJECTS_IN_SCENE:q,LISTEN_AND_DRAG_OBJECTS_INTO_SCENE:D,LISTEN_AND_SPEAK_ANSWER:C,LISTEN_AND_SPEAK_IMAGE_GROUP:y,LISTEN_AND_SPEAK_QUESTION_LIST:L,LISTEN_AND_SPEAK_COMPARE_IMAGES:G,LISTEN_AND_SPEAK_ODD_ONE_OUT:g,LISTEN_AND_SPEAK_WITH_STORY_IMAGES:w,LISTEN_AND_SPEAK_INFO_EXCHANGE:h,SPEAKING_DESCRIBE_IMAGE:k,READ_DISPLAYED_CONTENT:P,SPONTANEOUS_QA:b,SPEAKING_CONVERSATION:W,SPEAKING_CUE_CARD:B,GN_SPEAKING_INTERVIEW:H,WORD_FILL_STRUCTURED_FORM:U};export function transformQuestionToApiFormat(o,t={}){const{partId:s,partNo:e,questionNumber:n,addToQuestionBank:r,questionBankCode:a,questionBankTitle:i,sectionId:p,examLevel:m,subjectId:u}=t,{id:c,type:_,points:E,explanation:f}=o,N=_?v[_]:void 0,A=N?N(o):{apiContent:{},apiCorrectAnswer:{}},{apiContent:I,apiCorrectAnswer:T,totalPoints:d,hintLetters:R,groupNumber:S,passageData:l,imageData:O,basicGroupData:q,questionListGroupData:D,sceneData:C,answerGroupData:y,compareImagesGroupData:L,infoExchangeGroupData:G,conversationGroupData:g,isExample:w,suggestedAnswers:h}=A,k=o.answer,P=o.content,b={id:c,questionType:_||"",content:I,correctAnswer:T||{},points:d??E??1,explanation:A.explanation||f||k?.explanation||P?.explanation||"",questionNumber:n,partId:s,partNo:e,...null!=p?{sectionId:p}:{},questionSkillType:o.skill,examLevel:m,subjectId:u,addToQuestionBank:r??!1,questionBank:r&&a&&i?{code:a,title:i}:void 0,isExample:w||!1};h&&h.length>0&&(b.suggestedAnswers=h);const W=function(o){const{hintLetters:t,passageData:s,imageData:e,basicGroupData:n,sceneData:r,answerGroupData:a,questionListGroupData:i,compareImagesGroupData:p,infoExchangeGroupData:m,conversationGroupData:u}=o;if(t&&t.length>0)return{hintLetters:t};if(s)return s;if(e)return e;if(n&&(n.title||n.subtitle||n.content||n.imageUrl||n.articles))return n;return r||(a||(i||(p||(m||(u||void 0)))))}({hintLetters:R,passageData:l,imageData:O,basicGroupData:q,sceneData:C,answerGroupData:y,questionListGroupData:D,compareImagesGroupData:L,infoExchangeGroupData:G,conversationGroupData:g});return W&&(b.isGroup=!0,b.questionGroup={payload:W,groupNumber:S||1}),b}export function transformQuestionsToApiFormat(t){const s=[],e=[];return t.forEach((t,n)=>{const{question:r,partId:a,partNo:i,sectionId:p,addToQuestionBank:m,questionBankCode:u,questionBankTitle:c,examLevel:_,subjectId:E}=t,f=o(r);if(!f.isValid)return void e.push({index:n,errors:f.errors});const N=r.questionNumber??n+1;s.push(transformQuestionToApiFormat(r,{partId:a,partNo:i,questionNumber:N,addToQuestionBank:m,questionBankCode:u,questionBankTitle:c,sectionId:p,examLevel:_,subjectId:E}))}),{validQuestions:s,invalidQuestions:e}}
|
|
@@ -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' | 'WRITE_A_SHORT_LETTER' | 'WRITE_CORRECT_VERB_FORM' | 'CHOOSE_CORRECT_ADJECTIVE' | 'ANSWER_THE_QUESTION' | 'WORD_ORDERING' | 'WORD_FILL_PARAGRAPH' | 'MATCH_BY_WRITING_ANSWER' | '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';
|
|
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' | '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' | 'WORD_ORDERING' | 'WORD_FILL_PARAGRAPH' | 'MATCH_BY_WRITING_ANSWER' | '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';
|
|
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';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface ChooseTheCorrectAnswerGroupOption {
|
|
2
|
+
id: string;
|
|
3
|
+
text?: string;
|
|
4
|
+
imageUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ChooseTheCorrectAnswerGroupItemContent {
|
|
7
|
+
question: string;
|
|
8
|
+
options: ChooseTheCorrectAnswerGroupOption[];
|
|
9
|
+
optionType?: 'text' | 'image';
|
|
10
|
+
}
|
|
11
|
+
export interface ChooseTheCorrectAnswerGroupItem {
|
|
12
|
+
questionType?: 'CHOOSE_THE_CORRECT_ANSWER';
|
|
13
|
+
isExample?: boolean;
|
|
14
|
+
content: ChooseTheCorrectAnswerGroupItemContent;
|
|
15
|
+
correctAnswer?: {
|
|
16
|
+
answer: string;
|
|
17
|
+
};
|
|
18
|
+
points?: number;
|
|
19
|
+
questionNumber?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface ChooseTheCorrectAnswerGroupContent {
|
|
22
|
+
meta?: {
|
|
23
|
+
instruction?: string;
|
|
24
|
+
};
|
|
25
|
+
items: ChooseTheCorrectAnswerGroupItem[];
|
|
26
|
+
}
|
|
27
|
+
export interface ChooseTheCorrectAnswerGroupCorrectAnswer {
|
|
28
|
+
answer: string[];
|
|
29
|
+
}
|
|
30
|
+
export interface ChooseTheCorrectAnswerGroupAPIPayload {
|
|
31
|
+
id?: string;
|
|
32
|
+
questionType: 'CHOOSE_THE_CORRECT_ANSWER_GROUP';
|
|
33
|
+
content: ChooseTheCorrectAnswerGroupContent;
|
|
34
|
+
correctAnswer: ChooseTheCorrectAnswerGroupCorrectAnswer;
|
|
35
|
+
points: number;
|
|
36
|
+
explanation?: string;
|
|
37
|
+
questionNumber: number;
|
|
38
|
+
partId?: string;
|
|
39
|
+
partNo?: number;
|
|
40
|
+
}
|
|
41
|
+
export type ChooseTheCorrectAnswerGroupLocalStorage = ChooseTheCorrectAnswerGroupAPIPayload;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export type CrossOutWordItemMode = 'CROSS_OUT' | 'CROSS_OUT_AND_REPLACE';
|
|
2
|
+
export interface CrossOutWordGroupItemAnswer {
|
|
3
|
+
type: CrossOutWordItemMode;
|
|
4
|
+
crossOut: string;
|
|
5
|
+
replaceWith?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface CrossOutWordGroupItemContent {
|
|
8
|
+
type: CrossOutWordItemMode;
|
|
9
|
+
question: string;
|
|
10
|
+
}
|
|
11
|
+
export interface CrossOutWordGroupItem {
|
|
12
|
+
questionType?: 'CROSS_OUT_WORD';
|
|
13
|
+
isExample?: boolean;
|
|
14
|
+
content: CrossOutWordGroupItemContent;
|
|
15
|
+
correctAnswer?: {
|
|
16
|
+
answer: CrossOutWordGroupItemAnswer;
|
|
17
|
+
};
|
|
18
|
+
points?: number;
|
|
19
|
+
questionNumber?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface CrossOutWordGroupContent {
|
|
22
|
+
meta?: {
|
|
23
|
+
instruction?: string;
|
|
24
|
+
};
|
|
25
|
+
items: CrossOutWordGroupItem[];
|
|
26
|
+
}
|
|
27
|
+
export interface CrossOutWordGroupCorrectAnswer {
|
|
28
|
+
answer: CrossOutWordGroupItemAnswer[];
|
|
29
|
+
}
|
|
30
|
+
export interface CrossOutWordGroupAPIPayload {
|
|
31
|
+
id?: string;
|
|
32
|
+
questionType: 'CROSS_OUT_WORD_GROUP';
|
|
33
|
+
content: CrossOutWordGroupContent;
|
|
34
|
+
correctAnswer: CrossOutWordGroupCorrectAnswer;
|
|
35
|
+
points: number;
|
|
36
|
+
explanation?: string;
|
|
37
|
+
questionNumber: number;
|
|
38
|
+
partId?: string;
|
|
39
|
+
partNo?: number;
|
|
40
|
+
}
|
|
41
|
+
export type CrossOutWordGroupLocalStorage = CrossOutWordGroupAPIPayload;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
* - LocalStorage: Same format but WITHOUT addToQuestionBank and questionBank
|
|
17
17
|
*/
|
|
18
18
|
export * from './choose-the-correct-answer';
|
|
19
|
+
export * from './choose-the-correct-answer-group';
|
|
20
|
+
export * from './cross-out-word-group';
|
|
19
21
|
export * from './write-correct-verb-form';
|
|
20
22
|
export * from './choose-correct-adjective';
|
|
21
23
|
export * from './look-picture-fill-blank-choose-answer';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export*from"./choose-the-correct-answer";export*from"./write-correct-verb-form";export*from"./choose-correct-adjective";export*from"./look-picture-fill-blank-choose-answer";export*from"./fill-missing-words-in-grid";export*from"./look-picture-fill-word-hint";export*from"./look-picture-choose-correct-answer";export*from"./listen-and-speak-answer";export*from"./read-displayed-content";export*from"./speaking-describe-image";export*from"./spontaneous-qa";
|
|
1
|
+
export*from"./choose-the-correct-answer";export*from"./choose-the-correct-answer-group";export*from"./cross-out-word-group";export*from"./write-correct-verb-form";export*from"./choose-correct-adjective";export*from"./look-picture-fill-blank-choose-answer";export*from"./fill-missing-words-in-grid";export*from"./look-picture-fill-word-hint";export*from"./look-picture-choose-correct-answer";export*from"./listen-and-speak-answer";export*from"./read-displayed-content";export*from"./speaking-describe-image";export*from"./spontaneous-qa";
|