@digabi/exam-engine-core 16.4.4 → 16.4.7-alpha.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/__tests__/tsconfig.tsbuildinfo +1 -1
- package/dist/components/AttachmentContext.d.ts +14 -0
- package/dist/components/AttachmentContext.d.ts.map +1 -0
- package/dist/components/AttachmentContext.js +12 -0
- package/dist/components/AttachmentContext.js.map +1 -0
- package/dist/components/AttachmentLink.d.ts +5 -0
- package/dist/components/AttachmentLink.d.ts.map +1 -0
- package/dist/components/AttachmentLink.js +28 -0
- package/dist/components/AttachmentLink.js.map +1 -0
- package/dist/components/AttachmentLinkAnchor.d.ts +7 -0
- package/dist/components/AttachmentLinkAnchor.d.ts.map +1 -0
- package/dist/components/AttachmentLinkAnchor.js +4 -0
- package/dist/components/AttachmentLinkAnchor.js.map +1 -0
- package/dist/components/AttachmentLinks.d.ts +5 -0
- package/dist/components/AttachmentLinks.d.ts.map +1 -0
- package/dist/components/AttachmentLinks.js +62 -0
- package/dist/components/AttachmentLinks.js.map +1 -0
- package/dist/components/Attachments.d.ts +6 -0
- package/dist/components/Attachments.d.ts.map +1 -0
- package/dist/components/Attachments.js +55 -0
- package/dist/components/Attachments.js.map +1 -0
- package/dist/components/AttachmentsAttachment.d.ts +5 -0
- package/dist/components/AttachmentsAttachment.d.ts.map +1 -0
- package/dist/components/AttachmentsAttachment.js +8 -0
- package/dist/components/AttachmentsAttachment.js.map +1 -0
- package/dist/components/AttachmentsAttachmentTitle.d.ts +6 -0
- package/dist/components/AttachmentsAttachmentTitle.d.ts.map +1 -0
- package/dist/components/AttachmentsAttachmentTitle.js +12 -0
- package/dist/components/AttachmentsAttachmentTitle.js.map +1 -0
- package/dist/components/AttachmentsExternalMaterial.d.ts +9 -0
- package/dist/components/AttachmentsExternalMaterial.d.ts.map +1 -0
- package/dist/components/AttachmentsExternalMaterial.js +40 -0
- package/dist/components/AttachmentsExternalMaterial.js.map +1 -0
- package/dist/components/AttachmentsQuestion.d.ts +5 -0
- package/dist/components/AttachmentsQuestion.d.ts.map +1 -0
- package/dist/components/AttachmentsQuestion.js +17 -0
- package/dist/components/AttachmentsQuestion.js.map +1 -0
- package/dist/components/AttachmentsQuestionTitle.d.ts +6 -0
- package/dist/components/AttachmentsQuestionTitle.d.ts.map +1 -0
- package/dist/components/AttachmentsQuestionTitle.js +13 -0
- package/dist/components/AttachmentsQuestionTitle.js.map +1 -0
- package/dist/components/Audio.d.ts +6 -0
- package/dist/components/Audio.d.ts.map +1 -0
- package/dist/components/Audio.js +31 -0
- package/dist/components/Audio.js.map +1 -0
- package/dist/components/AudioGroup.d.ts +6 -0
- package/dist/components/AudioGroup.d.ts.map +1 -0
- package/dist/components/AudioGroup.js +9 -0
- package/dist/components/AudioGroup.js.map +1 -0
- package/dist/components/AudioPlaybackError.d.ts +7 -0
- package/dist/components/AudioPlaybackError.d.ts.map +1 -0
- package/dist/components/AudioPlaybackError.js +13 -0
- package/dist/components/AudioPlaybackError.js.map +1 -0
- package/dist/components/AudioTest.d.ts +6 -0
- package/dist/components/AudioTest.d.ts.map +1 -0
- package/dist/components/AudioTest.js +29 -0
- package/dist/components/AudioTest.js.map +1 -0
- package/dist/components/ChoiceAnswer.d.ts +12 -0
- package/dist/components/ChoiceAnswer.d.ts.map +1 -0
- package/dist/components/ChoiceAnswer.js +62 -0
- package/dist/components/ChoiceAnswer.js.map +1 -0
- package/dist/components/CommonExamContext.d.ts +19 -0
- package/dist/components/CommonExamContext.d.ts.map +1 -0
- package/dist/components/CommonExamContext.js +25 -0
- package/dist/components/CommonExamContext.js.map +1 -0
- package/dist/components/DropdownAnswer.d.ts +12 -0
- package/dist/components/DropdownAnswer.d.ts.map +1 -0
- package/dist/components/DropdownAnswer.js +100 -0
- package/dist/components/DropdownAnswer.js.map +1 -0
- package/dist/components/ErrorIndicator.d.ts +4 -0
- package/dist/components/ErrorIndicator.d.ts.map +1 -0
- package/dist/components/ErrorIndicator.js +43 -0
- package/dist/components/ErrorIndicator.js.map +1 -0
- package/dist/components/Exam.d.ts +32 -0
- package/dist/components/Exam.d.ts.map +1 -0
- package/dist/components/Exam.js +103 -0
- package/dist/components/Exam.js.map +1 -0
- package/dist/components/ExamAttachment.d.ts +5 -0
- package/dist/components/ExamAttachment.d.ts.map +1 -0
- package/dist/components/ExamAttachment.js +8 -0
- package/dist/components/ExamAttachment.js.map +1 -0
- package/dist/components/ExamContext.d.ts +10 -0
- package/dist/components/ExamContext.d.ts.map +1 -0
- package/dist/components/ExamContext.js +11 -0
- package/dist/components/ExamContext.js.map +1 -0
- package/dist/components/ExamFooter.d.ts +6 -0
- package/dist/components/ExamFooter.d.ts.map +1 -0
- package/dist/components/ExamFooter.js +7 -0
- package/dist/components/ExamFooter.js.map +1 -0
- package/dist/components/ExamInstruction.d.ts +6 -0
- package/dist/components/ExamInstruction.d.ts.map +1 -0
- package/dist/components/ExamInstruction.js +6 -0
- package/dist/components/ExamInstruction.js.map +1 -0
- package/dist/components/ExamQuestion.d.ts +5 -0
- package/dist/components/ExamQuestion.d.ts.map +1 -0
- package/dist/components/ExamQuestion.js +16 -0
- package/dist/components/ExamQuestion.js.map +1 -0
- package/dist/components/ExamQuestionInstruction.d.ts +6 -0
- package/dist/components/ExamQuestionInstruction.d.ts.map +1 -0
- package/dist/components/ExamQuestionInstruction.js +6 -0
- package/dist/components/ExamQuestionInstruction.js.map +1 -0
- package/dist/components/ExamQuestionTitle.d.ts +5 -0
- package/dist/components/ExamQuestionTitle.d.ts.map +1 -0
- package/dist/components/ExamQuestionTitle.js +24 -0
- package/dist/components/ExamQuestionTitle.js.map +1 -0
- package/dist/components/ExamSection.d.ts +5 -0
- package/dist/components/ExamSection.d.ts.map +1 -0
- package/dist/components/ExamSection.js +31 -0
- package/dist/components/ExamSection.js.map +1 -0
- package/dist/components/ExamSectionTitle.d.ts +6 -0
- package/dist/components/ExamSectionTitle.d.ts.map +1 -0
- package/dist/components/ExamSectionTitle.js +22 -0
- package/dist/components/ExamSectionTitle.js.map +1 -0
- package/dist/components/ExternalMaterialList.d.ts +10 -0
- package/dist/components/ExternalMaterialList.d.ts.map +1 -0
- package/dist/components/ExternalMaterialList.js +33 -0
- package/dist/components/ExternalMaterialList.js.map +1 -0
- package/dist/components/File.d.ts +6 -0
- package/dist/components/File.d.ts.map +1 -0
- package/dist/components/File.js +15 -0
- package/dist/components/File.js.map +1 -0
- package/dist/components/Formula.d.ts +6 -0
- package/dist/components/Formula.d.ts.map +1 -0
- package/dist/components/Formula.js +13 -0
- package/dist/components/Formula.js.map +1 -0
- package/dist/components/Hints.d.ts +5 -0
- package/dist/components/Hints.d.ts.map +1 -0
- package/dist/components/Hints.js +30 -0
- package/dist/components/Hints.js.map +1 -0
- package/dist/components/Image.d.ts +6 -0
- package/dist/components/Image.d.ts.map +1 -0
- package/dist/components/Image.js +28 -0
- package/dist/components/Image.js.map +1 -0
- package/dist/components/ImageOverlay.d.ts +6 -0
- package/dist/components/ImageOverlay.d.ts.map +1 -0
- package/dist/components/ImageOverlay.js +44 -0
- package/dist/components/ImageOverlay.js.map +1 -0
- package/dist/components/ProgressBar.d.ts +7 -0
- package/dist/components/ProgressBar.d.ts.map +1 -0
- package/dist/components/ProgressBar.js +19 -0
- package/dist/components/ProgressBar.js.map +1 -0
- package/dist/components/QuestionContext.d.ts +14 -0
- package/dist/components/QuestionContext.d.ts.map +1 -0
- package/dist/components/QuestionContext.js +20 -0
- package/dist/components/QuestionContext.js.map +1 -0
- package/dist/components/Reference.d.ts +6 -0
- package/dist/components/Reference.d.ts.map +1 -0
- package/dist/components/Reference.js +71 -0
- package/dist/components/Reference.js.map +1 -0
- package/dist/components/References.d.ts +6 -0
- package/dist/components/References.d.ts.map +1 -0
- package/dist/components/References.js +25 -0
- package/dist/components/References.js.map +1 -0
- package/dist/components/ResponsiveMediaContainer.d.ts +18 -0
- package/dist/components/ResponsiveMediaContainer.d.ts.map +1 -0
- package/dist/components/ResponsiveMediaContainer.js +21 -0
- package/dist/components/ResponsiveMediaContainer.js.map +1 -0
- package/dist/components/RestrictedAudioPlayer.d.ts +12 -0
- package/dist/components/RestrictedAudioPlayer.d.ts.map +1 -0
- package/dist/components/RestrictedAudioPlayer.js +32 -0
- package/dist/components/RestrictedAudioPlayer.js.map +1 -0
- package/dist/components/RichTextAnswer.d.ts +33 -0
- package/dist/components/RichTextAnswer.d.ts.map +1 -0
- package/dist/components/RichTextAnswer.js +61 -0
- package/dist/components/RichTextAnswer.js.map +1 -0
- package/dist/components/SaveIndicator.d.ts +5 -0
- package/dist/components/SaveIndicator.d.ts.map +1 -0
- package/dist/components/SaveIndicator.js +16 -0
- package/dist/components/SaveIndicator.js.map +1 -0
- package/dist/components/Score.d.ts +8 -0
- package/dist/components/Score.d.ts.map +1 -0
- package/dist/components/Score.js +13 -0
- package/dist/components/Score.js.map +1 -0
- package/dist/components/Section.d.ts +4 -0
- package/dist/components/Section.d.ts.map +1 -0
- package/dist/components/Section.js +8 -0
- package/dist/components/Section.js.map +1 -0
- package/dist/components/SectionContext.d.ts +13 -0
- package/dist/components/SectionContext.d.ts.map +1 -0
- package/dist/components/SectionContext.js +21 -0
- package/dist/components/SectionContext.js.map +1 -0
- package/dist/components/SectionInstruction.d.ts +6 -0
- package/dist/components/SectionInstruction.d.ts.map +1 -0
- package/dist/components/SectionInstruction.js +6 -0
- package/dist/components/SectionInstruction.js.map +1 -0
- package/dist/components/TableOfContents.d.ts +13 -0
- package/dist/components/TableOfContents.d.ts.map +1 -0
- package/dist/components/TableOfContents.js +66 -0
- package/dist/components/TableOfContents.js.map +1 -0
- package/dist/components/TextAnswer.d.ts +6 -0
- package/dist/components/TextAnswer.d.ts.map +1 -0
- package/dist/components/TextAnswer.js +17 -0
- package/dist/components/TextAnswer.js.map +1 -0
- package/dist/components/TextAnswerInput.d.ts +36 -0
- package/dist/components/TextAnswerInput.d.ts.map +1 -0
- package/dist/components/TextAnswerInput.js +145 -0
- package/dist/components/TextAnswerInput.js.map +1 -0
- package/dist/components/Video.d.ts +6 -0
- package/dist/components/Video.d.ts.map +1 -0
- package/dist/components/Video.js +15 -0
- package/dist/components/Video.js.map +1 -0
- package/dist/components/exam/ChoiceAnswer.d.ts +2 -9
- package/dist/components/exam/ChoiceAnswer.d.ts.map +1 -1
- package/dist/components/exam/ChoiceAnswer.js +15 -20
- package/dist/components/exam/ChoiceAnswer.js.map +1 -1
- package/dist/components/exam/DropdownAnswer.d.ts +2 -9
- package/dist/components/exam/DropdownAnswer.d.ts.map +1 -1
- package/dist/components/exam/DropdownAnswer.js +8 -13
- package/dist/components/exam/DropdownAnswer.js.map +1 -1
- package/dist/components/exam/Hints.d.ts.map +1 -1
- package/dist/components/exam/Hints.js.map +1 -1
- package/dist/components/exam/Question.d.ts.map +1 -1
- package/dist/components/exam/Question.js.map +1 -1
- package/dist/components/exam/Section.d.ts.map +1 -1
- package/dist/components/exam/Section.js.map +1 -1
- package/dist/components/exam/TableOfContents.d.ts +13 -0
- package/dist/components/exam/TableOfContents.d.ts.map +1 -0
- package/dist/components/exam/TableOfContents.js +66 -0
- package/dist/components/exam/TableOfContents.js.map +1 -0
- package/dist/components/exam/TextAnswer.d.ts.map +1 -1
- package/dist/components/exam/TextAnswer.js +3 -13
- package/dist/components/exam/TextAnswer.js.map +1 -1
- package/dist/components/exam/internal/ErrorIndicator.d.ts.map +1 -1
- package/dist/components/exam/internal/ErrorIndicator.js.map +1 -1
- package/dist/components/exam/internal/TextAnswerInput.d.ts +1 -35
- package/dist/components/exam/internal/TextAnswerInput.d.ts.map +1 -1
- package/dist/components/exam/internal/TextAnswerInput.js +98 -129
- package/dist/components/exam/internal/TextAnswerInput.js.map +1 -1
- package/dist/components/grading-instruction/AnswerGradingInstruction.d.ts +5 -0
- package/dist/components/grading-instruction/AnswerGradingInstruction.d.ts.map +1 -0
- package/dist/components/grading-instruction/AnswerGradingInstruction.js +6 -0
- package/dist/components/grading-instruction/AnswerGradingInstruction.js.map +1 -0
- package/dist/components/grading-instruction/Audio.d.ts +5 -0
- package/dist/components/grading-instruction/Audio.d.ts.map +1 -0
- package/dist/components/grading-instruction/Audio.js +6 -0
- package/dist/components/grading-instruction/Audio.js.map +1 -0
- package/dist/components/grading-instruction/AudioTitle.d.ts +5 -0
- package/dist/components/grading-instruction/AudioTitle.d.ts.map +1 -0
- package/dist/components/grading-instruction/AudioTitle.js +10 -0
- package/dist/components/grading-instruction/AudioTitle.js.map +1 -0
- package/dist/components/grading-instruction/AutogradedAnswer.d.ts +5 -0
- package/dist/components/grading-instruction/AutogradedAnswer.d.ts.map +1 -0
- package/dist/components/grading-instruction/AutogradedAnswer.js +31 -0
- package/dist/components/grading-instruction/AutogradedAnswer.js.map +1 -0
- package/dist/components/grading-instruction/AutogradedAnswerOption.d.ts +5 -0
- package/dist/components/grading-instruction/AutogradedAnswerOption.d.ts.map +1 -0
- package/dist/components/grading-instruction/AutogradedAnswerOption.js +14 -0
- package/dist/components/grading-instruction/AutogradedAnswerOption.js.map +1 -0
- package/dist/components/grading-instruction/ExamGradingInstruction.d.ts +5 -0
- package/dist/components/grading-instruction/ExamGradingInstruction.d.ts.map +1 -0
- package/dist/components/grading-instruction/ExamGradingInstruction.js +6 -0
- package/dist/components/grading-instruction/ExamGradingInstruction.js.map +1 -0
- package/dist/components/grading-instruction/GradingInstruction.d.ts +5 -0
- package/dist/components/grading-instruction/GradingInstruction.d.ts.map +1 -0
- package/dist/components/grading-instruction/GradingInstruction.js +85 -0
- package/dist/components/grading-instruction/GradingInstruction.js.map +1 -0
- package/dist/components/grading-instruction/Question.d.ts +5 -0
- package/dist/components/grading-instruction/Question.d.ts.map +1 -0
- package/dist/components/grading-instruction/Question.js +12 -0
- package/dist/components/grading-instruction/Question.js.map +1 -0
- package/dist/components/grading-instruction/QuestionTitle.d.ts +5 -0
- package/dist/components/grading-instruction/QuestionTitle.d.ts.map +1 -0
- package/dist/components/grading-instruction/QuestionTitle.js +19 -0
- package/dist/components/grading-instruction/QuestionTitle.js.map +1 -0
- package/dist/components/grading-instruction/Section.d.ts +5 -0
- package/dist/components/grading-instruction/Section.d.ts.map +1 -0
- package/dist/components/grading-instruction/Section.js +10 -0
- package/dist/components/grading-instruction/Section.js.map +1 -0
- package/dist/components/grading-instruction/SectionTitle.d.ts +5 -0
- package/dist/components/grading-instruction/SectionTitle.d.ts.map +1 -0
- package/dist/components/grading-instruction/SectionTitle.js +16 -0
- package/dist/components/grading-instruction/SectionTitle.js.map +1 -0
- package/dist/components/grading-instructions/Audio.d.ts +5 -0
- package/dist/components/grading-instructions/Audio.d.ts.map +1 -0
- package/dist/components/grading-instructions/Audio.js +8 -0
- package/dist/components/grading-instructions/Audio.js.map +1 -0
- package/dist/components/grading-instructions/AudioTitle.d.ts +5 -0
- package/dist/components/grading-instructions/AudioTitle.d.ts.map +1 -0
- package/dist/components/grading-instructions/AudioTitle.js +11 -0
- package/dist/components/grading-instructions/AudioTitle.js.map +1 -0
- package/dist/components/results/AnnotationList.d.ts +5 -0
- package/dist/components/results/AnnotationList.d.ts.map +1 -0
- package/dist/components/results/AnnotationList.js +43 -0
- package/dist/components/results/AnnotationList.js.map +1 -0
- package/dist/components/results/GradingStructure.d.ts +5 -0
- package/dist/components/results/GradingStructure.d.ts.map +1 -0
- package/dist/components/results/GradingStructure.js +21 -0
- package/dist/components/results/GradingStructure.js.map +1 -0
- package/dist/components/results/Hvp.d.ts +15 -0
- package/dist/components/results/Hvp.d.ts.map +1 -0
- package/dist/components/results/Hvp.js +73 -0
- package/dist/components/results/Hvp.js.map +1 -0
- package/dist/components/results/HvpTextAnswer.d.ts +6 -0
- package/dist/components/results/HvpTextAnswer.d.ts.map +1 -0
- package/dist/components/results/HvpTextAnswer.js +51 -0
- package/dist/components/results/HvpTextAnswer.js.map +1 -0
- package/dist/components/results/ResultsChoiceAnswer.d.ts +6 -0
- package/dist/components/results/ResultsChoiceAnswer.d.ts.map +1 -0
- package/dist/components/results/ResultsChoiceAnswer.js +57 -0
- package/dist/components/results/ResultsChoiceAnswer.js.map +1 -0
- package/dist/components/results/ResultsContext.d.ts +18 -0
- package/dist/components/results/ResultsContext.d.ts.map +1 -0
- package/dist/components/results/ResultsContext.js +68 -0
- package/dist/components/results/ResultsContext.js.map +1 -0
- package/dist/components/results/ResultsDropdownAnswer.d.ts +6 -0
- package/dist/components/results/ResultsDropdownAnswer.d.ts.map +1 -0
- package/dist/components/results/ResultsDropdownAnswer.js +43 -0
- package/dist/components/results/ResultsDropdownAnswer.js.map +1 -0
- package/dist/components/results/ResultsExamQuestion.d.ts +5 -0
- package/dist/components/results/ResultsExamQuestion.d.ts.map +1 -0
- package/dist/components/results/ResultsExamQuestion.js +23 -0
- package/dist/components/results/ResultsExamQuestion.js.map +1 -0
- package/dist/components/results/ResultsExamQuestionAutoScore.d.ts +10 -0
- package/dist/components/results/ResultsExamQuestionAutoScore.d.ts.map +1 -0
- package/dist/components/results/ResultsExamQuestionAutoScore.js +17 -0
- package/dist/components/results/ResultsExamQuestionAutoScore.js.map +1 -0
- package/dist/components/results/ResultsExamQuestionManualScore.d.ts +12 -0
- package/dist/components/results/ResultsExamQuestionManualScore.d.ts.map +1 -0
- package/dist/components/results/ResultsExamQuestionManualScore.js +61 -0
- package/dist/components/results/ResultsExamQuestionManualScore.js.map +1 -0
- package/dist/components/results/ResultsExamQuestionScoresContainer.d.ts +10 -0
- package/dist/components/results/ResultsExamQuestionScoresContainer.d.ts.map +1 -0
- package/dist/components/results/ResultsExamQuestionScoresContainer.js +12 -0
- package/dist/components/results/ResultsExamQuestionScoresContainer.js.map +1 -0
- package/dist/components/results/ResultsExamQuestionTitle.d.ts +6 -0
- package/dist/components/results/ResultsExamQuestionTitle.d.ts.map +1 -0
- package/dist/components/results/ResultsExamQuestionTitle.js +21 -0
- package/dist/components/results/ResultsExamQuestionTitle.js.map +1 -0
- package/dist/components/results/ResultsExamSection.d.ts +5 -0
- package/dist/components/results/ResultsExamSection.d.ts.map +1 -0
- package/dist/components/results/ResultsExamSection.js +18 -0
- package/dist/components/results/ResultsExamSection.js.map +1 -0
- package/dist/components/results/ResultsMultiLineAnswer.d.ts +8 -0
- package/dist/components/results/ResultsMultiLineAnswer.d.ts.map +1 -0
- package/dist/components/results/ResultsMultiLineAnswer.js +19 -0
- package/dist/components/results/ResultsMultiLineAnswer.js.map +1 -0
- package/dist/components/results/ResultsScoredTextAnswer.d.ts +6 -0
- package/dist/components/results/ResultsScoredTextAnswer.d.ts.map +1 -0
- package/dist/components/results/ResultsScoredTextAnswer.js +22 -0
- package/dist/components/results/ResultsScoredTextAnswer.js.map +1 -0
- package/dist/components/results/ResultsSingleLineAnswer.d.ts +12 -0
- package/dist/components/results/ResultsSingleLineAnswer.d.ts.map +1 -0
- package/dist/components/results/ResultsSingleLineAnswer.js +23 -0
- package/dist/components/results/ResultsSingleLineAnswer.js.map +1 -0
- package/dist/components/results/ResultsTextAnswer.d.ts +6 -0
- package/dist/components/results/ResultsTextAnswer.d.ts.map +1 -0
- package/dist/components/results/ResultsTextAnswer.js +50 -0
- package/dist/components/results/ResultsTextAnswer.js.map +1 -0
- package/dist/components/results/helpers.d.ts +9 -0
- package/dist/components/results/helpers.d.ts.map +1 -0
- package/dist/components/results/helpers.js +11 -0
- package/dist/components/results/helpers.js.map +1 -0
- package/dist/components/withContext.d.ts +3 -0
- package/dist/components/withContext.d.ts.map +1 -0
- package/dist/components/withContext.js +12 -0
- package/dist/components/withContext.js.map +1 -0
- package/dist/main-bundle.js +9 -38
- package/dist/main.css +1 -1
- package/dist/store/index.d.ts +4 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js.map +1 -1
- package/package.json +11 -11
- package/dist/main-bundle.js.map +0 -1
@@ -1,23 +1,13 @@
|
|
1
|
-
import React
|
2
|
-
import { findChildElement
|
1
|
+
import React from 'react';
|
2
|
+
import { findChildElement } from '../../dom-utils';
|
3
3
|
import { shortDisplayNumber } from '../../shortDisplayNumber';
|
4
4
|
import TextAnswerInput from './internal/TextAnswerInput';
|
5
5
|
import { ScreenReaderOnly } from '../ScreenReaderOnly';
|
6
|
-
import { QuestionContext } from '../context/QuestionContext';
|
7
|
-
import { answerLengthInfoId } from '../../ids';
|
8
|
-
import { CommonExamContext } from '../context/CommonExamContext';
|
9
6
|
function TextAnswer(props) {
|
10
7
|
const { element, renderChildNodes } = props;
|
11
|
-
const { language } = useContext(CommonExamContext);
|
12
|
-
const { questionLabelIds } = useContext(QuestionContext);
|
13
8
|
const displayNumber = element.getAttribute('display-number');
|
14
9
|
const hint = findChildElement(element, 'hint');
|
15
|
-
const
|
16
|
-
const lang = useLanguageOfInstruction ? language : undefined;
|
17
|
-
const labelledBy = element.hasAttribute('max-length')
|
18
|
-
? questionLabelIds + ' ' + answerLengthInfoId(element)
|
19
|
-
: questionLabelIds;
|
20
|
-
const textAnswer = React.createElement(TextAnswerInput, { ...{ ...props, lang, labelledBy } });
|
10
|
+
const textAnswer = React.createElement(TextAnswerInput, { ...props });
|
21
11
|
return hint ? (React.createElement("label", { className: "e-nowrap" },
|
22
12
|
React.createElement("sup", { className: "e-text-answer-display-number e-color-darkgrey" }, shortDisplayNumber(displayNumber)),
|
23
13
|
React.createElement(ScreenReaderOnly, null, renderChildNodes(hint)),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TextAnswer.js","sourceRoot":"","sources":["../../../src/components/exam/TextAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"TextAnswer.js","sourceRoot":"","sources":["../../../src/components/exam/TextAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,eAAe,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,SAAS,UAAU,CAAC,KAAyB;IAC3C,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAA;IAC3C,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAE,CAAA;IAC7D,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,oBAAC,eAAe,OAAK,KAAK,GAAI,CAAA;IAEjD,OAAO,IAAI,CAAC,CAAC,CAAC,CACZ,+BAAO,SAAS,EAAC,UAAU;QACzB,6BAAK,SAAS,EAAC,+CAA+C,IAAE,kBAAkB,CAAC,aAAa,CAAC,CAAO;QACxG,oBAAC,gBAAgB,QAAE,gBAAgB,CAAC,IAAI,CAAC,CAAoB;QAC5D,UAAU,CACL,CACT,CAAC,CAAC,CAAC,CACF,UAAU,CACX,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ErrorIndicator.d.ts","sourceRoot":"","sources":["../../../../src/components/exam/internal/ErrorIndicator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAA;;
|
1
|
+
{"version":3,"file":"ErrorIndicator.d.ts","sourceRoot":"","sources":["../../../../src/components/exam/internal/ErrorIndicator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAA;;AA6EzC,wBAAyC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ErrorIndicator.js","sourceRoot":"","sources":["../../../../src/components/exam/internal/ErrorIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"ErrorIndicator.js","sourceRoot":"","sources":["../../../../src/components/exam/internal/ErrorIndicator.tsx"],"names":[],"mappings":"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"}
|
@@ -1,40 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { ExamComponentProps } from '../../../createRenderChildNodes';
|
3
|
-
import * as actions from '../../../store/answers/actions';
|
4
|
-
import { RichTextAnswer as RichTextAnswerT, TextAnswer as TextAnswerT } from '../../../types/ExamAnswer';
|
5
|
-
import { ScreenshotError } from '../RichTextAnswer';
|
6
|
-
import { AnswerTooLong } from '../../../validateAnswers';
|
7
|
-
interface Props extends ExamComponentProps {
|
8
|
-
answer?: TextAnswerT | RichTextAnswerT;
|
9
|
-
answerBlurred: typeof actions.answerBlurred;
|
10
|
-
answerFocused: typeof actions.answerFocused;
|
11
|
-
saveAnswer: typeof actions.saveAnswer;
|
12
|
-
selectAnswerVersion: typeof actions.selectAnswerVersion;
|
13
|
-
showAnswerHistory: boolean;
|
14
|
-
supportsAnswerHistory: boolean;
|
15
|
-
type: 'rich-text' | 'multi-line' | 'single-line';
|
16
|
-
validationError?: AnswerTooLong;
|
17
|
-
labelledBy: string;
|
18
|
-
lang?: string;
|
19
|
-
}
|
20
|
-
interface State {
|
21
|
-
screenshotError?: ScreenshotError;
|
22
|
-
}
|
23
|
-
export declare class TextAnswerInput extends React.PureComponent<Props, State> {
|
24
|
-
private ref;
|
25
|
-
constructor(props: Props);
|
26
|
-
componentDidMount(): void;
|
27
|
-
componentDidUpdate(): void;
|
28
|
-
onChange: (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
|
29
|
-
onRichTextChange: (answerHtml: string, answerText: string) => void;
|
30
|
-
onFocus: () => void;
|
31
|
-
onBlur: () => void;
|
32
|
-
onError: (screenshotError: ScreenshotError) => void;
|
33
|
-
clearErrors: () => void;
|
34
|
-
resize(): void;
|
35
|
-
render(): React.ReactNode;
|
36
|
-
}
|
37
3
|
export declare function getCharacterCount(answerText: string): number;
|
38
|
-
declare const _default:
|
4
|
+
declare const _default: React.NamedExoticComponent<ExamComponentProps>;
|
39
5
|
export default _default;
|
40
6
|
//# sourceMappingURL=TextAnswerInput.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TextAnswerInput.d.ts","sourceRoot":"","sources":["../../../../src/components/exam/internal/TextAnswerInput.tsx"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"TextAnswerInput.d.ts","sourceRoot":"","sources":["../../../../src/components/exam/internal/TextAnswerInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAEnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AA2LpE,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D;;AAED,wBAA0C"}
|
@@ -1,8 +1,7 @@
|
|
1
1
|
import classNames from 'classnames';
|
2
|
-
import React from 'react';
|
3
|
-
import {
|
4
|
-
import { getAttribute, getNumericAttribute } from '../../../dom-utils';
|
5
|
-
import * as actions from '../../../store/answers/actions';
|
2
|
+
import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
|
3
|
+
import { useDispatch, useSelector } from 'react-redux';
|
4
|
+
import { getAttribute, getBooleanAttribute, getNumericAttribute } from '../../../dom-utils';
|
6
5
|
import AnswerToolbar from '../../AnswerToolbar';
|
7
6
|
import { ExamContext } from '../../context/ExamContext';
|
8
7
|
import { QuestionContext } from '../../context/QuestionContext';
|
@@ -10,145 +9,115 @@ import RichTextAnswer from '../RichTextAnswer';
|
|
10
9
|
import { Score } from '../../shared/Score';
|
11
10
|
import { answerLengthInfoId, answerScoreId } from '../../../ids';
|
12
11
|
import AnswerLengthInfo from '../../shared/AnswerLengthInfo';
|
12
|
+
import { CommonExamContext } from '../../context/CommonExamContext';
|
13
|
+
import { answerBlurred, answerFocused, saveAnswer, selectAnswerVersion } from '../../../store/answers/actions';
|
13
14
|
const borderWidthPx = 2;
|
14
15
|
const borderHeightPx = 1;
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
saveAnswer(answer);
|
45
|
-
this.clearErrors();
|
46
|
-
};
|
47
|
-
this.onFocus = () => {
|
48
|
-
this.props.answerFocused(getNumericAttribute(this.props.element, 'question-id'));
|
49
|
-
};
|
50
|
-
this.onBlur = () => {
|
51
|
-
this.props.answerBlurred(getNumericAttribute(this.props.element, 'question-id'));
|
52
|
-
};
|
53
|
-
this.onError = (screenshotError) => {
|
54
|
-
this.setState({
|
55
|
-
screenshotError,
|
56
|
-
});
|
57
|
-
};
|
58
|
-
this.clearErrors = () => {
|
59
|
-
this.setState({ screenshotError: undefined });
|
60
|
-
};
|
61
|
-
this.state = {};
|
62
|
-
this.ref = React.createRef();
|
63
|
-
}
|
64
|
-
componentDidMount() {
|
65
|
-
this.resize();
|
66
|
-
}
|
67
|
-
componentDidUpdate() {
|
68
|
-
this.resize();
|
69
|
-
}
|
70
|
-
resize() {
|
71
|
-
const { current } = this.ref;
|
16
|
+
const TextAnswerInput = ({ element, className }) => {
|
17
|
+
const type = getAttribute(element, 'type');
|
18
|
+
const questionId = getNumericAttribute(element, 'question-id');
|
19
|
+
const displayNumber = getAttribute(element, 'display-number');
|
20
|
+
const maxScore = getNumericAttribute(element, 'max-score');
|
21
|
+
const useLanguageOfInstruction = getBooleanAttribute(element, 'use-language-of-instruction');
|
22
|
+
const maxLength = getNumericAttribute(element, 'max-length');
|
23
|
+
const { language } = useContext(CommonExamContext);
|
24
|
+
const { questionLabelIds, answers } = useContext(QuestionContext);
|
25
|
+
const { examServerApi } = useContext(ExamContext);
|
26
|
+
const [screenshotError, setScreenshotError] = useState();
|
27
|
+
const { answer, supportsAnswerHistory, showAnswerHistory, validationError } = useSelector((state) => {
|
28
|
+
const answer = state.answers.answersById[questionId];
|
29
|
+
const supportsAnswerHistory = state.answers.supportsAnswerHistory;
|
30
|
+
const showAnswerHistory = state.answers.supportsAnswerHistory && state.answers.serverQuestionIds.has(questionId);
|
31
|
+
const validationError = state.answers.validationErrors.find((error) => error.type === 'AnswerTooLong' && error.displayNumber === displayNumber);
|
32
|
+
return { answer, supportsAnswerHistory, showAnswerHistory, validationError };
|
33
|
+
});
|
34
|
+
const dispatch = useDispatch();
|
35
|
+
const ref = useRef(null);
|
36
|
+
const value = answer && answer.value;
|
37
|
+
const scoreId = answerScoreId(element);
|
38
|
+
const invalid = validationError != null;
|
39
|
+
const lang = useLanguageOfInstruction ? language : undefined;
|
40
|
+
const labelledBy = element.hasAttribute('max-length')
|
41
|
+
? questionLabelIds + ' ' + answerLengthInfoId(element)
|
42
|
+
: questionLabelIds;
|
43
|
+
useEffect(() => {
|
44
|
+
const { current } = ref;
|
72
45
|
if (current) {
|
73
|
-
if (
|
46
|
+
if (type === 'multi-line') {
|
74
47
|
const { scrollX, scrollY } = window;
|
75
48
|
current.style.height = 'auto';
|
76
49
|
current.style.height = `${current.scrollHeight + borderHeightPx}px`;
|
77
50
|
window.scrollTo(scrollX, scrollY);
|
78
51
|
}
|
79
|
-
else if (
|
52
|
+
else if (type === 'single-line') {
|
80
53
|
current.style.width = '0';
|
81
54
|
current.style.width = `${current.scrollWidth + borderWidthPx}px`;
|
82
55
|
}
|
83
56
|
}
|
57
|
+
});
|
58
|
+
const onChange = useCallback((event) => {
|
59
|
+
const value = event.currentTarget.value.trim();
|
60
|
+
const answer = {
|
61
|
+
type: 'text',
|
62
|
+
questionId,
|
63
|
+
value,
|
64
|
+
characterCount: getCharacterCount(value),
|
65
|
+
displayNumber,
|
66
|
+
};
|
67
|
+
dispatch(saveAnswer(answer));
|
68
|
+
setScreenshotError(undefined);
|
69
|
+
}, [questionId, displayNumber]);
|
70
|
+
const onRichTextChange = useCallback((answerHtml, answerText) => {
|
71
|
+
const answer = {
|
72
|
+
type: 'richText',
|
73
|
+
questionId,
|
74
|
+
value: answerHtml,
|
75
|
+
characterCount: getCharacterCount(answerText),
|
76
|
+
displayNumber,
|
77
|
+
};
|
78
|
+
dispatch(saveAnswer(answer));
|
79
|
+
setScreenshotError(undefined);
|
80
|
+
}, [questionId, displayNumber]);
|
81
|
+
const onError = useCallback(() => (screenshotError) => setScreenshotError(screenshotError), []);
|
82
|
+
const onFocus = useCallback(() => dispatch(answerFocused(questionId)), [questionId]);
|
83
|
+
const onBlur = useCallback(() => dispatch(answerBlurred(questionId)), [questionId]);
|
84
|
+
const wrappedSelectAnswerVersion = useCallback((questionId, questionText) => dispatch(selectAnswerVersion(questionId, questionText)), []);
|
85
|
+
switch (type) {
|
86
|
+
case 'rich-text':
|
87
|
+
return (React.createElement(React.Fragment, null,
|
88
|
+
maxLength != null && React.createElement(AnswerLengthInfo, { ...{ maxLength, id: answerLengthInfoId(element) } }),
|
89
|
+
React.createElement(RichTextAnswer, { answer: answer, className: classNames('text-answer text-answer--rich-text', className), saveScreenshot: (data) => examServerApi.saveScreenshot(questionId, data), onChange: onRichTextChange, onError: onError, questionId: questionId, lang: lang, invalid: invalid, labelledBy: labelledBy }),
|
90
|
+
React.createElement(AnswerToolbar, { ...{
|
91
|
+
answer,
|
92
|
+
element,
|
93
|
+
selectAnswerVersion: wrappedSelectAnswerVersion,
|
94
|
+
showAnswerHistory,
|
95
|
+
supportsAnswerHistory,
|
96
|
+
screenshotError,
|
97
|
+
validationError,
|
98
|
+
} })));
|
99
|
+
case 'multi-line':
|
100
|
+
return (React.createElement(React.Fragment, null,
|
101
|
+
maxLength != null && React.createElement(AnswerLengthInfo, { ...{ maxLength } }),
|
102
|
+
React.createElement("textarea", { className: classNames('text-answer text-answer--multi-line', className), defaultValue: value, onChange: onChange, onFocus: onFocus, onBlur: onBlur, ref: ref, "data-question-id": questionId, lang: lang, "aria-invalid": invalid, "aria-labelledby": labelledBy }),
|
103
|
+
React.createElement(AnswerToolbar, { ...{
|
104
|
+
answer,
|
105
|
+
element,
|
106
|
+
selectAnswerVersion: wrappedSelectAnswerVersion,
|
107
|
+
showAnswerHistory,
|
108
|
+
supportsAnswerHistory,
|
109
|
+
screenshotError,
|
110
|
+
validationError,
|
111
|
+
} })));
|
112
|
+
case 'single-line':
|
113
|
+
default:
|
114
|
+
return (React.createElement("span", { className: "e-nowrap" },
|
115
|
+
React.createElement("input", { type: "text", className: classNames('text-answer text-answer--single-line', className), defaultValue: value, onChange: onChange, onFocus: onFocus, onBlur: onBlur, ref: ref, "data-question-id": questionId, lang: lang, "aria-describedby": scoreId, "aria-labelledby": labelledBy }),
|
116
|
+
answers.length > 1 && React.createElement(Score, { score: maxScore, size: "inline", id: scoreId })));
|
84
117
|
}
|
85
|
-
|
86
|
-
const { answer, className, element, selectAnswerVersion, showAnswerHistory, supportsAnswerHistory, type, validationError, labelledBy, lang, } = this.props;
|
87
|
-
const { screenshotError } = this.state;
|
88
|
-
const questionId = getNumericAttribute(element, 'question-id');
|
89
|
-
const maxScore = getNumericAttribute(element, 'max-score');
|
90
|
-
const value = answer && answer.value;
|
91
|
-
const scoreId = answerScoreId(element);
|
92
|
-
const maxLength = getNumericAttribute(element, 'max-length');
|
93
|
-
const invalid = validationError != null;
|
94
|
-
switch (type) {
|
95
|
-
case 'rich-text':
|
96
|
-
return (React.createElement(React.Fragment, null,
|
97
|
-
maxLength != null && React.createElement(AnswerLengthInfo, { ...{ maxLength, id: answerLengthInfoId(element) } }),
|
98
|
-
React.createElement(ExamContext.Consumer, null, ({ examServerApi }) => (React.createElement(RichTextAnswer, { answer: answer, className: classNames('text-answer text-answer--rich-text', className), saveScreenshot: (data) => examServerApi.saveScreenshot(questionId, data), onChange: this.onRichTextChange, onError: this.onError, questionId: questionId, lang: lang, invalid: invalid, labelledBy: labelledBy }))),
|
99
|
-
React.createElement(AnswerToolbar, { ...{
|
100
|
-
answer,
|
101
|
-
element,
|
102
|
-
selectAnswerVersion,
|
103
|
-
showAnswerHistory,
|
104
|
-
supportsAnswerHistory,
|
105
|
-
screenshotError,
|
106
|
-
validationError,
|
107
|
-
} })));
|
108
|
-
case 'multi-line':
|
109
|
-
return (React.createElement(React.Fragment, null,
|
110
|
-
maxLength != null && React.createElement(AnswerLengthInfo, { ...{ maxLength } }),
|
111
|
-
React.createElement("textarea", { className: classNames('text-answer text-answer--multi-line', className), defaultValue: value, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur, ref: this.ref, "data-question-id": questionId, lang: lang, "aria-invalid": invalid, "aria-labelledby": labelledBy }),
|
112
|
-
React.createElement(AnswerToolbar, { ...{
|
113
|
-
answer,
|
114
|
-
element,
|
115
|
-
selectAnswerVersion,
|
116
|
-
showAnswerHistory,
|
117
|
-
supportsAnswerHistory,
|
118
|
-
screenshotError,
|
119
|
-
validationError,
|
120
|
-
} })));
|
121
|
-
case 'single-line':
|
122
|
-
default:
|
123
|
-
return (React.createElement("span", { className: "e-nowrap" },
|
124
|
-
React.createElement("input", { type: "text", className: classNames('text-answer text-answer--single-line', className), defaultValue: value, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur, ref: this.ref, "data-question-id": questionId, lang: lang, "aria-describedby": scoreId, "aria-labelledby": labelledBy }),
|
125
|
-
React.createElement(QuestionContext.Consumer, null, ({ answers }) => answers.length > 1 && React.createElement(Score, { score: maxScore, size: "inline", id: scoreId }))));
|
126
|
-
}
|
127
|
-
}
|
128
|
-
}
|
118
|
+
};
|
129
119
|
export function getCharacterCount(answerText) {
|
130
120
|
return answerText.replace(/\s/g, '').length;
|
131
121
|
}
|
132
|
-
|
133
|
-
const type = (element.getAttribute('type') || 'single-line');
|
134
|
-
const questionId = getNumericAttribute(element, 'question-id');
|
135
|
-
const displayNumber = getAttribute(element, 'display-number');
|
136
|
-
const answer = state.answers.answersById[questionId];
|
137
|
-
const supportsAnswerHistory = state.answers.supportsAnswerHistory;
|
138
|
-
const showAnswerHistory = state.answers.supportsAnswerHistory && state.answers.serverQuestionIds.has(questionId);
|
139
|
-
const validationError = state.answers.validationErrors.find((error) => error.type === 'AnswerTooLong' && error.displayNumber === displayNumber);
|
140
|
-
return {
|
141
|
-
answer,
|
142
|
-
showAnswerHistory,
|
143
|
-
supportsAnswerHistory,
|
144
|
-
type,
|
145
|
-
validationError,
|
146
|
-
};
|
147
|
-
}
|
148
|
-
export default connect(mapStateToProps, {
|
149
|
-
saveAnswer: actions.saveAnswer,
|
150
|
-
selectAnswerVersion: actions.selectAnswerVersion,
|
151
|
-
answerFocused: actions.answerFocused,
|
152
|
-
answerBlurred: actions.answerBlurred,
|
153
|
-
})(TextAnswerInput);
|
122
|
+
export default React.memo(TextAnswerInput);
|
154
123
|
//# sourceMappingURL=TextAnswerInput.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TextAnswerInput.js","sourceRoot":"","sources":["../../../../src/components/exam/internal/TextAnswerInput.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;
|
1
|
+
{"version":3,"file":"TextAnswerInput.js","sourceRoot":"","sources":["../../../../src/components/exam/internal/TextAnswerInput.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ExamComponentProps } from '../../createRenderChildNodes';
|
3
|
+
declare const AnswerGradingInstruction: React.FunctionComponent<ExamComponentProps>;
|
4
|
+
export default AnswerGradingInstruction;
|
5
|
+
//# sourceMappingURL=AnswerGradingInstruction.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AnswerGradingInstruction.d.ts","sourceRoot":"","sources":["../../../src/components/grading-instruction/AnswerGradingInstruction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,QAAA,MAAM,wBAAwB,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAMzE,CAAA;AAED,eAAe,wBAAwB,CAAA"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
const AnswerGradingInstruction = ({ element, renderChildNodes }) => {
|
3
|
+
return (React.createElement("div", { className: "e-answer-grading-instruction e-multiline-results-text-answer e-mrg-b-2 e-pad-l-2" }, renderChildNodes(element)));
|
4
|
+
};
|
5
|
+
export default AnswerGradingInstruction;
|
6
|
+
//# sourceMappingURL=AnswerGradingInstruction.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AnswerGradingInstruction.js","sourceRoot":"","sources":["../../../src/components/grading-instruction/AnswerGradingInstruction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,MAAM,wBAAwB,GAAgD,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;IAC9G,OAAO,CACL,6BAAK,SAAS,EAAC,kFAAkF,IAC9F,gBAAgB,CAAC,OAAO,CAAC,CACtB,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,wBAAwB,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Audio.d.ts","sourceRoot":"","sources":["../../../src/components/grading-instruction/Audio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAE7D,CAAA;AAED,eAAe,KAAK,CAAA"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
export const Audio = ({ element, renderChildNodes }) => {
|
3
|
+
return React.createElement("details", { className: "e-grading-instruction-audio e-mrg-b-2" }, renderChildNodes(element));
|
4
|
+
};
|
5
|
+
export default Audio;
|
6
|
+
//# sourceMappingURL=Audio.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Audio.js","sourceRoot":"","sources":["../../../src/components/grading-instruction/Audio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,MAAM,CAAC,MAAM,KAAK,GAAgD,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;IAClG,OAAO,iCAAS,SAAS,EAAC,uCAAuC,IAAE,gBAAgB,CAAC,OAAO,CAAC,CAAW,CAAA;AACzG,CAAC,CAAA;AAED,eAAe,KAAK,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AudioTitle.d.ts","sourceRoot":"","sources":["../../../src/components/grading-instruction/AudioTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAIjE,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAOlE,CAAA;AAED,eAAe,UAAU,CAAA"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { faHeadphones } from '@fortawesome/free-solid-svg-icons';
|
3
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
4
|
+
export const AudioTitle = ({ element, renderChildNodes }) => {
|
5
|
+
return (React.createElement("summary", null,
|
6
|
+
React.createElement(FontAwesomeIcon, { className: "e-mrg-r-1", icon: faHeadphones }),
|
7
|
+
React.createElement("em", null, renderChildNodes(element))));
|
8
|
+
};
|
9
|
+
export default AudioTitle;
|
10
|
+
//# sourceMappingURL=AudioTitle.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AudioTitle.js","sourceRoot":"","sources":["../../../src/components/grading-instruction/AudioTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAEhE,MAAM,CAAC,MAAM,UAAU,GAAgD,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;IACvG,OAAO,CACL;QACE,oBAAC,eAAe,IAAC,SAAS,EAAC,WAAW,EAAC,IAAI,EAAE,YAAY,GAAI;QAC7D,gCAAK,gBAAgB,CAAC,OAAO,CAAC,CAAM,CAC5B,CACX,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AutogradedAnswer.d.ts","sourceRoot":"","sources":["../../../src/components/grading-instruction/AutogradedAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAMjE,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA6BlD,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import React, { useContext } from 'react';
|
2
|
+
import { QuestionContext } from '../context/QuestionContext';
|
3
|
+
import { findChildElement, getAttribute, getNumericAttribute } from '../../dom-utils';
|
4
|
+
import { Score } from '../shared/Score';
|
5
|
+
import AnswerGradingInstruction from './AnswerGradingInstruction';
|
6
|
+
const AutogradedAnswer = ({ element, renderChildNodes }) => {
|
7
|
+
const { answers } = useContext(QuestionContext);
|
8
|
+
const gradingInstructions = findChildElement(element, 'answer-grading-instruction');
|
9
|
+
const content = (React.createElement(React.Fragment, null,
|
10
|
+
gradingInstructions && React.createElement(AnswerGradingInstruction, Object.assign({}, { element: gradingInstructions, renderChildNodes })),
|
11
|
+
React.createElement("ul", null, renderChildNodes(element))));
|
12
|
+
if (answers.length === 1) {
|
13
|
+
return content;
|
14
|
+
}
|
15
|
+
else {
|
16
|
+
const displayNumber = getAttribute(element, 'display-number');
|
17
|
+
const maxScore = getNumericAttribute(element, 'max-score');
|
18
|
+
const hint = findChildElement(element, 'hint');
|
19
|
+
return (React.createElement("div", { className: "e-mrg-l-8" },
|
20
|
+
React.createElement("p", { className: "exam-question-title" },
|
21
|
+
React.createElement("span", { className: "exam-question-title__display-number--indented e-semibold" },
|
22
|
+
displayNumber,
|
23
|
+
" "),
|
24
|
+
hint && renderChildNodes(hint),
|
25
|
+
" ",
|
26
|
+
React.createElement(Score, { score: maxScore })),
|
27
|
+
content));
|
28
|
+
}
|
29
|
+
};
|
30
|
+
export default AutogradedAnswer;
|
31
|
+
//# sourceMappingURL=AutogradedAnswer.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AutogradedAnswer.js","sourceRoot":"","sources":["../../../src/components/grading-instruction/AutogradedAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,wBAAwB,MAAM,4BAA4B,CAAA;AAEjE,MAAM,gBAAgB,GAAiC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;IACvF,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IAC/C,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAA;IAEnF,MAAM,OAAO,GAAG,CACd;QACG,mBAAmB,IAAI,oBAAC,wBAAwB,oBAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,EAAI;QAC5G,gCAAK,gBAAgB,CAAC,OAAO,CAAC,CAAM,CACnC,CACJ,CAAA;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,OAAO,CAAA;KACf;SAAM;QACL,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAE,CAAA;QAE3D,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAE9C,OAAO,CACL,6BAAK,SAAS,EAAC,WAAW;YACxB,2BAAG,SAAS,EAAC,qBAAqB;gBAChC,8BAAM,SAAS,EAAC,0DAA0D;oBAAE,aAAa;wBAAS;gBACjG,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC;;gBAAE,oBAAC,KAAK,IAAC,KAAK,EAAE,QAAQ,GAAI,CACzD;YACH,OAAO,CACJ,CACP,CAAA;KACF;AACH,CAAC,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ExamComponentProps } from '../../createRenderChildNodes';
|
3
|
+
declare const AutogradedAnswerOption: React.FunctionComponent<ExamComponentProps>;
|
4
|
+
export default AutogradedAnswerOption;
|
5
|
+
//# sourceMappingURL=AutogradedAnswerOption.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AutogradedAnswerOption.d.ts","sourceRoot":"","sources":["../../../src/components/grading-instruction/AutogradedAnswerOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAIjE,QAAA,MAAM,sBAAsB,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CASvE,CAAA;AAED,eAAe,sBAAsB,CAAA"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { getNumericAttribute } from '../../dom-utils';
|
3
|
+
import { Score } from '../shared/Score';
|
4
|
+
const AutogradedAnswerOption = ({ element, renderChildNodes }) => {
|
5
|
+
const score = getNumericAttribute(element, 'score');
|
6
|
+
if (!score)
|
7
|
+
return null;
|
8
|
+
return (React.createElement("li", null,
|
9
|
+
renderChildNodes(element),
|
10
|
+
" ",
|
11
|
+
React.createElement(Score, { score: score })));
|
12
|
+
};
|
13
|
+
export default AutogradedAnswerOption;
|
14
|
+
//# sourceMappingURL=AutogradedAnswerOption.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AutogradedAnswerOption.js","sourceRoot":"","sources":["../../../src/components/grading-instruction/AutogradedAnswerOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,MAAM,sBAAsB,GAAgD,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;IAC5G,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,OAAO,CACL;QACG,gBAAgB,CAAC,OAAO,CAAC;;QAAE,oBAAC,KAAK,IAAC,KAAK,EAAE,KAAK,GAAI,CAChD,CACN,CAAA;AACH,CAAC,CAAA;AAED,eAAe,sBAAsB,CAAA"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ExamComponentProps } from '../../createRenderChildNodes';
|
3
|
+
declare const ExamGradingInstruction: React.FunctionComponent<ExamComponentProps>;
|
4
|
+
export default ExamGradingInstruction;
|
5
|
+
//# sourceMappingURL=ExamGradingInstruction.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ExamGradingInstruction.d.ts","sourceRoot":"","sources":["../../../src/components/grading-instruction/ExamGradingInstruction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,QAAA,MAAM,sBAAsB,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAEvE,CAAA;AAED,eAAe,sBAAsB,CAAA"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
const ExamGradingInstruction = ({ element, renderChildNodes }) => {
|
3
|
+
return React.createElement("div", { className: "e-grading-instruction notification e-pad-4" }, renderChildNodes(element));
|
4
|
+
};
|
5
|
+
export default ExamGradingInstruction;
|
6
|
+
//# sourceMappingURL=ExamGradingInstruction.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ExamGradingInstruction.js","sourceRoot":"","sources":["../../../src/components/grading-instruction/ExamGradingInstruction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,MAAM,sBAAsB,GAAgD,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;IAC5G,OAAO,6BAAK,SAAS,EAAC,4CAA4C,IAAE,gBAAgB,CAAC,OAAO,CAAC,CAAO,CAAA;AACtG,CAAC,CAAA;AAED,eAAe,sBAAsB,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"GradingInstruction.d.ts","sourceRoot":"","sources":["../../../src/components/grading-instruction/GradingInstruction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;;AAuGxC,wBAAqF"}
|