{"version":3,"sources":["webpack:///./src/apis/training.js","webpack:///./src/components/QuestionVisualMedia.vue?c048","webpack:///./src/components/ThreeDButton.vue?d5b1","webpack:///src/components/ThreeDButton.vue","webpack:///./src/components/ThreeDButton.vue?427c","webpack:///./src/components/ThreeDButton.vue","webpack:///./src/components/ProgressBarWithButton.vue?69aa","webpack:///./src/components/adaptive-test-battle/username-editor/PublicUsernameEditorPopup.vue?79a2","webpack:///./src/components/LoadingOverlay.vue?ae2f","webpack:///./src/apis/user.js","webpack:///./src/components/Question.vue?7305","webpack:///./src/components/AnswerFeedback.vue?480e","webpack:///src/components/AnswerFeedback.vue","webpack:///./src/components/AnswerFeedback.vue?4c59","webpack:///./src/components/AnswerFeedback.vue","webpack:///./src/components/LastSavepointIndicator.vue?2d90","webpack:///src/components/LastSavepointIndicator.vue","webpack:///./src/components/LastSavepointIndicator.vue?66f1","webpack:///./src/components/LastSavepointIndicator.vue","webpack:///./src/components/question-answers/QuestionAnswerLoader.vue?ec99","webpack:///./src/components/question-answers/InputField.vue?547d","webpack:///./src/components/question-answers/BaseAnswer.vue?01ea","webpack:///./src/utils/stopwatch.js","webpack:///src/components/question-answers/BaseAnswer.vue","webpack:///./src/components/question-answers/BaseAnswer.vue?5a60","webpack:///./src/components/question-answers/BaseAnswer.vue","webpack:///./src/components/ui/NumberInputField.vue?181e","webpack:///src/components/ui/NumberInputField.vue","webpack:///./src/components/ui/NumberInputField.vue?3099","webpack:///./src/components/ui/NumberInputField.vue","webpack:///src/components/question-answers/InputField.vue","webpack:///./src/components/question-answers/InputField.vue?714d","webpack:///./src/components/question-answers/InputField.vue","webpack:///./src/components/question-answers/MultipleChoice.vue?faa2","webpack:///src/components/question-answers/MultipleChoice.vue","webpack:///./src/components/question-answers/MultipleChoice.vue?513f","webpack:///./src/components/question-answers/MultipleChoice.vue","webpack:///src/components/question-answers/QuestionAnswerLoader.vue","webpack:///./src/components/question-answers/QuestionAnswerLoader.vue?4e98","webpack:///./src/components/question-answers/QuestionAnswerLoader.vue?f25f","webpack:///./src/components/QuestionIdentifier.vue?f1ef","webpack:///src/components/QuestionIdentifier.vue","webpack:///./src/components/QuestionIdentifier.vue?9334","webpack:///./src/components/QuestionIdentifier.vue","webpack:///./src/components/QuestionVisualMedia.vue?c2f3","webpack:///./src/components/Media.vue?2aa9","webpack:///src/components/Media.vue","webpack:///./src/components/Media.vue?3439","webpack:///./src/components/Media.vue?697f","webpack:///src/components/QuestionVisualMedia.vue","webpack:///./src/components/QuestionVisualMedia.vue?de04","webpack:///./src/components/QuestionVisualMedia.vue","webpack:///src/components/Question.vue","webpack:///./src/components/Question.vue?caa4","webpack:///./src/components/Question.vue","webpack:///./src/components/ui/ErrorMessage.vue?2b61","webpack:///./src/store/keyboard.js","webpack:///./src/components/QuestionListManager.vue?7af1","webpack:///./src/components/QuestionListManager.vue?6e36","webpack:///./src/components/ui/CardHandler.vue?e569","webpack:///src/components/ui/CardHandler.vue","webpack:///./src/components/ui/CardHandler.vue?fd8a","webpack:///./src/components/ui/CardHandler.vue","webpack:///./src/components/DialogButtons.vue?2c30","webpack:///src/components/DialogButtons.vue","webpack:///./src/components/DialogButtons.vue?f404","webpack:///./src/components/DialogButtons.vue","webpack:///./src/components/ProgressBarWithButton.vue?1650","webpack:///src/components/ProgressBarWithButton.vue","webpack:///./src/components/ProgressBarWithButton.vue?a406","webpack:///./src/components/ProgressBarWithButton.vue","webpack:///./src/components/QuestionsOverview.vue?df75","webpack:///src/components/QuestionsOverview.vue","webpack:///./src/components/QuestionsOverview.vue?208c","webpack:///./src/components/QuestionsOverview.vue","webpack:///./src/components/ui/TouchDragNavigation.vue?5e6c","webpack:///src/components/ui/TouchDragNavigation.vue","webpack:///./src/components/ui/TouchDragNavigation.vue?e974","webpack:///./src/components/ui/TouchDragNavigation.vue","webpack:///src/components/QuestionListManager.vue","webpack:///./src/components/QuestionListManager.vue?46f9","webpack:///./src/components/QuestionListManager.vue","webpack:///./src/utils/mathml.js","webpack:///./src/utils/array.js","webpack:///./src/components/adaptive-test-battle/username-editor/ConfirmChoiceButton.vue?9c93","webpack:///./src/components/CountDown.vue?8aec","webpack:///./src/components/adaptive-test-battle/username-display/PublicUserEmoji.vue?e404","webpack:///./src/components/adaptive-test-battle/BattleHeader.vue?5ea6","webpack:///./src/components/adaptive-test-battle/username-editor/PublicEmojiEditorPopup.vue?db26","webpack:///./src/components/ui/TouchDragNavigation.vue?eace","webpack:///./src/components/ThreeDButton.vue?0f4b","webpack:///./src/utils/device.js","webpack:///./src/components/LoadingOverlay.vue?1bc5","webpack:///src/components/LoadingOverlay.vue","webpack:///./src/components/LoadingOverlay.vue?bdf0","webpack:///./src/components/LoadingOverlay.vue","webpack:///./src/components/ArrowButton.vue?f473","webpack:///./src/components/CountDown.vue?81a7","webpack:///./src/mixins/countdown.js","webpack:///src/components/CountDown.vue","webpack:///./src/components/CountDown.vue?c935","webpack:///./src/components/CountDown.vue","webpack:///./src/components/ui/ErrorMessage.vue?2c8b","webpack:///src/components/ui/ErrorMessage.vue","webpack:///./src/components/ui/ErrorMessage.vue?ac69","webpack:///./src/components/ui/ErrorMessage.vue","webpack:///./src/components/accessibility/TextToSpeech.vue?0daa","webpack:///./src/components/QuestionIdentifier.vue?11c9","webpack:///./src/plugins/config.js","webpack:///./src/plugins/constants.js","webpack:///./src/plugins/font-awesome.js","webpack:///./src/mains/base.js","webpack:///./src/components/LoadingAnimation.vue?2b2e","webpack:///src/components/LoadingAnimation.vue","webpack:///./src/components/LoadingAnimation.vue?33c4","webpack:///./src/components/LoadingAnimation.vue","webpack:///./src/apis/adaptive-test-battle.js","webpack:///./src/apis/homework.js","webpack:///./src/components/ArrowButton.vue?a39a","webpack:///src/components/ArrowButton.vue","webpack:///./src/components/ArrowButton.vue?56ee","webpack:///./src/components/ArrowButton.vue","webpack:///./src/components/ui/Popup.vue?4c75","webpack:///src/components/ui/Popup.vue","webpack:///./src/components/ui/Popup.vue?7cc2","webpack:///./src/components/ui/Popup.vue","webpack:///./src/components/adaptive-test-battle/username-editor/EmojiPicker.vue?03cd","webpack:///./src/components/question-answers/InputField.vue?ed24","webpack:///./src/mixins/typeset-mathml.js","webpack:///./src/utils/scripts.js","webpack:///./src/utils/object.js","webpack:///./src/components/adaptive-test-battle/BattleHeader.vue?41d9","webpack:///src/components/adaptive-test-battle/BattleHeader.vue","webpack:///./src/components/adaptive-test-battle/BattleHeader.vue?dbbb","webpack:///./src/components/adaptive-test-battle/BattleHeader.vue","webpack:///./src/utils/number.js","webpack:///./src/utils/string.js","webpack:///./src/enums.js","webpack:///./src/components/ui/NumberInputField.vue?81a4","webpack:///./src/utils/logger.js","webpack:///./src/store/utils.js","webpack:///./src/utils/keycodes.js","webpack:///./src/components/DialogButtons.vue?d681","webpack:///./src/components/question-answers/QuestionAnswerLoader.vue?0009","webpack:///./src/components/LoadingAnimation.vue?5fbb","webpack:///./src/utils/style.js","webpack:///./src/components/accessibility/KeyboardWrapper.vue?44b7","webpack:///./src/components/accessibility/Keyboard.vue?fd08","webpack:///src/components/accessibility/Keyboard.vue","webpack:///./src/components/accessibility/Keyboard.vue?c911","webpack:///./src/components/accessibility/Keyboard.vue","webpack:///src/components/accessibility/KeyboardWrapper.vue","webpack:///./src/components/accessibility/KeyboardWrapper.vue?3224","webpack:///./src/components/accessibility/KeyboardWrapper.vue","webpack:///./src/components/adaptive-test-battle/battle-queue/BattleQueue.vue?b5d3","webpack:///src/components/adaptive-test-battle/battle-queue/BattleQueue.vue","webpack:///./src/components/adaptive-test-battle/battle-queue/BattleQueue.vue?29a0","webpack:///./src/components/adaptive-test-battle/battle-queue/BattleQueue.vue","webpack:///./src/components/ui/AnimatedNumber.vue?a434","webpack:///src/components/ui/AnimatedNumber.vue","webpack:///./src/components/ui/AnimatedNumber.vue?e8ef","webpack:///./src/components/ui/AnimatedNumber.vue","webpack:///./src/components/accessibility/Keyboard.vue?387f","webpack:///./src/apis/base.js","webpack:///./src/components/adaptive-test-battle/username-display/PublicUserName.vue?164f","webpack:///./src/components/Question.vue?49b5","webpack:///./src/components/ui/CardHandler.vue?3732","webpack:///./src/components/question-answers/MultipleChoice.vue?aa8d","webpack:///./src/components/AnswerFeedback.vue?2d80","webpack:///./src/utils/network.js","webpack:///./src/store/questions.js","webpack:///./src/utils/date.js","webpack:///./src/components/ui/FaIcon.vue?c8d7","webpack:///./src/components/adaptive-test-battle/battle-queue/BattleQueue.vue?7244","webpack:///./src/components/adaptive-test-battle/username-display/PublicUserName.vue?d9af","webpack:///./src/components/adaptive-test-battle/username-display/PublicUserEmoji.vue?1275","webpack:///./src/utils/uuid.js","webpack:///src/components/adaptive-test-battle/username-display/PublicUserEmoji.vue","webpack:///./src/components/adaptive-test-battle/username-display/PublicUserEmoji.vue?d0ad","webpack:///./src/components/adaptive-test-battle/username-display/PublicUserEmoji.vue","webpack:///./src/components/adaptive-test-battle/username-editor/PublicUsernameEditorPopup.vue?a893","webpack:///./src/components/adaptive-test-battle/username-editor/PublicUsernameEditor.vue?03b8","webpack:///src/components/adaptive-test-battle/username-editor/PublicUsernameEditor.vue","webpack:///./src/components/adaptive-test-battle/username-editor/PublicUsernameEditor.vue?9eb4","webpack:///./src/components/adaptive-test-battle/username-editor/PublicUsernameEditor.vue","webpack:///./src/components/adaptive-test-battle/username-editor/ConfirmChoiceButton.vue?7ff3","webpack:///src/components/adaptive-test-battle/username-editor/ConfirmChoiceButton.vue","webpack:///./src/components/adaptive-test-battle/username-editor/ConfirmChoiceButton.vue?a662","webpack:///./src/components/adaptive-test-battle/username-editor/ConfirmChoiceButton.vue","webpack:///src/components/adaptive-test-battle/username-editor/PublicUsernameEditorPopup.vue","webpack:///./src/components/adaptive-test-battle/username-editor/PublicUsernameEditorPopup.vue?9a86","webpack:///./src/components/adaptive-test-battle/username-editor/PublicUsernameEditorPopup.vue","webpack:///./src/components/adaptive-test-battle/username-editor/PublicEmojiEditorPopup.vue?c503","webpack:///./src/components/adaptive-test-battle/username-editor/EmojiPicker.vue?00e7","webpack:///src/components/adaptive-test-battle/username-editor/EmojiPicker.vue","webpack:///./src/components/adaptive-test-battle/username-editor/EmojiPicker.vue?7093","webpack:///./src/components/adaptive-test-battle/username-editor/EmojiPicker.vue","webpack:///src/components/adaptive-test-battle/username-editor/PublicEmojiEditorPopup.vue","webpack:///./src/components/adaptive-test-battle/username-editor/PublicEmojiEditorPopup.vue?129e","webpack:///./src/components/adaptive-test-battle/username-editor/PublicEmojiEditorPopup.vue","webpack:///src/components/adaptive-test-battle/username-display/PublicUserName.vue","webpack:///./src/components/adaptive-test-battle/username-display/PublicUserName.vue?2139","webpack:///./src/components/adaptive-test-battle/username-display/PublicUserName.vue","webpack:///./src/components/ui/Popup.vue?6be7","webpack:///./src/components/accessibility/KeyboardWrapper.vue?f7fa","webpack:///./src/components/ui/FaIcon.vue?0725","webpack:///src/components/ui/FaIcon.vue","webpack:///./src/components/ui/FaIcon.vue?5a12","webpack:///./src/components/ui/FaIcon.vue?0ea7","webpack:///./src/components/QuestionsOverview.vue?0392","webpack:///./src/components/accessibility/TextToSpeech.vue?3b96","webpack:///src/components/accessibility/TextToSpeech.vue","webpack:///./src/components/accessibility/TextToSpeech.vue?465e","webpack:///./src/components/accessibility/TextToSpeech.vue","webpack:///./src/components/ui/AnimatedNumber.vue?cc52","webpack:///./src/components/Media.vue?4373","webpack:///./src/components/adaptive-test-battle/username-editor/PublicUsernameEditor.vue?9c13"],"names":["getExampleQuestion","lessonId","axiosInstance","get","config","apiUrl","then","data","getTestResult","testId","studentSiteUrl","startFiveSharp","classLevel","post","objectToFormData","class","lesson_id","startTrialExam","postData","saveAnswer","questionId","answer","lapsedTime","userAnswerModel","query","queryString","stringify","render","_vm","this","_h","$createElement","_c","_self","tagName","tag","staticClass","attrs","href","to","buttonType","disabled","on","$event","$emit","icon","iconPosition","_e","_t","staticRenderFns","name","components","props","type","String","required","Object","Boolean","default","computed","isLink","component","UserApi","userId","axios","wordOne","wordTwo","emojiId","BaseApi","isActive","hasMedia","isInteractive","questionTextId","example","hideHeader","_v","_s","title","media","question","shouldDownSize","alignTextToTop","domProps","ref","enableAnswerLock","hasAnswer","savingAnswer","disableKeyboard","onAnswer","scopedSlots","_u","key","fn","$t","proxy","errorMessage","displaySaveTime","answerDate","showFeedbackOverlay","answeredCorrectly","Question","explanation","displayBlock","correct","mixins","show","allowFocus","focusTimer","displayOverlay","watch","allow","clearTimeout","setTimeout","nextButton","focus","directives","rawName","value","lastSaveDate","expression","loading","lastSaveDateString","Date","dayDiff","time","date","componentToLoad","lockAnswer","labelledBy","correctnessClassname","model","callback","$$v","userAnswer","unitText","userAnswerTtsText","correctAnswer","canEvaluate","questionAnswerTtsText","State","STOPPED","RUNNING","PAUSED","StopWatch","initialLapsedTime","initialTimestamp","state","firstRun","lapsedTime_","now","calculateLapsedTime","pause","start","getLapsedTime","created","UserAnswer","lapsed_time","stopWatch","mounted","toggleStopWatch","id","hasUserAnswer","isCorrect","methods","blur","displayCustomKeyboard","patternRegex","onFocus","onBlur","target","composing","internalValue","enforceCustomKeyboard","hardPatternRegex","beforeDestroy","$store","dispatch","keypressInProgress","getters","$refs","input","setSoftRegexPattern","setHardRegexPattern","getValue","setValue","newValue","addCharacter","valueArray","splice","selectionStart","selectionEnd","join","$nextTick","removeCharacter","selectionRange","softPatternRegex","emitValue","extractCleanValue","matches","streamlineDecimalSymbol","replace","alternativeDecimalSymbol","decimalSymbol","isValueValid","getSelectionStart","getSelectionEnd","setSelectionRange","end","invalidKeystrokeBlink","classList","add","requestAnimationFrame","oldInternalValue","cursorMovement","length","extends","BaseAnswer","UserAnswerInputField","Answer","unit","undefined","numberInputField","locked","longAnswers","isValidated","enableShowFocus","_l","validationClassName","refInFor","inputName","_q","clicked","displayValidationIcon","radioInputs","UserAnswerMultipleChoice","document","getElementsByName","window","addEventListener","onKeyDown","removeEventListener","canValidate","answers","map","some","$el","querySelector","clickedRadioInput","checked","event","preventDefault","stopPropagation","clearSelection","focusedRadioInput","click","cancelKey","forEach","radioInput","isLoading","InputField","MultipleChoice","answerComponent","questionIdentifier","validator","topicId","Topic","Lesson","togglePopup","popupVisible","mediaData","imageUrl","mediaExists","type_id","isImage","mediaPopup","ErrorMessage","AnswerFeedback","LastSavepointIndicator","QuestionAnswerLoader","QuestionIdentifier","QuestionVisualMedia","TextToSpeech","takeFocus","evaluate","focusTimeout","forceHideFeedbackOverlay","hideFeedbackTimeout","answerFeedbackBlockEnabledInterval","lastAnswerFeedbackBlockHeight","heightResetAttemptsAllowed","setFocusOnAnswer","questionTextLength","Media","updated","canValidateAnswer","removeFocusOnAnswer","noDelay","focusFunction","answerLoader","makePageReadyAndCallFunction","edulab","base","pageReady","destroyed","KeyboardStoreTypes","GET_FOCUSED_INPUT_FIELD","IS_KEYPRESS_IN_PROGRESS","IS_KEYBOARD_VISIBLE","actions","CLEAR_FOCUS","SET_FOCUS","SET_KEYPRESS_IN_PROGRESS","mutations","KeyboardStoreNamespacedTypes","addNamespace","focusedInputField","inputField","commit","namespaced","Types","NamespacedTypes","questions","theme","initialQuestionIndex","onQuestionIndexWillChange","onQuestionIndexChange","isQuestionSaving","instantFeedback","getQuestionErrorMessage","i","arguments","argsArray","Array","apply","concat","displayQuestionsOverview","toggleQuestionsOverview","index","total","questionsCount","currentQuestionIndex","lockNavigation","displayQuestionByIndex","allowNextButton","isLastQuestion","displayNextQuestion","isQuestionSaved","currentQuestionId","isQuestionChanged","displayPreviousQuestion","savedAnsweredQuestionsCount","displayHandInButtonOnAllQuestions","displayConfirmHandInDialog","allQuestionsAnswered","answeredQuestionsCount","totalQuestionsCount","count","isHomework","dialogButtons","animationDirection","animateSoft","items","initialIndex","Number","currentItemIndex","mappedItems","filteredItems","displayItemByIndex","soft","emitIndexChangeDelayed","displayPreviousItem","displayNextItem","button","createButtonChecksum","iconClass","text","buttons","isOnWindows","orderedButtons","squished","isSquished","tabindex","style","min","max","progressBarFillWidth","progressBarFillStyle","viewportObserver","innerWidth","answered","isQuestionAnswered","validated","isQuestionValidated","isQuestionAnswerCorrect","current","currentIndex","onItemClick","isDragging","dragLeft","dragRight","leftPath","rightPath","LEFT","RIGHT","currentPointX","firstPointX","currentViewportWidth","firstViewportWidth","dragDirection","dragDistance","Math","abs","dragDistanceInPercent","DragDirection","generatePath","absoluteViewportChange","lock","onTouchEnd","tearDownEventHandling","setUpEventHandling","stopDragging","newDragDistance","findX","onTouchStart","x","onTouchMove","ArrowButton","CardHandler","DialogButtons","Popup","ProgressBarWithButton","QuestionsOverview","ThreeDButton","TouchDragNavigation","sessionId","finishedCallback","Function","isSavingForLater","displayNextQuestionTimer","capture","currentQuestion","saveForLater","location","closePopup","popup","extendQuestionData","$set","getQuestionState","questionIndex","newIndex","cardHandler","scrollIntoView","block","behavior","relevantKeys","includes","eventKey","nodeName","typesetMathMl","element","MathJax","Hub","Queue","err","shuffle","array","randomNumber","floor","random","isEmptyArray","sortBy","method","a","b","sort","getProperty","isOnMobileDevice","isOnIosDevice","isOnAndroidDevice","isOnAppleDevice","navigator","platform","isOnIphone","isOnIpad","isOnIpod","userAgent","isOnSamsungDevice","match","size","countDownDisplay","doBloopAnimation","offset","customCountDownStep","countDownText","enableBloopAnimations","startTimeStamp","getStartTimeStamp","endTimeStamp","countDownPosition","countDownStep","countDownInterval","countDownTimeout","countDownFinished","getCurrentTime","startCountDown","nowStamp","setInterval","clearInterval","finishBeforeCountDownStep","remainingMinutes","differenceInMinutes","remainingSeconds","leftPad","remainingDuration","getTime","getTimeDisplay","countdown","inline","install","Vue","prototype","$config","$constants","constants","fontAwesomeLibrary","faAngleDown","faAngleUp","faArrowLeft","faArrowRight","faBackspace","faCheck","faChevronLeft","faChevronRight","faCircle","faCircleSolid","faCompress","faExpand","faExpandArrowsAlt","faHeart","faInboxIn","faList","faLockAlt","faLockOpenAlt","faPaperPlane","faPause","faPauseCircle","faPen","faPlay","faPlayCircle","faPlus","faQuestion","faRedo","faSearch","faSlidersH","faThumbsDown","faThumbsUp","faTimes","faUndo","faVolume","faVolumeSlash","FontAwesomeIcon","productionTip","use","Config","Constants","FontAwesome","VueI18Next","locales","da","nl","no","sv","locale","i18nextOptions","lng","whitelist","values","resources","en","translation","daDK","nlNL","noNO","svSE","fallbackLng","i18next","init","i18n","generateVueOptions","ignoreVueVars","vueVars","console","error","radius","circleCutout","strokeWidth","AdaptiveTestBattle","item","rank","homeworkElementSessionId","baseUrl","getHomeworkDetails","homeworkId","snakeToCamelKeys","direction","FaIcon","initialized","onBodyClick","bind","onEscape","showPopup","edulabGlobalPromise","Promise","resolve","localReference","edulabPageReadyInterval","clone","object","JSON","parse","hasProperty","property","hasOwnProperty","call","isEmptyObject","keys","defaultValue","split","currentKey","shift","isArray","constructor","isObjectOrArray","nested","transformKeys","snakeToCamel","transformer","newObject","entries","formData","FormData","append","alwaysDisplay","formatNumber","number","decimals","round","toLocaleString","formatSpan","removeTags","string","removeTag","RegExp","createSlug","separator","toLowerCase","getIdFromSlug","slug","parseInt","pop","str","padStr","camelToSnake","substr","toUpperCase","arrayToString","addQuotes","disableAnd","stringParser","output","entry","t","ContentType","ACTIVITY","ADAPTIVE_TEST","DIFFERENTIATED_TEST","BOOKS","GAME","GEOMETRY","HOMEWORK","LESSON","PDF_ASSIGNMENT","SELF_TRAINING","STANDARD_EXERCISE","TRIAL_EXAM","UNKNOWN","ChapterSectionType","INTRO","LessonSectionType","HTML","VIDEO","QUESTION","PICTURE","GEOGEBRA","LessonUnderstood","YES","SOMEWHAT","NO","NONE","MetaModelType","STANDARDEXERCISE","ADAPTIVETEST","DIFFERENTIATEDTEST","PDFASSIGNMENT","UserType","ADMIN","LICENSEE","PARENT","STUDENT","TEACHER","QuestionType","INPUT_FIELD","MULTIPLE_CHOICE","UserAnswerModel","STANDARD","ADAPTIVE","DIFFERENTIATED","TESTSTANDARD","TEST5SHARP","TESTTRIALEXAM","TESTCALENDAR","isProduction","process","assert","message","clear","debug","dir","dirxml","group","groupCollapsed","groupEnd","info","log","select","timeEnd","trace","warn","namespace","types","namespacedTypes","typeKey","namespacedType","internalTypeKey","KeyCodes","TAB","SPACE","ENTER","ESCAPE","END","HOME","ARROW_LEFT","ARROW_UP","ARROW_RIGHT","ARROW_DOWN","getCdnImgUrlForCss","path","getCdnImageUrl","remToPx","cssSizeToPx","valueWithUnit","cleanedValue","trim","parsedValue","parseFloat","logger","showKeyboard","onPointerDown","onPointerCancel","hideKeyboard","label","onKeyPress","BACKSPACE","INJECT","KeyboardMethods","currentInputField","isInputFieldSupported","compact","showTitle","peopleInQueue","displayedGridCells","person","getEmoji","getColor","gridCells","defaultGridCells","maxGridCellsAllowed","formattedDisplayValue","initialValue","animationThreshold","duration","ease","animationFrameRequest","animationStartTime","oldDisplayValue","displayValue","startAnimation","stopAnimation","cancelAnimationFrame","animationTick","timestamp","animationPercentage","valueDiff","applyEasing","create","withCredentials","headers","Accept","transformResponse","responseText","responseData","pages","Page","displayBlockingLoginErrorMessage","Error","error_msg","interceptors","response","apiInstance","cdnImgUrl","getDynCdnImageUrl","dynCdnImgUrl","getVideoUrl","extension","cdnVideoUrl","QuestionState","EMPTY","CHANGED","SAVING","SAVED","prepareStateForSession","sessions","set","QuestionStoreTypes","GET_QUESTION","GET_QUESTION_ERROR_MESSAGE","GET_QUESTION_STATE","GET_QUESTIONS","GET_ANSWERED_QUESTIONS_COUNT","GET_ANSWER_STATISTICS","GET_USER_ANSWER","GET_QUESTION_STATE_COUNT","GET_RESULT_ERROR_MESSAGE","GET_RESULT_GRADE","GET_RESULT_LESSON_SCORES","HAS_SESSION_DATA","FETCH_RESULT","INITIALIZE_FIVE_SHARP","INITIALIZE_TRIAL_EXAM","INITIALIZE_SESSION","SELECT_USER_ANSWER","SUBMIT_USER_ANSWER","SET_SESSION","SET_QUESTION","EXTEND_QUESTION","CLEAR_QUESTION_ERROR_MESSAGE","SET_QUESTION_ERROR_MESSAGE","SET_QUESTION_STATE","SET_RESULT_ERROR_MESSAGE","SET_RESULT_GRADE","SET_RESULT_LESSON_SCORES","SET_USER_ANSWER","QuestionStoreNamespacedTypes","questionState","filter","statistics","possible","wrong","unanswered","points","achieved","point","testSettings","Test","lessonScores","grade","lessonScore","lessonName","topic_id","topicName","topic","has5sharp","incorrect","catch","storedAnswer","vueSettings","answerDelay","saveCallback","saveTrainingAnswer","saveHomeworkAnswer","userAnswers","questionMap","questionStates","questionIds","questionErrorMessages","assign","delete","resultErrorMessage","resultGrade","nb","RelativeTimeMapPart","SECONDS","MINUTES","HOURS","DAYS","WEEKS","SECOND","MINUTE","HOUR","DAY","WEEK","msToRelativeTimeMap","milliseconds","formatRelativeTimeMap","relativeTimeMap","compactTime","hideSeconds","returnValue","weeks","days","hours","minutes","seconds","push","getPrettyTime","getHours","getMinutes","getPrettyDate","format","stringToDate","exec","getRelativeTime","formatDistanceStrict","formatDuration","layout","editable","canEdit","emoji","showEmojiPopup","emojiSaved","emojiClicked","glow","showWordsPopup","firstWordData","secondWordData","usernameSaved","editUserName","userNameText","isCompact","usernameInitials","onAppleDevice","gradientId","getGlowPath","baseId","createUniqueId","prefix","toString","svgPath","tips","wordOneData","wordTwoData","editor","populatedAndShuffleWordOptions","saveChanges","randomWordsWithColors","word","color","onClickWord","onDragWord","selectedWordOne","classObject","onDragOverWord","onDropWord","selectedWordTwo","hasErrors","randomWords","allWordOptions","pickWordByClickActivated","indexOfwordToSet","maxWordsToSet","backgroundColors","getWordOptions","clickActivated","getBackgroundColor","dataTransfer","setData","getWordId","dropEffect","pickedWordData","bloopElement","elementToBloop","remove","getPickedWordData","find","wordObject","wordData","wordElement","getAttribute","getEditedWords","ConfirmChoiceButton","LoadingOverlay","PublicUsernameEditor","isSaving","hasError","chosenEmoji","emojis","onEmojiChange","canSaveEmoji","emojiGroup","interpolation","escapeValue","pointCount","emojisByPointsGroup","getEmojis","groupEmojisByPoints","currentPointGroup","pointsUnlockValue","groupedEmojisArray","groupedEmojiArrayIndex","emojiData","PublicUserEmoji","EmojiPicker","userEmoji","PublicEmojiEditorPopup","PublicUsernameEditorPopup","firstWord","secondWord","iconProp","brand","iconName","iconPrefix","className","buttonTitle","onButtonClick","PI","currentTime","audioUrl","onLoad","onError","onPlaying","onPause","onEnd","updateTimeStatus","isPlaying","classNames","internalUriEncodedText","encodeURIComponent","base64EncodedText","btoa","fileName","finalUriEncodedText","audioPlayer","load","play"],"mappings":"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","file":"js/chunk-common.js","sourcesContent":["import { axiosInstance } from './base'\nimport config from '../../config.json'\nimport { objectToFormData } from '@/utils/object'\nimport queryString from 'query-string'\n\n/**\n * @typedef {{id: number, grade: boolean, history: boolean, classLevel: number}} TrialExamPostData\n * @typedef {{questions: Array, testSettings: {Test: {id: number}}}} TestSessionData\n */\n\n/**\n * Fetches an example question for the given lesson ID.\n *\n * @param {number} lessonId\n * @returns {Promise>}\n */\nexport const getExampleQuestion = lessonId => {\n return axiosInstance\n .get(`${config.apiUrl}/lessons/${lessonId}/questions/example`)\n .then(({ data }) => data)\n}\n\n/**\n * Fetches the result data for the given test session ID.\n * @param testId\n * @return {Promise>}\n */\nexport const getTestResult = testId => {\n return axiosInstance\n .get(`${config.studentSiteUrl}/test/xhr_result/${testId}`)\n .then(({ data }) => data)\n}\n\n/**\n * Starts a Five Sharp test session and returns an array of questions as well as meta data for the test.\n *\n * @param {number} lessonId\n * @param {number} classLevel\n * @returns {Promise>}\n */\nexport const startFiveSharp = (lessonId, classLevel) => {\n return axiosInstance\n .post(\n `${config.apiUrl}/tests/startFiveSharpTest`,\n objectToFormData({\n class: classLevel,\n lesson_id: lessonId,\n })\n )\n .then(({ data }) => data)\n}\n\n/**\n * Starts a Trial Exam session and returns an array of questions as well as meta data for the test.\n *\n * @param {TrialExamPostData} postData\n * @returns {Promise>}\n */\nexport const startTrialExam = postData => {\n return axiosInstance\n .post(`${config.apiUrl}/tests/startTrialExam`, objectToFormData(postData))\n .then(({ data }) => data)\n}\n\n/**\n * Saves the given answer for the given question/test combination.\n *\n * @param {number} questionId\n * @param {number|string|null}answer\n * @param {number} lapsedTime\n * @param {number} testId\n * @param {UserAnswerModel} userAnswerModel\n * @returns {Promise}\n */\nexport const saveAnswer = (\n questionId,\n answer,\n lapsedTime,\n testId,\n userAnswerModel\n) => {\n const query = {\n 'data[question_id]': questionId,\n 'data[answer]': answer,\n 'data[lapsedTime]': lapsedTime,\n 'data[test_id]': testId,\n 'data[model]': userAnswerModel,\n }\n\n return axiosInstance\n .post(\n `${config.studentSiteUrl}/test/save_answer`,\n queryString.stringify(query)\n )\n .then(({ data }) => {\n return {\n ...data['question'],\n ...data['saved'],\n }\n })\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionVisualMedia.vue?vue&type=style&index=0&id=b0ec69c2&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.tagName,{tag:\"component\",staticClass:\"three-d-button\",attrs:{\"href\":_vm.href,\"to\":_vm.to,\"type\":_vm.buttonType,\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},[(_vm.icon && _vm.iconPosition === 'left')?_c('FaIcon',{staticClass:\"three-d-button-icon three-d-button-icon-left\",attrs:{\"icon\":_vm.icon}}):_vm._e(),_vm._t(\"default\"),(_vm.icon && _vm.iconPosition === 'right')?_c('FaIcon',{staticClass:\"three-d-button-icon three-d-button-icon-right\",attrs:{\"icon\":_vm.icon}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThreeDButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThreeDButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ThreeDButton.vue?vue&type=template&id=4ccdf6e4&scoped=true&\"\nimport script from \"./ThreeDButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ThreeDButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ThreeDButton.vue?vue&type=style&index=0&id=4ccdf6e4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ccdf6e4\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBarWithButton.vue?vue&type=style&index=0&id=2a96db18&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUsernameEditorPopup.vue?vue&type=style&index=0&id=c3255848&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingOverlay.vue?vue&type=style&index=0&id=1d71a451&lang=scss&scoped=true&\"","import BaseApi from './base'\nimport queryString from 'query-string'\n\nexport default class UserApi extends BaseApi {\n constructor(userId) {\n super()\n this.userId = userId\n }\n\n /**\n * Gets the public user name for the current, logged in user\n * @returns {Promise>}\n */\n getPublicUsername() {\n return this.axios.get(`/users/get_public_username/`).then(({ data }) => {\n return data\n })\n }\n\n /**\n * Sets the public user name for the current, logged in user\n * @param {number|undefined} wordOne\n * @param {number|undefined} wordTwo\n * @param {number=} emojiId\n * @returns {Promise>}\n */\n setPublicUsername(wordOne, wordTwo, emojiId) {\n let query = {}\n\n if (wordOne) {\n query['publicUsername[word_one]'] = wordOne\n }\n\n if (wordTwo) {\n query['publicUsername[word_two]'] = wordTwo\n }\n\n if (emojiId) {\n query['publicUsername[emoji]'] = emojiId\n }\n\n return this.axios\n .post(`/users/set_public_username/`, queryString.stringify(query))\n .then(({ data }) => {\n return data\n })\n }\n\n /**\n * Gets all the avilable options for current user to pick from\n * @returns {Promise>}\n */\n getRandomUsernameWords() {\n return this.axios\n .get(`/users/get_public_username_options/`)\n .then(({ data }) => {\n return data['words']\n })\n }\n\n /**\n * Gets all the avilable options for current user to pick from\n * @returns {Promise>}\n */\n getUsernameEmojis() {\n return this.axios\n .get(`/users/get_public_username_options/`)\n .then(({ data }) => {\n return data['emojis']\n })\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"question\",class:{ 'is-active': _vm.isActive, 'has-media': _vm.hasMedia },attrs:{\"tabindex\":_vm.isInteractive ? '-1' : null}},[_c('div',{staticClass:\"question-section\",attrs:{\"id\":_vm.questionTextId}},[(!_vm.example && !_vm.hideHeader)?_c('div',{staticClass:\"question-header\"},[(_vm.title)?_c('h2',{staticClass:\"question-title\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]):_vm._e()]):_vm._e(),_vm._t(\"default\"),_c('div',{staticClass:\"question-content\"},[(_vm.hasMedia)?_c('QuestionVisualMedia',{attrs:{\"media-data\":_vm.media,\"question\":_vm.question.question},on:{\"load\":function($event){return _vm.$emit('questionHeightChanged')}}}):_vm._e(),_c('div',{staticClass:\"question-text-wrapper\",class:{\n 'down-size': _vm.shouldDownSize(),\n 'align-to-top': _vm.alignTextToTop,\n }},[_c('div',{staticClass:\"question-text-content\",domProps:{\"innerHTML\":_vm._s(_vm.question.question)}}),_c('TextToSpeech',{attrs:{\"text\":_vm.question.question}})],1)],1),_c('QuestionAnswerLoader',{ref:\"answerLoader\",attrs:{\"data\":_vm.data,\"lock-answer\":!_vm.isInteractive || (_vm.enableAnswerLock && _vm.hasAnswer),\"is-active\":_vm.isInteractive && _vm.isActive,\"is-loading\":_vm.savingAnswer,\"labelled-by\":_vm.questionTextId,\"disable-keyboard\":_vm.disableKeyboard},on:{\"answer\":_vm.onAnswer}}),(_vm.errorMessage)?_c('ErrorMessage',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('question.answer-not-saved-error'))+\" \")]},proxy:true}],null,false,1578052519)},[_c('p',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e(),(_vm.displaySaveTime && _vm.answerDate)?_c('LastSavepointIndicator',{attrs:{\"last-save-date\":_vm.answerDate,\"loading\":_vm.savingAnswer}}):_vm._e(),_c('QuestionIdentifier',{attrs:{\"data\":_vm.data}})],2),_c('AnswerFeedback',{ref:\"answerFeedback\",attrs:{\"show\":_vm.showFeedbackOverlay,\"correct\":_vm.answeredCorrectly,\"explanation\":_vm.data.Question.explanation,\"allow-focus\":_vm.isInteractive && _vm.isActive}},[_vm._t(\"below\")],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"answer-feedback\",class:{ 'has-answer-feedback-block': _vm.displayBlock },attrs:{\"tabindex\":\"-1\"}},[_c('transition',{attrs:{\"name\":\"stamp\"}},[(_vm.displayOverlay)?_c('div',{staticClass:\"answer-feedback-overlay\",class:_vm.correct ? 'correct' : 'wrong',attrs:{\"role\":\"alert\"}},[_c('FaIcon',{attrs:{\"icon\":_vm.correct ? 'check' : 'times'}})],1):_vm._e()]),_c('transition',{attrs:{\"name\":\"drop\"}},[(_vm.displayBlock)?_c('div',{staticClass:\"answer-feedback-block\",class:_vm.correct ? 'correct' : 'wrong',attrs:{\"role\":\"alert\"}},[_c('h3',[_c('FaIcon',{attrs:{\"icon\":\"times\"}}),_vm._v(\" \"+_vm._s(_vm.$t('answer-feedback.wrong-answer-heading'))+\" \")],1),(_vm.explanation)?[_c('div',{staticClass:\"answer-feedback-content\",domProps:{\"innerHTML\":_vm._s(_vm.explanation)}}),_c('TextToSpeech',{attrs:{\"text\":_vm.explanation}})]:_vm._e(),_vm._t(\"default\")],2):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnswerFeedback.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnswerFeedback.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AnswerFeedback.vue?vue&type=template&id=5f8980bc&scoped=true&\"\nimport script from \"./AnswerFeedback.vue?vue&type=script&lang=js&\"\nexport * from \"./AnswerFeedback.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AnswerFeedback.vue?vue&type=style&index=0&id=5f8980bc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f8980bc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{directives:[{name:\"show\",rawName:\"v-show\",value:(!!_vm.lastSaveDate),expression:\"!!lastSaveDate\"}]},[_c('loading-overlay',{attrs:{\"hidden\":!_vm.loading}}),_c('p',[_vm._v(_vm._s(_vm.lastSaveDateString))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LastSavepointIndicator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LastSavepointIndicator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LastSavepointIndicator.vue?vue&type=template&id=019c27d9&scoped=true&\"\nimport script from \"./LastSavepointIndicator.vue?vue&type=script&lang=js&\"\nexport * from \"./LastSavepointIndicator.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"019c27d9\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"question-answer\"},[(_vm.isLoading)?_c('LoadingOverlay'):_vm._e(),(_vm.componentToLoad)?_c(_vm.componentToLoad,{ref:\"answerComponent\",tag:\"component\",attrs:{\"data\":_vm.data,\"lock-answer\":_vm.lockAnswer,\"is-active\":_vm.isActive,\"labelled-by\":_vm.labelledBy,\"disable-keyboard\":_vm.disableKeyboard},on:{\"answer\":_vm.onAnswer}}):_c('div',{staticClass:\"answer-type-error\"},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$t('question-answer.error-heading'))+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(_vm.$t('question-answer.unknown-type-error'))+\" \")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"input-field-answer\"},[_c('p',{staticClass:\"user-answer\",class:_vm.correctnessClassname},[_c('NumberInputField',{ref:\"numberInputField\",staticClass:\"input-field-answer-input-field\",attrs:{\"disabled\":_vm.lockAnswer},model:{value:(_vm.userAnswer),callback:function ($$v) {_vm.userAnswer=$$v},expression:\"userAnswer\"}}),(_vm.unitText)?_c('span',{staticClass:\"input-field-answer-unit\",domProps:{\"innerHTML\":_vm._s(_vm.unitText)}}):_vm._e(),_c('TextToSpeech',{attrs:{\"text\":_vm.userAnswerTtsText}}),(_vm.canEvaluate)?_c('FaIcon',{staticClass:\"evaluation-icon\",attrs:{\"icon\":_vm.correctAnswer ? 'check' : 'times'}}):_vm._e()],1),(_vm.canEvaluate && !_vm.correctAnswer)?_c('p',{staticClass:\"question-answer correct\"},[_c('input',{staticClass:\"input-field-answer-input-field\",attrs:{\"type\":\"text\",\"inputmode\":\"decimal\",\"disabled\":\"\"},domProps:{\"value\":_vm.answer.answer}}),(_vm.unitText)?_c('span',{staticClass:\"input-field-answer-unit\",domProps:{\"innerHTML\":_vm._s(_vm.unitText)}}):_vm._e(),_c('TextToSpeech',{attrs:{\"text\":_vm.questionAnswerTtsText}}),_c('FaIcon',{staticClass:\"evaluation-icon\",attrs:{\"icon\":\"check\"}})],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @enum {string}\n */\nconst State = {\n STOPPED: 'stopped',\n RUNNING: 'running',\n PAUSED: 'paused',\n}\n\n/**\n * A component used to measure elapsed time.\n *\n * Note: The lapsedTime getter doesn't handle multiple calls very well (it just keeps returning the last value until this.state is changed)\n * Use getLapsedTime() to get an accurate value every time.\n *\n * @param {number=} initialLapsedTime Optional initial lapsed time.\n * @constructor\n *\n * @author Nicoleta Tuns \n * Transformed from Google Closure to native ES6 by Thomas Grinderslev \n */\nexport default class StopWatch {\n /**\n * @global initialTimestamp\n * @type {number}\n * @private\n */\n initialTimestamp\n\n /**\n * @global state\n * @type {State}\n * @private\n */\n state\n\n /**\n * @global firstRun\n * @type {boolean}\n * @private\n */\n firstRun\n\n /**\n * @global lapsedTime\n * @type {number}\n * @private\n */\n lapsedTime_\n\n constructor(initialLapsedTime) {\n this.initialTimestamp = 0\n this.state = State.STOPPED\n this.firstRun = true\n this.lapsedTime_ = initialLapsedTime || 0\n }\n\n /**\n * Counts the time passed from the moment the function is called.\n * @public\n */\n start() {\n if (!this.firstRun && this.state === State.STOPPED) {\n this.lapsedTime_ = 0\n }\n\n if (this.state !== State.RUNNING) {\n this.initialTimestamp = Date.now()\n this.state = State.RUNNING\n }\n\n this.firstRun = false\n }\n\n /**\n * Pauses the stopwatch and adds elapsed time to the total amount of time counted\n * @public\n */\n pause() {\n if (this.initialTimestamp === 0) {\n return\n }\n\n this.state = State.PAUSED\n\n this.lapsedTime_ += this.calculateLapsedTime()\n }\n\n /**\n * Toggles between the pause and running state\n * @returns {boolean} true if the stop watch is now running\n * @public\n */\n togglePause() {\n if (this.state === State.RUNNING) {\n this.pause()\n return false\n } else {\n this.start()\n return true\n }\n }\n\n /**\n * Stops the stopwatch and resets the initial timestamp to be used for a new counting session.\n * @public\n */\n stop() {\n this.lapsedTime_ = this.getLapsedTime()\n\n this.initialTimestamp = 0\n\n this.state = State.STOPPED\n }\n\n /**\n * Gets the elapsed time since the stopwatch was started.\n * @returns {number}\n * @public\n */\n getLapsedTime() {\n if (this.state === State.RUNNING) {\n return this.lapsedTime_ + this.calculateLapsedTime()\n }\n\n return this.lapsedTime_\n }\n\n /**\n * Gets the elapsed time since the stopwatch was started.\n * @deprecated\n * @returns {number}\n * @public\n */\n get lapsedTime() {\n return this.getLapsedTime()\n }\n\n /**\n * Return true if the stop watch is running\n * @returns {boolean}\n * @public\n */\n get isRunning() {\n return this.state === State.RUNNING\n }\n\n /**\n * Return true if the stop watch is paused\n * @returns {boolean}\n * @public\n */\n get isPaused() {\n return this.state === State.PAUSED\n }\n\n /**\n * Return true if the stop watch is running\n * @returns {boolean}\n * @public\n */\n get isStopped() {\n return this.state === State.STOPPED\n }\n\n /**\n * Calculates the time measured since last start.\n * @returns {number}\n * @private\n */\n calculateLapsedTime() {\n return Date.now() - this.initialTimestamp\n }\n}\n","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseAnswer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseAnswer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BaseAnswer.vue?vue&type=template&id=33ff2034&\"\nimport script from \"./BaseAnswer.vue?vue&type=script&lang=js&\"\nexport * from \"./BaseAnswer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.internalValue),expression:\"internalValue\"}],ref:\"input\",staticClass:\"number-input-field\",attrs:{\"type\":\"text\",\"inputmode\":_vm.displayCustomKeyboard ? 'none' : 'decimal',\"pattern\":_vm.patternRegex,\"disabled\":_vm.disabled},domProps:{\"value\":(_vm.internalValue)},on:{\"focus\":_vm.onFocus,\"blur\":_vm.onBlur,\"input\":function($event){if($event.target.composing){ return; }_vm.internalValue=$event.target.value}}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NumberInputField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NumberInputField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NumberInputField.vue?vue&type=template&id=e41abaf8&scoped=true&\"\nimport script from \"./NumberInputField.vue?vue&type=script&lang=js&\"\nexport * from \"./NumberInputField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NumberInputField.vue?vue&type=style&index=0&id=e41abaf8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e41abaf8\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputField.vue?vue&type=template&id=68b997eb&scoped=true&\"\nimport script from \"./InputField.vue?vue&type=script&lang=js&\"\nexport * from \"./InputField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputField.vue?vue&type=style&index=0&id=68b997eb&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68b997eb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"multiple-choice-answers\",class:{ locked: _vm.lockAnswer }},[_c('ul',{staticClass:\"multiple-choice-answer-list\",class:{\n 'long-answers': _vm.longAnswers,\n 'is-validated': _vm.isValidated,\n 'show-focus': _vm.enableShowFocus,\n },attrs:{\"role\":\"radiogroup\",\"aria-labelledby\":_vm.labelledBy}},_vm._l((_vm.answers),function(answer){return _c('li',{key:(_vm.questionId + \"-\" + (answer.id)),staticClass:\"multiple-choice-answer\",class:_vm.validationClassName(answer)},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.userAnswer),expression:\"userAnswer\"}],ref:'multipleChoiceRadioInput' + answer.id,refInFor:true,staticClass:\"multiple-choice-radio-input\",attrs:{\"type\":\"radio\",\"id\":(\"multiple-choice-answer-\" + _vm.questionId + \"-\" + (answer.id)),\"name\":_vm.inputName,\"disabled\":_vm.lockAnswer},domProps:{\"value\":answer.id,\"checked\":_vm._q(_vm.userAnswer,answer.id)},on:{\"change\":function($event){_vm.userAnswer=answer.id}}}),_c('label',{staticClass:\"multiple-choice-answer-label\",attrs:{\"for\":(\"multiple-choice-answer-\" + _vm.questionId + \"-\" + (answer.id))},domProps:{\"innerHTML\":_vm._s(answer.answer)},on:{\"click\":function($event){return _vm.clicked($event, answer.id)}}}),_c('FaIcon',{staticClass:\"circle-icon circle-icon-hover\",attrs:{\"icon\":\"circle\",\"type\":\"solid\",\"hidden\":_vm.displayValidationIcon(answer)}}),_c('FaIcon',{staticClass:\"circle-icon\",attrs:{\"icon\":\"circle\",\"type\":\"regular\",\"hidden\":_vm.displayValidationIcon(answer)}}),(_vm.displayValidationIcon(answer))?_c('FaIcon',{staticClass:\"validation-icon\",class:answer.correct ? 'validation-icon-correct' : '',attrs:{\"icon\":answer.correct ? 'check' : 'times'}}):_vm._e(),_c('TextToSpeech',{attrs:{\"text\":answer.answer}})],1)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleChoice.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleChoice.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MultipleChoice.vue?vue&type=template&id=d74068ce&scoped=true&\"\nimport script from \"./MultipleChoice.vue?vue&type=script&lang=js&\"\nexport * from \"./MultipleChoice.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MultipleChoice.vue?vue&type=style&index=0&id=d74068ce&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d74068ce\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionAnswerLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionAnswerLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./QuestionAnswerLoader.vue?vue&type=template&id=2dd13f22&scoped=true&\"\nimport script from \"./QuestionAnswerLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./QuestionAnswerLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./QuestionAnswerLoader.vue?vue&type=style&index=0&id=2dd13f22&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2dd13f22\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"question-identifier\",attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\" \"+_vm._s(_vm.questionIdentifier)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionIdentifier.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionIdentifier.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./QuestionIdentifier.vue?vue&type=template&id=13fdf506&scoped=true&\"\nimport script from \"./QuestionIdentifier.vue?vue&type=script&lang=js&\"\nexport * from \"./QuestionIdentifier.vue?vue&type=script&lang=js&\"\nimport style0 from \"./QuestionIdentifier.vue?vue&type=style&index=0&id=13fdf506&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13fdf506\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"media-wrapper\",on:{\"click\":function($event){return _vm.togglePopup(_vm.popupVisible, $event)}}},[_c('div',{staticClass:\"zoom-overlay\"},[_c('FaIcon',{staticClass:\"expand-image-icon\",attrs:{\"icon\":\"expand\"}})],1),_c('Popup',{ref:\"mediaPopup\",on:{\"open\":function($event){_vm.popupVisible = true},\"close\":function($event){_vm.popupVisible = false}}},[_c('Media',{attrs:{\"data\":_vm.mediaData},on:{\"load\":function($event){return _vm.$emit('load')}}})],1),_c('Media',{staticClass:\"thumbnail-media\",attrs:{\"data\":_vm.mediaData}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.mediaExists)?_c('figure',{staticClass:\"media\"},[(_vm.isImage)?_c('img',{staticClass:\"media-image\",attrs:{\"src\":_vm.imageUrl,\"alt\":_vm.$t('media.image-alternative-text')},on:{\"load\":function($event){return _vm.$emit('load')}}}):_c('p',{staticClass:\"media-error\"},[_vm._v(_vm._s(_vm.$t('media.unkown-type-error')))])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Media.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Media.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Media.vue?vue&type=template&id=3300a43a&scoped=true&\"\nimport script from \"./Media.vue?vue&type=script&lang=js&\"\nexport * from \"./Media.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Media.vue?vue&type=style&index=0&id=3300a43a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3300a43a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionVisualMedia.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionVisualMedia.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./QuestionVisualMedia.vue?vue&type=template&id=b0ec69c2&scoped=true&\"\nimport script from \"./QuestionVisualMedia.vue?vue&type=script&lang=js&\"\nexport * from \"./QuestionVisualMedia.vue?vue&type=script&lang=js&\"\nimport style0 from \"./QuestionVisualMedia.vue?vue&type=style&index=0&id=b0ec69c2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b0ec69c2\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Question.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Question.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Question.vue?vue&type=template&id=5ea1bfee&scoped=true&\"\nimport script from \"./Question.vue?vue&type=script&lang=js&\"\nexport * from \"./Question.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Question.vue?vue&type=style&index=0&id=5ea1bfee&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ea1bfee\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorMessage.vue?vue&type=style&index=0&id=6f9de570&lang=scss&scoped=true&\"","import { addNamespace } from './utils'\n\n/**\n * @file\n * @author Thomas Grinderslev \n */\n\n/**\n * @typedef {{focusedInputField: Vue}} KeyboardStoreState\n */\n\n/**\n * The types used in this store\n * @enum {string}\n */\nexport const KeyboardStoreTypes = {\n getters: {\n GET_FOCUSED_INPUT_FIELD: 'getFocusedInputField',\n IS_KEYPRESS_IN_PROGRESS: 'isKeypressInProgress',\n IS_KEYBOARD_VISIBLE: 'isKeyboardVisible',\n },\n actions: {\n CLEAR_FOCUS: 'clearFocus',\n SET_FOCUS: 'setFocus',\n SET_KEYPRESS_IN_PROGRESS: 'setKeypressInProgress',\n },\n mutations: {\n CLEAR_FOCUS: 'clearFocus',\n SET_FOCUS: 'setFocus',\n SET_KEYPRESS_IN_PROGRESS: 'setKeypressInProgress',\n },\n}\n\n/**\n * A namespaced version of the types used in this store\n * @enum {string}\n */\nexport const KeyboardStoreNamespacedTypes = addNamespace(\n 'keyboard',\n KeyboardStoreTypes\n)\n\nexport function state() {\n return { focusedInputField: null, keypressInProgress: false }\n}\n\nexport const getters = {\n /**\n * @param {KeyboardStoreState} state\n * @return {function(*): boolean}\n */\n [KeyboardStoreTypes.getters.GET_FOCUSED_INPUT_FIELD]: state => () => {\n return state.focusedInputField\n },\n\n /**\n * @param {KeyboardStoreState} state\n * @return {function(*): boolean}\n */\n [KeyboardStoreTypes.getters.IS_KEYPRESS_IN_PROGRESS]: state => () => {\n return state.keypressInProgress\n },\n\n /**\n * @param {KeyboardStoreState} state\n * @return {function(*): boolean}\n */\n [KeyboardStoreTypes.getters.IS_KEYBOARD_VISIBLE]: state => () => {\n return !!state.focusedInputField\n },\n}\n\nexport const actions = {\n /**\n * @param {VuexCommit} commit\n * @param {KeyboardStoreState} state\n * @param {Vue} inputField\n */\n [KeyboardStoreTypes.actions.CLEAR_FOCUS]({ commit, state }, inputField) {\n if (!inputField || state.focusedInputField === inputField) {\n commit(KeyboardStoreTypes.mutations.CLEAR_FOCUS)\n }\n },\n\n /**\n * @param {VuexCommit} commit\n * @param {Vue} inputField\n */\n [KeyboardStoreTypes.actions.SET_FOCUS]({ commit }, inputField) {\n commit(KeyboardStoreTypes.mutations.SET_FOCUS, inputField)\n },\n\n /**\n * @param {VuexCommit} commit\n * @param {boolean} keypressInProgress\n */\n [KeyboardStoreTypes.actions.SET_KEYPRESS_IN_PROGRESS](\n { commit },\n keypressInProgress\n ) {\n commit(\n KeyboardStoreTypes.mutations.SET_KEYPRESS_IN_PROGRESS,\n keypressInProgress\n )\n },\n}\n\nexport const mutations = {\n /**\n * @param {KeyboardStoreState} state\n */\n [KeyboardStoreTypes.mutations.CLEAR_FOCUS](state) {\n state.focusedInputField = null\n },\n\n /**\n * @param {KeyboardStoreState} state\n * @param {Vue} inputField\n */\n [KeyboardStoreTypes.mutations.SET_FOCUS](state, inputField) {\n state.focusedInputField = inputField\n },\n\n /**\n * @param {KeyboardStoreState} state\n * @param {boolean} keypressInProgress\n */\n [KeyboardStoreTypes.mutations.SET_KEYPRESS_IN_PROGRESS](\n state,\n keypressInProgress\n ) {\n state.keypressInProgress = keypressInProgress\n },\n}\n\nexport default {\n namespaced: true,\n Types: KeyboardStoreTypes,\n NamespacedTypes: KeyboardStoreNamespacedTypes,\n state,\n getters,\n actions,\n mutations,\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionListManager.vue?vue&type=style&index=0&id=fc9d250c&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.questions.length === 0)?_c('ErrorMessage',[_c('p',[_vm._v(_vm._s(_vm.$t('question-list-manager.missing-questions')))])]):_c('article',{staticClass:\"question-list-manager\",class:_vm.theme},[_c('CardHandler',{ref:\"cardHandler\",attrs:{\"items\":_vm.questions,\"initial-index\":_vm.initialQuestionIndex},on:{\"indexWillChange\":_vm.onQuestionIndexWillChange,\"indexChanged\":_vm.onQuestionIndexChange},scopedSlots:_vm._u([{key:\"default\",fn:function(question){return [_c('Question',{key:question.data.Question.id,ref:\"question\",attrs:{\"data\":question.data,\"saving-answer\":_vm.isQuestionSaving(question.data.Question.id),\"display-save-time\":_vm.displaySaveTime,\"enable-answer-lock\":_vm.instantFeedback,\"error-message\":_vm.getQuestionErrorMessage(question.data.Question.id)},on:{\"answer\":function($event){\nvar i = arguments.length, argsArray = Array(i);\nwhile ( i-- ) argsArray[i] = arguments[i];\nreturn _vm.onAnswer.apply(void 0, [ question.data.Question.id ].concat( argsArray ))}},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('p',[_c('span',{staticClass:\"question-index-indicator\",class:{\n 'display-questions-overview': _vm.displayQuestionsOverview,\n },attrs:{\"role\":\"button\"},on:{\"click\":_vm.toggleQuestionsOverview}},[_vm._v(\" \"+_vm._s(_vm.$t('question-list-manager.question-index', { index: question.index + 1, total: _vm.questionsCount, }))+\" \")])]),_c('transition',{attrs:{\"name\":\"questions-overview-transition\"}},[(_vm.displayQuestionsOverview)?_c('QuestionsOverview',{attrs:{\"current-index\":_vm.currentQuestionIndex,\"lock-navigation\":_vm.lockNavigation,\"questions\":_vm.questions},on:{\"navigate-to-index\":_vm.displayQuestionByIndex}}):_vm._e()],1)]},proxy:true},{key:\"below\",fn:function(){return [_c('div',{staticClass:\"next-question-button-container\"},[(_vm.allowNextButton && !_vm.isLastQuestion(question.index))?_c('ThreeDButton',{staticClass:\"next-question-button\",attrs:{\"icon\":\"chevron-right\",\"icon-position\":\"right\"},on:{\"click\":_vm.displayNextQuestion}},[_vm._v(\" \"+_vm._s(_vm.$t('question-list-manager.next-button'))+\" \")]):_vm._e()],1)]},proxy:true}],null,true)}),(!_vm.isQuestionSaved(_vm.currentQuestionId))?_c('ThreeDButton',{staticClass:\"answer-button\",attrs:{\"icon\":\"paper-plane\",\"tabindex\":_vm.isQuestionChanged(_vm.currentQuestionId) ? 0 : -1,\"disabled\":!_vm.isQuestionChanged(_vm.currentQuestionId)},on:{\"click\":_vm.saveAnswer}},[_vm._v(\" \"+_vm._s(_vm.$t('question-list-manager.answer-button'))+\" \")]):_vm._e()]}}])}),_c('menu',{staticClass:\"question-list-manager-menu\"},[_c('span',{staticClass:\"question-arrow-button question-arrow-button-left\"},[_c('ArrowButton',{attrs:{\"direction\":\"left\",\"disabled\":_vm.lockNavigation,\"title\":_vm.$t('question-list-manager.previous-button')},on:{\"click\":_vm.displayPreviousQuestion}})],1),_c('span',{staticClass:\"question-arrow-button question-arrow-button-right\"},[_c('ArrowButton',{attrs:{\"direction\":\"right\",\"disabled\":_vm.lockNavigation,\"title\":_vm.$t('question-list-manager.next-button')},on:{\"click\":_vm.displayNextQuestion}})],1)]),_c('ProgressBarWithButton',{attrs:{\"value\":_vm.savedAnsweredQuestionsCount,\"max\":_vm.questionsCount,\"tabindex\":_vm.displayHandInButtonOnAllQuestions ? 0 : -1,\"disabled\":_vm.isQuestionChanged(_vm.currentQuestionId),\"icon\":\"inbox-in\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.displayConfirmHandInDialog($event)}}},[_vm._v(\" \"+_vm._s(_vm.allQuestionsAnswered ? _vm.$t('question-list-manager.hand-in-button') : _vm.$t('question-list-manager.finish-button'))+\" \")]),_c('TouchDragNavigation',{attrs:{\"lock-navigation\":_vm.lockNavigation},on:{\"drag-left\":_vm.displayNextQuestion,\"drag-right\":_vm.displayPreviousQuestion}}),_c('Popup',{ref:\"popup\"},[_c('div',{staticClass:\"dialog-content-wrapper\"},[_c('p',{staticClass:\"defaultDialogContent\"},[_vm._v(\" \"+_vm._s(_vm.allQuestionsAnswered ? _vm.$t( 'question-list-manager.all-questions-answered-status-message' ) : _vm.$t('question-list-manager.answered-questions-status-message', { answeredQuestionsCount: _vm.savedAnsweredQuestionsCount, totalQuestionsCount: _vm.$t('question.question-count', { count: _vm.questionsCount, }), }))+\" \")]),_c('p',{staticClass:\"defaultDialogContent\"},[_vm._v(\" \"+_vm._s(_vm.isHomework ? _vm.$t('question-list-manager.hand-in-homework-confirm-question') : _vm.$t('question-list-manager.hand-in-confirm-question'))+\" \")])]),_c('DialogButtons',{attrs:{\"buttons\":_vm.dialogButtons}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"card-handler\",class:(\"animation-direction-\" + _vm.animationDirection + \"\\n \" + (_vm.animateSoft ? 'animate-soft' : ''))},[_c('transition',{attrs:{\"name\":\"move\"}},_vm._l((_vm.filteredItems),function(ref){\n var data = ref.data;\n var index = ref.index;\nreturn _c('li',{key:index,staticClass:\"card-handler-child\",attrs:{\"data-index\":index}},[_vm._t(\"default\",null,{\"data\":data,\"index\":index})],2)}),0)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardHandler.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardHandler.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CardHandler.vue?vue&type=template&id=312cec40&scoped=true&\"\nimport script from \"./CardHandler.vue?vue&type=script&lang=js&\"\nexport * from \"./CardHandler.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CardHandler.vue?vue&type=style&index=0&id=312cec40&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"312cec40\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"dialogButtons\"},_vm._l((_vm.orderedButtons),function(button){return _c('button',{key:_vm.createButtonChecksum(button),staticClass:\"big\",class:button.class,on:{\"click\":button.callback}},[(button.loading)?_c('LoadingAnimation'):(button.icon)?_c('FaIcon',{class:button.iconClass,attrs:{\"icon\":button.icon}}):_vm._e(),_vm._v(\" \"+_vm._s(button.text)+\" \")],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DialogButtons.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DialogButtons.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DialogButtons.vue?vue&type=template&id=0c5da833&scoped=true&\"\nimport script from \"./DialogButtons.vue?vue&type=script&lang=js&\"\nexport * from \"./DialogButtons.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DialogButtons.vue?vue&type=style&index=0&id=0c5da833&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c5da833\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"progress-bar-with-button\",class:{ squished: _vm.isSquished }},[(_vm.isSquished)?_c('ThreeDButton',{staticClass:\"progress-bar-button\",attrs:{\"tabindex\":_vm.tabindex,\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},[_c('span',{staticClass:\"progress-bar-fill\",style:(_vm.progressBarFillStyle),attrs:{\"role\":\"progressbar\",\"aria-valuenow\":_vm.value,\"aria-valuemin\":_vm.min,\"aria-valuemax\":_vm.max}},[(_vm.icon)?_c('FaIcon',{staticClass:\"progress-bar-icon\",attrs:{\"icon\":_vm.icon}}):_vm._e(),_vm._t(\"default\")],2),(_vm.icon)?_c('FaIcon',{staticClass:\"progress-bar-icon\",attrs:{\"icon\":_vm.icon}}):_vm._e(),_vm._t(\"default\")],2):[_c('span',{staticClass:\"progress-bar\",attrs:{\"role\":\"progressbar\",\"aria-valuenow\":_vm.value,\"aria-valuemin\":_vm.min,\"aria-valuemax\":_vm.max}},[_c('span',{staticClass:\"progress-bar-fill\",style:(_vm.progressBarFillStyle)})]),_c('ThreeDButton',{staticClass:\"progress-bar-button\",attrs:{\"icon\":_vm.icon,\"tabindex\":_vm.tabindex,\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},[_vm._t(\"default\")],2)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBarWithButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBarWithButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProgressBarWithButton.vue?vue&type=template&id=2a96db18&scoped=true&\"\nimport script from \"./ProgressBarWithButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ProgressBarWithButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProgressBarWithButton.vue?vue&type=style&index=0&id=2a96db18&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a96db18\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('aside',{staticClass:\"questions-overview\"},[_c('ul',{staticClass:\"questions-overview-list\"},_vm._l((_vm.questions),function(question,index){return _c('li',{key:question.Question.id,staticClass:\"questions-overview-list-item\",class:{\n answered: _vm.isQuestionAnswered(question),\n validated: _vm.isQuestionValidated(question),\n correct: _vm.isQuestionAnswerCorrect(question),\n current: index === _vm.currentIndex,\n },attrs:{\"role\":_vm.lockNavigation ? '' : 'button'},on:{\"click\":function($event){return _vm.onItemClick(index)}}},[_vm._v(\" \"+_vm._s(index + 1)+\" \")])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionsOverview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionsOverview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./QuestionsOverview.vue?vue&type=template&id=51cab37c&scoped=true&\"\nimport script from \"./QuestionsOverview.vue?vue&type=script&lang=js&\"\nexport * from \"./QuestionsOverview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./QuestionsOverview.vue?vue&type=style&index=0&id=51cab37c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"51cab37c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"touch-drag-navigation\",class:{ 'is-dragging': _vm.isDragging }},[_c('svg',{staticClass:\"touch-drag-navigation-svg\",style:({\n '--drag-left': (_vm.dragLeft + \"px\"),\n '--drag-right': (_vm.dragRight + \"px\"),\n }),attrs:{\"viewBox\":\"0 0 100 100\",\"preserveAspectRatio\":\"none\"}},[_c('path',{staticClass:\"left\",attrs:{\"d\":_vm.leftPath}}),_c('path',{staticClass:\"right\",attrs:{\"d\":_vm.rightPath}})]),_c('div',{staticClass:\"arrow-icons\",style:({\n '--drag-left': ((_vm.dragLeft * 0.55) + \"vw\"),\n '--drag-right': ((_vm.dragRight * 0.55) + \"vw\"),\n })},[_c('FaIcon',{staticClass:\"arrow-icon arrow-icon-left\",attrs:{\"icon\":\"chevron-left\"}}),_c('FaIcon',{staticClass:\"arrow-icon arrow-icon-right\",attrs:{\"icon\":\"chevron-right\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TouchDragNavigation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TouchDragNavigation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TouchDragNavigation.vue?vue&type=template&id=2213c61a&scoped=true&\"\nimport script from \"./TouchDragNavigation.vue?vue&type=script&lang=js&\"\nexport * from \"./TouchDragNavigation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TouchDragNavigation.vue?vue&type=style&index=0&id=2213c61a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2213c61a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionListManager.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionListManager.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./QuestionListManager.vue?vue&type=template&id=fc9d250c&scoped=true&\"\nimport script from \"./QuestionListManager.vue?vue&type=script&lang=js&\"\nexport * from \"./QuestionListManager.vue?vue&type=script&lang=js&\"\nimport style0 from \"./QuestionListManager.vue?vue&type=style&index=0&id=fc9d250c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fc9d250c\",\n null\n \n)\n\nexport default component.exports","export const typesetMathMl = element => {\n try {\n MathJax.Hub.Queue(['Typeset', MathJax.Hub, element])\n } catch (err) {\n // Retry in a little while in the hope that MathJax has loaded in the meantime\n setTimeout(() => typesetMathMl(element), 100)\n }\n}\n","import { getProperty } from '@/utils/object'\n\n/**\n * @tutorial\n * @see https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n * @param array\n * @returns {*}\n */\nexport function shuffle(array) {\n for (let index = array.length - 1; index > 0; index--) {\n const randomNumber = Math.floor(Math.random() * (index + 1))\n\n ;[array[index], array[randomNumber]] = [array[randomNumber], array[index]]\n }\n\n return array\n}\n\n/**\n * Returns true if the given array is empty or doesn't exist.\n *\n * @param {Array|undefined} array\n * @return {boolean}\n */\nexport function isEmptyArray(array) {\n return !array || array.length === 0\n}\n\n/**\n * Returns a clone of the given array sorted by the given key and optional method.\n * If no method is given, numeric sorting is applied.\n *\n * @param {Array} array\n * @param {string} key\n * @param {function(*,*):Number} method\n * @return {Array}\n */\nexport function sortBy(array, key, method = (a, b) => a - b) {\n return array.sort((a, b) => method(getProperty(a, key), getProperty(b, key)))\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmChoiceButton.vue?vue&type=style&index=0&id=1329d311&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CountDown.vue?vue&type=style&index=0&id=073efcd1&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUserEmoji.vue?vue&type=style&index=0&id=1af6b14a&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BattleHeader.vue?vue&type=style&index=0&id=5bd2d136&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicEmojiEditorPopup.vue?vue&type=style&index=0&id=bc2cd774&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TouchDragNavigation.vue?vue&type=style&index=0&id=2213c61a&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThreeDButton.vue?vue&type=style&index=0&id=4ccdf6e4&lang=scss&scoped=true&\"","/**\n * Returns true if the user is using a mobile device (phone or tablet).\n * @return {boolean}\n */\nexport function isOnMobileDevice() {\n return isOnIosDevice() || isOnAndroidDevice()\n}\n\n/**\n * Returns true if the user is using an Apple device.\n * @return {boolean}\n */\nexport function isOnAppleDevice() {\n return navigator.platform === 'MacIntel' || isOnIosDevice()\n}\n\n/**\n * Returns true if the user is using an iOS device.\n * @return {boolean}\n */\nexport function isOnIosDevice() {\n return isOnIphone() || isOnIpad() || isOnIpod()\n}\n\n/**\n * Returns true if the user is using an Android device.\n * @return {boolean}\n */\nexport function isOnAndroidDevice() {\n return navigator.userAgent.includes('Android')\n}\n\n/**\n * Returns true if the user is using a Samsung device.\n * @return {boolean}\n */\nexport function isOnSamsungDevice() {\n return !!navigator.userAgent.match(/\\sSM-\\w+\\)?\\s/)\n}\n\n/**\n * Returns true if the user is using an iPhone.\n * @return {boolean}\n */\nexport function isOnIphone() {\n return ['iPhone Simulator', 'iPhone'].includes(navigator.platform)\n}\n\n/**\n * Returns true if the user is using an iPod.\n * @return {boolean}\n */\nexport function isOnIpod() {\n return ['iPod Simulator', 'iPod'].includes(navigator.platform)\n}\n\n/**\n * Returns true if the user is using an iPad.\n * @return {boolean}\n */\nexport function isOnIpad() {\n return ['iPad Simulator', 'iPad'].includes(navigator.platform)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loading-overlay\",style:([_vm.size ? { '--spinner-size': _vm.size } : null])},[_c('div',{staticClass:\"loading-overlay-inner\"},[_c('LoadingAnimation')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingOverlay.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingOverlay.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadingOverlay.vue?vue&type=template&id=1d71a451&scoped=true&\"\nimport script from \"./LoadingOverlay.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadingOverlay.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoadingOverlay.vue?vue&type=style&index=0&id=1d71a451&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d71a451\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowButton.vue?vue&type=style&index=0&id=39f2ce52&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.inline)?_c('span',{staticClass:\"count-down-timer\"},[_vm._v(_vm._s(_vm.countDownDisplay))]):_c('article',{staticClass:\"count-down-timer\",class:{ 'bloop-animation': _vm.doBloopAnimation }},[_c('p',[_vm._v(_vm._s(_vm.countDownDisplay))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { leftPad } from '../utils/string'\nimport { differenceInMinutes } from 'date-fns'\n\n/**\n * A countdown component that takes either two timestamps (in milliseconds) and counts the duration of those 2,\n * or takes an end timestamp and counts down from current present time.\n */\nexport default {\n name: 'CountDown',\n props: {\n start: Number,\n end: {\n type: Number,\n required: true,\n },\n name: String,\n offset: {\n default: 0,\n type: Number,\n },\n customCountDownStep: Number,\n countDownText: String,\n enableBloopAnimations: Boolean,\n },\n data() {\n let startTimeStamp = this.getStartTimeStamp()\n\n return {\n endTimeStamp: this.end + this.offset,\n startTimeStamp: startTimeStamp,\n countDownPosition: startTimeStamp,\n countDownStep: 1000,\n countDownInterval: null,\n countDownTimeout: null,\n doBloopAnimation: false,\n countDownFinished: false,\n }\n },\n mounted() {\n if (this.getCurrentTime() <= this.startTimeStamp) {\n this.countDownTimeout = setTimeout(() => {\n this.startCountDown()\n clearTimeout(this.countDownTimeout)\n }, this.startTimeStamp - this.getCurrentTime())\n } else {\n this.startCountDown()\n }\n },\n\n methods: {\n /**\n *\n * @returns {number}\n */\n getStartTimeStamp() {\n let nowStamp = this.getCurrentTime()\n\n return (this.start || nowStamp) + this.offset\n },\n startCountDown() {\n this.countDownInterval = setInterval(() => {\n if (this.countDownPosition >= this.endTimeStamp) {\n this.$emit('finished')\n this.countDownFinished = true\n clearInterval(this.countDownInterval)\n return\n\n // Is there is less time than the countDown step left, we'd like to finish then.\n } else if (this.finishBeforeCountDownStep()) {\n clearInterval(this.countDownInterval)\n setTimeout(() => {\n this.countDownFinished = true\n this.$emit('finished')\n this.countDownPosition = this.getCurrentTime()\n }, this.countDownPosition - this.endTimeStamp)\n return\n }\n\n this.countDownPosition = this.getCurrentTime()\n }, this.countDownStep)\n },\n\n /**\n * @param {number} startTimeStamp\n * @param {number} endTimeStamp\n * @returns {number} minutes\n */\n remainingMinutes(startTimeStamp, endTimeStamp) {\n return Math.max(differenceInMinutes(endTimeStamp, startTimeStamp), 0)\n },\n /**\n * @param {number} startTimeStamp\n * @param {number} endTimeStamp\n * @returns {string} seconds\n */\n remainingSeconds(startTimeStamp, endTimeStamp) {\n return leftPad(\n Math.max(\n Math.floor(\n (this.remainingDuration(startTimeStamp, endTimeStamp) % 60000) /\n 1000\n ),\n 0\n ),\n 2\n )\n },\n /**\n * @param {number} startTimeStamp\n * @param {number} endTimeStamp\n * @returns {number} duration in milliseconds\n */\n remainingDuration(startTimeStamp, endTimeStamp) {\n return endTimeStamp - startTimeStamp\n },\n\n /**\n * @returns {number} milliseconds\n */\n getCurrentTime() {\n return new Date().getTime()\n },\n /**\n * gets the time representation of the current count down\n * @param {milliseconds} startTimeStamp\n * @param {milliseconds} endTimeStamp\n * @returns {string} Ex: 11:11\n */\n getTimeDisplay(startTimeStamp, endTimeStamp) {\n const remainingMinutes = this.remainingMinutes(\n startTimeStamp,\n endTimeStamp\n )\n\n const remainingSeconds = this.remainingSeconds(\n startTimeStamp,\n endTimeStamp\n )\n\n if (\n this.enableBloopAnimations &&\n remainingMinutes === 0 &&\n remainingSeconds <= 3 &&\n !this.countDownFinished\n ) {\n // Does a \"bloop\" animation on every count down, 3 seconds before finish time, to give a sense of urgency.\n this.doBloopAnimation = true\n setTimeout(() => {\n this.doBloopAnimation = false\n }, 150)\n }\n\n return `${remainingMinutes}:${remainingSeconds}`\n },\n finishBeforeCountDownStep() {\n return this.countDownStep > this.endTimeStamp - this.countDownPosition\n },\n },\n computed: {\n countDownDisplay() {\n return this.getTimeDisplay(this.countDownPosition, this.endTimeStamp)\n },\n },\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CountDown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CountDown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CountDown.vue?vue&type=template&id=073efcd1&scoped=true&\"\nimport script from \"./CountDown.vue?vue&type=script&lang=js&\"\nexport * from \"./CountDown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CountDown.vue?vue&type=style&index=0&id=073efcd1&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"073efcd1\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"error-message\"},[_c('h3',{staticClass:\"error-message-heading\"},[_vm._t(\"header\",[_vm._v(_vm._s(_vm.$t('error-message.default-heading')))])],2),_vm._t(\"default\",[_c('p',[_vm._v(_vm._s(_vm.$t('error-message.unknown-error-message')))])])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorMessage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorMessage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ErrorMessage.vue?vue&type=template&id=6f9de570&scoped=true&\"\nimport script from \"./ErrorMessage.vue?vue&type=script&lang=js&\"\nexport * from \"./ErrorMessage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ErrorMessage.vue?vue&type=style&index=0&id=6f9de570&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f9de570\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextToSpeech.vue?vue&type=style&index=0&id=47e25505&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionIdentifier.vue?vue&type=style&index=0&id=13fdf506&lang=scss&scoped=true&\"","import config from '../../config.json'\n\nexport default {\n install(Vue) {\n Vue.prototype.$config = config\n },\n}\n","import constants from '../constants.json'\n\nexport default {\n install(Vue) {\n Vue.prototype.$constants = constants\n },\n}\n","import { library as fontAwesomeLibrary } from '@fortawesome/fontawesome-svg-core'\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'\n\nimport { faCircle } from '@fortawesome/free-regular-svg-icons'\n\nimport {\n faAngleDown,\n faAngleUp,\n faArrowLeft,\n faArrowRight,\n faBackspace,\n faCheck,\n faChevronLeft,\n faChevronRight,\n faCircle as faCircleSolid,\n faCompress,\n faExpand,\n faExpandArrowsAlt,\n faHeart,\n faList,\n faPaperPlane,\n faPause,\n faPauseCircle,\n faPlay,\n faPlayCircle,\n faPlus,\n faQuestion,\n faRedo,\n faSearch,\n faSlidersH,\n faThumbsDown,\n faThumbsUp,\n faTimes,\n faUndo,\n} from '@fortawesome/free-solid-svg-icons'\n\nimport {\n faInboxIn,\n faLockAlt,\n faLockOpenAlt,\n faVolume,\n faVolumeSlash,\n} from '@fortawesome/pro-solid-svg-icons'\nimport { faPen } from '@fortawesome/pro-regular-svg-icons'\n\nfontAwesomeLibrary.add(\n faAngleDown,\n faAngleUp,\n faArrowLeft,\n faArrowRight,\n faBackspace,\n faCheck,\n faChevronLeft,\n faChevronRight,\n faCircle,\n faCircleSolid,\n faCompress,\n faExpand,\n faExpandArrowsAlt,\n faHeart,\n faInboxIn,\n faList,\n faLockAlt,\n faLockOpenAlt,\n faPaperPlane,\n faPause,\n faPauseCircle,\n faPen,\n faPlay,\n faPlayCircle,\n faPlus,\n faQuestion,\n faRedo,\n faSearch,\n faSlidersH,\n faThumbsDown,\n faThumbsUp,\n faTimes,\n faUndo,\n faVolume,\n faVolumeSlash\n)\n\nexport default {\n install(Vue) {\n Vue.component('FontAwesomeIcon', FontAwesomeIcon)\n },\n}\n","import Vue from 'vue'\nimport i18next from 'i18next'\nimport VueI18Next from '@panter/vue-i18next'\n\nimport Config from '~/plugins/config'\nimport Constants from '~/plugins/constants'\nimport FontAwesome from '~/plugins/font-awesome'\n\nimport daDK from '../../public/locales/da-DK'\nimport nlNL from '../../public/locales/nl-NL'\nimport noNO from '../../public/locales/no-NO'\nimport svSE from '../../public/locales/sv-SE'\nimport en from '../../public/locales/en'\n\nimport config from '../../config.json'\n\n// Import style\nimport '../style/base.scss'\n\nVue.config.productionTip = false\n\n// Apply plugins\nVue.use(Config)\nVue.use(Constants)\nVue.use(FontAwesome)\nVue.use(VueI18Next)\n\nconst locales = {\n da: 'da-DK',\n nl: 'nl-NL',\n no: 'no-NO',\n sv: 'sv-SE',\n}\n\nconst locale = locales[config.locale]\n\n// Set up translations\nlet i18nextOptions = {\n lng: locale,\n whitelist: [...Object.values(locales), 'en'],\n resources: {\n en: { translation: en },\n 'da-DK': { translation: daDK },\n 'nl-NL': { translation: nlNL },\n 'no-NO': { translation: noNO },\n 'sv-SE': { translation: svSE },\n },\n fallbackLng: ['en'],\n}\n\ni18next.init(i18nextOptions)\n\nconst i18n = new VueI18Next(i18next)\n\n/**\n * Generates a options object for Vue with the options that are always required to make our pages/components work.\n * @param {boolean=} ignoreVueVars Pass true if vueVars arent' used and thus not required to be set by the server.\n * @returns {!Object}\n */\nfunction generateVueOptions(ignoreVueVars) {\n if (ignoreVueVars) {\n return { i18n }\n }\n\n return {\n i18n,\n data() {\n // vueVars should always be declared in the .ctp file when using Vue,\n // this check is just to make sure nothing breaks too hard for end users if the variable goes missing.\n try {\n return vueVars\n } catch (err) {\n // eslint-disable-next-line\n console.error(\n 'vueVars not found. Make sure you declare a JS variable called vueVars in your .ctp file.'\n )\n }\n\n return {}\n },\n }\n}\n\nexport { generateVueOptions }\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"loading-animation\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"version\":\"1.1\",\"viewBox\":\"0 0 100 100\"}},[_c('circle',{attrs:{\"cx\":\"50\",\"cy\":\"50\",\"fill\":\"none\",\"r\":_vm.radius,\"stroke\":\"currentColor\",\"stroke-dasharray\":(_vm.circleCutout + \" \" + (_vm.circleCutout * 2)),\"stroke-linecap\":\"round\",\"stroke-width\":_vm.strokeWidth}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingAnimation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingAnimation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadingAnimation.vue?vue&type=template&id=f2e9e49a&scoped=true&\"\nimport script from \"./LoadingAnimation.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadingAnimation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoadingAnimation.vue?vue&type=style&index=0&id=f2e9e49a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f2e9e49a\",\n null\n \n)\n\nexport default component.exports","import BaseApi from './base'\nimport config from '../../config'\n\nexport default class AdaptiveTestBattle extends BaseApi {\n /**\n * Gets the public user name for the current, logged in user\n * @returns {Promise>}\n */\n addToBattle() {\n return this.axios\n .get(config.apiUrl + `/adaptive_test_battle/add_to_adaptive_battle/`)\n .then(({ data }) => {\n return data\n })\n }\n\n removeUserFromQueue() {\n return this.axios\n .get(\n config.apiUrl +\n '/adaptive_test_battle/remove_from_adaptive_battle_queue/'\n )\n .then(({ data }) => {\n return data\n })\n }\n\n getBattleStartStatus() {\n return this.axios\n .get(config.apiUrl + `/adaptive_test_battle/is_adaptive_battle_started/`)\n .then(({ data }) => {\n return data\n })\n }\n\n getHighScore() {\n return this.axios\n .get(config.apiUrl + `/adaptive_test_battle/find_battle_highscore/`)\n .then(({ data }) => {\n return data.map((item, index) => {\n item.rank = index + 1\n\n return item\n })\n })\n }\n\n getRelativeRank() {\n return this.axios\n .get(config.apiUrl + `/adaptive_test_battle/find_relative_battle_rank/`)\n .then(({ data }) => {\n return data\n })\n }\n\n getUserStatistics() {\n return this.axios\n .get(`${config.apiUrl}/adaptive_test_battle/find_battle_statistics`)\n .then(({ data }) => {\n return data\n })\n }\n\n getQueue() {\n return this.axios\n .get(config.apiUrl + `/adaptive_test_battle/get_queue/`)\n .then(({ data }) => {\n return data\n })\n }\n\n getLatestBattleResult() {\n return this.axios\n .get(\n config.apiUrl +\n `/adaptive_test_battle/find_latest_adaptive_battle_result/`\n )\n .then(({ data }) => {\n return data\n })\n }\n}\n","import queryString from 'query-string'\n\nimport { axiosInstance } from './base'\nimport { snakeToCamelKeys } from '@/utils/object'\n\nimport constants from '~/constants.json'\nimport config from '../../config.json'\n\n/**\n * Saves the given answer for the given homework element session/question combination.\n *\n * @param {number} questionId\n * @param {number|string|null}answer\n * @param {number} lapsedTime\n * @param {number} homeworkElementSessionId\n * @returns {Promise}\n */\nexport function saveAnswer(\n questionId,\n answer,\n lapsedTime,\n homeworkElementSessionId\n) {\n const query = {\n 'data[question_id]': questionId,\n 'data[answer]': answer,\n 'data[lapsedTime]': lapsedTime,\n 'data[HomeworkElementSession][id]': homeworkElementSessionId,\n }\n\n return axiosInstance\n .post(\n `${constants.baseUrl}/homework/save_answer`,\n queryString.stringify(query)\n )\n .then(({ data }) => {\n return {\n ...data['question'],\n ...data['saved'],\n }\n })\n}\n\n/**\n * Returns homework details for the given homework ID.\n *\n * @param {number} homeworkId\n * @return {Promise>}\n */\nexport function getHomeworkDetails(homeworkId) {\n return axiosInstance\n .get(`${config.apiUrl}/homework/load/?id=${homeworkId}`)\n .then(({ data }) => snakeToCamelKeys(data, true))\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{class:(\"arrow-button arrow-button-\" + _vm.direction),attrs:{\"tabindex\":\"-1\",\"type\":\"button\",\"title\":_vm.title},on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('click')}}},[_c('FaIcon',{staticClass:\"arrow-button-icon\",attrs:{\"icon\":(\"chevron-\" + _vm.direction)}}),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ArrowButton.vue?vue&type=template&id=39f2ce52&scoped=true&\"\nimport script from \"./ArrowButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ArrowButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ArrowButton.vue?vue&type=style&index=0&id=39f2ce52&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39f2ce52\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.initialized)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],ref:\"wrapper\",staticClass:\"popupWrapper\",on:{\"click\":function($event){$event.stopPropagation();return _vm.clicked($event)}}},[_c('article',{staticClass:\"popup\",attrs:{\"role\":\"dialog\"}},[_c('div',{staticClass:\"popupActions\"},[_c('button',{staticClass:\"closeButton\",attrs:{\"type\":\"button\",\"title\":_vm.$t('popup.close-button')},on:{\"click\":_vm.closePopup}},[_c('FaIcon',{attrs:{\"icon\":\"times\"}})],1)]),_vm._t(\"default\")],2)]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Popup.vue?vue&type=template&id=5454b736&scoped=true&\"\nimport script from \"./Popup.vue?vue&type=script&lang=js&\"\nexport * from \"./Popup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Popup.vue?vue&type=style&index=0&id=5454b736&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5454b736\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmojiPicker.vue?vue&type=style&index=0&id=19c9d081&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=style&index=0&id=68b997eb&lang=scss&scoped=true&\"","import { typesetMathMl } from '../utils/mathml'\n\nexport default {\n mounted() {\n this.typesetMathMl()\n },\n updated() {\n this.typesetMathMl()\n },\n methods: {\n typesetMathMl() {\n typesetMathMl(this.$el)\n },\n },\n}\n","/**\n * A promise that resolves once the global edulab JS scope has loaded.\n * @type {Promise}\n */\nexport const edulabGlobalPromise = new Promise(resolve => {\n let localReference = undefined\n\n try {\n // Resolve with the edulab\n resolve(edulab)\n } catch (error) {\n let edulabPageReadyInterval = setInterval(() => {\n try {\n // Try setting up a local reference\n // This will fail if the global edulab variable doesn't yet exist, letting the interval continue running\n localReference = edulab\n } catch (error) {\n // do nothing\n }\n\n if (localReference) {\n // Clear the interval and resolve\n clearInterval(edulabPageReadyInterval)\n resolve(localReference)\n }\n }, 50)\n }\n})\n","import { camelToSnake, snakeToCamel } from './string'\n\n/**\n * Clones the given object using JSON conversions.\n *\n * @param {Object} object\n * @returns {Object}\n */\nexport const clone = function(object) {\n return JSON.parse(JSON.stringify(object))\n}\n\n/**\n * Returns true if the given property is present in the given object.\n * Utilises the raw object prototype function because `hasOwnProperty` can be overwritten in the original object.\n *\n * @param {Object} object\n * @param {string} property\n * @returns {boolean}\n */\nexport const hasProperty = function(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property)\n}\n\n/**\n * Returns true if the given object is either empty or doesn't exist at all.\n *\n * @param {Object|undefined} object\n * @return {boolean}\n */\nexport const isEmptyObject = function(object) {\n return !object || Object.keys(object).length === 0\n}\n\n/**\n * Safely search an object for a property using a variable amount of property keys.\n * Will check that all needed parts of the object exists, and return undefined if not.\n *\n * @param {Object|undefined} object The element for which to search for a property.\n * @param {string} key Variable amount of property keys to look for in the given object.\n * @param {*=} defaultValue value to return if nothing was found.\n * @return {*} The requested property, or undefined if it doesn't exist.\n */\nexport const getProperty = function(object, key, defaultValue) {\n if (!object) {\n return defaultValue\n }\n\n const keys = key.split('.')\n const currentKey = keys.shift()\n\n let value = undefined\n\n if (!hasProperty(object, currentKey)) {\n return defaultValue\n } else {\n value = object[currentKey]\n }\n\n if (keys.length > 0) {\n if (value) {\n return getProperty(value, keys.join('.'), defaultValue)\n } else {\n return defaultValue\n }\n }\n\n return value\n}\n\n/**\n * Returns true if the given value is an object.\n *\n * @param {*} value\n * @return {boolean}\n */\nexport const isObject = value => {\n return !!value && value.constructor === Object\n}\n\n/**\n * Returns true if the given value is an array.\n *\n * @param {*} value\n * @return {boolean}\n */\nexport const isArray = value => {\n return !!value && value.constructor === Array\n}\n\n/**\n * Returns true if the given value is an object or an array.\n *\n * @param {*} value\n * @return {boolean}\n */\nexport const isObjectOrArray = value => {\n return (\n !!value && (value.constructor === Object || value.constructor === Array)\n )\n}\n\n/**\n * Returns a new object (or array, depending on input type) with all keys transformed from camelCase to snake_case.\n * If `nested` is set to true all contained objects will have their keys transformed as well.\n *\n * Returns any given falsy input as is.\n *\n * @param {Array|Object} input\n * @param {boolean=} nested\n * @return {Array|Object|undefined}\n */\nexport const camelToSnakeKeys = (input, nested = false) => {\n return transformKeys(input, camelToSnake, nested)\n}\n\n/**\n * Returns a new object (or array, depending on input type) with all keys transformed from snake_case to camelCase.\n * If `nested` is set to true all contained objects will have their keys transformed as well.\n *\n * Returns any given falsy input as is.\n *\n * @param {Array|Object} input\n * @param {boolean=} nested\n * @return {Array|Object|undefined}\n */\nexport const snakeToCamelKeys = (input, nested = false) => {\n return transformKeys(input, snakeToCamel, nested)\n}\n\n/**\n * Returns a new object (or array, depending on input type) with all keys transformed with the given transformer.\n * If `nested` is set to true all contained objects will have their keys transformed as well.\n *\n * Returns any given falsy input as is.\n *\n * @param {Array|Object} input\n * @param {function(string):string} transformer\n * @param {boolean=} nested\n * @return {Array|Object|undefined}\n */\nexport const transformKeys = (input, transformer, nested = false) => {\n if (!input) {\n return input\n }\n\n if (isArray(input)) {\n return input.map(value => {\n if (nested && isObjectOrArray(value)) {\n return transformKeys(value, transformer, true)\n }\n\n return value\n })\n }\n\n const newObject = {}\n\n Object.entries(input).forEach(([key, value]) => {\n if (nested && isObjectOrArray(value)) {\n value = transformKeys(value, transformer, true)\n }\n\n newObject[transformer(key)] = value\n })\n\n return newObject\n}\n\nexport const objectToFormData = object => {\n const formData = new FormData()\n\n Object.keys(object).forEach(key => {\n formData.append(key, object[key])\n })\n\n return formData\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h1',{staticClass:\"battle-header\",class:{ 'always-display': _vm.alwaysDisplay }},[_vm._t(\"default\",[_vm._v(_vm._s(_vm.$t('adaptive-test-battle.game-title')))])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BattleHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BattleHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BattleHeader.vue?vue&type=template&id=5bd2d136&scoped=true&\"\nimport script from \"./BattleHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./BattleHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BattleHeader.vue?vue&type=style&index=0&id=5bd2d136&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bd2d136\",\n null\n \n)\n\nexport default component.exports","import { locale } from '../../config.json'\n\n/**\n * Formats the given number as a human readable string.\n *\n * @param {number} number\n * @param {number=} decimals\n * @return {string}\n */\nexport function formatNumber(number, decimals) {\n if (decimals !== undefined) {\n number = round(number, decimals)\n }\n\n return number.toLocaleString(locale)\n}\n\n/**\n * Formats the given number span as a string.\n *\n * @param {number|{min: number, max: number}}min\n * @param {number|undefined=} max\n * @param {number=} decimals\n * @return {string}\n */\nexport function formatSpan(min, max, decimals) {\n if (typeof min === 'object') {\n max = min.max\n min = min.min\n }\n\n if (min === max) {\n return formatNumber(min, decimals)\n }\n\n return `${formatNumber(min, decimals)}–${formatNumber(max, decimals)}`\n}\n\n/**\n * Rounds the given number to the given number of decimals.\n *\n * @param {number} number\n * @param {number=} decimals Defaults to 0\n * @returns {number}\n */\nexport function round(number, decimals = 0) {\n return Number(Math.round(`${number}e+${decimals}`) + `e-${decimals}`)\n}\n","import i18next from 'i18next'\n\n/**\n * Removes any HTML or MathML from the given string.\n *\n * @param {string} string\n * @returns {string}\n */\nexport function removeTags(string) {\n return string.replace(/<\\/?\\w[^>]*>/gi, '')\n}\n\n/**\n * Removes only the given tag from the given string.\n *\n * @param {string} string\n * @param {string} tag\n * @returns {string}\n */\nexport function removeTag(string, tag) {\n return string.replace(new RegExp(`]*>`, 'g', 'i'), '')\n}\n\n/**\n * Converts a title, id and optional separator to a slug for use in links\n * @param {string} title Page title.\n * @param {string|number} id Page ID.\n * @param {string=} separator Optional separator - defaults to '-'.\n * @return {string} The slug.\n */\nexport function createSlug(title, id, separator = '-') {\n title = title.toLowerCase()\n title = title.replace(/à|á|â/g, 'a')\n title = title.replace(/å|Å/g, 'aa')\n title = title.replace(/è|é|ê|ë/g, 'e')\n title = title.replace(/ì|í|î/g, 'i')\n title = title.replace(/ò|ó|ô|ø|Ø/g, 'oe')\n title = title.replace(/ù|ú|û/g, 'u')\n title = title.replace(/ä|æ|Æ/g, 'ae')\n title = title.replace(/ö|Ö/g, 'oe')\n title = title.replace(/ü|Ü/g, 'ue')\n title = title.replace(/[^\\w\\s]/g, ' ')\n title = title.replace(/\\s+/g, separator)\n\n return title + separator + id\n}\n\n/**\n * Extracts the ID from the given slug.\n *\n * @param {string} slug\n * @param {string=} separator Optional separator - defaults to '-'.\n * @return {Number} The slug.\n */\nexport function getIdFromSlug(slug, separator = '-') {\n return parseInt(slug.split(separator).pop())\n}\n\n/**\n * This function pads a string with a character (padStr) to a specific length (length)\n *\n * @param {string|number} str The string to be padded.\n * @param {number} length The final length of the string.\n * @param {string=} padStr The string to pad with (default to 0).\n * @return {string} The original string padded as requested.\n */\nexport function leftPad(str, length, padStr) {\n padStr = padStr || '0'\n\n if (typeof str === 'number') {\n str = str + ''\n }\n\n while (str.length < length) {\n str = padStr + str\n }\n\n return str\n}\n\n/**\n * Converts any escaped HTML characters to their original characters.\n * This might be vulnerable to XSS attacks and should never be used on user input.\n * Copied from https://css-tricks.com/snippets/javascript/unescape-html-in-js/\n *\n * @param {string} string\n * @return {string}\n */\nexport function unescapeHtml(string) {\n const e = document.createElement('div')\n\n e.innerHTML = string\n\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue\n}\n\n/**\n * Converts camelCase to snake_case.\n *\n * @param string\n * @return {string}\n */\nexport function camelToSnake(string) {\n return string\n .replace(/[A-Z]|\\d+/g, match => {\n return `_${match.toLowerCase()}`\n })\n .replace(/^_/, '')\n}\n\n/**\n * Converts camelCase to kebab-case.\n *\n * @param string\n * @return {string}\n */\nexport function camelToKebab(string) {\n return string\n .replace(/[A-Z]|\\d+/g, match => {\n return `-${match.toLowerCase()}`\n })\n .replace(/^-/, '')\n}\n\n/**\n * Converts snake_case to camelCase.\n *\n * @param string\n * @return {string}\n */\nexport function snakeToCamel(string) {\n return string.replace(/_[\\w\\d]/g, match => {\n return match.substr(1).toUpperCase()\n })\n}\n\n/**\n * Converts an array to a comma separated string.\n *\n * @param {Array} array An array of strings or numbers.\n * @param {(boolean|function(string):string|undefined)=} addQuotes Set boolean true to add quotes on either side of each string or pass a function that takes a string and returns a new string.\n * @param {boolean=} disableAnd Inserts ', ' instead of ' and ' between the last two strings.\n * @return {string}\n */\nexport function arrayToString(array, addQuotes, disableAnd) {\n if (!Array.isArray(array)) {\n return ''\n }\n\n let output = ''\n\n let stringParser\n\n if (addQuotes === true) {\n // If addQuotes is a boolean true\n stringParser = string => `\"${string}\"`\n } else if (addQuotes) {\n // If addQuotes is a function\n stringParser = addQuotes\n }\n\n array.forEach((entry, index) => {\n if (index > 0) {\n if (index >= array.length - 1 && !disableAnd) {\n output += ' ' + i18next.t('words.and') + ' '\n } else {\n output += ', '\n }\n }\n\n if (stringParser) {\n output += stringParser(entry)\n } else {\n output += entry\n }\n })\n\n return output\n}\n","/**\n * @enum {number}\n */\nexport const ContentType = {\n ACTIVITY: 'activity',\n ADAPTIVE_TEST: 'adaptive-test',\n DIFFERENTIATED_TEST: 'differentiated-test',\n BOOKS: 'books',\n GAME: 'game',\n GEOMETRY: 'geometry',\n HOMEWORK: 'homework',\n LESSON: 'lesson',\n PDF_ASSIGNMENT: 'pdf-assignment',\n SELF_TRAINING: 'self-training',\n STANDARD_EXERCISE: 'standard-exercise',\n TRIAL_EXAM: 'trial-exam',\n UNKNOWN: 'unknown',\n}\n\n/**\n * @enum {number}\n */\nexport const ChapterSectionType = {\n INTRO: 0,\n LESSON: 1,\n TRIAL_EXAM: 2,\n}\n\n/**\n * @enum {number}\n */\nexport const HomeworkElementModel = {\n LESSON: 1,\n STANDARDEXERCISE: 2,\n ADAPTIVETEST: 3,\n GEOMETRYTEST: 4,\n GAMETEST: 5,\n DIFFERENTIATEDTEST: 6,\n}\n\n/**\n * @enum {number}\n */\nexport const LessonSectionType = {\n HTML: 1,\n VIDEO: 2,\n QUESTION: 3,\n PICTURE: 4,\n GEOGEBRA: 5,\n}\n\n/**\n * @enum {number}\n */\nexport const LessonUnderstood = {\n YES: 1,\n SOMEWHAT: 2,\n NO: 3,\n NONE: 0,\n}\n\n/**\n * @enum {number}\n */\nexport const MetaModelType = {\n UNKNOWN: -1,\n LESSON: 1,\n STANDARDEXERCISE: 2,\n ADAPTIVETEST: 3,\n GEOMETRY: 4,\n GAME: 5,\n DIFFERENTIATEDTEST: 6,\n PDFASSIGNMENT: 7,\n ACTIVITY: 8,\n BOOKS: 99,\n HOMEWORK: 100,\n}\n\n/**\n * @enum {string}\n */\nexport const UserType = {\n ADMIN: 'admin',\n LICENSEE: 'licensee',\n PARENT: 'parents',\n STUDENT: 'student',\n TEACHER: 'teacher',\n}\n\n/**\n * @enum {number}\n */\nexport const QuestionType = {\n INPUT_FIELD: 1,\n MULTIPLE_CHOICE: 2,\n}\n\n/**\n * @enum {number}\n */\nexport const UserAnswerModel = {\n STANDARD: 2,\n ADAPTIVE: 3,\n GAME: 5,\n DIFFERENTIATED: 6,\n TESTSTANDARD: 101,\n TEST5SHARP: 102,\n TESTTRIALEXAM: 103,\n TESTCALENDAR: 104,\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NumberInputField.vue?vue&type=style&index=0&id=e41abaf8&lang=scss&scoped=true&\"","/* eslint-disable no-console */\n\n/**\n * Wraps over `console` to make it usable during development while preventing the output in production.\n * This lets us commit `console` usage whereever we might need it permanently.\n * @file\n */\n\n/**\n * @type {boolean}\n */\nconst isProduction = process.env.NODE_ENV === 'production'\n\nexport function assert(expression, message) {\n if (!isProduction) {\n console.assert(expression, message)\n }\n}\n\nexport function clear() {\n if (!isProduction) {\n console.clear()\n }\n}\n\nexport function count(title) {\n if (!isProduction) {\n console.count(title)\n }\n}\n\nexport function debug(message) {\n if (!isProduction) {\n console.debug(message)\n }\n}\n\nexport function dir(object) {\n if (!isProduction) {\n console.dir(object)\n }\n}\n\nexport function dirxml(object) {\n if (!isProduction) {\n console.dirxml(object)\n }\n}\n\nexport function error() {\n if (!isProduction) {\n console.error(...arguments)\n }\n}\n\nexport function group(title) {\n if (!isProduction) {\n console.group(title)\n }\n}\n\nexport function groupCollapsed(title) {\n if (!isProduction) {\n console.groupCollapsed(title)\n }\n}\n\nexport function groupEnd() {\n if (!isProduction) {\n console.groupEnd()\n }\n}\n\nexport function info() {\n if (!isProduction) {\n console.info(...arguments)\n }\n}\n\nexport function log() {\n if (!isProduction) {\n console.log(...arguments)\n }\n}\n\nexport function select(element) {\n if (!isProduction) {\n console.select(element)\n }\n}\n\nexport function time(name) {\n if (!isProduction) {\n console.time(name)\n }\n}\n\nexport function timeEnd(name) {\n if (!isProduction) {\n console.timeEnd(name)\n }\n}\n\nexport function trace() {\n if (!isProduction) {\n console.trace()\n }\n}\n\nexport function warn() {\n if (!isProduction) {\n console.warn(...arguments)\n }\n}\n\nexport default {\n assert,\n clear,\n count,\n debug,\n dir,\n dirxml,\n error,\n group,\n groupCollapsed,\n groupEnd,\n info,\n log,\n select,\n time,\n timeEnd,\n trace,\n warn,\n}\n","/**\n * @file Provides utilities for use in stores only.\n * @author Thomas Grinderslev \n */\n\n/**\n * Adds the given namespace to all of the type keys in the given type map.\n * @param {string} namespace\n * @param {Object>}types\n * @return {Object>}\n */\nexport function addNamespace(namespace, types) {\n const namespacedTypes = {}\n\n Object.keys(types).forEach(typeKey => {\n const type = types[typeKey]\n const namespacedType = {}\n\n Object.keys(type).forEach(internalTypeKey => {\n namespacedType[internalTypeKey] = `${namespace}/${type[internalTypeKey]}`\n })\n\n namespacedTypes[typeKey] = namespacedType\n })\n\n return namespacedTypes\n}\n","export let KeyCodes = {\n TAB: 'Tab',\n SPACE: ' ',\n ENTER: 'Enter',\n ESCAPE: 'Escape',\n END: 'End',\n HOME: 'Home',\n ARROW_LEFT: 'ArrowLeft',\n ARROW_UP: 'ArrowUp',\n ARROW_RIGHT: 'ArrowRight',\n ARROW_DOWN: 'ArrowDown',\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DialogButtons.vue?vue&type=style&index=0&id=0c5da833&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionAnswerLoader.vue?vue&type=style&index=0&id=2dd13f22&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingAnimation.vue?vue&type=style&index=0&id=f2e9e49a&lang=scss&scoped=true&\"","import { getCdnImageUrl } from '@/utils/network'\nimport logger from '@/utils/logger'\n\n/**\n * Creates a URL to an image in our Image CDN repository\n * and wraps in the 'url()' wrapper for css\n *\n * @param {string} path\n * @returns {string} Example: 'path(https://cdn.domain/path/to/image.ext)'\n */\nexport function getCdnImgUrlForCss(path) {\n return `url('${getCdnImageUrl(path)}')`\n}\n\n/**\n * Converts the given PX value to a REM equivalent.\n *\n * @param {number} value\n * @returns {number}\n */\nexport function pxToRem(value) {\n return value / 16\n}\n\n/**\n * Converts the given REM value to a PX equivalent.\n *\n * @param {number} value\n * @returns {number}\n */\nexport function remToPx(value) {\n return value * 16\n}\n\n/**\n * Detects the CSS size unit in the given value and returns the PX equivalent of the value.\n *\n * @param {string} valueWithUnit Eg. `30px` or `40.3rem`\n * @returns {number}\n */\nexport function cssSizeToPx(valueWithUnit) {\n const cleanedValue = valueWithUnit.trim()\n const [unit] = cleanedValue.match(/[^.\\d]+$/) || []\n const [value] = cleanedValue.match(/^[\\d.]+/) || []\n const parsedValue = parseFloat(value)\n\n switch (unit) {\n case 'px':\n return parsedValue\n case 'rem':\n return remToPx(parsedValue)\n default:\n logger.warn(`CSS unit ${unit} isn't support by cssSizeToPx`)\n return 0\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"keyboard-wrapper\",class:{ 'has-keyboard': _vm.showKeyboard }},[_vm._t(\"default\"),_c('transition',{attrs:{\"name\":\"float\"}},[(_vm.showKeyboard)?_c('Keyboard'):_vm._e()],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('article',{staticClass:\"keyboard\",on:{\"pointerdown\":_vm.onPointerDown,\"pointercancel\":_vm.onPointerCancel,\"touchstart\":_vm.onPointerDown,\"touchcancel\":_vm.onPointerCancel}},[_c('div',{staticClass:\"keyboard-actions\"},[_c('button',{staticClass:\"close-button\",on:{\"click\":_vm.hideKeyboard}},[_vm._v(\" \"+_vm._s(_vm.$t('components.keyboard.close-button'))+\" \")])]),_c('div',{staticClass:\"keyboard-keys\"},_vm._l((_vm.keys),function(key){return _c('button',{key:key.label,staticClass:\"keyboard-key\",class:key.method,attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onKeyPress(key)}}},[(key.icon)?_c('FaIcon',{attrs:{\"icon\":key.icon}}):_vm._e(),_vm._v(_vm._s(key.label)+\" \")],1)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Keyboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Keyboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Keyboard.vue?vue&type=template&id=e841fa60&scoped=true&\"\nimport script from \"./Keyboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Keyboard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Keyboard.vue?vue&type=style&index=0&id=e841fa60&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e841fa60\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyboardWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyboardWrapper.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KeyboardWrapper.vue?vue&type=template&id=074febe4&scoped=true&\"\nimport script from \"./KeyboardWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./KeyboardWrapper.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KeyboardWrapper.vue?vue&type=style&index=0&id=074febe4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"074febe4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('article',{staticClass:\"battle-queue\"},[(!_vm.compact && _vm.showTitle)?_c('h1',[_vm._t(\"heading\",[_vm._v(_vm._s(_vm.$t('adaptive-test-battle.battle-queue-heading')))])],2):_vm._e(),(_vm.peopleInQueue.length > 0)?_c('ul',{staticClass:\"people-in-queue\",class:{ compact: _vm.compact },style:({\n '--grid-cells': _vm.displayedGridCells,\n })},_vm._l((_vm.peopleInQueue),function(person,index){return _c('li',{key:index,staticClass:\"person-in-queue\"},[_c('PublicUserName',{attrs:{\"emoji\":_vm.getEmoji(person),\"first-word-data\":person['word_one'],\"second-word-data\":person['word_two'],\"type\":_vm.getColor(person),\"layout\":_vm.compact ? 'compact' : 'stacked',\"glow\":person['my_own']}})],1)}),0):_c('p',{staticClass:\"empty-queue\"},[_vm._v(\" \"+_vm._s(_vm.$t('adaptive-test-battle.battle-queue-is-empty'))+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BattleQueue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BattleQueue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BattleQueue.vue?vue&type=template&id=9b1eb576&scoped=true&\"\nimport script from \"./BattleQueue.vue?vue&type=script&lang=js&\"\nexport * from \"./BattleQueue.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BattleQueue.vue?vue&type=style&index=0&id=9b1eb576&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9b1eb576\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"animated-number\"},[_vm._v(_vm._s(_vm.formattedDisplayValue))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedNumber.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedNumber.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AnimatedNumber.vue?vue&type=template&id=a7927fec&scoped=true&\"\nimport script from \"./AnimatedNumber.vue?vue&type=script&lang=js&\"\nexport * from \"./AnimatedNumber.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AnimatedNumber.vue?vue&type=style&index=0&id=a7927fec&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a7927fec\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Keyboard.vue?vue&type=style&index=0&id=e841fa60&lang=scss&scoped=true&\"","import axios from 'axios'\nimport i18next from 'i18next'\n\n/**\n * Creates an API with the correct headers and error parsing/handling for communication with our servers.\n * Displays a blocking login error message if a login error is received.\n */\nexport default class BaseApi {\n constructor() {\n this.axios = axios.create({\n withCredentials: true,\n headers: {\n Accept: 'application/json, text/plain/, */*',\n 'X-Requested-With': 'XMLHttpRequest',\n },\n transformResponse: [\n responseText => {\n const responseData = JSON.parse(responseText)\n\n if (responseData.error) {\n // Display our blocking login error message if the user isn't logged in\n if (responseData.error === 'notLoggedIn') {\n // eslint-disable-next-line\n edulab.pages.Page.displayBlockingLoginErrorMessage()\n throw new Error('')\n }\n\n // Throw a new error with the returned error message\n throw new Error(responseData.error_msg || responseData.error)\n }\n\n // Unwrap the response data\n return responseData.data !== undefined\n ? responseData.data\n : responseData\n },\n ],\n })\n this.axios.interceptors.response.use(\n // Pass through any ordinary response\n response => response,\n // Translate 'Network Error' into something humans understand and let anything else pass as is.\n error => {\n throw error.message === 'Network Error'\n ? new Error(i18next.t('network-errors.network-error'))\n : error\n }\n )\n }\n}\n\n/**\n * A global instance of the API\n * @type {BaseApi}\n */\nexport const apiInstance = new BaseApi()\n\n/**\n * The Axios instance living inside the global API instance.\n * @type {AxiosInstance}\n */\nexport const axiosInstance = apiInstance.axios\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUserName.vue?vue&type=style&index=0&id=7ad07d6a&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Question.vue?vue&type=style&index=0&id=5ea1bfee&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardHandler.vue?vue&type=style&index=0&id=312cec40&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleChoice.vue?vue&type=style&index=0&id=d74068ce&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnswerFeedback.vue?vue&type=style&index=0&id=5f8980bc&lang=scss&scoped=true&\"","import config from '../../config.json'\nimport { hasProperty } from './object'\n\n/**\n * A map of promises used by `loadScript()`\n * @type {Object}\n * @private\n */\nconst loadScriptPromises = {}\n\n/**\n * Returns the full URL for an image on the CDN server with the given path.\n *\n * @param {string} path\n * @return {string}\n */\nexport function getCdnImageUrl(path) {\n return `${config.cdnImgUrl}${path}`\n}\n\n/**\n * Returns the full URL for an image on the dynamic CDN server with the given ID.\n *\n * @param {number|string} id\n * @return {string}\n */\nexport function getDynCdnImageUrl(id) {\n return `${config.dynCdnImgUrl}/${id}`\n}\n\n/**\n * Returns the URL for the video with the given ID and file type extension.\n *\n * @param {string|number} id\n * @param {string} extension\n * @returns {string}\n */\nexport function getVideoUrl(id, extension) {\n return `${config.cdnVideoUrl}/${id}.${extension}`\n}\n\n/**\n * Loads the JS file with the given path and returns a promise which resolves once the file has been loaded.\n * If the same path is requested multiple times, the same promise will be returned each time.\n * If a script fails to load, the promise will be deleted after rejecting to prevent it from blocking any new attempts to load the file.\n *\n * This function is only to be used in browsers, since `document.head` is used internally.\n *\n * @param {string} path A path or full URL to the JS file to load.\n * @returns {Promise<>}\n */\nexport function loadScript(path) {\n if (hasProperty(loadScriptPromises, path)) {\n return loadScriptPromises[path]\n }\n\n const scriptTag = document.createElement('script')\n\n const promise = new Promise((resolve, reject) => {\n scriptTag.onload = resolve\n scriptTag.onerror = reject\n scriptTag.type = 'text/javascript'\n scriptTag.src = path\n\n document.head.appendChild(scriptTag)\n })\n\n loadScriptPromises[path] = promise\n\n promise.catch(() => {\n document.head.removeChild(scriptTag)\n delete loadScriptPromises[path]\n })\n\n return promise\n}\n","import Vue from 'vue'\nimport { addNamespace } from './utils'\nimport { getProperty, hasProperty, snakeToCamelKeys } from '@/utils/object'\nimport {\n getTestResult,\n saveAnswer as saveTrainingAnswer,\n startFiveSharp,\n startTrialExam,\n} from '@/apis/training'\nimport { saveAnswer as saveHomeworkAnswer } from '@/apis/homework'\nimport { UserAnswerModel } from '@/enums'\n\n/**\n * @file\n * @author Thomas Grinderslev \n */\n\n/**\n * @enum {string}\n */\nexport const QuestionState = {\n EMPTY: 'empty',\n CHANGED: 'changed',\n SAVING: 'saving',\n SAVED: 'saved',\n}\n\n/**\n * @typedef {{description: string, name: string, passed: boolean, pictureId: number|null}} ResultGrade\n * @typedef {{lessonId: number, lessonName: string, topicName: string, topicId: number, has5sharp: boolean, incorrect: number}} LessonScore\n * @typedef {{sessions: Object, questionErrorMessages: Object, questionIds: [], questions: Object, questionStates: Object, userAnswers: Object}>>}} QuestionStoreState\n */\n\n/**\n * Prepares the given state object for a session of the given user answer model and session ID.\n *\n * @param {QuestionStoreState} state\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n */\nfunction prepareStateForSession(state, userAnswerModel, sessionId) {\n // Create an entry for the user answer model if it isn't there already\n if (!state.sessions[userAnswerModel]) {\n Vue.set(state.sessions, userAnswerModel, {})\n }\n\n // Create an entry for the session ID if it isn't there already\n if (!state.sessions[userAnswerModel][sessionId]) {\n Vue.set(state.sessions[userAnswerModel], sessionId, {})\n }\n}\n\n/**\n * The types used in this store\n * @enum {string}\n */\nexport const QuestionStoreTypes = {\n getters: {\n GET_QUESTION: 'getQuestion',\n GET_QUESTION_ERROR_MESSAGE: 'getQuestionErrorMessage',\n GET_QUESTION_STATE: 'getQuestionState',\n GET_QUESTIONS: 'getQuestions',\n GET_ANSWERED_QUESTIONS_COUNT: 'getAnsweredQuestionsCount',\n GET_ANSWER_STATISTICS: 'getAnswerStatistics',\n GET_USER_ANSWER: 'getUserAnswer',\n GET_QUESTION_STATE_COUNT: 'getQuestionStateCount',\n GET_RESULT_ERROR_MESSAGE: 'getResultErrorMessage',\n GET_RESULT_GRADE: 'getResultGrade',\n GET_RESULT_LESSON_SCORES: 'getResultLessonScores',\n HAS_SESSION_DATA: 'hasSessionData',\n },\n actions: {\n FETCH_RESULT: 'fetchResult',\n INITIALIZE_FIVE_SHARP: 'initializeFiveSharp',\n INITIALIZE_TRIAL_EXAM: 'initializeTrialExam',\n INITIALIZE_SESSION: 'initializeSession',\n SELECT_USER_ANSWER: 'selectUserAnswer',\n SUBMIT_USER_ANSWER: 'submitUserAnswer',\n },\n mutations: {\n SET_SESSION: 'setSession',\n SET_QUESTION: 'setQuestion',\n EXTEND_QUESTION: 'extendQuestion',\n CLEAR_QUESTION_ERROR_MESSAGE: 'clearQuestionErrorMessage',\n SET_QUESTION_ERROR_MESSAGE: 'setQuestionErrorMessage',\n SET_QUESTION_STATE: 'setQuestionState',\n SET_RESULT_ERROR_MESSAGE: 'setResultErrorMessage',\n SET_RESULT_GRADE: 'setResultGrade',\n SET_RESULT_LESSON_SCORES: 'setResultLessonScores',\n SET_USER_ANSWER: 'setUserAnswer',\n },\n}\n\n/**\n * A namespaced version of the types used in this store\n * @enum {string}\n */\nexport const QuestionStoreNamespacedTypes = addNamespace(\n 'questions',\n QuestionStoreTypes\n)\n\n/**\n * @returns {QuestionStoreState}\n */\nexport function state() {\n return { sessions: {} }\n}\n\nexport const getters = {\n /**\n * @param {QuestionStoreState} state\n * @returns {function(UserAnswerModel, number, number):Object}\n */\n [QuestionStoreTypes.getters.GET_QUESTION]: state => (\n userAnswerModel,\n sessionId,\n questionId\n ) => {\n return getProperty(\n state.sessions,\n `${userAnswerModel}.${sessionId}.questions.${questionId}`,\n null\n )\n },\n\n /**\n * @param {QuestionStoreState} state\n * @returns {function(UserAnswerModel, number, number):String}\n */\n [QuestionStoreTypes.getters.GET_QUESTION_ERROR_MESSAGE]: state => (\n userAnswerModel,\n sessionId,\n questionId\n ) => {\n return getProperty(\n state.sessions,\n `${userAnswerModel}.${sessionId}.questionErrorMessages.${questionId}`,\n ''\n )\n },\n\n /**\n * @param {QuestionStoreState} state\n * @returns {function(UserAnswerModel, number, number):QuestionState}\n */\n [QuestionStoreTypes.getters.GET_QUESTION_STATE]: state => (\n userAnswerModel,\n sessionId,\n questionId\n ) => {\n return getProperty(\n state.sessions,\n `${userAnswerModel}.${sessionId}.questionStates.${questionId}`,\n QuestionState.EMPTY\n )\n },\n\n /**\n * @param {QuestionStoreState} state\n * @returns {function(UserAnswerModel, number):Array}\n */\n [QuestionStoreTypes.getters.GET_QUESTIONS]: (state, getters) => (\n userAnswerModel,\n sessionId\n ) => {\n return getProperty(\n state.sessions,\n `${userAnswerModel}.${sessionId}.questionIds`,\n []\n ).map(questionId =>\n getters[QuestionStoreTypes.getters.GET_QUESTION](\n userAnswerModel,\n sessionId,\n questionId\n )\n )\n },\n\n /**\n * @param {QuestionStoreState} state\n * @returns {function(UserAnswerModel, number, number):Object}\n */\n [QuestionStoreTypes.getters.GET_USER_ANSWER]: state => (\n userAnswerModel,\n sessionId,\n id\n ) => {\n return (\n getProperty(\n state.sessions,\n `${userAnswerModel}.${sessionId}.userAnswers.${id}`\n ) || null\n )\n },\n\n /**\n * Returns the count of all questions in the given session with the given state.\n *\n * @param {QuestionStoreState} state\n * @returns {function(UserAnswerModel, number, QuestionState):Object}\n */\n [QuestionStoreTypes.getters.GET_QUESTION_STATE_COUNT]: state => (\n userAnswerModel,\n sessionId,\n questionState\n ) => {\n return Object.values(\n getProperty(\n state.sessions,\n `${userAnswerModel}.${sessionId}.questionStates`,\n {}\n )\n ).filter(state => state === questionState).length\n },\n\n /**\n *\n * @param {QuestionStoreState} state\n * @returns {function(UserAnswerModel, number):Object}\n */\n [QuestionStoreTypes.getters.GET_ANSWER_STATISTICS]: (state, getters) => (\n userAnswerModel,\n sessionId\n ) => {\n const statistics = {\n answers: {\n possible: 0,\n correct: 0,\n wrong: 0,\n unanswered: 0,\n },\n points: {\n possible: 0,\n achieved: 0,\n },\n }\n\n getters[QuestionStoreTypes.getters.GET_QUESTIONS](\n userAnswerModel,\n sessionId\n ).forEach(question => {\n statistics.answers.possible++\n statistics.points.possible += question.Question.point\n\n if (!question.UserAnswer) {\n statistics.answers.unanswered++\n } else {\n if (question.UserAnswer.correct) {\n statistics.answers.correct++\n statistics.points.achieved += question.Question.point\n } else {\n statistics.answers.wrong++\n }\n }\n })\n\n return statistics\n },\n\n /**\n * @param {QuestionStoreState} state\n * @returns {function(UserAnswerModel, number):string}\n */\n [QuestionStoreTypes.getters.GET_RESULT_ERROR_MESSAGE]: state => (\n userAnswerModel,\n sessionId\n ) => {\n return getProperty(\n state.sessions,\n `${userAnswerModel}.${sessionId}.resultErrorMessage`,\n ''\n )\n },\n\n /**\n * @param {QuestionStoreState} state\n * @returns {function(UserAnswerModel, number):ResultGrade}\n */\n [QuestionStoreTypes.getters.GET_RESULT_GRADE]: state => (\n userAnswerModel,\n sessionId\n ) => {\n return getProperty(\n state.sessions,\n `${userAnswerModel}.${sessionId}.resultGrade`,\n null\n )\n },\n\n /**\n * @param {QuestionStoreState} state\n * @returns {function(UserAnswerModel, number):string}\n */\n [QuestionStoreTypes.getters.GET_RESULT_LESSON_SCORES]: state => (\n userAnswerModel,\n sessionId\n ) => {\n return getProperty(\n state.sessions,\n `${userAnswerModel}.${sessionId}.lessonScores`,\n null\n )\n },\n\n /**\n * @param {QuestionStoreState} state\n * @returns {function(UserAnswerModel, number):boolean}\n */\n [QuestionStoreTypes.getters.HAS_SESSION_DATA]: state => (\n userAnswerModel,\n sessionId\n ) => {\n return hasProperty(state.sessions, `${userAnswerModel}.${sessionId}`)\n },\n}\n\nexport const actions = {\n /**\n * Calls the server for Five Sharp test data and initializes the store with the returned session data.\n *\n * @param {VuexCommit} commit\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} lessonId\n * @param {number} classLevel\n * @return {Promise}\n */\n [QuestionStoreTypes.actions.INITIALIZE_FIVE_SHARP](\n { commit },\n { lessonId, classLevel }\n ) {\n return startFiveSharp(lessonId, classLevel).then(\n ({ questions, testSettings }) => {\n const sessionId = parseInt(testSettings.Test.id)\n\n commit(QuestionStoreTypes.mutations.SET_SESSION, {\n sessionId,\n userAnswerModel: UserAnswerModel.TEST5SHARP,\n questions,\n })\n\n return sessionId\n }\n )\n },\n /**\n * Calls the server for trial exam data and initializes the store with the returned session data.\n *\n * @param {VuexCommit} commit\n * @param {UserAnswerModel} userAnswerModel\n * @param {TrialExamPostData} postData\n * @return {Promise}\n */\n [QuestionStoreTypes.actions.INITIALIZE_TRIAL_EXAM]({ commit }, postData) {\n return startTrialExam(postData).then(({ questions, testSettings }) => {\n const sessionId = parseInt(testSettings.Test.id)\n\n commit(QuestionStoreTypes.mutations.SET_SESSION, {\n sessionId,\n userAnswerModel: UserAnswerModel.TESTTRIALEXAM,\n questions,\n })\n\n return sessionId\n })\n },\n\n /**\n * Initializes the store with the given session data.\n *\n * @param {VuexCommit} commit\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {Array} questions\n */ [QuestionStoreTypes.actions.INITIALIZE_SESSION](\n { commit },\n { sessionId, userAnswerModel, questions }\n ) {\n commit(QuestionStoreTypes.mutations.SET_SESSION, {\n sessionId,\n userAnswerModel,\n questions,\n })\n },\n\n /**\n * Fetches the result for the given session data.\n *\n * @param {VuexCommit} commit\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {Array} questions\n */\n [QuestionStoreTypes.actions.FETCH_RESULT](\n { commit, getters },\n { sessionId, userAnswerModel }\n ) {\n switch (userAnswerModel) {\n case UserAnswerModel.TEST5SHARP:\n case UserAnswerModel.TESTSTANDARD:\n case UserAnswerModel.TESTTRIALEXAM:\n return getTestResult(sessionId)\n .then(({ lessonScores, questions, statistics: { grade } }) => {\n if (\n getters[QuestionStoreTypes.getters.HAS_SESSION_DATA]({\n sessionId,\n userAnswerModel,\n })\n ) {\n // Extend questions if data for the session already exists in the store\n questions.forEach(question => {\n commit(QuestionStoreTypes.mutations.EXTEND_QUESTION, {\n userAnswerModel,\n sessionId,\n question,\n questionId: question.Question.id,\n })\n })\n } else {\n // Set up a new session with the result data if no session data exists yet\n commit(QuestionStoreTypes.mutations.SET_SESSION, {\n sessionId,\n userAnswerModel,\n questions,\n })\n }\n\n commit(QuestionStoreTypes.mutations.SET_RESULT_GRADE, {\n userAnswerModel,\n sessionId,\n grade: snakeToCamelKeys(grade),\n })\n\n commit(QuestionStoreTypes.mutations.SET_RESULT_LESSON_SCORES, {\n userAnswerModel,\n sessionId,\n lessonScores: Object.keys(lessonScores).map(key => {\n const lessonScore = lessonScores[key]\n\n return {\n lessonId: parseInt(key),\n lessonName: lessonScore.name,\n topicId: parseInt(lessonScore.topic_id),\n topicName: lessonScore.topic,\n has5sharp: lessonScore.has5sharp,\n incorrect: lessonScore.incorrect,\n }\n }),\n })\n })\n .catch(({ message }) => {\n commit(QuestionStoreTypes.mutations.SET_RESULT_ERROR_MESSAGE, {\n userAnswerModel,\n sessionId,\n message,\n })\n })\n default:\n throw 'Unknown user answer model: ' + userAnswerModel\n }\n },\n\n /**\n * Saves the given user answer to the store, but doesn't submit it to the server.\n *\n * @param {VuexCommit} commit\n * @param {VuexGetters} getters\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {number} questionId\n * @param {number|string} userAnswer\n * @param {number} lapsedTime\n */\n [QuestionStoreTypes.actions.SELECT_USER_ANSWER](\n { commit },\n { userAnswerModel, sessionId, questionId, userAnswer, lapsedTime }\n ) {\n commit(QuestionStoreTypes.mutations.SET_USER_ANSWER, {\n userAnswerModel,\n sessionId,\n questionId,\n userAnswer,\n lapsedTime,\n })\n\n commit(QuestionStoreTypes.mutations.SET_QUESTION_STATE, {\n userAnswerModel,\n sessionId,\n questionId,\n questionState:\n userAnswer || userAnswer === 0 || userAnswer === '0'\n ? QuestionState.CHANGED\n : QuestionState.EMPTY,\n })\n },\n\n /**\n * Submits a user answer to the server and updates the store with the user answer, server response or any error messages.\n * If no user answer is given both user answer and lapsed time will be loaded from the store if possible.\n *\n * @param {VuexCommit} commit\n * @param {VuexGetters} getters\n * @param {number} questionId\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {*=} userAnswer\n * @param {number=} lapsedTime\n * @returns {Promise} A promise that resolves with the server response.\n */\n async [QuestionStoreTypes.actions.SUBMIT_USER_ANSWER](\n { commit, getters },\n { userAnswerModel, sessionId, questionId, userAnswer, lapsedTime }\n ) {\n // Try to find a user answer in the store if no user answer is given\n if (userAnswer === undefined) {\n try {\n const storedAnswer = getters[\n QuestionStoreTypes.getters.GET_USER_ANSWER\n ](userAnswerModel, sessionId, questionId)\n\n userAnswer = storedAnswer.userAnswer\n lapsedTime = storedAnswer.lapsedTime\n } catch (err) {\n // Do nothing\n }\n }\n\n commit(QuestionStoreTypes.mutations.SET_USER_ANSWER, {\n userAnswerModel,\n sessionId,\n questionId,\n userAnswer,\n lapsedTime,\n })\n\n commit(QuestionStoreTypes.mutations.CLEAR_QUESTION_ERROR_MESSAGE, {\n userAnswerModel,\n sessionId,\n questionId,\n })\n\n commit(QuestionStoreTypes.mutations.SET_QUESTION_STATE, {\n userAnswerModel,\n sessionId,\n questionId,\n questionState: QuestionState.SAVING,\n })\n\n // Wait for the defined time before sending anything to the server, to ease the stress on the server in stressful situations\n if (window.vueSettings && window.vueSettings.answerDelay) {\n await new Promise(resolve =>\n setTimeout(() => resolve(), window.vueSettings.answerDelay)\n )\n }\n\n let saveCallback\n\n switch (userAnswerModel) {\n case UserAnswerModel.TEST5SHARP:\n case UserAnswerModel.TESTSTANDARD:\n case UserAnswerModel.TESTTRIALEXAM:\n saveCallback = saveTrainingAnswer(\n questionId,\n userAnswer,\n lapsedTime,\n sessionId,\n userAnswerModel\n )\n break\n case UserAnswerModel.STANDARD:\n case UserAnswerModel.DIFFERENTIATED:\n saveCallback = saveHomeworkAnswer(\n questionId,\n userAnswer,\n lapsedTime,\n sessionId\n )\n break\n default:\n commit(QuestionStoreTypes.mutations.SET_QUESTION_ERROR_MESSAGE, {\n userAnswerModel,\n sessionId,\n questionId,\n errorMessage: `Unknown user answer model: \"${userAnswerModel}\"`,\n })\n commit(QuestionStoreTypes.mutations.SET_QUESTION_STATE, {\n userAnswerModel,\n sessionId,\n questionId,\n questionState: QuestionState.CHANGED,\n })\n return\n }\n\n saveCallback\n .then(question => {\n commit(QuestionStoreTypes.mutations.EXTEND_QUESTION, {\n userAnswerModel,\n sessionId,\n questionId,\n question,\n })\n\n commit(QuestionStoreTypes.mutations.SET_QUESTION_STATE, {\n userAnswerModel,\n sessionId,\n questionId,\n questionState: QuestionState.SAVED,\n })\n })\n .catch(error => {\n commit(QuestionStoreTypes.mutations.SET_QUESTION_ERROR_MESSAGE, {\n userAnswerModel,\n sessionId,\n questionId,\n errorMessage: error.message || error,\n })\n commit(QuestionStoreTypes.mutations.SET_QUESTION_STATE, {\n userAnswerModel,\n sessionId,\n questionId,\n questionState: QuestionState.CHANGED,\n })\n })\n\n return saveCallback\n },\n}\n\nexport const mutations = {\n /**\n * Sets up a session with the given questions.\n * The question array is traversed and the necessary arrays and maps are added to the state.\n *\n * @param {QuestionStoreState} state\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {Array} questions\n * @param {Object=} userAnswers\n */\n [QuestionStoreTypes.mutations.SET_SESSION](\n state,\n { userAnswerModel, sessionId, questions, userAnswers = {} }\n ) {\n prepareStateForSession(state, userAnswerModel, sessionId)\n\n const questionMap = {}\n const questionStates = {}\n\n // Create an array of question IDs while also adding data to ID keyed objects for easier future access\n const questionIds = questions.map(question => {\n const questionId = getProperty(question, 'Question.id')\n\n questionMap[questionId] = question\n\n // Identify earlier answered questions\n if (question.UserAnswer && question.UserAnswer.id) {\n questionStates[questionId] = QuestionState.SAVED\n } else {\n questionStates[questionId] = QuestionState.EMPTY\n }\n\n return questionId\n })\n\n Vue.set(state.sessions[userAnswerModel], sessionId, {\n questionIds,\n questions: questionMap,\n questionStates,\n userAnswers,\n questionErrorMessages: {},\n })\n },\n\n /**\n * @param {QuestionStoreState} state\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {number} questionId\n * @param {Object} question\n */\n [QuestionStoreTypes.mutations.SET_QUESTION](\n state,\n { userAnswerModel, sessionId, questionId, question }\n ) {\n Vue.set(\n state.sessions[userAnswerModel][sessionId].questions,\n questionId,\n question\n )\n },\n\n /**\n * Extends any existing question with the given data.\n *\n * @param {QuestionStoreState} state\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {number} questionId\n * @param {Object} question Question related data to extend with.\n */\n [QuestionStoreTypes.mutations.EXTEND_QUESTION](\n state,\n { userAnswerModel, sessionId, questionId, question }\n ) {\n Vue.set(\n state.sessions[userAnswerModel][sessionId].questions,\n questionId,\n Object.assign(\n {},\n state.sessions[userAnswerModel][sessionId].questions[questionId],\n question\n )\n )\n },\n\n /**\n * @param {QuestionStoreState} state\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {Array} questions\n */\n [QuestionStoreTypes.mutations.CLEAR_QUESTION_ERROR_MESSAGE](\n state,\n { userAnswerModel, sessionId, questionId }\n ) {\n Vue.delete(\n state.sessions[userAnswerModel][sessionId].questionErrorMessages,\n questionId\n )\n },\n\n /**\n * @param {QuestionStoreState} state\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {Array} questions\n */\n [QuestionStoreTypes.mutations.SET_QUESTION_ERROR_MESSAGE](\n state,\n { userAnswerModel, sessionId, questionId, errorMessage }\n ) {\n Vue.set(\n state.sessions[userAnswerModel][sessionId].questionErrorMessages,\n questionId,\n errorMessage\n )\n },\n\n /**\n * @param {QuestionStoreState} state\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {Array} questions\n */\n [QuestionStoreTypes.mutations.SET_QUESTION_STATE](\n state,\n { userAnswerModel, sessionId, questionId, questionState }\n ) {\n Vue.set(\n state.sessions[userAnswerModel][sessionId].questionStates,\n questionId,\n questionState\n )\n },\n\n /**\n * @param {QuestionStoreState} state\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {string} errorMessage\n */\n [QuestionStoreTypes.mutations.SET_RESULT_ERROR_MESSAGE](\n state,\n { userAnswerModel, sessionId, errorMessage }\n ) {\n prepareStateForSession(state, userAnswerModel, sessionId)\n\n state.sessions[userAnswerModel][sessionId].resultErrorMessage = errorMessage\n },\n\n /**\n * @param {QuestionStoreState} state\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {ResultGrade} grade\n */\n [QuestionStoreTypes.mutations.SET_RESULT_GRADE](\n state,\n { userAnswerModel, sessionId, grade }\n ) {\n prepareStateForSession(state, userAnswerModel, sessionId)\n\n state.sessions[userAnswerModel][sessionId].resultGrade = grade\n },\n /**\n * @param {QuestionStoreState} state\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {Array<{lessonId: number, has5sharp: boolean, incorrect: number, name: string, topicName: string, topicId: number}>} lessonScores\n */\n [QuestionStoreTypes.mutations.SET_RESULT_LESSON_SCORES](\n state,\n { userAnswerModel, sessionId, lessonScores }\n ) {\n prepareStateForSession(state, userAnswerModel, sessionId)\n\n state.sessions[userAnswerModel][sessionId].lessonScores = lessonScores\n },\n\n /**\n * @param {QuestionStoreState} state\n * @param {UserAnswerModel} userAnswerModel\n * @param {number} sessionId\n * @param {Array} questions\n */\n [QuestionStoreTypes.mutations.SET_USER_ANSWER](\n state,\n { userAnswerModel, sessionId, questionId, userAnswer, lapsedTime }\n ) {\n Vue.set(\n state.sessions[userAnswerModel][sessionId].userAnswers,\n questionId,\n {\n userAnswer,\n lapsedTime,\n }\n )\n },\n}\n\nexport default {\n namespaced: true,\n Types: QuestionStoreTypes,\n NamespacedTypes: QuestionStoreNamespacedTypes,\n state,\n getters,\n actions,\n mutations,\n}\n","import { arrayToString, leftPad } from './string'\nimport config from '../../config'\nimport { enGB as en, da, sv, nb, nl } from 'date-fns/locale'\nimport format from 'date-fns/format'\nimport formatDistanceStrict from 'date-fns/formatDistanceStrict'\n\nimport i18next from 'i18next'\n\nconst locales = { en, da, sv, nb, nl }\n\n/**\n * Relative time part names used in a RelativeTimeMap\n * @enum {{string}}\n */\nexport const RelativeTimeMapPart = {\n SECONDS: 'seconds',\n MINUTES: 'minutes',\n HOURS: 'hours',\n DAYS: 'days',\n WEEKS: 'weeks',\n}\n\n/**\n * Represents time as an object divided into weeks, days, hours, minutes, numbers and seconds.\n * All values are optional, but should always be integers and never exceed the partition above itself.\n * Years and months aren't included because of their fussiness.\n *\n * @typedef {Object} RelativeTimeMap\n */\n\n/**\n * The amount of milliseconds in a second.\n * @type {number}\n */\nexport const SECOND = 1000\n\n/**\n * The amount of milliseconds in a minute.\n * @type {number}\n */\nexport const MINUTE = SECOND * 60\n\n/**\n * The amount of milliseconds in an hour.\n * @type {number}\n */\nexport const HOUR = MINUTE * 60\n\n/**\n * The amount of milliseconds in a day.\n * @type {number}\n */\nexport const DAY = HOUR * 24\n\n/**\n * The amount of milliseconds in a week.\n * @type {number}\n */\nexport const WEEK = DAY * 7\n\n/**\n * Converts an amount of milliseconds to a map of relative time parts for easier formatting.\n *\n * @param {number} milliseconds\n * @returns {RelativeTimeMap}\n */\nexport function msToRelativeTimeMap(milliseconds) {\n return {\n [RelativeTimeMapPart.SECONDS]: Math.floor((milliseconds % MINUTE) / SECOND),\n [RelativeTimeMapPart.MINUTES]: Math.floor((milliseconds % HOUR) / MINUTE),\n [RelativeTimeMapPart.HOURS]: Math.floor((milliseconds % DAY) / HOUR),\n [RelativeTimeMapPart.DAYS]: Math.floor((milliseconds % WEEK) / DAY),\n [RelativeTimeMapPart.WEEKS]: Math.floor(milliseconds / WEEK),\n }\n}\n\n/**\n * Formats a relative time map as a human readable string.\n *\n * @param {RelativeTimeMap} relativeTimeMap\n * @param {boolean=} compactTime Set true to display the time as `23:45:34` instead of `23 hours, 45 minutes and 34 seconds`.\n * @param hideSeconds Set true to hide the seconds in the output string.\n * @returns {string}\n */\nexport function formatRelativeTimeMap(\n relativeTimeMap,\n compactTime,\n hideSeconds\n) {\n let returnValue = []\n\n const weeks = relativeTimeMap[RelativeTimeMapPart.WEEKS] || 0\n const days = relativeTimeMap[RelativeTimeMapPart.DAYS] || 0\n const hours = relativeTimeMap[RelativeTimeMapPart.HOURS] || 0\n const minutes = relativeTimeMap[RelativeTimeMapPart.MINUTES] || 0\n const seconds = relativeTimeMap[RelativeTimeMapPart.SECONDS] || 0\n\n if (weeks) {\n returnValue.push(i18next.t('date-time.week', { count: weeks, weeks }))\n }\n\n if (days) {\n returnValue.push(i18next.t('date-time.day', { count: days, days }))\n }\n\n if (compactTime) {\n if (hideSeconds) {\n // Display hours:minutes\n returnValue.push(`${hours}:${leftPad(minutes, 2)}`)\n } else if (hours) {\n // Display hours:minutes:seconds\n returnValue.push(`${hours}:${leftPad(minutes, 2)}:${leftPad(seconds, 2)}`)\n } else {\n // Display minutes:seconds\n returnValue.push(`${minutes}:${leftPad(seconds, 2)}`)\n }\n } else {\n if (hours) {\n returnValue.push(i18next.t('date-time.hour', { count: hours, hours }))\n }\n\n if (minutes) {\n returnValue.push(\n i18next.t('date-time.minute', { count: minutes, minutes })\n )\n }\n\n if (seconds && !hideSeconds) {\n returnValue.push(\n i18next.t('date-time.second', { count: seconds, seconds })\n )\n }\n }\n\n return arrayToString(returnValue)\n}\n\n/**\n * Shows time in the format of \"00:00\"\n * @param {Date} date\n * @returns {string}\n */\nexport function getPrettyTime(date) {\n if (!date || !(date instanceof Date)) {\n throw 'date needs to be a Date object'\n }\n\n // TODO this will need localization. research moment.js or perhaps intl.DateTimeFormat (but the latter formats time wrong).\n // DateTimeFormat outputs danish time as \"14.34\" which is REALLY weird!! beause we use : usually. >:(\n\n return formatRelativeTimeMap(\n {\n [RelativeTimeMapPart.HOURS]: date.getHours(),\n [RelativeTimeMapPart.MINUTES]: date.getMinutes(),\n },\n true,\n true\n )\n}\n\n/**\n * Creates a pretty, readable date format string, using locale\n * @param {Date} date\n * @returns {string}\n */\nexport function getPrettyDate(date) {\n if (!date || !(date instanceof Date)) {\n throw 'date needs to be a Date object'\n }\n\n return format(date, 'do MMM y', {\n locale: locales[config.locale],\n })\n}\n\n/**\n * Turns our date string into parts and then a Date object, as this shows consistent dates across all browsers.\n * @param {string} string\n * @returns {Date}\n */\nexport function stringToDate(string) {\n if (!string || typeof string !== 'string') {\n return null\n }\n\n const matches = /^((?:19|20)[0-9]{2})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(?: ([01][0-9]|2[0-4]):([0-5][0-9])(?::([0-5][0-9]))?)?$/.exec(\n string\n )\n\n if (!matches) {\n return null\n }\n\n return new Date(\n parseInt(matches[1]), // Year\n parseInt(matches[2]) - 1, // Month\n parseInt(matches[3]), // Date\n parseInt(matches[4]), // Hour\n parseInt(matches[5]), // Minute\n parseInt(matches[6]) // Second\n )\n}\n\n/**\n * Take a JS Date object and returns a string formatted as a MySQL DateTime string\n * Can omit seconds if noSecs is true\n * @param {Date} dateObj JS Date object to convert.\n * @param {boolean=} noSecs Optional no seconds.\n * @param {boolean=} noHMS Optional HMS.\n * @return {string} mysql datetime string.\n */\nexport function dateToString(dateObj, noSecs, noHMS) {\n if (!dateObj || !(dateObj instanceof Date)) {\n return ''\n }\n\n noSecs = noSecs || false\n\n let string =\n dateObj.getFullYear() +\n '-' +\n leftPad(dateObj.getMonth() + 1, 2) +\n '-' +\n leftPad(dateObj.getDate(), 2)\n\n // Only use hour:mins:secs if object is instance of DateTime - else these don't exist\n if (dateObj instanceof Date && !noHMS) {\n string +=\n ' ' +\n leftPad(dateObj.getHours(), 2) +\n ':' +\n leftPad(dateObj.getMinutes(), 2) +\n (noSecs ? '' : ':' + leftPad(dateObj.getSeconds(), 2))\n }\n\n return string\n}\n\n/**\n *\n * @param {Date} date\n * @returns {string}\n */\nexport function getRelativeTime(date) {\n if (!date || !(date instanceof Date)) {\n throw 'date needs to be a Date object'\n }\n\n return formatDistanceStrict(date, new Date(), {\n locale: locales[config.locale],\n })\n}\n\n/**\n * Formats the given number of milliseconds as seconds, minutes, hours, days and weeks.\n *\n * @param {number} milliseconds\n * @param {boolean=} compactTime\n * @returns {string}\n */\nexport function formatDuration(milliseconds, compactTime) {\n return formatRelativeTimeMap(msToRelativeTimeMap(milliseconds), compactTime)\n}\n\n/// New stuff starts here\n\n/**\n * Common date ranges\n * @enum {string}\n */\nexport const DateRange = {\n CURRENT_WEEK: 'currentWeek',\n LAST_WEEK: 'lastWeek',\n CURRENT_MONTH: 'currentMonth',\n LAST_MONTH: 'lastMonth',\n CURRENT_YEAR: 'currentYear',\n LAST_YEAR: 'lastYear',\n}\n\n/**\n * Common date range units\n * @enum {string}\n */\nexport const DateRangeUnit = {\n DAY: 'day',\n WEEK: 'week',\n MONTH: 'month',\n YEAR: 'year',\n}\n\n/**\n * Clones a date\n *\n * @param {Date} date\n * @return {Date}\n */\nexport function cloneDate(date) {\n return new Date(date.toISOString())\n}\n\n/**\n * Clones a date range\n *\n * @param {Array} dateRange\n * @return {Array}\n */\nexport function cloneDateRange(dateRange) {\n return dateRange.map(cloneDate)\n}\n\n/**\n * Returns true if the two dates have the exact same timestamp.\n *\n * @param {Date} date1\n * @param {Date} date2\n * @return {boolean}\n */\nexport function isSameDate(date1, date2) {\n return date1.getTime() === date2.getTime()\n}\n\n/**\n * Returns true if the two date ranges have the exact same amount of dates and the dates have the same timestamps.\n *\n * @param {Array} range1\n * @param {Array} range2\n * @return {boolean}\n */\nexport function isSameDateRange(range1, range2) {\n return (\n range1.length === range2.length &&\n !range1.some((date, index) => !isSameDate(date, range2[index]))\n )\n}\n\n/**\n * Returns the duration of a given date range or between two given dates.\n *\n * @param {Array|Date} dateOrRange\n * @param {Date=} date\n * @return {number}\n */\nexport function getDateRangeDuration(dateOrRange, date) {\n if (arguments.length === 1) {\n if (dateOrRange.length > 1) {\n return Math.abs(dateOrRange[0].getTime() - dateOrRange[1].getTime())\n } else {\n return 0\n }\n } else {\n return Math.abs(dateOrRange.getTime() - date.getTime())\n }\n}\n\n/**\n * Creates a pretty, readable date format string, using locale\n * @param {Array} range\n * @returns {string}\n */\nexport function getPrettyDateRange(range) {\n return range.map(getPrettyDate).join(' - ')\n}\n\n/**\n * Returns the current year.\n * @return {number}\n */\nexport function getCurrentYear() {\n return new Date().getFullYear()\n}\n\n/**\n * Returns a date object representing the first day of the given month (at 00:00:00.000 o'clock)\n *\n * @param {number} month\n * @param {number=} year\n * @return {Date}\n */\nexport function getFirstDayOfMonth(month, year) {\n return new Date(year || getCurrentYear(), month, 1, 0, 0, 0, 0)\n}\n\n/**\n * Returns a date object representing the last day of the given month (at 23:59:59.999 o'clock)\n *\n * @param {number} month\n * @param {number=} year\n * @return {Date}\n */\nexport function getLastDayOfMonth(month, year) {\n const date = getFirstDayOfMonth(month + 1, year)\n\n return new Date(date.getTime() - 1)\n}\n\n/**\n * Returns a date object representing the first day of the given year (at 00:00:00.000 o'clock)\n *\n * @param {number=} year\n * @return {Date}\n */\nexport function getFirstDayOfYear(year) {\n return getFirstDayOfMonth(0, year)\n}\n\n/**\n * Returns a date object representing the last day of the given year (at 23:59:59.999 o'clock)\n *\n * @param {number=} year\n * @return {Date}\n */\nexport function getLastDayOfYear(year) {\n return getLastDayOfMonth(11, year)\n}\n\n/**\n * Returns a new date with the first time of the given date.\n *\n * @param {Date} date\n * @returns {Date}\n */\nexport function getBeginningOfDay(date) {\n return setBeginningOfDay(cloneDate(date))\n}\n\n/**\n * Returns a new date with the first time of the week containing the given date.\n *\n * @param {Date} date\n * @param {number=} weekStartDay\n * @returns {Date}\n */\nexport function getBeginningOfWeek(date, weekStartDay = 1) {\n const newDate = getBeginningOfDay(date)\n\n newDate.setDate(newDate.getDate() - newDate.getDay() + weekStartDay)\n\n if (newDate.getTime() > date.getTime()) {\n newDate.setDate(newDate.getDate() - 7)\n }\n\n return newDate\n}\n\n/**\n * Returns a new date with the first time of the month containing the given date.\n *\n * @param {Date} date\n * @returns {Date}\n */\nexport function getBeginningOfMonth(date) {\n const newDate = getBeginningOfDay(date)\n\n newDate.setDate(1)\n\n return newDate\n}\n\n/**\n * Returns a new date with the first time of the year containing the given date.\n *\n * @param {Date} date\n * @returns {Date}\n */\nexport function getBeginningOfYear(date) {\n const newDate = new Date(date.getFullYear(), 0, 1)\n\n return setBeginningOfDay(newDate)\n}\n\n/**\n * Returns a new date with the last time of the given date.\n *\n * @param {Date} date\n * @returns {Date}\n */\nexport function getEndOfDay(date) {\n return setEndOfDay(cloneDate(date))\n}\n\n/**\n * Returns a new date with the last time of the week containing the given date.\n *\n * @param {Date} date\n * @param {number=} weekStartDay\n * @returns {Date}\n */\nexport function getEndOfWeek(date, weekStartDay = 1) {\n const newDate = getBeginningOfWeek(date, weekStartDay)\n\n newDate.setDate(newDate.getDate() + 6)\n\n return setEndOfDay(newDate)\n}\n\n/**\n * Returns a new date with the last time of the month containing the given date.\n *\n * @param {Date} date\n * @returns {Date}\n */\nexport function getEndOfMonth(date) {\n return getLastDayOfMonth(date.getMonth(), date.getFullYear())\n}\n\n/**\n * Returns a new date with the first time of the year containing the given date.\n *\n * @param {Date} date\n * @returns {Date}\n */\nexport function getEndOfYear(date) {\n return getLastDayOfMonth(11, date.getFullYear())\n}\n\n/**\n * Sets the given date time to 00:00:00.000 o'clock\n *\n * @param {Date} date\n * @returns {Date} The modified date object\n */\nexport function setBeginningOfDay(date = new Date()) {\n date.setHours(0, 0, 0, 0)\n return date\n}\n\n/**\n * Sets the given date time to 23:59:59.999 o'clock\n *\n * @param {Date} date\n * @returns {Date} The modified date object\n */\nexport function setEndOfDay(date = new Date()) {\n date.setHours(23, 59, 59, 999)\n return date\n}\n\n/**\n * Returns a new Date object set to the start of a given unit period.\n *\n * @param {DateRangeUnit} unit\n * @param {Date} date\n * @param {number} weekStartDay\n * @returns {Date}\n */\nfunction getBeginningOfRange(unit, date = new Date(), weekStartDay = 1) {\n if (!unit || !Object.values(DateRangeUnit).includes(unit)) {\n throw 'Unknown date range unit identifier used'\n }\n\n switch (unit) {\n case DateRangeUnit.DAY:\n return getBeginningOfDay(date)\n case DateRangeUnit.WEEK:\n return getBeginningOfWeek(date, weekStartDay)\n case DateRangeUnit.MONTH:\n return getBeginningOfMonth(date)\n case DateRangeUnit.YEAR:\n return getBeginningOfYear(date)\n }\n\n return date\n}\n\n/**\n * Returns a new Date object set to the end of a given unit period.\n *\n * @param {DateRangeUnit} unit\n * @param {Date} date\n * @param {number} weekStartDay\n * @returns {Date}\n */\nexport function getEndOfRange(unit, date = new Date(), weekStartDay = 1) {\n if (!unit || !Object.values(DateRangeUnit).includes(unit)) {\n throw 'Unknown date range unit identifier used'\n }\n\n switch (unit) {\n case DateRangeUnit.DAY:\n return getEndOfDay(date)\n case DateRangeUnit.WEEK:\n return getEndOfWeek(date, weekStartDay)\n case DateRangeUnit.MONTH:\n return getEndOfMonth(date)\n case DateRangeUnit.YEAR:\n return getEndOfYear(date)\n }\n\n return date\n}\n\n/**\n * A magic method that travels in time periods.\n * The function travels a specified amount of units (ENUM from DateRangeUnit) back and forwards in time.\n * To travel forward in time use a positive amount eg. 1.\n * To travel backwards in time use a negative amount eg. -1.\n *\n * @param {DateRangeUnit} unit\n * @param {Date} date\n * @param {number} amount\n * @returns {Date}\n */\nexport function timeTravel(unit, date = new Date(), amount = 1) {\n if (!unit || !Object.values(DateRangeUnit).includes(unit)) {\n throw 'Unknown date range unit identifier used'\n }\n\n switch (unit) {\n case DateRangeUnit.DAY:\n return new Date(date.getTime() + amount * DAY)\n case DateRangeUnit.WEEK:\n return new Date(date.getTime() + amount * WEEK)\n case DateRangeUnit.MONTH:\n return date.getDate() === 1\n ? getFirstDayOfMonth(date.getMonth() + amount, date.getFullYear())\n : getLastDayOfMonth(date.getMonth() + amount, date.getFullYear())\n case DateRangeUnit.YEAR:\n return date.getDate() === 1\n ? getFirstDayOfYear(date.getFullYear() + amount)\n : getLastDayOfYear(date.getFullYear() + amount)\n }\n\n return date\n}\n\n/**\n * Gets a date range based on an identifier\n * @param {DateRange} dateRange\n * @returns {Array}\n */\nexport function getDateRangeFromIdentifier(dateRange) {\n if (!dateRange && !Object.values(DateRange).includes(dateRange)) {\n throw 'Unknown date range identifier used'\n }\n\n let startDate = null\n let endDate = null\n\n switch (dateRange) {\n case DateRange.CURRENT_WEEK:\n startDate = getBeginningOfRange(DateRangeUnit.WEEK)\n endDate = getEndOfRange(DateRangeUnit.WEEK)\n break\n case DateRange.LAST_WEEK:\n startDate = timeTravel(\n DateRangeUnit.WEEK,\n getBeginningOfRange(DateRangeUnit.WEEK)\n )\n endDate = timeTravel(\n DateRangeUnit.WEEK,\n getEndOfRange(DateRangeUnit.WEEK)\n )\n break\n case DateRange.CURRENT_MONTH:\n startDate = getBeginningOfRange(DateRangeUnit.MONTH)\n endDate = getEndOfRange(DateRangeUnit.MONTH)\n break\n case DateRange.LAST_MONTH:\n startDate = timeTravel(\n DateRangeUnit.MONTH,\n getBeginningOfRange(DateRangeUnit.MONTH)\n )\n endDate = getEndOfRange(\n DateRangeUnit.MONTH,\n timeTravel(DateRangeUnit.MONTH, new Date())\n )\n break\n case DateRange.CURRENT_YEAR:\n startDate = getBeginningOfRange(DateRangeUnit.YEAR)\n endDate = getEndOfRange(DateRangeUnit.YEAR)\n break\n case DateRange.LAST_YEAR:\n startDate = timeTravel(\n DateRangeUnit.YEAR,\n getBeginningOfRange(DateRangeUnit.YEAR)\n )\n endDate = timeTravel(\n DateRangeUnit.YEAR,\n getEndOfRange(DateRangeUnit.YEAR)\n )\n break\n }\n\n return [cloneDate(startDate), cloneDate(endDate)]\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FaIcon.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BattleQueue.vue?vue&type=style&index=0&id=9b1eb576&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"public-user-name\",class:[(_vm.layout + \"-layout\"), _vm.type, { editable: _vm.canEdit }]},[(_vm.canEdit && _vm.emoji)?_c('PublicEmojiEditorPopup',{attrs:{\"show\":_vm.showEmojiPopup,\"emoji\":_vm.emoji},on:{\"close\":function($event){_vm.showEmojiPopup = false},\"open\":function($event){_vm.showEmojiPopup = true},\"emojiSaved\":_vm.emojiSaved}}):_vm._e(),_c('div',{staticClass:\"emoji-wrapper\",attrs:{\"role\":_vm.canEdit ? 'button' : false,\"aria-haspopup\":_vm.canEdit},on:{\"click\":function($event){$event.stopPropagation();return _vm.emojiClicked($event)}}},[(_vm.emoji)?_c('PublicUserEmoji',{attrs:{\"emoji\":_vm.emoji,\"glow\":_vm.glow}}):_vm._e()],1),(_vm.canEdit)?_c('PublicUsernameEditorPopup',{attrs:{\"show\":_vm.showWordsPopup,\"word-one-data\":_vm.firstWordData,\"word-two-data\":_vm.secondWordData},on:{\"close\":function($event){_vm.showWordsPopup = false},\"open\":function($event){_vm.showWordsPopup = true},\"usernameSaved\":_vm.usernameSaved}}):_vm._e(),_c('div',{staticClass:\"text-wrapper\",attrs:{\"role\":_vm.canEdit ? 'button' : false,\"aria-haspopup\":_vm.canEdit},on:{\"click\":function($event){$event.stopPropagation();return _vm.editUserName($event)}}},[(_vm.isLoading)?_c('LoadingOverlay',{attrs:{\"size\":1}}):_vm._e(),_c('p',{staticClass:\"user-name-text\",class:{ 'can-edit': _vm.canEdit },attrs:{\"title\":_vm.userNameText}},[_vm._v(\" \"+_vm._s(_vm.isCompact ? _vm.usernameInitials : _vm.userNameText)+\" \"),(_vm.canEdit)?_c('FaIcon',{attrs:{\"icon\":\"pen\",\"type\":\"regular\"}}):_vm._e()],1),_vm._t(\"default\")],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"emoji\",class:{ 'on-apple-device': _vm.onAppleDevice }},[(_vm.glow)?_c('svg',{staticClass:\"emoji-glow\",attrs:{\"viewBox\":\"0 0 42 42\"}},[_c('defs',[_c('radialGradient',{attrs:{\"id\":_vm.gradientId,\"cx\":\"50%\",\"cy\":\"50%\",\"r\":\"50%\"}},[_c('stop',{attrs:{\"stop-color\":\"currentColor\",\"offset\":\"50%\"}}),_c('stop',{attrs:{\"stop-color\":\"currentColor\",\"stop-opacity\":\"0\",\"offset\":\"100%\"}})],1)],1),_c('path',{attrs:{\"id\":\"path\",\"d\":_vm.getGlowPath(),\"fill\":(\"url(#\" + _vm.gradientId + \")\")}})]):_vm._e(),_c('span',{staticClass:\"emoji-span\"},[_vm._v(_vm._s(_vm.emoji))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","let baseId = 0\n\n/**\n * Returns a globally unique ID\n * (assuming nothing else is created unique IDs in a similar fashion)\n *\n * @param {string=} prefix\n * @return {string|number}\n */\nexport function createUniqueId(prefix) {\n baseId++\n\n if (prefix !== undefined) {\n return `${prefix}-${baseId++}`\n }\n\n return baseId.toString()\n}\n","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUserEmoji.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUserEmoji.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PublicUserEmoji.vue?vue&type=template&id=1af6b14a&scoped=true&\"\nimport script from \"./PublicUserEmoji.vue?vue&type=script&lang=js&\"\nexport * from \"./PublicUserEmoji.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PublicUserEmoji.vue?vue&type=style&index=0&id=1af6b14a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1af6b14a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Popup',{ref:\"popup\",staticClass:\"username-editor-popup\",on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('article',{staticClass:\"username-editor\"},[(_vm.isSaving)?_c('LoadingOverlay'):_vm._e(),_c('h2',[_vm._v(_vm._s(_vm.$t('adaptive-test-battle.username-editor-popup-heading')))]),_c('PublicUsernameEditor',{ref:\"editor\",attrs:{\"word-one-data\":_vm.wordOneData,\"word-two-data\":_vm.wordTwoData}}),(_vm.hasError)?_c('ErrorMessage',[_c('p',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e(),_c('div',{staticClass:\"buttons\"},[_c('ThreeDButton',{on:{\"click\":function($event){return _vm.$refs.editor.populatedAndShuffleWordOptions()}}},[_vm._v(\" \"+_vm._s(_vm.$t('adaptive-test-battle.reload-words-button'))+\" \"),_c('FaIcon',{staticClass:\"redo-icon\",attrs:{\"icon\":\"redo\"}})],1),_c('ConfirmChoiceButton',{on:{\"click\":_vm.saveChanges}})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('article',{staticClass:\"public-username-editor\"},[(_vm.randomWordsWithColors.length > 0)?_c('section',{staticClass:\"word-picker\"},[_c('ul',{staticClass:\"word-options\"},_vm._l((_vm.randomWordsWithColors),function(ref){\nvar word = ref.word;\nvar color = ref.color;\nreturn _c('li',{key:word['id'],staticClass:\"word-option\",class:[color],attrs:{\"data-word-id\":word['id'],\"draggable\":\"true\"},on:{\"click\":_vm.onClickWord,\"dragstart\":_vm.onDragWord}},[_c('span',{staticClass:\"word\"},[_vm._v(_vm._s(word['word']))])])}),0)]):_vm._e(),(_vm.hasErrors)?_c('ErrorMessage',[_c('p',[_vm._v(\" \"+_vm._s(_vm.$t('adaptive-test-battle.unable-to-load-words-error-message'))+\" \")])]):_vm._e(),_c('section',{staticClass:\"picked-words\"},[_c('div',{staticClass:\"drop-zone-wrapper\"},[_c('button',{staticClass:\"reset-word-button\",attrs:{\"title\":_vm.$t('adaptive-test-battle.reset-word-button')},on:{\"click\":function($event){_vm.selectedWordOne = _vm.wordOneData}}},[_c('FaIcon',{attrs:{\"icon\":\"times\"}})],1),_c('div',{ref:\"wordOne\",staticClass:\"picked-word word-one\",class:_vm.classObject(0),attrs:{\"draggable\":\"true\",\"data-word-id\":_vm.selectedWordOne ? _vm.selectedWordOne['id'] : 0},on:{\"dragstart\":_vm.onDragWord,\"dragenter\":_vm.onDragOverWord,\"dragover\":_vm.onDragOverWord,\"drop\":_vm.onDropWord}},[_c('span',{staticClass:\"word\"},[_vm._v(_vm._s(_vm.selectedWordOne['word']))])])]),_c('div',{staticClass:\"drop-zone-wrapper\"},[_c('button',{staticClass:\"reset-word-button\",attrs:{\"title\":_vm.$t('adaptive-test-battle.reset-word-button')},on:{\"click\":function($event){_vm.selectedWordTwo = _vm.wordTwoData}}},[_c('FaIcon',{attrs:{\"icon\":\"times\"}})],1),_c('div',{ref:\"wordTwo\",staticClass:\"picked-word word-two\",class:_vm.classObject(1),attrs:{\"draggable\":\"true\",\"data-word-id\":_vm.selectedWordTwo ? _vm.selectedWordTwo['id'] : 0},on:{\"dragstart\":_vm.onDragWord,\"dragenter\":_vm.onDragOverWord,\"dragover\":_vm.onDragOverWord,\"drop\":_vm.onDropWord}},[_c('span',{staticClass:\"word\"},[_vm._v(_vm._s(_vm.selectedWordTwo['word']))])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUsernameEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUsernameEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PublicUsernameEditor.vue?vue&type=template&id=24d59202&scoped=true&\"\nimport script from \"./PublicUsernameEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./PublicUsernameEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PublicUsernameEditor.vue?vue&type=style&index=0&id=24d59202&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24d59202\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ThreeDButton',{staticClass:\"confirm-choice-button\",attrs:{\"title\":_vm.$t('buttons.save'),\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.$emit('click')}}},[(!_vm.disabled)?_c('FaIcon',{attrs:{\"icon\":\"check\"}}):_c('FaIcon',{attrs:{\"icon\":\"lock-alt\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmChoiceButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmChoiceButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConfirmChoiceButton.vue?vue&type=template&id=1329d311&scoped=true&\"\nimport script from \"./ConfirmChoiceButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ConfirmChoiceButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConfirmChoiceButton.vue?vue&type=style&index=0&id=1329d311&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1329d311\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUsernameEditorPopup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUsernameEditorPopup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PublicUsernameEditorPopup.vue?vue&type=template&id=c3255848&scoped=true&\"\nimport script from \"./PublicUsernameEditorPopup.vue?vue&type=script&lang=js&\"\nexport * from \"./PublicUsernameEditorPopup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PublicUsernameEditorPopup.vue?vue&type=style&index=0&id=c3255848&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c3255848\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Popup',{ref:\"popup\",on:{\"close\":function($event){return _vm.$emit('close')}}},[(_vm.isSaving)?_c('LoadingOverlay'):_vm._e(),_c('article',{staticClass:\"emoji-editor\"},[_c('h1',[_vm._v(_vm._s(_vm.$t('adaptive-test-battle.emoji-editor-popup-heading')))]),_c('PublicUserEmoji',{ref:\"userEmoji\",attrs:{\"emoji\":_vm.chosenEmoji['value']}}),(_vm.hasError)?_c('ErrorMessage',[_c('p',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e(),_c('div',{staticClass:\"emoji-picker-wrapper\"},[_c('EmojiPicker',{ref:\"emojiPicker\",attrs:{\"emojis\":_vm.emojis},on:{\"change\":_vm.onEmojiChange}})],1),_c('ConfirmChoiceButton',{attrs:{\"disabled\":!_vm.canSaveEmoji},on:{\"click\":_vm.saveChanges}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.emojis.length > 0)?_c('div',{staticClass:\"emoji-picker\"},_vm._l((_vm.groupEmojisByPoints),function(emojiGroup,index){return _c('div',{key:index,staticClass:\"emoji-point-group-wrapper\",class:{ locked: !emojiGroup[0]['unlocked'] }},[_c('h3',[_c('span',{staticClass:\"point-unlock-count\",domProps:{\"innerHTML\":_vm._s(\n _vm.$t('adaptive-test-battle.point-unlock-status', {\n interpolation: { escapeValue: false },\n pointCount:\n '' + emojiGroup[0]['point_unlock'] + '',\n })\n )}}),_c('FaIcon',{attrs:{\"icon\":emojiGroup[0]['unlocked'] ? 'lock-open-alt' : 'lock-alt'}})],1),_c('ul',{staticClass:\"emoji-point-group\"},_vm._l((emojiGroup),function(emoji){return _c('li',{key:emoji['id'],staticClass:\"emoji-option\",attrs:{\"role\":\"button\"},on:{\"click\":function($event){return _vm.onEmojiChange(emoji)}}},[_c('PublicUserEmoji',{attrs:{\"emoji\":emoji['value']}})],1)}),0)])}),0):_c('LoadingOverlay')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmojiPicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmojiPicker.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EmojiPicker.vue?vue&type=template&id=19c9d081&scoped=true&\"\nimport script from \"./EmojiPicker.vue?vue&type=script&lang=js&\"\nexport * from \"./EmojiPicker.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EmojiPicker.vue?vue&type=style&index=0&id=19c9d081&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"19c9d081\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicEmojiEditorPopup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicEmojiEditorPopup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PublicEmojiEditorPopup.vue?vue&type=template&id=bc2cd774&scoped=true&\"\nimport script from \"./PublicEmojiEditorPopup.vue?vue&type=script&lang=js&\"\nexport * from \"./PublicEmojiEditorPopup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PublicEmojiEditorPopup.vue?vue&type=style&index=0&id=bc2cd774&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bc2cd774\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUserName.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUserName.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PublicUserName.vue?vue&type=template&id=7ad07d6a&scoped=true&\"\nimport script from \"./PublicUserName.vue?vue&type=script&lang=js&\"\nexport * from \"./PublicUserName.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PublicUserName.vue?vue&type=style&index=0&id=7ad07d6a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ad07d6a\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popup.vue?vue&type=style&index=0&id=5454b736&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyboardWrapper.vue?vue&type=style&index=0&id=074febe4&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('FontAwesomeIcon',{staticClass:\"fa-icon\",attrs:{\"icon\":_vm.iconProp}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FaIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FaIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FaIcon.vue?vue&type=template&id=2b96f2a7&\"\nimport script from \"./FaIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./FaIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FaIcon.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionsOverview.vue?vue&type=style&index=0&id=51cab37c&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{class:_vm.className,attrs:{\"role\":\"alert\",\"aria-live\":\"assertive\"}},[_c('button',{staticClass:\"text-to-speech-button\",attrs:{\"type\":\"button\",\"tabindex\":\"0\",\"title\":_vm.buttonTitle},on:{\"click\":_vm.onButtonClick}},[_c('FaIcon',{staticClass:\"text-to-speech-icon\",attrs:{\"icon\":_vm.hasError ? 'volume-slash' : 'volume',\"type\":\"solid\"}}),_c('svg',{staticClass:\"text-to-speech-status\",attrs:{\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('circle',{attrs:{\"cx\":\"50\",\"cy\":\"50\",\"r\":\"45\",\"transform\":\"rotate(-90 50 50)\",\"stroke-dasharray\":2 * 50 * Math.PI,\"stroke-dashoffset\":(1 - _vm.currentTime / _vm.duration) * 2 * 50 * Math.PI}})]),_c('svg',{staticClass:\"text-to-speech-loading\",attrs:{\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('circle',{attrs:{\"cx\":\"50\",\"cy\":\"50\",\"r\":\"25\",\"stroke-dasharray\":(2 * 25 * Math.PI) / 3,\"stroke-dashoffset\":2 * 25 * Math.PI}})])],1),_c('audio',{ref:\"audioPlayer\",attrs:{\"preload\":\"none\",\"src\":_vm.audioUrl},on:{\"load\":_vm.onLoad,\"error\":_vm.onError,\"playing\":_vm.onPlaying,\"pause\":_vm.onPause,\"ended\":_vm.onEnd,\"timeupdate\":_vm.updateTimeStatus,\"durationchange\":_vm.updateTimeStatus}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextToSpeech.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextToSpeech.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextToSpeech.vue?vue&type=template&id=47e25505&scoped=true&\"\nimport script from \"./TextToSpeech.vue?vue&type=script&lang=js&\"\nexport * from \"./TextToSpeech.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TextToSpeech.vue?vue&type=style&index=0&id=47e25505&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"47e25505\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedNumber.vue?vue&type=style&index=0&id=a7927fec&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Media.vue?vue&type=style&index=0&id=3300a43a&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicUsernameEditor.vue?vue&type=style&index=0&id=24d59202&lang=scss&scoped=true&\""],"sourceRoot":""}