{"version":3,"sources":["Functions/LogFetchError.js","Components/UnauthenticatedHandler/UnauthenticatedHandler.js","assets/flag-icon.svg","assets/triangle-icon.svg","assets/lab-icon.svg","assets/calculator-icon.png","assets/reverse-color-icon.png","Components/Test/TestHeader.js","assets/stop-icon.png","Components/Test/TestFooter.js","assets/pause-icon.png","Components/Test/Calculator/Calculator.js","Components/Test/Labs/Labs.js","assets/Doctor.png","Components/Test/Question.js","Components/Test/PracticeModeAnswerPopup/PracticeModeAnswerPopup.js","Components/Test/Test.js","Components/DonutChart/DonutChart.js","Components/NewGradingPage/LineGraph/LineGraph.js","Functions/ConvertMountainTimeToLocal.js","Components/NewGradingPage/ViewCompletionsPopup/ViewCompletionsPopup.js","Components/NewGradingPage/NewGradingPage.js","Components/Homepage/PreviousCompletionsPopup/IncompleteBlockPopup.js","Components/NewSettingsPage/NewSettingsPage.js","Components/ErrorPopup/ErrorPopup.js","Components/ConfirmationPopup/ConfirmationPopup.js","Components/SuccessPopup/SuccessPopup.js","Components/Homepage/Homepage.js","Functions/FetchSubmitLogs.js","assets/PsychQB_logo6.png","Components/NewLogin/LoginPage.js","Components/NewLogin/Animations.js","App.js","reportWebVitals.js","index.js"],"names":["getBrowserDetails","navigator","sayswho","tem","ua","userAgent","M","match","test","exec","slice","join","replace","appName","appVersion","splice","logFetchError","error","userProfile","userData","functionName","process","REACT_APP_ERROR_REPORT","log","browser","networkError","operatingSystem","platform","time","Date","customerId","CustomerId","token","Token","functionWhereErrorOccured","accountCreationDate","caseCompletionLimit","demo","firstName","lastName","subscriptionEndDate","userName","window","localStorage","length","setItem","JSON","stringify","count","i","key","includes","NewUnauthenticatedPopup","props","className","div","initial","opacity","animate","exit","transition","duration","y","translateX","translateY","scale","onClick","location","reload","TestHeader","questionsListRef","mainRef","useState","isToolDropdownOpen","setIsToolDropdownOpen","toggleToolDropdown","prev","isDarkMode","toggleQuestionsList","current","style","display","innerWidth","removeEventListener","addEventListener","id","currentItem","totalQuestions","currentBlock","totalBlocks","checked","isQuestionMarked","onChange","markQuestion","type","name","htmlFor","src","flagIcon","alt","getPreviousQuestion","triangleIcon","getNextQuestion","setDisplayLabs","labIcon","setDisplayCalculator","calculatorIcon","toggleColorMode","reverseColorIcon","handleTextZoom","fontSize","option","value","TestFooter","blockTimeRemaining","dayTimeRemaining","pauseBlock","endBlock","stopIcon","Calculator","handleCalculatorClick","buttonSelected","buttonColor","console","handleCalculatorNumber","number","calculatorValue","state","setState","Number","calculatorValueString","toString","parseFloat","Math","sqrt","toFixed","dividing","adding","subtracting","multiplying","memory","decimal","memoryValue","this","Component","Labs","selectedTab","setSelectedTab","searchValue","setSearchValue","displaySIReference","setDisplaySIReference","overflowY","placeholder","e","target","LABSJSON","map","labValue","labIndex","Tab","Title","gridTemplateColumns","searchWords","autoEscape","textToHighlight","paddingLeft","Values","index","LabName","LabValue","SILabValue","Question","answerList","selectedAnswers","currentQuestionData","currentAnswerData","letters","answerOption","inputType","MAXACCEPTEDANSWERS","ANSWERID","handleAnswerChange","width","ANSWER","Fragment","QUESTION","ADDITIONALIMAGE","route","isCurrentQuestionCompleted","isLoading","size","singleColor","nextQuestion","isSelectedQuestionLastQuestion","displayLabs","displayCalculator","GetQuestionGrade","GradeForQuestion","getAnswerOptionColorClass","Correct","UserSelected","PracticeModeAnswerPopup","currentQuestionNumber","TotalQuestions","backgroundColor","practicePopupDetails","QuestionSummary","sgo","answerIndex","icon","faCheck","AnswerString","EventName","AnswerID","fetchNextQuestion","getNextUnansweredQuestionId","Test","useRef","setFontSize","setIsDarkMode","questionData","setQuestionData","setIsLoading","setSelectedAnswers","setCurrentQuestionNumber","setCurrentQuestionData","setCurrentAnswerData","completedQuestions","setCompletedQuestions","remainingTime","setRemainingTime","currentMarkedQuestions","setCurrentMarkedQuestions","groupedQuestions","setGroupedQuestions","showPausePopup","setShowPausePopup","showEndPopup","setShowEndPopup","attemptName","setAttemptName","loadingCustomerLabel","setLoadingCustomerLabel","setPracticePopupDetails","questionAnswersMap","setQuestionAnswersMap","isTimerActive","setIsTimerActive","useEffect","initializeExamData","timerInstance","timedExam","setInterval","clearInterval","endBlockHandler","markedQuestions","array1","QuestionsRandomlyGenerated","array2","intersection","filter","x","data","testDetails","initialArray","QuestionsRandomlyGenerated2","QuestionsForBlock","newQuestionArray","tempGroupedQuestions","forEach","questions","push","question","questionId","timeLeft","TimeLeft","tempQuestionAnswersMap","PreviousInput","input","QuestionId","AnswerIds","tempCompletedQuestions","blockguid","Blockguid","TOTALMINFORCASE","FirstQuestion","FirstAnswer","sort","random","currentQuestionId","QUESTIONID","questionIdList","currentQuestionIndex","indexOf","isQuestionIdGrouped","isGrouped","group","getFirstUnansweredGroupQuestionId","targetGroup","Error","submitQuestion","practiceMode","fetchPracticeModeData","nextQuestionId","fetchQuestionById","requestBody","timeLeftInSec","blockId","BLOCKID","completeSubmission","isTimed","answerIds","answer","fetch","method","headers","body","response","status","setAuthenticationError","json","RecordValue","NextQuestionId","then","questionAnswers","displayExamGrade","undefined","NextQuestion","NextAnswer","questionNumber","catch","markedArray","questionIndex","findIndex","setMarkedQuestions","handleMarkQuestion","RemoveQuestion","ok","formatSeconds","seconds","minutes","floor","leftoverSeconds","alert","pauseBlockHandler","guid","CustomerLabel","questionsList","groupedBefore","lastGrouped","grouped","isLastGroupedQuestion","questionGroup","handleSpecificQuestionSelection","ref","document","documentElement","setProperty","getPrevQuestion","questionList","lastQuestionId","answerId","isChecked","numberOfQuestions","height","DonutChart","chartRef","React","createRef","buildChart","myChartRef","getContext","myDonutChart","donutChart","destroy","Chart","options","prevProps","cutout","update","LineGraph","labels","datasets","isNaN","dailypercentage","round","fill","borderColor","tension","borderCapStyle","plugins","afterDatasetsDraw","chart","args","ctx","chartArea","top","left","save","globalCompositeOperation","fillStyle","strokeStyle","lineWidth","strokeRect","fillRect","restore","responsive","maintainAspectRatio","legend","tooltip","callbacks","label","context","raw","title","dataIndex","day","layout","padding","right","bottom","scales","ticks","callback","values","grid","text","min","max","maxValue","maxTicksLimit","ConvertMountainTimeToLocal","dateToConvert","userTimezone","timezoneOffset","parseInt","getTime","ViewCompletionsPopup","confirmNewCompletion","previousCompletions","previousCompletionSelected","CustomerGradeId","fetchOutstanding","confirm","closePopup","formatDate","rawDate","date","timeZone","month","getMonth","getDate","year","getFullYear","hour","getHours","minute","getMinutes","ampm","completion","updatePreviousCompletionSelected","GradeForBlock","TimeAttempted","primaryColor","NewGradingPage","getDailyPerformance","dailyPerformanceLoading","dailyPerformance","highestDailyScore","displayErrorPopupHandler","fetchPreviousAttempts","previousAttemptList","reverse","latestBlockGuid","getCompletionDetails","selectedAttemptDetails","expandedQuestions","getExamDataDetails","examDetails","totalQuestionCount","sgolist","correctQuestionCount","attemptDate","sgoValue","sgoIndex","getAnswerContainerColorClass","handleSelectedCompletionChange","formatAttemptDate","TimeZone","toggleQuestionSummary","viewPreviousCompletionsPopup","showAllAnswerOptions","expandQuestionSummaries","questionSummaryTextSize","answerOptionsExpanded","faLineChart","faPenToSquare","faWrench","faStar","faCalendar","questionDetails","BlockGuid","BlockId","exitBeforeEnter","newCompletionIndex","IncompleteBlockPopup","formatTime","rawTime","hours","dayPeriod","suffix","optionSelected","incompleteBlockList","continueCaseLoading","confirmIncompleteBlockStart","NewSettingsPage","updateFaqQuestionsHandler","answers","FaqQuestionsArray","beginning","FAQ","faqQuestions","getSubscriptionDaysRemaining","expirationDate","LicenseExpiration","today","formatDateString","dateString","formatTimeString","updateTimeZone","updateTimeZoneLoading","updateSelectedTimeZone","fetchChangePassword","newPassword","confirmNewPassword","changePasswordLoading","currentPassword","oldPassword","pageDisplayed","displaySuccessPopupHandler","result","fetchSubmitFeedback","submitFeedbackLoading","feedback","userFeedback","authenticationError","handlePrintReceipt","confirmationPopupOptions","description","confirmFunction","setPopupLoading","fetchPrintReceipt","children","for","maxLength","lastFourDigits","closeConfirmationPopup","displayConfirmationPopupHandler","Last4","printReceiptFetch","printReceiptHTML","setPrintReceiptHTML","showCurrentPassword","showNewPassword","showConfirmPassword","faScrewdriverWrench","logoutHandler","CustomerFirstName","CustomerLastName","CustomerUserName","DateCustCreated","gridArea","href","rel","faEyeSlash","faEye","ErrorPopup","closeErrorPopup","errorPopupTitle","errorPopupText","ConfirmationPopup","animationsDisabled","continueOnly","popupLoading","confirmationText","SuccessPopup","popupTitle","popupText","Homepage","handleScreenResize","footerElement","getElementById","footerHeight","offsetHeight","graphCutout","getGraphCutout","changePage","newPage","homepageDisplay","mobileDrawerOpen","setHomepageDisplay","getSidebar","faHome","faChartLine","getCategoryQuestionCount","category","TotalNumberOfQuestions","flagged","incorrect","NumberOfIncorrectMarkedQuestions","unanswered","NumberOfUnansweredMarkedQuestions","NumberOfMarkedQuestions","NumberOfUnansweredUnmarkedQuestions","NumberOfIncorrectQuestions","getFilterQuestionCount","questionCount","categories","selectedCategories","CATEGORY","fetchCategories","lc","ialist","fetchingCategories","MarkQuestions","parse","createTestSection","selectAll","tabIndex","handleSelectAll","deselectAll","handleDeselectAll","subtext","inputValue","updateCategories","handleStartTest","availableQuestionsAmount","testOptions","isPractice","markQuestions","incorrectQuestions","loadingTestData","newStartBlockHandler","handleTestModeChange","testMode","setCategories","toggleUnanswered","toggleIncorrect","toggleMarked","getTotalNumberOfQuestions","total","getQuestionsCompletedGraphValues","completedPercentage","getPercentQuestionsCompleted","totalNumberOfQuestions","getCompletedNumberOfQuestions","CompletedNumberOfQuestions","getAverageGraphValues","correctPercentage","getCorrectQuestionsPercentage","numberOfCompletedQuestions","numberOfIncorrectQuestions","CurrentStateId","beginExam","displayConfirmationPopup","printReceipt","print","displayErrorPopup","successPopupTitle","successPopupText","displaySuccessPopup","displayIncompleteBlockPopup","confirmationPopupLoading","dangerouslySetInnerHTML","__html","pageHeight","ease","borderWidth","spacing","animation","animateScale","events","paddingBottom","faSchool","togglePracticeMode","faStopwatch","toggleTimedExam","faMessageQuestion","faCircleX","faFlag","newValue","getRoute","REACT_APP_PRODUCTION","REACT_APP_NETWORK_PORT","getLogs","logArray","getItem","removeLogs","tempStr","removeItem","fetchSubmitLogs","res","LoginPage","fetchSystemMessage","systemMessage","REACT_APP_ENABLE_LANDING_MESSAGE","decoder","TextDecoder","getReader","read","done","decode","Announcement","loginHandler","preventDefault","email","password","parsedResult","stateData","handleLogin","loginErrorText","forgotPasswordHandler","errorResponse","page","successMessage","forgotPasswordErrorText","joinDemoHandler","newEmail","confirmNewEmail","demoError","customerFirstName","customerLastName","customerEmail","whereDidYouHear","heard","demoMessage","demoSignup","querySelector","setAttribute","Logo","stroke","LandingImage","onSubmit","autoComplete","required","App","innerHeight","production","formatTimeHandler","formattedDate","getUTCHours","getUTCMinutes","formatDateHandler","getUTCMonth","getUTCDate","getUTCFullYear","updateAccountDetails","user","Demo","LimitFiveCases","selectedTimeZone","showLoading","LoadingPopUp","initialTimeZone","viewCaseGrades","reviewLater","diagnosis","grading","appDisplay","caseGrades","simulationData","selectedCaseDiagnosis","displayGrading","grades","selectedCaseReviewLater","DIAGNOSIS","caseData","ID","setTestOptions","startTest","updateUserData","loginData","customTimeLimit","networkLag","caseListHeaderError","caseListScrollPosition","loginError","startCaseData","selectedCaseId","caseListSort","caseListReversed","showCaseTitle","showCaseDiagnosis","accountSettingsClick","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode"],"mappings":"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","file":"static/js/main.f523cfb2.chunk.js","sourcesContent":["\r\n\r\nconst logFetchError = (error, userProfile, userData, functionName) => {\r\n if (process.env.REACT_APP_ERROR_REPORT === \"true\") {\r\n // Create error log\r\n let log = {\r\n browser: getBrowserDetails(),\r\n networkError: `${error}`,\r\n operatingSystem: navigator.platform,\r\n time: `${new Date()}`,\r\n customerId: userData ? userData.CustomerId : null,\r\n token: userData ? userData.Token : null,\r\n functionWhereErrorOccured: functionName,\r\n accountCreationDate: userProfile ? userProfile.accountCreationDate : null,\r\n caseCompletionLimit: userProfile ? userProfile.caseCompletionLimit : null,\r\n demo: userProfile ? userProfile.demo : null,\r\n firstName: userProfile ? userProfile.firstName : null,\r\n lastName: userProfile ? userProfile.lastName : null,\r\n subscriptionEndDate: userProfile ? userProfile.subscriptionEndDate : null,\r\n userName: userProfile ? userProfile.userName : null\r\n }\r\n \r\n if (window.localStorage.length === 0) {\r\n window.localStorage.setItem('ccsLog 0', JSON.stringify(log))\r\n } else {\r\n let count = 0\r\n for(let i = 0; i < localStorage.length; ++i) {\r\n let tempStr = localStorage.key(i)\r\n if (tempStr.includes('ccsLog')) {\r\n ++count\r\n }\r\n }\r\n window.localStorage.setItem(`ccsLog ${count}`, JSON.stringify(log))\r\n }\r\n }\r\n}\r\n\r\nconst getBrowserDetails = () => {\r\n\r\n navigator.sayswho= (function(){\r\n var ua= navigator.userAgent, tem, \r\n M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\r\n if(/trident/i.test(M[1])){\r\n tem= /\\brv[ :]+(\\d+)/g.exec(ua) || [];\r\n return 'IE '+(tem[1] || '');\r\n }\r\n if(M[1]=== 'Chrome'){\r\n tem= ua.match(/\\b(OPR|Edge)\\/(\\d+)/);\r\n if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');\r\n }\r\n M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];\r\n if((tem= ua.match(/version\\/(\\d+)/i))!= null) M.splice(1, 1, tem[1]);\r\n return M.join(' ');\r\n })();\r\n\r\n return navigator.sayswho\r\n}\r\n\r\nexport default logFetchError","import React from 'react'\r\nimport './UnauthenticatedHandler.css'\r\nimport { motion } from 'framer-motion/dist/framer-motion'\r\n\r\nexport default function NewUnauthenticatedPopup(props) {\r\n return (\r\n
\r\n \r\n \r\n

You have been logged out

\r\n

You are no longer logged into this session and will have to re-login.

\r\n

Common reasons you may see this message

\r\n
    \r\n
  • You have signed in on another device
  • \r\n
  • You have been idle for too long
  • \r\n
  • You have shared your account details with someone else. This is not allowed. Please refer to our terms of service.
  • \r\n
  • In some cases, your account may have been compromised. If you believe this is the case, change your password immediately.
  • \r\n
\r\n \r\n \r\n
\r\n )\r\n}\r\n","export default __webpack_public_path__ + \"static/media/flag-icon.1e062efe.svg\";","export default __webpack_public_path__ + \"static/media/triangle-icon.c9eb1750.svg\";","export default __webpack_public_path__ + \"static/media/lab-icon.41a9dea1.svg\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/reverse-color-icon.72bd7f83.png\";","import React, { useEffect, useState } from 'react'\r\nimport flagIcon from '../../assets/flag-icon.svg'\r\nimport triangleIcon from '../../assets/triangle-icon.svg'\r\nimport labIcon from '../../assets/lab-icon.svg'\r\nimport calculatorIcon from '../../assets/calculator-icon.png'\r\nimport reverseColorIcon from '../../assets/reverse-color-icon.png'\r\n\r\nfunction TestHeader(props) {\r\n const { questionsListRef, mainRef } = props\r\n const [isToolDropdownOpen, setIsToolDropdownOpen] = useState(false)\r\n\r\n // Toggle whether the questions list is shown or not //\r\n function toggleQuestionsList() {\r\n const isShown = questionsListRef.current.style.display === 'block'\r\n\r\n if (!isShown) {\r\n questionsListRef.current.style.display = 'block'\r\n if (window.innerWidth <= 600) {\r\n mainRef.current.addEventListener('click', toggleQuestionsList)\r\n }\r\n } else {\r\n questionsListRef.current.style.display = 'none'\r\n if (window.innerWidth <= 600) {\r\n mainRef.current.removeEventListener('click', toggleQuestionsList)\r\n }\r\n }\r\n }\r\n\r\n // Reverse Color //\r\n function toggleColorMode() {\r\n toggleToolDropdown()\r\n props.toggleColorMode()\r\n }\r\n\r\n // Tool dropdown handler //\r\n function toggleToolDropdown() {\r\n setIsToolDropdownOpen(prev => !prev)\r\n }\r\n\r\n const toggleLabValues = () => {\r\n toggleToolDropdown()\r\n props.setDisplayLabs()\r\n }\r\n\r\n const toggleCalculator = () => {\r\n toggleToolDropdown()\r\n props.setDisplayCalculator()\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n

Item: {props.currentItem + 1} of {props.totalQuestions}

\r\n

Block: {props.currentBlock} of {props.totalBlocks}

\r\n
\r\n
\r\n props.markQuestion()} type=\"checkbox\" name=\"flag\" id=\"flag\" />\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {process.env.REACT_APP_HIDE_LABS !== \"true\" && }\r\n {process.env.REACT_APP_HIDE_CALCULATOR !== \"true\" && }\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n

Text Zoom

\r\n
\r\n
\r\n
\r\n \r\n Tools\r\n \r\n { isToolDropdownOpen &&
    \r\n {process.env.REACT_APP_HIDE_LABS !== \"true\" &&
  • \r\n \r\n
  • }\r\n {process.env.REACT_APP_HIDE_CALCULATOR !== \"true\" &&
  • \r\n \r\n
  • }\r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n Text Zoom\r\n
  • \r\n
}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default TestHeader;","export default __webpack_public_path__ + \"static/media/stop-icon.788b576e.png\";","import React from 'react';\r\nimport pauseIcon from '../../assets/pause-icon.png';\r\nimport stopIcon from '../../assets/stop-icon.png';\r\n\r\nfunction TestFooter(props) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default TestFooter;","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABBIAAAQSCAYAAAFlX+lQAAAACXBIWXMAAC4jAAAuIwF4pT92AAAgAElEQVR4nOzd4ZFc13WF0dcu/CcUgagIJEVgKgLTGUARmM6AjsB2BBYjMB2BoQgMRmApAkMRtAu3Rlu+xW3qFKeH83pmrSr8JNn9+syZDwcD6XK9Xg/45G9O8Bo4CcNAGAbCMBCGgTAMhGEgDANhGAjDQBgGwjAQhoEwDIRhIAwDYRgIw0AYBsIwEIaBMAzEUw3Dr47juJ7o1+8e+X7evrD3Uz3V35s441/GuDzin31p76fybYIwDIRhIAwDYRgIw0AYBsIwEIaBMAyEYSAMA2EYCMNAGAbCMBCGgTAMhGEgDANhGAjDQBgGwjAQhoEwDIRhIAwDYRgIw0AYBsIwEIaBMAyEYSAMA2EYCMNAGAbCMBCGgTAMhGEgDANhGAjDQBgGwjAQhoEwDIRhIAwDYRgIw0AYBsIwEIaBMAyEYSAMA2EYCMNAGAbCMBCGgTAMhGEgDANhGAjDQBgGwjAQhoEwDIRhIAwDYRgIw0AYBsIwEIaBMAzEUw3DNy/sEb+091NdrtfrCV8Wz8G3CcIwEIaBMAyEYSAMA2EYCMNAGAbCMBCGgTAMhGEgDANhGAjDQBgGwjAQhoEwDIRhIAwD4UflWWwFFoPAYhBYDAKLQWAxCCwGgcUgsBgEFoPAYhBYDAKLQWAxCCwGgcUgsBgEFoPAYhBYDAKLQWAxCCxvnugxnO1n5C+P/Odf2vv5nteyEd6d4DXc0te3/he+lkH4/ASv4dQ0AotBYDEILAaBxSCwGAQWg8BiEFgMAotBYDEILAaBxSCwGAQWg8BiEFgMAotBYDEILAaBxSCwGAQWg8BiEFgMAotBYDEILAaBxSCwGAQWg8BiEFgMAotBYDEILAaBxSCwGAQWg8BiEFgMAotBYDEILAaBxSCwGAQWg8BiEFgMAotBYDEILAaBxSCwGAQWg8BiEFgMAotBYDEILAaBxSCwGAQWg8BiEFgMAotBYDEILAaBxSCwGAQWg8BiEFgMAotBYDEILAaBxSCwGAQWg8BiEFgMAsvler0+xZN4kn/pI1we+c+/tPfzPW9u/S98cPMX+sxe2vv5Ht8aWAwCi0FgMQgsBoHFILAYBBaDwGIQWAwCi0FgMQgsBoHFILAYBBaDwGIQWAwCi0FgMQgsBoHFILA81d9rAO6U7w7AxlIANpYCsLEUgI2lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGze3Onj+OIEr+Es3p/wNfl8/uLDcRwfz/JiJu5pKfjfov/rLs/43/b5/HXP+fmM+e3Dy/L1a38AJ3cXn4+lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGwsBWBjKQAbSwHYWArAxlIANpYCsLEUgI2lAGwu1+v1Xp7I3bzQZ3R5xv+2z+eve87PZ+zNPbzIB39+oO+f/ZWczxcneEU+n//fGT6fsXsqBeAn4KYAbCwFYGMpABtLAdhYCsDGUgA2lgKwsRSAjaUAbCwFYGMpABtLAdhYCsDGUgA2lgKwsRSAjaUAbCwFYGMpABtLAdhYCsDG/5ozECoBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBCAsBiDd3+Ci+OMFrOJP3J3s9Pp/d2T6fH3RPC+F6gtdwZpdnfm0+nx/23J/PyL38luHDCV7D2T3nF+S39/GIntVdLMzL9XoXr9N3n5nn+i7k85k5fSU4KgJhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIQBhIXALf/IUX4bL9Xq9lzdyNy/0mVye+b/v8/lhz/35jLy5g9f4Z58e6LuHX/zF++M4vj7B8/j0+Xx5HMdXJ3gtZ3KWz2fkngoBeGJuCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBYCEBcrterpwEAfI/fNQAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqN54LE/m43Ecn73Q98bT+PVxHB882+UPx3H8/ASvg/vxm+M43vu8butyvV5f0vs5Aw+Ux3rNy87XD4/198dxfOsp3oZIuC0Pk1v52cM16jXx9cOt/OLhGsUj+ZkEOKevfC7wo73z6G5DJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgHO6VufC/xo7z262xAJt/WLl/RmeDa/P47jwyt8/D87wWvg/v1eJNyOSLitPxzHcTmO4x9f0pviJ/Pdw/x88Uof+ceH9//bE7wW7s8fX/nXz5O4XK/XF/i2AIDHckkAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFCJBACgEgkAQCUSAIBKJAAAlUgAACqRAABUIgEAqEQCAFBdrterJwMAfI9LAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQvfFYntznD7+gee+p/CBfP/wQXz9PTCQ8ja+O4/jnl/jGeDK/P47jC493eXccx7+d4HVwP3z9PJHL9Xp9kW/sGX08juOzV/vueazLK3+CH47j+OUJXgf36bV//dycn0m4rW8FAo/0mqv9XwQCj+R3vTcmEm7r717Sm+HZvHulj/4fTvAauH9f+QxvRyTcjsHkVl7jn8e/1jDi9vw82A2JhNv58qW8EXgGIgFOSCQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQAoBIJAEAlEgCASiQAAJVIAAAqkQAAVCIBAKhEAgBQiQQA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AgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAAAACMOSQAAAAAYw4JAAAAwJhDAgAAADDmkAAA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\"","import React, { Component } from 'react'\r\nimport './Calculator.css'\r\n\r\nexport default class Calculator extends Component {\r\n constructor() {\r\n super()\r\n this.state = {\r\n calculatorValue: 0,\r\n adding: false,\r\n subtracting: false,\r\n multiplying: false,\r\n dividing: false,\r\n memory: 0,\r\n memoryValue: 0,\r\n decimal: false,\r\n }\r\n }\r\n\r\n handleCalculatorClick = (buttonSelected, buttonColor) => {\r\n console.log(\"Button selected: \", buttonSelected)\r\n\r\n const handleCalculatorNumber = (number, calculatorValue = this.state.calculatorValue) => {\r\n if (calculatorValue === 0) {\r\n this.setState({\r\n calculatorValue: number\r\n })\r\n } else {\r\n this.setState({\r\n calculatorValue: Number(calculatorValue + `${number}`)\r\n })\r\n }\r\n }\r\n\r\n let calculatorValueString = this.state.calculatorValue.toString()\r\n\r\n let calculatorValue = this.state.calculatorValue\r\n\r\n if (calculatorValueString[calculatorValueString.length - 1] === '.') {\r\n if (buttonColor !== 'gray') {\r\n calculatorValue = Number(calculatorValue)\r\n }\r\n }\r\n\r\n switch(buttonSelected) {\r\n case '0':\r\n handleCalculatorNumber(0, calculatorValue)\r\n break;\r\n case '1':\r\n handleCalculatorNumber(1, calculatorValue)\r\n break;\r\n case '2':\r\n handleCalculatorNumber(2, calculatorValue)\r\n break;\r\n case '3':\r\n handleCalculatorNumber(3, calculatorValue)\r\n break;\r\n case '4':\r\n handleCalculatorNumber(4, calculatorValue)\r\n break;\r\n case '5':\r\n handleCalculatorNumber(5, calculatorValue)\r\n break;\r\n case '6':\r\n handleCalculatorNumber(6, calculatorValue)\r\n break;\r\n case '7':\r\n handleCalculatorNumber(7, calculatorValue)\r\n break;\r\n case '8':\r\n handleCalculatorNumber(8, calculatorValue)\r\n break;\r\n case '9':\r\n handleCalculatorNumber(9, calculatorValue)\r\n break;\r\n case 'C':\r\n this.setState({ calculatorValue: 0 })\r\n break;\r\n case '+/-':\r\n this.setState({ calculatorValue: this.state.calculatorValue * -1 })\r\n break;\r\n case 'sqrt(x)':\r\n this.setState({ calculatorValue: parseFloat(Math.sqrt(this.state.calculatorValue).toFixed(12)) })\r\n break;\r\n case '1/x':\r\n this.setState({ calculatorValue: (1 / this.state.calculatorValue).toFixed(12) })\r\n break;\r\n case '÷':\r\n this.setState({ dividing: true, adding: false, subtracting: false, multiplying: false, memory: this.state.calculatorValue, calculatorValue: 0 })\r\n break;\r\n case 'x':\r\n this.setState({ multiplying: true, adding: false, subtracting: false, dividing: false, memory: this.state.calculatorValue, calculatorValue: 0 })\r\n break;\r\n case '-':\r\n this.setState({ subtracting: true, adding: false, multiplying: false, dividing: false, memory: this.state.calculatorValue, calculatorValue: 0 })\r\n break;\r\n case '+':\r\n this.setState({ adding: true, subtracting: false, multiplying: false, dividing: false, memory: this.state.calculatorValue, calculatorValue: 0 })\r\n break;\r\n case '.':\r\n if (this.state.calculatorValue.toString().includes('.')) {\r\n this.setState({ calculatorValue: Number(this.state.calculatorValue) })\r\n } else {\r\n this.setState({ calculatorValue: this.state.calculatorValue + '.', decimal: true })\r\n }\r\n break;\r\n case '=':\r\n if (this.state.adding) {\r\n console.log(this.state.memory, this.state.calculatorValue)\r\n this.setState({ calculatorValue: this.state.memory + this.state.calculatorValue, adding: false, memory: 0 })\r\n } else if (this.state.subtracting) {\r\n this.setState({ calculatorValue: this.state.memory - this.state.calculatorValue, subtracting: false, memory: 0 })\r\n } else if (this.state.multiplying) {\r\n this.setState({ calculatorValue: parseFloat((this.state.memory * this.state.calculatorValue).toFixed(12)), multiplying: false, memory: 0 })\r\n } else if (this.state.dividing) {\r\n this.setState({ calculatorValue: parseFloat((this.state.memory / this.state.calculatorValue).toFixed(12)), dividing: false, memory: 0 })\r\n }\r\n break;\r\n case 'M+':\r\n this.setState({ memoryValue: this.state.memoryValue + this.state.calculatorValue })\r\n break;\r\n case 'MR':\r\n this.setState({ calculatorValue: this.state.memoryValue })\r\n break;\r\n case 'MC':\r\n this.setState({ memoryValue: 0 })\r\n break;\r\n default:\r\n console.log(`Unhandled Button: ${buttonSelected}`)\r\n break;\r\n }\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n {this.state.calculatorValue}\r\n

\r\n {this.state.memoryValue !== 0 &&\r\n

\r\n M\r\n

\r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","import React, { useState } from 'react'\r\nimport './Labs.css'\r\nimport LABSJSON from '../../../Labs.json'\r\nimport Highlighter from \"react-highlight-words\";\r\n\r\nexport default function Labs(props) {\r\n const [selectedTab, setSelectedTab] = useState('Serum')\r\n const [searchValue, setSearchValue] = useState('')\r\n const [displaySIReference, setDisplaySIReference] = useState(false)\r\n\r\n return (\r\n
\r\n
\r\n setSearchValue(e.target.value)} />\r\n
\r\n setDisplaySIReference(!displaySIReference)}/>\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {LABSJSON.map((labValue, labIndex) => (\r\n labValue.Tab === selectedTab &&\r\n
\r\n {labValue.Title &&\r\n
\r\n \r\n {(labValue.Title === 'Serum' || labValue.Title === 'Cerebrospinal Fluid' || labValue.Title === 'Hematologic' || labValue.Title === 'Urine') &&

Reference Range

}\r\n {((labValue.Title === 'Serum' || labValue.Title === 'Cerebrospinal Fluid' || labValue.Title === 'Hematologic' || labValue.Title === 'Urine') && displaySIReference) &&

SI Reference

}\r\n
\r\n }\r\n {labValue.Values.map((value, index) => (\r\n
\r\n \r\n \r\n {displaySIReference && value.SILabValue &&\r\n \r\n }\r\n
\r\n ))}\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","export default __webpack_public_path__ + \"static/media/Doctor.4706e7ea.png\";","import React from 'react';\r\nimport MDSpinner from 'react-md-spinner';\r\nimport Calculator from './Calculator/Calculator';\r\nimport Labs from './Labs/Labs';\r\nimport DoctorImage from '../../assets/Doctor.png';\r\n\r\nfunction Question(props) {\r\n const { isDarkMode, fontSize, selectedAnswers, currentQuestionData, currentAnswerData } = props;\r\n\r\n // Logic for rendering the answer options //\r\n const letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];\r\n let answerList;\r\n if (currentAnswerData) {\r\n answerList = currentAnswerData.map((answerOption, index) => {\r\n let inputType;\r\n // If multiple choice or not //\r\n if (currentQuestionData.MAXACCEPTEDANSWERS > 1) {\r\n inputType = \"checkbox\";\r\n } else {\r\n inputType = \"radio\";\r\n }\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n });\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n

\r\n {currentQuestionData.QUESTION}\r\n

\r\n {currentQuestionData.ADDITIONALIMAGE !== \"\" &&\r\n \r\n }\r\n
\r\n {answerList}\r\n
\r\n {props.isCurrentQuestionCompleted &&\r\n

Note: You can't change your answers for previously submitted questions.

\r\n }\r\n
\r\n {props.isLoading ?\r\n \r\n :\r\n props.nextQuestion()}\r\n style={{ fontSize: fontSize.style }}\r\n >{props.isSelectedQuestionLastQuestion ? 'Submit Test' : 'Proceed to next item'}\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Question;","import React from 'react'\r\nimport './PracticeModeAnswerPopup.css'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons'\r\nimport MDSpinner from 'react-md-spinner'\r\n\r\nconst GetQuestionGrade = (props) => {\r\n if (props.GradeForQuestion === 100) {\r\n return (\r\n
\r\n

Question correct. Points received: 1 / 1

\r\n
\r\n )\r\n } else if (props.GradeForQuestion === 0) {\r\n return (\r\n
\r\n

Question incorrect. Points received: 0 / 1

\r\n
\r\n )\r\n } else {\r\n return (\r\n
\r\n

Question partially correct. Points received: {(props.GradeForQuestion / 100).toFixed(2)} / 1

\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst getAnswerOptionColorClass = (answerOption) => {\r\n if (answerOption.Correct && answerOption.UserSelected) {\r\n return 'feedbackCheckboxWrapperCorrect'\r\n } else if (answerOption.Correct && !answerOption.UserSelected) {\r\n return 'feedbackCheckboxWrapperOrange'\r\n } else if (!answerOption.Correct && answerOption.UserSelected) {\r\n return 'feedbackCheckboxWrapperIncorrect'\r\n } else {\r\n return 'feedbackCheckboxWrapperNeutral'\r\n }\r\n}\r\n\r\nexport default function PracticeModeAnswerPopup(props) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

Question {props.currentQuestionNumber} of {props.TotalQuestions}

\r\n
\r\n
\r\n
\r\n
\r\n

{props.currentQuestionNumber}

\r\n

{props.practicePopupDetails.Question}

\r\n
\r\n {/*
\r\n

Question Summary

\r\n

{props.practicePopupDetails.QuestionSummary}

\r\n
*/}\r\n
\r\n
\r\n

Question Summary

\r\n
\r\n
\r\n

{props.practicePopupDetails.QuestionSummary}

\r\n
\r\n
\r\n \r\n {props.practicePopupDetails.sgo.map((answerOption, answerIndex) => (\r\n
\r\n
\r\n
\r\n {answerOption.UserSelected &&\r\n \r\n }\r\n
\r\n
\r\n
\r\n

{answerOption.AnswerString}

\r\n

{answerOption.EventName}

\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n {props.isLoading ?\r\n
\r\n \r\n
\r\n :\r\n \r\n }\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport TestHeader from './TestHeader';\r\nimport TestFooter from './TestFooter';\r\nimport Question from './Question';\r\nimport flagIcon from '../../assets/flag-icon.svg';\r\nimport Calculator from './Calculator/Calculator';\r\nimport Labs from './Labs/Labs';\r\nimport Spinner from 'react-md-spinner'\r\nimport PracticeModeAnswerPopup from './PracticeModeAnswerPopup/PracticeModeAnswerPopup';\r\n\r\nfunction Test(props) {\r\n const { route, userData } = props;\r\n const questionsListRef = useRef();\r\n const mainRef = useRef();\r\n const [fontSize, setFontSize] = useState({option: 'small', style: '1rem'});\r\n const [isDarkMode, setIsDarkMode] = useState(false);\r\n const [questionData, setQuestionData] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [selectedAnswers, setSelectedAnswers] = useState([]);\r\n const [currentQuestionNumber, setCurrentQuestionNumber] = useState(0);\r\n const [currentQuestionData, setCurrentQuestionData] = useState({});\r\n const [currentAnswerData, setCurrentAnswerData] = useState([]);\r\n // const [blockguid, setBlockguid] = useState('');\r\n const [displayCalculator, setDisplayCalculator] = useState(false);\r\n const [completedQuestions, setCompletedQuestions] = useState([])\r\n const [displayLabs, setDisplayLabs] = useState(false)\r\n const [remainingTime, setRemainingTime] = useState(null)\r\n const [currentMarkedQuestions, setCurrentMarkedQuestions] = useState([])\r\n const [groupedQuestions, setGroupedQuestions] = useState([])\r\n const [showPausePopup, setShowPausePopup] = useState(false)\r\n const [showEndPopup, setShowEndPopup] = useState(false)\r\n const [attemptName, setAttemptName] = useState('')\r\n const [loadingCustomerLabel, setLoadingCustomerLabel] = useState(false)\r\n const [practicePopupDetails, setPracticePopupDetails] = useState(null)\r\n const [questionAnswersMap, setQuestionAnswersMap] = useState({})\r\n const [isTimerActive, setIsTimerActive] = useState(false)\r\n\r\n useEffect(() => {\r\n\r\n // Logic for whether the questions list should be displayed based off of the current window size //\r\n window.addEventListener('resize', () => {\r\n const notNull = questionsListRef.current;\r\n if (notNull) {\r\n if (window.innerWidth > 600) {\r\n questionsListRef.current.style.display = \"block\";\r\n } else {\r\n questionsListRef.current.style.display = \"none\";\r\n }\r\n }\r\n });\r\n\r\n initializeExamData()\r\n\r\n return () => {\r\n window.removeEventListener('resize', () => {});\r\n }\r\n }, []);\r\n\r\n // This is the app timer, it initializes when the exam starts and stops when the exam ends\r\n useEffect(() => {\r\n let timerInstance\r\n if (isTimerActive && props.timedExam) {\r\n timerInstance = setInterval(() => {\r\n setRemainingTime(remainingTime - 1)\r\n }, 1000)\r\n if (remainingTime <= 0) {\r\n clearInterval(timerInstance)\r\n endBlockHandler()\r\n }\r\n }\r\n\r\n return() => {\r\n clearInterval(timerInstance)\r\n }\r\n }, [isTimerActive, remainingTime])\r\n\r\n useEffect(() => {\r\n if (questionData && props.markedQuestions) {\r\n let array1 = questionData.QuestionsRandomlyGenerated\r\n let array2 = props.markedQuestions\r\n // find all elements that exist in both arrays\r\n let intersection = array1.filter(x => array2.includes(x));\r\n setCurrentMarkedQuestions(intersection)\r\n }\r\n }, [questionData, props.markedQuestions])\r\n\r\n const initializeExamData = () => {\r\n let data = props.testDetails\r\n\r\n let initialArray = data.QuestionsRandomlyGenerated2 ? data.QuestionsRandomlyGenerated2 : data.QuestionsForBlock\r\n let newQuestionArray = []\r\n let tempGroupedQuestions = []\r\n initialArray.forEach((questions, index) => {\r\n if (questions.length > 1) {\r\n tempGroupedQuestions.push(questions.map((question) => Number(question)))\r\n }\r\n questions.forEach((questionId) => {\r\n newQuestionArray.push(Number(questionId))\r\n })\r\n })\r\n data.QuestionsRandomlyGenerated = newQuestionArray\r\n\r\n let timeLeft = 0\r\n\r\n if (data.QuestionsForBlock) {\r\n // The exam is an incomplete start\r\n timeLeft = data.TimeLeft\r\n\r\n\r\n // Update the questionAnswersMap\r\n let tempQuestionAnswersMap = {}\r\n data.PreviousInput.forEach((input) => {\r\n tempQuestionAnswersMap[input.QuestionId] = input.AnswerIds\r\n })\r\n setQuestionAnswersMap(tempQuestionAnswersMap)\r\n\r\n // Update completed Questions\r\n let tempCompletedQuestions = data.PreviousInput.map((question) => question.QuestionId)\r\n setCompletedQuestions(tempCompletedQuestions)\r\n\r\n // Get the current question number by finding the first incomplete question\r\n let currentQuestionNumber = 0\r\n for(let i = 0; i < data.QuestionsRandomlyGenerated.length; i++) {\r\n if (!tempCompletedQuestions.includes(data.QuestionsRandomlyGenerated[i])) {\r\n currentQuestionNumber = i\r\n break\r\n }\r\n }\r\n\r\n setCurrentQuestionNumber(currentQuestionNumber)\r\n data.blockguid = data.Blockguid\r\n } else {\r\n // The exam is a new exam\r\n timeLeft = data.TOTALMINFORCASE * 60\r\n }\r\n\r\n\r\n\r\n setQuestionData(data)\r\n setGroupedQuestions(tempGroupedQuestions)\r\n setCurrentQuestionData(data.FirstQuestion)\r\n data.FirstAnswer = data.FirstAnswer.sort(() => Math.random() - 0.5)\r\n setCurrentAnswerData(data.FirstAnswer)\r\n setRemainingTime(timeLeft)\r\n setIsTimerActive(true)\r\n }\r\n\r\n const handleSpecificQuestionSelection = (questionId) => {\r\n if (isQuestionIdGrouped(questionId)) {\r\n questionId = getFirstUnansweredGroupQuestionId(questionId)\r\n }\r\n\r\n fetchQuestionById(questionId)\r\n }\r\n\r\n const getNextUnansweredQuestionId = () => {\r\n let currentQuestionId = currentQuestionData.QUESTIONID\r\n // We are calling this on question submission. We need to find the next unanswered question\r\n const questionIdList = questionData.QuestionsRandomlyGenerated\r\n\r\n // First we need to find the index of the current question\r\n let currentQuestionIndex = questionIdList.indexOf(currentQuestionId)\r\n\r\n // Increment the current question index\r\n currentQuestionIndex++\r\n\r\n // Check if we're out of bounds. If so, go back to the first question\r\n if (currentQuestionIndex >= questionIdList.length) {\r\n currentQuestionIndex = 0\r\n }\r\n\r\n // Check if our new index is already completed. If it is, we need to find the next unanswered question\r\n while(completedQuestions.includes(questionIdList[currentQuestionIndex])) {\r\n currentQuestionIndex++\r\n if (currentQuestionIndex >= questionIdList.length) {\r\n currentQuestionIndex = 0\r\n }\r\n\r\n // If we are back at our initial question, we know we have completed all questions.\r\n // We flag this by returning -1\r\n if (currentQuestionIndex === questionIdList.indexOf(currentQuestionId)) {\r\n return -1\r\n }\r\n }\r\n\r\n return questionIdList[currentQuestionIndex]\r\n }\r\n\r\n const getNextQuestion = () => {\r\n const questionList = questionData.QuestionsRandomlyGenerated\r\n let questionNumber = currentQuestionNumber;\r\n questionNumber++\r\n\r\n // If the question number is greater than the total number of questions, then we start back at the beginning\r\n if (questionNumber > questionList.length - 1) {\r\n questionNumber = 0\r\n }\r\n let questionId = questionList[questionNumber]\r\n\r\n // We need to check if our target questionId is grouped. If it is, update the target id accordingly\r\n if (isQuestionIdGrouped(questionId)) {\r\n questionId = getFirstUnansweredGroupQuestionId(questionId)\r\n\r\n // If the new question id is the same as the current question id, then we need to find the first next question\r\n // outside of the group\r\n if (questionId === questionList[currentQuestionNumber]) {\r\n // Find the current question group\r\n let questionGroup\r\n groupedQuestions.forEach((group) => {\r\n if (group.includes(questionId)) {\r\n questionGroup = group\r\n }\r\n })\r\n\r\n // Get the last questionId in the group\r\n let lastQuestionId = questionGroup[questionGroup.length - 1]\r\n\r\n // Get the index of the last questionId in the group\r\n let questionIndex = questionList.indexOf(lastQuestionId)\r\n\r\n // Increment the index\r\n questionIndex++\r\n\r\n // If we are out of bounds, go back to the beginning\r\n if (questionIndex >= questionList.length) {\r\n questionIndex = 0\r\n }\r\n\r\n // Set the question id to the new question id\r\n questionId = questionList[questionIndex]\r\n }\r\n }\r\n\r\n fetchQuestionById(questionId)\r\n }\r\n\r\n const getPrevQuestion = () => {\r\n let questionNumber = currentQuestionNumber;\r\n questionNumber--\r\n\r\n // If the question number is less than 0, then we start back at the end\r\n if (questionNumber < 0) {\r\n questionNumber = questionData.QuestionsRandomlyGenerated.length - 1\r\n }\r\n let questionId = questionData.QuestionsRandomlyGenerated[questionNumber]\r\n\r\n // We need to check if our target questionId is grouped. If it is, update the target id accordingly\r\n if (isQuestionIdGrouped(questionId)) {\r\n questionId = getFirstUnansweredGroupQuestionId(questionId)\r\n }\r\n\r\n fetchQuestionById(questionId)\r\n }\r\n\r\n const isQuestionIdGrouped = (questionId) => {\r\n // Determine if the questionId is grouped and return a boolean indicating the result\r\n let isGrouped = false\r\n groupedQuestions.forEach((group) => {\r\n if (group.includes(questionId)) {\r\n isGrouped = true\r\n }\r\n })\r\n return isGrouped\r\n }\r\n\r\n const getFirstUnansweredGroupQuestionId = (questionId) => {\r\n // Our target question id is grouped.\r\n // If the target question is already completed, go to the target question.\r\n // Else, go to the first unanswered question in the group\r\n\r\n if (completedQuestions.includes(questionId)) {\r\n // Question is completed, return the target question id\r\n return questionId\r\n }\r\n\r\n // From here, we know our target question is incomplete. We need to find the first unanswered question in the group.\r\n // First, we find what group we are in and store it in targetGroup\r\n let targetGroup = []\r\n groupedQuestions.forEach((group) => {\r\n if (group.includes(questionId)) {\r\n targetGroup = group\r\n }\r\n })\r\n\r\n // Next, we iterate through the group to find the first unanswered question\r\n for(let i = 0; i < targetGroup.length; i++) {\r\n if (!completedQuestions.includes(targetGroup[i])) {\r\n return targetGroup[i]\r\n }\r\n }\r\n\r\n // This code shouldn't be reached. If it is, we throw an error which indicates there is a bug in the code\r\n throw new Error('Error getting first unanswered question in group')\r\n }\r\n\r\n // This function will be called only by the submit button. Record Value will only be true here\r\n const submitQuestion = async () => {\r\n if (props.practiceMode) {\r\n fetchPracticeModeData()\r\n } else {\r\n let nextQuestionId = getNextUnansweredQuestionId()\r\n\r\n fetchQuestionById(nextQuestionId, true)\r\n }\r\n }\r\n\r\n const fetchPracticeModeData = async () => {\r\n const requestBody = {\r\n customerId: userData.CustomerId,\r\n timeLeftInSec: props.timedExam ? remainingTime : 0,\r\n blockId: currentQuestionData.BLOCKID,\r\n blockguid: questionData.blockguid,\r\n completeSubmission: false,\r\n isTimed: props.timedExam,\r\n questionId: currentQuestionData.QUESTIONID,\r\n answerIds: selectedAnswers.map((answer) => Number(answer)),\r\n }\r\n\r\n try {\r\n setIsLoading(true)\r\n const response = await fetch(`${route}/selectgrading.webapi`, {\r\n method: 'POST',\r\n headers: {\r\n 'Token': userData.Token,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(requestBody)\r\n })\r\n\r\n if (response.status === 401) {\r\n return props.setAuthenticationError()\r\n }\r\n\r\n let data = await response.json()\r\n setPracticePopupDetails(data)\r\n }\r\n catch (error) {\r\n console.log(error)\r\n }\r\n finally {\r\n setIsLoading(false)\r\n }\r\n }\r\n\r\n const fetchQuestionById = async (nextQuestionId, RecordValue = false) => {\r\n\r\n // If our next question is the same as our current question, we don't need to fetch anything\r\n if (nextQuestionId === currentQuestionData.QUESTIONID && !RecordValue)\r\n return\r\n\r\n // Need to determine if we are finished with the exam\r\n let completeSubmission = false\r\n if (isSelectedQuestionLastQuestion() && RecordValue)\r\n completeSubmission = true\r\n\r\n let requestBody = {\r\n customerId: userData.CustomerId,\r\n timeLeftInSec: remainingTime,\r\n blockId: currentQuestionData.BLOCKID,\r\n blockguid: questionData.blockguid,\r\n completeSubmission,\r\n isTimed: props.timedExam,\r\n // questionId: questionData.QuestionsRandomlyGenerated[currentQuestionNumber],\r\n questionId: currentQuestionData.QUESTIONID,\r\n answerIds: selectedAnswers,\r\n NextQuestionId: nextQuestionId === -1 ? currentQuestionData.QUESTIONID : nextQuestionId,\r\n RecordValue: completedQuestions.includes(currentQuestionData.QUESTIONID) ? false : RecordValue,\r\n }\r\n\r\n setIsLoading(true);\r\n fetch(`${route}/moveon.webapi`, {\r\n method: 'POST',\r\n headers: {\r\n 'Token': userData.Token,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(requestBody)\r\n })\r\n .then((response) => {\r\n if (response.status === 401) {\r\n return props.setAuthenticationError()\r\n }\r\n return response.json()\r\n })\r\n .then((data) => {\r\n\r\n // This whole section still needs to be cleaned up\r\n\r\n if (RecordValue) {\r\n let questionAnswers = {...questionAnswersMap}\r\n questionAnswers[currentQuestionData.QUESTIONID] = selectedAnswers\r\n setQuestionAnswersMap(questionAnswers)\r\n if (!completedQuestions.includes(currentQuestionData.QUESTIONID)) {\r\n setCompletedQuestions([...completedQuestions, currentQuestionData.QUESTIONID])\r\n }\r\n if (requestBody.completeSubmission) {\r\n // Exam is completed\r\n return props.displayExamGrade(data)\r\n }\r\n } else {\r\n // Check if there is an answer for the question\r\n if (questionAnswersMap[nextQuestionId] !== undefined) {\r\n setSelectedAnswers(questionAnswersMap[nextQuestionId].map((answer) => answer.toString()))\r\n }\r\n }\r\n setCurrentQuestionData(data.NextQuestion);\r\n data.NextAnswer = data.NextAnswer.sort(() => Math.random() - 0.5)\r\n setCurrentAnswerData(data.NextAnswer);\r\n // Find index of QUESTIONID in QuestionsRandomlyGenerated array\r\n let questionNumber = questionData.QuestionsRandomlyGenerated.indexOf(data.NextQuestion.QUESTIONID);\r\n setCurrentQuestionNumber(questionNumber);\r\n setIsLoading(false);\r\n setPracticePopupDetails(null)\r\n })\r\n .catch((error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n })\r\n }\r\n\r\n // Handle the answer change //\r\n function handleAnswerChange(e) {\r\n const answerId = e.target.value;\r\n const inputType = e.target.type;\r\n const isChecked = selectedAnswers.includes(answerId);\r\n\r\n if (inputType === \"radio\") {\r\n setSelectedAnswers([answerId]);\r\n }\r\n\r\n if (inputType === \"checkbox\") {\r\n if (isChecked) {\r\n setSelectedAnswers((prev) => prev.filter(id => id !== answerId));\r\n } else {\r\n setSelectedAnswers((prev) => [...prev, answerId]);\r\n }\r\n }\r\n }\r\n\r\n // Text zoom functionality //\r\n function handleTextZoom(size) {\r\n switch(size) {\r\n case 'small':\r\n setFontSize({option: 'small', style: \"1rem\"});\r\n break;\r\n case 'medium':\r\n setFontSize({option: 'medium', style: '1.2rem'});\r\n break;\r\n case 'large':\r\n setFontSize({option: 'large', style: '1.4rem'});\r\n break;\r\n default:\r\n setFontSize({option: 'small', style: \"1rem\"});\r\n break;\r\n }\r\n }\r\n\r\n // Reverse color functionality //\r\n function toggleColorMode() {\r\n if (!isDarkMode) {\r\n // Dark Mode\r\n document.documentElement.style.setProperty('--background-color', '#000');\r\n document.documentElement.style.setProperty('--labs-text-color', '#fff');\r\n document.documentElement.style.setProperty('--labs-color', '#33353d');\r\n document.documentElement.style.setProperty('--input-color', '#33353d');\r\n } else {\r\n // Light Mode\r\n document.documentElement.style.setProperty('--background-color', 'linear-gradient(#fff, #d7ddec)');\r\n document.documentElement.style.setProperty('--labs-text-color', '#000');\r\n document.documentElement.style.setProperty('--labs-color', '#D7DCED');\r\n document.documentElement.style.setProperty('--input-color', '#FFFFFF');\r\n }\r\n setIsDarkMode(prev => !prev);\r\n }\r\n\r\n const isQuestionMarked = (questionId) => {\r\n if (questionId === undefined) {\r\n questionId = currentQuestionData.QUESTIONID\r\n }\r\n if (currentMarkedQuestions.includes(questionId))\r\n return true\r\n \r\n return false\r\n }\r\n\r\n const markQuestion = () => {\r\n let markedArray = [...props.markedQuestions];\r\n\r\n // Get QuestionId from currentQuestionData\r\n const questionId = currentQuestionData.QUESTIONID;\r\n\r\n if (isQuestionMarked(questionId)) {\r\n const questionIndex = markedArray.findIndex(question => question === questionId)\r\n // Remove question from markedArray\r\n markedArray.splice(questionIndex, 1)\r\n } else {\r\n markedArray.push(questionId)\r\n }\r\n props.setMarkedQuestions(markedArray);\r\n }\r\n\r\n const handleMarkQuestion = async () => {\r\n let questionId = currentQuestionData.QUESTIONID;\r\n const response = await fetch(`${route}/addremovemarkedquestion.webapi`, {\r\n method: 'POST',\r\n headers: {\r\n 'Token': userData.Token,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n QuestionId: currentQuestionData.QUESTIONID,\r\n CustomerId: userData.CustomerId,\r\n RemoveQuestion: isQuestionMarked(questionId) ? true : false\r\n })\r\n });\r\n\r\n if (response.ok) {\r\n markQuestion();\r\n }\r\n\r\n if (response.status === 401) {\r\n props.setAuthenticationError()\r\n }\r\n\r\n // console.log(await response.text())\r\n }\r\n\r\n const formatSeconds = (seconds) => {\r\n const minutes = Math.floor(seconds / 60);\r\n const leftoverSeconds = seconds % 60;\r\n return `${minutes}:${leftoverSeconds < 10 ? '0' : ''}${leftoverSeconds}`;\r\n }\r\n\r\n const endBlockHandler = async () => {\r\n try {\r\n const response = await fetch(`${route}/manuallyendblock.webapi`, {\r\n method: 'POST',\r\n headers: {\r\n 'Token': userData.Token,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n blockguid: questionData.blockguid\r\n })\r\n })\r\n \r\n if (response.status === 401) {\r\n return props.setAuthenticationError()\r\n }\r\n\r\n if (response.status === 200) {\r\n return props.displayExamGrade()\r\n }\r\n\r\n window.alert('Failed to End Block. Please try again or contact us if this issue persists.')\r\n } catch(error) {\r\n console.log(error)\r\n window.alert('Failed to End Block. Please try again or contact us if this issue persists.')\r\n }\r\n }\r\n\r\n const pauseBlockHandler = async () => {\r\n if (attemptName !== '') {\r\n try {\r\n\r\n setLoadingCustomerLabel(true)\r\n const response = await fetch(`${route}/incompletecustomerlabel.webapi`, {\r\n method: 'POST',\r\n headers: {\r\n 'Token': userData.Token,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n guid: questionData.blockguid,\r\n CustomerLabel: attemptName\r\n })\r\n })\r\n setLoadingCustomerLabel(false)\r\n\r\n if (!response.ok) {\r\n throw new Error('Failed to add customer label')\r\n } else if (response.status === 401) {\r\n return props.setAuthenticationError()\r\n }\r\n } catch(error) {\r\n setLoadingCustomerLabel(false)\r\n return console.log(error)\r\n }\r\n }\r\n props.pauseBlockHandler()\r\n }\r\n\r\n const isSelectedQuestionLastQuestion = () => {\r\n if (!questionData)\r\n return false\r\n\r\n // Need to check if the completed questions array is 1 less than the total questions array\r\n if (completedQuestions.length >= (questionData.QuestionsRandomlyGenerated.length - 1)) {\r\n // If it is, check if the currently selected question is the outstanding question\r\n if (!completedQuestions.includes(currentQuestionData.QUESTIONID)) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n\r\n // This code is responsible for building the question list\r\n let questionsList = []\r\n let groupedBefore = false\r\n let lastGrouped = false\r\n if (questionData) {\r\n for (let i = 0; i < questionData.QuestionsRandomlyGenerated.length; i++) {\r\n const questionNumber = i;\r\n let questionId = questionData.QuestionsRandomlyGenerated[questionNumber]\r\n let grouped = false\r\n let isLastGroupedQuestion = false\r\n // Check if questionId exists in groupedQuestions\r\n groupedQuestions.forEach((questionGroup) => {\r\n if (questionGroup.includes(questionId)) {\r\n grouped = true\r\n if (questionGroup[questionGroup.length - 1] === questionId) {\r\n isLastGroupedQuestion = true\r\n }\r\n }\r\n })\r\n\r\n let className = ['questionListItem']\r\n\r\n if (questionNumber === currentQuestionNumber)\r\n className.push('current')\r\n if (completedQuestions.includes(questionId))\r\n className.push('completedListItem')\r\n if (grouped) {\r\n if (groupedBefore) {\r\n if (isLastGroupedQuestion) {\r\n className.push('lastGroupedQuestion')\r\n lastGrouped = true\r\n } else {\r\n className.push('middleGroupedQuestion')\r\n }\r\n } else {\r\n className.push('firstGroupedQuestion')\r\n }\r\n }\r\n\r\n className = className.join(' ')\r\n\r\n questionsList.push(\r\n handleSpecificQuestionSelection(questionId)}\r\n className={className}\r\n >\r\n

{questionNumber + 1}

{isQuestionMarked(questionId) && \"flag}\r\n \r\n )\r\n\r\n if (grouped && !groupedBefore) {\r\n groupedBefore = true\r\n } else if (!grouped && groupedBefore) {\r\n groupedBefore = false\r\n } else if (grouped && groupedBefore && lastGrouped) {\r\n grouped = false\r\n groupedBefore = false\r\n lastGrouped = false\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n setDisplayCalculator(!displayCalculator)}\r\n setDisplayLabs={() => setDisplayLabs(!displayLabs)}\r\n getPreviousQuestion={() => getPrevQuestion()}\r\n getNextQuestion={() => getNextQuestion()}\r\n />\r\n \r\n \r\n setShowPausePopup(true)}\r\n endBlock={() => setShowEndPopup(true)}\r\n />\r\n
\r\n {/* Mobile Labs */}\r\n {displayLabs &&\r\n
\r\n
\r\n
\r\n
\r\n

Lab Values

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n\r\n {/* Mobile Calculator */}\r\n {displayCalculator &&\r\n
\r\n
\r\n
\r\n
\r\n

Calculator

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n\r\n {/* Pause Popup */}\r\n {showPausePopup &&\r\n
\r\n
\r\n
\r\n
\r\n

Pause Block?

\r\n
\r\n
\r\n

Are you sure you want to pause your test? Your answers will be saved and you can come back later to complete this test. If you'd like to name this attempt, enter a name below. Otherwise, the date and time attempted will be displayed in your previous attempts.

\r\n \r\n setAttemptName(e.target.value)}/>\r\n
\r\n
\r\n {/* */}\r\n {loadingCustomerLabel ?\r\n
\r\n \r\n
\r\n :\r\n \r\n }\r\n
\r\n
\r\n
\r\n }\r\n\r\n {/* End Popup */}\r\n {showEndPopup &&\r\n
\r\n
\r\n
\r\n
\r\n

End Block?

\r\n
\r\n
\r\n

Are you sure you want to submit your answers for this test? If you have left any answers blank, you will receive a zero for that question. If you would like to save this exam to complete at a later date, use the Pause Block feature.

\r\n
\r\n
\r\n {/* */}\r\n \r\n
\r\n
\r\n
\r\n }\r\n\r\n {practicePopupDetails !== null &&\r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default Test;","import React, { Component } from 'react'\r\nimport Chart from 'chart.js/auto'\r\n\r\nexport default class DonutChart extends Component {\r\n constructor() {\r\n super()\r\n this.state = {\r\n donutChart: null\r\n }\r\n }\r\n\r\n chartRef = React.createRef()\r\n\r\n componentDidMount() {\r\n this.buildChart()\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.options.cutout !== this.props.options.cutout) {\r\n let donutChart = this.state.donutChart\r\n donutChart.options = this.props.options\r\n donutChart.update(0)\r\n this.setState({donutChart})\r\n }\r\n // if (prevProps.data !== this.props.data) {\r\n // let donutChart = this.state.donutChart\r\n // donutChart.data = this.props.data\r\n // donutChart.update(0)\r\n // this.setState({donutChart})\r\n // }\r\n }\r\n\r\n componentWillUnmount() {\r\n let myDonutChart = this.state.donutChart\r\n myDonutChart.destroy()\r\n this.setState({myDonutChart})\r\n }\r\n\r\n buildChart = () => {\r\n const myChartRef = this.chartRef.current.getContext(\"2d\")\r\n\r\n let myDonutChart = this.state.donutChart\r\n\r\n if (typeof myDonutChart !== \"undefined\" && myDonutChart !== null) myDonutChart.destroy();\r\n\r\n myDonutChart = new Chart(myChartRef, {\r\n type: 'doughnut',\r\n data: this.props.data,\r\n options: this.props.options\r\n })\r\n this.setState({donutChart: myDonutChart})\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n","import React from \"react\";\r\nimport \"./LineGraph.css\";\r\n\r\nimport { Line } from \"react-chartjs-2\";\r\n\r\nexport default function LineGraph(props) {\r\n const data = {\r\n labels: props.data,\r\n datasets: [\r\n {\r\n data: props.data.map((value) => isNaN(value.dailypercentage) ? 0 : Math.round(value.dailypercentage)),\r\n fill: true,\r\n backgroundColor: \"#AABFDB80\",\r\n borderColor: \"#0B335D\",\r\n tension: 0.4,\r\n borderCapStyle: 'round'\r\n }\r\n ]\r\n }\r\n\r\n const chartAreaBorder = {\r\n id: 'chartAreaBorder',\r\n afterDatasetsDraw: (chart, args, options) => {\r\n const { ctx , chartArea: { top, left, width, height } } = chart\r\n ctx.save()\r\n ctx.globalCompositeOperation = 'destination-over'\r\n ctx.fillStyle = '#F5F8FC'\r\n ctx.strokeStyle = '#0B335D'\r\n ctx.lineWidth = 2\r\n ctx.strokeRect(left, top, width, height)\r\n ctx.fillRect(left, top, width, height)\r\n ctx.restore()\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","\r\n\r\nconst ConvertMountainTimeToLocal = (dateToConvert, userTimezone) => {\r\n if (userTimezone === \"\" || userTimezone === \"-7\")\r\n return dateToConvert\r\n\r\n let timezoneOffset = -7 - parseInt(userTimezone)\r\n timezoneOffset *= -1\r\n let convertedDate = new Date(new Date(dateToConvert).getTime() + timezoneOffset * 3600000)\r\n return convertedDate\r\n}\r\n\r\nexport default ConvertMountainTimeToLocal","import React, { Component } from 'react'\r\nimport './ViewCompletionsPopup.css'\r\nimport { motion } from 'framer-motion/dist/framer-motion'\r\nimport MDSpinner from 'react-md-spinner'\r\nimport ConvertMountainTimeToLocal from '../../../Functions/ConvertMountainTimeToLocal'\r\n\r\nexport default class ViewCompletionsPopup extends Component {\r\n constructor() {\r\n super()\r\n this.state = {\r\n fetchOutstanding: false\r\n }\r\n }\r\n\r\n confirmNewCompletion = async () => {\r\n let id = this.props.previousCompletions[this.props.previousCompletionSelected].CustomerGradeId\r\n this.setState({fetchOutstanding: true})\r\n await this.props.confirm(id)\r\n this.props.closePopup()\r\n }\r\n\r\n formatDate = (rawDate) => {\r\n\r\n let date = new Date(ConvertMountainTimeToLocal(rawDate, this.props.timeZone))\r\n let month = date.getMonth() + 1\r\n let day = date.getDate()\r\n let year = date.getFullYear()\r\n let hour = date.getHours()\r\n let minute = date.getMinutes()\r\n let ampm = hour >= 12 ? 'PM' : 'AM'\r\n hour = hour % 12\r\n hour = hour ? hour : 12\r\n minute = minute < 10 ? '0' + minute : minute\r\n let strTime = hour + ':' + minute + ' ' + ampm\r\n return month + '/' + day + '/' + year + ' ' + strTime\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n {this.state.fetchOutstanding ?\r\n
\r\n \r\n
\r\n :\r\n \r\n }\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n","import { faCalendar, faLineChart, faPenToSquare, faStar, faWrench } from '@fortawesome/pro-light-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons'\r\nimport { AnimatePresence } from 'framer-motion/dist/framer-motion'\r\nimport React, { Component } from 'react'\r\nimport MDSpinner from 'react-md-spinner'\r\nimport LineGraph from './LineGraph/LineGraph'\r\nimport './NewGradingPage.css'\r\nimport ViewCompletionsPopup from './ViewCompletionsPopup/ViewCompletionsPopup'\r\nimport ConvertMountainTimeToLocal from '../../Functions/ConvertMountainTimeToLocal'\r\n\r\nexport default class NewGradingPage extends Component {\r\n constructor() {\r\n super()\r\n this.state = {\r\n previousAttemptList: [],\r\n selectedAttemptDetails: null,\r\n dailyPerformance: [],\r\n dailyPerformanceLoading: false,\r\n correctQuestionCount: 0,\r\n totalQuestionCount: 0,\r\n expandedQuestions: [],\r\n viewPreviousCompletionsPopup: false,\r\n previousCompletionSelected: 0,\r\n highestDailyScore: 20,\r\n showAllAnswerOptions: true,\r\n expandQuestionSummaries: true,\r\n questionSummaryTextSize: 0,\r\n answerOptionsExpanded: []\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchPreviousAttempts()\r\n this.getDailyPerformance()\r\n }\r\n\r\n getDailyPerformance = async () => {\r\n this.setState({dailyPerformanceLoading: true})\r\n fetch(`${this.props.route}/dailyperformance.webapi`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'text/plain',\r\n 'Token': this.props.userData.Token,\r\n },\r\n body: JSON.stringify({\r\n CustomerId: this.props.userData.CustomerId\r\n })\r\n })\r\n .then(response => {\r\n this.setState({dailyPerformanceLoading: false})\r\n if (response.status === 401) {\r\n\t\t\t\tthis.props.setAuthenticationError()\r\n\t\t\t\tthrow new Error('Authentication Error')\r\n\t\t\t} else {\r\n\t\t\t\treturn response.json()\r\n\t\t\t}\r\n })\r\n .then((response) => {\r\n\r\n let maxValue = 0\r\n response.forEach((value) => {\r\n if (value.dailypercentage > maxValue)\r\n maxValue = value.dailypercentage\r\n })\r\n // console.log(response)\r\n\r\n this.setState({dailyPerformance: response, highestDailyScore: maxValue})\r\n })\r\n .catch((error) => {\r\n this.props.displayErrorPopupHandler('Error: Failed to load daily performance', `${error}`)\r\n this.setState({dailyPerformanceLoading: false})\r\n console.log(error)\r\n })\r\n }\r\n\r\n fetchPreviousAttempts = async () => {\r\n fetch(`${this.props.route}/getcompletedtests.webapi`, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'text/plain',\r\n 'Token': this.props.userData.Token,\r\n }\r\n })\r\n .then(response => {\r\n\t\t\tif (response.status === 401) {\r\n\t\t\t\tthis.props.setAuthenticationError()\r\n\t\t\t\tthrow new Error('Authentication Error')\r\n\t\t\t} else {\r\n\t\t\t\treturn response.json()\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(response => {\r\n\t\t\t// console.log(response);\r\n this.setState({previousAttemptList: response.reverse()}, (response) => {\r\n let latestBlockGuid = this.state.previousAttemptList[0].guid\r\n this.getCompletionDetails(latestBlockGuid)\r\n })\r\n\t\t})\r\n .catch((error) => {\r\n console.log(error);\r\n this.props.displayErrorPopupHandler('Error: Failed to load previous attempts', `${error}`)\r\n })\r\n }\r\n\r\n getCompletionDetails = (blockguid) => {\r\n fetch(`${this.props.route}/retrievecompletedtestgrade.webapi`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'text/plain',\r\n 'Token': this.props.userData.Token,\r\n },\r\n body: JSON.stringify({\r\n blockguid\r\n })\r\n })\r\n .then(response => {\r\n if (response.status === 401) {\r\n this.props.setAuthenticationError()\r\n throw new Error('Authentication Error')\r\n } else {\r\n return response.json()\r\n }\r\n })\r\n .then(response => {\r\n // console.log(response)\r\n this.setState({selectedAttemptDetails: response, expandedQuestions: [], ...this.getExamDataDetails(response)})\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n this.props.displayErrorPopupHandler('Error: Failed to load attempt', `${error}`)\r\n })\r\n }\r\n\r\n getExamDataDetails = (examDetails) => {\r\n let totalQuestionCount = examDetails.sgolist.length\r\n let correctQuestionCount = 0\r\n let attemptDate = this.state.previousAttemptList[this.state.previousCompletionSelected].TimeAttempted\r\n\r\n examDetails.sgolist.forEach((sgoValue, sgoIndex) => {\r\n correctQuestionCount += sgoValue.GradeForQuestion\r\n })\r\n\r\n correctQuestionCount = correctQuestionCount / 100\r\n\r\n // console.log({totalQuestionCount, correctQuestionCount, attemptDate})\r\n\r\n return {totalQuestionCount, correctQuestionCount, attemptDate}\r\n }\r\n\r\n getAnswerOptionColorClass = (answerOption) => {\r\n if (answerOption.Correct && answerOption.UserSelected) {\r\n return 'feedbackCheckboxWrapperCorrect'\r\n } else if (answerOption.Correct && !answerOption.UserSelected) {\r\n return 'feedbackCheckboxWrapperOrange'\r\n } else if (!answerOption.Correct && answerOption.UserSelected) {\r\n return 'feedbackCheckboxWrapperIncorrect'\r\n } else {\r\n return 'feedbackCheckboxWrapperNeutral'\r\n }\r\n }\r\n\r\n getAnswerContainerColorClass = (answerOption) => {\r\n if (answerOption.Correct && answerOption.UserSelected) {\r\n return 'feedbackAnswerContainerCorrect'\r\n } else if (answerOption.Correct && !answerOption.UserSelected) {\r\n return 'feedbackAnswerContainerOrange'\r\n } else if (!answerOption.Correct && answerOption.UserSelected) {\r\n return 'feedbackAnswerContainerIncorrect'\r\n } else {\r\n return 'feedbackAnswerContainerNeutral'\r\n }\r\n }\r\n\r\n GetQuestionGrade = (props) => {\r\n if (props.GradeForQuestion === 100) {\r\n return (\r\n
\r\n

Question correct. Points received: 1 / 1

\r\n
\r\n )\r\n } else if (props.GradeForQuestion === 0) {\r\n return (\r\n
\r\n

Question incorrect. Points received: 0 / 1

\r\n
\r\n )\r\n } else {\r\n return (\r\n
\r\n

Question partially correct. Points received: {(props.GradeForQuestion / 100).toFixed(2)} / 1

\r\n
\r\n )\r\n }\r\n }\r\n\r\n handleSelectedCompletionChange = () => {\r\n let latestBlockGuid = this.state.previousAttemptList[this.state.previousCompletionSelected].guid\r\n this.getCompletionDetails(latestBlockGuid)\r\n }\r\n\r\n formatAttemptDate = (rawDate) => {\r\n // format rawDate to user timezone\r\n // console.log(this.props.userData.TimeZone)\r\n let date = new Date(ConvertMountainTimeToLocal(rawDate, this.props.userData.TimeZone))\r\n const MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\r\n let month = MONTHS[date.getMonth()]\r\n let day = date.getDate()\r\n let year = date.getFullYear()\r\n let hour = date.getHours()\r\n let minute = date.getMinutes()\r\n let ampm = hour >= 12 ? 'pm' : 'am'\r\n hour = hour % 12\r\n hour = hour ? hour : 12\r\n minute = minute < 10 ? '0' + minute : minute\r\n let formattedDate = `${month} ${day}, ${year}, ${hour}:${minute} ${ampm}`\r\n return formattedDate\r\n }\r\n\r\n toggleQuestionSummary = (questionIndex) => {\r\n let expandedQuestions = [...this.state.expandedQuestions]\r\n if (expandedQuestions.includes(questionIndex)) {\r\n expandedQuestions.splice(expandedQuestions.indexOf(questionIndex), 1)\r\n } else {\r\n expandedQuestions.push(questionIndex)\r\n }\r\n this.setState({expandedQuestions})\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n

My Grades

\r\n
\r\n
\r\n
\r\n

Your Performance Summary

\r\n

A brief overview of your performance since you started using our app. These figures are calculated by taking your daily total number of correct questions divided by the total number of questions completed on that day.

\r\n
\r\n
\r\n {this.state.dailyPerformanceLoading ?\r\n
\r\n \r\n
\r\n :\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Grading Feedback

\r\n \r\n
\r\n
\r\n
\r\n \r\n

Tools

\r\n
\r\n
\r\n
\r\n

Show All Answer Options

\r\n \r\n
\r\n
\r\n

Expand Question Summaries

\r\n \r\n
\r\n
\r\n

Question Summary Size

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Your Score

\r\n
\r\n

{this.state.totalQuestionCount === 0 ? 0 : Math.round((this.state.correctQuestionCount / this.state.totalQuestionCount) * 100)}%

\r\n

({Math.round(this.state.correctQuestionCount * 100) / 100}/{this.state.totalQuestionCount})

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Date Attempted

\r\n

{this.state.attemptDate ? this.formatAttemptDate(this.state.attemptDate) : ''}

\r\n
\r\n
\r\n\r\n {!this.state.selectedAttemptDetails &&\r\n
\r\n \r\n
\r\n }\r\n\r\n {this.state.selectedAttemptDetails?.sgolist.map((questionDetails, questionIndex) => (\r\n
\r\n
\r\n

{questionIndex + 1}

\r\n

{questionDetails.Question}

\r\n
\r\n \r\n {questionDetails.sgo.map((answerOption, answerIndex) => (\r\n ((answerOption.Correct || answerOption.UserSelected || this.state.answerOptionsExpanded.includes(`${this.state.selectedAttemptDetails.BlockGuid} - ${questionDetails.QuestionId}`)) || this.state.showAllAnswerOptions) &&\r\n
\r\n
\r\n
\r\n {answerOption.UserSelected &&\r\n \r\n }\r\n
\r\n {/* null} className='feedbackAnswerOptionCheckbox' /> */}\r\n
\r\n
\r\n

{answerOption.AnswerString}

\r\n

{answerOption.EventName}

\r\n
\r\n
\r\n ))}\r\n {(!this.state.answerOptionsExpanded.includes(`${this.state.selectedAttemptDetails.BlockGuid} - ${questionDetails.QuestionId}`) && !this.state.showAllAnswerOptions) &&\r\n \r\n }\r\n
\r\n
\r\n {!this.state.expandQuestionSummaries && this.toggleQuestionSummary(questionIndex)}\r\n />}\r\n

Question Summary

\r\n
\r\n
\r\n

{questionDetails.QuestionSummary}

\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n {this.state.viewPreviousCompletionsPopup &&\r\n this.setState({viewPreviousCompletionsPopup: false})}\r\n primaryColor={\"#0B335D\"}\r\n confirm={() => this.handleSelectedCompletionChange()}\r\n updatePreviousCompletionSelected={(newCompletionIndex) => this.setState({previousCompletionSelected: newCompletionIndex})}\r\n timeZone={this.props.userData.TimeZone}\r\n />\r\n }\r\n \r\n
\r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\nimport './IncompleteBlockPopup.css'\r\nimport { motion } from 'framer-motion/dist/framer-motion'\r\nimport MDSpinner from 'react-md-spinner'\r\nimport ConvertMountainTimeToLocal from '../../../Functions/ConvertMountainTimeToLocal'\r\n\r\nexport default class IncompleteBlockPopup extends Component {\r\n constructor() {\r\n super()\r\n this.state = {\r\n optionSelected: -1,\r\n }\r\n }\r\n\r\n formatTime = (rawTime) => {\r\n let date = new Date(ConvertMountainTimeToLocal(rawTime, this.props.userData.TimeZone))\r\n const MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\r\n\r\n let month = MONTHS[date.getMonth()]\r\n let day = date.getDate()\r\n let year = date.getFullYear()\r\n let hours = date.getHours()\r\n let minutes = date.getMinutes()\r\n let dayPeriod = 'AM'\r\n\r\n if (hours > 12) {\r\n hours -= 12\r\n dayPeriod = 'PM'\r\n } else if (hours === 12) {\r\n dayPeriod = 'PM'\r\n } else if (hours === 0) {\r\n hours = 12\r\n }\r\n\r\n let suffix = \"\"\r\n\r\n if (day % 10 === 1 && day !== 11)\r\n suffix = 'st'\r\n else if (day % 10 === 2 && day !== 12)\r\n suffix = 'nd'\r\n else if (day % 10 === 3 && day !== 13)\r\n suffix = 'rd'\r\n else\r\n suffix = 'th'\r\n \r\n return `${month} ${day}${suffix}, ${year}, ${hours}:${minutes < 10 ? `0${minutes}` : minutes} ${dayPeriod}`\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n {/* {true ? */}\r\n {this.props.continueCaseLoading ?\r\n
\r\n \r\n
\r\n :\r\n \r\n }\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n","import { faEye, faEyeSlash, faScrewdriverWrench } from '@fortawesome/pro-light-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport React, { Component } from 'react'\r\nimport './NewSettingsPage.css'\r\nimport FaqQuestionsArray from '../../FAQ_Json.json'\r\nimport MDSpinner from 'react-md-spinner'\r\nimport ConvertMountainTimeToLocal from '../../Functions/ConvertMountainTimeToLocal'\r\n\r\nexport default class NewSettingsPage extends Component {\r\n constructor() {\r\n super()\r\n this.state = {\r\n faqQuestions: [],\r\n pageDisplayed: 'Settings',\r\n userFeedback: '',\r\n currentPassword: '',\r\n newPassword: '',\r\n confirmNewPassword: '',\r\n showCurrentPassword: false,\r\n showNewPassword: false,\r\n showConfirmPassword: false,\r\n changePasswordLoading: false,\r\n submitFeedbackLoading: false,\r\n lastFourDigits: ''\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n // console.log(this.props)\r\n this.updateFaqQuestionsHandler()\r\n }\r\n\r\n updateFaqQuestionsHandler = () => {\r\n\t\tlet questions = []\r\n\t\tlet answers = []\r\n\t\tFaqQuestionsArray.forEach((value, index) => {\r\n\t\t\tlet beginning = value.slice(0, 10)\r\n\t\t\tif (beginning.includes('question:')) {\r\n\t\t\t\tlet question = value.slice(-value.length + 10)\r\n\t\t\t\tquestions.push(question)\r\n\t\t\t} else if (beginning.includes('answer:')) {\r\n\t\t\t\tlet answer = value.slice(-value.length + 8)\r\n\t\t\t\tanswers.push(answer)\r\n\t\t\t}\r\n\t\t})\r\n\t\tlet FAQ = []\r\n\t\tquestions.forEach((value, index) => {\r\n\t\t\tFAQ.push({\r\n\t\t\t\tquestion: value,\r\n\t\t\t\tanswer: answers[index]\r\n\t\t\t})\r\n\t\t})\r\n\t\tthis.setState({faqQuestions: FAQ})\r\n\t}\r\n\r\n getSubscriptionDaysRemaining = () => {\r\n let expirationDate = new Date(this.props.userData.LicenseExpiration)\r\n let today = new Date()\r\n let daysRemaining = Math.floor((expirationDate - today) / (1000 * 60 * 60 * 24))\r\n return daysRemaining\r\n }\r\n\r\n formatDateString = (dateString) => {\r\n let expirationDate = new Date(ConvertMountainTimeToLocal(dateString, this.props.userData.TimeZone))\r\n const MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\r\n let month = expirationDate.getMonth() + 1\r\n let day = expirationDate.getDate()\r\n let year = expirationDate.getFullYear()\r\n let monthName = MONTHS[month - 1]\r\n return `${monthName} ${day}, ${year}`\r\n }\r\n\r\n formatTimeString = (dateString) => {\r\n let expirationDate = new Date(ConvertMountainTimeToLocal(dateString, this.props.userData.TimeZone))\r\n let hours = expirationDate.getHours()\r\n let minutes = expirationDate.getMinutes()\r\n let ampm = hours >= 12 ? 'PM' : 'AM'\r\n hours = hours % 12\r\n hours = hours ? hours : 12\r\n minutes = minutes < 10 ? '0' + minutes : minutes\r\n let strTime = hours + ':' + minutes + ' ' + ampm\r\n return strTime\r\n }\r\n\r\n updateTimeZone = (e) => {\r\n let value = e.target.value\r\n this.setState({updateTimeZoneLoading: true}, async () => {\r\n await this.props.updateSelectedTimeZone(value)\r\n this.setState({updateTimeZoneLoading: false})\r\n })\r\n }\r\n\r\n fetchChangePassword = () => {\r\n if (this.state.newPassword !== this.state.confirmNewPassword) {\r\n return this.props.displayErrorPopupHandler('Passwords do not match', 'Please make sure your new password and confirm new password fields match.')\r\n\t\t}\r\n\r\n this.setState({changePasswordLoading: true})\r\n console.log(this.props.userData, this.state.currentPassword, this.state.newPassword)\r\n fetch(`${this.props.route}/changepassword.webapi`, {\r\n method: 'POST',\r\n headers: {\r\n 'Token': this.props.userData.Token,\r\n 'Content-Type': 'text/plain',\r\n },\r\n body: JSON.stringify({\r\n customerId: this.props.userData.CustomerId,\r\n oldPassword: this.state.currentPassword,\r\n newPassword: this.state.newPassword,\r\n })\r\n })\r\n .then(response => {\r\n this.setState({changePasswordLoading: false})\r\n if (response.status === 401) {\r\n // show authentication popup\r\n this.props.setAuthenticationError()\r\n } else {\r\n return response.text()\r\n }\r\n })\r\n .then(response => {\r\n console.log(response)\r\n if (response.includes('Password updated')) {\r\n this.setState({\r\n pageDisplayed: \"Settings\",\r\n currentPassword: \"\",\r\n newPassword: \"\",\r\n confirmNewPassword: \"\"\r\n }, () => {\r\n this.props.displaySuccessPopupHandler('Password Changed Successfully', 'Your password has been updated successfully.')\r\n })\r\n } else {\r\n // Remove curly braces from message\r\n let result = response.replace('{', '')\r\n result = result.replace('}', '')\r\n this.props.displayErrorPopupHandler('Failed To Change Password', result)\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error)\r\n this.setState({changePasswordLoading: false}, () => {\r\n this.props.displayErrorPopupHandler('Failed To Change Password', 'There was an error changing your password. Please try again later.')\r\n })\r\n })\r\n }\r\n\r\n fetchSubmitFeedback = () => {\r\n this.setState({submitFeedbackLoading: true})\r\n fetch(`${this.props.route}/feedback.webapi`, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Token': this.props.userData.Token,\r\n\t\t\t\t'Content-Type': 'text/plain',\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify({\r\n\t\t\t\tCustomerId: this.props.userData.CustomerId,\r\n\t\t\t\tfeedback: this.state.userFeedback\r\n\t\t\t})\r\n\t\t})\r\n\t\t.then((response) => {\r\n\t\t\tif (response.status === 401) {\r\n\t\t\t\tthis.setState({authenticationError: true})\r\n\t\t\t\tthrow new Error('Authentication Error')\r\n\t\t\t} else {\r\n\t\t\t\treturn response.text()\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then((response) => {\r\n console.log(response)\r\n this.setState({\r\n submitFeedbackLoading: false,\r\n pageDisplayed: 'Settings',\r\n userFeedback: '',\r\n }, () => {\r\n this.props.displaySuccessPopupHandler('Feedback Submitted Successfully', 'Thanks for your feedback, we will review it and get back to you if necessary.')\r\n })\r\n\t\t})\r\n\t\t.catch((error) => {\r\n console.log(error)\r\n this.setState({\r\n submitFeedbackLoading: false,\r\n }, () => {\r\n this.props.displayErrorPopupHandler('Error Submitting Feedback', 'There was an error submitting your feedback. Please try again.')\r\n })\r\n\t\t})\r\n }\r\n\r\n handlePrintReceipt = () => {\r\n let confirmationPopupOptions = {\r\n title: `Print Your Receipt`,\r\n description: `If you need the last four digits of your card added to your receipt, please enter them here.`,\r\n confirmFunction: async () => {\r\n this.props.setPopupLoading(true)\r\n await this.fetchPrintReceipt()\r\n this.props.setPopupLoading(false)\r\n },\r\n children: (\r\n
\r\n \r\n {this.setState({lastFourDigits: e.target.value})}}/>\r\n
\r\n ),\r\n closePopup: () => {\r\n this.props.closeConfirmationPopup()\r\n }\r\n }\r\n this.props.displayConfirmationPopupHandler(confirmationPopupOptions)\r\n }\r\n\r\n fetchPrintReceipt = async () => {\r\n if (isNaN(Number(this.state.lastFourDigits))) {\r\n return window.alert('Invalid Last 4 Entry')\r\n } else if (this.state.lastFourDigits.length !== 0 && this.state.lastFourDigits.length !== 4) {\r\n return window.alert('Invalid Last 4 Entry')\r\n }\r\n\r\n try {\r\n let printReceiptFetch = await fetch(`${this.props.route}/invoicetopdf.webapi`, {\r\n method: 'POST',\r\n headers: {\r\n 'Token': this.props.userData.Token,\r\n 'Content-Type': 'text/plain'\r\n },\r\n body: JSON.stringify({\r\n CustomerId: this.props.userData.CustomerId,\r\n Last4: this.state.lastFourDigits\r\n })\r\n })\r\n\r\n if (!printReceiptFetch.ok) {\r\n return this.props.displayErrorPopupHandler('Error Printing Receipt', 'There was an error printing your receipt. Please try again.')\r\n }\r\n\r\n let printReceiptHTML = await printReceiptFetch.text()\r\n\r\n this.props.closeConfirmationPopup()\r\n this.props.setPrintReceiptHTML(printReceiptHTML)\r\n } catch(error) {\r\n this.props.displayErrorPopupHandler('Error Printing Receipt', 'There was an error printing your receipt. Please try again.')\r\n console.log(error)\r\n }\r\n }\r\n\r\n render() {\r\n if (this.state.pageDisplayed === 'Settings') {\r\n return (\r\n
\r\n
\r\n \r\n

Account Settings

\r\n \r\n
\r\n
\r\n

Profile Details

\r\n
\r\n

Name

\r\n

{this.props.userData.CustomerFirstName} {this.props.userData.CustomerLastName}

\r\n
\r\n
\r\n

Email

\r\n

{this.props.userData.CustomerUserName}

\r\n
\r\n
\r\n

Account Creation Date

\r\n

{this.formatDateString(this.props.userData.DateCustCreated)} {this.formatTimeString(this.props.userData.DateCustCreated)}

\r\n {/*

June 13th, 2020, 3:21 PM

*/}\r\n
\r\n
\r\n

Subscription End Date

\r\n

{this.formatDateString(this.props.userData.LicenseExpiration)} {this.formatTimeString(this.props.userData.LicenseExpiration)}

\r\n {/*

November 4th, 2022 10:00 PM

*/}\r\n
\r\n
\r\n
\r\n
\r\n

Resubscribe

\r\n
\r\n

You have {this.getSubscriptionDaysRemaining()} Days remaining in your subscription ending {this.formatDateString(this.props.userData.LicenseExpiration)}. If you need more time to study, you can resubscribe by following these instructions:

\r\n
    \r\n
  1. 1
  2. \r\n
  3. Click “Resubscribe” or navigate to *PsychQB Purchase Link*

  4. \r\n
  5. 2
  6. \r\n
  7. Select the amount of time that you would like to extend your subscription

  8. \r\n
  9. 3
  10. \r\n
  11. At checkout, use the same e-mail address that you used to subscribe originally. The system will automatically locate your account and extend your subscription.

  12. \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

Time Zone

\r\n

Setting your time zone will make device times, like exam completion dates, display in your local time instead of UTC.

\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

View FAQ

\r\n

Have a question about our software? We answer those here.

\r\n \r\n
\r\n
\r\n

Report Bug/Feedback

\r\n

Noticed a bug or have something to share with us? Let us know here.

\r\n \r\n
\r\n
\r\n

Print Receipt

\r\n

Need a copy of your account receipt? You can download a copy or print it here.

\r\n \r\n
\r\n
\r\n

Change Password

\r\n

Change the password you use to log in.

\r\n \r\n
\r\n
\r\n
\r\n )\r\n } else if (this.state.pageDisplayed === 'Faq') {\r\n return (\r\n
\r\n \r\n

Frequently Asked Questions

\r\n

Have a question about our software? We answer those here.

\r\n {this.state.faqQuestions.map((question, index) => (\r\n
\r\n

{question.question}

\r\n

{question.answer}

\r\n
\r\n ))}\r\n
\r\n )\r\n } else if (this.state.pageDisplayed === 'ChangePassword') {\r\n return (\r\n
\r\n \r\n

Change Password

\r\n

Update the password you use to log in.

\r\n
\r\n \r\n
\r\n this.setState({currentPassword: e.target.value})}\r\n />\r\n \r\n
\r\n \r\n
\r\n this.setState({newPassword: e.target.value})}\r\n />\r\n \r\n
\r\n \r\n
\r\n this.setState({confirmNewPassword: e.target.value})}\r\n />\r\n \r\n
\r\n {/* {true ? */}\r\n {this.state.changePasswordLoading ?\r\n
\r\n \r\n
\r\n :\r\n \r\n }\r\n
\r\n
\r\n )\r\n } else if (this.state.pageDisplayed === 'ReportBug') {\r\n return (\r\n
\r\n \r\n

Report Bug/Feedback

\r\n

Noticed a bug or have something to share with us? Let us know here.

\r\n
\r\n \r\n