@digabi/exam-engine-core 24.0.0 → 25.0.0-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/components/AnswerToolbar.js +22 -17
- package/dist/components/AnswerToolbar.js.map +1 -1
- package/dist/components/AnsweringInstructions.js +44 -6
- package/dist/components/AnsweringInstructions.js.map +1 -1
- package/dist/components/DocumentTitle.js +40 -5
- package/dist/components/DocumentTitle.js.map +1 -1
- package/dist/components/NotificationIcon.js +10 -5
- package/dist/components/NotificationIcon.js.map +1 -1
- package/dist/components/RenderChildNodes.js +8 -3
- package/dist/components/RenderChildNodes.js.map +1 -1
- package/dist/components/RenderExamElements.js +8 -3
- package/dist/components/RenderExamElements.js.map +1 -1
- package/dist/components/RenderIf.js +10 -3
- package/dist/components/RenderIf.js.map +1 -1
- package/dist/components/ScreenReaderOnly.js +9 -2
- package/dist/components/ScreenReaderOnly.js.map +1 -1
- package/dist/components/SectionElement.js +10 -5
- package/dist/components/SectionElement.js.map +1 -1
- package/dist/components/attachments/Attachment.js +40 -5
- package/dist/components/attachments/Attachment.js.map +1 -1
- package/dist/components/attachments/AttachmentTitle.js +42 -7
- package/dist/components/attachments/AttachmentTitle.js.map +1 -1
- package/dist/components/attachments/Attachments.js +87 -47
- package/dist/components/attachments/Attachments.js.map +1 -1
- package/dist/components/attachments/ExternalMaterial.js +77 -39
- package/dist/components/attachments/ExternalMaterial.js.map +1 -1
- package/dist/components/attachments/Question.js +47 -9
- package/dist/components/attachments/Question.js.map +1 -1
- package/dist/components/attachments/QuestionTitle.js +45 -10
- package/dist/components/attachments/QuestionTitle.js.map +1 -1
- package/dist/components/context/AnnotationProvider.js +10 -4
- package/dist/components/context/AnnotationProvider.js.map +1 -1
- package/dist/components/context/AttachmentContext.js +12 -6
- package/dist/components/context/AttachmentContext.js.map +1 -1
- package/dist/components/context/AudioRecorderContext.js +41 -5
- package/dist/components/context/AudioRecorderContext.js.map +1 -1
- package/dist/components/context/CommonExamContext.js +22 -15
- package/dist/components/context/CommonExamContext.js.map +1 -1
- package/dist/components/context/ExamContext.js +10 -4
- package/dist/components/context/ExamContext.js.map +1 -1
- package/dist/components/context/GradingInstructionContext.js +8 -2
- package/dist/components/context/GradingInstructionContext.js.map +1 -1
- package/dist/components/context/IsInSidebarContext.js +5 -2
- package/dist/components/context/IsInSidebarContext.js.map +1 -1
- package/dist/components/context/QuestionContext.js +21 -15
- package/dist/components/context/QuestionContext.js.map +1 -1
- package/dist/components/context/ResultsContext.js +57 -14
- package/dist/components/context/ResultsContext.js.map +1 -1
- package/dist/components/context/SectionContext.js +16 -10
- package/dist/components/context/SectionContext.js.map +1 -1
- package/dist/components/context/TOCContext.js +5 -2
- package/dist/components/context/TOCContext.js.map +1 -1
- package/dist/components/context/withContext.js +13 -6
- package/dist/components/context/withContext.js.map +1 -1
- package/dist/components/exam/Attachment.js +40 -5
- package/dist/components/exam/Attachment.js.map +1 -1
- package/dist/components/exam/AudioAnswer.js +51 -16
- package/dist/components/exam/AudioAnswer.js.map +1 -1
- package/dist/components/exam/ChoiceAnswer.js +63 -25
- package/dist/components/exam/ChoiceAnswer.js.map +1 -1
- package/dist/components/exam/DNDAllOptions.js +19 -12
- package/dist/components/exam/DNDAllOptions.js.map +1 -1
- package/dist/components/exam/DNDAnswerContainer.js +67 -30
- package/dist/components/exam/DNDAnswerContainer.js.map +1 -1
- package/dist/components/exam/DNDAnswerOptionDraggable.js +20 -13
- package/dist/components/exam/DNDAnswerOptionDraggable.js.map +1 -1
- package/dist/components/exam/DropdownAnswer.js +85 -47
- package/dist/components/exam/DropdownAnswer.js.map +1 -1
- package/dist/components/exam/Exam.js +184 -145
- package/dist/components/exam/Exam.js.map +1 -1
- package/dist/components/exam/ExamFooter.js +8 -3
- package/dist/components/exam/ExamFooter.js.map +1 -1
- package/dist/components/exam/ExamInstruction.js +8 -3
- package/dist/components/exam/ExamInstruction.js.map +1 -1
- package/dist/components/exam/ExternalMaterial.js +57 -22
- package/dist/components/exam/ExternalMaterial.js.map +1 -1
- package/dist/components/exam/GoToExamineAnswersButton.js +42 -7
- package/dist/components/exam/GoToExamineAnswersButton.js.map +1 -1
- package/dist/components/exam/Hints.js +21 -16
- package/dist/components/exam/Hints.js.map +1 -1
- package/dist/components/exam/Question.js +76 -37
- package/dist/components/exam/Question.js.map +1 -1
- package/dist/components/exam/QuestionInstruction.js +10 -5
- package/dist/components/exam/QuestionInstruction.js.map +1 -1
- package/dist/components/exam/QuestionTitle.js +57 -19
- package/dist/components/exam/QuestionTitle.js.map +1 -1
- package/dist/components/exam/RichTextAnswer.js +23 -18
- package/dist/components/exam/RichTextAnswer.js.map +1 -1
- package/dist/components/exam/Section.js +76 -38
- package/dist/components/exam/Section.js.map +1 -1
- package/dist/components/exam/SectionInstruction.js +8 -3
- package/dist/components/exam/SectionInstruction.js.map +1 -1
- package/dist/components/exam/SectionTitle.js +58 -20
- package/dist/components/exam/SectionTitle.js.map +1 -1
- package/dist/components/exam/StudentNameHeader.js +9 -2
- package/dist/components/exam/StudentNameHeader.js.map +1 -1
- package/dist/components/exam/TextAnswer.js +19 -14
- package/dist/components/exam/TextAnswer.js.map +1 -1
- package/dist/components/exam/UndoHistoryEntry.js +21 -14
- package/dist/components/exam/UndoHistoryEntry.js.map +1 -1
- package/dist/components/exam/UndoView.d.ts +0 -1
- package/dist/components/exam/UndoView.d.ts.map +1 -1
- package/dist/components/exam/UndoView.js +45 -69
- package/dist/components/exam/UndoView.js.map +1 -1
- package/dist/components/exam/internal/AudioRecorder.js +78 -39
- package/dist/components/exam/internal/AudioRecorder.js.map +1 -1
- package/dist/components/exam/internal/ErrorIndicator.js +71 -32
- package/dist/components/exam/internal/ErrorIndicator.js.map +1 -1
- package/dist/components/exam/internal/ProgressBar.js +46 -8
- package/dist/components/exam/internal/ProgressBar.js.map +1 -1
- package/dist/components/exam/internal/SaveIndicator.js +16 -11
- package/dist/components/exam/internal/SaveIndicator.js.map +1 -1
- package/dist/components/exam/internal/TextAnswerInput.js +97 -58
- package/dist/components/exam/internal/TextAnswerInput.js.map +1 -1
- package/dist/components/exam/multipleContainersKeyboardCoordinates.js +13 -9
- package/dist/components/exam/multipleContainersKeyboardCoordinates.js.map +1 -1
- package/dist/components/grading/AnswerCharacterCounter.js +12 -6
- package/dist/components/grading/AnswerCharacterCounter.js.map +1 -1
- package/dist/components/grading/GradingAnswer.js +112 -73
- package/dist/components/grading/GradingAnswer.js.map +1 -1
- package/dist/components/grading/GradingAnswerAnnotationList.js +9 -4
- package/dist/components/grading/GradingAnswerAnnotationList.js.map +1 -1
- package/dist/components/grading/editAnnotations.js +66 -16
- package/dist/components/grading/editAnnotations.js.map +1 -1
- package/dist/components/grading/largeImageDetector.js +6 -2
- package/dist/components/grading/largeImageDetector.js.map +1 -1
- package/dist/components/grading-instructions/AnswerGradingInstruction.js +42 -7
- package/dist/components/grading-instructions/AnswerGradingInstruction.js.map +1 -1
- package/dist/components/grading-instructions/AutogradedAnswer.js +59 -21
- package/dist/components/grading-instructions/AutogradedAnswer.js.map +1 -1
- package/dist/components/grading-instructions/AutogradedAnswerOption.js +13 -8
- package/dist/components/grading-instructions/AutogradedAnswerOption.js.map +1 -1
- package/dist/components/grading-instructions/ExamGradingInstruction.js +8 -3
- package/dist/components/grading-instructions/ExamGradingInstruction.js.map +1 -1
- package/dist/components/grading-instructions/GradingInstructionProvider.js +10 -3
- package/dist/components/grading-instructions/GradingInstructionProvider.js.map +1 -1
- package/dist/components/grading-instructions/GradingInstructions.js +132 -92
- package/dist/components/grading-instructions/GradingInstructions.js.map +1 -1
- package/dist/components/grading-instructions/Question.js +45 -7
- package/dist/components/grading-instructions/Question.js.map +1 -1
- package/dist/components/grading-instructions/QuestionTitle.js +50 -12
- package/dist/components/grading-instructions/QuestionTitle.js.map +1 -1
- package/dist/components/grading-instructions/Recording.js +20 -13
- package/dist/components/grading-instructions/Recording.js.map +1 -1
- package/dist/components/grading-instructions/RenderAttachmentElements.js +11 -6
- package/dist/components/grading-instructions/RenderAttachmentElements.js.map +1 -1
- package/dist/components/grading-instructions/Section.js +45 -7
- package/dist/components/grading-instructions/Section.js.map +1 -1
- package/dist/components/grading-instructions/SectionTitle.js +45 -10
- package/dist/components/grading-instructions/SectionTitle.js.map +1 -1
- package/dist/components/grading-instructions/gradingInstructionContent.js +4 -1
- package/dist/components/grading-instructions/gradingInstructionContent.js.map +1 -1
- package/dist/components/results/AudioAnswer.js +62 -24
- package/dist/components/results/AudioAnswer.js.map +1 -1
- package/dist/components/results/AudioContainer.js +27 -20
- package/dist/components/results/AudioContainer.js.map +1 -1
- package/dist/components/results/ChoiceAnswer.js +67 -29
- package/dist/components/results/ChoiceAnswer.js.map +1 -1
- package/dist/components/results/CorrectDNDAnswers.js +48 -11
- package/dist/components/results/CorrectDNDAnswers.js.map +1 -1
- package/dist/components/results/DNDAnswerOption.js +13 -6
- package/dist/components/results/DNDAnswerOption.js.map +1 -1
- package/dist/components/results/DropdownAnswer.js +68 -30
- package/dist/components/results/DropdownAnswer.js.map +1 -1
- package/dist/components/results/EndExamSession.js +22 -15
- package/dist/components/results/EndExamSession.js.map +1 -1
- package/dist/components/results/MultiLineAnswer.js +60 -20
- package/dist/components/results/MultiLineAnswer.js.map +1 -1
- package/dist/components/results/Question.js +53 -15
- package/dist/components/results/Question.js.map +1 -1
- package/dist/components/results/QuestionTitle.js +57 -19
- package/dist/components/results/QuestionTitle.js.map +1 -1
- package/dist/components/results/Results.js +144 -106
- package/dist/components/results/Results.js.map +1 -1
- package/dist/components/results/ScoredTextAnswer.js +54 -16
- package/dist/components/results/ScoredTextAnswer.js.map +1 -1
- package/dist/components/results/Section.js +46 -8
- package/dist/components/results/Section.js.map +1 -1
- package/dist/components/results/SingleLineAnswer.js +54 -16
- package/dist/components/results/SingleLineAnswer.js.map +1 -1
- package/dist/components/results/TextAnswer.js +68 -30
- package/dist/components/results/TextAnswer.js.map +1 -1
- package/dist/components/results/internal/AnnotationList.js +51 -16
- package/dist/components/results/internal/AnnotationList.js.map +1 -1
- package/dist/components/results/internal/QuestionAutoScore.js +47 -9
- package/dist/components/results/internal/QuestionAutoScore.js.map +1 -1
- package/dist/components/results/internal/QuestionManualScore.js +61 -23
- package/dist/components/results/internal/QuestionManualScore.js.map +1 -1
- package/dist/components/results/internal/QuestionScoresContainer.js +53 -15
- package/dist/components/results/internal/QuestionScoresContainer.js.map +1 -1
- package/dist/components/results/isExamineExamPageHook.js +8 -4
- package/dist/components/results/isExamineExamPageHook.js.map +1 -1
- package/dist/components/shared/AnnotationLists.js +19 -13
- package/dist/components/shared/AnnotationLists.js.map +1 -1
- package/dist/components/shared/AnswerIndicator.js +51 -12
- package/dist/components/shared/AnswerIndicator.js.map +1 -1
- package/dist/components/shared/AnswerLengthInfo.js +13 -8
- package/dist/components/shared/AnswerLengthInfo.js.map +1 -1
- package/dist/components/shared/AttachmentLink.js +53 -15
- package/dist/components/shared/AttachmentLink.js.map +1 -1
- package/dist/components/shared/AttachmentLinks.js +53 -15
- package/dist/components/shared/AttachmentLinks.js.map +1 -1
- package/dist/components/shared/Audio.js +63 -25
- package/dist/components/shared/Audio.js.map +1 -1
- package/dist/components/shared/AudioGroup.js +10 -5
- package/dist/components/shared/AudioGroup.js.map +1 -1
- package/dist/components/shared/AudioTest.js +67 -29
- package/dist/components/shared/AudioTest.js.map +1 -1
- package/dist/components/shared/DNDAnswerContainer.js +52 -15
- package/dist/components/shared/DNDAnswerContainer.js.map +1 -1
- package/dist/components/shared/DNDDroppable.js +23 -16
- package/dist/components/shared/DNDDroppable.js.map +1 -1
- package/dist/components/shared/DNDTitleAndDroppable.js +68 -28
- package/dist/components/shared/DNDTitleAndDroppable.js.map +1 -1
- package/dist/components/shared/ExamTranslation.js +10 -5
- package/dist/components/shared/ExamTranslation.js.map +1 -1
- package/dist/components/shared/File.js +44 -6
- package/dist/components/shared/File.js.map +1 -1
- package/dist/components/shared/Footer.js +9 -2
- package/dist/components/shared/Footer.js.map +1 -1
- package/dist/components/shared/Formula.js +15 -10
- package/dist/components/shared/Formula.js.map +1 -1
- package/dist/components/shared/Image.js +64 -25
- package/dist/components/shared/Image.js.map +1 -1
- package/dist/components/shared/ImageOverlay.js +65 -27
- package/dist/components/shared/ImageOverlay.js.map +1 -1
- package/dist/components/shared/Popup.js +63 -23
- package/dist/components/shared/Popup.js.map +1 -1
- package/dist/components/shared/QuestionNumber.js +42 -6
- package/dist/components/shared/QuestionNumber.js.map +1 -1
- package/dist/components/shared/Reference.js +70 -32
- package/dist/components/shared/Reference.js.map +1 -1
- package/dist/components/shared/References.js +60 -22
- package/dist/components/shared/References.js.map +1 -1
- package/dist/components/shared/Score.js +13 -6
- package/dist/components/shared/Score.js.map +1 -1
- package/dist/components/shared/TOCQuestion.js +73 -33
- package/dist/components/shared/TOCQuestion.js.map +1 -1
- package/dist/components/shared/TOCSection.js +48 -11
- package/dist/components/shared/TOCSection.js.map +1 -1
- package/dist/components/shared/TOCSectionTitle.js +65 -25
- package/dist/components/shared/TOCSectionTitle.js.map +1 -1
- package/dist/components/shared/TableOfContents.js +77 -37
- package/dist/components/shared/TableOfContents.js.map +1 -1
- package/dist/components/shared/VersionNumber.js +46 -6
- package/dist/components/shared/VersionNumber.js.map +1 -1
- package/dist/components/shared/Video.js +55 -17
- package/dist/components/shared/Video.js.map +1 -1
- package/dist/components/shared/internal/AttachmentLinkAnchor.js +8 -3
- package/dist/components/shared/internal/AttachmentLinkAnchor.js.map +1 -1
- package/dist/components/shared/internal/AudioPlayer.js +58 -23
- package/dist/components/shared/internal/AudioPlayer.js.map +1 -1
- package/dist/components/shared/internal/ModalDialog.js +40 -5
- package/dist/components/shared/internal/ModalDialog.js.map +1 -1
- package/dist/components/shared/internal/RenderIfNoError.js +15 -10
- package/dist/components/shared/internal/RenderIfNoError.js.map +1 -1
- package/dist/components/shared/internal/ResponsiveMediaContainer.js +11 -6
- package/dist/components/shared/internal/ResponsiveMediaContainer.js.map +1 -1
- package/dist/components/shared/internal/RestrictedAudioPlayer.js +64 -25
- package/dist/components/shared/internal/RestrictedAudioPlayer.js.map +1 -1
- package/dist/createRenderChildNodes.js +19 -12
- package/dist/createRenderChildNodes.js.map +1 -1
- package/dist/dom-utils.js +89 -32
- package/dist/dom-utils.js.map +1 -1
- package/dist/fonts.js +15 -9
- package/dist/fonts.js.map +1 -1
- package/dist/formatting.js +4 -1
- package/dist/formatting.js.map +1 -1
- package/dist/getDisplayName.js +4 -1
- package/dist/getDisplayName.js.map +1 -1
- package/dist/i18n/A_E.js +4 -1
- package/dist/i18n/A_E.js.map +1 -1
- package/dist/i18n/BA.js +39 -3
- package/dist/i18n/BA.js.map +1 -1
- package/dist/i18n/CA.js +39 -3
- package/dist/i18n/CA.js.map +1 -1
- package/dist/i18n/EA.js +4 -1
- package/dist/i18n/EA.js.map +1 -1
- package/dist/i18n/FA.js +4 -1
- package/dist/i18n/FA.js.map +1 -1
- package/dist/i18n/GC.js +4 -1
- package/dist/i18n/GC.js.map +1 -1
- package/dist/i18n/I.js +4 -1
- package/dist/i18n/I.js.map +1 -1
- package/dist/i18n/M.js +4 -1
- package/dist/i18n/M.js.map +1 -1
- package/dist/i18n/O_E.js +4 -1
- package/dist/i18n/O_E.js.map +1 -1
- package/dist/i18n/PA.js +4 -1
- package/dist/i18n/PA.js.map +1 -1
- package/dist/i18n/SA.js +4 -1
- package/dist/i18n/SA.js.map +1 -1
- package/dist/i18n/TC.js +4 -1
- package/dist/i18n/TC.js.map +1 -1
- package/dist/i18n/VA.js +4 -1
- package/dist/i18n/VA.js.map +1 -1
- package/dist/i18n/Z.js +4 -1
- package/dist/i18n/Z.js.map +1 -1
- package/dist/i18n/fi-FI.js +4 -1
- package/dist/i18n/fi-FI.js.map +1 -1
- package/dist/i18n/index.js +93 -51
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/sv-FI.js +4 -1
- package/dist/i18n/sv-FI.js.map +1 -1
- package/dist/ids.js +16 -13
- package/dist/ids.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -14
- package/dist/index.js.map +1 -1
- package/dist/indexedDBExamServerAPI.d.ts.map +1 -1
- package/dist/indexedDBExamServerAPI.js +14 -4
- package/dist/indexedDBExamServerAPI.js.map +1 -1
- package/dist/main.css +4486 -1
- package/dist/parser/parseExam.js +44 -8
- package/dist/parser/parseExam.js.map +1 -1
- package/dist/parser/parseExamStructure.js +18 -15
- package/dist/parser/parseExamStructure.js.map +1 -1
- package/dist/renderAnnotations.js +21 -12
- package/dist/renderAnnotations.js.map +1 -1
- package/dist/scrollToHash.js +4 -1
- package/dist/scrollToHash.js.map +1 -1
- package/dist/shortDisplayNumber.js +38 -2
- package/dist/shortDisplayNumber.js.map +1 -1
- package/dist/store/answers/actions.js +16 -7
- package/dist/store/answers/actions.js.map +1 -1
- package/dist/store/answers/reducer.js +6 -3
- package/dist/store/answers/reducer.js.map +1 -1
- package/dist/store/answers/sagas.js +22 -18
- package/dist/store/answers/sagas.js.map +1 -1
- package/dist/store/audio/actions.js +16 -7
- package/dist/store/audio/actions.js.map +1 -1
- package/dist/store/audio/reducer.js +38 -2
- package/dist/store/audio/reducer.js.map +1 -1
- package/dist/store/audio/sagas.js +18 -15
- package/dist/store/audio/sagas.js.map +1 -1
- package/dist/store/cas/actions.js +13 -7
- package/dist/store/cas/actions.js.map +1 -1
- package/dist/store/cas/reducer.js +4 -1
- package/dist/store/cas/reducer.js.map +1 -1
- package/dist/store/cas/sagas.js +19 -15
- package/dist/store/cas/sagas.js.map +1 -1
- package/dist/store/countdown.js +12 -9
- package/dist/store/countdown.js.map +1 -1
- package/dist/store/index.js +63 -24
- package/dist/store/index.js.map +1 -1
- package/dist/store/selectors.js +53 -9
- package/dist/store/selectors.js.map +1 -1
- package/dist/types/ExamAnswer.js +2 -1
- package/dist/types/ExamServerAPI.d.ts +1 -1
- package/dist/types/ExamServerAPI.d.ts.map +1 -1
- package/dist/types/ExamServerAPI.js +2 -1
- package/dist/types/GradingStructure.js +2 -1
- package/dist/types/Score.js +2 -1
- package/dist/url.js +38 -2
- package/dist/url.js.map +1 -1
- package/dist/useCached.js +6 -3
- package/dist/useCached.js.map +1 -1
- package/dist/utils.js +8 -3
- package/dist/utils.js.map +1 -1
- package/dist/validateAnswers.js +38 -2
- package/dist/validateAnswers.js.map +1 -1
- package/package.json +39 -37
- package/dist/__tests__/AnsweringInstructions.test.d.ts +0 -2
- package/dist/__tests__/AnsweringInstructions.test.d.ts.map +0 -1
- package/dist/__tests__/AnsweringInstructions.test.js +0 -95
- package/dist/__tests__/AnsweringInstructions.test.js.map +0 -1
- package/dist/__tests__/casSaga.test.d.ts +0 -2
- package/dist/__tests__/casSaga.test.d.ts.map +0 -1
- package/dist/__tests__/casSaga.test.js +0 -80
- package/dist/__tests__/casSaga.test.js.map +0 -1
- package/dist/__tests__/examServerApi.d.ts +0 -3
- package/dist/__tests__/examServerApi.d.ts.map +0 -1
- package/dist/__tests__/examServerApi.js +0 -17
- package/dist/__tests__/examServerApi.js.map +0 -1
- package/dist/__tests__/playwright/SectionElement.test.d.ts +0 -2
- package/dist/__tests__/playwright/SectionElement.test.d.ts.map +0 -1
- package/dist/__tests__/playwright/SectionElement.test.js +0 -20
- package/dist/__tests__/playwright/SectionElement.test.js.map +0 -1
- package/dist/__tests__/playwright/exam/AudioAnswer.test.d.ts +0 -2
- package/dist/__tests__/playwright/exam/AudioAnswer.test.d.ts.map +0 -1
- package/dist/__tests__/playwright/exam/AudioAnswer.test.js +0 -132
- package/dist/__tests__/playwright/exam/AudioAnswer.test.js.map +0 -1
- package/dist/__tests__/playwright/exam/AudioPlayer.test.d.ts +0 -2
- package/dist/__tests__/playwright/exam/AudioPlayer.test.d.ts.map +0 -1
- package/dist/__tests__/playwright/exam/AudioPlayer.test.js +0 -69
- package/dist/__tests__/playwright/exam/AudioPlayer.test.js.map +0 -1
- package/dist/__tests__/playwright/exam/DNDAnswerContainer.test.d.ts +0 -2
- package/dist/__tests__/playwright/exam/DNDAnswerContainer.test.d.ts.map +0 -1
- package/dist/__tests__/playwright/exam/DNDAnswerContainer.test.js +0 -125
- package/dist/__tests__/playwright/exam/DNDAnswerContainer.test.js.map +0 -1
- package/dist/__tests__/playwright/exam/Exam.test.d.ts +0 -2
- package/dist/__tests__/playwright/exam/Exam.test.d.ts.map +0 -1
- package/dist/__tests__/playwright/exam/Exam.test.js +0 -29
- package/dist/__tests__/playwright/exam/Exam.test.js.map +0 -1
- package/dist/__tests__/playwright/exam/TextAnswerInput.test.d.ts +0 -2
- package/dist/__tests__/playwright/exam/TextAnswerInput.test.d.ts.map +0 -1
- package/dist/__tests__/playwright/exam/TextAnswerInput.test.js +0 -81
- package/dist/__tests__/playwright/exam/TextAnswerInput.test.js.map +0 -1
- package/dist/__tests__/playwright/pages/AudioPlayer.page.d.ts +0 -13
- package/dist/__tests__/playwright/pages/AudioPlayer.page.d.ts.map +0 -1
- package/dist/__tests__/playwright/pages/AudioPlayer.page.js +0 -16
- package/dist/__tests__/playwright/pages/AudioPlayer.page.js.map +0 -1
- package/dist/__tests__/playwright/results/MultiLineAnswer.test.d.ts +0 -2
- package/dist/__tests__/playwright/results/MultiLineAnswer.test.d.ts.map +0 -1
- package/dist/__tests__/playwright/results/MultiLineAnswer.test.js +0 -45
- package/dist/__tests__/playwright/results/MultiLineAnswer.test.js.map +0 -1
- package/dist/__tests__/playwright/stories/exam/AudioAnswer.story.d.ts +0 -5
- package/dist/__tests__/playwright/stories/exam/AudioAnswer.story.d.ts.map +0 -1
- package/dist/__tests__/playwright/stories/exam/AudioAnswer.story.js +0 -14
- package/dist/__tests__/playwright/stories/exam/AudioAnswer.story.js.map +0 -1
- package/dist/__tests__/playwright/stories/exam/DNDAnswerContainer.story.d.ts +0 -10
- package/dist/__tests__/playwright/stories/exam/DNDAnswerContainer.story.d.ts.map +0 -1
- package/dist/__tests__/playwright/stories/exam/DNDAnswerContainer.story.js +0 -20
- package/dist/__tests__/playwright/stories/exam/DNDAnswerContainer.story.js.map +0 -1
- package/dist/__tests__/playwright/stories/exam/Exam.story.d.ts +0 -8
- package/dist/__tests__/playwright/stories/exam/Exam.story.d.ts.map +0 -1
- package/dist/__tests__/playwright/stories/exam/Exam.story.js +0 -18
- package/dist/__tests__/playwright/stories/exam/Exam.story.js.map +0 -1
- package/dist/__tests__/playwright/stories/exam/Question.story.d.ts +0 -5
- package/dist/__tests__/playwright/stories/exam/Question.story.d.ts.map +0 -1
- package/dist/__tests__/playwright/stories/exam/Question.story.js +0 -19
- package/dist/__tests__/playwright/stories/exam/Question.story.js.map +0 -1
- package/dist/__tests__/playwright/stories/results/MultiLineAnswer.story.d.ts +0 -8
- package/dist/__tests__/playwright/stories/results/MultiLineAnswer.story.d.ts.map +0 -1
- package/dist/__tests__/playwright/stories/results/MultiLineAnswer.story.js +0 -51
- package/dist/__tests__/playwright/stories/results/MultiLineAnswer.story.js.map +0 -1
- package/dist/__tests__/playwright/template/index.d.ts +0 -1
- package/dist/__tests__/playwright/template/index.d.ts.map +0 -1
- package/dist/__tests__/playwright/template/index.js +0 -5
- package/dist/__tests__/playwright/template/index.js.map +0 -1
- package/dist/__tests__/playwright/utils/ExamComponentWrapper.d.ts +0 -9
- package/dist/__tests__/playwright/utils/ExamComponentWrapper.d.ts.map +0 -1
- package/dist/__tests__/playwright/utils/ExamComponentWrapper.js +0 -26
- package/dist/__tests__/playwright/utils/ExamComponentWrapper.js.map +0 -1
- package/dist/__tests__/playwright/utils/utils.d.ts +0 -6
- package/dist/__tests__/playwright/utils/utils.d.ts.map +0 -1
- package/dist/__tests__/playwright/utils/utils.js +0 -52
- package/dist/__tests__/playwright/utils/utils.js.map +0 -1
- package/dist/__tests__/renderAnnotations.test.d.ts +0 -2
- package/dist/__tests__/renderAnnotations.test.d.ts.map +0 -1
- package/dist/__tests__/renderAnnotations.test.js +0 -134
- package/dist/__tests__/renderAnnotations.test.js.map +0 -1
- package/dist/__tests__/results/AnnotationList.test.d.ts +0 -2
- package/dist/__tests__/results/AnnotationList.test.d.ts.map +0 -1
- package/dist/__tests__/results/AnnotationList.test.js +0 -168
- package/dist/__tests__/results/AnnotationList.test.js.map +0 -1
- package/dist/__tests__/results/ResultsContext.test.d.ts +0 -2
- package/dist/__tests__/results/ResultsContext.test.d.ts.map +0 -1
- package/dist/__tests__/results/ResultsContext.test.js +0 -185
- package/dist/__tests__/results/ResultsContext.test.js.map +0 -1
- package/dist/__tests__/results/ResultsExamQuestionAutoScore.test.d.ts +0 -2
- package/dist/__tests__/results/ResultsExamQuestionAutoScore.test.d.ts.map +0 -1
- package/dist/__tests__/results/ResultsExamQuestionAutoScore.test.js +0 -60
- package/dist/__tests__/results/ResultsExamQuestionAutoScore.test.js.map +0 -1
- package/dist/__tests__/results/ResultsExamQuestionManualScore.test.d.ts +0 -2
- package/dist/__tests__/results/ResultsExamQuestionManualScore.test.d.ts.map +0 -1
- package/dist/__tests__/results/ResultsExamQuestionManualScore.test.js +0 -145
- package/dist/__tests__/results/ResultsExamQuestionManualScore.test.js.map +0 -1
- package/dist/__tests__/testExamRendering.d.ts +0 -2
- package/dist/__tests__/testExamRendering.d.ts.map +0 -1
- package/dist/__tests__/testExamRendering.js +0 -149
- package/dist/__tests__/testExamRendering.js.map +0 -1
- package/dist/__tests__/tsconfig.tsbuildinfo +0 -1
- package/dist/__tests__/util.test.d.ts +0 -2
- package/dist/__tests__/util.test.d.ts.map +0 -1
- package/dist/__tests__/util.test.js +0 -12
- package/dist/__tests__/util.test.js.map +0 -1
- package/dist/__tests__/validateAnswers.test.d.ts +0 -2
- package/dist/__tests__/validateAnswers.test.d.ts.map +0 -1
- package/dist/__tests__/validateAnswers.test.js +0 -243
- package/dist/__tests__/validateAnswers.test.js.map +0 -1
- package/dist/main-bundle.js +0 -366
- package/dist/main-bundle.js.LICENSE.txt +0 -69
- package/src/css/colors.less +0 -56
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = audioSaga;
|
|
4
|
+
const effects_1 = require("redux-saga/effects");
|
|
5
|
+
const countdown_1 = require("../countdown");
|
|
6
|
+
const selectors_1 = require("../selectors");
|
|
7
|
+
const actions_1 = require("./actions");
|
|
5
8
|
async function loadAndPlayRestrictedAudio(examServerApi, restrictedAudioId, audio, playbackTimes) {
|
|
6
9
|
try {
|
|
7
10
|
const response = await examServerApi.getRestrictedAudio('', restrictedAudioId, playbackTimes);
|
|
@@ -33,28 +36,28 @@ function handleAbitti2Audio(examServerApi, audio, playbackTimes) {
|
|
|
33
36
|
function* handleAbitti1Audio(examServerApi, audio, playbackTimes) {
|
|
34
37
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
35
38
|
const response = playbackTimes != null && audio.restrictedAudioId != null
|
|
36
|
-
? yield call(examServerApi.playRestrictedAudio, audio.src, audio.restrictedAudioId, playbackTimes)
|
|
37
|
-
: yield call(examServerApi.playAudio, audio.src);
|
|
39
|
+
? yield (0, effects_1.call)(examServerApi.playRestrictedAudio, audio.src, audio.restrictedAudioId, playbackTimes)
|
|
40
|
+
: yield (0, effects_1.call)(examServerApi.playAudio, audio.src);
|
|
38
41
|
return { response };
|
|
39
42
|
}
|
|
40
43
|
function* performPlayAudio(examServerApi, action) {
|
|
41
44
|
const audio = action.payload;
|
|
42
45
|
try {
|
|
43
46
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
44
|
-
const playbackTimes = audio.restrictedAudioId != null ? yield select(getPlaybackTimes(audio.restrictedAudioId)) : undefined;
|
|
47
|
+
const playbackTimes = audio.restrictedAudioId != null ? yield (0, effects_1.select)((0, selectors_1.getPlaybackTimes)(audio.restrictedAudioId)) : undefined;
|
|
45
48
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
46
49
|
const result = audio.audioRef && audio.audioRef.current
|
|
47
50
|
? yield handleAbitti2Audio(examServerApi, audio, playbackTimes)
|
|
48
51
|
: yield handleAbitti1Audio(examServerApi, audio, playbackTimes);
|
|
49
52
|
if (result.response === 'ok') {
|
|
50
|
-
yield put(playAudioStarted(audio));
|
|
51
|
-
yield call(countdown, audio.duration, updateRemaining);
|
|
52
|
-
yield put(playAudioFinished());
|
|
53
|
+
yield (0, effects_1.put)((0, actions_1.playAudioStarted)(audio));
|
|
54
|
+
yield (0, effects_1.call)(countdown_1.countdown, audio.duration, actions_1.updateRemaining);
|
|
55
|
+
yield (0, effects_1.put)((0, actions_1.playAudioFinished)());
|
|
53
56
|
}
|
|
54
57
|
else {
|
|
55
|
-
yield put(showAudioError(audio, result.response));
|
|
56
|
-
yield delay(5000);
|
|
57
|
-
yield put(hideAudioError(audio));
|
|
58
|
+
yield (0, effects_1.put)((0, actions_1.showAudioError)(audio, result.response));
|
|
59
|
+
yield (0, effects_1.delay)(5000);
|
|
60
|
+
yield (0, effects_1.put)((0, actions_1.hideAudioError)(audio));
|
|
58
61
|
}
|
|
59
62
|
if (result.cleanup) {
|
|
60
63
|
result.cleanup();
|
|
@@ -65,7 +68,7 @@ function* performPlayAudio(examServerApi, action) {
|
|
|
65
68
|
}
|
|
66
69
|
}
|
|
67
70
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
68
|
-
|
|
69
|
-
yield takeEvery('PLAY_AUDIO', performPlayAudio, examServerApi);
|
|
71
|
+
function* audioSaga(examServerApi) {
|
|
72
|
+
yield (0, effects_1.takeEvery)('PLAY_AUDIO', performPlayAudio, examServerApi);
|
|
70
73
|
}
|
|
71
74
|
//# sourceMappingURL=sagas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sagas.js","sourceRoot":"","sources":["../../../src/store/audio/sagas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sagas.js","sourceRoot":"","sources":["../../../src/store/audio/sagas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.updateCasRemaining = exports.allowCasCancelled = exports.allowCasSucceeded = exports.allowCasCountdown = exports.allowCas = void 0;
|
|
5
|
+
const typesafe_actions_1 = require("typesafe-actions");
|
|
6
|
+
const { createAction } = typesafe_actions_1.deprecated;
|
|
7
|
+
const allowCas = (durationSeconds) => (0, typesafe_actions_1.action)('ALLOW_CAS', durationSeconds);
|
|
8
|
+
exports.allowCas = allowCas;
|
|
9
|
+
const allowCasCountdown = (durationSeconds) => (0, typesafe_actions_1.action)('ALLOW_CAS_COUNTDOWN', durationSeconds);
|
|
10
|
+
exports.allowCasCountdown = allowCasCountdown;
|
|
11
|
+
exports.allowCasSucceeded = createAction('ALLOW_CAS_SUCCEEDED');
|
|
12
|
+
exports.allowCasCancelled = createAction('ALLOW_CAS_CANCELLED');
|
|
13
|
+
const updateCasRemaining = (remaining) => (0, typesafe_actions_1.action)('UPDATE_CAS_REMAINING', remaining);
|
|
14
|
+
exports.updateCasRemaining = updateCasRemaining;
|
|
9
15
|
//# sourceMappingURL=actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/store/cas/actions.ts"],"names":[],"mappings":"AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/store/cas/actions.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,uDAAqD;AACrD,MAAM,EAAE,YAAY,EAAE,GAAG,6BAAU,CAAA;AAE5B,MAAM,QAAQ,GAAG,CAAC,eAAuB,EAAE,EAAE,CAAC,IAAA,yBAAM,EAAC,WAAW,EAAE,eAAe,CAAC,CAAA;AAA5E,QAAA,QAAQ,YAAoE;AAElF,MAAM,iBAAiB,GAAG,CAAC,eAAuB,EAAE,EAAE,CAAC,IAAA,yBAAM,EAAC,qBAAqB,EAAE,eAAe,CAAC,CAAA;AAA/F,QAAA,iBAAiB,qBAA8E;AAE/F,QAAA,iBAAiB,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAEvD,QAAA,iBAAiB,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAE7D,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAA,yBAAM,EAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;AAArF,QAAA,kBAAkB,sBAAmE"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = casReducer;
|
|
1
4
|
const initialState = {
|
|
2
5
|
casStatus: 'forbidden'
|
|
3
6
|
};
|
|
4
|
-
|
|
7
|
+
function casReducer(state = initialState, action) {
|
|
5
8
|
switch (action.type) {
|
|
6
9
|
case 'ALLOW_CAS':
|
|
7
10
|
return state;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/store/cas/reducer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/store/cas/reducer.ts"],"names":[],"mappings":";;AAcA,6BAmBC;AAvBD,MAAM,YAAY,GAAa;IAC7B,SAAS,EAAE,WAAW;CACvB,CAAA;AAED,SAAwB,UAAU,CAAC,QAAkB,YAAY,EAAE,MAAiB;IAClF,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,WAAW;YACd,OAAO,KAAK,CAAA;QACd,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;QACrE,CAAC;QACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;QACjC,CAAC;QACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAA;QACnC,CAAC;QACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;QACrE,CAAC;QACD;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC"}
|
package/dist/store/cas/sagas.js
CHANGED
|
@@ -1,28 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.performEnableCas = performEnableCas;
|
|
4
|
+
exports.default = casSaga;
|
|
5
|
+
const effects_1 = require("redux-saga/effects");
|
|
6
|
+
const countdown_1 = require("../countdown");
|
|
7
|
+
const actions_1 = require("./actions");
|
|
4
8
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
5
|
-
|
|
9
|
+
function* performEnableCas(examServerApi, { payload }) {
|
|
6
10
|
try {
|
|
7
11
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
8
|
-
const status1 = yield call(examServerApi.setCasStatus, 'allowing');
|
|
12
|
+
const status1 = yield (0, effects_1.call)(examServerApi.setCasStatus, 'allowing');
|
|
9
13
|
if (status1 === 'allowed') {
|
|
10
|
-
yield put(allowCasSucceeded());
|
|
14
|
+
yield (0, effects_1.put)((0, actions_1.allowCasSucceeded)());
|
|
11
15
|
return;
|
|
12
16
|
}
|
|
13
|
-
yield put(allowCasCountdown(payload));
|
|
17
|
+
yield (0, effects_1.put)((0, actions_1.allowCasCountdown)(payload));
|
|
14
18
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
15
|
-
const { cancelled } = yield race({
|
|
16
|
-
finished: call(countdown, payload, updateCasRemaining),
|
|
17
|
-
cancelled: take('ALLOW_CAS_CANCELLED')
|
|
19
|
+
const { cancelled } = yield (0, effects_1.race)({
|
|
20
|
+
finished: (0, effects_1.call)(countdown_1.countdown, payload, actions_1.updateCasRemaining),
|
|
21
|
+
cancelled: (0, effects_1.take)('ALLOW_CAS_CANCELLED')
|
|
18
22
|
});
|
|
19
23
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
20
|
-
const status2 = yield call(examServerApi.setCasStatus, cancelled ? 'forbidden' : 'allowed');
|
|
24
|
+
const status2 = yield (0, effects_1.call)(examServerApi.setCasStatus, cancelled ? 'forbidden' : 'allowed');
|
|
21
25
|
if (status2 === 'allowed') {
|
|
22
|
-
yield put(allowCasSucceeded());
|
|
26
|
+
yield (0, effects_1.put)((0, actions_1.allowCasSucceeded)());
|
|
23
27
|
}
|
|
24
28
|
else if (!cancelled) {
|
|
25
|
-
yield put(allowCasCancelled());
|
|
29
|
+
yield (0, effects_1.put)((0, actions_1.allowCasCancelled)());
|
|
26
30
|
}
|
|
27
31
|
}
|
|
28
32
|
catch (error) {
|
|
@@ -30,7 +34,7 @@ export function* performEnableCas(examServerApi, { payload }) {
|
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
33
|
-
|
|
34
|
-
yield takeLatest('ALLOW_CAS', performEnableCas, examServerApi);
|
|
37
|
+
function* casSaga(examServerApi) {
|
|
38
|
+
yield (0, effects_1.takeLatest)('ALLOW_CAS', performEnableCas, examServerApi);
|
|
35
39
|
}
|
|
36
40
|
//# sourceMappingURL=sagas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sagas.js","sourceRoot":"","sources":["../../../src/store/cas/sagas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sagas.js","sourceRoot":"","sources":["../../../src/store/cas/sagas.ts"],"names":[],"mappings":";;AAMA,4CA0BC;AAGD,0BAEC;AArCD,gDAAsE;AAEtE,4CAAwC;AACxC,uCAAiH;AAEjH,6EAA6E;AAC7E,QAAe,CAAC,CAAC,gBAAgB,CAAC,aAA4B,EAAE,EAAE,OAAO,EAA+B;IACtG,IAAI,CAAC;QACH,mEAAmE;QACnE,MAAM,OAAO,GAAc,MAAM,IAAA,cAAI,EAAC,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;QAC7E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAA,aAAG,EAAC,IAAA,2BAAiB,GAAE,CAAC,CAAA;YAC9B,OAAM;QACR,CAAC;QAED,MAAM,IAAA,aAAG,EAAC,IAAA,2BAAiB,EAAC,OAAO,CAAC,CAAC,CAAA;QACrC,mEAAmE;QACnE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,cAAI,EAAC;YAC/B,QAAQ,EAAE,IAAA,cAAI,EAAC,qBAAS,EAAE,OAAO,EAAE,4BAAkB,CAAC;YACtD,SAAS,EAAE,IAAA,cAAI,EAAC,qBAAqB,CAAC;SACvC,CAAC,CAAA;QAEF,mEAAmE;QACnE,MAAM,OAAO,GAAc,MAAM,IAAA,cAAI,EAAC,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACtG,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAA,aAAG,EAAC,IAAA,2BAAiB,GAAE,CAAC,CAAA;QAChC,CAAC;aAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,IAAA,aAAG,EAAC,IAAA,2BAAiB,GAAE,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,QAAuB,CAAC,CAAC,OAAO,CAAC,aAA4B;IAC3D,MAAM,IAAA,oBAAU,EAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAA;AAChE,CAAC"}
|
package/dist/store/countdown.js
CHANGED
|
@@ -1,31 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.countdown = countdown;
|
|
4
|
+
const redux_saga_1 = require("redux-saga");
|
|
5
|
+
const effects_1 = require("redux-saga/effects");
|
|
6
|
+
const countdownChannel = (duration) => (0, redux_saga_1.eventChannel)(emit => {
|
|
4
7
|
const intervalId = setInterval(() => {
|
|
5
8
|
duration--;
|
|
6
9
|
if (duration > 0) {
|
|
7
10
|
emit(duration);
|
|
8
11
|
}
|
|
9
12
|
else {
|
|
10
|
-
emit(END);
|
|
13
|
+
emit(redux_saga_1.END);
|
|
11
14
|
clearInterval(intervalId);
|
|
12
15
|
}
|
|
13
16
|
}, 1000);
|
|
14
17
|
return () => clearInterval(intervalId);
|
|
15
18
|
});
|
|
16
19
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
17
|
-
|
|
20
|
+
function* countdown(duration, updateAction) {
|
|
18
21
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
19
|
-
const channel = yield call(countdownChannel, duration);
|
|
22
|
+
const channel = yield (0, effects_1.call)(countdownChannel, duration);
|
|
20
23
|
try {
|
|
21
24
|
while (true) {
|
|
22
25
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
23
|
-
const remaining = yield take(channel);
|
|
24
|
-
yield put(updateAction(remaining));
|
|
26
|
+
const remaining = yield (0, effects_1.take)(channel);
|
|
27
|
+
yield (0, effects_1.put)(updateAction(remaining));
|
|
25
28
|
}
|
|
26
29
|
}
|
|
27
30
|
finally {
|
|
28
|
-
if ((yield cancelled())) {
|
|
31
|
+
if ((yield (0, effects_1.cancelled)())) {
|
|
29
32
|
channel.close();
|
|
30
33
|
}
|
|
31
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"countdown.js","sourceRoot":"","sources":["../../src/store/countdown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"countdown.js","sourceRoot":"","sources":["../../src/store/countdown.ts"],"names":[],"mappings":";;AAoBA,8BAeC;AAnCD,2CAA4D;AAC5D,gDAA+D;AAG/D,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAC5C,IAAA,yBAAY,EAAS,IAAI,CAAC,EAAE;IAC1B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,EAAE,CAAA;QACV,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAA;QAChB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAG,CAAC,CAAA;YACT,aAAa,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAA;IAER,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;AACxC,CAAC,CAAC,CAAA;AAEJ,6EAA6E;AAC7E,QAAe,CAAC,CAAC,SAAS,CAAC,QAAgB,EAAE,YAA+C;IAC1F,mEAAmE;IACnE,MAAM,OAAO,GAAyB,MAAM,IAAA,cAAI,EAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;IAE5E,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,mEAAmE;YACnE,MAAM,SAAS,GAAW,MAAM,IAAA,cAAI,EAAC,OAAO,CAAC,CAAA;YAC7C,MAAM,IAAA,aAAG,EAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,MAAM,IAAA,mBAAS,GAAE,CAAY,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,EAAE,CAAA;QACjB,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/store/index.js
CHANGED
|
@@ -1,25 +1,64 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.initializeExamStore = initializeExamStore;
|
|
40
|
+
const _ = __importStar(require("lodash-es"));
|
|
41
|
+
const redux_1 = require("redux");
|
|
42
|
+
const redux_saga_1 = __importDefault(require("redux-saga"));
|
|
43
|
+
const effects_1 = require("redux-saga/effects");
|
|
44
|
+
const reducer_1 = __importDefault(require("./answers/reducer"));
|
|
45
|
+
const sagas_1 = __importDefault(require("./answers/sagas"));
|
|
46
|
+
const reducer_2 = __importDefault(require("./audio/reducer"));
|
|
47
|
+
const sagas_2 = __importDefault(require("./audio/sagas"));
|
|
48
|
+
const reducer_3 = __importDefault(require("./cas/reducer"));
|
|
49
|
+
const sagas_3 = __importDefault(require("./cas/sagas"));
|
|
50
|
+
const validateAnswers_1 = require("../validateAnswers");
|
|
51
|
+
const rootReducer = (0, redux_1.combineReducers)({
|
|
52
|
+
answers: reducer_1.default,
|
|
53
|
+
audio: reducer_2.default,
|
|
54
|
+
cas: reducer_3.default
|
|
16
55
|
});
|
|
17
56
|
function* rootSaga(examServerApi) {
|
|
18
|
-
yield fork(
|
|
19
|
-
yield fork(
|
|
20
|
-
yield fork(
|
|
57
|
+
yield (0, effects_1.fork)(sagas_1.default, examServerApi);
|
|
58
|
+
yield (0, effects_1.fork)(sagas_2.default, examServerApi);
|
|
59
|
+
yield (0, effects_1.fork)(sagas_3.default, examServerApi);
|
|
21
60
|
}
|
|
22
|
-
|
|
61
|
+
function initializeExamStore(examStructure, casStatus, initialAnswers, restrictedAudioPlaybackStats, examServerApi) {
|
|
23
62
|
const initialQuestionIds = new Set(_.map(initialAnswers, 'questionId'));
|
|
24
63
|
const playbackTimes = _.mapValues(_.keyBy(restrictedAudioPlaybackStats, 'restrictedAudioId'), 'times');
|
|
25
64
|
const answersById = _.keyBy(initialAnswers, 'questionId');
|
|
@@ -32,7 +71,7 @@ export function initializeExamStore(examStructure, casStatus, initialAnswers, re
|
|
|
32
71
|
savedQuestionIds: initialQuestionIds,
|
|
33
72
|
answerTooLongFailures: new Set(),
|
|
34
73
|
examStructure,
|
|
35
|
-
validationErrors: validateAnswers(examStructure, answersById)
|
|
74
|
+
validationErrors: (0, validateAnswers_1.validateAnswers)(examStructure, answersById)
|
|
36
75
|
},
|
|
37
76
|
audio: {
|
|
38
77
|
errors: {},
|
|
@@ -41,7 +80,7 @@ export function initializeExamStore(examStructure, casStatus, initialAnswers, re
|
|
|
41
80
|
},
|
|
42
81
|
cas: { casStatus }
|
|
43
82
|
};
|
|
44
|
-
const sagaMiddleware =
|
|
83
|
+
const sagaMiddleware = (0, redux_saga_1.default)({
|
|
45
84
|
onError(error, errorInfo) {
|
|
46
85
|
var _a;
|
|
47
86
|
console.error('Uncaught saga error', error, errorInfo.sagaStack);
|
|
@@ -49,11 +88,11 @@ export function initializeExamStore(examStructure, casStatus, initialAnswers, re
|
|
|
49
88
|
}
|
|
50
89
|
});
|
|
51
90
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access
|
|
52
|
-
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
|
|
53
|
-
const enhancers = composeEnhancers(applyMiddleware(sagaMiddleware));
|
|
91
|
+
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || redux_1.compose;
|
|
92
|
+
const enhancers = composeEnhancers((0, redux_1.applyMiddleware)(sagaMiddleware));
|
|
54
93
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
55
94
|
// @ts-ignore
|
|
56
|
-
const store = createStore(rootReducer, initialState, enhancers);
|
|
95
|
+
const store = (0, redux_1.createStore)(rootReducer, initialState, enhancers);
|
|
57
96
|
sagaMiddleware.run(rootSaga, examServerApi);
|
|
58
97
|
return store;
|
|
59
98
|
}
|
package/dist/store/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,kDA2CC;AAnFD,6CAA8B;AAC9B,iCAAqF;AACrF,4DAA6C;AAC7C,gDAAyC;AACzC,gEAA8C;AAC9C,4DAAyC;AACzC,8DAA0C;AAC1C,0DAAqC;AACrC,4DAAsC;AACtC,wDAAiC;AAGjC,wDAAoD;AAEpD,MAAM,WAAW,GAAG,IAAA,uBAAe,EAAC;IAClC,OAAO,EAAE,iBAAc;IACvB,KAAK,EAAE,iBAAY;IACnB,GAAG,EAAE,iBAAU;CAChB,CAAC,CAAA;AAEF,QAAQ,CAAC,CAAC,QAAQ,CAAC,aAA4B;IAC7C,MAAM,IAAA,cAAI,EAAC,eAAW,EAAE,aAAa,CAAC,CAAA;IACtC,MAAM,IAAA,cAAI,EAAC,eAAS,EAAE,aAAa,CAAC,CAAA;IACpC,MAAM,IAAA,cAAI,EAAC,eAAO,EAAE,aAAa,CAAC,CAAA;AACpC,CAAC;AAgBD,SAAgB,mBAAmB,CACjC,aAA0B,EAC1B,SAA2B,EAC3B,cAA4B,EAC5B,4BAA4D,EAC5D,aAA4B;IAE5B,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAA;IACvE,MAAM,aAAa,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,4BAA4B,EAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC,CAAA;IACtG,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IACzD,MAAM,YAAY,GAAa;QAC7B,OAAO,EAAE;YACP,WAAW;YACX,iBAAiB,EAAE,IAAI;YACvB,iBAAiB,EAAE,kBAAkB;YACrC,qBAAqB,EAAE,OAAO,aAAa,CAAC,mBAAmB,KAAK,UAAU;YAC9E,gBAAgB,EAAE,kBAAkB;YACpC,qBAAqB,EAAE,IAAI,GAAG,EAAE;YAChC,aAAa;YACb,gBAAgB,EAAE,IAAA,iCAAe,EAAC,aAAa,EAAE,WAAW,CAAC;SAC9D;QACD,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,IAAI;YAChB,aAAa;SACd;QACD,GAAG,EAAE,EAAE,SAAS,EAAE;KACnB,CAAA;IACD,MAAM,cAAc,GAAG,IAAA,oBAAoB,EAAC;QAC1C,OAAO,CAAC,KAAK,EAAE,SAAS;;YACtB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;YAChE,MAAA,aAAa,CAAC,YAAY,8DAAG,KAAK,CAAC,CAAA;QACrC,CAAC;KACF,CAAC,CAAA;IACF,8GAA8G;IAC9G,MAAM,gBAAgB,GAAK,MAAc,CAAC,oCAAuD,IAAI,eAAO,CAAA;IAC5G,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAA,uBAAe,EAAC,cAAc,CAAC,CAAC,CAAA;IACnE,6DAA6D;IAC7D,aAAa;IACb,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;IAC/D,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IAE3C,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/dist/store/selectors.js
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getAnyAnswerTooLongFailure = exports.getAnswerTooLongFailure = exports.getSaveState = exports.getPlaybackTimesRemaining = exports.getPlaybackTimes = exports.getDurationRemaining = exports.getAudioPlaybackError = exports.getAudioState = void 0;
|
|
37
|
+
const _ = __importStar(require("lodash-es"));
|
|
38
|
+
const getAudioState = (src, restrictedAudioId) => (state) => {
|
|
3
39
|
const { nowPlaying } = state.audio;
|
|
4
40
|
return nowPlaying == null
|
|
5
41
|
? 'stopped'
|
|
@@ -7,11 +43,16 @@ export const getAudioState = (src, restrictedAudioId) => (state) => {
|
|
|
7
43
|
? 'playing'
|
|
8
44
|
: 'other-playing';
|
|
9
45
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
46
|
+
exports.getAudioState = getAudioState;
|
|
47
|
+
const getAudioPlaybackError = (src, restrictedAudioId) => (state) => state.audio.errors[restrictedAudioId != null ? restrictedAudioId : src];
|
|
48
|
+
exports.getAudioPlaybackError = getAudioPlaybackError;
|
|
49
|
+
const getDurationRemaining = (src, restrictedAudioId) => (state) => (0, exports.getAudioState)(src, restrictedAudioId)(state) === 'playing' ? state.audio.nowPlaying.durationRemaining : undefined;
|
|
50
|
+
exports.getDurationRemaining = getDurationRemaining;
|
|
51
|
+
const getPlaybackTimes = (restrictedAudioId) => (state) => _.get(state.audio.playbackTimes, restrictedAudioId, 0);
|
|
52
|
+
exports.getPlaybackTimes = getPlaybackTimes;
|
|
53
|
+
const getPlaybackTimesRemaining = (restrictedAudioId, times) => (state) => times - (0, exports.getPlaybackTimes)(restrictedAudioId)(state);
|
|
54
|
+
exports.getPlaybackTimesRemaining = getPlaybackTimesRemaining;
|
|
55
|
+
const getSaveState = (state) => {
|
|
15
56
|
const { serverQuestionIds, savedQuestionIds, answersById } = state.answers;
|
|
16
57
|
if (serverQuestionIds.size === 0) {
|
|
17
58
|
return 'initial';
|
|
@@ -24,6 +65,7 @@ export const getSaveState = (state) => {
|
|
|
24
65
|
return 'saved';
|
|
25
66
|
}
|
|
26
67
|
};
|
|
68
|
+
exports.getSaveState = getSaveState;
|
|
27
69
|
function containsAnswerNotYetSavedInServer(serverIds, answersById) {
|
|
28
70
|
for (const questionId in answersById) {
|
|
29
71
|
if (!serverIds.has(Number(questionId))) {
|
|
@@ -32,11 +74,13 @@ function containsAnswerNotYetSavedInServer(serverIds, answersById) {
|
|
|
32
74
|
}
|
|
33
75
|
return false;
|
|
34
76
|
}
|
|
35
|
-
|
|
36
|
-
|
|
77
|
+
const getAnswerTooLongFailure = (questionId) => (state) => state.answers.answerTooLongFailures.has(questionId);
|
|
78
|
+
exports.getAnswerTooLongFailure = getAnswerTooLongFailure;
|
|
79
|
+
const getAnyAnswerTooLongFailure = (state) => {
|
|
37
80
|
var _a;
|
|
38
81
|
const { answerTooLongFailures, answersById } = state.answers;
|
|
39
82
|
const [questionId] = answerTooLongFailures;
|
|
40
83
|
return (_a = answersById[questionId]) === null || _a === void 0 ? void 0 : _a.displayNumber;
|
|
41
84
|
};
|
|
85
|
+
exports.getAnyAnswerTooLongFailure = getAnyAnswerTooLongFailure;
|
|
42
86
|
//# sourceMappingURL=selectors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../src/store/selectors.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../src/store/selectors.ts"],"names":[],"mappings":"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"}
|
package/dist/types/ExamAnswer.js
CHANGED
|
@@ -49,7 +49,7 @@ export interface ExamServerAPI {
|
|
|
49
49
|
/** Retrieve the latest answer for each question */
|
|
50
50
|
getAnswers: () => Promise<ExamAnswer[]>;
|
|
51
51
|
/** Retrieve the answer history for one question */
|
|
52
|
-
getAnswerHistory
|
|
52
|
+
getAnswerHistory: (questionId: number) => Promise<AnswerHistoryEntry[]>;
|
|
53
53
|
/** Save a new answer to the server */
|
|
54
54
|
saveAnswer: (answer: ExamAnswer) => Promise<void>;
|
|
55
55
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExamServerAPI.d.ts","sourceRoot":"","sources":["../../src/types/ExamServerAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzE,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEtD,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAE/C;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,UAAU,CAAA;AACrD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,CAAA;AACtD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAA;AACtC,MAAM,MAAM,UAAU;AACpB,0DAA0D;AACxD,kBAAkB;AACpB,6CAA6C;GAC3C,iBAAiB;AACnB,0CAA0C;GACxC,mBAAmB;AACrB,kDAAkD;GAChD,uBAAuB;AACzB,wCAAwC;GACtC,aAAa,CAAA;AACjB,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,UAAU,CAAA;AAErD,MAAM,WAAW,4BAA4B;IAC3C,6DAA6D;IAC7D,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IAC1D,mDAAmD;IACnD,UAAU,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACvC,mDAAmD;IACnD,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ExamServerAPI.d.ts","sourceRoot":"","sources":["../../src/types/ExamServerAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzE,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEtD,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAE/C;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,UAAU,CAAA;AACrD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,CAAA;AACtD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAA;AACtC,MAAM,MAAM,UAAU;AACpB,0DAA0D;AACxD,kBAAkB;AACpB,6CAA6C;GAC3C,iBAAiB;AACnB,0CAA0C;GACxC,mBAAmB;AACrB,kDAAkD;GAChD,uBAAuB;AACzB,wCAAwC;GACtC,aAAa,CAAA;AACjB,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,UAAU,CAAA;AAErD,MAAM,WAAW,4BAA4B;IAC3C,6DAA6D;IAC7D,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IAC1D,mDAAmD;IACnD,UAAU,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACvC,mDAAmD;IACnD,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAA;IACvE,sCAAsC;IACtC,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD;;;;OAIG;IACH,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAC1D;;;;;;OAMG;IACH,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAEtH;;;;;;OAMG;IACH,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpG,uGAAuG;IACvG,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAA;IACxG,gFAAgF;IAChF,cAAc,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7E,sEAAsE;IACtE,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACnE,+BAA+B;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/C,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAEvC,wGAAwG;IACxG,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACxC"}
|
package/dist/types/Score.js
CHANGED
package/dist/url.js
CHANGED
|
@@ -1,8 +1,44 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.url = url;
|
|
37
|
+
const _ = __importStar(require("lodash-es"));
|
|
2
38
|
/**
|
|
3
39
|
* A helper function for constructing relative URLs for links within the exam
|
|
4
40
|
*/
|
|
5
|
-
|
|
41
|
+
function url(path, options) {
|
|
6
42
|
const u = new URL(path, 'http://example.com'); // hostname doesn't matter but it is required for URL constructor
|
|
7
43
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
8
44
|
_.forEach(options, (v, k) => (u[k] = v));
|
package/dist/url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,kBAMC;AAbD,6CAA8B;AAI9B;;GAEG;AACH,SAAgB,GAAG,CAAC,IAAY,EAAE,OAAoB;IACpD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA,CAAC,iEAAiE;IAC/G,sEAAsE;IACtE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAE,CAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACjD,MAAM,eAAe,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAA;IACtD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC3E,CAAC"}
|
package/dist/useCached.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCached = useCached;
|
|
4
|
+
const react_1 = require("react");
|
|
2
5
|
/** Like `useMemo`, but guaranteed never to be reinitialized. Doesn't support dependencies. */
|
|
3
|
-
|
|
4
|
-
return useState(fn)[0];
|
|
6
|
+
function useCached(fn) {
|
|
7
|
+
return (0, react_1.useState)(fn)[0];
|
|
5
8
|
}
|
|
6
9
|
//# sourceMappingURL=useCached.js.map
|
package/dist/useCached.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCached.js","sourceRoot":"","sources":["../src/useCached.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useCached.js","sourceRoot":"","sources":["../src/useCached.ts"],"names":[],"mappings":";;AAGA,8BAEC;AALD,iCAAgC;AAEhC,8FAA8F;AAC9F,SAAgB,SAAS,CAAI,EAAW;IACtC,OAAO,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACxB,CAAC"}
|