{"version":3,"sources":["common/Urls.js","common/Four04.js","common/Buttons.js","common/ApiFetch.js","common/Loading.js","common/Polyfills.js","header/AvatarOverlay.js","common/ChildNavigation.js","common/Link.js","assessment/ReportedError.js","common/DeviceOrientation.js","assessment/FreePractice.js","dashboards/ChildSetup.js","common/GetSeason.js","parent-resources/Enrichment.js","sba-games/Games.js","common/ThumbnailLink.js","sba-games/GamesIndex.js","header/Header.js","header/Hero.js","test-prep/HowToPrepInteractive.js","common/Printables.js","test-prep/HowToPrepPrintable.js","common/Lessons.js","test-prep/HowToPrepLessons.js","test-prep/Document.js","test-prep/HowToPrep.js","tutoring/StudentSelector.js","tutoring/TutoringComponent.js","tutoring/MessageTab.js","tutoring/MessageBubble.js","tutoring/Message.js","tutoring/Inbox.js","common/Popup.js","dashboards/ParentDashboard.js","parent-resources/ParentResources.js","sba-games/SbaIndex.js","sba-games/SbaProgram.js","common/SidebarLeft.js","common/SidebarRight.js","common/SiteTour.js","test-directory/StatesCommonCore.js","assessment/Results.js","assessment/Assessment.js","assessment/SkillResults.js","dashboards/TutoringModal.js","dashboards/TestDashboard.js","test-directory/TestDirectoryListing.js","test-directory/TestDirectoryStates.js","test-directory/TestDirectory.js","tutoring/Utils.js","tutoring/AddSession.js","tutoring/TutorTabs.js","tutoring/TutoringCalendar.js","tutoring/Session.js","tutoring/TutoringOverview.js","tutoring/TutorSelection.js","common/CustomerSupport.js","dashboards/PodsModal.js","common/ScrollToTop.js","App.js","index.js","common/Modules.js","assessment/Question.js"],"names":["hostname","window","location","website_url","api_url","members_url","WEBSITE_URL","MEMBERS_URL","API_URL","Four04","props","className","AddTestButton","active","test_id","onClick","clickCheck","icon","dangerouslySetInnerHTML","__html","title","primary","clickStar","AddCategoryButton","cat_id","require","ApiFetch","endpoint","method","data","headers","mode","body","JSON","stringify","credentials","fetch","then","response","ok","text","parse","responseData","catch","error","message","console","warn","Loading","Array","prototype","map","callback","T","A","k","this","TypeError","O","Object","len","length","arguments","kValue","mappedValue","call","AvatarOverlay","Component","constructor","super","avatar","dashboard_theme","user","children","hasOwnProperty","active_child","child","state","chooseAvatar","bind","chooseTheme","setThemes","togglePopups","e","setState","target","getAttribute","updateChild","id","avatarShowing","avatarHide","avatarPopup","document","getElementById","themePopup","avatarDisp","currentStyle","display","getComputedStyle","style","render","self","avatars","value","src","alt","themes","theme","backgroundImage","ChildNavigation","updateSelectedTest","key","active_test","tests","appProps","pathname","indexOf","match","params","test","view","url","history","push","replace","updateUser","sort","a","b","i","short_title","child_setup","extraProps","addChild","editChild","editChildPage","to","Link","React","parseTo","parser","createElement","href","isInternal","toLocation","rest","ReportedError","submitError","close","re","postdata","querySelector","checked","learnosity","reference","question_id","res","getElementsByClassName","placeholder","name","htmlFor","type","Orientation","orientation","defaultProps","alwaysRender","noop","screen","lockOrientationUniversal","lockOrientation","mozLockOrientation","msLockOrientation","DeviceOrientation","onOrientationChange","angle","componentWillMount","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","event","innerWidth","innerHeight","Math","abs","split","onLockOrientation","lock","Promise","resolve","reject","Children","Question","SetAnswerArea","FreePractice","answers","answerCount","answered_ids","correctCount","currentQuestion","finished","go_to_results","grade","gradeAudio","highest_score","highest_score_id","questions","questionsFinished","question_results","results","selected_skill","show_results","skills","testimonials","testimonialsDisplayed","testimonialNumber","time","totalCorrect","correct","displayTestimonials","finishGame","finishQuestions","getTestimonials","getQuestions","goToResults","installGame","nextResult","prevResult","reloadQuestions","resetQuestions","setSkills","wrong","questionsLoaded","grades","childGrade","grades_by_id","numeric","starttime","Date","newIds","concat","keys","join","queryString","res2","showReportedError","question","correct_answers","dims","getBoundingClientRect","posx","clientX","left","posy","clientY","top","dataset","width","height","nextQuestion","current_audio","getElementsByTagName","pause","currentTime","next","audio","play","startGame","starts","overlays","q","n","parseInt","t","taxonomies","taxonomy","total_questions","total_correct","activity_id","newTotalCorrect","showResults","current_key","showQuestions","question_html","child_name","grade_id","question_skills","s","score","question_ids","description","prev","replayAudio","play_audio","showFreePractice","ans_image","answerArea","can_play_audio","image","reportError","overflowX","backgroundColor","freeQuestions","result","textAlign","fontSize","RecommendedTests","region","regions","tests_by_grade","undefined","from","Set","added","slug","AddableTest","setTest","updatePrimaryTest","AdditionalTests","slice","recommended","rec","splice","toLowerCase","ChildSetup","firstChild","has_child","loaded","addStudent","changeSection","deleteChild","gradeChange","handleNameChange","regionChange","saveChild","setActiveUser","setChildData","setClassCategory","showFreeQuickPractice","componentDidUpdate","child_id","primaryTest","classList","add","contains","displayedSection","setChildAssessmentsByTest","state_id","userData","assign","c","String","hasTest","is_primary","checkbox","confirmAlert","buttons","label","documentElement","overflowY","p","allTestBtns","querySelectorAll","remove","selectedTestBtn","checkAddStudent","allowed_children","nameChangeTO","clearTimeout","setTimeout","section","noSetUp","h1","testsActive","backToDashboard","paddingTop","access","paid_access","primaryTestName","hasQuestions","interactive_questions","setupChildClass","base_price","marginTop","padding","onChange","disabled","country","number_of_questions","skill_id","moment","getSeason","week","Enrichment","factoid","currentWeek","currentWeekHeight","nextWeek","r","info","link","file","online","offline","changeGrade","offsetHeight","season","currentWeekMoment","nextWeekMoment","current_week_text","day","format","next_week_text","onlineOffline","o","toUpperCase","position","Games","games","scroll","game","paddingBottom","maxWidth","margin","overflow","scrolling","border","withRouter","ThumbnailLink","instant_access","star","user_access","grade_val","thumbnail","display_name","GamesIndex","param","URLSearchParams","search","get","filter","selected_grade","defaultValue","safeDisplayName","app_url","Header","menuHeight","toggleMenu","menu","borderBottomWidth","transition","form","preventDefault","input","button","opened","searchOpened","focus","sr","isDescendant","stopPropagation","header","newMessage","showNewMessage","cursor","srcSet","first_name","email","onKeyUp","searchLinks","Hero","changeChild","avatar_url","dash_bg_url","blue_heading","showEditButton","dash_bg","HowToPrepInteractive","accesss_tp","grade_name","g","apps","sbas","used_sbas","app","sba","show","tooltip_text","program_name","test_page","includes","Printables","changeReviewed","togglePrintableTable","el","childData","nextSibling","deleteDocument","doc_id","table","currentTarget","parentElement","current_grade","documents","entries","categories","display_mode","doc","category","firstKey","tableClass","test_number","page","colSpan","last_reviewed","checkbox_value","now","sd","secure_documents","getDate","utc","local","check_box_class","path","questionCount","question_count","HowToPrepPrintable","sections","togglePrintableTest","setGrade","setPrintablesByTestPage","prevProps","prevState","snapshot","componentWillReceiveProps","has_docs","total_tests","test_grades","tests_by_id","show_practice_questions","startsWith","find","firstDoc","intro","document_title","outro","testClass","caret","Videos","videos","openLesson","test_title","video","video_id","video_type","frameBorder","allow","allowFullScreen","Lessons","item","lessonBody","lesson","j","quiz_questions","content","has_overview","lessons","displayed_video","lesson_key","HowToPrepLessons","show_parent_lessons","Document","docNumber","setContentSize","viewport","timeout","checkAccess","oncontextmenu","onselectstart","oncopy","oncut","innerHTML","preloadHeader","status","innerText","contentDiv","vw","scale","frame","transform","goBack","print","HowToPrep","settingTest","scrollTo","setActiveTest","test_pages_by_slug","overview","isDocument","Number","isInteger","disclaimer","safeTestShortTitle","d","updateTest","StudentSelector","searchStudents","selectStudent","hideStudentList","toggleStudentList","other_students","student_search","students","selectedStudent","scrollTop","onStudentSelect","closest","showDropdown","isTutor","student","displayStudent","unread","TutoringOverview","data_by_student","tz","toLocaleTimeString","timeZoneName","loadNewStudent","saveMessage","setDates","setMessageButtons","setAddFileButton","replyHandler","reloadHandler","formData","FormData","append","class_id","parentNode","sessiongroup_id","reply_id","files","fileUpload","json","forEach","pop","pk","dates","date","addMessageHandler","oldBtn","btn","cloneNode","replaceChild","is_new","old","reply","showReply","setMessageRead","hide","message_id","archive","read","getTutoringMessages","option","addFile","insertAdjacentHTML","MessageTab","setActiveMessage","onMessageSelect","isActive","messageId","subject","tutor","family","last_name","MessageBubble","isUsers","sentAt","attachments","attachment","download","Message","student_id","tutor_id","is_users","sent_at","replies","showControls","reply_length","recipient_id","Inbox","TutoringComponent","messages","selected_message","selected_student","messagesLoaded","selectMessage","loadMessages","afterReplySaved","resetSelectedMessage","studentList","user_id","fetchedMessages","first_id","is_tutor","from_user","last_reply","instructor","created_at","bubble_data","toISOString","updated_messages","tutors","showNewMessageBox","onlineClass","onlineclass","startDate","start_date","nativeEvent","selectedIndex","Popup","player","contents","hidePopup","youtubeReady","matches","pauseVideo","hideCallback","query","decodeURIComponent","YouTube","videoId","containerClassName","onReady","opts","playerVars","modestbranding","rel","ParentDashboard","camp_link","studentsClass","lineData","assessCount","has_digital_tutor","reverse","assess","Score","aspect","right","bottom","dataKey","dot","stroke","strokeWidth","offset","domain","minTickGap","textAnchor","marginBottom","userClasses","noclasses","showSiteTour","popUpContents","ParentResources","popUpClass","resources","setResources","resource","SbaIndex","user_sbas","program","sbaUrl","ModuleWide","SbaProgram","active_count","has_requested","has_activated","has_deactivated","sba_submit","sbaUser","class_code","stateerror","stateSelect","child_first","alert","stateOptions","do_round2","sba_try_again","sba_sign_up","close_sba_sign_up","default_password_posts","school_class_code","sub_needed","wp_post_id","username","passwd","classcode","color","fontWeight","support_https","partner_url","display_text","action","onSubmit","selected","SidebarLeft","pageYOffset","sidebar","sidebarNav","testNav","CustomSelect","elem","toggleLeftSidebar","gogoLink","gogo_token","iqfpLink","iqfunpack","enrichmentText","hasKindergarten","show_free_questions","is_staff","date_joined","linkClass","tutoring_client","has_class_subscription","SidebarRight","tutoring_cta","SiteTour","autoplay","StatesCommonCore","Results","rand","ceil","random","total","replay","Assessment","learnosityQuestions","learnosityConfigAttempts","totalCount","audio_players","session_id","closeAssessment","learnosityReady","learnosityNextQuestion","learnosityValid","get_time_elapsed","start","end","elapsed_ms","round","log","startTime","items","itemsApp","getItems","item_id","values","feature","f","use_audio","destroy","totalQuestions","is_shorttext","is_multi_click","validation","valid_response","ques","appendChild","cont","on","which","resultData","isValid","attempted","isAttempted","cur_ques","stop","resetReportedError","save","submit","dt_config","screener","LearnosityItems","request","init","errorListener","code","msg","readyListener","result_ids","assessments_by_test","res3","count","res4","getCookie","v","cookie","setCookie","days","setTime","getTime","toGMTString","hideMessage","show_warning","reload","SkillResults","squares","keyNumber","highScore","changeSelectedSkill","showFileSearch","TutoringModal","show_tutoring_modal","showTutoringModal","pods_modal","show_pods_modal","TestDashboard","active_child_id","active_test_id","current_test","chartKey","high_score_key","learnosity_items","learnosity_set","learnosityResultsKey","most_correct_questions","skills_set","changeCurrentGrade","changeCurrentTest","goToPractice","handleUseAudio","hideResults","hideQuestions","prevQuestion","updateNumberOfQuestions","num","active_test_slug","current_skill","arrows","ref","initializeLearnosity","response_ids","responseID","outputHTML","mapValidationMetadata","incorrect","metadata","getMetadata","distractor_rationale","responseDiv","distractor","lrn_response","disable","validate","showCorrectAnswers","playbackButton","assessmentItemsApp","high_scores","reset","most_recent","items_key","has_skills","setAttribute","assessments","gradeKey","skillsKey","pastResultsKey","sbaKey","gamesKey","lessonsKey","questionKey","test_assessment_keys","skillLineData","skillAssessCount","skill","has_audio","safeTestTitle","testOverview","showDocumentLoading","amountOfPastAssessments","resultLinkClass","most_recent_test","most_recent_time","oc","onlineClasses","cl","classTest","classGrade","controlOne","controlTwo","exact","activeClassName","assessment","StartPracticeLinks","floor","toFixed","isAnimationActive","CustomLabel","tick","vertical","CustomTooltip","allowEscapeViewBox","x","y","explanation","LearnosityAssessmentResults","keyStart","difficulty","difficulties","viewBox","payload","whiteSpace","TestDirectoryListing","tests_by_letter","first_letter","substring","TestDirectoryStates","changeLesson","title_1","title_2","title_3","title_4","title_5","content_5","content_1","role","content_2","content_3","content_4","TestDirectory","formatAMPM","hours","getHours","minutes","getMinutes","ampm","formatHour","seconds","getSeconds","getUTCHours","getUTCMinutes","getUTCSeconds","formatDate","month","getMonth","year","getFullYear","getUTCMonth","getUTCDate","getUTCFullYear","AddSession","submitting","saveSession","deleteSession","onOverlayClick","updateStatus","hideOverlay","sessionOverlay","allowSessionModification","Intl","DateTimeFormat","resolvedOptions","timeZone","firstSession","subject2","is_mini","isMini","selectedStudentId","toString","selectedStudentGrade","afterSessionChange","selectedDate","options","enableTime","noCalendar","dateFormat","altInput","altFormat","allowInput","minuteIncrement","defaultMinute","defaultChecked","endTime","readOnly","TutorTabs","setActiveTutor","tutorList","tutorEle","onTutorSelect","selectedTutor","TutoringCalendar","end_time","selected_date","student_grade","student_name","calendarComponentRef","createRef","first_calendar_loaded","timezone","url_params","editSession","editSessionTutor","setEventContent","addSession","dragSession","onSessionHover","onSessionHoverEnd","showTooltip","reloadCalendar","calendarApi","current","getApi","gotoDate","refetchEvents","eventInfo","extendedProps","unavailable","timeOff","html","customHtml","statusIcon","tutoringSession","locked","subject_name","internal_notes","external_notes","diff","toLocaleDateString","weekday","startHour","confirm","revert","oldEvent","shortTz","toLocaleString","tooltip","tt","pageY","pageX","no_tutors","calendar","setTutor","first_session","tutorId","subjectSelect","selectEl","subjects","dragged","sessionModCookie","modTimes","events_url","plugins","timeGridPlugin","dayGridPlugin","interactionPlugin","headerToolbar","center","views","timeGridDay","dayHeaderFormat","omitCommas","initialView","eventDisplay","contentHeight","expandRows","slotMinTime","slotMaxTime","allDaySlot","events","eventDidMount","eventDataTransform","startEditable","eventContent","eventClick","dateClick","eventDrop","eventMouseEnter","eventMouseLeave","Session","empty","selectedMoment","btnState","timeTill","btnActive","endMoment","startMoment","current_time","zoom_link","first","hour","minute","displayName","query_string","selected_date_moment","startOf","selected_tutor_id","sessions","dates_retrieved","full_tutoring_sessions","get_messages_interval","get_messages_seconds","messages_loaded","timer_interval","tutor_info","tutoring_sessions","_isMounted","showSubjects","loadSessionCounts","sortFullSessions","showHomework","fetchSessions","showSessions","setTutoringMessages","addNewMessage","updateMessage","mini_scheduled","maxHeight","success_exit","hw_tutor_id","studentParam","setSessionInterval","clone","subtract","hw_btn","scope","hw_form","hw_upload","hw_label","removeFileUploads","after","hw_exit","onfocus","pushState","photo","links","l","setMessagingInterval","messageTutorInput","used","scheduled","remaining","countDivs","resetHwUpload","notes","fileUploads","compareSessions","start_time","h","subject_id","queryHtml","currentSubject","currentHw","date_to_retrieve","start_moment","end_moment","alreadyExists","m","session_list","ses","ses_start","used_ids","oldElement","viewMore","display_messages","hide_loading","clearInterval","setInterval","session","selected_moment","multiple","cols","rows","lightbox","GLightbox","preload","draggable","keyboardNavigation","touchNavigation","onOpen","gslider","TutorSelection","fetched_tutors","get_all_tutors","time1","time2","time3","time4","overviewRedirect","fetchTutors","calculatePreferredDateTime","sub","behavior","profile","get_ahead","soonestAllowed","setDate","datetime1","datetime2","datetime3","datetime4","sl","dt1","dt2","dt3","dt4","ga","get_all","available_time","trim","replaceAll","chosenWeekday","splitTime","getDay","setHours","calendarStart","subjectClass","miniassessment","display_members","index","defaultDate","initialDate","CustomerSupport","PodsModal","show_tutoring","banner","setPodsModalDimensions","pm","dataLayer","img_w","img_h","pmc","mob","desk","m_width","m_height","img_ratio","marginLeft","alt_text","m_image","ScrollToTop","substr","offsetTop","scrollY","library","faAppleAlt","faArrowLeft","faArrowRight","faArrowCircleLeft","faBars","faBook","faCamera","faCaretDown","faCaretUp","faCheckCircle","faChartLine","faCheckSquare","faChevronCircleLeft","faChevronCircleRight","faChevronDown","faCircle","faClipboardListCheck","faClipCheckReg","faClock","faCog","faComputerClassic","faDesktop","faEdit","faEnvelope","faExclamationTriangle","faExternalLinkAlt","faFileAlt","faFileCheck","faFileSearch","faFlowerDaffodil","faFolders","faFrown","faGameBoardAlt","faGamepad","faHeadSideBrain","faHome","faInfoCircle","faLeafMaple","faLongArrowLeft","faLongArrowRight","faPen","faPhone","faPhoneLaptop","faPlusCircle","faPollH","faPrint","faPuzzlePiece","faRedo","faSearch","faSmile","faSnowflake","faSquare","faStar","faStarSolid","faStoreAlt","faSyncAlt","faTimes","faTimesCircle","faTrashAlt","faTrophyAlt","faUmbrellaBeach","faUserCircle","faUsersClass","faUserMdChat","faVideo","config","searchPseudoElements","App","documentMode","isIE","avatar_overlay_showing","onlineClassCategories","online_tutoring_cta","siteTourVideoId","test_pages","initialX","initialY","activeTestSet","deleteCookie","hideAvatars","hideSearch","hideSiteTour","setPrintables","showAvatars","shuffle","startSwipeSidebar","swipeSidebar","toggleSidebar","packages","referer","referrer","ip","reason","script","head","has_active","setChildDocuments","Sentry","sale","pack","setSearch","classData","one_week","cls","sessiongroup","allClassData","calendly_link","tracking","unlisten","listen","tracking_data","http_referer","navigator","userAgent","paid","Beacon","searchTerms","term","fuse","Fuse","shouldSort","matchAllTokens","threshold","distance","maxPatternLength","minMatchCharLength","weight","array","parent","menuButton","childNodes","borderBottom","has_properties","child_doc_id","docs","assess_date","break_date","fix_date","prop","dir","touches","halfScreen","currentX","currentY","diffX","diffY","tour","defaultComponent","ChildDashboard","Home","version","four04","errorsToIgnore","dsn","release","ignoreErrors","whitelistUrls","beforeSend","extra","__serialized__","detail","_o_O","exception","stacktrace","frames","root","process","cwd","filename","relative","ReactDOM","AnswerAreas","aa","ansAreaH","ansAreaW","ansAreaY","ansAreaX","answer_posy","answer_posx","ansH","ansW","ansY","ansX","question_class","base","max","questionsDiv","height_control","max_height","clientHeight","containers","clientWidth","question_text_height","explanation_text_height","description_height","question_max_height","correctTotal","base_image_width","base_image_height","ca","image_width","image_height","cw","ch","cx","cy","aw","ah","ax","ay","img"],"mappings":"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","file":"static/js/main.7fadb087.chunk.js","sourcesContent":["const hostname = window && window.location && window.location.hostname;\nlet website_url = '';\nlet api_url = '';\nlet members_url = '';\n\nif (hostname === 'app.dev.testingmom.com') {\n website_url = 'https://dev.testingmom.com/';\n members_url = 'https://members.dev.testingmom.com/';\n api_url = 'https://api.dev.testingmom.com/';\n} else if (hostname === 'staging.app.testingmom.com' || hostname === 'app.staging.testingmom.com') {\n website_url = 'https://staging.testingmom.com/';\n members_url = 'https://members.staging.testingmom.com/';\n api_url = 'https://api.staging.testingmom.com/';\n} else {\n website_url = 'https://www.testingmom.com/';\n members_url = 'https://members.testingmom.com/';\n api_url = 'https://api.testingmom.com/';\n}\n\nexport const WEBSITE_URL = website_url;\nexport const MEMBERS_URL = members_url;\nexport const API_URL = api_url;\n","import React from \"react\";\n\nexport function Four04(props) {\n return (\n
\n

Sorry that page cannot be found

\n
\n )\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\n\nexport function AddTestButton(props) {\n if (props.active === 'active') {\n return (\n \n )\n } else if (props.active !== 'active' && props.primary === props.test_id) {\n return (\n
\n \n \n
\n )\n } else {\n return (\n
\n \n \n
\n )\n }\n}\n\nexport function AddCategoryButton(props) {\n if (props.active) {\n return (\n \n )\n } else {\n return (\n
\n \n
\n )\n }\n}\n\nAddTestButton.propTypes = {\n active: PropTypes.string,\n clickCheck: PropTypes.func.isRequired,\n clickStar: PropTypes.func.isRequired,\n primary: PropTypes.string,\n test_id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nAddCategoryButton.propTypes = {\n active: PropTypes.bool,\n clickCheck: PropTypes.func,\n cat_id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n};\n","import 'whatwg-fetch'\nconst API_URL = require('./Urls').API_URL;\n\nexport const ApiFetch = function(endpoint, method, data) {\n if (!method) {\n method = 'GET'\n }\n let headers = {\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n mode: 'cors',\n method: method,\n body: JSON.stringify(data),\n credentials: 'include',\n };\n return fetch(API_URL + endpoint, headers)\n .then((response) => {\n if (response.ok) {\n return response.text().then(function(text) {\n return text ? JSON.parse(text) : {}\n });\n } else {\n throw response;\n }\n })\n .then((responseData) => {\n return responseData;\n })\n .catch(error => {\n if (typeof error.text !== 'undefined') {\n error.text().then(message => {\n console.warn(message);\n });\n } else {\n console.warn(error);\n }\n throw error;\n });\n};\n","import React from 'react';\nimport './Loading.css'\n\nexport const Loading = (props) => (\n
\n);\n","import 'react-app-polyfill/ie11';\nimport 'core-js/features/array/find';\nimport 'core-js/features/array/includes';\nimport 'core-js/features/number/is-nan';\nimport 'core-js/features/array/map';\nimport 'classlist-polyfill';\nimport 'es7-object-polyfill';\nimport 'url-search-params-polyfill';\n\n// POLYFILL for array.map()\n/*eslint no-extend-native: [\"error\", { \"exceptions\": [\"Array\"] }]*/\n\n// Production steps of ECMA-262, Edition 5, 15.4.4.19\n// Reference: http://es5.github.io/#x15.4.4.19\nif (!Array.prototype.map) {\n\n Array.prototype.map = function(callback/*, thisArg*/) {\n\n var T, A, k;\n\n if (this == null) {\n throw new TypeError('this is null or not defined');\n }\n\n // 1. Let O be the result of calling ToObject passing the |this|\n // value as the argument.\n var O = Object(this);\n\n // 2. Let lenValue be the result of calling the Get internal\n // method of O with the argument \"length\".\n // 3. Let len be ToUint32(lenValue).\n var len = O.length >>> 0;\n\n // 4. If IsCallable(callback) is false, throw a TypeError exception.\n // See: http://es5.github.com/#x9.11\n if (typeof callback !== 'function') {\n throw new TypeError(callback + ' is not a function');\n }\n\n // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\n if (arguments.length > 1) {\n T = arguments[1];\n }\n\n // 6. Let A be a new array created as if by the expression new Array(len)\n // where Array is the standard built-in constructor with that name and\n // len is the value of len.\n A = new Array(len);\n\n // 7. Let k be 0\n k = 0;\n\n // 8. Repeat, while k < len\n while (k < len) {\n\n var kValue, mappedValue;\n\n // a. Let Pk be ToString(k).\n // This is implicit for LHS operands of the in operator\n // b. Let kPresent be the result of calling the HasProperty internal\n // method of O with argument Pk.\n // This step can be combined with c\n // c. If kPresent is true, then\n if (k in O) {\n\n // i. Let kValue be the result of calling the Get internal\n // method of O with argument Pk.\n kValue = O[k];\n\n // ii. Let mappedValue be the result of calling the Call internal\n // method of callback with T as the this value and argument\n // list containing kValue, k, and O.\n mappedValue = callback.call(T, kValue, k, O);\n\n // iii. Call the DefineOwnProperty internal method of A with arguments\n // Pk, Property Descriptor\n // { Value: mappedValue,\n // Writable: true,\n // Enumerable: true,\n // Configurable: true },\n // and false.\n\n // In browsers that support Object.defineProperty, use the following:\n // Object.defineProperty(A, k, {\n // value: mappedValue,\n // writable: true,\n // enumerable: true,\n // configurable: true\n // });\n\n // For best browser support, use the following:\n A[k] = mappedValue;\n }\n // d. Increase k by 1.\n k++;\n }\n\n // 9. return A\n return A;\n };\n}\n","import React, {Component} from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nclass AvatarOverlay extends Component {\r\n\r\n constructor(props)\r\n {\r\n super(props);\r\n let avatar = 'logo.png';\r\n let dashboard_theme = 'bnnr_turqBooksClouds_tile';\r\n if (this.props.user.children.length && this.props.user.children.hasOwnProperty(this.props.user.active_child)) {\r\n let children = this.props.user.children;\r\n let child = children[this.props.user.active_child];\r\n avatar = child.avatar;\r\n if (child.dashboard_theme !== null) {\r\n dashboard_theme = child.dashboard_theme;\r\n }\r\n }\r\n this.state = {\r\n avatar: avatar,\r\n dashboard_theme: dashboard_theme,\r\n };\r\n\r\n this.chooseAvatar = this.chooseAvatar.bind(this);\r\n this.chooseTheme = this.chooseTheme.bind(this);\r\n this.setThemes = this.setThemes.bind(this);\r\n this.togglePopups = this.togglePopups.bind(this);\r\n }\r\n\r\n chooseAvatar(e)\r\n {\r\n this.setState({\r\n avatar: e.target.getAttribute('value'),\r\n });\r\n }\r\n\r\n chooseTheme(e)\r\n {\r\n this.setState({\r\n dashboard_theme: e.target.getAttribute('value')\r\n });\r\n }\r\n\r\n setThemes()\r\n {\r\n let children = this.props.user.children;\r\n let child = children[this.props.user.active_child];\r\n this.props.updateChild(child.id, {\r\n avatar: this.state.avatar,\r\n dashboard_theme: this.state.dashboard_theme\r\n }\r\n );\r\n this.setState({\r\n avatarShowing: false\r\n }, this.props.avatarHide);\r\n }\r\n\r\n togglePopups()\r\n {\r\n let avatarPopup = document.getElementById('avatar-popup');\r\n let themePopup = document.getElementById('theme-popup');\r\n let avatarDisp = avatarPopup.currentStyle ? avatarPopup.currentStyle.display :\r\n getComputedStyle(avatarPopup, null).display;\r\n let themeDisp = themePopup.currentStyle ? themePopup.currentStyle.display :\r\n getComputedStyle(themePopup, null).display;\r\n if (themeDisp === 'none') {\r\n themePopup.style.display = 'block';\r\n avatarPopup.style.display = 'none';\r\n } else if (avatarDisp === 'none') {\r\n avatarPopup.style.display = 'block';\r\n themePopup.style.display = 'none';\r\n }\r\n }\r\n\r\n render() {\r\n let self = this;\r\n return (\r\n
\r\n {this.props.avatarShowing &&\r\n
\r\n
\r\n \r\n

Edit Profile Theme

\r\n

Pick an Avatar

\r\n

Pick a Background

\r\n
    \r\n {this.props.avatars.map(function(avatar) {\r\n let active = (self.state.avatar === avatar) ? 'active' : '';\r\n return
  • \r\n {\"\"}/\r\n
  • \r\n })}\r\n
    \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

Edit Profile Theme

\r\n

Pick a Profile Avatar

\r\n

Pick a Background

\r\n
    \r\n {this.props.themes.map(function(theme) {\r\n let active = (self.state.dashboard_theme === theme) ? 'active' : '';\r\n return
  • \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 AvatarOverlay;\r\n","import React, {Component} from 'react';\r\nimport {Link} from 'react-router-dom';\r\n\r\nexport class ChildNavigation extends Component {\r\n updateSelectedTest(key)\r\n {\r\n let data = {\r\n active_test: this.props.tests[key]\r\n };\r\n if (\r\n this.props.appProps.location.pathname.indexOf('test-prep') !== -1 &&\r\n typeof this.props.appProps.match.params.test !== 'undefined' &&\r\n this.props.appProps.match.params.test !== this.props.tests[key]['slug']\r\n ) {\r\n let view = this.props.appProps.match.params.view;\r\n let url = '/test-prep/' + this.props.tests[key]['slug'];\r\n if (view) {\r\n url += '/' + view;\r\n }\r\n this.props.appProps.history.push(url);\r\n } else if (window.location.pathname.indexOf('test-prep') === -1 &&\r\n window.location.pathname.indexOf('dashboard') === -1\r\n ) {\r\n this.props.appProps.history.push('/dashboard/' + this.props.user.active_child);\r\n } else if (window.location.pathname.indexOf('edit-child') !== -1) {\r\n this.props.appProps.history.push(window.location.pathname.replace('/edit-child', ''));\r\n }\r\n\r\n this.props.updateUser(data);\r\n }\r\n\r\n render() {\r\n let self = this;\r\n let tests = [];\r\n if (this.props.user.children.length && this.props.user.active_child >= 0) {\r\n tests = this.props.user.children[this.props.user.active_child].tests;\r\n tests.sort(function (a, b) {\r\n if(a.test < b.test) { return -1; }\r\n if(a.test > b.test) { return 1; }\r\n return 0;\r\n })\r\n }\r\n let i = 0;\r\n let active_test = this.props.user.active_test;\r\n if (!active_test) {\r\n for (let key in tests) {\r\n if (tests[key]['primary']) {\r\n active_test = tests[key]['test'];\r\n }\r\n }\r\n }\r\n return (\r\n
\r\n {self.props.tests &&\r\n tests.map(function(test){\r\n i++;\r\n if (self.props.tests.hasOwnProperty(test['test'])) {\r\n let className = (test['test'] === active_test['slug']) ? 'active' : '';\r\n return (\r\n

\r\n \r\n

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

);\r\n }\r\n })\r\n }\r\n {this.props.user.child_setup === true && !this.props.extraProps.addChild &&\r\n (!this.props.extraProps.editChild || (\r\n this.props.user.active_child >= 0 &&\r\n this.props.user.children[this.props.user.active_child].tests.length > 0\r\n )) && !this.props.extraProps.editChildPage &&\r\n Edit Profile\r\n }\r\n

\r\n );\r\n }\r\n}\r\n\r\nexport default ChildNavigation;\r\n","import React from 'react';\nimport {Link as ReactLink} from 'react-router-dom';\n\nexport default class Link extends React.Component {\n parseTo(to) {\n let parser = document.createElement('a');\n parser.href = to;\n return parser;\n }\n\n isInternal(to) {\n // If it's a relative url such as '/path', 'path' and does not contain a protocol we can assume it is internal.\n if (to.indexOf(\"://\")=== -1) return true;\n\n const toLocation = this.parseTo(to);\n return window.location.hostname === toLocation.hostname;\n }\n\n render() {\n const {to, children, ...rest} = this.props;\n if (!to) {\n return children;\n }\n const isInternal = this.isInternal(to);\n if (isInternal) {\n return ({children});\n } else {\n return ({children});\n }\n }\n}\n","import React, {Component} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\n\nclass ReportedError extends Component {\n constructor(props){\n super(props);\n this.submitError = this.submitError.bind(this);\n this.close = this.close.bind(this);\n }\n\n submitError() {\n let re = document.getElementById('reportedError');\n let postdata = {\n 'notes': document.querySelector('textarea[name=message]').value,\n 'email_user': document.getElementById('email_me').checked\n };\n\n let endpoint = 'question/reported-error/';\n\n if (this.props.learnosity === true) {\n endpoint = 'learnosity-reported-error/';\n if (this.props.reference) {\n postdata['reference'] = this.props.reference;\n } else {\n postdata['reference'] = re.getAttribute('data-learnosity_ref');\n }\n } else {\n if (this.props.question_id) {\n postdata['question'] = this.props.question_id;\n } else {\n postdata['question'] = re.getAttribute('data-question_id');\n }\n }\n\n ApiFetch(endpoint, 'POST', postdata).then(function(res){\n let re = document.getElementById('reportedError');\n re.getElementsByClassName('form')[0].className = 'form hide';\n re.getElementsByClassName('submitted')[0].className = 'submitted';\n });\n }\n\n close() {\n let re = document.getElementById('reportedError');\n re.style.display = 'none';\n re.getElementsByClassName('message')[0].value = '';\n }\n\n render() {\n return (\n
\n
\n
\n \n
\n
\n

Please describe the issue with this question in a few words.

\n \n

Attachments:

\n \n Add another file\n
\n \n
\n
\n
\n
\n \n )\n }\n}\n\nexport default Inbox;\n","import React, {Component} from 'react';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport YouTube from 'react-youtube';\n\nimport './Popup.css';\n\nexport default class Popup extends Component {\n constructor(props) {\n super(props);\n this.state = {\n player: null,\n contents: ''\n };\n this.hidePopup = this.hidePopup.bind(this);\n this.youtubeReady = this.youtubeReady.bind(this);\n }\n\n componentDidUpdate() {\n if (this.props.contents !== '' && this.props.contents !== this.state.contents) {\n document.getElementById('popup').style.display = 'block';\n this.setState({contents: this.props.contents})\n }\n }\n\n youtubeReady(event) {\n this.setState({\n player: event.target\n });\n }\n\n hidePopup(e) {\n if (e.target.matches('#popup') ||\n e.target.matches('.close') ||\n e.target.matches('.container') ||\n e.target.closest('.close')\n ) {\n document.getElementById('popup').style.display = 'none';\n if (this.state.player) {\n this.state.player.pauseVideo();\n }\n this.setState({contents: ''});\n if (typeof this.props.hideCallback === 'function') {\n this.props.hideCallback();\n }\n }\n }\n\n render() {\n let className = 'popup ' + this.props.className;\n let contents = this.state.contents;\n if (typeof this.props.contents === 'string' && this.props.contents.indexOf('youtube.com')) {\n let query = this.props.contents.split('?');\n let params = {};\n if (query[1]) {\n query[1].split('&').forEach(function (param) {\n let value = param.split('=');\n params[value[0]] = decodeURIComponent(value[1]);\n });\n if (params.hasOwnProperty('v')) {\n contents = ;\n }\n }\n }\n\n return (\n
\n
\n
\n \n {contents}\n
\n
\n
\n );\n }\n}\n","import React, {Component} from 'react';\r\nimport {LineChart, Line, ResponsiveContainer, Tooltip, XAxis, YAxis, Label} from 'recharts';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport './ParentDashboard.css'\r\nimport Link from '../common/Link';\r\nimport Popup from '../common/Popup';\r\n\r\nconst Loading = require('../common/Loading').Loading;\r\nconst moment = require('moment-timezone');\r\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\r\nconst WEBSITE_URL = require('../common/Urls').WEBSITE_URL;\r\n\r\nclass ParentDashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n 'camp_link': WEBSITE_URL + 'camps/',\r\n 'popUpContents': '',\r\n 'popUpClassName': ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let self = this;\r\n\r\n ApiFetch('option/?name=camp_link').then(function(res) {\r\n if (typeof res !== 'undefined' && res.hasOwnProperty('results') && res['results'].length && res['results'][0]['option_value']) {\r\n self.setState({\r\n camp_link: res['results'][0]['option_value']\r\n });\r\n }\r\n });\r\n }\r\n\r\n viewport()\r\n {\r\n var e = window\r\n , a = 'inner';\r\n if ( !( 'innerWidth' in window ) )\r\n {\r\n a = 'client';\r\n e = document.documentElement || document.body;\r\n }\r\n return { width : e[ a+'Width' ] , height : e[ a+'Height' ] }\r\n }\r\n\r\n render () {\r\n let self = this;\r\n let i = -1;\r\n let onlineClasses = \"\";\r\n let studentsClass = \"\";\r\n if (this.props.user.children.length === 0) {\r\n studentsClass = \" noStudents\";\r\n }\r\n let camp_link = this.state.camp_link;\r\n if (!this.props.user.paid_access) {\r\n camp_link = WEBSITE_URL + 'buy-now/?redirected=1&camps=1';\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

WELCOME TO TESTING MOM!

\r\n {this.props.user.children.length > 0 &&\r\n
\r\n

Recent Activity

\r\n {this.props.user.children.length < this.props.user.allowed_children &&\r\n Add a Student\r\n }\r\n
\r\n }\r\n {Object.keys(self.props.tests).length > 0 &&\r\n
\r\n {self.props.user.children.map(function(child){\r\n i++;\r\n let lineData = [];\r\n let assessCount = 0;\r\n let has_digital_tutor = false;\r\n let primaryTestName = \"\";\r\n for (let test in child['tests']) {\r\n if (child['tests'].hasOwnProperty(test)) {\r\n if (self.props.tests.hasOwnProperty(child['tests'][test]['test']) &&\r\n self.props.tests[child['tests'][test]['test']].interactive_questions\r\n ) {\r\n has_digital_tutor = true;\r\n }\r\n }\r\n if (child.tests[test].primary === true) {\r\n primaryTestName = child.tests[test].test;\r\n }\r\n }\r\n let hasQuestions = false;\r\n if (self.props.tests.hasOwnProperty(primaryTestName) &&\r\n self.props.tests[primaryTestName].interactive_questions === true) {\r\n hasQuestions = true;\r\n }\r\n return (\r\n
\r\n
\r\n

{child['name']}'s Work

\r\n Edit Profile \r\n
\r\n
\r\n
\r\n {has_digital_tutor === true && hasQuestions === true &&\r\n
\r\n {\r\n child.hasOwnProperty('assessments') &&\r\n child['assessments'].length === 0 &&\r\n self.props.user.paid_access &&\r\n
\r\n

{child['name']} hasn't taken any practice tests yet.


\r\n
\r\n Begin Practice\r\n
\r\n }\r\n {\r\n child.hasOwnProperty('assessments') &&\r\n child['assessments'].length === 0 &&\r\n !self.props.user.paid_access &&\r\n
\r\n

Buy now to access over 100,000 practice questions,\r\n 30+ skill building programs,\r\n and exclusive content to help your child\r\n ace their upcoming test\r\n and achieve their academic goals or just to\r\n unlock your \r\n 100 Free Practice Questions.

\r\n
\r\n Buy Now\r\n
\r\n
\r\n }\r\n {\r\n self.props.user.paid_access &&\r\n child.hasOwnProperty('assessments') &&\r\n child['assessments'].length > 0 &&\r\n self.props.tests_by_id.hasOwnProperty(1) &&\r\n
\r\n

Last Three Practice Scores

\r\n
\r\n {child['assessments'].slice().reverse().map(function (assess) {\r\n if (assess['test'] !== null && typeof(assess['test']) !== 'undefined') {\r\n assessCount++;\r\n if (assessCount < 4) {\r\n let time = moment.utc(assess['created_at']).local().format('MM/DD');\r\n lineData.push({\r\n name: time,\r\n Score: assess['total_correct'] / assess['total_questions'] * 100\r\n });\r\n return (\r\n
\r\n

{time}

\r\n

\r\n Practice \r\n {assess['total_correct']}/{assess['total_questions']}\r\n \r\n

\r\n
\r\n )\r\n }\r\n }\r\n return false;\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 child.tests.length > 0 &&\r\n has_digital_tutor === false &&\r\n
\r\n

{child['name']} doesn't have any tests selected\r\n with interactive practice questions.


\r\n
\r\n

Click settings above to add more tests or\r\n click below to view documents, lessons, games, and more.

\r\n
\r\n }\r\n {\r\n child.tests.length === 0 &&\r\n
\r\n

{child['name']} doesn't have any tests selected.


\r\n
\r\n Click here to add tests\r\n
\r\n }\r\n {\r\n child.tests && child.tests.length > 0 &&\r\n hasQuestions === false &&\r\n
\r\n

The primary test that you\r\n have selected does not have interactive questions.

\r\n Printable Practice\r\n
\r\n\r\n }\r\n { has_digital_tutor &&\r\n \r\n Go to {child['name']}'s Dashboard\r\n \r\n }\r\n
\r\n
\r\n )\r\n })}\r\n
\r\n }\r\n {this.props.user.children.length > 0 &&
\r\n }\r\n
\r\n {this.props.user.children.length === 0 &&\r\n
\r\n
\r\n
\r\n

Add Student

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

Add a student to your profile to customize a test prep\r\n program

\r\n {\"\"}\r\n Add a student\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n

Test Prep

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

Check out our test prep section with prep for over 40 tests for\r\n Gifted and Talented and 50 state tests

\r\n {\"\"}\r\n Go to Test Prep Directory\r\n
\r\n
\r\n {onlineClasses !== \"noOnlineClasses\" &&\r\n
\r\n
\r\n
\r\n {this.props.extraProps.userClasses.noclasses === 1 &&\r\n

One-to-One Tutoring

\r\n }\r\n {this.props.extraProps.userClasses.noclasses !== 1 &&\r\n

Your One-to-One Tutoring

\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n \"\"\r\n \r\n
\r\n \r\n Learn about our tutoring for test prep and academic subjects for pre-k to high school\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n

Interactive Learning Apps

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

Interactive Learning Apps consist of 30+ partner\r\n programs from top educational providers which are a great resource for\r\n developing your students' academic skills

\r\n {\"\"}\r\n Go to Interactive Learning Apps\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Online Games

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

Play our original test prep and skill building games

\r\n {\"\"}\r\n Go to Online Games\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Recorded Classes

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

Instant access to recorded classes, test prep training,\r\n academic workshops, college prep, coding and tech classes, pre-school learning,\r\n fun electives, and more!

\r\n {\"\"}\r\n Go to Recorded Classes\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Parent Resources

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

Our Parent Resources repository provides great tips on\r\n how to navigate your student's education and test preparation

\r\n {\"\"}\r\n Go to Parent Resources\r\n
\r\n
\r\n {this.props.user.children.length > 0 &&\r\n
\r\n
\r\n
\r\n

Add Student

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

Add a student to your profile to customize a test prep\r\n program

\r\n {\"\"}\r\n Add a Student\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n

Site Tour

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

View our site tour to learn everything about the\r\n Testingmom.com program

\r\n {\"\"}\r\n Watch Site Tour\r\n
\r\n
\r\n
\r\n {\"\"}\r\n {Object.keys(self.props.tests).length === 0 &&\r\n \r\n }\r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default ParentDashboard;\r\n","import React, {Component} from 'react';\r\n\r\nimport Link from '../common/Link';\r\nimport './ParentResources.css'\r\n\r\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\r\nconst Loading = require('../common/Loading').Loading;\r\n\r\nclass ParentResources extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popUpContents: '',\r\n popUpClass: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let self = this;\r\n if (this.props.extraProps.resources.length === 0) {\r\n ApiFetch('parent-resources-category/', 'GET').then(function(response) {\r\n if (response.hasOwnProperty('results')) {\r\n self.props.extraProps.setResources(response['results']);\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n let self = this;\r\n let i = 0;\r\n return (\r\n
\r\n
\r\n
\r\n

Parent Resources

\r\n

We have a multitude of preparation resources for you and your child to tackle but you may be\r\n wondering, where do I begin? We have conveniently assembled a number of resources for you and\r\n your child to review and practice below.

\r\n {this.props.extraProps.resources.map(function(category){\r\n i++;\r\n return (\r\n
\r\n

{category.name}

\r\n
\r\n {category.resources.map(function(resource){\r\n i++;\r\n if (resource.title === \"Site Orientation\") {\r\n return (\r\n \r\n )\r\n }\r\n return (\r\n \r\n {resource.title}\r\n \r\n {resource.title}\r\n \r\n \r\n )\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n {this.props.extraProps.resources.length === 0 && }\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default ParentResources;\r\n","import React, {Component} from 'react';\r\nimport {withRouter} from 'react-router-dom';\r\n\r\nimport './SBA.css'\r\nimport ThumbnailLink from \"../common/ThumbnailLink\";\r\n\r\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\r\nconst Loading = require('../common/Loading').Loading;\r\nconst WEBSITE_URL = require('../common/Urls').WEBSITE_URL;\r\n\r\nclass SbaIndex extends Component {\r\n constructor(props) {\r\n super(props);\r\n let grade = \"\";\r\n if (this.props.user.children.length && this.props.user.children[this.props.user.active_child] !== undefined) {\r\n grade = this.props.user.children[this.props.user.active_child]['grade']\r\n }\r\n var urlParams = new URLSearchParams(window.location.search);\r\n let param = urlParams.get('grade');\r\n if (param) {\r\n if (param === 'all') {\r\n grade = \"\";\r\n } else {\r\n grade = param\r\n }\r\n }\r\n\r\n this.state = {\r\n 'sbas': [],\r\n 'selected_grade': grade\r\n };\r\n this.filter = this.filter.bind(this);\r\n }\r\n\r\n componentDidMount()\r\n {\r\n let self = this;\r\n ApiFetch('sba/program/?limit=100&status=1&ordering=program_name').then(function(response) {\r\n if (response.hasOwnProperty('results') && response['results'].length) {\r\n self.setState({\r\n 'sbas': response['results']\r\n });\r\n }\r\n });\r\n }\r\n\r\n filter(e)\r\n {\r\n this.setState({\r\n selected_grade: parseInt(e.target.value)\r\n });\r\n }\r\n\r\n render () {\r\n let self = this;\r\n let i = 0;\r\n let user_sbas = [];\r\n if (this.props.user.sbas) {\r\n for (let sba in this.props.user.sbas) {\r\n if (this.props.user.sbas.hasOwnProperty(sba)) {\r\n user_sbas.push(this.props.user.sbas[sba].program.id);\r\n }\r\n }\r\n }\r\n\r\n if (typeof(this.props.grades) !== 'undefined' && Object.keys(this.props.grades).length > 0) {\r\n return (\r\n
\r\n
\r\n

Your Interactive Learning Apps

\r\n
Watch SBA Guide
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Free Immediate Access\r\n
\r\n
\r\n
\r\n All programs included FREE with your membership - over $500 value!\r\n
\r\n
\r\n
\r\n Access Granted\r\n
\r\n
\r\n
\r\n
\r\n {this.state.sbas.length === 0 &&
}\r\n {\r\n this.state.sbas.map(function(sba){\r\n i++;\r\n let safeDisplayName = ;\r\n let sbaUrl = \"skill-building-academy/\" + sba.url;\r\n let user_access = false;\r\n if (user_sbas.indexOf(sba['id']) !== -1) {\r\n user_access = true;\r\n }\r\n for (let grades in sba.grades) {\r\n let grade = '';\r\n if (sba['grades'].length > 0) {\r\n grade = sba['grades'][0]['name'];\r\n if (sba['grades'].length > 1) {\r\n grade += ' - ' + sba['grades'][sba['grades'].length - 1]['name'];\r\n }\r\n }\r\n let link = '';\r\n if (self.props.user.paid_access) {\r\n link = sbaUrl;\r\n } else {\r\n link = WEBSITE_URL + 'buy-now/?redirected=1';\r\n }\r\n if (sba.grades.hasOwnProperty(grades) && sba.grades[grades]['id'] === self.state.selected_grade) {\r\n return \r\n } else if (!self.state.selected_grade) {\r\n return \r\n }\r\n }\r\n return ''\r\n })\r\n }\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return \r\n }\r\n }\r\n}\r\n\r\nexport default withRouter(SbaIndex);\r\n","import React, {Component} from 'react';\nimport {WEBSITE_URL} from \"../common/Urls\";\n\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\nconst Loading = require('../common/Loading').Loading;\nconst ModuleWide = require('../common/Modules').ModuleWide;\n\nclass SbaProgram extends Component {\n constructor(props) {\n super(props);\n let self = this;\n this.state = {\n program: null,\n user: null,\n active_count: 0,\n has_requested: false,\n has_activated: false,\n has_deactivated: false,\n };\n\n this.sba_submit = this.sba_submit.bind(this);\n\n ApiFetch('sba/program/?url=' + this.props.appProps.match.params.program, 'GET').then(function(res){\n if (res['results'].hasOwnProperty(0)) {\n let program = res['results'][0];\n ApiFetch('sba/user/?user=' + self.props.user.pk + '&program=' + res['results'][0]['id'] +\n '&ordering=-submit_date', 'GET').then(function(res){\n if (res['results'].hasOwnProperty(0)) {\n let sbaUser = res['results'][0];\n let active_count = 0;\n let has_activated = false;\n if (sbaUser[\"status\"] === 1) {\n has_activated = true;\n active_count += 1;\n ApiFetch('sba/user/' + sbaUser['id'], 'PATCH', {});\n }\n self.setState({\n program: program,\n user: sbaUser,\n active_count: active_count,\n has_requested: (sbaUser['status'] === 0),\n has_activated: has_activated,\n has_deactivated: (sbaUser['status'] === 2),\n });\n } else {\n self.setState({\n program: program,\n user: null\n });\n }\n });\n } else {\n self.setState({\n error: true\n })\n }\n });\n }\n\n sba_submit(event){\n let data = {\n 'child_first': document.getElementById('child_first').value,\n 'email': document.getElementById('email').value,\n 'grade': document.getElementById('grade').value,\n 'user': document.getElementById('user').value,\n 'program': document.getElementById('program').value\n };\n\n let class_code = document.querySelector('select[name=class_code]');\n if (class_code) {\n data['notes'] = class_code.value;\n }\n\n let stateerror = false;\n let stateSelect = document.getElementById('state');\n if (document.contains(stateSelect)) {\n data.state = stateSelect.value;\n if (data.state == null) {\n stateerror = true;\n }\n }\n\n if (data.child_first === '' || data.email === '' || data.grade === null\n || data.grade === '' || stateerror){\n window.alert('You must fill out all available form fields to get an account. Please try again.');\n return false;\n }\n\n this.setState({\n has_requested: true,\n has_deactivated: false,\n });\n\n ApiFetch('sba/user/', 'POST', data).then(function (response) {\n document.getElementById(\"round3\").style.display = \"block\";\n document.getElementById(\"round2\").style.display = \"none\";\n });\n event.preventDefault();\n return false;\n }\n\n stateOptions()\n {\n let i = 0;\n let self = this;\n if (this.state.program.url === 'study-island') {\n return (\n \n )\n }\n }\n\n\n do_round2()\n {\n document.getElementById(\"round1\").style.display = \"none\";\n document.getElementById(\"round2\").style.display = \"block\";\n }\n sba_try_again()\n {\n document.getElementById(\"round4\").style.display = \"none\";\n document.getElementById(\"round2\").style.display = \"block\";\n }\n sba_sign_up()\n {\n document.getElementById(\"sba-sign-up\").style.display = \"block\";\n }\n close_sba_sign_up()\n {\n document.getElementById(\"sba-sign-up\").style.display = \"none\";\n }\n\n render () {\n let i = 0;\n let self = this;\n let default_password_posts = [28955, 28564, 28750, 28756, 22932, 16101, 15779, 15325, 13955, 13947];\n let school_class_code = [14418, 14416, 14416];\n\n if (this.props.user.paid_access) {\n if (this.state.program) {\n return (\n
\n
\n
\n {this.state.program.sub_needed && this.state.has_activated &&\n
\n

Your log-in to {this.state.program.program_name}

\n {this.state.user &&
\n {this.state.user.status &&
\n {this.state.active_count > 1 &&

Account #{this.state.active_count}

}\n {this.state.program.wp_post_id === 19376 &&\n IMPORTANT: Sign-in as \"STUDENT\" (not Parent)\n }\n {this.state.user.username &&

Log-in: {this.state.user.username}

}\n {this.state.program.wp_post_id === 28741 &&

Username: testingmom

}\n {this.state.user.passwd &&

Password: {this.state.user.passwd}

}\n {this.state.user.passwd === '' &&\n default_password_posts.indexOf(this.state.program.wp_post_id) !== -1 &&\n

Password: testingmom123

}\n {this.state.program.wp_post_id === 28564 &&

Teacher Code: 9H52ZL

}\n {this.state.user.classcode &&\n

School/Class Code: {this.state.user.classcode}

\n }\n {this.state.user.classcode === '' &&\n school_class_code.indexOf(this.state.program.wp_post_id) !== -1 &&\n

School/Class Code: TestingMom1

}\n\n {this.state.program.wp_post_id === 19369 &&\n

Classroom Code:

\n 'Kindergarten: 578340
\n 'Grade 1: 745191
\n 'Grade 2: 501278
\n 'Grade 3: 003870
\n 'Grade 4: 183517
\n 'Grade 5: 840366
\n 'Grade 6: 262257
\n 'Grade 7: 976560
\n 'Grade 8: 670885

\n }\n {this.state.program.wp_post_id === 15325 &&\n

School: Testing Mom - Testing Mom

}\n {this.state.program.wp_post_id === 13955 &&

School ID: 119827

}\n
}\n
}\n
\n }\n {this.state.program.sub_needed && !this.state.has_activated && this.state.has_requested &&\n
\n

NOTICE: You have a\n pending request for {this.state.program.program_name}. Please allow\n 1-2 business days for your request to be activated. If you are having\n issues with activation please \n contact support.\n

\n
}\n {this.state.program.sub_needed && this.state.has_deactivated &&\n
\n

NOTICE: We de-activated your log-in to \n {this.state.program.program_name} due to inactivity. All of your\n previous data was erased from {this.state.program.program_name}.

\n

Please click here to request a NEW log-in.

\n

(Takes 1 to 2 Business Days)

\n
}\n {this.state.program.sub_needed && !this.state.has_activated && !this.state.has_requested &&\n
\n

CLICK HERE TO REQUEST LOGIN

\n

(Takes 1 to 2 Business Days)

\n
\n }\n {\n this.state.program.sub_needed &&

\n IMPORTANT NOTE: Your {this.state.program.program_name} account will be deactivated\n and removed from our system if you do not access your \n {this.state.program.program_name} account through this page\n within a {this.state.program.url === 'spelling-ninja' && '14'}\n {this.state.program.url !== 'spelling-ninja' && '21'} day period. To keep your \n {this.state.program.program_name} account active you MUST access \n {this.state.program.program_name} via the TestingMom.com website.\n

\n }\n {\n this.state.program.sub_needed &&\n

Note: By using and submitting information to \n {this.state.program.program_name} you agree to be bound by \n {this.state.program.program_name}'s Terms and Conditions and Privacy\n Policy, available at their website.

\n }\n {\n this.state.program.url === 'hearbuilder' &&

\n To our Users: Please note that HearBuilder is not functional on your iPad or\n using Safari. We invite our members to use their laptop or desktop computer\n using Chrome or Firefox to utilize this resource. Email help@testingmom.com\n if you need further guidance.

\n }\n\n
\n {\n !this.state.program.support_https &&\n \n {this.state.program.program_name}/\n Launch {this.state.program.program_name} »\n \n }\n

\n
\n
\n
\n
\n
\n
\n
\n
\n

\n {this.state.program.program_name}\n

\n Note: One account per family!
\n \n \n \n {this.state.program.url === 'reflex-math' &&\n \n }\n {this.stateOptions()}\n \n \n \n
\n
\n
\n Important Message!
\n We HIGHLY recommend you read.

\n

You will receive your log-in to our partner program within 1-2 days. You\n MUST log-in to the partner program within a 14 day period or your account\n will be de-activated.


\n

To keep your account active you MUST access {this.state.program.program_name}\n  via the TestingMom.com website.

\n

Yes, I understand

\n
\n
\n Success!
\n We have received your request.

\n

You will receive your log-in to our partner program within 1-2 days. You\n MUST log-in to the partner program within a 14 day period or your account\n will be de-activated.

\n
\n
\n There was an error with your request.

\n

This email has been submitted, please enter another email address for more\n than one account set-up.

\n

\n

Click here to try again

\n
\n
\n
\n
\n
\n )\n } else if (this.state.error) {\n return (\n \n )\n } else {\n return \n }\n } else {\n window.location.href = WEBSITE_URL + 'buy-now/?redirected=1';\n return '';\n }\n } \n}\n\nexport default SbaProgram;\n","import React, {Component} from 'react';\nimport {withRouter} from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport Link from './Link';\nimport getSeason from './GetSeason';\nimport CustomSelect from 'vanilla-js-dropdown';\nimport 'vanilla-js-dropdown/vanilla-js-dropdown.css';\n\nconst WEBSITE_URL = require('./Urls').WEBSITE_URL;\n\nclass SidebarLeft extends Component {\n componentDidMount() {\n let self = this;\n window.addEventListener('scroll', function(){\n let scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n let sidebar = document.getElementById('sidebarLeft');\n let sidebarNav = document.getElementById('sidebarNav');\n if (sidebar) {\n if (scrollTop > 250) {\n sidebar.style.position = 'fixed';\n sidebar.style.top = 0;\n sidebarNav.style.height = '100vh';\n } else {\n sidebar.style.position = 'relative';\n }\n }\n });\n let testNav = document.getElementById('test-nav');\n if (testNav) {\n new CustomSelect({\n elem: testNav, // id of the original select element\n });\n testNav.addEventListener('change', function(){\n self.props.appProps.history.push('/test-prep/' + this.value + '/practice-questions');\n document.querySelector('.js-Dropdown button').innerHTML = 'Select a Test';\n });\n }\n\n }\n\n toggleLeftSidebar(e)\n {\n let sidebar = document.getElementById(\"sidebarLeft\");\n if (sidebar) {\n if (e.target && e.target.id === 'expand-left') {\n if (sidebar.classList.contains(\"open\")) {\n sidebar.classList.remove(\"open\");\n sidebar.style.left = '-260px';\n } else {\n sidebar.classList.add(\"open\");\n sidebar.style.left = '0';\n }\n }\n }\n }\n\n render() {\n let self = this;\n let children = [];\n if (this.props.user.children.length) {\n children = this.props.user.children;\n }\n let i = -1;\n let j = 0;\n let gogoLink = 'https://gogobrain.com/?app=1';\n if (this.props.user.gogo_token) {\n gogoLink = 'https://app.gogobrain.com/?app=1';\n }\n let iqfpLink = WEBSITE_URL + 'store/iqfunpack';\n if (this.props.user.paid_access || this.props.user.iqfunpack) {\n iqfpLink = WEBSITE_URL + 'iqfunpack';\n }\n\n let season = getSeason();\n let enrichmentText = season + ' Enrichment';\n let hasKindergarten = false;\n if (this.props.user.children.length > 0) {\n for (let child in this.props.user.children) {\n if (this.props.user.children[child].grade === 1 || this.props.user.children[child].grade === 2) {\n hasKindergarten = true;\n }\n }\n }\n\n let show_free_questions = false;\n // 14400000 = 4 hours in milliseconds\n if (!this.props.user.paid_access && !this.props.user.is_staff &&\n new Date() - new Date(this.props.user.date_joined) < 14400000) {\n show_free_questions = true;\n }\n\n return (\n
\n \n
\n \n
\n
\n
\n );\n }\n}\n\nexport default withRouter(SidebarLeft);\n","import React, {Component} from 'react';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\n\n\nclass SidebarRight extends Component {\n componentDidMount() {\n window.addEventListener('scroll', function(){\n let scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n let sidebar = document.getElementById('sidebarRight');\n if (sidebar) {\n if (scrollTop > 250) {\n sidebar.style.position = 'fixed';\n sidebar.style.top = 0;\n sidebar.style.right = 0;\n } else {\n sidebar.style.position = 'absolute';\n sidebar.style.top = '55px';\n sidebar.style.right = '-210px';\n }\n }\n });\n }\n\n render() {\n return (\n
\n
\n
\n

\n \n Tutoring\n

\n
\n
\n

Call or Email Us:

\n 877-609-6203\n online.tutoring@testingmom.com\n
\n
\n
\n
\n )\n }\n}\nexport default SidebarRight;","import React, {Component} from 'react';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Vimeo from \"@u-wave/react-vimeo\";\n\n\nclass SiteTour extends Component {\n constructor(props) {\n super(props);\n this.state = {\n 'paused': false\n }\n }\n\n render() {\n if (this.props.show) {\n return (\n
\n
\n \n
\n
\n \n
\n
\n )\n }\n return false;\n }\n}\n\nexport default SiteTour;\n","import React, {Component} from 'react';\r\nimport './TestDirectory.css'\r\nimport {Link} from \"react-router-dom\";\r\nimport Printables from '../common/Printables';\r\nimport Document from \"../test-prep/Document\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\r\nconst Loading = require('../common/Loading').Loading;\r\n\r\nclass StatesCommonCore extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n state: [],\r\n documents: {}\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n let self = this;\r\n if (typeof this.props.appProps.match.params.state !== 'undefined') {\r\n ApiFetch('state-standard/?limit=1&state=' + self.props.appProps.match.params.state).then(function(res){\r\n self.setState({\r\n 'state': res['results']\r\n });\r\n ApiFetch('document/?limit=1000&min_question_count=0&state=' + self.props.appProps.match.params.state).then(function(res){\r\n let results = res['results'];\r\n let documents = {'': []};\r\n for (let doc in results) {\r\n if (results.hasOwnProperty(doc)) {\r\n for (let grade in results[doc]['grades']) {\r\n if (results[doc]['grades'].hasOwnProperty(grade)) {\r\n if (!(results[doc]['grades'][grade]['name'] in documents)) {\r\n documents[results[doc]['grades'][grade]['name']] = [];\r\n }\r\n documents[results[doc]['grades'][grade]['name']].push(results[doc])\r\n }\r\n }\r\n documents[''].push(results[doc]);\r\n }\r\n }\r\n self.setState({\r\n documents: documents\r\n });\r\n })\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n let doc = this.props.appProps.match.params.document;\r\n if (doc !== undefined) {\r\n return \r\n }\r\n let backToDashboard = '/';\r\n if (this.props.user.active_child) {\r\n backToDashboard = '/dashboard/' + this.props.user.active_child;\r\n }\r\n if (this.state.state.length > 0) {\r\n return (\r\n
\r\n
\r\n \r\n Back to Dashboard\r\n
\r\n How to Prep by Test\r\n State\r\n Achievement Tests\r\n
\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return \r\n }\r\n }\r\n}\r\n\r\nexport default StatesCommonCore;\r\n","import React, {Component} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nclass Results extends Component {\n constructor(props) {\n super(props);\n this.state = {\n rand: 0\n }\n }\n componentDidMount()\n {\n // There's 20 space baby animations\n let rand = Math.ceil(Math.random() * 20);\n if (rand === 0) {\n rand = 1;\n }\n this.setState({\n rand: rand\n });\n }\n render()\n {\n return (\n
\n
\n \"\"\n
\n
\n \"\"/\n
\n
\n

Practice Complete! You answered {this.props.correct} / {this.props.total} correct!

\n \n \n
\n
\n )\n }\n}\n\nexport default Results;\n","import React, {Component} from 'react';\nimport './Assessment.css';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { Loading } from \"../common/Loading\";\nimport DeviceOrientation, { Orientation } from '../common/DeviceOrientation';\nimport Results from './Results'\nimport ReportedError from './ReportedError';\nimport { confirmAlert } from \"react-confirm-alert\";\n\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\nconst Question = require('./Question').Question;\nconst SetAnswerArea = require('./Question').SetAnswerArea;\n\nclass Assessment extends Component {\n constructor(props) {\n super(props);\n\n let grades = {};\n for (let g in this.props.grades) {\n if (this.props.grades.hasOwnProperty(g)) {\n grades[this.props.grades[g].id] = this.props.grades[g].numeric;\n }\n }\n this.state = {\n answers: {},\n answerCount: 1,\n correctCount: 0,\n currentQuestion: 0,\n finished: false,\n grade: this.props.user.children[this.props.user.active_child].grade,\n grades_by_id: grades,\n gradeAudio: {},\n questions: [],\n learnosityQuestions: [],\n learnosityConfigAttempts: 0,\n reference: '',\n results: [],\n show_results: false,\n totalCount: 0\n };\n this.audio_players = [];\n this.session_id = null;\n this.activity_id = null;\n\n this.can_play_audio = false;\n this.learnosity = false;\n this.questionsLoaded = false;\n this.correct = this.correct.bind(this);\n this.closeAssessment = this.closeAssessment.bind(this);\n this.finishGame = this.finishGame.bind(this);\n this.goToResults = this.goToResults.bind(this);\n this.learnosityReady = this.learnosityReady.bind(this);\n this.learnosityNextQuestion = this.learnosityNextQuestion.bind(this);\n this.learnosityValid = this.learnosityValid.bind(this);\n this.replay = this.replay.bind(this);\n this.wrong = this.wrong.bind(this);\n window.addEventListener('orientationchange', function(){\n SetAnswerArea('questions')\n });\n window.addEventListener('resize', function(){\n SetAnswerArea('questions')\n });\n }\n\n showReportedError() {\n let re = document.getElementById('reportedError');\n if (re) {\n re.style.display = 'block';\n }\n }\n\n get_time_elapsed(start, end) {\n var elapsed_ms = new Date(end) - new Date(start);\n if (elapsed_ms) {\n return Math.round(elapsed_ms / 1000);\n } else {\n return 0;\n }\n };\n\n learnosityReady()\n {\n let self = this;\n if (self.props.user.is_staff) {\n console.log('ready 2');\n }\n self.startTime = new Date();\n let items = self.itemsApp.getItems();\n let item_id = 0;\n self.audio_players = [];\n let overlays = document.getElementsByClassName('overlay');\n if (overlays) {\n for (let o in overlays) {\n if (overlays.hasOwnProperty(o)) {\n overlays[o].style.display = 'none';\n }\n }\n }\n Object.values(items).forEach(function(item) {\n for (let feature in item['features']) {\n if (item['features'].hasOwnProperty(feature) && item['features'][feature]['type'] === 'audioplayer') {\n let f = self.itemsApp.feature(item['features'][feature]['feature_id']);\n if ((!self.props.use_audio || !self.state.gradeAudio[self.state.grade]) && f !== undefined) {\n f.destroy();\n } else {\n self.audio_players[item_id] = item['features'][feature]['feature_id'];\n }\n }\n }\n\n let totalQuestions = item['questions'].length;\n let is_shorttext = false;\n let is_multi_click = false;\n for (let q in item['questions']) {\n if (item['questions'][q].type === 'shorttext') {\n is_shorttext = true;\n }\n if (item['questions'][q].validation.valid_response.score > 1) {\n is_multi_click = true;\n }\n }\n\n if (totalQuestions === 1 && !is_shorttext && !is_multi_click) {\n for (let q in item['questions']) {\n let question = self.itemsApp.question(item['questions'][q]['response_id']);\n question.on(\"changed\", function () {\n let resultData = {\n 'question': item['reference'],\n 'correct': 0,\n 'total_questions': 1\n };\n if (this.isValid()) {\n self.state.correctCount += 1;\n resultData['correct'] = 1;\n }\n self.state.results.push(resultData);\n self.state.totalCount += 1;\n self.learnosityNextQuestion(this, false);\n });\n }\n } else {\n let ques = document.getElementById('ques-' + item_id);\n let button = document.createElement('button');\n button.classList.add('continue');\n button.innerHTML = 'Continue ';\n ques.appendChild(button);\n let cont = ques.querySelector('.continue');\n\n if(cont) {\n cont.addEventListener('click', function () {\n self.learnosityValid(item);\n });\n }\n\n if (is_shorttext) {\n ques.querySelector('input[type=text]').on('keypress', function(e){\n if (e.which === 13) {\n self.learnosityValid(item);\n }\n });\n }\n }\n\n item_id++;\n });\n\n if (self.audio_players[0]) {\n self.itemsApp.feature(self.audio_players[0]).audio.play();\n }\n }\n\n learnosityValid(item) {\n let self = this;\n let attempted = 0;\n let resultData = {\n 'question': item['reference'],\n 'correct': 0,\n 'total_questions': 1\n };\n for (let q in item['questions']) {\n let question = self.itemsApp.question(item['questions'][q]['response_id']);\n if (question.isAttempted()) {\n attempted += 1;\n } else {\n continue;\n }\n if (question.isValid()) {\n resultData['correct'] += 1;\n }\n }\n\n if (attempted === item['questions'].length) {\n self.state.totalCount += 1;\n if (resultData['correct'] === item['questions'].length) {\n self.state.correctCount += 1;\n resultData['correct'] = 1;\n } else {\n resultData['correct'] = 0;\n }\n self.state.results.push(resultData);\n self.learnosityNextQuestion();\n } else {\n confirmAlert({\n title: 'Sorry!',\n message: \"Please answer all questions to continue.\",\n buttons: [\n {\n label: 'Ok',\n }\n ]\n });\n }\n }\n\n learnosityNextQuestion() {\n let self = this;\n let cur_ques = document.getElementById('ques-' + self.state.currentQuestion);\n if (cur_ques) {\n cur_ques.style.display = 'none';\n }\n if (self.audio_players[self.state.currentQuestion]) {\n self.itemsApp.feature(self.audio_players[self.state.currentQuestion]).audio.stop();\n }\n self.state.currentQuestion++;\n self.props.resetReportedError();\n self.itemsApp.save();\n self.setState({reference: self.state.learnosityQuestions[self.state.currentQuestion]});\n if (self.state.currentQuestion !== parseInt(self.props.number_of_questions)) {\n let nextQuestion = document.getElementById('ques-' + self.state.currentQuestion);\n if (nextQuestion) {\n nextQuestion.style.display = 'block';\n }\n if (self.audio_players.hasOwnProperty(self.state.currentQuestion)) {\n self.itemsApp.feature(self.audio_players[self.state.currentQuestion]).audio.play();\n }\n } else {\n document.getElementById('questions').innerHTML = '

Please wait while we gather your results.

';\n self.itemsApp.submit({\n 'success': function () {\n let data = {\n questions: self.state.results,\n child: self.props.user.children[self.props.user.active_child].id,\n test: self.props.user.active_test.id,\n grade: self.state.grade,\n total_questions: self.state.learnosityQuestions.length,\n total_correct: self.state.correctCount,\n learnosity: true,\n session_id: self.session_id,\n activity_id: self.activity_id\n };\n let path = 'user-child-assessment/';\n if (typeof self.props.skill_id !== 'undefined') {\n path = 'user-child-practice/';\n }\n ApiFetch(path, 'POST', data).then(function(res) {\n let child = self.props.user.children[self.props.user.active_child];\n child['assessments'].push(res);\n child['assessments_by_test'] = self.props.setChildAssessmentsByTest(child['assessments']);\n let user = self.props.user;\n user['children'][self.props.active_child] = child;\n self.props.updateUser(user, function() {\n self.props.history.push('/dashboard/' + self.props.user.active_child);\n self.props.setSkills(true, self.itemsApp);\n });\n });\n }\n });\n }\n }\n\n getQuestions()\n {\n let self = this;\n if (this.props.user.active_test &&\n !this.questionsLoaded &&\n this.state.grade &&\n Object.keys(this.props.dt_config).length\n ) {\n this.questionsLoaded = true;\n let gradeAudio = {};\n if (this.props.user.active_test &&\n this.props.dt_config.hasOwnProperty(this.props.user.active_test.id) &&\n this.props.dt_config[this.props.user.active_test.id].hasOwnProperty(this.state.grade)\n ) {\n self.learnosity = this.props.dt_config[this.props.user.active_test.id][this.state.grade]['learnosity'];\n }\n for (let i in this.props.dt_config[this.props.user.active_test.id]) {\n gradeAudio[i] = this.props.dt_config[this.props.user.active_test.id][i]['use_audio'];\n }\n\n let screener = document.querySelector('.result-links .cogat select[name=screener]');\n let skills = '';\n\n if (screener && screener.value === 'screener') {\n skills = '283,286,498,508';\n }\n\n if (self.learnosity) {\n let path = 'learnosity/app/item/?test=' + self.props.user.active_test.id;\n path += '&grade=' + self.state.grade;\n path += '&child=' + self.props.user.children[self.props.user.active_child].id;\n path += '&limit=' + self.props.number_of_questions;\n if (typeof self.props.skill_id !== 'undefined') {\n path += '&skill=' + self.props.skill_id;\n }\n if (skills) {\n path += '&skill=' + skills;\n }\n ApiFetch(path).then(function(res2) {\n if (self.props.user.is_staff) {\n console.log(res2);\n console.log(window.LearnosityItems);\n }\n self.setState({\n learnosityQuestions: res2.request.items,\n gradeAudio: gradeAudio,\n reference: res2.request.items[self.state.currentQuestion]\n }, function(){\n if (self.props.user.is_staff) {\n console.log(res2);\n console.log(window.LearnosityItems);\n }\n self.session_id = res2.request.session_id;\n self.activity_id = res2.request.activity_id;\n self.itemsApp = window.LearnosityItems.init(res2['init'], '#learnosity_assess', {\n errorListener: function (e) {\n // Adds a listener to all error codes.\n console.log(\"Error Code \", e.code);\n console.log(\"Error Message \", e.msg);\n if (self.state.learnosityConfigAttempts < 3) {\n self.questionsLoaded = false;\n self.setState({\n learnosityConfigAttempts: self.state.learnosityConfigAttempts + 1\n }, self.getQuestions)\n }\n },\n readyListener: function () {\n if (self.props.user.is_staff) {\n console.log('ready 1');\n }\n self.setState({\n learnosityConfigAttempts: 0\n }, self.learnosityReady)\n }\n });\n if (self.props.user.is_staff) {\n console.log(self.itemsApp);\n }\n });\n });\n } else {\n let child = self.props.user.children[self.props.user.active_child];\n let result_ids = [];\n if (child.hasOwnProperty(('assessments_by_test')) &&\n child.assessments_by_test.hasOwnProperty(self.props.user.active_test.id)) {\n result_ids = child.assessments_by_test[self.props.user.active_test.id]['ids'];\n }\n ApiFetch('digital-tutor/test-question-ids/?tm7=1&result=' + result_ids.join(','), 'GET').then(\n function (res2) {\n let tests = [self.props.user.active_test.taxonomy];\n let test_id = self.props.user.active_test.id;\n if (self.props.dt_config.hasOwnProperty(test_id) &&\n self.props.dt_config[test_id].hasOwnProperty(self.state.grade)) {\n tests = [];\n for (let test in self.props.dt_config[test_id][self.state.grade]['tests']) {\n tests.push(self.props.dt_config[test_id][self.state.grade]['tests'][test]['pk']);\n }\n }\n let data = {\n 'grade': self.state.grades_by_id[self.state.grade],\n 'limit': self.props.number_of_questions,\n 'random': 1,\n 'status': 1,\n 'app': 346,\n 'test': tests.join(','),\n 'tm7': 1\n };\n\n if (res2) {\n data['exclude'] = res2.join(',');\n }\n let queryString = Object.keys(data).map(key => key + '=' + data[key]).join('&');\n if (typeof self.props.skill_id !== 'undefined') {\n queryString += '&skill=' + self.props.skill_id;\n } else if(skills) {\n queryString += '&skill=' + skills;\n } else {\n queryString += '&skill=' + self.props.user.active_test.skills.join(',')\n }\n ApiFetch('question/?' + queryString, 'GET').then(function (res3) {\n if (res3.count < self.props.number_of_questions) {\n delete data['exclude'];\n let queryString = Object.keys(data).map(key => key + '=' + data[key]).join('&');\n if (typeof self.props.skill_id !== 'undefined') {\n queryString += '&skill=' + self.props.skill_id;\n } else {\n queryString += '&skill=' + self.props.user.active_test.skills.join(',')\n }\n ApiFetch('question/?' + queryString, 'GET').then(function (res4) {\n self.installGame(res4, gradeAudio);\n self.startTime = new Date();\n });\n } else {\n self.installGame(res3, gradeAudio);\n self.starttime = new Date();\n }\n });\n }\n );\n }\n }\n }\n\n installGame(results, gradeAudio) {\n this.setState({\n questions: results['results'],\n gradeAudio: gradeAudio\n }, function() {\n SetAnswerArea('questions');\n });\n }\n\n componentDidMount() {\n if (this.props.history.action === 'POP') {\n this.props.history.push(this.props.history.location.pathname.replace('/practice', ''));\n return;\n }\n if (typeof this.props.user.active_test === 'object') {\n this.getQuestions();\n }\n }\n\n componentWillReceiveProps(props)\n {\n if (typeof props.user.active_test === 'object') {\n this.getQuestions();\n }\n }\n\n getCookie(name) {\n let v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n return v ? v[2] : null;\n }\n\n setCookie(name, value, days) {\n let d = new Date();\n d.setTime(d.getTime() + 24*60*60*1000*days);\n document.cookie = name + \"=\" + value + \";path=/;expires=\" + d.toGMTString();\n }\n\n correct(e)\n {\n let self = this;\n let question = document.getElementById('ques-' + this.state.currentQuestion);\n let correct_answers = question.getElementsByClassName('correct-answer');\n if (correct_answers.length > this.state.answerCount) {\n correct_answers[this.state.answerCount - 1].style.display = 'none';\n correct_answers[this.state.answerCount].style.display = 'block';\n this.setState({\n answerCount: this.state.answerCount + 1,\n });\n } else {\n let dims = e.target.getBoundingClientRect();\n let posx = e.clientX - dims.left;\n let posy = e.clientY - dims.top;\n this.state.results.push({\n 'question': question.dataset.id,\n 'correct': true,\n 'answer_posx': (posx / dims.width) * 100,\n 'answer_posy': (posy / dims.height) * 100,\n });\n if (this.state.currentQuestion < this.state.questions.length - 1) {\n this.setState({\n currentQuestion: this.state.currentQuestion + 1,\n correctCount: this.state.correctCount + 1,\n }, function(){\n self.nextQuestion(question);\n });\n } else {\n this.setState({\n currentQuestion: this.state.currentQuestion + 1,\n correctCount: this.state.correctCount + 1,\n }, self.finishGame);\n }\n }\n }\n\n wrong(e)\n {\n let self = this;\n let question = document.getElementById('ques-' + this.state.currentQuestion);\n let dims = e.target.getBoundingClientRect();\n let posx = e.clientX - dims.left;\n let posy = e.clientY - dims.top;\n this.state.results.push({\n 'question': question.dataset.id,\n 'correct': false,\n 'answer_posx': (posx / dims.width) * 100,\n 'answer_posy': (posy / dims.height) * 100,\n });\n this.setState({\n currentQuestion: this.state.currentQuestion + 1\n }, function() {\n if (self.state.currentQuestion < self.state.questions.length) {\n self.nextQuestion(question);\n } else {\n self.finishGame();\n }\n });\n }\n\n nextQuestion(question)\n {\n question.style.display = 'none';\n let current_audio = question.getElementsByTagName('audio');\n if (current_audio.length) {\n current_audio[0].pause();\n current_audio[0].currentTime = 0;\n }\n let next = document.getElementById('ques-' + (this.state.currentQuestion));\n next.style.display = 'block';\n let audio = next.getElementsByTagName('audio');\n if (audio.length) {\n audio[0].play();\n }\n SetAnswerArea('questions');\n this.props.resetReportedError();\n }\n\n startGame()\n {\n let starts = document.getElementsByClassName('start');\n if (starts.length) {\n starts[0].style.display = 'none';\n }\n let overlays = document.getElementsByClassName('overlay');\n if (overlays.length) {\n overlays[0].style.display = 'none';\n }\n let question = document.getElementById('ques-0');\n let audio = question.getElementsByTagName('audio');\n if (audio.length) {\n audio[0].play();\n }\n SetAnswerArea('questions');\n }\n\n finishGame() {\n let self = this;\n let current_audio = document.getElementById('ques-' + (this.state.currentQuestion - 1)).getElementsByTagName('audio');\n if (current_audio.length) {\n current_audio[0].pause();\n current_audio[0].currentTime = 0;\n }\n self.setState({\n finished: true\n }, function(){\n let overlays = document.getElementsByClassName('overlay');\n if (overlays.length) {\n overlays[0].style.display = 'block';\n }\n });\n let path = 'user-child-assessment/';\n if (typeof this.props.skill_id !== 'undefined') {\n path = 'user-child-practice/';\n }\n for (let q in self.state.questions) {\n if (self.state.questions.hasOwnProperty(q)) {\n let skills = [];\n for (let n in self.state.results) {\n if (parseInt(self.state.results[n]['question']) === parseInt(self.state.questions[q].id)) {\n for (let t in self.state.questions[q].taxonomies) {\n if (\n self.state.questions[q].taxonomies.hasOwnProperty(t) &&\n self.state.questions[q].taxonomies[t].taxonomy === 'skill'\n ) {\n skills.push(self.state.questions[q].taxonomies[t].id);\n }\n }\n self.state.results[n]['skills'] = skills;\n }\n }\n }\n }\n\n let data = {\n questions: this.state.results,\n child: this.props.user.children[this.props.user.active_child].id,\n test: this.props.user.active_test.id,\n grade: this.state.grade,\n total_questions: this.state.questions.length,\n total_correct: this.state.correctCount,\n audio: this.can_play_audio,\n session_id: this.session_id,\n activity_id: this.activity_id\n };\n ApiFetch(path, 'POST', data).then(function(res) {\n let child = self.props.user.children[self.props.user.active_child];\n child['assessments'].push(res);\n child['assessments_by_test'] = self.props.setChildAssessmentsByTest(child['assessments']);\n let user = self.props.user;\n user['children'][self.props.user.active_child] = child;\n self.props.updateUser(user, function() {self.props.setSkills(true)});\n self.setState({\n show_results: true\n });\n });\n this.props.resetReportedError();\n }\n\n closeAssessment() {\n let self = this;\n if (this.state.learnosityQuestions.length > 0 && self.audio_players[self.state.currentQuestion]) {\n self.itemsApp.feature(self.audio_players[self.state.currentQuestion]).audio.stop();\n }\n this.props.setSkills(true);\n this.props.history.goBack();\n }\n\n replay()\n {\n this.learnosity = false;\n this.questionsLoaded = false;\n this.setState({\n answers: {},\n answerCount: 1,\n correctCount: 0,\n currentQuestion: 0,\n finished: false,\n grade: this.props.user.children[this.props.user.active_child].grade,\n gradeAudio: {},\n questions: [],\n learnosityQuestions: [],\n results: [],\n show_results: false,\n }, this.getQuestions);\n }\n\n goToResults()\n {\n this.props.history.push('/dashboard/' + this.props.user.active_child);\n }\n\n replayAudio(key) {\n let audio = document.getElementById(\"question_audio\" + key);\n audio.pause();\n audio.currentTime = 0;\n audio.play();\n }\n\n hideMessage() {\n let overlays = document.getElementsByClassName('message-overlay');\n if (overlays.length){\n overlays[0].style.display = 'none';\n }\n }\n\n render () {\n let self = this;\n let i = -1;\n for (let grade in this.props.grades) {\n if (this.props.use_audio &&\n this.props.grades.hasOwnProperty(grade) &&\n this.props.grades[grade]['id'] === this.props.user.children[this.props.user.active_child].grade &&\n (this.state.gradeAudio[this.props.grades[grade]['id']] === true ||\n (this.state.gradeAudio[this.props.grades[grade]['id'] - 1]) === true)\n ) {\n this.can_play_audio = true;\n }\n }\n\n let show_warning = false;\n if (parseInt(this.getCookie('dt-warning')) !== 1) {\n this.setCookie('dt-warning', 1, 14);\n show_warning = true;\n }\n let learnosity = this.state.learnosityQuestions.length > 0;\n\n let question_id = 0;\n if (this.state.questions.length > 0 && this.state.questions.hasOwnProperty(this.state.currentQuestion)) {\n question_id = this.state.questions[this.state.currentQuestion].id;\n }\n if (self.learnosity && !window.LearnosityItems) {\n confirmAlert({\n title: 'Sorry!',\n message: \"There is an issue connecting to our practice questions server please refresh and \" +\n \"try again. If the issue persists please contact support by using\" +\n \" the options on the lower right.\",\n buttons: [\n {\n label: 'Refresh Now',\n onClick: function() {\n window.location.reload();\n }\n },\n {\n label: 'Continue',\n }\n ]\n });\n return false;\n }\n return (\n
\n \n \n {this.state.show_results === false &&\n
\n
\n \n {this.state.questions.length > 0 && this.state.questions.map(function (question) {\n i++;\n return (\n \n )\n })}\n {this.state.learnosityQuestions.length > 0 && this.state.learnosityQuestions.map(function (question) {\n i++;\n return (
\n
\n
\n
\n Something wrong with this question? Click here to notify us.\n
\n
\n
);\n })\n }\n
\n
\n {show_warning &&\n
\n

Important Message

\n

To help your child increase his or her attention and focus, some questions use\n the same\n artwork but the questions are different.

\n

Please make sure your child plays close attention to each question.

\n \n
\n }\n {this.state.finished === true && }\n {this.state.questions.length === 0 && }\n {this.state.questions.length > 0 && !this.state.finished &&\n
\n
\n

General Instructions

\n

Read each question carefully and select an answer.\n Note that you cannot move forward or backwards in the practice.

\n
\n

Start

\n
\n }\n
\n
\n }\n {this.state.show_results === true &&\n \n }\n \n \n
\n
\n \n

\n

Practice works best in landscape mode please rotate your device.

\n
\n
\n
\n \n \n
\n )\n }\n}\n\nexport default Assessment;\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types'\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nclass SkillResults extends Component {\r\n render () {\r\n let self = this;\r\n let squares = [];\r\n let correct = 0;\r\n for (let n = 0; n < self.props.skills[self.props.keyNumber].questions; n++) {\r\n let className = 'square';\r\n if (correct < self.props.skills[self.props.keyNumber].correct) {\r\n correct++;\r\n className += ' correct';\r\n }\r\n if (self.props.highScore) {\r\n className += ' yellow';\r\n }\r\n squares.push(
);\r\n }\r\n if (self.props.highScore) {\r\n squares.push(
);\r\n }\r\n\r\n return (\r\n
\r\n
{self.props.skills[self.props.keyNumber].title}
\r\n
{squares}
\r\n
\r\n {self.props.skills[self.props.keyNumber].correct + '/'\r\n + self.props.skills[self.props.keyNumber].questions}\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nSkillResults.propTypes = {\r\n skills: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.number\r\n ]),\r\n class: PropTypes.string,\r\n keyNumber: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.number\r\n ]),\r\n showFileSearch: PropTypes.string\r\n};\r\n\r\nexport default SkillResults;\r\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport './PodsModal.css'\n\nexport default class TutoringModal extends React.Component{\n constructor(props) {\n super(props);\n this.state = {\n show_tutoring_modal: false\n }\n this.close = this.close.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n let self = this;\n if (self.props.showTutoringModal) {\n let show_tutoring_modal = this.getCookie('tutoring-modal');\n if (!show_tutoring_modal || parseInt(show_tutoring_modal) === 3) {\n this.setCookie('tutoring-modal', 1, 30);\n setTimeout(function () {\n self.setState({\n show_tutoring_modal: true\n });\n }, 10000);\n } else {\n this.setCookie('tutoring-modal', parseInt(show_tutoring_modal) + 1, 30);\n return false;\n }\n }\n }\n\n getCookie(name) {\n let v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n return v ? v[2] : null;\n }\n\n setCookie(name, value, days) {\n let d = new Date();\n d.setTime(d.getTime() + 24*60*60*1000*days);\n document.cookie = name + \"=\" + value + \";path=/;expires=\" + d.toGMTString();\n }\n\n close(e)\n {\n let pods_modal = document.getElementById('pods-modal');\n let close = pods_modal.querySelector('.close');\n if (!this.props.isDescendant(pods_modal, e.target) || this.props.isDescendant(close, e.target)) {\n pods_modal.style.display = 'none';\n this.setState({\n show_pods_modal: false\n });\n }\n }\n\n render()\n {\n if (this.state.show_tutoring_modal) {\n return (\n
\n
\n
\n

Does { this.props.child_name } need extra help with { this.props.test_title }?\n Discover how our one-to-one online tutoring works. We\n have { this.props.test_title } experts ready to help. \n Schedule FREE 30 minute\n call\n to speak to one of our educational advisors to learn more.

\n
\n
\n \"\"/\n
\n
\n )\n } else {\n return false;\n }\n }\n}\n","import React, {Component} from 'react';\r\nimport Link from '../common/Link';\r\nimport Printables from '../common/Printables';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { LineChart, Line, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { confirmAlert } from 'react-confirm-alert';\r\n\r\nimport './TestDashboard.css'\r\nimport ThumbnailLink from \"../common/ThumbnailLink\";\r\nimport Lessons from \"../common/Lessons\";\r\nimport Assessment from \"../assessment/Assessment\";\r\nimport ReportedError from '../assessment/ReportedError';\r\nimport SkillResults from \"../assessment/SkillResults\";\r\nimport FreePractice from \"../assessment/FreePractice\";\r\nimport Document from \"../test-prep/Document\";\r\nimport TutoringModal from \"./TutoringModal\";\r\n\r\nconst moment = require('moment-timezone');\r\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\r\nconst Loading = require('../common/Loading').Loading;\r\nconst Question = require('../assessment/Question').Question;\r\nconst SetAnswerArea = require('../assessment/Question').SetAnswerArea;\r\nconst WEBSITE_URL = require('../common/Urls').WEBSITE_URL;\r\n\r\nclass TestDashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n let documents = {};\r\n if (this.props.user && this.props.user.active_test) {\r\n if (this.props.user.active_test.hasOwnProperty('documents') &&\r\n this.props.user.active_test['documents'].hasOwnProperty('documents')) {\r\n documents = this.props.user.active_test['documents']['documents'];\r\n }\r\n }\r\n this.state = {\r\n active_child_id: -1,\r\n active_test_id: 0,\r\n apps: {},\r\n current_grade: '',\r\n current_test: {},\r\n chartKey: 1,\r\n documents: documents,\r\n grades: [],\r\n high_score_key: -1,\r\n lessons: {},\r\n learnosity_items: [],\r\n learnosity_set: false,\r\n learnosityResultsKey: 0,\r\n loaded: false,\r\n most_correct_questions: 0,\r\n number_of_questions: 10,\r\n questions: [],\r\n question_results: {},\r\n sbas: {},\r\n selected_skill: null,\r\n showFreePractice: false,\r\n showResults: false,\r\n showTutoringModal: false,\r\n skills: {},\r\n test_page: {},\r\n tests: [],\r\n total_questions: 0,\r\n use_audio: true,\r\n };\r\n\r\n this.audio_players = {};\r\n this.itemsApp = null;\r\n this.skills_set = false;\r\n\r\n this.changeCurrentGrade = this.changeCurrentGrade.bind(this);\r\n this.changeCurrentTest = this.changeCurrentTest.bind(this);\r\n this.goToPractice = this.goToPractice.bind(this);\r\n this.handleUseAudio = this.handleUseAudio.bind(this);\r\n this.hideResults = this.hideResults.bind(this);\r\n this.hideQuestions = this.hideQuestions.bind(this);\r\n this.nextQuestion = this.nextQuestion.bind(this);\r\n this.prevQuestion =this.prevQuestion.bind(this);\r\n this.resetReportedError = this.resetReportedError.bind(this);\r\n this.setSkills = this.setSkills.bind(this);\r\n this.setTest = this.setTest.bind(this);\r\n this.showFreeQuickPractice = this.showFreeQuickPractice.bind(this);\r\n this.showQuestions = this.showQuestions.bind(this);\r\n this.showResults = this.showResults.bind(this);\r\n this.togglePrintableTest = this.togglePrintableTest.bind(this);\r\n this.updateNumberOfQuestions = this.updateNumberOfQuestions.bind(this);\r\n this.setActiveUser();\r\n let self = this;\r\n window.addEventListener('orientationchange', function(){\r\n SetAnswerArea('questions-results')\r\n self.setState({chartKey: window.innerWidth})\r\n });\r\n window.addEventListener('resize', function(){\r\n SetAnswerArea('questions-results')\r\n self.setState({chartKey: window.innerWidth})\r\n });\r\n }\r\n\r\n componentDidMount()\r\n {\r\n this.setTest(this.props);\r\n if (\r\n this.props.user.children[this.props.user.active_child].grade !== null &&\r\n this.props.grades.hasOwnProperty(this.props.user.children[this.props.user.active_child].grade)\r\n ) {\r\n if (this.state.current_grade === '') {\r\n this.setState({\r\n 'current_grade': this.props.grades[this.props.user.children[this.props.user.active_child].grade]['name']\r\n });\r\n }\r\n }\r\n if (window.location.pathname.indexOf('/practice') !== -1 && !this.props.user.paid_access) {\r\n window.location.href = WEBSITE_URL + 'buy-now/?redirected=1';\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n this.setActiveUser();\r\n this.setTest(this.props);\r\n }\r\n\r\n updateNumberOfQuestions(num) {\r\n this.setState({\r\n number_of_questions: num\r\n })\r\n }\r\n\r\n setTest(props) {\r\n let self = this;\r\n if (!this.props.user.children[this.props.user.active_child].tests.length) {\r\n this.props.appProps.history.replace('/dashboard/' + this.props.user.active_child + '/edit-child');\r\n }\r\n if (\r\n (\r\n props.user.active_test &&\r\n props.user.active_test.hasOwnProperty('id') &&\r\n Object.keys(props.test_pages_by_slug).length > 0 &&\r\n (\r\n props.user.active_test['id'] !== this.state.active_test_id\r\n ||\r\n props.user.active_child !== this.state.active_child_id\r\n )\r\n )\r\n ) {\r\n let test_page = props.test_pages_by_slug[props.user.active_test.slug];\r\n self.props.extraProps.setPrintablesByTestPage(test_page);\r\n let tests = [];\r\n let apps = {};\r\n let sbas = {};\r\n let lessons = {};\r\n if (test_page.hasOwnProperty('tests') && test_page['tests'].length > 0) {\r\n for (let test in test_page['tests']) {\r\n if (test_page['tests'].hasOwnProperty(test) &&\r\n this.props.tests_by_id.hasOwnProperty(test_page['tests'][test]['id'])\r\n ) {\r\n tests.push(this.props.tests_by_id[test_page['tests'][test]['id']]);\r\n for (let app in this.props.tests_by_id[test_page['tests'][test]['id']]['apps']) {\r\n if (this.props.tests_by_id[test_page['tests'][test]['id']]['apps'].hasOwnProperty(app) &&\r\n !apps.hasOwnProperty(app)) {\r\n apps[app] = this.props.tests_by_id[test_page['tests'][test]['id']]['apps'][app];\r\n }\r\n }\r\n for (let sba in this.props.tests_by_id[test_page['tests'][test]['id']]['sbas']) {\r\n if (this.props.tests_by_id[test_page['tests'][test]['id']]['sbas'].hasOwnProperty(sba)\r\n && !sbas.hasOwnProperty(sba)) {\r\n sbas[sba] = this.props.tests_by_id[test_page['tests'][test]['id']]['sbas'][sba];\r\n }\r\n }\r\n lessons[test_page['tests'][test]['id']] = this.props.tests_by_id[test_page['tests'][test]['id']]['lessons'];\r\n }\r\n }\r\n } else {\r\n if (this.props.tests_by_id.hasOwnProperty(props.user.active_test['id'])) {\r\n tests.push(this.props.tests_by_id[props.user.active_test['id']]);\r\n for (let app in this.props.tests_by_id[props.user.active_test['id']]['apps']) {\r\n if (this.props.tests_by_id[props.user.active_test['id']]['apps'].hasOwnProperty(app) &&\r\n !apps.hasOwnProperty(app)) {\r\n apps[app] = this.props.tests_by_id[props.user.active_test['id']]['apps'][app];\r\n }\r\n }\r\n for (let sba in this.props.tests_by_id[props.user.active_test['id']]['sbas']) {\r\n if (this.props.tests_by_id[props.user.active_test['id']]['sbas'].hasOwnProperty(sba)\r\n && !sbas.hasOwnProperty(sba)) {\r\n sbas[sba] = this.props.tests_by_id[props.user.active_test['id']]['sbas'][sba];\r\n }\r\n }\r\n lessons[props.user.active_test['id']] = this.props.tests_by_id[props.user.active_test['id']]['lessons'];\r\n }\r\n }\r\n\r\n this.setState({\r\n active_child_id: props.user.active_child,\r\n active_test_id: props.user.active_test['id'],\r\n active_test_slug: props.user.active_test['slug'],\r\n current_test: {},\r\n apps: apps,\r\n high_score_key: -1,\r\n learnosity_set: false,\r\n learnosity_items: [],\r\n lessons: lessons,\r\n sbas: sbas,\r\n selected_skill: null,\r\n tests: tests,\r\n test_page: test_page,\r\n }, self.setSkills);\r\n }\r\n }\r\n\r\n setActiveUser() {\r\n if (typeof this.props.appProps.match.params.child_id !== 'undefined' &&\r\n parseInt(this.props.appProps.match.params.child_id) !== parseInt(this.props.user.active_child)) {\r\n let active_test = null;\r\n let child = this.props.user.children[this.props.appProps.match.params.child_id];\r\n if (child) {\r\n for (let t in child['tests']) {\r\n if (child['tests'].hasOwnProperty(t) &&\r\n child['tests'][t]['primary'] &&\r\n this.props.tests.hasOwnProperty(\r\n child['tests'][t]['test']\r\n )\r\n ) {\r\n active_test = this.props.tests[\r\n child['tests'][t]['test']\r\n ];\r\n }\r\n }\r\n this.setState({current_test: {}});\r\n let data = {\r\n active_child: this.props.appProps.match.params.child_id\r\n };\r\n if (active_test) {\r\n data['active_test'] = active_test;\r\n }\r\n child['active'] = true;\r\n this.props.updateChild(child['id'], child);\r\n this.props.updateUser(\r\n data,\r\n this.props.extraProps.setChildAssessmentsByTest\r\n );\r\n } else {\r\n window.location.href = '/';\r\n }\r\n }\r\n }\r\n\r\n goToPractice() {\r\n this.props.appProps.history.push('/dashboard/' + this.props.user.active_child + '/practice/');\r\n }\r\n\r\n showResults(key) {\r\n this.current_skill = 0;\r\n this.current_key = key;\r\n this.setState({\r\n showResults: true\r\n });\r\n if (this.state.skills[key].hasOwnProperty('question_ids') && this.state.skills[key].question_ids.length > 0) {\r\n this.showQuestions();\r\n }\r\n }\r\n\r\n showQuestions()\r\n {\r\n let question_id = this.state.skills[this.current_key].question_ids[this.current_skill];\r\n let questions = document.getElementsByClassName('ques_id' + question_id);\r\n if (questions.length > 0) {\r\n document.getElementById('assessment-results').style.display = 'block';\r\n questions[0].style.display = 'block';\r\n let arrows = document.getElementById('questions-results').getElementsByClassName('arrow');\r\n if (this.state.skills[this.current_key].question_ids.length > 1) {\r\n for (let a = 0; a < arrows.length; a++) {\r\n arrows[a].style.display = 'block';\r\n }\r\n } else {\r\n for (let a = 0; a < arrows.length; a++) {\r\n arrows[a].style.display = 'none';\r\n }\r\n }\r\n }\r\n SetAnswerArea('questions-results', true);\r\n }\r\n\r\n hideResults() {\r\n let questionsDiv = document.getElementById('assessment-results');\r\n questionsDiv.style.display = 'none';\r\n this.setState({\r\n showResults: false\r\n });\r\n let key = this.current_key;\r\n if (this.state.learnosity_items.length) {\r\n if (this.state.skills.hasOwnProperty(key) &&\r\n this.state.skills[key].hasOwnProperty('question_ids') &&\r\n this.state.skills[key].question_ids.length > 0) {\r\n let question_id = this.state.skills[key]['question_ids'][this.current_skill];\r\n for (let ref in this.state.question_results) {\r\n if (this.state.question_results.hasOwnProperty(ref) &&\r\n this.state.question_results[ref]['id'] === question_id &&\r\n this.audio_players.hasOwnProperty(ref)\r\n ) {\r\n this.itemsApp.feature(this.audio_players[ref]).audio.stop();\r\n }\r\n }\r\n }\r\n }\r\n this.hideQuestions();\r\n }\r\n\r\n hideQuestions()\r\n {\r\n let questions = document.getElementsByClassName('ques-cont');\r\n for (let q in questions) {\r\n if (questions.hasOwnProperty(q)) {\r\n questions[q].style.display = 'none';\r\n }\r\n }\r\n this.resetReportedError();\r\n }\r\n\r\n nextQuestion()\r\n {\r\n this.current_skill--;\r\n if (this.current_skill < 0) {\r\n this.current_skill = this.state.skills[this.current_key].question_ids.length - 1;\r\n }\r\n this.hideQuestions();\r\n this.resetReportedError();\r\n this.showQuestions();\r\n }\r\n\r\n prevQuestion()\r\n {\r\n this.current_skill++;\r\n if (this.current_skill > this.state.skills[this.current_key].question_ids.length) {\r\n this.current_skill = 0;\r\n }\r\n this.hideQuestions();\r\n this.resetReportedError();\r\n this.showQuestions();\r\n }\r\n\r\n initializeLearnosity() {\r\n let self = this;\r\n\r\n if (this.state.learnosity_set === false && this.props.dt_config !== undefined) {\r\n this.setState({\r\n learnosity_set: true\r\n }, function () {\r\n let child = this.props.user.children[this.props.user.active_child];\r\n let items = [];\r\n for (let item in this.state.current_test.learnosity_items) {\r\n if (this.state.current_test.learnosity_items.hasOwnProperty(item)) {\r\n if (this.state.current_test.learnosity_items[item].item) {\r\n items.push(this.state.current_test.learnosity_items[item].item.reference);\r\n }\r\n }\r\n }\r\n let params = {\r\n child: child.id,\r\n session_id: this.state.current_test['session_id'],\r\n activity_id: this.state.current_test['activity_id'],\r\n items: items.join(',')\r\n };\r\n\r\n self.audio_players = [];\r\n if (window.LearnosityItems) {\r\n ApiFetch('learnosity/app/item-by-references/?' +\r\n Object.keys(params).map(key => key + '=' + params[key]).join('&')).then(function (res) {\r\n if (self.props.user.is_staff) {\r\n console.log(res);\r\n console.log(window.LearnosityItems);\r\n }\r\n self.itemsApp = window.LearnosityItems.init(res['init'], {\r\n errorListener: function (error) {\r\n console.warn(error);\r\n },\r\n readyListener: function () {\r\n if (self.props.user.is_staff) {\r\n console.log('ready');\r\n }\r\n let test = self.props.user.active_test;\r\n let child = self.props.user.children[self.props.user.active_child];\r\n let questions = self.itemsApp.questions();\r\n let response_ids = [];\r\n\r\n for (let [responseID, question] of Object.entries(questions)) {\r\n question.on(\"validated\", function () {\r\n response_ids.push(responseID);\r\n let outputHTML = '';\r\n let map = question.mapValidationMetadata(\"distractor_rationale_response_level\");\r\n if (map) {\r\n map.incorrect.forEach(function (i, data) {\r\n outputHTML += \"
  • \" + data.metadata + \"
  • \";\r\n });\r\n if (outputHTML !== \"\") {\r\n outputHTML = \"
      \" + outputHTML + \"
    \";\r\n }\r\n } else if (question.getMetadata().distractor_rationale) {\r\n outputHTML = \"\" + question.getMetadata().distractor_rationale + \"\";\r\n }\r\n if (outputHTML !== \"\") {\r\n outputHTML = 'Explanation: ' + outputHTML;\r\n let responseDiv = document.getElementById(responseID);\r\n let distractor = document.getElementById(responseID + \"_distractor\");\r\n if (distractor) {\r\n distractor.style.display = 'block';\r\n } else if (responseDiv) {\r\n let lrn_response = responseDiv.getElementsByClassName('lrn_response');\r\n if (lrn_response) {\r\n outputHTML = '
    ' +\r\n outputHTML + '
    ';\r\n if (!question.isValid()) {\r\n outputHTML = '
    Correct Answer
    ' +\r\n '
    Your Answer
    ' + outputHTML;\r\n }\r\n lrn_response[0].insertAdjacentHTML(\r\n 'beforeend',\r\n outputHTML\r\n );\r\n }\r\n }\r\n if (distractor && responseDiv.getElementsByClassName('lrn_correctAnswers').length) {\r\n distractor.style.width = '100%';\r\n }\r\n }\r\n });\r\n question.disable();\r\n question.validate({showCorrectAnswers: true});\r\n }\r\n\r\n let items = self.itemsApp.getItems();\r\n Object.values(items).forEach(function (item) {\r\n for (let feature in item['features']) {\r\n if (item['features'].hasOwnProperty(feature) && item['features'][feature]['type'] === 'audioplayer') {\r\n let f = self.itemsApp.feature(item['features'][feature]['feature_id']);\r\n if (!self.props.dt_config[test.id][child.grade]['use_audio'] && f !== undefined) {\r\n f.destroy();\r\n } else {\r\n self.audio_players[item['reference']] = item['features'][feature]['feature_id'];\r\n }\r\n }\r\n }\r\n });\r\n\r\n let playbackButton = document.getElementById('lrn-audio-overwrite-content');\r\n if (playbackButton) {\r\n playbackButton.style.display = 'none';\r\n }\r\n\r\n }\r\n });\r\n })\r\n } else {\r\n confirmAlert({\r\n title: 'Sorry!',\r\n message: \"There is an issue connecting to our practice questions server please refresh and \" +\r\n \"try again. If the issue persists please contact support by using\" +\r\n \" the options on the lower right.\",\r\n buttons: [\r\n {\r\n label: 'Refresh Now',\r\n onClick: function() {\r\n window.location.reload();\r\n }\r\n },\r\n {\r\n label: 'Continue',\r\n }\r\n ]\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n setSkills(finished = false, assessmentItemsApp)\r\n {\r\n let self = this;\r\n let test = this.props.user.active_test;\r\n let child = this.props.user.children[this.props.user.active_child];\r\n let current_test = {};\r\n let question_results = {};\r\n let skills = {};\r\n let learnosity_items = [];\r\n let high_scores = [];\r\n if (finished) {\r\n if (assessmentItemsApp && typeof assessmentItemsApp.reset === 'function') {\r\n assessmentItemsApp.reset();\r\n }\r\n self.setState({\r\n 'learnosity_set': false,\r\n 'showTutoringModal': true,\r\n });\r\n }\r\n if (child.hasOwnProperty('assessments_by_test') && child['assessments_by_test'].hasOwnProperty(test.id)) {\r\n this.skills_set = true;\r\n if (Object.keys(self.state.current_test).length > 0 && self.state.current_test.test === test.id && !finished) {\r\n current_test = self.state.current_test;\r\n } else {\r\n let most_recent = child['assessments_by_test'][test.id]['keys'][child['assessments_by_test'][test.id]['keys'].length - 1];\r\n current_test = child['assessments'][most_recent];\r\n }\r\n let questions = current_test['questions'];\r\n if (current_test['learnosity']) {\r\n questions = current_test['learnosity_items'];\r\n for (let key in child['assessments_by_test'][test.id]['keys']) {\r\n let items_key = child['assessments_by_test'][test.id]['keys'][key];\r\n if (typeof child['assessments'][items_key] !== 'undefined' &&\r\n child['assessments'][items_key].hasOwnProperty('learnosity_items')\r\n ) {\r\n for (let item in child['assessments'][items_key]['learnosity_items']) {\r\n if (child['assessments'][items_key]['learnosity_items'].hasOwnProperty(item) &&\r\n child['assessments'][items_key]['learnosity_items'][item].hasOwnProperty('item') &&\r\n child['assessments'][items_key]['learnosity_items'][item]['item'] !== null &&\r\n child['assessments'][items_key]['learnosity_items'][item]['item'].hasOwnProperty('reference')\r\n ) {\r\n question_results[child['assessments'][items_key]['learnosity_items'][item]['item']['reference']] =\r\n child['assessments'][items_key]['learnosity_items'][item]['item'];\r\n learnosity_items.push(child['assessments'][items_key]['learnosity_items'][item]['item']['reference']);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (let q in questions) {\r\n if (questions.hasOwnProperty(q)) {\r\n let question_skills = questions[q]['skills'];\r\n if (current_test['learnosity']) {\r\n if (questions[q]['item'] !== null) {\r\n question_skills = questions[q]['item']['skills'];\r\n question_results = current_test['learnosity_items'];\r\n }\r\n } else {\r\n question_results[questions[q]['question']] = questions[q];\r\n }\r\n let has_skills = false;\r\n let score = 0;\r\n for (let s in question_skills) {\r\n if (\r\n question_skills.hasOwnProperty(s) &&\r\n question_skills[s]['parent'] === null &&\r\n test.skills.indexOf(question_skills[s]['id']) !== -1\r\n ) {\r\n has_skills = true;\r\n if (!skills.hasOwnProperty(question_skills[s]['id'])) {\r\n skills[question_skills[s]['id']] = {\r\n title: question_skills[s]['title'],\r\n correct: 0,\r\n questions: 0,\r\n score: 0,\r\n question_ids: [],\r\n description: question_skills[s]['description']\r\n }\r\n }\r\n if (current_test['learnosity']) {\r\n skills[question_skills[s]['id']]['question_ids'].push(questions[q]['item']['id']);\r\n } else {\r\n skills[question_skills[s]['id']]['question_ids'].push(questions[q]['question']);\r\n }\r\n if (questions[q]['correct']) {\r\n skills[question_skills[s]['id']]['correct']++;\r\n }\r\n skills[question_skills[s]['id']]['questions']++;\r\n score = skills[question_skills[s]['id']]['correct'] /\r\n skills[question_skills[s]['id']]['questions'];\r\n skills[question_skills[s]['id']]['score'] = score;\r\n }\r\n }\r\n if (!has_skills) {\r\n if (!skills.hasOwnProperty(9999)) {\r\n skills[9999] = {\r\n title: 'General Skills',\r\n correct: 0,\r\n questions: 0,\r\n score: 0,\r\n question_ids: [],\r\n description: ''\r\n }\r\n }\r\n if (current_test['learnosity']) {\r\n skills[9999]['question_ids'].push(questions[q]['item']['id']);\r\n } else {\r\n skills[9999]['question_ids'].push(questions[q]['question']);\r\n }\r\n if (questions[q]['correct']) {\r\n skills[9999]['correct']++;\r\n }\r\n skills[9999]['questions']++;\r\n score = skills[9999]['correct'] /\r\n skills[9999]['questions'];\r\n skills[9999]['score'] = score;\r\n }\r\n }\r\n }\r\n\r\n for (let key in skills) {\r\n high_scores.push({\r\n 'score': skills[key]['score'],\r\n 'correct': skills[key]['correct'],\r\n 'key': key,\r\n })\r\n }\r\n high_scores.sort((a, b) => a.score - b.score || a.correct - b.correct);\r\n\r\n if (current_test['learnosity']) {\r\n self.setState({\r\n question_results: question_results,\r\n learnosity_items: learnosity_items,\r\n // learnosity_set: false\r\n }, self.initializeLearnosity);\r\n } else {\r\n ApiFetch('question/?limit=100&pk=' + Object.keys(question_results).join(',')).then(function (res) {\r\n self.setState({\r\n questions: res['results'],\r\n question_results: question_results\r\n });\r\n });\r\n }\r\n let high_score_key = -1;\r\n if (high_scores.length && high_scores[high_scores.length - 1].score > 0.5) {\r\n high_score_key = high_scores[high_scores.length - 1]['key']\r\n }\r\n this.setState({\r\n high_score_key: high_score_key,\r\n current_test: current_test,\r\n skills: skills,\r\n });\r\n }\r\n }\r\n\r\n replayAudio(key) {\r\n let audio = document.getElementById(\"question_audio\" + key);\r\n audio.pause();\r\n audio.currentTime = 0;\r\n audio.play();\r\n }\r\n\r\n showReportedError(question_id, reference) {\r\n let re = document.getElementById('reportedError');\r\n re.style.display = 'block';\r\n re.setAttribute('data-question_id', question_id);\r\n re.setAttribute('data-learnosity_ref', reference);\r\n }\r\n\r\n resetReportedError()\r\n {\r\n let re = document.getElementById('reportedError');\r\n if (re) {\r\n re.getElementsByClassName('form')[0].className = 'form';\r\n re.getElementsByClassName('submitted')[0].className = 'submitted hide';\r\n }\r\n }\r\n\r\n changeSelectedSkill(key) {\r\n this.setState({\r\n selected_skill: key\r\n });\r\n }\r\n\r\n changeCurrentGrade(e) {\r\n let child = this.props.user.children[this.props.user.active_child];\r\n for (let g in this.props.grades) {\r\n if (this.props.grades.hasOwnProperty(g) && this.props.grades[g]['id'] === child['grade']) {\r\n this.setState({\r\n current_grade: e.target.value\r\n });\r\n }\r\n }\r\n }\r\n\r\n changeCurrentTest(key)\r\n {\r\n let self = this;\r\n let child = this.props.user.children[this.props.user.active_child];\r\n if (this.itemsApp && typeof this.itemsApp.reset === 'function') {\r\n this.itemsApp.reset();\r\n }\r\n if (child.assessments.hasOwnProperty(key)) {\r\n this.setState({\r\n current_test: child.assessments[key],\r\n learnosityResultsKey: self.state.learnosityResultsKey + 100,\r\n learnosity_set: false\r\n }, self.setSkills);\r\n }\r\n }\r\n\r\n togglePrintableTest(el) {\r\n let table = el.currentTarget.parentElement;\r\n if (table.className === 'printable-test open') {\r\n table.className = 'printable-test closed';\r\n } else {\r\n table.className = 'printable-test open';\r\n }\r\n }\r\n\r\n showFreeQuickPractice()\r\n {\r\n // if (this.state.showFreePractice === false) {\r\n // this.setState({\r\n // 'showFreePractice': true\r\n // })\r\n // } else {\r\n // this.setState({\r\n // 'showFreePractice': false\r\n // })\r\n // }\r\n window.location.href = WEBSITE_URL + 'buy-now/?free-questions=1';\r\n }\r\n\r\n handleUseAudio(event)\r\n {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n render () {\r\n let doc = this.props.appProps.match.params.document;\r\n if (doc !== undefined) {\r\n return \r\n }\r\n let self = this;\r\n let gradeKey = 0;\r\n let skillsKey = 0;\r\n let pastResultsKey = 0;\r\n let sbaKey = 0;\r\n let gamesKey = 0;\r\n let lessonsKey = 0;\r\n let questionKey = 0;\r\n let child = this.props.user.children[this.props.user.active_child];\r\n\r\n let grades = [];\r\n let test = Object.assign({}, this.props.user.active_test);\r\n let test_assessment_keys = [];\r\n if (test !== undefined) {\r\n if (test.hasOwnProperty('documents') &&\r\n test['documents'].hasOwnProperty('documents') &&\r\n Object.keys(test['documents']['documents']).length > 0\r\n ) {\r\n grades = test['documents']['grades'];\r\n }\r\n if (test.hasOwnProperty('id') && child['assessments_by_test'].hasOwnProperty(test.id)) {\r\n test_assessment_keys = child['assessments_by_test'][test.id]['keys'].slice(0).reverse();\r\n }\r\n }\r\n let assessCount = 0;\r\n let lineData = [];\r\n let total_correct = 0;\r\n let total_questions = 0;\r\n let skillLineData = [];\r\n let skillAssessCount = 0;\r\n if (this.state.selected_skill !== null) {\r\n let assessments = child['assessments'];\r\n for (let assess in assessments) {\r\n total_questions = 0;\r\n total_correct = 0;\r\n if (skillAssessCount < 10 && assessments.hasOwnProperty(assess)) {\r\n if (assessments[assess]['test'] === self.props.user.active_test.id) {\r\n if (assessments[assess].learnosity) {\r\n for (let question in assessments[assess]['learnosity_items']) {\r\n if (assessments[assess]['learnosity_items'].hasOwnProperty(question) &&\r\n assessments[assess]['learnosity_items'][question].hasOwnProperty('item') &&\r\n assessments[assess]['learnosity_items'][question]['item'] &&\r\n assessments[assess]['learnosity_items'][question]['item'].hasOwnProperty('skills')\r\n ) {\r\n let question_skills = assessments[assess]['learnosity_items'][question]['item']['skills'];\r\n for (let skill in question_skills) {\r\n if (question_skills.hasOwnProperty(skill)) {\r\n if (question_skills[skill].id === parseInt(this.state.selected_skill)) {\r\n total_questions++;\r\n if (assessments[assess]['learnosity_items'][question].correct) {\r\n total_correct++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n for (let question in assessments[assess]['questions']) {\r\n if (assessments[assess]['questions'].hasOwnProperty(question)) {\r\n let question_skills = assessments[assess]['questions'][question]['skills'];\r\n for (let skill in question_skills) {\r\n if (question_skills.hasOwnProperty(skill)) {\r\n if (question_skills[skill].id === parseInt(this.state.selected_skill)) {\r\n total_questions++;\r\n if (assessments[assess]['questions'][question].correct) {\r\n total_correct++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (total_questions > 0) {\r\n skillAssessCount++;\r\n let time = moment.utc(assessments[assess]['created_at']).local().format('MM/DD h:mma');\r\n skillLineData.push({\r\n name: time,\r\n Score: Math.round(total_correct / total_questions * 100),\r\n total_questions: total_questions\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.props.user.email) {\r\n let has_audio = false;\r\n if (this.props.dt_config.hasOwnProperty(this.props.user.active_test.id) &&\r\n this.props.dt_config[this.props.user.active_test.id].hasOwnProperty(child.grade)\r\n ) {\r\n has_audio = this.props.dt_config[this.props.user.active_test.id][child.grade]['use_audio'];\r\n }\r\n\r\n let safeTestTitle = '';\r\n let testOverview = '';\r\n if (this.props.user.active_test) {\r\n safeTestTitle = ;\r\n if (this.props.user.active_test.overview) {\r\n testOverview = this.props.user.active_test.overview;\r\n }\r\n }\r\n\r\n // Set apps for current grade and all tests for test page\r\n let apps = [];\r\n if (Object.keys(self.state.apps).length) {\r\n for(let key in self.state.apps) {\r\n if (self.state.apps.hasOwnProperty(key)) {\r\n if (self.state.apps[key].short_title !== 'Digital Tutor' &&\r\n self.state.apps[key].grades.indexOf(child.grade) !== -1) {\r\n apps.push(self.state.apps[key]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n let user_sbas = [];\r\n if (this.props.user.sbas) {\r\n for (let sba in this.props.user.sbas) {\r\n if (this.props.user.sbas.hasOwnProperty(sba)) {\r\n user_sbas.push(this.props.user.sbas[sba].program.id);\r\n }\r\n }\r\n }\r\n\r\n // Set SBAs for current grade and all tests for test page\r\n let sbas = [];\r\n if (Object.keys(self.state.sbas).length) {\r\n for (let key in self.state.sbas) {\r\n if (self.state.sbas.hasOwnProperty(key)) {\r\n for (let grade in self.state.sbas[key].grades) {\r\n if (self.state.sbas[key].grades[grade]['id'] === child.grade) {\r\n sbas.push(self.state.sbas[key]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n let showDocumentLoading = true;\r\n let amountOfPastAssessments = 5;\r\n let resultLinkClass = \"result-links\";\r\n let most_recent_test = null;\r\n let most_recent_time = null;\r\n if (child.hasOwnProperty(['assessments_by_test']) &&\r\n child['assessments_by_test'].hasOwnProperty(test.id) &&\r\n child['assessments_by_test'][test.id]['keys'].length > 1\r\n ) {\r\n resultLinkClass += ' col75';\r\n most_recent_test = child.assessments[\r\n child.assessments_by_test[test.id]['keys'][child.assessments_by_test[test.id]['keys'].length - 1]\r\n ];\r\n most_recent_time = moment.utc(most_recent_test['created_at']).local().format('dddd
    MMMM Do YYYY
    LT');\r\n }\r\n\r\n let oc = this.props.extraProps.onlineClasses;\r\n let onlineClasses = [];\r\n if (oc.length > 0) {\r\n for (let cl in oc) {\r\n if (oc.hasOwnProperty(cl)) {\r\n for (let classTest in oc[cl]['tests']) {\r\n if (oc[cl]['tests'].hasOwnProperty(classTest) && oc[cl]['tests'][classTest] === this.props.user.active_test.id) {\r\n onlineClasses.push(oc[cl])\r\n }\r\n }\r\n for (let classGrade in oc[cl]['grades']) {\r\n if (oc[cl]['grades'].hasOwnProperty(classGrade) && oc[cl]['grades'][classGrade] === child.grade) {\r\n onlineClasses.push(oc[cl])\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n let controlOne = document.querySelector('.control:first-of-type');\r\n let controlTwo = document.querySelector('.control:nth-of-type(2)');\r\n if (this.props.appProps.match.params.section == null && this.props.user.paid_access === true &&\r\n this.props.user.active_test.interactive_questions === false) {\r\n if (controlOne) {\r\n controlOne.classList.add('active');\r\n }\r\n } else if (this.props.appProps.match.params.section !== null &&\r\n this.props.appProps.match.params.section !== \"printables\" && this.props.user.paid_access === true &&\r\n this.props.user.active_test.interactive_questions === true) {\r\n if (controlTwo) {\r\n controlTwo.classList.remove('active');\r\n }\r\n }\r\n let firstDoc = true;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    About the Test

    \r\n {child.grade >= 4 && child.state !== null &&\r\n Object.keys(this.props.regions).length > 0 &&\r\n this.props.regions[child.state]['country'] !== null &&\r\n \r\n Go to {this.props.regions[child.state]['name']} State Testing\r\n }\r\n

    {safeTestTitle} {testOverview} \r\n Learn more.

    \r\n
    \r\n
    \r\n \r\n Interactive Practice\r\n \r\n Printable Practice\r\n \r\n Lessons for Parents\r\n \r\n Skill Building\r\n \r\n Interactive Games\r\n
    \r\n {this.props.appProps.match.params.section == null &&\r\n
    \r\n
    \r\n \"\"\r\n\r\n

    Practice Tests

    \r\n

    The interactive practice questions are to help your child prepare for the\r\n test!

    \r\n
    \r\n {this.props.user.active_test.interactive_questions === true &&\r\n
    \r\n
    \r\n {this.props.user.paid_access === true &&\r\n this.state.current_test.hasOwnProperty('questions') === true &&\r\n this.props.user.active_test &&\r\n this.props.user.active_test.interactive_questions === true &&\r\n this.props.dt_config.hasOwnProperty(this.props.user.active_test.id) &&\r\n this.props.dt_config[this.props.user.active_test.id][child.grade]['total_questions'] > 40 &&\r\n
    \r\n
    \r\n {child.hasOwnProperty(['assessments_by_test']) &&\r\n child['assessments_by_test'].hasOwnProperty(test.id) &&\r\n child['assessments_by_test'][test.id]['ids'][\r\n child['assessments_by_test'][test.id]['ids'].length - 1\r\n ] === self.state.current_test.id &&\r\n

    Most Recent Practice Test

    \r\n }\r\n Date Taken:\r\n {moment.utc(self.state.current_test['created_at']).local().format('MMMM Do YYYY, h:mm a')}\r\n
    \r\n Score:\r\n {this.state.current_test.total_correct} / {this.state.current_test.total_questions}\r\n
    \r\n

    \r\n Select a skill from the practice test results to see recent practice\r\n sessions information below.

    \r\n
    \r\n
    \r\n
    \r\n
    Skill / Category / Section
    \r\n
    Results
    \r\n
    Correct / Total
    \r\n
    \r\n
    \r\n {Object.keys(self.state.skills).map(function (key) {\r\n skillsKey++;\r\n let highScore = false;\r\n if (self.state.high_score_key > 1 && key === self.state.high_score_key) {\r\n highScore = true;\r\n }\r\n return (\r\n \r\n )\r\n })}\r\n
    \r\n
    \r\n
    \r\n {child.hasOwnProperty(['assessments_by_test']) &&\r\n child['assessments_by_test'].hasOwnProperty(test.id) &&\r\n child['assessments_by_test'][test.id]['keys'].length > 1 &&\r\n
    \r\n

    View Past Results

    \r\n {\r\n test_assessment_keys.slice(0, amountOfPastAssessments).map(function (el) {\r\n pastResultsKey++;\r\n let assessment = child['assessments'][el];\r\n let time = moment.utc(assessment['created_at']).local().format('lll');\r\n if (assessment.id !== self.state.current_test.id) {\r\n return

    {time}

    ;\r\n }\r\n return false;\r\n })\r\n }\r\n {child.hasOwnProperty(['assessments_by_test']) &&\r\n child['assessments_by_test'].hasOwnProperty(test.id) &&\r\n child['assessments_by_test'][test.id]['keys'].length > amountOfPastAssessments &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n }\r\n
    \r\n

    Choose how many questions you want for the\r\n practice test and then begin or you can practice from printable\r\n documents.

    \r\n {self.props.user.active_test.slug === 'cogat-form-7' &&\r\n

    \r\n The CogAT® Screener uses only the analogy questions\r\n from each of the three batteries of the CogAT®\r\n

    \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n {this.props.user.paid_access === true &&\r\n self.state.current_test.hasOwnProperty('questions') === false &&\r\n this.props.user.active_test.interactive_questions === true &&\r\n this.props.dt_config.hasOwnProperty(this.props.user.active_test.id) &&\r\n this.props.user.active_test &&\r\n child.grade &&\r\n this.props.dt_config[this.props.user.active_test.id][child.grade] &&\r\n this.props.dt_config[this.props.user.active_test.id][child.grade]['total_questions'] > 40 &&\r\n this.props.user.paid_access &&\r\n
    \r\n

    You haven't taken any practice questions yet.\r\n Start now below.

    \r\n \r\n
    \r\n }\r\n {this.props.user.paid_access === false &&\r\n
    \r\n
    \r\n

    You haven't taken any practice questions yet.\r\n Start now below.

    \r\n \r\n
    \r\n
    \r\n }\r\n {this.props.user.paid_access === true &&\r\n this.state.current_test.hasOwnProperty('questions') === true &&\r\n
    \r\n

    Skill Specific Resources\r\n {this.state.selected_skill !== null &&\r\n this.state.skills.hasOwnProperty(this.state.selected_skill) &&\r\n - {this.state.skills[this.state.selected_skill].title}}\r\n

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

    Most Recent Session:

    \r\n

    \r\n

    \r\n Correct / Total
    \r\n {self.state.current_test.total_correct} /\r\n {self.state.current_test.total_questions}

    \r\n
    \r\n
    \r\n
    \r\n {child['assessments'].length > 0 && self.props.tests_by_id.hasOwnProperty(1) &&\r\n
    \r\n

    Past Overall Results

    \r\n
    \r\n {child['assessments'].slice(0).reverse().map(function (assess) {\r\n if (assessCount < 10) {\r\n if (assess['test'] === self.props.user.active_test.id) {\r\n assessCount++;\r\n let time = moment.utc(assess['created_at']).local().format('MM/DD h:mma');\r\n let score = assess['total_correct'] / assess['total_questions'] * 100;\r\n if (score !== Math.floor(score)) {\r\n score = score.toFixed(1);\r\n }\r\n lineData.push({\r\n name: time,\r\n Score: score,\r\n total_questions: assess['total_questions']\r\n });\r\n }\r\n }\r\n return false;\r\n })}\r\n
    \r\n
    \r\n {lineData.length > 0 &&\r\n \r\n \r\n \r\n }\r\n tick={false}/>\r\n }/>\r\n } allowEscapeViewBox={{ x: true, y: true }}/>\r\n \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n {this.state.selected_skill === null &&\r\n

    Select a skill above to review past\r\n results

    \r\n }\r\n {this.state.selected_skill !== null &&\r\n
    \r\n {this.state.skills.hasOwnProperty(this.state.selected_skill) &&\r\n

    \r\n Past Results\r\n for {this.state.skills[this.state.selected_skill].title}\r\n

    \r\n }\r\n {skillLineData.length > 0 &&\r\n \r\n \r\n \r\n }\r\n tick={false}/>\r\n }/>\r\n } allowEscapeViewBox={{ x: true, y: 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
    \r\n }\r\n {\r\n (!this.props.dt_config.hasOwnProperty(this.props.user.active_test.id) ||\r\n ( this.props.user.active_test &&\r\n child.grade &&\r\n this.props.dt_config[this.props.user.active_test.id][child.grade] &&\r\n this.props.dt_config[this.props.user.active_test.id][child.grade]['total_questions'] <= 40)\r\n ||\r\n this.props.user.active_test.interactive_questions === false\r\n ) &&\r\n
    \r\n

    We're sorry, but there are no interactive practice questions for\r\n {this.props.user.active_test.short_title} { this.props.grades_by_id[child.grade]['name'] }.

    \r\n
    \r\n }\r\n
    \r\n \"\"\r\n \"\"\r\n \"\"\r\n
    \r\n
    \r\n }\r\n {this.props.appProps.match.params.section === \"printables\" &&\r\n
    \r\n
    \r\n \"\"\r\n\r\n

    Printable Practice

    \r\n

    Worksheets and Practice questions that you can print.

    \r\n
    \r\n
    \r\n {grades.length > 0 &&\r\n
    \r\n \r\n
    \r\n }\r\n {\r\n Object.keys(self.state.test_page).length > 0 &&\r\n self.state.test_page.tests.map(function (t) {\r\n let test = self.props.tests_by_id[t['id']];\r\n let testClass = 'open';\r\n let caret = 'caret-down';\r\n if (!firstDoc) {\r\n testClass = 'closed';\r\n caret = 'caret-up';\r\n }\r\n firstDoc = false;\r\n if (t.show_practice_questions &&\r\n test.hasOwnProperty('documents') &&\r\n Object.keys(test.documents).length\r\n ) {\r\n let categories = false;\r\n if (self.state.test_page.display_mode.indexOf('category') !== -1) {\r\n categories = true;\r\n }\r\n showDocumentLoading = false;\r\n return (\r\n
    \r\n

    \r\n {test.title}\r\n \r\n

    \r\n \r\n
    \r\n )\r\n } else {\r\n return false;\r\n }\r\n })\r\n }\r\n {\r\n (Object.keys(self.state.test_page).length === 0 || showDocumentLoading) &&\r\n
    \r\n }\r\n
    \r\n
    \r\n \"\"\r\n
    \r\n
    \r\n }\r\n {this.props.appProps.match.params.section === \"lessons\" &&\r\n
    \r\n
    \r\n \"\"\r\n\r\n

    Lessons for Parents/Parent Resources

    \r\n

    Articles, Videos, Test-prep Tips, and more!

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

    To learn more about the \r\n ,\r\n click the down arrow to the right of the item OR click\r\n the item to expand the information.

    \r\n {Object.keys(this.state.lessons).length > 0 &&\r\n Object.keys(this.state.lessons).map(function (key) {\r\n lessonsKey++;\r\n return (\r\n \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n \"\"/\r\n
    \r\n
    \r\n }\r\n {this.props.appProps.match.params.section === \"skill-building\" &&\r\n
    \r\n
    \r\n \"\"\r\n\r\n

    Interactive Learning Apps

    \r\n

    Educational partner programs to help build your child's skills\r\n in a variety of subjects.

    \r\n
    \r\n
    \r\n Go To All Skill\r\n Building Academy Programs\r\n {sbas.length > 0 &&\r\n
    \r\n
    \r\n
    \r\n
    \r\n Instant Access\r\n
    \r\n
    \r\n
    \r\n Click to request log-in\r\n
    \r\n
    \r\n
    \r\n Access Granted\r\n
    \r\n
    \r\n
    \r\n {sbas.map(function (sba) {\r\n let grades = '';\r\n if (sba['grades'].length > 0) {\r\n grades = sba['grades'][0]['name'];\r\n if (sba['grades'].length > 1) {\r\n grades += ' - ' + sba['grades'][sba['grades'].length - 1]['name'];\r\n }\r\n }\r\n let safeDisplayName = ;\r\n sbaKey++;\r\n let link = '';\r\n let user_access = false;\r\n if (user_sbas.indexOf(sba['id']) !== -1) {\r\n user_access = true;\r\n }\r\n if (self.props.user.paid_access) {\r\n link = \"/skill-building-academy/\" + sba.url;\r\n } else {\r\n link = WEBSITE_URL + 'buy-now/?redirected=1';\r\n }\r\n return \r\n })}\r\n
    \r\n }\r\n
    \r\n
    \r\n \"\"/\r\n
    \r\n
    \r\n }\r\n {this.props.appProps.match.params.section === \"related-games\" &&\r\n
    \r\n
    \r\n \"\"\r\n\r\n

    Interactive Games

    \r\n

    Fun online games to help your child prepare for the test!

    \r\n
    \r\n
    \r\n Go to All Games\r\n
    \r\n {apps.length > 0 && apps.map(function (app) {\r\n gamesKey++;\r\n let link = app.url;\r\n if (app.app_url !== null && self.props.user.paid_access) {\r\n link = app.app_url;\r\n } else {\r\n link = WEBSITE_URL + 'buy-now/?redirected=1';\r\n }\r\n return \r\n })}\r\n
    \r\n
    \r\n \"\"/\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n {self.props.user.active_test &&\r\n \r\n }\r\n {window.location.pathname.indexOf('/practice') === -1 &&\r\n !this.state.showFreePractice &&\r\n this.props.user.paid_access &&\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {this.state.current_test.learnosity === false &&\r\n this.state.questions.length > 0 &&\r\n this.state.questions.map(function (question) {\r\n questionKey++;\r\n return (\r\n \r\n )\r\n })}\r\n {this.state.current_test.learnosity === true &&\r\n Object.keys(this.state.question_results).length > 0 &&\r\n this.state.learnosity_items.length > 0 &&\r\n \r\n }\r\n {this.state.question_results.length > 0 &&
    }\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n {window.location.pathname.indexOf('/practice') !== -1 && this.props.user.paid_access &&\r\n \r\n }\r\n {!this.props.user.paid_access && this.props.user.children.hasOwnProperty(this.props.user.active_child) && this.state.showFreePractice &&\r\n \r\n }\r\n
    \r\n )\r\n } else {\r\n return

    Loading...

    ;\r\n }\r\n }\r\n}\r\n\r\nfunction LearnosityAssessmentResults(props) {\r\n let i = props.keyStart;\r\n\r\n return (\r\n Object.keys(props.question_results).map(function (question) {\r\n i++;\r\n if (!props.question_results[question].hasOwnProperty('item') ||\r\n props.question_results[question].item === null) {\r\n return false;\r\n }\r\n let difficulty = '';\r\n if (props.question_results[question].item.difficulties.length > 0) {\r\n for (let d in props.question_results[question].item.difficulties) {\r\n if (props.question_results[question].item.difficulties.hasOwnProperty(d)) {\r\n difficulty += props.question_results[question].item.difficulties[d]['title'] + ' ';\r\n }\r\n }\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Something wrong with this question? Click here to notify us.\r\n
    \r\n
    \r\n {difficulty &&\r\n
    \r\n

    Difficulty: {difficulty}

    \r\n
    \r\n }\r\n
    \r\n );\r\n })\r\n );\r\n}\r\n\r\nfunction CustomLabel(props) {\r\n let { viewBox, value, vertical} = props;\r\n let x = (viewBox.width + viewBox.x) / 2;\r\n let y = viewBox.y + viewBox.height - 10;\r\n let transform = \"\";\r\n if (vertical) {\r\n transform = \"rotate(-90)\";\r\n y = (viewBox.width + viewBox.x) / 2;\r\n x = -((viewBox.y + viewBox.height + 71) / 2) - 10;\r\n }\r\n return {value}\r\n}\r\n\r\nfunction CustomTooltip(props) {\r\n\r\n let { active } = props;\r\n\r\n if (active) {\r\n let { payload, label } = props;\r\n return (\r\n
    \r\n

    Date: {`${label}`}

    \r\n

    Score: {`${payload[0].value}`}%

    \r\n

    Total Questions: {`${payload[0].payload.total_questions}`}

    \r\n
    \r\n );\r\n }\r\n return
    ;\r\n}\r\n\r\nfunction StartPracticeLinks(props) {\r\n let className = props.slug === 'cogat-form-7' ? 'cogat' : '';\r\n return (\r\n
    \r\n
    \r\n {props.slug === 'cogat-form-7' &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n \r\n
    \r\n {props.paid_access === true &&\r\n \r\n }\r\n {\r\n props.slug !== 'cogat-form-7' && props.paid_access === true && props.has_audio === true &&\r\n
    \r\n \r\n
    \r\n }\r\n {props.paid_access === false &&\r\n \r\n {\"Start\r\n \r\n }\r\n
    \r\n\r\n
    \r\n {props.paid_access === true &&\r\n
    \r\n \r\n \r\n Printable Practice\r\n
    \r\n \r\n \r\n Learn How to Prep\r\n {\r\n props.slug === 'cogat-form-7' && props.paid_access === true && props.has_audio === true &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default TestDashboard;\r\n","import React, {Component} from 'react';\r\nimport './TestDirectory.css'\r\nimport {Link} from \"react-router-dom\";\r\n\r\nclass TestDirectoryListing extends Component {\r\n render() {\r\n let tests_by_letter = {};\r\n for (let test in this.props.test_pages_by_slug) {\r\n if (this.props.test_pages_by_slug.hasOwnProperty(test)) {\r\n let first_letter = this.props.test_pages_by_slug[test].title.substring(0, 1).toUpperCase();\r\n if (!tests_by_letter.hasOwnProperty(first_letter)) {\r\n tests_by_letter[first_letter] = [];\r\n }\r\n tests_by_letter[first_letter].push(this.props.test_pages_by_slug[test]);\r\n }\r\n }\r\n return (\r\n
    \r\n

    Click on a test to see more information.

    \r\n
    \r\n
      \r\n {\r\n Object.keys(tests_by_letter).map(function (key) {\r\n return (\r\n
      \r\n

      {key}

      \r\n {\r\n tests_by_letter[key].map(function(test){\r\n let title = ;\r\n return {title}\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 TestDirectoryListing;","import React, {Component} from 'react';\r\nimport {Link} from 'react-router-dom';\r\nimport './TestDirectory.css'\r\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\r\nconst Loading = require('../common/Loading').Loading;\r\n\r\nclass TestDirectoryStates extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n lesson: 1,\r\n lessons: {}\r\n };\r\n this.changeLesson = this.changeLesson.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n let self = this;\r\n ApiFetch('option/?limit=1&name=state_lessons').then(function(res) {\r\n if (typeof res !== 'undefined' &&\r\n res.hasOwnProperty('results') &&\r\n res['results'].length\r\n ) {\r\n self.setState({\r\n 'lessons': JSON.parse(res['results'][0]['option_value'])\r\n });\r\n }\r\n });\r\n }\r\n\r\n changeLesson(e) {\r\n this.setState({\r\n lesson: parseInt(e.target.value)\r\n })\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    State Testing

    \r\n

    Select a state to view tests related to that state.

    \r\n
    \r\n
      \r\n
    • Alabama
    • \r\n
    • Alaska
    • \r\n
    • Arizona
    • \r\n
    • Arkansas
    • \r\n
    • California
    • \r\n
    • Colorado
    • \r\n
    • Connecticut
    • \r\n
    • Delaware
    • \r\n
    • District Of\r\n Columbia
    • \r\n
    • Florida
    • \r\n
    • Georgia
    • \r\n
    • Hawaii
    • \r\n
    • Idaho
    • \r\n
    \r\n
      \r\n
    • Illinois
    • \r\n
    • Indiana
    • \r\n
    • Iowa
    • \r\n
    • Kansas
    • \r\n
    • Kentucky
    • \r\n
    • Louisiana
    • \r\n
    • Maine
    • \r\n
    • Maryland
    • \r\n
    • Massachusetts
    • \r\n
    • Michigan
    • \r\n
    • Minnesota
    • \r\n
    • Mississippi
    • \r\n
    • Missouri
    • \r\n
    \r\n
      \r\n
    • Montana
    • \r\n
    • Nebraska
    • \r\n
    • Nevada
    • \r\n
    • New Hampshire
    • \r\n
    • New Jersey
    • \r\n
    • New Mexico
    • \r\n
    • New York
    • \r\n
    • North Carolina
    • \r\n
    • North Dakota
    • \r\n
    • Ohio
    • \r\n
    • Oklahoma
    • \r\n
    • Oregon
    • \r\n
    • Pennsylvania
    • \r\n
    \r\n
      \r\n
    • Rhode Island
    • \r\n
    • South Carolina
    • \r\n
    • South Dakota
    • \r\n
    • Tennessee
    • \r\n
    • Texas
    • \r\n
    • Utah
    • \r\n
    • Vermont
    • \r\n
    • Virginia
    • \r\n
    • Washington
    • \r\n
    • West Virginia
    • \r\n
    • Wisconsin
    • \r\n
    • Wyoming
    • \r\n
    \r\n
    \r\n
    \r\n

    About State Standards and Achievement Tests

    \r\n {Object.keys(this.state.lessons).length > 0 &&\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {this.state.lessons.title_5 && this.state.lessons.content_5 &&\r\n \r\n }\r\n
    \r\n
    \r\n {this.state.lesson === 1 && this.state.lessons.content_1 &&\r\n
    \r\n

    Lesson 1 - { this.state.lessons.title_1 }

    \r\n
    \r\n
    \r\n }\r\n {this.state.lesson === 2 && this.state.lessons.content_2 &&\r\n
    \r\n

    Lesson 2 - { this.state.lessons.title_2 }

    \r\n
    \r\n
    \r\n }\r\n {this.state.lesson === 3 && this.state.lessons.content_3 &&\r\n
    \r\n

    Lesson 3 - { this.state.lessons.title_3 }

    \r\n
    \r\n
    \r\n }\r\n {this.state.lesson === 4 && this.state.lessons.content_4 &&\r\n
    \r\n

    Lesson 4 - { this.state.lessons.title_4 }

    \r\n
    \r\n
    \r\n }\r\n {this.state.lesson === 5 && this.state.lessons.content_5 &&\r\n
    \r\n

    Lesson 5 - { this.state.lessons.title_5 }

    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n }\r\n {Object.keys(this.state.lessons).length === 0 &&
    }\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default TestDirectoryStates;","import React, {Component} from 'react';\r\nimport './TestDirectory.css'\r\nimport {Link} from \"react-router-dom\";\r\nimport TestDirectoryListing from \"./TestDirectoryListing\";\r\nimport TestDirectoryStates from \"./TestDirectoryStates\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\n\r\nclass TestDirectory extends Component {\r\n render() {\r\n let Component = TestDirectoryListing;\r\n let path = this.props.appProps.location.pathname;\r\n if (this.props.appProps.match.params.view === '') {\r\n Component = TestDirectoryListing;\r\n }\r\n if (this.props.appProps.match.params.view === 'states') {\r\n Component = TestDirectoryStates;\r\n }\r\n let backToDashboard = '/';\r\n if (this.props.user.active_child) {\r\n backToDashboard = '/dashboard/' + this.props.user.active_child;\r\n }\r\n return (\r\n
    \r\n
    \r\n \r\n Back to Dashboard\r\n
    \r\n How to Prep by Test\r\n State Achievement Tests\r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default TestDirectory;\r\n","export const formatAMPM = function(date) {\n let hours = date.getHours();\n let minutes = date.getMinutes();\n let ampm = hours >= 12 ? 'pm' : 'am';\n hours = hours % 12;\n hours = hours ? hours : 12;\n minutes = minutes < 10 ? '0' + minutes : minutes;\n return hours + ':' + minutes + ' ' + ampm;\n}\n\nexport const formatHour = function(date, utc) {\n let hours = date.getHours();\n let minutes = date.getMinutes();\n let seconds = date.getSeconds();\n if (utc) {\n hours = date.getUTCHours();\n minutes = date.getUTCMinutes();\n seconds = date.getUTCSeconds();\n }\n hours = (hours < 10) ? '0' + hours : hours;\n minutes = (minutes < 10) ? '0' + minutes : minutes;\n seconds = (seconds < 10) ? '0' + seconds : seconds;\n\n return hours + ':' + minutes + ':' + seconds;\n}\n\nexport const formatDate = function(d, utc) {\n let month = '' + (d.getMonth() + 1),\n day = '' + d.getDate(),\n year = d.getFullYear();\n if (utc) {\n month = '' + (d.getUTCMonth() + 1);\n day = '' + d.getUTCDate();\n year = d.getUTCFullYear();\n }\n\n month = (month.length < 2) ? '0' + month : month;\n day = (day.length < 2) ? '0' + day : day;\n\n return [year, month, day].join('-');\n}","import React, {Component} from 'react';\nimport Flatpickr from \"react-flatpickr\";\nimport {confirmAlert} from 'react-confirm-alert';\nimport {formatDate, formatHour} from \"./Utils\";\n\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\n\nclass AddSession extends Component {\n constructor(props) {\n super(props);\n\n this.submitting = false;\n this.saveSession = this.saveSession.bind(this);\n this.deleteSession = this.deleteSession.bind(this);\n this.onOverlayClick = this.onOverlayClick.bind(this);\n this.updateStatus = this.updateStatus.bind(this);\n }\n\n componentDidMount() {\n let s = document.getElementById('add-edit-session');\n s.addEventListener('click', function(e) {\n if (e.target.id === 'add-edit-session') {\n s.style.display = 'none';\n }\n });\n }\n\n onOverlayClick(e) {\n let self = this;\n if (e.target.id === 'add-edit-session') {\n self.hideOverlay(e);\n }\n }\n\n hideOverlay(e) {\n e.preventDefault();\n document.getElementById('add-edit-session').style.display = 'none';\n }\n\n saveSession() {\n let self = this;\n if (self.submitting) return;\n self.submitting = true;\n\n let sessionOverlay = document.getElementById('add-edit-session');\n let date = sessionOverlay.querySelector('input[name=date]').value;\n let start = new Date(date + 'T' + document.getElementById('start').value + ':00');\n let length = sessionOverlay.querySelector('input[name=end]:checked').value;\n let end = new Date(start.getTime() + length * 60 * 1000);\n if (end <= start) {\n confirmAlert({\n message: 'End time must be after start time.',\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n return false;\n }\n\n if (!self.props.allowSessionModification()) return false;\n\n document.getElementById('schedule-session').insertAdjacentHTML('afterend','
    ');\n sessionOverlay.querySelector('.tiny-tm-loading').style.display = 'block';\n document.getElementById('schedule-session').style.display = 'none';\n\n let data = {\n 'start_time': formatDate(start, true) + ' ' + formatHour(start, true),\n 'end_time': formatDate(end, true) + ' ' + formatHour(end, true),\n 'timeZone': Intl.DateTimeFormat().resolvedOptions().timeZone,\n 'status': sessionOverlay.querySelector('input[name=status]').value,\n 'tutor_id': sessionOverlay.querySelector('input[name=tutor_id]').value,\n 'session_id': sessionOverlay.querySelector('input[name=session_id]').value,\n 'source': 'members'\n };\n\n let endpoint = 'lms/student-schedule/';\n if (self.props.firstSession) {\n endpoint = 'lms/tutor-schedule/';\n data.student_id = document.querySelector('#tutoring input[name=student_id]').value;\n data.name = document.querySelector('#tutoring input[name=name]').value;\n data.grade = document.querySelector('select[name=grade]').value;\n data.subject = document.querySelector('select[name=subject1]').value;\n data.subject2 = document.querySelector('select[name=subject2]').value;\n data.is_mini = self.props.isMini ? 1 : 0;\n } else {\n data.student_id = self.props.selectedStudentId.toString();\n data.grade = self.props.selectedStudentGrade.toString();\n data.subject = sessionOverlay.querySelector('select[name=subject]').value;\n }\n\n ApiFetch(endpoint, 'POST', data).then(function (response) {\n self.submitting = false;\n document.getElementById('schedule-session').style.display = 'block';\n sessionOverlay.querySelector('.tiny-tm-loading').remove();\n if (response.error) {\n confirmAlert({\n message: response.error,\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n if (self.props.firstSession) {\n document.querySelector('#tutoring input[name=student_id]').value = response.student_id\n }\n } else {\n sessionOverlay.style.display = 'none';\n self.props.afterSessionChange();\n }\n });\n }\n\n deleteSession() {\n let self = this;\n\n if (!self.props.allowSessionModification()) return false;\n\n let data = {\n 'parent-cancel-session': 1,\n 'student_id': self.props.selectedStudentId.toString(),\n 'tutor_id': document.querySelector('input[name=tutor_id]').value,\n 'session_id': document.querySelector('input[name=session_id]').value,\n 'source': 'members'\n };\n\n ApiFetch('lms/student-tutor-schedule/', 'DELETE', data).then(function (response) {\n if (response.error) {\n confirmAlert({\n message: response.error,\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n } else {\n document.getElementById('add-edit-session').style.display = 'none';\n self.props.afterSessionChange();\n }\n });\n\n return false;\n }\n\n updateStatus() {\n let self = this;\n let data = {\n 'status': document.querySelector('select[name=status]').value,\n 'session_id': document.querySelector('input[name=session_id]').value,\n };\n\n ApiFetch('lms/session-status/', 'POST', data).then(function (response) {\n if (response.error) {\n confirmAlert({\n message: response.error,\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n } else {\n document.getElementById('add-edit-session').style.display = 'none';\n self.props.afterSessionChange();\n }\n });\n }\n\n render() {\n let self = this;\n\n return (\n <>\n
    \n
    \n
    x
    \n {!self.props.isTutor &&\n <>\n

    \n \n \n }\n {self.props.isTutor &&\n <>\n \n \n \n

    The information below is read-only.

    \n \n }\n \n \n \n \n
    \n \n \n
    \n {!self.props.isTutor &&\n <>\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n Back to Calendar\n
    \n
    \n All reschedules and cancellations must occur more than 48 hours before the session starts.\n Tutoring hours will be credited to your account for cancelled sessions.\n If you need help please contact online.tutoring@testingmom.com.\n
    \n \n }\n {self.props.isTutor &&\n <>\n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    Internal Notes: (Only employees and tutors can see)

    \n \n
    \n
    \n

    External Notes: (Employees, tutors, and parents can see)

    \n \n
    \n
    \n Back to Calendar\n \n }\n
    \n
    \n \n \n )\n }\n}\n\nexport default AddSession;","import React, {Component} from 'react';\n\nclass TutorTabs extends Component {\n constructor(props) {\n super(props);\n\n this.setActiveTutor = this.setActiveTutor.bind(this);\n }\n\n setActiveTutor(e) {\n let self = this;\n let tutorList = document.querySelectorAll('#tutoring .tutor-tab');\n for (let t in tutorList) {\n if (tutorList.hasOwnProperty(t)) {\n tutorList[t].classList.remove('active');\n }\n }\n\n let tutorEle = e.target.closest('.tutor-tab');\n tutorEle.classList.add('active');\n self.props.onTutorSelect(tutorEle.dataset.id);\n }\n\n render() {\n let self = this;\n\n return (\n
      \n {self.props.tutors.length > 0 && self.props.tutors.map(function (tutor) {\n let isActive = (tutor.id === self.props.selectedTutor) ? \"active\" : \"\";\n return (\n
    • \n {tutor.name}
    • \n )\n })\n }\n
    \n )\n }\n}\n\nexport default TutorTabs;","import React, {Component} from 'react';\nimport {confirmAlert} from 'react-confirm-alert';\nimport FullCalendar from \"@fullcalendar/react\";\nimport dayGridPlugin from '@fullcalendar/daygrid'\nimport interactionPlugin from \"@fullcalendar/interaction\"\nimport timeGridPlugin from '@fullcalendar/timegrid'\nimport './Tutoring.css'\n\nimport AddSession from \"./AddSession\";\nimport StudentSelector from \"./StudentSelector\";\nimport {formatDate, formatHour, formatAMPM} from \"./Utils\";\nimport {API_URL} from \"../common/Urls\";\nimport TutorTabs from \"./TutorTabs\";\nimport {ApiFetch} from \"../common/ApiFetch\";\n\nconst moment = require('moment-timezone');\nconst WEBSITE_URL = require('../common/Urls').WEBSITE_URL;\n\nclass TutoringCalendar extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n end_time: \"\",\n selected_date: \"\",\n student_grade: \"\",\n student_id: 0,\n student_name: \"\",\n students: [],\n tutor_id: 0,\n }\n\n this.data_by_student = {};\n this.calendarComponentRef = React.createRef();\n this.first_calendar_loaded = false;\n this.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n this.url_params = window.location.search ? new URLSearchParams(window.location.search) : null;\n\n this.selectStudent = this.selectStudent.bind(this);\n this.setActiveTutor = this.setActiveTutor.bind(this);\n this.allowSessionModification = this.allowSessionModification.bind(this);\n this.editSession = this.editSession.bind(this);\n this.editSessionTutor = this.editSessionTutor.bind(this);\n this.setEventContent = this.setEventContent.bind(this);\n this.addSession = this.addSession.bind(this);\n this.dragSession = this.dragSession.bind(this);\n this.onSessionHover = this.onSessionHover.bind(this);\n this.onSessionHoverEnd = this.onSessionHoverEnd.bind(this);\n this.showTooltip = this.showTooltip.bind(this);\n this.reloadCalendar = this.reloadCalendar.bind(this);\n }\n\n componentDidMount() {\n let self = this;\n\n fetch(API_URL + \"lms/user-tutoring-schedule/\", {\n credentials: \"include\",\n }).then(function(response) {\n return response.json();\n }).then(function(results) {\n let body = document.getElementById('tutoring');\n body.querySelector('.tm-loading').style.display = 'none';\n if (results && Object.keys(results).length > 0) {\n if (self.props.user.tutor) {\n self.setState({\n tutor_id : results['tutor_id']\n });\n let startDate = self.url_params ? self.url_params.get('date') : null;\n self.reloadCalendar(startDate);\n } else {\n self.data_by_student = results;\n let studentList = [];\n for (let name in results) {\n studentList.push({'id': results[name]['id'], 'name': name});\n }\n self.setState({\n students: studentList,\n });\n self.selectStudent(Object.keys(self.data_by_student)[0]);\n }\n body.querySelector('.calendar-container').style.display = 'block';\n } else {\n body.querySelector('.sign-up').style.display = 'block';\n }\n });\n }\n\n reloadCalendar(startDate=null) {\n let self = this;\n let calendarApi = self.calendarComponentRef.current.getApi();\n if (startDate) {\n calendarApi.gotoDate(startDate);\n }\n calendarApi.refetchEvents();\n }\n\n setEventContent(eventInfo) {\n let self = this;\n if (!self.props.user.tutor) {\n if (eventInfo && eventInfo.event && eventInfo.event.start && eventInfo.event.end\n && !eventInfo.event.extendedProps.unavailable && !eventInfo.event.extendedProps.timeOff) {\n return {html: eventInfo.event.extendedProps.customHtml}\n }\n return '';\n }\n\n let statusIcon = \"\";\n if (eventInfo.event.extendedProps.tutoringSession) {\n if (eventInfo.event.extendedProps.locked) {\n statusIcon = \" \";\n }\n let status = eventInfo.event.extendedProps.status;\n switch (status) {\n case \"missed\":\n statusIcon += \"âś– \";\n break;\n case \"completed\":\n statusIcon += \"âś” \";\n break;\n }\n }\n if (eventInfo && eventInfo.event && eventInfo.event.start && eventInfo.event.end\n && !eventInfo.event.extendedProps.unavailable && !eventInfo.event.extendedProps.timeOff) {\n return {html: statusIcon + eventInfo.event.extendedProps.customHtml}\n }\n return '';\n }\n\n editSessionTutor(a) {\n let self = this;\n if (a.event.extendedProps.unavailable || a.event.extendedProps.timeOff) {\n return;\n }\n let s = document.getElementById('add-edit-session');\n s.style.display = 'block';\n self.setState({\n selected_date: a.event.start,\n end_time: a.event.end\n });\n s.querySelector('input[name=session_id]').value = a.event.extendedProps.session_id;\n s.querySelector('#start').value = formatHour(a.event.start);\n s.querySelector('#end').value = formatHour(a.event.end);\n if (a.event.extendedProps.subject_name) {\n s.querySelector('input[name=subject]').value = a.event.extendedProps.subject_name;\n }\n if (a.event.extendedProps.status) {\n s.querySelector('select[name=status]').value = a.event.extendedProps.status;\n s.querySelector('select[name=status]').disabled = a.event.extendedProps.status === \"cancelled\";\n }\n if (a.event.extendedProps.internal_notes) {\n s.querySelector('textarea[name=internal_notes]').value = a.event.extendedProps.internal_notes.replace(/\\\\(.)/mg, \"$1\");\n }\n if (a.event.extendedProps.external_notes) {\n s.querySelector('textarea[name=external_notes]').value = a.event.extendedProps.external_notes.replace(/\\\\(.)/mg, \"$1\");\n }\n }\n\n editSession(a) {\n let self = this;\n if (a.event.extendedProps.unavailable || a.event.extendedProps.timeOff) {\n return;\n }\n let s = document.getElementById('add-edit-session');\n s.style.display = 'block';\n self.setState({\n selected_date: a.event.start\n });\n if (a.event.extendedProps.tutoringSession) {\n s.querySelector('input[name=session_id]').value = a.event.extendedProps.session_id;\n if (a.event.end - a.event.start >= 60 * 60 * 1000) {\n document.getElementById('hour-session').checked = true;\n } else {\n document.getElementById('half-hour-session').checked = true;\n }\n document.querySelector('.cancellation-policy').style.display = 'block';\n\n // Only allow rescheduling/cancelling if the event is more than 48 hours away\n if (moment(a.event.start).diff(moment(), 'days') <= 1) {\n s.querySelector('h4').innerHTML = 'Tutoring Session Details for ' + a.event.start.toLocaleDateString('en-us', { weekday: 'short' }) + '. ' + (a.event.start.getMonth() + 1) + '/' + a.event.start.getDate();\n document.getElementById('delete-session').style.display = 'none';\n document.getElementById('schedule-session').style.display = 'none';\n } else {\n s.querySelector('h4').innerHTML = 'Reschedule Tutoring Session on ' + a.event.start.toLocaleDateString('en-us', { weekday: 'short' }) + '. ' + (a.event.start.getMonth() + 1) + '/' + a.event.start.getDate();\n s.querySelector('#schedule-session').innerHTML = 'RESCHEDULE';\n document.getElementById('delete-session').style.display = 'block';\n document.getElementById('schedule-session').style.display = 'block';\n }\n }\n s.querySelector('#start').value = formatHour(a.event.start);\n s.querySelector('input[name=date]').value = formatDate(a.event.start);\n s.querySelector('input[name=tutor_id]').value = a.event.extendedProps.tutor_id;\n s.querySelector('input[name=subject_id]').value = a.event.extendedProps.subject;\n if (a.event.extendedProps.status) {\n s.querySelector('input[name=status]').value = a.event.extendedProps.status;\n } else {\n s.querySelector('input[name=status]').value = 'scheduled';\n }\n if (a.event.extendedProps.subject) {\n s.querySelector('select[name=subject]').value = a.event.extendedProps.subject;\n }\n }\n\n addSession(a) {\n let self = this;\n let now = new Date();\n if (a.date.getTime() - now.getTime() < 48 * 60 * 60 * 1000) {\n confirmAlert({\n message: 'You cannot add or modify sessions within 48 hours. Please contact support at online.tutoring@testingmom.com.',\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n return;\n }\n let s = document.getElementById('add-edit-session');\n s.querySelector('h4').innerHTML = 'Schedule Tutoring Session for ' + a.date.toLocaleDateString('en-us', { weekday: 'short' }) + '. ' + (a.date.getMonth() + 1) + '/' + a.date.getDate();\n s.querySelector('input[name=session_id]').value = '';\n\n s.querySelector('#schedule-session').innerHTML = 'SCHEDULE';\n document.querySelector('.cancellation-policy').style.display = 'none';\n document.querySelector('#delete-session').style.display = 'none';\n document.querySelector('#schedule-session').style.display = 'block';\n\n let minutes = a.date.getMinutes();\n if (minutes < 10) {\n minutes = '0' + minutes;\n }\n let startHour = a.date.getHours();\n if (startHour < 10) {\n startHour = '0' + startHour;\n }\n s.querySelector('#start').value = startHour + ':' + minutes;\n self.setState({\n selected_date: startHour + ':' + minutes\n })\n s.querySelector('input[name=date]').value = formatDate(a.date);\n s.querySelector('input[name=tutor_id]').value = self.state.tutor_id;\n s.querySelector('input[name=status]').value = 'scheduled';\n s.style.display = 'block';\n }\n\n dragSession(info) {\n let self = this;\n if (!window.confirm(\"Are you sure about this change?\")) {\n info.revert();\n return;\n }\n if (!self.allowSessionModification(true)) {\n info.revert();\n return false;\n }\n if (moment(info.oldEvent.start).diff(moment(), 'days') <= 1\n || moment(info.event.start).diff(moment(), 'days') <= 1) {\n info.revert();\n confirmAlert({\n message: 'You cannot add or modify sessions within 48 hours. Please contact support at online.tutoring@testingmom.com.',\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n return false;\n }\n\n let data = {\n 'start_time': info.event.start.toISOString().slice(0, 19).replace('T', ' '),\n 'end_time': info.event.end.toISOString().slice(0, 19).replace('T', ' '),\n 'timeZone': Intl.DateTimeFormat().resolvedOptions().timeZone,\n 'status': info.event.extendedProps.status,\n 'student_id': info.event.extendedProps.student_id,\n 'tutor_id': info.event.extendedProps.tutor_id,\n 'grade': self.data_by_student[self.state.student_name][\"grade\"].toString(),\n 'subject': info.event.extendedProps.subject,\n 'session_id': info.event.extendedProps.session_id,\n 'source': 'members'\n };\n\n ApiFetch('lms/student-schedule/', 'POST', data).then(function (response) {\n if (response.error) {\n confirmAlert({\n message: response.error,\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n info.revert();\n return false;\n } else {\n document.getElementById('add-edit-session').style.display = 'none';\n self.reloadCalendar();\n }\n });\n\n this.onSessionHoverEnd(info);\n }\n\n onSessionHover(info) {\n let self = this;\n if (info.event.extendedProps.tutoringSession || info.event.extendedProps.onlineClass) {\n let shortTz = new Date().toLocaleString('en-us', {timeZone: this.timezone, timeZoneName: \"shortGeneric\"}).split(\" \")[3];\n let start = formatAMPM(info.event.start) + \" \" + shortTz;\n let end = formatAMPM(info.event.end) + \" \" + shortTz;\n\n let tooltip = '

    ' + start + ' - ' + end + '

    ';\n document.body.insertAdjacentHTML('beforeend', tooltip);\n info.el.addEventListener('mousemove', self.showTooltip);\n }\n }\n\n onSessionHoverEnd(info) {\n let self = this;\n let tt = document.querySelector('.event-tooltip');\n if (tt) {\n info.el.removeEventListener('mousemove', self.showTooltip);\n tt.remove();\n }\n }\n\n showTooltip(e) {\n let tt = document.querySelector('.event-tooltip');\n tt.style.top = (e.pageY + 10) + \"px\";\n tt.style.left = (e.pageX + 20) + \"px\";\n }\n\n selectStudent(name) {\n let self = this;\n self.setState({\n student_name: name,\n student_id: self.data_by_student[name]['id'],\n student_grade: self.data_by_student[name]['grade'].toString()\n }, () => {\n let no_tutors = document.querySelector('#tutoring .no-tutors');\n let calendar = document.querySelector('#tutoring .calendar');\n let selectedTutor = 0;\n let tutors = self.data_by_student[self.state.student_name][\"tutors\"];\n if (tutors.length) {\n no_tutors.style.display = 'none';\n calendar.style.display = 'block';\n selectedTutor = tutors[0].id;\n if (!self.first_calendar_loaded && self.url_params) {\n let setTutor = self.url_params.get('tid');\n for (let t of tutors) {\n if (t.id === setTutor) {\n selectedTutor = setTutor;\n }\n }\n }\n self.setActiveTutor(selectedTutor);\n } else {\n no_tutors.style.display = 'block';\n let first_session = no_tutors.querySelector('.first-session');\n first_session.href = \"/tutoring/select-tutor/?id=\" + self.data_by_student[self.state.selected_student][\"id\"];\n if (self.data_by_student[self.state.selected_student]['minis_remaining'] > 0) {\n first_session.href += \"&mini=1\";\n first_session.innerHTML = \"Schedule Mini Assessment\";\n } else {\n first_session.innerHTML = \"Schedule First Session\";\n }\n calendar.style.display = 'none';\n }\n });\n }\n\n setActiveTutor(tutorId) {\n let self = this;\n self.setState({\n tutor_id: tutorId\n }, () => {\n // Display tutor's subject options\n let subjectSelect = document.querySelector('#tutoring #add-edit-session #subject-select');\n let selectEl = document.getElementById('subject-select');\n if (subjectSelect) {\n for (let i = selectEl.options.length - 1; i >= 0; i--) {\n selectEl.remove(i);\n }\n let tutors = self.data_by_student[self.state.student_name][\"tutors\"];\n for (let t in tutors) {\n if (tutors[t].id === parseInt(self.state.tutor_id)) {\n let subjects = tutors[t][\"subjects\"];\n for (let s in subjects) {\n subjectSelect.innerHTML += \"\";\n }\n break;\n }\n }\n }\n\n let startDate;\n if (typeof(self.reloadCalendar) !== 'undefined') {\n if (!self.first_calendar_loaded && self.url_params) {\n startDate = self.url_params.get('date');\n self.first_calendar_loaded = true;\n }\n self.reloadCalendar(startDate);\n }\n });\n }\n\n setCookie(name, value, days) {\n let d = new Date();\n d.setTime(d.getTime() + 24*60*60*1000*days);\n document.cookie = name + \"=\" + value + \";path=/;expires=\" + d.toGMTString();\n }\n\n getCookie(name) {\n let v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n return v ? v[2] : null;\n }\n\n allowSessionModification(dragged=false) {\n let self = this;\n\n if (['106', '108'].includes(document.querySelector('input[name=subject_id]').value)) {\n confirmAlert({\n message: 'Sorry, you cannot modify mini assessments. Please contact online.tutoring@testingmom.com if you need urgent support.',\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n return false;\n }\n if (document.querySelector('input[name=session_id]').value || dragged) {\n let sessionModCookie = self.getCookie('session-modification');\n if (!sessionModCookie) {\n let modTimes = [Date.now()];\n self.setCookie('session-modification', JSON.stringify(modTimes), 1);\n } else {\n let modTimes = JSON.parse(sessionModCookie);\n modTimes = modTimes.filter(time => (Date.now() - time < 1000 * 60 * 60 * 2));\n\n if (modTimes.length >= 3) {\n self.setCookie('session-modification', JSON.stringify(modTimes), 1);\n confirmAlert({\n message: 'You may only modify 3 tutoring sessions per 2 hour period. ' +\n 'Please contact online.tutoring@testingmom.com if you need urgent support.',\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n document.getElementById('add-edit-session').style.display = 'none';\n return false;\n } else {\n modTimes.push(Date.now());\n self.setCookie('session-modification', JSON.stringify(modTimes), 1);\n }\n }\n }\n return true;\n }\n\n render() {\n let self = this;\n\n let tutors = [];\n if (self.state.student_name in self.data_by_student && \"tutors\" in self.data_by_student[self.state.student_name]) {\n tutors = self.data_by_student[self.state.student_name][\"tutors\"];\n }\n\n let events_url = self.props.user.tutor ?\n API_URL + 'lms/tutor-availability/?tutor_id=' + self.state.tutor_id\n : API_URL + 'lms/student-tutor-schedule/?student_id=' + self.state.student_id + '&tutor_id=' + self.state.tutor_id\n\n return (\n <>\n
    \n
    \n
    \n {!self.props.user.tutor ?\n <>\n

    TUTOR AVAILABILITY

    \n \n \n \n \n :\n

    MY CALENDAR

    \n }\n
    \n {self.state.tutor_id > 0 &&\n \n }\n
    \n
    \n
    \n

    You don't have any students signed up for online tutoring!

    \n Sign up for\n one-to-one tutoring\n
    \n \n
    \n \n \n )\n }\n}\n\nexport default TutoringCalendar;","import React, {Component} from 'react';\nimport {Link} from \"react-router-dom\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\n\nconst moment = require('moment-timezone');\n\n\nclass Session extends Component {\n render() {\n if (this.props.empty) {\n return (\n
  • \n
    \n

    {this.props.selectedMoment.format(\"ddd\")}

    \n

    {this.props.selectedMoment.format(\"MMM DD\")}

    \n
    \n
    \n
    No Sessions Scheduled
    \n
    \n
  • \n )\n }\n\n let btnState = 0;\n let timeTill = \"\";\n let btnActive = \"\";\n\n let endMoment = moment(this.props.info.end_time);\n let startMoment = moment(this.props.start);\n\n if (endMoment.diff(this.props.current_time, 'minutes', true) < 0) {\n btnState = -1;\n } else if (startMoment.diff(this.props.current_time, 'days') === 0) {\n btnState = 1;\n timeTill = moment.utc(startMoment.diff(this.props.current_time)).format(\"HH:mm:ss\");\n if (startMoment.diff(this.props.current_time, 'minutes', true) < 5) {\n btnState = 2;\n btnActive = \" active\";\n if (startMoment.diff(this.props.current_time, 'minutes', true) < 0 && endMoment.diff(this.props.current_time, 'minutes', true) > 0) {\n timeTill = \"00:00:00\";\n }\n }\n }\n\n let link;\n if (btnState === 2) {\n link = this.props.info.tutor.zoom_link;\n }\n\n return (\n
  • \n {this.props.first &&\n
    \n

    {this.props.selectedMoment.format(\"ddd\")}

    \n

    {this.props.selectedMoment.format(\"MMM DD\")}

    \n
    \n }\n {!this.props.first &&\n
    \n }\n
    \n
    \n

    {this.props.start.toLocaleTimeString('en-us', { hour: 'numeric', minute: '2-digit', timeZoneName: 'short' })}

    \n

    {this.props.info.subject.name + \" Tutoring with \" + this.props.displayName}

    \n
    \n {btnState > 0 &&\n
    \n
    \n \n

    {timeTill}

    \n
    \n \n
    Join Session
    \n
    \n
    \n }\n {btnState === 0 &&\n
    \n
    \n \n \n \n
    \n
    \n }\n
    \n
  • \n )\n }\n}\n\nexport default Session;","import React from 'react';\nimport Link from '../common/Link';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport './Tutoring.css'\n\nimport Message from \"./Message\";\nimport Session from \"./Session\";\nimport StudentSelector from \"./StudentSelector\";\nimport {API_URL} from \"../common/Urls\";\nimport TutorTabs from \"./TutorTabs\";\nimport TutoringComponent from \"./TutoringComponent\";\n\nconst WEBSITE_URL = require('../common/Urls').WEBSITE_URL;\nconst moment = require('moment-timezone');\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\n\n\nclass TutoringOverview extends TutoringComponent {\n constructor(props) {\n super(props);\n\n let query_string = window.location.search;\n this.state = {\n messages: [],\n selected_date_moment: moment().startOf('week'),\n selected_student: \"\",\n selected_tutor_id: 0,\n sessions: [],\n student_id: 0,\n students: [],\n time: moment(),\n }\n\n this.dates_retrieved = [];\n this.first_calendar_loaded = false;\n this.full_tutoring_sessions = {};\n this.get_messages_interval = null;\n this.get_messages_seconds = 60;\n this.is_tutor = false;\n this.messages_loaded = false;\n this.student_id = 0;\n this.timer_interval = null;\n this.tutor_info = null;\n this.tutoring_sessions = {};\n this.url_params = query_string ? new URLSearchParams(query_string) : null;\n this._isMounted = false;\n\n this.selectStudent = this.selectStudent.bind(this);\n this.showSubjects = this.showSubjects.bind(this);\n this.setActiveTutor = this.setActiveTutor.bind(this);\n this.loadSessionCounts = this.loadSessionCounts.bind(this);\n this.sortFullSessions = this.sortFullSessions.bind(this);\n this.showHomework = this.showHomework.bind(this);\n this.fetchSessions = this.fetchSessions.bind(this);\n this.showSessions = this.showSessions.bind(this);\n this.saveMessage = this.saveMessage.bind(this);\n this.afterReplySaved = this.afterReplySaved.bind(this);\n this.setTutoringMessages = this.setTutoringMessages.bind(this);\n this.addNewMessage = this.addNewMessage.bind(this);\n this.updateMessage = this.updateMessage.bind(this);\n this.setMessageRead = this.setMessageRead.bind(this);\n this.getTutoringMessages = this.getTutoringMessages.bind(this);\n }\n\n componentDidMount() {\n let self = this;\n self._isMounted = true;\n\n if (self.url_params) {\n let showSuccessOverlay = self.url_params.get('scheduled');\n if (showSuccessOverlay) {\n let mini_scheduled = self.url_params.get('mini');\n let s = document.getElementById('first-session-scheduled');\n s.style.display = 'block';\n if (mini_scheduled) {\n s.querySelectorAll('.btn-row').forEach(e => e.style.display = 'none');\n s.querySelector('.overlay').style.maxHeight = '155px';\n s.querySelector('h1').style.marginBottom = '0';\n }\n\n s.addEventListener('click', function (e) { //TODO remove listener\n if (e.target.id === 'first-session-scheduled') {\n s.style.display = 'none';\n }\n });\n\n let success_exit = document.querySelector('#tutoring #first-session-scheduled .exit');\n if (success_exit) {\n success_exit.addEventListener('click', function() { //TODO remove listener\n s.style.display = 'none';\n });\n }\n }\n }\n\n ApiFetch('lms/user-tutoring-overview', 'GET').then(function (results) {\n let body = document.getElementById('tutoring');\n body.querySelectorAll('div.tm-loading').forEach(e => e.style.display = 'none');\n if (results && Object.keys(results).length > 0) {\n if (results[\"tutor\"]) {\n self.is_tutor = true;\n self.tutor_info = results[\"tutor\"];\n self.setState({\n selected_tutor_id: results[\"tutor\"][\"id\"]\n });\n let hw_tutor_id = document.querySelector('#tutoring #hw-form input[name=tutor_id]');\n if (hw_tutor_id) {\n hw_tutor_id.value = results[\"tutor\"][\"id\"]\n }\n\n if (Object.keys(results[\"students\"]).length === 0) {\n body.querySelectorAll('.sign-up').forEach(e => e.style.display = 'block');\n return;\n }\n }\n\n self.data_by_student = results[\"students\"];\n let studentList = [];\n for (let name in self.data_by_student) {\n if (self.data_by_student.hasOwnProperty(name)) {\n studentList.push(self.loadNewStudent(name, self.data_by_student[name]['id']));\n self.tutoring_sessions[name] = {};\n }\n }\n self.setState({\n students: studentList\n });\n // TODO turn into component\n if (!self.is_tutor) self.loadSessionCounts(results['credits_used'], results['credits_scheduled'], results['credits_left']);\n let searchParams = new URLSearchParams(window.location.search)\n let studentParam = searchParams.get('student');\n if (studentParam && studentParam in self.tutoring_sessions) {\n self.selectStudent(studentParam);\n } else {\n self.selectStudent(Object.keys(self.tutoring_sessions)[0]);\n }\n\n self.fetchSessions();\n body.querySelector('.overview').style.display = 'block';\n self.setSessionInterval();\n\n document.querySelector('#tutoring #messages').style.display = 'block';\n } else {\n body.querySelectorAll('.sign-up').forEach(e => e.style.display = 'block');\n }\n });\n\n let arrows = document.querySelectorAll('#tutoring .calendar-date .arrow');\n if (arrows) {\n for (let a in arrows) {\n if (arrows.hasOwnProperty(a)) {\n arrows[a].addEventListener('click', function() { //TODO remove listener\n if (this.classList.contains('left-arrow')) {\n self.setState({\n selected_date_moment: self.state.selected_date_moment.clone().subtract(7, 'days')\n }, self.fetchSessions);\n } else {\n self.setState({\n selected_date_moment: self.state.selected_date_moment.clone().add(7, 'days')\n }, self.fetchSessions);\n }\n });\n }\n }\n }\n\n let hw_btn = document.querySelector('#tutoring .hw-btn');\n if (hw_btn) {\n hw_btn.addEventListener('click', function() { //TODO remove listener\n self.showHomework(null);\n });\n }\n\n let scope = document.getElementById('calendar-scope');\n if (scope) {\n scope.addEventListener('change', function() { //TODO remove listener\n self.showSessions();\n });\n }\n\n let hw_form = document.querySelector('#tutoring #hw-form');\n if (hw_form) {\n hw_form.addEventListener('submit', function(e) { //TODO remove listener\n e.preventDefault();\n let formData = new FormData(this);\n formData.append('student_id', document.querySelector('#tutoring #hw-form input[name=child_id]').value);\n formData.append('api_file_upload', 1);\n fetch(API_URL + 'lms/tutoring-homework/', {\n headers: {\n 'Accept': 'application/json',\n },\n method: \"POST\",\n body: formData,\n mode: \"cors\",\n credentials: \"include\"\n }).then(function() {\n document.getElementById('homework').style.display = 'none';\n });\n });\n }\n\n let hw_upload = document.querySelector('#tutoring #hw-upload');\n let hw_label = document.querySelector(\"#tutoring label[for='hw-upload']\");\n if (hw_upload && hw_label) {\n hw_upload.addEventListener('change', function() { //TODO remove listener\n self.removeFileUploads();\n this.form.submit.disabled = false;\n this.form.submit.style.display = \"block\";\n this.form.querySelector('.hw-notes-entry').style.display = \"block\";\n\n for (let i in hw_upload.files) {\n if (hw_upload.files.hasOwnProperty(i)) {\n let file = document.createElement(\"p\");\n file.innerHTML = hw_upload.files[i].name;\n file.className = \"file-upload\";\n hw_label.after(file);\n }\n }\n });\n }\n\n let hw_exit = document.querySelector('#tutoring #homework .exit');\n if (hw_exit) {\n hw_exit.addEventListener('click', function() { //TODO remove listener\n document.getElementById('homework').style.display = 'none';\n });\n }\n\n self.setMessageButtons();\n self.setAddFileButton();\n\n // The timer lags when user changes tab focus for a long time, so reload when they return\n if (/*@cc_on!@*/false) { // check for Internet Explorer\n document.onfocusin = self.fetchSessions;\n } else {\n window.onfocus = self.fetchSessions;\n }\n }\n\n selectStudent(name) {\n let self = this;\n\n self.setState({\n selected_student: name,\n student_id: self.data_by_student[name][\"id\"]\n }, () => {\n let child_id = document.querySelector('#tutoring #hw-form input[name=child_id]');\n if (child_id) {\n child_id.value = self.state.student_id;\n }\n if (window.history) {\n window.history.pushState({}, '', window.location.pathname + '?student=' + name)\n }\n\n self.showSubjects();\n self.showSessions();\n\n if (self.is_tutor) {\n self.getTutoringMessages();\n } else {\n let selectedTutor = 0;\n let tutors = self.data_by_student[self.state.selected_student][\"tutors\"];\n if (tutors.length) {\n selectedTutor = tutors[0].id;\n }\n self.setActiveTutor(selectedTutor);\n }\n });\n\n document.querySelector('#tutoring .reply-box').style.display = 'none';\n }\n\n showSubjects() {\n let self = this;\n\n let tests = document.querySelector('#tutoring .active-tests .tests');\n tests.innerHTML = \"\";\n let subjects = self.data_by_student[self.state.selected_student][\"subjects\"];\n let tutors = self.data_by_student[self.state.selected_student][\"tutors\"];\n if (Object.keys(subjects).length > 0) {\n for (let subject in subjects) {\n let photo = \"\";\n if (self.is_tutor && self.tutor_info.photo) {\n photo = self.tutor_info.photo;\n } else {\n for (let j in tutors) {\n if (subjects[subject][\"tutor\"] && tutors[j].id === subjects[subject][\"tutor\"]) {\n photo = tutors[j].photo;\n }\n }\n }\n photo = (photo !== \"\") ? photo : \"https://cdn.testingmom.com/img/seven/logo-2.png\";\n\n tests.innerHTML += '
    ' +\n '
    ' +\n '' +\n '
    ' +\n '
    ' +\n '

    Test

    ' +\n '

    ' + subjects[subject][\"name\"] + '

    ' +\n 'View Homework Assignments' +\n '
    ' +\n '
    ' +\n '

    Grade

    ' +\n '

    ' + self.data_by_student[self.state.selected_student][\"grade\"] + '

    ' +\n '
    ' +\n '
    ';\n }\n\n let links = tests.querySelectorAll('.subject-hw');\n for (let l in links) {\n if (links.hasOwnProperty(l)) {\n links[l].addEventListener('click', function () { //TODO remove listener\n self.showHomework(this.dataset.subject);\n });\n }\n }\n } else {\n tests.innerHTML = \"
    \" + self.state.selected_student + \" doesn't have any active tutoring yet!
    \";\n }\n }\n\n setActiveTutor(tutorId) {\n let self = this;\n self.setState({\n selected_tutor_id: tutorId\n }, () => {\n self.setMessagingInterval();\n // Display tutor's subject options\n let messageTutorInput = document.querySelector('#tutoring .reply-box.new .tutor_id');\n if (messageTutorInput) {\n messageTutorInput.value = parseInt(self.state.selected_tutor_id);\n }\n self.getTutoringMessages();\n });\n }\n\n loadSessionCounts(used, scheduled, remaining) {\n let countDivs = document.querySelectorAll('#tutoring .session-counts div');\n for (let i in countDivs) {\n if (countDivs.hasOwnProperty(i)) {\n if (countDivs[i].className === \"used\") {\n countDivs[i].querySelector('h2').innerHTML = used + 'hrs';\n } else if (countDivs[i].className === \"scheduled\") {\n countDivs[i].querySelector('h2').innerHTML = scheduled + 'hrs';\n } else if (countDivs[i].className === \"remaining\") {\n countDivs[i].querySelector('h2').innerHTML = remaining + 'hrs';\n }\n }\n }\n }\n\n resetHwUpload() {\n let self = this;\n\n let submit = document.querySelector('#tutoring .upload-submit');\n if (submit) {\n submit.style.display = \"none\";\n }\n let notes = document.querySelector('#tutoring #hw-form .hw-notes-entry');\n if (notes) {\n notes.style.display = \"none\";\n notes.value = \"\";\n }\n let hw_upload = document.querySelector('#tutoring #hw-upload');\n if (hw_upload) {\n hw_upload.value = \"\";\n }\n self.removeFileUploads();\n }\n\n removeFileUploads() {\n let fileUploads = document.querySelectorAll('#tutoring .file-upload');\n for (let i in fileUploads) {\n if (fileUploads.hasOwnProperty(i)) {\n fileUploads[i].remove();\n }\n }\n }\n\n sortFullSessions() {\n let self = this;\n for (let day in self.full_tutoring_sessions) {\n self.full_tutoring_sessions[day].sort(self.compareSessions);\n }\n }\n\n compareSessions(a, b) {\n if (a.start_time < b.start_time) return -1;\n if (a.start_time > b.start_time) return 1;\n return 0;\n }\n\n showHomework(subject) {\n let self = this;\n\n let h = document.getElementById('homework');\n let links = document.querySelector('#tutoring #homework .hw-links');\n links.innerHTML = \"\";\n\n let subject_id = document.querySelector('#tutoring #hw-form input[name=subject_id]');\n if (subject_id && subject) {\n subject_id.value = subject;\n }\n\n let queryHtml = \"?student_id=\" + self.data_by_student[self.state.selected_student][\"id\"];\n if (subject) {\n queryHtml += \"&subject_id=\" + subject;\n }\n\n ApiFetch('lms/student-homework' + queryHtml, 'GET').then(function(results) {\n h.querySelectorAll('.tm-loading').forEach(e => e.style.display = 'none');\n if (results && results.length > 0) {\n let currentSubject = -1;\n let currentHw = -1;\n let html = \"\"\n\n for (let i in results) {\n let file = results[i];\n let subject = file['homework']['subject']\n if (currentSubject !== subject) {\n if (subject !== -1) html += \"
    \";\n currentSubject = subject;\n currentHw = -1;\n html += \"
    \" + self.data_by_student[self.state.selected_student][\"subjects\"][subject][\"name\"] + \"
    \";\n }\n\n let newHw = file['homework']['id'] !== currentHw\n if (newHw) {\n if (currentHw !== -1) html += \"
    \";\n currentHw = file['homework']['id'];\n let date = moment(file['homework']['date']).format('MMM Do YYYY');\n html += \"
    \" + date + \":
    \";\n if (file['homework']['notes'] && file['homework']['notes'] !== \"\") {\n html += \"
    \" + file['homework']['notes'] + \"
    \";\n }\n html += \"
    \";\n }\n html += \"\"\n + file['file_name'] + \"\";\n }\n html += \"
    \";\n links.innerHTML = html;\n h.querySelectorAll('.no-hw').forEach(e => e.style.display = 'none');\n } else {\n h.querySelectorAll('.no-hw').forEach(e => e.style.display = 'block');\n }\n });\n\n self.resetHwUpload();\n h.style.display = 'block';\n h.querySelectorAll('.tm-loading').forEach(e => e.style.display = 'block');\n h.addEventListener('click', function (e) { //TODO remove listener\n if (e.target.id === 'homework') {\n h.style.display = 'none';\n }\n });\n }\n\n fetchSessions() {\n let self = this;\n\n self.showSessions();\n let date_to_retrieve = self.state.selected_date_moment.format(\"YYYY-MM-DD\");\n let start_moment = self.state.selected_date_moment.clone().subtract(7, 'days');\n let end_moment = self.state.selected_date_moment.clone().add(14, 'days');\n if (!self.dates_retrieved.includes(date_to_retrieve)) {\n document.querySelector('#session-list .tiny-tm-loading').style.display = 'block';\n }\n ApiFetch('lms/user-sessions?start_time=' + start_moment.format('YYYY-MM-DD HH:mm:ss')\n + \"&end_time=\" + end_moment.format('YYYY-MM-DD HH:mm:ss')).then(function (results) {\n if (!self._isMounted) return;\n self.dates_retrieved.push(date_to_retrieve);\n if (results && results.length > 0) {\n for (let i in results) {\n let name = results[i].student.name;\n let day = moment(results[i].start_time).format(\"YYYY-MM-DD\");\n if (!(day in self.full_tutoring_sessions)) self.full_tutoring_sessions[day] = [];\n if (!(name in self.tutoring_sessions)) self.tutoring_sessions[name] = {};\n if (!(day in self.tutoring_sessions[name])) self.tutoring_sessions[name][day] = [];\n\n let alreadyExists = false\n for (let j in self.tutoring_sessions[name][day]) {\n if (self.tutoring_sessions[name][day][j].id === results[i].id) {\n alreadyExists = true;\n break;\n }\n }\n if (!alreadyExists) {\n self.full_tutoring_sessions[day].push(results[i]);\n self.tutoring_sessions[name][day].push(results[i]);\n }\n }\n self.sortFullSessions();\n }\n document.querySelector('#session-list .tiny-tm-loading').style.display = 'none';\n self.showSessions();\n });\n }\n\n\n showSessions() {\n let self = this;\n\n let name = self.state.selected_student;\n let m = self.state.selected_date_moment.clone();\n let sessions;\n let scope = document.getElementById('calendar-scope');\n if (scope && scope.value === \"all\") {\n sessions = self.full_tutoring_sessions;\n } else {\n sessions = self.tutoring_sessions[name];\n }\n if (!sessions) return; // Avoid attempting to show data before data is fetched\n\n let session_list = [];\n for (let i = 0; i < 7; i++) {\n let date = m.format(\"YYYY-MM-DD\");\n if (!(date in sessions)) {\n session_list.push({\n 'empty': true,\n 'selected_moment': m.clone(),\n 'key': 'empty_' + i\n });\n } else {\n for (let j in sessions[date]) {\n let ses = sessions[date][j];\n let ses_start = new Date(ses.start_time);\n let displayName = self.is_tutor ? ses.student.name : ses.tutor.name;\n\n session_list.push({\n 'empty': false,\n 'first': j === \"0\",\n 'selected_moment': m.clone(),\n 'info': ses,\n 'start': ses_start,\n 'display_name': displayName,\n 'key': 'session_' + ses.id\n });\n }\n }\n if (i < 6) m.add(1, \"days\");\n }\n self._isMounted && self.setState({\n sessions: session_list\n });\n }\n\n setTutoringMessages(messages) {\n let self = this;\n\n let first_id = 0;\n let used_ids = [];\n document.querySelectorAll('#messages > .tm-loading').forEach(e => e.style.display = 'none');\n if (messages.length === 0) {\n document.querySelector('.no-messages').style.display = 'block';\n return;\n }\n document.querySelector('.no-messages').style.display = 'none';\n if (messages.length > 2) {\n let oldElement = document.querySelector('#messages .view-more');\n oldElement.style.display = 'block';\n let viewMore = oldElement.cloneNode(true); // Remove old event listeners\n oldElement.parentNode.replaceChild(viewMore, oldElement);\n viewMore.addEventListener('click', function(event) { //TODO remove listener\n document.querySelectorAll('#messages .message-container').forEach(e => e.style.display = 'block');\n viewMore.style.display = 'none';\n for (let m in messages) {\n if (messages.hasOwnProperty(m)) {\n if (m >= 2) {\n self.setMessageRead(messages[m].id, false);\n }\n }\n }\n event.preventDefault();\n });\n } else {\n document.querySelector('#messages .view-more').style.display = 'none';\n }\n for (let m in messages) {\n if (messages.hasOwnProperty(m)) {\n let s = messages[m].message;\n if (used_ids.includes(s.id)) {\n continue;\n }\n used_ids.push(s.id);\n if (!first_id) {\n first_id = s.id;\n s.active = true;\n }\n let data = s;\n if (s.from_user && parseInt(self.props.user.id) === s.from_user.id) {\n data.is_users = true;\n data.name = 'You';\n } else {\n data.name = s.from_user.first_name;\n }\n if (s.replies) {\n for (let r in s.replies) {\n if (s.replies.hasOwnProperty(r)) {\n let reply = s.replies[r];\n data.last_reply = reply.id\n if (reply.from_user && parseInt(self.props.user.id) === reply.from_user.id) {\n reply.is_users = true;\n reply.name = 'You'\n } else {\n reply.is_users = false;\n reply.name = reply.from_user.first_name\n }\n if (!reply.sent_at) {\n reply.sent_at = reply.created_at;\n }\n if (reply.attachments) {\n for (let a in reply.attachments) {\n if (reply.attachments.hasOwnProperty(a)) {\n reply.attachments[a].attachment =\n reply.attachments[a].attachment.replace('tutoring/attachments/', '');\n }\n }\n }\n }\n }\n }\n if (!data.sent_at) {\n data.sent_at = data.created_at;\n }\n if (data.attachments) {\n for (let a in data.attachments) {\n if (data.attachments.hasOwnProperty(a)) {\n data.attachments[a].attachment =\n data.attachments[a].attachment.replace('tutoring/attachments/', '');\n }\n }\n }\n data.message_id = s.id;\n data.replies = s.replies;\n data.recipient_id = messages[m].id;\n data.reply_length = s.replies.length;\n if (!self.messages_loaded) {\n self.addNewMessage(data);\n } else if (document.getElementById('message-' + s.id)) {\n self.updateMessage(data);\n } else {\n self.addNewMessage(data, true);\n }\n if (parseInt(m) < 2 && !messages[m].read) {\n self.setMessageRead(messages[m].id, false);\n }\n }\n }\n self.messages_loaded = true;\n self.setDates();\n self.setMessageButtons();\n self.setAddFileButton();\n }\n\n addNewMessage(data, top) {\n let self = this;\n let display_messages;\n if (top) {\n display_messages = [data, ...self.state.messages];\n } else {\n display_messages = [...self.state.messages, data];\n }\n self.setState({\n messages: display_messages\n });\n }\n\n updateMessage(data) {\n let self = this;\n\n let updated_messages = [...self.state.messages];\n for (let m in updated_messages) {\n if (m.message_id === data.message_id) {\n m.replies = data.replies;\n }\n }\n self.setState({\n messages: updated_messages\n });\n }\n\n saveMessage(el, is_new) {\n let self = this;\n super.saveMessage(el, self.afterReplySaved, self.getTutoringMessages);\n\n if (is_new) {\n document.querySelector('#tutoring .reply-box.new').style.display = 'none';\n document.querySelector('#tutoring .reply-box.new textarea').value = '';\n document.querySelector('#tutoring .reply-box.new input[name=subject]').value = '';\n }\n }\n\n afterReplySaved(el, data, id) {\n let self = this;\n el.parentElement.style.display = 'none';\n\n let bubble_data = {\n 'id': id,\n 'read': true,\n 'is_users': true,\n 'sent_at': new Date().toISOString(),\n 'name': 'You',\n 'subject': data.subject,\n 'message': data.message,\n 'attachments': []\n }\n\n let updated_messages = [...self.state.messages]\n for (let i in updated_messages) {\n if (updated_messages[i].id === parseInt(data.reply_id)) {\n updated_messages[i].replies.push(bubble_data);\n updated_messages[i].reply_length = updated_messages[i].replies.length;\n }\n }\n self.setState({\n messages: updated_messages\n }, () => {\n document.querySelectorAll('#message-' + data.reply_id + ' .message')\n .forEach(e => e.style.display = 'block');\n self.setDates();\n });\n }\n\n setMessageRead(message_id, children) {\n let self = this;\n let data, url, method;\n if (children) {\n data = {'message_id': message_id};\n url = 'lms/bulk-message/';\n method = 'POST';\n } else {\n data = {'read': 1}\n url = 'lms/message/' + message_id + '/';\n method = 'PATCH';\n }\n ApiFetch(url, method, data).then(function (response) {\n //TODO\n // self.fetchMessages();\n });\n }\n\n getTutoringMessages(hide_loading) {\n let self = this;\n\n if (!hide_loading) {\n self.setState({\n messages: []\n });\n document.querySelectorAll('#messages > .tm-loading').forEach(e => e.style.display = 'block');\n document.querySelectorAll('#messages .no-messages').forEach(e => e.style.display = 'none');\n document.querySelectorAll('#messages .view-more').forEach(e => e.style.display = 'none');\n }\n\n ApiFetch('lms/message/?limit=1000&archive=false&tutor=' + self.state.selected_tutor_id + '&student=' + self.state.student_id, 'GET').then(function (response) {\n if (response && response.results) {\n let messages = document.getElementById('messages');\n if (messages) {\n self.setTutoringMessages(response.results);\n }\n self.setMessagingInterval();\n }\n });\n }\n\n setMessagingInterval() {\n let self = this;\n\n if (self.get_messages_interval) {\n clearInterval(self.get_messages_interval);\n }\n\n self.get_messages_interval = setInterval(function() {\n self._isMounted && self.getTutoringMessages(true);\n }, self.get_messages_seconds * 1000);\n }\n\n setSessionInterval() {\n let self = this;\n\n if (self.timer_interval) {\n clearInterval(self.timer_interval);\n }\n\n self.timer_interval = setInterval(function () {\n self._isMounted && self.setState({\n time: moment()\n });\n }, 1000);\n }\n\n componentWillUnmount() {\n let self = this;\n self._isMounted = false;\n\n if (self.timer_interval) {\n clearInterval(self.timer_interval);\n }\n if (self.get_messages_interval) {\n clearInterval(self.get_messages_interval);\n }\n\n // The timer lags when user changes tab focus for a long time, so reload when they return\n if (/*@cc_on!@*/false) { // check for Internet Explorer\n document.removeEventListener('focusin', self.fetchSessions);\n } else {\n window.removeEventListener('focus', self.fetchSessions);\n }\n }\n\n render() {\n let self = this;\n\n let tutors = [];\n if (self.state.selected_student in self.data_by_student && \"tutors\" in self.data_by_student[self.state.selected_student]) {\n tutors = self.data_by_student[self.state.selected_student][\"tutors\"];\n }\n\n return (\n
    \n
    \n
    \n
    \n
    \n

    Tutoring Overview

    \n \n {!self.props.user.tutor &&\n
    \n

    Total Tutoring Session Hours

    \n
    \n
    \n

    \n

    Used

    \n
    \n
    \n

    \n

    Scheduled

    \n
    \n
    \n

    \n

    Remaining

    \n
    \n
    \n

    1 hour equals Two (2) 30-minute sessions.

    \n
    \n Purchase\n More Sessions\n Schedule My Sessions\n
    \n
    \n }\n {self.props.user.tutor &&\n
    \n
    \n View My Schedule\n View My Invoice\n
    \n
    \n }\n
    \n

    Messages

    \n \n
    \n
    \n {self.state.messages.map(function(message) {\n return(\n \n )\n })\n }\n
    \n
    \n

    You don't have any messages.

    \n
    \n

    \n View More Messages\n Add a Message\n \n

    \n
    \n

    New Message

    \n \n \n \n \n

    Attachments:

    \n \n Add another file\n
    \n \n
    \n
    \n
    \n

    Active Tests & Classes

    \n
    \n
    \n {!self.props.user.tutor &&\n
    View All Homework
    \n }\n
    \n
    \n
    \n

    Sessions on Calendar

    \n
    \n
    \n
    \n

    {\"Week of \" + self.state.selected_date_moment.format(\"MMM DD\") + \" - \" + self.state.selected_date_moment.format(\"MMM DD, YYYY\")}

    \n {self.props.user.tutor &&\n \n }\n
    \n
    \n
      \n {self.state.sessions.map(function(session) {\n return(\n \n )\n })\n }\n
    \n
    \n
    \n
    \n {!self.props.user.tutor &&\n
    \n

    You don't have any students signed up for online tutoring!

    \n Sign up for\n one-to-one tutoring\n
    \n }\n {self.props.user.tutor &&\n
    \n

    You don't have any students assigned to you yet!

    \n

    Please contact online.tutoring@testingmom.com if you have any questions.

    \n
    \n }\n
    \n
    \n
    x
    \n

    Homework

    \n
    \n
    \n {self.props.user.tutor &&\n
    \n \n
    You haven't assigned any homework yet!
    \n \n \n \n \n \n \n \n
    \n }\n {!self.props.user.tutor &&\n
    You haven't been assigned any homework yet!
    \n }\n
    \n
    \n
    \n
    \n
    x
    \n

    Congrats! You've scheduled your child's first tutoring session!

    \n
    \n Schedule More Sessions\n
    \n
    \n
    \n
    \n )\n }\n}\n\nexport default TutoringOverview;\n","import React, {Component} from 'react';\nimport AddSession from \"./AddSession\";\nimport {ApiFetch} from \"../common/ApiFetch\";\nimport {confirmAlert} from \"react-confirm-alert\";\nimport Flatpickr from \"react-flatpickr\";\nimport {formatDate, formatHour} from \"./Utils\";\nimport FullCalendar from \"@fullcalendar/react\";\nimport GLightbox from 'glightbox';\nimport timeGridPlugin from \"@fullcalendar/timegrid\";\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\nimport interactionPlugin from \"@fullcalendar/interaction\";\nimport {API_URL} from \"../common/Urls\";\n\nconst WEBSITE_URL = require('../common/Urls').WEBSITE_URL;\nconst lightbox = GLightbox({\n width: '100%',\n height: '100%',\n preload: true,\n draggable: false,\n keyboardNavigation: false,\n touchNavigation: false,\n onOpen: function() {\n let gslider = document.getElementById('glightbox-slider');\n if (gslider) {\n gslider.addEventListener('click', function(){\n lightbox.close();\n });\n }\n }\n});\n\nclass TutorSelection extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n fetched_tutors: [],\n get_all_tutors: false,\n grades: [],\n selected_date: \"\",\n subjects: [],\n time1: \"12:00\",\n time2: \"12:00\",\n time3: \"12:00\",\n time4: \"12:00\",\n tutor_id: 0\n }\n\n this.calendarComponentRef = React.createRef();\n this.days = ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'];\n this.url_params = window.location.search ? new URLSearchParams(window.location.search) : null;\n this.student_id = null;\n this.is_mini = false;\n if (this.url_params) {\n this.student_id = this.url_params.get('id');\n this.is_mini = this.url_params.get('mini') ? parseInt(this.url_params.get('mini')) > 0 : false;\n }\n\n this.overviewRedirect = this.overviewRedirect.bind(this);\n this.fetchTutors = this.fetchTutors.bind(this);\n this.calculatePreferredDateTime = this.calculatePreferredDateTime.bind(this);\n this.addSession = this.addSession.bind(this);\n }\n\n componentDidMount() {\n let self = this;\n\n ApiFetch('grade?limit=20&min_grade=-1', 'GET').then(function(response) {\n if (response && response.results) {\n self.setState({\n grades: response.results\n });\n }\n });\n ApiFetch('lms/tutoring-subjects?limit=200&ordering=name', 'GET').then(function(response) {\n let subjects = [];\n if (response && response.results) {\n for (let sub of response.results) {\n if (sub['miniassessment'] || sub['display_members']) {\n subjects.push(sub);\n }\n }\n }\n self.setState({\n subjects: subjects\n });\n });\n\n if (self.is_mini) {\n document.querySelectorAll('.tutor-select option.members').forEach(e => e.style.display = 'none');\n document.querySelectorAll('.tutor-select option.mini').forEach(e => e.style.display = 'block');\n } else {\n document.querySelectorAll('.tutor-select option.mini').forEach(e => e.style.display = 'none');\n document.querySelectorAll('.tutor-select option.members').forEach(e => e.style.display = 'block');\n }\n\n document.querySelectorAll('.to-step2').forEach(el => el.addEventListener('click', function() {\n document.querySelectorAll('.step2 .continue-btn').forEach(e => e.classList.add('disabled'));\n document.getElementById('tutor-list').innerHTML = '';\n document.querySelector('.show-more').style.display = 'block';\n self.setState({\n fetched_tutors: [],\n get_all_tutors: false\n }, () => {\n if (self.fetchTutors()) {\n document.querySelector('#tutoring .step1').style.display = 'none';\n document.querySelector('#tutoring .step2').style.display = 'flex';\n document.querySelectorAll('#tutoring .step2 .loaded').forEach(e => e.style.display = 'none');\n document.querySelectorAll('#tutoring .step2 .loaded .tm-loading').forEach(e => e.style.display = 'none');\n document.querySelectorAll('#tutoring .step2 .loading .tm-loading').forEach(e => e.style.display = 'block');\n document.querySelectorAll('#tutoring .step2 .loading').forEach(e => e.style.display = 'block');\n document.querySelector('#tutoring #back-to-step1').classList.remove('current');\n document.querySelector('#tutoring #back-to-step1').classList.add('past-step');\n document.querySelector('#tutoring #back-to-step2').classList.add('current');\n window.scrollTo({top: 0, behavior: \"smooth\"});\n }\n });\n }));\n\n document.querySelector('.show-more').addEventListener('click', function(e) {\n e.preventDefault();\n if (self.fetchTutors()) {\n document.querySelectorAll('#tutoring .step2 .loaded .tm-loading').forEach(e => e.style.display = 'block');\n }\n });\n\n document.getElementById('tutor-list').addEventListener('click', function(event) {\n let profile = event.target.closest('.tutor-profile');\n if (profile) {\n document.querySelectorAll('#tutor-list .tutor-profile').forEach(e => e.classList.remove('selected'));\n profile.classList.add('selected');\n document.querySelectorAll('.to-step3').forEach(e => e.classList.remove('disabled'));\n }\n });\n\n document.querySelectorAll('.to-step3').forEach(el => el.addEventListener('click', function() {\n if (el.classList.contains('disabled')) {\n return false;\n }\n\n document.querySelector('#tutoring .step2').style.display = 'none';\n document.querySelector('#tutoring .step3').style.display = 'flex';\n document.querySelector('#tutoring #back-to-step2').classList.remove('current');\n document.querySelector('#tutoring #back-to-step2').classList.add('past-step');\n document.querySelector('#tutoring #back-to-step3').classList.add('current');\n window.scrollTo({top: 0, behavior: \"smooth\"});\n\n let selected = document.querySelector('#tutor-list .tutor-profile.selected');\n self.setState({\n tutor_id: selected.dataset.id\n });\n }));\n\n document.getElementById('back-to-step1').addEventListener('click', function() {\n if (this.classList.contains('past-step')) {\n document.querySelector('#tutoring .step1').style.display = 'flex';\n document.querySelector('#tutoring .step2').style.display = 'none';\n document.querySelector('#tutoring .step3').style.display = 'none';\n\n document.querySelectorAll('#tutoring .steps-visual > div').forEach(e => e.classList.remove('current'));\n document.querySelector('#tutoring #back-to-step1').classList.add('current');\n }\n });\n\n document.getElementById('back-to-step2').addEventListener('click', function() {\n if (this.classList.contains('past-step')) {\n document.querySelector('#tutoring .step2').style.display = 'flex';\n document.querySelector('#tutoring .step1').style.display = 'none';\n document.querySelector('#tutoring .step3').style.display = 'none';\n\n document.querySelectorAll('#tutoring .steps-visual > div').forEach(e => e.classList.remove('current'));\n document.querySelector('#tutoring #back-to-step2').classList.add('current');\n }\n });\n\n if (self.student_id) {\n document.querySelector('#tutoring input[name=student_id]').value = self.student_id;\n ApiFetch('lms/student-info/?student_id=' + self.student_id, 'GET').then(function(results) {\n let body = document.getElementById('tutoring');\n body.querySelector('input[name=name]').value = results.name;\n body.querySelector('select[name=grade]').value = results.grade;\n if (results.subjects.length) {\n body.querySelector('select[name=subject1]').value = results.subjects[0];\n if (results.subjects.length > 1) {\n body.querySelector('select[name=subject2]').value = results.subjects[1];\n }\n }\n body.querySelectorAll('.tm-loading').forEach(e => e.style.display = 'none');\n body.querySelector('.tutor-select').style.display = 'block';\n body.querySelector('input[name=get_ahead]').value = (results.family.get_ahead) ? 1 : 0;\n });\n } else {\n document.querySelectorAll('#tutoring .tm-loading').forEach(e => e.style.display = 'none');\n document.querySelector('#tutoring .tutor-select').style.display = 'block';\n }\n\n if (self.is_mini) {\n document.querySelector('#tutoring .regular-session').style.display = 'none';\n document.querySelector('#tutoring #back-to-step2 .step-title').innerHTML = 'Get Matched with a Tutor';\n document.querySelector('#add-edit-session .session-length').style.display = 'none';\n document.querySelectorAll('#tutoring .mini-only').forEach(e => e.style.display = 'block');\n }\n\n let shortTz = new Date().toLocaleString('en-us', {timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone, timeZoneName: \"shortGeneric\"}).split(\" \")[3];\n if (shortTz) {\n document.querySelectorAll('#tutoring .schedule-preference .time-container p > span').forEach(e => e.innerHTML = shortTz);\n }\n }\n\n overviewRedirect() {\n let self = this;\n if (self.is_mini) {\n window.location.href = '/tutoring/?scheduled=1&mini=1';\n } else {\n window.location.href = '/tutoring/?scheduled=1';\n }\n }\n\n fetchTutors() {\n let self = this;\n if (!document.querySelector('input[name=name]').value) {\n confirmAlert({\n message: \"Please enter your child's name.\",\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n return false;\n }\n if (document.querySelector('select[name=grade]').value === \"0\") {\n confirmAlert({\n message: \"Please select a grade.\",\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n return false;\n }\n if (document.querySelector('select[name=subject1]').value === \"0\") {\n confirmAlert({\n message: \"Please select a primary subject.\",\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n return false;\n }\n\n if (document.querySelector('select[name=day1]').value === \"0\" || document.querySelector('select[name=day2]').value === \"0\"\n || document.querySelector('select[name=day3]').value === \"0\" || document.querySelector('select[name=day4]').value === \"0\") {\n confirmAlert({\n message: \"Please select four distinct preferred times.\",\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n return false;\n }\n if (!self.state.time1 || !self.state.time2 || !self.state.time3 || !self.state.time4) {\n confirmAlert({\n message: \"Please select four distinct preferred times.\",\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n return false;\n }\n\n let soonestAllowed = new Date();\n soonestAllowed.setDate(soonestAllowed.getDate() + 2);\n\n let datetime1 = self.calculatePreferredDateTime(soonestAllowed, document.querySelector('select[name=day1]').value - 1, self.state.time1);\n let datetime2 = self.calculatePreferredDateTime(soonestAllowed, document.querySelector('select[name=day2]').value - 1, self.state.time2);\n let datetime3 = self.calculatePreferredDateTime(soonestAllowed, document.querySelector('select[name=day3]').value - 1, self.state.time3);\n let datetime4 = self.calculatePreferredDateTime(soonestAllowed, document.querySelector('select[name=day4]').value - 1, self.state.time4);\n\n if (datetime1.getTime() === datetime2.getTime() || datetime1.getTime() === datetime3.getTime() || datetime1.getTime() === datetime4.getTime()\n || datetime2.getTime() === datetime3.getTime() || datetime2.getTime() === datetime4.getTime() || datetime3.getTime() === datetime4.getTime()) {\n confirmAlert({\n message: \"Please select four distinct preferred times.\",\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n return false;\n }\n\n document.querySelector('#tutoring .no-tutors').style.display = 'none';\n\n let g = document.querySelector('#tutoring select[name=grade]').value;\n let s = document.querySelector('#tutoring select[name=subject1]').value;\n let sl = document.querySelector('#tutoring input[name=length]:checked').value;\n let dt1 = formatDate(datetime1, true) + ' ' + formatHour(datetime1, true);\n let dt2 = formatDate(datetime2, true) + ' ' + formatHour(datetime2, true);\n let dt3 = formatDate(datetime3, true) + ' ' + formatHour(datetime3, true);\n let dt4 = formatDate(datetime4, true) + ' ' + formatHour(datetime4, true);\n let ga = document.querySelector('#tutoring input[name=get_ahead]').value;\n\n fetch(API_URL + \"lms/available-tutors/?grade=\" + g + \"&subject=\" + s\n + \"&session_length=\" + sl + \"&datetime1=\" + dt1 + \"&datetime2=\" + dt2 + \"&datetime3=\" + dt3\n + \"&datetime4=\" + dt4 + \"&fetched_tutors=\" + JSON.stringify(self.state.fetched_tutors)\n + \"&get_all=\" + (self.state.get_all_tutors ? 1 : 0) + \"&is_mini=\" + (self.is_mini ? 1 : 0)\n + \"&get_ahead=\" + ga,\n { credentials: \"include\",}\n ).then(function(response) {\n return response.json();\n }).then(function(results) {\n document.querySelectorAll('#tutoring .step2 .loading').forEach(e => e.style.display = 'none');\n document.querySelectorAll('#tutoring .step2 .loaded .tm-loading').forEach(e => e.style.display = 'none');\n document.querySelectorAll('#tutoring .step2 .loaded').forEach(e => e.style.display = 'flex');\n\n let get_all = self.state.get_all_tutors || !!results['get_all'];\n self.setState({\n get_all_tutors: get_all\n });\n if (results['tutors'] && results['tutors'].length) {\n for (let i in results['tutors']) {\n let tutor = results['tutors'][i];\n let name = tutor.name.trim();\n let slug = name.replaceAll(' ', '-').toLowerCase();\n let available_time;\n if (tutor.time !== '') {\n available_time = new Date(tutor.time);\n }\n\n if (self.is_mini && !get_all) {\n // If a mini assessment, select tutor immediately if possible and move on\n document.querySelector('#tutoring .step2').style.display = 'none';\n document.querySelector('#tutoring .step3').style.display = 'flex';\n document.querySelector('#tutoring #back-to-step2').classList.remove('current');\n document.querySelector('#tutoring #back-to-step3').classList.add('current');\n window.scrollTo({top: 0, behavior: \"smooth\"});\n\n self.setState({\n tutor_id: tutor.id\n });\n return;\n }\n\n let html = '
  • ' +\n '
    ' +\n '
    ' +\n '

    ' + name +'

    ';\n if (available_time) {\n html += '

    Available at:

    ' +\n '

    ' + available_time.toLocaleString('en-us', { weekday: \"short\", month: \"short\", day: \"numeric\", hour: \"numeric\", minute: \"numeric\" }) + '

    ' +\n '
    ';\n }\n html += 'More details about ' + name + '' +\n '
    ' +\n '
  • ';\n document.getElementById('tutor-list').insertAdjacentHTML(\"beforeend\", html);\n self.setState({\n fetched_tutors: [...self.state.fetched_tutors, tutor.id]\n });\n }\n lightbox.reload();\n }\n if (results['empty'] || (results['tutors'] && results['tutors'].length < 3)) {\n document.querySelector('.show-more').style.display = 'none';\n if (self.state.fetched_tutors.length === 0) {\n document.querySelector('#tutoring .no-tutors').style.display = 'block';\n document.querySelector('#tutoring .loaded').style.display = 'none';\n }\n }\n });\n\n return true;\n }\n\n calculatePreferredDateTime(soonestAllowed, chosenWeekday, time) {\n let splitTime = time.split(\":\");\n let date = new Date(soonestAllowed.getTime());\n date.setDate(soonestAllowed.getDate() + (chosenWeekday + 7 - soonestAllowed.getDay()) % 7);\n date.setHours(splitTime[0], splitTime[1], 0);\n\n if (date.getTime() < soonestAllowed.getTime()) {\n date.setDate(date.getDate() + 7);\n }\n\n return date;\n }\n\n addSession(a) {\n let self = this;\n let now = new Date();\n if (a.date.getTime() - now.getTime() < 48 * 60 * 60 * 1000) {\n confirmAlert({\n message: 'You cannot add or modify sessions within 48 hours. Please contact support at online.tutoring@testingmom.com.',\n buttons: [\n {\n label: 'Ok'\n }\n ]\n });\n return;\n }\n let minutes = a.date.getMinutes();\n if (minutes < 10) {\n minutes = '0' + minutes;\n }\n let startHour = a.date.getHours();\n if (startHour < 10) {\n startHour = '0' + startHour;\n }\n self.setState({\n selected_date: startHour + ':' + minutes\n });\n\n let s = document.getElementById('add-edit-session');\n s.querySelector('h4').innerHTML = 'Schedule Tutoring Session for ' + a.date.toLocaleDateString('en-us', { weekday: 'short' }) + '. ' + (a.date.getMonth() + 1) + '/' + a.date.getDate();\n s.querySelector('input[name=session_id]').value = '';\n\n s.querySelector('#schedule-session').innerHTML = 'SCHEDULE';\n document.querySelector('.cancellation-policy').style.display = 'none';\n document.getElementById('delete-session').style.display = 'none';\n document.getElementById('schedule-session').style.display = 'block';\n\n s.querySelector('#start').value = startHour + ':' + minutes;\n s.querySelector('input[name=date]').value = formatDate(a.date);\n s.querySelector('input[name=tutor_id]').value = self.state.tutor_id;\n s.querySelector('input[name=status]').value = 'scheduled';\n s.querySelectorAll('.subject-container').forEach(e => e.style.display = 'none');\n\n if (document.getElementById('half-hour-length').checked) {\n s.querySelector('#half-hour-session').checked = true;\n } else {\n s.querySelector('#hour-session').checked = true;\n }\n\n s.style.display = 'block';\n }\n\n render() {\n let self = this;\n\n let calendarStart = new Date();\n calendarStart.setDate(calendarStart.getDate() + 2);\n\n return(\n
    \n
    \n
    \n

    Schedule My Mini-Assessment

    \n
    \n
    \n

    STEP 1

    \n

    Student and Schedule Info

    \n
    \n
    \n

    STEP 2

    \n

    Select Tutor

    \n
    \n
    \n

    STEP 3

    \n

    Select Time and Date

    \n
    \n
    \n
    \n
    \n

    Student Profile and Schedule Preference

    \n

    Important note: If you need your first tutoring session within the next\n 48 hours, please email\n online.tutoring@testingmom.com and\n do not\n fill out this form.

    \n
    \n \n
    \n
    \n

    Student Profile

    \n \n \n \n \n \n \n

    (if summer, grade in fall)

    \n \n \n \n \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n

    Schedule Preference

    \n \n
    \n \n
    \n {this.setState({ time1: date.getHours() + ':' + date.getMinutes() })}}\n />\n

    (all times in UTC)

    \n
    \n
    \n \n
    \n \n
    \n {this.setState({ time2: date.getHours() + ':' + date.getMinutes() })}}\n />\n

    (all times in UTC)

    \n
    \n
    \n \n
    \n \n
    \n {this.setState({ time3: date.getHours() + ':' + date.getMinutes() })}}\n />\n

    (all times in UTC)

    \n
    \n
    \n \n
    \n \n
    \n {this.setState({ time4: date.getHours() + ':' + date.getMinutes() })}}\n />\n

    (all times in UTC)

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    Matching you with a tutor...

    \n
    \n
    \n
    \n

    Select a tutor

    \n

    Click a tutor to select them.

    \n
    \n \n
      \n
      \n Show More Available Tutors\n \n
      \n

      We don't have any tutors for your primary subject and grade. Please\n update your subject and grade selection\n or contact online.tutoring@testingmom.com for\n additional help.

      \n
      \n
      \n

      Select Time and Date

      \n

      Click a white block on the calendar to schedule your session. Sessions must be scheduled at\n least 48 hours in advance.

      \n

      If you need your first tutoring session within the next 48 hours, please email\n online.tutoring@testingmom.com and do\n not\n fill out this form.

      \n
      \n {self.state.tutor_id > 0 &&\n \n }\n
      \n
      \n
      \n true}\n afterSessionChange={self.overviewRedirect}\n firstSession={true}\n isMini={self.is_mini}\n />\n \n
      \n )\n }\n}\n\nexport default TutorSelection;","import React, {Component} from 'react';\r\nimport {withRouter} from 'react-router-dom';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nconst WEBSITE_URL = require('./Urls').WEBSITE_URL;\r\n\r\nclass CustomerSupport extends Component {\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(CustomerSupport);\r\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport './PodsModal.css'\nconst ApiFetch = require('../common/ApiFetch').ApiFetch;\n\nexport default class PodsModal extends React.Component{\n constructor(props) {\n super(props);\n\n this.state = {\n show_pods_modal: false,\n show_tutoring: 1,\n banner: {}\n }\n this.close = this.close.bind(this);\n this.setPodsModalDimensions = this.setPodsModalDimensions.bind(this);\n }\n\n componentDidMount() {\n let self = this;\n ApiFetch('banner?status=1', 'GET').then(function (response) {\n if (response && response.hasOwnProperty('results')) {\n let show_pods_modal = self.getCookie('banner');\n if (!show_pods_modal || parseInt(show_pods_modal) === 5) {\n self.setCookie('banner', 1, 30);\n var banner = Math.floor(Math.random() * response.results.length);\n\n self.setState(\n {\n banner: response.results[banner]\n },\n self.setPodsModalDimensions\n );\n let pm = document.getElementById('pods-modal');\n window.addEventListener('resize', self.setPodsModalDimensions);\n pm.querySelector('a').addEventListener('click', function() {\n window.dataLayer.push({\n 'dashboard_banner_click': response.results[banner].name,\n 'link': response.results[banner].link\n });\n });\n pm.style.display = 'block';\n } else {\n self.setCookie('banner', parseInt(show_pods_modal) + 1, 30);\n }\n }\n });\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.setPodsModalDimensions);\n }\n\n viewport()\n {\n var e = window\n , a = 'inner';\n if ( !( 'innerWidth' in window ) )\n {\n a = 'client';\n e = document.documentElement || document.body;\n }\n return { width : e[ a+'Width' ] , height : e[ a+'Height' ] }\n }\n\n setPodsModalDimensions() {\n let pm = document.getElementById('pods-modal');\n if (pm && this.state.banner) {\n let vw = this.viewport();\n let pmc = pm.querySelector('.pod-content');\n if (!pmc) {\n return;\n }\n let width;\n let height;\n let img_w;\n let img_h;\n let mob = pmc.querySelector('.mob')\n let desk = pmc.querySelector('.desk');\n if (!desk || !mob) {\n return;\n }\n if (vw.width > 600) {\n desk.style.display = 'block';\n mob.style.display = 'none';\n width = this.state.banner.width;\n height = this.state.banner.height;\n } else {\n desk.style.display = 'none';\n mob.style.display = 'block';\n width = this.state.banner.m_width;\n height = this.state.banner.m_height;\n }\n if (vw.width > width + 50 && vw.height > height + 50) {\n img_w = width;\n img_h = height;\n } else {\n // Get window ratio and compare to image ratio\n let img_ratio = width / height;\n let win_ratio = vw.width / vw.height;\n if (img_ratio > win_ratio) {\n img_w = vw.width - 50;\n img_h = img_w * (1 / img_ratio);\n } else {\n img_h = vw.height - 50;\n img_w = img_h * img_ratio;\n }\n }\n pmc.style.width = img_w + 'px';\n pmc.style.height = img_h + 'px';\n pmc.style.marginLeft = '-' + img_w / 2 + 'px';\n pmc.style.marginTop = '-' + img_h / 2 + 'px';\n }\n }\n\n getCookie(name) {\n let v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n return v ? v[2] : null;\n }\n\n setCookie(name, value, days) {\n let d = new Date();\n d.setTime(d.getTime() + 24*60*60*1000*days);\n document.cookie = name + \"=\" + value + \";path=/;domain=.testingmom.com;expires=\" + d.toGMTString();\n }\n\n close(e)\n {\n let pods_modal = document.getElementById('pods-modal');\n let close = pods_modal.querySelector('.close');\n if (!this.props.isDescendant(pods_modal, e.target) || this.props.isDescendant(close, e.target)) {\n pods_modal.style.display = 'none';\n this.setState({\n show_pods_modal: false\n });\n }\n }\n\n render()\n {\n return (\n
      \n
      \n
      \n {this.state.banner &&\n \n {\n \n }\n
      \n
      \n {this.state.banner &&\n \n {\n \n }\n
      \n
      \n
      \n
      \n )\n }\n}\n","import {Component} from 'react';\r\nimport {withRouter} from 'react-router-dom';\r\n\r\nclass ScrollToTop extends Component {\r\n componentDidUpdate(prevProps) {\r\n if ((\r\n this.props.location.pathname !== prevProps.location.pathname &&\r\n this.props.location.pathname.indexOf('dashboard') < 0\r\n ) || (\r\n this.props.location.pathname.substr(0, 12) !== prevProps.location.pathname.substr(0, 12) &&\r\n this.props.location.pathname.indexOf('dashboard') > 0\r\n )\r\n ) {\r\n let y = 0;\r\n let page = document.querySelector('.page.content');\r\n if (page) {\r\n y = page.offsetTop;\r\n }\r\n if (window.scrollY > y) {\r\n window.scrollTo(0, y)\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return this.props.children\r\n }\r\n}\r\n\r\nexport default withRouter(ScrollToTop)","import React, { Component } from 'react';\nimport {\n Redirect,\n Route,\n Switch,\n} from 'react-router-dom'\nimport { withRouter } from 'react-router'\nimport { library, config } from '@fortawesome/fontawesome-svg-core'\nimport { confirmAlert } from 'react-confirm-alert';\nimport 'react-confirm-alert/src/react-confirm-alert.css';\nimport Fuse from 'fuse.js';\nimport 'whatwg-fetch'\nimport './common/Polyfills';\nimport * as Sentry from '@sentry/browser';\n\nimport AvatarOverlay from \"./header/AvatarOverlay\";\nimport ChildNavigation from \"./common/ChildNavigation\";\nimport ChildSetup from './dashboards/ChildSetup';\nimport Enrichment from \"./parent-resources/Enrichment\";\nimport Games from './sba-games/Games';\nimport GamesIndex from './sba-games/GamesIndex';\nimport Header from './header/Header';\nimport Hero from './header/Hero';\nimport HowToPrep from \"./test-prep/HowToPrep\";\nimport Inbox from \"./tutoring/Inbox\";\nimport Link from \"./common/Link\";\nimport ParentDashboard from \"./dashboards/ParentDashboard\";\nimport ParentResources from \"./parent-resources/ParentResources\";\nimport SbaIndex from \"./sba-games/SbaIndex\";\nimport SbaProgram from \"./sba-games/SbaProgram\";\nimport SidebarLeft from './common/SidebarLeft';\nimport SidebarRight from \"./common/SidebarRight\";\nimport SiteTour from './common/SiteTour';\nimport StatesCommonCore from './test-directory/StatesCommonCore';\nimport TestDashboard from \"./dashboards/TestDashboard\";\nimport TestDirectory from \"./test-directory/TestDirectory\";\nimport TutoringCalendar from \"./tutoring/TutoringCalendar\";\nimport TutoringOverview from \"./tutoring/TutoringOverview\";\nimport TutorSelection from \"./tutoring/TutorSelection\";\nimport {version} from '../package.json';\n\n\n/* FontAwesome Icons must first be imported here and added to the library before using in Components */\nimport {\n faAppleAlt,\n faArrowLeft,\n faArrowRight,\n faArrowCircleLeft,\n faBars,\n faBook,\n faCamera,\n faCaretDown,\n faCaretUp,\n faChartLine,\n faChevronCircleLeft,\n faChevronCircleRight,\n faChevronDown,\n faClipboardListCheck,\n faClock,\n faCog,\n faDesktop,\n faEdit,\n faEnvelope,\n faExclamationTriangle,\n faExternalLinkAlt,\n faFileAlt,\n faFileCheck,\n faFileSearch,\n faFlowerDaffodil,\n faFolders,\n faFrown,\n faGameBoardAlt,\n faGamepad,\n faHeadSideBrain,\n faHome,\n faInfoCircle,\n faLeafMaple,\n faLongArrowLeft,\n faLongArrowRight,\n faPen,\n faPhone,\n faPhoneLaptop,\n faPlusCircle,\n faPollH,\n faPrint,\n faPuzzlePiece,\n faRedo,\n faStar as faStarSolid,\n faSearch,\n faSmile,\n faSnowflake,\n faStoreAlt,\n faSyncAlt,\n faTimes,\n faTimesCircle,\n faTrophyAlt,\n faUmbrellaBeach,\n faUserCircle,\n faUsersClass,\n faUserMdChat,\n faVideo,\n} from '@fortawesome/pro-solid-svg-icons';\nimport CustomerSupport from \"./common/CustomerSupport\";\nimport {\n faCheckCircle,\n faCheckSquare,\n faCircle,\n faClipboardListCheck as faClipCheckReg,\n faComputerClassic,\n faSquare,\n faStar,\n faTrashAlt,\n} from '@fortawesome/pro-regular-svg-icons';\nimport PodsModal from \"./dashboards/PodsModal\";\nimport ScrollToTop from \"./common/ScrollToTop\";\n\nlibrary.add(\n faAppleAlt,\n faArrowLeft,\n faArrowRight,\n faArrowCircleLeft,\n faBars,\n faBook,\n faCamera,\n faCaretDown,\n faCaretUp,\n faCheckCircle,\n faChartLine,\n faCheckSquare,\n faChevronCircleLeft,\n faChevronCircleRight,\n faChevronDown,\n faCircle,\n faClipboardListCheck,\n faClipCheckReg,\n faClock,\n faCog,\n faComputerClassic,\n faDesktop,\n faEdit,\n faEnvelope,\n faExclamationTriangle,\n faExternalLinkAlt,\n faFileAlt,\n faFileCheck,\n faFileSearch,\n faFlowerDaffodil,\n faFolders,\n faFrown,\n faGameBoardAlt,\n faGamepad,\n faHeadSideBrain,\n faHome,\n faInfoCircle,\n faLeafMaple,\n faLongArrowLeft,\n faLongArrowRight,\n faPen,\n faPhone,\n faPhoneLaptop,\n faPlusCircle,\n faPollH,\n faPrint,\n faPuzzlePiece,\n faRedo,\n faSearch,\n faSmile,\n faSnowflake,\n faSquare,\n faStar,\n faStarSolid,\n faStoreAlt,\n faSyncAlt,\n faTimes,\n faTimesCircle,\n faTrashAlt,\n faTrophyAlt,\n faUmbrellaBeach,\n faUserCircle,\n faUsersClass,\n faUserMdChat,\n faVideo,\n);\nconfig.searchPseudoElements = true;\n\nconst ApiFetch = require('./common/ApiFetch').ApiFetch;\nconst Four04 = require('./common/Four04').Four04;\nconst Loading = require('./common/Loading').Loading;\nconst moment = require('moment-timezone');\nconst WEBSITE_URL = require('./common/Urls').WEBSITE_URL;\nconst MEMBERS_URL = require('./common/Urls').MEMBERS_URL;\n\n\nclass App extends Component {\n constructor(props) {\n super(props);\n let isIE = /*@cc_on!@*/false || !!document.documentMode;\n if (isIE) {\n this.state = {\n isIE: true\n };\n return;\n }\n this.state = {\n avatar_overlay_showing: false,\n dt_config: {},\n games: [],\n grades: {},\n grades_by_id: {},\n onlineClasses: [],\n onlineClassCategories: [],\n online_tutoring_cta: '',\n regions: [],\n resources: [],\n searchLinks: [],\n siteTourVideoId: '380754676',\n showSiteTour: false,\n tests: [],\n tests_by_grade: {},\n tests_by_id: {},\n test_pages: {},\n test_pages_by_slug: {},\n tutoring_cta: '',\n user: {\n 'paid_access': false,\n 'active_child': 0,\n 'active_test': {},\n 'children': [],\n 'child_setup': false,\n 'email': '',\n 'first_name': '',\n 'grades': {},\n 'last_name': '',\n 'subjects': {},\n 'pk': 0,\n 'tests': {},\n 'tutoring_client': true\n },\n userClasses: {},\n };\n\n\n this.initialX = 0;\n this.initialY = 0;\n\n this.activeTestSet = false;\n this.checkAddStudent = this.checkAddStudent.bind(this);\n this.deleteChild = this.deleteChild.bind(this);\n this.deleteCookie = this.deleteCookie.bind(this);\n this.deleteDocument = this.deleteDocument.bind(this);\n this.hideAvatars = this.hideAvatars.bind(this);\n this.hideSearch = this.hideSearch.bind(this);\n this.hideSiteTour = this.hideSiteTour.bind(this);\n this.search = this.search.bind(this);\n this.setChildAssessmentsByTest = this.setChildAssessmentsByTest.bind(this);\n this.setPrintables = this.setPrintables.bind(this);\n this.setPrintablesByTestPage = this.setPrintablesByTestPage.bind(this);\n this.setResources = this.setResources.bind(this);\n this.showAvatars = this.showAvatars.bind(this);\n this.showSiteTour = this.showSiteTour.bind(this);\n this.shuffle = this.shuffle.bind(this);\n this.startSwipeSidebar = this.startSwipeSidebar.bind(this);\n this.swipeSidebar = this.swipeSidebar.bind(this);\n this.toggleSidebar = this.toggleSidebar.bind(this);\n this.updateChild = this.updateChild.bind(this);\n this.updateTest = this.updateTest.bind(this);\n this.updateUser = this.updateUser.bind(this);\n this.viewport = this.viewport.bind(this);\n\n let self = this;\n this.avatars = [\n 'ava_logo',\n 'ava_blue1',\n 'ava_blue2',\n 'ava_cartoon_1',\n 'ava_cartoon_10',\n 'ava_cartoon_11',\n 'ava_cartoon_2',\n 'ava_cartoon_3',\n 'ava_cartoon_4',\n 'ava_cartoon_5',\n 'ava_cartoon_6',\n 'ava_cartoon_7',\n 'ava_cartoon_8',\n 'ava_cartoon_9',\n 'ava_green1',\n 'ava_green2',\n 'ava_orange1',\n 'ava_orange2',\n 'ava_pink1',\n 'ava_pink2',\n 'ava_pink3',\n 'ava_purple1',\n 'ava_purp2',\n 'ava_yellow1',\n 'ava_yellow2',\n 'ava_yellow3',\n ];\n this.themes = [\n 'bnnr_blueLines_tile',\n 'bnnr_booksWhitebg_tile',\n 'bnnr_clouds_tile',\n 'bnnr_colorBooksDark_tile',\n 'bnnr_greenLines_tile',\n 'bnnr_purpHearts_tile',\n 'bnnr_turqBooksClouds_tile',\n 'bnnr_turqLines_tile',\n ];\n this.base_price = 0;\n this.packages = {};\n this.referer = document.referrer;\n this.ip = '';\n\n window.addEventListener(\"unhandledrejection\", event => {\n console.warn(`UNHANDLED PROMISE REJECTION: ${event.reason}`);\n });\n\n var script = document.createElement('script');\n script.src = \"https://items.learnosity.com/?v2024.1.lts\";\n document.head.appendChild(script);\n\n ApiFetch('package/?limit=20', 'GET').then(function(res) {\n self.packages = res['results'];\n });\n ApiFetch('user/?app=1').then(function(res) {\n if (\n typeof res !== 'undefined' &&\n res.hasOwnProperty('results') &&\n res['results'].length\n ) {\n let user = res['results'][0];\n if (!user['use_app'] && !user['is_staff']) {\n let path = MEMBERS_URL + window.location.pathname.substr(1);\n if (window.location.search) {\n path += window.location.search;\n }\n window.location.href = path;\n return;\n }\n if (user['city']) {\n user['is_nyc'] = user['city'].toLowerCase().indexOf('new york') > -1;\n }\n user['active_test'] = {};\n\n let has_active = false;\n if (user['children'] && user['children'].length) {\n for (let child in user['children']) {\n if (user['children'].hasOwnProperty(child)) {\n if (user['children'][child]['grade'] !== null) {\n user['child_setup'] = true;\n }\n if (user['children'][child]['active'] === true) {\n has_active = true;\n user['active_child'] = child;\n user['children'][child]['active'] = true;\n }\n if (user['children'][child].hasOwnProperty('secure_documents')) {\n user['children'][child]['secure_documents'] =\n self.setChildDocuments(user['children'][child]['secure_documents'])\n } else {\n user['children'][child]['secure_documents'] = {};\n }\n if (user['children'][child].hasOwnProperty('assessments')) {\n user['children'][child]['assessments_by_test'] =\n self.setChildAssessmentsByTest(user['children'][child]['assessments'])\n } else {\n user['children'][child]['assessments_by_test'] = {};\n }\n }\n }\n }\n\n if (!has_active && res['results'][0]['children'].length) {\n user['active_child'] = 0;\n user['children'][0]['active'] = true;\n }\n\n user['pk'] = res['results'][0]['id'];\n\n let dataLayer = {\n 'event': 'pageview',\n 'testingmom_email': user['email'],\n 'testingmom_userId': user['pk'],\n 'app_version': 'app'\n };\n\n Sentry.setUser({\"id\": user['pk'], \"email\": user['email']});\n\n if (res['results'][0]['active_subscription']) {\n dataLayer['testingmom_subscriptionPackage'] = res['results'][0]['active_subscription']['sub_level'];\n dataLayer['testingmom_orderId'] = res['results'][0]['active_subscription']['id'];\n dataLayer['testingmom_subscriptionAmount'] = res['results'][0]['active_subscription']['amount'];\n dataLayer['testingmom_duration'] = res['results'][0]['active_subscription']['duration'];\n }\n\n // Set attribution datalayer and delete cookies\n if (self.getCookie('paid_sign_up')) {\n dataLayer['paid_sign_up'] = 1;\n self.deleteCookie('paid_sign_up', '/', '.testingmom.com');\n }\n if (self.getCookie('tutoring_upsell')) {\n dataLayer['tutoring_upsell'] = 1;\n self.deleteCookie('tutoring_upsell', '/', '.testingmom.com');\n }\n if (self.getCookie('gogo_upsell')) {\n dataLayer['gogo_upsell'] = 1;\n self.deleteCookie('gogo_upsell', '/', '.testingmom.com');\n }\n if (self.getCookie('coding_upsell')) {\n dataLayer['coding_upsell'] = 1;\n self.deleteCookie('coding_upsell', '/', '.testingmom.com');\n }\n\n window.dataLayer.push(dataLayer);\n\n if (!user['paid_access']) {\n let date_joined = Math.round(new Date(user['date_joined']).getTime() / 1000);\n let now = Math.round(new Date().getTime() / 1000);\n let sale = now - date_joined > (14 * 24 * 3600);\n for (let pack in self.packages) {\n if (self.packages.hasOwnProperty(pack) &&\n self.packages[pack]['package']['title'] === 'Top 1% Fast Track Membership' &&\n self.packages[pack]['duration'] === 12\n ) {\n if (sale) {\n self.base_price = (self.packages[pack]['saleprice'] / 12).toFixed(2)\n } else {\n self.base_price = (self.packages[pack]['price'] / 12).toFixed(2)\n }\n }\n\n }\n }\n self.setState({\n user: user,\n }, self.setSearch);\n\n }\n }).catch(function() {\n window.location.href = WEBSITE_URL;\n });\n ApiFetch('test/?limit=100&status=1').then(function(res) {\n if (typeof res !== 'undefined' && res.hasOwnProperty('results')) {\n let grades = {};\n let grades_by_id = {};\n let tests_by_grade = {};\n let tests_by_id = {};\n let tests = {};\n let games = {};\n for (let i in res['results']) {\n if (res['results'].hasOwnProperty(i)) {\n tests[res['results'][i]['slug']] = res['results'][i];\n tests_by_id[res['results'][i]['id']] = res['results'][i];\n for (let g in res['results'][i]['grades']) {\n if (res['results'][i]['grades'].hasOwnProperty(g)) {\n if (\n res['results'][i] &&\n res['results'][i]['grades'][g]['numeric'] < 9 &&\n res['results'][i]['grades'][g]['numeric'] > -2\n ) {\n if (tests_by_grade[res['results'][i]['grades'][g]['id']] === undefined) {\n tests_by_grade[res['results'][i]['grades'][g]['id']] = {\n 'recommended': [],\n 'other': [],\n 'all': []\n };\n grades[res['results'][i]['grades'][g]['order']] = res['results'][i]['grades'][g];\n grades_by_id[res['results'][i]['grades'][g]['id']] = res['results'][i]['grades'][g];\n }\n if (res['results'][i]['recommended']) {\n tests_by_grade[res['results'][i]['grades'][g]['id']]['recommended'].push(res['results'][i])\n } else {\n tests_by_grade[res['results'][i]['grades'][g]['id']]['other'].push(res['results'][i])\n }\n tests_by_grade[res['results'][i]['grades'][g]['id']]['all'].push(res['results'][i]);\n }\n }\n }\n let apps = res['results'][i]['apps'];\n for (let a in apps) {\n if (apps.hasOwnProperty(a) && !games.hasOwnProperty(apps['order'])) {\n games[apps[a]['order']] = res['results'][i]['apps'][a];\n }\n }\n }\n }\n self.setState({\n games: games,\n tests: tests,\n tests_by_grade: tests_by_grade,\n tests_by_id: tests_by_id,\n grades: grades,\n grades_by_id: grades_by_id\n });\n }\n });\n ApiFetch('test/page/?limit=100&app=1&status=1&ordering=title&min_count=0').then(function(res) {\n if (res) {\n if (res.hasOwnProperty('results') && res['results'].length) {\n let test_pages_by_slug = {};\n for (let page in res['results']) {\n if (res['results'].hasOwnProperty(page)) {\n test_pages_by_slug[res['results'][page]['slug']] = res['results'][page];\n }\n }\n self.setState({\n test_pages_by_slug: test_pages_by_slug,\n test_pages: res['results']\n });\n }\n }\n });\n ApiFetch('country/?country=USA&app=1').then(function (res) {\n if (typeof res !== 'undefined' && res.hasOwnProperty('results') && res['results'].length) {\n let regions = {};\n for (let region in res['results'][0]['regions']) {\n if (res['results'][0]['regions'].hasOwnProperty(region)) {\n regions[res['results'][0]['regions'][region]['id']] = res['results'][0]['regions'][region];\n }\n }\n self.setState({\n 'regions': regions\n });\n }\n });\n ApiFetch('option/?name=tutoring_cta').then(function(res) {\n if (typeof res !== 'undefined' && res.hasOwnProperty('results') && res['results'].length) {\n self.setState({\n tutoring_cta: res['results'][0]['option_value']\n });\n }\n });\n ApiFetch('option/?name=online_tutoring_cta').then(function(res) {\n if (typeof res !== 'undefined' && res.hasOwnProperty('results') && res['results'].length) {\n self.setState({\n online_tutoring_cta: res['results'][0]['option_value']\n });\n }\n });\n ApiFetch('digital-tutor/config/?limit=1000', 'GET').then(function(res) {\n let dt_config = {};\n if (typeof res !== 'undefined' && res.hasOwnProperty('results') && res['results'].length) {\n for (let r in res['results']) {\n if (res['results'].hasOwnProperty(r)) {\n if (!dt_config.hasOwnProperty(res['results'][r]['test'])) {\n dt_config[res['results'][r]['test']] = {};\n }\n dt_config[res['results'][r]['test']][res['results'][r]['grade']['id']] = res['results'][r];\n }\n }\n self.setState({\n dt_config: dt_config\n });\n }\n });\n ApiFetch(\"lms/online-class-roster\", 'GET').then(function(results) {\n let classData = {};\n if (results.results) {\n let now = new Date();\n let one_week = new Date();\n one_week.setDate(one_week.getDate() + 7);\n for (let i in results.results) {\n if (results.results.hasOwnProperty(i)) {\n let cls = results.results[i];\n if (cls.session) {\n if (!classData.hasOwnProperty(cls.session.sessiongroup)) {\n if (!classData.hasOwnProperty(cls.session.sessiongroup) &&\n moment(cls.session.end_time) > now &&\n moment(cls.session.start_time) < one_week\n ) {\n classData[cls.session.sessiongroup] = {\n 'sessions': [cls.session],\n 'class': cls.onlineclass\n }\n }\n }\n } else if (cls.sessiongroup && cls.sessiongroup.sessions.length) {\n if (moment(cls.sessiongroup.sessions[cls.sessiongroup.sessions.length - 1].end_time) > now &&\n moment(cls.sessiongroup.sessions[cls.sessiongroup.sessions.length - 1].start_time) < one_week\n ) {\n classData[cls.sessiongroup.id] = {\n 'sessions': cls.sessiongroup.sessions,\n 'class': cls.onlineclass\n }\n }\n }\n }\n }\n }\n if (Object.keys(classData).length === 0) {\n classData = {\n 'noclasses': 1\n }\n }\n self.setState({\n 'userClasses': classData\n });\n });\n ApiFetch(\"online-class-camp/?promoted=true\", 'GET').then(function(results){\n let allClassData = [];\n for (let i in results.results) {\n if (results.results.hasOwnProperty(i)) {\n let classData = {\n id: results.results[i].id,\n title: results.results[i].title,\n thumbnail: results.results[i].thumbnail,\n calendly_link: results.results[i].calendly_link,\n tests: results.results[i].tests,\n grades: results.results[i].grades,\n };\n allClassData.push(classData);\n }\n }\n if (allClassData) {\n self.shuffle(allClassData);\n self.setState({\n 'onlineClasses': allClassData\n });\n }\n });\n ApiFetch(\"lms/online-class-category?limit=100&ordering=title\", 'GET').then(function(results){\n let allClassData = [];\n for (let i in results.results) {\n if (results.results.hasOwnProperty(i)) {\n let classData = {\n id: results.results[i].id,\n title: results.results[i].title,\n };\n allClassData.push(classData);\n }\n }\n if (allClassData) {\n self.setState({\n 'onlineClassCategories': allClassData\n });\n }\n });\n }\n\n componentDidMount() {\n document.body.addEventListener('touchstart', this.startSwipeSidebar);\n document.body.addEventListener('touchmove', this.swipeSidebar);\n }\n\n componentWillMount() {\n let self = this;\n if (typeof(this.state.isIE) === 'undefined') {\n fetch(\"https://api.ipify.org?format=json\")\n .then((response) => response.json())\n .then((responseData) => {\n this.ip = responseData['ip'];\n self.tracking(window.location.pathname);\n })\n .catch(error => console.warn(error));\n this.unlisten = this.props.history.listen((location, action) => {\n self.tracking(location.pathname);\n });\n }\n }\n\n componentWillUnmount() {\n this.unlisten();\n }\n\n getCookie(name) {\n let v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n return v ? v[2] : \"\";\n }\n\n deleteCookie( name, path, domain ) {\n if(this.getCookie( name ) ) {\n document.cookie = name + \"=\" +\n ((path) ? \";path=\"+path:\"\")+\n ((domain)?\";domain=\"+domain:\"\") +\n \";expires=Thu, 01 Jan 1970 00:00:01 GMT\";\n }\n }\n\n tracking(location) {\n let tracking_data = {\n \"request_uri\": location,\n \"session_id\": this.getCookie(\"tm_sess_id\", \"\"),\n \"query_string\": window.location.search,\n \"source\": 0,\n \"campaign\": \"\",\n \"ip\": this.ip,\n \"http_referer\": this.http_referer,\n \"user_agent\": navigator.userAgent,\n \"server\": 'app',\n \"track_id\": this.getCookie(\"tm_track\", \"\")\n };\n this.http_referer = window.location.hostname + '/' + location;\n ApiFetch('tracking/', 'POST', tracking_data);\n }\n\n setSearch()\n {\n let self = this;\n let paid = (this.state.user.paid_access) ? '0,1' : '0,2';\n window.Beacon('init', '7d97db9c-aefe-4c35-848e-6c959a587a3c');\n ApiFetch('search-terms/?paid=' + paid).then(\n function(searchTerms) {\n for (let term in searchTerms) {\n if (searchTerms.hasOwnProperty(term)) {\n if (searchTerms[term].hasOwnProperty('url')) {\n searchTerms[term]['url'] = searchTerms[term]['url'].replace('https://members.testingmom.com/', '/');\n searchTerms[term]['url'] = searchTerms[term]['url'].replace(MEMBERS_URL, '/');\n }\n }\n }\n if (searchTerms) {\n var options = {\n shouldSort: true,\n matchAllTokens: true,\n threshold: 0.4,\n location: 0,\n distance: 100,\n maxPatternLength: 32,\n minMatchCharLength: 1,\n keys: [{\n name: 'title',\n weight: 0.4\n }, {\n name: 'keywords',\n weight: 0.8\n }]\n };\n self.fuse = new Fuse(searchTerms, options);\n }\n }\n );\n }\n\n shuffle(array) {\n array.sort(function(){\n return Math.random() - 0.5\n });\n }\n\n isDescendant(parent, child) {\n while(child.parentNode ){\n if (child.parentNode === parent) {\n return true;\n } else {\n child = child.parentNode;\n }\n }\n return parent === child;\n }\n\n hideSearch(e)\n {\n let sr = document.getElementById('search-results');\n if (sr) {\n if (!this.isDescendant(sr, e.target)) {\n sr.style.display = 'none';\n }\n let menu = document.getElementById('menu');\n let menuButton = document.getElementById('menuButton');\n if (!this.isDescendant(menu, e.target) && !this.isDescendant(menuButton, e.target)) {\n menu.style.height = 0;\n menu.style.borderBottomWidth = 0;\n }\n }\n }\n\n search(e)\n {\n let sr = document.getElementById('search-results');\n if (sr.childNodes.hasOwnProperty(0)) {\n if(e.target.value.length > 2) {\n let results = this.fuse.search(e.target.value);\n let links = [];\n if (results.length) {\n for (let result in results) {\n if (results.hasOwnProperty(result) && result < 10) {\n let url = results[result]['url'];\n if (url.indexOf('?') !== -1) {\n url += '&search=' + e.target.value;\n } else {\n url += '?search=' + e.target.value;\n }\n links.push(
    • {results[result]['title']}
    • );\n }\n }\n } else {\n links.push(
    • Sorry there are no results.
    • );\n }\n this.setState({\n searchLinks: links\n });\n sr.style.display = 'block';\n sr.childNodes[0].style.borderBottom = '1px solid #ccc';\n } else {\n sr.style.display = 'none';\n }\n }\n }\n\n componentDidUpdate(prevProps) {\n let has_properties = false;\n for (let test in this.state.tests) {\n if (this.state.tests.hasOwnProperty(test)) {\n has_properties = true;\n }\n }\n\n if (!this.activeTestSet &&\n has_properties &&\n Object.keys(this.state.user.active_test).length === 0 &&\n this.state.user.active_child >= 0 &&\n this.state.user.children.length &&\n this.state.user.children[this.state.user.active_child].tests.length) {\n for (let t in this.state.user.children[this.state.user.active_child].tests) {\n if (\n this.state.user.children[this.state.user.active_child].tests.hasOwnProperty(t) &&\n this.state.user.children[this.state.user.active_child].tests[t]['primary']\n ) {\n this.activeTestSet = true;\n this.updateUser({active_test: this.state.tests[this.state.user.children[this.state.user.active_child].tests[t]['test']]})\n }\n }\n }\n }\n\n updateUser(userData, callback) {\n let user = this.state.user;\n for (let key in userData) {\n if (userData.hasOwnProperty(key)) {\n user[key] = userData[key];\n }\n }\n\n if (user['children'].length > 0) {\n for (let child in user['children']) {\n if (user['children'].hasOwnProperty(child)) {\n if (user['children'][child].grade !== null && user['children'].name !== null) {\n user['child_setup'] = true;\n }\n }\n }\n }\n\n this.setState({\n user: user\n }, callback);\n }\n\n deleteDocument(child_doc_id, doc_id)\n {\n ApiFetch('user-child-document/' + child_doc_id + '/', 'DELETE');\n let user = this.state.user;\n let documents = user.children[user.active_child].secure_documents;\n for (let id in documents) {\n if (documents.hasOwnProperty(id) && id === doc_id) {\n let key = user.children[user.active_child].secure_documents[id].length - 1;\n user.children[user.active_child].secure_documents[id].pop();\n if (key === 0) {\n delete user.children[user.active_child].secure_documents[id];\n }\n }\n }\n this.setState({\n user: user\n });\n }\n\n setChildDocuments(documents) {\n let docs = {};\n for (let d in documents) {\n if (documents.hasOwnProperty(d)) {\n if (!docs.hasOwnProperty(documents[d]['secure_document'])) {\n docs[documents[d]['secure_document']] = [];\n }\n docs[documents[d]['secure_document']].push(documents[d])\n }\n }\n return docs;\n }\n\n setChildAssessmentsByTest(assessments) {\n let assess = {};\n if (typeof assessments === 'undefined') {\n assessments = this.state.user.children[this.state.user.active_child]['assessments'];\n }\n for (let a in assessments) {\n if (assessments.hasOwnProperty(a)) {\n if (assessments[a].learnosity) {\n let assess_date = new Date(assessments[a]['created_at']);\n let break_date = new Date('2020-03-11T00:00:00.00000Z');\n let fix_date = new Date('2020-03-12T23:00:00.0000Z');\n if (break_date < assess_date && fix_date > assess_date) {\n continue;\n }\n }\n if (!assess.hasOwnProperty(assessments[a]['test'])) {\n assess[assessments[a]['test']] = {\n 'questions': [],\n 'ids': [assessments[a]['id']],\n 'keys': [parseInt(a)],\n }\n } else {\n assess[assessments[a]['test']]['ids'].push(assessments[a]['id']);\n assess[assessments[a]['test']]['keys'].push(parseInt(a));\n }\n for (let q in assessments[a]['questions']) {\n if (assessments[a]['questions'].hasOwnProperty(q)) {\n assess[assessments[a]['test']]['questions'].push(\n assessments[a]['questions'][q]['question']\n )\n }\n }\n }\n }\n return assess;\n }\n\n updateTest(slug, data) {\n for (let key in data) {\n if (data.hasOwnProperty(key)) {\n let tests = this.state.tests;\n if (slug in tests) {\n tests[slug][key] = data[key];\n\n let user = this.state.user;\n if (user.active_test[slug] === slug) {\n user.active_test[key] = data[key]\n }\n let tests_by_id = this.state.tests_by_id;\n tests_by_id[tests[slug].id][key] = data[key];\n this.setState({\n tests: tests,\n tests_by_id: tests_by_id,\n user: user\n });\n }\n }\n }\n }\n\n updateChild(child_id, childData, callback) {\n let self = this;\n ApiFetch('user-child/' + child_id + '/', 'PATCH', childData).then(function (response) {\n // Set secure documents in a better way to work with\n if (response) {\n if (response.hasOwnProperty('secure_documents')) {\n response['secure_documents'] = self.setChildDocuments(response['secure_documents']);\n }\n\n let userData = {};\n let children = self.state.user.children.slice();\n\n for (let c in children) {\n if (children.hasOwnProperty(c)) {\n if (children[c].id === child_id) {\n if (childData['active'] === true) {\n userData['active_child'] = c;\n }\n for (let prop in response) {\n children[c][prop] = response[prop];\n }\n if (!children[c].hasOwnProperty('assessments')) {\n children[c]['assessments'] = [];\n children[c]['assessments_by_test'] = {}\n }\n }\n }\n }\n userData['children'] = children;\n self.updateUser(userData, callback);\n }\n });\n }\n\n deleteChild(child_id, child_name, user, history, callback) {\n let self = this;\n document.documentElement.style.overflowY = 'scroll';\n confirmAlert({\n title: 'Remove ' + child_name + '?',\n message: 'Are you sure you want to remove this student from your account? Please note that ' +\n 'all data for this student will be permanently deleted if you select \"Yes\".',\n buttons: [\n {\n label: 'Yes',\n onClick: function() {\n let children = user['children'].slice();\n for (let child in children) {\n if (children.hasOwnProperty(child)) {\n if (child_id === children[child]['id']) {\n children.splice(child, 1);\n }\n }\n }\n history.push('/');\n let userData = {'children': children, 'active_child': -1};\n if (children.length === 0) {\n userData['child_setup'] = false;\n }\n\n self.updateUser(userData, function(){\n ApiFetch('user-child/' + child_id + '/', 'DELETE').then(function () {\n document.documentElement.style.overflowY = 'auto';\n callback();\n if (self.state.user.children.length === 0) {\n userData['child_setup'] = false;\n self.setState({\n 'child_setup': false\n });\n }\n });\n });\n\n\n }\n },\n {\n label: 'No',\n onClick: () => {\n document.documentElement.style.overflowY = 'auto';\n }\n }\n ]\n });\n }\n\n checkAddStudent(e) {\n document.documentElement.style.overflowY = 'scroll';\n if (this.state.user.children.length >= this.state.user.allowed_children) {\n confirmAlert({\n message: 'You have reached the maximum number of students per account. ' +\n 'Please remove an existing student in order to add a new student.',\n buttons: [\n {\n label: 'Ok',\n onClick: function() {\n document.documentElement.style.overflowY = 'auto';\n }\n },\n ]\n });\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n setResources(resources) {\n this.setState({\n resources: resources,\n })\n }\n\n setPrintablesByTestPage(test_page)\n {\n if (test_page && test_page.hasOwnProperty('tests')) {\n for (let t in test_page['tests']) {\n let test = this.state.tests_by_id[test_page['tests'][t]['id']];\n if (test !== undefined) {\n if (test_page['tests'][t].show_practice_questions) {\n if (!test.hasOwnProperty('documents') || test['documents'].length === 0) {\n this.setPrintables(test);\n }\n }\n }\n }\n }\n }\n\n setPrintables(test, state)\n {\n let self = this;\n if (test.slug && test.slug in this.state.tests &&\n (\n !this.state.tests[test.slug].hasOwnProperty('documents') ||\n Object.keys(this.state.tests[test.slug]['documents']).length === 0\n )\n ) {\n ApiFetch('document/?limit=1000&test=' + test.slug).then(function (res) {\n if (typeof res !== 'undefined' && res.hasOwnProperty('results') && res['results'].length) {\n let documents = {'': []};\n let grades = [];\n let results = res['results'];\n let total_questions = 0;\n for (let doc in results) {\n if (results.hasOwnProperty(doc)) {\n for (let grade in results[doc]['grades']) {\n if (results[doc]['grades'].hasOwnProperty(grade)) {\n if (!(results[doc]['grades'][grade]['name'] in documents)) {\n documents[results[doc]['grades'][grade]['name']] = [];\n grades[results[doc]['grades'][grade]['order']] = results[doc]['grades'][grade]['name'];\n }\n documents[results[doc]['grades'][grade]['name']].push(results[doc])\n }\n }\n total_questions += results[doc]['question_count'];\n documents[''].push(results[doc]);\n }\n }\n let docs = {\n 'documents': documents,\n 'grades': grades,\n 'total_questions': total_questions\n };\n self.updateTest(test.slug, {'documents': docs});\n if (state && docs['grades'].length) {\n state.setState({\n documents: docs,\n });\n }\n }\n });\n }\n }\n\n viewport()\n {\n var e = window\n , a = 'inner';\n if ( !( 'innerWidth' in window ) )\n {\n a = 'client';\n e = document.documentElement || document.body;\n }\n return { width : e[ a+'Width' ] , height : e[ a+'Height' ] }\n }\n\n toggleSidebar(dir)\n {\n let sidebar = document.getElementById(\"sidebarLeft\");\n if (sidebar && this.viewport().width <= 800) {\n if (dir === \"left\") {\n sidebar.classList.remove(\"open\");\n sidebar.style.left = '-260px';\n } else {\n sidebar.classList.add(\"open\");\n sidebar.style.left = '0';\n }\n }\n }\n\n startSwipeSidebar(e)\n {\n this.initialX = e.touches[0].clientX;\n this.initialY = e.touches[0].clientY;\n }\n\n swipeSidebar(e)\n {\n if (this.initialX === 0 || this.initialY === 0) {\n return;\n }\n let halfScreen = this.viewport().width / 2;\n if (e.touches.hasOwnProperty(0)) {\n let currentX = e.touches[0].clientX;\n let currentY = e.touches[0].clientY;\n\n let diffX = this.initialX - currentX;\n let diffY = this.initialY - currentY;\n\n if (Math.abs(diffX) > Math.abs(diffY)) {\n if (diffX > 0) {\n this.toggleSidebar('left');\n } else if (diffX <= 0 && this.initialX < halfScreen) {\n this.toggleSidebar('right');\n }\n }\n }\n }\n\n showAvatars()\n {\n this.setState({\n avatar_overlay_showing: true\n });\n }\n\n hideAvatars()\n {\n this.setState({\n avatar_overlay_showing: false\n });\n }\n\n showSiteTour(e, tour) {\n let videoId = tour === 'sba' ? '519100916' : '380754676';\n this.setState({\n showSiteTour: true,\n siteTourVideoId: videoId\n });\n if (e) {\n e.preventDefault();\n }\n }\n\n hideSiteTour() {\n this.setState({\n showSiteTour: false\n })\n }\n\n defaultComponent(props, Component, extraProps) {\n if (this.state.user.pk && Object.keys(this.state.grades).length > 0) {\n let showEditButton = false;\n if ((Component === TestDashboard || Component === ChildSetup) && this.state.user.active_child >= 0) {\n showEditButton = true;\n }\n let tutoring_cta = this.state.online_tutoring_cta;\n return (\n
      \n \n \n \n \n \n
      \n {(Component === ChildSetup || Component === TestDashboard) &&\n \n }\n \n \n
      \n {window.location.pathname === '/' && this.state.user && !this.state.user.tutoring_client &&\n \n }\n \n
      \n );\n } else {\n return \n }\n }\n\n render() {\n if (this.state.isIE) {\n return (\n
      \n Sorry Internet Explorer is not supported. Please try a different browser.\n
      \n )\n }\n\n let ChildDashboard = ChildSetup;\n if (this.state.user.child_setup) {\n ChildDashboard = TestDashboard;\n }\n\n let Home = ParentDashboard;\n\n return (\n \n \n (\n this.defaultComponent(props, Home, {\n 'addChild': true,\n 'editChild': false,\n 'firstChild': true,\n 'checkAddStudent': this.checkAddStudent,\n 'base_price': this.base_price,\n 'onlineClasses': this.state.onlineClasses,\n 'userClasses': this.state.userClasses,\n 'showSiteTour': this.showSiteTour,\n })\n )}/>\n (\n this.defaultComponent(props, ChildSetup, {\n 'addChild': true,\n 'editChild': false,\n 'firstChild': false,\n 'checkAddStudent': this.checkAddStudent,\n 'onlineClasses': this.state.onlineClasses,\n 'onlineClassCategories': this.state.onlineClassCategories,\n })\n )}/>\n (\n this.defaultComponent(\n props,\n ChildDashboard,\n {\n setPrintablesByTestPage: this.setPrintablesByTestPage,\n setChildAssessmentsByTest: this.setChildAssessmentsByTest,\n setPrintables: this.setPrintables,\n addChild: false,\n editChild: true,\n firstChild: false,\n deleteChild: this.deleteChild,\n onlineClasses: this.state.onlineClasses,\n userClasses: this.state.userClasses,\n }\n )\n )}/>\n (\n this.defaultComponent(\n props,\n ChildDashboard,\n {\n setPrintablesByTestPage: this.setPrintablesByTestPage,\n setChildAssessmentsByTest: this.setChildAssessmentsByTest,\n setPrintables: this.setPrintables,\n onlineClasses: this.state.onlineClasses,\n userClasses: this.state.userClasses,\n }\n )\n )}/>\n (\n this.defaultComponent(\n props,\n ChildDashboard,\n {\n setPrintablesByTestPage: this.setPrintablesByTestPage,\n setChildAssessmentsByTest: this.setChildAssessmentsByTest,\n setPrintables: this.setPrintables,\n onlineClasses: this.state.onlineClasses,\n userClasses: this.state.userClasses,\n }\n )\n )}/>\n (\n this.defaultComponent(props, ChildSetup, {\n 'addChild': false,\n 'editChild': true,\n 'editChildPage': true,\n 'firstChild': false,\n 'checkAddStudent': this.checkAddStudent,\n 'deleteChild': this.deleteChild,\n 'onlineClasses': this.state.onlineClasses,\n 'onlineClassCategories': this.state.onlineClassCategories,\n })\n )}/>\n (\n this.defaultComponent(\n props,\n ChildDashboard,\n {\n setPrintablesByTestPage: this.setPrintablesByTestPage,\n setChildAssessmentsByTest: this.setChildAssessmentsByTest,\n setPrintables: this.setPrintables,\n online_tutoring_cta: this.state.online_tutoring_cta,\n tutoring_cta: this.state.tutoring_cta,\n onlineClasses: this.state.onlineClasses,\n userClasses: this.state.userClasses,\n }\n )\n )}/>\n (\n this.defaultComponent(\n props,\n ChildDashboard,\n {\n setPrintablesByTestPage: this.setPrintablesByTestPage,\n setChildAssessmentsByTest: this.setChildAssessmentsByTest,\n setPrintables: this.setPrintables,\n onlineClasses: this.state.onlineClasses,\n }\n )\n )}/>\n (\n this.defaultComponent(props, Enrichment)\n )}/>\n (\n this.defaultComponent(props, GamesIndex, {\n 'games': this.state.games,\n })\n )}/>\n (\n this.defaultComponent(props, Games, {\n 'games': this.state.games,\n })\n )}/>\n (\n this.defaultComponent(props, ParentResources, {\n setResources: this.setResources,\n resources: this.state.resources,\n showSiteTour: this.showSiteTour,\n })\n )}/>\n (\n this.defaultComponent(props, SiteTour)\n )}/>\n (\n this.defaultComponent(props, SbaIndex,\n {\n showSiteTour: this.showSiteTour,\n })\n )}/>\n (\n this.defaultComponent(props, SbaProgram)\n )}/>\n (\n this.defaultComponent(props, TestDirectory)\n )}/>\n (\n this.defaultComponent(props, StatesCommonCore)\n )}/>\n (\n this.defaultComponent(props, HowToPrep, {\n setPrintablesByTestPage: this.setPrintablesByTestPage,\n })\n )}/>\n (\n this.defaultComponent(props, HowToPrep, {\n setPrintablesByTestPage: this.setPrintablesByTestPage,\n })\n )}/>\n (\n this.defaultComponent(props, TestDirectory)\n )}/>\n (\n this.defaultComponent(props, TestDirectory)\n )}/>\n (\n this.defaultComponent(props, TutoringOverview)\n )}/>\n (\n this.defaultComponent(props, TutoringCalendar)\n )}/>\n (\n this.defaultComponent(props, Inbox)\n )}/>\n (\n this.defaultComponent(props, TutorSelection)\n )}/>\n (\n
      Version: {version}
      \n )}/>\n \n (\n this.defaultComponent(props, Four04, {four04: true})\n )}/>\n
      \n
      \n )\n }\n}\nexport default withRouter(App);\n","import React from 'react';\nimport * as Sentry from '@sentry/browser';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter as Router } from 'react-router-dom'\nimport './index.css';\nimport App from './App';\n// import * as serviceWorker from './service-worker';\n\nconst hostname = window && window.location && window.location.hostname;\nconst { version } = require('../package.json');\nconst path = require('path');\nconst errorsToIgnore = [\n 'ResizeObserver loop limit exceeded',\n /PickleRick_\\d\\d/,\n 'RangeError',\n 'NotAllowedError',\n 'NotSupportedError: The operation is not supported.',\n 'NotSupportedError',\n 'AbortError: The operation was aborted.',\n 'AbortError',\n 'ResizeObserver loop completed with undelivered notifications',\n \"'maxthon' is undefined\",\n \"Error: The operation was canceled by the user.\",\n 'TypeError: Cancelled',\n 'Cancelled',\n 'cancelled',\n 'TypeError: cancelled',\n 'The network connection was lost.',\n 'Failed to fetch',\n 'NetworkError when attempting to fetch resource.',\n 'Error: Network Error',\n 'Permission denied to access property \"clientX\"',\n 'The operation couldn’t be completed. Software caused connection abort',\n];\nif (hostname === 'staging.app.testingmom.com') {\n Sentry.init(\n {\n dsn: \"https://bf64a2dff65f4940a18ba80f1ff77262@sentry.io/1491353\",\n release: version,\n ignoreErrors: errorsToIgnore,\n whitelistUrls: [/https?:\\/\\/staging.app.testingmom.com/],\n beforeSend (event) {\n try {\n if (event.extra.__serialized__.detail.reason.message === 'Extension context invalidated.') {\n return null;\n }\n } catch(_o_O) {\n return event;\n }\n if (\n !event.exception ||\n !event.exception.values ||\n !event.exception.values[0]\n ) {\n return event\n }\n\n const value = event.exception.values[0];\n\n if (value.stacktrace && value.stacktrace.frames) {\n const root = process.cwd();\n value.stacktrace.frames.forEach(function (frame) {\n let filename = path.relative(root, frame.filename);\n let i = filename.indexOf('static/js');\n frame.filename = filename.substr(i + 9);\n\n })\n }\n return event\n }\n }\n );\n}\n\nif (hostname === 'app.testingmom.com') {\n Sentry.init(\n {\n dsn: \"https://86c88130671d491bb037a525c9f2b3c3@sentry.io/1860324\",\n release: version,\n ignoreErrors: errorsToIgnore,\n whitelistUrls: [/https?:\\/\\/app.testingmom.com/],\n beforeSend (event) {\n try {\n let message = event.extra.__serialized__.detail.reason.message;\n if (message === 'Extension context invalidated.') {\n return null;\n }\n } catch(_o_O) {\n return event;\n }\n if (\n !event.exception ||\n !event.exception.values ||\n !event.exception.values[0]\n ) {\n return event\n }\n\n const value = event.exception.values[0];\n\n if (value.stacktrace && value.stacktrace.frames) {\n const root = process.cwd();\n value.stacktrace.frames.forEach(function (frame) {\n let filename = path.relative(root, frame.filename);\n let i = filename.indexOf('static/js');\n frame.filename = filename.substr(i + 9);\n\n })\n }\n return event\n }\n }\n );\n}\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\n// if (process.env.NODE_ENV === 'development') {\n// serviceWorker.register();\n// }\n","import React from 'react';\n\nexport const ModuleWide = (props) => (\n
      \n {props.content}\n
      \n);\n","import React from \"react\";\nimport PropTypes from 'prop-types'\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\n\nfunction AnswerAreas(props) {\n let i = 0;\n return (\n props.answerArea.map(function(aa) {\n i++;\n return (\n
      \n {aa.ansAreaH !== 0 && aa.ansAreaH !== null &&\n
      \n {props.result !== undefined && props.result.correct === false &&\n
      \n }\n
      \n }\n
      \n {props.result !== undefined && props.result.correct === true &&\n
      \n }\n
      \n
      \n )\n })\n )\n}\n\nexport function Question(props) {\n //let i = 0;\n let id = (props.result !== undefined) ? 'result-' + props.id : 'ques-' + props.id;\n let breakTag = '
      ';\n let replaceStr = '$1'+ breakTag +'$2';\n let explanation = '';\n if (props.explanation) {\n explanation = 'Explanation: ' + (props.explanation + '').replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, replaceStr);\n }\n let question_class = 'question';\n if (props.audio && (props.can_play_audio === true || props.question.toLowerCase().indexOf('listening') > 0)) {\n question_class += ' has_audio';\n }\n return (\n
      \n
      \n

      \n {props.test === 338 && props.id === 0 &&\n

      \n The AABL® assesses skills in Early Literacy, Verbal and Quantitative Reasoning\n and Mathematics. Students must listen to each question and then touch the correct\n answer. Be sure to enable the audio output on your device so your child can hear each\n practice question as it is read aloud. Your child may touch the replay button to\n hear the question again.\n

      \n }\n {props.audio && (props.can_play_audio === true || props.question.toLowerCase().indexOf('listening') > 0) &&\n
      \n \n
      \n \"\"\n
      \n
      \n }\n {props.ans_image !== null &&\n \n \"\"\n\n
      \n }\n {props.ans_image !== null &&\n \n \n \"\"/\n
      \n }\n {props.ans_image === null && props.image !== null &&\n \n \n \"\"\n
      \n }\n {props.result !== undefined && props.freeQuestions !== undefined &&\n
      \n {props.result.correct !== null && props.result.correct === true &&\n

      Your Response: Correct!

      \n }\n {props.result.correct !== null && props.result.correct === false &&\n

      Your Response: Wrong

      \n }\n
      \n }\n {\n props.result !== undefined &&

      \n }\n

      \n
      \n Something wrong with this question? Click here to notify us.\n
      \n {props.result &&\n
      \n
      = Correct Answer
      \n
      = Your selection
      \n
      \n }\n
      \n
      \n
      \n )\n}\n\nexport function SetAnswerArea(id, results)\n{\n //Pixel width the answer areas are based on\n let base = 470;\n //The biggest width we want to go for images\n let max = 900;\n let questionsDiv = document.getElementById(id);\n if (questionsDiv !== null) {\n let height_control = 50;\n let max_height = questionsDiv.clientHeight - height_control;\n let containers = questionsDiv.getElementsByClassName('ques-cont');\n for (let i = 0; i < containers.length; i++) {\n let question = containers.item(i);\n let image = question.getElementsByClassName('answer-image')[0];\n if (typeof image !== 'undefined') {\n let width = question.getElementsByClassName('question')[0].clientWidth;\n let question_text_height = question.getElementsByClassName('question-text')[0].clientHeight;\n let explanation_text_height = 0;\n let explanation = question.getElementsByClassName('explanation');\n if (explanation.length) {\n explanation_text_height = explanation[0].clientHeight;\n }\n let description_height = 0;\n let description = question.getElementsByClassName('desc');\n if (description.length) {\n description_height = description[0].clientHeight;\n }\n let question_max_height = max_height - question_text_height - explanation_text_height - description_height;\n let correctTotal = questionsDiv.getElementsByClassName('correct-total');\n if (correctTotal.length > 0) {\n question_max_height -= correctTotal[0].clientHeight;\n }\n let yourResponse = question.getElementsByClassName('your-response');\n if (yourResponse.length > 0) {\n question_max_height -= 70;\n }\n let prop = 1;\n let base_image_width = image.dataset.width;\n let base_image_height = image.dataset.height;\n Array.from(image.getElementsByClassName('correct-answer')).forEach((ca) => {\n let image_width = base_image_width;\n let image_height = base_image_height;\n let cw = ca.dataset.width;\n let ch = ca.dataset.height;\n let cx = ca.dataset.posx;\n let cy = ca.dataset.posy;\n\n if (image_width > base) {\n prop = image_width / base;\n cw = cw * prop;\n ch = ch * prop;\n cx = cx * prop;\n cy = cy * prop;\n }\n if (image_width > max) {\n prop = max / image_width;\n image_height = image_height * prop;\n image_width = max;\n cw = cw * prop;\n ch = ch * prop;\n cx = cx * prop;\n cy = cy * prop;\n }\n if (image_width > width) {\n prop = width / image_width;\n image_height = image_height * prop;\n cw = cw * prop;\n ch = ch * prop;\n cx = cx * prop;\n cy = cy * prop;\n }\n if (image_height > question_max_height) {\n prop = question_max_height / image_height;\n cw = cw * prop;\n ch = ch * prop;\n cx = cx * prop;\n cy = cy * prop;\n }\n ca.style.width = cw + 'px';\n ca.style.height = ch + 'px';\n ca.style.margin = cy + 'px 0 0 ' + cx + 'px';\n });\n\n let image_width = base_image_width;\n let image_height = base_image_height;\n let wrong = image.getElementsByClassName('wrong-answer')[0];\n let aw = wrong.dataset.width;\n let ah = wrong.dataset.height;\n let ax = wrong.dataset.posx;\n let ay = wrong.dataset.posy;\n\n if (image_width > base) {\n prop = image_width / base;\n aw = aw * prop;\n ah = ah * prop;\n ax = ax * prop;\n ay = ay * prop;\n }\n\n if (image_width > max) {\n prop = max / image_width;\n image_height = image_height * prop;\n image_width = max;\n aw = aw * prop;\n ah = ah * prop;\n ax = ax * prop;\n ay = ay * prop;\n }\n\n if (image_width > width) {\n prop = width / image_width;\n image_height = image_height * prop;\n image_width = width;\n aw = aw * prop;\n ah = ah * prop;\n ax = ax * prop;\n ay = ay * prop;\n }\n if (image_height > question_max_height) {\n prop = question_max_height / image_height;\n image_height = question_max_height;\n image_width = image_width * prop;\n aw = aw * prop;\n ah = ah * prop;\n ax = ax * prop;\n ay = ay * prop;\n }\n if (results) {\n image.style.margin = ((question_max_height - image_height) / 2) - 2 + 'px auto';\n } else {\n image.style.margin = (question_max_height - image_height) / 2 + 'px auto';\n }\n image.style.width = image_width + 'px';\n image.style.height = image_height + 'px';\n let img = image.getElementsByTagName('img')[0];\n img.style.width = image_width + 'px';\n img.style.height = image.height + 'px';\n wrong.style.width = aw + 'px';\n wrong.style.height = ah + 'px';\n wrong.style.margin = ay + 'px 0 0 ' + ax + 'px';\n }\n }\n }\n}\n\nQuestion.propTypes = {\n question: PropTypes.string.isRequired,\n audio: PropTypes.string,\n ans_image: PropTypes.object,\n image: PropTypes.object.isRequired,\n reportError: PropTypes.func.isRequired,\n id: PropTypes.number.isRequired,\n question_id: PropTypes.number.isRequired,\n skills: PropTypes.array,\n};\n"],"sourceRoot":""}