{"version":3,"file":"re-client-f91550608b8147d7f415348894189a69.js","names":["_config$APP","config","APP","apiEndpoint","apiNamespace","ApplicationAdapter","ActiveModelAdapter","constructor","super","arguments","_defineProperty","this","host","namespace","ajaxOptions","url","type","options","credentials","pathForType","modelName","_exports","default","_config$contentLoader","contentLoader","caper","assetHosts","releaseSha","_class","CaperAdapter","_descriptor","code","concat","user","locale","path","prototype","service","configurable","enumerable","writable","initializer","RESTAdapter","buildURL","id","snapshot","requestType","query","decamelize","underscore","PuzzleScoreAdapter","updateRecord","store","createRecord","globalThis","crypto","randomUUID","uuidV4","gsap","registerPlugin","MotionPathPlugin","App","Application","modulePrefix","podModulePrefix","Resolver","structuredClone","startLog","rollbar","checkIgnore","Array","from","length","undefined","some","possibleError","isNetworkError","ignoredMessages","loadInitializers","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","block","moduleName","isStrictMode","ActivityHeader","Component","route","args","destination","goBack","event","preventDefault","window","history","back","action","Object","getOwnPropertyDescriptor","_component","setComponentTemplate","ActivitySidebar","owner","activitySidebar","close","isOpen","isClosed","toggle","changeActivity","changeActivityAction","_applyDecoratedDescriptor","ActivityItem","activity","status","icon","thumbnail","ActivityList","selectedActivity","moveUp","document","dispatchEvent","Event","moveDown","templateOnly","AssignmentsAssignmentOverlayComponent","BookShelf","_initializerDefineProperty","_descriptor2","_descriptor3","_descriptor4","_loadNextPage","bookshelfBlocks","bookPages","map","page","i","shelves","chunk","Math","ceil","isCurrentBlock","currentShelf","firstBookshelf","currentPageStyle","htmlSafe","toString","isCurrentShelfLastLoaded","lastBookshelf","hasNextPage","goNext","goPrev","goToBook","goToBookAction","loading","_await$this$args$book","next","value","done","books","tracked","ContentInteractiveComponent","_dec","_descriptor5","_descriptor6","_descriptor7","loader","framework","jesterLoader","caperLoader","externalController","_this$args","contentActions","contentSpec","logger","assertContentSpec","assertContentActions","enableMessengerLogging","name","_len","_key","console","debug","createExternalController","withReadyForUserInputEvent","_this","Proxy","get","target","prop","Reflect","_len2","_key2","studentMetrics","captureGeneralEvent","eventType","apply","variables","bgmDisabled","backgroundMusicDisabled","featureFlags","flagNames","features","getClient","getObjectValue","payload","Set","forEach","flagName","isEnabled","add","onError","error","log","router","transitionTo","DebugObservable","key","subscribe","unsubscribe","currentValue","JSON","stringify","data","complete","ContentInteractiveDebugComponent","_class2","getDebug","_ref","actions","_ref2","_slicedToArray","actionParams","params","_ref3","entries","_ref4","param","push","debugActions","values","defineProperty","debugValues","subscriptions","observable","debugSubscriptions","copyToClipboard","HTMLElement","dataset","debugData","startsWith","endsWith","slice","navigator","clipboard","writeText","onSubmit","actionKey","_debug$actions$get","debugAction","debugParams","currentTarget","HTMLFormElement","Map","formData","FormData","_ref5","_ref6","paramType","set","Number","fromEntries","BookReader","nextAction","resultVideo","videoTitle","resultVideoAction","backToQuiz","backToQuizAction","saveProgress","_handleNextableResponse","saveBookQuizScore","bookCode","total","correct","response","saveBookQuizScoreAction","interactive","callInteractionMethod","reward","eggs","BookResultVideo","BookcaseComponent","returnToHouse","returnToHouseAction","CritterBook","playVideo","critterId","playVideoAction","Critter","Lobby","startQuiz","quizNumber","startQuizAction","Quiz","goToLobby","goToLobbyAction","completeDrivingTest","correctAnswers","incorrectAnswers","completeDrivingTestAction","startRace","startRaceAction","RacingGame","incrementScore","incrementScoreAction","exit","exitAction","GamesComponent","purchaseGamePlay","gameId","purchaseGamePlayAction","PlayGameComponent","saveGameScore","arg","saveGameScoreAction","FinishedReLessons","goToSkillsBank","goToSkillsBankAction","goToStorylands","goToStorylandsAction","goToIndex","goToIndexAction","goToReadingEggspress","goToReadingEggspressAction","goToPrevMap","goToPrevMapAction","LessonActivityGame","rewardStudent","saveProgressAction","saveLearningState","saveLearningStateAction","skipLesson","skipLessonAction","abortSkipLessonAttempt","abortSkipLessonAttemptAction","captureAskReggieInteraction","captureAskReggieInteractionAction","amount","PlayActivity","PlayRoom","showBook","showBookAction","showGame","game","showGameAction","showVideo","showVideoAction","Plaza","department","label","_dec2","day","toDateString","Date","_dec3","voteData","_dec4","dateVoted","_dec5","plazaPollId","votedAnswer","_dec6","gotoShopDepartment","goToDay","queryParams","setWeeklyVoteData","fixture","fixtureFunctions","resetWeeklyPoll","weeklyPoll","postAnswer","postWeeklyPoll","getWeeklyPoll","PuzzleGame","saveScore","score","saveScoreAction","goBackToLobby","goBackToLobbyAction","PuzzleLobbyGame","showPuzzle","puzzleName","showPuzzleAction","ShopGame","purchaseItem","item","result","purchaseAction","changeDepartment","changeDepartmentAction","gotoCatalogue","gotoCatalogueAction","Catalogue","purchaseBundle","items","bundleId","purchaseBundleAction","bundlePrice","bundlePriceAction","backToShop","backToShopAction","timeToNextMonth","timeToNextMonthAction","SongsGame","SongsLobby","video","FinishedReSpelling","MapGame","playLesson","playLessonAction","playQuiz","playQuizAction","prevMap","prevMapAction","nextMap","nextMapAction","MysteryGame","grantMysteryItem","itemId","grantMysteryItemAction","BonusGame","FinishedStorylands","lessonId","playBonusGame","playBonusGameAction","ToggleDebug","debugAllowed","debugMode","buttonText","_this$debugMode","enabled","toggleDebug","disable","enable","blur","DialogCloseComponent","firstRowItemsSelector","HomeNavComponent","x","y","rotation","to","firstCurve","motionPath","curviness","ease","secondCurve","_alignItems","navList","_alignItemsAlongCurve","firstTween","secondTween","itemSelector","curve","tween","querySelectorAll","duration","firstRow","firstRowPlacement","iconPlacement","time","left","offsetWidth","top","offsetHeight","offset","h","innerHeight","w","innerWidth","scale","min","resize","resizeNavItemsList","style","transform","toFixed","NavItemEgg","lowercaseItemName","String","itemName","toLowerCase","_this$args$eggs","eggTextWidth","eggsCount","widthReductionDueToOverlap","reduce","textWidth","number","characterWidth","eggsProcessed","pos","width","res","reverse","reducedSvgWidth","NavItemShop","themeSvgName","theme","NavItemSimple","LoadingScreenComponent","loadingUi","isLoading","hideLoadingScreen","hide","BooksRead","booksRead","booksCount","NavigationCircles","svgSize","svgRadius","stroke","circleXY","OfflineScreen","setupRouterListener","willDestroy","teardownRouterListener","routerHandler","t","transition","isAborted","bind","routerHandlerReference","on","off","QuestNotificationComponent","currencyAmount","student","quest","currentQuest","alertAnytime","displayQuestAlertIfRequired","showQuestAlert","questGoalForNotification","inAssignmentMode","assignments","hasTask","manifests","acknowledgeQuestGoalAlert","goalId","awarded","closeQuestAlert","onContentError","errorHandler","handleContentUnhandledError","readyForUserInput","WorldsBackButton","handleClick","onClick","Controller","toggleErrorMessage","showErrorMessage","bye","session","signOut","debugValue","certificateUrl","currentMap","model","Error","myAwardsContentSpec","unhandledError","print","printCertificate","isNativeMobile","deviceDetection","goHome","goToHouse","studentDisplayName","capitalize","firstName","goToBooks","bookId","saveAvatar","_ref$DNA","DNA","arms","legs","head","egg","extra","hat","decal","sunnies","avatarUpdate","prefetch","avatarUrl","goToShop","quizType","quizId","saveDrivingTestQuizResultMutationDocument","graphql","useMutation","isAssignmentMode","_this$model","shouldLogout","rosterEnabled","currentTask","assignmentMode","results","uuid","setRacingGameAvailability","passed","category","test_type","assignment","_this$assignments$cur","__typename","canCompleteDrivingTestAssignmentTask","quiz","assignmentTaskId","parseInt","assignmentUuid","gradePosition","saveDrivingTestQuizResultMutation","current","mutate","input","correct_answers","incorrect_answers","quizPosition","attemptUuid","handleError","saveDrivingTestGameResultMutationDocument","saveDrivingTestGameResultMutation","saveGameScoreMutationDocument","saveGameScoreMutation","purchaseGamePlayMutationDocument","purchaseGamePlayMutation","gamePlayPurchase","minigameAuth","enableGameNamed","updateItem","goToBookCase","goToChangeRoom","goToCritterBook","goToGamesMachine","goToTrophies","state","itemRecord","peekRecord","save","showCritters","showChangeRoom","showBookCase","showAwards","showArcade","lastSpellingLesson","lastStorylandsLesson","themeOptions","themesByMonth","index","getMonth","lesson","generateLessonOptions","generateMapOptions","_dec7","_dec8","month","_dec9","_descriptor8","_descriptor9","_descriptor0","_descriptor1","_descriptor10","showPlacementTestText","studentProgress","showLessonsPlacementTest","eggsAsArray","split","bannerSvgName","bannerName","currentLessonTitle","currentLesson","lessonsCurrentLesson","hasFinishedLessons","gamesLocked","isAreaLocked","awardsLocked","drivingTestsLocked","houseLocked","puzzlesLocked","shopLocked","spellingLocked","storyFactoryLocked","storylandsLocked","storylandsIcon","spellingIcon","drivingTestsIcon","storyFactoryIcon","greetings","myLessonsTitle","welcomeGreeting","sample","isAuLocale","accent","showMyReadingGoals","task","assignmentThumbnailUrl","_this$task","thumbnailUrl","assignmentTitle","_this$task2","join","assignmentName","matcher","title","replace","assignmentDueDate","formatDueDate","endAt","assignmentTimeRemaining","dateFromNow","now","assignmentInstruction","AssignmentTaskLesson","AssignmentTaskSpelling","AssignmentTaskClinkerCastle","AssignmentTaskDrivingTests","startTask","targetRouteParams","myProgram","storylands","storylandsCurrentLesson","storylandsCurrentMap","spelling","spellingCurrentLessonNumber","correctSpellingMap","spellingCurrentMap","myReadingGoals","lessons","lessonsCurrentMap","drivingTests","readingJournal","goToReadingJournal","_config$APP$apiEndpoi","location","network","isOffline","offlineScreen","display","base","origin","rexLoginUrl","URL","searchParams","assign","storyFactory","house","awards","games","plaza","shop","puzzles","critters","play","songs","goToChangingRoom","resetProgressToPlacementTest","resetReadingPlacementTestProgress","resetProgressToLessonPosition","resetReadingLessonProgress","resetProgressToMapQuizPosition","resetReadingMapQuizProgress","resetProgressToCompleteLessonsPrecinct","goToSpellingLesson","completeSpellingLesson","goToStorylandsLesson","completeStorylandsLesson","setTheme","qa_month","svgString","height","certificateContentSpec","isLastLessonsMap","lessonsLastMap","pendingCertificateId","saveCertificate","_result$certificateSa","uploadSvgWithRetries","expiryRetries","fetchUploadUrl","_fetchUploadUrl","certificate","savedCertificateUrl","certificateSave","isErrorRepresentingNetworkError","contentError","pendingCertificate","getPendingCertificateUploadUrl","getPendingCertificate","fetch","uploadUrl","defaultCertificateUrl","_this$model$variables","_this$model$variables2","mapResult","colour","percentage","date","studentName","certData","base64Url","base64url","TextEncoder","encode","pad","href","fetchDefaultCertificateSvg","text","defaultCertificateSvg","redirectToReadingEggspress","product","lessonsPerMap","progress","answers","correct_10","correctAnswer","isCorrect","studentAnswer","correct_9","correct_8","correct_0","_descriptor11","_descriptor12","_descriptor13","_descriptor14","askReggieLessonSkipAttempt","_this$askReggie$data","askReggie","activityId","activityIndex","nextActivity","nextReadingActivityForLesson","lessonInPrecinct","goToMap","saveSkillsQuizResult","recoverableErrors","goToCurrentLesson","currentPositionTitle","remoteId","studentContext","taskId","canCompleteLessonAssignmentTask","precinct","mapId","calculateMap","lessonPreviouslyCompleted","lessonsCurrentLessonNumber","renderQuestAlert","completeActivity","nextRoute","activityInLesson","incrementEggs","eggsToIncrement","flyingEggs","open","_this$assignments$cur2","_result","progressSnapshot","snapshotProgress","_args$uuid","lessonActivityMutations","saveReadingLessonActivityResult","captureCompleteActivity","readingLessonActivityResultCreate","readingLessonActivityResult","_ref$learningState","learningState","content","activityName","_objectWithoutProperties","_excluded","attempts","interactions","learningStateContextUuid","captureLearningState","activityContent","activityLearningState","newActivityID","completeQuiz","_this$assignments$cur3","sanitisedAnswers","_result$readingEndOfL","readingEndOfLessonQuizResultCreate","readingEndOfLessonQuizResult","attempt","autoPassed","eggsEarned","auto_passed","_this$askReggie$data2","currentActivity","_this$model$askReggie","askReggieContentVariables","_excluded2","properties","posthog","capture","lessonsCurrentActivity","_this$isAssignmentMod","lessonMatchesProgress","activity_type","activityType","progress_lesson","progress_activity","progress_map","lesson_matches_progress","activity_matches_progress","map_matches_progress","assignment_mode","max_lives","maxLives","getObjectDetails","variant","askReggieQuery","askReggieVariables","askReggieAction","_this$askReggie$data3","typename","warn","finalWorld","learningWorlds","previousMapId","learningWorldsEnabled","lastMap","generateResult","correctCount","totalCount","categoryResults","incorrect","saveReadingMapQuizResultMutationDocument","passQuiz","isProcessingQuizDebugAction","saveReadingMapQuizResult","failQuiz","saveReadingMapQuizResultMutation","quizCompleted","fetchProgress","hasPendingCertificate","e","r","l","call","Symbol","toPrimitive","TypeError","_toPrimitive","_toPropertyKey","n","a","keys","saveReadingLessonPlacementTestResultMutationDocument","placementTestComplete","skipped","saveReadingLessonPlacementTestResultMutation","skippedTest","clearWorldsFromApolloCache","completePlacementTest","_ref2$learningState","o","hasOwnProperty","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","propertyIsEnumerable","skipPlacementTest","studentAvatarUrl","nextLesson","showSpellingPlacementTest","goToBookReader","scrollToBookReader","_windowScrollTo","body","scrollHeight","scrollToTop","handleMouseEnter","element","scaleX","scaleY","handleMouseLeave","scrollTo","goToQuiz","goToMilestones","createQuizResult","readingGoals","readingGoalsQuizResultCreate","_result$readingGoalsQ","readingGoalsQuizResult","eggsReward","book","disableQuiz","letter","gamePath","puzzleId","puzzleScore","startCase","findAll","saveBookQuizResultMutationDocument","_this$locationTracker","locationTracker","getPreviousRoute","saveBookQuizResultMutation","bookQuizResultCreate","bookQuizResult","bookshelf","findRecord","reload","isReturning","Promise","resolve","isCatalogueRoute","currentRouteName","purchase","replaceWith","timeToNextTheme","lastSpellingMap","saveSpellingLessonActivityResultMutationDocument","saveSpellingLessonQuizResultMutationDocument","pass","fail","debug1","debug2","debug3","debug4","debug5","debug6","debug7","debug8","debug9","debug10","debug11","debug12","sideBarActivityData","isAssignment","spellingCurrentLesson","canCompleteSpellingAssignmentTask","saveSpellingLessonActivityResultMutation","spellingLessonActivityResultCreate","spellingLessonActivityResult","saveQuizResult","_correct","_total","saveSpellingLessonQuizResultMutation","_data$spellingLessonQ","spellingLessonQuizResultCreate","spellingLessonQuizResult","passedQuiz","earnedMysteryGift","setMysteryGiftAvailability","collectMysteryGift","isOnFinalMap","nextMapId","saveSpellingMapQuizResultMutationDocument","debug_spelling_map_quiz_1","debug_spelling_map_quiz_2","debug_spelling_map_quiz_3","debug_spelling_map_quiz_4","debug_spelling_map_quiz_5","debug_spelling_map_quiz_6","debug_spelling_map_quiz_7","debug_spelling_map_quiz_8","debug_spelling_map_quiz_9","debug_spelling_map_quiz_10","saveSpellingMapQuizResultMutation","free","unloadRecord","saveSpellingLessonPlacementTestResultMutationDocument","saveSpellingLessonPlacementTestResultMutation","saveStoryEntry","entry","loadEntry","newEntry","loadContest","returnToLobby","enterShowRoom","enterFactoryFloor","rating","voteForEntry","story_factory_rating","saveClinkerCastleLessonActivityResultMutationDocument","saveClinkerCastleLessonQuizResultMutationDocument","_this$model2","_this$model3","_this$model4","canPlayLessonActivity","reportQuizState","getStorylandsQuizState","setQuizState","setStorylandsQuizState","clearQuizState","playBook","canCompleteStorylandsAssignmentTask","saveClinkerCastleLessonActivityResultMutation","clinkerCastleLessonActivityResultCreate","clinkerCastleLessonActivityResult","saveClinkerCastleLessonQuizResultMutation","clinkerCastleLessonQuizResultCreate","clinkerCastleLessonQuizResult","login","goToNavigationItem","worldId","optional","onboardingSectionComplete","saveInteraction","world","interaction","includes","onboardingSectionId","onboardingSection","BOOK_CODE_OPTIONS","eventName","captureContentEvent","eventPayload","recoverabelErrors","_ref2$dna","dna","goToCatalogue","position","_dec0","_dec1","_dec10","_dec11","updateAreaRevealPosition","resetProgress","resetPollAttempts","worldResetReflected","_await$Promise$all2$","all","fetchWorldData","fetchPolicy","refetchStudent","areaRevealPosition","previousWorldsOnboarding","studentStartingLesson","resetLearningWorlds","resetOverlayVisible","resetWorldOnboarding","resetWorldInteractions","setTimeout","reloadPage","lessonNumber","areaRevealId","resetAreaRevealPosition","resetWorldAreaRevealPosition","resetOnboarding","resetInteractions","_ref7","_ref8","jesterStateVariables","navigationItems","answerValues","backRoute","returnToMap","completeLesson","getReadingActivitiesByLessonId","find","ReadingActivityEnum","finalActivity","lastReadingActivityForLesson","alignsWithProgress","return_to","setupDeprecationWorkflow","workflow","handler","matchId","source","_source","documents","types","SaveDrivingTestQuizResultDocument","SaveDrivingTestGameResultDocument","SaveGameScoreDocument","PurchaseGamePlayDocument","SaveReadingMapQuizResultDocument","SaveReadingLessonPlacementTestResultDocument","SaveBookQuizResultDocument","SaveSpellingLessonActivityResultDocument","SaveSpellingLessonQuizResultDocument","SaveSpellingMapQuizResultDocument","SaveSpellingLessonPlacementTestResultDocument","SaveClinkerCastleLessonActivityResultDocument","SaveClinkerCastleLessonQuizResultDocument","GetInitialAppDataDocument","StudentMyAwardsFragmentFragmentDoc","GetMyAwardsDocument","ReadBooksDocument","GetGamesDocument","RecommendedBooksDocument","ReadingActivityFragmentFragmentDoc","ReadingActivitiesDocument","StudentAskReggieDataFragmentFragmentDoc","GetStudentAskReggieDocument","AskReggieLessonSkipAbortDocument","AskReggieAttemptLessonSkipDocument","AssignmentTaskFragmentDoc","GetStudentCurrentTaskDocument","BookDocument","CertificateFragmentFragmentDoc","GetCertificatesDocument","PendingCertificateFragmentFragmentDoc","GetPendingCertificateDocument","SaveCertificateDocument","GetPendingCertificateUploadUrlDocument","ResetReadingLessonProgressDocument","ResetReadingMapQuizProgressDocument","ResetReadingPlacementTestProgressDocument","ResetStudentWorldInteractionDocument","ResetStudentWorldAreaRevealPositionDocument","ResetStudentWorldOnboardingDocument","WorldDataFragmentFragmentDoc","GetWorldDataDocument","CreateStudentWorldInteractionDocument","SetStudentWorldAreaRevealPositionDocument","CompleteStudentWorldOnboardingSectionDocument","SaveSkillsQuizResultDocument","SaveReadingLessonActivityResultDocument","StudentQuestDataFragmentFragmentDoc","GetStudentQuestDocument","AcknowledgeQuestGoalAlertDocument","ReadingGoalsQuizFragmentFragmentDoc","ReadingGoalsQuizSummaryFragmentFragmentDoc","QuizAnswerFragmentFragmentDoc","ReadingGoalsQuizResultFragmentFragmentDoc","GetReadingGoalsQuizzesDocument","GetReadingGoalsQuizRecordDocument","CreateReadingGoalsQuizResultDocument","CapturePageViewDocument","SaveReadingActivityLearningStateDocument","StudentProgressFragmentFragmentDoc","StudentProgressDocument","StudentProgressionSequenceMigrateDocument","AvatarUpdateDocument","StudentUserFragmentFragmentDoc","StudentLocaleFragmentFragmentDoc","GetStudentDocument","PlazaPollFragmentFragmentDoc","GetPlazaPollsDocument","SavePlazaPollVoteDocument","DeletePlazaPollVoteDocument","AskReggieAvailableActionEnum","AskReggieUnavailableReasonEnum","BadgeColourEnum","CertificateColourEnum","CustomerTypeEnum","DrivingTestCategoryEnum","Framework","QuestGoalStatusEnum","ReadingGoalsQuizAreaEnum","ReadingGoalsQuizLevelEnum","kind","definitions","typeCondition","selectionSet","selections","directives","alias","operation","variableDefinitions","variable","fields","mockSaveDrivingTestQuizResultMutation","resolver","mutation","mockSaveDrivingTestGameResultMutation","mockSaveGameScoreMutation","mockPurchaseGamePlayMutation","mockSaveReadingMapQuizResultMutation","mockSaveReadingLessonPlacementTestResultMutation","mockSaveBookQuizResultMutation","mockSaveSpellingLessonActivityResultMutation","mockSaveSpellingLessonQuizResultMutation","mockSaveSpellingMapQuizResultMutation","mockSaveSpellingLessonPlacementTestResultMutation","mockSaveClinkerCastleLessonActivityResultMutation","mockSaveClinkerCastleLessonQuizResultMutation","mockGetInitialAppDataQuery","mockReadingActivitiesQuery","mockGetMyAwardsQuery","mockReadBooksQuery","mockGetGamesQuery","mockRecommendedBooksQuery","mockGetStudentAskReggieQuery","mockAskReggieLessonSkipAbortMutation","mockAskReggieAttemptLessonSkipMutation","mockGetStudentCurrentTaskQuery","mockBookQuery","mockGetCertificatesQuery","mockGetPendingCertificateQuery","mockSaveCertificateMutation","mockGetPendingCertificateUploadUrlQuery","mockResetReadingLessonProgressMutation","mockResetReadingMapQuizProgressMutation","mockResetReadingPlacementTestProgressMutation","mockResetStudentWorldInteractionMutation","mockResetStudentWorldAreaRevealPositionMutation","mockResetStudentWorldOnboardingMutation","mockGetWorldDataQuery","mockCreateStudentWorldInteractionMutation","mockSetStudentWorldAreaRevealPositionMutation","mockCompleteStudentWorldOnboardingSectionMutation","mockSaveSkillsQuizResultMutation","mockSaveReadingLessonActivityResultMutation","mockGetStudentQuestQuery","mockAcknowledgeQuestGoalAlertMutation","mockGetReadingGoalsQuizzesQuery","mockGetReadingGoalsQuizRecordQuery","mockCreateReadingGoalsQuizResultMutation","mockCapturePageViewMutation","mockSaveReadingActivityLearningStateMutation","mockStudentProgressQuery","mockStudentProgressionSequenceMigrateMutation","mockAvatarUpdateMutation","mockGetStudentQuery","mockGetPlazaPollsQuery","mockSavePlazaPollVoteMutation","mockDeletePlazaPollVoteMutation","_gql","possibleTypes","AskReggie","Assignment","AssignmentTask","AssignmentTaskDetails","GamePlayPurchaseOutput","ItemGrantOutput","ItemPurchaseOutput","ItemUpdateOutput","QuestGoalEasy","QuestGoalPrimary","ReadingActivity","appVersion","_","hash","version","versionOnly","hideSha","shaOnly","hideVersion","match","showExtended","versionExtendedRegExp","versionRegExp","shaRegExp","helper","pluralize","singularize","styleNamespace","componentName","podNames","titleCase","Helper","compute","translationKey","translate","initialize","initializerFactory","application","registerOptionsForType","singleton","deferReadiness","async","setupMsw","then","advanceReadiness","ONE_DAY","initialState","db","acknowledgeQuestGoal","_state$quest3","_state$quest4","goal","primaryGoal","easyGoal","Complete","rewardAmount","completeWorldOnboardingSection","section","worldOnboardingSections","createAssignmentTask","toISOString","message","assignmentTasks","createBadge","badge","Bronze","badges","createBook","createCertificate","createPendingCertificate","Gold","scorePercentage","quizResultCreatedAt","createPuzzleScore","createQuestGoal","updateQuest","goalType","progressCurrent","progressTotal","Incomplete","createReadBook","createReadingActivity","createReadingGoalsQuiz","createReadingGoalsQuizSummary","quizSummary","attemptsThisWeek","secondsToPass","timestamp","readingGoalsQuizSummaries","createReadingLesson","activityCount","createRecommendedBook","createSpellingLesson","spellingLesson","activities","spellingLessons","createStorylandLesson","storylandLesson","storylandLessons","createStudent","createWorldInteraction","interactionId","_state$worldInteracti2","existing","worldInteractions","deleteAssignmentTask","filterBy","deleteBadges","deletePendingCertificate","deleteQuest","findBadge","predicate","findBy","findPuzzleScore","puzzleScores","getBook","getGames","gameIds","buildGame","getMapLesson","getLessonActivities","readingActivities","getPlazaPolls","plazaPolls","getPuzzleScores","getReadBooks","readBooks","getReadingActivities","getReadingGoalQuizzes","readingGoalsQuizzes","getRecommendedBooks","recommendedBooks","getStudent","readingGoalsMinimumLevel","K","readingGoalsQuizSecondsToNextWeek","targetProgressionSequenceVersion","assignmentTask","first","certificates","getStudentItems","studentItems","getWorldData","_state$worldInteracti","_state$worldAreaRevea","previousInteractions","worldAreaRevealPositions","getWorldOnboardingSections","incrementStudentEggs","loadFixtures","names","lessonsBooks","storylandsBooks","worldsBookAreaBooks","createStudentItem","reset","delete","resetWorldOnboardingSections","_state$pendingCertifi","_state$pendingCertifi2","cert","_existing$personalBes","_existing$highScores","gameScores","personalBest","max","highScores","sort","b","setWorldAreaRevealPosition","updateAskReggie","updateDna","updateProgress","update","_input$progressionSeq","progressionSequenceVersion","clinkerCastle","updateProgressionSequenceVersions","targetVersion","currentVersion","updateQuestGoal","questGoal","updateStudent","gamesAccess","lastName","playroomAccess","customerType","B2CStudent","parentId","worldsStartingLesson","dnaHash","coverUrl","has","createdAt","UTC","studentItem","aisle","image_url","animation_url","animation_json","readingActivity","Interactive","Caper","lessonInMap","manifestBundle","manifestKey","_saved$personalBest","_saved$highScores","defaultPersonalBest","saved","personalBestScore","highScore","area","PrintConcepts","badgeReward","level","_state$quest$easyGoal","_state$quest","_state$quest$primaryG","_state$quest2","puzzle_name","disabled","showPlacementTest","sightWords","contentWords","lettersAndSounds","newMap","images","avatar","decal_27","default_arms_2","arm1","arm2","default_head_4","default_legs_1","leg1","leg2","default_sunnies_2","egg_88","extra_10","hat_13","makeBook","_ref$coverUrl","covers","front","imageURL","pages","sections","quizQuestions","myProgramBooks","recommended_books","cover_url","lessonsSeen","file","thumb","caperModule","times","flat","books_read","step","progressionSequence","Book","Video","Jester","Alphabet","Comprehension","HighFrequencyWords","Phonics","PhonologicalAwareness","Spelling","Vocabulary","One","Two","spelling_progress","lesson_quiz_summary","map_quiz_summary","highest_percentage","current_lesson_number","initial_lesson_completed_at","initial_lesson_number","spelling_results","all_maps","best_lesson_quiz_number","best_lesson_quiz_score","first_lesson_quiz_completed_at","first_lesson_quiz_number","lesson_quizzes_average_score","lesson_position","best_map_quiz_percent","presenting","end_date","winner","author","submitted","page_position","words","shortlist","voting","fill","ratings","contest","token","ofrepHandlers","http","post","HttpResponse","json","flags","reason","metadata","metricsCollectorHandlers","handlers","passthrough","info","avatarContent","put","request","_await$request$json","studentId","getAll","user_id","expired_at","trunc","puzzle_scores","puzzle_score","spellingProgress","spellingResults","myHouse","environment","lessonsHandlers","jester","contentLoaderHandlers","storyFactoryContestPrevious","storyFactoryContestVoting","storyFactoryContest","story_factory_entry","story_factory_contest_id","student_id","storyFactoryHandlers","lastLessonsLesson","scenarioName","_URLSearchParams$get","URLSearchParams","search","runtimeScenarios","scenarios","worker","setupWorker","unauthenticated","_student$name","_variables$input","gameScoreSave","studentProgressionSequenceMigrate","_variables$input2","filter","answer","studentQuestGoalAcknowledgeComplete","_db$getBook","start","after","end","slicedReadBooks","edges","node","cursor","pageInfo","endCursor","_variables$input3","SkipLesson","FailedSkipAttempt","_student$quest","previous","badgeColourScores","Silver","bestPreviousBadge","bestPreviousBadgeColour","bestPreviousScore","_badgeColourScores$ge","_ref9","_ref0","badgeColor","saveReadingActivityLearningState","success","_ref1","_variables$input4","_student$quest2","ShowCompleteAlert","_ref10","_student$quest3","_variables$input5","mapNumber","studentProgressReadingLessonReset","_ref11","_student$quest4","studentProgressReadingMapQuizReset","studentProgressReadingPlacementTestReset","_ref12","_student$quest5","_variables$input6","readingLessonPlacementTestResultCreate","_ref13","_variables$input7","pendingCertData","_student$quest6","readingMapQuizResultCreate","_ref14","_variables$input8","_ref15","_variables$input9","_ref16","newLesson","spellingMapQuizResultCreate","_ref17","_variables$input0","spellingLessonPlacementTestResultCreate","_ref18","_variables$input1","milestone","_ref19","_variables$input10","_ref20","_variables$input11","prize","_ref21","_variables$input12","SightWords","ContentWords","LettersAndSounds","drivingTestQuizResultCreate","_ref22","drivingTestGameResultCreate","_ref23","askReggieAttemptLessonSkip","askReggieLessonSkipAbort","capturePageView","_ref24","_ref25","_variables$input13","studentWorldInteractionCreate","_ref26","studentWorldInteractionReset","_ref27","_variables$input14","studentWorldAreaRevealPositionSet","_ref28","studentWorldAreaRevealPositionReset","_ref29","_student$id","studentWorldOnboardingSectionComplete","_student$id2","studentWorldOnboardingReset","attr","Model","toJSON","hasMany","inverse","modifier","_element","_named","listener","handleLoadComplete","runInDebug","addEventListener","removeEventListener","named","fit","fitty","cleanup","instance","timeline","kill","Modifier","paused","onComplete","startPositionLeft","startPositionTop","autoAlpha","zIndex","keyframes","finalPoint","getFlightPath","Sine","easeInOut","sounds","Linear","easeNone","stagger","each","incrementPoints","registerDestructor","canvasElement","modify","querySelector","restart","timelineHideEggs","getRelativePosition","wiggleFocus","selector","_element$querySelecto","wiggleBlur","_element$querySelecto2","positional","HTMLButtonElement","bindAll","_params","_ref$size","size","visibility","spinner","createElement","fontSize","classList","parentElement","appendChild","onload","remove","positionElement","popoutTimeline","opacity","popOutAnimation","image","delay","transformOrigin","repeat","yoyo","unbind","sound","loop","_element$children","children","second","shrink","fadeOut","expand","fadeIn","initialLoadingScreen","getElementById","parentNode","removeChild","svgContainer","isOnline","triggeredTimes","scrollToItem","scrollUp","itemClosestToCenterOfList","scrollDown","list","$","stop","listHeight","itemHeight","getBoundingClientRect","getComputedStyle","parseFloat","marginTop","marginBottom","outerHeightWithMargin","scrollTop","animate","_centerItem$attribute","listItems","listRect","round","centerOfList","topOfRange","bottomOfRange","centerItem","rect","bottom","attributes","getNamedItem","onlineCalled","debounced","callback","timeout","cancel","cancelAnimationFrame","requestAnimationFrame","debounce","parent","use","resource","apollo","lookup","watchOptions","fragment","watchFragment","currentResult","cell","cache","identify","initialResult","readFragment","subscription","Fragment","clientOptions","mutateResult","Mutation","watchQuery","partial","refetch","updateQuery","mapFn","Query","Router","EmberRouter","locationType","rootURL","initialAppQueryDocument","isGuestSession","_transition$targetNam","targetName","uncheckedRoutes","worldsRestrictionExemptRoutes","Route","qaMonth","as","refreshModel","_descriptor15","_descriptor16","_descriptor17","_descriptor18","_descriptor19","_descriptor20","_descriptor21","_descriptor22","_descriptor23","_descriptor24","_descriptor25","_descriptor26","removeVisibilityTracking","setupVisibilityTracking","_showLoadingScreen","_refreshAndTrack","_hideLoadingScreen","isIos","removePinchToZoom","passive","_transition$to","optOutLoadingScreen","show","_transition$to2","_transition$from","_transition$to3","_transition$to4","_transition$to5","routeInfo","willHideLoadingScreenManually","resolvedModel","_transition$to6","beforeModel","_transition$to7","asGuest","_setCaperMusicToggle","setup","releaseChecker","longSessionKiller","sessionTracker","timeOnTask","setupV2","_addCaperFeatures","isEsmPreferred","setAccent","isNaN","setMonth","setDate","afterModel","_model","_transition$to8","_transition$to9","_transition$to0","_redirectIfRestrictedToWorlds","checkTransition","_transition$to1","routeName","_capturePageView","_transition$to10","_this$router$currentU","currentURL","contentType","refresher","refreshIfSafeAndScheduled","_trackPage","metrics","trackPage","pingTaskByRoute","catch","willTransition","_transition$to11","isAuthorizationError","signIn","isApolloError","CAPER_FEATURES","CAPER_MUSIC_ENABLED","StudentMyAwardsFragment","getMyAwardsQueryDocument","buildRouteInfoMetadata","NotAuthenticatedError","maxMap","supportingAssets","storyFactoryAssetRequest","storyFactoryEntriesRequest","urlMaker","urlForInteractive","interactiveConfig","load","ReadBooksQueryDocument","_awaitAsyncGenerator","_result$data$student","_edges$map$filter$map","_result$data$student$","_result$data$student$2","edge","redirect","getProperties","critter_id","skipSaveProgress","numberOfLessonsCompleted","lessonsLastCompletedLessonNumber","lesson_number","_this$studentProgress","drivingTestsPosition","sight_words","letters_and_sounds","content_words","quiz_id","racingGameAvailable","Boolean","game_id","claimGameToken","GamesQueryDocument","_data$games","gamesUrl","_await$Promise$all2","ky","gamesManifest","personal_bests","_game$personalBest$sc","_game$personalBest","high_scores","imageUrl","animationUrl","animationJson","currentMonth","reggieThemeImage","reggieImages","months","reggieImage","preloadImages","_student$pendingCerti","padStart","lesson_id","setCurrentLesson","activitiesForLesson","manifestBundles","sideBarData","hasReadingActivitiesByLessonId","lessonManifestBundles","fetchManifestBundlesForActivities","getActivityThumbnail","activity_id","setCurrentActivity","lessonModel","modelFor","sideBarActivity","canPlayActivity","contentVariables","bookVariables","bookContent","fetchContent","maxLivesVariables","getMaxLivesVariables","isCaperActivity","getManifestBundle","trackLearningStateContext","activityFramework","getLearningStateVariables","captureEnterActivity","progressLesson","progressActivity","progressMap","urlFor","precinctLocation","metricsCollectorLocationFromProgress","studentPrecinctProgress","activityVariant","_this$lessons","_mapParams$map_id","mapParams","paramsFor","map_id","setCurrentMap","canPlayQuizForMap","quizComplete","isQuizComplete","first_map_in_session","sessionStorage","getItem","setItem","jesterVariables","canPlayMapQuiz","firstMapInSession","lastMapInProgram","lessonQuizResults","progressCurrentLessonNumber","_getQuizResultsForMap","getQuizResultsForMap","mapQuizResult","_certificates$find","getCertificates","previousBestScorePercentage","loginWarning","warning","RecommendedBooksQueryDocument","_data$student$readBoo","_data$student","_data$student$recomme","_data$student2","readBooksCount","setCurrentRoute","quizTileList","milestoneList","lastCompletedQuizTile","quizList","getQuizzes","_await$this$readingGo","getRecord","summaries","minimumLevel","secondsToNextWeek","quizTile","lastCompletedQuizId","playIntro","_this$user$student","studentData","quizData","validProps","NoAccessRoute","_validProps$get","access_type","ALLOWED_PREFIXES","_path$split2","prefix","skippable","show_end_buttons","currentTheme","urls","currentDate","weeklyPollData","areasUnlocked","avatarShop","houseShop","bookOfTheDay","includeId","_emberPuzzleScores$fi","puzzle_id","ReaderBookRoute","book_id","pageNumber","clinkerCastleHint","readingBookRequest","resultId","result_id","recommendedTargetRoute","SampleLessonRouteModel","hideBackButton","cloneDeep","findActivity","findActivityManifest","_this$activities","isIframe","getLessonActivity","validDepartment","allowedDepartment","willGotoShopPage","isOnCatalogueRoute","refresh","ShopDepartmentRoute","_shopModel$interactiv","shopModel","departments","manifest","videoId","video_id","showCloseButton","SpellingLessonActivity","isQuiz","_this$json","caper_module","SpellingLessonRouteModel","shouldForceAccess","assetPath","assets","lastActivity","_this$spelling","prefixUrl","avatarJsonRequest","allMaps","initialLessonCompletedAt","initialLessonNumber","highestPercentage","lessonQuizSummary","average_correct_count","highest_correct_count","lesson_quizzes","best_lesson_quiz_scores","quiz_complete","map_number","progressLessonNumber","progressLessonPosition","mysteryGiftAvailable","canAlwaysVisitPlacementTest","StorylandsLessonRouteModel","activityManifest","_this$findActivity","ensureAccessAllowed","_config$studentProgre","lastLesson","_manifest$content","currentActivityId","isRefreshable","currentActivityForLesson","StorylandsMapRouteModel","isFinishedStorylands","num","_StorylandsMapRouteMo","canPlayMap","world_id","highestUnlockedWorld","isContentUnlocked","building","contentId","isBuildingUnlocked","_await$this$learningW","highestCompletedLesson","displayBackButton","gamesAreaGameIds","backHref","hasAwards","avatarDna","hideHouseDepartment","willGoToShopIndex","currentWorld","progressCurrentMap","placementTestRequired","isWithinProgress","hideNavigationArrows","hideReggieVideo","ApplicationSerializer","ActiveModelSerializer","BookshelfSerializer","ApplicationEmbeddedRecordsSerializer","bookCovers","deserialize","serialize","normalize","typeClass","normalizedHash","_extractEmbeddedRecords","keyForRelationship","method","hasDeserializeRecordsOption","keyForAttribute","hasEmbeddedAlwaysOption","option","attrsOption","embedded","alwaysEmbed","attrs","camelize","serializer","eachRelationship","relationship","_extractEmbeddedHasMany","_extractEmbeddedBelongsTo","relationshipMeta","relationshipHash","_this$_normalizeEmbed","_normalizeEmbeddedRelationship","included","_this$_normalizeEmbed2","polymorphic","modelClass","serializerFor","JSONSerializer","Service","points","pointsToAward","maxPoints","steps","pointsPerStep","floor","pointsRemainder","splice","distributePoints","pop","ReadingActivityFragment","readingActivitiesQueryDocument","ActivityService","useQuery","_this$activitiesQuery","activitiesQuery","lessonsInReadingPrecinct","lessonActivities","readingActivitiesByLesson","at","loadDevMessages","loadErrorMessages","apolloURL","typePolicies","Student","read","readField","fieldName","charAt","dnaClone","_client","WeakMap","_apollo$connectToDevT","_classPrivateFieldInitSpec","InMemoryCache","introspectionResult","httpLink","createHttpLink","uri","errorLink","graphQLErrors","networkError","delayOpts","retryLink","RetryLink","retryIf","_input","isApolloNetworkErrorRetryable","_classPrivateFieldSet","ApolloClient","link","devtools","connectToDevTools","_classPrivateFieldGet","clearStore","waitFor","StudentAskReggieQueryDocument","askReggieLessonSkipAbortMutationDocument","askReggieAttemptLessonSkipMutationDocument","studentAskReggieQuery","_this$studentAskReggi","_this$data","_this$activity$activi","getStudentCurrentTaskQueryDocument","_this$_assignmentQuer","_assignmentQuery","fetchTaskIfDue","_refetchAfter","_this$currentTask","isEqual","transitionToArray","bookContentQueryDocument","_data$book","_loader","activityAccent","ContentLoader","adapterFor","manifestRequest","changingRoomRequest","getCertificatesQueryDocument","pendingCertificateQueryDocument","PendingCertificateFragment","saveCertificateMutationDocument","getPendingCertificateUploadUrlQueryDocument","_ref$fetchPolicy","saveCertificateMutation","updateCache","resetReadingLessonProgressMutationDocument","resetReadingMapQuizProgressMutationDocument","resetReadingPlacementTestProgressMutationDocument","resetStudentWorldInteractionMutationDocument","resetStudentWorldAreaRevealPositionMutationDocument","resetStudentWorldOnboardingMutationDocument","saveReadingLessonActivityResultMutationDocument","completeLessonsLesson","saveReadingLessonActivityResultMutation","resetReadingLessonProgressMutation","resetReadingMapQuizProgressMutation","resetReadingPlacementTestProgressMutation","resetStudentWorldInteractionMutation","resetStudentWorldAreaRevealPositionMutation","resetStudentWorldOnboardingMutation","_ref$name","_ref$message","logErrorIfActionable","handleUnrecoverableError","isErrorLike","isActionableError","JesterLoaderService","BUILDING_UNLOCK_LESSON","CONTENT_UNLOCK_LESSON","m","s","c","f","super_bouncy_ball","keepy_uppy","my_world_my_funny_cat","reading_eggs_the_squirrel","poetry_a_little_turtle","go_books_big_cat","easy_reads_bella_plays_hide_and_seek","storylands_what_did_buzz_boy_catch","p","z","juicy_slice","wheely_racer","reading_eggs_a_day_at_the_beach","poetry_sandcastles","storylands_the_mermaid","my_world_what_do_i_see","readzone_the_sand_dragon","v","d","j","q","read_runner","memory_match","reading_eggs_junior_nonfiction_machines_my_first_trucks","reading_eggs_junior_nonfiction_machines_my_first_tools","go_books_dozer_builds_a_hill","silly_stories_moose_with_a_tool_box","go_books_the_birdhouse_that_jack_built","worldDataQueryDocument","studentWorldInteractionCreateMutationDocument","studentWorldAreaRevealPositionSetMutationDocument","studentWorldOnboardingSectionCompleteMutationDocument","_this$user$student$wo","_BUILDING_UNLOCK_LESS","requiredLesson","_CONTENT_UNLOCK_LESSO","isStartingLessonWithinWorld","firstLesson","_student$world","extract","evict","gc","saveSkillsQuizResultMutationDocument","fetchManifestBundle","manifestBundleUrl","urlForManifestBundle","fetchManifest","uniqueActivitiesByFramework","uniqBy","_get","_lazy","_get2","_this$map","_this$lesson","isCurrentMap","isOnFinalLessonsMap","previousLessonMapId","storylandsQuizValues","_this$storylandsQuizD","storylandsQuizData","currentQuestion","canShowOfflineScreen","_this$network$status","shouldDisplay","_reloadWindow","_config$posthog","projectToken","apiHost","customProperties","isInstalled","$set","customer_type","_setup","init","api_host","autocapture","capture_pageleave","capture_pageview","capture_performance","advanced_disable_flags","bootstrap","distinctID","isIdentifiedID","StudentQuestQueryDocument","acknowledgeQuestGoalAlertMutationDocument","_this$_studentQuestQu","_studentQuestQuery","incompleteEarnEggGoals","_this$currentQuest","_this$currentQuest2","_this$currentQuest3","_acknowledgeQuestGoalAlertMutation","incrementEggGoals","_updateEggGoal","readingGoalsQuizzesQueryDocument","readingGoalsQuizRecordQueryDocument","readingGoalsQuizResultCreateMutationDocument","readingGoalsQuizResultCreateMutation","AuthSessionService","_navigate","loginUrl","logoutUrl","ok","codes","append","_id","Howl","src","onplayerror","spellingCurrentActivity","StoryFactoryService","storyEntry","story_factory_entry_pages_attributes","lessonMap","capturePageViewMutationDocument","saveReadingActivityLearningStateMutationDocument","sessionId","decodeSessionId","lastSessionId","_this$session$state$d","payloadSegment","base64","parse","atob","generalEventPayload","toLocaleLowerCase","activity_variant","session_id","event_type","event_name","event_payload","sendBeacon","metricsCollectorPayload","content_type","contentLocale","context","learningStateContexts","mostRecentLearningStateContextUuid","contextUuid","activity_content","activity_framework","activity_learning_state","activity_name","assignment_uuid","precinct_location","student_precinct_progress","attempt_uuid","start_time","startTime","end_time","endTime","completed","stepAttempt","responseTimeMs","step_attempt","response_time_ms","captureVisibilityChange","_this$router$currentU2","visibilityChangePayload","visibility_state","visibilityState","tabSeq","stampedPayload","tab_id","tabId","tab_seq","client_version","emberGitSha","client_ts","Blob","StudentProgressFragment","StudentProgressQuery","StudentProgressionSequenceMigrateMutation","useFragment","_this$progressFragmen","progressFragment","lessonsLevelRequired","minLevels","_this$progressFragmen2","_this$progressFragmen3","migrateProgressionSequence","hardRefresh","_data$progress","scheduleRefresh","progressQuery","currentThemeObject","themes","_config$themesByMonth","startOfNextMonth","getTime","setHours","setMinutes","setSeconds","setMilliseconds","hours","days","_ENV$APP","ENV","routeTaskIds","timeOnTaskUrl","totter","TimeOnTask","syncOptions","syncUrl","getAuthCallback","_this$session$state$d2","_this$totter","_taskIdForRoute","trackSession","created_at","keepalive","retry","limit","methods","flattenedRouteTaskIds","_flattenedRouteTaskIds","routeNames","taskIds","flattened","TomfooleryUrlBuilder","assetHost","forManifestBundle","interactiveId","avatarUpdateMutationDocument","StudentLocaleFragment","StudentQueryDocument","guestStudentId","isGuest","_this$_studentQuery$c","_studentQuery","_this$_studentQuery$c2","_this$_studentQuery$c3","_this$_studentQuery$c4","_this$_localeFragment","_localeFragment","isCanadaAware","setupFeatureFlags","setPerson","userID","subscribeToSessionChanges","targetingKey","provider","createOfrepInMemoryProvider","isAvailable","avatarUpdateMutation","unsubscribeFromSessionChanges","unsubscribeSessionChangeHandlers","onUnauthenticated","onMismatched","getPlazaPollsQueryDocument","savePlazaPollVoteMutationDocument","deletePlazaPollVoteMutationDocument","_transformPollDataForCaper","transformed","studentVotedAnswer","studentVotedToday","plazaPollVote","poll","pollResult","totalVotesCount","votedAnswersCount","sortedVotes","sortBy","votes","vote","count","_ref2$refetch","savePlazaPollVoteMutation","deletePlazaPollVoteMutation","obj","camelizeAsString","diff","DIFF_YEAR_AGO","_msToAbsolute","DIFF_MONTHS_AGO","DIFF_MONTH_AGO","DIFF_DAYS_AGO","DIFF_DAY_AGO","DIFF_HOURS_AGO","DIFF_HOUR_AGO","DIFF_MINUTES_AGO","DIFF_MINUTE_AGO","DIFF_SECONDS_AGO","DIFF_SECONDS_FROM_NOW","DIFF_MINUTE_FROM_NOW","DIFF_MINUTES_FROM_NOW","DIFF_HOUR_FROM_NOW","DIFF_HOURS_FROM_NOW","DIFF_DAY_FROM_NOW","DIFF_DAYS_FROM_NOW","DIFF_MONTH_FROM_NOW","DIFF_MONTHS_FROM_NOW","DIFF_YEAR_FROM_NOW","abs","ONE_MINUTE","ONE_SECOND","ONE_HOUR","ONE_MONTH","ONE_YEAR","ms","unit","converted","minutes","years","lessonType","numberOfLessons","numberOfMaps","propertyKey","DebugContent","DebugContentSymbol","for","setDebug","departmentToTest","AbortError","XMLHttpRequest","ScriptBlockedError","UnauthorizedError","HTTPError","isApolloLinkErrorLike","_error$graphQLErrors","hasStatusCode","statusCode","_e$extensions","extensions","ContentError","cause","monthIndex","MONTHS","_input$toISOString$sp","dateOfMonth","getDate","dayOfWeek","getDay","rel","promises","reject","Image","onerror","nativeMobilePrintUrl","printImage","hiddenPrintContainerId","printContainer","firstChild","hiddenImage","printPromise","badgesForCurrentMap","stars","starsForColour","certificateForCurrentMap","record","getOwner","_createSnapshot","_getParamValuesFromRouteInfo","paramNames","paramName","urlParams","blakeLocale","DEFAULT_LOCALE","translations","TRANSLATIONS","_en$in$uk$gb$language","languageKey","en","in","uk","gb","_localeFromBlakeData","translationsForLocale","defaultTranslations","translated","program","_ref$expiryRetries","headers","statusCodes","_error$response$heade","problem","_problem$detail","exec","detail","fixedResponseFirstWeekVoted","WeekId","prev","fixedResponseLastWeekVoted","fixedResponseNotVoted","fixedResponseZeroVotes","fixedResponseNoPreviousWeekData","currentIndex","shift","define","metaName","rawConfig","getAttribute","exports","decodeURIComponent","err","runningTests","require","create","dashboard","driving_tests","my_program","playroom","puzzle_park","story_factory","worlds_activity_area","worlds_book_area","worlds_dashboard","worlds_games_area","worlds_home_base","worlds_music_area"],"sources":["vendor/ember-cli/app-prefix.js","re-client/adapters/application.ts","re-client/adapters/caper-activity.ts","re-client/adapters/caper.ts","re-client/adapters/puzzle-score.ts","re-client/adapters/reading/book.ts","re-client/app.ts","re-client/components/activity-header.js","re-client/components/activity-sidebar.ts","re-client/components/activity-sidebar/activity-item.ts","re-client/components/activity-sidebar/activity-list.ts","re-client/components/activity-sidebar/nav-links.js","re-client/components/activity-sidebar/student-info.js","re-client/components/assignments/assignment-overlay.ts","re-client/components/book-shelf.js","re-client/components/content-interactive.ts","re-client/components/content-interactive/debug.ts","re-client/components/content-interactives/book-reader.js","re-client/components/content-interactives/book-reader/result-video.js","re-client/components/content-interactives/bookcase.js","re-client/components/content-interactives/critters/critter-book.js","re-client/components/content-interactives/critters/critter.js","re-client/components/content-interactives/driving-tests/lobby.js","re-client/components/content-interactives/driving-tests/quiz.js","re-client/components/content-interactives/driving-tests/racing-game.js","re-client/components/content-interactives/games.js","re-client/components/content-interactives/games/play-game.js","re-client/components/content-interactives/lessons/finished-re-lessons.js","re-client/components/content-interactives/lessons/lesson-activity-game.js","re-client/components/content-interactives/play/play-activity.js","re-client/components/content-interactives/play/play-room.js","re-client/components/content-interactives/plaza.ts","re-client/components/content-interactives/puzzles/puzzle-game.js","re-client/components/content-interactives/puzzles/puzzle-lobby-game.js","re-client/components/content-interactives/shop-game.js","re-client/components/content-interactives/shop-game/catalogue.js","re-client/components/content-interactives/songs/songs-game.js","re-client/components/content-interactives/songs/songs-lobby.js","re-client/components/content-interactives/spelling/finished-re-spelling.js","re-client/components/content-interactives/spelling/map-game.js","re-client/components/content-interactives/spelling/mystery-game.js","re-client/components/content-interactives/storylands/bonus-game.js","re-client/components/content-interactives/storylands/finished-storylands.js","re-client/components/content-interactives/storylands/map-game.js","re-client/components/debug-app/toggle-debug.js","re-client/components/device-rotate-notification.js","re-client/components/dialog/close.ts","re-client/components/dialog/overlay.js","re-client/components/dialog/panel.js","re-client/components/footer.js","re-client/components/full-page-alert.js","re-client/components/full-viewport.js","re-client/components/hidden-print-container.js","re-client/components/home-nav.ts","re-client/components/home-nav/nav-banner.js","re-client/components/home-nav/nav-item-egg.ts","re-client/components/home-nav/nav-item-reggie.js","re-client/components/home-nav/nav-item-shop.ts","re-client/components/home-nav/nav-item-simple.ts","re-client/components/home-nav/nav-welcome.js","re-client/components/loading-screen.ts","re-client/components/my-program/block-grid.js","re-client/components/my-program/block.js","re-client/components/my-program/book-cover.js","re-client/components/my-program/books-read.js","re-client/components/my-program/books-to-read.js","re-client/components/navigation-circles.js","re-client/components/offline-screen.js","re-client/components/quest/notification.ts","re-client/components/worlds-back-button.ts","re-client/controllers/application-error.ts","re-client/controllers/application.ts","re-client/controllers/awards.ts","re-client/controllers/bookcase.ts","re-client/controllers/bookshelf.ts","re-client/controllers/changing-room.ts","re-client/controllers/critters/critter.ts","re-client/controllers/critters/index.ts","re-client/controllers/driving-tests/index.ts","re-client/controllers/driving-tests/quiz.ts","re-client/controllers/driving-tests/racing-game.ts","re-client/controllers/games/game.ts","re-client/controllers/games/index.ts","re-client/controllers/house.ts","re-client/controllers/index.ts","re-client/controllers/lessons/certificate.ts","re-client/controllers/lessons/finished-re-lessons.ts","re-client/controllers/lessons/lesson/activity.ts","re-client/controllers/lessons/map/index.ts","re-client/controllers/lessons/map/quiz.ts","re-client/controllers/lessons/placement-test.ts","re-client/controllers/my-program.ts","re-client/controllers/my-reading-goals/index.ts","re-client/controllers/my-reading-goals/milestones.ts","re-client/controllers/my-reading-goals/quiz.ts","re-client/controllers/play/activity.ts","re-client/controllers/play/index.ts","re-client/controllers/puzzles/index.ts","re-client/controllers/puzzles/puzzle.ts","re-client/controllers/reader/book/index.ts","re-client/controllers/reader/book/page.ts","re-client/controllers/reader/result.ts","re-client/controllers/sample/lesson/activity.ts","re-client/controllers/shop.ts","re-client/controllers/shop/department/catalogue.ts","re-client/controllers/songs/index.ts","re-client/controllers/songs/video.ts","re-client/controllers/spelling/finished-re-spelling.ts","re-client/controllers/spelling/lesson/activity.ts","re-client/controllers/spelling/map/index.ts","re-client/controllers/spelling/map/quiz.ts","re-client/controllers/spelling/mystery-gift.ts","re-client/controllers/spelling/placement-test.ts","re-client/controllers/story-factory/floor.ts","re-client/controllers/story-factory/index.ts","re-client/controllers/story-factory/showroom.ts","re-client/controllers/storylands/bonus-game.ts","re-client/controllers/storylands/finished-re-storylands.ts","re-client/controllers/storylands/lesson/activity.ts","re-client/controllers/storylands/map.ts","re-client/controllers/unauthorised.ts","re-client/controllers/worlds/world/activity-area/activity.ts","re-client/controllers/worlds/world/activity-area/index.ts","re-client/controllers/worlds/world/book-area/index.ts","re-client/controllers/worlds/world/book-area/reader.ts","re-client/controllers/worlds/world/certificate.ts","re-client/controllers/worlds/world/games-area/game.ts","re-client/controllers/worlds/world/games-area/index.ts","re-client/controllers/worlds/world/home-base/awards.ts","re-client/controllers/worlds/world/home-base/changing-room.ts","re-client/controllers/worlds/world/home-base/index.ts","re-client/controllers/worlds/world/home-base/shop/catalogue.ts","re-client/controllers/worlds/world/home-base/shop/index.ts","re-client/controllers/worlds/world/index.ts","re-client/controllers/worlds/world/lessons/lesson/activity.ts","re-client/controllers/worlds/world/map-quiz.ts","re-client/controllers/worlds/world/map/index.ts","re-client/controllers/worlds/world/music-area.ts","re-client/deprecation-workflow.js","re-client/graphql/gql.ts","re-client/graphql/graphql.ts","re-client/graphql/index.ts","re-client/graphql/introspection-result.ts","re-client/helpers/app-version.js","re-client/helpers/pluralize.js","re-client/helpers/singularize.js","re-client/helpers/style-namespace.js","re-client/helpers/title-case.ts","re-client/helpers/translate.js","re-client/initializers/app-version.js","re-client/initializers/ember-data.js","re-client/initializers/msw.ts","re-client/instance-initializers/route-styles.js","re-client/mocks/db.ts","re-client/mocks/fixtures/avatar-content.js","re-client/mocks/fixtures/books.ts","re-client/mocks/fixtures/my-house.js","re-client/mocks/fixtures/my-program-books.js","re-client/mocks/fixtures/puzzle-scores.js","re-client/mocks/fixtures/reading-activities.ts","re-client/mocks/fixtures/reading-goals-quiz.ts","re-client/mocks/fixtures/spelling-progress.js","re-client/mocks/fixtures/spelling-results.js","re-client/mocks/fixtures/story-factory-contest-previous.js","re-client/mocks/fixtures/story-factory-contest-voting.js","re-client/mocks/fixtures/story-factory-contest.js","re-client/mocks/fixtures/student-items.ts","re-client/mocks/handlers.ts","re-client/mocks/index.ts","re-client/mocks/scenarios.ts","re-client/mocks/services.ts","re-client/models/book-cover.ts","re-client/models/bookshelf.ts","re-client/models/item.ts","re-client/models/puzzle-score.ts","re-client/modifiers/caper-load-complete.ts","re-client/modifiers/fit-text.ts","re-client/modifiers/flying-eggs-animation.ts","re-client/modifiers/hover-wiggle.ts","re-client/modifiers/loading-spinner.ts","re-client/modifiers/nav-banner-animation.ts","re-client/modifiers/nav-shop-animation.ts","re-client/modifiers/play-sound-on.ts","re-client/modifiers/reggie-loop-animation.ts","re-client/modifiers/remove-initial-loading-screen.ts","re-client/modifiers/show-offline-screen.ts","re-client/modifiers/sidebar-activity-list-scroll.ts","re-client/modifiers/update-online-called.ts","re-client/modifiers/window-resize.ts","re-client/resources/fragment.ts","re-client/resources/mutation.ts","re-client/resources/query.ts","re-client/router.ts","re-client/routes/application.ts","re-client/routes/awards.ts","re-client/routes/bookcase.ts","re-client/routes/bookshelf.ts","re-client/routes/catch-all-routes.ts","re-client/routes/changing-room.ts","re-client/routes/critters/critter.ts","re-client/routes/critters/index.ts","re-client/routes/driving-tests/index.ts","re-client/routes/driving-tests/quiz.ts","re-client/routes/driving-tests/racing-game.ts","re-client/routes/games.ts","re-client/routes/games/game.ts","re-client/routes/games/index.ts","re-client/routes/house.ts","re-client/routes/index.ts","re-client/routes/lessons.ts","re-client/routes/lessons/certificate.ts","re-client/routes/lessons/finished-re-lessons.ts","re-client/routes/lessons/lesson.ts","re-client/routes/lessons/lesson/activity.ts","re-client/routes/lessons/lesson/index.ts","re-client/routes/lessons/map.ts","re-client/routes/lessons/map/index.ts","re-client/routes/lessons/map/next.ts","re-client/routes/lessons/map/quiz.ts","re-client/routes/lessons/placement-test.ts","re-client/routes/login.ts","re-client/routes/logout.ts","re-client/routes/my-program.ts","re-client/routes/my-reading-goals/index.ts","re-client/routes/my-reading-goals/milestones.js","re-client/routes/my-reading-goals/quiz.js","re-client/routes/no-access.ts","re-client/routes/play.ts","re-client/routes/play/activity.ts","re-client/routes/play/index.ts","re-client/routes/plaza.ts","re-client/routes/puzzles/index.ts","re-client/routes/puzzles/puzzle.ts","re-client/routes/reader/book.ts","re-client/routes/reader/book/index.ts","re-client/routes/reader/book/page.ts","re-client/routes/reader/result.ts","re-client/routes/recommended.ts","re-client/routes/sample/lesson.ts","re-client/routes/sample/lesson/activity.js","re-client/routes/shop.ts","re-client/routes/shop/department.ts","re-client/routes/shop/department/catalogue.ts","re-client/routes/songs/index.ts","re-client/routes/songs/video.ts","re-client/routes/spelling/finished-re-spelling.ts","re-client/routes/spelling/lesson.ts","re-client/routes/spelling/lesson/activity.ts","re-client/routes/spelling/lesson/index.ts","re-client/routes/spelling/map.ts","re-client/routes/spelling/map/index.ts","re-client/routes/spelling/map/quiz.ts","re-client/routes/spelling/mystery-gift.ts","re-client/routes/spelling/placement-test.ts","re-client/routes/story-factory/floor.ts","re-client/routes/story-factory/index.ts","re-client/routes/story-factory/showroom.ts","re-client/routes/storylands/bonus-game.ts","re-client/routes/storylands/finished-re-storylands.ts","re-client/routes/storylands/lesson.ts","re-client/routes/storylands/lesson/activity.ts","re-client/routes/storylands/lesson/index.ts","re-client/routes/storylands/map.ts","re-client/routes/unauthorised.ts","re-client/routes/worlds.ts","re-client/routes/worlds/world.ts","re-client/routes/worlds/world/activity-area/activity.ts","re-client/routes/worlds/world/activity-area/index.ts","re-client/routes/worlds/world/book-area/index.ts","re-client/routes/worlds/world/book-area/reader.ts","re-client/routes/worlds/world/certificate.ts","re-client/routes/worlds/world/games-area/game.ts","re-client/routes/worlds/world/games-area/index.ts","re-client/routes/worlds/world/home-base/awards.ts","re-client/routes/worlds/world/home-base/changing-room.ts","re-client/routes/worlds/world/home-base/index.ts","re-client/routes/worlds/world/home-base/shop.ts","re-client/routes/worlds/world/home-base/shop/catalogue.ts","re-client/routes/worlds/world/home-base/shop/index.ts","re-client/routes/worlds/world/index.ts","re-client/routes/worlds/world/lessons.ts","re-client/routes/worlds/world/lessons/lesson.ts","re-client/routes/worlds/world/lessons/lesson/activity.ts","re-client/routes/worlds/world/lessons/lesson/index.ts","re-client/routes/worlds/world/map-quiz.ts","re-client/routes/worlds/world/map/index.ts","re-client/routes/worlds/world/music-area.ts","re-client/serializers/application.ts","re-client/serializers/bookshelf.js","re-client/serializers/embedded-records.js","re-client/serializers/legacy-json.ts","re-client/services/activity-sidebar.ts","re-client/services/activity.ts","re-client/services/apollo.ts","re-client/services/ask-reggie.ts","re-client/services/assignments.ts","re-client/services/books.ts","re-client/services/caper-loader.ts","re-client/services/certificate.ts","re-client/services/debug-mode.ts","re-client/services/error-handler.ts","re-client/services/jester-loader.ts","re-client/services/learning-worlds.ts","re-client/services/lesson-activity-mutations.ts","re-client/services/lesson-manifest-bundles.ts","re-client/services/lessons.ts","re-client/services/loading-ui.ts","re-client/services/location-tracker.ts","re-client/services/offline-screen.ts","re-client/services/posthog.ts","re-client/services/quest.ts","re-client/services/reading-goals.ts","re-client/services/session.ts","re-client/services/shop.ts","re-client/services/sounds.ts","re-client/services/spelling.ts","re-client/services/store.js","re-client/services/story-factory.ts","re-client/services/storylands.ts","re-client/services/student-metrics.ts","re-client/services/student-progress.ts","re-client/services/theme.ts","re-client/services/time-on-task.ts","re-client/services/url-maker.ts","re-client/services/user.ts","re-client/services/weekly-poll.ts","re-client/templates/application-error.js","re-client/templates/application.js","re-client/templates/awards.js","re-client/templates/book.js","re-client/templates/bookcase.js","re-client/templates/bookshelf.js","re-client/templates/changing-room.js","re-client/templates/critters.js","re-client/templates/critters/critter.js","re-client/templates/critters/index.js","re-client/templates/driving-tests.js","re-client/templates/driving-tests/index.js","re-client/templates/driving-tests/quiz.js","re-client/templates/driving-tests/racing-game.js","re-client/templates/games.js","re-client/templates/games/game.js","re-client/templates/games/index.js","re-client/templates/house.js","re-client/templates/index.js","re-client/templates/lessons.js","re-client/templates/lessons/certificate.js","re-client/templates/lessons/finished-re-lessons.js","re-client/templates/lessons/lesson.js","re-client/templates/lessons/lesson/activity.js","re-client/templates/lessons/map.js","re-client/templates/lessons/map/index.js","re-client/templates/lessons/map/quiz.js","re-client/templates/lessons/placement-test.js","re-client/templates/login.js","re-client/templates/logout.js","re-client/templates/my-program.js","re-client/templates/my-reading-goals.js","re-client/templates/my-reading-goals/index.js","re-client/templates/my-reading-goals/milestones.js","re-client/templates/my-reading-goals/quiz.js","re-client/templates/no-access.js","re-client/templates/play.js","re-client/templates/play/activity.js","re-client/templates/play/index.js","re-client/templates/plaza.js","re-client/templates/puzzles.js","re-client/templates/puzzles/index.js","re-client/templates/puzzles/puzzle.js","re-client/templates/reader/book/index.js","re-client/templates/reader/book/page.js","re-client/templates/reader/result.js","re-client/templates/sample/lesson.js","re-client/templates/sample/lesson/activity.js","re-client/templates/shop.js","re-client/templates/shop/department/catalogue.js","re-client/templates/songs.js","re-client/templates/songs/index.js","re-client/templates/songs/video.js","re-client/templates/spelling.js","re-client/templates/spelling/finished-re-spelling.js","re-client/templates/spelling/lesson.js","re-client/templates/spelling/lesson/activity.js","re-client/templates/spelling/map.js","re-client/templates/spelling/map/index.js","re-client/templates/spelling/map/quiz.js","re-client/templates/spelling/mystery-gift.js","re-client/templates/spelling/placement-test.js","re-client/templates/story-factory.js","re-client/templates/story-factory/floor.js","re-client/templates/story-factory/index.js","re-client/templates/story-factory/showroom.js","re-client/templates/storylands.js","re-client/templates/storylands/bonus-game.js","re-client/templates/storylands/finished-re-storylands.js","re-client/templates/storylands/lesson.js","re-client/templates/storylands/lesson/activity.js","re-client/templates/storylands/map.js","re-client/templates/unauthorised.js","re-client/templates/worlds/world.js","re-client/templates/worlds/world/activity-area.js","re-client/templates/worlds/world/activity-area/activity.js","re-client/templates/worlds/world/activity-area/index.js","re-client/templates/worlds/world/book-area.js","re-client/templates/worlds/world/book-area/index.js","re-client/templates/worlds/world/book-area/reader.js","re-client/templates/worlds/world/certificate.js","re-client/templates/worlds/world/games-area.js","re-client/templates/worlds/world/games-area/game.js","re-client/templates/worlds/world/games-area/index.js","re-client/templates/worlds/world/home-base.js","re-client/templates/worlds/world/home-base/awards.js","re-client/templates/worlds/world/home-base/changing-room.js","re-client/templates/worlds/world/home-base/index.js","re-client/templates/worlds/world/home-base/shop.js","re-client/templates/worlds/world/home-base/shop/catalogue.js","re-client/templates/worlds/world/home-base/shop/index.js","re-client/templates/worlds/world/index.js","re-client/templates/worlds/world/lessons.js","re-client/templates/worlds/world/lessons/lesson.js","re-client/templates/worlds/world/lessons/lesson/activity.js","re-client/templates/worlds/world/map-quiz.js","re-client/templates/worlds/world/map.js","re-client/templates/worlds/world/map/index.js","re-client/templates/worlds/world/music-area.js","re-client/theme-images.ts","re-client/transforms/boolean.js","re-client/transforms/date.js","re-client/transforms/number.js","re-client/transforms/string.js","re-client/utils/camelize-keys.js","re-client/utils/date-from-now.ts","re-client/utils/debug-lesson-options.ts","re-client/utils/debug.ts","re-client/utils/department.ts","re-client/utils/errors.ts","re-client/utils/format-date.ts","re-client/utils/format-due-date.ts","re-client/utils/prefetch.ts","re-client/utils/preload-images.ts","re-client/utils/print-certificate.ts","re-client/utils/print-image.ts","re-client/utils/progress-tools.js","re-client/utils/quiz-results.ts","re-client/utils/to-json.ts","re-client/utils/transition-to-array.ts","re-client/utils/translate.js","re-client/utils/upload-svg-with-retries.ts","re-client/utils/weekly-poll/fake-data.ts","re-client/utils/weekly-poll/week-id.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"sourcesContent":["'use strict';\n\n\n","import ActiveModelAdapter from 'active-model-adapter'\nimport config from 're-client/config/environment'\nimport type ModelRegistry from 'ember-data/types/registries/model'\n\nconst {\n  APP: { apiEndpoint, apiNamespace },\n} = config\n\nexport default class ApplicationAdapter extends ActiveModelAdapter {\n  override coalesceFindRequests = true\n\n  // @ts-expect-error this can be undefined\n  override get host() {\n    return apiEndpoint\n  }\n\n  override get namespace() {\n    return apiNamespace\n  }\n\n  override ajaxOptions(\n    url: string,\n    type: string,\n    options: Record<string, unknown>,\n  ) {\n    return {\n      ...super.ajaxOptions(url, type, options),\n      credentials: 'include',\n    }\n  }\n\n  override pathForType(modelName: keyof ModelRegistry) {\n    switch (modelName) {\n      case 'avatar':\n        return 'avatar'\n      case 'reading/book':\n        return 'reading/book'\n      default:\n        return super.pathForType(modelName)\n    }\n  }\n}\n\ndeclare module 'ember-data/types/registries/adapter' {\n  export default interface AdapterRegistry {\n    application: ApplicationAdapter\n  }\n}\n","import { inject as service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport type UserService from 're-client/services/user'\nimport type ModelRegistry from 'ember-data/types/registries/model'\nimport CaperAdapter from 're-client/adapters/caper'\n\nconst { assetHosts, releaseSha } = config.contentLoader.caper\n\n/**\n * Adapter to build URLs for Caper activities.\n */\nexport default class CaperActivityAdapter extends CaperAdapter {\n  @service declare user: UserService\n\n  override get host() {\n    return assetHosts.code\n  }\n\n  override get namespace() {\n    return `readingeggs/releases/${releaseSha}/data/${this.user.locale}`\n  }\n\n  override pathForType(modelName: keyof ModelRegistry) {\n    let path = super.pathForType(modelName)\n\n    switch (modelName) {\n      case 'reading/video':\n        path = 'reading/activities/video'\n        break\n      case 'clinker-castle':\n      case 'driving-tests':\n      case 'story-factory':\n      case 'reading':\n      case 'spelling':\n        path = `${path}/activities`\n        break\n    }\n\n    return path\n  }\n}\n\ndeclare module 'ember-data/types/registries/adapter' {\n  export default interface AdapterRegistry {\n    'caper-activity': CaperActivityAdapter\n  }\n}\n","import RESTAdapter from '@ember-data/adapter/rest'\nimport type { Snapshot } from '@ember-data/store'\nimport type ModelRegistry from 'ember-data/types/registries/model'\nimport { decamelize, underscore } from '@ember/string'\n\nexport default class CaperAdapter extends RESTAdapter {\n  override buildURL<K extends keyof ModelRegistry>(\n    modelName?: K,\n    id?: unknown,\n    snapshot?: Snapshot<K>,\n    requestType?: string,\n    query?: object,\n  ): string {\n    const url = super.buildURL(modelName, id, snapshot, requestType, query)\n    return `${url}.json`\n  }\n\n  override pathForType(modelName: keyof ModelRegistry) {\n    const path = decamelize(modelName)\n    return underscore(path)\n  }\n}\n\ndeclare module 'ember-data/types/registries/adapter' {\n  export default interface AdapterRegistry {\n    caper: CaperAdapter\n  }\n}\n","import type Store from '@ember-data/store'\nimport type { Snapshot } from '@ember-data/store'\n// eslint-disable-next-line ember/use-ember-data-rfc-395-imports\nimport type { ModelSchema } from 'ember-data'\nimport type ModelRegistry from 'ember-data/types/registries/model'\nimport ApplicationAdapter from 're-client/adapters/application'\nimport type RSVP from 'rsvp'\n\n/**\n * Adapter for the PuzzleScore model is special\n * because it uses the create endpoint for updating records\n */\nexport default class PuzzleScoreAdapter extends ApplicationAdapter {\n  override updateRecord<K extends keyof ModelRegistry>(\n    store: Store,\n    type: ModelSchema<K>,\n    snapshot: Snapshot<K>,\n  ): RSVP.Promise<unknown> {\n    return super.createRecord(store, type, snapshot)\n  }\n}\n\ndeclare module 'ember-data/types/registries/adapter' {\n  export default interface AdapterRegistry {\n    'puzzle-score': PuzzleScoreAdapter\n  }\n}\n","import { service } from '@ember/service'\nimport ApplicationAdapter from 're-client/adapters/application'\nimport type UserService from 're-client/services/user'\n\nexport default class ReadingBookAdapter extends ApplicationAdapter {\n  @service\n  declare user: UserService\n\n  override get namespace() {\n    const { locale } = this.user\n    return `api/data/${locale}`\n  }\n}\n\ndeclare module 'ember-data/types/registries/adapter' {\n  export default interface AdapterRegistry {\n    'reading/book': ReadingBookAdapter\n  }\n}\n","/**\n * This is a polyfill for Error.cause\n * It can be removed once our all browsers support it natively\n * see https://caniuse.com/mdn-javascript_builtins_error_cause\n */\nimport 'core-js/stable/error'\n\n/**\n * This is a polyfill for Array.prototype.at\n * It can be removed once our all browsers support it natively\n * https://caniuse.com/mdn-javascript_builtins_array_at\n */\nimport 'core-js/stable/array/at'\n\n/**\n * We need a working version of crypto.randomUUID for ember-data when using\n * store.createRecord(). Added in Safari 15.4, so we need a polyfill for now.\n */\nimport { v4 as uuidV4 } from 'uuid'\n\nif (typeof globalThis.crypto.randomUUID !== 'function') {\n  globalThis.crypto.randomUUID = uuidV4 as NonNullable<typeof crypto.randomUUID>\n}\n\nimport './deprecation-workflow'\n\nimport Application from '@ember/application'\nimport Resolver from 'ember-resolver'\nimport loadInitializers from 'ember-load-initializers'\nimport { startLog, checkIgnore } from '@blakeelearning/log'\nimport config from 're-client/config/environment'\nimport isNetworkError from 'is-network-error'\n\n/**\n * This is imported here as an insurance policy against accidentally\n * refactoring away lodash.  Caper apps expect 'lodash' to be available\n * requirejs/loader.js, and will crash if it's missing.  As such, don't remove\n * this unless this situation changes!\n */\nimport 'lodash'\nimport { gsap } from 'gsap'\nimport MotionPathPlugin from 'gsap/MotionPathPlugin'\nimport structuredClone from '@ungap/structured-clone'\n\ngsap.registerPlugin(MotionPathPlugin)\n\nexport default class App extends Application {\n  modulePrefix = config.modulePrefix\n\n  podModulePrefix = config.podModulePrefix\n\n  Resolver = Resolver\n}\n\n// Polyfill global structuredClone if the environment doesn't provide it\nif (!('structuredClone' in globalThis)) {\n  // @ts-expect-error: override globalThis.structuredClone with the polyfill implementation\n  globalThis.structuredClone = structuredClone\n}\n\nstartLog({\n  rollbar: {\n    ...config.rollbar,\n    checkIgnore(...args) {\n      const possibleErrors = Array.from(args[1])\n      if (possibleErrors.some((possibleError) => isNetworkError(possibleError)))\n        return true\n      return checkIgnore(...args)\n    },\n    ignoredMessages: [/^Script '.*' blocked$/, /^cancelled$/],\n  },\n})\n\nloadInitializers(App, config.modulePrefix)\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"{{style-namespace 'activity-header'}}\\\">\\n  {{#if @showBackButton}}\\n    <input\\n      class=\\\"back-arrow-button\\\"\\n      type=\\\"button\\\"\\n      aria-label=\\\"Back Button\\\"\\n      {{on \\\"click\\\" this.goBack}}\\n    />\\n  {{/if}}\\n\\n  {{#unless @hideHomeButton}}\\n    {{#if @useHomeButtonAsReturn}}\\n      {{! template-lint-disable no-invalid-link-text }}\\n      <a\\n        href=\\\"/\\\"\\n        {{on \\\"click\\\" this.goBack}}\\n        type=\\\"button\\\"\\n        class=\\\"back-to-index\\\"\\n      ></a>\\n    {{else}}\\n      <LinkTo @route={{this.route}} class=\\\"back-to-index\\\" data-test-home=\\\"true\\\">\\n        <span class=\\\"sr-only\\\">Home</span>\\n      </LinkTo>\\n    {{/if}}\\n  {{/unless}}\\n</div>\", {\"contents\":\"<div class=\\\"{{style-namespace 'activity-header'}}\\\">\\n  {{#if @showBackButton}}\\n    <input\\n      class=\\\"back-arrow-button\\\"\\n      type=\\\"button\\\"\\n      aria-label=\\\"Back Button\\\"\\n      {{on \\\"click\\\" this.goBack}}\\n    />\\n  {{/if}}\\n\\n  {{#unless @hideHomeButton}}\\n    {{#if @useHomeButtonAsReturn}}\\n      {{! template-lint-disable no-invalid-link-text }}\\n      <a\\n        href=\\\"/\\\"\\n        {{on \\\"click\\\" this.goBack}}\\n        type=\\\"button\\\"\\n        class=\\\"back-to-index\\\"\\n      ></a>\\n    {{else}}\\n      <LinkTo @route={{this.route}} class=\\\"back-to-index\\\" data-test-home=\\\"true\\\">\\n        <span class=\\\"sr-only\\\">Home</span>\\n      </LinkTo>\\n    {{/if}}\\n  {{/unless}}\\n</div>\",\"moduleName\":\"re-client/components/activity-header.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/activity-header.hbs\"}});\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\n\n/*\n* Activity header component is used to display the logo and\n* back button at the top of every page. The common and default\n* back path is the index pages but in some cases it is overridden\n by passing in an alternative destination ie. 'critters'\n*\n*/\nexport default class ActivityHeader extends Component {\n  get route() {\n    return this.args.destination || 'index'\n  }\n\n  @action\n  goBack(event) {\n    event.preventDefault()\n    window.history.back()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<activity-sidebar\\n  class=\\\"activity-sidebar group fixed inset-y-4 left-0 h-auto w-64 -translate-x-full rounded-r-3xl p-2 transition-transform duration-500\\n    {{if this.isOpen 'open'}}\\\"\\n  data-test-activity-sidebar\\n  id=\\\"activity-sidebar\\\"\\n  ...attributes\\n>\\n  <button\\n    aria-controls=\\\"activity-sidebar\\\"\\n    aria-expanded={{this.isOpen}}\\n    class=\\\"activity-sidebar-toggle absolute left-64 top-8 w-16 rounded-r-3xl border-[5px] border-l-0 border-solid border-storm-blue-300 p-1 text-storm-blue-300\\\"\\n    data-test-activity-sidebar-toggle\\n    type=\\\"button\\\"\\n    {{on \\\"click\\\" this.toggle}}\\n  >\\n    <FaIcon\\n      @icon=\\\"caret-right\\\"\\n      @size=\\\"4x\\\"\\n      aria-hidden=\\\"false\\\"\\n      aria-label=\\\"Toggle Sidebar\\\"\\n      class=\\\"origin-center duration-500 group-aria-expanded:rotate-180\\\"\\n    />\\n  </button>\\n\\n  <div\\n    class=\\\"flex h-full flex-col text-white {{if this.isClosed 'hidden'}}\\\"\\n    aria-hidden={{this.isClosed}}\\n  >\\n    <ActivitySidebar::StudentInfo\\n      @name={{@studentName}}\\n      @avatar={{@avatarUrl}}\\n      @position={{@position}}\\n      @points={{@points}}\\n      @pointsToAward={{this.activitySidebar.pointsToAward}}\\n      @assignmentMode={{@assignmentMode}}\\n    />\\n\\n    {{! replaces nav-links component below for mobile screen sizes via css media query }}\\n    <ActivitySidebar::NavLinks\\n      @homeLabel=\\\"Home\\\"\\n      @homeLink={{@homeLink}}\\n      @programRoute={{@programRoute}}\\n      @lessonsLabel={{@lessonsLabel}}\\n      @lessonsRoute={{@lessonsRoute}}\\n      @lessonsModel={{@lessonsModel}}\\n      @programLabel={{@programLabel}}\\n      @display=\\\"small\\\"\\n      @assignmentMode={{@assignmentMode}}\\n      @backHref={{@backHref}}\\n      @onBack={{@onBack}}\\n    />\\n\\n    <ActivitySidebar::ActivityList\\n      @activities={{@activities}}\\n      @selectedActivity={{@selectedActivity}}\\n      @changeActivityAction={{this.changeActivity}}\\n    />\\n\\n    <ActivitySidebar::NavLinks\\n      @homeLabel=\\\"Home\\\"\\n      @homeLink={{@homeLink}}\\n      @lessonsRoute={{@lessonsRoute}}\\n      @lessonsModel={{@lessonsModel}}\\n      @lessonsLabel={{@lessonsLabel}}\\n      @programRoute={{@programRoute}}\\n      @programLabel={{@programLabel}}\\n      @display=\\\"large\\\"\\n      @threeLinkVariant={{@threeLinkVariant}}\\n      @assignmentMode={{@assignmentMode}}\\n      @backHref={{@backHref}}\\n      @onBack={{@onBack}}\\n    />\\n  </div>\\n</activity-sidebar>\", {\"contents\":\"<activity-sidebar\\n  class=\\\"activity-sidebar group fixed inset-y-4 left-0 h-auto w-64 -translate-x-full rounded-r-3xl p-2 transition-transform duration-500\\n    {{if this.isOpen 'open'}}\\\"\\n  data-test-activity-sidebar\\n  id=\\\"activity-sidebar\\\"\\n  ...attributes\\n>\\n  <button\\n    aria-controls=\\\"activity-sidebar\\\"\\n    aria-expanded={{this.isOpen}}\\n    class=\\\"activity-sidebar-toggle absolute left-64 top-8 w-16 rounded-r-3xl border-[5px] border-l-0 border-solid border-storm-blue-300 p-1 text-storm-blue-300\\\"\\n    data-test-activity-sidebar-toggle\\n    type=\\\"button\\\"\\n    {{on \\\"click\\\" this.toggle}}\\n  >\\n    <FaIcon\\n      @icon=\\\"caret-right\\\"\\n      @size=\\\"4x\\\"\\n      aria-hidden=\\\"false\\\"\\n      aria-label=\\\"Toggle Sidebar\\\"\\n      class=\\\"origin-center duration-500 group-aria-expanded:rotate-180\\\"\\n    />\\n  </button>\\n\\n  <div\\n    class=\\\"flex h-full flex-col text-white {{if this.isClosed 'hidden'}}\\\"\\n    aria-hidden={{this.isClosed}}\\n  >\\n    <ActivitySidebar::StudentInfo\\n      @name={{@studentName}}\\n      @avatar={{@avatarUrl}}\\n      @position={{@position}}\\n      @points={{@points}}\\n      @pointsToAward={{this.activitySidebar.pointsToAward}}\\n      @assignmentMode={{@assignmentMode}}\\n    />\\n\\n    {{! replaces nav-links component below for mobile screen sizes via css media query }}\\n    <ActivitySidebar::NavLinks\\n      @homeLabel=\\\"Home\\\"\\n      @homeLink={{@homeLink}}\\n      @programRoute={{@programRoute}}\\n      @lessonsLabel={{@lessonsLabel}}\\n      @lessonsRoute={{@lessonsRoute}}\\n      @lessonsModel={{@lessonsModel}}\\n      @programLabel={{@programLabel}}\\n      @display=\\\"small\\\"\\n      @assignmentMode={{@assignmentMode}}\\n      @backHref={{@backHref}}\\n      @onBack={{@onBack}}\\n    />\\n\\n    <ActivitySidebar::ActivityList\\n      @activities={{@activities}}\\n      @selectedActivity={{@selectedActivity}}\\n      @changeActivityAction={{this.changeActivity}}\\n    />\\n\\n    <ActivitySidebar::NavLinks\\n      @homeLabel=\\\"Home\\\"\\n      @homeLink={{@homeLink}}\\n      @lessonsRoute={{@lessonsRoute}}\\n      @lessonsModel={{@lessonsModel}}\\n      @lessonsLabel={{@lessonsLabel}}\\n      @programRoute={{@programRoute}}\\n      @programLabel={{@programLabel}}\\n      @display=\\\"large\\\"\\n      @threeLinkVariant={{@threeLinkVariant}}\\n      @assignmentMode={{@assignmentMode}}\\n      @backHref={{@backHref}}\\n      @onBack={{@onBack}}\\n    />\\n  </div>\\n</activity-sidebar>\",\"moduleName\":\"re-client/components/activity-sidebar.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/activity-sidebar.hbs\"}});\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport type { SideBarActivityData } from './activity-sidebar/activity-item'\nimport { service } from '@ember/service'\nimport type ActivitySidebarService from 're-client/services/activity-sidebar'\nimport type Owner from '@ember/owner'\n\ninterface Args {\n  studentName: string\n  avatarUrl: string\n  position: string\n  points: number\n\n  backHref?: string\n  onBack?: () => void\n\n  homeLink: string\n  lessonsRoute: string\n  lessonsModel: unknown\n  lessonsLabel: string\n  programRoute: string\n  programLabel: string\n  currentMap: number\n  threeLinkVariant: boolean\n\n  activities: SideBarActivityData[]\n  selectedActivity: number\n  changeActivityAction: (id: number) => void\n}\n\nexport default class ActivitySidebar extends Component<Args> {\n  constructor(owner: Owner, args: Args) {\n    super(owner, args)\n    this.activitySidebar.close()\n  }\n  @service declare activitySidebar: ActivitySidebarService\n\n  get isOpen() {\n    return this.activitySidebar.isOpen\n  }\n\n  get isClosed() {\n    return !this.activitySidebar.isOpen\n  }\n\n  @action\n  toggle() {\n    this.activitySidebar.toggle()\n  }\n\n  @action\n  changeActivity(id: number) {\n    this.activitySidebar.close()\n    this.args.changeActivityAction(id)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<li\\n  class=\\\"activity-list-item\\\"\\n  data-item={{this.id}}\\n  data-status={{this.status}}\\n  ...attributes\\n>\\n  <button class=\\\"activity-item {{this.status}}\\\" type=\\\"button\\\">\\n    <img src={{this.thumbnail}} alt=\\\"activity\\\" />\\n    <span class=\\\"activity-item-number\\\">{{this.id}}</span>\\n    <span class=\\\"activity-item-status\\\" aria-label={{this.status}}>\\n      <FaIcon @icon={{this.icon}} />\\n    </span>\\n  </button>\\n</li>\", {\"contents\":\"<li\\n  class=\\\"activity-list-item\\\"\\n  data-item={{this.id}}\\n  data-status={{this.status}}\\n  ...attributes\\n>\\n  <button class=\\\"activity-item {{this.status}}\\\" type=\\\"button\\\">\\n    <img src={{this.thumbnail}} alt=\\\"activity\\\" />\\n    <span class=\\\"activity-item-number\\\">{{this.id}}</span>\\n    <span class=\\\"activity-item-status\\\" aria-label={{this.status}}>\\n      <FaIcon @icon={{this.icon}} />\\n    </span>\\n  </button>\\n</li>\",\"moduleName\":\"re-client/components/activity-sidebar/activity-item.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/activity-sidebar/activity-item.hbs\"}});\nimport Component from '@glimmer/component'\n\ninterface Args {\n  activity: SideBarActivityData\n}\n\nexport interface SideBarActivityData {\n  id: number\n  status: 'unlocked' | 'locked' | 'complete'\n  thumbnail: string | undefined\n}\n\nexport default class ActivityItem extends Component<Args> {\n  get activity() {\n    return this.args.activity\n  }\n\n  get id() {\n    return this.activity.id\n  }\n\n  get status() {\n    return this.activity.status\n  }\n\n  get icon() {\n    if (this.status === 'unlocked') return 'lock-open'\n    if (this.status === 'complete') return 'check'\n    return 'lock'\n  }\n\n  get thumbnail() {\n    return this.activity.thumbnail\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<activity-sidebar-activities\\n  class=\\\"activity-sidebar-activities gradient-border text-white\\\"\\n  data-test-activity-sidebar-activities\\n>\\n  <button\\n    type=\\\"button\\\"\\n    class=\\\"activity-sidebar-arrow up\\\"\\n    data-test-up-arrow\\n    {{on \\\"click\\\" this.moveUp}}\\n  >\\n    <span class=\\\"sr-only\\\">Up</span>\\n  </button>\\n  <nav\\n    class=\\\"activity-list-overlay\\\"\\n    aria-label=\\\"Activities\\\"\\n    {{sidebar-activity-list-scroll this.selectedActivity}}\\n  >\\n    <ul class=\\\"activity-list\\\" data-test-activity-list>\\n      {{#each @activities as |activity|}}\\n        <ActivitySidebar::ActivityItem\\n          @activity={{activity}}\\n          data-test-activity-item={{activity.id}}\\n          {{on \\\"click\\\" (fn this.changeActivity activity)}}\\n        />\\n      {{/each}}\\n    </ul>\\n  </nav>\\n  <button\\n    type=\\\"button\\\"\\n    class=\\\"activity-sidebar-arrow down\\\"\\n    data-test-down-arrow\\n    {{on \\\"click\\\" this.moveDown}}\\n  >\\n    <span class=\\\"sr-only\\\">Down</span>\\n  </button>\\n</activity-sidebar-activities>\", {\"contents\":\"<activity-sidebar-activities\\n  class=\\\"activity-sidebar-activities gradient-border text-white\\\"\\n  data-test-activity-sidebar-activities\\n>\\n  <button\\n    type=\\\"button\\\"\\n    class=\\\"activity-sidebar-arrow up\\\"\\n    data-test-up-arrow\\n    {{on \\\"click\\\" this.moveUp}}\\n  >\\n    <span class=\\\"sr-only\\\">Up</span>\\n  </button>\\n  <nav\\n    class=\\\"activity-list-overlay\\\"\\n    aria-label=\\\"Activities\\\"\\n    {{sidebar-activity-list-scroll this.selectedActivity}}\\n  >\\n    <ul class=\\\"activity-list\\\" data-test-activity-list>\\n      {{#each @activities as |activity|}}\\n        <ActivitySidebar::ActivityItem\\n          @activity={{activity}}\\n          data-test-activity-item={{activity.id}}\\n          {{on \\\"click\\\" (fn this.changeActivity activity)}}\\n        />\\n      {{/each}}\\n    </ul>\\n  </nav>\\n  <button\\n    type=\\\"button\\\"\\n    class=\\\"activity-sidebar-arrow down\\\"\\n    data-test-down-arrow\\n    {{on \\\"click\\\" this.moveDown}}\\n  >\\n    <span class=\\\"sr-only\\\">Down</span>\\n  </button>\\n</activity-sidebar-activities>\",\"moduleName\":\"re-client/components/activity-sidebar/activity-list.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/activity-sidebar/activity-list.hbs\"}});\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport type { SideBarActivityData } from './activity-item'\n\ninterface Args {\n  selectedActivity: number\n  activities: SideBarActivityData[]\n  changeActivityAction: (id: number) => void\n}\n\nexport default class ActivityList extends Component<Args> {\n  get selectedActivity() {\n    return this.args.selectedActivity\n  }\n\n  @action\n  moveUp() {\n    document.dispatchEvent(new Event('activity-sidebar-up'))\n  }\n  @action\n  moveDown() {\n    document.dispatchEvent(new Event('activity-sidebar-down'))\n  }\n\n  @action\n  changeActivity(activity: SideBarActivityData) {\n    if (activity.status == 'complete') {\n      this.args.changeActivityAction(activity.id)\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<activity-sidebar-nav\\n  class=\\\"activity-sidebar-nav\\\"\\n  data-test-activity-sidebar-nav\\n>\\n  {{#if @backHref}}\\n    <ul class=\\\"activity-sidebar-nav-{{@display}} back-link\\\">\\n      <li class=\\\"activity-back-link\\\" data-test-activity-back-link>\\n        <WorldsBackButton @href={{@backHref}} @onClick={{@onBack}} />\\n      </li>\\n    </ul>\\n  {{else if @assignmentMode}}\\n    <ul\\n      class=\\\"activity-sidebar-nav-{{@display}}\\n        {{if @threeLinkVariant ' three-link'}}\\\"\\n    >\\n      <li data-test-activity-home-link>\\n        <LinkTo @route={{@homeLink}} data-test-sidebar-home>\\n          <div data-test-activity-home-label>\\n            <div class=\\\"activity-nav-button sidebar-home\\\"></div>\\n            <p class=\\\"activity-nav-button-text\\\">\\n              {{@homeLabel}}\\n            </p>\\n          </div>\\n        </LinkTo>\\n      </li>\\n    </ul>\\n  {{else if @threeLinkVariant}}\\n    <ul class=\\\"activity-sidebar-nav-{{@display}} three-link\\\">\\n      <li data-test-activity-lessons-link>\\n        <LinkTo @route={{@lessonsRoute}} @model={{@lessonsModel}}>\\n          <div class=\\\"activity-nav-button lessons\\\">\\n            <div\\n              class=\\\"activity-nav-button-text data-test-activity-lessons-label\\\"\\n              data-test-activity-lessons-label\\n            >\\n              {{@lessonsLabel}}\\n            </div>\\n          </div>\\n        </LinkTo>\\n      </li>\\n      <li data-test-activity-program-link>\\n        <LinkTo @route={{@programRoute}}>\\n          <div data-test-activity-program-label>\\n            <div class=\\\"activity-nav-button program\\\"></div>\\n            <p class=\\\"activity-nav-button-text\\\">\\n              {{@programLabel}}\\n            </p>\\n          </div>\\n        </LinkTo>\\n      </li>\\n      <li data-test-activity-home-link>\\n        <LinkTo @route={{@homeLink}} data-test-sidebar-home>\\n          <div data-test-activity-home-label>\\n            <div class=\\\"activity-nav-button sidebar-home\\\"></div>\\n            <p class=\\\"activity-nav-button-text\\\">\\n              {{@homeLabel}}\\n            </p>\\n          </div>\\n        </LinkTo>\\n      </li>\\n    </ul>\\n  {{else}}\\n    <ul class=\\\"activity-sidebar-nav-{{@display}}\\\">\\n      <li data-test-activity-lessons-link>\\n        <LinkTo @route={{@lessonsRoute}} @model={{@lessonsModel}}>\\n          <div data-test-activity-lessons-label>\\n            <div class=\\\"activity-egg-button lessons\\\"></div>\\n            <p class=\\\"activity-nav-button-text\\\">\\n              {{@lessonsLabel}}\\n            </p>\\n          </div>\\n        </LinkTo>\\n      </li>\\n      <li data-test-activity-home-link>\\n        <LinkTo @route={{@homeLink}} data-test-sidebar-home>\\n          <div data-test-activity-home-label>\\n            <div class=\\\"activity-egg-button sidebar-home\\\"></div>\\n            <p class=\\\"activity-nav-button-text\\\">\\n              {{@homeLabel}}\\n            </p>\\n          </div>\\n        </LinkTo>\\n      </li>\\n    </ul>\\n  {{/if}}\\n</activity-sidebar-nav>\", {\"contents\":\"<activity-sidebar-nav\\n  class=\\\"activity-sidebar-nav\\\"\\n  data-test-activity-sidebar-nav\\n>\\n  {{#if @backHref}}\\n    <ul class=\\\"activity-sidebar-nav-{{@display}} back-link\\\">\\n      <li class=\\\"activity-back-link\\\" data-test-activity-back-link>\\n        <WorldsBackButton @href={{@backHref}} @onClick={{@onBack}} />\\n      </li>\\n    </ul>\\n  {{else if @assignmentMode}}\\n    <ul\\n      class=\\\"activity-sidebar-nav-{{@display}}\\n        {{if @threeLinkVariant ' three-link'}}\\\"\\n    >\\n      <li data-test-activity-home-link>\\n        <LinkTo @route={{@homeLink}} data-test-sidebar-home>\\n          <div data-test-activity-home-label>\\n            <div class=\\\"activity-nav-button sidebar-home\\\"></div>\\n            <p class=\\\"activity-nav-button-text\\\">\\n              {{@homeLabel}}\\n            </p>\\n          </div>\\n        </LinkTo>\\n      </li>\\n    </ul>\\n  {{else if @threeLinkVariant}}\\n    <ul class=\\\"activity-sidebar-nav-{{@display}} three-link\\\">\\n      <li data-test-activity-lessons-link>\\n        <LinkTo @route={{@lessonsRoute}} @model={{@lessonsModel}}>\\n          <div class=\\\"activity-nav-button lessons\\\">\\n            <div\\n              class=\\\"activity-nav-button-text data-test-activity-lessons-label\\\"\\n              data-test-activity-lessons-label\\n            >\\n              {{@lessonsLabel}}\\n            </div>\\n          </div>\\n        </LinkTo>\\n      </li>\\n      <li data-test-activity-program-link>\\n        <LinkTo @route={{@programRoute}}>\\n          <div data-test-activity-program-label>\\n            <div class=\\\"activity-nav-button program\\\"></div>\\n            <p class=\\\"activity-nav-button-text\\\">\\n              {{@programLabel}}\\n            </p>\\n          </div>\\n        </LinkTo>\\n      </li>\\n      <li data-test-activity-home-link>\\n        <LinkTo @route={{@homeLink}} data-test-sidebar-home>\\n          <div data-test-activity-home-label>\\n            <div class=\\\"activity-nav-button sidebar-home\\\"></div>\\n            <p class=\\\"activity-nav-button-text\\\">\\n              {{@homeLabel}}\\n            </p>\\n          </div>\\n        </LinkTo>\\n      </li>\\n    </ul>\\n  {{else}}\\n    <ul class=\\\"activity-sidebar-nav-{{@display}}\\\">\\n      <li data-test-activity-lessons-link>\\n        <LinkTo @route={{@lessonsRoute}} @model={{@lessonsModel}}>\\n          <div data-test-activity-lessons-label>\\n            <div class=\\\"activity-egg-button lessons\\\"></div>\\n            <p class=\\\"activity-nav-button-text\\\">\\n              {{@lessonsLabel}}\\n            </p>\\n          </div>\\n        </LinkTo>\\n      </li>\\n      <li data-test-activity-home-link>\\n        <LinkTo @route={{@homeLink}} data-test-sidebar-home>\\n          <div data-test-activity-home-label>\\n            <div class=\\\"activity-egg-button sidebar-home\\\"></div>\\n            <p class=\\\"activity-nav-button-text\\\">\\n              {{@homeLabel}}\\n            </p>\\n          </div>\\n        </LinkTo>\\n      </li>\\n    </ul>\\n  {{/if}}\\n</activity-sidebar-nav>\",\"moduleName\":\"re-client/components/activity-sidebar/nav-links.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/activity-sidebar/nav-links.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"h-0 overflow-hidden\\\">\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n</div>\\n\\n<activity-sidebar-student\\n  class=\\\"activity-sidebar-text-shadow hidden space-y-2 lg:block\\\"\\n  data-test-activity-sidebar-student\\n  ...attributes\\n>\\n  <div class=\\\"activity-sidebar-gradient rounded-full bg-oceany-blue-300\\\">\\n    <div\\n      class=\\\"flex rounded-full bg-storm-blue-300 text-center\\\"\\n      data-test-activity-sidebar-student-name-container\\n    >\\n      <h2\\n        {{fit-text maxSize=25 multiLine=false}}\\n        class=\\\"w-full truncate p-2\\\"\\n        data-test-activity-sidebar-student-name\\n      >\\n        {{@name}}\\n      </h2>\\n    </div>\\n  </div>\\n  <div class=\\\"activity-sidebar-gradient rounded-full bg-oceany-blue-300\\\">\\n    <div class=\\\"flex gap-2 rounded-full bg-storm-blue-300\\\">\\n      <div class=\\\"flex-none overflow-hidden rounded-full bg-white\\\">\\n        <img\\n          src={{@avatar}}\\n          alt=\\\"{{@name}}'s avatar\\\"\\n          width=\\\"65\\\"\\n          height=\\\"65\\\"\\n          data-test-activity-sidebar-student-avatar-image\\n          {{loading-spinner size=20}}\\n        />\\n      </div>\\n      <div\\n        class=\\\"activity-sidebar-lesson flex-initial self-center text-center\\\"\\n        data-test-activity-sidebar-student-lesson\\n      >\\n        {{#if @assignmentMode}}\\n          <h3 class=\\\"text-xs text-medal-gold\\\">Assignment</h3>\\n        {{/if}}\\n        <h3 class=\\\"my-1 text-medal-gold\\\">Lesson</h3>\\n        <p class=\\\"text-3xl leading-none\\\">\\n          {{@position}}\\n        </p>\\n      </div>\\n      <div\\n        {{! The caper activity uses this div to append flying eggs to }}\\n        class=\\\"activity-sidebar-points acorns flex-1 self-center text-center\\\"\\n        data-test-activity-sidebar-student-points-container\\n      >\\n        <img\\n          id=\\\"student-points\\\"\\n          class=\\\"mx-auto my-1\\\"\\n          src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n          alt=\\\"Points\\\"\\n          width=\\\"20px\\\"\\n          {{flying-eggs-animation @pointsToAward}}\\n        />\\n        <span\\n          {{fit-text maxSize=20}}\\n          aria-describedby=\\\"student-points\\\"\\n          data-test-activity-sidebar-student-points\\n        >\\n          {{@points}}\\n        </span>\\n      </div>\\n    </div>\\n  </div>\\n</activity-sidebar-student>\", {\"contents\":\"<div class=\\\"h-0 overflow-hidden\\\">\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n  <img\\n    class=\\\"flying-points invisible\\\"\\n    width=\\\"20px\\\"\\n    height=\\\"25px\\\"\\n    src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n    alt=\\\"\\\"\\n  />\\n</div>\\n\\n<activity-sidebar-student\\n  class=\\\"activity-sidebar-text-shadow hidden space-y-2 lg:block\\\"\\n  data-test-activity-sidebar-student\\n  ...attributes\\n>\\n  <div class=\\\"activity-sidebar-gradient rounded-full bg-oceany-blue-300\\\">\\n    <div\\n      class=\\\"flex rounded-full bg-storm-blue-300 text-center\\\"\\n      data-test-activity-sidebar-student-name-container\\n    >\\n      <h2\\n        {{fit-text maxSize=25 multiLine=false}}\\n        class=\\\"w-full truncate p-2\\\"\\n        data-test-activity-sidebar-student-name\\n      >\\n        {{@name}}\\n      </h2>\\n    </div>\\n  </div>\\n  <div class=\\\"activity-sidebar-gradient rounded-full bg-oceany-blue-300\\\">\\n    <div class=\\\"flex gap-2 rounded-full bg-storm-blue-300\\\">\\n      <div class=\\\"flex-none overflow-hidden rounded-full bg-white\\\">\\n        <img\\n          src={{@avatar}}\\n          alt=\\\"{{@name}}'s avatar\\\"\\n          width=\\\"65\\\"\\n          height=\\\"65\\\"\\n          data-test-activity-sidebar-student-avatar-image\\n          {{loading-spinner size=20}}\\n        />\\n      </div>\\n      <div\\n        class=\\\"activity-sidebar-lesson flex-initial self-center text-center\\\"\\n        data-test-activity-sidebar-student-lesson\\n      >\\n        {{#if @assignmentMode}}\\n          <h3 class=\\\"text-xs text-medal-gold\\\">Assignment</h3>\\n        {{/if}}\\n        <h3 class=\\\"my-1 text-medal-gold\\\">Lesson</h3>\\n        <p class=\\\"text-3xl leading-none\\\">\\n          {{@position}}\\n        </p>\\n      </div>\\n      <div\\n        {{! The caper activity uses this div to append flying eggs to }}\\n        class=\\\"activity-sidebar-points acorns flex-1 self-center text-center\\\"\\n        data-test-activity-sidebar-student-points-container\\n      >\\n        <img\\n          id=\\\"student-points\\\"\\n          class=\\\"mx-auto my-1\\\"\\n          src=\\\"/assets/activity-sidebar/re-egg-tilted.png\\\"\\n          alt=\\\"Points\\\"\\n          width=\\\"20px\\\"\\n          {{flying-eggs-animation @pointsToAward}}\\n        />\\n        <span\\n          {{fit-text maxSize=20}}\\n          aria-describedby=\\\"student-points\\\"\\n          data-test-activity-sidebar-student-points\\n        >\\n          {{@points}}\\n        </span>\\n      </div>\\n    </div>\\n  </div>\\n</activity-sidebar-student>\",\"moduleName\":\"re-client/components/activity-sidebar/student-info.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/activity-sidebar/student-info.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"relative flex gap-4 pt-12 font-sofia-pro\\\">\\n  <div\\n    data-test-assignment-preview\\n    class=\\\"static flex max-w-96 gap-4 rounded-3xl border-8 border-oceany-blue-300 bg-white px-4 before:absolute before:left-0 before:top-0 before:h-full before:w-1/2 before:bg-reggie-book before:bg-no-repeat\\\"\\n  >\\n    <img\\n      class=\\\"my-auto w-32\\\"\\n      data-test-assignment-preview-thumbnail\\n      src={{@thumbnailUrl}}\\n      alt=\\\"Assignment Cover\\\"\\n    />\\n    <div class=\\\"space-y-3 text-sm font-bold\\\">\\n      <h4 class=\\\"text-2xl text-oceany-blue-300\\\">Assignment</h4>\\n      <div>\\n        <h6\\n          class=\\\"text-oceany-blue-300\\\"\\n          data-test-assignment-preview-title\\n        >{{@title}}</h6>\\n        <p data-test-assignment-preview-name>{{@name}}</p>\\n      </div>\\n      <div>\\n        <h6 class=\\\"text-oceany-blue-300\\\">What you need to do</h6>\\n        <p data-test-assignment-preview-instruction>{{@instruction}}</p>\\n      </div>\\n      <div>\\n        <h6 class=\\\"text-oceany-blue-300\\\">Due</h6>\\n        <p\\n          data-test-assignment-preview-time-remaining\\n          class=\\\"text-watermelony-red-300\\\"\\n        >{{@timeRemaining}}</p>\\n      </div>\\n      <div>\\n        <p data-test-assignment-preview-due-date>{{@dueDate}}</p>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\\"w-[300px] max-w-72 space-y-3 text-center text-white\\\">\\n    <h5 class=\\\"text-2xl\\\" id={{@titleId}}>\\n      You have a new assignment from your teacher.\\n    </h5>\\n    <button\\n      class=\\\"rounded-md bg-gradient-to-b from-oceany-blue-300 to-oceany-blue-350 px-6 py-3 text-2xl font-bold\\\"\\n      data-test-start-assignment\\n      {{on \\\"click\\\" @startTask}}\\n      type=\\\"button\\\"\\n    >\\n      Start now\\n    </button>\\n    <p class=\\\"text-sm\\\">\\n      It must be completed before you can move on to other activities.\\n    </p>\\n    <button\\n      data-test-logout\\n      class=\\\"font-bold before:block before:h-12 before:bg-bye before:bg-center before:bg-no-repeat\\\"\\n      {{on \\\"click\\\" @logout}}\\n      type=\\\"button\\\"\\n    >\\n      Logout\\n    </button>\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"relative flex gap-4 pt-12 font-sofia-pro\\\">\\n  <div\\n    data-test-assignment-preview\\n    class=\\\"static flex max-w-96 gap-4 rounded-3xl border-8 border-oceany-blue-300 bg-white px-4 before:absolute before:left-0 before:top-0 before:h-full before:w-1/2 before:bg-reggie-book before:bg-no-repeat\\\"\\n  >\\n    <img\\n      class=\\\"my-auto w-32\\\"\\n      data-test-assignment-preview-thumbnail\\n      src={{@thumbnailUrl}}\\n      alt=\\\"Assignment Cover\\\"\\n    />\\n    <div class=\\\"space-y-3 text-sm font-bold\\\">\\n      <h4 class=\\\"text-2xl text-oceany-blue-300\\\">Assignment</h4>\\n      <div>\\n        <h6\\n          class=\\\"text-oceany-blue-300\\\"\\n          data-test-assignment-preview-title\\n        >{{@title}}</h6>\\n        <p data-test-assignment-preview-name>{{@name}}</p>\\n      </div>\\n      <div>\\n        <h6 class=\\\"text-oceany-blue-300\\\">What you need to do</h6>\\n        <p data-test-assignment-preview-instruction>{{@instruction}}</p>\\n      </div>\\n      <div>\\n        <h6 class=\\\"text-oceany-blue-300\\\">Due</h6>\\n        <p\\n          data-test-assignment-preview-time-remaining\\n          class=\\\"text-watermelony-red-300\\\"\\n        >{{@timeRemaining}}</p>\\n      </div>\\n      <div>\\n        <p data-test-assignment-preview-due-date>{{@dueDate}}</p>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\\"w-[300px] max-w-72 space-y-3 text-center text-white\\\">\\n    <h5 class=\\\"text-2xl\\\" id={{@titleId}}>\\n      You have a new assignment from your teacher.\\n    </h5>\\n    <button\\n      class=\\\"rounded-md bg-gradient-to-b from-oceany-blue-300 to-oceany-blue-350 px-6 py-3 text-2xl font-bold\\\"\\n      data-test-start-assignment\\n      {{on \\\"click\\\" @startTask}}\\n      type=\\\"button\\\"\\n    >\\n      Start now\\n    </button>\\n    <p class=\\\"text-sm\\\">\\n      It must be completed before you can move on to other activities.\\n    </p>\\n    <button\\n      data-test-logout\\n      class=\\\"font-bold before:block before:h-12 before:bg-bye before:bg-center before:bg-no-repeat\\\"\\n      {{on \\\"click\\\" @logout}}\\n      type=\\\"button\\\"\\n    >\\n      Logout\\n    </button>\\n  </div>\\n</div>\",\"moduleName\":\"re-client/components/assignments/assignment-overlay.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/assignments/assignment-overlay.hbs\"}});\nimport Component from '@glimmer/component'\nimport { assert } from '@ember/debug'\nimport type { Task } from 're-client/services/assignments'\n\ninterface Args {\n  startTask(task: Task): void\n  logout(): void\n  task: Task\n}\n\n/**\n * Component for the assignment overlay on the fullscreen nav that shows up\n * when a student has tasks to perform as part of their assigned work.\n *\n * @example\n *    <Aasignments::AssignmentOverlay\n *      @task={{task}}\n *      @startTask=(action 'startTaskAction')\n *      @logout=(action 'logoutAction')\n *    }}\n */\nexport default class AssignmentsAssignmentOverlayComponent extends Component<Args> {\n  constructor(owner: unknown, args: Args) {\n    super(owner, args)\n    assert(`startTask is required.`, typeof args.startTask === 'function')\n    assert(`logout is required.`, typeof args.logout === 'function')\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<book-shelf class=\\\"block w-full\\\" ...attributes>\\n  <div\\n    class=\\\"relative mx-auto h-[412px] w-full max-w-[900px] overflow-hidden bg-book-shelf\\\"\\n  >\\n    <div\\n      class=\\\"absolute bg-white px-2 py-1 transition-opacity\\n        {{if this.loading 'opacity-1' 'opacity-0'}}\\\"\\n      aria-hidden={{if this.loading \\\"false\\\" \\\"true\\\"}}\\n    >\\n      Loading\\n    </div>\\n    <div\\n      class=\\\"flex h-full translate-x-book-shelf-page flex-row items-stretch transition-transform duration-1000 ease-in-out\\\"\\n      style={{this.currentPageStyle}}\\n    >\\n      {{#each this.bookshelfBlocks as |block index|}}\\n        <div\\n          class=\\\"flex shrink-0 grow-0 basis-full flex-col items-stretch\\\"\\n          inert={{if block.isCurrentBlock false true}}\\n          data-test-book-shelf-block={{index}}\\n        >\\n          {{#each block.shelves as |shelf|}}\\n            <div\\n              class=\\\"flex flex-1 items-end justify-evenly pb-6\\\"\\n              data-test-book-shelf\\n            >\\n              {{#each shelf as |book index|}}\\n                <button\\n                  type=\\\"button\\\"\\n                  class=\\\"w-[100px]\\\"\\n                  {{on \\\"click\\\" (fn this.goToBook book.code)}}\\n                  data-test-book-cover={{index}}\\n                >\\n                  <img\\n                    class=\\\"w-full shadow-book-shelf-cover-image\\\"\\n                    src={{book.coverUrl}}\\n                    alt=\\\"book cover\\\"\\n                    data-test-book-cover-image\\n                  />\\n                </button>\\n              {{/each}}\\n            </div>\\n          {{/each}}\\n        </div>\\n      {{/each}}\\n    </div>\\n  </div>\\n  <div class=\\\"m-2.5 flex justify-center space-x-2.5\\\">\\n    {{#unless this.firstBookshelf}}\\n      <button\\n        type=\\\"button\\\"\\n        {{on \\\"click\\\" this.goPrev}}\\n        data-test-book-shelf-prev\\n      >\\n        Previous\\n      </button>\\n    {{/unless}}\\n    <LinkTo\\n      @route=\\\"my-program\\\"\\n      data-test-book-shelf-my-program-link=\\\"my-program\\\"\\n    >\\n      My\\n      {{translate \\\"program\\\"}}\\n    </LinkTo>\\n    {{#unless this.lastBookshelf}}\\n      <button\\n        type=\\\"button\\\"\\n        {{on \\\"click\\\" this.goNext}}\\n        data-test-book-shelf-next\\n      >\\n        Next\\n      </button>\\n    {{/unless}}\\n  </div>\\n</book-shelf>\", {\"contents\":\"<book-shelf class=\\\"block w-full\\\" ...attributes>\\n  <div\\n    class=\\\"relative mx-auto h-[412px] w-full max-w-[900px] overflow-hidden bg-book-shelf\\\"\\n  >\\n    <div\\n      class=\\\"absolute bg-white px-2 py-1 transition-opacity\\n        {{if this.loading 'opacity-1' 'opacity-0'}}\\\"\\n      aria-hidden={{if this.loading \\\"false\\\" \\\"true\\\"}}\\n    >\\n      Loading\\n    </div>\\n    <div\\n      class=\\\"flex h-full translate-x-book-shelf-page flex-row items-stretch transition-transform duration-1000 ease-in-out\\\"\\n      style={{this.currentPageStyle}}\\n    >\\n      {{#each this.bookshelfBlocks as |block index|}}\\n        <div\\n          class=\\\"flex shrink-0 grow-0 basis-full flex-col items-stretch\\\"\\n          inert={{if block.isCurrentBlock false true}}\\n          data-test-book-shelf-block={{index}}\\n        >\\n          {{#each block.shelves as |shelf|}}\\n            <div\\n              class=\\\"flex flex-1 items-end justify-evenly pb-6\\\"\\n              data-test-book-shelf\\n            >\\n              {{#each shelf as |book index|}}\\n                <button\\n                  type=\\\"button\\\"\\n                  class=\\\"w-[100px]\\\"\\n                  {{on \\\"click\\\" (fn this.goToBook book.code)}}\\n                  data-test-book-cover={{index}}\\n                >\\n                  <img\\n                    class=\\\"w-full shadow-book-shelf-cover-image\\\"\\n                    src={{book.coverUrl}}\\n                    alt=\\\"book cover\\\"\\n                    data-test-book-cover-image\\n                  />\\n                </button>\\n              {{/each}}\\n            </div>\\n          {{/each}}\\n        </div>\\n      {{/each}}\\n    </div>\\n  </div>\\n  <div class=\\\"m-2.5 flex justify-center space-x-2.5\\\">\\n    {{#unless this.firstBookshelf}}\\n      <button\\n        type=\\\"button\\\"\\n        {{on \\\"click\\\" this.goPrev}}\\n        data-test-book-shelf-prev\\n      >\\n        Previous\\n      </button>\\n    {{/unless}}\\n    <LinkTo\\n      @route=\\\"my-program\\\"\\n      data-test-book-shelf-my-program-link=\\\"my-program\\\"\\n    >\\n      My\\n      {{translate \\\"program\\\"}}\\n    </LinkTo>\\n    {{#unless this.lastBookshelf}}\\n      <button\\n        type=\\\"button\\\"\\n        {{on \\\"click\\\" this.goNext}}\\n        data-test-book-shelf-next\\n      >\\n        Next\\n      </button>\\n    {{/unless}}\\n  </div>\\n</book-shelf>\",\"moduleName\":\"re-client/components/book-shelf.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/book-shelf.hbs\"}});\nimport Component from '@glimmer/component'\nimport { tracked } from '@glimmer/tracking'\nimport { action } from '@ember/object'\nimport { chunk } from 'lodash'\nimport { htmlSafe } from '@ember/template'\n\n/*\n * The Bookshelf component builds a set of shelves based on\n * the number of books a student has read. There are 5 books per shelf.\n * There are 2 shelves per bookshelf.\n * The goNext and goPrev actions will transition between the different bookshelves.\n * The goToBook action takes the student to the book reader where the selected book\n * can be read.\n *\n * @memberOf BookshelfComponent\n */\nexport default class BookShelf extends Component {\n  @tracked currentShelf = 0\n\n  @tracked\n  hasNextPage = false\n\n  @tracked\n  bookPages = []\n\n  @tracked\n  loading = false\n\n  constructor(...args) {\n    super(...args)\n    void this._loadNextPage()\n  }\n\n  get bookshelfBlocks() {\n    return this.bookPages.map((page, i) => ({\n      shelves: chunk(page, Math.ceil(page.length / 2)),\n      isCurrentBlock: this.currentShelf === i,\n    }))\n  }\n\n  get firstBookshelf() {\n    return this.currentShelf === 0\n  }\n\n  get currentPageStyle() {\n    return htmlSafe(`--page: ${this.currentShelf.toString()}`)\n  }\n\n  get isCurrentShelfLastLoaded() {\n    return this.bookshelfBlocks.length <= this.currentShelf + 1\n  }\n\n  // currentShelf is incremented after clicking on the \"next\" button so we need\n  // to increment currentShelf by 1 to hide the next button on the last shelf.\n  get lastBookshelf() {\n    return this.isCurrentShelfLastLoaded && !this.hasNextPage\n  }\n\n  @action\n  async goNext() {\n    await this._loadNextPage()\n    if (!this.isCurrentShelfLastLoaded) {\n      this.currentShelf += 1\n    }\n  }\n\n  @action\n  goPrev() {\n    this.currentShelf -= 1\n  }\n\n  @action\n  goToBook(code) {\n    return this.args.goToBookAction(code)\n  }\n\n  async _loadNextPage() {\n    try {\n      this.loading = true\n      const { value, done } = await this.args.bookPages.next()\n      this.hasNextPage = !done && value.hasNextPage\n      if (value?.books) this.bookPages = [...this.bookPages, value.books]\n    } finally {\n      this.loading = false\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<FullViewport\\n  {{content-interactive\\n    this.loader\\n    externalController=this.externalController\\n    manifests=@manifests\\n    variables=this.variables\\n    onError=this.onError\\n    features=this.featureFlags\\n  }}\\n  class=\\\"{{style-namespace 'content-interactive'}}\\\"\\n  ...attributes\\n  data-test-content-interactive\\n/>\", {\"contents\":\"<FullViewport\\n  {{content-interactive\\n    this.loader\\n    externalController=this.externalController\\n    manifests=@manifests\\n    variables=this.variables\\n    onError=this.onError\\n    features=this.featureFlags\\n  }}\\n  class=\\\"{{style-namespace 'content-interactive'}}\\\"\\n  ...attributes\\n  data-test-content-interactive\\n/>\",\"moduleName\":\"re-client/components/content-interactive.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactive.hbs\"}});\nimport Component from '@glimmer/component'\nimport { inject as service } from '@ember/service'\nimport type { ExternalController, Logger } from '@blakeelearning/messenger'\nimport {\n  createExternalController,\n  assertContentActions,\n  assertContentSpec,\n} from '@blakeelearning/messenger'\nimport config from 're-client/config/environment'\nimport type UserService from 're-client/services/user'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type { Log } from '@blakeelearning/log'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type JesterLoaderService from 're-client/services/jester-loader'\nimport { action } from '@ember/object'\nimport type RouterService from '@ember/routing/router-service'\nimport type StudentMetricsService from 're-client/services/student-metrics'\n\ninterface Args {\n  contentActions: unknown\n  contentSpec: unknown\n  framework: 'jester' | 'caper'\n  variables: Record<string, unknown>\n}\n\nexport default class ContentInteractiveComponent extends Component<Args> {\n  @service declare user: UserService\n\n  @service declare features: FeatureService\n\n  @service declare caperLoader: CaperLoaderService\n\n  @service() declare jesterLoader: JesterLoaderService\n\n  @service declare router: RouterService\n\n  @service declare log: Log\n\n  @service declare studentMetrics: StudentMetricsService\n\n  get loader() {\n    if (this.args.framework === 'jester') {\n      return this.jesterLoader.loader\n    }\n\n    return this.caperLoader.loader\n  }\n\n  get externalController(): ExternalController {\n    const { contentActions, contentSpec } = this.args\n\n    assertContentSpec(contentSpec)\n    assertContentActions(contentActions, contentSpec)\n\n    let logger: Logger | undefined\n    if (config.APP.enableMessengerLogging)\n      logger = (name, event, ...args) => {\n        console.debug(\n          '%c[%s :: %s]',\n          'color: black; background-color: #aeca36; font-weight: bold',\n          name,\n          event,\n          ...args,\n        )\n      }\n\n    return createExternalController(\n      this.withReadyForUserInputEvent(contentActions),\n      contentSpec,\n      {\n        // onUnrecoverableError: (error) => this.errorHandler.handleUnrecoverableError(error),\n        logger,\n      },\n    )\n  }\n\n  /**\n   * Wraps the content actions so a general metrics event is captured whenever\n   * the content calls `readyForUserInput`, without each controller having to.\n   */\n  private withReadyForUserInputEvent<T extends object>(contentActions: T): T {\n    return new Proxy(contentActions, {\n      get: (target, prop) => {\n        const value: unknown = Reflect.get(target, prop, target)\n        if (prop !== 'readyForUserInput' || typeof value !== 'function') {\n          return value\n        }\n\n        return (...args: unknown[]) => {\n          this.studentMetrics.captureGeneralEvent({\n            eventType: 'jester_ready_for_user_input',\n          })\n          return (value as (...args: unknown[]) => unknown).apply(target, args)\n        }\n      },\n    })\n  }\n\n  get variables() {\n    return {\n      ...this.args.variables,\n      bgmDisabled: this.user.backgroundMusicDisabled,\n    }\n  }\n\n  get featureFlags() {\n    const client = this.features.getClient()\n    const { payload: flagNames } = client.getObjectValue<{ payload: string[] }>(\n      're_jester-flag-names',\n      { payload: [] },\n    )\n\n    const features = new Set<string>()\n\n    flagNames.forEach((flagName) => {\n      if (this.features.isEnabled(flagName)) {\n        features.add(flagName)\n\n        // Special cases to support legacy flag names\n        if (flagName === 're_jester-css-font-loading') {\n          features.add('jesterCssFontLoadingFF')\n        }\n        if (flagName === 're_video-ui-update') {\n          features.add('video_ui_update')\n        }\n      }\n    })\n\n    return [...features]\n  }\n\n  @action\n  onError(error: Error) {\n    this.log.error(error)\n    void this.router.transitionTo('application-error')\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"{{style-namespace 'content-interactive/debug'}}\\\">\\n  {{#each this.debugActions as |action|}}\\n    <form {{on \\\"submit\\\" (fn this.onSubmit action.key)}}>\\n      {{#each action.params as |param|}}\\n        <fieldset>\\n          <label for=\\\"{{action.key}}-{{param.name}}\\\">\\n            {{title-case param.name}}\\n          </label>\\n          {{#if (eq param.type \\\"select\\\")}}\\n            <select\\n              class=\\\"form-select\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              required={{if param.optional false true}}\\n            >\\n              <option value=\\\"\\\">Select {{param.name}}</option>\\n              {{#each param.options as |item|}}\\n                <option\\n                  value={{item.value}}\\n                  selected={{eq param.value item.value}}\\n                >\\n                  {{item.label}}\\n                </option>\\n              {{/each}}\\n            </select>\\n          {{else}}\\n            <input\\n              class=\\\"form-input\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              type={{param.type}}\\n              value={{param.value}}\\n            />\\n          {{/if}}\\n        </fieldset>\\n      {{/each}}\\n\\n      <button data-test-debug-action={{action.key}} type=\\\"submit\\\">\\n        {{title-case action.key}}\\n      </button>\\n    </form>\\n  {{/each}}\\n\\n  {{#each this.debugValues as |value|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case value}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{value}}\\n        data-debug=\\\"{{get this value}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n\\n  {{#each this.debugSubscriptions as |subscription|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case subscription.key}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{subscription.key}}\\n        data-debug=\\\"{{subscription.currentValue}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n</div>\", {\"contents\":\"<div class=\\\"{{style-namespace 'content-interactive/debug'}}\\\">\\n  {{#each this.debugActions as |action|}}\\n    <form {{on \\\"submit\\\" (fn this.onSubmit action.key)}}>\\n      {{#each action.params as |param|}}\\n        <fieldset>\\n          <label for=\\\"{{action.key}}-{{param.name}}\\\">\\n            {{title-case param.name}}\\n          </label>\\n          {{#if (eq param.type \\\"select\\\")}}\\n            <select\\n              class=\\\"form-select\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              required={{if param.optional false true}}\\n            >\\n              <option value=\\\"\\\">Select {{param.name}}</option>\\n              {{#each param.options as |item|}}\\n                <option\\n                  value={{item.value}}\\n                  selected={{eq param.value item.value}}\\n                >\\n                  {{item.label}}\\n                </option>\\n              {{/each}}\\n            </select>\\n          {{else}}\\n            <input\\n              class=\\\"form-input\\\"\\n              id=\\\"{{action.key}}-{{param.name}}\\\"\\n              name={{param.name}}\\n              type={{param.type}}\\n              value={{param.value}}\\n            />\\n          {{/if}}\\n        </fieldset>\\n      {{/each}}\\n\\n      <button data-test-debug-action={{action.key}} type=\\\"submit\\\">\\n        {{title-case action.key}}\\n      </button>\\n    </form>\\n  {{/each}}\\n\\n  {{#each this.debugValues as |value|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case value}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{value}}\\n        data-debug=\\\"{{get this value}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n\\n  {{#each this.debugSubscriptions as |subscription|}}\\n    <figure>\\n      <figcaption>\\n        {{title-case subscription.key}}\\n      </figcaption>\\n\\n      <pre\\n        data-test-debug-value={{subscription.key}}\\n        data-debug=\\\"{{subscription.currentValue}}\\\"\\n        title=\\\"Copy to Clipboard\\\"\\n        role=\\\"button\\\"\\n        tabindex=\\\"0\\\"\\n        {{on \\\"click\\\" this.copyToClipboard}}\\n      ></pre>\\n    </figure>\\n  {{/each}}\\n</div>\",\"moduleName\":\"re-client/components/content-interactive/debug.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactive/debug.hbs\"}});\nimport { assert } from '@ember/debug'\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport { tracked } from '@glimmer/tracking'\nimport type { Subscribe } from '@blakeelearning/messenger'\nimport { getDebug } from 're-client/utils/debug'\nimport type { DebugActionParam } from 're-client/utils/debug'\n\ninterface Args {\n  contentActions?: Record<string | symbol, unknown>\n}\n\ntype DebugParam = DebugActionParam & {\n  /**\n   * The name of the input field\n   */\n  name: string\n}\n\ninterface DebugAction {\n  key: string | symbol\n  params: DebugParam[]\n}\n\nclass DebugObservable {\n  @tracked currentValue?: string\n\n  key: string | symbol\n\n  unsubscribe?: (() => void) | void\n\n  constructor(key: string | symbol, subscribe: Subscribe) {\n    this.key = key\n\n    this.unsubscribe = subscribe({\n      next: (value) => {\n        this.currentValue = JSON.stringify(value.data, null, 2)\n      },\n      error(error) {\n        console.error(error)\n      },\n      complete() {\n        console.debug('done')\n      },\n    })\n  }\n}\n\n/**\n * Displays values and actions from the DebugContent in a debug menu\n *\n * Displays values as JSON strings\n *\n * Displays actions a form, with action params as input fields\n */\nexport default class ContentInteractiveDebugComponent extends Component<Args> {\n  debugValues: (string | symbol)[] = []\n\n  debugActions: DebugAction[] = []\n\n  debugSubscriptions: DebugObservable[] = []\n\n  constructor(owner: unknown, args: Args) {\n    super(owner, args)\n\n    const debug = getDebug(this.contentActions)\n\n    for (const [key, actionParams] of debug.actions) {\n      const params = []\n\n      if (typeof actionParams !== 'undefined') {\n        for (const [name, param] of Object.entries(actionParams)) {\n          params.push({ name, ...param })\n        }\n      }\n\n      this.debugActions.push({ key, params })\n    }\n\n    for (const key of debug.values) {\n      Object.defineProperty(this, key, {\n        get() {\n          // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n          return JSON.stringify(this.contentActions[key], null, 2)\n        },\n      })\n\n      this.debugValues.push(key)\n    }\n\n    for (const key of debug.subscriptions) {\n      const subscribe = this.contentActions[key]\n\n      if (typeof subscribe === 'function') {\n        const observable = new DebugObservable(key, subscribe as Subscribe)\n        this.debugSubscriptions.push(observable)\n      }\n    }\n  }\n\n  get contentActions() {\n    assert(\n      'contentActions must be defined',\n      typeof this.args.contentActions !== 'undefined',\n    )\n\n    return this.args.contentActions\n  }\n\n  @action\n  copyToClipboard(event: Event) {\n    if (\n      event.target instanceof HTMLElement &&\n      typeof event.target.dataset['debug'] === 'string'\n    ) {\n      let debugData = event.target.dataset['debug']\n      if (debugData.startsWith(`\"`) && debugData.endsWith(`\"`)) {\n        debugData = debugData.slice(1, -1)\n      }\n      void navigator.clipboard.writeText(debugData)\n    }\n  }\n\n  @action\n  onSubmit(actionKey: string, event: Event) {\n    event.preventDefault()\n\n    const debug = getDebug(this.contentActions)\n    const debugAction = this.contentActions[actionKey]\n    const debugParams = debug.actions.get(actionKey) ?? []\n\n    assert('debug action must be a function', typeof debugAction === 'function')\n\n    if (event.currentTarget instanceof HTMLFormElement) {\n      const params = new Map()\n      const formData = new FormData(event.currentTarget)\n\n      for (const [key, paramType] of Object.entries(debugParams)) {\n        let value: unknown = formData.get(key)\n\n        if (\n          paramType.type === 'select' &&\n          typeof value === 'string' &&\n          paramType.values\n        ) {\n          value = paramType.values[value]\n        }\n\n        if (paramType.type === 'number') {\n          params.set(key, Number(value))\n        } else {\n          params.set(key, value)\n        }\n      }\n\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n      debugAction(Object.fromEntries(params))\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/book-reader.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/book-reader.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class BookReader extends Component {\n  next() {\n    this.args.nextAction()\n  }\n\n  resultVideo(videoTitle) {\n    this.args.resultVideoAction(videoTitle)\n  }\n\n  backToQuiz() {\n    this.args.backToQuizAction()\n  }\n\n  async saveProgress() {\n    // As of July 2021, none of the invocations of this component do anything for\n    // saveProgress - they return resolved promises that are no-ops. As such, we\n    // call 'nextable' immediately now.\n    return this._handleNextableResponse({})\n  }\n\n  async saveBookQuizScore(bookCode, total, correct) {\n    const response = await this.args.saveBookQuizScoreAction(\n      bookCode,\n      total,\n      correct,\n    )\n    return this.interactive.callInteractionMethod('handleQuizSuccess', response)\n  }\n\n  _handleNextableResponse(response) {\n    const data = { reward: { eggs: 0 }, ...response }\n    return this.interactive.callInteractionMethod('nextable', data)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/book-reader/result-video.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/book-reader/result-video.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class BookResultVideo extends Component {\n  next() {\n    this.args.nextAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/bookcase.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/bookcase.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class BookcaseComponent extends Component {\n  returnToHouse() {\n    this.args.returnToHouseAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/critters/critter-book.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/critters/critter-book.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class CritterBook extends Component {\n  playVideo(critterId) {\n    this.args.playVideoAction(critterId)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/critters/critter.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/critters/critter.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class Critter extends Component {\n  next() {\n    this.args.nextAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/driving-tests/lobby.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/driving-tests/lobby.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class Lobby extends Component {\n  startQuiz(type, quizNumber) {\n    this.args.startQuizAction(type, quizNumber)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/driving-tests/quiz.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/driving-tests/quiz.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class Quiz extends Component {\n  goToLobby() {\n    this.args.goToLobbyAction()\n  }\n\n  completeDrivingTest(correctAnswers, incorrectAnswers) {\n    this.args.completeDrivingTestAction(correctAnswers, incorrectAnswers)\n  }\n\n  startRace() {\n    this.args.startRaceAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/driving-tests/racing-game.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/driving-tests/racing-game.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class RacingGame extends Component {\n  incrementScore(eggs) {\n    this.args.incrementScoreAction(eggs)\n  }\n\n  exit() {\n    this.args.exitAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/games.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/games.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class GamesComponent extends Component {\n  purchaseGamePlay(gameId) {\n    this.args.purchaseGamePlayAction(gameId)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/games/play-game.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/games/play-game.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class PlayGameComponent extends Component {\n  saveGameScore(arg) {\n    this.args.saveGameScoreAction(arg)\n  }\n\n  next() {\n    this.args.nextAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/lessons/finished-re-lessons.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/lessons/finished-re-lessons.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class FinishedReLessons extends Component {\n  goToSkillsBank() {\n    this.args.goToSkillsBankAction()\n  }\n\n  goToStorylands() {\n    this.args.goToStorylandsAction()\n  }\n\n  goToIndex() {\n    this.args.goToIndexAction()\n  }\n\n  goToReadingEggspress() {\n    this.args.goToReadingEggspressAction()\n  }\n\n  goToPrevMap() {\n    this.args.goToPrevMapAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/lessons/lesson-activity-game.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/lessons/lesson-activity-game.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class LessonActivityGame extends Component {\n  /**\n   * Save lesson activity progress\n   *\n   * @instance\n   * @memberOf LessonActivityComponent\n   */\n  async saveProgress(rewardStudent) {\n    const response = await this.args.saveProgressAction(rewardStudent)\n    this._handleNextableResponse(response)\n  }\n\n  /**\n   * Transition to the next activity if there is one, or got to back to the map\n   *\n   * @instance\n   * @memberOf LessonActivityComponent\n   */\n\n  next() {\n    this.args.nextAction()\n  }\n\n  saveLearningState(args) {\n    this.args.saveLearningStateAction(args)\n  }\n\n  skipLesson() {\n    this.args.skipLessonAction()\n  }\n\n  abortSkipLessonAttempt() {\n    this.args.abortSkipLessonAttemptAction()\n  }\n\n  captureAskReggieInteraction({ event }) {\n    this.args.captureAskReggieInteractionAction({ event })\n  }\n\n  /**\n   * Adds one to the student's eggs count\n   */\n  incrementScore(amount = 1) {\n    this.args.incrementScoreAction(amount)\n  }\n\n  _handleNextableResponse(response) {\n    const data = { reward: { eggs: 0 }, ...response }\n    this.interactive.callInteractionMethod('nextable', data)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/play/play-activity.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/play/play-activity.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class PlayActivity extends Component {\n  next() {\n    this.args.nextAction()\n  }\n\n  async saveProgress() {\n    this.interactive.callInteractionMethod('nextable', { reward: { eggs: 0 } })\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/play/play-room.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/play/play-room.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class PlayRoom extends Component {\n  showBook(name) {\n    this.args.showBookAction(name)\n  }\n\n  showGame(game, data) {\n    this.args.showGameAction(game, data)\n  }\n\n  showVideo(name) {\n    this.args.showVideoAction(name)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>\",\"moduleName\":\"re-client/components/content-interactives/plaza.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/plaza.hbs\"}});\nimport Component from '@glimmer/component'\nimport { action } from '@ember/object'\nimport type RouterService from '@ember/routing/router-service'\nimport { service } from '@ember/service'\nimport type DebugModeService from 're-client/services/debug-mode'\nimport type WeeklyPollService from 're-client/services/weekly-poll'\nimport { debugAction } from 're-client/utils/debug'\nimport { fixtureFunctions } from 're-client/utils/weekly-poll/fake-data'\nimport type { FixtureFunctionKey } from 're-client/utils/weekly-poll/fake-data'\nimport { toDateString } from 're-client/utils/format-date'\n\nconst voteDataOptions: {\n  label: string\n  value: FixtureFunctionKey\n}[] = [\n  {\n    label: 'First week voted',\n    value: 'fixedResponseFirstWeekVoted',\n  },\n  {\n    label: 'Last week voted',\n    value: 'fixedResponseLastWeekVoted',\n  },\n  {\n    label: 'Not voted',\n    value: 'fixedResponseNotVoted',\n  },\n  {\n    label: 'Zero results',\n    value: 'fixedResponseZeroVotes',\n  },\n  {\n    label: 'No previous week data',\n    value: 'fixedResponseNoPreviousWeekData',\n  },\n]\n\nexport default class Plaza extends Component {\n  declare interactive: {\n    callInteractionMethod(method: string, ...args: unknown[]): void\n  }\n\n  @service\n  declare debugMode: DebugModeService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare weeklyPoll: WeeklyPollService\n\n  @action\n  @debugAction({\n    department: {\n      type: 'select',\n      options: [\n        { label: 'Avatar', value: 'avatar' },\n        { label: 'House', value: 'house' },\n      ],\n    },\n  })\n  gotoShopDepartment(department: string | { department: string }) {\n    if (typeof department === 'object') {\n      department = department.department\n    }\n    void this.router.transitionTo('shop.department', department)\n  }\n\n  @action\n  @debugAction({\n    day: {\n      type: 'date',\n      value: toDateString(new Date()),\n    },\n  })\n  goToDay({ day }: { day: string }) {\n    void this.router.transitionTo('plaza', { queryParams: { day } })\n  }\n\n  @action\n  @debugAction({\n    voteData: {\n      type: 'select',\n      options: voteDataOptions,\n    },\n  })\n  setWeeklyVoteData({ voteData }: { voteData: FixtureFunctionKey }) {\n    const fixture = fixtureFunctions[voteData]\n    const response = fixture()\n\n    this.interactive.callInteractionMethod('handlePollServerResponse', response)\n  }\n\n  @action\n  @debugAction({\n    dateVoted: {\n      type: 'date',\n      value: toDateString(new Date()),\n    },\n  })\n  async resetWeeklyPoll({ dateVoted }: { dateVoted: string }) {\n    const response = await this.weeklyPoll.resetWeeklyPoll(dateVoted)\n\n    if (response)\n      this.interactive.callInteractionMethod(\n        'handlePollServerResponse',\n        response,\n      )\n  }\n\n  /**\n   * Post weekly poll answer\n   * @param {Number} pollId\n   * @param {Number} answer\n   * @returns {Object} returns a response with 3 results which feeds back into the results.\n   */\n  @action\n  @debugAction({\n    plazaPollId: {\n      type: 'text',\n    },\n    votedAnswer: {\n      type: 'number',\n    },\n  })\n  async postAnswer(\n    plazaPollId: string | { plazaPollId: string; votedAnswer: number },\n    votedAnswer: number,\n  ) {\n    if (typeof plazaPollId === 'object') {\n      votedAnswer = plazaPollId.votedAnswer\n      plazaPollId = plazaPollId.plazaPollId\n    }\n\n    const response = await this.weeklyPoll.postWeeklyPoll({\n      plazaPollId,\n      votedAnswer,\n    })\n\n    if (response)\n      this.interactive.callInteractionMethod(\n        'handlePollServerResponse',\n        response,\n      )\n  }\n\n  /**\n   * Update the weekly poll data\n   * @returns {Object} returns a response with 3 results which feeds back into the results.\n   */\n  @action\n  @debugAction()\n  async getWeeklyPoll() {\n    const response = await this.weeklyPoll.getWeeklyPoll()\n    if (response)\n      this.interactive.callInteractionMethod(\n        'handlePollServerResponse',\n        response,\n      )\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/puzzles/puzzle-game.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/puzzles/puzzle-game.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class PuzzleGame extends Component {\n  /**\n   * Puzzle has completed and returned a score\n   * @param {Number} score The student's score from this attempt\n   */\n  saveScore(score) {\n    this.args.saveScoreAction(score)\n  }\n\n  /**\n   * Activity has signalled to go back to the lobby\n   */\n  goBackToLobby() {\n    this.args.goBackToLobbyAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/puzzles/puzzle-lobby-game.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/puzzles/puzzle-lobby-game.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class PuzzleLobbyGame extends Component {\n  /**\n   * Activity has signalled to load a puzzle\n   * @param {String} puzzleName The name of the puzzle to load\n   */\n  showPuzzle(puzzleName) {\n    this.args.showPuzzleAction(puzzleName)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/shop-game.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/shop-game.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class ShopGame extends Component {\n  async purchaseItem(item) {\n    const result = await this.args.purchaseAction(item)\n    this.interactive.callInteractionMethod('completeItemPurchase', {\n      id: item.id,\n      result,\n    })\n  }\n\n  changeDepartment(department) {\n    this.args.changeDepartmentAction(department)\n  }\n\n  gotoCatalogue() {\n    this.args.gotoCatalogueAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/shop-game/catalogue.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/shop-game/catalogue.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class Catalogue extends Component {\n  /**\n   * Action to purchase a single item.\n   *\n   * @param {{id:string}} [item] - an object with an `id` property\n   *   corresponding to the item to purchase.\n   * @returns {undefined}\n   */\n  async purchaseItem(item) {\n    const result = await this.args.purchaseAction(item)\n    this.interactive.callInteractionMethod('completeItemPurchase', {\n      id: item.id,\n      result,\n    })\n  }\n\n  /**\n   * Action to purchase a bundle of items. The interactive sends an object with a bundleId\n   * and a list of items which returns a response, which can include information the frontend / interactive\n   * can use to make decisions, like errors.\n   *\n   * @param {Array} items\n   * @param {String} bundleId\n   * @returns {undefined}\n   */\n  async purchaseBundle({ items, bundleId }) {\n    const result = await this.args.purchaseBundleAction(items)\n    this.interactive.callInteractionMethod('completeBundlePurchase', {\n      bundleId,\n      result,\n    })\n  }\n\n  /**\n   * Action to request the bundle price based on the bundleId and items passed down\n   * The price can change if a student has already purchased an item of the bundle\n   *\n   * @param {Array} items\n   * @param {String} bundleId\n   * @returns {undefined}\n   */\n  async bundlePrice({ items, bundleId }) {\n    const response = await this.args.bundlePriceAction(items)\n    response.bundleId = bundleId\n    this.interactive.callInteractionMethod('completeBundlePrice', response)\n  }\n\n  /**\n   * Returns to the currently active department\n   * @returns {undefined}\n   */\n  backToShop() {\n    this.args.backToShopAction()\n  }\n\n  /**\n   * This can be used to retrieve the time to next month which returns\n   * an object with days and hours.\n   * @returns {{ days: Number, hours: Number }}\n   */\n  timeToNextMonth() {\n    return this.args.timeToNextMonthAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/songs/songs-game.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/songs/songs-game.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class SongsGame extends Component {\n  next() {\n    this.args.nextAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/songs/songs-lobby.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/songs/songs-lobby.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class SongsLobby extends Component {\n  showVideo(video) {\n    this.args.showVideoAction(video)\n  }\n\n  playVideo(video) {\n    this.args.playVideoAction(video)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/spelling/finished-re-spelling.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/spelling/finished-re-spelling.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class FinishedReSpelling extends Component {\n  goToStorylands() {\n    this.args.goToStorylandsAction()\n  }\n\n  goToIndex() {\n    this.args.goToIndexAction()\n  }\n\n  goToReadingEggspress() {\n    this.args.goToReadingEggspressAction()\n  }\n\n  goToPrevMap() {\n    this.args.goToPrevMapAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/spelling/map-game.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/spelling/map-game.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class MapGame extends Component {\n  playLesson(...args) {\n    this.args.playLessonAction(...args)\n  }\n\n  playQuiz(...args) {\n    this.args.playQuizAction(...args)\n  }\n\n  prevMap() {\n    this.args.prevMapAction()\n  }\n\n  nextMap() {\n    this.args.nextMapAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/spelling/mystery-game.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/spelling/mystery-game.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class MysteryGame extends Component {\n  async grantMysteryItem(itemId) {\n    await this.args.grantMysteryItemAction(itemId)\n    this.interactive.callInteractionMethod('nextable')\n  }\n\n  next() {\n    this.args.nextAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\">\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\">\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/storylands/bonus-game.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/storylands/bonus-game.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class BonusGame extends Component {\n  next() {\n    this.args.nextAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\">\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\">\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/storylands/finished-storylands.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/storylands/finished-storylands.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class FinishedStorylands extends Component {\n  goToSkillsBank() {\n    this.args.goToSkillsBankAction()\n  }\n\n  goToIndex() {\n    this.args.goToIndexAction()\n  }\n\n  goToReadingEggspress() {\n    this.args.goToReadingEggspressAction()\n  }\n\n  goToPrevMap() {\n    this.args.goToPrevMapAction()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content-interactive\\\">\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\", {\"contents\":\"<div class=\\\"content-interactive\\\">\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\",\"moduleName\":\"re-client/components/content-interactives/storylands/map-game.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/content-interactives/storylands/map-game.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class MapGame extends Component {\n  playLesson(lessonId) {\n    this.args.playLessonAction(lessonId)\n  }\n\n  playQuiz() {\n    this.args.playQuizAction()\n  }\n\n  prevMap() {\n    this.args.prevMapAction()\n  }\n\n  nextMap() {\n    this.args.nextMapAction()\n  }\n\n  playBonusGame(gameId) {\n    this.args.playBonusGameAction(gameId)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if this.debugAllowed}}\\n  <div\\n    class=\\\"absolute right-0 top-0 overflow-y-auto rounded-bl-md bg-dusty-black-500 bg-opacity-50\\\"\\n  >\\n    <div class=\\\"relative\\\">\\n      <button\\n        class=\\\"ml-auto block rounded-bl-md bg-dusty-black-400 bg-opacity-80 px-3 py-2 text-white shadow-sm\\\"\\n        data-test-toggle-debug=\\\"true\\\"\\n        {{on \\\"click\\\" this.toggleDebug}}\\n        type=\\\"button\\\"\\n      >\\n        {{this.buttonText}}\\n      </button>\\n\\n      {{#if this.debugMode.enabled}}\\n        {{yield}}\\n      {{/if}}\\n    </div>\\n  </div>\\n{{/if}}\", {\"contents\":\"{{#if this.debugAllowed}}\\n  <div\\n    class=\\\"absolute right-0 top-0 overflow-y-auto rounded-bl-md bg-dusty-black-500 bg-opacity-50\\\"\\n  >\\n    <div class=\\\"relative\\\">\\n      <button\\n        class=\\\"ml-auto block rounded-bl-md bg-dusty-black-400 bg-opacity-80 px-3 py-2 text-white shadow-sm\\\"\\n        data-test-toggle-debug=\\\"true\\\"\\n        {{on \\\"click\\\" this.toggleDebug}}\\n        type=\\\"button\\\"\\n      >\\n        {{this.buttonText}}\\n      </button>\\n\\n      {{#if this.debugMode.enabled}}\\n        {{yield}}\\n      {{/if}}\\n    </div>\\n  </div>\\n{{/if}}\",\"moduleName\":\"re-client/components/debug-app/toggle-debug.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/debug-app/toggle-debug.hbs\"}});\nimport { inject as service } from '@ember/service'\nimport Component from '@ember/component'\nimport { action } from '@ember/object'\n\n/**\n * Provide a button to toggle debug mode globally\n */\nexport default class ToggleDebug extends Component {\n  @service\n  debugMode\n\n  get debugAllowed() {\n    return this.debugMode.debugAllowed\n  }\n\n  get buttonText() {\n    if (this.debugMode?.enabled) {\n      return 'Disable Debug Mode'\n    }\n    return 'Enable Debug Mode'\n  }\n\n  @action\n  toggleDebug(event) {\n    if (this.debugMode.enabled) {\n      this.debugMode.disable()\n    } else {\n      this.debugMode.enable()\n    }\n\n    // once you clicked this button the focus stays on it, which interferes with keyboard\n    // usage when pressing enter within the activity. So we need to remove the focus on the button\n    event.target.blur()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"device-rotate-notification-container\\\" data-test-rotate-notification>\\n  <img\\n    src=\\\"/assets/rotate_white.png\\\"\\n    alt=\\\"Please rotate your device\\\"\\n    class=\\\"rotate-icon\\\"\\n  />\\n  <h2>Please rotate your device.</h2>\\n</div>\", {\"contents\":\"<div class=\\\"device-rotate-notification-container\\\" data-test-rotate-notification>\\n  <img\\n    src=\\\"/assets/rotate_white.png\\\"\\n    alt=\\\"Please rotate your device\\\"\\n    class=\\\"rotate-icon\\\"\\n  />\\n  <h2>Please rotate your device.</h2>\\n</div>\",\"moduleName\":\"re-client/components/device-rotate-notification.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/device-rotate-notification.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<button type=\\\"button\\\" aria-label=\\\"Close\\\" {{on \\\"click\\\" @onClick}} ...attributes>\\n  {{#if (has-block)}}\\n    {{yield}}\\n  {{else}}\\n    <FaIcon @icon=\\\"xmark\\\" />\\n  {{/if}}\\n</button>\", {\"contents\":\"<button type=\\\"button\\\" aria-label=\\\"Close\\\" {{on \\\"click\\\" @onClick}} ...attributes>\\n  {{#if (has-block)}}\\n    {{yield}}\\n  {{else}}\\n    <FaIcon @icon=\\\"xmark\\\" />\\n  {{/if}}\\n</button>\",\"moduleName\":\"re-client/components/dialog/close.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/dialog/close.hbs\"}});\nimport Component from '@glimmer/component'\n\ninterface DialogCloseSignature {\n  Args: {\n    onClick?: (event: MouseEvent) => void\n  }\n  Element: HTMLButtonElement\n}\n\n// eslint-disable-next-line ember/no-empty-glimmer-component-classes\nexport default class DialogCloseComponent extends Component<DialogCloseSignature> {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<FullViewport\\n  tabindex=\\\"-1\\\"\\n  class=\\\"bg-storm-blue-500 bg-opacity-80 backdrop-blur-sm\\\"\\n  ...attributes\\n>\\n  {{yield}}\\n</FullViewport>\", {\"contents\":\"<FullViewport\\n  tabindex=\\\"-1\\\"\\n  class=\\\"bg-storm-blue-500 bg-opacity-80 backdrop-blur-sm\\\"\\n  ...attributes\\n>\\n  {{yield}}\\n</FullViewport>\",\"moduleName\":\"re-client/components/dialog/overlay.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/dialog/overlay.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"flex min-h-full items-center justify-center p-4\\\">\\n  <div\\n    class=\\\"scale-1 opacity-100 outline-none\\\"\\n    role=\\\"document\\\"\\n    tabindex=\\\"0\\\"\\n    ...attributes\\n  >\\n    {{yield}}\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"flex min-h-full items-center justify-center p-4\\\">\\n  <div\\n    class=\\\"scale-1 opacity-100 outline-none\\\"\\n    role=\\\"document\\\"\\n    tabindex=\\\"0\\\"\\n    ...attributes\\n  >\\n    {{yield}}\\n  </div>\\n</div>\",\"moduleName\":\"re-client/components/dialog/panel.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/dialog/panel.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<footer class={{style-namespace \\\"footer\\\"}}>\\n  <img src={{@logo}} alt=\\\"Reading Eggs\\\" class=\\\"re-logo drop-shadow\\\" />\\n  {{yield}}\\n</footer>\", {\"contents\":\"<footer class={{style-namespace \\\"footer\\\"}}>\\n  <img src={{@logo}} alt=\\\"Reading Eggs\\\" class=\\\"re-logo drop-shadow\\\" />\\n  {{yield}}\\n</footer>\",\"moduleName\":\"re-client/components/footer.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/footer.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"{{style-namespace 'full-page-alert'}}\\\" data-test-full-page-alert>\\n  <div class=\\\"alert-image\\\" {{remove-initial-loading-screen}}></div>\\n\\n  {{#if @status}}\\n    <div class=\\\"full-page-alert-text emphasise\\\">Uh-oh! ({{@status}})</div>\\n  {{else}}\\n    <div class=\\\"full-page-alert-text emphasise\\\">Uh-oh!</div>\\n  {{/if}}\\n  <div class=\\\"full-page-alert-text description\\\">{{yield}}</div>\\n</div>\", {\"contents\":\"<div class=\\\"{{style-namespace 'full-page-alert'}}\\\" data-test-full-page-alert>\\n  <div class=\\\"alert-image\\\" {{remove-initial-loading-screen}}></div>\\n\\n  {{#if @status}}\\n    <div class=\\\"full-page-alert-text emphasise\\\">Uh-oh! ({{@status}})</div>\\n  {{else}}\\n    <div class=\\\"full-page-alert-text emphasise\\\">Uh-oh!</div>\\n  {{/if}}\\n  <div class=\\\"full-page-alert-text description\\\">{{yield}}</div>\\n</div>\",\"moduleName\":\"re-client/components/full-page-alert.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/full-page-alert.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  {{device/detection-classes \\\"iphone\\\"}}\\n  {{device/bind-viewport-height propertyName=\\\"--iphone-viewport-height\\\"}}\\n  class=\\\"{{style-namespace 'full-viewport'}} h-iphone-viewport-height\\\"\\n  data-test-full-viewport\\n  ...attributes\\n>\\n  {{yield}}\\n</div>\", {\"contents\":\"<div\\n  {{device/detection-classes \\\"iphone\\\"}}\\n  {{device/bind-viewport-height propertyName=\\\"--iphone-viewport-height\\\"}}\\n  class=\\\"{{style-namespace 'full-viewport'}} h-iphone-viewport-height\\\"\\n  data-test-full-viewport\\n  ...attributes\\n>\\n  {{yield}}\\n</div>\",\"moduleName\":\"re-client/components/full-viewport.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/full-viewport.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div id=\\\"hidden-print-container\\\" data-test-hidden-print-container>\\n  {{yield}}\\n</div>\", {\"contents\":\"<div id=\\\"hidden-print-container\\\" data-test-hidden-print-container>\\n  {{yield}}\\n</div>\",\"moduleName\":\"re-client/components/hidden-print-container.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/hidden-print-container.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<full-nav id=\\\"navigation\\\" ...attributes>\\n  <div\\n    class=\\\"nav-item-list\\\"\\n    data-nav-items-list\\n    data-test-nav-items-list\\n    {{window-resize this.resize}}\\n  >\\n    {{yield}}\\n  </div>\\n</full-nav>\", {\"contents\":\"<full-nav id=\\\"navigation\\\" ...attributes>\\n  <div\\n    class=\\\"nav-item-list\\\"\\n    data-nav-items-list\\n    data-test-nav-items-list\\n    {{window-resize this.resize}}\\n  >\\n    {{yield}}\\n  </div>\\n</full-nav>\",\"moduleName\":\"re-client/components/home-nav.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/home-nav.hbs\"}});\nimport gsap from 'gsap'\nimport Component from '@glimmer/component'\nimport { inject as service } from '@ember/service'\nimport { action } from '@ember/object'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type DeviceDetection from '@blakeelearning/device/device/detection/service'\n\ninterface HomeNavSignature {\n  Element: HTMLDivElement\n}\n\nconst baseWidth = 1024\nconst baseHeight = 768\n\nconst firstRowItemsSelector = 'nav .first-row'\n\nconst secondRowItemsSelector = 'nav .second-row'\n\nexport default class HomeNavComponent extends Component<HomeNavSignature> {\n  @service\n  declare features: FeatureService\n\n  @service('device/detection')\n  declare device: DeviceDetection\n\n  /**\n   * Target of the first curve tween.\n   * Tracks the current position, so we set it initially to the first node in the path\n   */\n  firstCurve = {\n    x: 0,\n    y: 280,\n    rotation: 0,\n  }\n\n  /**\n   * Target of the second curve tween.\n   * Tracks the current position, so we set it initially to the first node in the path\n   */\n  secondCurve = {\n    x: 0,\n    y: 580,\n    rotation: 0,\n  }\n\n  firstTween = gsap.to(this.firstCurve, {\n    motionPath: {\n      curviness: 0.6,\n      path: [\n        { x: 0, y: 280 },\n        { x: 512, y: 330 },\n        { x: 1024, y: 280 },\n      ],\n    },\n    ease: 'none',\n  })\n\n  secondTween = gsap.to(this.secondCurve, {\n    motionPath: {\n      curviness: 0.6,\n      path: [\n        { x: 0, y: 580 },\n        { x: 512, y: 515 },\n        { x: 1024, y: 580 },\n      ],\n    },\n    ease: 'none',\n  })\n\n  _alignItems(navList: HTMLElement) {\n    this._alignItemsAlongCurve(\n      navList,\n      firstRowItemsSelector,\n      this.firstCurve,\n      this.firstTween,\n    )\n    this._alignItemsAlongCurve(\n      navList,\n      secondRowItemsSelector,\n      this.secondCurve,\n      this.secondTween,\n    )\n  }\n\n  /**\n   * This uses Tweenmax to create a tween (animation) which follows a bezier curve.\n   * Now we are able to position of each element based on its index along the line\n   * @param itemSelector - jQuery collection of elements\n   * @param path\n   * @param autoRotate\n   * @see https://greensock.com/forums/topic/7251-plot-elements-and-or-draw-along-a-bezier-path/ for inspiration\n   */\n  _alignItemsAlongCurve(\n    navList: HTMLElement,\n    itemSelector: string,\n    curve: { x: number; y: number; rotation: number },\n    tween: gsap.core.Tween,\n  ) {\n    const items = navList.querySelectorAll<HTMLElement>(itemSelector)\n    tween.duration(items.length)\n\n    const firstRow = itemSelector === firstRowItemsSelector\n    /**\n     * These values are are times on the tween timeline and represent the positions that the icons will be placed along the path.\n     * We are manually declaring them for the first row as the spacing is not even since the addition of the 'Reading Journal' and the desire to keep 'Lessons' placed in the centre.\n     */\n    let firstRowPlacement = [0.6, 1.8, 3, 3.83, 4.63, 5.43]\n\n    if (this.features.isEnabled('re_my-reading-goals')) {\n      firstRowPlacement = [0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5] // 7 items in total\n    }\n\n    for (const [i, item] of items.entries()) {\n      const iconPlacement = firstRow ? firstRowPlacement[i] : i + 0.5\n      if (typeof iconPlacement === 'number') {\n        // jumps to the appropriate time in the tween, causing position.x and position.y to be updated accordingly.\n        tween.time(iconPlacement)\n      }\n\n      gsap.set(item, {\n        left: curve.x - item.offsetWidth / 2,\n        top: curve.y - item.offsetHeight,\n        rotation: curve.rotation,\n      })\n    }\n  }\n\n  /**\n   * Using the width and height of the window, this function determines how a 4:3 ratio rectangle would best fit within\n   * it (portrait or landscape - ie whether it should be width or height constrained), and calculates the amount\n   * of X or Y offset in order to center that rectangle.\n   *\n   * !isLandscape\n   *  _________\n   * |         |\n   * |         |                   isLandscape\n   * |_________|            ____________________________\n   * |         |           |       |            |       |\n   * | 4:3 nav |    OR     |       |   4:3 nav  |       |\n   * |         |           |       |            |       |\n   * |_________|           |_______|____________|_______|\n   * |         |^                                <----->\n   * |         || y offset                        x offset\n   * |_________|v\n   *\n   * @returns {object} returns an object with x and y offset pixel values as integers\n   *\n   */\n  get offset() {\n    const h = window.innerHeight\n    const w = window.innerWidth\n\n    const isLandscape = w / h > 4 / 3\n    let x = 0\n    let y = 0\n\n    if (isLandscape) {\n      x = (w - (4.0 * h) / 3.0) / 2.0\n    } else {\n      y = (h - (3.0 * w) / 4.0) / 2.0\n    }\n    return { x, y }\n  }\n\n  get scale() {\n    const h = window.innerHeight / baseHeight\n    const w = window.innerWidth / baseWidth\n\n    return Math.min(w, h)\n  }\n\n  @action\n  resize(navList: HTMLElement) {\n    this.resizeNavItemsList(navList)\n    this._alignItems(navList)\n  }\n\n  resizeNavItemsList(navList: HTMLElement) {\n    navList.style.transform = `scale(${this.scale.toFixed(3)})`\n    navList.style.left = `${this.offset.x.toFixed(3)}px`\n    navList.style.top = `${this.offset.y.toFixed(3)}px`\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"absolute w-[400px]\\\" {{nav-banner-animation}} ...attributes>\\n  <div class=\\\"absolute w-full\\\">\\n    {{svg-jar @bannerSvgName title=@bannerSvgName}}\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"absolute w-[400px]\\\" {{nav-banner-animation}} ...attributes>\\n  <div class=\\\"absolute w-full\\\">\\n    {{svg-jar @bannerSvgName title=@bannerSvgName}}\\n  </div>\\n</div>\",\"moduleName\":\"re-client/components/home-nav/nav-banner.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/home-nav/nav-banner.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  class=\\\"egg nav-item-simple text-center\\n    {{style-namespace 'home-nav/nav-item-egg'}}\\n    {{this.lowercaseItemName}}\\\"\\n  ...attributes\\n>\\n  <button\\n    data-test-nav-item-wrapper\\n    class=\\\"nav-item-wrapper\\\"\\n    type=\\\"button\\\"\\n    aria-label=\\\"{{@title}}\\\"\\n    disabled={{@disabled}}\\n    {{hover-wiggle \\\"svg\\\"}}\\n    {{on \\\"click\\\" @onClick}}\\n    {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n  >\\n    {{svg-jar @svg}}\\n\\n    <svg\\n      xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n      xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\\n      width=\\\"{{this.reducedSvgWidth}}\\\"\\n      height=\\\"33\\\"\\n      viewBox=\\\"0 0 {{this.eggTextWidth}} 33\\\"\\n      class=\\\"numbers\\\"\\n    >\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn0\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 25.879999 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-1.06,-0.84)\\\"\\n          d=\\\"M 14,31.16 C 6.38,31.16 1.06,24.93 1.06,16 1.06,7.07 6.38,0.84 14,0.84 c 7.62,0 12.94,6.23 12.94,15.16 0,8.93 -5.32,15.16 -12.94,15.16 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn1\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 16.687111 29.549461\\\"\\n      ><path\\n          transform=\\\"translate(-5.6797063,-1.2233144)\\\"\\n          d=\\\"M 15.89,30.77 A 6.29,6.29 0 0 1 9.46,24.19 v -11 A 6.18,6.18 0 0 1 5.68,7.48 6.19,6.19 0 0 1 11.93,1.23 h 4 a 6.15,6.15 0 0 1 6.43,6.43 v 16.53 a 6.29,6.29 0 0 1 -6.47,6.58 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn2\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.830435 29.846966\\\"\\n      ><path\\n          transform=\\\"translate(-2.59,-1.0730421)\\\"\\n          d=\\\"M 19.16,30.92 H 9.35 c -3.85,0 -6.76,-2.64 -6.76,-6.13 0,-3.06 2.4,-5.45 4,-7 A 6.28,6.28 0 0 1 2.89,12 11.08,11.08 0 0 1 14.15,1.08 a 10.4,10.4 0 0 1 10.78,10.48 12.84,12.84 0 0 1 -2.78,7.6 6.26,6.26 0 0 1 -3,11.76 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn3\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.090385 30.310019\\\"\\n      ><path\\n          transform=\\\"translate(-2.44,-0.84998201)\\\"\\n          d=\\\"M 14,31.16 C 7.73,31.16 2.44,26.66 2.44,21.34 A 6.43,6.43 0 0 1 6.64,15.5 6.25,6.25 0 0 1 3.16,9.85 c 0,-5.39 5.54,-9 10.72,-9 C 20,0.84 24.45,5 24.45,10.69 a 8.75,8.75 0 0 1 -0.84,3.75 10.06,10.06 0 0 1 1.92,6 c 0,6.02 -5.05,10.72 -11.53,10.72 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn4\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 26.603811 29.742388\\\"\\n      ><path\\n          transform=\\\"translate(-0.7,-1.1199581)\\\"\\n          d=\\\"M 17.48,30.86 A 6.13,6.13 0 0 1 11.39,26.18 H 7.13 A 6,6 0 0 1 0.7,20.26 8.49,8.49 0 0 1 2.3,15.67 l 7.11,-11 a 7.58,7.58 0 0 1 6.81,-3.54 7.38,7.38 0 0 1 7.6,7.66 v 5.66 a 5.86,5.86 0 0 1 3.48,5.55 5.84,5.84 0 0 1 -3.61,5.61 6.1,6.1 0 0 1 -6.21,5.25 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn5\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.922356 29.851135\\\"\\n      ><path\\n          transform=\\\"translate(-2.519135,-1.0697063)\\\"\\n          d=\\\"m 13.52,30.92 c -5.27,0 -11,-3.05 -11,-8 A 6.52,6.52 0 0 1 4.8,17.86 5.91,5.91 0 0 1 4.17,15.18 21.73,21.73 0 0 1 4.35,12.48 L 5.1,6.57 C 5.32,4.91 6.39,1.07 11.65,1.07 H 19 a 6.19,6.19 0 0 1 6.25,6.25 6.21,6.21 0 0 1 -2,4.62 11.87,11.87 0 0 1 2.19,7.06 11.78,11.78 0 0 1 -11.92,11.92 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn6\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.530571 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-2.23,-0.84)\\\"\\n          d=\\\"M 14,31.16 C 7.07,31.16 2.23,26.52 2.23,19.87 2.23,15.76 3.9,11.68 7.34,7.4 v 0 C 10.75,3.17 12.63,0.84 16,0.84 a 6.43,6.43 0 0 1 6.34,6.34 6.09,6.09 0 0 1 -1.2,3.57 10.86,10.86 0 0 1 4.62,9 C 25.77,26.25 20.71,31.16 14,31.16 Z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn7\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.600672 29.541983\\\"\\n      ><path\\n          transform=\\\"translate(-2.6993274,-1.2288269)\\\"\\n          d=\\\"m 11.08,30.77 a 6.3,6.3 0 0 1 -6.4,-6.19 8.6,8.6 0 0 1 1.07,-3.83 l 3.34,-7 H 9 A 6.18,6.18 0 0 1 2.7,7.48 6.18,6.18 0 0 1 9,1.23 h 9.83 a 6.42,6.42 0 0 1 6.47,6.31 8.74,8.74 0 0 1 -1,3.74 l -0.06,0.12 -6.81,14.74 a 6.79,6.79 0 0 1 -6.35,4.63 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn8\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.660219 30.360001\\\"\\n      ><path\\n          transform=\\\"translate(-2.1698904,-0.8)\\\"\\n          d=\\\"m 14,31.16 c -6.74,0 -11.83,-4.71 -11.83,-11 a 9.92,9.92 0 0 1 1.7,-5.6 9.38,9.38 0 0 1 -0.8,-3.76 c 0,-5.79 4.6,-10 10.93,-10 6.33,0 10.93,4.21 10.93,10 a 9.22,9.22 0 0 1 -0.8,3.76 9.92,9.92 0 0 1 1.7,5.6 c 0,6.29 -5.09,11 -11.83,11 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn9\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.530571 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-2.2394297,-0.84)\\\"\\n          d=\\\"m 12,31.16 a 6.43,6.43 0 0 1 -6.34,-6.34 6.09,6.09 0 0 1 1.2,-3.57 10.86,10.86 0 0 1 -4.62,-9 C 2.23,5.75 7.29,0.84 14,0.84 c 6.93,0 11.77,4.64 11.77,11.29 0,4.11 -1.67,8.19 -5.11,12.47 v 0 c -3.41,4.23 -5.29,6.56 -8.66,6.56 z\\\"\\n        ></path></symbol>\\n\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n0\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 25.879999 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-1.06,-0.84)\\\"\\n          d=\\\"m 14,4.84 c 6.15,0 8.94,5.55 8.94,11.16 0,5.61 -2.79,11.16 -8.94,11.16 C 7.85,27.16 5.06,21.61 5.06,16 5.06,10.39 7.85,4.84 14,4.84 Z m 0,17.64 c 3,0 3.9,-3.81 3.9,-6.48 0,-2.67 -0.9,-6.48 -3.9,-6.48 -3,0 -3.9,3.81 -3.9,6.48 0,2.67 0.9,6.48 3.9,6.48 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n1\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 16.687111 29.549461\\\"\\n      ><path\\n          transform=\\\"translate(-5.6797063,-1.2233144)\\\"\\n          d=\\\"M 13.46,9.73 H 11.93 A 2.17,2.17 0 0 1 9.68,7.48 2.17,2.17 0 0 1 11.93,5.23 h 4 a 2.18,2.18 0 0 1 2.43,2.43 v 16.53 a 2.31,2.31 0 0 1 -2.43,2.58 2.31,2.31 0 0 1 -2.43,-2.58 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n2\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.830435 29.846966\\\"\\n      ><path\\n          transform=\\\"translate(-2.59,-1.0730421)\\\"\\n          d=\\\"m 19.16,22.42 a 2.25,2.25 0 0 1 0,4.5 H 9.35 c -1.62,0 -2.76,-0.87 -2.76,-2.13 0,-1.8 2.73,-4 3.69,-5.07 1.23,-1.41 5.43,-5.79 5.43,-7.95 0,-1.44 -0.69,-2 -1.86,-2 -3.21,0 -1.59,4.53 -4.65,4.53 A 2.25,2.25 0 0 1 6.89,12 7,7 0 0 1 14.15,5.13 c 3.72,0 6.78,2.55 6.78,6.48 0,4.29 -4.32,7.71 -6.87,10.86 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n3\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.090385 30.310019\\\"\\n      ><path\\n          transform=\\\"translate(-2.44,-0.84998201)\\\"\\n          d=\\\"m 8.72,19.12 c 2.61,0 2,3.36 5.34,3.36 a 2.47,2.47 0 0 0 2.43,-2.55 c 0,-1.83 -1.47,-2.31 -3,-2.34 a 2.09,2.09 0 0 1 -2.07,-2.28 c 0,-1.32 0.63,-1.77 2.55,-2.22 1.11,-0.24 1.83,-0.78 1.83,-2 A 1.63,1.63 0 0 0 13.97,9.5 c -2.46,0 -2.58,2.55 -4.8,2.55 a 2.15,2.15 0 0 1 -2,-2.22 c 0,-3 3.87,-5 6.72,-5 3.57,0 6.57,2.16 6.57,5.85 a 5.4,5.4 0 0 1 -2.41,4.32 5.54,5.54 0 0 1 3.48,5.43 c 0,3.87 -3.3,6.69 -7.5,6.69 -4.38,0 -7.56,-2.94 -7.56,-5.82 a 2.39,2.39 0 0 1 2.25,-2.18 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n4\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 26.603811 29.742388\\\"\\n      ><path\\n          transform=\\\"translate(-0.7,-1.1199581)\\\"\\n          d=\\\"m 15.14,22.18 h -8 c -1.83,0 -2.43,-1.11 -2.43,-1.92 a 4.59,4.59 0 0 1 0.93,-2.37 l 7.14,-11 a 3.57,3.57 0 0 1 3.45,-1.71 3.42,3.42 0 0 1 3.6,3.66 v 9.06 h 1 c 1.5,0 2.46,0.66 2.46,2.16 0,1.5 -1,2.16 -2.46,2.16 h -1 v 2 c 0,1.77 -0.9,2.7 -2.34,2.7 -1.44,0 -2.34,-0.93 -2.34,-2.64 z m 0,-12 h -0.06 l -4.44,7.65 h 4.5 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n5\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.922356 29.851135\\\"\\n      ><path\\n          transform=\\\"translate(-2.519135,-1.0697063)\\\"\\n          d=\\\"m 12.89,12.22 a 9.25,9.25 0 0 1 2.25,-0.3 c 4.14,0 6.3,3.27 6.3,7.11 a 7.78,7.78 0 0 1 -7.92,7.89 c -3.12,0 -7,-1.68 -7,-4 A 2.21,2.21 0 0 1 8.63,20.5 c 1.68,0 2.55,1.74 4.74,1.74 1.71,0 2.85,-1.23 2.85,-3.51 a 2.58,2.58 0 0 0 -2.4,-2.85 c -2,0 -2.07,1.08 -3.66,1.08 A 1.74,1.74 0 0 1 8.21,15.19 18.11,18.11 0 0 1 8.36,12.94 L 9.11,7.09 c 0.24,-1.83 1.32,-2 2.58,-2 H 19 A 2.17,2.17 0 0 1 21.25,7.34 2.17,2.17 0 0 1 19,9.58 h -5.78 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n6\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.530571 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-2.23,-0.84)\\\"\\n          d=\\\"m 10.46,9.91 c 3.6,-4.47 4.38,-5.07 5.55,-5.07 a 2.42,2.42 0 0 1 2.34,2.34 c 0,1.59 -2.34,2.85 -4.53,6.06 l 0.06,0.06 a 5.76,5.76 0 0 1 1.89,-0.24 c 3.54,0 6,3.33 6,6.69 0,4.17 -3.18,7.41 -7.77,7.41 -4.74,0 -7.77,-3 -7.77,-7.29 0,-3.87 2.13,-7.35 4.23,-9.96 z M 14,22.48 A 2.73,2.73 0 1 0 11.27,19.75 2.76,2.76 0 0 0 14,22.48 Z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n7\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.600672 29.541983\\\"\\n      ><path\\n          transform=\\\"translate(-2.6993274,-1.2288269)\\\"\\n          d=\\\"M 15.42,9.73 H 9 A 2.17,2.17 0 0 1 6.7,7.48 2.17,2.17 0 0 1 9,5.23 h 9.84 a 2.41,2.41 0 0 1 2.46,2.31 5.65,5.65 0 0 1 -0.68,2.22 l -6.81,14.7 c -0.54,1.2 -1.05,2.31 -2.73,2.31 a 2.33,2.33 0 0 1 -2.4,-2.19 5.71,5.71 0 0 1 0.78,-2.31 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n8\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.660219 30.360001\\\"\\n      ><path\\n          transform=\\\"translate(-2.1698904,-0.8)\\\"\\n          d=\\\"m 20.93,10.84 a 5.68,5.68 0 0 1 -2,4.23 5.9,5.9 0 0 1 2.88,5.13 c 0,3.9 -3.09,7 -7.83,7 -4.74,0 -7.83,-3.06 -7.83,-7 a 5.9,5.9 0 0 1 2.88,-5.13 5.68,5.68 0 0 1 -2,-4.23 c 0,-4 3.21,-6 6.93,-6 3.72,0 6.97,2.04 6.97,6 z M 14,22.48 A 2.79,2.79 0 1 0 11.21,19.69 2.77,2.77 0 0 0 14,22.48 Z M 14,13.3 A 2.07,2.07 0 1 0 11.93,11.23 2.11,2.11 0 0 0 14,13.3 Z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n9\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.530571 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-2.2394297,-0.84)\\\"\\n          d=\\\"m 17.54,22.09 c -3.6,4.47 -4.38,5.07 -5.55,5.07 A 2.42,2.42 0 0 1 9.65,24.82 c 0,-1.59 2.34,-2.85 4.53,-6.06 L 14.12,18.7 a 5.76,5.76 0 0 1 -1.89,0.24 c -3.54,0 -6,-3.33 -6,-6.69 0,-4.17 3.18,-7.41 7.77,-7.41 4.59,0 7.77,3 7.77,7.29 0,3.87 -2.13,7.35 -4.23,9.96 z M 14,9.52 A 2.73,2.73 0 1 0 16.73,12.25 2.76,2.76 0 0 0 14,9.52 Z\\\"\\n        ></path></symbol>\\n\\n      <g>\\n        {{#each this.eggsProcessed as |number|}}\\n          <use\\n            width={{number.width}}\\n            height=\\\"30\\\"\\n            transform=\\\"translate({{number.x}} 0)\\\"\\n            xlink:href=\\\"#wn{{number.number}}\\\"\\n          ></use>\\n        {{/each}}\\n        {{#each this.eggsProcessed as |number|}}\\n          <use\\n            width={{number.width}}\\n            height=\\\"30\\\"\\n            transform=\\\"translate({{number.x}} 0)\\\"\\n            xlink:href=\\\"#n{{number.number}}\\\"\\n          ></use>\\n        {{/each}}\\n      </g>\\n    </svg>\\n    <div class=\\\"label-back\\\">{{@title}}</div>\\n  </button>\\n</div>\", {\"contents\":\"<div\\n  class=\\\"egg nav-item-simple text-center\\n    {{style-namespace 'home-nav/nav-item-egg'}}\\n    {{this.lowercaseItemName}}\\\"\\n  ...attributes\\n>\\n  <button\\n    data-test-nav-item-wrapper\\n    class=\\\"nav-item-wrapper\\\"\\n    type=\\\"button\\\"\\n    aria-label=\\\"{{@title}}\\\"\\n    disabled={{@disabled}}\\n    {{hover-wiggle \\\"svg\\\"}}\\n    {{on \\\"click\\\" @onClick}}\\n    {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n  >\\n    {{svg-jar @svg}}\\n\\n    <svg\\n      xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n      xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\\n      width=\\\"{{this.reducedSvgWidth}}\\\"\\n      height=\\\"33\\\"\\n      viewBox=\\\"0 0 {{this.eggTextWidth}} 33\\\"\\n      class=\\\"numbers\\\"\\n    >\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn0\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 25.879999 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-1.06,-0.84)\\\"\\n          d=\\\"M 14,31.16 C 6.38,31.16 1.06,24.93 1.06,16 1.06,7.07 6.38,0.84 14,0.84 c 7.62,0 12.94,6.23 12.94,15.16 0,8.93 -5.32,15.16 -12.94,15.16 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn1\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 16.687111 29.549461\\\"\\n      ><path\\n          transform=\\\"translate(-5.6797063,-1.2233144)\\\"\\n          d=\\\"M 15.89,30.77 A 6.29,6.29 0 0 1 9.46,24.19 v -11 A 6.18,6.18 0 0 1 5.68,7.48 6.19,6.19 0 0 1 11.93,1.23 h 4 a 6.15,6.15 0 0 1 6.43,6.43 v 16.53 a 6.29,6.29 0 0 1 -6.47,6.58 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn2\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.830435 29.846966\\\"\\n      ><path\\n          transform=\\\"translate(-2.59,-1.0730421)\\\"\\n          d=\\\"M 19.16,30.92 H 9.35 c -3.85,0 -6.76,-2.64 -6.76,-6.13 0,-3.06 2.4,-5.45 4,-7 A 6.28,6.28 0 0 1 2.89,12 11.08,11.08 0 0 1 14.15,1.08 a 10.4,10.4 0 0 1 10.78,10.48 12.84,12.84 0 0 1 -2.78,7.6 6.26,6.26 0 0 1 -3,11.76 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn3\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.090385 30.310019\\\"\\n      ><path\\n          transform=\\\"translate(-2.44,-0.84998201)\\\"\\n          d=\\\"M 14,31.16 C 7.73,31.16 2.44,26.66 2.44,21.34 A 6.43,6.43 0 0 1 6.64,15.5 6.25,6.25 0 0 1 3.16,9.85 c 0,-5.39 5.54,-9 10.72,-9 C 20,0.84 24.45,5 24.45,10.69 a 8.75,8.75 0 0 1 -0.84,3.75 10.06,10.06 0 0 1 1.92,6 c 0,6.02 -5.05,10.72 -11.53,10.72 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn4\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 26.603811 29.742388\\\"\\n      ><path\\n          transform=\\\"translate(-0.7,-1.1199581)\\\"\\n          d=\\\"M 17.48,30.86 A 6.13,6.13 0 0 1 11.39,26.18 H 7.13 A 6,6 0 0 1 0.7,20.26 8.49,8.49 0 0 1 2.3,15.67 l 7.11,-11 a 7.58,7.58 0 0 1 6.81,-3.54 7.38,7.38 0 0 1 7.6,7.66 v 5.66 a 5.86,5.86 0 0 1 3.48,5.55 5.84,5.84 0 0 1 -3.61,5.61 6.1,6.1 0 0 1 -6.21,5.25 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn5\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.922356 29.851135\\\"\\n      ><path\\n          transform=\\\"translate(-2.519135,-1.0697063)\\\"\\n          d=\\\"m 13.52,30.92 c -5.27,0 -11,-3.05 -11,-8 A 6.52,6.52 0 0 1 4.8,17.86 5.91,5.91 0 0 1 4.17,15.18 21.73,21.73 0 0 1 4.35,12.48 L 5.1,6.57 C 5.32,4.91 6.39,1.07 11.65,1.07 H 19 a 6.19,6.19 0 0 1 6.25,6.25 6.21,6.21 0 0 1 -2,4.62 11.87,11.87 0 0 1 2.19,7.06 11.78,11.78 0 0 1 -11.92,11.92 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn6\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.530571 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-2.23,-0.84)\\\"\\n          d=\\\"M 14,31.16 C 7.07,31.16 2.23,26.52 2.23,19.87 2.23,15.76 3.9,11.68 7.34,7.4 v 0 C 10.75,3.17 12.63,0.84 16,0.84 a 6.43,6.43 0 0 1 6.34,6.34 6.09,6.09 0 0 1 -1.2,3.57 10.86,10.86 0 0 1 4.62,9 C 25.77,26.25 20.71,31.16 14,31.16 Z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn7\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.600672 29.541983\\\"\\n      ><path\\n          transform=\\\"translate(-2.6993274,-1.2288269)\\\"\\n          d=\\\"m 11.08,30.77 a 6.3,6.3 0 0 1 -6.4,-6.19 8.6,8.6 0 0 1 1.07,-3.83 l 3.34,-7 H 9 A 6.18,6.18 0 0 1 2.7,7.48 6.18,6.18 0 0 1 9,1.23 h 9.83 a 6.42,6.42 0 0 1 6.47,6.31 8.74,8.74 0 0 1 -1,3.74 l -0.06,0.12 -6.81,14.74 a 6.79,6.79 0 0 1 -6.35,4.63 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn8\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.660219 30.360001\\\"\\n      ><path\\n          transform=\\\"translate(-2.1698904,-0.8)\\\"\\n          d=\\\"m 14,31.16 c -6.74,0 -11.83,-4.71 -11.83,-11 a 9.92,9.92 0 0 1 1.7,-5.6 9.38,9.38 0 0 1 -0.8,-3.76 c 0,-5.79 4.6,-10 10.93,-10 6.33,0 10.93,4.21 10.93,10 a 9.22,9.22 0 0 1 -0.8,3.76 9.92,9.92 0 0 1 1.7,5.6 c 0,6.29 -5.09,11 -11.83,11 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"bg\\\"\\n        id=\\\"wn9\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.530571 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-2.2394297,-0.84)\\\"\\n          d=\\\"m 12,31.16 a 6.43,6.43 0 0 1 -6.34,-6.34 6.09,6.09 0 0 1 1.2,-3.57 10.86,10.86 0 0 1 -4.62,-9 C 2.23,5.75 7.29,0.84 14,0.84 c 6.93,0 11.77,4.64 11.77,11.29 0,4.11 -1.67,8.19 -5.11,12.47 v 0 c -3.41,4.23 -5.29,6.56 -8.66,6.56 z\\\"\\n        ></path></symbol>\\n\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n0\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 25.879999 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-1.06,-0.84)\\\"\\n          d=\\\"m 14,4.84 c 6.15,0 8.94,5.55 8.94,11.16 0,5.61 -2.79,11.16 -8.94,11.16 C 7.85,27.16 5.06,21.61 5.06,16 5.06,10.39 7.85,4.84 14,4.84 Z m 0,17.64 c 3,0 3.9,-3.81 3.9,-6.48 0,-2.67 -0.9,-6.48 -3.9,-6.48 -3,0 -3.9,3.81 -3.9,6.48 0,2.67 0.9,6.48 3.9,6.48 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n1\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 16.687111 29.549461\\\"\\n      ><path\\n          transform=\\\"translate(-5.6797063,-1.2233144)\\\"\\n          d=\\\"M 13.46,9.73 H 11.93 A 2.17,2.17 0 0 1 9.68,7.48 2.17,2.17 0 0 1 11.93,5.23 h 4 a 2.18,2.18 0 0 1 2.43,2.43 v 16.53 a 2.31,2.31 0 0 1 -2.43,2.58 2.31,2.31 0 0 1 -2.43,-2.58 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n2\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.830435 29.846966\\\"\\n      ><path\\n          transform=\\\"translate(-2.59,-1.0730421)\\\"\\n          d=\\\"m 19.16,22.42 a 2.25,2.25 0 0 1 0,4.5 H 9.35 c -1.62,0 -2.76,-0.87 -2.76,-2.13 0,-1.8 2.73,-4 3.69,-5.07 1.23,-1.41 5.43,-5.79 5.43,-7.95 0,-1.44 -0.69,-2 -1.86,-2 -3.21,0 -1.59,4.53 -4.65,4.53 A 2.25,2.25 0 0 1 6.89,12 7,7 0 0 1 14.15,5.13 c 3.72,0 6.78,2.55 6.78,6.48 0,4.29 -4.32,7.71 -6.87,10.86 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n3\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.090385 30.310019\\\"\\n      ><path\\n          transform=\\\"translate(-2.44,-0.84998201)\\\"\\n          d=\\\"m 8.72,19.12 c 2.61,0 2,3.36 5.34,3.36 a 2.47,2.47 0 0 0 2.43,-2.55 c 0,-1.83 -1.47,-2.31 -3,-2.34 a 2.09,2.09 0 0 1 -2.07,-2.28 c 0,-1.32 0.63,-1.77 2.55,-2.22 1.11,-0.24 1.83,-0.78 1.83,-2 A 1.63,1.63 0 0 0 13.97,9.5 c -2.46,0 -2.58,2.55 -4.8,2.55 a 2.15,2.15 0 0 1 -2,-2.22 c 0,-3 3.87,-5 6.72,-5 3.57,0 6.57,2.16 6.57,5.85 a 5.4,5.4 0 0 1 -2.41,4.32 5.54,5.54 0 0 1 3.48,5.43 c 0,3.87 -3.3,6.69 -7.5,6.69 -4.38,0 -7.56,-2.94 -7.56,-5.82 a 2.39,2.39 0 0 1 2.25,-2.18 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n4\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 26.603811 29.742388\\\"\\n      ><path\\n          transform=\\\"translate(-0.7,-1.1199581)\\\"\\n          d=\\\"m 15.14,22.18 h -8 c -1.83,0 -2.43,-1.11 -2.43,-1.92 a 4.59,4.59 0 0 1 0.93,-2.37 l 7.14,-11 a 3.57,3.57 0 0 1 3.45,-1.71 3.42,3.42 0 0 1 3.6,3.66 v 9.06 h 1 c 1.5,0 2.46,0.66 2.46,2.16 0,1.5 -1,2.16 -2.46,2.16 h -1 v 2 c 0,1.77 -0.9,2.7 -2.34,2.7 -1.44,0 -2.34,-0.93 -2.34,-2.64 z m 0,-12 h -0.06 l -4.44,7.65 h 4.5 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n5\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.922356 29.851135\\\"\\n      ><path\\n          transform=\\\"translate(-2.519135,-1.0697063)\\\"\\n          d=\\\"m 12.89,12.22 a 9.25,9.25 0 0 1 2.25,-0.3 c 4.14,0 6.3,3.27 6.3,7.11 a 7.78,7.78 0 0 1 -7.92,7.89 c -3.12,0 -7,-1.68 -7,-4 A 2.21,2.21 0 0 1 8.63,20.5 c 1.68,0 2.55,1.74 4.74,1.74 1.71,0 2.85,-1.23 2.85,-3.51 a 2.58,2.58 0 0 0 -2.4,-2.85 c -2,0 -2.07,1.08 -3.66,1.08 A 1.74,1.74 0 0 1 8.21,15.19 18.11,18.11 0 0 1 8.36,12.94 L 9.11,7.09 c 0.24,-1.83 1.32,-2 2.58,-2 H 19 A 2.17,2.17 0 0 1 21.25,7.34 2.17,2.17 0 0 1 19,9.58 h -5.78 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n6\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.530571 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-2.23,-0.84)\\\"\\n          d=\\\"m 10.46,9.91 c 3.6,-4.47 4.38,-5.07 5.55,-5.07 a 2.42,2.42 0 0 1 2.34,2.34 c 0,1.59 -2.34,2.85 -4.53,6.06 l 0.06,0.06 a 5.76,5.76 0 0 1 1.89,-0.24 c 3.54,0 6,3.33 6,6.69 0,4.17 -3.18,7.41 -7.77,7.41 -4.74,0 -7.77,-3 -7.77,-7.29 0,-3.87 2.13,-7.35 4.23,-9.96 z M 14,22.48 A 2.73,2.73 0 1 0 11.27,19.75 2.76,2.76 0 0 0 14,22.48 Z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n7\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 22.600672 29.541983\\\"\\n      ><path\\n          transform=\\\"translate(-2.6993274,-1.2288269)\\\"\\n          d=\\\"M 15.42,9.73 H 9 A 2.17,2.17 0 0 1 6.7,7.48 2.17,2.17 0 0 1 9,5.23 h 9.84 a 2.41,2.41 0 0 1 2.46,2.31 5.65,5.65 0 0 1 -0.68,2.22 l -6.81,14.7 c -0.54,1.2 -1.05,2.31 -2.73,2.31 a 2.33,2.33 0 0 1 -2.4,-2.19 5.71,5.71 0 0 1 0.78,-2.31 z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n8\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.660219 30.360001\\\"\\n      ><path\\n          transform=\\\"translate(-2.1698904,-0.8)\\\"\\n          d=\\\"m 20.93,10.84 a 5.68,5.68 0 0 1 -2,4.23 5.9,5.9 0 0 1 2.88,5.13 c 0,3.9 -3.09,7 -7.83,7 -4.74,0 -7.83,-3.06 -7.83,-7 a 5.9,5.9 0 0 1 2.88,-5.13 5.68,5.68 0 0 1 -2,-4.23 c 0,-4 3.21,-6 6.93,-6 3.72,0 6.97,2.04 6.97,6 z M 14,22.48 A 2.79,2.79 0 1 0 11.21,19.69 2.77,2.77 0 0 0 14,22.48 Z M 14,13.3 A 2.07,2.07 0 1 0 11.93,11.23 2.11,2.11 0 0 0 14,13.3 Z\\\"\\n        ></path></symbol>\\n      <symbol\\n        class=\\\"char\\\"\\n        id=\\\"n9\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 23.530571 30.32\\\"\\n      ><path\\n          transform=\\\"translate(-2.2394297,-0.84)\\\"\\n          d=\\\"m 17.54,22.09 c -3.6,4.47 -4.38,5.07 -5.55,5.07 A 2.42,2.42 0 0 1 9.65,24.82 c 0,-1.59 2.34,-2.85 4.53,-6.06 L 14.12,18.7 a 5.76,5.76 0 0 1 -1.89,0.24 c -3.54,0 -6,-3.33 -6,-6.69 0,-4.17 3.18,-7.41 7.77,-7.41 4.59,0 7.77,3 7.77,7.29 0,3.87 -2.13,7.35 -4.23,9.96 z M 14,9.52 A 2.73,2.73 0 1 0 16.73,12.25 2.76,2.76 0 0 0 14,9.52 Z\\\"\\n        ></path></symbol>\\n\\n      <g>\\n        {{#each this.eggsProcessed as |number|}}\\n          <use\\n            width={{number.width}}\\n            height=\\\"30\\\"\\n            transform=\\\"translate({{number.x}} 0)\\\"\\n            xlink:href=\\\"#wn{{number.number}}\\\"\\n          ></use>\\n        {{/each}}\\n        {{#each this.eggsProcessed as |number|}}\\n          <use\\n            width={{number.width}}\\n            height=\\\"30\\\"\\n            transform=\\\"translate({{number.x}} 0)\\\"\\n            xlink:href=\\\"#n{{number.number}}\\\"\\n          ></use>\\n        {{/each}}\\n      </g>\\n    </svg>\\n    <div class=\\\"label-back\\\">{{@title}}</div>\\n  </button>\\n</div>\",\"moduleName\":\"re-client/components/home-nav/nav-item-egg.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/home-nav/nav-item-egg.hbs\"}});\nimport Component from '@glimmer/component'\n\ninterface NavItemEggSignature {\n  Args: {\n    itemName: string\n    eggs?: number[]\n  }\n  Element: HTMLDivElement\n}\n\n/**\n * Nav item component which renders the egg count item by creating an SVG\n * based on an array of numbers (the digits of the count).\n *\n * The reason I chose an svg of a font - css solution is asa follows\n *  - Size and asynchronsity of fonts are problematic in an mobile environment\n *  - possible css properties are not supported in IE11\n *  - pure css fails one requirement to fill (no holes policy) all the holes of the font.\n *  - fonts render different in different browsers\n *  - svgs can be composed fairly easy and they can be animated quite flexibly.\n *  - svgs will look perfect on any device or browser.\n */\nexport default class NavItemEgg extends Component<NavItemEggSignature> {\n  get lowercaseItemName() {\n    return String(this.args.itemName).toLowerCase()\n  }\n\n  get eggs() {\n    return this.args.eggs ?? [0]\n  }\n\n  /**\n   * Returns the entire width the the text svg. Because we want to overlap each character we can  on\n   * @type {Number}\n   */\n  get eggTextWidth() {\n    const eggsCount = this.eggs.length\n    const widthReductionDueToOverlap = eggsCount === 1 ? 0 : eggsCount * 5 // overlap reduction\n    return (\n      this.eggs.reduce(\n        (textWidth, number) => textWidth + characterWidth(number),\n        0,\n      ) - widthReductionDueToOverlap\n    )\n  }\n\n  /**\n   * Returns an array of objects which are used in the template to position svg symbols\n   * in an overlapping fashion. We need to reverse the array due to the lack of zindexing in svgs\n   * The order, an element is positioned in the dom, determines the z level of it.\n   *\n   * @type {array}\n   */\n  get eggsProcessed() {\n    let pos = 0\n    return this.eggs\n      .map((number) => {\n        const width = characterWidth(number)\n        const res = { x: pos, number, width }\n        pos += width - 7 // create an overlap\n        return res\n      })\n      .reverse()\n  }\n\n  get reducedSvgWidth() {\n    return this.eggTextWidth * 0.7\n  }\n}\n\n/**\n * Defines the width of each charater 0 - 9 from the svg. This is used to calculate the position of each\n * character in order, as well as the total width of the text svg element.\n * @param number\n * @returns {number}\n */\nfunction characterWidth(number: number) {\n  switch (number) {\n    case 1:\n      return 17\n    case 2:\n      return 23\n    case 3:\n      return 24\n    case 4:\n      return 27\n    case 5:\n      return 23\n    case 6:\n      return 24\n    case 7:\n      return 23\n    case 8:\n      return 23\n    case 9:\n      return 24\n    default:\n      return 26\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  class=\\\"nav-item lessons themed-reggie\\n    {{style-namespace 'home-nav/nav-item-reggie'}}\\n    {{if @hasFinishedLessons 'finished'}}\\\"\\n  data-test-fullscreen-nav-item=\\\"lessons\\\"\\n  ...attributes\\n>\\n  <button\\n    class=\\\"sprite {{@navType}}\\\"\\n    data-test-fullscreen-nav={{@navType}}\\n    type=\\\"button\\\"\\n    aria-label=\\\"{{@title}}\\\"\\n    disabled={{@disabled}}\\n    {{hover-wiggle}}\\n    {{on \\\"click\\\" @onClick}}\\n    {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n  >\\n    <div class=\\\"reggie-container\\\" {{reggie-loop-animation}}>\\n      <img src={{@reggieImagePath}} class=\\\"reggie\\\" alt=\\\"\\\" />\\n      <img src={{@reggieThemeUrl}} class=\\\"reggie\\\" alt=\\\"\\\" />\\n    </div>\\n    {{#if @showPlacementTestText}}\\n      <span class=\\\"placement-test\\\" data-test-index-nav-placement-test>Placement\\n        Test</span>\\n    {{else if @hasFinishedLessons}}\\n      <span class=\\\"complete-star\\\"></span>\\n    {{else}}\\n      <span\\n        class=\\\"lesson-number\\\"\\n        data-test-index-nav-lessons-position\\n      >{{@lessonTitle}}</span>\\n    {{/if}}\\n    <div class=\\\"disc\\\">\\n      {{svg-jar \\\"disc\\\"}}\\n    </div>\\n    <div class=\\\"white-disc\\\">\\n      {{svg-jar \\\"disc-white\\\"}}\\n    </div>\\n    <span class=\\\"label-back\\\">{{@title}}</span>\\n  </button>\\n</div>\", {\"contents\":\"<div\\n  class=\\\"nav-item lessons themed-reggie\\n    {{style-namespace 'home-nav/nav-item-reggie'}}\\n    {{if @hasFinishedLessons 'finished'}}\\\"\\n  data-test-fullscreen-nav-item=\\\"lessons\\\"\\n  ...attributes\\n>\\n  <button\\n    class=\\\"sprite {{@navType}}\\\"\\n    data-test-fullscreen-nav={{@navType}}\\n    type=\\\"button\\\"\\n    aria-label=\\\"{{@title}}\\\"\\n    disabled={{@disabled}}\\n    {{hover-wiggle}}\\n    {{on \\\"click\\\" @onClick}}\\n    {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n  >\\n    <div class=\\\"reggie-container\\\" {{reggie-loop-animation}}>\\n      <img src={{@reggieImagePath}} class=\\\"reggie\\\" alt=\\\"\\\" />\\n      <img src={{@reggieThemeUrl}} class=\\\"reggie\\\" alt=\\\"\\\" />\\n    </div>\\n    {{#if @showPlacementTestText}}\\n      <span class=\\\"placement-test\\\" data-test-index-nav-placement-test>Placement\\n        Test</span>\\n    {{else if @hasFinishedLessons}}\\n      <span class=\\\"complete-star\\\"></span>\\n    {{else}}\\n      <span\\n        class=\\\"lesson-number\\\"\\n        data-test-index-nav-lessons-position\\n      >{{@lessonTitle}}</span>\\n    {{/if}}\\n    <div class=\\\"disc\\\">\\n      {{svg-jar \\\"disc\\\"}}\\n    </div>\\n    <div class=\\\"white-disc\\\">\\n      {{svg-jar \\\"disc-white\\\"}}\\n    </div>\\n    <span class=\\\"label-back\\\">{{@title}}</span>\\n  </button>\\n</div>\",\"moduleName\":\"re-client/components/home-nav/nav-item-reggie.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/home-nav/nav-item-reggie.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"theme shop nav-item-simple !w-[115px] text-center\\\" ...attributes>\\n  <button\\n    data-test-nav-item-wrapper\\n    class=\\\"nav-item-wrapper\\\"\\n    type=\\\"button\\\"\\n    aria-label=\\\"{{@title}}\\\"\\n    disabled={{@disabled}}\\n    {{hover-wiggle \\\"svg\\\"}}\\n    {{nav-shop-animation}}\\n    {{on \\\"click\\\" @onClick}}\\n    {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n  >\\n    {{svg-jar this.themeSvgName title=@title}}\\n    <div class=\\\"label-back\\\">{{@title}}</div>\\n  </button>\\n</div>\", {\"contents\":\"<div class=\\\"theme shop nav-item-simple !w-[115px] text-center\\\" ...attributes>\\n  <button\\n    data-test-nav-item-wrapper\\n    class=\\\"nav-item-wrapper\\\"\\n    type=\\\"button\\\"\\n    aria-label=\\\"{{@title}}\\\"\\n    disabled={{@disabled}}\\n    {{hover-wiggle \\\"svg\\\"}}\\n    {{nav-shop-animation}}\\n    {{on \\\"click\\\" @onClick}}\\n    {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n  >\\n    {{svg-jar this.themeSvgName title=@title}}\\n    <div class=\\\"label-back\\\">{{@title}}</div>\\n  </button>\\n</div>\",\"moduleName\":\"re-client/components/home-nav/nav-item-shop.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/home-nav/nav-item-shop.hbs\"}});\nimport Component from '@glimmer/component'\n\ninterface NavItemShopSignature {\n  Args: {\n    disabled?: boolean\n    itemName: string\n    title: string\n    theme: string\n  }\n  Element: HTMLDivElement\n}\n\nexport default class NavItemShop extends Component<NavItemShopSignature> {\n  get themeSvgName() {\n    return `shop-${this.args.theme}`\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  class=\\\"nav-item-simple text-center {{this.lowercaseItemName}}\\\"\\n  ...attributes\\n>\\n  <button\\n    data-test-nav-item-wrapper\\n    data-test-fullscreen-nav-item={{this.lowercaseItemName}}\\n    class=\\\"nav-item-wrapper\\\"\\n    type=\\\"button\\\"\\n    aria-label=\\\"{{@title}}\\\"\\n    disabled={{@disabled}}\\n    {{hover-wiggle \\\"svg\\\"}}\\n    {{on \\\"click\\\" @onClick}}\\n    {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n  >\\n    {{svg-jar @itemName title=@title}}\\n    <div class=\\\"label-back\\\">{{@title}}</div>\\n    {{yield}}\\n  </button>\\n</div>\", {\"contents\":\"<div\\n  class=\\\"nav-item-simple text-center {{this.lowercaseItemName}}\\\"\\n  ...attributes\\n>\\n  <button\\n    data-test-nav-item-wrapper\\n    data-test-fullscreen-nav-item={{this.lowercaseItemName}}\\n    class=\\\"nav-item-wrapper\\\"\\n    type=\\\"button\\\"\\n    aria-label=\\\"{{@title}}\\\"\\n    disabled={{@disabled}}\\n    {{hover-wiggle \\\"svg\\\"}}\\n    {{on \\\"click\\\" @onClick}}\\n    {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n  >\\n    {{svg-jar @itemName title=@title}}\\n    <div class=\\\"label-back\\\">{{@title}}</div>\\n    {{yield}}\\n  </button>\\n</div>\",\"moduleName\":\"re-client/components/home-nav/nav-item-simple.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/home-nav/nav-item-simple.hbs\"}});\nimport Component from '@glimmer/component'\n\ninterface NavItemSimpleSignature {\n  Args: {\n    disabled?: boolean\n    itemName: string\n    title: string\n  }\n  Element: HTMLDivElement\n}\n\nexport default class NavItemSimple extends Component<NavItemSimpleSignature> {\n  get lowercaseItemName() {\n    return this.args.itemName.toLowerCase()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  class=\\\"flex h-[120px] w-[530px] bg-nav-welcome bg-[length:530px_120px] bg-no-repeat\\\"\\n  ...attributes\\n>\\n  <button\\n    data-test-nav-welcome-avatar\\n    type=\\\"button\\\"\\n    class=\\\"mr-3 flex items-center justify-center self-end bg-nav-avatar-button bg-center bg-no-repeat\\\"\\n    {{hover-wiggle}}\\n    {{on \\\"click\\\" @onClick}}\\n    {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n  >\\n    <img\\n      width=\\\"125\\\"\\n      height=\\\"125\\\"\\n      class=\\\"pointer-events-none relative bottom-[6px]\\\"\\n      src={{@avatarUrl}}\\n      alt=\\\"student avatar\\\"\\n      {{loading-spinner}}\\n    />\\n  </button>\\n\\n  <div\\n    class=\\\"max-w-[320px] self-center [text-shadow:_-2px_2px_3px_rgba(0,0,0,60%)]\\\"\\n  >\\n    <h1>\\n\\n      <span class=\\\"block text-[30px]\\\" data-test-nav-welcome-prefix>\\n        {{@welcomeMessage}}\\n      </span>\\n\\n      <span\\n        class=\\\"mt-[10px] max-h-full whitespace-nowrap text-[40px]\\\"\\n        {{fit-text maxSize=40}}\\n        data-test-nav-welcome-name\\n      >\\n        {{@name}}\\n      </span>\\n    </h1>\\n  </div>\\n</div>\", {\"contents\":\"<div\\n  class=\\\"flex h-[120px] w-[530px] bg-nav-welcome bg-[length:530px_120px] bg-no-repeat\\\"\\n  ...attributes\\n>\\n  <button\\n    data-test-nav-welcome-avatar\\n    type=\\\"button\\\"\\n    class=\\\"mr-3 flex items-center justify-center self-end bg-nav-avatar-button bg-center bg-no-repeat\\\"\\n    {{hover-wiggle}}\\n    {{on \\\"click\\\" @onClick}}\\n    {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n  >\\n    <img\\n      width=\\\"125\\\"\\n      height=\\\"125\\\"\\n      class=\\\"pointer-events-none relative bottom-[6px]\\\"\\n      src={{@avatarUrl}}\\n      alt=\\\"student avatar\\\"\\n      {{loading-spinner}}\\n    />\\n  </button>\\n\\n  <div\\n    class=\\\"max-w-[320px] self-center [text-shadow:_-2px_2px_3px_rgba(0,0,0,60%)]\\\"\\n  >\\n    <h1>\\n\\n      <span class=\\\"block text-[30px]\\\" data-test-nav-welcome-prefix>\\n        {{@welcomeMessage}}\\n      </span>\\n\\n      <span\\n        class=\\\"mt-[10px] max-h-full whitespace-nowrap text-[40px]\\\"\\n        {{fit-text maxSize=40}}\\n        data-test-nav-welcome-name\\n      >\\n        {{@name}}\\n      </span>\\n    </h1>\\n  </div>\\n</div>\",\"moduleName\":\"re-client/components/home-nav/nav-welcome.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/home-nav/nav-welcome.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<loading-screen\\n  class=\\\"loading-screen-container\\n    {{if this.loading 'show-loading'}}\\n    {{unless this.loading 'fade-out'}}\\\"\\n  data-test-loading-screen\\n  ...attributes\\n  {{caper-load-complete this.hideLoadingScreen}}\\n  {{remove-initial-loading-screen}}\\n>\\n  <img\\n    src=\\\"/assets/loading-eggs.svg\\\"\\n    alt=\\\"Loading...\\\"\\n    class=\\\"{{if this.loading 'fade-in'}}\\\"\\n  />\\n</loading-screen>\", {\"contents\":\"<loading-screen\\n  class=\\\"loading-screen-container\\n    {{if this.loading 'show-loading'}}\\n    {{unless this.loading 'fade-out'}}\\\"\\n  data-test-loading-screen\\n  ...attributes\\n  {{caper-load-complete this.hideLoadingScreen}}\\n  {{remove-initial-loading-screen}}\\n>\\n  <img\\n    src=\\\"/assets/loading-eggs.svg\\\"\\n    alt=\\\"Loading...\\\"\\n    class=\\\"{{if this.loading 'fade-in'}}\\\"\\n  />\\n</loading-screen>\",\"moduleName\":\"re-client/components/loading-screen.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/loading-screen.hbs\"}});\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport type LoadingUiService from 're-client/services/loading-ui'\n\nexport default class LoadingScreenComponent extends Component {\n  @service declare loadingUi: LoadingUiService\n\n  get loading() {\n    return this.loadingUi.isLoading\n  }\n\n  @action\n  hideLoadingScreen() {\n    this.loadingUi.hide()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<my-program-block-grid class=\\\"{{style-namespace 'my-program/block-grid'}}\\\">\\n  <div class=\\\"week-text\\\">\\n    My Week\\n  </div>\\n\\n  {{#if @finishedLessons}}\\n    <MyProgram::Block\\n      @section=\\\"storylands\\\"\\n      @title=\\\"Storylands\\\"\\n      @clickLinkAction={{@storylandsAction}}\\n      data-test-my-program-grid-block=\\\"storylands\\\"\\n    />\\n  {{else}}\\n    <MyProgram::Block\\n      @section=\\\"lessons\\\"\\n      @title={{@nextLesson}}\\n      @clickLinkAction={{@lessonsAction}}\\n      data-test-my-program-grid-block=\\\"lessons\\\"\\n    />\\n  {{/if}}\\n\\n  <MyProgram::Block\\n    @section=\\\"spelling\\\"\\n    @title=\\\"Spelling\\\"\\n    @clickLinkAction={{@spellingAction}}\\n    @locked={{@spellingLocked}}\\n    data-test-my-program-grid-block=\\\"spelling\\\"\\n  />\\n  <MyProgram::Block\\n    @section=\\\"driving\\\"\\n    @title=\\\"Driving Tests\\\"\\n    @clickLinkAction={{@drivingTestsAction}}\\n    @locked={{@drivingTestsLocked}}\\n    data-test-my-program-grid-block=\\\"drivingTests\\\"\\n  />\\n  <MyProgram::Block\\n    @section=\\\"scrollToBooks\\\"\\n    @title=\\\"My Books to Read\\\"\\n    @clickLinkAction={{@scrollToBookReaderAction}}\\n    data-test-my-program-grid-block=\\\"scrollToBooks\\\"\\n  />\\n  <MyProgram::BooksToRead\\n    @books={{@books}}\\n    @clickBookAction={{@goToBookReaderAction}}\\n    @scrollToTopAction={{@scrollToTopAction}}\\n    data-test-my-program-grid-books-to-read\\n  />\\n</my-program-block-grid>\", {\"contents\":\"<my-program-block-grid class=\\\"{{style-namespace 'my-program/block-grid'}}\\\">\\n  <div class=\\\"week-text\\\">\\n    My Week\\n  </div>\\n\\n  {{#if @finishedLessons}}\\n    <MyProgram::Block\\n      @section=\\\"storylands\\\"\\n      @title=\\\"Storylands\\\"\\n      @clickLinkAction={{@storylandsAction}}\\n      data-test-my-program-grid-block=\\\"storylands\\\"\\n    />\\n  {{else}}\\n    <MyProgram::Block\\n      @section=\\\"lessons\\\"\\n      @title={{@nextLesson}}\\n      @clickLinkAction={{@lessonsAction}}\\n      data-test-my-program-grid-block=\\\"lessons\\\"\\n    />\\n  {{/if}}\\n\\n  <MyProgram::Block\\n    @section=\\\"spelling\\\"\\n    @title=\\\"Spelling\\\"\\n    @clickLinkAction={{@spellingAction}}\\n    @locked={{@spellingLocked}}\\n    data-test-my-program-grid-block=\\\"spelling\\\"\\n  />\\n  <MyProgram::Block\\n    @section=\\\"driving\\\"\\n    @title=\\\"Driving Tests\\\"\\n    @clickLinkAction={{@drivingTestsAction}}\\n    @locked={{@drivingTestsLocked}}\\n    data-test-my-program-grid-block=\\\"drivingTests\\\"\\n  />\\n  <MyProgram::Block\\n    @section=\\\"scrollToBooks\\\"\\n    @title=\\\"My Books to Read\\\"\\n    @clickLinkAction={{@scrollToBookReaderAction}}\\n    data-test-my-program-grid-block=\\\"scrollToBooks\\\"\\n  />\\n  <MyProgram::BooksToRead\\n    @books={{@books}}\\n    @clickBookAction={{@goToBookReaderAction}}\\n    @scrollToTopAction={{@scrollToTopAction}}\\n    data-test-my-program-grid-books-to-read\\n  />\\n</my-program-block-grid>\",\"moduleName\":\"re-client/components/my-program/block-grid.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/my-program/block-grid.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<button\\n  class=\\\"{{style-namespace 'my-program/block'}}\\n    {{@section}}\\n    {{if @locked 'locked'}}\\\"\\n  type=\\\"button\\\"\\n  {{on \\\"click\\\" @clickLinkAction}}\\n  data-test-my-program-block\\n  ...attributes\\n>\\n  <span class=\\\"my-program-block-title\\\" data-test-my-program-block-title>\\n    {{@title}}\\n  </span>\\n  <div class=\\\"link-image\\\" data-test-my-program-block-link-image></div>\\n</button>\", {\"contents\":\"<button\\n  class=\\\"{{style-namespace 'my-program/block'}}\\n    {{@section}}\\n    {{if @locked 'locked'}}\\\"\\n  type=\\\"button\\\"\\n  {{on \\\"click\\\" @clickLinkAction}}\\n  data-test-my-program-block\\n  ...attributes\\n>\\n  <span class=\\\"my-program-block-title\\\" data-test-my-program-block-title>\\n    {{@title}}\\n  </span>\\n  <div class=\\\"link-image\\\" data-test-my-program-block-link-image></div>\\n</button>\",\"moduleName\":\"re-client/components/my-program/block.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/my-program/block.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<button\\n  class=\\\"{{style-namespace 'my-program/book-cover'}}\\\"\\n  type=\\\"button\\\"\\n  {{on \\\"click\\\" @clickAction}}\\n  data-test-my-program-book-cover\\n  ...attributes\\n>\\n  <img src={{@src}} alt=\\\"Book cover for {{@code}}\\\" />\\n</button>\", {\"contents\":\"<button\\n  class=\\\"{{style-namespace 'my-program/book-cover'}}\\\"\\n  type=\\\"button\\\"\\n  {{on \\\"click\\\" @clickAction}}\\n  data-test-my-program-book-cover\\n  ...attributes\\n>\\n  <img src={{@src}} alt=\\\"Book cover for {{@code}}\\\" />\\n</button>\",\"moduleName\":\"re-client/components/my-program/book-cover.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/my-program/book-cover.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<my-program-books-read\\n  class=\\\"{{style-namespace 'my-program/books-read'}}\\\"\\n  data-test-my-program-books-read\\n  ...attributes\\n>\\n  <LinkTo\\n    @route=\\\"bookshelf\\\"\\n    class=\\\"books-read_count\\\"\\n    data-test-my-program-books-read-link\\n  >\\n    <div class=\\\"number\\\" data-test-my-program-books-read-count>\\n      {{this.booksRead}}\\n    </div>\\n    <span>\\n      books read\\n    </span>\\n    <div class=\\\"see\\\">\\n      See the books I've read\\n    </div>\\n  </LinkTo>\\n</my-program-books-read>\", {\"contents\":\"<my-program-books-read\\n  class=\\\"{{style-namespace 'my-program/books-read'}}\\\"\\n  data-test-my-program-books-read\\n  ...attributes\\n>\\n  <LinkTo\\n    @route=\\\"bookshelf\\\"\\n    class=\\\"books-read_count\\\"\\n    data-test-my-program-books-read-link\\n  >\\n    <div class=\\\"number\\\" data-test-my-program-books-read-count>\\n      {{this.booksRead}}\\n    </div>\\n    <span>\\n      books read\\n    </span>\\n    <div class=\\\"see\\\">\\n      See the books I've read\\n    </div>\\n  </LinkTo>\\n</my-program-books-read>\",\"moduleName\":\"re-client/components/my-program/books-read.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/my-program/books-read.hbs\"}});\nimport Component from '@glimmer/component'\n\nexport default class BooksRead extends Component {\n  get booksRead() {\n    return this.args.booksCount || 0\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<my-program-books-to-read\\n  class=\\\"books {{style-namespace 'my-program/books-to-read'}}\\\"\\n  ...attributes\\n>\\n  <div class=\\\"link\\\">\\n    <img\\n      class=\\\"book-character\\\"\\n      src=\\\"/assets/my-program/character-book.png\\\"\\n      alt=\\\"book character\\\"\\n      data-test-books-to-read-character-image\\n    />\\n\\n    <span class=\\\"books-to-read-title\\\" data-test-books-to-read-title>\\n      My Books to Read\\n    </span>\\n    <span class=\\\"to-top\\\" role=\\\"button\\\" {{on \\\"click\\\" @scrollToTopAction}}>\\n      <FaIcon @icon=\\\"arrow-circle-up\\\" @size=\\\"2x\\\" />\\n\\n    </span>\\n    <div class=\\\"book-section\\\">\\n      <div class=\\\"book-list\\\">\\n        {{#each @books.recommendedBooks as |book|}}\\n          <MyProgram::BookCover\\n            @src={{book.coverUrl}}\\n            @code={{book.code}}\\n            @clickAction={{fn @clickBookAction book.code}}\\n            data-test-books-to-read-recommended-book={{book.code}}\\n          />\\n        {{/each}}\\n      </div>\\n      <MyProgram::BooksRead\\n        @booksCount={{@books.readBooksCount}}\\n        data-test-books-to-read-count\\n      />\\n    </div>\\n  </div>\\n</my-program-books-to-read>\", {\"contents\":\"<my-program-books-to-read\\n  class=\\\"books {{style-namespace 'my-program/books-to-read'}}\\\"\\n  ...attributes\\n>\\n  <div class=\\\"link\\\">\\n    <img\\n      class=\\\"book-character\\\"\\n      src=\\\"/assets/my-program/character-book.png\\\"\\n      alt=\\\"book character\\\"\\n      data-test-books-to-read-character-image\\n    />\\n\\n    <span class=\\\"books-to-read-title\\\" data-test-books-to-read-title>\\n      My Books to Read\\n    </span>\\n    <span class=\\\"to-top\\\" role=\\\"button\\\" {{on \\\"click\\\" @scrollToTopAction}}>\\n      <FaIcon @icon=\\\"arrow-circle-up\\\" @size=\\\"2x\\\" />\\n\\n    </span>\\n    <div class=\\\"book-section\\\">\\n      <div class=\\\"book-list\\\">\\n        {{#each @books.recommendedBooks as |book|}}\\n          <MyProgram::BookCover\\n            @src={{book.coverUrl}}\\n            @code={{book.code}}\\n            @clickAction={{fn @clickBookAction book.code}}\\n            data-test-books-to-read-recommended-book={{book.code}}\\n          />\\n        {{/each}}\\n      </div>\\n      <MyProgram::BooksRead\\n        @booksCount={{@books.readBooksCount}}\\n        data-test-books-to-read-count\\n      />\\n    </div>\\n  </div>\\n</my-program-books-to-read>\",\"moduleName\":\"re-client/components/my-program/books-to-read.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/my-program/books-to-read.hbs\"}});\nimport templateOnly from '@ember/component/template-only';\n\nexport default templateOnly();\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"{{style-namespace 'navigation-circles'}}\\\" ...attributes>\\n  <svg\\n    height={{this.svgSize}}\\n    width={{this.svgSize}}\\n    class=\\\"top\\\"\\n    aria-hidden=\\\"true\\\"\\n  >\\n    <defs>\\n      <linearGradient id=\\\"circles-linear\\\" x1=\\\"0%\\\" y1=\\\"0\\\" x2=\\\"0%\\\" y2=\\\"100%\\\">\\n        <stop offset=\\\"97%\\\" stop-color=\\\"#9bd614\\\"></stop>\\n        <stop offset=\\\"100%\\\" stop-color=\\\"#6ace39\\\"></stop>\\n      </linearGradient>\\n    </defs>\\n    <circle\\n      cx={{this.circleXY}}\\n      cy={{this.circleXY}}\\n      r={{this.svgRadius}}\\n      stroke-width={{this.stroke}}\\n      stroke=\\\"url(#circles-linear)\\\"\\n    ></circle>\\n  </svg>\\n  <svg\\n    height={{this.svgSize}}\\n    width={{this.svgSize}}\\n    class=\\\"bottom\\\"\\n    aria-hidden=\\\"true\\\"\\n  >\\n    <defs>\\n      <linearGradient id=\\\"circles-linear2\\\" x1=\\\"0%\\\" y1=\\\"0\\\" x2=\\\"0%\\\" y2=\\\"100%\\\">\\n        <stop offset=\\\"0%\\\" stop-color=\\\"#115112\\\"></stop>\\n        <stop offset=\\\"5%\\\" stop-color=\\\"#49a333\\\"></stop>\\n      </linearGradient>\\n    </defs>\\n    <circle\\n      cx={{this.circleXY}}\\n      cy={{this.circleXY}}\\n      r={{this.svgRadius}}\\n      stroke-width={{this.stroke}}\\n      stroke=\\\"url(#circles-linear2)\\\"\\n    ></circle>\\n  </svg>\\n</div>\", {\"contents\":\"<div class=\\\"{{style-namespace 'navigation-circles'}}\\\" ...attributes>\\n  <svg\\n    height={{this.svgSize}}\\n    width={{this.svgSize}}\\n    class=\\\"top\\\"\\n    aria-hidden=\\\"true\\\"\\n  >\\n    <defs>\\n      <linearGradient id=\\\"circles-linear\\\" x1=\\\"0%\\\" y1=\\\"0\\\" x2=\\\"0%\\\" y2=\\\"100%\\\">\\n        <stop offset=\\\"97%\\\" stop-color=\\\"#9bd614\\\"></stop>\\n        <stop offset=\\\"100%\\\" stop-color=\\\"#6ace39\\\"></stop>\\n      </linearGradient>\\n    </defs>\\n    <circle\\n      cx={{this.circleXY}}\\n      cy={{this.circleXY}}\\n      r={{this.svgRadius}}\\n      stroke-width={{this.stroke}}\\n      stroke=\\\"url(#circles-linear)\\\"\\n    ></circle>\\n  </svg>\\n  <svg\\n    height={{this.svgSize}}\\n    width={{this.svgSize}}\\n    class=\\\"bottom\\\"\\n    aria-hidden=\\\"true\\\"\\n  >\\n    <defs>\\n      <linearGradient id=\\\"circles-linear2\\\" x1=\\\"0%\\\" y1=\\\"0\\\" x2=\\\"0%\\\" y2=\\\"100%\\\">\\n        <stop offset=\\\"0%\\\" stop-color=\\\"#115112\\\"></stop>\\n        <stop offset=\\\"5%\\\" stop-color=\\\"#49a333\\\"></stop>\\n      </linearGradient>\\n    </defs>\\n    <circle\\n      cx={{this.circleXY}}\\n      cy={{this.circleXY}}\\n      r={{this.svgRadius}}\\n      stroke-width={{this.stroke}}\\n      stroke=\\\"url(#circles-linear2)\\\"\\n    ></circle>\\n  </svg>\\n</div>\",\"moduleName\":\"re-client/components/navigation-circles.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/navigation-circles.hbs\"}});\nimport Component from '@glimmer/component'\n\n/**\n * Draws 2 svg circles which sit within the navigation and always sit and resize perfectly.\n * @class NavigationCirclesComponent\n */\nexport default class NavigationCircles extends Component {\n  svgRadius = 1900\n\n  stroke = 10\n\n  /**\n   * This is used to define the size of the circles.\n   * @returns {number}\n   */\n  get svgSize() {\n    return this.svgRadius * 2 + this.stroke * 2\n  }\n\n  /**\n   * Because svg positioning is strange we have to reposition the circles to sit centered.\n   * @returns {number}\n   */\n  get circleXY() {\n    return this.svgRadius + this.stroke\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  class=\\\"offline-screen-component\\\"\\n  {{update-online-called this.network.status.isOnline}}\\n  {{show-offline-screen this.network.status.isOnline this.transition}}\\n></div>\\n\\n{{#if this.offlineScreen.canShowOfflineScreen}}\\n  <div class=\\\"{{style-namespace 'offline-screen'}}\\\">\\n    <FullPageAlert>\\n      <h2>\\n        Your internet-connection appears to be down\\n      </h2>\\n    </FullPageAlert>\\n  </div>\\n{{/if}}\", {\"contents\":\"<div\\n  class=\\\"offline-screen-component\\\"\\n  {{update-online-called this.network.status.isOnline}}\\n  {{show-offline-screen this.network.status.isOnline this.transition}}\\n></div>\\n\\n{{#if this.offlineScreen.canShowOfflineScreen}}\\n  <div class=\\\"{{style-namespace 'offline-screen'}}\\\">\\n    <FullPageAlert>\\n      <h2>\\n        Your internet-connection appears to be down\\n      </h2>\\n    </FullPageAlert>\\n  </div>\\n{{/if}}\",\"moduleName\":\"re-client/components/offline-screen.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/offline-screen.hbs\"}});\nimport { inject as service } from '@ember/service'\nimport Component from '@glimmer/component'\nimport { tracked } from '@glimmer/tracking'\n\n/**\n * The OfflineScreenComponent is a component which is on the screen at all times.\n * It is generally rendered on the application templates and takes inputs from the network service\n * to determine if we are still in a loading state when waiting for caper interactives to finish their loading.\n *\n * @class OfflineScreenComponent\n */\nexport default class OfflineScreen extends Component {\n  @service\n  offlineScreen\n\n  @service('device/network')\n  network\n\n  @service\n  router\n\n  @tracked transition = null\n\n  constructor(owner, args) {\n    super(owner, args)\n    this.setupRouterListener()\n  }\n\n  willDestroy() {\n    super.willDestroy(...arguments)\n    this.teardownRouterListener()\n  }\n\n  /**\n   * router handler so we can destroy it properly\n   * @param t\n   */\n  routerHandler(t) {\n    this.transition = null\n    if (!t.isAborted) this.transition = t\n  }\n\n  setupRouterListener() {\n    const routerHandler = this.routerHandler.bind(this)\n    this.routerHandlerReference = routerHandler\n    this.router.on('routeDidChange', routerHandler)\n  }\n\n  teardownRouterListener() {\n    this.router.off('routeDidChange', this.routerHandlerReference, false)\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#unless this.inAssignmentMode}}\\n  {{#let (unique-id) as |titleId|}}\\n    <Dialog\\n      @open={{this.showQuestAlert}}\\n      class=\\\"pointer-events-auto aria-hidden:pointer-events-none aria-hidden:opacity-0\\\"\\n      role=\\\"alertdialog\\\"\\n      aria-labelledby={{titleId}}\\n      aria-hidden={{if this.showQuestAlert \\\"false\\\" \\\"true\\\"}}\\n      data-test-quest-notification\\n    >\\n      {{#if this.showQuestAlert}}\\n        <Dialog::Overlay\\n          class=\\\"flex items-center justify-center\\\"\\n          role=\\\"document\\\"\\n          tabindex=\\\"0\\\"\\n          {{content-interactive\\n            this.jesterLoader.loader\\n            externalController=this\\n            manifests=this.manifests\\n            runtimeVariables=this.variables\\n            onError=this.onContentError\\n          }}\\n        />\\n      {{/if}}\\n    </Dialog>\\n  {{/let}}\\n{{/unless}}\", {\"contents\":\"{{#unless this.inAssignmentMode}}\\n  {{#let (unique-id) as |titleId|}}\\n    <Dialog\\n      @open={{this.showQuestAlert}}\\n      class=\\\"pointer-events-auto aria-hidden:pointer-events-none aria-hidden:opacity-0\\\"\\n      role=\\\"alertdialog\\\"\\n      aria-labelledby={{titleId}}\\n      aria-hidden={{if this.showQuestAlert \\\"false\\\" \\\"true\\\"}}\\n      data-test-quest-notification\\n    >\\n      {{#if this.showQuestAlert}}\\n        <Dialog::Overlay\\n          class=\\\"flex items-center justify-center\\\"\\n          role=\\\"document\\\"\\n          tabindex=\\\"0\\\"\\n          {{content-interactive\\n            this.jesterLoader.loader\\n            externalController=this\\n            manifests=this.manifests\\n            runtimeVariables=this.variables\\n            onError=this.onContentError\\n          }}\\n        />\\n      {{/if}}\\n    </Dialog>\\n  {{/let}}\\n{{/unless}}\",\"moduleName\":\"re-client/components/quest/notification.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/quest/notification.hbs\"}});\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\nimport { service } from '@ember/service'\nimport type QuestService from 're-client/services/quest'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type JesterLoaderService from 're-client/services/jester-loader'\nimport type UserService from 're-client/services/user'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type Owner from '@ember/owner'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type LoadingUiService from 're-client/services/loading-ui'\n\ninterface QuestNotificationComponentArgs {\n  alertAnytime?: boolean\n}\nexport default class QuestNotificationComponent extends Component<QuestNotificationComponentArgs> {\n  @service declare assignments: AssignmentsService\n\n  @service declare quest: QuestService\n\n  @service declare jesterLoader: JesterLoaderService\n\n  @service declare user: UserService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare features: FeatureService\n\n  @service declare loadingUi: LoadingUiService\n\n  variables\n\n  constructor(owner: Owner, args: QuestNotificationComponentArgs) {\n    super(owner, args)\n    this.variables = {\n      currencyAmount: this.user.student.eggs,\n      name: this.user.student.name,\n      quest: this.quest.currentQuest,\n    }\n    if (this.args.alertAnytime) this.quest.displayQuestAlertIfRequired()\n  }\n\n  get showQuestAlert() {\n    return this.quest.showQuestAlert\n  }\n\n  get questGoalForNotification() {\n    return this.quest.questGoalForNotification\n  }\n\n  get inAssignmentMode() {\n    return this.assignments.hasTask\n  }\n\n  get manifests() {\n    return [['index', 'three-essentials/quest-reward']]\n  }\n\n  @action\n  acknowledgeQuestGoalAlert() {\n    if (!this.questGoalForNotification) return\n\n    void this.quest.acknowledgeQuestGoalAlert({\n      goalId: this.questGoalForNotification.id,\n    })\n  }\n\n  @action\n  awarded() {\n    this.acknowledgeQuestGoalAlert()\n  }\n\n  @action\n  close() {\n    this.quest.closeQuestAlert()\n  }\n\n  @action\n  onContentError(error: Error) {\n    // console.log(error)\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide()\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<a\\n  href={{@href}}\\n  aria-label=\\\"Back\\\"\\n  class=\\\"worlds-back-button {{style-namespace 'worlds-back-button'}}\\\"\\n  {{on \\\"click\\\" this.handleClick}}\\n  ...attributes\\n></a>\", {\"contents\":\"<a\\n  href={{@href}}\\n  aria-label=\\\"Back\\\"\\n  class=\\\"worlds-back-button {{style-namespace 'worlds-back-button'}}\\\"\\n  {{on \\\"click\\\" this.handleClick}}\\n  ...attributes\\n></a>\",\"moduleName\":\"re-client/components/worlds-back-button.hbs\",\"parseOptions\":{\"srcName\":\"re-client/components/worlds-back-button.hbs\"}});\nimport { action } from '@ember/object'\nimport Component from '@glimmer/component'\n\ninterface WorldsBackButtonSignature {\n  Args: {\n    onClick: (event: MouseEvent) => void\n    href: string\n  }\n  Element: HTMLAnchorElement\n}\n\nexport default class WorldsBackButton extends Component<WorldsBackButtonSignature> {\n  @action\n  handleClick(event: MouseEvent) {\n    event.preventDefault()\n    this.args.onClick(event)\n  }\n}\n","import { action } from '@ember/object'\nimport { tracked } from '@glimmer/tracking'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type SessionService from 're-client/services/session'\n\nexport default class ApplicationErrorController extends Controller {\n  @tracked showErrorMessage = false\n\n  @service\n  declare session: SessionService\n\n  @action\n  toggleErrorMessage() {\n    this.showErrorMessage = !this.showErrorMessage\n  }\n\n  @action\n  bye(event: Event) {\n    event.preventDefault()\n\n    this.session.signOut()\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type UserService from 're-client/services/user'\n\nexport default class ApplicationController extends Controller {\n  @service\n  declare user: UserService\n\n  get locale() {\n    return this.user.locale\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type { MyAwardsContentActions } from '@blakeelearning/content-specs-readingeggs'\nimport { myAwardsContentSpec } from '@blakeelearning/content-specs-readingeggs'\nimport type { ContentSpec } from '@blakeelearning/messenger'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport { debug } from '@ember/debug'\nimport type { PrintMessage } from 're-client/controllers/lessons/certificate'\nimport type DeviceDetection from '@blakeelearning/device/device/detection/service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport { debugAction, debugValue } from 're-client/utils/debug'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport printCertificate from 're-client/utils/print-certificate'\nimport type AwardsRoute from 're-client/routes/awards'\n\nexport default class AwardsController\n  extends Controller\n  implements MyAwardsContentActions\n{\n  @debugValue()\n  declare model: ModelFor<AwardsRoute>\n\n  @service declare router: RouterService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service('device/detection') declare deviceDetection: DeviceDetection\n\n  @service declare loadingUi: LoadingUiService\n\n  get currentMap() {\n    if (!('variables' in this.model))\n      throw new Error('No currentMap in V1 model variables')\n    return this.model.variables.currentMap\n  }\n\n  get contentSpec(): ContentSpec {\n    return myAwardsContentSpec\n  }\n\n  @action\n  readyForUserInput() {\n    debug(`[CertificateController] readyForUserInput()`)\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  @action\n  unhandledError({ error }: { error: { name?: string; message?: string } }) {\n    debug(`[CertificateController] unhandledError()`)\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @debugAction({\n    certificateUrl: {\n      type: 'text',\n      value:\n        'https://certificates.blake-staging.com/re/legacy/WzEsImdvbGQiLDEwMCwiU2FtcGxlIEMuIiwxNjc5NDYyNzc0NTQ1XQ.svg', // TODO: this value is temporary to assist with native app testing\n    },\n  })\n  @action\n  async print({ certificateUrl }: PrintMessage): Promise<void> {\n    debug(`[AwardsController] print()`)\n\n    await printCertificate(certificateUrl, {\n      isNativeMobile: this.deviceDetection.isNativeMobile,\n    })\n  }\n\n  @debugAction()\n  @action\n  goHome() {\n    debug(`[CertificateController] goHome()`)\n    void this.router.transitionTo('/')\n  }\n\n  @debugAction()\n  @action\n  goNext() {\n    debug(`[CertificateController] goNext()`)\n    if (this.currentMap) {\n      void this.router.transitionTo('lessons.map.next', this.currentMap)\n    }\n  }\n\n  @action\n  goToHouse() {\n    void this.router.transitionTo('house')\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class BookcaseController extends Controller {\n  @service\n  declare router: RouterService\n\n  @action\n  returnToHouse() {\n    this.router.transitionTo('house')\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { capitalize } from '@ember/string'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\n\nexport default class BookshelfController extends Controller {\n  @service\n  declare router: RouterService\n\n  @service\n  declare user: UserService\n\n  get studentDisplayName() {\n    return capitalize(this.user.student.firstName)\n  }\n\n  @action\n  goToBooks(bookId: string) {\n    this.router.transitionTo('reader.book.index', bookId)\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type UserService from 're-client/services/user'\nimport prefetch from 're-client/utils/prefetch'\nimport type RouterService from '@ember/routing/router-service'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ErrorLike } from 're-client/utils/errors'\nimport type { AvatarUpdateInput } from 're-client/graphql/graphql'\n\ninterface SaveAvatarOptions {\n  DNA: AvatarUpdateInput & {\n    __typename?: string\n  }\n}\n\nexport default class ChangingRoomController extends Controller {\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  get student() {\n    return this.user.student\n  }\n\n  @action\n  async saveAvatar({\n    DNA: { arms, legs, head, egg, extra, hat, decal, sunnies },\n  }: SaveAvatarOptions) {\n    await this.user.avatarUpdate({\n      arms,\n      legs,\n      head,\n      egg,\n      extra,\n      hat,\n      decal,\n      sunnies,\n    })\n    prefetch(this.user.student.avatarUrl)\n  }\n\n  get contentSpec() {\n    return {\n      saveAvatar: {\n        type: 'message',\n      },\n      goToShop: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @action\n  goToShop() {\n    this.router.transitionTo('shop')\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  @action\n  unhandledError({ error }: { error: Partial<ErrorLike> }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'changing-room': ChangingRoomController\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class CrittersCritterController extends Controller {\n  @service\n  declare router: RouterService\n\n  @action\n  next() {\n    void this.router.transitionTo('critters')\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class CrittersIndexController extends Controller {\n  @service\n  declare router: RouterService\n\n  @action\n  playVideo(critterId: string) {\n    this.router.transitionTo('critters.critter', critterId)\n  }\n}\n","import { action } from '@ember/object'\nimport { underscore } from '@ember/string'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class DrivingTestsIndexController extends Controller {\n  @service\n  declare router: RouterService\n\n  @action\n  startQuiz(quizType: string, quizId: string) {\n    const type = underscore(quizType)\n    this.router.transitionTo('driving-tests.quiz', type, quizId)\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { underscore } from '@ember/string'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type DrivingTestsQuizRoute from 're-client/routes/driving-tests/quiz'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type SessionService from 're-client/services/session'\nimport { graphql } from 're-client/graphql'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport { useMutation } from 're-client/resources/mutation'\nimport { v4 as uuidV4 } from 'uuid'\n\ninterface DrivingTestResults {\n  quiz: number\n  test_type: string\n  correct_answers: string[]\n  incorrect_answers: Record<string, string>\n  passed: boolean\n}\n\nexport const saveDrivingTestQuizResultMutationDocument = graphql(/* GraphQL */ `\n  mutation SaveDrivingTestQuizResult(\n    $input: DrivingTestQuizResultCreateInput!\n  ) {\n    drivingTestQuizResultCreate(input: $input) {\n      student {\n        id\n        ...StudentProgressFragment\n        ...AssignmentTask\n      }\n    }\n  }\n`)\n\nexport default class DrivingTestsQuizController extends Controller {\n  declare model: ModelFor<DrivingTestsQuizRoute>\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare router: RouterService\n\n  @service declare user: UserService\n\n  @service declare assignments: AssignmentsService\n\n  @service declare session: SessionService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  saveDrivingTestQuizResultMutation = useMutation(\n    this,\n    saveDrivingTestQuizResultMutationDocument,\n  )\n\n  get isAssignmentMode() {\n    return this.model?.isAssignmentMode\n  }\n\n  get shouldLogout() {\n    return (\n      this.user.student.rosterEnabled &&\n      this.isAssignmentMode &&\n      !this.assignments.currentTask\n    )\n  }\n\n  @action\n  goToLobby() {\n    if (this.shouldLogout) {\n      this.session.signOut()\n      return\n    }\n    void this.router.transitionTo('driving-tests')\n  }\n\n  @action\n  startRace() {\n    void this.router.transitionTo('driving-tests.racing-game', {\n      queryParams: {\n        assignmentMode: this.isAssignmentMode,\n      },\n    })\n  }\n\n  @action\n  async completeDrivingTest(results: DrivingTestResults, uuid?: string) {\n    this.user.setRacingGameAvailability(results.passed)\n    const category = underscore(results.test_type)\n\n    let assignment = null\n    try {\n      if (\n        this.assignments.currentTask?.__typename ===\n          'AssignmentTaskDrivingTests' &&\n        this.assignments.canCompleteDrivingTestAssignmentTask(\n          results.quiz,\n          category,\n        )\n      ) {\n        assignment = {\n          assignmentTaskId: parseInt(this.assignments.currentTask.id, 10),\n          assignmentUuid: this.assignments.currentTask.assignmentUuid,\n          gradePosition: this.assignments.currentTask.gradePosition,\n        }\n      }\n\n      const data = await this.saveDrivingTestQuizResultMutation.current.mutate({\n        variables: {\n          input: {\n            correctAnswers: results.correct_answers,\n            incorrectAnswers: results.incorrect_answers,\n            category,\n            quizPosition: results.quiz,\n            attemptUuid: uuid ?? uuidV4(),\n            assignment,\n          },\n        },\n      })\n\n      if (!data) {\n        throw new Error('[SaveDrivingTestQuizResult] mutation returned no data')\n      }\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveDrivingTestQuizResult] mutation failed',\n        error,\n      )\n    }\n    return\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'driving-tests/quiz': DrivingTestsQuizController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type DrivingTestsRacingGameRoute from 're-client/routes/driving-tests/racing-game'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type SessionService from 're-client/services/session'\nimport { graphql } from 're-client/graphql'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport { useMutation } from 're-client/resources/mutation'\nimport { v4 as uuidV4 } from 'uuid'\n\nexport const saveDrivingTestGameResultMutationDocument = graphql(/* GraphQL */ `\n  mutation SaveDrivingTestGameResult(\n    $input: DrivingTestGameResultCreateInput!\n  ) {\n    drivingTestGameResultCreate(input: $input) {\n      student {\n        id\n        eggs\n        ...StudentProgressFragment\n      }\n    }\n  }\n`)\nexport default class DrivingTestsRacingGameController extends Controller {\n  @service\n  declare router: RouterService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare assignments: AssignmentsService\n\n  @service\n  declare session: SessionService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  saveDrivingTestGameResultMutation = useMutation(\n    this,\n    saveDrivingTestGameResultMutationDocument,\n  )\n\n  declare model: ModelFor<DrivingTestsRacingGameRoute>\n\n  get shouldLogout() {\n    return (\n      this.user.student.rosterEnabled &&\n      this.model.assignmentMode &&\n      !this.assignments.currentTask\n    )\n  }\n\n  @action\n  async incrementScore(eggs = 1, uuid?: string) {\n    try {\n      const data = await this.saveDrivingTestGameResultMutation.current.mutate({\n        variables: {\n          input: {\n            eggs,\n            attemptUuid: uuid ?? uuidV4(),\n          },\n        },\n      })\n\n      if (!data) {\n        throw new Error('[SaveDrivingTestGameResult] mutation returned no data')\n      }\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveDrivingTestGameResult] mutation failed',\n        error,\n      )\n    }\n  }\n\n  @action\n  exit() {\n    if (this.shouldLogout) {\n      this.session.signOut()\n      return\n    }\n\n    this.router.transitionTo('driving-tests')\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type RouterService from '@ember/routing/router-service'\nimport type { Log } from '@blakeelearning/log'\nimport { graphql } from 're-client/graphql'\nimport { useMutation } from 're-client/resources/mutation'\n\nexport const saveGameScoreMutationDocument = graphql(/* GraphQL */ `\n  mutation SaveGameScore($input: GameScoreSaveInput!) {\n    gameScoreSave(input: $input) {\n      game {\n        id\n        personalBest {\n          score\n        }\n        highScores(limit: 10) {\n          name\n          score\n        }\n      }\n    }\n  }\n`)\n\ninterface SaveGameScoreArgs {\n  name: string\n  score: number\n}\n\nexport default class GamesGameController extends Controller {\n  @service\n  declare log: Log\n\n  @service\n  declare router: RouterService\n\n  saveGameScoreMutation = useMutation(this, saveGameScoreMutationDocument)\n\n  @action\n  async saveGameScore({ name: gameId, score }: SaveGameScoreArgs) {\n    try {\n      await this.saveGameScoreMutation.current.mutate({\n        variables: { input: { gameId, score } },\n      })\n    } catch (error) {\n      this.log.error(error as Error)\n    }\n  }\n\n  @action\n  next() {\n    void this.router.transitionTo('games')\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type { Log } from '@blakeelearning/log'\nimport type { MinigameAuthService } from '@blakeelearning/minigame-auth'\nimport type RouterService from '@ember/routing/router-service'\nimport { graphql } from 're-client/graphql'\nimport { useMutation } from 're-client/resources/mutation'\n\nexport const purchaseGamePlayMutationDocument = graphql(/* GraphQL */ `\n  mutation PurchaseGamePlay($input: GamePlayPurchaseInput!) {\n    gamePlayPurchase(input: $input) {\n      __typename\n      ... on GamePlayPurchaseSuccess {\n        student {\n          id\n          eggs\n        }\n      }\n      ... on GamePlayPurchaseInsufficientFunds {\n        student {\n          id\n          eggs\n        }\n      }\n    }\n  }\n`)\n\nexport default class GamesIndexController extends Controller {\n  @service\n  declare log: Log\n\n  @service\n  declare minigameAuth: MinigameAuthService\n\n  @service\n  declare router: RouterService\n\n  purchaseGamePlayMutation = useMutation(this, purchaseGamePlayMutationDocument)\n\n  @action\n  async purchaseGamePlay(gameId: string) {\n    try {\n      const data = await this.purchaseGamePlayMutation.current.mutate({\n        variables: { input: { gameId } },\n      })\n\n      if (data?.gamePlayPurchase.__typename === 'GamePlayPurchaseSuccess') {\n        this.minigameAuth.enableGameNamed(gameId)\n\n        void this.router.transitionTo('games.game', gameId)\n      }\n    } catch (error) {\n      this.log.error(error as Error)\n    }\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type Store from '@ember-data/store'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ErrorLike } from 're-client/utils/errors'\n\nexport default class HouseController extends Controller {\n  @service declare router: RouterService\n\n  @service declare user: UserService\n\n  @service declare store: Store\n\n  @service declare features: FeatureService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  get student() {\n    return this.user.student\n  }\n\n  get contentSpec() {\n    return {\n      updateItem: {\n        type: 'message',\n      },\n      goToBookCase: {\n        type: 'message',\n      },\n      goToChangeRoom: {\n        type: 'message',\n      },\n      goToCritterBook: {\n        type: 'message',\n      },\n      goToGamesMachine: {\n        type: 'message',\n      },\n      goToShop: {\n        type: 'message',\n      },\n      goToTrophies: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @action\n  updateItem({ id, state }: { id: string; state: string }) {\n    const itemRecord = this.store.peekRecord('item', id)\n\n    if (itemRecord) {\n      itemRecord.state = state\n      itemRecord.save()\n    }\n  }\n\n  @action\n  showCritters() {\n    this.router.transitionTo('critters')\n  }\n\n  @action\n  showChangeRoom() {\n    this.router.transitionTo('changing-room')\n  }\n\n  @action\n  showBookCase() {\n    this.router.transitionTo('bookcase')\n  }\n\n  @action\n  showAwards() {\n    this.router.transitionTo('awards')\n  }\n\n  @action\n  showArcade() {\n    this.router.transitionTo('games')\n  }\n\n  @action\n  goToBookCase() {\n    this.showBookCase()\n  }\n\n  @action\n  goToChangeRoom() {\n    this.showChangeRoom()\n  }\n\n  @action\n  goToCritterBook() {\n    this.showCritters()\n  }\n\n  @action\n  goToGamesMachine() {\n    this.showArcade()\n  }\n\n  @action\n  goToTrophies() {\n    this.showAwards()\n  }\n\n  @action\n  goToShop() {\n    this.router.transitionTo('shop.department', 'house')\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  @action\n  unhandledError({ error }: { error: Partial<ErrorLike> }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport { sample } from 'lodash'\nimport { correctSpellingMap } from 're-client/utils/progress-tools'\nimport config from 're-client/config/environment'\nimport { capitalize } from '@ember/string'\nimport formatDueDate from 're-client/utils/format-due-date'\nimport dateFromNow from 're-client/utils/date-from-now'\nimport { debugAction, debugValue } from 're-client/utils/debug'\nimport {\n  generateLessonOptions,\n  generateMapOptions,\n} from 're-client/utils/debug-lesson-options'\nimport { getMonth } from 're-client/utils/format-date'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type UserService from 're-client/services/user'\nimport type RouterService from '@ember/routing/router-service'\nimport type SessionService from 're-client/services/session'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type ThemeService from 're-client/services/theme'\nimport type DeviceNetwork from '@blakeelearning/device/device/network/service'\nimport type OfflineScreenService from 're-client/services/offline-screen'\nimport type QuestService from 're-client/services/quest'\nimport type DebugModeService from 're-client/services/debug-mode'\nimport type PosthogService from 're-client/services/posthog'\n\nconst {\n  APP: { lastSpellingLesson, lastStorylandsLesson },\n} = config\n\nconst themeOptions = config.themesByMonth.map((theme, index) => ({\n  value: index.toFixed(),\n  label: `${getMonth(index)} - ${theme}`,\n}))\n\nexport default class IndexController extends Controller {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare assignments: AssignmentsService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare session: SessionService\n\n  @service\n  declare features: FeatureService\n\n  @service\n  declare theme: ThemeService\n\n  @service('device/network')\n  declare network: DeviceNetwork\n\n  @service\n  declare offlineScreen: OfflineScreenService\n\n  @service\n  declare quest: QuestService\n\n  @service\n  declare debugMode: DebugModeService\n\n  @service\n  declare posthog: PosthogService\n\n  get student() {\n    return this.user.student\n  }\n\n  get showPlacementTestText() {\n    return this.studentProgress.showLessonsPlacementTest\n  }\n\n  get eggsAsArray() {\n    return String(this.student.eggs).split('').map(Number)\n  }\n\n  get bannerSvgName() {\n    return this.theme.bannerName\n  }\n\n  get currentLessonTitle() {\n    const currentLesson = this.studentProgress.lessonsCurrentLesson\n    if (currentLesson === 'quiz') {\n      return 'Quiz'\n    }\n    return currentLesson\n  }\n\n  get hasFinishedLessons() {\n    return this.studentProgress.hasFinishedLessons\n  }\n\n  get gamesLocked() {\n    return this.studentProgress.isAreaLocked('games')\n  }\n\n  get awardsLocked() {\n    return this.studentProgress.isAreaLocked('awards')\n  }\n\n  get drivingTestsLocked() {\n    return this.studentProgress.isAreaLocked('drivingTests')\n  }\n\n  get houseLocked() {\n    return this.studentProgress.isAreaLocked('house')\n  }\n\n  get puzzlesLocked() {\n    return this.studentProgress.isAreaLocked('puzzles')\n  }\n\n  get shopLocked() {\n    return this.studentProgress.isAreaLocked('shop')\n  }\n\n  get spellingLocked() {\n    return this.studentProgress.isAreaLocked('spelling')\n  }\n\n  get storyFactoryLocked() {\n    return this.studentProgress.isAreaLocked('storyFactory')\n  }\n\n  get storylandsLocked() {\n    return this.studentProgress.isAreaLocked('storylands')\n  }\n\n  get storylandsIcon() {\n    return this.storylandsLocked ? 'storylands-locked-egg' : 'StoryLands'\n  }\n\n  get spellingIcon() {\n    return this.spellingLocked ? 'spelling-locked-egg' : 'Spelling'\n  }\n\n  get drivingTestsIcon() {\n    return this.drivingTestsLocked ? 'drivingtests-locked-egg' : 'DrivingTests'\n  }\n\n  get storyFactoryIcon() {\n    return this.storyFactoryLocked ? 'storyfactory-locked-egg' : 'StoryFactory'\n  }\n\n  get greetings() {\n    return ['Hello,', 'Hi,', 'Welcome,']\n  }\n\n  get myLessonsTitle() {\n    if (this.hasFinishedLessons) {\n      return 'Complete!'\n    }\n    return 'My Lessons'\n  }\n\n  get welcomeGreeting() {\n    return sample(this.greetings)\n  }\n\n  get isAuLocale() {\n    const studentLocale = this.user.accent.toLowerCase()\n    return studentLocale === 'au'\n  }\n\n  get showMyReadingGoals() {\n    return this.features.isEnabled('re_my-reading-goals')\n  }\n\n  get task() {\n    return this.assignments.currentTask\n  }\n\n  get hasTask() {\n    return this.assignments.hasTask\n  }\n\n  get assignmentThumbnailUrl() {\n    return this.task?.thumbnailUrl\n  }\n\n  get assignmentTitle() {\n    switch (this.task?.__typename) {\n      case 'AssignmentTaskLesson':\n        return `Lesson ${this.task.lessonId}`\n      case 'AssignmentTaskSpelling':\n        return `Lesson`\n      case 'AssignmentTaskClinkerCastle':\n        return `Lesson ${this.task.lessonId}`\n      case 'AssignmentTaskDrivingTests':\n        return `${this.task.category.split('_').map(capitalize).join(' ')}: Lesson ${this.task.lessonId}`\n      default:\n        return undefined\n    }\n  }\n\n  get assignmentName() {\n    if (!this.task) return undefined\n\n    if (this.task.__typename === 'AssignmentTaskLesson') {\n      const matcher = /Lesson [0-9]* - /g\n      return capitalize(this.task.title.replace(matcher, ''))\n    }\n\n    return this.task.title\n  }\n\n  get assignmentDueDate() {\n    if (!this.task) return undefined\n    return formatDueDate(new Date(this.task.endAt))\n  }\n\n  get assignmentTimeRemaining() {\n    if (!this.task) return undefined\n\n    // TODO: The dateFromNow util can be replaced with date-fns intlFormatDistance once we drop support for ios13\n    return dateFromNow(new Date(this.task.endAt), Date.now())\n  }\n\n  get assignmentInstruction() {\n    if (!this.task) return undefined\n\n    const instructionForType = {\n      AssignmentTaskLesson:\n        'You must complete all the activities in the lesson.',\n      AssignmentTaskSpelling:\n        'You must complete the quiz at the end of the spelling lesson.',\n      AssignmentTaskClinkerCastle: `You must complete the quiz at the end of the storylands lesson.`,\n      AssignmentTaskDrivingTests: `You must complete the Driving Test.`,\n    }\n\n    return instructionForType[this.task.__typename]\n  }\n\n  @action\n  startTask() {\n    return this.router.transitionTo(\n      // @ts-expect-error router params type no bueno\n      ...this.task.targetRouteParams,\n    )\n  }\n\n  @action\n  myProgram() {\n    this.router.transitionTo('my-program')\n  }\n\n  @action\n  storylands() {\n    if (this.studentProgress.storylandsCurrentLesson > lastStorylandsLesson) {\n      this.router.transitionTo('storylands.finished-re-storylands')\n      return\n    }\n\n    this.router.transitionTo(\n      'storylands.map',\n      this.studentProgress.storylandsCurrentMap,\n    )\n  }\n\n  @action\n  spelling() {\n    if (this.studentProgress.spellingCurrentLessonNumber > lastSpellingLesson) {\n      this.router.transitionTo('spelling.finished-re-spelling')\n      return\n    }\n\n    this.router.transitionTo(\n      'spelling.map',\n      correctSpellingMap(this.studentProgress.spellingCurrentMap),\n    )\n  }\n\n  @action\n  myReadingGoals() {\n    this.router.transitionTo('my-reading-goals')\n  }\n\n  @action\n  lessons() {\n    this.router.transitionTo(\n      'lessons.map',\n      this.studentProgress.lessonsCurrentMap,\n    )\n  }\n\n  @action\n  drivingTests() {\n    this.router.transitionTo('driving-tests')\n  }\n\n  @action\n  readingJournal() {\n    this.goToReadingJournal()\n  }\n\n  @action\n  goToReadingJournal(location = window.location) {\n    if (this.network.status.isOffline) {\n      this.offlineScreen.display()\n      return\n    }\n\n    // We are navigating to the internal route with the `return_to` query param set to the journal,\n    // this will land us at the journal after sso is finished.\n    // Internal route is used to ensure that \"login_provider\" is properly included\n    const base = config.APP.apiEndpoint ?? location.origin\n    const rexLoginUrl = new URL('rex', base)\n    rexLoginUrl.searchParams.set('return_to', '/journal')\n    location.assign(rexLoginUrl.toString())\n  }\n\n  @action\n  storyFactory() {\n    this.router.transitionTo('story-factory')\n  }\n\n  @action\n  house() {\n    this.router.transitionTo('house')\n  }\n\n  @action\n  awards() {\n    this.router.transitionTo('awards')\n  }\n\n  @action\n  games() {\n    this.router.transitionTo('games')\n  }\n\n  @action\n  plaza() {\n    this.router.transitionTo('plaza')\n  }\n\n  @action\n  shop() {\n    this.router.transitionTo('shop.department', 'avatar')\n  }\n\n  @action\n  puzzles() {\n    this.router.transitionTo('puzzles')\n  }\n\n  @action\n  critters() {\n    this.router.transitionTo('critters.index')\n  }\n\n  @action\n  play() {\n    this.router.transitionTo('play')\n  }\n\n  @action\n  songs() {\n    this.router.transitionTo('songs')\n  }\n\n  @action\n  goToChangingRoom() {\n    this.router.transitionTo('changing-room')\n  }\n\n  @action\n  bye() {\n    this.session.signOut()\n  }\n\n  @action\n  @debugAction()\n  async resetProgressToPlacementTest() {\n    await this.debugMode.resetReadingPlacementTestProgress()\n  }\n\n  @action\n  @debugAction({\n    lesson: {\n      type: 'select',\n      options: generateLessonOptions('lessons', 130),\n    },\n    activity: {\n      type: 'number',\n      value: '1',\n    },\n  })\n  async resetProgressToLessonPosition({\n    lesson,\n    activity,\n  }: {\n    lesson: string\n    activity: string\n  }) {\n    await this.debugMode.resetReadingLessonProgress(\n      parseInt(lesson, 10),\n      parseInt(activity, 10),\n    )\n  }\n\n  @action\n  @debugAction({\n    map: {\n      type: 'select',\n      options: generateMapOptions(13),\n    },\n  })\n  async resetProgressToMapQuizPosition({ map }: { map: string }) {\n    await this.debugMode.resetReadingMapQuizProgress(parseInt(map, 10))\n  }\n\n  @action\n  @debugAction()\n  async resetProgressToCompleteLessonsPrecinct() {\n    await this.debugMode.resetReadingLessonProgress(131, 1)\n  }\n\n  @action\n  @debugAction({\n    lesson: {\n      type: 'select',\n      options: generateLessonOptions('spelling', config.APP.lastSpellingLesson),\n    },\n  })\n  async goToSpellingLesson({ lesson }: { lesson: string }) {\n    await this.debugMode.completeSpellingLesson(lesson)\n    this.router.transitionTo('spelling.lesson', lesson)\n  }\n\n  @action\n  @debugAction({\n    lesson: {\n      type: 'select',\n      options: generateLessonOptions(\n        'storylands',\n        config.APP.lastStorylandsLesson,\n      ),\n    },\n  })\n  async goToStorylandsLesson({ lesson }: { lesson: string }) {\n    await this.debugMode.completeStorylandsLesson(lesson)\n    this.router.transitionTo('storylands.lesson', lesson)\n  }\n\n  @action\n  @debugAction({\n    month: {\n      type: 'select',\n      options: themeOptions,\n    },\n  })\n  setTheme({ month }: { month: string }) {\n    this.router.transitionTo('index', { queryParams: { qa_month: month } })\n  }\n\n  @debugValue()\n  get currentQuest() {\n    return this.quest.currentQuest\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    index: IndexController\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type { CertificateContentActions } from '@blakeelearning/content-specs-readingeggs'\nimport { certificateContentSpec } from '@blakeelearning/content-specs-readingeggs'\nimport type { ContentSpec } from '@blakeelearning/messenger'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport { debug } from '@ember/debug'\nimport { debugAction, debugValue } from 're-client/utils/debug'\nimport { base64url } from 'rfc4648'\nimport { tracked } from '@glimmer/tracking'\nimport type DeviceDetection from '@blakeelearning/device/device/detection/service'\nimport type UserService from 're-client/services/user'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport {\n  contentError,\n  isErrorRepresentingNetworkError,\n} from 're-client/utils/errors'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport printCertificate from 're-client/utils/print-certificate'\nimport uploadSvgWithRetries from 're-client/utils/upload-svg-with-retries'\nimport prefetch from 're-client/utils/prefetch'\nimport type LessonsCertificateRoute from 're-client/routes/lessons/certificate'\nimport type CertificateService from 're-client/services/certificate'\nimport type StudentProgressService from 're-client/services/student-progress'\n\nexport interface SaveCertificateMessage {\n  svgString: string\n  width: number\n  height: number\n}\n\nexport interface SaveCertificateResult {\n  savedCertificateUrl: string\n}\n\nexport interface PrintMessage {\n  certificateUrl: string\n}\n\nexport default class LessonsCertificateController\n  extends Controller\n  implements CertificateContentActions\n{\n  @service declare certificate: CertificateService\n\n  @debugValue()\n  declare model: ModelFor<LessonsCertificateRoute>\n\n  @service declare router: RouterService\n\n  @service('device/detection') declare deviceDetection: DeviceDetection\n\n  @service declare user: UserService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare studentProgress: StudentProgressService\n\n  get contentSpec(): ContentSpec {\n    return certificateContentSpec\n  }\n\n  get map() {\n    return this.model.map\n  }\n\n  get isLastLessonsMap() {\n    return this.map === this.studentProgress.lessonsLastMap\n  }\n\n  get pendingCertificateId() {\n    return this.model.pendingCertificateId\n  }\n\n  @action\n  unhandledError({ error }: { error: { name?: string; message?: string } }) {\n    debug(`[CertificateController] unhandledError()`)\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action\n  readyForUserInput() {\n    debug(`[CertificateController] readyForUserInput()`)\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  @debugAction({\n    svgString: { type: 'text' },\n    width: { type: 'number', value: '1240' },\n    height: { type: 'number', value: '1647' },\n  })\n  @action\n  async saveCertificate({\n    svgString,\n    width,\n    height,\n  }: SaveCertificateMessage): Promise<SaveCertificateResult> {\n    debug(`[CertificateController] saveCertificate()`)\n\n    try {\n      await uploadSvgWithRetries({\n        svgString,\n        expiryRetries: 2,\n        fetchUploadUrl: () => this._fetchUploadUrl(),\n      })\n\n      const result = await this.certificate.saveCertificate({\n        pendingCertificateId: this.pendingCertificateId,\n        width,\n        height,\n      })\n\n      const savedCertificateUrl = result?.certificateSave.certificate.url ?? ''\n\n      prefetch(savedCertificateUrl)\n\n      this.savedCertificateUrl = savedCertificateUrl // Update this tracked property for debug mode\n\n      return { savedCertificateUrl }\n    } catch (error) {\n      if (isErrorRepresentingNetworkError(error))\n        throw contentError('NetworkError', error)\n      throw contentError('SaveFailed', error)\n    }\n  }\n\n  @debugAction()\n  @action\n  goHome() {\n    debug(`[CertificateController] goHome()`)\n    void this.router.transitionTo('/')\n  }\n\n  @debugAction()\n  @action\n  goNext() {\n    debug(`[CertificateController] goNext()`)\n    if (this.isLastLessonsMap) {\n      void this.router.transitionTo('lessons.finished-re-lessons')\n      return\n    }\n    void this.router.transitionTo('lessons.map.next')\n  }\n\n  @debugAction({\n    certificateUrl: {\n      type: 'text',\n      value:\n        'https://certificates.blake-staging.com/re/legacy/WzEsImdvbGQiLDEwMCwiU2FtcGxlIEMuIiwxNjc5NDYyNzc0NTQ1XQ.svg', // TODO: this value is temporary to assist with native app testing\n    },\n  })\n  @action\n  async print({ certificateUrl }: PrintMessage): Promise<void> {\n    debug(`[CertificateController] print()`)\n\n    await printCertificate(certificateUrl, {\n      isNativeMobile: this.deviceDetection.isNativeMobile,\n    })\n  }\n\n  /**\n   * Runs a query for a specific pending certificate's uploadUrl. The result is not cached since the url will expire shortly after we receive it.\n   * If we do not get back a pending certificate, it means the student must have already sucessfully uploaded a certificate and our state is out of sync.\n   * In this case we trigger a refetch of the GetStudent query to clear our bad state and redirect the student to the index route.\n   * @returns upload url\n   */\n  async _fetchUploadUrl() {\n    const {\n      data: { getPendingCertificate: pendingCertificate },\n    } = await this.certificate.getPendingCertificateUploadUrl(\n      this.pendingCertificateId,\n    )\n\n    if (pendingCertificate?.__typename !== 'PendingCertificate') {\n      await this.user.fetch()\n      void this.router.transitionTo('/')\n      throw new Error(\n        `No PendingCertificate with id: ${this.pendingCertificateId}`,\n      )\n    }\n\n    return pendingCertificate.uploadUrl\n  }\n\n  /**\n   * ###########################################\n   * Everything below here is debug mode related\n   * ###########################################\n   */\n\n  /**\n   *  ### For debug mode\n   *  Crafts a URL which will return a default certificate in its 'original' (pre-hydrated) format\n   */\n  get defaultCertificateUrl() {\n    const {\n      variables: {\n        mapResult: { colour, percentage, date },\n        studentName,\n      },\n    } = this.model\n    const certData = [\n      this.map,\n      colour,\n      percentage,\n      studentName,\n      parseInt(date, 10),\n    ]\n    const base64Url = base64url.stringify(\n      new TextEncoder().encode(JSON.stringify(certData)),\n      { pad: false },\n    )\n    const url = new URL(\n      `re/legacy/${base64Url}.svg`,\n      `https://certificates.blake-staging.com`,\n    )\n    url.searchParams.set('original', 'true')\n    return url.href\n  }\n\n  /**\n   *  ### For debug mode\n   *  This will fetch a default certificate, extract it's text (an svg string) and stores it in the tracked `defaultCertificateSvg`\n   */\n  @debugAction()\n  @action\n  async fetchDefaultCertificateSvg() {\n    const res = await fetch(this.defaultCertificateUrl)\n    const svgString = await res.text()\n    this.defaultCertificateSvg = svgString\n  }\n\n  /**\n   *  ### For debug mode\n   *  This will stores and display the result of fetching a default certificate so that it can be copy and pasted into the saveCertificate() action\n   */\n  @debugValue()\n  @tracked\n  defaultCertificateSvg?: string\n\n  /**\n   *  ### For debug mode\n   *  This will display the URL we get as a result of saving the certificate so that it can be copy and pasted into the print() action\n   */\n  @debugValue()\n  @tracked\n  savedCertificateUrl?: string\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'lessons/certificate': LessonsCertificateController\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport config from 're-client/config/environment'\nimport { correctSpellingMap } from 're-client/utils/progress-tools'\nimport { action } from '@ember/object'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport type OfflineScreenService from 're-client/services/offline-screen'\nimport type DeviceNetwork from '@blakeelearning/device/device/network/service'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class LessonsFinishedReLessonsController extends Controller {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare offlineScreen: OfflineScreenService\n\n  @service('device/network')\n  declare network: DeviceNetwork\n\n  @service\n  declare router: RouterService\n\n  @action\n  goToSkillsBank() {\n    this.router.transitionTo(\n      'spelling.map',\n      correctSpellingMap(this.studentProgress.spellingCurrentMap),\n    )\n  }\n\n  @action\n  goToStorylands() {\n    this.router.transitionTo(\n      'storylands.map',\n      this.studentProgress.storylandsCurrentMap,\n    )\n  }\n\n  @action\n  goToIndex() {\n    this.router.transitionTo('index')\n  }\n\n  @action\n  goToReadingEggspress() {\n    this.redirectToReadingEggspress()\n  }\n\n  @action\n  redirectToReadingEggspress(location = window.location) {\n    if (this.network.status.isOffline) {\n      this.offlineScreen.display()\n      return\n    }\n\n    const base = config.APP.apiEndpoint ?? location.origin\n    const rexLoginUrl = new URL('rex', base)\n    location.assign(rexLoginUrl)\n  }\n\n  @action\n  goToPrevMap() {\n    this.router.transitionTo('lessons.map', this.studentProgress.lessonsLastMap)\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport { contentError } from 're-client/utils/errors'\nimport type { ErrorLike } from 're-client/utils/errors'\nimport { debugAction, debugValue } from 're-client/utils/debug'\nimport { calculateMap } from 're-client/utils/progress-tools'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type ActivityService from 're-client/services/activity'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport { assert } from '@ember/debug'\nimport { v4 as uuidV4 } from 'uuid'\nimport type LessonsLessonActivityRoute from 're-client/routes/lessons/lesson/activity'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type ActivitySidebarService from 're-client/services/activity-sidebar'\nimport type LessonActivityMutationsService from 're-client/services/lesson-activity-mutations'\nimport type QuestService from 're-client/services/quest'\nimport type { RouteModel } from '@ember/routing/router-service'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type LessonsService from 're-client/services/lessons'\nimport type SessionService from 're-client/services/session'\nimport type AskReggieService from 're-client/services/ask-reggie'\nimport type PosthogService from 're-client/services/posthog'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport type { Attempt, Interaction } from 're-client/services/student-metrics'\n\nconst {\n  APP: { product },\n  studentProgress: {\n    progress: {\n      lessons: { lessonsPerMap },\n    },\n  },\n} = config\n\nconst answerValues = {\n  correct_10: [\n    {\n      correctAnswer: '18',\n      isCorrect: true,\n      studentAnswer: '18',\n      number: 1,\n    },\n    {\n      correctAnswer: '1',\n      isCorrect: true,\n      studentAnswer: '1',\n      number: 2,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 3,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 4,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 5,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 6,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 7,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 8,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 9,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 10,\n    },\n  ],\n  correct_9: [\n    {\n      correctAnswer: '18',\n      isCorrect: false,\n      studentAnswer: '17',\n      number: 1,\n    },\n    {\n      correctAnswer: '1',\n      isCorrect: true,\n      studentAnswer: '1',\n      number: 2,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 3,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 4,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 5,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 6,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 7,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 8,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 9,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 10,\n    },\n  ],\n  correct_8: [\n    {\n      correctAnswer: '18',\n      isCorrect: false,\n      studentAnswer: '17',\n      number: 1,\n    },\n    {\n      correctAnswer: '1',\n      isCorrect: false,\n      studentAnswer: '2',\n      number: 2,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 3,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 4,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 5,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 6,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 7,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 8,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 9,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 10,\n    },\n  ],\n  correct_0: [\n    {\n      correctAnswer: '18',\n      isCorrect: false,\n      studentAnswer: '17',\n      number: 1,\n    },\n    {\n      correctAnswer: '2',\n      isCorrect: false,\n      studentAnswer: '1',\n      number: 2,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 3,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 4,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 5,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 6,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 7,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 8,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 9,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 10,\n    },\n  ],\n}\n\ninterface SkillsQuizStudentAnswer {\n  correctAnswer: string\n  isCorrect: boolean\n  number: number\n  studentAnswer: string\n}\n\ninterface SkillsQuizResult {\n  answers: SkillsQuizStudentAnswer[]\n  uuid: string\n}\n\ntype AskReggieInteractionEvent =\n  | 'student_ask_reggie_opened'\n  | 'student_ask_reggie_closed'\n\n/**\n * The lesson activity controller\n */\nexport default class LessonsLessonActivityController extends Controller {\n  declare model: ModelFor<LessonsLessonActivityRoute>\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare assignments: AssignmentsService\n\n  @service declare activity: ActivityService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare router: RouterService\n\n  @service declare user: UserService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare activitySidebar: ActivitySidebarService\n\n  @service declare quest: QuestService\n\n  @service declare features: FeatureService\n\n  @service declare lessons: LessonsService\n\n  @service declare session: SessionService\n\n  @service declare askReggie: AskReggieService\n\n  @service declare posthog: PosthogService\n\n  @service declare studentMetrics: StudentMetricsService\n\n  @service declare lessonActivityMutations: LessonActivityMutationsService\n\n  get isAssignmentMode() {\n    return this.model.isAssignmentMode\n  }\n\n  get askReggieLessonSkipAttempt() {\n    return (\n      this.model.askReggieLessonSkipAttempt &&\n      this.askReggie.data?.__typename === 'AskReggieSkipLesson'\n    )\n  }\n\n  get lessonId() {\n    return this.model.lessonId\n  }\n\n  get activityId() {\n    return this.model.activityId\n  }\n\n  get activityIndex() {\n    return this.activityId - 1\n  }\n\n  get nextActivity() {\n    return this.activity.nextReadingActivityForLesson(\n      this.lessonId,\n      this.activityId,\n    )\n  }\n\n  get lessonInPrecinct() {\n    const { lessonInPrecinct } = this.model\n    assert('model has lessonInPrecinct', lessonInPrecinct)\n    return lessonInPrecinct\n  }\n\n  get contentSpec() {\n    return {\n      goNext: {\n        type: 'message',\n      },\n      goToMap: {\n        type: 'message',\n      },\n      incrementScore: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      saveSkillsQuizResult: {\n        type: 'message',\n        recoverableErrors: ['SaveFailed'],\n      },\n      unhandledError: {\n        type: 'message',\n      },\n      saveProgress: {\n        type: 'message',\n      },\n      saveLearningState: {\n        type: 'message',\n      },\n      goToCurrentLesson: {\n        type: 'message',\n      },\n      skipLesson: {\n        type: 'message',\n      },\n      abortSkipLessonAttempt: {\n        type: 'message',\n      },\n      captureAskReggieInteraction: {\n        type: 'message',\n      },\n    }\n  }\n\n  get currentPositionTitle() {\n    if (this.isAssignmentMode) return this.lessonId\n\n    const currentLesson = this.studentProgress.lessonsCurrentLesson\n    if (currentLesson === 'quiz') {\n      return 'Quiz'\n    }\n    return currentLesson\n  }\n\n  get student() {\n    return this.user.student\n  }\n\n  get remoteId() {\n    return this.student.remoteId\n  }\n\n  get studentContext() {\n    let taskId\n    let assignmentUuid\n\n    if (\n      this.assignments.currentTask?.__typename === 'AssignmentTaskLesson' &&\n      this.assignments.canCompleteLessonAssignmentTask(\n        this.lessonId,\n        this.activityId,\n      )\n    ) {\n      taskId = this.assignments.currentTask.id\n      assignmentUuid = this.assignments.currentTask.assignmentUuid\n    }\n\n    return {\n      product,\n      precinct: 'lessons',\n      remoteId: this.remoteId,\n      taskId,\n      assignmentUuid,\n    }\n  }\n\n  get mapId() {\n    return calculateMap(parseInt(this.lessonId, 10), lessonsPerMap)\n  }\n\n  /**\n   * Whether the lesson the student is currently working through has already\n   * been completed, i.e. their furthest progress is past this lesson.\n   *\n   * Returns false when this is the lesson the student is up to, even if they\n   * are redoing an activity within that partially completed lesson.\n   */\n  get lessonPreviouslyCompleted() {\n    return (\n      this.studentProgress.lessonsCurrentLessonNumber >\n      parseInt(this.lessonId, 10)\n    )\n  }\n\n  get renderQuestAlert() {\n    return this.quest.showQuestAlert\n  }\n\n  get shouldLogout() {\n    return (\n      this.user.student.rosterEnabled &&\n      this.isAssignmentMode &&\n      !this.assignments.currentTask\n    )\n  }\n\n  @action\n  @debugAction()\n  async completeActivity() {\n    await this.saveProgress()\n    this.next()\n  }\n\n  /**\n   * Transition to the next activity in the lesson if there is one.\n   * On the last activity, when not in an assignment, transition to the map for activity.\n   * On the last activity, when in an assignment, transition to the students\n   * current map based on progress\n   */\n  @action\n  next() {\n    if (this.shouldLogout) {\n      this.session.signOut()\n      return\n    }\n    let nextRoute: [string, RouteModel] = [\n      'lessons.map',\n      this.lessons.currentMap,\n    ]\n\n    if (this.nextActivity) {\n      nextRoute = [\n        'lessons.lesson.activity',\n        this.nextActivity.activityInLesson,\n      ]\n    }\n\n    this.quest.displayQuestAlertIfRequired(nextRoute)\n  }\n\n  /**\n   * Both Caper and Jester activities share this action\n   * Jester action is a message action which receives a single JSON-serializable object argument\n   */\n  @action\n  incrementScore(\n    args: number | { eggsToIncrement: number; flyingEggs?: boolean },\n  ) {\n    if (typeof args === 'number') {\n      // CAPER\n      this.user.incrementEggs(args)\n    } else {\n      // JESTER\n      if (args.eggsToIncrement < 1) return\n      if (args.flyingEggs === false) {\n        this.activitySidebar.flyingEggs = false\n      } else {\n        // playing flying eggs animation if flyingEggs option is true or omitted\n        this.activitySidebar.flyingEggs = true\n      }\n      this.activitySidebar.open(args.eggsToIncrement)\n    }\n  }\n\n  /**\n   * Completes activities and assignment tasks for Caper activities\n   */\n  @action\n  async saveProgress(args?: { uuid: string }) {\n    let assignment = null\n\n    if (\n      this.assignments.currentTask?.__typename === 'AssignmentTaskLesson' &&\n      this.assignments.canCompleteLessonAssignmentTask(\n        this.lessonId,\n        this.activityId,\n      )\n    ) {\n      assignment = {\n        assignmentTaskId: parseInt(this.assignments.currentTask.id, 10),\n        assignmentUuid: this.assignments.currentTask.assignmentUuid,\n      }\n    }\n\n    const progressSnapshot = this.snapshotProgress()\n\n    let result\n\n    try {\n      result =\n        await this.lessonActivityMutations.saveReadingLessonActivityResult({\n          lessonInPrecinct: parseInt(this.lessonId, 10),\n          activityInLesson: this.activityId,\n          attemptUuid: args?.uuid ?? uuidV4(),\n          assignment,\n          askReggie: this.askReggieLessonSkipAttempt,\n        })\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveReadingLessonActivityResult] mutation failed',\n        error,\n      )\n    }\n\n    if (result) {\n      this.captureCompleteActivity(progressSnapshot)\n    }\n\n    return result?.readingLessonActivityResultCreate.readingLessonActivityResult\n  }\n\n  /**\n   * Records learning state for a Caper/Jester activity session, including\n   * abandoned activities. Fired when the activity canvas is destroyed,\n   * regardless of whether the activity was completed.\n   *\n   * `learningStateContextUuid` is echoed back by the game from the content\n   * variables passed at load time, because the canvas can be destroyed after\n   * the route has transitioned to the next activity — reading the route\n   * context from the live model at send time would report the wrong\n   * activity. Older game bundles that don't echo it yet fall back to the\n   * most recently tracked context (see `StudentMetricsService`).\n   */\n  @action\n  saveLearningState({\n    learningState: { content, activityName, ...learningState },\n    attempts,\n    interactions,\n    learningStateContextUuid,\n  }: {\n    learningState: { content: Record<string, unknown>; activityName: string }\n    completed: boolean\n    attempts?: Attempt[]\n    interactions?: Interaction[]\n    learningStateContextUuid?: string\n  }) {\n    this.studentMetrics.captureLearningState({\n      learningStateContextUuid,\n      activityName: activityName,\n      activityContent: content,\n      activityLearningState: learningState,\n      attempts: attempts ?? [],\n      interactions: interactions ?? [],\n    })\n  }\n\n  /**\n   * Transition to a specific activity\n   */\n  @action\n  changeActivity(newActivityID: number) {\n    void this.router.transitionTo('lessons.lesson.activity', newActivityID)\n  }\n\n  /**\n   * Transition to the map for this lesson\n   * If user is on an assignment, transition to their current lesson instead\n   */\n  @action\n  goToMap() {\n    void this.router.transitionTo('lessons.map', this.lessons.currentMap)\n  }\n\n  /**\n   * Transition to next activity.\n   * This is a Jester content action\n   */\n  @action\n  goNext() {\n    this.next()\n  }\n\n  /**\n   * Hide the full page loader when the content is loaded.\n   * This is a Jester content action\n   */\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  /**\n   * If the student passed and the quiz was an assignment then complete the task.\n   * This is a Jester content action\n   */\n  @debugAction({\n    answers: {\n      type: 'select',\n      options: [\n        { label: '10/10 Correct', value: 'correct_10' },\n        { label: '9/10 Correct', value: 'correct_9' },\n        { label: '8/10 Correct', value: 'correct_8' },\n        { label: '0/10 Correct', value: 'correct_0' },\n      ],\n      values: answerValues,\n    },\n  })\n  @action\n  async completeQuiz({ answers }: { answers: SkillsQuizStudentAnswer[] }) {\n    await this.saveSkillsQuizResult({ answers, uuid: uuidV4() })\n    this.goNext()\n  }\n  @action\n  async saveSkillsQuizResult({ answers, uuid: attemptUuid }: SkillsQuizResult) {\n    const { lessonInPrecinct } = this\n    let assignment = null\n\n    if (\n      this.assignments.currentTask?.__typename === 'AssignmentTaskLesson' &&\n      this.assignments.canCompleteLessonAssignmentTask(\n        this.lessonId,\n        this.activityId,\n      )\n    ) {\n      assignment = {\n        assignmentTaskId: parseInt(this.assignments.currentTask.id, 10),\n        assignmentUuid: this.assignments.currentTask.assignmentUuid,\n      }\n    }\n\n    const progressSnapshot = this.snapshotProgress()\n\n    const sanitisedAnswers = answers.map(\n      ({ correctAnswer, isCorrect, number, studentAnswer }) => ({\n        correctAnswer,\n        isCorrect,\n        number,\n        studentAnswer,\n      }),\n    )\n\n    try {\n      const result = await this.lessonActivityMutations.saveSkillsQuizResult({\n        answers: sanitisedAnswers,\n        lessonInPrecinct,\n        attemptUuid,\n        assignment,\n        askReggie: this.askReggieLessonSkipAttempt,\n      })\n\n      if (result) {\n        const {\n          readingEndOfLessonQuizResultCreate: {\n            readingEndOfLessonQuizResult: {\n              attempt,\n              autoPassed,\n              passed,\n              eggsEarned,\n            },\n          },\n        } = result\n\n        this.captureCompleteActivity(progressSnapshot, {\n          passed,\n          auto_passed: autoPassed,\n        })\n        return { attempt, autoPassed, lessonInPrecinct, passed, eggsEarned }\n      }\n\n      return { passed: false, lessonInPrecinct }\n    } catch (error) {\n      throw contentError('SaveFailed', error)\n    }\n  }\n  /**\n   * error handler action\n   * This is a Jester content action\n   * @param UnhandledErrorMessage\n   */\n  @action\n  unhandledError({ error }: { error: Partial<ErrorLike> }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  // Ask Reggie related actions\n  @action\n  goToCurrentLesson() {\n    const currentLesson = this.studentProgress.lessonsCurrentLessonNumber\n\n    this.router.transitionTo('lessons.lesson', currentLesson)\n  }\n\n  @action\n  async skipLesson() {\n    await this.askReggie.skipLesson(Number(this.lessonId))\n    if (this.askReggie.data?.__typename === 'AskReggieSkipLesson') {\n      void this.router.transitionTo(\n        'lessons.lesson.activity',\n        this.askReggie.data.activity,\n      )\n      return\n    }\n    throw new Error('Skip lesson action did not result in lesson skip state.')\n  }\n\n  @action\n  async abortSkipLessonAttempt() {\n    await this.askReggie.abortSkipLessonAttempt()\n    void this.router.transitionTo(\n      'lessons.lesson.activity',\n      this.studentProgress.lessons.currentActivity,\n    )\n  }\n\n  @debugAction({\n    event: {\n      type: 'select',\n      options: [\n        { label: 'Opened', value: 'student_ask_reggie_opened' },\n        { label: 'Closed', value: 'student_ask_reggie_closed' },\n      ],\n    },\n  })\n  @action\n  captureAskReggieInteraction({ event }: { event: AskReggieInteractionEvent }) {\n    const { student, ...askReggieContentVariables } =\n      this.model.askReggieContentVariables\n\n    const properties = {\n      lesson: Number(this.lessonId),\n      activity: this.activityId,\n      ...askReggieContentVariables,\n    }\n\n    this.posthog.capture(event, properties)\n  }\n\n  private snapshotProgress() {\n    return {\n      lesson: this.studentProgress.lessonsCurrentLesson,\n      activity: this.studentProgress.lessonsCurrentActivity,\n      map: this.studentProgress.lessonsCurrentMap,\n    }\n  }\n\n  private captureCompleteActivity(\n    progress: { lesson: string; activity: number; map: number },\n    extra?: { passed: boolean; auto_passed: boolean },\n  ) {\n    if (!this.features.isEnabled('re_posthog-capture-activity-visits')) return\n\n    const lessonMatchesProgress = this.lessonId === progress.lesson\n\n    this.posthog.capture('student_complete_activity', {\n      precinct: 'lessons',\n      lesson: Number(this.lessonId),\n      activity: this.activityId,\n      activity_type: this.model.activityType,\n      map: this.mapId,\n      progress_lesson:\n        progress.lesson === 'quiz' ? 'quiz' : Number(progress.lesson),\n      progress_activity: progress.activity,\n      progress_map: progress.map,\n      lesson_matches_progress: lessonMatchesProgress,\n      activity_matches_progress:\n        lessonMatchesProgress && this.activityId === progress.activity,\n      map_matches_progress: this.mapId === progress.map,\n      assignment_mode: this.isAssignmentMode ?? false,\n      max_lives: this.model.maxLives,\n      '$feature/re_lessons-activities-max-lives': this.features\n        .getClient()\n        .getObjectDetails('re_lessons-activities-max-lives', { payload: 3 })\n        .variant,\n      ...extra,\n    })\n  }\n\n  @debugValue()\n  get askReggieQuery() {\n    return this.askReggie.data\n  }\n\n  @debugValue()\n  get askReggieVariables() {\n    return this.model.askReggieContentVariables\n  }\n\n  @debugAction()\n  @action\n  async askReggieAction() {\n    const typename = this.askReggie.data?.__typename\n\n    if (typename === 'AskReggieSkipLesson') {\n      await this.abortSkipLessonAttempt()\n    } else if (typename === 'AskReggieAvailable') {\n      await this.skipLesson()\n    } else {\n      console.warn('No ask reggie action to perform')\n    }\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'lessons/lesson/activity': LessonsLessonActivityController\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type LessonsService from 're-client/services/lessons'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ErrorLike } from 're-client/utils/errors'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type UserService from 're-client/services/user'\n\nexport default class LessonsMapIndexController extends Controller {\n  @service\n  declare router: RouterService\n\n  @service\n  declare lessons: LessonsService\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  @service\n  declare learningWorlds: LearningWorldsService\n\n  @service\n  declare user: UserService\n\n  @action\n  playLesson(args: number | Record<'lesson', number>) {\n    let lessonId\n    if (typeof args === 'number') {\n      lessonId = args // CAPER\n    } else {\n      lessonId = args.lesson // JESTER\n    }\n    void this.router.transitionTo('lessons.lesson', lessonId)\n  }\n\n  @action\n  playQuiz() {\n    void this.router.transitionTo('lessons.map.quiz', this.lessons.currentMap)\n  }\n\n  @action\n  prevMap() {\n    const finalWorld = this.learningWorlds.finalWorld\n    if (\n      this.lessons.previousMapId === finalWorld &&\n      this.user.student.learningWorldsEnabled\n    ) {\n      void this.router.transitionTo('worlds.world', finalWorld)\n    } else {\n      void this.router.transitionTo(\n        'lessons.map.index',\n        this.lessons.previousMapId,\n      )\n    }\n  }\n\n  @action\n  nextMap() {\n    void this.router.transitionTo('lessons.map.next')\n  }\n\n  @action\n  goHome() {\n    void this.router.transitionTo('/')\n  }\n\n  /**\n   * Hide the full page loader when the content is loaded.\n   * This is a Jester content action\n   */\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  /**\n   * error handler action\n   * This is a Jester content action\n   * @param UnhandledErrorMessage\n   */\n  @action\n  unhandledError({ error }: { error: Partial<ErrorLike> }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  get contentSpec() {\n    return {\n      goHome: {\n        type: 'message',\n      },\n      playLesson: {\n        type: 'message',\n      },\n      playQuiz: {\n        type: 'message',\n      },\n      prevMap: {\n        type: 'message',\n      },\n      nextMap: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'lessons/map/index': LessonsMapIndexController\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type LessonsMapQuizRoute from 're-client/routes/lessons/map/quiz'\nimport type CertificateService from 're-client/services/certificate'\nimport { debugAction } from 're-client/utils/debug'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type JesterLoaderService from 're-client/services/jester-loader'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type QuestService from 're-client/services/quest'\nimport { graphql } from 're-client/graphql'\nimport { useMutation } from 're-client/resources/mutation'\nimport { v4 as uuidV4 } from 'uuid'\n\ntype CategoryAreaKey = string\ntype CategoryAreaResults = Record<'correct' | 'incorrect', string[]>\ninterface MapQuizResults {\n  correctCount: number\n  totalCount: number\n  correctAnswers: string[]\n  incorrectAnswers: Record<string, string>\n  categoryResults: Record<CategoryAreaKey, CategoryAreaResults>\n}\n\nconst {\n  APP: { lastMap },\n} = config\n\nfunction generateResult(correctCount: number) {\n  const result = {\n    correctCount,\n    totalCount: 15,\n    correctAnswers: [] as string[],\n    incorrectAnswers: {} as Record<string, string>,\n    categoryResults: {\n      'Comprehension Skills; Read text with accuracy and understanding.': {\n        correct: [\n          'Tuesday was a cloudy day.',\n          'Lions pounce on their food.',\n          'Flowers need water to grow.',\n        ],\n        incorrect: [],\n      },\n      'High-Frequency Sight Words; Read common high-frequency words.': {\n        correct: ['was day Tuesday', 'their food'],\n        incorrect: [],\n      },\n      'Phonics and Word Recognition; Associate long vowel sounds with their common spellings.':\n        {\n          correct: ['ay', 'ight', 'ore', 'ay', 'oat'],\n          incorrect: [],\n        },\n      'Text Features; Identify and understand grammar terms.': {\n        correct: ['nouns', 'verbs', 'compound words'],\n        incorrect: [],\n      },\n      'Comprehension Skills; Answer questions about key details.': {\n        incorrect: ['literal'],\n        correct: ['inferential'],\n      },\n      'Phonics and Word Recognition; Understand and use letter-sound correspondence.':\n        {\n          correct: ['soft c pounce'],\n          incorrect: [],\n        },\n      'Phonics and Word Recognition; Read and produce words with inflectional endings/suffixes.':\n        {\n          correct: ['add ed, chew chewed'],\n          incorrect: [],\n        },\n      'Phonemic and Phonological Awareness; Identify or produce rhyming words.':\n        {\n          correct: [\n            'light night bright sight',\n            'score wore store shore',\n            'okay day stay',\n            'boat coat float goat',\n          ],\n          incorrect: [],\n        },\n      'Phonics and Word Recognition; Decode and read three-syllable words.': {\n        correct: ['flowerpot'],\n        incorrect: [],\n      },\n      'Comprehension Skills; Answer questions about the meaning of words in a text.':\n        {\n          correct: ['opposites cool warm'],\n          incorrect: [],\n        },\n    } satisfies Record<CategoryAreaKey, CategoryAreaResults>,\n  }\n\n  for (let i = 1; i <= result.totalCount; i++) {\n    if (i <= correctCount) {\n      result.correctAnswers.push(`debug_map_quiz_${i}`)\n    } else {\n      result.incorrectAnswers[`debug_map_quiz_${i}`] = `wrong_${i}`\n    }\n  }\n\n  return result\n}\n\nexport const saveReadingMapQuizResultMutationDocument = graphql(/* GraphQL */ `\n  mutation SaveReadingMapQuizResult($input: ReadingMapQuizResultCreateInput!) {\n    readingMapQuizResultCreate(input: $input) {\n      student {\n        id\n        ...StudentProgressFragment\n        ...AssignmentTask\n        ...StudentQuestDataFragment\n        pendingCertificate {\n          ...PendingCertificateFragment\n        }\n      }\n    }\n  }\n`)\n\n/**\n * End-of-map quiz activity, not to be confused with the end-of-lesson\n * quiz activity\n *\n * @class lessonsMapQuizActivity\n */\nexport default class LessonsMapQuizController extends Controller {\n  @service declare certificate: CertificateService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare features: FeatureService\n\n  @service declare caperLoader: CaperLoaderService\n\n  @service declare jesterLoader: JesterLoaderService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare quest: QuestService\n\n  declare interactive: {\n    callInteractionMethod(method: string, ...args: unknown[]): void\n  }\n\n  declare model: ModelFor<LessonsMapQuizRoute>\n\n  saveReadingMapQuizResultMutation = useMutation(\n    this,\n    saveReadingMapQuizResultMutationDocument,\n  )\n\n  isProcessingQuizDebugAction = false\n\n  get currentMap() {\n    return this.model.mapId\n  }\n\n  get renderQuestAlert() {\n    return this.quest.showQuestAlert\n  }\n\n  @action\n  @debugAction({\n    results: {\n      type: 'select',\n      options: [\n        { label: '15/15 - Gold Certificate', value: '15' },\n        { label: '14/15 - Gold Certificate', value: '14' },\n        { label: '13/15 - Silver Certificate', value: '13' },\n        { label: '12/15 - Silver Certificate', value: '12' },\n        { label: '11/15 - Bronze Certificate', value: '11' },\n      ],\n      values: {\n        15: generateResult(15),\n        14: generateResult(14),\n        13: generateResult(13),\n        12: generateResult(12),\n        11: generateResult(11),\n      },\n    },\n  })\n  async passQuiz({ results }: { results: MapQuizResults }) {\n    if (this.isProcessingQuizDebugAction) return\n\n    this.isProcessingQuizDebugAction = true\n    try {\n      await this.saveReadingMapQuizResult(results)\n      await this.next()\n    } finally {\n      this.isProcessingQuizDebugAction = false\n    }\n  }\n\n  @action\n  @debugAction()\n  async failQuiz() {\n    if (this.isProcessingQuizDebugAction) return\n\n    this.isProcessingQuizDebugAction = true\n    try {\n      await this.saveReadingMapQuizResult(generateResult(0))\n      await this.next()\n    } finally {\n      this.isProcessingQuizDebugAction = false\n    }\n  }\n\n  @action\n  async saveReadingMapQuizResult(results: MapQuizResults, uuid?: string) {\n    try {\n      const data = await this.saveReadingMapQuizResultMutation.current.mutate({\n        variables: {\n          input: {\n            attemptUuid: uuid ?? uuidV4(),\n            categoryResults: results.categoryResults,\n            correctAnswers: results.correctAnswers,\n            incorrectAnswers: results.incorrectAnswers,\n            quiz: this.currentMap,\n          },\n        },\n      })\n\n      if (!data)\n        throw new Error(\n          '[SaveReadingMaoQuizResult] No data returned from mutation',\n        )\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveReadingMaoQuizResult] mutation failed',\n        error,\n      )\n    }\n  }\n\n  @action\n  async quizCompleted(results: MapQuizResults, uuid?: string) {\n    await this.saveReadingMapQuizResult(results, uuid)\n    this.interactive.callInteractionMethod('nextable')\n  }\n\n  /**\n   * Transitions to the next place. Which could be:\n   * - the certificate route - if they have earned a pending certificate\n   * - the finished-re-lessons route - if they have finished all lessons\n   * - the next map\n   */\n  @action\n  @debugAction()\n  async next() {\n    await this.studentProgress.fetchProgress()\n\n    let nextRoute: [string] = ['lessons.finished-re-lessons']\n\n    if (this.studentProgress.lessonsCurrentMap <= lastMap) {\n      nextRoute = ['lessons.map.next']\n    }\n\n    const hasPendingCertificate = await this.certificate.hasPendingCertificate()\n    if (hasPendingCertificate) {\n      nextRoute = ['lessons.certificate']\n    }\n\n    this.quest.displayQuestAlertIfRequired(nextRoute)\n  }\n\n  /**\n   * Adds one to the student's eggs count\n   */\n  @action\n  @debugAction({\n    amount: {\n      type: 'number',\n      value: '1',\n    },\n  })\n  incrementScore(args: { amount: number } | number = 1) {\n    let amount\n\n    if (typeof args === 'number') {\n      amount = args\n    } else {\n      amount = args.amount\n    }\n\n    this.user.incrementEggs(amount)\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'lessons/map/quiz': LessonsMapQuizController\n  }\n}\n","/* eslint-disable ember/no-test-import-export */\nimport Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type RouterService from '@ember/routing/router-service'\nimport { inject as service } from '@ember/service'\nimport { graphql } from 're-client/graphql'\nimport { useMutation } from 're-client/resources/mutation'\nimport type DebugModeService from 're-client/services/debug-mode'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport { debugAction } from 're-client/utils/debug'\nimport { v4 as uuidV4 } from 'uuid'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type PosthogService from 're-client/services/posthog'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport type { Attempt, Interaction } from 're-client/services/student-metrics'\n\nexport const saveReadingLessonPlacementTestResultMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation SaveReadingLessonPlacementTestResult(\n      $input: ReadingLessonPlacementTestResultCreateInput!\n    ) {\n      readingLessonPlacementTestResultCreate(input: $input) {\n        student {\n          id\n          ...StudentProgressFragment\n          ...AssignmentTask\n          ...StudentQuestDataFragment\n          worldsStartingLesson\n        }\n      }\n    }\n  `,\n)\nexport default class LessonsPlacementTestController extends Controller {\n  @service\n  declare debugMode: DebugModeService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  @service\n  declare learningWorlds: LearningWorldsService\n\n  @service\n  declare features: FeatureService\n\n  @service\n  declare posthog: PosthogService\n\n  @service declare studentMetrics: StudentMetricsService\n\n  declare interactive: {\n    callInteractionMethod(method: string, ...args: unknown[]): void\n  }\n\n  saveReadingLessonPlacementTestResultMutation = useMutation(\n    this,\n    saveReadingLessonPlacementTestResultMutationDocument,\n  )\n\n  @action\n  next() {\n    const currentMap = this.studentProgress.lessonsCurrentMap\n    if (currentMap === 1) {\n      this.router.transitionTo('lessons.map', currentMap)\n    } else {\n      this.router.transitionTo('my-program')\n    }\n  }\n\n  @action\n  async placementTestComplete(\n    lessonId: number,\n    skipped?: boolean,\n    uuid?: string,\n  ) {\n    try {\n      const data =\n        await this.saveReadingLessonPlacementTestResultMutation.current.mutate({\n          variables: {\n            input: {\n              attemptUuid: uuid ?? uuidV4(),\n              lesson: lessonId,\n              skippedTest: skipped ?? false,\n            },\n          },\n        })\n\n      if (!data)\n        throw new Error(\n          '[SaveReadingLessonPlacementTestResult] No data returned from mutation',\n        )\n\n      this.learningWorlds.clearWorldsFromApolloCache()\n\n      this.interactive.callInteractionMethod('nextable')\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveReadingLessonPlacementTestResult] mutation failed',\n        error,\n      )\n    }\n  }\n\n  @action\n  @debugAction({\n    lessonId: {\n      type: 'number',\n      value: '1',\n    },\n  })\n  async completePlacementTest({ lessonId }: { lessonId: number }) {\n    await this.placementTestComplete(lessonId)\n    this.next()\n  }\n\n  /**\n   * Records learning state for a Caper/Jester activity session, including\n   * abandoned activities. Fired when the activity canvas is destroyed,\n   * regardless of whether the activity was completed.\n   *\n   * `learningStateContextUuid` is echoed back by the game from the content\n   * variables passed at load time, because the canvas can be destroyed after\n   * the route has transitioned to the next activity — reading the route\n   * context from the live model at send time would report the wrong\n   * activity. Older game bundles that don't echo it yet fall back to the\n   * most recently tracked context (see `StudentMetricsService`).\n   */\n  @action\n  saveLearningState({\n    learningState: { content, activityName, ...learningState },\n    attempts,\n    interactions,\n    learningStateContextUuid,\n  }: {\n    learningState: { content: Record<string, unknown>; activityName: string }\n    completed: boolean\n    attempts?: Attempt[]\n    interactions?: Interaction[]\n    learningStateContextUuid?: string\n  }) {\n    this.studentMetrics.captureLearningState({\n      learningStateContextUuid,\n      activityName: activityName,\n      activityContent: content,\n      activityLearningState: learningState,\n      attempts: attempts ?? [],\n      interactions: interactions ?? [],\n    })\n  }\n\n  @action\n  @debugAction()\n  async skipPlacementTest() {\n    await this.placementTestComplete(1, true)\n    this.next()\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'lessons/placement-test': LessonsPlacementTestController\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { capitalize } from '@ember/string'\nimport { inject as service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport gsap from 'gsap'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type MyProgramRoute from 're-client/routes/my-program'\n\nconst {\n  APP: { lastSpellingLesson, lastStorylandsLesson },\n} = config\n\nexport default class MyProgramController extends Controller {\n  declare model: ModelFor<MyProgramRoute>\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare router: RouterService\n\n  get firstName() {\n    const name = this.user.student.firstName\n    return capitalize(name)\n  }\n\n  get studentAvatarUrl() {\n    return this.user.student.avatarUrl\n  }\n\n  get hasFinishedLessons() {\n    return this.studentProgress.hasFinishedLessons\n  }\n\n  get nextLesson() {\n    const currentLesson = this.studentProgress.lessonsCurrentLesson\n\n    if (this.studentProgress.showLessonsPlacementTest) {\n      return 'Placement Test'\n    }\n    if (currentLesson === 'quiz') {\n      return `Map ${this.studentProgress.lessonsCurrentMap} Quiz`\n    }\n    return `Lesson ${currentLesson}`\n  }\n\n  get isAuLocale() {\n    const studentLocale = String(this.user.accent).toLowerCase()\n    return studentLocale === 'au'\n  }\n\n  // spelling tile should be locked unless student has completed the minimum\n  // number of required lessons in the \"lessons\" precinct\n  get spellingLocked() {\n    return this.studentProgress.isAreaLocked('spelling')\n  }\n\n  // driving tests tile should be locked unless student has completed the minimum\n  // number of required lessons in the \"lessons\" precinct\n  get drivingTestsLocked() {\n    return this.studentProgress.isAreaLocked('drivingTests')\n  }\n\n  @action\n  spelling() {\n    if (this.spellingLocked) return\n    // spelling lesson is set after placement test hence it needs to be\n    // shown first, otherwise finished spelling screen shows up\n    // if lessons are finished\n    if (this.studentProgress.showSpellingPlacementTest) {\n      this.router.transitionTo('spelling.placement-test')\n      return\n    }\n    if (this.studentProgress.spellingCurrentLessonNumber > lastSpellingLesson) {\n      this.router.transitionTo('spelling.finished-re-spelling')\n    } else {\n      this.router.transitionTo(\n        'spelling.map',\n        this.studentProgress.spellingCurrentMap,\n      )\n    }\n  }\n\n  @action\n  lessons() {\n    const currentLesson = this.studentProgress.lessonsCurrentLesson\n    if (currentLesson === 'quiz') {\n      this.router.transitionTo(\n        'lessons.map.quiz',\n        this.studentProgress.lessonsCurrentMap,\n      )\n      return\n    }\n    this.router.transitionTo('lessons.lesson', currentLesson)\n  }\n\n  @action\n  storylands() {\n    const { storylandsCurrentLesson } = this.studentProgress\n    if (storylandsCurrentLesson > lastStorylandsLesson) {\n      this.router.transitionTo('storylands.finished-re-storylands')\n    } else {\n      this.router.transitionTo('storylands.lesson', storylandsCurrentLesson)\n    }\n  }\n\n  @action\n  drivingTests() {\n    if (this.drivingTestsLocked) return\n    this.router.transitionTo('driving-tests')\n  }\n\n  @action\n  goToBookReader(bookId: string) {\n    this.router.transitionTo('reader.book', bookId)\n  }\n\n  @action\n  scrollToBookReader() {\n    this._windowScrollTo(0, document.body.scrollHeight)\n  }\n\n  @action\n  scrollToTop() {\n    this._windowScrollTo(0, 0)\n  }\n\n  @action\n  handleMouseEnter(e: Event) {\n    const element = e.target\n    const scale = 1.05\n\n    // slight wiggle by running 2 tweens of different length\n    gsap.to(element, { duration: 1, scaleX: scale, ease: 'elastic.out' })\n    gsap.to(element, { duration: 1.5, scaleY: scale, ease: 'elastic.out' })\n  }\n\n  @action\n  handleMouseLeave(e: Event) {\n    const element = e.target\n    gsap.to(element, { duration: 2, scale: 1, ease: 'elastic.out' })\n  }\n\n  /**\n   * Calls window.scrollTo\n   *\n   * @param {number} x\n   * @param {number} y\n   *\n   * This function exists to allow easy test stubbing of window.scrollTo\n   */\n  _windowScrollTo(x: number, y: number) {\n    window.scrollTo(x, y)\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'my-program': MyProgramController\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ContentSpec } from '@blakeelearning/messenger'\n\ninterface GoToQuizMessage {\n  quizId?: string | undefined\n}\n\nexport default class MyReadingGoalsIndexController extends Controller {\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  @service\n  declare router: RouterService\n\n  get contentSpec(): ContentSpec {\n    return {\n      goHome: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n      goToQuiz: {\n        type: 'message',\n      },\n      goToMilestones: {\n        type: 'message',\n      },\n    }\n  }\n\n  @action\n  unhandledError({ error }: { error: { name?: string; message?: string } }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide()\n  }\n\n  @action\n  goHome() {\n    void this.router.transitionTo('/')\n  }\n\n  @action\n  goToQuiz({ quizId }: GoToQuizMessage) {\n    // fallback to default quiz for dev purpose\n    void this.router.transitionTo(\n      'my-reading-goals.quiz',\n      quizId ? quizId : 'mrg-quiz',\n    )\n  }\n\n  @action\n  goToMilestones() {\n    void this.router.transitionTo('my-reading-goals.milestones')\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ContentSpec } from '@blakeelearning/messenger'\n\nexport default class MyReadingGoalsMilestonesController extends Controller {\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  get contentSpec(): ContentSpec {\n    return {\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @action\n  unhandledError({ error }: { error: { name?: string; message?: string } }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide()\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ContentSpec } from '@blakeelearning/messenger'\nimport type ReadingGoalsService from 're-client/services/reading-goals'\nimport type { QuizAnswerInput } from 're-client/graphql/graphql'\nimport { v4 as uuidV4 } from 'uuid'\nimport {\n  contentError,\n  isErrorRepresentingNetworkError,\n} from 're-client/utils/errors'\nimport type RouterService from '@ember/routing/router-service'\n\ninterface CreateQuizResultInput {\n  quizId: string\n  answers: QuizAnswerInput[]\n}\n\ninterface CreateQuizResultOutput {\n  eggsReward: number\n  passed: boolean\n}\nexport default class MyReadingGoalsQuizController extends Controller {\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  @service\n  declare readingGoals: ReadingGoalsService\n\n  @service\n  declare router: RouterService\n\n  get contentSpec(): ContentSpec {\n    return {\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n      goHome: {\n        type: 'message',\n      },\n      goBack: {\n        type: 'message',\n      },\n      createQuizResult: {\n        type: 'message',\n      },\n    }\n  }\n\n  @action\n  async createQuizResult({\n    quizId,\n    answers,\n  }: CreateQuizResultInput): Promise<CreateQuizResultOutput> {\n    try {\n      const result = await this.readingGoals.createQuizResult({\n        quizId,\n        answers,\n        attemptUuid: uuidV4(),\n      })\n\n      if (result?.readingGoalsQuizResultCreate) {\n        const { passed, eggsReward } =\n          result.readingGoalsQuizResultCreate.readingGoalsQuizResult\n\n        return { passed, eggsReward: eggsReward ?? 0 }\n      }\n\n      return { passed: false, eggsReward: 0 }\n    } catch (error) {\n      if (isErrorRepresentingNetworkError(error))\n        throw contentError('NetworkError', error)\n      throw contentError('SaveFailed', error)\n    }\n  }\n\n  @action\n  goHome() {\n    void this.router.transitionTo('/')\n  }\n\n  @action\n  goBack() {\n    void this.router.transitionTo('my-reading-goals.index')\n  }\n\n  @action\n  unhandledError({ error }: { error: { name?: string; message?: string } }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide()\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class PlayActivityController extends Controller {\n  @service\n  declare router: RouterService\n\n  @action\n  next() {\n    this.router.transitionTo('play')\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class PlayIndexController extends Controller {\n  @service\n  declare router: RouterService\n\n  @action\n  showBook(book: string) {\n    this.router.transitionTo('reader.book', `reading_eggs_${book}`, {\n      queryParams: { disableQuiz: true },\n    })\n  }\n\n  @action\n  showGame(game: string, { letter }: { letter?: string } = {}) {\n    const gamePath = letter ? `${game}/${letter}` : game\n    this.router.transitionTo('play.activity', gamePath)\n  }\n\n  @action\n  showVideo(video: string) {\n    this.router.transitionTo('play.activity', `playroom_video/${video}`)\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport { underscore } from '@ember/string'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class PuzzlesIndexController extends Controller {\n  @service\n  declare router: RouterService\n\n  /**\n   * Load and show the specified puzzle\n   * @param {String} puzzleName The name of the puzzle to load\n   */\n  @action\n  showPuzzle(puzzleName: string) {\n    this.router.transitionTo('puzzles.puzzle', underscore(puzzleName))\n  }\n}\n","import { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type Store from '@ember-data/store'\nimport { startCase } from 'lodash'\nimport type UserService from 're-client/services/user'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type PuzzlesPuzzleRoute from 're-client/routes/puzzles/puzzle'\nimport type PuzzleScoreModel from 're-client/models/puzzle-score'\n\nexport default class PuzzlesPuzzleController extends Controller {\n  declare model: ModelFor<PuzzlesPuzzleRoute>\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare store: Store\n\n  @service\n  declare user: UserService\n\n  /**\n   * Save the current score to the backend and update the store\n   * @param {Number} score The score from the current attempt\n   */\n  @action\n  async saveScore(score: number): Promise<PuzzleScoreModel[]> {\n    const { puzzleId } = this.model\n\n    let puzzleScore = this.store.peekRecord('puzzle-score', puzzleId)\n\n    if (puzzleScore) {\n      puzzleScore.score = score\n    } else {\n      puzzleScore = this.store.createRecord('puzzle-score', {\n        id: puzzleId,\n        puzzleName: startCase(puzzleId),\n        score,\n      })\n    }\n\n    await puzzleScore.save()\n    this.user.incrementEggs(score)\n\n    const scores = await this.store.findAll('puzzle-score')\n    return scores.slice()\n  }\n\n  @action\n  goBackToLobby() {\n    void this.router.transitionTo('puzzles')\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'puzzles/puzzle': PuzzlesPuzzleController\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type Store from '@ember-data/store'\nimport type LocationTrackerService from 're-client/services/location-tracker'\nimport type RouterService from '@ember/routing/router-service'\nimport { graphql } from 're-client/graphql'\nimport { useMutation } from 're-client/resources/mutation'\nimport { v4 as uuidV4 } from 'uuid'\nimport type ErrorHandlerService from 're-client/services/error-handler'\n\nexport const saveBookQuizResultMutationDocument = graphql(/* GraphQL */ `\n  mutation SaveBookQuizResult($input: BookQuizResultCreateInput!) {\n    bookQuizResultCreate(input: $input) {\n      bookQuizResult {\n        reward {\n          eggs\n          milestone\n          passed\n        }\n      }\n      student {\n        id\n        eggs\n        ...StudentProgressFragment\n        ...AssignmentTask\n      }\n    }\n  }\n`)\nexport default class ReaderBookController extends Controller {\n  @service\n  declare locationTracker: LocationTrackerService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare store: Store\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  saveBookQuizResultMutation = useMutation(\n    this,\n    saveBookQuizResultMutationDocument,\n  )\n\n  @action\n  next() {\n    const { route, params } = this.locationTracker.getPreviousRoute()\n    this.router.transitionTo(\n      route,\n      // @ts-expect-error router params type no bueno\n      ...params,\n    )\n  }\n\n  @action\n  resultVideo(videoTitle: string) {\n    this.router.transitionTo('reader.result', videoTitle)\n  }\n\n  @action\n  async saveBookQuizScore(\n    code: string,\n    totalCount: number,\n    correctCount: number,\n    uuid?: string,\n  ) {\n    try {\n      const data = await this.saveBookQuizResultMutation.current.mutate({\n        variables: {\n          input: {\n            attemptUuid: uuid ?? uuidV4(),\n            bookCode: code,\n            correctCount,\n            totalCount,\n          },\n        },\n      })\n\n      if (!data)\n        throw new Error('[SaveBookQuizResult] No data returned from mutation')\n\n      const { reward } = data.bookQuizResultCreate.bookQuizResult\n\n      if (reward.passed) {\n        // NOTE: Once user has successfully read a book & passed the quiz we know\n        // this book should be shown on the bookshelf, hence instead of\n        // reloading the bookshelf route every time, it is better to do\n        // it here. reload() is more reliable than { reload: true }\n        // findRecord will fetch cached data & reload() will refetch the request\n        const bookshelf = await this.store.findRecord('bookshelf', 'bookshelf')\n        await bookshelf.reload()\n      }\n      return reward\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveBookQuizResult] mutation failed',\n        error,\n      )\n      return\n    }\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type LocationTrackerService from 're-client/services/location-tracker'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class ReaderBookPageController extends Controller {\n  @service\n  declare locationTracker: LocationTrackerService\n\n  @service\n  declare router: RouterService\n\n  @action\n  next() {\n    this.backToQuiz()\n  }\n\n  @action\n  backToQuiz() {\n    const { route, params } = this.locationTracker.getPreviousRoute()\n    this.router.transitionTo(\n      route,\n      // @ts-expect-error router params type no bueno\n      ...params,\n    )\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class ReaderResultController extends Controller {\n  @service\n  declare router: RouterService\n\n  @action\n  next() {\n    this.router.transitionTo('my-program')\n  }\n}\n","import { action, set } from '@ember/object'\nimport Controller from '@ember/controller'\n\nexport default class SampleLessonActivityController extends Controller {\n  // Set to true if window.history.back() has been called once already, to avoid repeated calls\n  isReturning = false\n\n  @action\n  next() {\n    if (!this.isReturning) {\n      set(this, 'isReturning', true)\n      window.history.back()\n    }\n  }\n\n  @action\n  incrementScore() {}\n\n  @action\n  saveProgress() {\n    /*\n     * Our sample lessons are designed to, once completed, return the user to\n     * the previous page in their browser history. Sample lessons are\n     * accessed via country-specific marketing sites like readingeggs.cn,\n     * readingeggs.com.au, etc, or the RE parent dashboard Sample Lessons\n     * page.\n     */\n    if (!this.isReturning) {\n      set(this, 'isReturning', true)\n      window.history.back()\n    }\n    return Promise.resolve()\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type ShopService from 're-client/services/shop'\n\nexport default class ShopController extends Controller {\n  @service\n  declare router: RouterService\n\n  @service\n  declare shop: ShopService\n\n  /**\n   * The template needs to render either the shop interactive or an outlet which\n   * renders a catalogue interactive. For obvious reasons we dont want to render the 2 at once\n   *\n   * @property {Boolean}\n   * @type {Boolean}\n   */\n  get isCatalogueRoute() {\n    return this.router.currentRouteName === 'shop.department.catalogue'\n  }\n\n  @action\n  async purchase(item: { id: string }) {\n    return this.shop.purchase(item)\n  }\n\n  /**\n   * Simply rewrite the url with the new department\n   * @param department\n   */\n  @action\n  changeDepartment(department: string) {\n    this.router.replaceWith('shop.department', department)\n  }\n\n  /**\n   * Transition to the department dependened catalogue.\n   */\n  @action\n  gotoCatalogue() {\n    this.router.transitionTo('shop.department.catalogue')\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type ThemeService from 're-client/services/theme'\nimport type ShopService from 're-client/services/shop'\n\nexport default class ShopDepartmentCatalogueController extends Controller {\n  @service\n  declare router: RouterService\n\n  @service\n  declare theme: ThemeService\n\n  @service\n  declare shop: ShopService\n\n  @action\n  async purchase(item: { id: string }) {\n    return this.shop.purchase(item)\n  }\n\n  @action\n  async purchaseBundle(items: string[]) {\n    return this.shop.purchaseBundle(items)\n  }\n\n  @action\n  async bundlePrice(items: string[]) {\n    return this.shop.bundlePrice(items)\n  }\n\n  @action\n  backToShop() {\n    window.history.back()\n  }\n\n  @action\n  timeToNextMonth() {\n    return this.theme.timeToNextTheme()\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class SongsIndexController extends Controller {\n  @service\n  declare router: RouterService\n\n  @action\n  playVideo(video: string) {\n    this.router.transitionTo('songs.video', video)\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class SongsVideoController extends Controller {\n  @service\n  declare router: RouterService\n\n  @action\n  next() {\n    this.router.transitionTo('songs')\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport config from 're-client/config/environment'\nimport type DeviceNetwork from '@blakeelearning/device/device/network/service'\nimport type OfflineScreenService from 're-client/services/offline-screen'\nimport type RouterService from '@ember/routing/router-service'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\n\nexport default class SpellingFinishedReSpellingController extends Controller {\n  @service('device/network')\n  declare network: DeviceNetwork\n\n  @service\n  declare offlineScreen: OfflineScreenService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare user: UserService\n\n  @action\n  goToReadingEggspress() {\n    this.redirectToReadingEggspress()\n  }\n\n  @action\n  redirectToReadingEggspress(location = window.location) {\n    if (this.network.status.isOffline) {\n      this.offlineScreen.display()\n      return\n    }\n\n    const base = config.APP.apiEndpoint ?? location.origin\n    const rexLoginUrl = new URL('rex', base)\n    location.assign(rexLoginUrl.toString())\n  }\n\n  @action\n  goToStorylands() {\n    this.router.transitionTo(\n      'storylands.map',\n      this.studentProgress.storylandsCurrentMap,\n    )\n  }\n\n  @action\n  goToIndex() {\n    this.router.transitionTo('index')\n  }\n\n  @action\n  goToPrevMap() {\n    this.router.transitionTo('spelling.map', config.APP.lastSpellingMap)\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type RouterService from '@ember/routing/router-service'\nimport { inject as service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport { graphql } from 're-client/graphql'\nimport { useMutation } from 're-client/resources/mutation'\nimport type SpellingLessonActivityRoute from 're-client/routes/spelling/lesson/activity'\nimport type ActivitySidebarService from 're-client/services/activity-sidebar'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type DebugModeService from 're-client/services/debug-mode'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type SessionService from 're-client/services/session'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport { debugAction } from 're-client/utils/debug'\nimport { calculateMap } from 're-client/utils/progress-tools'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport { v4 as uuidV4 } from 'uuid'\n\ninterface QuizResults {\n  correct: number\n  total: number\n  correctAnswers: string[]\n  incorrectAnswers: Record<string, string>\n}\n\nexport const saveSpellingLessonActivityResultMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation SaveSpellingLessonActivityResult(\n      $input: SpellingLessonActivityResultCreateInput!\n    ) {\n      spellingLessonActivityResultCreate(input: $input) {\n        spellingLessonActivityResult {\n          reward {\n            eggs\n          }\n        }\n        student {\n          id\n          ...StudentProgressFragment\n          ...AssignmentTask\n        }\n      }\n    }\n  `,\n)\n\nexport const saveSpellingLessonQuizResultMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation SaveSpellingLessonQuizResult(\n      $input: SpellingLessonQuizResultCreateInput!\n    ) {\n      spellingLessonQuizResultCreate(input: $input) {\n        spellingLessonQuizResult {\n          passed\n          reward {\n            eggs\n            shop\n          }\n        }\n        student {\n          id\n          ...StudentProgressFragment\n          ...AssignmentTask\n        }\n      }\n    }\n  `,\n)\n\nexport default class SpellingLessonActivityController extends Controller {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare assignments: AssignmentsService\n\n  @service\n  declare debugMode: DebugModeService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare activitySidebar: ActivitySidebarService\n\n  @service\n  declare session: SessionService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  declare interactive: {\n    callInteractionMethod(method: string, ...args: unknown[]): void\n  }\n\n  declare model: ModelFor<SpellingLessonActivityRoute>\n\n  saveSpellingLessonActivityResultMutation = useMutation(\n    this,\n    saveSpellingLessonActivityResultMutationDocument,\n  )\n\n  saveSpellingLessonQuizResultMutation = useMutation(\n    this,\n    saveSpellingLessonQuizResultMutationDocument,\n  )\n\n  get sideBarActivityData() {\n    return this.model.sideBarActivityData\n  }\n\n  get isAssignmentMode() {\n    return this.model.isAssignment\n  }\n\n  get currentPositionTitle() {\n    if (this.isAssignmentMode) return this.lessonId\n\n    const currentLesson = this.studentProgress.spellingCurrentLesson\n    if (currentLesson === 'quiz') {\n      return 'Quiz'\n    }\n    return currentLesson\n  }\n\n  get lessonId() {\n    return Number(this.model.lesson.id)\n  }\n\n  get activityId() {\n    return Number(this.model.activityId)\n  }\n\n  get nextActivity() {\n    const activityIndex = this.activityId - 1\n    return this.model.lesson.nextActivity(activityIndex)\n  }\n\n  get mapId() {\n    const { lessonsPerMap } = config.studentProgress.progress.spelling\n    return calculateMap(this.lessonId, lessonsPerMap)\n  }\n\n  get shouldLogout() {\n    return (\n      this.user.student.rosterEnabled &&\n      this.isAssignmentMode &&\n      !this.assignments.currentTask\n    )\n  }\n\n  @action\n  changeActivity(newActivityID: string | number) {\n    this.router.transitionTo('spelling.lesson.activity', newActivityID)\n  }\n\n  @action\n  @debugAction()\n  next() {\n    if (this.shouldLogout) {\n      this.session.signOut()\n      return\n    }\n    if (this.nextActivity) {\n      this.router.transitionTo('spelling.lesson.activity', this.nextActivity.id)\n    } else {\n      this.goToMap()\n    }\n  }\n\n  /**\n   * Increment score maps to a external controller function (of the game component) which adds a given amount of eggs\n   * to the student model. To make sure we match 100% with the backend reload the student aside from adding\n   * the eggs in a delayed fashion to not interfere with the egg animation.\n   * Incrementing the property manually feels more responsive in the UI which is\n   * the reason to keep it.\n   */\n  @action\n  @debugAction({\n    amount: {\n      type: 'number',\n      value: '1',\n    },\n  })\n  incrementScore(args: { amount: number } | number = 1) {\n    if (typeof args === 'number') {\n      this.user.incrementEggs(args)\n    } else {\n      if (args.amount < 1) return\n      this.activitySidebar.open(args.amount)\n    }\n  }\n\n  /**\n   * Save spelling lesson activity progress or assignment activity progress\n   */\n  @action\n  @debugAction()\n  async saveProgress(args?: { uuid: string }) {\n    let assignment = null\n    try {\n      if (\n        this.assignments.currentTask?.__typename === 'AssignmentTaskSpelling' &&\n        this.assignments.canCompleteSpellingAssignmentTask(\n          this.lessonId,\n          this.activityId,\n        )\n      ) {\n        assignment = {\n          assignmentTaskId: parseInt(this.assignments.currentTask.id, 10),\n          assignmentUuid: this.assignments.currentTask.assignmentUuid,\n        }\n      }\n\n      const data =\n        await this.saveSpellingLessonActivityResultMutation.current.mutate({\n          variables: {\n            input: {\n              lessonInPrecinct: this.lessonId,\n              activityInLesson: this.activityId,\n              attemptUuid: args?.uuid ?? uuidV4(),\n              assignment,\n            },\n          },\n        })\n\n      if (!data)\n        throw new Error(\n          '[SaveSpellingLessonActivityResult] No data returned from mutation',\n        )\n\n      this.interactive.callInteractionMethod(\n        'nextable',\n        data.spellingLessonActivityResultCreate.spellingLessonActivityResult,\n      )\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveSpellingLessonActivityResult] mutation failed',\n        error,\n      )\n    }\n  }\n\n  /**\n   * Based on the response we reward the student with a Mystery item from the shop\n   * when they have successfully finished a lesson quiz for the first time.\n   */\n  @action\n  @debugAction()\n  async saveQuizResult(\n    _correct: number,\n    _total: number,\n    incorrectAnswers: string[] | Record<string, string>,\n    correctAnswers: string[],\n    uuid?: string,\n  ) {\n    let assignment = null\n    try {\n      if (\n        this.assignments.currentTask?.__typename === 'AssignmentTaskSpelling' &&\n        this.assignments.canCompleteSpellingAssignmentTask(\n          this.lessonId,\n          this.activityId,\n        )\n      ) {\n        assignment = {\n          assignmentTaskId: parseInt(this.assignments.currentTask.id, 10),\n          assignmentUuid: this.assignments.currentTask.assignmentUuid,\n        }\n      }\n\n      const data =\n        await this.saveSpellingLessonQuizResultMutation.current.mutate({\n          variables: {\n            input: {\n              lesson: this.lessonId,\n              correctAnswers,\n              incorrectAnswers,\n              attemptUuid: uuid ?? uuidV4(),\n              assignment,\n            },\n          },\n        })\n\n      if (!data)\n        throw new Error(\n          '[SaveSpellingLessonActivityResult] No data returned from mutation',\n        )\n\n      const {\n        passed: passedQuiz,\n        reward: { shop: earnedMysteryGift },\n      } = data.spellingLessonQuizResultCreate.spellingLessonQuizResult\n\n      if (passedQuiz && earnedMysteryGift) {\n        this.user.setMysteryGiftAvailability(true)\n      }\n\n      this.interactive.callInteractionMethod(\n        'nextable',\n        data.spellingLessonQuizResultCreate.spellingLessonQuizResult,\n      )\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveSpellingLessonActivityResult] mutation failed',\n        error,\n      )\n    }\n  }\n\n  @action\n  @debugAction()\n  async completeActivity() {\n    await this.saveProgress()\n    this.next()\n  }\n\n  @action\n  @debugAction()\n  collectMysteryGift() {\n    this.router.transitionTo('spelling.mystery-gift')\n  }\n\n  @action\n  goToMap() {\n    this.router.transitionTo('spelling.map', this.mapId)\n  }\n\n  @action\n  @debugAction({\n    results: {\n      type: 'select',\n      options: [\n        { label: 'Pass Quiz', value: 'pass' },\n        { label: 'Fail Quiz', value: 'fail' },\n      ],\n      values: {\n        pass: {\n          correct: 12,\n          total: 12,\n          correctAnswers: [\n            'debug1',\n            'debug2',\n            'debug3',\n            'debug4',\n            'debug5',\n            'debug6',\n            'debug7',\n            'debug8',\n            'debug9',\n            'debug10',\n            'debug11',\n            'debug12',\n          ],\n          incorrectAnswers: {},\n        },\n        fail: {\n          correct: 0,\n          total: 12,\n          correctAnswers: [],\n          incorrectAnswers: {\n            debug1: 'wrong 1',\n            debug2: 'wrong 2',\n            debug3: 'wrong 3',\n            debug4: 'wrong 4',\n            debug5: 'wrong 5',\n            debug6: 'wrong 6',\n            debug7: 'wrong 7',\n            debug8: 'wrong 8',\n            debug9: 'wrong 9',\n            debug10: 'wrong 10',\n            debug11: 'wrong 11',\n            debug12: 'wrong 12',\n          },\n        },\n      },\n    },\n  })\n  async completeQuiz({ results }: { results: QuizResults }) {\n    await this.saveQuizResult(\n      results.correct,\n      results.total,\n      results.incorrectAnswers,\n      results.correctAnswers,\n    )\n\n    this.next()\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'spelling/lesson/activity': SpellingLessonActivityController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type SpellingMapIndexRoute from 're-client/routes/spelling/map/index'\n\n/**\n * Spelling Map Controller\n *\n * @class SpellingMapController\n */\nexport default class IndexController extends Controller {\n  declare model: ModelFor<SpellingMapIndexRoute>\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare router: RouterService\n\n  @action\n  playLesson(lessonId: string) {\n    return this.router.transitionTo('spelling.lesson', lessonId)\n  }\n\n  @action\n  playQuiz() {\n    this.router.transitionTo('spelling.map.quiz', this.model.mapId)\n  }\n\n  @action\n  prevMap() {\n    this.router.transitionTo('spelling.map.index', this.model.previousMapId)\n  }\n\n  @action\n  nextMap() {\n    if (this.model.isOnFinalMap) {\n      this.router.transitionTo('spelling.finished-re-spelling')\n    } else {\n      this.router.transitionTo('spelling.map.index', this.model.nextMapId)\n    }\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport config from 're-client/config/environment'\nimport type UserService from 're-client/services/user'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type SpellingMapQuizRoute from 're-client/routes/spelling/map/quiz'\nimport { debugAction } from 're-client/utils/debug'\nimport { graphql } from 're-client/graphql'\nimport { useMutation } from 're-client/resources/mutation'\nimport { v4 as uuidV4 } from 'uuid'\nimport type ErrorHandlerService from 're-client/services/error-handler'\n\ninterface MapQuizResults {\n  correctCount: number\n  totalCount: number\n  correctAnswers: string[]\n  incorrectAnswers: Record<string, string>\n}\n\nexport const saveSpellingMapQuizResultMutationDocument = graphql(/* GraphQL */ `\n  mutation SaveSpellingMapQuizResult(\n    $input: SpellingMapQuizResultCreateInput!\n  ) {\n    spellingMapQuizResultCreate(input: $input) {\n      student {\n        id\n        ...StudentProgressFragment\n        ...AssignmentTask\n      }\n    }\n  }\n`)\n\n/**\n * End-of-map quiz activity, not to be confused with the end-of-spelling-lesson\n * quiz activity\n */\nexport default class SpellingMapQuizController extends Controller {\n  @service declare studentProgress: StudentProgressService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  declare interactive: {\n    callInteractionMethod(method: string, ...args: unknown[]): void\n  }\n\n  declare model: ModelFor<SpellingMapQuizRoute>\n\n  saveSpellingMapQuizResultMutation = useMutation(\n    this,\n    saveSpellingMapQuizResultMutationDocument,\n  )\n\n  get currentMap() {\n    return this.model.mapId\n  }\n\n  // Saves the quiz results as a map quiz complete event\n  @action\n  async quizCompleted(results: MapQuizResults, uuid?: string) {\n    try {\n      const data = await this.saveSpellingMapQuizResultMutation.current.mutate({\n        variables: {\n          input: {\n            attemptUuid: uuid ?? uuidV4(),\n            correctAnswers: results.correctAnswers,\n            incorrectAnswers: results.incorrectAnswers,\n            quiz: this.currentMap,\n          },\n        },\n      })\n      if (!data) {\n        throw new Error(\n          '[SaveSpellingMapQuizResult] no data returned from mutation',\n        )\n      }\n      this.interactive.callInteractionMethod('nextable', {\n        reward: { eggs: 0 },\n      })\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveSpellingMapQuizResult] mutation failed',\n        error,\n      )\n    }\n  }\n\n  @action\n  @debugAction()\n  async next() {\n    await this.studentProgress.fetchProgress()\n\n    if (\n      this.studentProgress.spellingCurrentMap >\n      config.studentProgress.progress.spelling.lastMap\n    ) {\n      void this.router.transitionTo('spelling.finished-re-spelling')\n    } else {\n      void this.router.transitionTo('spelling.map', this.model.nextMapId)\n    }\n  }\n\n  /**\n   * Adds one to the student's eggs count\n   */\n  @action\n  @debugAction({\n    amount: {\n      type: 'number',\n      value: '1',\n    },\n  })\n  incrementScore(args: { amount: number } | number = 1) {\n    let amount\n\n    if (typeof args === 'number') {\n      amount = args\n    } else {\n      amount = args.amount\n    }\n\n    this.user.incrementEggs(amount)\n  }\n\n  @action\n  @debugAction({\n    results: {\n      type: 'select',\n      options: [\n        { label: 'Pass Quiz', value: 'pass' },\n        { label: 'Fail Quiz', value: 'fail' },\n      ],\n      values: {\n        pass: {\n          correctCount: 10,\n          totalCount: 10,\n          correctAnswers: [\n            'debug_spelling_map_quiz_1',\n            'debug_spelling_map_quiz_2',\n            'debug_spelling_map_quiz_3',\n            'debug_spelling_map_quiz_4',\n            'debug_spelling_map_quiz_5',\n            'debug_spelling_map_quiz_6',\n            'debug_spelling_map_quiz_7',\n            'debug_spelling_map_quiz_8',\n            'debug_spelling_map_quiz_9',\n            'debug_spelling_map_quiz_10',\n          ],\n          incorrectAnswers: {},\n        },\n        fail: {\n          correctCount: 0,\n          totalCount: 10,\n          correctAnswers: [],\n          incorrectAnswers: {\n            debug_spelling_map_quiz_1: 'wrong_1',\n            debug_spelling_map_quiz_2: 'wrong_2',\n            debug_spelling_map_quiz_3: 'wrong_3',\n            debug_spelling_map_quiz_4: 'wrong_4',\n            debug_spelling_map_quiz_5: 'wrong_5',\n            debug_spelling_map_quiz_6: 'wrong_6',\n            debug_spelling_map_quiz_7: 'wrong_7',\n            debug_spelling_map_quiz_8: 'wrong_8',\n            debug_spelling_map_quiz_9: 'wrong_9',\n            debug_spelling_map_quiz_10: 'wrong_10',\n          },\n        },\n      },\n    },\n  })\n  async completeQuiz({ results }: { results: MapQuizResults }) {\n    await this.quizCompleted(results)\n    await this.next()\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'spelling/map/quiz': SpellingMapQuizController\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type Store from '@ember-data/store'\nimport type RouterService from '@ember/routing/router-service'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\n\nexport default class MysteryGiftController extends Controller {\n  @service\n  declare store: Store\n\n  @service\n  declare user: UserService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare router: RouterService\n\n  @action\n  next() {\n    this.router.transitionTo(\n      'spelling.map.index',\n      this.studentProgress.spellingCurrentMap,\n    )\n  }\n\n  /**\n   * Method to call the re api to create a new free item for the current student\n   * The records needs to be removed from the ember store as it will be loaded via the changing room again\n   *\n   * @param itemId\n   * @returns {Promise<void>}\n   */\n  @action\n  async grantMysteryItem(itemId: string) {\n    const item = await this.store\n      .createRecord('item', { code: itemId, free: 'true' })\n      .save()\n    item.unloadRecord()\n    this.user.setMysteryGiftAvailability(false)\n  }\n}\n","/* eslint-disable ember/no-test-import-export */\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type DebugModeService from 're-client/services/debug-mode'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport type RouterService from '@ember/routing/router-service'\nimport { debugAction } from 're-client/utils/debug'\nimport { v4 as uuidV4 } from 'uuid'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport { useMutation } from 're-client/resources/mutation'\nimport { graphql } from 're-client/graphql'\n\nexport const saveSpellingLessonPlacementTestResultMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation SaveSpellingLessonPlacementTestResult(\n      $input: SpellingLessonPlacementTestResultCreateInput!\n    ) {\n      spellingLessonPlacementTestResultCreate(input: $input) {\n        student {\n          id\n          ...StudentProgressFragment\n          ...AssignmentTask\n        }\n      }\n    }\n  `,\n)\nexport default class PlacementTestController extends Controller {\n  @service\n  declare debugMode: DebugModeService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  declare interactive: {\n    callInteractionMethod(method: string, ...args: unknown[]): void\n  }\n\n  saveSpellingLessonPlacementTestResultMutation = useMutation(\n    this,\n    saveSpellingLessonPlacementTestResultMutationDocument,\n  )\n\n  @action\n  async placementTestComplete(lessonId: number, uuid?: string) {\n    try {\n      const data =\n        await this.saveSpellingLessonPlacementTestResultMutation.current.mutate(\n          {\n            variables: {\n              input: {\n                attemptUuid: uuid ?? uuidV4(),\n                lesson: lessonId,\n                skippedTest: false,\n              },\n            },\n          },\n        )\n\n      if (!data)\n        throw new Error(\n          '[SaveSpellingLessonPlacementTestResult] no data returned from mutation',\n        )\n\n      this.interactive.callInteractionMethod('nextable')\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveSpellingLessonPlacementTestResult] mutation failed',\n        error,\n      )\n    }\n  }\n\n  @action\n  next() {\n    this.router.transitionTo(\n      'spelling.map',\n      this.studentProgress.spellingCurrentMap,\n    )\n  }\n\n  @action\n  @debugAction({\n    lessonId: {\n      type: 'number',\n      value: '1',\n    },\n  })\n  async completePlacementTest({ lessonId }: { lessonId: number }) {\n    await this.placementTestComplete(lessonId)\n    this.next()\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'spelling/placement-test': PlacementTestController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type StoryFactoryService from 're-client/services/story-factory'\nimport type { Entry } from 're-client/services/story-factory'\n\nexport default class StoryFactoryFloorController extends Controller {\n  declare interactive: {\n    callInteractionMethod(method: string, ...args: unknown[]): void\n  }\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare storyFactory: StoryFactoryService\n\n  @action\n  saveStoryEntry(entry: Entry) {\n    void this.storyFactory.saveStoryEntry(entry)\n  }\n\n  @action\n  async loadEntry(id: string) {\n    const data = await this.storyFactory.loadEntry(id)\n    this.interactive.callInteractionMethod('nextable', data)\n  }\n\n  @action\n  async newEntry() {\n    const data = await this.storyFactory.newEntry()\n    this.interactive.callInteractionMethod('nextable', data)\n  }\n\n  @action\n  async loadContest(id: string) {\n    const data = await this.storyFactory.loadContest(id)\n    this.interactive.callInteractionMethod('nextable', data)\n  }\n\n  @action\n  returnToLobby() {\n    void this.router.transitionTo('story-factory')\n  }\n\n  @action\n  enterShowRoom() {\n    void this.router.transitionTo('story-factory.showroom')\n  }\n\n  @action\n  returnToHouse() {\n    void this.router.transitionTo('house')\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'story-factory/floor': StoryFactoryFloorController\n  }\n}\n","import { service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type RouterService from '@ember/routing/router-service'\nimport { debugAction } from 're-client/utils/debug'\n\nexport default class StoryFactoryIndexController extends Controller {\n  @service\n  declare router: RouterService\n\n  @action\n  @debugAction()\n  enterFactoryFloor() {\n    void this.router.transitionTo('story-factory.floor')\n  }\n\n  @action\n  @debugAction()\n  enterShowRoom() {\n    void this.router.transitionTo('story-factory.showroom')\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'story-factory/index': StoryFactoryIndexController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport { debugAction } from 're-client/utils/debug'\nimport type UserService from 're-client/services/user'\nimport type StoryFactoryService from 're-client/services/story-factory'\n\nexport default class StoryFactoryShowroomController extends Controller {\n  declare interactive: {\n    callInteractionMethod(method: string, ...args: unknown[]): void\n  }\n\n  @service\n  declare storyFactory: StoryFactoryService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare user: UserService\n\n  @action\n  @debugAction({\n    id: { type: 'text' },\n    rating: { type: 'text' },\n  })\n  async voteForEntry(\n    id: string | { id: string; rating: string },\n    rating: string,\n  ) {\n    if (typeof id === 'object') {\n      rating = id.rating\n      id = id.id\n    }\n\n    const data = await this.storyFactory.voteForEntry(id, rating)\n\n    await this.user.fetch()\n\n    this.interactive.callInteractionMethod('nextable', {\n      story_factory_rating: data,\n    })\n  }\n\n  @action\n  @debugAction()\n  returnToLobby() {\n    void this.router.transitionTo('story-factory')\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'story-factory/showroom': StoryFactoryShowroomController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type LocationTrackerService from 're-client/services/location-tracker'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class StorylandsBonusGameController extends Controller {\n  @service\n  declare locationTracker: LocationTrackerService\n\n  @service\n  declare router: RouterService\n\n  @action\n  next() {\n    const { route, params } = this.locationTracker.getPreviousRoute()\n    this.router.transitionTo(\n      route,\n      // @ts-expect-error router params type no bueno\n      ...params,\n    )\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport config from 're-client/config/environment'\nimport { correctSpellingMap } from 're-client/utils/progress-tools'\nimport type DeviceNetwork from '@blakeelearning/device/device/network/service'\nimport type OfflineScreenService from 're-client/services/offline-screen'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type StudentProgressService from 're-client/services/student-progress'\n\nexport default class StorylandsFinishedReStorylandsController extends Controller {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service('device/network')\n  declare network: DeviceNetwork\n\n  @service\n  declare offlineScreen: OfflineScreenService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare user: UserService\n\n  @action\n  goToReadingEggspress() {\n    this.redirectToReadingEggspress()\n  }\n\n  @action\n  redirectToReadingEggspress(location = window.location) {\n    if (this.network.status.isOffline) {\n      this.offlineScreen.display()\n      return\n    }\n\n    const base = config.APP.apiEndpoint ?? location.origin\n    const rexLoginUrl = new URL('rex', base)\n    location.assign(rexLoginUrl.toString())\n  }\n\n  @action\n  goToSkillsBank() {\n    this.router.transitionTo(\n      'spelling.map',\n      correctSpellingMap(this.studentProgress.spellingCurrentMap),\n    )\n  }\n\n  @action\n  goToIndex() {\n    this.router.transitionTo('index')\n  }\n\n  @action\n  goToPrevMap() {\n    this.router.transitionTo(\n      'storylands.map',\n      config.studentProgress.progress.storylands.lastMap,\n    )\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type RouterService from '@ember/routing/router-service'\nimport { inject as service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport { graphql } from 're-client/graphql'\nimport { useMutation } from 're-client/resources/mutation'\nimport type StorylandsLessonActivityRoute from 're-client/routes/storylands/lesson/activity'\nimport type ActivitySidebarService from 're-client/services/activity-sidebar'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type DebugModeService from 're-client/services/debug-mode'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { StorylandsQuizData } from 're-client/services/location-tracker'\nimport type LocationTrackerService from 're-client/services/location-tracker'\nimport type SessionService from 're-client/services/session'\nimport type StorylandsService from 're-client/services/storylands'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport { debugAction } from 're-client/utils/debug'\nimport { calculateMap } from 're-client/utils/progress-tools'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport { v4 as uuidV4 } from 'uuid'\n\ninterface QuizResults {\n  correct: number\n  total: number\n  incorrect_answers: Record<string, string | number>\n  correct_answers: (string | number)[]\n}\n\nexport const saveClinkerCastleLessonActivityResultMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation SaveClinkerCastleLessonActivityResult(\n      $input: ClinkerCastleLessonActivityResultCreateInput!\n    ) {\n      clinkerCastleLessonActivityResultCreate(input: $input) {\n        clinkerCastleLessonActivityResult {\n          reward {\n            eggs\n          }\n        }\n        student {\n          id\n          ...StudentProgressFragment\n          ...AssignmentTask\n        }\n      }\n    }\n  `,\n)\n\nexport const saveClinkerCastleLessonQuizResultMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation SaveClinkerCastleLessonQuizResult(\n      $input: ClinkerCastleLessonQuizResultCreateInput!\n    ) {\n      clinkerCastleLessonQuizResultCreate(input: $input) {\n        clinkerCastleLessonQuizResult {\n          reward {\n            eggs\n            prize\n          }\n        }\n        student {\n          id\n          ...StudentProgressFragment\n          ...AssignmentTask\n        }\n      }\n    }\n  `,\n)\n\nexport default class StorylandsLessonActivityController extends Controller {\n  @service\n  declare router: RouterService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare locationTracker: LocationTrackerService\n\n  @service\n  declare assignments: AssignmentsService\n\n  @service\n  declare debugMode: DebugModeService\n\n  @service\n  declare storylands: StorylandsService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare activitySidebar: ActivitySidebarService\n\n  @service\n  declare session: SessionService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  declare model: ModelFor<StorylandsLessonActivityRoute>\n\n  declare interactive: {\n    callInteractionMethod(method: string, ...args: unknown[]): void\n  }\n\n  saveClinkerCastleLessonActivityResultMutation = useMutation(\n    this,\n    saveClinkerCastleLessonActivityResultMutationDocument,\n  )\n\n  saveClinkerCastleLessonQuizResultMutation = useMutation(\n    this,\n    saveClinkerCastleLessonQuizResultMutationDocument,\n  )\n\n  get isAssignmentMode() {\n    return this.model?.isAssignmentMode\n  }\n\n  get currentPositionTitle() {\n    return this.isAssignmentMode\n      ? this.lessonId\n      : this.studentProgress.storylandsCurrentLesson.toString()\n  }\n\n  get currentMap() {\n    return this.studentProgress.storylands.currentMap\n  }\n\n  get lessonId() {\n    return Number(this.model?.lesson.id)\n  }\n\n  get activityId() {\n    return Number(this.model?.activityId)\n  }\n\n  get activityIndex() {\n    return this.activityId - 1\n  }\n\n  get nextActivity() {\n    return this.model?.lesson.nextActivity(this.activityIndex)\n  }\n\n  get mapId() {\n    return calculateMap(\n      this.lessonId,\n      config.studentProgress.progress.storylands.lessonsPerMap,\n    )\n  }\n\n  get shouldLogout() {\n    return (\n      this.user.student.rosterEnabled &&\n      this.isAssignmentMode &&\n      !this.assignments.currentTask\n    )\n  }\n\n  @action\n  changeActivity(newActivityID: string | number) {\n    if (this.storylands.canPlayLessonActivity(this.lessonId, newActivityID)) {\n      this.router.transitionTo('storylands.lesson.activity', newActivityID)\n    }\n  }\n\n  @action\n  next() {\n    if (this.shouldLogout) {\n      this.session.signOut()\n      return\n    }\n\n    if (this.nextActivity) {\n      this.router.transitionTo(\n        'storylands.lesson.activity',\n        this.nextActivity.id,\n      )\n      return\n    }\n\n    if (this.currentMap > config.studentProgress.progress.storylands.lastMap) {\n      this.router.transitionTo('storylands.finished-re-storylands')\n    } else {\n      this.goToMap()\n    }\n  }\n\n  @action\n  @debugAction({\n    amount: {\n      type: 'number',\n      value: '1',\n    },\n  })\n  incrementScore(args: { amount: number } | number = 1) {\n    if (typeof args === 'number') {\n      this.user.incrementEggs(args)\n    } else {\n      if (args.amount < 1) return\n      this.activitySidebar.open(args.amount)\n    }\n  }\n\n  @action\n  // eslint-disable-next-line @typescript-eslint/require-await -- caper activity needs to be updated\n  async reportQuizState() {\n    return this.locationTracker.getStorylandsQuizState()\n  }\n\n  @action\n  setQuizState(state: StorylandsQuizData) {\n    this.locationTracker.setStorylandsQuizState(state)\n  }\n\n  @action\n  clearQuizState() {\n    this.locationTracker.setStorylandsQuizState(null)\n  }\n\n  @action\n  playBook(bookId: string | number, page: string | number) {\n    this.router.transitionTo('reader.book.page', bookId, page)\n  }\n\n  @action\n  goToHouse() {\n    this.router.transitionTo('house')\n  }\n\n  @action\n  goToChangeRoom() {\n    this.router.transitionTo('changing-room')\n  }\n\n  @action\n  async saveProgress(args?: { uuid: string }) {\n    let assignment = null\n    try {\n      if (\n        this.assignments.currentTask?.__typename ===\n          'AssignmentTaskClinkerCastle' &&\n        this.assignments.canCompleteStorylandsAssignmentTask(\n          this.lessonId,\n          this.activityId,\n        )\n      ) {\n        assignment = {\n          assignmentTaskId: parseInt(this.assignments.currentTask.id, 10),\n          assignmentUuid: this.assignments.currentTask.assignmentUuid,\n        }\n      }\n\n      const data =\n        await this.saveClinkerCastleLessonActivityResultMutation.current.mutate(\n          {\n            variables: {\n              input: {\n                lessonInPrecinct: this.lessonId,\n                activityInLesson: this.activityId,\n                attemptUuid: args?.uuid ?? uuidV4(),\n                assignment,\n              },\n            },\n          },\n        )\n\n      if (!data)\n        throw new Error(\n          '[SaveClinkerCastleLessonActivityResult] No data returned from mutation',\n        )\n\n      this.interactive.callInteractionMethod(\n        'nextable',\n        data.clinkerCastleLessonActivityResultCreate\n          .clinkerCastleLessonActivityResult,\n      )\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveClinkerCastleLessonActivityResult] mutation failed',\n        error,\n      )\n    }\n  }\n\n  @action\n  async saveQuizResult(results: QuizResults, uuid?: string) {\n    let assignment = null\n    try {\n      if (\n        this.assignments.currentTask?.__typename ===\n          'AssignmentTaskClinkerCastle' &&\n        this.assignments.canCompleteStorylandsAssignmentTask(\n          this.lessonId,\n          this.activityId,\n        )\n      ) {\n        assignment = {\n          assignmentTaskId: parseInt(this.assignments.currentTask.id, 10),\n          assignmentUuid: this.assignments.currentTask.assignmentUuid,\n        }\n      }\n\n      const data =\n        await this.saveClinkerCastleLessonQuizResultMutation.current.mutate({\n          variables: {\n            input: {\n              lesson: this.lessonId,\n              correctAnswers: results.correct_answers.map((a) => a.toString()),\n              incorrectAnswers: Object.fromEntries(\n                Object.entries(results.incorrect_answers).map(([k, v]) => [\n                  k,\n                  v.toString(),\n                ]),\n              ),\n              attemptUuid: uuid ?? uuidV4(),\n              assignment,\n            },\n          },\n        })\n\n      if (!data)\n        throw new Error(\n          '[SaveClinkerCastleLessonQuizResult] No data returned from mutation',\n        )\n\n      this.interactive.callInteractionMethod(\n        'nextable',\n        data.clinkerCastleLessonQuizResultCreate.clinkerCastleLessonQuizResult,\n      )\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveClinkerCastleLessonQuizResult] mutation failed',\n        error,\n      )\n    }\n  }\n\n  /**\n   * Transition to the map for this storylands lesson\n   *\n   * @instance\n   * @memberOf LessonActivityController\n   */\n  @action\n  goToMap() {\n    this.router.transitionTo('storylands.map', this.currentMap)\n  }\n\n  @action\n  @debugAction()\n  async completeActivity() {\n    await this.saveProgress()\n    this.next()\n  }\n\n  @action\n  @debugAction({\n    results: {\n      type: 'select',\n      options: [\n        { label: 'Pass Quiz', value: 'pass' },\n        { label: 'Fail Quiz', value: 'fail' },\n      ],\n      values: {\n        pass: {\n          correct: 10,\n          total: 10,\n          correct_answers: [\n            'debug1',\n            'debug2',\n            'debug3',\n            'debug4',\n            'debug5',\n            'debug6',\n            'debug7',\n            'debug8',\n            'debug9',\n            'debug10',\n          ],\n          incorrect_answers: {},\n        },\n        fail: {\n          correct: 0,\n          total: 10,\n          correct_answers: [],\n          incorrect_answers: {\n            debug1: 'wrong 1',\n            debug2: 'wrong 2',\n            debug3: 'wrong 3',\n            debug4: 'wrong 4',\n            debug5: 'wrong 5',\n            debug6: 'wrong 6',\n            debug7: 'wrong 7',\n            debug8: 'wrong 8',\n            debug9: 'wrong 9',\n            debug10: 'wrong 10',\n          },\n        },\n      },\n    },\n  })\n  async completeQuiz({ results }: { results: QuizResults }) {\n    await this.saveQuizResult(results)\n    this.next()\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'storylands/lesson/activity': StorylandsLessonActivityController\n  }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport config from 're-client/config/environment'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type StorylandsMapRoute from 're-client/routes/storylands/map'\n\n/**\n * storylands Map Controller\n *\n * @class StorylandsMapController\n */\nexport default class StorylandsMapController extends Controller {\n  declare model: ModelFor<StorylandsMapRoute>\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @action\n  playLesson(lessonId: string) {\n    this.router.transitionTo('storylands.lesson', lessonId)\n  }\n\n  @action\n  playBonusGame(gameId: string) {\n    this.router.transitionTo('storylands.bonus-game', gameId)\n  }\n\n  @action\n  playQuiz() {\n    this.router.transitionTo('storylands.map.quiz', this.model!.mapId)\n  }\n\n  @action\n  prevMap() {\n    this.router.transitionTo('storylands.map', this.model!.previousMapId)\n  }\n\n  @action\n  nextMap() {\n    const mapId = this.model!.mapId\n    const { lastMap } = config.studentProgress.progress.storylands\n    if (\n      mapId === lastMap &&\n      this.studentProgress.storylandsCurrentMap > lastMap\n    ) {\n      this.router.transitionTo('storylands.finished-re-storylands')\n    } else {\n      this.router.transitionTo('storylands.map', this.model!.nextMapId)\n    }\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class UnauthorisedController extends Controller {\n  @service\n  declare router: RouterService\n\n  @action\n  login() {\n    void this.router.replaceWith('login')\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type ActivityAreaActivityRoute from 're-client/routes/worlds/world/activity-area/activity'\nimport type { NavigationItemId } from 're-client/routes/worlds/world/activity-area/index'\nimport type { UnhandledError } from 're-client/services/error-handler'\nimport { debugAction } from 're-client/utils/debug'\n\nexport default class ActivityAreaActivityController extends Controller {\n  @service declare router: RouterService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  declare model: ModelFor<ActivityAreaActivityRoute>\n\n  get contentSpec() {\n    return {\n      goToNavigationItem: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @debugAction({\n    id: { type: 'text', value: 'back' },\n  })\n  @action\n  goToNavigationItem({ id }: { id: NavigationItemId }) {\n    if (id === 'back') {\n      void this.router.transitionTo(\n        'worlds.world.activity-area',\n        this.model.worldId,\n      )\n    }\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide()\n  }\n\n  @action\n  unhandledError({ error }: { error: UnhandledError }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type ActivityAreaIndexRoute from 're-client/routes/worlds/world/activity-area/index'\nimport type { UnhandledError } from 're-client/services/error-handler'\nimport { debugAction } from 're-client/utils/debug'\n\nexport default class ActivityAreaIndexController extends Controller {\n  @service declare router: RouterService\n\n  @service declare learningWorlds: LearningWorldsService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  declare model: ModelFor<ActivityAreaIndexRoute>\n\n  get contentSpec() {\n    return {\n      onboardingSectionComplete: {\n        type: 'message',\n      },\n      saveInteraction: {\n        type: 'message',\n      },\n      goToNavigationItem: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Letter M', value: 'letter_m' },\n        { label: 'Letter S', value: 'letter_s' },\n        { label: 'Letter A', value: 'letter_a' },\n        { label: 'Letter T', value: 'letter_t' },\n        { label: 'Letter F', value: 'letter_f' },\n        { label: 'Letter C', value: 'letter_c' },\n      ],\n    },\n  })\n  @action\n  saveInteraction({ id }: { id: string }) {\n    void this.learningWorlds.saveInteraction({\n      world: Number(this.model.worldId),\n      interaction: id,\n    })\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Back', value: 'back' },\n        { label: 'Activity', value: 'activity' },\n      ],\n    },\n    activity: {\n      type: 'select',\n      optional: true,\n      options: [\n        { label: 'Book', value: 'book' },\n        { label: 'Moving Targets', value: 'moving-targets' },\n        { label: 'Hopper', value: 'hopper' },\n        { label: 'Handwriting', value: 'handwriting' },\n      ],\n    },\n    letter: {\n      type: 'select',\n      optional: true,\n      options: [\n        { label: 'M', value: 'm' },\n        { label: 'S', value: 's' },\n        { label: 'A', value: 'a' },\n        { label: 'T', value: 't' },\n        { label: 'F', value: 'f' },\n        { label: 'C', value: 'c' },\n      ],\n    },\n    theme: {\n      type: 'select',\n      optional: true,\n      options: [\n        { label: 'Boats', value: 'boats' },\n        { label: 'Trains', value: 'trains' },\n        { label: 'Trucks', value: 'trucks' },\n        { label: 'Planes', value: 'planes' },\n        { label: 'Bees', value: 'bees' },\n        { label: 'Birds', value: 'birds' },\n        { label: 'Frog Hops', value: 'frog_hops' },\n        { label: 'Island Hop', value: 'island_hop' },\n        { label: 'Jumping Astronauts', value: 'jumping_astronauts' },\n        { label: 'Leaping Penguins', value: 'leaping_penguins' },\n      ],\n    },\n  })\n  @action\n  goToNavigationItem({\n    id,\n    activity,\n    letter,\n    theme,\n  }: {\n    id: string\n    activity?: string\n    letter?: string\n    theme?: string\n  }) {\n    if (id === 'back') {\n      void this.router.transitionTo('worlds.world', this.model.worldId)\n      return\n    }\n\n    if (id === 'activity') {\n      if (!activity) throw new Error('activity must be provided')\n      if (!letter) throw new Error('letter must be provided')\n\n      if (['book', 'handwriting'].includes(activity)) {\n        void this.router.transitionTo(\n          'worlds.world.activity-area.activity',\n          this.model.worldId,\n          activity,\n          letter,\n        )\n      }\n\n      if (['hopper', 'moving-targets'].includes(activity)) {\n        if (!theme) throw new Error('theme must be provided')\n        void this.router.transitionTo(\n          'worlds.world.activity-area.activity',\n          this.model.worldId,\n          activity,\n          letter,\n          { queryParams: { theme } },\n        )\n      }\n    }\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Welcome', value: 'welcome' },\n        { label: 'First Mission', value: 'first_mission' },\n        { label: 'First Area', value: 'first_area' },\n        { label: 'Activity Area', value: 'activity_area' },\n      ],\n    },\n  })\n  @action\n  onboardingSectionComplete({\n    onboardingSectionId,\n  }: {\n    onboardingSectionId: string\n  }) {\n    void this.learningWorlds.onboardingSectionComplete({\n      onboardingSection: onboardingSectionId,\n    })\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide()\n  }\n\n  @action\n  unhandledError({ error }: { error: UnhandledError }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type BookAreaIndexRoute from 're-client/routes/worlds/world/book-area/index'\nimport type { NavigationItemId } from 're-client/routes/worlds/world/book-area/index'\nimport type { UnhandledError } from 're-client/services/error-handler'\nimport { debugAction } from 're-client/utils/debug'\n\nconst BOOK_CODE_OPTIONS = [\n  { label: 'My World: My Funny Cat', value: 'my_world_my_funny_cat' },\n  {\n    label: 'Reading Eggs: The Squirrel',\n    value: 'reading_eggs_the_squirrel',\n  },\n  { label: 'Poetry: A Little Turtle', value: 'poetry_a_little_turtle' },\n  { label: 'Go Books: Big Cat', value: 'go_books_big_cat' },\n  {\n    label: 'Easy Reads: Bella Plays Hide and Seek',\n    value: 'easy_reads_bella_plays_hide_and_seek',\n  },\n  {\n    label: 'Storylands: What Did Buzz Boy Catch',\n    value: 'storylands_what_did_buzz_boy_catch',\n  },\n]\n\nexport default class BookAreaIndexController extends Controller {\n  @service declare router: RouterService\n\n  @service declare learningWorlds: LearningWorldsService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  declare model: ModelFor<BookAreaIndexRoute>\n\n  get contentSpec() {\n    return {\n      onboardingSectionComplete: {\n        type: 'message',\n      },\n      saveInteraction: {\n        type: 'message',\n      },\n      goToNavigationItem: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: BOOK_CODE_OPTIONS,\n    },\n  })\n  @action\n  saveInteraction({ id }: { id: string }) {\n    void this.learningWorlds.saveInteraction({\n      world: Number(this.model.worldId),\n      interaction: id,\n    })\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Back', value: 'back' },\n        { label: 'Read Book', value: 'read_book' },\n      ],\n    },\n    bookCode: {\n      type: 'select',\n      optional: true,\n      options: BOOK_CODE_OPTIONS,\n    },\n  })\n  @action\n  goToNavigationItem({\n    id,\n    bookCode,\n  }: {\n    id: NavigationItemId\n    bookCode?: string\n  }) {\n    if (id === 'back') {\n      void this.router.transitionTo('worlds.world', this.model.worldId)\n      return\n    }\n\n    if (bookCode) {\n      void this.router.transitionTo(\n        'worlds.world.book-area.reader',\n        this.model.worldId,\n        bookCode,\n      )\n    }\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Welcome', value: 'welcome' },\n        { label: 'Book Area', value: 'book_area' },\n      ],\n    },\n  })\n  @action\n  onboardingSectionComplete({\n    onboardingSectionId,\n  }: {\n    onboardingSectionId: string\n  }) {\n    void this.learningWorlds.onboardingSectionComplete({\n      onboardingSection: onboardingSectionId,\n    })\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide()\n  }\n\n  @action\n  unhandledError({ error }: { error: UnhandledError }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type BookAreaReaderRoute from 're-client/routes/worlds/world/book-area/reader'\nimport { debugAction } from 're-client/utils/debug'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { UnhandledError } from 're-client/services/error-handler'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type { NavigationItemId } from 're-client/routes/worlds/world/book-area/index'\n\nexport default class BookAreaReaderController extends Controller {\n  declare model: ModelFor<BookAreaReaderRoute>\n  @service\n  declare router: RouterService\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  get contentSpec() {\n    return {\n      goToNavigationItem: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [{ label: 'Back', value: 'back' }],\n    },\n  })\n  @action\n  goToNavigationItem({ id }: { id: NavigationItemId }) {\n    if (id === 'back') {\n      void this.router.transitionTo(\n        'worlds.world.book-area',\n        this.model.worldId,\n      )\n    }\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide()\n  }\n\n  @action\n  unhandledError({ error }: { error: UnhandledError }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type { CertificateContentActions } from '@blakeelearning/content-specs-readingeggs'\nimport { certificateContentSpec } from '@blakeelearning/content-specs-readingeggs'\nimport type { ContentSpec } from '@blakeelearning/messenger'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport { debug } from '@ember/debug'\nimport { debugAction, debugValue } from 're-client/utils/debug'\nimport { base64url } from 'rfc4648'\nimport { tracked } from '@glimmer/tracking'\nimport type DeviceDetection from '@blakeelearning/device/device/detection/service'\nimport type UserService from 're-client/services/user'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport {\n  contentError,\n  isErrorRepresentingNetworkError,\n} from 're-client/utils/errors'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport printCertificate from 're-client/utils/print-certificate'\nimport uploadSvgWithRetries from 're-client/utils/upload-svg-with-retries'\nimport prefetch from 're-client/utils/prefetch'\nimport type WorldsCertificateRoute from 're-client/routes/worlds/world/certificate'\nimport type CertificateService from 're-client/services/certificate'\nimport type StudentProgressService from 're-client/services/student-progress'\n\nexport interface SaveCertificateMessage {\n  svgString: string\n  width: number\n  height: number\n}\n\nexport interface SaveCertificateResult {\n  savedCertificateUrl: string\n}\n\nexport interface PrintMessage {\n  certificateUrl: string\n}\n\nexport default class WorldsCertificateController\n  extends Controller\n  implements CertificateContentActions\n{\n  @service declare certificate: CertificateService\n\n  @debugValue()\n  declare model: ModelFor<WorldsCertificateRoute>\n\n  @service declare router: RouterService\n\n  @service('device/detection') declare deviceDetection: DeviceDetection\n\n  @service declare user: UserService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare studentProgress: StudentProgressService\n\n  get contentSpec(): ContentSpec {\n    return certificateContentSpec\n  }\n\n  get map() {\n    return this.model.map\n  }\n\n  get pendingCertificateId() {\n    return this.model.pendingCertificateId\n  }\n\n  @action\n  unhandledError({ error }: { error: { name?: string; message?: string } }) {\n    debug(`[CertificateController] unhandledError()`)\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action\n  readyForUserInput() {\n    debug(`[CertificateController] readyForUserInput()`)\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  @debugAction({\n    svgString: { type: 'text' },\n    width: { type: 'number', value: '1240' },\n    height: { type: 'number', value: '1647' },\n  })\n  @action\n  async saveCertificate({\n    svgString,\n    width,\n    height,\n  }: SaveCertificateMessage): Promise<SaveCertificateResult> {\n    debug(`[CertificateController] saveCertificate()`)\n\n    try {\n      await uploadSvgWithRetries({\n        svgString,\n        expiryRetries: 2,\n        fetchUploadUrl: () => this._fetchUploadUrl(),\n      })\n\n      const result = await this.certificate.saveCertificate({\n        pendingCertificateId: this.pendingCertificateId,\n        width,\n        height,\n      })\n\n      const savedCertificateUrl = result?.certificateSave.certificate.url ?? ''\n\n      prefetch(savedCertificateUrl)\n\n      this.savedCertificateUrl = savedCertificateUrl // Update this tracked property for debug mode\n\n      return { savedCertificateUrl }\n    } catch (error) {\n      if (isErrorRepresentingNetworkError(error))\n        throw contentError('NetworkError', error)\n      throw contentError('SaveFailed', error)\n    }\n  }\n\n  @debugAction()\n  @action\n  goHome() {\n    debug(`[CertificateController] goHome()`)\n    void this.router.transitionTo('worlds.world', this.model.worldId)\n  }\n\n  @debugAction()\n  @action\n  goNext() {\n    debug(`[CertificateController] goNext()`)\n    void this.router.transitionTo('worlds.world', this.model.worldId)\n  }\n\n  @debugAction({\n    certificateUrl: {\n      type: 'text',\n      value:\n        'https://certificates.blake-staging.com/re/legacy/WzEsImdvbGQiLDEwMCwiU2FtcGxlIEMuIiwxNjc5NDYyNzc0NTQ1XQ.svg', // TODO: this value is temporary to assist with native app testing\n    },\n  })\n  @action\n  async print({ certificateUrl }: PrintMessage): Promise<void> {\n    debug(`[CertificateController] print()`)\n\n    await printCertificate(certificateUrl, {\n      isNativeMobile: this.deviceDetection.isNativeMobile,\n    })\n  }\n\n  /**\n   * Runs a query for a specific pending certificate's uploadUrl. The result is not cached since the url will expire shortly after we receive it.\n   * If we do not get back a pending certificate, it means the student must have already sucessfully uploaded a certificate and our state is out of sync.\n   * In this case we trigger a refetch of the GetStudent query to clear our bad state and redirect the student to the index route.\n   * @returns upload url\n   */\n  async _fetchUploadUrl() {\n    const {\n      data: { getPendingCertificate: pendingCertificate },\n    } = await this.certificate.getPendingCertificateUploadUrl(\n      this.pendingCertificateId,\n    )\n\n    if (pendingCertificate?.__typename !== 'PendingCertificate') {\n      await this.user.fetch()\n      void this.router.transitionTo('worlds.world', this.model.worldId)\n      throw new Error(\n        `No PendingCertificate with id: ${this.pendingCertificateId}`,\n      )\n    }\n\n    return pendingCertificate.uploadUrl\n  }\n\n  /**\n   * ###########################################\n   * Everything below here is debug mode related\n   * ###########################################\n   */\n\n  /**\n   *  ### For debug mode\n   *  Crafts a URL which will return a default certificate in its 'original' (pre-hydrated) format\n   */\n  get defaultCertificateUrl() {\n    const {\n      variables: {\n        mapResult: { colour, percentage, date },\n        studentName,\n      },\n    } = this.model\n    const certData = [\n      this.map,\n      colour,\n      percentage,\n      studentName,\n      parseInt(date, 10),\n    ]\n    const base64Url = base64url.stringify(\n      new TextEncoder().encode(JSON.stringify(certData)),\n      { pad: false },\n    )\n    const url = new URL(\n      `re/legacy/${base64Url}.svg`,\n      `https://certificates.blake-staging.com`,\n    )\n    url.searchParams.set('original', 'true')\n    return url.href\n  }\n\n  /**\n   *  ### For debug mode\n   *  This will fetch a default certificate, extract it's text (an svg string) and stores it in the tracked `defaultCertificateSvg`\n   */\n  @debugAction()\n  @action\n  async fetchDefaultCertificateSvg() {\n    const res = await fetch(this.defaultCertificateUrl)\n    const svgString = await res.text()\n    this.defaultCertificateSvg = svgString\n  }\n\n  /**\n   *  ### For debug mode\n   *  This will stores and display the result of fetching a default certificate so that it can be copy and pasted into the saveCertificate() action\n   */\n  @debugValue()\n  @tracked\n  defaultCertificateSvg?: string\n\n  /**\n   *  ### For debug mode\n   *  This will display the URL we get as a result of saving the certificate so that it can be copy and pasted into the print() action\n   */\n  @debugValue()\n  @tracked\n  savedCertificateUrl?: string\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'worlds/world/certificate': WorldsCertificateController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type GamesAreaGameRoute from 're-client/routes/worlds/world/games-area/game'\nimport type { UnhandledError } from 're-client/services/error-handler'\nimport { debugAction } from 're-client/utils/debug'\n\nexport default class GamesAreaGameController extends Controller {\n  declare model: ModelFor<GamesAreaGameRoute>\n  @service declare router: RouterService\n\n  @service declare learningWorlds: LearningWorldsService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  get contentSpec() {\n    return {\n      goToNavigationItem: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [{ label: 'Back', value: 'back' }],\n    },\n  })\n  @action\n  goToNavigationItem() {\n    void this.router.transitionTo('worlds.world.games-area', this.model.worldId)\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide()\n  }\n\n  @action\n  unhandledError({ error }: { error: UnhandledError }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type GamesAreaIndexRoute from 're-client/routes/worlds/world/games-area/index'\nimport type { NavigationItemId } from 're-client/routes/worlds/world/games-area/index'\nimport type { UnhandledError } from 're-client/services/error-handler'\nimport { debugAction } from 're-client/utils/debug'\n\nexport default class GamesAreaIndexController extends Controller {\n  declare model: ModelFor<GamesAreaIndexRoute>\n  @service declare router: RouterService\n\n  @service declare learningWorlds: LearningWorldsService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare studentMetrics: StudentMetricsService\n\n  get contentSpec() {\n    return {\n      onboardingSectionComplete: {\n        type: 'message',\n      },\n      saveInteraction: {\n        type: 'message',\n      },\n      goToNavigationItem: {\n        type: 'message',\n      },\n      captureContentEvent: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @debugAction({\n    eventType: { type: 'text' },\n    eventName: { type: 'text', optional: true },\n  })\n  @action\n  captureContentEvent({\n    eventType,\n    eventName,\n    eventPayload,\n  }: {\n    eventType: string\n    eventName?: string\n    eventPayload?: Record<string, unknown>\n  }) {\n    this.studentMetrics.captureGeneralEvent({\n      eventType,\n      eventName,\n      eventPayload,\n    })\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Keepy Uppy', value: 'keepy_uppy' },\n        { label: 'Super Bouncy Ball', value: 'super_bouncy_ball' },\n      ],\n    },\n  })\n  @action\n  saveInteraction(args: { id: string }) {\n    void this.learningWorlds.saveInteraction({\n      world: Number(this.model.worldId),\n      interaction: args.id,\n    })\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Back', value: 'back' },\n        { label: 'Game', value: 'game' },\n      ],\n    },\n    game: {\n      type: 'select',\n      optional: true,\n      options: [\n        { label: 'Keepy Uppy', value: 'keepy_uppy' },\n        { label: 'Super Bouncy Ball', value: 'super_bouncy_ball' },\n      ],\n    },\n  })\n  @action\n  goToNavigationItem({ id, game }: { id: NavigationItemId; game?: string }) {\n    if (id === 'back') {\n      void this.router.transitionTo('worlds.world', this.model.worldId)\n      return\n    }\n\n    if (game) {\n      void this.router.transitionTo(\n        'worlds.world.games-area.game',\n        this.model.worldId,\n        game,\n      )\n      return\n    }\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Welcome', value: 'welcome' },\n        { label: 'Game Area', value: 'game_area' },\n      ],\n    },\n  })\n  @action\n  onboardingSectionComplete({\n    onboardingSectionId,\n  }: {\n    onboardingSectionId: string\n  }) {\n    void this.learningWorlds.onboardingSectionComplete({\n      onboardingSection: onboardingSectionId,\n    })\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide()\n  }\n\n  @action\n  unhandledError({ error }: { error: UnhandledError }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type { PrintMessage } from 're-client/controllers/lessons/certificate'\nimport type DeviceDetection from '@blakeelearning/device/device/detection/service'\nimport printCertificate from 're-client/utils/print-certificate'\nimport { debug } from '@ember/debug'\nimport { debugAction } from 're-client/utils/debug'\nimport type HomeBaseAwardsRoute from 're-client/routes/worlds/world/home-base/awards'\n\nexport default class HomeBaseAwardsController extends Controller {\n  declare model: ModelFor<HomeBaseAwardsRoute>\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  @service('device/detection')\n  declare deviceDetection: DeviceDetection\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  get currentMap() {\n    return this.model.variables.currentMap\n  }\n\n  get contentSpec() {\n    return {\n      print: {\n        type: 'message',\n        recoverabelErrors: ['PrintFailed'],\n      },\n      goNext: {\n        type: 'message',\n      },\n      goHome: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @action\n  readyForUserInput() {\n    debug(`[CertificateController] readyForUserInput()`)\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  @action\n  unhandledError({ error }: { error: { name?: string; message?: string } }) {\n    debug(`[CertificateController] unhandledError()`)\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @debugAction({\n    certificateUrl: {\n      type: 'text',\n      value:\n        'https://certificates.blake-staging.com/re/legacy/WzEsImdvbGQiLDEwMCwiU2FtcGxlIEMuIiwxNjc5NDYyNzc0NTQ1XQ.svg', // TODO: this value is temporary to assist with native app testing\n    },\n  })\n  @action\n  async print({ certificateUrl }: PrintMessage): Promise<void> {\n    debug(`[AwardsController] print()`)\n\n    await printCertificate(certificateUrl, {\n      isNativeMobile: this.deviceDetection.isNativeMobile,\n    })\n  }\n\n  @debugAction()\n  @action\n  goHome() {\n    void this.router.transitionTo('worlds.world.home-base', this.model.worldId)\n  }\n\n  @debugAction()\n  @action\n  goNext() {\n    void this.router.transitionTo('lessons.map.next', this.model.worldId)\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type UserService from 're-client/services/user'\nimport prefetch from 're-client/utils/prefetch'\nimport type RouterService from '@ember/routing/router-service'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ErrorLike } from 're-client/utils/errors'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type HomeBaseChangingRoomRoute from 're-client/routes/worlds/world/home-base/changing-room'\nimport type { AvatarUpdateInput } from 're-client/graphql/graphql'\n\ninterface SaveAvatarOptions {\n  DNA: AvatarUpdateInput & {\n    __typename?: string\n  }\n}\n\nexport default class HomeBaseChangingRoomController extends Controller {\n  declare model: ModelFor<HomeBaseChangingRoomRoute>\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  get student() {\n    return this.user.student\n  }\n\n  get contentSpec() {\n    return {\n      saveAvatar: {\n        type: 'message',\n      },\n      goToShop: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @action\n  async saveAvatar({\n    DNA: { arms, legs, head, egg, extra, hat, decal, sunnies },\n  }: SaveAvatarOptions) {\n    await this.user.avatarUpdate({\n      arms,\n      legs,\n      head,\n      egg,\n      extra,\n      hat,\n      decal,\n      sunnies,\n    })\n    prefetch(this.user.student.avatarUrl)\n  }\n\n  @action\n  goToShop() {\n    this.router.transitionTo('worlds.world.home-base.shop', this.model.worldId)\n  }\n\n  @action\n  goBack() {\n    this.router.transitionTo('worlds.world.home-base', this.model.worldId)\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  @action\n  unhandledError({ error }: { error: Partial<ErrorLike> }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type HomeBaseRoute from 're-client/routes/worlds/world/home-base'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ErrorLike } from 're-client/utils/errors'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport { debugAction } from 're-client/utils/debug'\nimport prefetch from 're-client/utils/prefetch'\nimport type { AvatarUpdateInput } from 're-client/graphql/graphql'\n\ninterface SaveAvatarOptions {\n  dna: AvatarUpdateInput & {\n    __typename?: string\n  }\n}\n\nexport default class HomeBaseController extends Controller {\n  declare model: ModelFor<HomeBaseRoute>\n  @service\n  declare router: RouterService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare learningWorlds: LearningWorldsService\n\n  @service\n  declare studentMetrics: StudentMetricsService\n\n  get contentSpec() {\n    return {\n      onboardingSectionComplete: {\n        type: 'message',\n      },\n      saveAvatar: {\n        type: 'message',\n      },\n      saveInteraction: {\n        type: 'message',\n      },\n      goToNavigationItem: {\n        type: 'message',\n      },\n      captureContentEvent: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @debugAction({\n    eventType: { type: 'text' },\n    eventName: { type: 'text', optional: true },\n  })\n  @action\n  captureContentEvent({\n    eventType,\n    eventName,\n    eventPayload,\n  }: {\n    eventType: string\n    eventName?: string\n    eventPayload?: Record<string, unknown>\n  }) {\n    this.studentMetrics.captureGeneralEvent({\n      eventType,\n      eventName,\n      eventPayload,\n    })\n  }\n\n  @action\n  async saveAvatar({\n    dna: { arms, legs, head, egg, extra, hat, decal, sunnies },\n  }: SaveAvatarOptions) {\n    await this.user.avatarUpdate({\n      arms,\n      legs,\n      head,\n      egg,\n      extra,\n      hat,\n      decal,\n      sunnies,\n    })\n    prefetch(this.user.student.avatarUrl)\n  }\n\n  @debugAction({\n    id: { type: 'text' },\n  })\n  @action\n  saveInteraction({ id }: { id: string }) {\n    void this.learningWorlds.saveInteraction({\n      world: Number(this.model.worldId),\n      interaction: id,\n    })\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Back', value: 'back' },\n        { label: 'My Awards', value: 'my_awards' },\n        { label: 'Changing Room', value: 'changing_room' },\n      ],\n    },\n  })\n  @action\n  goToNavigationItem({ id }: { id: string }) {\n    if (id === 'back') {\n      void this.router.transitionTo('worlds.world', this.model.worldId)\n      return\n    }\n    if (id === 'my_awards') {\n      void this.router.transitionTo(\n        'worlds.world.home-base.awards',\n        this.model.worldId,\n      )\n      return\n    }\n    if (id === 'changing_room') {\n      void this.router.transitionTo(\n        'worlds.world.home-base.changing-room',\n        this.model.worldId,\n      )\n      return\n    }\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Welcome', value: 'welcome' },\n        { label: 'Home Base Avatar', value: 'home_base_avatar' },\n        { label: 'Home Base Awards', value: 'home_base_awards' },\n        { label: 'Home Base Change Room', value: 'home_base_change_room' },\n      ],\n    },\n  })\n  @action\n  onboardingSectionComplete({\n    onboardingSectionId,\n  }: {\n    onboardingSectionId: string\n  }) {\n    void this.learningWorlds.onboardingSectionComplete({\n      onboardingSection: onboardingSectionId,\n    })\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  @action\n  unhandledError({ error }: { error: Partial<ErrorLike> }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type ThemeService from 're-client/services/theme'\nimport type ShopService from 're-client/services/shop'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type HomeBaseShopCatalogueRoute from 're-client/routes/worlds/world/home-base/shop/catalogue'\n\nexport default class HomeBaseShopCatalogueController extends Controller {\n  declare model: ModelFor<HomeBaseShopCatalogueRoute>\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare theme: ThemeService\n\n  @service\n  declare shop: ShopService\n\n  @action\n  async purchase(item: { id: string }) {\n    return this.shop.purchase(item)\n  }\n\n  @action\n  async purchaseBundle(items: string[]) {\n    return this.shop.purchaseBundle(items)\n  }\n\n  @action\n  async bundlePrice(items: string[]) {\n    return this.shop.bundlePrice(items)\n  }\n\n  @action\n  backToShop() {\n    this.router.transitionTo('worlds.world.home-base.shop', this.model.worldId)\n  }\n\n  @action\n  timeToNextMonth() {\n    return this.theme.timeToNextTheme()\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type ShopService from 're-client/services/shop'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type HomeBaseShopRoute from 're-client/routes/worlds/world/home-base/shop/index'\n\nexport default class HomeBaseShopController extends Controller {\n  declare model: ModelFor<HomeBaseShopRoute>\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare shop: ShopService\n\n  @action\n  async purchase(item: { id: string }) {\n    return this.shop.purchase(item)\n  }\n\n  @action\n  changeDepartment() {\n    // department is fixed to 'avatar' here (house tab is hidden), so there's\n    // nowhere else to switch to\n  }\n\n  @action\n  goToCatalogue() {\n    this.router.transitionTo(\n      'worlds.world.home-base.shop.catalogue',\n      this.model.worldId,\n    )\n  }\n\n  @action\n  goBack() {\n    this.router.transitionTo(\n      'worlds.world.home-base.changing-room',\n      this.model.worldId,\n    )\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport type RouterService from '@ember/routing/router-service'\nimport { service } from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport type WorldIndexRoute from 're-client/routes/worlds/world/index'\nimport type { WorldVariables } from 're-client/routes/worlds/world/index'\nimport type DebugModeService from 're-client/services/debug-mode'\nimport type { UnhandledError } from 're-client/services/error-handler'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type SessionService from 're-client/services/session'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport { debugAction, debugValue } from 're-client/utils/debug'\nimport {\n  generateLessonOptions,\n  generateMapOptions,\n} from 're-client/utils/debug-lesson-options'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type UserService from 're-client/services/user'\n\nconst RESET_POLL_INTERVAL_MS = 1000\nconst RESET_POLL_MAX_ATTEMPTS = 60\n\n// Share of the reset progress bar given to the reset requests; the rest is\n// filled as polling for the reset to be reflected progresses.\nconst RESET_REQUESTS_PROGRESS = 10\n\nexport default class WorldIndexController extends Controller {\n  declare model: ModelFor<WorldIndexRoute>\n\n  @service declare router: RouterService\n\n  @service declare debugMode: DebugModeService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare learningWorlds: LearningWorldsService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare session: SessionService\n\n  @service declare studentMetrics: StudentMetricsService\n\n  @service declare user: UserService\n\n  get contentSpec() {\n    return {\n      saveInteraction: {\n        type: 'message',\n      },\n      onboardingSectionComplete: {\n        type: 'message',\n      },\n      updateAreaRevealPosition: {\n        type: 'message',\n      },\n      goToNavigationItem: {\n        type: 'message',\n      },\n      captureContentEvent: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @tracked resetOverlayVisible = false\n\n  @tracked resetPollAttempts: number | null = null\n\n  get resetProgress() {\n    if (this.resetPollAttempts === null) return 0\n    return (\n      RESET_REQUESTS_PROGRESS +\n      ((100 - RESET_REQUESTS_PROGRESS) * this.resetPollAttempts) /\n        RESET_POLL_MAX_ATTEMPTS\n    )\n  }\n\n  async worldResetReflected() {\n    const [{ areaRevealPosition, previousWorldsOnboarding }] =\n      await Promise.all([\n        this.learningWorlds.fetchWorldData({\n          world: 1,\n          fetchPolicy: 'network-only',\n        }),\n        this.user.refetchStudent(),\n      ])\n    return (\n      areaRevealPosition === null &&\n      previousWorldsOnboarding.length === 0 &&\n      this.learningWorlds.studentStartingLesson === 1\n    )\n  }\n\n  @action\n  @debugAction()\n  async resetLearningWorlds() {\n    this.resetOverlayVisible = true\n    this.resetPollAttempts = null\n\n    await Promise.all([\n      this.debugMode.resetWorldOnboarding(),\n      this.debugMode.resetReadingLessonProgress(1, 1),\n      this.debugMode.resetWorldInteractions(1),\n      this.debugMode.resetWorldInteractions(2),\n      this.debugMode.resetWorldInteractions(3),\n      this.user.avatarUpdate({\n        arms: 'default_arms_1',\n        decal: 'default_decal_1',\n        egg: 'default_egg_1',\n        extra: 'default_extra_1',\n        hat: 'default_hat_1',\n        head: 'default_head_1',\n        legs: 'default_legs_1',\n        sunnies: 'default_sunnies_1',\n      }),\n    ])\n\n    // Poll until the reset is reflected by the API, giving up after a\n    // while so the overlay can never get stuck.\n    for (let attempt = 1; attempt <= RESET_POLL_MAX_ATTEMPTS; attempt++) {\n      this.resetPollAttempts = attempt\n      if (await this.worldResetReflected()) break\n      await new Promise((resolve) =>\n        setTimeout(resolve, RESET_POLL_INTERVAL_MS),\n      )\n    }\n    this.reloadPage()\n  }\n\n  reloadPage() {\n    window.location.reload()\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Home Base', value: 'home_base' },\n        { label: 'Activity Area', value: 'activity_area' },\n        { label: 'Music Area', value: 'music_area' },\n        { label: 'Games Area', value: 'games_area' },\n        { label: 'Book Area', value: 'book_area' },\n        { label: 'Map', value: 'map' },\n        { label: 'Lesson', value: 'lesson' },\n        { label: 'Quiz', value: 'quiz' },\n        { label: 'Previous World', value: 'previous_world' },\n        { label: 'Next World', value: 'next_world' },\n        { label: 'Logout', value: 'logout' },\n        { label: 'Placement Test', value: 'placement_test' },\n        { label: 'Certificate', value: 'certificate' },\n      ],\n    },\n    lesson: {\n      type: 'select',\n      optional: true,\n      options: [\n        { label: 'Lesson 1', value: '1' },\n        { label: 'Lesson 2', value: '2' },\n        { label: 'Lesson 3', value: '3' },\n        { label: 'Lesson 4', value: '4' },\n        { label: 'Lesson 5', value: '5' },\n        { label: 'Lesson 6', value: '6' },\n        { label: 'Lesson 7', value: '7' },\n        { label: 'Lesson 8', value: '8' },\n        { label: 'Lesson 9', value: '9' },\n        { label: 'Lesson 10', value: '10' },\n      ],\n    },\n  })\n  @action\n  goToNavigationItem({\n    id,\n    lesson,\n  }: {\n    id: string\n    lesson?: number | undefined\n  }) {\n    if (id === 'home_base') {\n      void this.router.transitionTo(\n        'worlds.world.home-base',\n        this.model.worldId,\n      )\n    }\n    if (id === 'activity_area') {\n      void this.router.transitionTo(\n        'worlds.world.activity-area',\n        this.model.worldId,\n      )\n    }\n    if (id === 'music_area') {\n      void this.router.transitionTo(\n        'worlds.world.music-area',\n        this.model.worldId,\n      )\n    }\n    if (id === 'games_area') {\n      void this.router.transitionTo(\n        'worlds.world.games-area',\n        this.model.worldId,\n      )\n    }\n    if (id === 'book_area') {\n      void this.router.transitionTo(\n        'worlds.world.book-area',\n        this.model.worldId,\n      )\n    }\n    if (id === 'map') {\n      void this.router.transitionTo('worlds.world.map', this.model.worldId)\n    }\n    if (id === 'lesson') {\n      const lessonNumber =\n        lesson ?? this.studentProgress.lessonsCurrentLessonNumber\n      void this.router.transitionTo(\n        'worlds.world.lessons.lesson',\n        this.model.worldId,\n        lessonNumber,\n      )\n    }\n    if (id === 'quiz') {\n      void this.router.transitionTo('worlds.world.map-quiz', this.model.worldId)\n    }\n    if (id === 'previous_world') {\n      if (Number(this.model.worldId) === 1) {\n        void this.router.transitionTo('worlds.world', 1)\n      }\n      void this.router.transitionTo(\n        'worlds.world',\n        Number(this.model.worldId) - 1,\n      )\n    }\n    if (id === 'next_world') {\n      void this.router.transitionTo(\n        'worlds.world',\n        Number(this.model.worldId) + 1,\n      )\n    }\n    if (id === 'logout') {\n      this.session.signOut()\n    }\n    if (id === 'placement_test') {\n      void this.router.transitionTo('lessons.placement-test')\n    }\n    if (id === 'certificate') {\n      void this.router.transitionTo(\n        'worlds.world.certificate',\n        this.model.worldId,\n      )\n    }\n  }\n\n  @debugAction({\n    eventType: { type: 'text' },\n    eventName: { type: 'text', optional: true },\n  })\n  @action\n  captureContentEvent({\n    eventType,\n    eventName,\n    eventPayload,\n  }: {\n    eventType: string\n    eventName?: string\n    eventPayload?: Record<string, unknown>\n  }) {\n    this.studentMetrics.captureGeneralEvent({\n      eventType,\n      eventName,\n      eventPayload,\n    })\n  }\n\n  @action\n  updateAreaRevealPosition({\n    areaRevealId: areaRevealPosition,\n  }: {\n    areaRevealId: string\n  }) {\n    void this.learningWorlds.updateAreaRevealPosition({\n      world: Number(this.model.worldId),\n      areaRevealPosition,\n    })\n  }\n\n  @debugAction({\n    position: {\n      type: 'select',\n      options: [\n        { label: 'Home Base Basic', value: 'home_base_1' },\n        { label: 'Activity Area Basic', value: 'activity_area_1' },\n        { label: 'Activity Area Posh', value: 'activity_area_2' },\n        { label: 'Music Area Basic', value: 'music_area_1' },\n        { label: 'Music Area Posh', value: 'music_area_2' },\n        { label: 'Music Area Poshest', value: 'music_area_3' },\n        { label: 'Games Area Basic', value: 'games_area_1' },\n        { label: 'Games Area Posh', value: 'games_area_2' },\n        { label: 'Book Area Basic', value: 'book_area_1' },\n        { label: 'Book Area Posh', value: 'book_area_2' },\n        { label: 'Book Area Poshest', value: 'book_area_3' },\n        { label: 'Trophy', value: 'trophy_1' },\n        { label: 'World Complete', value: 'world_complete' },\n        { label: 'Reset to null', value: 'reset' },\n      ],\n    },\n  })\n  @action\n  resetAreaRevealPosition({ position }: { position: string }) {\n    if (position === 'reset') {\n      void this.debugMode.resetWorldAreaRevealPosition(\n        Number(this.model.worldId),\n      )\n    } else {\n      this.updateAreaRevealPosition({ areaRevealId: position })\n    }\n  }\n\n  @debugAction({\n    onboardingSectionId: {\n      type: 'select',\n      options: [\n        { label: 'Welcome', value: 'welcome' },\n        { label: 'Home Base Avatar', value: 'home_base_avatar' },\n        { label: 'Home Base Awards', value: 'home_base_awards' },\n        { label: 'Home Base Change Room', value: 'home_base_change_room' },\n        { label: 'First Mission', value: 'first_mission' },\n        { label: 'First Area', value: 'first_area' },\n        { label: 'Activity Area', value: 'activity_area' },\n        { label: 'Music Area', value: 'music_area' },\n        { label: 'Games Area', value: 'games_area' },\n        { label: 'Book Area', value: 'book_area' },\n      ],\n    },\n  })\n  @action\n  onboardingSectionComplete({\n    onboardingSectionId: onboardingSection,\n  }: {\n    onboardingSectionId: string\n  }) {\n    void this.learningWorlds.onboardingSectionComplete({\n      onboardingSection,\n    })\n  }\n\n  @debugAction()\n  @action\n  resetOnboarding() {\n    void this.debugMode.resetWorldOnboarding()\n  }\n\n  @debugAction({\n    id: { type: 'text' },\n  })\n  @action\n  saveInteraction(args: { id: string }) {\n    void this.learningWorlds.saveInteraction({\n      world: Number(this.model.worldId),\n      interaction: args.id,\n    })\n  }\n\n  @debugAction()\n  @action\n  resetInteractions() {\n    void this.debugMode.resetWorldInteractions(Number(this.model.worldId))\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide()\n  }\n\n  @action\n  unhandledError({ error }: { error: UnhandledError }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  @action\n  @debugAction()\n  async resetProgressToPlacementTest() {\n    await this.debugMode.resetReadingPlacementTestProgress()\n    window.location.reload()\n  }\n\n  @action\n  @debugAction({\n    lesson: {\n      type: 'select',\n      options: generateLessonOptions('lessons', 130),\n    },\n    activity: {\n      type: 'number',\n      value: '1',\n    },\n  })\n  async resetProgressToLessonPosition({\n    lesson,\n    activity,\n  }: {\n    lesson: string\n    activity: string\n  }) {\n    await this.debugMode.resetReadingLessonProgress(\n      parseInt(lesson, 10),\n      parseInt(activity, 10),\n    )\n    window.location.reload()\n  }\n\n  @action\n  @debugAction({\n    map: {\n      type: 'select',\n      options: generateMapOptions(13),\n    },\n  })\n  async resetProgressToMapQuizPosition({ map }: { map: string }) {\n    await this.debugMode.resetReadingMapQuizProgress(parseInt(map, 10))\n    window.location.reload()\n  }\n\n  @action\n  @debugAction()\n  async resetProgressToCompleteLessonsPrecinct() {\n    await this.debugMode.resetReadingLessonProgress(131, 1)\n    window.location.reload()\n  }\n\n  @debugValue()\n  get jesterStateVariables(): Omit<WorldVariables, 'navigationItems'> {\n    const { navigationItems, ...variables } = this.model.variables\n    return variables\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport { contentError } from 're-client/utils/errors'\nimport type { ErrorLike } from 're-client/utils/errors'\nimport { debugAction, debugValue } from 're-client/utils/debug'\nimport { calculateMap } from 're-client/utils/progress-tools'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type ActivityService from 're-client/services/activity'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport { assert } from '@ember/debug'\nimport { v4 as uuidV4 } from 'uuid'\nimport { ReadingActivityEnum } from 're-client/graphql/graphql'\nimport type WorldsWorldLessonsLessonActivityRoute from 're-client/routes/worlds/world/lessons/lesson/activity'\nimport type ActivitySidebarService from 're-client/services/activity-sidebar'\nimport type LessonActivityMutationsService from 're-client/services/lesson-activity-mutations'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type LessonsService from 're-client/services/lessons'\nimport type AskReggieService from 're-client/services/ask-reggie'\nimport type PosthogService from 're-client/services/posthog'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport type { Attempt, Interaction } from 're-client/services/student-metrics'\nimport type DebugModeService from 're-client/services/debug-mode'\n\nconst {\n  studentProgress: {\n    progress: {\n      lessons: { lessonsPerMap },\n    },\n  },\n} = config\n\nconst answerValues = {\n  correct_10: [\n    {\n      correctAnswer: '18',\n      isCorrect: true,\n      studentAnswer: '18',\n      number: 1,\n    },\n    {\n      correctAnswer: '1',\n      isCorrect: true,\n      studentAnswer: '1',\n      number: 2,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 3,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 4,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 5,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 6,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 7,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 8,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 9,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 10,\n    },\n  ],\n  correct_9: [\n    {\n      correctAnswer: '18',\n      isCorrect: false,\n      studentAnswer: '17',\n      number: 1,\n    },\n    {\n      correctAnswer: '1',\n      isCorrect: true,\n      studentAnswer: '1',\n      number: 2,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 3,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 4,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 5,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 6,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 7,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 8,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 9,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 10,\n    },\n  ],\n  correct_8: [\n    {\n      correctAnswer: '18',\n      isCorrect: false,\n      studentAnswer: '17',\n      number: 1,\n    },\n    {\n      correctAnswer: '1',\n      isCorrect: false,\n      studentAnswer: '2',\n      number: 2,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 3,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 4,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 5,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 6,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 7,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 8,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 9,\n    },\n    {\n      correctAnswer: '12',\n      isCorrect: true,\n      studentAnswer: '12',\n      number: 10,\n    },\n  ],\n  correct_0: [\n    {\n      correctAnswer: '18',\n      isCorrect: false,\n      studentAnswer: '17',\n      number: 1,\n    },\n    {\n      correctAnswer: '2',\n      isCorrect: false,\n      studentAnswer: '1',\n      number: 2,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 3,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 4,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 5,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 6,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 7,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 8,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 9,\n    },\n    {\n      correctAnswer: '13',\n      isCorrect: false,\n      studentAnswer: '12',\n      number: 10,\n    },\n  ],\n}\n\ninterface SkillsQuizStudentAnswer {\n  correctAnswer: string\n  isCorrect: boolean\n  number: number\n  studentAnswer: string\n}\n\ninterface SkillsQuizResult {\n  answers: SkillsQuizStudentAnswer[]\n  uuid: string\n}\n\ntype AskReggieInteractionEvent =\n  | 'student_ask_reggie_opened'\n  | 'student_ask_reggie_closed'\n\n/**\n * The worlds lesson activity controller\n */\nexport default class WorldsWorldLessonsLessonActivityController extends Controller {\n  declare model: ModelFor<WorldsWorldLessonsLessonActivityRoute>\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare activity: ActivityService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  @service declare router: RouterService\n\n  @service declare user: UserService\n\n  @service declare loadingUi: LoadingUiService\n\n  @service declare activitySidebar: ActivitySidebarService\n\n  @service declare features: FeatureService\n\n  @service declare lessons: LessonsService\n\n  @service declare askReggie: AskReggieService\n\n  @service declare posthog: PosthogService\n\n  @service declare studentMetrics: StudentMetricsService\n\n  @service declare lessonActivityMutations: LessonActivityMutationsService\n\n  @service declare debugMode: DebugModeService\n\n  get askReggieLessonSkipAttempt() {\n    return (\n      this.model.askReggieLessonSkipAttempt &&\n      this.askReggie.data?.__typename === 'AskReggieSkipLesson'\n    )\n  }\n\n  get lessonId() {\n    return this.model.lessonId\n  }\n\n  get activityId() {\n    return this.model.activityId\n  }\n\n  get activityIndex() {\n    return this.activityId - 1\n  }\n\n  get nextActivity() {\n    return this.activity.nextReadingActivityForLesson(\n      this.lessonId,\n      this.activityId,\n    )\n  }\n\n  get lessonInPrecinct() {\n    const { lessonInPrecinct } = this.model\n    assert('model has lessonInPrecinct', lessonInPrecinct)\n    return lessonInPrecinct\n  }\n\n  /**\n   * Where the student should land when leaving the lesson, based on whether\n   * they entered from the world map (`?return_to=map`) or the world hub.\n   */\n  get backRoute() {\n    return this.model.returnToMap ? 'worlds.world.map' : 'worlds.world'\n  }\n\n  get contentSpec() {\n    return {\n      goNext: {\n        type: 'message',\n      },\n      goToMap: {\n        type: 'message',\n      },\n      incrementScore: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      saveSkillsQuizResult: {\n        type: 'message',\n        recoverableErrors: ['SaveFailed'],\n      },\n      unhandledError: {\n        type: 'message',\n      },\n      saveProgress: {\n        type: 'message',\n      },\n      saveLearningState: {\n        type: 'message',\n      },\n      goToCurrentLesson: {\n        type: 'message',\n      },\n      skipLesson: {\n        type: 'message',\n      },\n      abortSkipLessonAttempt: {\n        type: 'message',\n      },\n      captureAskReggieInteraction: {\n        type: 'message',\n      },\n    }\n  }\n\n  get currentPositionTitle() {\n    const currentLesson = this.studentProgress.lessonsCurrentLesson\n    if (currentLesson === 'quiz') {\n      return 'Quiz'\n    }\n    return currentLesson\n  }\n\n  get mapId() {\n    return calculateMap(parseInt(this.lessonId, 10), lessonsPerMap)\n  }\n\n  /**\n   * Whether the lesson the student is currently working through has already\n   * been completed, i.e. their furthest progress is past this lesson.\n   *\n   * Returns false when this is the lesson the student is up to, even if they\n   * are redoing an activity within that partially completed lesson.\n   */\n  get lessonPreviouslyCompleted() {\n    return (\n      this.studentProgress.lessonsCurrentLessonNumber >\n      parseInt(this.lessonId, 10)\n    )\n  }\n\n  @action\n  @debugAction()\n  async completeActivity() {\n    await this.saveProgress()\n    this.next()\n  }\n\n  /**\n   * Completes the rest of the current lesson by saving a result for the\n   * quiz activity and then the final activity in the lesson's progression\n   * sequence, before moving on.\n   */\n  @action\n  @debugAction()\n  async completeLesson() {\n    if (!this.debugMode.enabled) return\n\n    const activitiesForLesson = this.activity.getReadingActivitiesByLessonId(\n      this.lessonId,\n    )\n\n    const quizActivity = activitiesForLesson.find(\n      ({ activityType }) => activityType === ReadingActivityEnum.Quiz,\n    )\n    assert('lesson has a quiz activity', quizActivity !== undefined)\n\n    const finalActivity = this.activity.lastReadingActivityForLesson(\n      this.lessonId,\n    )\n\n    await this.lessonActivityMutations.saveSkillsQuizResult({\n      answers: answerValues.correct_10,\n      lessonInPrecinct: this.lessonInPrecinct,\n      attemptUuid: uuidV4(),\n      assignment: null,\n      askReggie: this.askReggieLessonSkipAttempt,\n    })\n\n    await this.lessonActivityMutations.saveReadingLessonActivityResult({\n      lessonInPrecinct: parseInt(this.lessonId, 10),\n      activityInLesson: finalActivity.activityInLesson,\n      attemptUuid: uuidV4(),\n      assignment: null,\n      askReggie: this.askReggieLessonSkipAttempt,\n    })\n\n    this.goToMap()\n  }\n\n  /**\n   * Transition to the next activity in the lesson if there is one.\n   * On the last activity, transition back to wherever the student came from.\n   */\n  @action\n  next() {\n    if (this.nextActivity) {\n      void this.router.transitionTo(\n        'worlds.world.lessons.lesson.activity',\n        this.model.worldId,\n        this.lessonId,\n        this.nextActivity.activityInLesson,\n      )\n      return\n    }\n\n    void this.router.transitionTo(this.backRoute, this.model.worldId)\n  }\n\n  /**\n   * Both Caper and Jester activities share this action\n   * Jester action is a message action which receives a single JSON-serializable object argument\n   */\n  @action\n  incrementScore(\n    args: number | { eggsToIncrement: number; flyingEggs?: boolean },\n  ) {\n    if (typeof args === 'number') {\n      // CAPER\n      this.user.incrementEggs(args)\n    } else {\n      // JESTER\n      if (args.eggsToIncrement < 1) return\n      if (args.flyingEggs === false) {\n        this.activitySidebar.flyingEggs = false\n      } else {\n        // playing flying eggs animation if flyingEggs option is true or omitted\n        this.activitySidebar.flyingEggs = true\n      }\n      this.activitySidebar.open(args.eggsToIncrement)\n    }\n  }\n\n  /**\n   * Completes activities for Caper activities\n   */\n  @action\n  async saveProgress(args?: { uuid: string }) {\n    const progressSnapshot = this.snapshotProgress()\n\n    let result\n\n    try {\n      result =\n        await this.lessonActivityMutations.saveReadingLessonActivityResult({\n          lessonInPrecinct: parseInt(this.lessonId, 10),\n          activityInLesson: this.activityId,\n          attemptUuid: args?.uuid ?? uuidV4(),\n          assignment: null,\n          askReggie: this.askReggieLessonSkipAttempt,\n        })\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveReadingLessonActivityResult] mutation failed',\n        error,\n      )\n    }\n\n    if (result) {\n      this.captureCompleteActivity(progressSnapshot)\n    }\n\n    return result?.readingLessonActivityResultCreate.readingLessonActivityResult\n  }\n\n  /**\n   * Records learning state for a Caper/Jester activity session, including\n   * abandoned activities. Fired when the activity canvas is destroyed,\n   * regardless of whether the activity was completed.\n   *\n   * `learningStateContextUuid` is echoed back by the game from the content\n   * variables passed at load time, because the canvas can be destroyed after\n   * the route has transitioned to the next activity — reading the route\n   * context from the live model at send time would report the wrong\n   * activity. Older game bundles that don't echo it yet fall back to the\n   * most recently tracked context (see `StudentMetricsService`).\n   */\n  @action\n  saveLearningState({\n    learningState: { content, activityName, ...learningState },\n    attempts,\n    interactions,\n    learningStateContextUuid,\n  }: {\n    learningState: { content: Record<string, unknown>; activityName: string }\n    completed: boolean\n    attempts?: Attempt[]\n    interactions?: Interaction[]\n    learningStateContextUuid?: string\n  }) {\n    this.studentMetrics.captureLearningState({\n      learningStateContextUuid,\n      activityName: activityName,\n      activityContent: content,\n      activityLearningState: learningState,\n      attempts: attempts ?? [],\n      interactions: interactions ?? [],\n    })\n  }\n\n  /**\n   * Transition to a specific activity\n   */\n  @action\n  changeActivity(newActivityID: number) {\n    void this.router.transitionTo(\n      'worlds.world.lessons.lesson.activity',\n      this.model.worldId,\n      this.lessonId,\n      newActivityID,\n    )\n  }\n\n  /**\n   * Transition back to wherever the student came from (the map or the world\n   * hub). Also used directly as the sidebar's back-button click handler.\n   */\n  @action\n  goToMap() {\n    void this.router.transitionTo(this.backRoute, this.model.worldId)\n  }\n\n  /**\n   * Transition to next activity.\n   * This is a Jester content action\n   */\n  @action\n  goNext() {\n    this.next()\n  }\n\n  /**\n   * Hide the full page loader when the content is loaded.\n   * This is a Jester content action\n   */\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  /**\n   * If the student passed and the quiz was an assignment then complete the task.\n   * This is a Jester content action\n   */\n  @debugAction({\n    answers: {\n      type: 'select',\n      options: [\n        { label: '10/10 Correct', value: 'correct_10' },\n        { label: '9/10 Correct', value: 'correct_9' },\n        { label: '8/10 Correct', value: 'correct_8' },\n        { label: '0/10 Correct', value: 'correct_0' },\n      ],\n      values: answerValues,\n    },\n  })\n  @action\n  async completeQuiz({ answers }: { answers: SkillsQuizStudentAnswer[] }) {\n    await this.saveSkillsQuizResult({ answers, uuid: uuidV4() })\n    this.goNext()\n  }\n  @action\n  async saveSkillsQuizResult({ answers, uuid: attemptUuid }: SkillsQuizResult) {\n    const { lessonInPrecinct } = this\n\n    const progressSnapshot = this.snapshotProgress()\n\n    const sanitisedAnswers = answers.map(\n      ({ correctAnswer, isCorrect, number, studentAnswer }) => ({\n        correctAnswer,\n        isCorrect,\n        number,\n        studentAnswer,\n      }),\n    )\n\n    try {\n      const result = await this.lessonActivityMutations.saveSkillsQuizResult({\n        answers: sanitisedAnswers,\n        lessonInPrecinct,\n        attemptUuid,\n        assignment: null,\n        askReggie: this.askReggieLessonSkipAttempt,\n      })\n\n      if (result) {\n        const {\n          readingEndOfLessonQuizResultCreate: {\n            readingEndOfLessonQuizResult: {\n              attempt,\n              autoPassed,\n              passed,\n              eggsEarned,\n            },\n          },\n        } = result\n\n        this.captureCompleteActivity(progressSnapshot, {\n          passed,\n          auto_passed: autoPassed,\n        })\n        return { attempt, autoPassed, lessonInPrecinct, passed, eggsEarned }\n      }\n\n      return { passed: false, lessonInPrecinct }\n    } catch (error) {\n      throw contentError('SaveFailed', error)\n    }\n  }\n  /**\n   * error handler action\n   * This is a Jester content action\n   * @param UnhandledErrorMessage\n   */\n  @action\n  unhandledError({ error }: { error: Partial<ErrorLike> }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  // Ask Reggie related actions\n  @action\n  goToCurrentLesson() {\n    const currentLesson = this.studentProgress.lessonsCurrentLessonNumber\n\n    this.router.transitionTo(\n      'worlds.world.lessons.lesson',\n      this.model.worldId,\n      currentLesson,\n    )\n  }\n\n  @action\n  async skipLesson() {\n    await this.askReggie.skipLesson(Number(this.lessonId))\n    if (this.askReggie.data?.__typename === 'AskReggieSkipLesson') {\n      void this.router.transitionTo(\n        'worlds.world.lessons.lesson.activity',\n        this.model.worldId,\n        this.lessonId,\n        this.askReggie.data.activity,\n      )\n      return\n    }\n    throw new Error('Skip lesson action did not result in lesson skip state.')\n  }\n\n  @action\n  async abortSkipLessonAttempt() {\n    await this.askReggie.abortSkipLessonAttempt()\n    void this.router.transitionTo(\n      'worlds.world.lessons.lesson.activity',\n      this.model.worldId,\n      this.lessonId,\n      this.studentProgress.lessons.currentActivity,\n    )\n  }\n\n  @debugAction({\n    event: {\n      type: 'select',\n      options: [\n        { label: 'Opened', value: 'student_ask_reggie_opened' },\n        { label: 'Closed', value: 'student_ask_reggie_closed' },\n      ],\n    },\n  })\n  @action\n  captureAskReggieInteraction({ event }: { event: AskReggieInteractionEvent }) {\n    const { student, ...askReggieContentVariables } =\n      this.model.askReggieContentVariables\n\n    const properties = {\n      lesson: Number(this.lessonId),\n      activity: this.activityId,\n      ...askReggieContentVariables,\n    }\n\n    this.posthog.capture(event, properties)\n  }\n\n  private snapshotProgress() {\n    return {\n      lesson: this.studentProgress.lessonsCurrentLesson,\n      activity: this.studentProgress.lessonsCurrentActivity,\n      map: this.studentProgress.lessonsCurrentMap,\n    }\n  }\n\n  private captureCompleteActivity(\n    progress: { lesson: string; activity: number; map: number },\n    extra?: { passed: boolean; auto_passed: boolean },\n  ) {\n    if (!this.features.isEnabled('re_posthog-capture-activity-visits')) return\n\n    const lessonMatchesProgress = this.lessonId === progress.lesson\n\n    this.posthog.capture('student_complete_activity', {\n      precinct: 'lessons',\n      lesson: Number(this.lessonId),\n      activity: this.activityId,\n      activity_type: this.model.activityType,\n      map: this.mapId,\n      progress_lesson:\n        progress.lesson === 'quiz' ? 'quiz' : Number(progress.lesson),\n      progress_activity: progress.activity,\n      progress_map: progress.map,\n      lesson_matches_progress: lessonMatchesProgress,\n      activity_matches_progress:\n        lessonMatchesProgress && this.activityId === progress.activity,\n      map_matches_progress: this.mapId === progress.map,\n      assignment_mode: false,\n      max_lives: this.model.maxLives,\n      '$feature/re_lessons-activities-max-lives': this.features\n        .getClient()\n        .getObjectDetails('re_lessons-activities-max-lives', { payload: 3 })\n        .variant,\n      ...extra,\n    })\n  }\n\n  @debugValue()\n  get askReggieQuery() {\n    return this.askReggie.data\n  }\n\n  @debugValue()\n  get askReggieVariables() {\n    return this.model.askReggieContentVariables\n  }\n\n  @debugAction()\n  @action\n  async askReggieAction() {\n    const typename = this.askReggie.data?.__typename\n\n    if (typename === 'AskReggieSkipLesson') {\n      await this.abortSkipLessonAttempt()\n    } else if (typename === 'AskReggieAvailable') {\n      await this.skipLesson()\n    } else {\n      console.warn('No ask reggie action to perform')\n    }\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'worlds/world/lessons/lesson/activity': WorldsWorldLessonsLessonActivityController\n  }\n}\n","import Controller from '@ember/controller'\nimport { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type WorldsMapQuizRoute from 're-client/routes/worlds/world/map-quiz'\nimport type CertificateService from 're-client/services/certificate'\nimport { debugAction } from 're-client/utils/debug'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport { graphql } from 're-client/graphql'\nimport { useMutation } from 're-client/resources/mutation'\nimport { v4 as uuidV4 } from 'uuid'\n\ntype CategoryAreaKey = string\ntype CategoryAreaResults = Record<'correct' | 'incorrect', string[]>\ninterface MapQuizResults {\n  correctCount: number\n  totalCount: number\n  correctAnswers: string[]\n  incorrectAnswers: Record<string, string>\n  categoryResults: Record<CategoryAreaKey, CategoryAreaResults>\n}\n\nfunction generateResult(correctCount: number) {\n  const result = {\n    correctCount,\n    totalCount: 15,\n    correctAnswers: [] as string[],\n    incorrectAnswers: {} as Record<string, string>,\n    categoryResults: {\n      'Comprehension Skills; Read text with accuracy and understanding.': {\n        correct: [\n          'Tuesday was a cloudy day.',\n          'Lions pounce on their food.',\n          'Flowers need water to grow.',\n        ],\n        incorrect: [],\n      },\n      'High-Frequency Sight Words; Read common high-frequency words.': {\n        correct: ['was day Tuesday', 'their food'],\n        incorrect: [],\n      },\n      'Phonics and Word Recognition; Associate long vowel sounds with their common spellings.':\n        {\n          correct: ['ay', 'ight', 'ore', 'ay', 'oat'],\n          incorrect: [],\n        },\n      'Text Features; Identify and understand grammar terms.': {\n        correct: ['nouns', 'verbs', 'compound words'],\n        incorrect: [],\n      },\n      'Comprehension Skills; Answer questions about key details.': {\n        incorrect: ['literal'],\n        correct: ['inferential'],\n      },\n      'Phonics and Word Recognition; Understand and use letter-sound correspondence.':\n        {\n          correct: ['soft c pounce'],\n          incorrect: [],\n        },\n      'Phonics and Word Recognition; Read and produce words with inflectional endings/suffixes.':\n        {\n          correct: ['add ed, chew chewed'],\n          incorrect: [],\n        },\n      'Phonemic and Phonological Awareness; Identify or produce rhyming words.':\n        {\n          correct: [\n            'light night bright sight',\n            'score wore store shore',\n            'okay day stay',\n            'boat coat float goat',\n          ],\n          incorrect: [],\n        },\n      'Phonics and Word Recognition; Decode and read three-syllable words.': {\n        correct: ['flowerpot'],\n        incorrect: [],\n      },\n      'Comprehension Skills; Answer questions about the meaning of words in a text.':\n        {\n          correct: ['opposites cool warm'],\n          incorrect: [],\n        },\n    } satisfies Record<CategoryAreaKey, CategoryAreaResults>,\n  }\n\n  for (let i = 1; i <= result.totalCount; i++) {\n    if (i <= correctCount) {\n      result.correctAnswers.push(`debug_map_quiz_${i}`)\n    } else {\n      result.incorrectAnswers[`debug_map_quiz_${i}`] = `wrong_${i}`\n    }\n  }\n\n  return result\n}\n\nexport const saveReadingMapQuizResultMutationDocument = graphql(/* GraphQL */ `\n  mutation SaveReadingMapQuizResult($input: ReadingMapQuizResultCreateInput!) {\n    readingMapQuizResultCreate(input: $input) {\n      student {\n        id\n        ...StudentProgressFragment\n        ...AssignmentTask\n        ...StudentQuestDataFragment\n        pendingCertificate {\n          ...PendingCertificateFragment\n        }\n      }\n    }\n  }\n`)\n\nexport default class WorldsMapQuizController extends Controller {\n  @service declare certificate: CertificateService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare features: FeatureService\n\n  @service declare caperLoader: CaperLoaderService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  declare interactive: {\n    callInteractionMethod(method: string, ...args: unknown[]): void\n  }\n\n  declare model: ModelFor<WorldsMapQuizRoute>\n\n  saveReadingMapQuizResultMutation = useMutation(\n    this,\n    saveReadingMapQuizResultMutationDocument,\n  )\n\n  isProcessingQuizDebugAction = false\n\n  get currentMap() {\n    return Number(this.model.worldId)\n  }\n\n  @action\n  @debugAction({\n    results: {\n      type: 'select',\n      options: [\n        { label: '15/15 - Gold Certificate', value: '15' },\n        { label: '14/15 - Gold Certificate', value: '14' },\n        { label: '13/15 - Silver Certificate', value: '13' },\n        { label: '12/15 - Silver Certificate', value: '12' },\n        { label: '11/15 - Bronze Certificate', value: '11' },\n      ],\n      values: {\n        15: generateResult(15),\n        14: generateResult(14),\n        13: generateResult(13),\n        12: generateResult(12),\n        11: generateResult(11),\n      },\n    },\n  })\n  async passQuiz({ results }: { results: MapQuizResults }) {\n    if (this.isProcessingQuizDebugAction) return\n\n    this.isProcessingQuizDebugAction = true\n    try {\n      await this.saveReadingMapQuizResult(results)\n      await this.next()\n    } finally {\n      this.isProcessingQuizDebugAction = false\n    }\n  }\n\n  @action\n  @debugAction()\n  async failQuiz() {\n    if (this.isProcessingQuizDebugAction) return\n\n    this.isProcessingQuizDebugAction = true\n    try {\n      await this.saveReadingMapQuizResult(generateResult(0))\n      await this.next()\n    } finally {\n      this.isProcessingQuizDebugAction = false\n    }\n  }\n\n  @action\n  async saveReadingMapQuizResult(results: MapQuizResults, uuid?: string) {\n    try {\n      const data = await this.saveReadingMapQuizResultMutation.current.mutate({\n        variables: {\n          input: {\n            attemptUuid: uuid ?? uuidV4(),\n            categoryResults: results.categoryResults,\n            correctAnswers: results.correctAnswers,\n            incorrectAnswers: results.incorrectAnswers,\n            quiz: Number(this.model.worldId),\n          },\n        },\n      })\n\n      if (!data)\n        throw new Error(\n          '[SaveReadingMaoQuizResult] No data returned from mutation',\n        )\n    } catch (error) {\n      this.errorHandler.handleError(\n        '[SaveReadingMaoQuizResult] mutation failed',\n        error,\n      )\n    }\n  }\n\n  @action\n  async quizCompleted(results: MapQuizResults, uuid?: string) {\n    await this.saveReadingMapQuizResult(results, uuid)\n    this.interactive.callInteractionMethod('nextable')\n  }\n\n  @action\n  @debugAction()\n  async next() {\n    const hasPendingCertificate = await this.certificate.hasPendingCertificate()\n    if (hasPendingCertificate) {\n      void this.router.transitionTo(\n        'worlds.world.certificate',\n        this.model.worldId,\n      )\n    } else {\n      void this.router.transitionTo('worlds.world', this.model.worldId)\n    }\n  }\n\n  @action\n  goBack() {\n    const route = this.model.returnToMap ? 'worlds.world.map' : 'worlds.world'\n    this.router.transitionTo(route, this.model.worldId)\n  }\n\n  /**\n   * Adds one to the student's eggs count\n   */\n  @action\n  @debugAction({\n    amount: {\n      type: 'number',\n      value: '1',\n    },\n  })\n  incrementScore(args: { amount: number } | number = 1) {\n    let amount\n\n    if (typeof args === 'number') {\n      amount = args\n    } else {\n      amount = args.amount\n    }\n\n    this.user.incrementEggs(amount)\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'worlds/world/map-quiz': WorldsMapQuizController\n  }\n}\n","import { action } from '@ember/object'\nimport Controller from '@ember/controller'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type LessonsService from 're-client/services/lessons'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ErrorLike } from 're-client/utils/errors'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type WorldsWorldMapIndexRoute from 're-client/routes/worlds/world/map'\nimport { debugAction } from 're-client/utils/debug'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport type StudentProgressService from 're-client/services/student-progress'\n\nexport default class WorldsWorldMapIndexController extends Controller {\n  declare model: ModelFor<WorldsWorldMapIndexRoute>\n  @service\n  declare router: RouterService\n\n  @service\n  declare lessons: LessonsService\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  @service\n  declare studentMetrics: StudentMetricsService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @action\n  @debugAction({ lesson: { type: 'text' } })\n  playLesson(args: { lesson: number }) {\n    const lessonId = args.lesson\n    this.studentMetrics.captureGeneralEvent({\n      eventType: 'world_map_lesson_selected',\n      eventPayload: {\n        alignsWithProgress:\n          String(lessonId) === this.studentProgress.lessonsCurrentLesson,\n      },\n    })\n    void this.router.transitionTo(\n      'worlds.world.lessons.lesson',\n      this.model.worldId,\n      lessonId,\n      { queryParams: { return_to: 'map' } },\n    )\n  }\n\n  @action\n  @debugAction()\n  playQuiz() {\n    this.studentMetrics.captureGeneralEvent({\n      eventType: 'world_map_quiz_selected',\n      eventPayload: {\n        alignsWithProgress:\n          this.studentProgress.lessonsCurrentLesson === 'quiz' &&\n          Number(this.model.worldId) === this.studentProgress.lessonsCurrentMap,\n      },\n    })\n    this.router.transitionTo('worlds.world.map-quiz', this.model.worldId, {\n      queryParams: { return_to: 'map' },\n    })\n  }\n\n  @action\n  @debugAction()\n  goHome() {\n    void this.router.transitionTo('worlds.world', this.model.worldId)\n  }\n\n  /**\n   * Hide the full page loader when the content is loaded.\n   * This is a Jester content action\n   */\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  /**\n   * error handler action\n   * This is a Jester content action\n   * @param UnhandledErrorMessage\n   */\n  @action\n  unhandledError({ error }: { error: Partial<ErrorLike> }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n\n  get contentSpec() {\n    return {\n      goHome: {\n        type: 'message',\n      },\n      playLesson: {\n        type: 'message',\n      },\n      playQuiz: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n}\n\ndeclare module '@ember/controller' {\n  interface Registry {\n    'worlds/world/map/index': WorldsWorldMapIndexController\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport Controller from '@ember/controller'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type MusicAreaRoute from 're-client/routes/worlds/world/music-area'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type { ErrorLike } from 're-client/utils/errors'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport { debugAction } from 're-client/utils/debug'\n\nexport default class MusicAreaController extends Controller {\n  declare model: ModelFor<MusicAreaRoute>\n  @service\n  declare router: RouterService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare learningWorlds: LearningWorldsService\n\n  @service\n  declare studentMetrics: StudentMetricsService\n\n  get contentSpec() {\n    return {\n      onboardingSectionComplete: {\n        type: 'message',\n      },\n      saveInteraction: {\n        type: 'message',\n      },\n      goToNavigationItem: {\n        type: 'message',\n      },\n      captureContentEvent: {\n        type: 'message',\n      },\n      readyForUserInput: {\n        type: 'message',\n      },\n      unhandledError: {\n        type: 'message',\n      },\n    }\n  }\n\n  @debugAction({\n    eventType: { type: 'text' },\n    eventName: { type: 'text', optional: true },\n  })\n  @action\n  captureContentEvent({\n    eventType,\n    eventName,\n    eventPayload,\n  }: {\n    eventType: string\n    eventName?: string\n    eventPayload?: Record<string, unknown>\n  }) {\n    this.studentMetrics.captureGeneralEvent({\n      eventType,\n      eventName,\n      eventPayload,\n    })\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Mmm', value: 'mmm' },\n        { label: \"Sam's Scare\", value: 'sams_scare' },\n        { label: 'I Can Fly', value: 'i_can_fly' },\n        { label: 'I Am', value: 'i_am' },\n        { label: 'Being on a Boat', value: 'being_on_a_boat' },\n        { label: \"Sam's Search for C\", value: 'sams_search_for_c' },\n        { label: 'Floating Flobbies', value: 'floating_flobbies' },\n      ],\n    },\n  })\n  @action\n  saveInteraction(args: { id: string }) {\n    void this.learningWorlds.saveInteraction({\n      world: Number(this.model.worldId),\n      interaction: args.id,\n    })\n  }\n\n  @debugAction({\n    id: { type: 'text', value: 'back' },\n  })\n  @action\n  goToNavigationItem(args: { id: string }) {\n    if (args.id === 'back') {\n      this.router.transitionTo('worlds.world', this.model.worldId)\n    }\n  }\n\n  @debugAction({\n    id: {\n      type: 'select',\n      options: [\n        { label: 'Welcome', value: 'welcome' },\n        { label: 'Music Area', value: 'music_area' },\n      ],\n    },\n  })\n  @action\n  onboardingSectionComplete({\n    onboardingSectionId,\n  }: {\n    onboardingSectionId: string\n  }) {\n    void this.learningWorlds.onboardingSectionComplete({\n      onboardingSection: onboardingSectionId,\n    })\n  }\n\n  @action\n  readyForUserInput() {\n    this.loadingUi.hide() // clear the loading screen\n  }\n\n  @action\n  unhandledError({ error }: { error: Partial<ErrorLike> }) {\n    this.errorHandler.handleContentUnhandledError(error)\n  }\n}\n","import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow'\n\nsetupDeprecationWorkflow({\n  workflow: [\n    { handler: 'silence', matchId: 'template-action' },\n    { handler: 'silence', matchId: 'ember-string.add-package' },\n    { handler: 'throw', matchId: 'routing.transition-methods' },\n    { handler: 'throw', matchId: 'ember-test-waiters-legacy-module-name' },\n  ],\n})\n","/* eslint-disable */\nimport * as types from './graphql';\nimport type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size\n */\ntype Documents = {\n    \"\\n  mutation SaveDrivingTestQuizResult(\\n    $input: DrivingTestQuizResultCreateInput!\\n  ) {\\n    drivingTestQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\": typeof types.SaveDrivingTestQuizResultDocument,\n    \"\\n  mutation SaveDrivingTestGameResult(\\n    $input: DrivingTestGameResultCreateInput!\\n  ) {\\n    drivingTestGameResultCreate(input: $input) {\\n      student {\\n        id\\n        eggs\\n        ...StudentProgressFragment\\n      }\\n    }\\n  }\\n\": typeof types.SaveDrivingTestGameResultDocument,\n    \"\\n  mutation SaveGameScore($input: GameScoreSaveInput!) {\\n    gameScoreSave(input: $input) {\\n      game {\\n        id\\n        personalBest {\\n          score\\n        }\\n        highScores(limit: 10) {\\n          name\\n          score\\n        }\\n      }\\n    }\\n  }\\n\": typeof types.SaveGameScoreDocument,\n    \"\\n  mutation PurchaseGamePlay($input: GamePlayPurchaseInput!) {\\n    gamePlayPurchase(input: $input) {\\n      __typename\\n      ... on GamePlayPurchaseSuccess {\\n        student {\\n          id\\n          eggs\\n        }\\n      }\\n      ... on GamePlayPurchaseInsufficientFunds {\\n        student {\\n          id\\n          eggs\\n        }\\n      }\\n    }\\n  }\\n\": typeof types.PurchaseGamePlayDocument,\n    \"\\n  mutation SaveReadingMapQuizResult($input: ReadingMapQuizResultCreateInput!) {\\n    readingMapQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n        ...StudentQuestDataFragment\\n        pendingCertificate {\\n          ...PendingCertificateFragment\\n        }\\n      }\\n    }\\n  }\\n\": typeof types.SaveReadingMapQuizResultDocument,\n    \"\\n    mutation SaveReadingLessonPlacementTestResult(\\n      $input: ReadingLessonPlacementTestResultCreateInput!\\n    ) {\\n      readingLessonPlacementTestResultCreate(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n          ...StudentQuestDataFragment\\n          worldsStartingLesson\\n        }\\n      }\\n    }\\n  \": typeof types.SaveReadingLessonPlacementTestResultDocument,\n    \"\\n  mutation SaveBookQuizResult($input: BookQuizResultCreateInput!) {\\n    bookQuizResultCreate(input: $input) {\\n      bookQuizResult {\\n        reward {\\n          eggs\\n          milestone\\n          passed\\n        }\\n      }\\n      student {\\n        id\\n        eggs\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\": typeof types.SaveBookQuizResultDocument,\n    \"\\n    mutation SaveSpellingLessonActivityResult(\\n      $input: SpellingLessonActivityResultCreateInput!\\n    ) {\\n      spellingLessonActivityResultCreate(input: $input) {\\n        spellingLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \": typeof types.SaveSpellingLessonActivityResultDocument,\n    \"\\n    mutation SaveSpellingLessonQuizResult(\\n      $input: SpellingLessonQuizResultCreateInput!\\n    ) {\\n      spellingLessonQuizResultCreate(input: $input) {\\n        spellingLessonQuizResult {\\n          passed\\n          reward {\\n            eggs\\n            shop\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \": typeof types.SaveSpellingLessonQuizResultDocument,\n    \"\\n  mutation SaveSpellingMapQuizResult(\\n    $input: SpellingMapQuizResultCreateInput!\\n  ) {\\n    spellingMapQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\": typeof types.SaveSpellingMapQuizResultDocument,\n    \"\\n    mutation SaveSpellingLessonPlacementTestResult(\\n      $input: SpellingLessonPlacementTestResultCreateInput!\\n    ) {\\n      spellingLessonPlacementTestResultCreate(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \": typeof types.SaveSpellingLessonPlacementTestResultDocument,\n    \"\\n    mutation SaveClinkerCastleLessonActivityResult(\\n      $input: ClinkerCastleLessonActivityResultCreateInput!\\n    ) {\\n      clinkerCastleLessonActivityResultCreate(input: $input) {\\n        clinkerCastleLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \": typeof types.SaveClinkerCastleLessonActivityResultDocument,\n    \"\\n    mutation SaveClinkerCastleLessonQuizResult(\\n      $input: ClinkerCastleLessonQuizResultCreateInput!\\n    ) {\\n      clinkerCastleLessonQuizResultCreate(input: $input) {\\n        clinkerCastleLessonQuizResult {\\n          reward {\\n            eggs\\n            prize\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \": typeof types.SaveClinkerCastleLessonQuizResultDocument,\n    \"\\n  query GetInitialAppData {\\n    student {\\n      ...StudentUserFragment\\n      ...AssignmentTask\\n      ...StudentProgressFragment\\n      ...StudentQuestDataFragment\\n      ...StudentAskReggieDataFragment\\n    }\\n  }\\n  query ReadingActivities {\\n    readingActivities {\\n      ...ReadingActivityFragment\\n    }\\n  }\\n\": typeof types.GetInitialAppDataDocument,\n    \"\\n  fragment StudentMyAwardsFragment on Student {\\n    id\\n    badges {\\n      id\\n      lesson\\n      colour\\n    }\\n    certificates {\\n      id\\n      createdAt\\n      map\\n      url\\n      colour\\n    }\\n    pendingCertificate {\\n      id\\n      map\\n    }\\n    ...StudentProgressFragment\\n  }\\n\": typeof types.StudentMyAwardsFragmentFragmentDoc,\n    \"\\n  query GetMyAwards {\\n    student {\\n      ...StudentMyAwardsFragment\\n    }\\n  }\\n\": typeof types.GetMyAwardsDocument,\n    \"\\n  query ReadBooks($first: Int!, $after: String) {\\n    student {\\n      id\\n      readBooks(first: $first, after: $after) {\\n        edges {\\n          node {\\n            code\\n            coverUrl\\n          }\\n        }\\n        pageInfo {\\n          hasNextPage\\n          endCursor\\n        }\\n      }\\n    }\\n  }\\n\": typeof types.ReadBooksDocument,\n    \"\\n  query GetGames {\\n    games {\\n      id\\n      personalBest {\\n        score\\n      }\\n      highScores(limit: 10) {\\n        name\\n        score\\n      }\\n    }\\n  }\\n\": typeof types.GetGamesDocument,\n    \"\\n  query RecommendedBooks {\\n    student {\\n      id\\n      recommendedBooks {\\n        code\\n        coverUrl\\n      }\\n      readBooks {\\n        totalCount\\n      }\\n    }\\n  }\\n\": typeof types.RecommendedBooksDocument,\n    \"\\n  fragment ReadingActivityFragment on ReadingActivity {\\n    precinct\\n    activityInLesson\\n    activityType\\n    framework\\n    id\\n    lessonInMap\\n    lessonInPrecinct\\n    manifestBundle\\n    manifestKey\\n    map\\n    ... on ReadingActivityBook {\\n      bookCode\\n    }\\n  }\\n\": typeof types.ReadingActivityFragmentFragmentDoc,\n    \"\\n  query ReadingActivities {\\n    readingActivities {\\n      ...ReadingActivityFragment\\n    }\\n  }\\n\": typeof types.ReadingActivitiesDocument,\n    \"\\n  fragment StudentAskReggieDataFragment on Student {\\n    id\\n    askReggie {\\n      __typename\\n      ... on AskReggieAvailable {\\n        actions\\n      }\\n      ... on AskReggieUnavailable {\\n        reason\\n      }\\n      ... on AskReggieSkipLesson {\\n        lesson\\n        activity\\n      }\\n      ... on AskReggieDisabled {\\n        disabled\\n      }\\n    }\\n  }\\n\": typeof types.StudentAskReggieDataFragmentFragmentDoc,\n    \"\\n  query GetStudentAskReggie {\\n    student {\\n      ...StudentAskReggieDataFragment\\n    }\\n  }\\n\": typeof types.GetStudentAskReggieDocument,\n    \"\\n  mutation AskReggieLessonSkipAbort {\\n    askReggieLessonSkipAbort {\\n      student {\\n        ...StudentAskReggieDataFragment\\n      }\\n    }\\n  }\\n\": typeof types.AskReggieLessonSkipAbortDocument,\n    \"\\n    mutation AskReggieAttemptLessonSkip(\\n      $input: AskReggieAttemptLessonSkipInput!\\n    ) {\\n      askReggieAttemptLessonSkip(input: $input) {\\n        student {\\n          ...StudentAskReggieDataFragment\\n        }\\n      }\\n    }\\n  \": typeof types.AskReggieAttemptLessonSkipDocument,\n    \"\\n  fragment AssignmentTask on Student {\\n    assignmentTask {\\n      ... on AssignmentTaskLesson {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskSpelling {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskClinkerCastle {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskDrivingTests {\\n        assignmentUuid\\n        category\\n        endAt\\n        gradePosition\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on Error {\\n        message\\n      }\\n      __typename\\n    }\\n  }\\n\": typeof types.AssignmentTaskFragmentDoc,\n    \"\\n  query GetStudentCurrentTask {\\n    student {\\n      __typename\\n      id\\n      ...AssignmentTask\\n    }\\n  }\\n\": typeof types.GetStudentCurrentTaskDocument,\n    \"\\n  query Book($input: BookQueryInput!) {\\n    book(input: $input) {\\n      content\\n    }\\n  }\\n\": typeof types.BookDocument,\n    \"\\n  fragment CertificateFragment on Certificate {\\n    id\\n    createdAt\\n    map\\n    scorePercentage\\n    url\\n    colour\\n  }\\n\": typeof types.CertificateFragmentFragmentDoc,\n    \"\\n  query GetCertificates {\\n    student {\\n      id\\n      certificates {\\n        ...CertificateFragment\\n      }\\n    }\\n  }\\n\": typeof types.GetCertificatesDocument,\n    \"\\n  fragment PendingCertificateFragment on PendingCertificate {\\n    id\\n    colour\\n    map\\n    quizResultCreatedAt\\n    scorePercentage\\n  }\\n\": typeof types.PendingCertificateFragmentFragmentDoc,\n    \"\\n  query GetPendingCertificate {\\n    student {\\n      id\\n      firstName\\n      lastName\\n      name @client\\n      pendingCertificate {\\n        ...PendingCertificateFragment\\n      }\\n    }\\n  }\\n\": typeof types.GetPendingCertificateDocument,\n    \"\\n  mutation SaveCertificate($input: CertificateSaveInput!) {\\n    certificateSave(input: $input) {\\n      certificate {\\n        id\\n        url\\n      }\\n      student {\\n        id\\n        pendingCertificate {\\n          ...PendingCertificateFragment\\n        }\\n        certificates {\\n          ...CertificateFragment\\n        }\\n      }\\n    }\\n  }\\n\": typeof types.SaveCertificateDocument,\n    \"\\n  query GetPendingCertificateUploadUrl($input: PendingCertificateQueryInput!) {\\n    getPendingCertificate(input: $input) {\\n      id\\n      uploadUrl\\n    }\\n  }\\n\": typeof types.GetPendingCertificateUploadUrlDocument,\n    \"\\n    mutation ResetReadingLessonProgress(\\n      $input: StudentProgressReadingLessonResetInput!\\n    ) {\\n      studentProgressReadingLessonReset(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \": typeof types.ResetReadingLessonProgressDocument,\n    \"\\n    mutation ResetReadingMapQuizProgress(\\n      $input: StudentProgressReadingMapQuizResetInput!\\n    ) {\\n      studentProgressReadingMapQuizReset(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \": typeof types.ResetReadingMapQuizProgressDocument,\n    \"\\n    mutation ResetReadingPlacementTestProgress {\\n      studentProgressReadingPlacementTestReset {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \": typeof types.ResetReadingPlacementTestProgressDocument,\n    \"\\n    mutation ResetStudentWorldInteraction(\\n      $input: StudentWorldInteractionResetInput!\\n    ) {\\n      studentWorldInteractionReset(input: $input) {\\n        world {\\n          id\\n          previousInteractions\\n        }\\n      }\\n    }\\n  \": typeof types.ResetStudentWorldInteractionDocument,\n    \"\\n    mutation ResetStudentWorldAreaRevealPosition(\\n      $input: StudentWorldAreaRevealPositionResetInput!\\n    ) {\\n      studentWorldAreaRevealPositionReset(input: $input) {\\n        world {\\n          id\\n          areaRevealPosition\\n        }\\n      }\\n    }\\n  \": typeof types.ResetStudentWorldAreaRevealPositionDocument,\n    \"\\n    mutation ResetStudentWorldOnboarding {\\n      studentWorldOnboardingReset {\\n        student {\\n          id\\n          previousWorldsOnboarding\\n        }\\n      }\\n    }\\n  \": typeof types.ResetStudentWorldOnboardingDocument,\n    \"\\n  fragment WorldDataFragment on World {\\n    id\\n    previousInteractions\\n    areaRevealPosition\\n  }\\n\": typeof types.WorldDataFragmentFragmentDoc,\n    \"\\n  query GetWorldData($worldId: ID!) {\\n    student {\\n      id\\n      previousWorldsOnboarding\\n      world(id: $worldId) {\\n        ...WorldDataFragment\\n      }\\n    }\\n  }\\n\": typeof types.GetWorldDataDocument,\n    \"\\n    mutation CreateStudentWorldInteraction(\\n      $input: StudentWorldInteractionCreateInput!\\n    ) {\\n      studentWorldInteractionCreate(input: $input) {\\n        world {\\n          ...WorldDataFragment\\n        }\\n      }\\n    }\\n  \": typeof types.CreateStudentWorldInteractionDocument,\n    \"\\n    mutation SetStudentWorldAreaRevealPosition(\\n      $input: StudentWorldAreaRevealPositionSetInput!\\n    ) {\\n      studentWorldAreaRevealPositionSet(input: $input) {\\n        world {\\n          ...WorldDataFragment\\n        }\\n      }\\n    }\\n  \": typeof types.SetStudentWorldAreaRevealPositionDocument,\n    \"\\n    mutation CompleteStudentWorldOnboardingSection(\\n      $input: StudentWorldOnboardingSectionCompleteInput!\\n    ) {\\n      studentWorldOnboardingSectionComplete(input: $input) {\\n        student {\\n          id\\n          previousWorldsOnboarding\\n        }\\n      }\\n    }\\n  \": typeof types.CompleteStudentWorldOnboardingSectionDocument,\n    \"\\n  mutation SaveSkillsQuizResult(\\n    $input: ReadingEndOfLessonQuizResultCreateInput!\\n  ) {\\n    readingEndOfLessonQuizResultCreate(input: $input) {\\n      readingEndOfLessonQuizResult {\\n        attempt\\n        autoPassed\\n        lessonInPrecinct\\n        passed\\n        eggsEarned\\n      }\\n      student {\\n        id\\n        badges {\\n          id\\n          lesson\\n          colour\\n        }\\n        ...StudentProgressFragment\\n        ...StudentQuestDataFragment\\n        ...AssignmentTask\\n        ...StudentAskReggieDataFragment\\n      }\\n    }\\n  }\\n\": typeof types.SaveSkillsQuizResultDocument,\n    \"\\n    mutation SaveReadingLessonActivityResult(\\n      $input: ReadingLessonActivityResultCreateInput!\\n    ) {\\n      readingLessonActivityResultCreate(input: $input) {\\n        readingLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n          ...StudentQuestDataFragment\\n          ...StudentAskReggieDataFragment\\n        }\\n      }\\n    }\\n  \": typeof types.SaveReadingLessonActivityResultDocument,\n    \"\\n  fragment StudentQuestDataFragment on Student {\\n    id\\n    quest {\\n      easyGoal {\\n        __typename\\n        goalType: __typename\\n        ... on QuestGoalEarnEggs {\\n          id\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n      }\\n      primaryGoal {\\n        __typename\\n        goalType: __typename\\n\\n        ... on QuestGoalLesson {\\n          id\\n          lesson\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n        ... on QuestGoalMap {\\n          id\\n          map\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n      }\\n    }\\n  }\\n\": typeof types.StudentQuestDataFragmentFragmentDoc,\n    \"\\n  query GetStudentQuest {\\n    student {\\n      ...StudentQuestDataFragment\\n    }\\n  }\\n\": typeof types.GetStudentQuestDocument,\n    \"\\n  mutation AcknowledgeQuestGoalAlert(\\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\\n  ) {\\n    studentQuestGoalAcknowledgeComplete(input: $input) {\\n      student {\\n        id\\n        eggs\\n        ...StudentQuestDataFragment\\n      }\\n    }\\n  }\\n\": typeof types.AcknowledgeQuestGoalAlertDocument,\n    \"\\n  fragment ReadingGoalsQuizFragment on ReadingGoalsQuiz {\\n    area\\n    badgeReward\\n    id\\n    level\\n    name\\n  }\\n\": typeof types.ReadingGoalsQuizFragmentFragmentDoc,\n    \"\\n  fragment ReadingGoalsQuizSummaryFragment on ReadingGoalsQuizSummary {\\n    attemptsThisWeek\\n    eggsReward\\n    id\\n    passed\\n    secondsToPass\\n    timestamp\\n  }\\n\": typeof types.ReadingGoalsQuizSummaryFragmentFragmentDoc,\n    \"\\n  fragment QuizAnswerFragment on QuizAnswer {\\n    correct\\n    correctAnswer\\n    studentAnswer\\n  }\\n\": typeof types.QuizAnswerFragmentFragmentDoc,\n    \"\\n  fragment ReadingGoalsQuizResultFragment on ReadingGoalsQuizResult {\\n    answers {\\n      ...QuizAnswerFragment\\n    }\\n    attemptUuid\\n    createdAt\\n    eggsReward\\n    id\\n    level\\n    passed\\n    quizId\\n    score\\n  }\\n\": typeof types.ReadingGoalsQuizResultFragmentFragmentDoc,\n    \"\\n  query GetReadingGoalsQuizzes {\\n    readingGoalsQuizzes {\\n      ...ReadingGoalsQuizFragment\\n    }\\n  }\\n\": typeof types.GetReadingGoalsQuizzesDocument,\n    \"\\n  query GetReadingGoalsQuizRecord {\\n    student {\\n      readingGoalsMinimumLevel\\n      readingGoalsQuizSecondsToNextWeek\\n      readingGoalsQuizSummaries {\\n        ...ReadingGoalsQuizSummaryFragment\\n      }\\n    }\\n  }\\n\": typeof types.GetReadingGoalsQuizRecordDocument,\n    \"\\n  mutation CreateReadingGoalsQuizResult(\\n    $input: ReadingGoalsQuizResultCreateInput!\\n  ) {\\n    readingGoalsQuizResultCreate(input: $input) {\\n      readingGoalsQuizResult {\\n        passed\\n        eggsReward\\n      }\\n      student {\\n        id\\n        eggs\\n        name @client\\n        readingGoalsQuizSummaries {\\n          ...ReadingGoalsQuizSummaryFragment\\n        }\\n      }\\n    }\\n  }\\n\": typeof types.CreateReadingGoalsQuizResultDocument,\n    \"\\n  mutation CapturePageView($input: CapturePageViewInput!) {\\n    capturePageView(input: $input) {\\n      success\\n    }\\n  }\\n\": typeof types.CapturePageViewDocument,\n    \"\\n    mutation SaveReadingActivityLearningState(\\n      $input: SaveReadingActivityLearningStateInput!\\n    ) {\\n      saveReadingActivityLearningState(input: $input) {\\n        success\\n      }\\n    }\\n  \": typeof types.SaveReadingActivityLearningStateDocument,\n    \"\\n  fragment StudentProgressFragment on Student {\\n    id\\n    targetProgressionSequenceVersion\\n    progress {\\n      progressionSequenceVersion\\n      drivingTests {\\n        sightWords\\n        lettersAndSounds\\n        contentWords\\n      }\\n      lessons {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n        showPlacementTest\\n      }\\n      spelling {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n        showPlacementTest\\n      }\\n      clinkerCastle {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n      }\\n    }\\n  }\\n\": typeof types.StudentProgressFragmentFragmentDoc,\n    \"\\n  query StudentProgress {\\n    student {\\n      ...StudentProgressFragment\\n    }\\n  }\\n\": typeof types.StudentProgressDocument,\n    \"\\n  mutation StudentProgressionSequenceMigrate {\\n    studentProgressionSequenceMigrate {\\n      student {\\n        ...StudentProgressFragment\\n      }\\n    }\\n  }\\n\": typeof types.StudentProgressionSequenceMigrateDocument,\n    \"\\n  mutation AvatarUpdate($input: AvatarUpdateInput!) {\\n    avatarUpdate(input: $input) {\\n      student {\\n        id\\n        avatarUrl\\n        dna {\\n          arms\\n          decal\\n          egg\\n          extra\\n          hat\\n          head\\n          legs\\n          sunnies\\n        }\\n      }\\n    }\\n  }\\n\": typeof types.AvatarUpdateDocument,\n    \"\\n  fragment StudentUserFragment on Student {\\n    id\\n    avatarUrl\\n    eggs\\n    firstName\\n    lastName\\n    gamesAccess\\n    playroomAccess\\n    name @client\\n    remoteId @client\\n    dna {\\n      arms\\n      decal\\n      egg\\n      extra\\n      hat\\n      head\\n      legs\\n      sunnies\\n    }\\n    dnaHash @client\\n    locale\\n    backgroundMusicDisabled\\n    rosterEnabled\\n    customerType\\n    parentId\\n    worldsStartingLesson\\n    learningWorldsEnabled\\n  }\\n\": typeof types.StudentUserFragmentFragmentDoc,\n    \"\\n  fragment StudentLocaleFragment on Student {\\n    locale\\n  }\\n\": typeof types.StudentLocaleFragmentFragmentDoc,\n    \"\\n  query GetStudent {\\n    student {\\n      ...StudentUserFragment\\n      ...StudentLocaleFragment\\n      ...StudentQuestDataFragment\\n    }\\n  }\\n\": typeof types.GetStudentDocument,\n    \"\\n  fragment PlazaPollFragment on PlazaPoll {\\n    id\\n    startDate\\n    endDate\\n    month\\n    week\\n    votes {\\n      count\\n      answer\\n    }\\n  }\\n\": typeof types.PlazaPollFragmentFragmentDoc,\n    \"\\n  query GetPlazaPolls($currentDate: ISO8601Date!) {\\n    plazaPolls(input: { currentDate: $currentDate }) {\\n      ...PlazaPollFragment\\n    }\\n\\n    student {\\n      firstName\\n      id\\n      plazaPollVote(dateVoted: $currentDate) {\\n        dateVoted\\n        plazaPollId\\n        votedAnswer\\n      }\\n    }\\n  }\\n\": typeof types.GetPlazaPollsDocument,\n    \"\\n  mutation SavePlazaPollVote($input: PlazaPollVoteCreateInput!) {\\n    plazaPollVoteCreate(input: $input) {\\n      dateVoted\\n      plazaPollId\\n      votedAnswer\\n    }\\n  }\\n\": typeof types.SavePlazaPollVoteDocument,\n    \"\\n  mutation DeletePlazaPollVote($input: PlazaPollVoteDestroyInput!) {\\n    plazaPollVoteDestroy(input: $input) {\\n      ...PlazaPollFragment\\n    }\\n  }\\n\": typeof types.DeletePlazaPollVoteDocument,\n};\nconst documents: Documents = {\n    \"\\n  mutation SaveDrivingTestQuizResult(\\n    $input: DrivingTestQuizResultCreateInput!\\n  ) {\\n    drivingTestQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\": types.SaveDrivingTestQuizResultDocument,\n    \"\\n  mutation SaveDrivingTestGameResult(\\n    $input: DrivingTestGameResultCreateInput!\\n  ) {\\n    drivingTestGameResultCreate(input: $input) {\\n      student {\\n        id\\n        eggs\\n        ...StudentProgressFragment\\n      }\\n    }\\n  }\\n\": types.SaveDrivingTestGameResultDocument,\n    \"\\n  mutation SaveGameScore($input: GameScoreSaveInput!) {\\n    gameScoreSave(input: $input) {\\n      game {\\n        id\\n        personalBest {\\n          score\\n        }\\n        highScores(limit: 10) {\\n          name\\n          score\\n        }\\n      }\\n    }\\n  }\\n\": types.SaveGameScoreDocument,\n    \"\\n  mutation PurchaseGamePlay($input: GamePlayPurchaseInput!) {\\n    gamePlayPurchase(input: $input) {\\n      __typename\\n      ... on GamePlayPurchaseSuccess {\\n        student {\\n          id\\n          eggs\\n        }\\n      }\\n      ... on GamePlayPurchaseInsufficientFunds {\\n        student {\\n          id\\n          eggs\\n        }\\n      }\\n    }\\n  }\\n\": types.PurchaseGamePlayDocument,\n    \"\\n  mutation SaveReadingMapQuizResult($input: ReadingMapQuizResultCreateInput!) {\\n    readingMapQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n        ...StudentQuestDataFragment\\n        pendingCertificate {\\n          ...PendingCertificateFragment\\n        }\\n      }\\n    }\\n  }\\n\": types.SaveReadingMapQuizResultDocument,\n    \"\\n    mutation SaveReadingLessonPlacementTestResult(\\n      $input: ReadingLessonPlacementTestResultCreateInput!\\n    ) {\\n      readingLessonPlacementTestResultCreate(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n          ...StudentQuestDataFragment\\n          worldsStartingLesson\\n        }\\n      }\\n    }\\n  \": types.SaveReadingLessonPlacementTestResultDocument,\n    \"\\n  mutation SaveBookQuizResult($input: BookQuizResultCreateInput!) {\\n    bookQuizResultCreate(input: $input) {\\n      bookQuizResult {\\n        reward {\\n          eggs\\n          milestone\\n          passed\\n        }\\n      }\\n      student {\\n        id\\n        eggs\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\": types.SaveBookQuizResultDocument,\n    \"\\n    mutation SaveSpellingLessonActivityResult(\\n      $input: SpellingLessonActivityResultCreateInput!\\n    ) {\\n      spellingLessonActivityResultCreate(input: $input) {\\n        spellingLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \": types.SaveSpellingLessonActivityResultDocument,\n    \"\\n    mutation SaveSpellingLessonQuizResult(\\n      $input: SpellingLessonQuizResultCreateInput!\\n    ) {\\n      spellingLessonQuizResultCreate(input: $input) {\\n        spellingLessonQuizResult {\\n          passed\\n          reward {\\n            eggs\\n            shop\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \": types.SaveSpellingLessonQuizResultDocument,\n    \"\\n  mutation SaveSpellingMapQuizResult(\\n    $input: SpellingMapQuizResultCreateInput!\\n  ) {\\n    spellingMapQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\": types.SaveSpellingMapQuizResultDocument,\n    \"\\n    mutation SaveSpellingLessonPlacementTestResult(\\n      $input: SpellingLessonPlacementTestResultCreateInput!\\n    ) {\\n      spellingLessonPlacementTestResultCreate(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \": types.SaveSpellingLessonPlacementTestResultDocument,\n    \"\\n    mutation SaveClinkerCastleLessonActivityResult(\\n      $input: ClinkerCastleLessonActivityResultCreateInput!\\n    ) {\\n      clinkerCastleLessonActivityResultCreate(input: $input) {\\n        clinkerCastleLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \": types.SaveClinkerCastleLessonActivityResultDocument,\n    \"\\n    mutation SaveClinkerCastleLessonQuizResult(\\n      $input: ClinkerCastleLessonQuizResultCreateInput!\\n    ) {\\n      clinkerCastleLessonQuizResultCreate(input: $input) {\\n        clinkerCastleLessonQuizResult {\\n          reward {\\n            eggs\\n            prize\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \": types.SaveClinkerCastleLessonQuizResultDocument,\n    \"\\n  query GetInitialAppData {\\n    student {\\n      ...StudentUserFragment\\n      ...AssignmentTask\\n      ...StudentProgressFragment\\n      ...StudentQuestDataFragment\\n      ...StudentAskReggieDataFragment\\n    }\\n  }\\n  query ReadingActivities {\\n    readingActivities {\\n      ...ReadingActivityFragment\\n    }\\n  }\\n\": types.GetInitialAppDataDocument,\n    \"\\n  fragment StudentMyAwardsFragment on Student {\\n    id\\n    badges {\\n      id\\n      lesson\\n      colour\\n    }\\n    certificates {\\n      id\\n      createdAt\\n      map\\n      url\\n      colour\\n    }\\n    pendingCertificate {\\n      id\\n      map\\n    }\\n    ...StudentProgressFragment\\n  }\\n\": types.StudentMyAwardsFragmentFragmentDoc,\n    \"\\n  query GetMyAwards {\\n    student {\\n      ...StudentMyAwardsFragment\\n    }\\n  }\\n\": types.GetMyAwardsDocument,\n    \"\\n  query ReadBooks($first: Int!, $after: String) {\\n    student {\\n      id\\n      readBooks(first: $first, after: $after) {\\n        edges {\\n          node {\\n            code\\n            coverUrl\\n          }\\n        }\\n        pageInfo {\\n          hasNextPage\\n          endCursor\\n        }\\n      }\\n    }\\n  }\\n\": types.ReadBooksDocument,\n    \"\\n  query GetGames {\\n    games {\\n      id\\n      personalBest {\\n        score\\n      }\\n      highScores(limit: 10) {\\n        name\\n        score\\n      }\\n    }\\n  }\\n\": types.GetGamesDocument,\n    \"\\n  query RecommendedBooks {\\n    student {\\n      id\\n      recommendedBooks {\\n        code\\n        coverUrl\\n      }\\n      readBooks {\\n        totalCount\\n      }\\n    }\\n  }\\n\": types.RecommendedBooksDocument,\n    \"\\n  fragment ReadingActivityFragment on ReadingActivity {\\n    precinct\\n    activityInLesson\\n    activityType\\n    framework\\n    id\\n    lessonInMap\\n    lessonInPrecinct\\n    manifestBundle\\n    manifestKey\\n    map\\n    ... on ReadingActivityBook {\\n      bookCode\\n    }\\n  }\\n\": types.ReadingActivityFragmentFragmentDoc,\n    \"\\n  query ReadingActivities {\\n    readingActivities {\\n      ...ReadingActivityFragment\\n    }\\n  }\\n\": types.ReadingActivitiesDocument,\n    \"\\n  fragment StudentAskReggieDataFragment on Student {\\n    id\\n    askReggie {\\n      __typename\\n      ... on AskReggieAvailable {\\n        actions\\n      }\\n      ... on AskReggieUnavailable {\\n        reason\\n      }\\n      ... on AskReggieSkipLesson {\\n        lesson\\n        activity\\n      }\\n      ... on AskReggieDisabled {\\n        disabled\\n      }\\n    }\\n  }\\n\": types.StudentAskReggieDataFragmentFragmentDoc,\n    \"\\n  query GetStudentAskReggie {\\n    student {\\n      ...StudentAskReggieDataFragment\\n    }\\n  }\\n\": types.GetStudentAskReggieDocument,\n    \"\\n  mutation AskReggieLessonSkipAbort {\\n    askReggieLessonSkipAbort {\\n      student {\\n        ...StudentAskReggieDataFragment\\n      }\\n    }\\n  }\\n\": types.AskReggieLessonSkipAbortDocument,\n    \"\\n    mutation AskReggieAttemptLessonSkip(\\n      $input: AskReggieAttemptLessonSkipInput!\\n    ) {\\n      askReggieAttemptLessonSkip(input: $input) {\\n        student {\\n          ...StudentAskReggieDataFragment\\n        }\\n      }\\n    }\\n  \": types.AskReggieAttemptLessonSkipDocument,\n    \"\\n  fragment AssignmentTask on Student {\\n    assignmentTask {\\n      ... on AssignmentTaskLesson {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskSpelling {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskClinkerCastle {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskDrivingTests {\\n        assignmentUuid\\n        category\\n        endAt\\n        gradePosition\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on Error {\\n        message\\n      }\\n      __typename\\n    }\\n  }\\n\": types.AssignmentTaskFragmentDoc,\n    \"\\n  query GetStudentCurrentTask {\\n    student {\\n      __typename\\n      id\\n      ...AssignmentTask\\n    }\\n  }\\n\": types.GetStudentCurrentTaskDocument,\n    \"\\n  query Book($input: BookQueryInput!) {\\n    book(input: $input) {\\n      content\\n    }\\n  }\\n\": types.BookDocument,\n    \"\\n  fragment CertificateFragment on Certificate {\\n    id\\n    createdAt\\n    map\\n    scorePercentage\\n    url\\n    colour\\n  }\\n\": types.CertificateFragmentFragmentDoc,\n    \"\\n  query GetCertificates {\\n    student {\\n      id\\n      certificates {\\n        ...CertificateFragment\\n      }\\n    }\\n  }\\n\": types.GetCertificatesDocument,\n    \"\\n  fragment PendingCertificateFragment on PendingCertificate {\\n    id\\n    colour\\n    map\\n    quizResultCreatedAt\\n    scorePercentage\\n  }\\n\": types.PendingCertificateFragmentFragmentDoc,\n    \"\\n  query GetPendingCertificate {\\n    student {\\n      id\\n      firstName\\n      lastName\\n      name @client\\n      pendingCertificate {\\n        ...PendingCertificateFragment\\n      }\\n    }\\n  }\\n\": types.GetPendingCertificateDocument,\n    \"\\n  mutation SaveCertificate($input: CertificateSaveInput!) {\\n    certificateSave(input: $input) {\\n      certificate {\\n        id\\n        url\\n      }\\n      student {\\n        id\\n        pendingCertificate {\\n          ...PendingCertificateFragment\\n        }\\n        certificates {\\n          ...CertificateFragment\\n        }\\n      }\\n    }\\n  }\\n\": types.SaveCertificateDocument,\n    \"\\n  query GetPendingCertificateUploadUrl($input: PendingCertificateQueryInput!) {\\n    getPendingCertificate(input: $input) {\\n      id\\n      uploadUrl\\n    }\\n  }\\n\": types.GetPendingCertificateUploadUrlDocument,\n    \"\\n    mutation ResetReadingLessonProgress(\\n      $input: StudentProgressReadingLessonResetInput!\\n    ) {\\n      studentProgressReadingLessonReset(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \": types.ResetReadingLessonProgressDocument,\n    \"\\n    mutation ResetReadingMapQuizProgress(\\n      $input: StudentProgressReadingMapQuizResetInput!\\n    ) {\\n      studentProgressReadingMapQuizReset(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \": types.ResetReadingMapQuizProgressDocument,\n    \"\\n    mutation ResetReadingPlacementTestProgress {\\n      studentProgressReadingPlacementTestReset {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \": types.ResetReadingPlacementTestProgressDocument,\n    \"\\n    mutation ResetStudentWorldInteraction(\\n      $input: StudentWorldInteractionResetInput!\\n    ) {\\n      studentWorldInteractionReset(input: $input) {\\n        world {\\n          id\\n          previousInteractions\\n        }\\n      }\\n    }\\n  \": types.ResetStudentWorldInteractionDocument,\n    \"\\n    mutation ResetStudentWorldAreaRevealPosition(\\n      $input: StudentWorldAreaRevealPositionResetInput!\\n    ) {\\n      studentWorldAreaRevealPositionReset(input: $input) {\\n        world {\\n          id\\n          areaRevealPosition\\n        }\\n      }\\n    }\\n  \": types.ResetStudentWorldAreaRevealPositionDocument,\n    \"\\n    mutation ResetStudentWorldOnboarding {\\n      studentWorldOnboardingReset {\\n        student {\\n          id\\n          previousWorldsOnboarding\\n        }\\n      }\\n    }\\n  \": types.ResetStudentWorldOnboardingDocument,\n    \"\\n  fragment WorldDataFragment on World {\\n    id\\n    previousInteractions\\n    areaRevealPosition\\n  }\\n\": types.WorldDataFragmentFragmentDoc,\n    \"\\n  query GetWorldData($worldId: ID!) {\\n    student {\\n      id\\n      previousWorldsOnboarding\\n      world(id: $worldId) {\\n        ...WorldDataFragment\\n      }\\n    }\\n  }\\n\": types.GetWorldDataDocument,\n    \"\\n    mutation CreateStudentWorldInteraction(\\n      $input: StudentWorldInteractionCreateInput!\\n    ) {\\n      studentWorldInteractionCreate(input: $input) {\\n        world {\\n          ...WorldDataFragment\\n        }\\n      }\\n    }\\n  \": types.CreateStudentWorldInteractionDocument,\n    \"\\n    mutation SetStudentWorldAreaRevealPosition(\\n      $input: StudentWorldAreaRevealPositionSetInput!\\n    ) {\\n      studentWorldAreaRevealPositionSet(input: $input) {\\n        world {\\n          ...WorldDataFragment\\n        }\\n      }\\n    }\\n  \": types.SetStudentWorldAreaRevealPositionDocument,\n    \"\\n    mutation CompleteStudentWorldOnboardingSection(\\n      $input: StudentWorldOnboardingSectionCompleteInput!\\n    ) {\\n      studentWorldOnboardingSectionComplete(input: $input) {\\n        student {\\n          id\\n          previousWorldsOnboarding\\n        }\\n      }\\n    }\\n  \": types.CompleteStudentWorldOnboardingSectionDocument,\n    \"\\n  mutation SaveSkillsQuizResult(\\n    $input: ReadingEndOfLessonQuizResultCreateInput!\\n  ) {\\n    readingEndOfLessonQuizResultCreate(input: $input) {\\n      readingEndOfLessonQuizResult {\\n        attempt\\n        autoPassed\\n        lessonInPrecinct\\n        passed\\n        eggsEarned\\n      }\\n      student {\\n        id\\n        badges {\\n          id\\n          lesson\\n          colour\\n        }\\n        ...StudentProgressFragment\\n        ...StudentQuestDataFragment\\n        ...AssignmentTask\\n        ...StudentAskReggieDataFragment\\n      }\\n    }\\n  }\\n\": types.SaveSkillsQuizResultDocument,\n    \"\\n    mutation SaveReadingLessonActivityResult(\\n      $input: ReadingLessonActivityResultCreateInput!\\n    ) {\\n      readingLessonActivityResultCreate(input: $input) {\\n        readingLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n          ...StudentQuestDataFragment\\n          ...StudentAskReggieDataFragment\\n        }\\n      }\\n    }\\n  \": types.SaveReadingLessonActivityResultDocument,\n    \"\\n  fragment StudentQuestDataFragment on Student {\\n    id\\n    quest {\\n      easyGoal {\\n        __typename\\n        goalType: __typename\\n        ... on QuestGoalEarnEggs {\\n          id\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n      }\\n      primaryGoal {\\n        __typename\\n        goalType: __typename\\n\\n        ... on QuestGoalLesson {\\n          id\\n          lesson\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n        ... on QuestGoalMap {\\n          id\\n          map\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n      }\\n    }\\n  }\\n\": types.StudentQuestDataFragmentFragmentDoc,\n    \"\\n  query GetStudentQuest {\\n    student {\\n      ...StudentQuestDataFragment\\n    }\\n  }\\n\": types.GetStudentQuestDocument,\n    \"\\n  mutation AcknowledgeQuestGoalAlert(\\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\\n  ) {\\n    studentQuestGoalAcknowledgeComplete(input: $input) {\\n      student {\\n        id\\n        eggs\\n        ...StudentQuestDataFragment\\n      }\\n    }\\n  }\\n\": types.AcknowledgeQuestGoalAlertDocument,\n    \"\\n  fragment ReadingGoalsQuizFragment on ReadingGoalsQuiz {\\n    area\\n    badgeReward\\n    id\\n    level\\n    name\\n  }\\n\": types.ReadingGoalsQuizFragmentFragmentDoc,\n    \"\\n  fragment ReadingGoalsQuizSummaryFragment on ReadingGoalsQuizSummary {\\n    attemptsThisWeek\\n    eggsReward\\n    id\\n    passed\\n    secondsToPass\\n    timestamp\\n  }\\n\": types.ReadingGoalsQuizSummaryFragmentFragmentDoc,\n    \"\\n  fragment QuizAnswerFragment on QuizAnswer {\\n    correct\\n    correctAnswer\\n    studentAnswer\\n  }\\n\": types.QuizAnswerFragmentFragmentDoc,\n    \"\\n  fragment ReadingGoalsQuizResultFragment on ReadingGoalsQuizResult {\\n    answers {\\n      ...QuizAnswerFragment\\n    }\\n    attemptUuid\\n    createdAt\\n    eggsReward\\n    id\\n    level\\n    passed\\n    quizId\\n    score\\n  }\\n\": types.ReadingGoalsQuizResultFragmentFragmentDoc,\n    \"\\n  query GetReadingGoalsQuizzes {\\n    readingGoalsQuizzes {\\n      ...ReadingGoalsQuizFragment\\n    }\\n  }\\n\": types.GetReadingGoalsQuizzesDocument,\n    \"\\n  query GetReadingGoalsQuizRecord {\\n    student {\\n      readingGoalsMinimumLevel\\n      readingGoalsQuizSecondsToNextWeek\\n      readingGoalsQuizSummaries {\\n        ...ReadingGoalsQuizSummaryFragment\\n      }\\n    }\\n  }\\n\": types.GetReadingGoalsQuizRecordDocument,\n    \"\\n  mutation CreateReadingGoalsQuizResult(\\n    $input: ReadingGoalsQuizResultCreateInput!\\n  ) {\\n    readingGoalsQuizResultCreate(input: $input) {\\n      readingGoalsQuizResult {\\n        passed\\n        eggsReward\\n      }\\n      student {\\n        id\\n        eggs\\n        name @client\\n        readingGoalsQuizSummaries {\\n          ...ReadingGoalsQuizSummaryFragment\\n        }\\n      }\\n    }\\n  }\\n\": types.CreateReadingGoalsQuizResultDocument,\n    \"\\n  mutation CapturePageView($input: CapturePageViewInput!) {\\n    capturePageView(input: $input) {\\n      success\\n    }\\n  }\\n\": types.CapturePageViewDocument,\n    \"\\n    mutation SaveReadingActivityLearningState(\\n      $input: SaveReadingActivityLearningStateInput!\\n    ) {\\n      saveReadingActivityLearningState(input: $input) {\\n        success\\n      }\\n    }\\n  \": types.SaveReadingActivityLearningStateDocument,\n    \"\\n  fragment StudentProgressFragment on Student {\\n    id\\n    targetProgressionSequenceVersion\\n    progress {\\n      progressionSequenceVersion\\n      drivingTests {\\n        sightWords\\n        lettersAndSounds\\n        contentWords\\n      }\\n      lessons {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n        showPlacementTest\\n      }\\n      spelling {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n        showPlacementTest\\n      }\\n      clinkerCastle {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n      }\\n    }\\n  }\\n\": types.StudentProgressFragmentFragmentDoc,\n    \"\\n  query StudentProgress {\\n    student {\\n      ...StudentProgressFragment\\n    }\\n  }\\n\": types.StudentProgressDocument,\n    \"\\n  mutation StudentProgressionSequenceMigrate {\\n    studentProgressionSequenceMigrate {\\n      student {\\n        ...StudentProgressFragment\\n      }\\n    }\\n  }\\n\": types.StudentProgressionSequenceMigrateDocument,\n    \"\\n  mutation AvatarUpdate($input: AvatarUpdateInput!) {\\n    avatarUpdate(input: $input) {\\n      student {\\n        id\\n        avatarUrl\\n        dna {\\n          arms\\n          decal\\n          egg\\n          extra\\n          hat\\n          head\\n          legs\\n          sunnies\\n        }\\n      }\\n    }\\n  }\\n\": types.AvatarUpdateDocument,\n    \"\\n  fragment StudentUserFragment on Student {\\n    id\\n    avatarUrl\\n    eggs\\n    firstName\\n    lastName\\n    gamesAccess\\n    playroomAccess\\n    name @client\\n    remoteId @client\\n    dna {\\n      arms\\n      decal\\n      egg\\n      extra\\n      hat\\n      head\\n      legs\\n      sunnies\\n    }\\n    dnaHash @client\\n    locale\\n    backgroundMusicDisabled\\n    rosterEnabled\\n    customerType\\n    parentId\\n    worldsStartingLesson\\n    learningWorldsEnabled\\n  }\\n\": types.StudentUserFragmentFragmentDoc,\n    \"\\n  fragment StudentLocaleFragment on Student {\\n    locale\\n  }\\n\": types.StudentLocaleFragmentFragmentDoc,\n    \"\\n  query GetStudent {\\n    student {\\n      ...StudentUserFragment\\n      ...StudentLocaleFragment\\n      ...StudentQuestDataFragment\\n    }\\n  }\\n\": types.GetStudentDocument,\n    \"\\n  fragment PlazaPollFragment on PlazaPoll {\\n    id\\n    startDate\\n    endDate\\n    month\\n    week\\n    votes {\\n      count\\n      answer\\n    }\\n  }\\n\": types.PlazaPollFragmentFragmentDoc,\n    \"\\n  query GetPlazaPolls($currentDate: ISO8601Date!) {\\n    plazaPolls(input: { currentDate: $currentDate }) {\\n      ...PlazaPollFragment\\n    }\\n\\n    student {\\n      firstName\\n      id\\n      plazaPollVote(dateVoted: $currentDate) {\\n        dateVoted\\n        plazaPollId\\n        votedAnswer\\n      }\\n    }\\n  }\\n\": types.GetPlazaPollsDocument,\n    \"\\n  mutation SavePlazaPollVote($input: PlazaPollVoteCreateInput!) {\\n    plazaPollVoteCreate(input: $input) {\\n      dateVoted\\n      plazaPollId\\n      votedAnswer\\n    }\\n  }\\n\": types.SavePlazaPollVoteDocument,\n    \"\\n  mutation DeletePlazaPollVote($input: PlazaPollVoteDestroyInput!) {\\n    plazaPollVoteDestroy(input: $input) {\\n      ...PlazaPollFragment\\n    }\\n  }\\n\": types.DeletePlazaPollVoteDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n *\n *\n * @example\n * ```ts\n * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);\n * ```\n *\n * The query argument is unknown!\n * Please regenerate the types.\n */\nexport function graphql(source: string): unknown;\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation SaveDrivingTestQuizResult(\\n    $input: DrivingTestQuizResultCreateInput!\\n  ) {\\n    drivingTestQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation SaveDrivingTestQuizResult(\\n    $input: DrivingTestQuizResultCreateInput!\\n  ) {\\n    drivingTestQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation SaveDrivingTestGameResult(\\n    $input: DrivingTestGameResultCreateInput!\\n  ) {\\n    drivingTestGameResultCreate(input: $input) {\\n      student {\\n        id\\n        eggs\\n        ...StudentProgressFragment\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation SaveDrivingTestGameResult(\\n    $input: DrivingTestGameResultCreateInput!\\n  ) {\\n    drivingTestGameResultCreate(input: $input) {\\n      student {\\n        id\\n        eggs\\n        ...StudentProgressFragment\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation SaveGameScore($input: GameScoreSaveInput!) {\\n    gameScoreSave(input: $input) {\\n      game {\\n        id\\n        personalBest {\\n          score\\n        }\\n        highScores(limit: 10) {\\n          name\\n          score\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation SaveGameScore($input: GameScoreSaveInput!) {\\n    gameScoreSave(input: $input) {\\n      game {\\n        id\\n        personalBest {\\n          score\\n        }\\n        highScores(limit: 10) {\\n          name\\n          score\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation PurchaseGamePlay($input: GamePlayPurchaseInput!) {\\n    gamePlayPurchase(input: $input) {\\n      __typename\\n      ... on GamePlayPurchaseSuccess {\\n        student {\\n          id\\n          eggs\\n        }\\n      }\\n      ... on GamePlayPurchaseInsufficientFunds {\\n        student {\\n          id\\n          eggs\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation PurchaseGamePlay($input: GamePlayPurchaseInput!) {\\n    gamePlayPurchase(input: $input) {\\n      __typename\\n      ... on GamePlayPurchaseSuccess {\\n        student {\\n          id\\n          eggs\\n        }\\n      }\\n      ... on GamePlayPurchaseInsufficientFunds {\\n        student {\\n          id\\n          eggs\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation SaveReadingMapQuizResult($input: ReadingMapQuizResultCreateInput!) {\\n    readingMapQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n        ...StudentQuestDataFragment\\n        pendingCertificate {\\n          ...PendingCertificateFragment\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation SaveReadingMapQuizResult($input: ReadingMapQuizResultCreateInput!) {\\n    readingMapQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n        ...StudentQuestDataFragment\\n        pendingCertificate {\\n          ...PendingCertificateFragment\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation SaveReadingLessonPlacementTestResult(\\n      $input: ReadingLessonPlacementTestResultCreateInput!\\n    ) {\\n      readingLessonPlacementTestResultCreate(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n          ...StudentQuestDataFragment\\n          worldsStartingLesson\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation SaveReadingLessonPlacementTestResult(\\n      $input: ReadingLessonPlacementTestResultCreateInput!\\n    ) {\\n      readingLessonPlacementTestResultCreate(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n          ...StudentQuestDataFragment\\n          worldsStartingLesson\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation SaveBookQuizResult($input: BookQuizResultCreateInput!) {\\n    bookQuizResultCreate(input: $input) {\\n      bookQuizResult {\\n        reward {\\n          eggs\\n          milestone\\n          passed\\n        }\\n      }\\n      student {\\n        id\\n        eggs\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation SaveBookQuizResult($input: BookQuizResultCreateInput!) {\\n    bookQuizResultCreate(input: $input) {\\n      bookQuizResult {\\n        reward {\\n          eggs\\n          milestone\\n          passed\\n        }\\n      }\\n      student {\\n        id\\n        eggs\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation SaveSpellingLessonActivityResult(\\n      $input: SpellingLessonActivityResultCreateInput!\\n    ) {\\n      spellingLessonActivityResultCreate(input: $input) {\\n        spellingLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation SaveSpellingLessonActivityResult(\\n      $input: SpellingLessonActivityResultCreateInput!\\n    ) {\\n      spellingLessonActivityResultCreate(input: $input) {\\n        spellingLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation SaveSpellingLessonQuizResult(\\n      $input: SpellingLessonQuizResultCreateInput!\\n    ) {\\n      spellingLessonQuizResultCreate(input: $input) {\\n        spellingLessonQuizResult {\\n          passed\\n          reward {\\n            eggs\\n            shop\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation SaveSpellingLessonQuizResult(\\n      $input: SpellingLessonQuizResultCreateInput!\\n    ) {\\n      spellingLessonQuizResultCreate(input: $input) {\\n        spellingLessonQuizResult {\\n          passed\\n          reward {\\n            eggs\\n            shop\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation SaveSpellingMapQuizResult(\\n    $input: SpellingMapQuizResultCreateInput!\\n  ) {\\n    spellingMapQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation SaveSpellingMapQuizResult(\\n    $input: SpellingMapQuizResultCreateInput!\\n  ) {\\n    spellingMapQuizResultCreate(input: $input) {\\n      student {\\n        id\\n        ...StudentProgressFragment\\n        ...AssignmentTask\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation SaveSpellingLessonPlacementTestResult(\\n      $input: SpellingLessonPlacementTestResultCreateInput!\\n    ) {\\n      spellingLessonPlacementTestResultCreate(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation SaveSpellingLessonPlacementTestResult(\\n      $input: SpellingLessonPlacementTestResultCreateInput!\\n    ) {\\n      spellingLessonPlacementTestResultCreate(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation SaveClinkerCastleLessonActivityResult(\\n      $input: ClinkerCastleLessonActivityResultCreateInput!\\n    ) {\\n      clinkerCastleLessonActivityResultCreate(input: $input) {\\n        clinkerCastleLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation SaveClinkerCastleLessonActivityResult(\\n      $input: ClinkerCastleLessonActivityResultCreateInput!\\n    ) {\\n      clinkerCastleLessonActivityResultCreate(input: $input) {\\n        clinkerCastleLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation SaveClinkerCastleLessonQuizResult(\\n      $input: ClinkerCastleLessonQuizResultCreateInput!\\n    ) {\\n      clinkerCastleLessonQuizResultCreate(input: $input) {\\n        clinkerCastleLessonQuizResult {\\n          reward {\\n            eggs\\n            prize\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation SaveClinkerCastleLessonQuizResult(\\n      $input: ClinkerCastleLessonQuizResultCreateInput!\\n    ) {\\n      clinkerCastleLessonQuizResultCreate(input: $input) {\\n        clinkerCastleLessonQuizResult {\\n          reward {\\n            eggs\\n            prize\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetInitialAppData {\\n    student {\\n      ...StudentUserFragment\\n      ...AssignmentTask\\n      ...StudentProgressFragment\\n      ...StudentQuestDataFragment\\n      ...StudentAskReggieDataFragment\\n    }\\n  }\\n  query ReadingActivities {\\n    readingActivities {\\n      ...ReadingActivityFragment\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetInitialAppData {\\n    student {\\n      ...StudentUserFragment\\n      ...AssignmentTask\\n      ...StudentProgressFragment\\n      ...StudentQuestDataFragment\\n      ...StudentAskReggieDataFragment\\n    }\\n  }\\n  query ReadingActivities {\\n    readingActivities {\\n      ...ReadingActivityFragment\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentMyAwardsFragment on Student {\\n    id\\n    badges {\\n      id\\n      lesson\\n      colour\\n    }\\n    certificates {\\n      id\\n      createdAt\\n      map\\n      url\\n      colour\\n    }\\n    pendingCertificate {\\n      id\\n      map\\n    }\\n    ...StudentProgressFragment\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentMyAwardsFragment on Student {\\n    id\\n    badges {\\n      id\\n      lesson\\n      colour\\n    }\\n    certificates {\\n      id\\n      createdAt\\n      map\\n      url\\n      colour\\n    }\\n    pendingCertificate {\\n      id\\n      map\\n    }\\n    ...StudentProgressFragment\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetMyAwards {\\n    student {\\n      ...StudentMyAwardsFragment\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetMyAwards {\\n    student {\\n      ...StudentMyAwardsFragment\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query ReadBooks($first: Int!, $after: String) {\\n    student {\\n      id\\n      readBooks(first: $first, after: $after) {\\n        edges {\\n          node {\\n            code\\n            coverUrl\\n          }\\n        }\\n        pageInfo {\\n          hasNextPage\\n          endCursor\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query ReadBooks($first: Int!, $after: String) {\\n    student {\\n      id\\n      readBooks(first: $first, after: $after) {\\n        edges {\\n          node {\\n            code\\n            coverUrl\\n          }\\n        }\\n        pageInfo {\\n          hasNextPage\\n          endCursor\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetGames {\\n    games {\\n      id\\n      personalBest {\\n        score\\n      }\\n      highScores(limit: 10) {\\n        name\\n        score\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetGames {\\n    games {\\n      id\\n      personalBest {\\n        score\\n      }\\n      highScores(limit: 10) {\\n        name\\n        score\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query RecommendedBooks {\\n    student {\\n      id\\n      recommendedBooks {\\n        code\\n        coverUrl\\n      }\\n      readBooks {\\n        totalCount\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query RecommendedBooks {\\n    student {\\n      id\\n      recommendedBooks {\\n        code\\n        coverUrl\\n      }\\n      readBooks {\\n        totalCount\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment ReadingActivityFragment on ReadingActivity {\\n    precinct\\n    activityInLesson\\n    activityType\\n    framework\\n    id\\n    lessonInMap\\n    lessonInPrecinct\\n    manifestBundle\\n    manifestKey\\n    map\\n    ... on ReadingActivityBook {\\n      bookCode\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment ReadingActivityFragment on ReadingActivity {\\n    precinct\\n    activityInLesson\\n    activityType\\n    framework\\n    id\\n    lessonInMap\\n    lessonInPrecinct\\n    manifestBundle\\n    manifestKey\\n    map\\n    ... on ReadingActivityBook {\\n      bookCode\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query ReadingActivities {\\n    readingActivities {\\n      ...ReadingActivityFragment\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query ReadingActivities {\\n    readingActivities {\\n      ...ReadingActivityFragment\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentAskReggieDataFragment on Student {\\n    id\\n    askReggie {\\n      __typename\\n      ... on AskReggieAvailable {\\n        actions\\n      }\\n      ... on AskReggieUnavailable {\\n        reason\\n      }\\n      ... on AskReggieSkipLesson {\\n        lesson\\n        activity\\n      }\\n      ... on AskReggieDisabled {\\n        disabled\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentAskReggieDataFragment on Student {\\n    id\\n    askReggie {\\n      __typename\\n      ... on AskReggieAvailable {\\n        actions\\n      }\\n      ... on AskReggieUnavailable {\\n        reason\\n      }\\n      ... on AskReggieSkipLesson {\\n        lesson\\n        activity\\n      }\\n      ... on AskReggieDisabled {\\n        disabled\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudentAskReggie {\\n    student {\\n      ...StudentAskReggieDataFragment\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudentAskReggie {\\n    student {\\n      ...StudentAskReggieDataFragment\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation AskReggieLessonSkipAbort {\\n    askReggieLessonSkipAbort {\\n      student {\\n        ...StudentAskReggieDataFragment\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation AskReggieLessonSkipAbort {\\n    askReggieLessonSkipAbort {\\n      student {\\n        ...StudentAskReggieDataFragment\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation AskReggieAttemptLessonSkip(\\n      $input: AskReggieAttemptLessonSkipInput!\\n    ) {\\n      askReggieAttemptLessonSkip(input: $input) {\\n        student {\\n          ...StudentAskReggieDataFragment\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation AskReggieAttemptLessonSkip(\\n      $input: AskReggieAttemptLessonSkipInput!\\n    ) {\\n      askReggieAttemptLessonSkip(input: $input) {\\n        student {\\n          ...StudentAskReggieDataFragment\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment AssignmentTask on Student {\\n    assignmentTask {\\n      ... on AssignmentTaskLesson {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskSpelling {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskClinkerCastle {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskDrivingTests {\\n        assignmentUuid\\n        category\\n        endAt\\n        gradePosition\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on Error {\\n        message\\n      }\\n      __typename\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment AssignmentTask on Student {\\n    assignmentTask {\\n      ... on AssignmentTaskLesson {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskSpelling {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskClinkerCastle {\\n        activityId\\n        assignmentUuid\\n        endAt\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on AssignmentTaskDrivingTests {\\n        assignmentUuid\\n        category\\n        endAt\\n        gradePosition\\n        id\\n        lessonId\\n        thumbnailUrl\\n        title\\n        targetRouteParams @client\\n      }\\n      ... on Error {\\n        message\\n      }\\n      __typename\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudentCurrentTask {\\n    student {\\n      __typename\\n      id\\n      ...AssignmentTask\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudentCurrentTask {\\n    student {\\n      __typename\\n      id\\n      ...AssignmentTask\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query Book($input: BookQueryInput!) {\\n    book(input: $input) {\\n      content\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query Book($input: BookQueryInput!) {\\n    book(input: $input) {\\n      content\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment CertificateFragment on Certificate {\\n    id\\n    createdAt\\n    map\\n    scorePercentage\\n    url\\n    colour\\n  }\\n\"): (typeof documents)[\"\\n  fragment CertificateFragment on Certificate {\\n    id\\n    createdAt\\n    map\\n    scorePercentage\\n    url\\n    colour\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetCertificates {\\n    student {\\n      id\\n      certificates {\\n        ...CertificateFragment\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetCertificates {\\n    student {\\n      id\\n      certificates {\\n        ...CertificateFragment\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment PendingCertificateFragment on PendingCertificate {\\n    id\\n    colour\\n    map\\n    quizResultCreatedAt\\n    scorePercentage\\n  }\\n\"): (typeof documents)[\"\\n  fragment PendingCertificateFragment on PendingCertificate {\\n    id\\n    colour\\n    map\\n    quizResultCreatedAt\\n    scorePercentage\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetPendingCertificate {\\n    student {\\n      id\\n      firstName\\n      lastName\\n      name @client\\n      pendingCertificate {\\n        ...PendingCertificateFragment\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetPendingCertificate {\\n    student {\\n      id\\n      firstName\\n      lastName\\n      name @client\\n      pendingCertificate {\\n        ...PendingCertificateFragment\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation SaveCertificate($input: CertificateSaveInput!) {\\n    certificateSave(input: $input) {\\n      certificate {\\n        id\\n        url\\n      }\\n      student {\\n        id\\n        pendingCertificate {\\n          ...PendingCertificateFragment\\n        }\\n        certificates {\\n          ...CertificateFragment\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation SaveCertificate($input: CertificateSaveInput!) {\\n    certificateSave(input: $input) {\\n      certificate {\\n        id\\n        url\\n      }\\n      student {\\n        id\\n        pendingCertificate {\\n          ...PendingCertificateFragment\\n        }\\n        certificates {\\n          ...CertificateFragment\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetPendingCertificateUploadUrl($input: PendingCertificateQueryInput!) {\\n    getPendingCertificate(input: $input) {\\n      id\\n      uploadUrl\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetPendingCertificateUploadUrl($input: PendingCertificateQueryInput!) {\\n    getPendingCertificate(input: $input) {\\n      id\\n      uploadUrl\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation ResetReadingLessonProgress(\\n      $input: StudentProgressReadingLessonResetInput!\\n    ) {\\n      studentProgressReadingLessonReset(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation ResetReadingLessonProgress(\\n      $input: StudentProgressReadingLessonResetInput!\\n    ) {\\n      studentProgressReadingLessonReset(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation ResetReadingMapQuizProgress(\\n      $input: StudentProgressReadingMapQuizResetInput!\\n    ) {\\n      studentProgressReadingMapQuizReset(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation ResetReadingMapQuizProgress(\\n      $input: StudentProgressReadingMapQuizResetInput!\\n    ) {\\n      studentProgressReadingMapQuizReset(input: $input) {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation ResetReadingPlacementTestProgress {\\n      studentProgressReadingPlacementTestReset {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation ResetReadingPlacementTestProgress {\\n      studentProgressReadingPlacementTestReset {\\n        student {\\n          id\\n          ...StudentProgressFragment\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation ResetStudentWorldInteraction(\\n      $input: StudentWorldInteractionResetInput!\\n    ) {\\n      studentWorldInteractionReset(input: $input) {\\n        world {\\n          id\\n          previousInteractions\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation ResetStudentWorldInteraction(\\n      $input: StudentWorldInteractionResetInput!\\n    ) {\\n      studentWorldInteractionReset(input: $input) {\\n        world {\\n          id\\n          previousInteractions\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation ResetStudentWorldAreaRevealPosition(\\n      $input: StudentWorldAreaRevealPositionResetInput!\\n    ) {\\n      studentWorldAreaRevealPositionReset(input: $input) {\\n        world {\\n          id\\n          areaRevealPosition\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation ResetStudentWorldAreaRevealPosition(\\n      $input: StudentWorldAreaRevealPositionResetInput!\\n    ) {\\n      studentWorldAreaRevealPositionReset(input: $input) {\\n        world {\\n          id\\n          areaRevealPosition\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation ResetStudentWorldOnboarding {\\n      studentWorldOnboardingReset {\\n        student {\\n          id\\n          previousWorldsOnboarding\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation ResetStudentWorldOnboarding {\\n      studentWorldOnboardingReset {\\n        student {\\n          id\\n          previousWorldsOnboarding\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment WorldDataFragment on World {\\n    id\\n    previousInteractions\\n    areaRevealPosition\\n  }\\n\"): (typeof documents)[\"\\n  fragment WorldDataFragment on World {\\n    id\\n    previousInteractions\\n    areaRevealPosition\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetWorldData($worldId: ID!) {\\n    student {\\n      id\\n      previousWorldsOnboarding\\n      world(id: $worldId) {\\n        ...WorldDataFragment\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetWorldData($worldId: ID!) {\\n    student {\\n      id\\n      previousWorldsOnboarding\\n      world(id: $worldId) {\\n        ...WorldDataFragment\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation CreateStudentWorldInteraction(\\n      $input: StudentWorldInteractionCreateInput!\\n    ) {\\n      studentWorldInteractionCreate(input: $input) {\\n        world {\\n          ...WorldDataFragment\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation CreateStudentWorldInteraction(\\n      $input: StudentWorldInteractionCreateInput!\\n    ) {\\n      studentWorldInteractionCreate(input: $input) {\\n        world {\\n          ...WorldDataFragment\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation SetStudentWorldAreaRevealPosition(\\n      $input: StudentWorldAreaRevealPositionSetInput!\\n    ) {\\n      studentWorldAreaRevealPositionSet(input: $input) {\\n        world {\\n          ...WorldDataFragment\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation SetStudentWorldAreaRevealPosition(\\n      $input: StudentWorldAreaRevealPositionSetInput!\\n    ) {\\n      studentWorldAreaRevealPositionSet(input: $input) {\\n        world {\\n          ...WorldDataFragment\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation CompleteStudentWorldOnboardingSection(\\n      $input: StudentWorldOnboardingSectionCompleteInput!\\n    ) {\\n      studentWorldOnboardingSectionComplete(input: $input) {\\n        student {\\n          id\\n          previousWorldsOnboarding\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation CompleteStudentWorldOnboardingSection(\\n      $input: StudentWorldOnboardingSectionCompleteInput!\\n    ) {\\n      studentWorldOnboardingSectionComplete(input: $input) {\\n        student {\\n          id\\n          previousWorldsOnboarding\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation SaveSkillsQuizResult(\\n    $input: ReadingEndOfLessonQuizResultCreateInput!\\n  ) {\\n    readingEndOfLessonQuizResultCreate(input: $input) {\\n      readingEndOfLessonQuizResult {\\n        attempt\\n        autoPassed\\n        lessonInPrecinct\\n        passed\\n        eggsEarned\\n      }\\n      student {\\n        id\\n        badges {\\n          id\\n          lesson\\n          colour\\n        }\\n        ...StudentProgressFragment\\n        ...StudentQuestDataFragment\\n        ...AssignmentTask\\n        ...StudentAskReggieDataFragment\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation SaveSkillsQuizResult(\\n    $input: ReadingEndOfLessonQuizResultCreateInput!\\n  ) {\\n    readingEndOfLessonQuizResultCreate(input: $input) {\\n      readingEndOfLessonQuizResult {\\n        attempt\\n        autoPassed\\n        lessonInPrecinct\\n        passed\\n        eggsEarned\\n      }\\n      student {\\n        id\\n        badges {\\n          id\\n          lesson\\n          colour\\n        }\\n        ...StudentProgressFragment\\n        ...StudentQuestDataFragment\\n        ...AssignmentTask\\n        ...StudentAskReggieDataFragment\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation SaveReadingLessonActivityResult(\\n      $input: ReadingLessonActivityResultCreateInput!\\n    ) {\\n      readingLessonActivityResultCreate(input: $input) {\\n        readingLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n          ...StudentQuestDataFragment\\n          ...StudentAskReggieDataFragment\\n        }\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation SaveReadingLessonActivityResult(\\n      $input: ReadingLessonActivityResultCreateInput!\\n    ) {\\n      readingLessonActivityResultCreate(input: $input) {\\n        readingLessonActivityResult {\\n          reward {\\n            eggs\\n          }\\n        }\\n        student {\\n          id\\n          ...StudentProgressFragment\\n          ...AssignmentTask\\n          ...StudentQuestDataFragment\\n          ...StudentAskReggieDataFragment\\n        }\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentQuestDataFragment on Student {\\n    id\\n    quest {\\n      easyGoal {\\n        __typename\\n        goalType: __typename\\n        ... on QuestGoalEarnEggs {\\n          id\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n      }\\n      primaryGoal {\\n        __typename\\n        goalType: __typename\\n\\n        ... on QuestGoalLesson {\\n          id\\n          lesson\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n        ... on QuestGoalMap {\\n          id\\n          map\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentQuestDataFragment on Student {\\n    id\\n    quest {\\n      easyGoal {\\n        __typename\\n        goalType: __typename\\n        ... on QuestGoalEarnEggs {\\n          id\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n      }\\n      primaryGoal {\\n        __typename\\n        goalType: __typename\\n\\n        ... on QuestGoalLesson {\\n          id\\n          lesson\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n        ... on QuestGoalMap {\\n          id\\n          map\\n          progressCurrent\\n          progressTotal\\n          rewardAmount\\n          status\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudentQuest {\\n    student {\\n      ...StudentQuestDataFragment\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudentQuest {\\n    student {\\n      ...StudentQuestDataFragment\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation AcknowledgeQuestGoalAlert(\\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\\n  ) {\\n    studentQuestGoalAcknowledgeComplete(input: $input) {\\n      student {\\n        id\\n        eggs\\n        ...StudentQuestDataFragment\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation AcknowledgeQuestGoalAlert(\\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\\n  ) {\\n    studentQuestGoalAcknowledgeComplete(input: $input) {\\n      student {\\n        id\\n        eggs\\n        ...StudentQuestDataFragment\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment ReadingGoalsQuizFragment on ReadingGoalsQuiz {\\n    area\\n    badgeReward\\n    id\\n    level\\n    name\\n  }\\n\"): (typeof documents)[\"\\n  fragment ReadingGoalsQuizFragment on ReadingGoalsQuiz {\\n    area\\n    badgeReward\\n    id\\n    level\\n    name\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment ReadingGoalsQuizSummaryFragment on ReadingGoalsQuizSummary {\\n    attemptsThisWeek\\n    eggsReward\\n    id\\n    passed\\n    secondsToPass\\n    timestamp\\n  }\\n\"): (typeof documents)[\"\\n  fragment ReadingGoalsQuizSummaryFragment on ReadingGoalsQuizSummary {\\n    attemptsThisWeek\\n    eggsReward\\n    id\\n    passed\\n    secondsToPass\\n    timestamp\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment QuizAnswerFragment on QuizAnswer {\\n    correct\\n    correctAnswer\\n    studentAnswer\\n  }\\n\"): (typeof documents)[\"\\n  fragment QuizAnswerFragment on QuizAnswer {\\n    correct\\n    correctAnswer\\n    studentAnswer\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment ReadingGoalsQuizResultFragment on ReadingGoalsQuizResult {\\n    answers {\\n      ...QuizAnswerFragment\\n    }\\n    attemptUuid\\n    createdAt\\n    eggsReward\\n    id\\n    level\\n    passed\\n    quizId\\n    score\\n  }\\n\"): (typeof documents)[\"\\n  fragment ReadingGoalsQuizResultFragment on ReadingGoalsQuizResult {\\n    answers {\\n      ...QuizAnswerFragment\\n    }\\n    attemptUuid\\n    createdAt\\n    eggsReward\\n    id\\n    level\\n    passed\\n    quizId\\n    score\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetReadingGoalsQuizzes {\\n    readingGoalsQuizzes {\\n      ...ReadingGoalsQuizFragment\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetReadingGoalsQuizzes {\\n    readingGoalsQuizzes {\\n      ...ReadingGoalsQuizFragment\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetReadingGoalsQuizRecord {\\n    student {\\n      readingGoalsMinimumLevel\\n      readingGoalsQuizSecondsToNextWeek\\n      readingGoalsQuizSummaries {\\n        ...ReadingGoalsQuizSummaryFragment\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetReadingGoalsQuizRecord {\\n    student {\\n      readingGoalsMinimumLevel\\n      readingGoalsQuizSecondsToNextWeek\\n      readingGoalsQuizSummaries {\\n        ...ReadingGoalsQuizSummaryFragment\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation CreateReadingGoalsQuizResult(\\n    $input: ReadingGoalsQuizResultCreateInput!\\n  ) {\\n    readingGoalsQuizResultCreate(input: $input) {\\n      readingGoalsQuizResult {\\n        passed\\n        eggsReward\\n      }\\n      student {\\n        id\\n        eggs\\n        name @client\\n        readingGoalsQuizSummaries {\\n          ...ReadingGoalsQuizSummaryFragment\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation CreateReadingGoalsQuizResult(\\n    $input: ReadingGoalsQuizResultCreateInput!\\n  ) {\\n    readingGoalsQuizResultCreate(input: $input) {\\n      readingGoalsQuizResult {\\n        passed\\n        eggsReward\\n      }\\n      student {\\n        id\\n        eggs\\n        name @client\\n        readingGoalsQuizSummaries {\\n          ...ReadingGoalsQuizSummaryFragment\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation CapturePageView($input: CapturePageViewInput!) {\\n    capturePageView(input: $input) {\\n      success\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation CapturePageView($input: CapturePageViewInput!) {\\n    capturePageView(input: $input) {\\n      success\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n    mutation SaveReadingActivityLearningState(\\n      $input: SaveReadingActivityLearningStateInput!\\n    ) {\\n      saveReadingActivityLearningState(input: $input) {\\n        success\\n      }\\n    }\\n  \"): (typeof documents)[\"\\n    mutation SaveReadingActivityLearningState(\\n      $input: SaveReadingActivityLearningStateInput!\\n    ) {\\n      saveReadingActivityLearningState(input: $input) {\\n        success\\n      }\\n    }\\n  \"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentProgressFragment on Student {\\n    id\\n    targetProgressionSequenceVersion\\n    progress {\\n      progressionSequenceVersion\\n      drivingTests {\\n        sightWords\\n        lettersAndSounds\\n        contentWords\\n      }\\n      lessons {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n        showPlacementTest\\n      }\\n      spelling {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n        showPlacementTest\\n      }\\n      clinkerCastle {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentProgressFragment on Student {\\n    id\\n    targetProgressionSequenceVersion\\n    progress {\\n      progressionSequenceVersion\\n      drivingTests {\\n        sightWords\\n        lettersAndSounds\\n        contentWords\\n      }\\n      lessons {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n        showPlacementTest\\n      }\\n      spelling {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n        showPlacementTest\\n      }\\n      clinkerCastle {\\n        currentLesson\\n        currentMap\\n        currentActivity\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query StudentProgress {\\n    student {\\n      ...StudentProgressFragment\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query StudentProgress {\\n    student {\\n      ...StudentProgressFragment\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation StudentProgressionSequenceMigrate {\\n    studentProgressionSequenceMigrate {\\n      student {\\n        ...StudentProgressFragment\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation StudentProgressionSequenceMigrate {\\n    studentProgressionSequenceMigrate {\\n      student {\\n        ...StudentProgressFragment\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation AvatarUpdate($input: AvatarUpdateInput!) {\\n    avatarUpdate(input: $input) {\\n      student {\\n        id\\n        avatarUrl\\n        dna {\\n          arms\\n          decal\\n          egg\\n          extra\\n          hat\\n          head\\n          legs\\n          sunnies\\n        }\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation AvatarUpdate($input: AvatarUpdateInput!) {\\n    avatarUpdate(input: $input) {\\n      student {\\n        id\\n        avatarUrl\\n        dna {\\n          arms\\n          decal\\n          egg\\n          extra\\n          hat\\n          head\\n          legs\\n          sunnies\\n        }\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentUserFragment on Student {\\n    id\\n    avatarUrl\\n    eggs\\n    firstName\\n    lastName\\n    gamesAccess\\n    playroomAccess\\n    name @client\\n    remoteId @client\\n    dna {\\n      arms\\n      decal\\n      egg\\n      extra\\n      hat\\n      head\\n      legs\\n      sunnies\\n    }\\n    dnaHash @client\\n    locale\\n    backgroundMusicDisabled\\n    rosterEnabled\\n    customerType\\n    parentId\\n    worldsStartingLesson\\n    learningWorldsEnabled\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentUserFragment on Student {\\n    id\\n    avatarUrl\\n    eggs\\n    firstName\\n    lastName\\n    gamesAccess\\n    playroomAccess\\n    name @client\\n    remoteId @client\\n    dna {\\n      arms\\n      decal\\n      egg\\n      extra\\n      hat\\n      head\\n      legs\\n      sunnies\\n    }\\n    dnaHash @client\\n    locale\\n    backgroundMusicDisabled\\n    rosterEnabled\\n    customerType\\n    parentId\\n    worldsStartingLesson\\n    learningWorldsEnabled\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment StudentLocaleFragment on Student {\\n    locale\\n  }\\n\"): (typeof documents)[\"\\n  fragment StudentLocaleFragment on Student {\\n    locale\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetStudent {\\n    student {\\n      ...StudentUserFragment\\n      ...StudentLocaleFragment\\n      ...StudentQuestDataFragment\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetStudent {\\n    student {\\n      ...StudentUserFragment\\n      ...StudentLocaleFragment\\n      ...StudentQuestDataFragment\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  fragment PlazaPollFragment on PlazaPoll {\\n    id\\n    startDate\\n    endDate\\n    month\\n    week\\n    votes {\\n      count\\n      answer\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  fragment PlazaPollFragment on PlazaPoll {\\n    id\\n    startDate\\n    endDate\\n    month\\n    week\\n    votes {\\n      count\\n      answer\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  query GetPlazaPolls($currentDate: ISO8601Date!) {\\n    plazaPolls(input: { currentDate: $currentDate }) {\\n      ...PlazaPollFragment\\n    }\\n\\n    student {\\n      firstName\\n      id\\n      plazaPollVote(dateVoted: $currentDate) {\\n        dateVoted\\n        plazaPollId\\n        votedAnswer\\n      }\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  query GetPlazaPolls($currentDate: ISO8601Date!) {\\n    plazaPolls(input: { currentDate: $currentDate }) {\\n      ...PlazaPollFragment\\n    }\\n\\n    student {\\n      firstName\\n      id\\n      plazaPollVote(dateVoted: $currentDate) {\\n        dateVoted\\n        plazaPollId\\n        votedAnswer\\n      }\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation SavePlazaPollVote($input: PlazaPollVoteCreateInput!) {\\n    plazaPollVoteCreate(input: $input) {\\n      dateVoted\\n      plazaPollId\\n      votedAnswer\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation SavePlazaPollVote($input: PlazaPollVoteCreateInput!) {\\n    plazaPollVoteCreate(input: $input) {\\n      dateVoted\\n      plazaPollId\\n      votedAnswer\\n    }\\n  }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n  mutation DeletePlazaPollVote($input: PlazaPollVoteDestroyInput!) {\\n    plazaPollVoteDestroy(input: $input) {\\n      ...PlazaPollFragment\\n    }\\n  }\\n\"): (typeof documents)[\"\\n  mutation DeletePlazaPollVote($input: PlazaPollVoteDestroyInput!) {\\n    plazaPollVoteDestroy(input: $input) {\\n      ...PlazaPollFragment\\n    }\\n  }\\n\"];\n\nexport function graphql(source: string) {\n  return (documents as any)[source] ?? {};\n}\n\nexport type DocumentType<TDocumentNode extends DocumentNode<any, any>> = TDocumentNode extends DocumentNode<  infer TType,  any>  ? TType  : never;","/* eslint-disable */\nimport type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\nimport { graphql, type GraphQLResponseResolver, type RequestHandlerOptions } from 'msw'\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n  ID: { input: string; output: string; }\n  String: { input: string; output: string; }\n  Boolean: { input: boolean; output: boolean; }\n  Int: { input: number; output: number; }\n  Float: { input: number; output: number; }\n  /** An ISO 8601-encoded date */\n  ISO8601Date: { input: string; output: string; }\n  /** An ISO 8601-encoded datetime */\n  ISO8601DateTime: { input: string; output: string; }\n  /** Represents untyped JSON */\n  JSON: { input: any; output: any; }\n  /** A Universally unique identifier (UUID), represented as a string */\n  Uuid: { input: string; output: string; }\n};\n\nexport type AskReggie = AskReggieAvailable | AskReggieDisabled | AskReggieSkipLesson | AskReggieUnavailable;\n\nexport type AskReggieAttemptLessonSkipInput = {\n  /** The lesson number that the student is attempting to skip */\n  lesson: Scalars['Int']['input'];\n};\n\n/** The results of the student initiating a lesson skip attempt with ask reggie */\nexport type AskReggieAttemptLessonSkipPayload = {\n  __typename: 'AskReggieAttemptLessonSkipPayload';\n  student: Student;\n};\n\nexport type AskReggieAvailable = {\n  __typename: 'AskReggieAvailable';\n  actions: Array<AskReggieAvailableActionEnum>;\n};\n\nexport enum AskReggieAvailableActionEnum {\n  SkipLesson = 'SKIP_LESSON'\n}\n\nexport type AskReggieDisabled = {\n  __typename: 'AskReggieDisabled';\n  /** Will always be true */\n  disabled: Scalars['Boolean']['output'];\n};\n\n/** The results of the student aborting a lesson skip attempt with ask reggie */\nexport type AskReggieLessonSkipAbortPayload = {\n  __typename: 'AskReggieLessonSkipAbortPayload';\n  student: Student;\n};\n\nexport type AskReggieSkipLesson = {\n  __typename: 'AskReggieSkipLesson';\n  /** The activity that the student needs to complete to proceed with the skipping the lesson */\n  activity: Scalars['Int']['output'];\n  /** The lesson number that the student is attempting to skip */\n  lesson: Scalars['Int']['output'];\n};\n\nexport type AskReggieUnavailable = {\n  __typename: 'AskReggieUnavailable';\n  reason: AskReggieUnavailableReasonEnum;\n};\n\nexport enum AskReggieUnavailableReasonEnum {\n  FailedSkipAttempt = 'FAILED_SKIP_ATTEMPT',\n  SkipAttemptsExhausted = 'SKIP_ATTEMPTS_EXHAUSTED'\n}\n\nexport type Assignment = AssignmentClinkerCastle | AssignmentDrivingTest | AssignmentLesson | AssignmentSpelling;\n\nexport type AssignmentClinkerCastle = AssignmentTaskDetails & {\n  __typename: 'AssignmentClinkerCastle';\n  /** The activity number. Example: \"1\" */\n  activityId: Scalars['ID']['output'];\n  /** Unique identifier of the assignment to which this task belongs */\n  assignmentUuid: Scalars['ID']['output'];\n  /** Timestamp when the task expires. Show the modal to the student until this time. */\n  endAt: Scalars['ISO8601DateTime']['output'];\n  /** The task ID from assignments-api. Example: 325396 */\n  id: Scalars['ID']['output'];\n  /** The lesson number, Example: \"127\" */\n  lessonId: Scalars['ID']['output'];\n  /** URL of the image shown to the student in the modal to push them into the assignment work. */\n  thumbnailUrl: Scalars['String']['output'];\n  /**\n   * Text shown to the student in the modal to push them into the assignment work.\n   * For a Book or BookChapter, this is the `bookName` of the book. For a Lesson or\n   * a Spelling, it's the lesson name.\n   */\n  title: Scalars['String']['output'];\n};\n\nexport type AssignmentDrivingTest = AssignmentTaskDetails & {\n  __typename: 'AssignmentDrivingTest';\n  /** Unique identifier of the assignment to which this task belongs */\n  assignmentUuid: Scalars['ID']['output'];\n  /** The lesson catergory, Example: \"letters_and_sounds\" */\n  category: Scalars['String']['output'];\n  /** Timestamp when the task expires. Show the modal to the student until this time. */\n  endAt: Scalars['ISO8601DateTime']['output'];\n  /** grade position number */\n  gradePosition: Scalars['Int']['output'];\n  /** The task ID from assignments-api. Example: 325396 */\n  id: Scalars['ID']['output'];\n  /** The lesson number, Example: \"127\" */\n  lessonId: Scalars['ID']['output'];\n  /** URL of the image shown to the student in the modal to push them into the assignment work. */\n  thumbnailUrl: Scalars['String']['output'];\n  /**\n   * Text shown to the student in the modal to push them into the assignment work.\n   * For a Book or BookChapter, this is the `bookName` of the book. For a Lesson or\n   * a Spelling, it's the lesson name.\n   */\n  title: Scalars['String']['output'];\n};\n\nexport type AssignmentInputs = {\n  /** The task id inside of the assignment */\n  assignmentTaskId: Scalars['Int']['input'];\n  /** A unique id of the assignment */\n  assignmentUuid: Scalars['String']['input'];\n};\n\nexport type AssignmentLesson = AssignmentTaskDetails & {\n  __typename: 'AssignmentLesson';\n  /** The activity number. Example: \"1\" */\n  activityId: Scalars['ID']['output'];\n  /** Unique identifier of the assignment to which this task belongs */\n  assignmentUuid: Scalars['ID']['output'];\n  /** Timestamp when the task expires. Show the modal to the student until this time. */\n  endAt: Scalars['ISO8601DateTime']['output'];\n  /** The task ID from assignments-api. Example: 325396 */\n  id: Scalars['ID']['output'];\n  /** The lesson number. Example: \"105\" */\n  lessonId: Scalars['ID']['output'];\n  /** URL of the image shown to the student in the modal to push them into the assignment work. */\n  thumbnailUrl: Scalars['String']['output'];\n  /**\n   * Text shown to the student in the modal to push them into the assignment work.\n   * For a Book or BookChapter, this is the `bookName` of the book. For a Lesson or\n   * a Spelling, it's the lesson name.\n   */\n  title: Scalars['String']['output'];\n};\n\nexport type AssignmentSpelling = AssignmentTaskDetails & {\n  __typename: 'AssignmentSpelling';\n  /** The activity number. Example: \"1\" */\n  activityId: Scalars['ID']['output'];\n  /** Unique identifier of the assignment to which this task belongs */\n  assignmentUuid: Scalars['ID']['output'];\n  /** Timestamp when the task expires. Show the modal to the student until this time. */\n  endAt: Scalars['ISO8601DateTime']['output'];\n  /** The task ID from assignments-api. Example: 325396 */\n  id: Scalars['ID']['output'];\n  /** The lesson number, Example: \"127\" */\n  lessonId: Scalars['ID']['output'];\n  /** URL of the image shown to the student in the modal to push them into the assignment work. */\n  thumbnailUrl: Scalars['String']['output'];\n  /**\n   * Text shown to the student in the modal to push them into the assignment work.\n   * For a Book or BookChapter, this is the `bookName` of the book. For a Lesson or\n   * a Spelling, it's the lesson name.\n   */\n  title: Scalars['String']['output'];\n};\n\nexport type AssignmentTask = AssignmentTaskClinkerCastle | AssignmentTaskDrivingTests | AssignmentTaskLesson | AssignmentTaskSpelling | Error;\n\nexport type AssignmentTaskClinkerCastle = AssignmentTaskDetails & {\n  __typename: 'AssignmentTaskClinkerCastle';\n  /** The activity number. Example: \"1\" */\n  activityId: Scalars['ID']['output'];\n  /** Unique identifier of the assignment to which this task belongs */\n  assignmentUuid: Scalars['ID']['output'];\n  /** Timestamp when the task expires. Show the modal to the student until this time. */\n  endAt: Scalars['ISO8601DateTime']['output'];\n  /** The task ID from assignments-api. Example: 325396 */\n  id: Scalars['ID']['output'];\n  /** The lesson number, Example: \"127\" */\n  lessonId: Scalars['ID']['output'];\n  targetRouteParams: Array<Scalars['String']['output']>;\n  /** URL of the image shown to the student in the modal to push them into the assignment work. */\n  thumbnailUrl: Scalars['String']['output'];\n  /**\n   * Text shown to the student in the modal to push them into the assignment work.\n   * For a Book or BookChapter, this is the `bookName` of the book. For a Lesson or\n   * a Spelling, it's the lesson name.\n   */\n  title: Scalars['String']['output'];\n};\n\nexport type AssignmentTaskDetails = {\n  /** Unique identifier of the assignment to which this task belongs */\n  assignmentUuid: Scalars['ID']['output'];\n  /** Timestamp when the task expires. Show the modal to the student until this time. */\n  endAt: Scalars['ISO8601DateTime']['output'];\n  /** The task ID from assignments-api. Example: 325396 */\n  id: Scalars['ID']['output'];\n  /** URL of the image shown to the student in the modal to push them into the assignment work. */\n  thumbnailUrl: Scalars['String']['output'];\n  /**\n   * Text shown to the student in the modal to push them into the assignment work.\n   * For a Book or BookChapter, this is the `bookName` of the book. For a Lesson or\n   * a Spelling, it's the lesson name.\n   */\n  title: Scalars['String']['output'];\n};\n\nexport type AssignmentTaskDrivingTests = AssignmentTaskDetails & {\n  __typename: 'AssignmentTaskDrivingTests';\n  /** Unique identifier of the assignment to which this task belongs */\n  assignmentUuid: Scalars['ID']['output'];\n  /** The lesson catergory, Example: \"letters_and_sounds\" */\n  category: Scalars['String']['output'];\n  /** Timestamp when the task expires. Show the modal to the student until this time. */\n  endAt: Scalars['ISO8601DateTime']['output'];\n  /** grade position number */\n  gradePosition: Scalars['Int']['output'];\n  /** The task ID from assignments-api. Example: 325396 */\n  id: Scalars['ID']['output'];\n  /** The lesson number, Example: \"127\" */\n  lessonId: Scalars['ID']['output'];\n  targetRouteParams: Array<Scalars['String']['output']>;\n  /** URL of the image shown to the student in the modal to push them into the assignment work. */\n  thumbnailUrl: Scalars['String']['output'];\n  /**\n   * Text shown to the student in the modal to push them into the assignment work.\n   * For a Book or BookChapter, this is the `bookName` of the book. For a Lesson or\n   * a Spelling, it's the lesson name.\n   */\n  title: Scalars['String']['output'];\n};\n\nexport type AssignmentTaskLesson = AssignmentTaskDetails & {\n  __typename: 'AssignmentTaskLesson';\n  /** The activity number. Example: \"1\" */\n  activityId: Scalars['ID']['output'];\n  /** Unique identifier of the assignment to which this task belongs */\n  assignmentUuid: Scalars['ID']['output'];\n  /** Timestamp when the task expires. Show the modal to the student until this time. */\n  endAt: Scalars['ISO8601DateTime']['output'];\n  /** The task ID from assignments-api. Example: 325396 */\n  id: Scalars['ID']['output'];\n  /** The lesson number. Example: \"105\" */\n  lessonId: Scalars['ID']['output'];\n  targetRouteParams: Array<Scalars['String']['output']>;\n  /** URL of the image shown to the student in the modal to push them into the assignment work. */\n  thumbnailUrl: Scalars['String']['output'];\n  /**\n   * Text shown to the student in the modal to push them into the assignment work.\n   * For a Book or BookChapter, this is the `bookName` of the book. For a Lesson or\n   * a Spelling, it's the lesson name.\n   */\n  title: Scalars['String']['output'];\n};\n\nexport type AssignmentTaskSpelling = AssignmentTaskDetails & {\n  __typename: 'AssignmentTaskSpelling';\n  /** The activity number. Example: \"1\" */\n  activityId: Scalars['ID']['output'];\n  /** Unique identifier of the assignment to which this task belongs */\n  assignmentUuid: Scalars['ID']['output'];\n  /** Timestamp when the task expires. Show the modal to the student until this time. */\n  endAt: Scalars['ISO8601DateTime']['output'];\n  /** The task ID from assignments-api. Example: 325396 */\n  id: Scalars['ID']['output'];\n  /** The lesson number, Example: \"127\" */\n  lessonId: Scalars['ID']['output'];\n  targetRouteParams: Array<Scalars['String']['output']>;\n  /** URL of the image shown to the student in the modal to push them into the assignment work. */\n  thumbnailUrl: Scalars['String']['output'];\n  /**\n   * Text shown to the student in the modal to push them into the assignment work.\n   * For a Book or BookChapter, this is the `bookName` of the book. For a Lesson or\n   * a Spelling, it's the lesson name.\n   */\n  title: Scalars['String']['output'];\n};\n\n/** DNA values for a student avatar */\nexport type AvatarDna = {\n  __typename: 'AvatarDna';\n  /** Arm detail */\n  arms: Scalars['String']['output'];\n  /** Decal detail */\n  decal: Scalars['String']['output'];\n  /** Egg detail */\n  egg: Scalars['String']['output'];\n  /** Extra detail */\n  extra: Scalars['String']['output'];\n  /** Hat detail */\n  hat: Scalars['String']['output'];\n  /** Head detail */\n  head: Scalars['String']['output'];\n  /** Leg detail */\n  legs: Scalars['String']['output'];\n  /** Sunnies type */\n  sunnies: Scalars['String']['output'];\n};\n\nexport type AvatarUpdateInput = {\n  arms: Scalars['String']['input'];\n  decal: Scalars['String']['input'];\n  egg: Scalars['String']['input'];\n  extra: Scalars['String']['input'];\n  hat: Scalars['String']['input'];\n  head: Scalars['String']['input'];\n  legs: Scalars['String']['input'];\n  sunnies: Scalars['String']['input'];\n};\n\n/** The result of the updating an avatar */\nexport type AvatarUpdateOutput = {\n  __typename: 'AvatarUpdateOutput';\n  student?: Maybe<Student>;\n};\n\n/** A badge is a result fom a reading lesson quiz. */\nexport type Badge = {\n  __typename: 'Badge';\n  /** Badge colour */\n  colour: BadgeColourEnum;\n  /** Reading lesson quiz result id */\n  id: Scalars['ID']['output'];\n  /** Reading lesson number */\n  lesson: Scalars['Int']['output'];\n};\n\nexport enum BadgeColourEnum {\n  /** Bronze badge colour */\n  Bronze = 'bronze',\n  /** Gold badge colour */\n  Gold = 'gold',\n  /** Silver badge colour */\n  Silver = 'silver'\n}\n\n/** A book */\nexport type Book = {\n  __typename: 'Book';\n  /** Book code */\n  code: Scalars['String']['output'];\n  /** Book content */\n  content: Scalars['JSON']['output'];\n  /** Cover URL */\n  coverUrl: Scalars['String']['output'];\n  /** Book ID */\n  id: Scalars['String']['output'];\n};\n\nexport type BookQueryInput = {\n  /** Book code */\n  code: Scalars['String']['input'];\n};\n\n/** Details for the spelling lesson activity result */\nexport type BookQuizResult = {\n  __typename: 'BookQuizResult';\n  /** Rewards earned attempting the book quiz */\n  reward: BookQuizReward;\n};\n\nexport type BookQuizResultCreateInput = {\n  /** A unique id for a placement test attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** The code of the book */\n  bookCode: Scalars['String']['input'];\n  /** The number of correct answers */\n  correctCount: Scalars['Int']['input'];\n  /** The total number of questions */\n  totalCount: Scalars['Int']['input'];\n};\n\n/** The result of the book quiz submission */\nexport type BookQuizResultCreateOutput = {\n  __typename: 'BookQuizResultCreateOutput';\n  /** The result of the book quiz submission */\n  bookQuizResult: BookQuizResult;\n  /** Student detail */\n  student: Student;\n};\n\nexport type BookQuizReward = {\n  __typename: 'BookQuizReward';\n  /** The number of eggs earned */\n  eggs: Scalars['Int']['output'];\n  /** Whether the student has reached a milestone */\n  milestone: Scalars['Boolean']['output'];\n  /** Whether the student has passed the quiz */\n  passed: Scalars['Boolean']['output'];\n};\n\nexport type CapturePageViewInput = {\n  /** The locale of the content being viewed. One of: au, us, uk, ca */\n  contentLocale: Scalars['String']['input'];\n  /** The type of content being viewed. One of: caper, jester, html */\n  contentType: Scalars['String']['input'];\n  /** Unique identifier for this event */\n  id: Scalars['String']['input'];\n  /** The path of the page being viewed */\n  path: Scalars['String']['input'];\n  /** The session identifier for the current user session */\n  sessionId: Scalars['String']['input'];\n};\n\nexport type CapturePageViewOutput = {\n  __typename: 'CapturePageViewOutput';\n  success: Scalars['Boolean']['output'];\n};\n\n/** Certificate record details for a student */\nexport type Certificate = {\n  __typename: 'Certificate';\n  /** Certificate colour */\n  colour: CertificateColourEnum;\n  /** Certificate completion timestamp */\n  createdAt: Scalars['ISO8601DateTime']['output'];\n  /** Certificate ID */\n  id: Scalars['ID']['output'];\n  /** Map number */\n  map: Scalars['Int']['output'];\n  /** Quiz score percentage */\n  scorePercentage: Scalars['Int']['output'];\n  /** A url for a certificate retreival */\n  url: Scalars['String']['output'];\n};\n\nexport enum CertificateColourEnum {\n  /** Bronze certificate colour */\n  Bronze = 'bronze',\n  /** Gold certificate colour */\n  Gold = 'gold',\n  /** Silver certificate colour */\n  Silver = 'silver'\n}\n\nexport type CertificateSaveInput = {\n  /** Certificate height */\n  height: Scalars['Int']['input'];\n  /** Pending Certificate identifier */\n  pendingCertificateId: Scalars['Uuid']['input'];\n  /** Certificate width */\n  width: Scalars['Int']['input'];\n};\n\n/** A payload to return the newly created certificate record and the updated student */\nexport type CertificateSavePayload = {\n  __typename: 'CertificateSavePayload';\n  certificate: Certificate;\n  student: Student;\n};\n\n/** Details for the spelling lesson activity result */\nexport type ClinkerCastleLessonActivityResult = {\n  __typename: 'ClinkerCastleLessonActivityResult';\n  /** Rewards earned for the activity */\n  reward: ClinkerCastleLessonActivityReward;\n};\n\nexport type ClinkerCastleLessonActivityResultCreateInput = {\n  /** The position of this activity in the lesson, starting at 1 */\n  activityInLesson: Scalars['Int']['input'];\n  /** Assignment inputs */\n  assignment?: InputMaybe<AssignmentInputs>;\n  /** A unique id for an activity attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** The position of this activity's lesson in this precinct, starting at 1 */\n  lessonInPrecinct: Scalars['Int']['input'];\n};\n\n/** The results of a spelling/lesson precinct activity */\nexport type ClinkerCastleLessonActivityResultCreateOutput = {\n  __typename: 'ClinkerCastleLessonActivityResultCreateOutput';\n  /** A payload of clinker castle lesson activity result data */\n  clinkerCastleLessonActivityResult: ClinkerCastleLessonActivityResult;\n  /** Student detail */\n  student: Student;\n};\n\nexport type ClinkerCastleLessonActivityReward = {\n  __typename: 'ClinkerCastleLessonActivityReward';\n  /** The number of eggs earned */\n  eggs: Scalars['Int']['output'];\n};\n\n/** Details for the clinker castle lesson quiz result */\nexport type ClinkerCastleLessonQuizResult = {\n  __typename: 'ClinkerCastleLessonQuizResult';\n  /** Rewards earned for the activity */\n  reward: ClinkerCastleLessonQuizReward;\n};\n\nexport type ClinkerCastleLessonQuizResultCreateInput = {\n  /** Assignment inputs */\n  assignment?: InputMaybe<AssignmentInputs>;\n  /** A unique id for a lesson quiz attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** A list of student's correct answers */\n  correctAnswers: Array<Scalars['String']['input']>;\n  /** An object which maps the correct answers to the students incorrect answers */\n  incorrectAnswers: Scalars['JSON']['input'];\n  /** The lesson number */\n  lesson: Scalars['Int']['input'];\n};\n\n/** The result of the clinker castle lesson quiz result submission */\nexport type ClinkerCastleLessonQuizResultCreateOutput = {\n  __typename: 'ClinkerCastleLessonQuizResultCreateOutput';\n  /** A payload of clinker castle lesson activity result data */\n  clinkerCastleLessonQuizResult: ClinkerCastleLessonQuizResult;\n  /** Student detail */\n  student: Student;\n};\n\nexport type ClinkerCastleLessonQuizReward = {\n  __typename: 'ClinkerCastleLessonQuizReward';\n  /** The number of eggs earned */\n  eggs: Scalars['Int']['output'];\n  /** Whether the student has earned a prize */\n  prize: Scalars['Boolean']['output'];\n};\n\n/** Student progress in the clinker castle (storylands) precinct */\nexport type ClinkerCastleProgress = {\n  __typename: 'ClinkerCastleProgress';\n  /** Student's current activity position */\n  currentActivity: Scalars['Int']['output'];\n  /** Student's current lesson position */\n  currentLesson: Scalars['Int']['output'];\n  /** Student's current map position */\n  currentMap: Scalars['Int']['output'];\n};\n\nexport enum CustomerTypeEnum {\n  B2BStudent = 'B2B_STUDENT',\n  B2CHomeschoolStudent = 'B2C_HOMESCHOOL_STUDENT',\n  B2CStudent = 'B2C_STUDENT'\n}\n\nexport enum DrivingTestCategoryEnum {\n  ContentWords = 'CONTENT_WORDS',\n  LettersAndSounds = 'LETTERS_AND_SOUNDS',\n  SightWords = 'SIGHT_WORDS'\n}\n\nexport type DrivingTestGameResultCreateInput = {\n  /** A unique id for a game attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** The number of eggs collected */\n  eggs: Scalars['Int']['input'];\n};\n\n/** The result of the driving test game result submission */\nexport type DrivingTestGameResultCreateOutput = {\n  __typename: 'DrivingTestGameResultCreateOutput';\n  /** Student detail */\n  student: Student;\n};\n\n/** Student progress in the driving tests precinct */\nexport type DrivingTestProgress = {\n  __typename: 'DrivingTestProgress';\n  /** Student's current position in content words */\n  contentWords: Scalars['Int']['output'];\n  /** Student's current position in letters and sounds */\n  lettersAndSounds: Scalars['Int']['output'];\n  /** Student's current position in sight words */\n  sightWords: Scalars['Int']['output'];\n};\n\nexport type DrivingTestQuizAssignmentInputs = {\n  /** The task id inside of the assignment */\n  assignmentTaskId: Scalars['Int']['input'];\n  /** A unique id of the assignment */\n  assignmentUuid: Scalars['String']['input'];\n  /** The grade position of the assignment task */\n  gradePosition: Scalars['Int']['input'];\n};\n\nexport type DrivingTestQuizResultCreateInput = {\n  /** Assignment inputs */\n  assignment?: InputMaybe<DrivingTestQuizAssignmentInputs>;\n  /** A unique id for a driving test quiz attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** The category of the quiz (e.g. 'sight_words' 'letters_and_sounds' 'content_words') */\n  category: Scalars['String']['input'];\n  /** A list of student's correct answers */\n  correctAnswers: Array<Scalars['String']['input']>;\n  /** An object which maps the correct answers to the students incorrect answers */\n  incorrectAnswers: Scalars['JSON']['input'];\n  /** The quiz number */\n  quizPosition: Scalars['Int']['input'];\n};\n\n/** The result of the driving test quiz result submission */\nexport type DrivingTestQuizResultCreateOutput = {\n  __typename: 'DrivingTestQuizResultCreateOutput';\n  /** Student detail */\n  student: Student;\n};\n\nexport type Error = {\n  __typename: 'Error';\n  message: Scalars['String']['output'];\n};\n\nexport enum Framework {\n  /** The Caper game framework */\n  Caper = 'CAPER',\n  /** The Jester game framework */\n  Jester = 'JESTER'\n}\n\nexport type Game = {\n  __typename: 'Game';\n  highScores: Array<Score>;\n  id: Scalars['ID']['output'];\n  name: Scalars['String']['output'];\n  personalBest?: Maybe<Score>;\n};\n\n\nexport type GameHighScoresArgs = {\n  limit?: Scalars['Int']['input'];\n};\n\nexport type GamePlayPurchaseInput = {\n  /** Unique slug to identify game */\n  gameId: Scalars['ID']['input'];\n};\n\nexport type GamePlayPurchaseInsufficientFunds = {\n  __typename: 'GamePlayPurchaseInsufficientFunds';\n  /** Student detail */\n  student: Student;\n};\n\nexport type GamePlayPurchaseOutput = GamePlayPurchaseInsufficientFunds | GamePlayPurchaseSuccess;\n\nexport type GamePlayPurchaseSuccess = {\n  __typename: 'GamePlayPurchaseSuccess';\n  /** Student detail */\n  student: Student;\n};\n\nexport type GameScoreSaveInput = {\n  /** Unique slug to identify game */\n  gameId: Scalars['ID']['input'];\n  /** Score that was acheived */\n  score: Scalars['Int']['input'];\n};\n\n/** The result of the game score save submission */\nexport type GameScoreSaveOutput = {\n  __typename: 'GameScoreSaveOutput';\n  game?: Maybe<Game>;\n};\n\nexport type ItemGrantFailed = {\n  __typename: 'ItemGrantFailed';\n  success: Scalars['Boolean']['output'];\n};\n\nexport type ItemGrantInput = {\n  code: Scalars['String']['input'];\n};\n\nexport type ItemGrantOutput = ItemGrantFailed | ItemGrantSuccess;\n\nexport type ItemGrantSuccess = {\n  __typename: 'ItemGrantSuccess';\n  item: PurchasedItem;\n  success: Scalars['Boolean']['output'];\n};\n\nexport type ItemPurchaseFailed = {\n  __typename: 'ItemPurchaseFailed';\n  success: Scalars['Boolean']['output'];\n};\n\nexport type ItemPurchaseInput = {\n  code: Scalars['String']['input'];\n};\n\nexport type ItemPurchaseOutput = ItemPurchaseFailed | ItemPurchaseSuccess;\n\nexport type ItemPurchaseSuccess = {\n  __typename: 'ItemPurchaseSuccess';\n  item: PurchasedItem;\n  success: Scalars['Boolean']['output'];\n};\n\nexport type ItemUpdateFailed = {\n  __typename: 'ItemUpdateFailed';\n  success: Scalars['Boolean']['output'];\n};\n\nexport type ItemUpdateInput = {\n  code: Scalars['String']['input'];\n  state: Scalars['String']['input'];\n};\n\nexport type ItemUpdateOutput = ItemUpdateFailed | ItemUpdateSuccess;\n\nexport type ItemUpdateSuccess = {\n  __typename: 'ItemUpdateSuccess';\n  item: PurchasedItem;\n  success: Scalars['Boolean']['output'];\n};\n\n/** Student progress in the lessons precinct */\nexport type LessonsProgress = {\n  __typename: 'LessonsProgress';\n  /** Student's current activity position */\n  currentActivity: Scalars['Int']['output'];\n  /** Student's current lesson position, eg '10' or 'quiz' */\n  currentLesson: Scalars['String']['output'];\n  /** Student's current map position */\n  currentMap: Scalars['Int']['output'];\n  showPlacementTest: Scalars['Boolean']['output'];\n};\n\nexport type Mutation = {\n  __typename: 'Mutation';\n  askReggieAttemptLessonSkip: AskReggieAttemptLessonSkipPayload;\n  askReggieLessonSkipAbort: AskReggieLessonSkipAbortPayload;\n  avatarUpdate: AvatarUpdateOutput;\n  bookQuizResultCreate: BookQuizResultCreateOutput;\n  capturePageView: CapturePageViewOutput;\n  /**\n   * We've chosen to use two records to manage certificate state. The\n   * pending certificate handles pre-customization details until +this+\n   * point where the certificate is finalized on upload. This mutation\n   * handles creation of the Certificate record and deleting the pending\n   * record.\n   */\n  certificateSave: CertificateSavePayload;\n  clinkerCastleLessonActivityResultCreate: ClinkerCastleLessonActivityResultCreateOutput;\n  clinkerCastleLessonQuizResultCreate: ClinkerCastleLessonQuizResultCreateOutput;\n  drivingTestGameResultCreate: DrivingTestGameResultCreateOutput;\n  drivingTestQuizResultCreate: DrivingTestQuizResultCreateOutput;\n  gamePlayPurchase: GamePlayPurchaseOutput;\n  gameScoreSave: GameScoreSaveOutput;\n  itemGrant: ItemGrantOutput;\n  itemPurchase: ItemPurchaseOutput;\n  itemUpdate: ItemUpdateOutput;\n  /**\n   * Create or update a vote on a poll for a particular day, specified by the\n   * date, for the currently logged in student.\n   *\n   * When there is any kind of error (the student doesn't exist, there's any\n   * unexpected error), the general purpose GraphQL error format will be returned,\n   * with a message that can be used for the developer to debug the situation. The\n   * student is expected to see a general purpose error message and potentially a\n   * retry button.\n   */\n  plazaPollVoteCreate: PlazaPollVote;\n  /**\n   * Remove a vote on a poll for a particular day, specified by the date, for\n   * the currently logged in student.\n   *\n   * When there is any kind of error (the student doesn't exist, there's any\n   * unexpected error), the general purpose GraphQL error format will be returned,\n   * with a message that can be used for the developer to debug the situation. The\n   * student is expected to see a general purpose error message and potentially a\n   * retry button.\n   */\n  plazaPollVoteDestroy: Array<PlazaPoll>;\n  readingEndOfLessonQuizResultCreate: ReadingEndOfLessonQuizResultCreateOutput;\n  readingGoalsQuizResultCreate: ReadingGoalsQuizResultCreateOutput;\n  readingLessonActivityResultCreate: ReadingLessonActivityResultCreateOutput;\n  readingLessonPlacementTestResultCreate: ReadingLessonPlacementTestResultCreateOutput;\n  readingMapQuizResultCreate: ReadingMapQuizResultCreateOutput;\n  saveReadingActivityLearningState: SaveReadingActivityLearningStateOutput;\n  spellingLessonActivityResultCreate: SpellingLessonActivityResultCreateOutput;\n  spellingLessonPlacementTestResultCreate: SpellingLessonPlacementTestResultCreateOutput;\n  spellingLessonQuizResultCreate: SpellingLessonQuizResultCreateOutput;\n  spellingMapQuizResultCreate: SpellingMapQuizResultCreateOutput;\n  studentProgressClinkerCastleLessonReset: StudentProgressClinkerCastleLessonResetPayload;\n  studentProgressDrivingTestCategoryReset: StudentProgressDrivingTestCategoryResetPayload;\n  studentProgressReadingLessonReset: StudentProgressReadingLessonResetPayload;\n  studentProgressReadingMapQuizReset: StudentProgressReadingMapQuizResetPayload;\n  studentProgressReadingPlacementTestReset: StudentProgressReadingPlacementTestResetPayload;\n  studentProgressSpellingLessonReset: StudentProgressSpellingLessonResetPayload;\n  studentProgressSpellingMapQuizReset: StudentProgressSpellingMapQuizResetPayload;\n  /** Update the student's progression sequence to the given version. */\n  studentProgressionSequenceMigrate: StudentProgressionSequenceMigratePayload;\n  studentQuestGoalAcknowledgeComplete: StudentQuestGoalAcknowledgeCompletePayload;\n  /** Resets the area_reveal_position for a student in a world. */\n  studentWorldAreaRevealPositionReset: StudentWorldAreaRevealPositionResetOutput;\n  /** Sets the area_reveal_position for a student in a world. */\n  studentWorldAreaRevealPositionSet: StudentWorldAreaRevealPositionSetOutput;\n  /** Record an interaction for a student on a world. */\n  studentWorldInteractionCreate: StudentWorldInteractionCreateOutput;\n  /** Reset the interactions for a student on a world if debug is allowed. */\n  studentWorldInteractionReset: StudentWorldInteractionResetOutput;\n  /** Resets the onboarding. */\n  studentWorldOnboardingReset: StudentWorldOnboardingResetOutput;\n  /** Completes the section of onboarding. */\n  studentWorldOnboardingSectionComplete: StudentWorldOnboardingSectionCompleteOutput;\n};\n\n\nexport type MutationAskReggieAttemptLessonSkipArgs = {\n  input: AskReggieAttemptLessonSkipInput;\n};\n\n\nexport type MutationAvatarUpdateArgs = {\n  input: AvatarUpdateInput;\n};\n\n\nexport type MutationBookQuizResultCreateArgs = {\n  input: BookQuizResultCreateInput;\n};\n\n\nexport type MutationCapturePageViewArgs = {\n  input: CapturePageViewInput;\n};\n\n\nexport type MutationCertificateSaveArgs = {\n  input: CertificateSaveInput;\n};\n\n\nexport type MutationClinkerCastleLessonActivityResultCreateArgs = {\n  input: ClinkerCastleLessonActivityResultCreateInput;\n};\n\n\nexport type MutationClinkerCastleLessonQuizResultCreateArgs = {\n  input: ClinkerCastleLessonQuizResultCreateInput;\n};\n\n\nexport type MutationDrivingTestGameResultCreateArgs = {\n  input: DrivingTestGameResultCreateInput;\n};\n\n\nexport type MutationDrivingTestQuizResultCreateArgs = {\n  input: DrivingTestQuizResultCreateInput;\n};\n\n\nexport type MutationGamePlayPurchaseArgs = {\n  input: GamePlayPurchaseInput;\n};\n\n\nexport type MutationGameScoreSaveArgs = {\n  input: GameScoreSaveInput;\n};\n\n\nexport type MutationItemGrantArgs = {\n  input: ItemGrantInput;\n};\n\n\nexport type MutationItemPurchaseArgs = {\n  input: ItemPurchaseInput;\n};\n\n\nexport type MutationItemUpdateArgs = {\n  input: ItemUpdateInput;\n};\n\n\nexport type MutationPlazaPollVoteCreateArgs = {\n  input: PlazaPollVoteCreateInput;\n};\n\n\nexport type MutationPlazaPollVoteDestroyArgs = {\n  input: PlazaPollVoteDestroyInput;\n};\n\n\nexport type MutationReadingEndOfLessonQuizResultCreateArgs = {\n  input: ReadingEndOfLessonQuizResultCreateInput;\n};\n\n\nexport type MutationReadingGoalsQuizResultCreateArgs = {\n  input: ReadingGoalsQuizResultCreateInput;\n};\n\n\nexport type MutationReadingLessonActivityResultCreateArgs = {\n  input: ReadingLessonActivityResultCreateInput;\n};\n\n\nexport type MutationReadingLessonPlacementTestResultCreateArgs = {\n  input: ReadingLessonPlacementTestResultCreateInput;\n};\n\n\nexport type MutationReadingMapQuizResultCreateArgs = {\n  input: ReadingMapQuizResultCreateInput;\n};\n\n\nexport type MutationSaveReadingActivityLearningStateArgs = {\n  input: SaveReadingActivityLearningStateInput;\n};\n\n\nexport type MutationSpellingLessonActivityResultCreateArgs = {\n  input: SpellingLessonActivityResultCreateInput;\n};\n\n\nexport type MutationSpellingLessonPlacementTestResultCreateArgs = {\n  input: SpellingLessonPlacementTestResultCreateInput;\n};\n\n\nexport type MutationSpellingLessonQuizResultCreateArgs = {\n  input: SpellingLessonQuizResultCreateInput;\n};\n\n\nexport type MutationSpellingMapQuizResultCreateArgs = {\n  input: SpellingMapQuizResultCreateInput;\n};\n\n\nexport type MutationStudentProgressClinkerCastleLessonResetArgs = {\n  input: StudentProgressClinkerCastleLessonResetInput;\n};\n\n\nexport type MutationStudentProgressDrivingTestCategoryResetArgs = {\n  input: StudentProgressDrivingTestCategoryResetInput;\n};\n\n\nexport type MutationStudentProgressReadingLessonResetArgs = {\n  input: StudentProgressReadingLessonResetInput;\n};\n\n\nexport type MutationStudentProgressReadingMapQuizResetArgs = {\n  input: StudentProgressReadingMapQuizResetInput;\n};\n\n\nexport type MutationStudentProgressSpellingLessonResetArgs = {\n  input: StudentProgressSpellingLessonResetInput;\n};\n\n\nexport type MutationStudentProgressSpellingMapQuizResetArgs = {\n  input: StudentProgressSpellingMapQuizResetInput;\n};\n\n\nexport type MutationStudentQuestGoalAcknowledgeCompleteArgs = {\n  input: StudentQuestGoalAcknowledgeCompleteInput;\n};\n\n\nexport type MutationStudentWorldAreaRevealPositionResetArgs = {\n  input: StudentWorldAreaRevealPositionResetInput;\n};\n\n\nexport type MutationStudentWorldAreaRevealPositionSetArgs = {\n  input: StudentWorldAreaRevealPositionSetInput;\n};\n\n\nexport type MutationStudentWorldInteractionCreateArgs = {\n  input: StudentWorldInteractionCreateInput;\n};\n\n\nexport type MutationStudentWorldInteractionResetArgs = {\n  input: StudentWorldInteractionResetInput;\n};\n\n\nexport type MutationStudentWorldOnboardingSectionCompleteArgs = {\n  input: StudentWorldOnboardingSectionCompleteInput;\n};\n\n/** Information about pagination in a connection. */\nexport type PageInfo = {\n  __typename: 'PageInfo';\n  /** When paginating forwards, the cursor to continue. */\n  endCursor?: Maybe<Scalars['String']['output']>;\n  /** When paginating forwards, are there more items? */\n  hasNextPage: Scalars['Boolean']['output'];\n  /** When paginating backwards, are there more items? */\n  hasPreviousPage: Scalars['Boolean']['output'];\n  /** When paginating backwards, the cursor to continue. */\n  startCursor?: Maybe<Scalars['String']['output']>;\n};\n\n/** Pending certificate record detail for a student */\nexport type PendingCertificate = {\n  __typename: 'PendingCertificate';\n  /** Certificate colour */\n  colour: CertificateColourEnum;\n  /** Pending certificate ID */\n  id: Scalars['Uuid']['output'];\n  /** Map number */\n  map: Scalars['Int']['output'];\n  /** Time quiz passed at */\n  quizResultCreatedAt: Scalars['ISO8601DateTime']['output'];\n  /** Quiz score percentage */\n  scorePercentage: Scalars['Int']['output'];\n  /** A timed HMAC encoded upload url for a certificate */\n  uploadUrl: Scalars['String']['output'];\n};\n\nexport type PendingCertificateQueryInput = {\n  /** Pending certificate  identifier */\n  pendingCertificateId: Scalars['Uuid']['input'];\n};\n\n/** A poll in which students can vote for a period of time */\nexport type PlazaPoll = {\n  __typename: 'PlazaPoll';\n  /** End date of poll */\n  endDate: Scalars['ISO8601Date']['output'];\n  /** A number from 1-48 identifying the weekly poll within the current year */\n  id: Scalars['ID']['output'];\n  /** Poll month number (starting at 1) */\n  month: Scalars['Int']['output'];\n  /** Start date of poll */\n  startDate: Scalars['ISO8601Date']['output'];\n  /** Counts for each poll answer */\n  votes: Array<PlazaPollVoteAnswerCount>;\n  /** Poll week number (starting at 1) */\n  week: Scalars['Int']['output'];\n};\n\n/** A vote for an answer in a poll by a student */\nexport type PlazaPollVote = {\n  __typename: 'PlazaPollVote';\n  /** Vote is for this day */\n  dateVoted: Scalars['ISO8601Date']['output'];\n  /** Plaza poll unique identifier; the student is voting on this poll */\n  plazaPollId: Scalars['ID']['output'];\n  /** The ordinal position representing the vote, starting at 1 */\n  votedAnswer: Scalars['Int']['output'];\n};\n\n/** A count of student votes for a particular answer in a poll */\nexport type PlazaPollVoteAnswerCount = {\n  __typename: 'PlazaPollVoteAnswerCount';\n  /** The ordinal position representing the vote, starting at 1 */\n  answer: Scalars['Int']['output'];\n  /** Number of votes for this answer */\n  count: Scalars['Int']['output'];\n};\n\nexport type PlazaPollVoteCreateInput = {\n  /** Vote is for this day */\n  dateVoted: Scalars['ISO8601Date']['input'];\n  /** Plaza poll unique identifier; the student is voting on this poll */\n  plazaPollId: Scalars['ID']['input'];\n  /** The ordinal position representing the vote. 1-based. */\n  votedAnswer: Scalars['Int']['input'];\n};\n\nexport type PlazaPollVoteDestroyInput = {\n  /** Date to identify vote to be removed */\n  dateVoted: Scalars['ISO8601Date']['input'];\n};\n\nexport type PlazaPollsQueryInput = {\n  /** Current date */\n  currentDate: Scalars['ISO8601Date']['input'];\n};\n\n/** Progression system for the student */\nexport type Progress = {\n  __typename: 'Progress';\n  clinkerCastle: ClinkerCastleProgress;\n  drivingTests: DrivingTestProgress;\n  lessons: LessonsProgress;\n  /** The version of the progression sequence the student is on */\n  progressionSequenceVersion: Scalars['Int']['output'];\n  spelling: SpellingProgress;\n};\n\n/** A purchased item */\nexport type PurchasedItem = {\n  __typename: 'PurchasedItem';\n  aisle?: Maybe<Scalars['String']['output']>;\n  animationJson?: Maybe<Scalars['String']['output']>;\n  animationUrl?: Maybe<Scalars['String']['output']>;\n  code?: Maybe<Scalars['String']['output']>;\n  department: Scalars['String']['output'];\n  id: Scalars['ID']['output'];\n  imageUrl?: Maybe<Scalars['String']['output']>;\n  state: Scalars['String']['output'];\n};\n\nexport type Puzzle = {\n  __typename: 'Puzzle';\n  id: Scalars['ID']['output'];\n  name: Scalars['String']['output'];\n};\n\nexport type PuzzleScore = {\n  __typename: 'PuzzleScore';\n  id: Scalars['ID']['output'];\n  puzzle: Puzzle;\n  score: Scalars['Int']['output'];\n};\n\nexport type Query = {\n  __typename: 'Query';\n  /** Get a book by code */\n  book?: Maybe<Book>;\n  games?: Maybe<Array<Game>>;\n  /** Get a pending certificate by id */\n  getPendingCertificate?: Maybe<PendingCertificate>;\n  /** List of plaza polls and results for the week of the given date, and the two weeks prior */\n  plazaPolls: Array<PlazaPoll>;\n  /** List of reading activities */\n  readingActivities: Array<ReadingActivity>;\n  /** List of all the reading goals quizzes */\n  readingGoalsQuizzes: Array<ReadingGoalsQuiz>;\n  /** Student details */\n  student?: Maybe<Student>;\n};\n\n\nexport type QueryBookArgs = {\n  input: BookQueryInput;\n};\n\n\nexport type QueryGetPendingCertificateArgs = {\n  input: PendingCertificateQueryInput;\n};\n\n\nexport type QueryPlazaPollsArgs = {\n  input: PlazaPollsQueryInput;\n};\n\n/** The student's current quest */\nexport type Quest = {\n  __typename: 'Quest';\n  easyGoal?: Maybe<QuestGoalEasy>;\n  primaryGoal?: Maybe<QuestGoalPrimary>;\n};\n\nexport type QuestGoalEarnEggs = {\n  __typename: 'QuestGoalEarnEggs';\n  /**\n   * The number of eggs rewarded for completing the goal\n   * @deprecated Use rewardAmount instead\n   */\n  eggReward: Scalars['Int']['output'];\n  id: Scalars['ID']['output'];\n  /** The students current goal progress */\n  progressCurrent: Scalars['Int']['output'];\n  /** The goal progress required to complete */\n  progressTotal: Scalars['Int']['output'];\n  /** The number of eggs rewarded for completing the goal */\n  rewardAmount: Scalars['Int']['output'];\n  status: QuestGoalStatusEnum;\n};\n\nexport type QuestGoalEasy = QuestGoalEarnEggs;\n\nexport type QuestGoalLesson = {\n  __typename: 'QuestGoalLesson';\n  /**\n   * The number of eggs rewarded for completing the goal\n   * @deprecated Use rewardAmount instead\n   */\n  eggReward: Scalars['Int']['output'];\n  id: Scalars['ID']['output'];\n  /** The lesson which must be completed to complete the goal */\n  lesson: Scalars['Int']['output'];\n  /** The students current goal progress */\n  progressCurrent: Scalars['Int']['output'];\n  /** The goal progress required to complete */\n  progressTotal: Scalars['Int']['output'];\n  /** The number of eggs rewarded for completing the goal */\n  rewardAmount: Scalars['Int']['output'];\n  status: QuestGoalStatusEnum;\n};\n\nexport type QuestGoalMap = {\n  __typename: 'QuestGoalMap';\n  /** @deprecated Use progressCurrent >= progressTotal instead */\n  complete: Scalars['Boolean']['output'];\n  /**\n   * The number of eggs rewarded for completing the goal\n   * @deprecated Use rewardAmount instead\n   */\n  eggReward: Scalars['Int']['output'];\n  id: Scalars['ID']['output'];\n  /** The map which must be completed to complete the goal */\n  map: Scalars['Int']['output'];\n  /** The students current goal progress */\n  progressCurrent: Scalars['Int']['output'];\n  /** The goal progress required to complete */\n  progressTotal: Scalars['Int']['output'];\n  /** The number of eggs rewarded for completing the goal */\n  rewardAmount: Scalars['Int']['output'];\n  status: QuestGoalStatusEnum;\n};\n\nexport type QuestGoalPrimary = QuestGoalLesson | QuestGoalMap;\n\nexport enum QuestGoalStatusEnum {\n  /** A quest that has been completed and acknowledged by the student */\n  Complete = 'COMPLETE',\n  /** A quest that is not yet complete */\n  Incomplete = 'INCOMPLETE',\n  /** A quest that has been completed but not yet acknowledged by the student */\n  ShowCompleteAlert = 'SHOW_COMPLETE_ALERT'\n}\n\n/** Student answer to a quiz question */\nexport type QuizAnswer = {\n  __typename: 'QuizAnswer';\n  /** Was the answer correct? */\n  correct: Scalars['Boolean']['output'];\n  /** What the correct answer would have been */\n  correctAnswer: Scalars['String']['output'];\n  /** What the student actually answered */\n  studentAnswer: Scalars['String']['output'];\n};\n\n/** Student answer to a quiz question */\nexport type QuizAnswerInput = {\n  /** Was the answer correct? */\n  correct: Scalars['Boolean']['input'];\n  /** What the correct answer would have been */\n  correctAnswer: Scalars['String']['input'];\n  /** What the student actually answered */\n  studentAnswer: Scalars['String']['input'];\n};\n\n/** The connection type for Book. */\nexport type ReadBooksConnection = {\n  __typename: 'ReadBooksConnection';\n  /** A list of edges. */\n  edges?: Maybe<Array<Maybe<ReadBooksEdge>>>;\n  /** A list of nodes. */\n  nodes?: Maybe<Array<Maybe<Book>>>;\n  /** Information to aid in pagination. */\n  pageInfo: PageInfo;\n  totalCount: Scalars['Int']['output'];\n};\n\n/** An edge in a connection. */\nexport type ReadBooksEdge = {\n  __typename: 'ReadBooksEdge';\n  /** A cursor for use in pagination. */\n  cursor: Scalars['String']['output'];\n  /** The item at the end of the edge. */\n  node?: Maybe<Book>;\n};\n\n/** A reading activity */\nexport type ReadingActivity = {\n  /** The position of this activity in this activity's lesson, starting at 1 */\n  activityInLesson: Scalars['Int']['output'];\n  /**\n   * The type of this activity\n   * @deprecated use __typename instead\n   */\n  activityType: ReadingActivityEnum;\n  /** The framework to use */\n  framework: Framework;\n  id: Scalars['ID']['output'];\n  /** The position of this activity's lesson in this activity's map, starting at 1 */\n  lessonInMap: Scalars['Int']['output'];\n  /** The position of this activity's lesson in this precinct, starting at 1 */\n  lessonInPrecinct: Scalars['Int']['output'];\n  /** The path or id of the manifest bundle to load */\n  manifestBundle: Scalars['String']['output'];\n  /** The path of keys inside the nested manifest bundle data structure where this activity's manifest is located */\n  manifestKey: Array<Scalars['String']['output']>;\n  /** The position of this activity's map within the precinct, starting at 1 */\n  map: Scalars['Int']['output'];\n  /** The precinct for the activity (the value 'reading') */\n  precinct: Scalars['String']['output'];\n};\n\nexport type ReadingActivityBook = ReadingActivity & {\n  __typename: 'ReadingActivityBook';\n  /** The position of this activity in this activity's lesson, starting at 1 */\n  activityInLesson: Scalars['Int']['output'];\n  /**\n   * The type of this activity\n   * @deprecated use __typename instead\n   */\n  activityType: ReadingActivityEnum;\n  /** The book code for this book activity */\n  bookCode: Scalars['String']['output'];\n  /** The framework to use */\n  framework: Framework;\n  id: Scalars['ID']['output'];\n  /** The position of this activity's lesson in this activity's map, starting at 1 */\n  lessonInMap: Scalars['Int']['output'];\n  /** The position of this activity's lesson in this precinct, starting at 1 */\n  lessonInPrecinct: Scalars['Int']['output'];\n  /** The path or id of the manifest bundle to load */\n  manifestBundle: Scalars['String']['output'];\n  /** The path of keys inside the nested manifest bundle data structure where this activity's manifest is located */\n  manifestKey: Array<Scalars['String']['output']>;\n  /** The position of this activity's map within the precinct, starting at 1 */\n  map: Scalars['Int']['output'];\n  /** The precinct for the activity (the value 'reading') */\n  precinct: Scalars['String']['output'];\n};\n\nexport enum ReadingActivityEnum {\n  /** A book the student must read */\n  Book = 'BOOK',\n  /** A general purpose learning activity */\n  Interactive = 'INTERACTIVE',\n  /** A quiz the student must complete */\n  Quiz = 'QUIZ',\n  /** A video the student can watch */\n  Video = 'VIDEO'\n}\n\nexport type ReadingActivityInteractive = ReadingActivity & {\n  __typename: 'ReadingActivityInteractive';\n  /** The position of this activity in this activity's lesson, starting at 1 */\n  activityInLesson: Scalars['Int']['output'];\n  /**\n   * The type of this activity\n   * @deprecated use __typename instead\n   */\n  activityType: ReadingActivityEnum;\n  /** The framework to use */\n  framework: Framework;\n  id: Scalars['ID']['output'];\n  /** The position of this activity's lesson in this activity's map, starting at 1 */\n  lessonInMap: Scalars['Int']['output'];\n  /** The position of this activity's lesson in this precinct, starting at 1 */\n  lessonInPrecinct: Scalars['Int']['output'];\n  /** The path or id of the manifest bundle to load */\n  manifestBundle: Scalars['String']['output'];\n  /** The path of keys inside the nested manifest bundle data structure where this activity's manifest is located */\n  manifestKey: Array<Scalars['String']['output']>;\n  /** The position of this activity's map within the precinct, starting at 1 */\n  map: Scalars['Int']['output'];\n  /** The precinct for the activity (the value 'reading') */\n  precinct: Scalars['String']['output'];\n};\n\nexport type ReadingActivityQuiz = ReadingActivity & {\n  __typename: 'ReadingActivityQuiz';\n  /** The position of this activity in this activity's lesson, starting at 1 */\n  activityInLesson: Scalars['Int']['output'];\n  /**\n   * The type of this activity\n   * @deprecated use __typename instead\n   */\n  activityType: ReadingActivityEnum;\n  /** The framework to use */\n  framework: Framework;\n  id: Scalars['ID']['output'];\n  /** The position of this activity's lesson in this activity's map, starting at 1 */\n  lessonInMap: Scalars['Int']['output'];\n  /** The position of this activity's lesson in this precinct, starting at 1 */\n  lessonInPrecinct: Scalars['Int']['output'];\n  /** The path or id of the manifest bundle to load */\n  manifestBundle: Scalars['String']['output'];\n  /** The path of keys inside the nested manifest bundle data structure where this activity's manifest is located */\n  manifestKey: Array<Scalars['String']['output']>;\n  /** The position of this activity's map within the precinct, starting at 1 */\n  map: Scalars['Int']['output'];\n  /** The precinct for the activity (the value 'reading') */\n  precinct: Scalars['String']['output'];\n};\n\nexport type ReadingActivityVideo = ReadingActivity & {\n  __typename: 'ReadingActivityVideo';\n  /** The position of this activity in this activity's lesson, starting at 1 */\n  activityInLesson: Scalars['Int']['output'];\n  /**\n   * The type of this activity\n   * @deprecated use __typename instead\n   */\n  activityType: ReadingActivityEnum;\n  /** The framework to use */\n  framework: Framework;\n  id: Scalars['ID']['output'];\n  /** The position of this activity's lesson in this activity's map, starting at 1 */\n  lessonInMap: Scalars['Int']['output'];\n  /** The position of this activity's lesson in this precinct, starting at 1 */\n  lessonInPrecinct: Scalars['Int']['output'];\n  /** The path or id of the manifest bundle to load */\n  manifestBundle: Scalars['String']['output'];\n  /** The path of keys inside the nested manifest bundle data structure where this activity's manifest is located */\n  manifestKey: Array<Scalars['String']['output']>;\n  /** The position of this activity's map within the precinct, starting at 1 */\n  map: Scalars['Int']['output'];\n  /** The precinct for the activity (the value 'reading') */\n  precinct: Scalars['String']['output'];\n};\n\n/** Details for the reading end of lesson quiz result */\nexport type ReadingEndOfLessonQuizResult = {\n  __typename: 'ReadingEndOfLessonQuizResult';\n  /** This quiz result is attempt number N, starting counting at 1 */\n  attempt: Scalars['Int']['output'];\n  /** Whether the student auto-passed */\n  autoPassed: Scalars['Boolean']['output'];\n  /** Egg-type rewards */\n  eggsEarned: Scalars['Int']['output'];\n  /** The position of this activity's lesson in this precinct, starting at 1 */\n  lessonInPrecinct: Scalars['Int']['output'];\n  /** Whether the student passed */\n  passed: Scalars['Boolean']['output'];\n};\n\nexport type ReadingEndOfLessonQuizResultCreateInput = {\n  /** List of 10 answers */\n  answers: Array<ReadingEndOfLessonQuizResultCreateInputAnswer>;\n  /** Whether this activity result creation is being triggered by an ask reggie lesson skip attempt */\n  askReggie?: InputMaybe<Scalars['Boolean']['input']>;\n  /** Assignment inputs */\n  assignment?: InputMaybe<AssignmentInputs>;\n  /** A unique id for a quiz attempt */\n  attemptUuid?: InputMaybe<Scalars['String']['input']>;\n  /** The position of this activity's lesson in this precinct, starting at 1 */\n  lessonInPrecinct: Scalars['Int']['input'];\n};\n\nexport type ReadingEndOfLessonQuizResultCreateInputAnswer = {\n  /** The correct answer */\n  correctAnswer: Scalars['String']['input'];\n  /** The student was correct, true/false */\n  isCorrect: Scalars['Boolean']['input'];\n  /** Question number in this quiz, starting at 1 */\n  number: Scalars['Int']['input'];\n  /** The answer the student gave */\n  studentAnswer: Scalars['String']['input'];\n};\n\n/** The results of a reading/lesson precinct end of lesson quiz */\nexport type ReadingEndOfLessonQuizResultCreateOutput = {\n  __typename: 'ReadingEndOfLessonQuizResultCreateOutput';\n  /** A payload of reading end of lesson quiz result data */\n  readingEndOfLessonQuizResult: ReadingEndOfLessonQuizResult;\n  /** Student detail */\n  student: Student;\n};\n\n/** A reading goals quiz */\nexport type ReadingGoalsQuiz = {\n  __typename: 'ReadingGoalsQuiz';\n  /** The area of the quiz */\n  area: ReadingGoalsQuizAreaEnum;\n  /** Identifier of the the badge reward for the quiz */\n  badgeReward: Scalars['String']['output'];\n  /** The unique identifier of the quiz */\n  id: Scalars['ID']['output'];\n  /** The level of the quiz */\n  level: ReadingGoalsQuizLevelEnum;\n  /** The name of the quiz, in English, sutiable to display to the user */\n  name: Scalars['String']['output'];\n};\n\nexport enum ReadingGoalsQuizAreaEnum {\n  Alphabet = 'ALPHABET',\n  Comprehension = 'COMPREHENSION',\n  HighFrequencyWords = 'HIGH_FREQUENCY_WORDS',\n  Phonics = 'PHONICS',\n  PhonologicalAwareness = 'PHONOLOGICAL_AWARENESS',\n  PrintConcepts = 'PRINT_CONCEPTS',\n  Spelling = 'SPELLING',\n  Vocabulary = 'VOCABULARY'\n}\n\nexport enum ReadingGoalsQuizLevelEnum {\n  K = 'K',\n  One = 'ONE',\n  Two = 'TWO'\n}\n\n/** A reading goals quiz result; one per student per quiz */\nexport type ReadingGoalsQuizResult = {\n  __typename: 'ReadingGoalsQuizResult';\n  answers: Array<QuizAnswer>;\n  attemptUuid: Scalars['Uuid']['output'];\n  createdAt: Scalars['ISO8601DateTime']['output'];\n  /** Number of eggs rewarded if the quiz was passed */\n  eggsReward?: Maybe<Scalars['Int']['output']>;\n  /** Unique identifier of this quiz result */\n  id: Scalars['ID']['output'];\n  /** The level of the quiz */\n  level: ReadingGoalsQuizLevelEnum;\n  /** Whether the student has passed the quiz (>= 85%) */\n  passed: Scalars['Boolean']['output'];\n  /** Unique identifier of the quiz this result is for */\n  quizId: Scalars['ID']['output'];\n  /** The score the student achieved on the quiz, eg. `80` for 80% */\n  score: Scalars['Int']['output'];\n};\n\nexport type ReadingGoalsQuizResultCreateInput = {\n  /** List of quiz answers */\n  answers: Array<QuizAnswerInput>;\n  /** A unique id for a quiz attempt */\n  attemptUuid: Scalars['ID']['input'];\n  /** The quiz id */\n  quizId: Scalars['ID']['input'];\n};\n\n/** Details from a successful result creation */\nexport type ReadingGoalsQuizResultCreateOutput = {\n  __typename: 'ReadingGoalsQuizResultCreateOutput';\n  readingGoalsQuizResult: ReadingGoalsQuizResult;\n  student: Student;\n};\n\n/** A reading goals quiz result; one per student per quiz */\nexport type ReadingGoalsQuizSummary = {\n  __typename: 'ReadingGoalsQuizSummary';\n  /** Number of attempts this week; number between 0 and 3 */\n  attemptsThisWeek: Scalars['Int']['output'];\n  /** Number of eggs rewarded if the quiz was passed */\n  eggsReward?: Maybe<Scalars['Int']['output']>;\n  /** Unique identifier of the quiz this result is for */\n  id: Scalars['ID']['output'];\n  /** The level of the quiz */\n  level: ReadingGoalsQuizLevelEnum;\n  /** Whether the student has passed the quiz (>= 85%) */\n  passed: Scalars['Boolean']['output'];\n  /**\n   * Elapsed time between the first attempt and the passed result. Will be 0 if the\n   * student passed on the first attempt. Will be null if passed: false.\n   */\n  secondsToPass?: Maybe<Scalars['Int']['output']>;\n  /** Time of the most recent attempt */\n  timestamp: Scalars['ISO8601DateTime']['output'];\n};\n\n/** Details for the reading lesson activity result */\nexport type ReadingLessonActivityResult = {\n  __typename: 'ReadingLessonActivityResult';\n  /** Rewards earned for activity */\n  reward: ReadingLessonActivityReward;\n};\n\nexport type ReadingLessonActivityResultCreateInput = {\n  /** The position of this activity in the lesson, starting at 1 */\n  activityInLesson: Scalars['Int']['input'];\n  /** Whether this activity result creation is being triggered by an ask reggie lesson skip attempt */\n  askReggie?: InputMaybe<Scalars['Boolean']['input']>;\n  /** Assignment inputs */\n  assignment?: InputMaybe<AssignmentInputs>;\n  /** A unique id for an activity attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** Learning state analytics payload capturing per-round attempt data */\n  learningState?: InputMaybe<Scalars['JSON']['input']>;\n  /** The position of this activity's lesson in this precinct, starting at 1 */\n  lessonInPrecinct: Scalars['Int']['input'];\n};\n\n/** The results of a reading/lesson precinct activity */\nexport type ReadingLessonActivityResultCreateOutput = {\n  __typename: 'ReadingLessonActivityResultCreateOutput';\n  /** A payload of reading lesson activity result data */\n  readingLessonActivityResult: ReadingLessonActivityResult;\n  /** Student detail */\n  student: Student;\n};\n\nexport type ReadingLessonActivityReward = {\n  __typename: 'ReadingLessonActivityReward';\n  /** The number of eggs earned */\n  eggs: Scalars['Int']['output'];\n};\n\nexport type ReadingLessonPlacementTestResultCreateInput = {\n  /** A unique id for a placement test attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** The lesson number */\n  lesson: Scalars['Int']['input'];\n  /** Whether the test was skipped */\n  skippedTest: Scalars['Boolean']['input'];\n  /** Whether the student initiated the placement test attempt or if it was required by the progression system */\n  studentInitiatedAttempt?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n/** The result of the reading lesson placement test submission */\nexport type ReadingLessonPlacementTestResultCreateOutput = {\n  __typename: 'ReadingLessonPlacementTestResultCreateOutput';\n  /** Student detail */\n  student: Student;\n};\n\nexport type ReadingMapQuizResultCreateInput = {\n  /** A unique id for a placement test attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** An object which maps each category to the students correct and incorrect answers */\n  categoryResults: Scalars['JSON']['input'];\n  /** A list of student's correct answers */\n  correctAnswers: Array<Scalars['String']['input']>;\n  /** An object which maps the correct answers to the students incorrect answers */\n  incorrectAnswers: Scalars['JSON']['input'];\n  /** The quiz/map number */\n  quiz: Scalars['Int']['input'];\n};\n\n/** The result of the reading map quiz result submission */\nexport type ReadingMapQuizResultCreateOutput = {\n  __typename: 'ReadingMapQuizResultCreateOutput';\n  /** Student detail */\n  student: Student;\n};\n\nexport type SaveReadingActivityLearningStateInput = {\n  /** The position of the activity in the lesson, starting at 1 */\n  activityInLesson: Scalars['Int']['input'];\n  /** Whether the student completed the activity or abandoned it */\n  completed: Scalars['Boolean']['input'];\n  /** Learning state analytics payload capturing per-round attempt data */\n  learningState: Scalars['JSON']['input'];\n  /** The position of the lesson in the precinct, starting at 1 */\n  lessonInPrecinct: Scalars['Int']['input'];\n  /** Whether the student had already completed this lesson, i.e. their furthest progress is past this lesson */\n  lessonPreviouslyCompleted?: InputMaybe<Scalars['Boolean']['input']>;\n  /** The precinct the activity belongs to */\n  precinct: Scalars['String']['input'];\n};\n\nexport type SaveReadingActivityLearningStateOutput = {\n  __typename: 'SaveReadingActivityLearningStateOutput';\n  success: Scalars['Boolean']['output'];\n};\n\nexport type Score = {\n  __typename: 'Score';\n  id: Scalars['ID']['output'];\n  name: Scalars['String']['output'];\n  score: Scalars['Int']['output'];\n};\n\n/** Details for the spelling lesson activity result */\nexport type SpellingLessonActivityResult = {\n  __typename: 'SpellingLessonActivityResult';\n  /** Rewards earned for the activity */\n  reward: SpellingLessonActivityReward;\n};\n\nexport type SpellingLessonActivityResultCreateInput = {\n  /** The position of this activity in the lesson, starting at 1 */\n  activityInLesson: Scalars['Int']['input'];\n  /** Assignment inputs */\n  assignment?: InputMaybe<AssignmentInputs>;\n  /** A unique id for an activity attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** The position of this activity's lesson in this precinct, starting at 1 */\n  lessonInPrecinct: Scalars['Int']['input'];\n};\n\n/** The results of a spelling/lesson precinct activity */\nexport type SpellingLessonActivityResultCreateOutput = {\n  __typename: 'SpellingLessonActivityResultCreateOutput';\n  /** A payload of spelling lesson activity result data */\n  spellingLessonActivityResult: SpellingLessonActivityResult;\n  /** Student detail */\n  student: Student;\n};\n\nexport type SpellingLessonActivityReward = {\n  __typename: 'SpellingLessonActivityReward';\n  /** The number of eggs earned */\n  eggs: Scalars['Int']['output'];\n};\n\nexport type SpellingLessonPlacementTestResultCreateInput = {\n  /** A unique id for a placement test attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** The lesson number */\n  lesson: Scalars['Int']['input'];\n  /** Whether the test was skipped */\n  skippedTest: Scalars['Boolean']['input'];\n};\n\n/** The result of the reading lesson placement test submission */\nexport type SpellingLessonPlacementTestResultCreateOutput = {\n  __typename: 'SpellingLessonPlacementTestResultCreateOutput';\n  /** Student detail */\n  student: Student;\n};\n\n/** Details for the spelling lesson quiz result */\nexport type SpellingLessonQuizResult = {\n  __typename: 'SpellingLessonQuizResult';\n  /** Whether the student passed the quiz */\n  passed: Scalars['Boolean']['output'];\n  /** Rewards earned for the activity */\n  reward: SpellingLessonQuizReward;\n};\n\nexport type SpellingLessonQuizResultCreateInput = {\n  /** Assignment inputs */\n  assignment?: InputMaybe<AssignmentInputs>;\n  /** A unique id for a lesson quiz attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** A list of student's correct answers */\n  correctAnswers: Array<Scalars['String']['input']>;\n  /** An object which maps the correct answers to the students incorrect answers */\n  incorrectAnswers: Scalars['JSON']['input'];\n  /** The lesson number */\n  lesson: Scalars['Int']['input'];\n};\n\n/** The result of the spelling lesson quiz result submission */\nexport type SpellingLessonQuizResultCreateOutput = {\n  __typename: 'SpellingLessonQuizResultCreateOutput';\n  /** A payload of spelling lesson activity result data */\n  spellingLessonQuizResult: SpellingLessonQuizResult;\n  /** Student detail */\n  student: Student;\n};\n\nexport type SpellingLessonQuizReward = {\n  __typename: 'SpellingLessonQuizReward';\n  /** The number of eggs earned */\n  eggs: Scalars['Int']['output'];\n  /** Whether the student has unlocked a mystery gift shop reward */\n  shop: Scalars['Boolean']['output'];\n};\n\nexport type SpellingMapQuizResultCreateInput = {\n  /** A unique id for a placement test attempt */\n  attemptUuid: Scalars['String']['input'];\n  /** A list of student's correct answers */\n  correctAnswers: Array<Scalars['String']['input']>;\n  /** An object which maps the correct answers to the students incorrect answers */\n  incorrectAnswers: Scalars['JSON']['input'];\n  /** The quiz/map number */\n  quiz: Scalars['Int']['input'];\n};\n\n/** The result of the reading map quiz result submission */\nexport type SpellingMapQuizResultCreateOutput = {\n  __typename: 'SpellingMapQuizResultCreateOutput';\n  /** Student detail */\n  student: Student;\n};\n\n/** Student progress in the spelling precinct */\nexport type SpellingProgress = {\n  __typename: 'SpellingProgress';\n  /** Student's current activity position */\n  currentActivity: Scalars['Int']['output'];\n  /** Student's current lesson position, eg '10' or 'quiz' */\n  currentLesson: Scalars['String']['output'];\n  /** Student's current map position */\n  currentMap: Scalars['Int']['output'];\n  showPlacementTest: Scalars['Boolean']['output'];\n};\n\n/** Student details */\nexport type Student = {\n  __typename: 'Student';\n  /** The current ask reggie state for the student */\n  askReggie: AskReggie;\n  /**\n   * The current assignment for the student. They need to complete this before any\n   * other work. `null` if there is no current assignment for them.\n   */\n  assignment?: Maybe<Assignment>;\n  /**\n   * The current assignment task for the student. They need to complete this before\n   * any other work.`null` if there is no current assignment task for them. Or an\n   * error if the API call failed.\n   * @deprecated Use `assignment` instead. This field will be removed in a future version.\n   */\n  assignmentTask?: Maybe<AssignmentTask>;\n  avatarUrl: Scalars['String']['output'];\n  /** whether background music is disabled for the student */\n  backgroundMusicDisabled: Scalars['Boolean']['output'];\n  /** Collection of highest-scoring badge results per lesson */\n  badges: Array<Badge>;\n  certificates: Array<Certificate>;\n  customerType: CustomerTypeEnum;\n  dna: AvatarDna;\n  dnaHash: Scalars['String']['output'];\n  eggs: Scalars['Int']['output'];\n  firstName: Scalars['String']['output'];\n  /** whether the student can access games */\n  gamesAccess: Scalars['Boolean']['output'];\n  /** Student ID */\n  id: Scalars['ID']['output'];\n  items: Array<PurchasedItem>;\n  lastName: Scalars['String']['output'];\n  learningWorldsEnabled: Scalars['Boolean']['output'];\n  locale: Scalars['String']['output'];\n  /** Whether a mystery gift is available for the student. Earned by completing spelling lesson quizzes */\n  mysteryGiftAvailable: Scalars['Boolean']['output'];\n  name: Scalars['String']['output'];\n  /** The id of the student's parent */\n  parentId?: Maybe<Scalars['ID']['output']>;\n  /** First pending certificate detail for the current student */\n  pendingCertificate?: Maybe<PendingCertificate>;\n  /** whether the student can access the playroom */\n  playroomAccess: Scalars['Boolean']['output'];\n  /** The student's plaza poll vote on the given date */\n  plazaPollVote?: Maybe<PlazaPollVote>;\n  previousWorldsOnboarding: Array<Scalars['String']['output']>;\n  /** Progress for current student */\n  progress: Progress;\n  puzzleScores: Array<PuzzleScore>;\n  quest?: Maybe<Quest>;\n  /** Paginated list of read books */\n  readBooks: ReadBooksConnection;\n  /** Level the student should start at, based on their current reading lessons progression state */\n  readingGoalsMinimumLevel: ReadingGoalsQuizLevelEnum;\n  /** Number of seconds until the weekly Reading Goals reset */\n  readingGoalsQuizSecondsToNextWeek: Scalars['Int']['output'];\n  /** List of the Reading Goals quiz results */\n  readingGoalsQuizSummaries: Array<ReadingGoalsQuizSummary>;\n  /** List of up to 4 recommended books */\n  recommendedBooks: Array<Book>;\n  remoteId: Scalars['ID']['output'];\n  /** whether the student belongs to a roster school */\n  rosterEnabled: Scalars['Boolean']['output'];\n  /**\n   * The current progression sequence version of the system. If the student's\n   * version in the `progress` field is lower, the migration mutation should be called ASAP.\n   */\n  targetProgressionSequenceVersion: Scalars['Int']['output'];\n  world: World;\n  worldsStartingLesson?: Maybe<Scalars['Int']['output']>;\n};\n\n\n/** Student details */\nexport type StudentPlazaPollVoteArgs = {\n  dateVoted: Scalars['ISO8601Date']['input'];\n};\n\n\n/** Student details */\nexport type StudentReadBooksArgs = {\n  after?: InputMaybe<Scalars['String']['input']>;\n  before?: InputMaybe<Scalars['String']['input']>;\n  first?: InputMaybe<Scalars['Int']['input']>;\n  last?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Student details */\nexport type StudentWorldArgs = {\n  id: Scalars['ID']['input'];\n};\n\nexport type StudentProgressClinkerCastleLessonResetInput = {\n  /** An activity number */\n  activity: Scalars['Int']['input'];\n  /** A lesson number */\n  lesson: Scalars['Int']['input'];\n};\n\n/** The result of resetting the students progress */\nexport type StudentProgressClinkerCastleLessonResetPayload = {\n  __typename: 'StudentProgressClinkerCastleLessonResetPayload';\n  student: Student;\n};\n\nexport type StudentProgressDrivingTestCategoryResetInput = {\n  /** A driving test category */\n  category: DrivingTestCategoryEnum;\n  /** A driving test quiz position */\n  quiz: Scalars['Int']['input'];\n};\n\n/** The result of resetting the students progress */\nexport type StudentProgressDrivingTestCategoryResetPayload = {\n  __typename: 'StudentProgressDrivingTestCategoryResetPayload';\n  student: Student;\n};\n\nexport type StudentProgressReadingLessonResetInput = {\n  /** An activity number */\n  activity: Scalars['Int']['input'];\n  /** A lesson number */\n  lesson: Scalars['Int']['input'];\n};\n\n/** The result of resetting the students progress */\nexport type StudentProgressReadingLessonResetPayload = {\n  __typename: 'StudentProgressReadingLessonResetPayload';\n  student: Student;\n};\n\nexport type StudentProgressReadingMapQuizResetInput = {\n  /** A map number */\n  map: Scalars['Int']['input'];\n};\n\n/** The result of resetting the students progress */\nexport type StudentProgressReadingMapQuizResetPayload = {\n  __typename: 'StudentProgressReadingMapQuizResetPayload';\n  student: Student;\n};\n\n/** The result of resetting the students progress */\nexport type StudentProgressReadingPlacementTestResetPayload = {\n  __typename: 'StudentProgressReadingPlacementTestResetPayload';\n  student: Student;\n};\n\nexport type StudentProgressSpellingLessonResetInput = {\n  /** An activity number */\n  activity: Scalars['Int']['input'];\n  /** A lesson number */\n  lesson: Scalars['Int']['input'];\n};\n\n/** The result of resetting the students progress */\nexport type StudentProgressSpellingLessonResetPayload = {\n  __typename: 'StudentProgressSpellingLessonResetPayload';\n  student: Student;\n};\n\nexport type StudentProgressSpellingMapQuizResetInput = {\n  /** A map number */\n  map: Scalars['Int']['input'];\n};\n\n/** The result of resetting the students progress */\nexport type StudentProgressSpellingMapQuizResetPayload = {\n  __typename: 'StudentProgressSpellingMapQuizResetPayload';\n  student: Student;\n};\n\nexport type StudentProgressionSequenceMigratePayload = {\n  __typename: 'StudentProgressionSequenceMigratePayload';\n  student: Student;\n};\n\nexport type StudentQuestGoalAcknowledgeCompleteInput = {\n  /** A unique id for a quest goal record */\n  goalId: Scalars['String']['input'];\n};\n\n/** The results of the student acknowledging the completion of a quest goal */\nexport type StudentQuestGoalAcknowledgeCompletePayload = {\n  __typename: 'StudentQuestGoalAcknowledgeCompletePayload';\n  student: Student;\n};\n\nexport type StudentWorldAreaRevealPositionResetInput = {\n  worldId: Scalars['ID']['input'];\n};\n\n/** Details from a successful result resetting */\nexport type StudentWorldAreaRevealPositionResetOutput = {\n  __typename: 'StudentWorldAreaRevealPositionResetOutput';\n  world: World;\n};\n\nexport type StudentWorldAreaRevealPositionSetInput = {\n  areaRevealPosition: Scalars['String']['input'];\n  worldId: Scalars['ID']['input'];\n};\n\n/** Details from a successful result setting */\nexport type StudentWorldAreaRevealPositionSetOutput = {\n  __typename: 'StudentWorldAreaRevealPositionSetOutput';\n  world: World;\n};\n\nexport type StudentWorldInteractionCreateInput = {\n  interactionId: Scalars['String']['input'];\n  worldId: Scalars['ID']['input'];\n};\n\n/** Details from a successful result creation */\nexport type StudentWorldInteractionCreateOutput = {\n  __typename: 'StudentWorldInteractionCreateOutput';\n  world: World;\n};\n\nexport type StudentWorldInteractionResetInput = {\n  worldId: Scalars['ID']['input'];\n};\n\n/** Details from a successful reset */\nexport type StudentWorldInteractionResetOutput = {\n  __typename: 'StudentWorldInteractionResetOutput';\n  world: World;\n};\n\n/** Details from a successful reset */\nexport type StudentWorldOnboardingResetOutput = {\n  __typename: 'StudentWorldOnboardingResetOutput';\n  student: Student;\n};\n\nexport type StudentWorldOnboardingSectionCompleteInput = {\n  section: Scalars['String']['input'];\n};\n\n/** Details from a successful completion */\nexport type StudentWorldOnboardingSectionCompleteOutput = {\n  __typename: 'StudentWorldOnboardingSectionCompleteOutput';\n  student: Student;\n};\n\nexport type World = {\n  __typename: 'World';\n  areaRevealPosition?: Maybe<Scalars['String']['output']>;\n  id: Scalars['ID']['output'];\n  previousInteractions: Array<Scalars['String']['output']>;\n};\n\nexport type SaveDrivingTestQuizResultMutationVariables = Exact<{\n  input: DrivingTestQuizResultCreateInput;\n}>;\n\n\nexport type SaveDrivingTestQuizResultMutation = { __typename: 'Mutation', drivingTestQuizResultCreate: { __typename: 'DrivingTestQuizResultCreateOutput', student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null } } };\n\nexport type SaveDrivingTestGameResultMutationVariables = Exact<{\n  input: DrivingTestGameResultCreateInput;\n}>;\n\n\nexport type SaveDrivingTestGameResultMutation = { __typename: 'Mutation', drivingTestGameResultCreate: { __typename: 'DrivingTestGameResultCreateOutput', student: { __typename: 'Student', id: string, eggs: number, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } } } } };\n\nexport type SaveGameScoreMutationVariables = Exact<{\n  input: GameScoreSaveInput;\n}>;\n\n\nexport type SaveGameScoreMutation = { __typename: 'Mutation', gameScoreSave: { __typename: 'GameScoreSaveOutput', game?: { __typename: 'Game', id: string, personalBest?: { __typename: 'Score', score: number } | null, highScores: Array<{ __typename: 'Score', name: string, score: number }> } | null } };\n\nexport type PurchaseGamePlayMutationVariables = Exact<{\n  input: GamePlayPurchaseInput;\n}>;\n\n\nexport type PurchaseGamePlayMutation = { __typename: 'Mutation', gamePlayPurchase: { __typename: 'GamePlayPurchaseInsufficientFunds', student: { __typename: 'Student', id: string, eggs: number } } | { __typename: 'GamePlayPurchaseSuccess', student: { __typename: 'Student', id: string, eggs: number } } };\n\nexport type SaveReadingMapQuizResultMutationVariables = Exact<{\n  input: ReadingMapQuizResultCreateInput;\n}>;\n\n\nexport type SaveReadingMapQuizResultMutation = { __typename: 'Mutation', readingMapQuizResultCreate: { __typename: 'ReadingMapQuizResultCreateOutput', student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, pendingCertificate?: { __typename: 'PendingCertificate', id: string, colour: CertificateColourEnum, map: number, quizResultCreatedAt: string, scorePercentage: number } | null, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null, quest?: { __typename: 'Quest', easyGoal?: { __typename: 'QuestGoalEarnEggs', id: string, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalEarnEggs' } | null, primaryGoal?: { __typename: 'QuestGoalLesson', id: string, lesson: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalLesson' } | { __typename: 'QuestGoalMap', id: string, map: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalMap' } | null } | null } } };\n\nexport type SaveReadingLessonPlacementTestResultMutationVariables = Exact<{\n  input: ReadingLessonPlacementTestResultCreateInput;\n}>;\n\n\nexport type SaveReadingLessonPlacementTestResultMutation = { __typename: 'Mutation', readingLessonPlacementTestResultCreate: { __typename: 'ReadingLessonPlacementTestResultCreateOutput', student: { __typename: 'Student', id: string, worldsStartingLesson?: number | null, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null, quest?: { __typename: 'Quest', easyGoal?: { __typename: 'QuestGoalEarnEggs', id: string, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalEarnEggs' } | null, primaryGoal?: { __typename: 'QuestGoalLesson', id: string, lesson: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalLesson' } | { __typename: 'QuestGoalMap', id: string, map: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalMap' } | null } | null } } };\n\nexport type SaveBookQuizResultMutationVariables = Exact<{\n  input: BookQuizResultCreateInput;\n}>;\n\n\nexport type SaveBookQuizResultMutation = { __typename: 'Mutation', bookQuizResultCreate: { __typename: 'BookQuizResultCreateOutput', bookQuizResult: { __typename: 'BookQuizResult', reward: { __typename: 'BookQuizReward', eggs: number, milestone: boolean, passed: boolean } }, student: { __typename: 'Student', id: string, eggs: number, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null } } };\n\nexport type SaveSpellingLessonActivityResultMutationVariables = Exact<{\n  input: SpellingLessonActivityResultCreateInput;\n}>;\n\n\nexport type SaveSpellingLessonActivityResultMutation = { __typename: 'Mutation', spellingLessonActivityResultCreate: { __typename: 'SpellingLessonActivityResultCreateOutput', spellingLessonActivityResult: { __typename: 'SpellingLessonActivityResult', reward: { __typename: 'SpellingLessonActivityReward', eggs: number } }, student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null } } };\n\nexport type SaveSpellingLessonQuizResultMutationVariables = Exact<{\n  input: SpellingLessonQuizResultCreateInput;\n}>;\n\n\nexport type SaveSpellingLessonQuizResultMutation = { __typename: 'Mutation', spellingLessonQuizResultCreate: { __typename: 'SpellingLessonQuizResultCreateOutput', spellingLessonQuizResult: { __typename: 'SpellingLessonQuizResult', passed: boolean, reward: { __typename: 'SpellingLessonQuizReward', eggs: number, shop: boolean } }, student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null } } };\n\nexport type SaveSpellingMapQuizResultMutationVariables = Exact<{\n  input: SpellingMapQuizResultCreateInput;\n}>;\n\n\nexport type SaveSpellingMapQuizResultMutation = { __typename: 'Mutation', spellingMapQuizResultCreate: { __typename: 'SpellingMapQuizResultCreateOutput', student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null } } };\n\nexport type SaveSpellingLessonPlacementTestResultMutationVariables = Exact<{\n  input: SpellingLessonPlacementTestResultCreateInput;\n}>;\n\n\nexport type SaveSpellingLessonPlacementTestResultMutation = { __typename: 'Mutation', spellingLessonPlacementTestResultCreate: { __typename: 'SpellingLessonPlacementTestResultCreateOutput', student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null } } };\n\nexport type SaveClinkerCastleLessonActivityResultMutationVariables = Exact<{\n  input: ClinkerCastleLessonActivityResultCreateInput;\n}>;\n\n\nexport type SaveClinkerCastleLessonActivityResultMutation = { __typename: 'Mutation', clinkerCastleLessonActivityResultCreate: { __typename: 'ClinkerCastleLessonActivityResultCreateOutput', clinkerCastleLessonActivityResult: { __typename: 'ClinkerCastleLessonActivityResult', reward: { __typename: 'ClinkerCastleLessonActivityReward', eggs: number } }, student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null } } };\n\nexport type SaveClinkerCastleLessonQuizResultMutationVariables = Exact<{\n  input: ClinkerCastleLessonQuizResultCreateInput;\n}>;\n\n\nexport type SaveClinkerCastleLessonQuizResultMutation = { __typename: 'Mutation', clinkerCastleLessonQuizResultCreate: { __typename: 'ClinkerCastleLessonQuizResultCreateOutput', clinkerCastleLessonQuizResult: { __typename: 'ClinkerCastleLessonQuizResult', reward: { __typename: 'ClinkerCastleLessonQuizReward', eggs: number, prize: boolean } }, student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null } } };\n\nexport type GetInitialAppDataQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetInitialAppDataQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, avatarUrl: string, eggs: number, firstName: string, lastName: string, gamesAccess: boolean, playroomAccess: boolean, name: string, remoteId: string, dnaHash: string, locale: string, backgroundMusicDisabled: boolean, rosterEnabled: boolean, customerType: CustomerTypeEnum, parentId?: string | null, worldsStartingLesson?: number | null, learningWorldsEnabled: boolean, targetProgressionSequenceVersion: number, dna: { __typename: 'AvatarDna', arms: string, decal: string, egg: string, extra: string, hat: string, head: string, legs: string, sunnies: string }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, quest?: { __typename: 'Quest', easyGoal?: { __typename: 'QuestGoalEarnEggs', id: string, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalEarnEggs' } | null, primaryGoal?: { __typename: 'QuestGoalLesson', id: string, lesson: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalLesson' } | { __typename: 'QuestGoalMap', id: string, map: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalMap' } | null } | null, askReggie: { __typename: 'AskReggieAvailable', actions: Array<AskReggieAvailableActionEnum> } | { __typename: 'AskReggieDisabled', disabled: boolean } | { __typename: 'AskReggieSkipLesson', lesson: number, activity: number } | { __typename: 'AskReggieUnavailable', reason: AskReggieUnavailableReasonEnum } } | null };\n\nexport type ReadingActivitiesQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type ReadingActivitiesQuery = { __typename: 'Query', readingActivities: Array<{ __typename: 'ReadingActivityBook', bookCode: string, precinct: string, activityInLesson: number, activityType: ReadingActivityEnum, framework: Framework, id: string, lessonInMap: number, lessonInPrecinct: number, manifestBundle: string, manifestKey: Array<string>, map: number } | { __typename: 'ReadingActivityInteractive', precinct: string, activityInLesson: number, activityType: ReadingActivityEnum, framework: Framework, id: string, lessonInMap: number, lessonInPrecinct: number, manifestBundle: string, manifestKey: Array<string>, map: number } | { __typename: 'ReadingActivityQuiz', precinct: string, activityInLesson: number, activityType: ReadingActivityEnum, framework: Framework, id: string, lessonInMap: number, lessonInPrecinct: number, manifestBundle: string, manifestKey: Array<string>, map: number } | { __typename: 'ReadingActivityVideo', precinct: string, activityInLesson: number, activityType: ReadingActivityEnum, framework: Framework, id: string, lessonInMap: number, lessonInPrecinct: number, manifestBundle: string, manifestKey: Array<string>, map: number }> };\n\nexport type StudentMyAwardsFragmentFragment = { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, badges: Array<{ __typename: 'Badge', id: string, lesson: number, colour: BadgeColourEnum }>, certificates: Array<{ __typename: 'Certificate', id: string, createdAt: string, map: number, url: string, colour: CertificateColourEnum }>, pendingCertificate?: { __typename: 'PendingCertificate', id: string, map: number } | null, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } } };\n\nexport type GetMyAwardsQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetMyAwardsQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, badges: Array<{ __typename: 'Badge', id: string, lesson: number, colour: BadgeColourEnum }>, certificates: Array<{ __typename: 'Certificate', id: string, createdAt: string, map: number, url: string, colour: CertificateColourEnum }>, pendingCertificate?: { __typename: 'PendingCertificate', id: string, map: number } | null, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } } } | null };\n\nexport type ReadBooksQueryVariables = Exact<{\n  first: Scalars['Int']['input'];\n  after?: InputMaybe<Scalars['String']['input']>;\n}>;\n\n\nexport type ReadBooksQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, readBooks: { __typename: 'ReadBooksConnection', edges?: Array<{ __typename: 'ReadBooksEdge', node?: { __typename: 'Book', code: string, coverUrl: string } | null } | null> | null, pageInfo: { __typename: 'PageInfo', hasNextPage: boolean, endCursor?: string | null } } } | null };\n\nexport type GetGamesQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetGamesQuery = { __typename: 'Query', games?: Array<{ __typename: 'Game', id: string, personalBest?: { __typename: 'Score', score: number } | null, highScores: Array<{ __typename: 'Score', name: string, score: number }> }> | null };\n\nexport type RecommendedBooksQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type RecommendedBooksQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, recommendedBooks: Array<{ __typename: 'Book', code: string, coverUrl: string }>, readBooks: { __typename: 'ReadBooksConnection', totalCount: number } } | null };\n\ntype ReadingActivityFragment_ReadingActivityBook_Fragment = { __typename: 'ReadingActivityBook', bookCode: string, precinct: string, activityInLesson: number, activityType: ReadingActivityEnum, framework: Framework, id: string, lessonInMap: number, lessonInPrecinct: number, manifestBundle: string, manifestKey: Array<string>, map: number };\n\ntype ReadingActivityFragment_ReadingActivityInteractive_Fragment = { __typename: 'ReadingActivityInteractive', precinct: string, activityInLesson: number, activityType: ReadingActivityEnum, framework: Framework, id: string, lessonInMap: number, lessonInPrecinct: number, manifestBundle: string, manifestKey: Array<string>, map: number };\n\ntype ReadingActivityFragment_ReadingActivityQuiz_Fragment = { __typename: 'ReadingActivityQuiz', precinct: string, activityInLesson: number, activityType: ReadingActivityEnum, framework: Framework, id: string, lessonInMap: number, lessonInPrecinct: number, manifestBundle: string, manifestKey: Array<string>, map: number };\n\ntype ReadingActivityFragment_ReadingActivityVideo_Fragment = { __typename: 'ReadingActivityVideo', precinct: string, activityInLesson: number, activityType: ReadingActivityEnum, framework: Framework, id: string, lessonInMap: number, lessonInPrecinct: number, manifestBundle: string, manifestKey: Array<string>, map: number };\n\nexport type ReadingActivityFragmentFragment = ReadingActivityFragment_ReadingActivityBook_Fragment | ReadingActivityFragment_ReadingActivityInteractive_Fragment | ReadingActivityFragment_ReadingActivityQuiz_Fragment | ReadingActivityFragment_ReadingActivityVideo_Fragment;\n\nexport type StudentAskReggieDataFragmentFragment = { __typename: 'Student', id: string, askReggie: { __typename: 'AskReggieAvailable', actions: Array<AskReggieAvailableActionEnum> } | { __typename: 'AskReggieDisabled', disabled: boolean } | { __typename: 'AskReggieSkipLesson', lesson: number, activity: number } | { __typename: 'AskReggieUnavailable', reason: AskReggieUnavailableReasonEnum } };\n\nexport type GetStudentAskReggieQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentAskReggieQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, askReggie: { __typename: 'AskReggieAvailable', actions: Array<AskReggieAvailableActionEnum> } | { __typename: 'AskReggieDisabled', disabled: boolean } | { __typename: 'AskReggieSkipLesson', lesson: number, activity: number } | { __typename: 'AskReggieUnavailable', reason: AskReggieUnavailableReasonEnum } } | null };\n\nexport type AskReggieLessonSkipAbortMutationVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type AskReggieLessonSkipAbortMutation = { __typename: 'Mutation', askReggieLessonSkipAbort: { __typename: 'AskReggieLessonSkipAbortPayload', student: { __typename: 'Student', id: string, askReggie: { __typename: 'AskReggieAvailable', actions: Array<AskReggieAvailableActionEnum> } | { __typename: 'AskReggieDisabled', disabled: boolean } | { __typename: 'AskReggieSkipLesson', lesson: number, activity: number } | { __typename: 'AskReggieUnavailable', reason: AskReggieUnavailableReasonEnum } } } };\n\nexport type AskReggieAttemptLessonSkipMutationVariables = Exact<{\n  input: AskReggieAttemptLessonSkipInput;\n}>;\n\n\nexport type AskReggieAttemptLessonSkipMutation = { __typename: 'Mutation', askReggieAttemptLessonSkip: { __typename: 'AskReggieAttemptLessonSkipPayload', student: { __typename: 'Student', id: string, askReggie: { __typename: 'AskReggieAvailable', actions: Array<AskReggieAvailableActionEnum> } | { __typename: 'AskReggieDisabled', disabled: boolean } | { __typename: 'AskReggieSkipLesson', lesson: number, activity: number } | { __typename: 'AskReggieUnavailable', reason: AskReggieUnavailableReasonEnum } } } };\n\nexport type AssignmentTaskFragment = { __typename: 'Student', assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null };\n\nexport type GetStudentCurrentTaskQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentCurrentTaskQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null } | null };\n\nexport type BookQueryVariables = Exact<{\n  input: BookQueryInput;\n}>;\n\n\nexport type BookQuery = { __typename: 'Query', book?: { __typename: 'Book', content: any } | null };\n\nexport type CertificateFragmentFragment = { __typename: 'Certificate', id: string, createdAt: string, map: number, scorePercentage: number, url: string, colour: CertificateColourEnum };\n\nexport type GetCertificatesQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetCertificatesQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, certificates: Array<{ __typename: 'Certificate', id: string, createdAt: string, map: number, scorePercentage: number, url: string, colour: CertificateColourEnum }> } | null };\n\nexport type PendingCertificateFragmentFragment = { __typename: 'PendingCertificate', id: string, colour: CertificateColourEnum, map: number, quizResultCreatedAt: string, scorePercentage: number };\n\nexport type GetPendingCertificateQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetPendingCertificateQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, firstName: string, lastName: string, name: string, pendingCertificate?: { __typename: 'PendingCertificate', id: string, colour: CertificateColourEnum, map: number, quizResultCreatedAt: string, scorePercentage: number } | null } | null };\n\nexport type SaveCertificateMutationVariables = Exact<{\n  input: CertificateSaveInput;\n}>;\n\n\nexport type SaveCertificateMutation = { __typename: 'Mutation', certificateSave: { __typename: 'CertificateSavePayload', certificate: { __typename: 'Certificate', id: string, url: string }, student: { __typename: 'Student', id: string, pendingCertificate?: { __typename: 'PendingCertificate', id: string, colour: CertificateColourEnum, map: number, quizResultCreatedAt: string, scorePercentage: number } | null, certificates: Array<{ __typename: 'Certificate', id: string, createdAt: string, map: number, scorePercentage: number, url: string, colour: CertificateColourEnum }> } } };\n\nexport type GetPendingCertificateUploadUrlQueryVariables = Exact<{\n  input: PendingCertificateQueryInput;\n}>;\n\n\nexport type GetPendingCertificateUploadUrlQuery = { __typename: 'Query', getPendingCertificate?: { __typename: 'PendingCertificate', id: string, uploadUrl: string } | null };\n\nexport type ResetReadingLessonProgressMutationVariables = Exact<{\n  input: StudentProgressReadingLessonResetInput;\n}>;\n\n\nexport type ResetReadingLessonProgressMutation = { __typename: 'Mutation', studentProgressReadingLessonReset: { __typename: 'StudentProgressReadingLessonResetPayload', student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } } } } };\n\nexport type ResetReadingMapQuizProgressMutationVariables = Exact<{\n  input: StudentProgressReadingMapQuizResetInput;\n}>;\n\n\nexport type ResetReadingMapQuizProgressMutation = { __typename: 'Mutation', studentProgressReadingMapQuizReset: { __typename: 'StudentProgressReadingMapQuizResetPayload', student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } } } } };\n\nexport type ResetReadingPlacementTestProgressMutationVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type ResetReadingPlacementTestProgressMutation = { __typename: 'Mutation', studentProgressReadingPlacementTestReset: { __typename: 'StudentProgressReadingPlacementTestResetPayload', student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } } } } };\n\nexport type ResetStudentWorldInteractionMutationVariables = Exact<{\n  input: StudentWorldInteractionResetInput;\n}>;\n\n\nexport type ResetStudentWorldInteractionMutation = { __typename: 'Mutation', studentWorldInteractionReset: { __typename: 'StudentWorldInteractionResetOutput', world: { __typename: 'World', id: string, previousInteractions: Array<string> } } };\n\nexport type ResetStudentWorldAreaRevealPositionMutationVariables = Exact<{\n  input: StudentWorldAreaRevealPositionResetInput;\n}>;\n\n\nexport type ResetStudentWorldAreaRevealPositionMutation = { __typename: 'Mutation', studentWorldAreaRevealPositionReset: { __typename: 'StudentWorldAreaRevealPositionResetOutput', world: { __typename: 'World', id: string, areaRevealPosition?: string | null } } };\n\nexport type ResetStudentWorldOnboardingMutationVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type ResetStudentWorldOnboardingMutation = { __typename: 'Mutation', studentWorldOnboardingReset: { __typename: 'StudentWorldOnboardingResetOutput', student: { __typename: 'Student', id: string, previousWorldsOnboarding: Array<string> } } };\n\nexport type WorldDataFragmentFragment = { __typename: 'World', id: string, previousInteractions: Array<string>, areaRevealPosition?: string | null };\n\nexport type GetWorldDataQueryVariables = Exact<{\n  worldId: Scalars['ID']['input'];\n}>;\n\n\nexport type GetWorldDataQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, previousWorldsOnboarding: Array<string>, world: { __typename: 'World', id: string, previousInteractions: Array<string>, areaRevealPosition?: string | null } } | null };\n\nexport type CreateStudentWorldInteractionMutationVariables = Exact<{\n  input: StudentWorldInteractionCreateInput;\n}>;\n\n\nexport type CreateStudentWorldInteractionMutation = { __typename: 'Mutation', studentWorldInteractionCreate: { __typename: 'StudentWorldInteractionCreateOutput', world: { __typename: 'World', id: string, previousInteractions: Array<string>, areaRevealPosition?: string | null } } };\n\nexport type SetStudentWorldAreaRevealPositionMutationVariables = Exact<{\n  input: StudentWorldAreaRevealPositionSetInput;\n}>;\n\n\nexport type SetStudentWorldAreaRevealPositionMutation = { __typename: 'Mutation', studentWorldAreaRevealPositionSet: { __typename: 'StudentWorldAreaRevealPositionSetOutput', world: { __typename: 'World', id: string, previousInteractions: Array<string>, areaRevealPosition?: string | null } } };\n\nexport type CompleteStudentWorldOnboardingSectionMutationVariables = Exact<{\n  input: StudentWorldOnboardingSectionCompleteInput;\n}>;\n\n\nexport type CompleteStudentWorldOnboardingSectionMutation = { __typename: 'Mutation', studentWorldOnboardingSectionComplete: { __typename: 'StudentWorldOnboardingSectionCompleteOutput', student: { __typename: 'Student', id: string, previousWorldsOnboarding: Array<string> } } };\n\nexport type SaveSkillsQuizResultMutationVariables = Exact<{\n  input: ReadingEndOfLessonQuizResultCreateInput;\n}>;\n\n\nexport type SaveSkillsQuizResultMutation = { __typename: 'Mutation', readingEndOfLessonQuizResultCreate: { __typename: 'ReadingEndOfLessonQuizResultCreateOutput', readingEndOfLessonQuizResult: { __typename: 'ReadingEndOfLessonQuizResult', attempt: number, autoPassed: boolean, lessonInPrecinct: number, passed: boolean, eggsEarned: number }, student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, badges: Array<{ __typename: 'Badge', id: string, lesson: number, colour: BadgeColourEnum }>, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, quest?: { __typename: 'Quest', easyGoal?: { __typename: 'QuestGoalEarnEggs', id: string, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalEarnEggs' } | null, primaryGoal?: { __typename: 'QuestGoalLesson', id: string, lesson: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalLesson' } | { __typename: 'QuestGoalMap', id: string, map: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalMap' } | null } | null, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null, askReggie: { __typename: 'AskReggieAvailable', actions: Array<AskReggieAvailableActionEnum> } | { __typename: 'AskReggieDisabled', disabled: boolean } | { __typename: 'AskReggieSkipLesson', lesson: number, activity: number } | { __typename: 'AskReggieUnavailable', reason: AskReggieUnavailableReasonEnum } } } };\n\nexport type SaveReadingLessonActivityResultMutationVariables = Exact<{\n  input: ReadingLessonActivityResultCreateInput;\n}>;\n\n\nexport type SaveReadingLessonActivityResultMutation = { __typename: 'Mutation', readingLessonActivityResultCreate: { __typename: 'ReadingLessonActivityResultCreateOutput', readingLessonActivityResult: { __typename: 'ReadingLessonActivityResult', reward: { __typename: 'ReadingLessonActivityReward', eggs: number } }, student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } }, assignmentTask?: { __typename: 'AssignmentTaskClinkerCastle', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskDrivingTests', assignmentUuid: string, category: string, endAt: string, gradePosition: number, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskLesson', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'AssignmentTaskSpelling', activityId: string, assignmentUuid: string, endAt: string, id: string, lessonId: string, thumbnailUrl: string, title: string, targetRouteParams: Array<string> } | { __typename: 'Error', message: string } | null, quest?: { __typename: 'Quest', easyGoal?: { __typename: 'QuestGoalEarnEggs', id: string, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalEarnEggs' } | null, primaryGoal?: { __typename: 'QuestGoalLesson', id: string, lesson: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalLesson' } | { __typename: 'QuestGoalMap', id: string, map: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalMap' } | null } | null, askReggie: { __typename: 'AskReggieAvailable', actions: Array<AskReggieAvailableActionEnum> } | { __typename: 'AskReggieDisabled', disabled: boolean } | { __typename: 'AskReggieSkipLesson', lesson: number, activity: number } | { __typename: 'AskReggieUnavailable', reason: AskReggieUnavailableReasonEnum } } } };\n\nexport type StudentQuestDataFragmentFragment = { __typename: 'Student', id: string, quest?: { __typename: 'Quest', easyGoal?: { __typename: 'QuestGoalEarnEggs', id: string, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalEarnEggs' } | null, primaryGoal?: { __typename: 'QuestGoalLesson', id: string, lesson: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalLesson' } | { __typename: 'QuestGoalMap', id: string, map: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalMap' } | null } | null };\n\nexport type GetStudentQuestQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentQuestQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, quest?: { __typename: 'Quest', easyGoal?: { __typename: 'QuestGoalEarnEggs', id: string, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalEarnEggs' } | null, primaryGoal?: { __typename: 'QuestGoalLesson', id: string, lesson: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalLesson' } | { __typename: 'QuestGoalMap', id: string, map: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalMap' } | null } | null } | null };\n\nexport type AcknowledgeQuestGoalAlertMutationVariables = Exact<{\n  input: StudentQuestGoalAcknowledgeCompleteInput;\n}>;\n\n\nexport type AcknowledgeQuestGoalAlertMutation = { __typename: 'Mutation', studentQuestGoalAcknowledgeComplete: { __typename: 'StudentQuestGoalAcknowledgeCompletePayload', student: { __typename: 'Student', id: string, eggs: number, quest?: { __typename: 'Quest', easyGoal?: { __typename: 'QuestGoalEarnEggs', id: string, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalEarnEggs' } | null, primaryGoal?: { __typename: 'QuestGoalLesson', id: string, lesson: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalLesson' } | { __typename: 'QuestGoalMap', id: string, map: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalMap' } | null } | null } } };\n\nexport type ReadingGoalsQuizFragmentFragment = { __typename: 'ReadingGoalsQuiz', area: ReadingGoalsQuizAreaEnum, badgeReward: string, id: string, level: ReadingGoalsQuizLevelEnum, name: string };\n\nexport type ReadingGoalsQuizSummaryFragmentFragment = { __typename: 'ReadingGoalsQuizSummary', attemptsThisWeek: number, eggsReward?: number | null, id: string, passed: boolean, secondsToPass?: number | null, timestamp: string };\n\nexport type QuizAnswerFragmentFragment = { __typename: 'QuizAnswer', correct: boolean, correctAnswer: string, studentAnswer: string };\n\nexport type ReadingGoalsQuizResultFragmentFragment = { __typename: 'ReadingGoalsQuizResult', attemptUuid: string, createdAt: string, eggsReward?: number | null, id: string, level: ReadingGoalsQuizLevelEnum, passed: boolean, quizId: string, score: number, answers: Array<{ __typename: 'QuizAnswer', correct: boolean, correctAnswer: string, studentAnswer: string }> };\n\nexport type GetReadingGoalsQuizzesQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetReadingGoalsQuizzesQuery = { __typename: 'Query', readingGoalsQuizzes: Array<{ __typename: 'ReadingGoalsQuiz', area: ReadingGoalsQuizAreaEnum, badgeReward: string, id: string, level: ReadingGoalsQuizLevelEnum, name: string }> };\n\nexport type GetReadingGoalsQuizRecordQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetReadingGoalsQuizRecordQuery = { __typename: 'Query', student?: { __typename: 'Student', readingGoalsMinimumLevel: ReadingGoalsQuizLevelEnum, readingGoalsQuizSecondsToNextWeek: number, readingGoalsQuizSummaries: Array<{ __typename: 'ReadingGoalsQuizSummary', attemptsThisWeek: number, eggsReward?: number | null, id: string, passed: boolean, secondsToPass?: number | null, timestamp: string }> } | null };\n\nexport type CreateReadingGoalsQuizResultMutationVariables = Exact<{\n  input: ReadingGoalsQuizResultCreateInput;\n}>;\n\n\nexport type CreateReadingGoalsQuizResultMutation = { __typename: 'Mutation', readingGoalsQuizResultCreate: { __typename: 'ReadingGoalsQuizResultCreateOutput', readingGoalsQuizResult: { __typename: 'ReadingGoalsQuizResult', passed: boolean, eggsReward?: number | null }, student: { __typename: 'Student', id: string, eggs: number, name: string, readingGoalsQuizSummaries: Array<{ __typename: 'ReadingGoalsQuizSummary', attemptsThisWeek: number, eggsReward?: number | null, id: string, passed: boolean, secondsToPass?: number | null, timestamp: string }> } } };\n\nexport type CapturePageViewMutationVariables = Exact<{\n  input: CapturePageViewInput;\n}>;\n\n\nexport type CapturePageViewMutation = { __typename: 'Mutation', capturePageView: { __typename: 'CapturePageViewOutput', success: boolean } };\n\nexport type SaveReadingActivityLearningStateMutationVariables = Exact<{\n  input: SaveReadingActivityLearningStateInput;\n}>;\n\n\nexport type SaveReadingActivityLearningStateMutation = { __typename: 'Mutation', saveReadingActivityLearningState: { __typename: 'SaveReadingActivityLearningStateOutput', success: boolean } };\n\nexport type StudentProgressFragmentFragment = { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } } };\n\nexport type StudentProgressQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type StudentProgressQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } } } | null };\n\nexport type StudentProgressionSequenceMigrateMutationVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type StudentProgressionSequenceMigrateMutation = { __typename: 'Mutation', studentProgressionSequenceMigrate: { __typename: 'StudentProgressionSequenceMigratePayload', student: { __typename: 'Student', id: string, targetProgressionSequenceVersion: number, progress: { __typename: 'Progress', progressionSequenceVersion: number, drivingTests: { __typename: 'DrivingTestProgress', sightWords: number, lettersAndSounds: number, contentWords: number }, lessons: { __typename: 'LessonsProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, spelling: { __typename: 'SpellingProgress', currentLesson: string, currentMap: number, currentActivity: number, showPlacementTest: boolean }, clinkerCastle: { __typename: 'ClinkerCastleProgress', currentLesson: number, currentMap: number, currentActivity: number } } } } };\n\nexport type AvatarUpdateMutationVariables = Exact<{\n  input: AvatarUpdateInput;\n}>;\n\n\nexport type AvatarUpdateMutation = { __typename: 'Mutation', avatarUpdate: { __typename: 'AvatarUpdateOutput', student?: { __typename: 'Student', id: string, avatarUrl: string, dna: { __typename: 'AvatarDna', arms: string, decal: string, egg: string, extra: string, hat: string, head: string, legs: string, sunnies: string } } | null } };\n\nexport type StudentUserFragmentFragment = { __typename: 'Student', id: string, avatarUrl: string, eggs: number, firstName: string, lastName: string, gamesAccess: boolean, playroomAccess: boolean, name: string, remoteId: string, dnaHash: string, locale: string, backgroundMusicDisabled: boolean, rosterEnabled: boolean, customerType: CustomerTypeEnum, parentId?: string | null, worldsStartingLesson?: number | null, learningWorldsEnabled: boolean, dna: { __typename: 'AvatarDna', arms: string, decal: string, egg: string, extra: string, hat: string, head: string, legs: string, sunnies: string } };\n\nexport type StudentLocaleFragmentFragment = { __typename: 'Student', locale: string };\n\nexport type GetStudentQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type GetStudentQuery = { __typename: 'Query', student?: { __typename: 'Student', id: string, avatarUrl: string, eggs: number, firstName: string, lastName: string, gamesAccess: boolean, playroomAccess: boolean, name: string, remoteId: string, dnaHash: string, locale: string, backgroundMusicDisabled: boolean, rosterEnabled: boolean, customerType: CustomerTypeEnum, parentId?: string | null, worldsStartingLesson?: number | null, learningWorldsEnabled: boolean, dna: { __typename: 'AvatarDna', arms: string, decal: string, egg: string, extra: string, hat: string, head: string, legs: string, sunnies: string }, quest?: { __typename: 'Quest', easyGoal?: { __typename: 'QuestGoalEarnEggs', id: string, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalEarnEggs' } | null, primaryGoal?: { __typename: 'QuestGoalLesson', id: string, lesson: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalLesson' } | { __typename: 'QuestGoalMap', id: string, map: number, progressCurrent: number, progressTotal: number, rewardAmount: number, status: QuestGoalStatusEnum, goalType: 'QuestGoalMap' } | null } | null } | null };\n\nexport type PlazaPollFragmentFragment = { __typename: 'PlazaPoll', id: string, startDate: string, endDate: string, month: number, week: number, votes: Array<{ __typename: 'PlazaPollVoteAnswerCount', count: number, answer: number }> };\n\nexport type GetPlazaPollsQueryVariables = Exact<{\n  currentDate: Scalars['ISO8601Date']['input'];\n}>;\n\n\nexport type GetPlazaPollsQuery = { __typename: 'Query', plazaPolls: Array<{ __typename: 'PlazaPoll', id: string, startDate: string, endDate: string, month: number, week: number, votes: Array<{ __typename: 'PlazaPollVoteAnswerCount', count: number, answer: number }> }>, student?: { __typename: 'Student', firstName: string, id: string, plazaPollVote?: { __typename: 'PlazaPollVote', dateVoted: string, plazaPollId: string, votedAnswer: number } | null } | null };\n\nexport type SavePlazaPollVoteMutationVariables = Exact<{\n  input: PlazaPollVoteCreateInput;\n}>;\n\n\nexport type SavePlazaPollVoteMutation = { __typename: 'Mutation', plazaPollVoteCreate: { __typename: 'PlazaPollVote', dateVoted: string, plazaPollId: string, votedAnswer: number } };\n\nexport type DeletePlazaPollVoteMutationVariables = Exact<{\n  input: PlazaPollVoteDestroyInput;\n}>;\n\n\nexport type DeletePlazaPollVoteMutation = { __typename: 'Mutation', plazaPollVoteDestroy: Array<{ __typename: 'PlazaPoll', id: string, startDate: string, endDate: string, month: number, week: number, votes: Array<{ __typename: 'PlazaPollVoteAnswerCount', count: number, answer: number }> }> };\n\nexport const StudentProgressFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}}]} as unknown as DocumentNode<StudentProgressFragmentFragment, unknown>;\nexport const StudentMyAwardsFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentMyAwardsFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"badges\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificates\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pendingCertificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}}]}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}}]} as unknown as DocumentNode<StudentMyAwardsFragmentFragment, unknown>;\nexport const ReadingActivityFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingActivityFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingActivity\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"precinct\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityInLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"framework\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonInMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonInPrecinct\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestBundle\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestKey\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingActivityBook\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookCode\"}}]}}]}}]} as unknown as DocumentNode<ReadingActivityFragmentFragment, unknown>;\nexport const StudentAskReggieDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"askReggie\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieAvailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actions\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieUnavailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reason\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieSkipLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activity\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieDisabled\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"disabled\"}}]}}]}}]}}]} as unknown as DocumentNode<StudentAskReggieDataFragmentFragment, unknown>;\nexport const AssignmentTaskFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<AssignmentTaskFragment, unknown>;\nexport const CertificateFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"CertificateFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Certificate\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scorePercentage\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}}]}}]} as unknown as DocumentNode<CertificateFragmentFragment, unknown>;\nexport const PendingCertificateFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificateFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificate\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quizResultCreatedAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scorePercentage\"}}]}}]} as unknown as DocumentNode<PendingCertificateFragmentFragment, unknown>;\nexport const WorldDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorldDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"World\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"previousInteractions\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"areaRevealPosition\"}}]}}]} as unknown as DocumentNode<WorldDataFragmentFragment, unknown>;\nexport const StudentQuestDataFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"easyGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalEarnEggs\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalMap\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<StudentQuestDataFragmentFragment, unknown>;\nexport const ReadingGoalsQuizFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuiz\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"area\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"badgeReward\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"level\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]} as unknown as DocumentNode<ReadingGoalsQuizFragmentFragment, unknown>;\nexport const ReadingGoalsQuizSummaryFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizSummaryFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizSummary\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptsThisWeek\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggsReward\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"secondsToPass\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timestamp\"}}]}}]} as unknown as DocumentNode<ReadingGoalsQuizSummaryFragmentFragment, unknown>;\nexport const QuizAnswerFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"QuizAnswerFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuizAnswer\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correct\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswer\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentAnswer\"}}]}}]} as unknown as DocumentNode<QuizAnswerFragmentFragment, unknown>;\nexport const ReadingGoalsQuizResultFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizResultFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizResult\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"answers\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"QuizAnswerFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggsReward\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"level\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quizId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"score\"}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"QuizAnswerFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuizAnswer\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correct\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"correctAnswer\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentAnswer\"}}]}}]} as unknown as DocumentNode<ReadingGoalsQuizResultFragmentFragment, unknown>;\nexport const StudentUserFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gamesAccess\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"playroomAccess\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"remoteId\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dna\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"arms\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"egg\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"extra\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hat\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"head\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"legs\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sunnies\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dnaHash\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"locale\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backgroundMusicDisabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rosterEnabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customerType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parentId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"worldsStartingLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"learningWorldsEnabled\"}}]}}]} as unknown as DocumentNode<StudentUserFragmentFragment, unknown>;\nexport const StudentLocaleFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentLocaleFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"locale\"}}]}}]} as unknown as DocumentNode<StudentLocaleFragmentFragment, unknown>;\nexport const PlazaPollFragmentFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PlazaPollFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PlazaPoll\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endDate\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"month\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"week\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"votes\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"answer\"}}]}}]}}]} as unknown as DocumentNode<PlazaPollFragmentFragment, unknown>;\nexport const SaveDrivingTestQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveDrivingTestQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DrivingTestQuizResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTestQuizResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<SaveDrivingTestQuizResultMutation, SaveDrivingTestQuizResultMutationVariables>;\nexport const SaveDrivingTestGameResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveDrivingTestGameResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DrivingTestGameResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTestGameResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}}]} as unknown as DocumentNode<SaveDrivingTestGameResultMutation, SaveDrivingTestGameResultMutationVariables>;\nexport const SaveGameScoreDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveGameScore\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"GameScoreSaveInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gameScoreSave\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"game\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalBest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"score\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"highScores\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"limit\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"10\"}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"score\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<SaveGameScoreMutation, SaveGameScoreMutationVariables>;\nexport const PurchaseGamePlayDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"PurchaseGamePlay\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"GamePlayPurchaseInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gamePlayPurchase\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"GamePlayPurchaseSuccess\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"GamePlayPurchaseInsufficientFunds\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<PurchaseGamePlayMutation, PurchaseGamePlayMutationVariables>;\nexport const SaveReadingMapQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveReadingMapQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingMapQuizResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingMapQuizResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pendingCertificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificateFragment\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"easyGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalEarnEggs\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalMap\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificateFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificate\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quizResultCreatedAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scorePercentage\"}}]}}]} as unknown as DocumentNode<SaveReadingMapQuizResultMutation, SaveReadingMapQuizResultMutationVariables>;\nexport const SaveReadingLessonPlacementTestResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveReadingLessonPlacementTestResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingLessonPlacementTestResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingLessonPlacementTestResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"worldsStartingLesson\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"easyGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalEarnEggs\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalMap\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<SaveReadingLessonPlacementTestResultMutation, SaveReadingLessonPlacementTestResultMutationVariables>;\nexport const SaveBookQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveBookQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQuizResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookQuizResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookQuizResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reward\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<SaveBookQuizResultMutation, SaveBookQuizResultMutationVariables>;\nexport const SaveSpellingLessonActivityResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveSpellingLessonActivityResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SpellingLessonActivityResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spellingLessonActivityResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spellingLessonActivityResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reward\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<SaveSpellingLessonActivityResultMutation, SaveSpellingLessonActivityResultMutationVariables>;\nexport const SaveSpellingLessonQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveSpellingLessonQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SpellingLessonQuizResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spellingLessonQuizResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spellingLessonQuizResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reward\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"shop\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<SaveSpellingLessonQuizResultMutation, SaveSpellingLessonQuizResultMutationVariables>;\nexport const SaveSpellingMapQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveSpellingMapQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SpellingMapQuizResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spellingMapQuizResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<SaveSpellingMapQuizResultMutation, SaveSpellingMapQuizResultMutationVariables>;\nexport const SaveSpellingLessonPlacementTestResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveSpellingLessonPlacementTestResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SpellingLessonPlacementTestResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spellingLessonPlacementTestResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<SaveSpellingLessonPlacementTestResultMutation, SaveSpellingLessonPlacementTestResultMutationVariables>;\nexport const SaveClinkerCastleLessonActivityResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveClinkerCastleLessonActivityResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ClinkerCastleLessonActivityResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastleLessonActivityResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastleLessonActivityResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reward\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<SaveClinkerCastleLessonActivityResultMutation, SaveClinkerCastleLessonActivityResultMutationVariables>;\nexport const SaveClinkerCastleLessonQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveClinkerCastleLessonQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ClinkerCastleLessonQuizResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastleLessonQuizResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastleLessonQuizResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reward\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"prize\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<SaveClinkerCastleLessonQuizResultMutation, SaveClinkerCastleLessonQuizResultMutationVariables>;\nexport const GetInitialAppDataDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetInitialAppData\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gamesAccess\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"playroomAccess\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"remoteId\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dna\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"arms\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"egg\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"extra\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hat\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"head\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"legs\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sunnies\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dnaHash\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"locale\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backgroundMusicDisabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rosterEnabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customerType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parentId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"worldsStartingLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"learningWorldsEnabled\"}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"easyGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalEarnEggs\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalMap\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"askReggie\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieAvailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actions\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieUnavailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reason\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieSkipLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activity\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieDisabled\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"disabled\"}}]}}]}}]}}]} as unknown as DocumentNode<GetInitialAppDataQuery, GetInitialAppDataQueryVariables>;\nexport const ReadingActivitiesDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingActivities\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingActivities\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingActivityFragment\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingActivityFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingActivity\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"precinct\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityInLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"framework\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonInMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonInPrecinct\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestBundle\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manifestKey\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingActivityBook\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bookCode\"}}]}}]}}]} as unknown as DocumentNode<ReadingActivitiesQuery, ReadingActivitiesQueryVariables>;\nexport const GetMyAwardsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetMyAwards\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentMyAwardsFragment\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentMyAwardsFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"badges\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificates\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pendingCertificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}}]}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}}]}}]} as unknown as DocumentNode<GetMyAwardsQuery, GetMyAwardsQueryVariables>;\nexport const ReadBooksDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadBooks\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}}}},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readBooks\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"edges\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coverUrl\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasNextPage\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endCursor\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<ReadBooksQuery, ReadBooksQueryVariables>;\nexport const GetGamesDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetGames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"games\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"personalBest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"score\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"highScores\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"limit\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"10\"}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"score\"}}]}}]}}]}}]} as unknown as DocumentNode<GetGamesQuery, GetGamesQueryVariables>;\nexport const RecommendedBooksDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"RecommendedBooks\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"recommendedBooks\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"coverUrl\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readBooks\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalCount\"}}]}}]}}]}}]} as unknown as DocumentNode<RecommendedBooksQuery, RecommendedBooksQueryVariables>;\nexport const GetStudentAskReggieDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudentAskReggie\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"askReggie\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieAvailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actions\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieUnavailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reason\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieSkipLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activity\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieDisabled\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"disabled\"}}]}}]}}]}}]} as unknown as DocumentNode<GetStudentAskReggieQuery, GetStudentAskReggieQueryVariables>;\nexport const AskReggieLessonSkipAbortDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieLessonSkipAbort\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"askReggieLessonSkipAbort\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"askReggie\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieAvailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actions\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieUnavailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reason\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieSkipLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activity\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieDisabled\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"disabled\"}}]}}]}}]}}]} as unknown as DocumentNode<AskReggieLessonSkipAbortMutation, AskReggieLessonSkipAbortMutationVariables>;\nexport const AskReggieAttemptLessonSkipDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieAttemptLessonSkip\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieAttemptLessonSkipInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"askReggieAttemptLessonSkip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"askReggie\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieAvailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actions\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieUnavailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reason\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieSkipLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activity\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieDisabled\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"disabled\"}}]}}]}}]}}]} as unknown as DocumentNode<AskReggieAttemptLessonSkipMutation, AskReggieAttemptLessonSkipMutationVariables>;\nexport const GetStudentCurrentTaskDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudentCurrentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}}]} as unknown as DocumentNode<GetStudentCurrentTaskQuery, GetStudentCurrentTaskQueryVariables>;\nexport const BookDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"Book\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BookQueryInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"book\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"}}]}}]}}]} as unknown as DocumentNode<BookQuery, BookQueryVariables>;\nexport const GetCertificatesDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetCertificates\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificates\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"CertificateFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"CertificateFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Certificate\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scorePercentage\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}}]}}]} as unknown as DocumentNode<GetCertificatesQuery, GetCertificatesQueryVariables>;\nexport const GetPendingCertificateDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetPendingCertificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pendingCertificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificateFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificateFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificate\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quizResultCreatedAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scorePercentage\"}}]}}]} as unknown as DocumentNode<GetPendingCertificateQuery, GetPendingCertificateQueryVariables>;\nexport const SaveCertificateDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveCertificate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CertificateSaveInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificateSave\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pendingCertificate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificateFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"certificates\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"CertificateFragment\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificateFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificate\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quizResultCreatedAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scorePercentage\"}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"CertificateFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Certificate\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scorePercentage\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}}]}}]} as unknown as DocumentNode<SaveCertificateMutation, SaveCertificateMutationVariables>;\nexport const GetPendingCertificateUploadUrlDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetPendingCertificateUploadUrl\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingCertificateQueryInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"getPendingCertificate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"uploadUrl\"}}]}}]}}]} as unknown as DocumentNode<GetPendingCertificateUploadUrlQuery, GetPendingCertificateUploadUrlQueryVariables>;\nexport const ResetReadingLessonProgressDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"ResetReadingLessonProgress\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressReadingLessonResetInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentProgressReadingLessonReset\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}}]} as unknown as DocumentNode<ResetReadingLessonProgressMutation, ResetReadingLessonProgressMutationVariables>;\nexport const ResetReadingMapQuizProgressDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"ResetReadingMapQuizProgress\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressReadingMapQuizResetInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentProgressReadingMapQuizReset\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}}]} as unknown as DocumentNode<ResetReadingMapQuizProgressMutation, ResetReadingMapQuizProgressMutationVariables>;\nexport const ResetReadingPlacementTestProgressDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"ResetReadingPlacementTestProgress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentProgressReadingPlacementTestReset\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}}]} as unknown as DocumentNode<ResetReadingPlacementTestProgressMutation, ResetReadingPlacementTestProgressMutationVariables>;\nexport const ResetStudentWorldInteractionDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"ResetStudentWorldInteraction\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentWorldInteractionResetInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentWorldInteractionReset\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"world\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"previousInteractions\"}}]}}]}}]}}]} as unknown as DocumentNode<ResetStudentWorldInteractionMutation, ResetStudentWorldInteractionMutationVariables>;\nexport const ResetStudentWorldAreaRevealPositionDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"ResetStudentWorldAreaRevealPosition\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentWorldAreaRevealPositionResetInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentWorldAreaRevealPositionReset\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"world\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"areaRevealPosition\"}}]}}]}}]}}]} as unknown as DocumentNode<ResetStudentWorldAreaRevealPositionMutation, ResetStudentWorldAreaRevealPositionMutationVariables>;\nexport const ResetStudentWorldOnboardingDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"ResetStudentWorldOnboarding\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentWorldOnboardingReset\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"previousWorldsOnboarding\"}}]}}]}}]}}]} as unknown as DocumentNode<ResetStudentWorldOnboardingMutation, ResetStudentWorldOnboardingMutationVariables>;\nexport const GetWorldDataDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetWorldData\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"worldId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"previousWorldsOnboarding\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"world\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"worldId\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorldDataFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorldDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"World\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"previousInteractions\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"areaRevealPosition\"}}]}}]} as unknown as DocumentNode<GetWorldDataQuery, GetWorldDataQueryVariables>;\nexport const CreateStudentWorldInteractionDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateStudentWorldInteraction\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentWorldInteractionCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentWorldInteractionCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"world\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorldDataFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorldDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"World\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"previousInteractions\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"areaRevealPosition\"}}]}}]} as unknown as DocumentNode<CreateStudentWorldInteractionMutation, CreateStudentWorldInteractionMutationVariables>;\nexport const SetStudentWorldAreaRevealPositionDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SetStudentWorldAreaRevealPosition\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentWorldAreaRevealPositionSetInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentWorldAreaRevealPositionSet\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"world\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorldDataFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorldDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"World\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"previousInteractions\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"areaRevealPosition\"}}]}}]} as unknown as DocumentNode<SetStudentWorldAreaRevealPositionMutation, SetStudentWorldAreaRevealPositionMutationVariables>;\nexport const CompleteStudentWorldOnboardingSectionDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CompleteStudentWorldOnboardingSection\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentWorldOnboardingSectionCompleteInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentWorldOnboardingSectionComplete\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"previousWorldsOnboarding\"}}]}}]}}]}}]} as unknown as DocumentNode<CompleteStudentWorldOnboardingSectionMutation, CompleteStudentWorldOnboardingSectionMutationVariables>;\nexport const SaveSkillsQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveSkillsQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingEndOfLessonQuizResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingEndOfLessonQuizResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingEndOfLessonQuizResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attempt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"autoPassed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonInPrecinct\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggsEarned\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"badges\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"colour\"}}]}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"easyGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalEarnEggs\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalMap\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"askReggie\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieAvailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actions\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieUnavailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reason\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieSkipLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activity\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieDisabled\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"disabled\"}}]}}]}}]}}]} as unknown as DocumentNode<SaveSkillsQuizResultMutation, SaveSkillsQuizResultMutationVariables>;\nexport const SaveReadingLessonActivityResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveReadingLessonActivityResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingLessonActivityResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingLessonActivityResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingLessonActivityResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reward\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTask\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentTask\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskSpelling\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskClinkerCastle\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activityId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssignmentTaskDrivingTests\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignmentUuid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"category\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endAt\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gradePosition\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessonId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"thumbnailUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetRouteParams\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Error\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"easyGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalEarnEggs\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalMap\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentAskReggieDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"askReggie\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieAvailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actions\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieUnavailable\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reason\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieSkipLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activity\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AskReggieDisabled\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"disabled\"}}]}}]}}]}}]} as unknown as DocumentNode<SaveReadingLessonActivityResultMutation, SaveReadingLessonActivityResultMutationVariables>;\nexport const GetStudentQuestDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudentQuest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"easyGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalEarnEggs\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalMap\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<GetStudentQuestQuery, GetStudentQuestQueryVariables>;\nexport const AcknowledgeQuestGoalAlertDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"AcknowledgeQuestGoalAlert\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestGoalAcknowledgeCompleteInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentQuestGoalAcknowledgeComplete\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"easyGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalEarnEggs\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalMap\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<AcknowledgeQuestGoalAlertMutation, AcknowledgeQuestGoalAlertMutationVariables>;\nexport const GetReadingGoalsQuizzesDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetReadingGoalsQuizzes\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingGoalsQuizzes\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizFragment\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuiz\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"area\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"badgeReward\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"level\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]} as unknown as DocumentNode<GetReadingGoalsQuizzesQuery, GetReadingGoalsQuizzesQueryVariables>;\nexport const GetReadingGoalsQuizRecordDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetReadingGoalsQuizRecord\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingGoalsMinimumLevel\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingGoalsQuizSecondsToNextWeek\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingGoalsQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizSummaryFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizSummaryFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizSummary\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptsThisWeek\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggsReward\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"secondsToPass\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timestamp\"}}]}}]} as unknown as DocumentNode<GetReadingGoalsQuizRecordQuery, GetReadingGoalsQuizRecordQueryVariables>;\nexport const CreateReadingGoalsQuizResultDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateReadingGoalsQuizResult\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizResultCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingGoalsQuizResultCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingGoalsQuizResult\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggsReward\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readingGoalsQuizSummaries\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizSummaryFragment\"}}]}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizSummaryFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadingGoalsQuizSummary\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attemptsThisWeek\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggsReward\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"passed\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"secondsToPass\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timestamp\"}}]}}]} as unknown as DocumentNode<CreateReadingGoalsQuizResultMutation, CreateReadingGoalsQuizResultMutationVariables>;\nexport const CapturePageViewDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CapturePageView\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CapturePageViewInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capturePageView\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"success\"}}]}}]}}]} as unknown as DocumentNode<CapturePageViewMutation, CapturePageViewMutationVariables>;\nexport const SaveReadingActivityLearningStateDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveReadingActivityLearningState\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SaveReadingActivityLearningStateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"saveReadingActivityLearningState\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"success\"}}]}}]}}]} as unknown as DocumentNode<SaveReadingActivityLearningStateMutation, SaveReadingActivityLearningStateMutationVariables>;\nexport const StudentProgressDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}}]} as unknown as DocumentNode<StudentProgressQuery, StudentProgressQueryVariables>;\nexport const StudentProgressionSequenceMigrateDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressionSequenceMigrate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"studentProgressionSequenceMigrate\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentProgressFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetProgressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressionSequenceVersion\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"drivingTests\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sightWords\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lettersAndSounds\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contentWords\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lessons\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spelling\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showPlacementTest\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clinkerCastle\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentMap\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentActivity\"}}]}}]}}]}}]} as unknown as DocumentNode<StudentProgressionSequenceMigrateMutation, StudentProgressionSequenceMigrateMutationVariables>;\nexport const AvatarUpdateDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"AvatarUpdate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AvatarUpdateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUpdate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dna\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"arms\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"egg\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"extra\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hat\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"head\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"legs\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sunnies\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<AvatarUpdateMutation, AvatarUpdateMutationVariables>;\nexport const GetStudentDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStudent\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentLocaleFragment\"}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentUserFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eggs\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"gamesAccess\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"playroomAccess\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"remoteId\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dna\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"arms\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"egg\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"extra\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hat\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"head\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"legs\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sunnies\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dnaHash\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"locale\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"backgroundMusicDisabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rosterEnabled\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customerType\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parentId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"worldsStartingLesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"learningWorldsEnabled\"}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentLocaleFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"locale\"}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"StudentQuestDataFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Student\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quest\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"easyGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalEarnEggs\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"primaryGoal\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"goalType\"},\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalLesson\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lesson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"QuestGoalMap\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"map\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressCurrent\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progressTotal\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rewardAmount\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}]}}]}}]}}]}}]} as unknown as DocumentNode<GetStudentQuery, GetStudentQueryVariables>;\nexport const GetPlazaPollsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetPlazaPolls\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"currentDate\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ISO8601Date\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"plazaPolls\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"currentDate\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"currentDate\"}}}]}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PlazaPollFragment\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"student\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"plazaPollVote\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"dateVoted\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"currentDate\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dateVoted\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"plazaPollId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"votedAnswer\"}}]}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PlazaPollFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PlazaPoll\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endDate\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"month\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"week\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"votes\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"answer\"}}]}}]}}]} as unknown as DocumentNode<GetPlazaPollsQuery, GetPlazaPollsQueryVariables>;\nexport const SavePlazaPollVoteDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"SavePlazaPollVote\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PlazaPollVoteCreateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"plazaPollVoteCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dateVoted\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"plazaPollId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"votedAnswer\"}}]}}]}}]} as unknown as DocumentNode<SavePlazaPollVoteMutation, SavePlazaPollVoteMutationVariables>;\nexport const DeletePlazaPollVoteDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"DeletePlazaPollVote\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PlazaPollVoteDestroyInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"plazaPollVoteDestroy\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PlazaPollFragment\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PlazaPollFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PlazaPoll\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endDate\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"month\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"week\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"votes\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"answer\"}}]}}]}}]} as unknown as DocumentNode<DeletePlazaPollVoteMutation, DeletePlazaPollVoteMutationVariables>;\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveDrivingTestQuizResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { drivingTestQuizResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveDrivingTestQuizResultMutation = (resolver: GraphQLResponseResolver<SaveDrivingTestQuizResultMutation, SaveDrivingTestQuizResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveDrivingTestQuizResultMutation, SaveDrivingTestQuizResultMutationVariables>(\n    'SaveDrivingTestQuizResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveDrivingTestGameResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { drivingTestGameResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveDrivingTestGameResultMutation = (resolver: GraphQLResponseResolver<SaveDrivingTestGameResultMutation, SaveDrivingTestGameResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveDrivingTestGameResultMutation, SaveDrivingTestGameResultMutationVariables>(\n    'SaveDrivingTestGameResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveGameScoreMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { gameScoreSave }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveGameScoreMutation = (resolver: GraphQLResponseResolver<SaveGameScoreMutation, SaveGameScoreMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveGameScoreMutation, SaveGameScoreMutationVariables>(\n    'SaveGameScore',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockPurchaseGamePlayMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { gamePlayPurchase }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockPurchaseGamePlayMutation = (resolver: GraphQLResponseResolver<PurchaseGamePlayMutation, PurchaseGamePlayMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<PurchaseGamePlayMutation, PurchaseGamePlayMutationVariables>(\n    'PurchaseGamePlay',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveReadingMapQuizResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { readingMapQuizResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveReadingMapQuizResultMutation = (resolver: GraphQLResponseResolver<SaveReadingMapQuizResultMutation, SaveReadingMapQuizResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveReadingMapQuizResultMutation, SaveReadingMapQuizResultMutationVariables>(\n    'SaveReadingMapQuizResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveReadingLessonPlacementTestResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { readingLessonPlacementTestResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveReadingLessonPlacementTestResultMutation = (resolver: GraphQLResponseResolver<SaveReadingLessonPlacementTestResultMutation, SaveReadingLessonPlacementTestResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveReadingLessonPlacementTestResultMutation, SaveReadingLessonPlacementTestResultMutationVariables>(\n    'SaveReadingLessonPlacementTestResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveBookQuizResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { bookQuizResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveBookQuizResultMutation = (resolver: GraphQLResponseResolver<SaveBookQuizResultMutation, SaveBookQuizResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveBookQuizResultMutation, SaveBookQuizResultMutationVariables>(\n    'SaveBookQuizResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveSpellingLessonActivityResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { spellingLessonActivityResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveSpellingLessonActivityResultMutation = (resolver: GraphQLResponseResolver<SaveSpellingLessonActivityResultMutation, SaveSpellingLessonActivityResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveSpellingLessonActivityResultMutation, SaveSpellingLessonActivityResultMutationVariables>(\n    'SaveSpellingLessonActivityResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveSpellingLessonQuizResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { spellingLessonQuizResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveSpellingLessonQuizResultMutation = (resolver: GraphQLResponseResolver<SaveSpellingLessonQuizResultMutation, SaveSpellingLessonQuizResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveSpellingLessonQuizResultMutation, SaveSpellingLessonQuizResultMutationVariables>(\n    'SaveSpellingLessonQuizResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveSpellingMapQuizResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { spellingMapQuizResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveSpellingMapQuizResultMutation = (resolver: GraphQLResponseResolver<SaveSpellingMapQuizResultMutation, SaveSpellingMapQuizResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveSpellingMapQuizResultMutation, SaveSpellingMapQuizResultMutationVariables>(\n    'SaveSpellingMapQuizResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveSpellingLessonPlacementTestResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { spellingLessonPlacementTestResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveSpellingLessonPlacementTestResultMutation = (resolver: GraphQLResponseResolver<SaveSpellingLessonPlacementTestResultMutation, SaveSpellingLessonPlacementTestResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveSpellingLessonPlacementTestResultMutation, SaveSpellingLessonPlacementTestResultMutationVariables>(\n    'SaveSpellingLessonPlacementTestResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveClinkerCastleLessonActivityResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { clinkerCastleLessonActivityResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveClinkerCastleLessonActivityResultMutation = (resolver: GraphQLResponseResolver<SaveClinkerCastleLessonActivityResultMutation, SaveClinkerCastleLessonActivityResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveClinkerCastleLessonActivityResultMutation, SaveClinkerCastleLessonActivityResultMutationVariables>(\n    'SaveClinkerCastleLessonActivityResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveClinkerCastleLessonQuizResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { clinkerCastleLessonQuizResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveClinkerCastleLessonQuizResultMutation = (resolver: GraphQLResponseResolver<SaveClinkerCastleLessonQuizResultMutation, SaveClinkerCastleLessonQuizResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveClinkerCastleLessonQuizResultMutation, SaveClinkerCastleLessonQuizResultMutationVariables>(\n    'SaveClinkerCastleLessonQuizResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetInitialAppDataQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetInitialAppDataQuery = (resolver: GraphQLResponseResolver<GetInitialAppDataQuery, GetInitialAppDataQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetInitialAppDataQuery, GetInitialAppDataQueryVariables>(\n    'GetInitialAppData',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockReadingActivitiesQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { readingActivities }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockReadingActivitiesQuery = (resolver: GraphQLResponseResolver<ReadingActivitiesQuery, ReadingActivitiesQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<ReadingActivitiesQuery, ReadingActivitiesQueryVariables>(\n    'ReadingActivities',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetMyAwardsQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetMyAwardsQuery = (resolver: GraphQLResponseResolver<GetMyAwardsQuery, GetMyAwardsQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetMyAwardsQuery, GetMyAwardsQueryVariables>(\n    'GetMyAwards',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockReadBooksQuery(\n *   ({ query, variables }) => {\n *     const { first, after } = variables;\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockReadBooksQuery = (resolver: GraphQLResponseResolver<ReadBooksQuery, ReadBooksQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<ReadBooksQuery, ReadBooksQueryVariables>(\n    'ReadBooks',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetGamesQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { games }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetGamesQuery = (resolver: GraphQLResponseResolver<GetGamesQuery, GetGamesQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetGamesQuery, GetGamesQueryVariables>(\n    'GetGames',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockRecommendedBooksQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockRecommendedBooksQuery = (resolver: GraphQLResponseResolver<RecommendedBooksQuery, RecommendedBooksQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<RecommendedBooksQuery, RecommendedBooksQueryVariables>(\n    'RecommendedBooks',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetStudentAskReggieQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetStudentAskReggieQuery = (resolver: GraphQLResponseResolver<GetStudentAskReggieQuery, GetStudentAskReggieQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetStudentAskReggieQuery, GetStudentAskReggieQueryVariables>(\n    'GetStudentAskReggie',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockAskReggieLessonSkipAbortMutation(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { askReggieLessonSkipAbort }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockAskReggieLessonSkipAbortMutation = (resolver: GraphQLResponseResolver<AskReggieLessonSkipAbortMutation, AskReggieLessonSkipAbortMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<AskReggieLessonSkipAbortMutation, AskReggieLessonSkipAbortMutationVariables>(\n    'AskReggieLessonSkipAbort',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockAskReggieAttemptLessonSkipMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { askReggieAttemptLessonSkip }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockAskReggieAttemptLessonSkipMutation = (resolver: GraphQLResponseResolver<AskReggieAttemptLessonSkipMutation, AskReggieAttemptLessonSkipMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<AskReggieAttemptLessonSkipMutation, AskReggieAttemptLessonSkipMutationVariables>(\n    'AskReggieAttemptLessonSkip',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetStudentCurrentTaskQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetStudentCurrentTaskQuery = (resolver: GraphQLResponseResolver<GetStudentCurrentTaskQuery, GetStudentCurrentTaskQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetStudentCurrentTaskQuery, GetStudentCurrentTaskQueryVariables>(\n    'GetStudentCurrentTask',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockBookQuery(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { book }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockBookQuery = (resolver: GraphQLResponseResolver<BookQuery, BookQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<BookQuery, BookQueryVariables>(\n    'Book',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetCertificatesQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetCertificatesQuery = (resolver: GraphQLResponseResolver<GetCertificatesQuery, GetCertificatesQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetCertificatesQuery, GetCertificatesQueryVariables>(\n    'GetCertificates',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetPendingCertificateQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetPendingCertificateQuery = (resolver: GraphQLResponseResolver<GetPendingCertificateQuery, GetPendingCertificateQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetPendingCertificateQuery, GetPendingCertificateQueryVariables>(\n    'GetPendingCertificate',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveCertificateMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { certificateSave }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveCertificateMutation = (resolver: GraphQLResponseResolver<SaveCertificateMutation, SaveCertificateMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveCertificateMutation, SaveCertificateMutationVariables>(\n    'SaveCertificate',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetPendingCertificateUploadUrlQuery(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { getPendingCertificate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetPendingCertificateUploadUrlQuery = (resolver: GraphQLResponseResolver<GetPendingCertificateUploadUrlQuery, GetPendingCertificateUploadUrlQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetPendingCertificateUploadUrlQuery, GetPendingCertificateUploadUrlQueryVariables>(\n    'GetPendingCertificateUploadUrl',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockResetReadingLessonProgressMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { studentProgressReadingLessonReset }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockResetReadingLessonProgressMutation = (resolver: GraphQLResponseResolver<ResetReadingLessonProgressMutation, ResetReadingLessonProgressMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<ResetReadingLessonProgressMutation, ResetReadingLessonProgressMutationVariables>(\n    'ResetReadingLessonProgress',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockResetReadingMapQuizProgressMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { studentProgressReadingMapQuizReset }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockResetReadingMapQuizProgressMutation = (resolver: GraphQLResponseResolver<ResetReadingMapQuizProgressMutation, ResetReadingMapQuizProgressMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<ResetReadingMapQuizProgressMutation, ResetReadingMapQuizProgressMutationVariables>(\n    'ResetReadingMapQuizProgress',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockResetReadingPlacementTestProgressMutation(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { studentProgressReadingPlacementTestReset }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockResetReadingPlacementTestProgressMutation = (resolver: GraphQLResponseResolver<ResetReadingPlacementTestProgressMutation, ResetReadingPlacementTestProgressMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<ResetReadingPlacementTestProgressMutation, ResetReadingPlacementTestProgressMutationVariables>(\n    'ResetReadingPlacementTestProgress',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockResetStudentWorldInteractionMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { studentWorldInteractionReset }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockResetStudentWorldInteractionMutation = (resolver: GraphQLResponseResolver<ResetStudentWorldInteractionMutation, ResetStudentWorldInteractionMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<ResetStudentWorldInteractionMutation, ResetStudentWorldInteractionMutationVariables>(\n    'ResetStudentWorldInteraction',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockResetStudentWorldAreaRevealPositionMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { studentWorldAreaRevealPositionReset }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockResetStudentWorldAreaRevealPositionMutation = (resolver: GraphQLResponseResolver<ResetStudentWorldAreaRevealPositionMutation, ResetStudentWorldAreaRevealPositionMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<ResetStudentWorldAreaRevealPositionMutation, ResetStudentWorldAreaRevealPositionMutationVariables>(\n    'ResetStudentWorldAreaRevealPosition',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockResetStudentWorldOnboardingMutation(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { studentWorldOnboardingReset }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockResetStudentWorldOnboardingMutation = (resolver: GraphQLResponseResolver<ResetStudentWorldOnboardingMutation, ResetStudentWorldOnboardingMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<ResetStudentWorldOnboardingMutation, ResetStudentWorldOnboardingMutationVariables>(\n    'ResetStudentWorldOnboarding',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetWorldDataQuery(\n *   ({ query, variables }) => {\n *     const { worldId } = variables;\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetWorldDataQuery = (resolver: GraphQLResponseResolver<GetWorldDataQuery, GetWorldDataQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetWorldDataQuery, GetWorldDataQueryVariables>(\n    'GetWorldData',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockCreateStudentWorldInteractionMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { studentWorldInteractionCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockCreateStudentWorldInteractionMutation = (resolver: GraphQLResponseResolver<CreateStudentWorldInteractionMutation, CreateStudentWorldInteractionMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<CreateStudentWorldInteractionMutation, CreateStudentWorldInteractionMutationVariables>(\n    'CreateStudentWorldInteraction',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSetStudentWorldAreaRevealPositionMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { studentWorldAreaRevealPositionSet }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSetStudentWorldAreaRevealPositionMutation = (resolver: GraphQLResponseResolver<SetStudentWorldAreaRevealPositionMutation, SetStudentWorldAreaRevealPositionMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SetStudentWorldAreaRevealPositionMutation, SetStudentWorldAreaRevealPositionMutationVariables>(\n    'SetStudentWorldAreaRevealPosition',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockCompleteStudentWorldOnboardingSectionMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { studentWorldOnboardingSectionComplete }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockCompleteStudentWorldOnboardingSectionMutation = (resolver: GraphQLResponseResolver<CompleteStudentWorldOnboardingSectionMutation, CompleteStudentWorldOnboardingSectionMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<CompleteStudentWorldOnboardingSectionMutation, CompleteStudentWorldOnboardingSectionMutationVariables>(\n    'CompleteStudentWorldOnboardingSection',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveSkillsQuizResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { readingEndOfLessonQuizResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveSkillsQuizResultMutation = (resolver: GraphQLResponseResolver<SaveSkillsQuizResultMutation, SaveSkillsQuizResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveSkillsQuizResultMutation, SaveSkillsQuizResultMutationVariables>(\n    'SaveSkillsQuizResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveReadingLessonActivityResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { readingLessonActivityResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveReadingLessonActivityResultMutation = (resolver: GraphQLResponseResolver<SaveReadingLessonActivityResultMutation, SaveReadingLessonActivityResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveReadingLessonActivityResultMutation, SaveReadingLessonActivityResultMutationVariables>(\n    'SaveReadingLessonActivityResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetStudentQuestQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetStudentQuestQuery = (resolver: GraphQLResponseResolver<GetStudentQuestQuery, GetStudentQuestQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetStudentQuestQuery, GetStudentQuestQueryVariables>(\n    'GetStudentQuest',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockAcknowledgeQuestGoalAlertMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { studentQuestGoalAcknowledgeComplete }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockAcknowledgeQuestGoalAlertMutation = (resolver: GraphQLResponseResolver<AcknowledgeQuestGoalAlertMutation, AcknowledgeQuestGoalAlertMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<AcknowledgeQuestGoalAlertMutation, AcknowledgeQuestGoalAlertMutationVariables>(\n    'AcknowledgeQuestGoalAlert',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetReadingGoalsQuizzesQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { readingGoalsQuizzes }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetReadingGoalsQuizzesQuery = (resolver: GraphQLResponseResolver<GetReadingGoalsQuizzesQuery, GetReadingGoalsQuizzesQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetReadingGoalsQuizzesQuery, GetReadingGoalsQuizzesQueryVariables>(\n    'GetReadingGoalsQuizzes',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetReadingGoalsQuizRecordQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetReadingGoalsQuizRecordQuery = (resolver: GraphQLResponseResolver<GetReadingGoalsQuizRecordQuery, GetReadingGoalsQuizRecordQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetReadingGoalsQuizRecordQuery, GetReadingGoalsQuizRecordQueryVariables>(\n    'GetReadingGoalsQuizRecord',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockCreateReadingGoalsQuizResultMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { readingGoalsQuizResultCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockCreateReadingGoalsQuizResultMutation = (resolver: GraphQLResponseResolver<CreateReadingGoalsQuizResultMutation, CreateReadingGoalsQuizResultMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<CreateReadingGoalsQuizResultMutation, CreateReadingGoalsQuizResultMutationVariables>(\n    'CreateReadingGoalsQuizResult',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockCapturePageViewMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { capturePageView }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockCapturePageViewMutation = (resolver: GraphQLResponseResolver<CapturePageViewMutation, CapturePageViewMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<CapturePageViewMutation, CapturePageViewMutationVariables>(\n    'CapturePageView',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSaveReadingActivityLearningStateMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { saveReadingActivityLearningState }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSaveReadingActivityLearningStateMutation = (resolver: GraphQLResponseResolver<SaveReadingActivityLearningStateMutation, SaveReadingActivityLearningStateMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SaveReadingActivityLearningStateMutation, SaveReadingActivityLearningStateMutationVariables>(\n    'SaveReadingActivityLearningState',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockStudentProgressQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockStudentProgressQuery = (resolver: GraphQLResponseResolver<StudentProgressQuery, StudentProgressQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<StudentProgressQuery, StudentProgressQueryVariables>(\n    'StudentProgress',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockStudentProgressionSequenceMigrateMutation(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { studentProgressionSequenceMigrate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockStudentProgressionSequenceMigrateMutation = (resolver: GraphQLResponseResolver<StudentProgressionSequenceMigrateMutation, StudentProgressionSequenceMigrateMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<StudentProgressionSequenceMigrateMutation, StudentProgressionSequenceMigrateMutationVariables>(\n    'StudentProgressionSequenceMigrate',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockAvatarUpdateMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { avatarUpdate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockAvatarUpdateMutation = (resolver: GraphQLResponseResolver<AvatarUpdateMutation, AvatarUpdateMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<AvatarUpdateMutation, AvatarUpdateMutationVariables>(\n    'AvatarUpdate',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetStudentQuery(\n *   ({ query, variables }) => {\n *     return HttpResponse.json({\n *       data: { student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetStudentQuery = (resolver: GraphQLResponseResolver<GetStudentQuery, GetStudentQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetStudentQuery, GetStudentQueryVariables>(\n    'GetStudent',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockGetPlazaPollsQuery(\n *   ({ query, variables }) => {\n *     const { currentDate } = variables;\n *     return HttpResponse.json({\n *       data: { plazaPolls, student }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockGetPlazaPollsQuery = (resolver: GraphQLResponseResolver<GetPlazaPollsQuery, GetPlazaPollsQueryVariables>, options?: RequestHandlerOptions) =>\n  graphql.query<GetPlazaPollsQuery, GetPlazaPollsQueryVariables>(\n    'GetPlazaPolls',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockSavePlazaPollVoteMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { plazaPollVoteCreate }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockSavePlazaPollVoteMutation = (resolver: GraphQLResponseResolver<SavePlazaPollVoteMutation, SavePlazaPollVoteMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<SavePlazaPollVoteMutation, SavePlazaPollVoteMutationVariables>(\n    'SavePlazaPollVote',\n    resolver,\n    options\n  )\n\n/**\n * @param resolver A function that accepts [resolver arguments](https://mswjs.io/docs/api/graphql#resolver-argument) and must always return the instruction on what to do with the intercepted request. ([see more](https://mswjs.io/docs/concepts/response-resolver#resolver-instructions))\n * @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))\n * @see https://mswjs.io/docs/basics/response-resolver\n * @example\n * mockDeletePlazaPollVoteMutation(\n *   ({ query, variables }) => {\n *     const { input } = variables;\n *     return HttpResponse.json({\n *       data: { plazaPollVoteDestroy }\n *     })\n *   },\n *   requestOptions\n * )\n */\nexport const mockDeletePlazaPollVoteMutation = (resolver: GraphQLResponseResolver<DeletePlazaPollVoteMutation, DeletePlazaPollVoteMutationVariables>, options?: RequestHandlerOptions) =>\n  graphql.mutation<DeletePlazaPollVoteMutation, DeletePlazaPollVoteMutationVariables>(\n    'DeletePlazaPollVote',\n    resolver,\n    options\n  )\n","export * from \"./gql\";","\n      export interface PossibleTypesResultData {\n        possibleTypes: {\n          [key: string]: string[]\n        }\n      }\n      const result: PossibleTypesResultData = {\n  \"possibleTypes\": {\n    \"AskReggie\": [\n      \"AskReggieAvailable\",\n      \"AskReggieDisabled\",\n      \"AskReggieSkipLesson\",\n      \"AskReggieUnavailable\"\n    ],\n    \"Assignment\": [\n      \"AssignmentClinkerCastle\",\n      \"AssignmentDrivingTest\",\n      \"AssignmentLesson\",\n      \"AssignmentSpelling\"\n    ],\n    \"AssignmentTask\": [\n      \"AssignmentTaskClinkerCastle\",\n      \"AssignmentTaskDrivingTests\",\n      \"AssignmentTaskLesson\",\n      \"AssignmentTaskSpelling\",\n      \"Error\"\n    ],\n    \"AssignmentTaskDetails\": [\n      \"AssignmentClinkerCastle\",\n      \"AssignmentDrivingTest\",\n      \"AssignmentLesson\",\n      \"AssignmentSpelling\",\n      \"AssignmentTaskClinkerCastle\",\n      \"AssignmentTaskDrivingTests\",\n      \"AssignmentTaskLesson\",\n      \"AssignmentTaskSpelling\"\n    ],\n    \"GamePlayPurchaseOutput\": [\n      \"GamePlayPurchaseInsufficientFunds\",\n      \"GamePlayPurchaseSuccess\"\n    ],\n    \"ItemGrantOutput\": [\n      \"ItemGrantFailed\",\n      \"ItemGrantSuccess\"\n    ],\n    \"ItemPurchaseOutput\": [\n      \"ItemPurchaseFailed\",\n      \"ItemPurchaseSuccess\"\n    ],\n    \"ItemUpdateOutput\": [\n      \"ItemUpdateFailed\",\n      \"ItemUpdateSuccess\"\n    ],\n    \"QuestGoalEasy\": [\n      \"QuestGoalEarnEggs\"\n    ],\n    \"QuestGoalPrimary\": [\n      \"QuestGoalLesson\",\n      \"QuestGoalMap\"\n    ],\n    \"ReadingActivity\": [\n      \"ReadingActivityBook\",\n      \"ReadingActivityInteractive\",\n      \"ReadingActivityQuiz\",\n      \"ReadingActivityVideo\"\n    ]\n  }\n};\n      export default result;\n    ","import { helper } from '@ember/component/helper';\nimport config from '../config/environment';\nimport {\n  shaRegExp,\n  versionRegExp,\n  versionExtendedRegExp,\n} from 'ember-cli-app-version/utils/regexp';\n\nexport function appVersion(_, hash = {}) {\n  const version = config.APP.version;\n  // e.g. 1.0.0-alpha.1+4jds75hf\n\n  // Allow use of 'hideSha' and 'hideVersion' For backwards compatibility\n  let versionOnly = hash.versionOnly || hash.hideSha;\n  let shaOnly = hash.shaOnly || hash.hideVersion;\n\n  let match = null;\n\n  if (versionOnly) {\n    if (hash.showExtended) {\n      match = version.match(versionExtendedRegExp); // 1.0.0-alpha.1\n    }\n    // Fallback to just version\n    if (!match) {\n      match = version.match(versionRegExp); // 1.0.0\n    }\n  }\n\n  if (shaOnly) {\n    match = version.match(shaRegExp); // 4jds75hf\n  }\n\n  return match ? match[0] : version;\n}\n\nexport default helper(appVersion);\n","import pluralize from 'ember-inflector/lib/helpers/pluralize';\nexport default pluralize;\n","import singularize from 'ember-inflector/lib/helpers/singularize';\nexport default singularize;\n","import { helper } from '@ember/component/helper'\nimport podNames from 'ember-component-css/pod-names'\n\n/**\n * A temporary solution for ember-component-css not working with glimmer components\n *\n * Allows manually adding the pod-styles class to glimmer components\n */\nexport function styleNamespace(params) {\n  const [componentName] = params\n  return typeof componentName === 'string' ? podNames[componentName] : ''\n}\n\nexport default helper(styleNamespace)\n","import { helper } from '@ember/component/helper'\nimport { capitalize, decamelize } from '@ember/string'\n\nexport const titleCase = ([value]: [string]) =>\n  capitalize(decamelize(value)).replace(/_/g, ' ')\n\nexport default helper(titleCase)\n","import Helper from '@ember/component/helper'\nimport { inject as service } from '@ember/service'\nimport translate from 're-client/utils/translate'\n\nexport default class TranslateHelper extends Helper {\n  @service\n  user\n\n  compute([translationKey]) {\n    const { locale } = this.user\n    return translate(translationKey, locale)\n  }\n}\n","import initializerFactory from 'ember-cli-app-version/initializer-factory';\nimport config from '../config/environment';\n\nlet name, version;\nif (config.APP) {\n  name = config.APP.name;\n  version = config.APP.version;\n}\n\nexport default {\n  name: 'App Version',\n  initialize: initializerFactory(name, version),\n};\n","import '@ember-data/request-utils/deprecation-support';\n\n/*\n  This code initializes EmberData in an Ember application.\n*/\nexport default {\n  name: 'ember-data',\n  initialize(application) {\n    application.registerOptionsForType('serializer', { singleton: false });\n    application.registerOptionsForType('adapter', { singleton: false });\n  },\n};\n","import type Application from '@ember/application'\nimport { getOwnConfig, importSync, macroCondition } from '@embroider/macros'\n\n/**\n * Initialize msw in development by deferring application startup.\n */\nexport function initialize(application: Application) {\n  application.deferReadiness()\n\n  void setupMsw().then(() => {\n    application.advanceReadiness()\n  })\n}\n\nexport default {\n  initialize,\n}\n\nasync function setupMsw() {\n  if (macroCondition(getOwnConfig<{ enableMsw: boolean }>().enableMsw)) {\n    // Start MSW during development\n    const { worker } = importSync('re-client/mocks') as {\n      worker: { start: () => Promise<void> }\n    }\n    await worker.start()\n  } else if (\n    macroCondition(getOwnConfig<{ enableOfrepMock: boolean }>().enableOfrepMock)\n  ) {\n    // Mock just OFREP, metrics etc. during development against a real backend\n    const { worker } = importSync('re-client/mocks/services') as {\n      worker: { start: () => Promise<void> }\n    }\n    await worker.start()\n  }\n}\n","// This file is removed from the build in Ember < 3.6\nexport { default, initialize } from 'ember-component-css/instance-initializers/route-styles';\n","import {\n  BadgeColourEnum,\n  CertificateColourEnum,\n  CustomerTypeEnum,\n  Framework,\n  QuestGoalStatusEnum,\n  ReadingActivityEnum,\n  ReadingGoalsQuizAreaEnum,\n  ReadingGoalsQuizLevelEnum,\n} from 're-client/graphql/graphql'\nimport type {\n  AskReggie,\n  AssignmentTaskFragment,\n  CertificateFragmentFragment,\n  CertificateSaveInput,\n  Game,\n  PendingCertificateFragmentFragment,\n  PlazaPollFragmentFragment,\n  ReadingActivityFragmentFragment,\n  ReadingGoalsQuizFragmentFragment,\n  ReadingGoalsQuizSummaryFragmentFragment,\n  StudentMyAwardsFragmentFragment,\n  StudentProgressFragmentFragment,\n  StudentQuestDataFragmentFragment,\n  StudentUserFragmentFragment,\n} from 're-client/graphql/graphql'\nimport {\n  books,\n  lessonsBooks,\n  storylandsBooks,\n  worldsBookAreaBooks,\n} from './fixtures/books'\nimport readingActivities from './fixtures/reading-activities'\nimport readingGoalsQuizzes from './fixtures/reading-goals-quiz'\nimport puzzleScores from './fixtures/puzzle-scores'\nimport studentItems from './fixtures/student-items'\n\ntype AssignmentTask = Extract<\n  AssignmentTaskFragment['assignmentTask'],\n  { __typename: string }\n>\ntype AvatarDna = Student['dna']\nexport interface Book {\n  __typename: 'Book'\n  id: string\n  code: string\n  coverUrl: string\n  content: Record<string, unknown>\n}\ntype Badge = StudentMyAwardsFragmentFragment['badges'][number]\ntype Certificate = CertificateFragmentFragment\ntype PendingCertificate = PendingCertificateFragmentFragment\ntype PlazaPoll = PlazaPollFragmentFragment\ntype Progress = StudentProgressFragmentFragment['progress']\nexport type ClinkerCastleProgress = Progress['clinkerCastle']\nexport type DrivingTestProgress = Progress['drivingTests']\nexport type LessonsProgress = Progress['lessons']\nexport type SpellingProgress = Progress['spelling']\ntype Quest = Extract<\n  StudentQuestDataFragmentFragment['quest'],\n  { __typename: string }\n>\ntype QuestGoalEasy = Extract<Quest['easyGoal'], { __typename: string }>\ntype QuestGoalPrimary = Extract<Quest['primaryGoal'], { __typename: string }>\ntype ReadingActivity = ReadingActivityFragmentFragment\ntype ReadingGoalsQuiz = ReadingGoalsQuizFragmentFragment\ntype ReadingGoalsQuizSummary = ReadingGoalsQuizSummaryFragmentFragment\nexport type Student = StudentUserFragmentFragment\n\ninterface Lesson {\n  id: string\n  precinct: string\n  locale: string\n  book: {\n    code: string\n  }\n  position: number\n  activities: unknown[]\n}\n\nexport interface PuzzleScore {\n  id: string\n  puzzle_name: string\n  score: number\n}\n\ninterface StudentItem {\n  id: number\n  aisle: string | null\n  code: string\n  department: string\n  state: unknown\n  image_url: unknown\n  animation_url: unknown\n  animation_json: unknown\n}\n\ninterface GameScoreRecord {\n  personalBest: number\n  highScores: { name: string; score: number }[]\n}\n\nconst ONE_DAY = 24 * 60 * 60 * 1000\n\n/** Interal database state */\nlet state = initialState()\n\n/** External database methods */\nexport const db = {\n  acknowledgeQuestGoal,\n  completeWorldOnboardingSection,\n  createAssignmentTask,\n  createBadge,\n  createBook,\n  createCertificate,\n  createPendingCertificate,\n  createPuzzleScore,\n  createQuestGoal,\n  createReadBook,\n  createReadingActivity,\n  createReadingGoalsQuiz,\n  createReadingGoalsQuizSummary,\n  createReadingLesson,\n  createRecommendedBook,\n  createSpellingLesson,\n  createStorylandLesson,\n  createStudent,\n  createWorldInteraction,\n  deleteAssignmentTask,\n  deleteBadges,\n  deletePendingCertificate,\n  deleteQuest,\n  findBadge,\n  findPuzzleScore,\n  getBook,\n  getGames,\n  getMapLesson,\n  getLessonActivities,\n  getPlazaPolls,\n  getPendingCertificateUploadUrl,\n  getPuzzleScores,\n  getReadBooks,\n  getReadingActivities,\n  getReadingGoalQuizzes,\n  getRecommendedBooks,\n  getStudent,\n  getStudentItems,\n  getWorldData,\n  getWorldOnboardingSections,\n  incrementStudentEggs,\n  loadFixtures,\n  reset,\n  resetWorldAreaRevealPosition,\n  resetWorldInteractions,\n  resetWorldOnboardingSections,\n  saveCertificate,\n  saveGameScore,\n  setWorldAreaRevealPosition,\n  updateAskReggie,\n  updateDna,\n  updateProgress,\n  updateProgressionSequenceVersions,\n  updateQuestGoal,\n  updateStudent,\n}\n\n/** Reset the database to the initial state */\nfunction reset() {\n  state = initialState()\n  return db\n}\n\nfunction createStudent(input?: Partial<Student>) {\n  state.student = {\n    __typename: 'Student',\n    avatarUrl: 'https://avatars.static.readingeggs.com/re/8-1-36-1-1-1-1-2.svg',\n    backgroundMusicDisabled: false,\n    eggs: 30765,\n    firstName: 'child_au',\n    gamesAccess: true,\n    id: '1',\n    lastName: 'Tzzz',\n    locale: 'au',\n    name: 'Child Au T.',\n    playroomAccess: true,\n    remoteId: 'me',\n    rosterEnabled: false,\n    customerType: CustomerTypeEnum.B2CStudent,\n    parentId: '1234',\n    worldsStartingLesson: null,\n    learningWorldsEnabled: false,\n    ...input,\n    get dna() {\n      return state.dna\n    },\n    get dnaHash() {\n      return JSON.stringify(this.dna)\n    },\n  }\n}\n\nfunction createBadge(input: Partial<Badge>) {\n  const badge: Badge = {\n    __typename: 'Badge',\n    id: '1',\n    colour: BadgeColourEnum.Bronze,\n    lesson: 1,\n    ...input,\n  }\n\n  state.badges.set(badge.id, badge)\n}\n\nfunction deleteBadges() {\n  state.badges = new Map()\n}\n\nfunction createBook(input: Partial<Book>) {\n  const book: Book = {\n    __typename: 'Book',\n    id: '1',\n    code: 'my_book',\n    coverUrl: 'http://example.com',\n    content: {},\n    ...input,\n  }\n  if (state.books.has(book.code)) return\n  state.books.set(book.code, book)\n}\n\nfunction createReadBook(code: string) {\n  const book = state.books.get(code)\n  if (!book) throw new Error(\"cannot read book that doesn't exist\")\n\n  state.readBooks.set(book.code, book)\n}\n\nfunction createRecommendedBook(code: string) {\n  const book = state.books.get(code)\n  if (!book) throw new Error(\"cannot recommend book that doesn't exist\")\n\n  state.recommendedBooks.set(book.code, book)\n}\n\nfunction getBook(code: string) {\n  return state.books.get(code)\n}\n\nfunction createCertificate(input?: Partial<Certificate>) {\n  const certificate: Certificate = {\n    __typename: 'Certificate',\n    id: '1893697',\n    map: 7,\n    scorePercentage: 100,\n    url: 'https://certificates.blake-staging.com/re/legacy/WzcsImdvbGQiLDEwMCwiQ2hpbGQgQXUgVC4iLDE2ODM2MDc1MjUzOTNd.svg',\n    createdAt: new Date(Date.UTC(2017, 2, 5)).toISOString(),\n    colour: CertificateColourEnum.Gold,\n    ...input,\n  }\n\n  state.certificates.set(certificate.id, certificate)\n\n  return certificate\n}\n\nfunction createReadingLesson(\n  activityCount = 1,\n  input?: Partial<ReadingActivity>,\n) {\n  for (let i = 1; i <= activityCount; i++) {\n    createReadingActivity({\n      ...input,\n      activityInLesson: i,\n    })\n  }\n}\n\nfunction createSpellingLesson(activityCount = 1, input?: Partial<Lesson>) {\n  const spellingLesson: Lesson = {\n    id: '1',\n    precinct: 'spelling',\n    locale: 'au',\n    book: {\n      code: 're_student_one',\n    },\n    get position(): number {\n      return Number(this.id)\n    },\n    get activities() {\n      return Array.from({ length: activityCount }, (_, i) => ({\n        id: `${this.id}- ${(i + 1).toFixed()}`,\n      }))\n    },\n    ...input,\n  }\n\n  state.spellingLessons.set(spellingLesson.id, spellingLesson)\n\n  return spellingLesson\n}\n\nfunction createStorylandLesson(activityCount = 1, input?: Partial<Lesson>) {\n  const storylandLesson: Lesson = {\n    id: '1',\n    precinct: 'clinker_castle',\n    locale: 'au',\n    book: {\n      code: 're_student_one',\n    },\n    get position(): number {\n      return Number(this.id)\n    },\n    get activities() {\n      return Array.from({ length: activityCount }, (_, i) => ({\n        id: `${this.id}- ${(i + 1).toFixed()}`,\n      }))\n    },\n    ...input,\n  }\n\n  state.storylandLessons.set(storylandLesson.id, storylandLesson)\n\n  return storylandLesson\n}\n\nfunction updateStudent(input: Partial<Student> | null | undefined) {\n  if (input === null) {\n    state.student = input\n  } else {\n    createStudent({\n      ...state.student,\n      ...input,\n    })\n  }\n\n  return state.student\n}\n\nfunction updateDna(input: Partial<AvatarDna>) {\n  state.dna = {\n    ...state.dna,\n    ...input,\n  }\n}\n\nfunction getStudent() {\n  if (state.student) {\n    return {\n      ...state.student,\n      readingGoalsMinimumLevel: ReadingGoalsQuizLevelEnum.K,\n      readingGoalsQuizSecondsToNextWeek: 1000,\n      get targetProgressionSequenceVersion() {\n        return state.targetProgressionSequenceVersion\n      },\n      get askReggie() {\n        return state.askReggie\n      },\n      get assignmentTask() {\n        return first(state.assignmentTasks)\n      },\n      get badges() {\n        return values(state.badges)\n      },\n      set badges(badges) {\n        state.badges = new Map()\n\n        for (const badge of badges) {\n          state.badges.set(badge.id, badge)\n        }\n      },\n      get certificates() {\n        return values(state.certificates)\n      },\n      get progress() {\n        return state.progress\n      },\n      set progress(progress) {\n        state.progress = progress\n      },\n      get pendingCertificate() {\n        return state.pendingCertificate\n      },\n      get quest() {\n        return state.quest\n      },\n      get readingGoalsQuizSummaries() {\n        return values(state.readingGoalsQuizSummaries)\n      },\n    }\n  }\n\n  return null\n}\n\nfunction getWorldData(worldId: number) {\n  return {\n    __typename: 'World' as const,\n    id: worldId.toString(),\n    previousInteractions: state.worldInteractions.get(worldId) ?? [],\n    areaRevealPosition: state.worldAreaRevealPositions.get(worldId) ?? null,\n  }\n}\n\nfunction createWorldInteraction(worldId: number, interactionId: string) {\n  const existing = state.worldInteractions.get(worldId) ?? []\n\n  if (!existing.includes(interactionId)) {\n    state.worldInteractions.set(worldId, [...existing, interactionId])\n  }\n}\n\nfunction resetWorldInteractions(worldId: number) {\n  state.worldInteractions.set(worldId, [])\n}\n\nfunction setWorldAreaRevealPosition(\n  worldId: number,\n  areaRevealPosition: string,\n) {\n  state.worldAreaRevealPositions.set(worldId, areaRevealPosition)\n}\n\nfunction resetWorldAreaRevealPosition(worldId: number) {\n  state.worldAreaRevealPositions.delete(worldId)\n}\n\nfunction getWorldOnboardingSections() {\n  return state.worldOnboardingSections\n}\n\nfunction completeWorldOnboardingSection(section: string) {\n  if (!state.worldOnboardingSections.includes(section)) {\n    state.worldOnboardingSections.push(section)\n  }\n}\n\nfunction resetWorldOnboardingSections() {\n  state.worldOnboardingSections = []\n}\n\nfunction updateProgressionSequenceVersions({\n  targetVersion,\n  currentVersion,\n}: {\n  targetVersion?: number\n  currentVersion?: number\n}) {\n  if (targetVersion !== undefined) {\n    state.targetProgressionSequenceVersion = targetVersion\n  }\n  if (currentVersion !== undefined) {\n    state.progress = {\n      ...state.progress,\n      progressionSequenceVersion: currentVersion,\n    }\n  }\n}\n\nfunction createStudentItem(input: Partial<StudentItem>) {\n  const studentItem: StudentItem = {\n    id: 0,\n    aisle: null,\n    code: 'item_code',\n    department: 'item_department',\n    state: null,\n    image_url: null,\n    animation_url: null,\n    animation_json: null,\n    ...input,\n  }\n\n  state.studentItems.set(studentItem.code, studentItem)\n}\n\nfunction getStudentItems() {\n  return {\n    items: values(state.studentItems),\n  }\n}\n\nfunction getPendingCertificateUploadUrl() {\n  const { pendingCertificate } = state\n\n  if (pendingCertificate) {\n    return {\n      __typename: pendingCertificate.__typename,\n      id: pendingCertificate.id,\n      get uploadUrl(): string {\n        return `/re/${this.id}.svg`\n      },\n    }\n  }\n\n  return null\n}\n\nfunction getPlazaPolls() {\n  return values(state.plazaPolls)\n}\n\nfunction getReadingGoalQuizzes() {\n  return values(state.readingGoalsQuizzes)\n}\n\nfunction getLessonActivities(precinct: string, id: string) {\n  switch (precinct) {\n    case 'clinker_castle': {\n      const lesson = findBy(\n        state.storylandLessons,\n        (lesson) => lesson.id === id,\n      )\n      return lesson\n    }\n\n    case 'reading': {\n      const activities = filterBy(\n        state.readingActivities,\n        (activity) => activity.lessonInPrecinct === parseInt(id, 10),\n      )\n      return { activities: values(activities) }\n    }\n\n    case 'spelling': {\n      const lesson = findBy(state.spellingLessons, (lesson) => lesson.id === id)\n      return lesson\n    }\n\n    default:\n      throw new Error(`Unknown precinct: ${precinct}`)\n  }\n}\n\nfunction getMapLesson(precinct: string, id: string) {\n  switch (precinct) {\n    case 'clinker_castle':\n      return findBy(state.storylandLessons, (lesson) => lesson.id === id)\n\n    case 'spelling':\n      return findBy(state.spellingLessons, (lesson) => lesson.id === id)\n\n    default:\n      throw new Error(`Unknown precinct: ${precinct}`)\n  }\n}\n\nfunction createReadingActivity(input: Partial<ReadingActivity>) {\n  const readingActivity: ReadingActivity = {\n    __typename: 'ReadingActivityInteractive',\n    activityInLesson: 1,\n    activityType: ReadingActivityEnum.Interactive,\n    framework: Framework.Caper,\n    get id() {\n      return `${this.precinct}/map-${this.map.toFixed()}/lesson-${this.lessonInMap.toFixed()}/activity-${this.activityInLesson.toFixed()}`\n    },\n    lessonInMap: 1,\n    lessonInPrecinct: 1,\n    get manifestBundle() {\n      return `activities/${this.activityInLesson.toFixed()}`\n    },\n    get manifestKey() {\n      return ['activities', this.activityInLesson.toFixed()]\n    },\n    map: 1,\n    precinct: 'reading',\n    ...input,\n  } as ReadingActivity\n\n  state.readingActivities.set(readingActivity.id, readingActivity)\n\n  return readingActivity\n}\n\nfunction deleteAssignmentTask(id: string) {\n  state.assignmentTasks = filterBy(\n    state.assignmentTasks,\n    (task) => !('id' in task && task.id === id),\n  )\n}\n\nfunction getReadingActivities() {\n  return values(state.readingActivities)\n}\n\nconst gameIds = [\n  'arcade_where_s_my_reading_egg',\n  'arcade_concentration',\n  'arcade_jaz_s_never_ending_jigsaw',\n  'arcade_zee_wee_shapes',\n  'arcade_marshmallow',\n  'arcade_castle_critters',\n  'arcade_sam_ant_stamp',\n  'arcade_bee_bee_balls',\n  'arcade_bluebird_s_puttputt',\n  'arcade_wheely_whale_racer',\n  'arcade_alphabeetle_s_letter_drop',\n  'arcade_reggie_s_eggspress',\n  'arcade_thistle_s_snow_spell',\n  'arcade_egg_heads',\n  'arcade_illy_s_butterfly_adventure',\n  'arcade_sid_s_triangle_puzzle',\n  'arcade_critter_hunt',\n  'arcade_chicken_run',\n  'arcade_word_worm',\n  'arcade_skittles',\n  'arcade_driving_game',\n  'arcade_bubble_boy',\n  'arcade_stacks_of_blocks',\n  'arcade_get_dressed',\n]\n\nfunction getGames(): Game[] {\n  return gameIds.map((gameId, i) => buildGame(gameId, i))\n}\n\nfunction buildGame(gameId: string, defaultPersonalBest = 0): Game {\n  const saved = state.gameScores.get(gameId)\n\n  const personalBestScore = saved?.personalBest ?? defaultPersonalBest\n  const highScores = saved?.highScores ?? [{ name: 'Ebony C.', score: 931600 }]\n\n  return {\n    __typename: 'Game',\n    id: gameId,\n    name: gameId,\n    personalBest: {\n      __typename: 'Score',\n      id: gameId,\n      name: 'Personal Best',\n      score: personalBestScore,\n    },\n    highScores: highScores.map((highScore) => ({\n      __typename: 'Score',\n      id: gameId,\n      ...highScore,\n    })),\n  }\n}\n\nfunction saveGameScore(gameId: string, score: number, name: string): Game {\n  const existing = state.gameScores.get(gameId)\n  const personalBest = Math.max(existing?.personalBest ?? 0, score)\n\n  const highScores = [...(existing?.highScores ?? []), { name, score }]\n    .sort((a, b) => b.score - a.score)\n    .slice(0, 10)\n\n  state.gameScores.set(gameId, { personalBest, highScores })\n\n  return buildGame(gameId)\n}\n\nfunction createReadingGoalsQuiz(input: Partial<ReadingGoalsQuiz>) {\n  const quiz: ReadingGoalsQuiz = {\n    __typename: 'ReadingGoalsQuiz',\n    area: ReadingGoalsQuizAreaEnum.PrintConcepts,\n    badgeReward: 'green_bunny',\n    id: 'k-1-print_concepts-features_of_books',\n    level: ReadingGoalsQuizLevelEnum.K,\n    name: 'Features of books',\n    ...input,\n  }\n\n  state.readingGoalsQuizzes.set(quiz.id, quiz)\n}\n\nfunction createAssignmentTask(input?: Partial<AssignmentTask>): AssignmentTask {\n  let task: AssignmentTask\n\n  switch (input?.__typename) {\n    case 'AssignmentTaskClinkerCastle':\n      task = {\n        id: '1',\n        targetRouteParams: [],\n        assignmentUuid: 'clinker-castle-assignment-uuid',\n        endAt: new Date(Date.now() + ONE_DAY).toISOString(),\n        thumbnailUrl: `https://placebear.com/200/150`,\n        title: 'Clinker Castle Assignment Title',\n        lessonId: '1',\n        activityId: '1',\n        __typename: 'AssignmentTaskClinkerCastle',\n        ...input,\n      }\n      break\n\n    case 'AssignmentTaskDrivingTests':\n      task = {\n        id: '1',\n        targetRouteParams: [],\n        assignmentUuid: 'driving-test-assignment-uuid',\n        endAt: new Date(Date.now() + ONE_DAY).toISOString(),\n        thumbnailUrl: `https://placebear.com/200/150`,\n        title: 'Driving Test Assignment Title',\n        lessonId: '1',\n        gradePosition: 1,\n        category: 'sight_words',\n        __typename: 'AssignmentTaskDrivingTests',\n        ...input,\n      }\n      break\n\n    case 'AssignmentTaskLesson':\n      task = {\n        id: '1',\n        targetRouteParams: [],\n        assignmentUuid: 'lesson-assignment-uuid',\n        endAt: new Date(Date.now() + ONE_DAY).toISOString(),\n        thumbnailUrl: `https://placebear.com/200/150`,\n        title: 'Lesson Assignment Title',\n        lessonId: '1',\n        activityId: '1',\n        __typename: 'AssignmentTaskLesson',\n        ...input,\n      }\n      break\n\n    case 'AssignmentTaskSpelling':\n      task = {\n        id: '1',\n        targetRouteParams: [],\n        assignmentUuid: 'spelling-assignment-uuid',\n        endAt: new Date(Date.now() + ONE_DAY).toISOString(),\n        thumbnailUrl: `https://placebear.com/200/150`,\n        title: 'Spelling Assignment Title',\n        lessonId: '1',\n        activityId: '1',\n        __typename: 'AssignmentTaskSpelling',\n        ...input,\n      }\n      break\n\n    case 'Error':\n      task = {\n        ...input,\n        __typename: 'Error',\n        message: 'assignment-task-error',\n      }\n      break\n\n    default:\n      throw new Error(`Unknown assignment task type: ${input?.__typename}`)\n  }\n\n  if (task.__typename !== 'Error') {\n    state.assignmentTasks.set(task.id, task)\n  }\n\n  return task\n}\n\nfunction saveCertificate(input: CertificateSaveInput) {\n  let certificate: Certificate | null = null\n\n  const map = state.pendingCertificate?.map\n\n  if (map) {\n    state.certificates = filterBy(\n      state.certificates,\n      (cert) => cert.map !== map,\n    )\n  }\n\n  if (input.pendingCertificateId === state.pendingCertificate?.id) {\n    certificate = createCertificate({\n      id: input.pendingCertificateId,\n      map: state.pendingCertificate.map,\n      scorePercentage: state.pendingCertificate.scorePercentage,\n      url: `/re/${state.pendingCertificate.id}.svg`,\n\n      ...input,\n    })\n\n    state.pendingCertificate = null\n  }\n\n  return certificate\n}\n\nfunction updateProgress(\n  input:\n    | ((input: Progress) => {\n        progressionSequenceVersion: number\n        clinkerCastle: ClinkerCastleProgress\n        drivingTests: DrivingTestProgress\n        lessons: LessonsProgress\n        spelling: SpellingProgress\n      })\n    | Partial<{\n        progressionSequenceVersion: number | undefined\n        clinkerCastle: Partial<ClinkerCastleProgress> | undefined\n        drivingTests: Partial<DrivingTestProgress> | undefined\n        lessons: Partial<LessonsProgress> | undefined\n        spelling: Partial<SpellingProgress> | undefined\n      }>,\n) {\n  let update = input\n\n  if (typeof input !== 'function') {\n    update = (progress) => ({\n      ...progress,\n      progressionSequenceVersion:\n        input.progressionSequenceVersion ?? progress.progressionSequenceVersion,\n      clinkerCastle: {\n        ...progress.clinkerCastle,\n        ...input.clinkerCastle,\n      },\n      drivingTests: {\n        ...progress.drivingTests,\n        ...input.drivingTests,\n      },\n      lessons: {\n        ...progress.lessons,\n        ...input.lessons,\n      },\n      spelling: {\n        ...progress.spelling,\n        ...input.spelling,\n      },\n    })\n  }\n\n  if (state.student && typeof update === 'function') {\n    state.progress = {\n      __typename: 'Progress',\n      ...update(state.progress),\n    }\n  }\n}\n\nfunction updateQuestGoal<Goal extends QuestGoalPrimary | QuestGoalEasy>(\n  questGoal: Goal,\n  input: Partial<Goal>,\n) {\n  Object.assign(questGoal, input)\n}\n\nfunction createPendingCertificate(input?: Partial<PendingCertificate>) {\n  state.pendingCertificate = {\n    __typename: 'PendingCertificate',\n    colour: CertificateColourEnum.Gold,\n    scorePercentage: 100,\n    map: 1,\n    quizResultCreatedAt: '2023-02-01T00:00:00.000Z',\n    id: 'uuid',\n    ...input,\n  }\n}\n\nfunction deletePendingCertificate() {\n  state.pendingCertificate = null\n}\n\nfunction updateQuest(input?: Partial<Quest>) {\n  let easyGoal = state.quest?.easyGoal ?? null\n  let primaryGoal = state.quest?.primaryGoal ?? null\n\n  if (input?.easyGoal) {\n    easyGoal = {\n      ...easyGoal,\n      ...input.easyGoal,\n    }\n  }\n\n  if (input?.primaryGoal) {\n    primaryGoal = {\n      ...primaryGoal,\n      ...input.primaryGoal,\n    }\n  }\n\n  if (state.student) {\n    state.quest = {\n      __typename: 'Quest',\n      easyGoal,\n      primaryGoal,\n    }\n  }\n}\n\nfunction deleteQuest() {\n  if (state.student) {\n    state.quest = null\n  }\n}\n\nfunction createQuestGoal(input?: Partial<QuestGoalPrimary | QuestGoalEasy>) {\n  switch (input?.__typename) {\n    case 'QuestGoalEarnEggs':\n      updateQuest({\n        easyGoal: {\n          __typename: 'QuestGoalEarnEggs',\n          goalType: 'QuestGoalEarnEggs',\n          rewardAmount: 20,\n          id: '1',\n          progressCurrent: 0,\n          progressTotal: 9,\n          status: QuestGoalStatusEnum.Incomplete,\n          ...input,\n        },\n      })\n      break\n\n    case 'QuestGoalLesson':\n      updateQuest({\n        primaryGoal: {\n          __typename: 'QuestGoalLesson',\n          goalType: 'QuestGoalLesson',\n          rewardAmount: 20,\n          id: '1',\n          lesson: 1,\n          progressCurrent: 0,\n          progressTotal: 9,\n          status: QuestGoalStatusEnum.Incomplete,\n          ...input,\n        },\n      })\n      break\n\n    case 'QuestGoalMap':\n      updateQuest({\n        primaryGoal: {\n          __typename: 'QuestGoalMap',\n          goalType: 'QuestGoalMap',\n          rewardAmount: 20,\n          id: '1',\n          map: 1,\n          status: QuestGoalStatusEnum.Incomplete,\n          progressCurrent: 0,\n          progressTotal: 9,\n          ...input,\n        },\n      })\n      break\n\n    default:\n      throw new Error(`Unknown quest goal type: ${input?.__typename}`)\n  }\n}\n\nfunction acknowledgeQuestGoal(goalId: string) {\n  let goal\n\n  if (state.quest?.primaryGoal?.id === goalId) {\n    goal = state.quest.primaryGoal\n  } else if (state.quest?.easyGoal?.id === goalId) {\n    goal = state.quest.easyGoal\n  }\n\n  if (goal) {\n    goal.status = QuestGoalStatusEnum.Complete\n\n    if (state.student) {\n      state.student.eggs += goal.rewardAmount\n    }\n  }\n\n  return goal\n}\n\nfunction createPuzzleScore(input?: Partial<PuzzleScore>) {\n  const puzzleScore: PuzzleScore = {\n    id: 'puzzle_name',\n    puzzle_name: 'puzzle-name',\n    score: 100,\n    ...input,\n  }\n\n  state.puzzleScores.set(puzzleScore.id, puzzleScore)\n\n  return puzzleScore\n}\n\nfunction findPuzzleScore(id: string) {\n  return findBy(state.puzzleScores, (score) => score.id === id)\n}\n\nfunction getPuzzleScores() {\n  return values(state.puzzleScores)\n}\n\nfunction getReadBooks() {\n  return values(state.readBooks)\n}\n\nfunction getRecommendedBooks() {\n  return values(state.recommendedBooks)\n}\n\nfunction findBadge(\n  predicate: (value: Badge, key: string, map: Map<string, Badge>) => boolean,\n) {\n  return findBy(state.badges, predicate)\n}\n\nfunction createReadingGoalsQuizSummary(\n  input?: Partial<ReadingGoalsQuizSummary>,\n) {\n  const quizSummary: ReadingGoalsQuizSummary = {\n    __typename: 'ReadingGoalsQuizSummary',\n    attemptsThisWeek: 1,\n    eggsReward: 0,\n    id: '1',\n    passed: false,\n    secondsToPass: 0,\n    timestamp: new Date().toISOString(),\n    ...input,\n  }\n\n  state.readingGoalsQuizSummaries.set(quizSummary.id, quizSummary)\n}\n\nfunction incrementStudentEggs(amount: number) {\n  if (state.student) {\n    state.student.eggs += amount\n  }\n}\n\nfunction loadFixtures(\n  ...names: (\n    | 'puzzleScores'\n    | 'readingActivities'\n    | 'readingGoalsQuizzes'\n    | 'studentItems'\n    | 'books'\n    | 'readBooks'\n    | 'recommendedBooks'\n    | 'lessonsBooks'\n    | 'storylandsBooks'\n    | 'worldsBookAreaBooks'\n  )[]\n) {\n  if (names.includes('books')) {\n    for (const book of books()) {\n      createBook(book)\n    }\n  }\n\n  if (names.includes('readBooks')) {\n    for (const book of books().slice(0, 23)) {\n      createBook(book)\n      createReadBook(book.code)\n    }\n  }\n\n  if (names.includes('recommendedBooks')) {\n    for (const book of books().slice(0, 4)) {\n      createBook(book)\n      createRecommendedBook(book.code)\n    }\n  }\n\n  if (names.includes('lessonsBooks')) {\n    for (const book of lessonsBooks()) {\n      createBook(book)\n    }\n  }\n\n  if (names.includes('storylandsBooks')) {\n    for (const book of storylandsBooks()) {\n      createBook(book)\n    }\n  }\n\n  if (names.includes('worldsBookAreaBooks')) {\n    for (const book of worldsBookAreaBooks()) {\n      createBook(book)\n    }\n  }\n\n  if (names.includes('readingActivities')) {\n    for (const activity of readingActivities()) {\n      createReadingActivity(activity)\n    }\n  }\n\n  if (names.includes('readingGoalsQuizzes')) {\n    for (const quiz of readingGoalsQuizzes()) {\n      createReadingGoalsQuiz(quiz)\n    }\n  }\n\n  if (names.includes('puzzleScores')) {\n    for (const score of puzzleScores) {\n      createPuzzleScore(score)\n    }\n  }\n\n  if (names.includes('studentItems')) {\n    for (const item of studentItems.items) {\n      createStudentItem(item)\n    }\n  }\n}\n\nfunction updateAskReggie(input: AskReggie) {\n  state.askReggie = input\n}\n\nfunction initialState() {\n  const dna: AvatarDna = {\n    __typename: 'AvatarDna',\n    head: 'default_head_4',\n    arms: 'default_arms_2',\n    legs: 'default_legs_1',\n    egg: 'egg_88',\n    decal: 'decal_27',\n    sunnies: 'default_sunnies_2',\n    extra: 'extra_10',\n    hat: 'hat_13',\n  }\n\n  const progress: Progress = {\n    __typename: 'Progress',\n    progressionSequenceVersion: 1,\n    lessons: {\n      __typename: 'LessonsProgress',\n      currentMap: 1,\n      currentLesson: '1',\n      currentActivity: 1,\n      showPlacementTest: false,\n    },\n    spelling: {\n      __typename: 'SpellingProgress',\n      currentMap: 1,\n      currentLesson: '1',\n      currentActivity: 1,\n      showPlacementTest: false,\n    },\n    clinkerCastle: {\n      __typename: 'ClinkerCastleProgress',\n      currentMap: 1,\n      currentLesson: 1,\n      currentActivity: 1,\n    },\n    drivingTests: {\n      __typename: 'DrivingTestProgress',\n      sightWords: 1,\n      contentWords: 1,\n      lettersAndSounds: 1,\n    },\n  }\n\n  const askReggie = {\n    __typename: 'AskReggieDisabled',\n    disabled: true,\n  } as AskReggie\n\n  const student = null as Student | null\n  const quest = null as Quest | null\n  const pendingCertificate = null as PendingCertificate | null\n  const targetProgressionSequenceVersion = 1\n\n  const certificates = new Map<string, Certificate>()\n  const assignmentTasks = new Map<string, AssignmentTask>()\n  const badges = new Map<string, Badge>()\n  const books = new Map<string, Book>()\n  const readBooks = new Map<string, Book>()\n  const readingActivities = new Map<string, ReadingActivity>()\n  const recommendedBooks = new Map<string, Book>()\n  const spellingLessons = new Map<string, Lesson>()\n  const storylandLessons = new Map<string, Lesson>()\n  const readingGoalsQuizzes = new Map<string, ReadingGoalsQuiz>()\n  const puzzleScores = new Map<string, PuzzleScore>()\n  const readingGoalsQuizSummaries = new Map<string, ReadingGoalsQuizSummary>()\n  const plazaPolls = new Map<string, PlazaPoll>()\n  const studentItems = new Map<string, StudentItem>()\n  const worldInteractions = new Map<number, string[]>()\n  const worldAreaRevealPositions = new Map<number, string>()\n  const worldOnboardingSections: string[] = []\n  const gameScores = new Map<string, GameScoreRecord>()\n\n  return {\n    askReggie,\n    assignmentTasks,\n    badges,\n    books,\n    certificates,\n    dna,\n    gameScores,\n    pendingCertificate,\n    plazaPolls,\n    progress,\n    puzzleScores,\n    quest,\n    readBooks,\n    readingActivities,\n    readingGoalsQuizSummaries,\n    readingGoalsQuizzes,\n    recommendedBooks,\n    spellingLessons,\n    storylandLessons,\n    student,\n    studentItems,\n    targetProgressionSequenceVersion,\n    worldAreaRevealPositions,\n    worldInteractions,\n    worldOnboardingSections,\n  }\n}\n\nfunction filterBy<K, V>(\n  map: Map<K, V>,\n  predicate: (value: V, key: K, map: Map<K, V>) => boolean,\n) {\n  const newMap = new Map<K, V>()\n\n  for (const [id, value] of map) {\n    if (predicate(value, id, map)) {\n      newMap.set(id, value)\n    }\n  }\n\n  return newMap\n}\n\nfunction findBy<K, V>(\n  map: Map<K, V>,\n  predicate: (value: V, key: K, map: Map<K, V>) => boolean,\n) {\n  for (const [id, value] of map) {\n    if (predicate(value, id, map)) {\n      return value\n    }\n  }\n\n  return null\n}\n\nfunction values<V>(map: Map<unknown, V>): V[] {\n  return Array.from(map.values())\n}\n\nfunction first<V>(map: Map<unknown, V>): V | null {\n  const result = map.values().next()\n  return result.done ? null : result.value\n}\n","export default {\n  content: {\n    images: [\n      'https://assets.static.readingeggs.com/avatar/readingeggs/images/decal_27_decal-fp-9da031cf.png',\n      'https://assets.static.readingeggs.com/avatar/readingeggs/images/default_arms_2_arms_arm1-fp-1219d68e.png',\n      'https://assets.static.readingeggs.com/avatar/readingeggs/images/default_arms_2_arms_arm2-fp-de924a32.png',\n      'https://assets.static.readingeggs.com/avatar/readingeggs/images/default_head_4_head-fp-25dc6da2.png',\n      'https://assets.static.readingeggs.com/avatar/readingeggs/images/default_legs_1_legs_leg1-fp-4dca48b7.png',\n      'https://assets.static.readingeggs.com/avatar/readingeggs/images/default_legs_1_legs_leg2-fp-aea52f29.png',\n      'https://assets.static.readingeggs.com/avatar/readingeggs/images/default_sunnies_2_sunnies-fp-fd9446c1.png',\n      'https://assets.static.readingeggs.com/avatar/readingeggs/images/egg_88_egg-fp-d0830847.png',\n      'https://assets.static.readingeggs.com/avatar/readingeggs/images/extra_10_extra-fp-5cf79b03.png',\n      'https://assets.static.readingeggs.com/avatar/readingeggs/images/hat_13_hat-fp-e7413bdc.png',\n    ],\n    variables: {\n      avatar: {\n        decal_27: {\n          decal: {\n            x: 0,\n            y: 0,\n          },\n        },\n        default_arms_2: {\n          arms: {\n            arm1: {\n              x: 0,\n              y: 0,\n            },\n            arm2: {\n              x: 0,\n              y: 0,\n            },\n          },\n        },\n        default_head_4: {\n          head: {\n            x: 0,\n            y: 0,\n          },\n        },\n        default_legs_1: {\n          legs: {\n            leg1: {\n              x: 0,\n              y: 0,\n            },\n            leg2: {\n              x: 0,\n              y: 0,\n            },\n          },\n        },\n        default_sunnies_2: {\n          sunnies: {\n            x: 0,\n            y: 0,\n          },\n        },\n        egg_88: {\n          egg: {\n            x: 0,\n            y: 0,\n          },\n        },\n        extra_10: {\n          extra: {\n            x: 0,\n            y: 0,\n          },\n        },\n        hat_13: {\n          hat: {\n            x: 0,\n            y: 0,\n          },\n        },\n      },\n    },\n  },\n}\n","import readingActivities from './reading-activities'\nimport myProgramBooks from './my-program-books'\nimport type { Book } from 're-client/mocks/db'\n\nfunction makeBook({\n  id,\n  title,\n  code,\n  coverUrl = 'https://books.static.readingeggs.com/covers/au/funny_photo/funny_photo_vegetables_in_a_van/preview_front_funny_photo_vegetables_in_a_van.jpg',\n}: {\n  id: string\n  title: string\n  code: string\n  coverUrl?: string\n}) {\n  return {\n    id,\n    code,\n    coverUrl,\n    content: {\n      code,\n      title,\n      covers: {\n        front: {\n          imageURL: coverUrl,\n        },\n      },\n      pages: [\n        {\n          imageURL: coverUrl,\n        },\n      ],\n      sections: [\n        {\n          type: 'CHAPTER',\n          quizQuestions: [\n            {\n              text: 'what is the meaning of life?',\n              answers: [\n                {\n                  isCorrect: false,\n                  text: '41',\n                },\n                {\n                  isCorrect: true,\n                  text: '42',\n                },\n                {\n                  isCorrect: false,\n                  text: '43',\n                },\n                {\n                  isCorrect: false,\n                  text: '44',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  } satisfies Partial<Book>\n}\n\nexport function books() {\n  return myProgramBooks.recommended_books.map(\n    ({ code, cover_url: coverUrl }, i) =>\n      makeBook({\n        id: `${code}-${i.toString()}`,\n        title: `Fake Book ${i.toString()}`,\n        code,\n        coverUrl,\n      }),\n  )\n}\n\nexport function* lessonsBooks() {\n  const lessonsSeen = new Set()\n  for (const { lessonInMap, bookCode } of readingActivities()) {\n    if (!lessonsSeen.has(lessonInMap)) {\n      yield makeBook({\n        id: `${bookCode}_id`,\n        code: bookCode,\n        title: `Reading Lesson ${lessonInMap.toString()} Book`,\n      })\n\n      lessonsSeen.add(lessonInMap)\n    }\n  }\n}\n\nexport function storylandsBooks() {\n  return [\n    'storylands_the_royal_message',\n    'storylands_the_surprise_prince',\n    'storylands_who_is_in_the_tower',\n    'storylands_the_naughty_prince',\n    'storylands_the_red_knight',\n    'storylands_royal_favourites',\n    'storylands_the_shining_knight',\n    'storylands_knight_training',\n    'storylands_the_hungry_hound',\n    'storylands_whats_in_the_lake',\n    'storylands_catch_a_dragon',\n    'storylands_the_queens_big_quest',\n    'storylands_the_very_best_castle',\n    'storylands_the_queens_mirror',\n    'storylands_the_forgetful_princess',\n    'storylands_the_frog_princess',\n    'storylands_royal_trouble',\n    'storylands_a_royal_picnic',\n    'storylands_shopping',\n    'storylands_royal_trouble',\n    'storylands_the_kings_challenge',\n    'storylands_the_surprise_prince',\n    'storylands_shopping',\n    'storylands_the_forgetful_princess',\n    'storylands_the_kings_challenge',\n    'storylands_who_is_in_the_tower',\n    'storylands_royal_favorites',\n    'storylands_the_hungry_hound',\n    'storylands_the_red_knight',\n    'storylands_the_queens_big_quest',\n    'storylands_the_shining_knight',\n    'storylands_whats_in_the_lake',\n    'storylands_a_royal_picnic',\n    'storylands_the_naughty_prince',\n    'storylands_knight_training',\n    'storylands_the_queens_mirror',\n    'storylands_catch_a_dragon',\n  ].map((code, i) =>\n    makeBook({\n      id: `${code}_id`,\n      code,\n      title: `Storylands Book ${i.toString()}`,\n    }),\n  )\n}\n\nexport function worldsBookAreaBooks() {\n  return [\n    'my_world_my_funny_cat',\n    'reading_eggs_the_squirrel',\n    'poetry_a_little_turtle',\n    'go_books_big_cat',\n    'easy_reads_bella_plays_hide_and_seek',\n    'storylands_what_did_buzz_boy_catch',\n  ].map((code) =>\n    makeBook({\n      id: `${code}_id`,\n      code,\n      title: `Book Area Book ${code}`,\n    }),\n  )\n}\n","export default {\n  file: '/reading/activities/my_house',\n  thumb: null,\n  content: {},\n  caperModule: 're-client/reading/activities/my_house',\n}\n","import { times } from 'lodash'\n\nexport default {\n  recommended_books: times(10, (i) => [\n    {\n      id: `funny_photo_vegetables_in_a_van_${i}`,\n      code: `funny_photo_vegetables_in_a_van_${i}`,\n      cover_url:\n        'https://books.static.readingeggs.com/covers/au/funny_photo/funny_photo_vegetables_in_a_van/preview_front_funny_photo_vegetables_in_a_van.jpg',\n      accent: 'au',\n    },\n    {\n      id: `reading_eggs_three_seeds_${i}`,\n      code: `reading_eggs_three_seeds_${i}`,\n      cover_url:\n        'https://books.static.readingeggs.com/covers/au/reading_eggs/reading_eggs_three_seeds/preview_front_reading_eggs_three_seeds.jpg',\n      accent: 'au',\n    },\n    {\n      id: `reading_eggs_vans_${i}`,\n      code: `reading_eggs_vans_${i}`,\n      cover_url:\n        'https://books.static.readingeggs.com/covers/au/reading_eggs/reading_eggs_vans/preview_front_reading_eggs_vans.jpg',\n      accent: 'au',\n    },\n    {\n      id: `reading_eggs_i_like_vegetables_${i}`,\n      code: `reading_eggs_i_like_vegetables_${i}`,\n      cover_url:\n        'https://books.static.readingeggs.com/covers/au/reading_eggs/reading_eggs_i_like_vegetables/preview_front_reading_eggs_i_like_vegetables.jpg',\n      accent: 'au',\n    },\n  ]).flat(),\n  books_read: 18,\n}\n","export default [\n  {\n    id: 'teddy_bear',\n    puzzle_name: 'Teddy bear',\n    score: 76,\n  },\n  {\n    id: 'blue_squares',\n    puzzle_name: 'Blue Squares',\n    score: 60,\n  },\n  {\n    id: 'baby_animals',\n    puzzle_name: 'Baby animals',\n    score: 66,\n  },\n  {\n    id: 'making_music',\n    puzzle_name: 'Making music',\n    score: 96,\n  },\n  {\n    id: 'more_than_one',\n    puzzle_name: 'More than One',\n    score: 54,\n  },\n  {\n    id: 'alphabet_match',\n    puzzle_name: 'Alphabet Match',\n    score: 38,\n  },\n  {\n    id: 'colour_code',\n    puzzle_name: 'Colour Code',\n    score: 27,\n  },\n  {\n    id: 'finish_the_alien',\n    puzzle_name: 'Finish the alien',\n    score: 14,\n  },\n  {\n    id: 'opposites',\n    puzzle_name: 'Opposites',\n    score: 73,\n  },\n  {\n    id: 'name_it',\n    puzzle_name: 'Name it',\n    score: 75,\n  },\n  {\n    id: 'squares',\n    puzzle_name: 'Squares',\n    score: 59,\n  },\n  {\n    id: 'describe_it',\n    puzzle_name: 'Describe it',\n    score: 107,\n  },\n  {\n    id: 'both_ways',\n    puzzle_name: 'Both Ways',\n    score: 64,\n  },\n  {\n    id: 'dressing_up',\n    puzzle_name: 'Dressing up',\n    score: 66,\n  },\n  {\n    id: 'what_is_it',\n    puzzle_name: 'What is it',\n    score: 63,\n  },\n  {\n    id: 'sense_it',\n    puzzle_name: 'Sense it',\n    score: 66,\n  },\n  {\n    id: 'vegetables',\n    puzzle_name: 'Vegetables',\n    score: 65,\n  },\n  {\n    id: 'animal_colours',\n    puzzle_name: 'Animal Colours',\n    score: 63,\n  },\n  {\n    id: 'read_it',\n    puzzle_name: 'Read it',\n    score: 73,\n  },\n  {\n    id: 'fingers',\n    puzzle_name: 'Fingers',\n    score: 15,\n  },\n  {\n    id: 'animal_grid',\n    puzzle_name: 'Animal grid',\n    score: 36,\n  },\n  {\n    id: 'red_squares',\n    puzzle_name: 'Red Squares',\n    score: 36,\n  },\n  {\n    id: 'green_squares',\n    puzzle_name: 'Green Squares',\n    score: 36,\n  },\n  {\n    id: 'hidden_words',\n    puzzle_name: 'Hidden Words',\n    score: 29,\n  },\n  {\n    id: 'number_nuts',\n    puzzle_name: 'Number Nuts',\n    score: 12,\n  },\n  {\n    id: 'do_you_know',\n    puzzle_name: 'Do You Know',\n    score: 35,\n  },\n  {\n    id: 'do_it',\n    puzzle_name: 'Do it',\n    score: 46,\n  },\n  {\n    id: 'arrows',\n    puzzle_name: 'Arrows',\n    score: 48,\n  },\n  {\n    id: 'mazes',\n    puzzle_name: 'Mazes',\n    score: 19,\n  },\n  {\n    id: 'song_lines',\n    puzzle_name: 'Song Lines',\n    score: 2,\n  },\n  {\n    id: 'transport',\n    puzzle_name: 'Transport',\n    score: 66,\n  },\n  {\n    id: 'animal_fun',\n    puzzle_name: 'Animal fun',\n    score: 54,\n  },\n]\n","import progressionSequence from '@blakeelearning/progression-sequence-readingeggs/dist/v2/progression.json'\nimport {\n  Framework,\n  ReadingActivityEnum,\n  type ReadingActivityFragmentFragment,\n} from 're-client/graphql/graphql'\n\nexport default function* readingActivities() {\n  for (const step of progressionSequence) {\n    if (step.precinct === 'reading') {\n      let activityType: ReadingActivityEnum\n      let framework: Framework\n      let __typename: ReadingActivityFragmentFragment['__typename']\n\n      switch (step.activityType) {\n        case 'book':\n          activityType = ReadingActivityEnum.Book\n          __typename = 'ReadingActivityBook'\n          break\n\n        case 'interactive':\n          activityType = ReadingActivityEnum.Interactive\n          __typename = 'ReadingActivityInteractive'\n          break\n        case 'quiz':\n          activityType = ReadingActivityEnum.Quiz\n          __typename = 'ReadingActivityQuiz'\n          break\n\n        case 'video':\n          activityType = ReadingActivityEnum.Video\n          __typename = 'ReadingActivityVideo'\n          break\n\n        default:\n          throw new Error(`Unknown activity type: ${step.activityType}`)\n      }\n\n      switch (step.framework) {\n        case 'caper':\n          framework = Framework.Caper\n          break\n\n        case 'jester':\n          framework = Framework.Jester\n          break\n\n        default:\n          throw new Error(`Unknown framework: ${step.framework}`)\n      }\n\n      yield {\n        ...step,\n        __typename,\n        id: `${step.precinct}/map-${step.map.toString()}/lesson-${step.lessonInMap.toString()}/activity-${step.activityInLesson.toString()}`,\n        activityType,\n        framework,\n        bookCode: `${step.precinct}_lesson_${step.lessonInMap.toString()}_book`,\n      } satisfies ReadingActivityFragmentFragment\n    }\n  }\n}\n","import progressionSequence from '@blakeelearning/progression-sequence-readingeggs/dist/v2/progression.json'\nimport {\n  ReadingGoalsQuizAreaEnum,\n  type ReadingGoalsQuizFragmentFragment,\n  ReadingGoalsQuizLevelEnum,\n} from 're-client/graphql/graphql'\n\nexport default function* readingGaolsQuizzes() {\n  for (const step of progressionSequence) {\n    if (step.precinct === 'reading_goals') {\n      let area: ReadingGoalsQuizAreaEnum\n      let level: ReadingGoalsQuizLevelEnum\n\n      switch (step.area) {\n        case 'alphabet':\n          area = ReadingGoalsQuizAreaEnum.Alphabet\n          break\n\n        case 'comprehension':\n          area = ReadingGoalsQuizAreaEnum.Comprehension\n          break\n\n        case 'high_frequency_words':\n          area = ReadingGoalsQuizAreaEnum.HighFrequencyWords\n          break\n\n        case 'phonics':\n          area = ReadingGoalsQuizAreaEnum.Phonics\n          break\n\n        case 'phonological_awareness':\n          area = ReadingGoalsQuizAreaEnum.PhonologicalAwareness\n          break\n\n        case 'print_concepts':\n          area = ReadingGoalsQuizAreaEnum.PrintConcepts\n          break\n\n        case 'spelling':\n          area = ReadingGoalsQuizAreaEnum.Spelling\n          break\n\n        case 'vocabulary':\n          area = ReadingGoalsQuizAreaEnum.Vocabulary\n          break\n\n        default:\n          throw new Error(`Unknown activity type: ${step.area}`)\n      }\n\n      switch (step.level) {\n        case 'k':\n          level = ReadingGoalsQuizLevelEnum.K\n          break\n\n        case '1':\n          level = ReadingGoalsQuizLevelEnum.One\n          break\n\n        case '2':\n          level = ReadingGoalsQuizLevelEnum.Two\n          break\n\n        default:\n          throw new Error(`Unknown level: ${step.level}`)\n      }\n\n      yield {\n        ...step,\n        __typename: 'ReadingGoalsQuiz',\n        area,\n        level,\n      } satisfies ReadingGoalsQuizFragmentFragment\n    }\n  }\n}\n","export default {\n  spelling_progress: {\n    lesson_quiz_summary: {},\n    map_quiz_summary: { highest_percentage: 70 },\n    current_lesson_number: 60,\n    initial_lesson_completed_at: '10/12/2018',\n    initial_lesson_number: 1,\n  },\n}\n","export default {\n  spelling_results: {\n    all_maps: {\n      best_lesson_quiz_number: 1,\n      best_lesson_quiz_score: 9,\n      first_lesson_quiz_completed_at: '01/01/2018',\n      first_lesson_quiz_number: 1,\n      lesson_quizzes_average_score: '6.33',\n    },\n    map: {\n      best_lesson_quiz_score: [\n        {\n          score: 9,\n          lesson_position: 1,\n        },\n        {\n          score: 5,\n          lesson_position: 2,\n        },\n      ],\n      best_map_quiz_percent: 70,\n      position: 1,\n    },\n  },\n}\n","export default {\n  content: {\n    variables: {\n      presenting: {\n        name: 'The Contest',\n        end_date: '2024-05-30',\n        winner: {\n          author: 'Hugh L.',\n          title: 'The Good Book',\n          submitted: true,\n          style: 5,\n          pages: [\n            {\n              text: 'The Good Book',\n              position: 0,\n              page_position: 1,\n            },\n            {\n              text: 'Some text',\n              position: 1,\n              page_position: 9,\n            },\n            {\n              text: 'Some text',\n              position: 2,\n              page_position: 8,\n            },\n            {\n              text: 'Some text',\n              position: 3,\n              page_position: 5,\n            },\n            {\n              text: 'Some text',\n              position: 4,\n              page_position: 10,\n            },\n            {\n              text: 'text here',\n              position: 5,\n              page_position: 2,\n            },\n            {\n              text: 'Some text',\n              position: 6,\n              page_position: 4,\n            },\n          ],\n        },\n        state: 'presenting',\n        words: [\n          'ate',\n          'barbeque',\n          'carrot',\n          'chickens',\n          'eating',\n          'farm',\n          'fish',\n          'food',\n          'handful',\n          'hungry',\n          'lunch',\n          'puppies',\n          'rabbit',\n          'sausages',\n          'scatter',\n          'sprinkle',\n          'throw',\n          'turtle',\n          'yummy',\n          'water',\n        ],\n        images: [\n          'feed_the_animals_1',\n          'feed_the_animals_2',\n          'feed_the_animals_3',\n          'feed_the_animals_4',\n          'feed_the_animals_5',\n          'feed_the_animals_6',\n          'feed_the_animals_7',\n          'feed_the_animals_8',\n          'feed_the_animals_9',\n          'feed_the_animals_10',\n        ],\n        shortlist: [\n          {\n            author: 'Vishan W.',\n            title: 'John and Katie Feed the Farm!',\n            submitted: true,\n\n            style: 6,\n            pages: [\n              {\n                text: 'Some text',\n                position: 0,\n                page_position: 6,\n              },\n              {\n                text: 'Some text',\n                position: 1,\n                page_position: 4,\n              },\n              {\n                text: 'Some text',\n                position: 2,\n                page_position: 8,\n              },\n              {\n                text: 'Some text',\n                position: 3,\n                page_position: 5,\n              },\n              {\n                text: 'Some text',\n                position: 4,\n                page_position: 10,\n              },\n              {\n                text: 'Some text',\n                position: 5,\n                page_position: 9,\n              },\n              {\n                text: 'Some text',\n                position: 6,\n                page_position: 7,\n              },\n            ],\n          },\n          {\n            author: 'Ruby A.',\n            title: \"Hannah's First Day At The Farm\",\n            submitted: true,\n\n            style: 6,\n            pages: [\n              {\n                text: \"Hannah's First Day At The Farm\",\n                position: 0,\n                page_position: 4,\n              },\n              {\n                text: 'Some text',\n                position: 1,\n                page_position: 9,\n              },\n              {\n                text: 'Some text',\n                position: 2,\n                page_position: 6,\n              },\n              {\n                text: 'Some text',\n                position: 3,\n                page_position: 8,\n              },\n              {\n                text: 'Some text',\n                position: 4,\n                page_position: 10,\n              },\n              {\n                text: 'Moar text',\n                position: 5,\n                page_position: 7,\n              },\n              {\n                text: 'Some text',\n                position: 6,\n                page_position: 5,\n              },\n            ],\n          },\n        ],\n      },\n    },\n    images: [\n      'https://assets.static.readingeggs.com/story_factory/feed_the_animals/feed_the_animals_1-fp-c88859f7.jpg',\n      'https://assets.static.readingeggs.com/story_factory/feed_the_animals/feed_the_animals_2-fp-e2c2b873.jpg',\n      'https://assets.static.readingeggs.com/story_factory/feed_the_animals/feed_the_animals_3-fp-8e4ab5c1.jpg',\n      'https://assets.static.readingeggs.com/story_factory/feed_the_animals/feed_the_animals_4-fp-6214258a.jpg',\n      'https://assets.static.readingeggs.com/story_factory/feed_the_animals/feed_the_animals_5-fp-e315e137.jpg',\n      'https://assets.static.readingeggs.com/story_factory/feed_the_animals/feed_the_animals_6-fp-646f1c50.jpg',\n      'https://assets.static.readingeggs.com/story_factory/feed_the_animals/feed_the_animals_7-fp-12d03b49.jpg',\n      'https://assets.static.readingeggs.com/story_factory/feed_the_animals/feed_the_animals_8-fp-85595584.jpg',\n      'https://assets.static.readingeggs.com/story_factory/feed_the_animals/feed_the_animals_9-fp-95cf1bbc.jpg',\n      'https://assets.static.readingeggs.com/story_factory/feed_the_animals/feed_the_animals_10-fp-3d0abb4d.jpg',\n    ],\n  },\n}\n","export default {\n  content: {\n    variables: {\n      voting: {\n        name: 'Fun Day',\n        end_date: '2024-06-06',\n        winner: {\n          author: 'Hugh L.',\n          title: 'Book A',\n          submitted: true,\n          style: 6,\n          pages: [\n            {\n              text: 'Random page',\n              position: 0,\n              page_position: 10,\n            },\n            {\n              text: 'Book A',\n              position: 1,\n              page_position: 1,\n            },\n            {\n              text: 'Some Text',\n              position: 2,\n              page_position: 3,\n            },\n            {\n              text: 'Some Text',\n              position: 3,\n              page_position: 9,\n            },\n            {\n              text: 'Some Text',\n              position: 4,\n              page_position: 4,\n            },\n            {\n              text: 'Some Text',\n              position: 5,\n              page_position: 8,\n            },\n            {\n              text: 'Some Text',\n              position: 6,\n              page_position: 5,\n            },\n          ],\n        },\n        state: 'voting',\n        words: [\n          'beach',\n          'draw',\n          'excellent',\n          'great',\n          'happy',\n          'hug',\n          'jump',\n          'knee',\n          'play',\n          'fall',\n          'hurt',\n          'icecream',\n          'ouch',\n          'pool',\n          'read',\n          'splash',\n          'swim',\n          'trampoline',\n          'water',\n          'write',\n        ],\n        images: [\n          'fun_day_1',\n          'fun_day_2',\n          'fun_day_3',\n          'fun_day_4',\n          'fun_day_5',\n          'fun_day_6',\n          'fun_day_7',\n          'fun_day_8',\n          'fun_day_9',\n          'fun_day_10',\n        ],\n        shortlist: Array(10)\n          .fill(0)\n          .map((_, i) => ({\n            author: 'Hugh L.',\n\n            title: `Book ${i}`,\n            submitted: true,\n\n            style: 2,\n            pages: [\n              {\n                text: `Book ${i}`,\n                position: 0,\n                page_position: 8,\n              },\n              {\n                text: 'Some Text',\n                position: 1,\n                page_position: 4,\n              },\n              {\n                text: 'Some Text',\n                position: 2,\n                page_position: 3,\n              },\n              {\n                text: 'Some Text',\n                position: 3,\n                page_position: 2,\n              },\n              {\n                text: 'Some Text',\n                position: 4,\n                page_position: 6,\n              },\n              {\n                text: 'Some Text',\n                position: 5,\n                page_position: 7,\n              },\n              {\n                text: 'Some Text',\n                position: 6,\n                page_position: 5,\n              },\n            ],\n            ratings: [\n              {\n                rating: 5,\n              },\n            ],\n          })),\n      },\n    },\n    images: [\n      'https://assets.static.readingeggs.com/story_factory/fun_day/fun_day_1-fp-e51ce0dd.jpg',\n      'https://assets.static.readingeggs.com/story_factory/fun_day/fun_day_2-fp-d1c9bae0.jpg',\n      'https://assets.static.readingeggs.com/story_factory/fun_day/fun_day_3-fp-1526ca7c.jpg',\n      'https://assets.static.readingeggs.com/story_factory/fun_day/fun_day_4-fp-05cb919c.jpg',\n      'https://assets.static.readingeggs.com/story_factory/fun_day/fun_day_5-fp-cb8c24e1.jpg',\n      'https://assets.static.readingeggs.com/story_factory/fun_day/fun_day_6-fp-d28193ab.jpg',\n      'https://assets.static.readingeggs.com/story_factory/fun_day/fun_day_7-fp-20ad5606.jpg',\n      'https://assets.static.readingeggs.com/story_factory/fun_day/fun_day_8-fp-3cacd846.jpg',\n      'https://assets.static.readingeggs.com/story_factory/fun_day/fun_day_9-fp-6521af27.jpg',\n      'https://assets.static.readingeggs.com/story_factory/fun_day/fun_day_10-fp-0b664487.jpg',\n    ],\n  },\n}\n","export default {\n  content: {\n    variables: {\n      contest: {\n        id: 296,\n        name: 'Hot Day',\n        end_date: '2013-07-04',\n        winner: null,\n        state: 'open',\n        words: [\n          'away',\n          'boiling',\n          'hot',\n          'jumped',\n          'pool',\n          'scared',\n          'slide',\n          'slippery',\n          'spider',\n          'splash',\n          'steamy',\n          'summer',\n          'sunny',\n          'sweat',\n          'swimming',\n          'tired',\n          'towel',\n          'walked',\n          'water',\n          'wilt',\n        ],\n        images: [\n          'hot_day_1',\n          'hot_day_2',\n          'hot_day_3',\n          'hot_day_4',\n          'hot_day_5',\n          'hot_day_6',\n          'hot_day_7',\n          'hot_day_8',\n          'hot_day_9',\n          'hot_day_10',\n        ],\n        shortlist: [],\n      },\n    },\n    images: [\n      'https://assets.static.readingeggs.com/story_factory/hot_day/hot_day_1-fp-7fc850d7.jpg',\n      'https://assets.static.readingeggs.com/story_factory/hot_day/hot_day_2-fp-be5a52a5.jpg',\n      'https://assets.static.readingeggs.com/story_factory/hot_day/hot_day_3-fp-a7b4df88.jpg',\n      'https://assets.static.readingeggs.com/story_factory/hot_day/hot_day_4-fp-00dc07e3.jpg',\n      'https://assets.static.readingeggs.com/story_factory/hot_day/hot_day_5-fp-c026dadd.jpg',\n      'https://assets.static.readingeggs.com/story_factory/hot_day/hot_day_6-fp-1a149885.jpg',\n      'https://assets.static.readingeggs.com/story_factory/hot_day/hot_day_7-fp-13dbdd52.jpg',\n      'https://assets.static.readingeggs.com/story_factory/hot_day/hot_day_8-fp-44a0d9e8.jpg',\n      'https://assets.static.readingeggs.com/story_factory/hot_day/hot_day_9-fp-c627bf42.jpg',\n      'https://assets.static.readingeggs.com/story_factory/hot_day/hot_day_10-fp-11e36764.jpg',\n    ],\n  },\n}\n","export default {\n  items: [\n    {\n      id: 1,\n      code: 'head_40',\n      department: 'head',\n      state: null,\n      image_url: null,\n      animation_url: null,\n      animation_json: null,\n    },\n    {\n      id: 2,\n      code: 'arms_54',\n      department: 'arms',\n      state: null,\n      image_url: null,\n      animation_url: null,\n      animation_json: null,\n    },\n    {\n      id: 3,\n      code: 'floor_sofa_glove_black',\n      department: 'furniture',\n      state: null,\n      image_url:\n        'https://assets.readingeggs.com/shop/readingeggs/items/images/floor_sofa_glove_black.png',\n      animation_url: null,\n      animation_json: null,\n    },\n  ],\n}\n","import { http, HttpResponse, passthrough } from 'msw'\nimport config from 're-client/config/environment'\nimport { db, type PuzzleScore } from './db'\nimport avatarContent from './fixtures/avatar-content'\nimport myHouse from './fixtures/my-house'\nimport myProgramBooks from './fixtures/my-program-books'\nimport spellingProgress from './fixtures/spelling-progress'\nimport spellingResults from './fixtures/spelling-results'\nimport storyFactoryContestVoting from './fixtures/story-factory-contest-voting'\nimport storyFactoryContestPrevious from './fixtures/story-factory-contest-previous'\nimport storyFactoryContest from './fixtures/story-factory-contest'\nimport type { AvatarDna } from 're-client/graphql/graphql'\n\nconst token = [\n  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',\n  'eyJzdWIiOiJhYmMiLCJhdWQiOiJkZWYiLCJleHAiOjE3MDk4NTQ0MDMsImlhdCI6MTcwOTg1MDgwMywiaXNzIjoiaHR0cHM6Ly9zc28uYmxha2Utc3RhZ2luZy5jb20vIiwicm9sZSI6IlN0dWRlbnQiLCJpZCI6MSwiZGF0YSI6eyJpZCI6MSwidHlwZSI6InN0dWRlbnQifX0',\n  'P8coh8qzEToMsAGSefFCBL9aIbRqha4zvHOiV0b3M1c',\n].join('.')\n\nexport const ofrepHandlers = () => [\n  http.post('/ofrep/v1/evaluate/flags', () => {\n    return HttpResponse.json({\n      flags: [\n        {\n          key: 'audio-session-playback',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 'debug-allowed',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 'posthog-capture',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 're_ask-reggie',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 're_canada-aware',\n          reason: 'DISABLED',\n          metadata: {},\n        },\n        {\n          key: 're_caper-esm',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 're_caper-flag-names',\n          value: {\n            payload: ['re_video-ui-update', 'audio-session-playback'],\n          },\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 're_jester-css-font-loading',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 're_jester-flag-names',\n          value: {\n            payload: [\n              're_jester-css-font-loading',\n              're_video-ui-update',\n              'audio-session-playback',\n            ],\n          },\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 're_kafka-page-views',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 're_learning-state',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 're_lesson-skip-posthog-events',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 're_my-reading-goals',\n          reason: 'DISABLED',\n          metadata: {},\n        },\n        {\n          key: 're_posthog-capture-activity-visits',\n          reason: 'DISABLED',\n          metadata: {},\n        },\n        {\n          key: 're_posthog-capture-pageviews',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 're_time-on-task-v2',\n          reason: 'DISABLED',\n          metadata: {},\n        },\n        {\n          key: 're_video-ui-update',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n        {\n          key: 're_learning-worlds',\n          value: true,\n          reason: 'STATIC',\n          variant: 'on',\n          metadata: {},\n        },\n      ],\n    })\n  }),\n]\n\nexport const metricsCollectorHandlers = () => [\n  http.post('/metrics/page_view', () =>\n    HttpResponse.text(null, { status: 204 }),\n  ),\n  http.post('/metrics/learning_state', () =>\n    HttpResponse.text(null, { status: 204 }),\n  ),\n]\n\nexport const handlers = [\n  http.get('https://avatars.static.readingeggs.com/*', () => passthrough()),\n  http.get('https://placebear.com/**', () => passthrough()),\n  http.get('https://use.typekit.net/**', () => passthrough()),\n  http.get('https://p.typekit.net/**', () => passthrough()),\n  http.post('/write-coverage', () => passthrough()),\n  http.get('/assets/*', () => passthrough()),\n  http.post('/api/v1/time_on_task', () => {\n    return HttpResponse.text(null, { status: 204 })\n  }),\n  http.post('http://localhost:4007/*', () => {\n    console.info('Time on Task V2 mock received request')\n    return HttpResponse.text(null, { status: 204 })\n  }),\n  http.get('/api/v1/avatar/avatar_content', () => {\n    return HttpResponse.json(avatarContent)\n  }),\n  http.put('/api/v1/avatar', async ({ request }) => {\n    const body = await request.json()\n    if (typeof body !== 'object' || body === null) {\n      return HttpResponse.json(\n        { error: 'Invalid request body' },\n        { status: 400 },\n      )\n    }\n\n    const dna = body['dna'] as AvatarDna\n\n    db.updateDna(dna)\n    db.updateStudent({\n      avatarUrl:\n        'https://avatars-stg.static.readingeggs.com/re/1-1-1-1-1-2-1-6.svg',\n    })\n\n    return HttpResponse.json({\n      avatar: {\n        ...body,\n        id: 1,\n        image_url:\n          'https://avatars-stg.static.readingeggs.com/re/1-1-1-1-1-2-1-6.svg',\n      },\n    })\n  }),\n  http.get('/api/v1/books', () => {\n    return HttpResponse.json(myProgramBooks)\n  }),\n  http.get('/api/v1/bookshelves/bookshelf', () => {\n    return HttpResponse.json({ bookshelf: { id: 'bookshelf' } })\n  }),\n  http.get('/api/v1/items', () => {\n    return HttpResponse.json(db.getStudentItems())\n  }),\n  http.post<never, { code: string; studentId: string }>(\n    '/api/v1/items',\n    async function ({ request }) {\n      const { code, studentId } = await request.json()\n      return HttpResponse.json({ item: { id: 641, code, studentId } })\n    },\n  ),\n\n  http.get('/api/v1/bundle_items', function ({ request }) {\n    const items = new URL(request.url).searchParams.getAll('items[]')\n    return HttpResponse.json({\n      items: items.map((code, i) => ({ id: 300 + i, code })),\n    })\n  }),\n\n  http.post('/api/v1/bundle_items', function ({ request }) {\n    return new HttpResponse(request.body)\n  }),\n\n  http.get('/auth/session', () => {\n    return HttpResponse.json({\n      data: {\n        user_id: 1,\n        expired_at: Math.trunc(Date.now() / 1000) + 3600,\n        token,\n      },\n    })\n  }),\n\n  http.get('/api/v1/puzzle_scores', () => {\n    return HttpResponse.json({ puzzle_scores: db.getPuzzleScores() })\n  }),\n  http.post<never, { puzzle_score: PuzzleScore }>(\n    '/api/v1/puzzle_scores',\n    async ({ request }) => {\n      const { puzzle_score } = await request.json()\n      return HttpResponse.json({\n        puzzle_score: db.createPuzzleScore(puzzle_score),\n      })\n    },\n  ),\n\n  http.get('/api/v1/spelling_progress/:id', () => {\n    return HttpResponse.json(spellingProgress)\n  }),\n\n  http.get('/api/v1/spelling_results/:id', () => {\n    return HttpResponse.json(spellingResults)\n  }),\n\n  http.get(`/data/:accent/reading/activities/my_house.json`, () => {\n    return HttpResponse.json(myHouse)\n  }),\n\n  ...ofrepHandlers(),\n  ...lessonsHandlers(),\n  ...metricsCollectorHandlers(),\n  ...contentLoaderHandlers(),\n  ...storyFactoryHandlers(),\n]\n\nfunction* contentLoaderHandlers() {\n  for (const host of Object.values(config.contentLoader.caper.assetHosts)) {\n    yield http.get(`${String(host)}/**`, () => passthrough())\n  }\n\n  for (const host of Object.values(config.contentLoader.jester.assetHosts)) {\n    yield http.get(`${String(host)}/**`, () => passthrough())\n  }\n}\n\nfunction storyFactoryHandlers(namespace = '/api/v1') {\n  return [\n    http.get(`${namespace}/story_factory_contests/previous`, () => {\n      return HttpResponse.json(storyFactoryContestPrevious)\n    }),\n\n    http.get(`${namespace}/story_factory_contests/voting`, () => {\n      return HttpResponse.json(storyFactoryContestVoting)\n    }),\n\n    http.get(`${namespace}/story_factory_contests/:id`, () => {\n      return HttpResponse.json(storyFactoryContest)\n    }),\n\n    http.get(`${namespace}/story_factory_entries`, () => {\n      return HttpResponse.json({\n        content: {\n          variables: {\n            entries: [],\n          },\n        },\n      })\n    }),\n\n    http.get(`${namespace}/story_factory_entries/new`, () => {\n      return HttpResponse.json({\n        story_factory_entry: {\n          id: null,\n          author: 'Child O.',\n          story_factory_contest_id: 296,\n          title: '',\n          submitted: false,\n          student_id: 1027859,\n          style: null,\n          pages: [\n            {\n              id: null,\n              text: '',\n              position: 0,\n              page_position: null,\n            },\n            {\n              id: null,\n              text: '',\n              position: 1,\n              page_position: null,\n            },\n            {\n              id: null,\n              text: '',\n              position: 2,\n              page_position: null,\n            },\n            {\n              id: null,\n              text: '',\n              position: 3,\n              page_position: null,\n            },\n            {\n              id: null,\n              text: '',\n              position: 4,\n              page_position: null,\n            },\n            {\n              id: null,\n              text: '',\n              position: 5,\n              page_position: null,\n            },\n            {\n              id: null,\n              text: '',\n              position: 6,\n              page_position: null,\n            },\n          ],\n        },\n      })\n    }),\n\n    http.get(`${namespace}/story_factory_entries/:id`, () => {\n      return HttpResponse.json({\n        content: {\n          variables: {},\n        },\n      })\n    }),\n\n    http.post(`${namespace}/story_factory_entries/:id`, () => {\n      return HttpResponse.json({\n        content: {\n          variables: {},\n        },\n      })\n    }),\n\n    http.put(`${namespace}/story_factory_entries/:id`, () => {\n      return HttpResponse.json({\n        content: {\n          variables: {},\n        },\n      })\n    }),\n  ]\n}\n\nfunction lessonsHandlers() {\n  const path = new URL(\n    'readingeggs/releases/:env/data/:accent/:precinct/lessons/:id.json',\n    config.contentLoader.caper.assetHosts.code,\n  ).toString()\n\n  return [\n    http.get<{ precinct: string; id: string }>(path, ({ params }) => {\n      if (config.environment === 'test') {\n        const { id, precinct } = params\n        return HttpResponse.json(db.getMapLesson(precinct, id))\n      }\n\n      return passthrough()\n    }),\n  ]\n}\n","import { setupWorker } from 'msw/browser'\nimport { handlers } from './handlers'\nimport { scenarios } from './scenarios'\nimport { db } from './db'\nimport config from 're-client/config/environment'\n\nexport { db }\n\nif (config.environment !== 'test') {\n  db.createStudent({\n    // learningWorldsEnabled: true,\n  })\n\n  db.updateProgress({\n    lessons: {\n      currentMap: config.APP.lastMap + 1,\n      currentLesson: (config.APP.lastLessonsLesson + 1).toString(),\n      // showPlacementTest: true,\n    },\n    spelling: {\n      currentMap: config.APP.lastSpellingMap + 1,\n      currentLesson: (config.APP.lastSpellingLesson + 1).toString(),\n    },\n    clinkerCastle: {\n      currentMap: config.studentProgress.progress.storylands.lastMap + 1,\n      currentLesson: config.APP.lastStorylandsLesson + 1,\n    },\n    drivingTests: {\n      sightWords: 15,\n      contentWords: 15,\n      lettersAndSounds: 15,\n    },\n  })\n\n  /**\n   * Uncomment the below for different Ask Reggie states.\n   */\n\n  // db.updateAskReggie({\n  //   __typename: 'AskReggieAvailable',\n  //   actions: [AskReggieAvailableActionEnum.SkipLesson],\n  // })\n\n  // db.updateAskReggie({\n  //   __typename: 'AskReggieSkipLesson',\n  //   lesson: 1,\n  //   activity: 7, // book activity\n  // })\n\n  // db.updateProgress({\n  //   lessons: {\n  //     currentMap: 1,\n  //     currentLesson: '1',\n  //     currentActivity: 1,\n  //   },\n  // })\n\n  // db.updateAskReggie({\n  //   __typename: 'AskReggieSkipLesson',\n  //   lesson: 1,\n  //   activity: 8, // quiz activity\n  // })\n\n  // db.updateAskReggie({\n  //   __typename: 'AskReggieUnavailable',\n  //   reason: AskReggieUnavailableReasonEnum.FailedSkipAttempt,\n  // })\n\n  // db.updateAskReggie({\n  //   __typename: 'AskReggieUnavailable',\n  //   reason: AskReggieUnavailableReasonEnum.SkipAttemptsExhausted,\n  // })\n\n  db.loadFixtures(\n    'books',\n    'readingActivities',\n    'readBooks',\n    'recommendedBooks',\n    'lessonsBooks',\n    'storylandsBooks',\n    'worldsBookAreaBooks',\n  )\n  // uncomment below for the student to have a pending certificate\n  // db.createPendingCertificate()\n\n  // db.createAssignmentTask({\n  //   __typename: 'AssignmentTaskLesson',\n  //   lessonId: '1',\n  //   activityId: '1',\n  //   title: 'the letter m',\n  //   thumbnailUrl:\n  //     'https://assets.static.readingeggs.com/activities/static/m_part1_screenshot_small-fp-73712df1.jpg',\n  // })\n\n  // db.createAssignmentTask({\n  //   __typename: 'AssignmentTaskSpelling',\n  //   lessonId: '1',\n  //   activityId: '1',\n  //   title: 'Ants 1',\n  //   thumbnailUrl:\n  //     'https://assets.static.readingeggs.com/activities/static/feed_the_baby_screenshot_small-fp-8d0081fa.jpg',\n  // })\n\n  // db.createAssignmentTask({\n  //   __typename: 'AssignmentTaskClinkerCastle',\n  //   lessonId: '1',\n  //   activityId: '1',\n  //   title: \"What's in the Lake?\",\n  //   thumbnailUrl:\n  //     'https://assets.static.readingeggs.com/activities/match_up/images/clinker_castle/screenshot_thumb-fp-8d11c1a5.jpg',\n  // })\n\n  // db.createAssignmentTask({\n  //   __typename: 'AssignmentTaskDrivingTests',\n  //   lessonId: '1',\n  //   category: 'content_words',\n  //   title: 'Number words to 10',\n  //   thumbnailUrl:\n  //     'https://assets.static.readingeggs.com/activities/driving_test_quiz/images/drivingtest_blue-fp-ef8459b4.png',\n  // })\n\n  // db.createQuestGoal({\n  //   __typename: 'QuestGoalLesson',\n  //   lesson: 1,\n  //   status: QuestGoalStatusEnum.ShowCompleteAlert,\n  //   progressCurrent: 9,\n  //   progressTotal: 9,\n  //   rewardAmount: 20,\n  // })\n}\n\nconst scenarioName =\n  new URLSearchParams(window.location.search).get('scenario') ?? 'default'\n\nconst runtimeScenarios =\n  (typeof scenarioName === 'string' && scenarioName in scenarios\n    ? scenarios[scenarioName]\n    : []) ?? []\n\nexport const worker = setupWorker(...runtimeScenarios, ...handlers)\n\nexport type Worker = typeof worker\n","import { http, HttpResponse } from 'msw'\nimport type { RequestHandler } from 'msw'\nimport {\n  BadgeColourEnum,\n  CertificateColourEnum,\n  mockAcknowledgeQuestGoalAlertMutation,\n  mockBookQuery,\n  mockCreateReadingGoalsQuizResultMutation,\n  mockGetCertificatesQuery,\n  mockGetGamesQuery,\n  mockGetInitialAppDataQuery,\n  mockGetMyAwardsQuery,\n  mockGetPendingCertificateQuery,\n  mockGetPendingCertificateUploadUrlQuery,\n  mockGetPlazaPollsQuery,\n  mockGetReadingGoalsQuizRecordQuery,\n  mockGetReadingGoalsQuizzesQuery,\n  mockGetStudentCurrentTaskQuery,\n  mockGetStudentQuery,\n  mockGetStudentQuestQuery,\n  mockReadBooksQuery,\n  mockReadingActivitiesQuery,\n  mockRecommendedBooksQuery,\n  mockResetReadingLessonProgressMutation,\n  mockResetReadingMapQuizProgressMutation,\n  mockResetReadingPlacementTestProgressMutation,\n  mockSaveBookQuizResultMutation,\n  mockSaveCertificateMutation,\n  mockSaveReadingActivityLearningStateMutation,\n  mockSaveReadingLessonActivityResultMutation,\n  mockSaveReadingLessonPlacementTestResultMutation,\n  mockSaveReadingMapQuizResultMutation,\n  mockSaveSkillsQuizResultMutation,\n  mockSaveSpellingLessonActivityResultMutation,\n  mockSaveSpellingLessonQuizResultMutation,\n  mockSaveSpellingMapQuizResultMutation,\n  mockSaveSpellingLessonPlacementTestResultMutation,\n  mockSaveClinkerCastleLessonQuizResultMutation,\n  mockSaveDrivingTestQuizResultMutation,\n  mockStudentProgressQuery,\n  QuestGoalStatusEnum,\n  type PendingCertificateFragmentFragment,\n  mockSaveClinkerCastleLessonActivityResultMutation,\n  DrivingTestCategoryEnum,\n  mockSaveDrivingTestGameResultMutation,\n  mockGetStudentAskReggieQuery,\n  AskReggieAvailableActionEnum,\n  AskReggieUnavailableReasonEnum,\n  mockAskReggieAttemptLessonSkipMutation,\n  mockAskReggieLessonSkipAbortMutation,\n  mockAvatarUpdateMutation,\n  mockCapturePageViewMutation,\n  mockStudentProgressionSequenceMigrateMutation,\n  mockGetWorldDataQuery,\n  mockCreateStudentWorldInteractionMutation,\n  mockResetStudentWorldInteractionMutation,\n  mockSetStudentWorldAreaRevealPositionMutation,\n  mockResetStudentWorldAreaRevealPositionMutation,\n  mockCompleteStudentWorldOnboardingSectionMutation,\n  mockResetStudentWorldOnboardingMutation,\n  mockSaveGameScoreMutation,\n  mockPurchaseGamePlayMutation,\n} from 're-client/graphql/graphql'\nimport { db } from './db'\nimport config from 're-client/config/environment'\n\nexport const scenarios: Record<string, RequestHandler[]> = {\n  unauthenticated: [\n    http.get('/auth/session', () => {\n      return HttpResponse.json({\n        data: {},\n      })\n    }),\n    mockGetInitialAppDataQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: null,\n        },\n      })\n    }),\n    mockReadingActivitiesQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          readingActivities: db.getReadingActivities(),\n        },\n      })\n    }),\n  ],\n  default: [\n    mockGetInitialAppDataQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockGetStudentQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockReadingActivitiesQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          readingActivities: db.getReadingActivities(),\n        },\n      })\n    }),\n    mockGetGamesQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          games: db.getGames(),\n        },\n      })\n    }),\n    mockSaveGameScoreMutation(({ variables }) => {\n      const { gameId, score } = variables.input\n      const student = db.getStudent()\n\n      const game = db.saveGameScore(gameId, score, student?.name ?? 'You')\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          gameScoreSave: {\n            __typename: 'GameScoreSaveOutput',\n            game,\n          },\n        },\n      })\n    }),\n    mockPurchaseGamePlayMutation(() => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const GAME_PLAY_COST = 5\n\n      if (student.eggs < GAME_PLAY_COST) {\n        return HttpResponse.json({\n          data: {\n            __typename: 'Mutation',\n            gamePlayPurchase: {\n              __typename: 'GamePlayPurchaseInsufficientFunds',\n              student,\n            },\n          },\n        })\n      }\n\n      db.incrementStudentEggs(-GAME_PLAY_COST)\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          gamePlayPurchase: {\n            __typename: 'GamePlayPurchaseSuccess',\n            student: { ...student, eggs: student.eggs - GAME_PLAY_COST },\n          },\n        },\n      })\n    }),\n    mockStudentProgressQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockAvatarUpdateMutation(({ variables }) => {\n      db.updateDna(variables.input)\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          avatarUpdate: {\n            __typename: 'AvatarUpdateOutput',\n            student: db.getStudent(),\n          },\n        },\n      })\n    }),\n    mockStudentProgressionSequenceMigrateMutation(() => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({ data: null })\n      }\n\n      db.updateProgressionSequenceVersions({\n        currentVersion: student.targetProgressionSequenceVersion,\n      })\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          studentProgressionSequenceMigrate: {\n            __typename: 'StudentProgressionSequenceMigratePayload',\n            student,\n          },\n        },\n      })\n    }),\n    mockGetStudentQuestQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockGetStudentCurrentTaskQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockGetStudentAskReggieQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockGetPendingCertificateQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockGetCertificatesQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockGetMyAwardsQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockGetPendingCertificateQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockGetPlazaPollsQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          plazaPolls: db.getPlazaPolls(),\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockGetPendingCertificateUploadUrlQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          getPendingCertificate: db.getPendingCertificateUploadUrl(),\n        },\n      })\n    }),\n    mockCreateReadingGoalsQuizResultMutation(({ variables }) => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n      const { answers, quizId } = variables.input\n      const passed =\n        answers.filter((answer) => answer.correct).length / answers.length >=\n        0.85\n      const eggsReward = passed ? 10 : 0\n\n      student.eggs += eggsReward\n\n      db.createReadingGoalsQuizSummary({\n        attemptsThisWeek: 1,\n        eggsReward,\n        id: quizId,\n        passed,\n        secondsToPass: 0,\n        timestamp: new Date().toISOString(),\n      })\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          readingGoalsQuizResultCreate: {\n            __typename: 'ReadingGoalsQuizResultCreateOutput',\n            student,\n            readingGoalsQuizResult: {\n              __typename: 'ReadingGoalsQuizResult',\n              eggsReward,\n              passed,\n            },\n          },\n        },\n      })\n    }),\n    mockGetReadingGoalsQuizzesQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          readingGoalsQuizzes: db.getReadingGoalQuizzes(),\n        },\n      })\n    }),\n    mockAcknowledgeQuestGoalAlertMutation(({ variables }) => {\n      const goal = db.acknowledgeQuestGoal(variables.input.goalId)\n\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      if (goal) {\n        student.eggs += goal.rewardAmount\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          studentQuestGoalAcknowledgeComplete: {\n            __typename: 'StudentQuestGoalAcknowledgeCompletePayload',\n            student,\n          },\n        },\n      })\n    }),\n    mockGetReadingGoalsQuizRecordQuery(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: db.getStudent(),\n        },\n      })\n    }),\n    mockBookQuery(({ variables }) => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          book: db.getBook(variables.input.code) ?? null,\n        },\n      })\n    }),\n    mockReadBooksQuery(({ variables }) => {\n      const student = db.getStudent()\n      const start = variables.after ? Number(variables.after) : 0\n      const end = start + variables.first\n      const readBooks = db.getReadBooks()\n      const slicedReadBooks = readBooks.slice(start, end)\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: student && {\n            ...student,\n            __typename: 'Student',\n            readBooks: {\n              __typename: 'ReadBooksConnection',\n              edges: slicedReadBooks.map((node, i) => ({\n                __typename: 'ReadBooksEdge',\n                cursor: (start + i).toString(),\n                node,\n              })),\n              pageInfo: {\n                __typename: 'PageInfo',\n                hasNextPage: end < readBooks.length,\n                endCursor: end.toString(),\n              },\n            },\n          },\n        },\n      })\n    }),\n    mockRecommendedBooksQuery(() => {\n      const student = db.getStudent()\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: student && {\n            ...student,\n            recommendedBooks: db.getRecommendedBooks(),\n            readBooks: {\n              __typename: 'ReadBooksConnection',\n              totalCount: db.getReadBooks().length,\n            },\n          },\n        },\n      })\n    }),\n    mockSaveCertificateMutation(({ variables }) => {\n      const certificate = db.saveCertificate(variables.input)\n      const student = db.getStudent()\n\n      if (!student || !certificate) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          certificateSave: {\n            __typename: 'CertificateSavePayload',\n            student,\n            certificate,\n          },\n        },\n      })\n    }),\n    mockSaveSkillsQuizResultMutation(({ variables }) => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const { answers, assignment, lessonInPrecinct, askReggie } =\n        variables.input\n      const correctCount = answers.filter((answer) => answer.isCorrect).length\n      const passed = correctCount >= 8\n\n      /**\n       * For now these values are hardcoded here.\n       * We could create some quiz result records in the mirage db to enable us to react to multiple attempts like the real backend.\n       * But since the logic around attempts and auto passing is a bit complex this is good enough for now.\n       */\n      const attempt = 1\n      const autoPassed = false\n      const eggsEarned = passed ? 10 : 0\n\n      if (assignment) {\n        const { assignmentTaskId } = assignment\n\n        db.deleteAssignmentTask(assignmentTaskId.toFixed())\n      } else if (askReggie) {\n        if (passed) {\n          db.updateAskReggie({\n            __typename: 'AskReggieAvailable',\n            actions: [AskReggieAvailableActionEnum.SkipLesson],\n          })\n        } else {\n          db.updateAskReggie({\n            __typename: 'AskReggieUnavailable',\n            reason: AskReggieUnavailableReasonEnum.FailedSkipAttempt,\n          })\n        }\n      } else {\n        // Update quest goal progress\n        const questGoal = student.quest?.primaryGoal\n\n        if (questGoal?.__typename === 'QuestGoalLesson') {\n          questGoal.progressCurrent = questGoal.progressCurrent + 1\n        }\n      }\n\n      if (passed) {\n        // Update progress. In reality this would not happen if the student has already progressed further than this activity.\n        db.updateProgress((previous) => ({\n          ...previous,\n          lessons: {\n            ...previous.lessons,\n            currentActivity: previous.lessons.currentActivity + 1,\n          },\n        }))\n\n        // Lets work out the badges :)\n        const badgeColourScores = new Map([\n          [BadgeColourEnum.Bronze, 8],\n          [BadgeColourEnum.Silver, 9],\n          [BadgeColourEnum.Gold, 10],\n        ])\n\n        const bestPreviousBadge = db.findBadge(\n          (badge) => badge.lesson === lessonInPrecinct,\n        )\n        const bestPreviousBadgeColour = bestPreviousBadge?.colour\n\n        let bestPreviousScore = 0\n\n        if (bestPreviousBadgeColour) {\n          bestPreviousScore =\n            badgeColourScores.get(bestPreviousBadgeColour) ?? 0\n        }\n\n        // we only need to make a badge and update the student if the new score is better\n        if (correctCount > bestPreviousScore) {\n          let colour\n          for (const [badgeColor, score] of badgeColourScores) {\n            if (correctCount === score) {\n              colour = badgeColor\n            }\n          }\n\n          if (colour) {\n            db.createBadge({\n              colour,\n              lesson: lessonInPrecinct,\n            })\n          }\n        }\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          readingEndOfLessonQuizResultCreate: {\n            __typename: 'ReadingEndOfLessonQuizResultCreateOutput',\n            student,\n            readingEndOfLessonQuizResult: {\n              __typename: 'ReadingEndOfLessonQuizResult',\n              attempt,\n              autoPassed,\n              passed,\n              eggsEarned,\n              lessonInPrecinct,\n            },\n          },\n        },\n      })\n    }),\n    mockSaveReadingActivityLearningStateMutation(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          saveReadingActivityLearningState: {\n            __typename: 'SaveReadingActivityLearningStateOutput',\n            success: true,\n          },\n        },\n      })\n    }),\n    mockSaveReadingLessonActivityResultMutation(({ variables }) => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const { assignment, lessonInPrecinct, activityInLesson, askReggie } =\n        variables.input\n\n      if (assignment) {\n        const { assignmentTaskId } = assignment\n\n        db.deleteAssignmentTask(assignmentTaskId.toFixed())\n      } else if (askReggie) {\n        db.updateAskReggie({\n          __typename: 'AskReggieSkipLesson',\n          lesson: lessonInPrecinct,\n          activity: activityInLesson + 1,\n        })\n      } else {\n        // Update progress. In reality this would not happen if the student has already progressed further than this activity.\n        db.updateProgress((previous) => ({\n          ...previous,\n          lessons: {\n            ...previous.lessons,\n            currentActivity: previous.lessons.currentActivity + 1,\n          },\n        }))\n\n        const questGoal = student.quest?.primaryGoal\n\n        if (\n          questGoal?.__typename === 'QuestGoalLesson' &&\n          questGoal.lesson === lessonInPrecinct &&\n          questGoal.progressCurrent < activityInLesson\n        ) {\n          const status =\n            activityInLesson === questGoal.progressTotal\n              ? QuestGoalStatusEnum.ShowCompleteAlert\n              : QuestGoalStatusEnum.Incomplete\n          db.updateQuestGoal(questGoal, {\n            progressCurrent: activityInLesson,\n            status,\n          })\n        }\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          readingLessonActivityResultCreate: {\n            __typename: 'ReadingLessonActivityResultCreateOutput',\n            student,\n            readingLessonActivityResult: {\n              __typename: 'ReadingLessonActivityResult',\n              reward: {\n                __typename: 'ReadingLessonActivityReward',\n                eggs: 10,\n              },\n            },\n          },\n        },\n      })\n    }),\n    mockResetReadingLessonProgressMutation(({ variables }) => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const { lesson, activity } = variables.input\n\n      const progressInfoForLessons = config.studentProgress.progress\n      const { lessonsPerMap } = progressInfoForLessons.lessons\n      const mapNumber = Math.ceil(lesson / lessonsPerMap)\n\n      db.updateProgress((previous) => ({\n        ...previous,\n        lessons: {\n          ...previous.lessons,\n          currentActivity: activity,\n          currentLesson: lesson.toString(),\n          currentMap: mapNumber,\n          showPlacementTest: false,\n        },\n      }))\n\n      const questGoal = student.quest?.primaryGoal\n\n      if (questGoal) {\n        db.updateQuestGoal(questGoal, {\n          lesson: lesson,\n          progressCurrent: activity - 1,\n          progressTotal: 10,\n          rewardAmount: 20,\n          status: QuestGoalStatusEnum.Incomplete,\n          goalType: 'QuestGoalLesson',\n          __typename: 'QuestGoalLesson',\n        })\n      } else {\n        db.createQuestGoal({\n          lesson,\n          progressCurrent: activity - 1,\n          progressTotal: 10,\n          rewardAmount: 20,\n          status: QuestGoalStatusEnum.Incomplete,\n          __typename: 'QuestGoalLesson',\n        })\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          studentProgressReadingLessonReset: {\n            __typename: 'StudentProgressReadingLessonResetPayload',\n            student,\n          },\n        },\n      })\n    }),\n    mockResetReadingMapQuizProgressMutation(({ variables }) => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const { map } = variables.input\n\n      db.updateProgress((previous) => ({\n        ...previous,\n        lessons: {\n          ...previous.lessons,\n          currentActivity: 1,\n          currentLesson: 'quiz',\n          currentMap: map,\n          showPlacementTest: false,\n        },\n      }))\n\n      const questGoal = student.quest?.primaryGoal\n\n      if (questGoal) {\n        db.updateQuestGoal(questGoal, {\n          map,\n          progressCurrent: 0,\n          progressTotal: 1,\n          rewardAmount: 20,\n          status: QuestGoalStatusEnum.Incomplete,\n          goalType: 'QuestGoalMap',\n          __typename: 'QuestGoalMap',\n        })\n      } else {\n        db.createQuestGoal({\n          map,\n          progressCurrent: 0,\n          progressTotal: 1,\n          rewardAmount: 20,\n          status: QuestGoalStatusEnum.Incomplete,\n          __typename: 'QuestGoalMap',\n        })\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          studentProgressReadingMapQuizReset: {\n            __typename: 'StudentProgressReadingMapQuizResetPayload',\n            student,\n          },\n        },\n      })\n    }),\n    mockResetReadingPlacementTestProgressMutation(() => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      db.updateProgress((previous) => ({\n        ...previous,\n        lessons: {\n          ...previous.lessons,\n          currentActivity: 1,\n          currentLesson: '1',\n          currentMap: 1,\n          showPlacementTest: true,\n        },\n      }))\n\n      db.deleteQuest()\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          studentProgressReadingPlacementTestReset: {\n            __typename: 'StudentProgressReadingPlacementTestResetPayload',\n            student,\n          },\n        },\n      })\n    }),\n    mockSaveReadingLessonPlacementTestResultMutation(({ variables }) => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const {\n        lesson,\n        skippedTest: _skippedTest,\n        attemptUuid: _attemptUuid,\n      } = variables.input\n\n      const progressInfoForLessons = config.studentProgress.progress\n      const { lessonsPerMap } = progressInfoForLessons.lessons\n      const mapNumber = Math.ceil(lesson / lessonsPerMap)\n\n      db.updateProgress((previous) => ({\n        ...previous,\n        lessons: {\n          ...previous.lessons,\n          currentActivity: 1,\n          currentLesson: lesson.toString(),\n          currentMap: mapNumber,\n          showPlacementTest: false,\n        },\n      }))\n\n      const questGoal = student.quest?.primaryGoal\n\n      if (questGoal) {\n        db.updateQuestGoal(questGoal, {\n          lesson: lesson,\n          progressCurrent: 0,\n          progressTotal: 10,\n          rewardAmount: 20,\n          status: QuestGoalStatusEnum.Incomplete,\n          goalType: 'QuestGoalLesson',\n          __typename: 'QuestGoalLesson',\n        })\n      } else {\n        db.createQuestGoal({\n          lesson,\n          progressCurrent: 0,\n          progressTotal: 10,\n          rewardAmount: 20,\n          status: QuestGoalStatusEnum.Incomplete,\n          __typename: 'QuestGoalLesson',\n        })\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          readingLessonPlacementTestResultCreate: {\n            __typename: 'ReadingLessonPlacementTestResultCreateOutput',\n            student,\n          },\n        },\n      })\n    }),\n    mockSaveReadingMapQuizResultMutation(({ variables }) => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const { correctAnswers, quiz } = variables.input\n\n      const correctCount = correctAnswers.length\n\n      const pendingCertForScore: Record<\n        number,\n        Omit<\n          PendingCertificateFragmentFragment,\n          'id' | '__typename' | 'quizResultCreatedAt' | 'map'\n        >\n      > = {\n        11: { colour: CertificateColourEnum.Bronze, scorePercentage: 73 },\n        12: { colour: CertificateColourEnum.Silver, scorePercentage: 80 },\n        13: { colour: CertificateColourEnum.Silver, scorePercentage: 87 },\n        14: { colour: CertificateColourEnum.Gold, scorePercentage: 93 },\n        15: { colour: CertificateColourEnum.Gold, scorePercentage: 100 },\n      }\n\n      const pendingCertData = pendingCertForScore[correctCount]\n\n      if (pendingCertData) {\n        db.createPendingCertificate({\n          ...pendingCertData,\n          map: quiz,\n        })\n\n        const progressInfoForLessons = config.studentProgress.progress\n        const { lessonsPerMap } = progressInfoForLessons.lessons\n        const lesson = lessonsPerMap * quiz + 1\n        const map = quiz + 1\n\n        db.updateProgress((previous) => ({\n          ...previous,\n          lessons: {\n            ...previous.lessons,\n            currentActivity: 1,\n            currentLesson: lesson.toString(),\n            currentMap: map,\n            showPlacementTest: false,\n          },\n        }))\n\n        const questGoal = student.quest?.primaryGoal\n        if (\n          questGoal?.__typename === 'QuestGoalMap' &&\n          questGoal.map === quiz &&\n          questGoal.status === QuestGoalStatusEnum.Incomplete\n        ) {\n          db.updateQuestGoal(questGoal, {\n            progressCurrent: 1,\n            status: QuestGoalStatusEnum.ShowCompleteAlert,\n          })\n        }\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          readingMapQuizResultCreate: {\n            __typename: 'ReadingMapQuizResultCreateOutput',\n            student,\n          },\n        },\n      })\n    }),\n    mockSaveSpellingLessonActivityResultMutation(({ variables }) => {\n      const student = db.getStudent()\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n      const { assignment, activityInLesson } = variables.input\n      if (assignment) {\n        const { assignmentTaskId } = assignment\n        db.deleteAssignmentTask(assignmentTaskId.toFixed())\n      } else {\n        // Update progress. In reality this would not happen if the student has already progressed further than this activity.\n        db.updateProgress((previous) => ({\n          ...previous,\n          spelling: {\n            ...previous.spelling,\n            currentActivity: activityInLesson + 1,\n          },\n        }))\n      }\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          spellingLessonActivityResultCreate: {\n            __typename: 'SpellingLessonActivityResultCreateOutput',\n            student,\n            spellingLessonActivityResult: {\n              __typename: 'SpellingLessonActivityResult',\n              reward: {\n                __typename: 'SpellingLessonActivityReward',\n                eggs: 10,\n              },\n            },\n          },\n        },\n      })\n    }),\n    mockSaveSpellingLessonQuizResultMutation(({ variables }) => {\n      const student = db.getStudent()\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n      const { assignment, lesson, correctAnswers } = variables.input\n\n      const correctCount = correctAnswers.length\n\n      const passed = correctCount >= 8\n\n      let shop = passed\n\n      if (assignment) {\n        const { assignmentTaskId } = assignment\n        db.deleteAssignmentTask(assignmentTaskId.toFixed())\n        shop = false\n      } else {\n        // Update progress. In reality this would not happen if the student has already progressed further than this activity.\n        db.updateProgress((previous) => ({\n          ...previous,\n          spelling: {\n            ...previous.spelling,\n            currentLesson: (lesson + 1).toString(),\n            currentActivity: 1,\n          },\n        }))\n      }\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          spellingLessonQuizResultCreate: {\n            __typename: 'SpellingLessonQuizResultCreateOutput',\n            student,\n            spellingLessonQuizResult: {\n              __typename: 'SpellingLessonQuizResult',\n              passed,\n              reward: {\n                __typename: 'SpellingLessonQuizReward',\n                eggs: passed ? 10 : 0,\n                shop: shop,\n              },\n            },\n          },\n        },\n      })\n    }),\n    mockSaveSpellingMapQuizResultMutation(({ variables }) => {\n      const student = db.getStudent()\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const { quiz } = variables.input\n\n      const newLesson = quiz * 8 + 1\n\n      db.updateProgress((previous) => ({\n        ...previous,\n        spelling: {\n          ...previous.spelling,\n          currentLesson: newLesson.toString(),\n          currentActivity: 1,\n          currentMap: quiz + 1,\n        },\n      }))\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          spellingMapQuizResultCreate: {\n            __typename: 'SpellingMapQuizResultCreateOutput',\n            student,\n          },\n        },\n      })\n    }),\n    mockSaveSpellingLessonPlacementTestResultMutation(({ variables }) => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const {\n        lesson,\n        skippedTest: _skippedTest,\n        attemptUuid: _attemptUuid,\n      } = variables.input\n\n      const progressInfo = config.studentProgress.progress\n      const { lessonsPerMap } = progressInfo.spelling\n      const mapNumber = Math.ceil(lesson / lessonsPerMap)\n\n      db.updateProgress((previous) => ({\n        ...previous,\n        spelling: {\n          ...previous.spelling,\n          currentActivity: 1,\n          currentLesson: lesson.toString(),\n          currentMap: mapNumber,\n          showPlacementTest: false,\n        },\n      }))\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          spellingLessonPlacementTestResultCreate: {\n            __typename: 'SpellingLessonPlacementTestResultCreateOutput',\n            student,\n          },\n        },\n      })\n    }),\n    mockSaveBookQuizResultMutation(({ variables }) => {\n      const { correctCount, totalCount } = variables.input\n\n      const passed = correctCount / totalCount >= 0.8\n      const eggs = passed ? 10 : 0\n\n      if (passed) db.incrementStudentEggs(eggs)\n\n      const student = db.getStudent()\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          bookQuizResultCreate: {\n            __typename: 'BookQuizResultCreateOutput',\n            student,\n            bookQuizResult: {\n              __typename: 'BookQuizResult',\n              reward: {\n                __typename: 'BookQuizReward',\n                eggs,\n                milestone: false,\n                passed,\n              },\n            },\n          },\n        },\n      })\n    }),\n    mockSaveClinkerCastleLessonActivityResultMutation(({ variables }) => {\n      const eggs = 2\n\n      db.incrementStudentEggs(eggs)\n\n      const student = db.getStudent()\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const { assignment, activityInLesson } = variables.input\n      if (assignment) {\n        const { assignmentTaskId } = assignment\n        db.deleteAssignmentTask(assignmentTaskId.toFixed())\n      } else {\n        // Update progress. In reality this would not happen if the student has already progressed further than this activity.\n        db.updateProgress((previous) => ({\n          ...previous,\n          clinkerCastle: {\n            ...previous.clinkerCastle,\n            currentActivity: activityInLesson + 1,\n          },\n        }))\n      }\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          clinkerCastleLessonActivityResultCreate: {\n            __typename: 'ClinkerCastleLessonActivityResultCreateOutput',\n            student,\n            clinkerCastleLessonActivityResult: {\n              __typename: 'ClinkerCastleLessonActivityResult',\n              reward: {\n                __typename: 'ClinkerCastleLessonActivityReward',\n                eggs: 2,\n              },\n            },\n          },\n        },\n      })\n    }),\n    mockSaveClinkerCastleLessonQuizResultMutation(({ variables }) => {\n      const { assignment, lesson, correctAnswers } = variables.input\n\n      const correctCount = correctAnswers.length\n\n      const passed = correctCount >= 7\n\n      const eggs = 5\n\n      if (passed) db.incrementStudentEggs(eggs)\n\n      const student = db.getStudent()\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      if (assignment) {\n        const { assignmentTaskId } = assignment\n        db.deleteAssignmentTask(assignmentTaskId.toFixed())\n      } else {\n        // Update progress. In reality this would not happen if the student has already progressed further than this activity.\n        db.updateProgress((previous) => ({\n          ...previous,\n          clinkerCastle: {\n            ...previous.clinkerCastle,\n            currentLesson: lesson + 1,\n            currentActivity: 1,\n          },\n        }))\n      }\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          clinkerCastleLessonQuizResultCreate: {\n            __typename: 'ClinkerCastleLessonQuizResultCreateOutput',\n            student,\n            clinkerCastleLessonQuizResult: {\n              __typename: 'ClinkerCastleLessonQuizResult',\n              reward: {\n                __typename: 'ClinkerCastleLessonQuizReward',\n                eggs: passed ? 5 : 0,\n                prize: passed,\n              },\n            },\n          },\n        },\n      })\n    }),\n    mockSaveDrivingTestQuizResultMutation(({ variables }) => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const { category, quizPosition, assignment } = variables.input\n\n      let passed = false\n      const incorrectAnswers = variables.input.incorrectAnswers as unknown\n\n      if (\n        incorrectAnswers &&\n        typeof incorrectAnswers === 'object' &&\n        Object.keys(incorrectAnswers).length === 0\n      ) {\n        passed = true\n      }\n\n      if (passed) {\n        if (assignment) {\n          const { assignmentTaskId } = assignment\n          db.deleteAssignmentTask(assignmentTaskId.toFixed())\n        } else {\n          db.updateProgress((previous) => ({\n            ...previous,\n            drivingTests: {\n              ...previous.drivingTests,\n              sightWords:\n                category === DrivingTestCategoryEnum.SightWords.toLowerCase()\n                  ? quizPosition + 1\n                  : previous.drivingTests.sightWords,\n              contentWords:\n                category === DrivingTestCategoryEnum.ContentWords.toLowerCase()\n                  ? quizPosition + 1\n                  : previous.drivingTests.contentWords,\n              lettersAndSounds:\n                category ===\n                DrivingTestCategoryEnum.LettersAndSounds.toLowerCase()\n                  ? quizPosition + 1\n                  : previous.drivingTests.lettersAndSounds,\n            },\n          }))\n        }\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          drivingTestQuizResultCreate: {\n            __typename: 'DrivingTestQuizResultCreateOutput',\n            student,\n          },\n        },\n      })\n    }),\n    mockSaveDrivingTestGameResultMutation(({ variables }) => {\n      const { eggs } = variables.input\n\n      db.incrementStudentEggs(eggs)\n\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          drivingTestGameResultCreate: {\n            __typename: 'DrivingTestGameResultCreateOutput',\n            student,\n          },\n        },\n      })\n    }),\n    mockAskReggieAttemptLessonSkipMutation(({ variables }) => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      const { lesson } = variables.input\n\n      db.updateAskReggie({\n        __typename: 'AskReggieSkipLesson',\n        lesson,\n        activity: 7,\n      })\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          askReggieAttemptLessonSkip: {\n            __typename: 'AskReggieAttemptLessonSkipPayload',\n            student,\n          },\n        },\n      })\n    }),\n    mockAskReggieLessonSkipAbortMutation(() => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      db.updateAskReggie({\n        __typename: 'AskReggieAvailable',\n        actions: [AskReggieAvailableActionEnum.SkipLesson],\n      })\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          askReggieLessonSkipAbort: {\n            __typename: 'AskReggieLessonSkipAbortPayload',\n            student,\n          },\n        },\n      })\n    }),\n    mockCapturePageViewMutation(() => {\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          capturePageView: {\n            __typename: 'CapturePageViewOutput',\n            success: true,\n          },\n        },\n      })\n    }),\n    mockGetWorldDataQuery(({ variables }) => {\n      const student = db.getStudent()\n\n      if (!student) {\n        return HttpResponse.json({\n          data: null,\n        })\n      }\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Query',\n          student: {\n            __typename: 'Student',\n            id: student.id,\n            previousWorldsOnboarding: db.getWorldOnboardingSections(),\n            world: db.getWorldData(Number(variables.worldId)),\n          },\n        },\n      })\n    }),\n    mockCreateStudentWorldInteractionMutation(({ variables }) => {\n      const { worldId, interactionId } = variables.input\n\n      db.createWorldInteraction(Number(worldId), interactionId)\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          studentWorldInteractionCreate: {\n            __typename: 'StudentWorldInteractionCreateOutput',\n            world: db.getWorldData(Number(worldId)),\n          },\n        },\n      })\n    }),\n    mockResetStudentWorldInteractionMutation(({ variables }) => {\n      const { worldId } = variables.input\n\n      db.resetWorldInteractions(Number(worldId))\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          studentWorldInteractionReset: {\n            __typename: 'StudentWorldInteractionResetOutput',\n            world: db.getWorldData(Number(worldId)),\n          },\n        },\n      })\n    }),\n    mockSetStudentWorldAreaRevealPositionMutation(({ variables }) => {\n      const { worldId, areaRevealPosition } = variables.input\n\n      db.setWorldAreaRevealPosition(Number(worldId), areaRevealPosition)\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          studentWorldAreaRevealPositionSet: {\n            __typename: 'StudentWorldAreaRevealPositionSetOutput',\n            world: db.getWorldData(Number(worldId)),\n          },\n        },\n      })\n    }),\n    mockResetStudentWorldAreaRevealPositionMutation(({ variables }) => {\n      const { worldId } = variables.input\n\n      db.resetWorldAreaRevealPosition(Number(worldId))\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          studentWorldAreaRevealPositionReset: {\n            __typename: 'StudentWorldAreaRevealPositionResetOutput',\n            world: db.getWorldData(Number(worldId)),\n          },\n        },\n      })\n    }),\n    mockCompleteStudentWorldOnboardingSectionMutation(({ variables }) => {\n      const { section } = variables.input\n      const student = db.getStudent()\n\n      db.completeWorldOnboardingSection(section)\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          studentWorldOnboardingSectionComplete: {\n            __typename: 'StudentWorldOnboardingSectionCompleteOutput',\n            student: {\n              __typename: 'Student',\n              id: student?.id ?? '1',\n              previousWorldsOnboarding: db.getWorldOnboardingSections(),\n            },\n          },\n        },\n      })\n    }),\n    mockResetStudentWorldOnboardingMutation(() => {\n      const student = db.getStudent()\n\n      db.resetWorldOnboardingSections()\n\n      return HttpResponse.json({\n        data: {\n          __typename: 'Mutation',\n          studentWorldOnboardingReset: {\n            __typename: 'StudentWorldOnboardingResetOutput',\n            student: {\n              __typename: 'Student',\n              id: student?.id ?? '1',\n              previousWorldsOnboarding: db.getWorldOnboardingSections(),\n            },\n          },\n        },\n      })\n    }),\n  ],\n}\n","import { setupWorker } from 'msw/browser'\nimport { ofrepHandlers, metricsCollectorHandlers } from './handlers'\n\nexport const worker = setupWorker(\n  ...ofrepHandlers(),\n  ...metricsCollectorHandlers(),\n)\n\nexport type Worker = typeof worker\n","import Model, { attr } from '@ember-data/model'\nimport toJSON from 're-client/utils/to-json'\nimport type { ToJSONOptions } from 're-client/utils/to-json'\n\nexport default class BookCoverModel extends Model {\n  @attr('string')\n  declare coverUrl: string\n\n  @attr('string')\n  declare accent: string\n\n  override toJSON(options?: ToJSONOptions): Record<string, unknown> {\n    return toJSON(this, options)\n  }\n}\n\ndeclare module 'ember-data/types/registries/model' {\n  export default interface ModelRegistry {\n    'book-cover': BookCoverModel\n  }\n}\n","import Model, { hasMany } from '@ember-data/model'\nimport type { SyncHasMany } from '@ember-data/model'\nimport type BookCoverModel from 're-client/models/book-cover'\nimport toJSON from 're-client/utils/to-json'\nimport type { ToJSONOptions } from 're-client/utils/to-json'\n\nexport default class BookshelfModel extends Model {\n  @hasMany('book-cover', { async: false, inverse: null })\n  declare bookCovers: SyncHasMany<BookCoverModel>\n\n  override toJSON(options?: ToJSONOptions): Record<string, unknown> {\n    return toJSON(this, options)\n  }\n}\n\ndeclare module 'ember-data/types/registries/model' {\n  export default interface ModelRegistry {\n    bookshelf: BookshelfModel\n  }\n}\n","import Model, { attr } from '@ember-data/model'\nimport toJSON from 're-client/utils/to-json'\nimport type { ToJSONOptions } from 're-client/utils/to-json'\n\n/**\n * Ember Data model which represents a shop item. Some items are simple images where other can\n * have complex animation which are usually achieved through dragonbones animations\n * For more information please consult the content team.\n *\n * @class ItemModel\n *\n * @property {String} code - unique item code like head_43\n * @property {String} state - tbd\n * @property {String} department - can be something like head, or arms\n * @property {String} animationJson - bones js for the caper activity\n * @property {String} animationUrl - sprite map image url needed for caper activity\n * @property {String} free - indicates if an item is free of change eg awarded as a gift\n * @property {StudentModel} - hasOne relationship to the StudentModel\n */\nexport default class ItemModel extends Model {\n  @attr('string')\n  declare aisle: string | null\n\n  @attr('string')\n  declare code: string\n\n  @attr('string')\n  declare state: string\n\n  @attr('string')\n  declare department: string\n\n  @attr('string')\n  declare animationJson: string\n\n  @attr('string')\n  declare animationUrl: string\n\n  @attr('string')\n  declare imageUrl: string\n\n  @attr('string')\n  declare free: string\n\n  override toJSON(options?: ToJSONOptions): Record<string, unknown> {\n    return toJSON(this, options)\n  }\n}\n\ndeclare module 'ember-data/types/registries/model' {\n  export default interface ModelRegistry {\n    item: ItemModel\n  }\n}\n","import Model, { attr } from '@ember-data/model'\nimport toJSON from 're-client/utils/to-json'\nimport type { ToJSONOptions } from 're-client/utils/to-json'\n\nexport default class PuzzleScoreModel extends Model {\n  @attr('string')\n  declare puzzleName: string\n\n  @attr('number')\n  declare score: number\n\n  override toJSON(options?: ToJSONOptions): Record<string, unknown> {\n    return toJSON(this, options)\n  }\n}\n\ndeclare module 'ember-data/types/registries/model' {\n  export default interface ModelRegistry {\n    'puzzle-score': PuzzleScoreModel\n  }\n}\n","import { modifier } from 'ember-modifier'\nimport { assert, runInDebug } from '@ember/debug'\n\n/**\n * Modifier which calls a listener function when a `LOAD_COMPLETE` event is fired by a caper activity.\n */\nexport default modifier(function caperLoadComplete(\n  _element,\n  [listener]: [EventListener],\n  _named,\n) {\n  assert('listener must be a function', typeof listener === 'function')\n\n  const handleLoadComplete = (e: Event) => {\n    runInDebug(() => {\n      console.debug(\n        `%ccaper-load-complete-modifier clearing loading screen`,\n        'color: red; font-size: 1.1rem',\n      )\n    })\n\n    listener(e)\n  }\n\n  document.addEventListener('LOAD_COMPLETE', handleLoadComplete, false)\n\n  return () => {\n    document.removeEventListener('LOAD_COMPLETE', handleLoadComplete, false)\n  }\n})\n","import { assert } from '@ember/debug'\nimport { modifier } from 'ember-modifier'\nimport fitty from 'fitty'\nimport type { FittyOptions } from 'fitty'\n\ninterface FitTextSignature {\n  Args: {\n    Named: FittyOptions\n  }\n  Element: Element\n}\n\nexport default modifier<FitTextSignature>(function fitText(element, _, named) {\n  assert('element must be a HTMLElement', element instanceof HTMLElement)\n  const fit = fitty(element, named)\n\n  return () => {\n    fit.unsubscribe()\n  }\n})\n","import { registerDestructor } from '@ember/destroyable'\nimport type Owner from '@ember/owner'\nimport { service } from '@ember/service'\nimport Modifier, { type ArgsFor, type PositionalArgs } from 'ember-modifier'\nimport { gsap, Sine, Linear } from 'gsap'\nimport MotionPathPlugin from 'gsap/MotionPathPlugin'\nimport type ActivitySidebarService from 're-client/services/activity-sidebar'\nimport type SoundsService from 're-client/services/sounds'\n\ninterface FlyingEggsAnimationSignature {\n  Element: HTMLElement\n  Args: {\n    Positional: [eggsToAward: number[] | undefined]\n  }\n}\n\nfunction cleanup(instance: FlyingEggsAnimationModifier) {\n  instance.timeline.kill()\n}\n\nexport default class FlyingEggsAnimationModifier extends Modifier<FlyingEggsAnimationSignature> {\n  @service\n  declare activitySidebar: ActivitySidebarService\n\n  @service\n  declare sounds: SoundsService\n\n  element: HTMLElement | null = null\n\n  canvasElement: HTMLElement | null = null\n\n  timeline = gsap\n    .timeline({\n      paused: true,\n      onComplete: () => {\n        this.activitySidebar.close()\n      },\n    })\n    .set(\n      '.flying-points',\n      {\n        left: () => this.startPositionLeft,\n        top: () => this.startPositionTop,\n        autoAlpha: 1,\n        height: 30,\n        position: 'absolute',\n        scale: 1,\n        width: 25,\n        zIndex: 2,\n      },\n      0.5,\n    )\n    .to(\n      '.flying-points',\n      {\n        keyframes: [\n          {\n            duration: 1,\n            motionPath: () => {\n              const finalPoint = this.getFlightPath()\n              return [\n                { x: 0, y: 0 },\n                { x: 0, y: finalPoint.y / 2 },\n                { x: finalPoint.x / 2, y: finalPoint.y },\n                finalPoint,\n              ]\n            },\n            rotation: -360,\n            ease: Sine.easeInOut,\n            onComplete: () => {\n              this.sounds.play('chaching')\n            },\n          },\n          {\n            duration: 0.25,\n            scale: 1.5,\n            autoAlpha: 0.25,\n            ease: Linear.easeNone,\n          },\n          {\n            duration: 0.25,\n            scale: 0,\n            autoAlpha: 0,\n            ease: Linear.easeNone,\n          },\n        ],\n        stagger: {\n          each: 0.2,\n          onComplete: () => {\n            this.activitySidebar.incrementPoints()\n          },\n        },\n      },\n      0.5,\n    )\n\n  timelineHideEggs = gsap\n    .timeline({\n      paused: true,\n      onComplete: () => {\n        this.activitySidebar.close()\n      },\n    })\n    .to(\n      '.flying-points',\n      {\n        stagger: {\n          each: 0.2,\n          onComplete: () => {\n            this.activitySidebar.incrementPoints()\n          },\n        },\n      },\n      0.5,\n    )\n\n  constructor(owner: Owner, args: ArgsFor<FlyingEggsAnimationSignature>) {\n    super(owner, args)\n\n    registerDestructor(this, cleanup)\n  }\n\n  get startPositionLeft() {\n    let left = 0\n\n    if (this.canvasElement) {\n      left = this.canvasElement.offsetWidth / 2\n    }\n\n    return left\n  }\n\n  get startPositionTop() {\n    let top = 0\n\n    if (this.canvasElement) {\n      top = this.canvasElement.offsetHeight / 2\n    }\n\n    return top\n  }\n\n  override modify(\n    element: FlyingEggsAnimationSignature['Element'],\n    [eggsToIncrement]: PositionalArgs<FlyingEggsAnimationSignature>,\n  ) {\n    cleanup(this)\n\n    this.element = element\n    this.canvasElement = document.querySelector('canvas')\n\n    if (eggsToIncrement && eggsToIncrement.length > 0) {\n      if (this.activitySidebar.flyingEggs) {\n        this.timeline.restart()\n      } else {\n        this.timelineHideEggs.restart()\n      }\n    }\n  }\n\n  getFlightPath(): gsap.Point2D {\n    let path = { x: 0, y: 0 }\n\n    if (this.canvasElement && this.element) {\n      path = MotionPathPlugin.getRelativePosition(\n        this.canvasElement,\n        this.element,\n        [0.5, 0.5],\n        [0, -1],\n      )\n    }\n\n    return path\n  }\n}\n","import { modifier } from 'ember-modifier'\nimport { bindAll } from 'bind-event-listener'\nimport gsap from 'gsap'\n\ninterface HoverWiggleSignature {\n  Element: HTMLElement\n  Args: {\n    Positional: [\n      /** Animates the selector element, or the element itself */\n      selector?: string | undefined,\n    ]\n  }\n}\n\nfunction wiggleFocus(element: Element, selector?: string, scale = 1.05) {\n  let target: Element = element\n\n  if (selector) {\n    target = element.querySelector(selector) ?? target\n  }\n\n  // slight wiggle by running 2 tweens of different length\n  gsap.to(target, { duration: 1, scaleX: scale, ease: 'elastic.out' })\n  gsap.to(target, {\n    duration: 1.5,\n    scaleY: scale,\n    ease: 'elastic.out',\n  })\n}\n\nfunction wiggleBlur(element: Element, selector?: string) {\n  let target: Element = element\n\n  if (selector) {\n    target = element.querySelector(selector) ?? target\n  }\n\n  gsap.to(target, { duration: 2, scale: 1, ease: 'elastic.out' })\n}\n\nexport default modifier<HoverWiggleSignature>(\n  function hoverWiggle(element, positional) {\n    if (element instanceof HTMLButtonElement && element.disabled) {\n      return\n    }\n\n    const [selector] = positional\n\n    return bindAll(element, [\n      {\n        type: 'focus',\n        listener() {\n          wiggleFocus(element, selector)\n        },\n      },\n      {\n        type: 'blur',\n        listener() {\n          wiggleBlur(element, selector)\n        },\n      },\n      {\n        type: 'mouseenter',\n        listener() {\n          wiggleFocus(element, selector)\n        },\n      },\n      {\n        type: 'mouseleave',\n        listener() {\n          wiggleBlur(element, selector)\n        },\n      },\n    ])\n  },\n)\n","import { assert } from '@ember/debug'\nimport { modifier } from 'ember-modifier'\n\ninterface LoadingSpinnerModifierNamedArgs {\n  size?: number\n}\n\n/**\n * A modifier to add a loading spinner on an image element until the image is fully loaded.\n * For best results, the image's parent element should have the following styles:\n * ``` css\n *  display: flex;\n *  align-items: center;\n *  justify-content: center;\n * ```\n * Example usage:\n * ```hbs\n * <img {{loading-spinner size=50}} src=\"path/to/your/image.jpg\" alt=\"Descriptive text for the image\" />\n * ```\n */\nexport default modifier<\n  HTMLImageElement,\n  never,\n  LoadingSpinnerModifierNamedArgs\n>(function loadingSpinner(element, _params, { size = 36 }) {\n  assert(\n    'element must be an HTMLImageElement',\n    element instanceof HTMLImageElement,\n  )\n  assert('element must have a parent', element.parentElement)\n  element.style.visibility = 'hidden'\n\n  const spinner = document.createElement('div')\n  spinner.style.fontSize = `${(size / 5.2).toString()}px`\n  spinner.style.position = 'absolute'\n  spinner.classList.add('loading-spinner')\n\n  element.parentElement.style.position = 'relative'\n  element.parentElement.appendChild(spinner)\n\n  // Show spinner until the image is loaded\n  element.onload = () => {\n    element.style.visibility = 'visible'\n    spinner.remove()\n  }\n\n  // If the image is already cached by the browser\n  if (element.complete) {\n    element.style.visibility = 'visible'\n    spinner.remove()\n  }\n})\n","import { modifier } from 'ember-modifier'\nimport gsap from 'gsap'\n\ninterface NavBannerAnimationSignature {\n  Element: HTMLElement\n  Args: {\n    Named: object\n    Positional: []\n  }\n}\n\nexport default modifier<NavBannerAnimationSignature>(\n  function navBannerAnimation(element /*, positional, named*/) {\n    positionElement(element)\n    const popoutTimeline = popOutAnimation(element)\n\n    return () => {\n      popoutTimeline.kill()\n    }\n  },\n)\n\n/**\n * Let Tweenmax do the positioning of the is element. There is no need for this to be\n * a computed property as we never change its position\n */\nfunction positionElement(element: HTMLElement) {\n  const x = -300\n  const y = -150\n  gsap.set(element, { left: x, top: y })\n}\n\n/**\n * This animation pops in the the theme banner and animates it along a curve\n * to its final position near the top of the screen.\n * Ideally this should be an svg.\n */\nfunction popOutAnimation(element: HTMLElement) {\n  const timeline = gsap.timeline({ paused: true })\n\n  // we can use fixed values as this will be scaled on a higher level\n  const data = [\n    { x: -150, y: -150 },\n    { x: 250, y: 400 },\n    { x: 650, y: 200 },\n    { x: 837, y: 160 },\n  ]\n\n  timeline.set(element, { scale: 0.4 })\n  timeline.from(element, {\n    duration: 1,\n    opacity: 0,\n    ease: 'elastic.out',\n  })\n  timeline.to(\n    element,\n    {\n      duration: 2,\n      motionPath: { path: data, type: 'cubic' },\n      rotation: 370,\n      ease: 'power4.easeOut',\n    },\n    2,\n  )\n\n  timeline.play(0)\n  return timeline\n}\n","import { modifier } from 'ember-modifier'\nimport gsap from 'gsap'\n\ninterface NavShopAnimationSignature {\n  Element: HTMLElement\n}\n\nexport default modifier<NavShopAnimationSignature>(\n  function navShopAnimation(element) {\n    const image = element.querySelector('svg')\n\n    const timeline = gsap\n      .timeline({ delay: 5 })\n      .to(image, {\n        duration: 1,\n        transformOrigin: '50% 100%',\n        y: 0,\n        scaleX: 1.2,\n        scaleY: 1.1,\n        ease: 'elastic.in',\n        repeat: 10,\n        yoyo: true,\n      })\n      .to(image, {\n        duration: 1,\n        scaleX: 1,\n        scaleY: 1,\n        ease: 'elastic.out',\n      })\n\n    return () => {\n      timeline.kill()\n    }\n  },\n)\n","import type Owner from '@ember/owner'\nimport { service } from '@ember/service'\nimport { bind } from 'bind-event-listener'\nimport Modifier, { type ArgsFor, type PositionalArgs } from 'ember-modifier'\nimport { registerDestructor } from '@ember/destroyable'\nimport type SoundsService from 're-client/services/sounds'\n\ninterface PlaySoundOnSignature {\n  Element: HTMLButtonElement\n  Args: {\n    Positional: [on: string, sound: string]\n  }\n}\n\nfunction cleanup(instance: PlaySoundOnModifier) {\n  instance.unbind()\n}\n\nexport default class PlaySoundOnModifier extends Modifier<PlaySoundOnSignature> {\n  @service\n  declare sounds: SoundsService\n\n  unbind = () => {}\n\n  constructor(owner: Owner, args: ArgsFor<PlaySoundOnSignature>) {\n    super(owner, args)\n    registerDestructor(this, cleanup)\n  }\n\n  override modify(\n    element: PlaySoundOnSignature['Element'],\n    [on, sound]: PositionalArgs<PlaySoundOnSignature>,\n  ) {\n    cleanup(this)\n\n    this.unbind = bind(element, {\n      type: on,\n      listener: () => {\n        this.sounds.play(sound)\n      },\n    })\n  }\n}\n","import { modifier } from 'ember-modifier'\nimport gsap from 'gsap'\n\ninterface ReggieLoopAnimationSignature {\n  Element: Element\n}\n\nexport default modifier<ReggieLoopAnimationSignature>(\n  function reggieLoopAnimation(element) {\n    const loop = gsap.timeline({\n      repeat: -1,\n    })\n\n    const [first, second] = element.children\n\n    if (first && second) {\n      gsap.set(second, { autoAlpha: 0, height: '85%' })\n\n      loop\n        .add(shrink(first), '+=5')\n        .add(fadeOut(first), '<')\n        .add(expand(second), '<')\n        .add(fadeIn(second), '<')\n        .add(shrink(second), '+=5')\n        .add(fadeOut(second), '<')\n        .add(expand(first), '<')\n        .add(fadeIn(first), '<')\n    }\n\n    return () => {\n      loop.kill()\n    }\n  },\n)\n\nfunction fadeIn(element: Element) {\n  return gsap.to(element, {\n    autoAlpha: 1,\n    duration: 0.2,\n  })\n}\n\nfunction fadeOut(element: Element) {\n  return gsap.to(element, {\n    autoAlpha: 0,\n    duration: 0.2,\n  })\n}\n\nfunction shrink(element: Element) {\n  return gsap.to(element, {\n    height: '85%',\n    duration: 1,\n    ease: 'elastic.out',\n  })\n}\n\nfunction expand(element: Element) {\n  return gsap.to(element, {\n    height: '100%',\n    duration: 1,\n    ease: 'elastic.out',\n  })\n}\n","import { modifier } from 'ember-modifier'\nimport { runInDebug } from '@ember/debug'\n\n/**\n * Modifier which removes the initial loading screen (the one provided by the rails app) from the DOM\n */\nexport default modifier(() => {\n  const initialLoadingScreen = document.getElementById('initial-loading-screen')\n  if (initialLoadingScreen?.parentNode) {\n    runInDebug(() => {\n      console.debug(\n        `%c[remove-initial-loading-screen modifier] removing #initial-loading-screen`,\n        'color: red; font-size: 1.1rem',\n      )\n    })\n    initialLoadingScreen.style.opacity = '0'\n    setTimeout(() => {\n      if (initialLoadingScreen.parentNode) {\n        initialLoadingScreen.parentNode.removeChild(initialLoadingScreen)\n      }\n    }, 300)\n  }\n\n  // TODO: once re-student has been updated with the new loading screen (#initial-loading-screen) this can be removed.\n  const svgContainer = document.getElementById('loading-svg')\n  if (svgContainer?.parentNode) {\n    runInDebug(() => {\n      console.debug(\n        `%c[remove-initial-loading-screen modifier] removing #loading-svg`,\n        'color: red; font-size: 1.1rem',\n      )\n    })\n    svgContainer.parentNode.removeChild(svgContainer)\n  }\n})\n","import type Transition from '@ember/routing/transition'\nimport { service } from '@ember/service'\nimport Modifier, { type PositionalArgs } from 'ember-modifier'\nimport type OfflineScreenService from 're-client/services/offline-screen'\n\ninterface ShowOfflineScreenSignature {\n  Element: HTMLElement\n  Args: {\n    Positional: [isOnline: boolean, transition: Transition | null]\n  }\n}\n\n/**\n * Modifier which determines whether to display the offline screen when the network status or transition changes\n *\n * @param {HTMLElement} element\n * @param {boolean} isOnline - true for online false for offline\n * @param {Transition} transition - set in the routerHandler method\n */\nexport default class ShowOfflineScreenModifier extends Modifier<ShowOfflineScreenSignature> {\n  @service\n  declare offlineScreen: OfflineScreenService\n\n  triggeredTimes = 0\n\n  override modify(\n    _element: ShowOfflineScreenSignature['Element'],\n    [isOnline, transition]: PositionalArgs<ShowOfflineScreenSignature>,\n  ) {\n    this.triggeredTimes++\n\n    const isFinishedTransition = transition !== null\n    const isOffline = !isOnline\n    // if the online state becomes offline after the transition has finished and is still loading assets\n    // then we can set the offlineScreen service to go offline which will show the offline template\n    // upon restoration of the connectivity the page will refresh on the very same page.\n    // make sure that the onlineCalled won't be set to true on 1st run (component render)\n    if (isOffline && isFinishedTransition && this.triggeredTimes > 1) {\n      this.offlineScreen.display()\n    }\n  }\n}\n","/* eslint-disable ember/no-jquery */\nimport { assert } from '@ember/debug'\nimport { modifier } from 'ember-modifier'\nimport $ from 'jquery'\n\nexport default modifier(function sidebarActivityListScroll(\n  element,\n  [currentActivityId]: [number],\n) {\n  scrollToItem(currentActivityId, element)\n\n  const scrollUp = () => {\n    scrollToItem(itemClosestToCenterOfList(element) - 1, element)\n  }\n  const scrollDown = () => {\n    scrollToItem(itemClosestToCenterOfList(element) + 1, element)\n  }\n\n  document.addEventListener('activity-sidebar-up', scrollUp)\n  document.addEventListener('activity-sidebar-down', scrollDown)\n\n  return () => {\n    document.removeEventListener('activity-sidebar-up', scrollUp)\n    document.removeEventListener('activity-sidebar-down', scrollDown)\n  }\n})\n\nfunction outerHeightWithMargin(element: Element) {\n  const height = element.getBoundingClientRect().height\n  const style = getComputedStyle(element)\n  const margin = parseFloat(style.marginTop) + parseFloat(style.marginBottom)\n\n  return height + margin\n}\n\nfunction scrollToItem(id: number, element: Element) {\n  const list = $(element).find('ul')\n  list.stop()\n  const listHeight = list.height()\n  const item = element.querySelector(`[data-item=\"${id.toString()}\"]`)\n\n  if (!item || !listHeight) return\n  const itemHeight = outerHeightWithMargin(item)\n  const offset = Math.max((id - 1) * itemHeight, 0)\n  const scrollTop = offset - listHeight / 2 + itemHeight / 2\n\n  list.animate({ scrollTop }, 400) // TODO: find a replacement for jQuery animate!\n}\n\nfunction itemClosestToCenterOfList(element: Element): number {\n  const listItems = element.querySelectorAll('ul li')\n  const listRect = element\n    .querySelector('ul')\n    ?.parentElement?.getBoundingClientRect()\n\n  assert('list must exist', listRect)\n  assert('list must contain items', listItems[0])\n\n  const itemHeight = Math.round(listItems[0].getBoundingClientRect().height)\n\n  const listHeight = listRect.height\n\n  const centerOfList = Math.round(listHeight / 2 + listRect.top)\n\n  const padding = 10\n\n  const topOfRange = centerOfList - itemHeight - padding\n  const bottomOfRange = centerOfList + itemHeight + padding\n\n  const centerItem = [...listItems].find((item) => {\n    const rect = item.getBoundingClientRect()\n    const top = Math.round(rect.top)\n    const bottom = Math.round(rect.bottom)\n\n    return top >= topOfRange && bottom <= bottomOfRange\n  })\n\n  if (!centerItem) throw new Error('cant find center item')\n  const itemId = centerItem.attributes.getNamedItem('data-item')?.value\n  if (!itemId) throw new Error('item missing data-item attribute')\n  return parseInt(itemId, 10)\n}\n","import { service } from '@ember/service'\nimport Modifier, { type PositionalArgs } from 'ember-modifier'\nimport type OfflineScreenService from 're-client/services/offline-screen'\n\ninterface UpdateOnlineCalledSignature {\n  Element: HTMLElement\n  Args: {\n    Positional: [isOnline: boolean]\n  }\n}\n\n/**\n * This modifier uses the network service to listen to changes of the network status.\n * @param {HTMLElement} element\n * @param {boolean} isOnline\n */\nexport default class UpdateOnlineCalledModifier extends Modifier<UpdateOnlineCalledSignature> {\n  @service\n  declare offlineScreen: OfflineScreenService\n\n  triggeredTimes = 0\n\n  override modify(\n    _element: UpdateOnlineCalledSignature['Element'],\n    [isOnline]: PositionalArgs<UpdateOnlineCalledSignature>,\n  ) {\n    this.triggeredTimes++\n\n    // make sure that the onlineCalled won't be set to true on 1st run (component render)\n    if (isOnline && this.triggeredTimes > 1)\n      this.offlineScreen.onlineCalled = true\n  }\n}\n","import { bind } from 'bind-event-listener'\nimport { modifier } from 'ember-modifier'\n\ninterface WindowResizeSignature {\n  Element: HTMLElement\n  Args: {\n    Positional: [callback: (element: HTMLElement) => void]\n  }\n}\n\nexport default modifier<WindowResizeSignature>(function windowResize(\n  element,\n  [callback],\n) {\n  const debounced = debounce(callback)\n\n  debounced(element)\n\n  const unbind = bind(window, {\n    type: 'resize',\n    listener() {\n      debounced(element)\n    },\n  })\n\n  return () => {\n    debounced.cancel()\n    unbind()\n  }\n})\n\nfunction debounce<T extends (...args: never[]) => void>(callback: T) {\n  let timeout: number | undefined\n\n  function cancel() {\n    if (typeof timeout === 'number') {\n      window.cancelAnimationFrame(timeout)\n    }\n    timeout = undefined\n  }\n\n  const debounced = (...args: Parameters<T>) => {\n    cancel()\n\n    timeout = window.requestAnimationFrame(() => {\n      callback(...args)\n    })\n  }\n\n  return Object.assign(debounced, { cancel })\n}\n","import type { OperationVariables, WatchFragmentOptions } from '@apollo/client'\nimport type { Unmasked } from '@apollo/client/masking'\nimport { cell, resource, use } from 'ember-resources'\n\nfunction Fragment<TFragmentData = unknown, TVariables = OperationVariables>(\n  options: () => WatchFragmentOptions<TFragmentData, TVariables>,\n) {\n  return resource(({ owner, on }) => {\n    const apollo = owner.lookup('service:apollo')\n    const watchOptions = options()\n    const { from, fragment } = watchOptions\n    const query = apollo.watchFragment(watchOptions)\n\n    const currentResult = cell<Unmasked<TFragmentData> | undefined>()\n\n    // Find the id of the object to read the initial fragment data\n    const id = typeof from === 'string' ? from : apollo.cache.identify(from)\n\n    if (id) {\n      // Attempt to read the initial fragment data from the cache\n      const initialResult = apollo.cache.readFragment({\n        id,\n        fragment: fragment,\n      })\n\n      if (initialResult) {\n        // If there is initial data, set the current result\n        currentResult.set(initialResult)\n      }\n    }\n\n    const subscription = query.subscribe((result) => {\n      if (result.complete) {\n        currentResult.set(result.data as Unmasked<TFragmentData>)\n      }\n    })\n\n    on.cleanup(() => {\n      subscription.unsubscribe()\n    })\n\n    return currentResult\n  })\n}\n\n/**\n * Watches the cache for changes to the provided frament.\n *\n * @returns a resource that will update with the latest fragment data.\n */\nexport function useFragment<\n  TFragmentData = unknown,\n  TVariables = OperationVariables,\n>(\n  parent: object,\n  options: () => WatchFragmentOptions<TVariables, TFragmentData>,\n) {\n  return use(parent, Fragment(options))\n}\n","import type {\n  ApolloCache,\n  BaseMutationOptions,\n  DefaultContext,\n  DocumentNode,\n  MutationOptions,\n  OperationVariables,\n  TypedDocumentNode,\n} from '@apollo/client'\nimport { cell, resource, use } from 'ember-resources'\nimport type { Reactive } from 'ember-resources'\n\nexport interface MutationResult<\n  TData = unknown,\n  TVariables = OperationVariables,\n  TContext = DefaultContext,\n  TCache extends ApolloCache<unknown> = ApolloCache<unknown>,\n> {\n  result: TData | undefined\n  mutate(\n    // eslint-disable-next-line @typescript-eslint/no-deprecated\n    options: BaseMutationOptions<TData, TVariables, TContext, TCache>,\n  ): Promise<TData | null | undefined>\n}\n\nfunction Mutation<\n  TData = unknown,\n  TVariables = OperationVariables,\n  TContext = DefaultContext,\n  TCache extends ApolloCache<unknown> = ApolloCache<unknown>,\n>(\n  mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n): MutationResult<TData, TVariables, TContext, TCache> {\n  return resource(({ owner }) => {\n    const apollo = owner.lookup('service:apollo')\n    const result = cell<TData | undefined>()\n\n    return () => ({\n      result: result.current,\n      async mutate(options) {\n        const clientOptions = { ...options, mutation } as MutationOptions<TData>\n        const mutateResult = await apollo.mutate(clientOptions)\n\n        if (mutateResult.data) {\n          result.set(mutateResult.data)\n        }\n\n        return mutateResult.data\n      },\n    })\n  })\n}\n\n/**\n * A resource that can perform the provided mutation.\n *\n * @returns a resource that will update with the latest mutation result,\n * and a method to perform the mutation.\n */\nexport function useMutation<TData = unknown, TVariables = OperationVariables>(\n  parent: object,\n  mutation: DocumentNode | TypedDocumentNode<TData, TVariables>,\n): Reactive<MutationResult<TData, TVariables>> {\n  return use(parent, Mutation(mutation))\n}\n","import type {\n  ApolloQueryResult,\n  OperationVariables,\n  WatchQueryOptions,\n} from '@apollo/client'\nimport type { Unmasked } from '@apollo/client/masking'\nimport { cell, resource, use } from 'ember-resources'\n\nexport interface WatchQuery<TData, TVariables> {\n  data: TData | undefined\n  refetch(): Promise<ApolloQueryResult<TData>>\n  result(): Promise<ApolloQueryResult<TData>>\n  updateQuery(\n    mapFn: (\n      previousQueryResult: Unmasked<TData>,\n      options: {\n        variables?: TVariables\n      },\n    ) => Unmasked<TData>,\n  ): void\n}\n\nfunction Query<\n  T = unknown,\n  TVariables extends OperationVariables = OperationVariables,\n>(options: () => WatchQueryOptions<TVariables, T>): WatchQuery<T, TVariables> {\n  return resource(({ owner, on }) => {\n    const apollo = owner.lookup('service:apollo')\n\n    const currentResult = cell<T | undefined>()\n    const query = apollo.watchQuery(options())\n\n    const subscription = query.subscribe((result) => {\n      if (!result.partial) {\n        currentResult.set(result.data)\n      }\n    })\n\n    on.cleanup(() => {\n      subscription.unsubscribe()\n    })\n\n    return () => ({\n      data: currentResult.current,\n      refetch() {\n        return query.refetch()\n      },\n      result() {\n        // eslint-disable-next-line @typescript-eslint/no-deprecated\n        return query.result()\n      },\n      updateQuery(mapFn) {\n        query.updateQuery(mapFn)\n      },\n    })\n  })\n}\n\n/**\n * Watches the cache for changes to the provided query.\n *\n * @returns a resource that will update with the latest query data,\n * and methods to refetch or update the query.\n */\nexport function useQuery<\n  T = unknown,\n  TVariables extends OperationVariables = OperationVariables,\n>(parent: object, options: () => WatchQueryOptions<TVariables, T>) {\n  return use(parent, Query(options))\n}\n","import EmberRouter from '@ember/routing/router'\nimport config from 're-client/config/environment'\n\nexport default class Router extends EmberRouter {\n  override location = config.locationType\n\n  override rootURL = config.rootURL\n}\n\nRouter.map(function () {\n  this.route('application-error')\n  this.route('unauthorised')\n\n  this.route('login')\n  this.route('logout')\n\n  this.route('spelling', function () {\n    this.route('game', { path: 'game/:game_id' })\n    this.route('lesson', { path: 'lesson/:lesson_id' }, function () {\n      this.route('activity', { path: '/:activity_id' })\n    })\n    this.route('map', { path: 'map/:map_id' }, function () {\n      this.route('quiz')\n    })\n    this.route('placement-test')\n    this.route('finished-re-spelling', { path: 'finished-spelling' })\n    this.route('mystery-gift')\n  })\n\n  this.route('lessons', function () {\n    this.route('game', { path: 'game/:game_id' })\n    this.route('lesson', { path: 'lesson/:lesson_id' }, function () {\n      this.route('activity', { path: '/:activity_id' })\n    })\n    this.route('map', { path: 'map/:map_id' }, function () {\n      this.route('quiz')\n      this.route('next')\n    })\n    this.route('certificate')\n    this.route('placement-test')\n    this.route('finished-re-lessons', { path: 'finished-lessons' })\n  })\n\n  this.route('storylands', function () {\n    this.route('lesson', { path: 'lesson/:lesson_id' }, function () {\n      this.route('activity', { path: '/:activity_id' })\n    })\n    this.route('map', { path: 'map/:map_id' })\n    this.route('finished-re-storylands', { path: 'finished-storylands' })\n    this.route('bonus-game', { path: 'game/:game_id' })\n  })\n\n  this.route('house')\n  this.route('awards')\n  this.route('plaza')\n  this.route('shop', function () {\n    this.route('department', { path: ':department' }, function () {\n      this.route('catalogue')\n    })\n  })\n\n  this.route('songs', function () {\n    this.route('video', { path: '/:video_id' })\n  })\n\n  this.route('puzzles', function () {\n    this.route('puzzle', { path: '/:puzzle_id' })\n  })\n\n  this.route('critters', function () {\n    this.route('critter', { path: '/:critter_id' })\n  })\n\n  this.route('play', function () {\n    this.route('activity', { path: '/*path' })\n  })\n\n  this.route('reader', function () {\n    this.route('book', { path: '/:book_id' }, function () {\n      this.route('page', { path: '/:page' })\n    })\n    this.route('result', { path: '/result/:result_id' })\n  })\n  this.route('story-factory', function () {\n    this.route('showroom')\n    this.route('floor')\n  })\n\n  this.route('games', function () {\n    this.route('game', { path: '/:game_id' })\n  })\n\n  this.route('my-program')\n\n  this.route('bookcase')\n  this.route('bookshelf')\n  this.route('changing-room')\n  this.route('driving-tests', function () {\n    this.route('quiz', { path: ':type/:quiz_id' })\n    this.route('racing-game')\n  })\n\n  this.route('sample', function () {\n    this.route('lesson', { path: 'lesson/:lesson_id' }, function () {\n      this.route('activity', { path: '/:activity_id' })\n      // backwards compatible route if we ever want to redirect v1\n      this.route('activity', { path: 'activity/:activity_id' })\n    })\n  })\n\n  this.route('no-access', { path: '/no-access/:access_type' })\n  this.route('catch-all-routes', { path: '/*' })\n  this.route('my-reading-goals', function () {\n    this.route('quiz', { path: '/quiz/:quiz_id' })\n    this.route('milestones')\n  })\n  this.route('recommended')\n\n  this.route('worlds', function () {\n    this.route('world', { path: '/:world_id' }, function () {\n      this.route('games-area', function () {\n        this.route('game', { path: '/:game' })\n      })\n      this.route('home-base', function () {\n        this.route('awards')\n        this.route('changing-room')\n        this.route('shop', function () {\n          this.route('catalogue')\n        })\n      })\n      this.route('map', function () {})\n      this.route('map-quiz')\n      this.route('certificate')\n      this.route('music-area')\n      this.route('book-area', function () {\n        this.route('reader', { path: '/reader/:book' })\n      })\n      this.route('activity-area', function () {\n        this.route('activity', { path: '/:activity_id/:letter' })\n      })\n      this.route('lessons', function () {\n        this.route('lesson', { path: 'lesson/:lesson_id' }, function () {\n          this.route('activity', { path: '/:activity_id' })\n        })\n      })\n    })\n  })\n})\n","import Route from '@ember/routing/route'\nimport type { RouteInfoWithAttributes } from '@ember/routing/route-info'\nimport type Transition from '@ember/routing/transition'\nimport { inject as service } from '@ember/service'\nimport { action } from '@ember/object'\nimport type MetricsService from 'ember-metrics'\nimport {\n  isErrorRepresentingNetworkError,\n  isAuthorizationError,\n} from 're-client/utils/errors'\nimport { runInDebug } from '@ember/debug'\nimport { isApolloError } from '@apollo/client/core'\nimport { graphql } from 're-client/graphql'\nimport type ApolloService from 're-client/services/apollo'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type { Log } from '@blakeelearning/log'\nimport config from 're-client/config/environment'\nimport type ThemeService from 're-client/services/theme'\nimport type RouterService from '@ember/routing/router-service'\nimport type Refresher from '@blakeelearning/app-refresher/refresher/service'\nimport type OfflineScreenService from 're-client/services/offline-screen'\nimport type UserService from 're-client/services/user'\nimport type SessionService from 're-client/services/session'\nimport type ReleaseChecker from '@blakeelearning/app-refresher/release-checker/service'\nimport type LongSessionKiller from '@blakeelearning/app-refresher/long-session-killer/service'\nimport type SessionTracker from '@blakeelearning/app-refresher/session-tracker/service'\nimport type TimeOnTaskService from 're-client/services/time-on-task'\nimport type DeviceDetection from '@blakeelearning/device/device/detection/service'\nimport type ActivityService from 're-client/services/activity'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type DebugModeService from 're-client/services/debug-mode'\nimport type DeviceNetwork from '@blakeelearning/device/device/network/service'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type QuestService from 're-client/services/quest'\nimport { bind } from 'bind-event-listener'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type JesterLoaderService from 're-client/services/jester-loader'\nimport type AskReggieService from 're-client/services/ask-reggie'\nimport type PosthogService from 're-client/services/posthog'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport { v4 as uuidV4 } from 'uuid'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\n\ndeclare global {\n  interface Window {\n    CAPER_FEATURES?: string[]\n    CAPER_MUSIC_ENABLED?: boolean | undefined\n    environment?: string\n  }\n}\n\ninterface Params {\n  qaMonth?: string\n}\n\nconst initialAppQueryDocument = graphql(/* GraphQL */ `\n  query GetInitialAppData {\n    student {\n      ...StudentUserFragment\n      ...AssignmentTask\n      ...StudentProgressFragment\n      ...StudentQuestDataFragment\n      ...StudentAskReggieDataFragment\n    }\n  }\n  query ReadingActivities {\n    readingActivities {\n      ...ReadingActivityFragment\n    }\n  }\n`)\n\nfunction isGuestSession(transition: Transition) {\n  return transition.targetName?.match(/^sample\\.lesson/)\n}\n\nconst uncheckedRoutes = ['login', 'logout', 'unauthorised', 'application-error']\n\n/**\n * Routes that a student restricted to the Worlds curriculum can still reach\n * even though they sit outside the `worlds` route namespace.\n */\nconst worldsRestrictionExemptRoutes = ['lessons.placement-test']\n\n/**\n * The application router makes sure the session is loaded before sub-routes\n * are able to do things, so they and their controllers can all assume that a\n * session with a student model property will always exist.\n */\nexport default class ApplicationRoute extends Route<void, Params> {\n  override queryParams = { qaMonth: { as: 'qa_month', refreshModel: true } }\n\n  qaMonth = null\n\n  @service\n  declare apollo: ApolloService\n\n  @service\n  declare log: Log\n\n  @service\n  declare theme: ThemeService\n\n  @service\n  declare metrics: MetricsService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare refresher: Refresher\n\n  @service\n  declare offlineScreen: OfflineScreenService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare session: SessionService\n\n  @service\n  declare releaseChecker: ReleaseChecker\n\n  @service\n  declare longSessionKiller: LongSessionKiller\n\n  @service\n  declare sessionTracker: SessionTracker\n\n  @service\n  declare timeOnTask: TimeOnTaskService\n\n  @service('device/detection')\n  declare deviceDetection: DeviceDetection\n\n  @service\n  declare activity: ActivityService\n\n  @service\n  declare features: FeatureService\n\n  @service\n  declare debugMode: DebugModeService\n\n  @service('device/network')\n  declare network: DeviceNetwork\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  @service\n  declare assignments: AssignmentsService\n\n  @service\n  declare quest: QuestService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare jesterLoader: JesterLoaderService\n\n  @service\n  declare askReggie: AskReggieService\n\n  @service\n  declare posthog: PosthogService\n\n  @service\n  declare studentMetrics: StudentMetricsService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare learningWorlds: LearningWorldsService\n\n  removePinchToZoom = () => {}\n  removeVisibilityTracking = () => {}\n\n  constructor(properties: Record<string, unknown>) {\n    super(properties)\n\n    this.removeVisibilityTracking =\n      this.studentMetrics.setupVisibilityTracking()\n\n    this.router.on('routeWillChange', (transition) => {\n      this._showLoadingScreen(transition)\n    })\n\n    this.router.on('routeDidChange', (transition) => {\n      this._refreshAndTrack(transition)\n      this._hideLoadingScreen(transition)\n    })\n\n    if (this.deviceDetection.isIos) {\n      this.removePinchToZoom = bind(document, {\n        type: 'touchmove',\n        listener(event) {\n          if ('scale' in event && event.scale !== 1) {\n            event.preventDefault()\n          }\n        },\n        options: { passive: false },\n      })\n    }\n  }\n\n  override willDestroy() {\n    this.removePinchToZoom()\n    this.removeVisibilityTracking()\n  }\n\n  _showLoadingScreen(transition: Transition) {\n    const metadata = transition.to?.metadata\n    let optOutLoadingScreen = false\n\n    if (\n      typeof metadata === 'object' &&\n      metadata !== null &&\n      'optOutLoadingScreen' in metadata &&\n      typeof metadata.optOutLoadingScreen === 'boolean'\n    ) {\n      optOutLoadingScreen = metadata.optOutLoadingScreen\n    }\n\n    // Show the loading screen for all routes except those that specifically opt out or if debug mode is enabled\n    if (optOutLoadingScreen || this.debugMode.enabled) return\n    this.loadingUi.show()\n  }\n\n  _hideLoadingScreen(transition: Transition) {\n    if (\n      transition.to?.parent?.name === transition.from?.parent?.name &&\n      transition.to?.parent?.name === 'shop.department'\n    ) {\n      runInDebug(() => {\n        console.debug(\n          `%c transitioning between shop departments, hiding loading screen.`,\n          'color: red; font-size: 1.1rem',\n        )\n      })\n      this.loadingUi.hide()\n      return\n    }\n\n    const metadata = transition.to?.metadata\n    let optOutLoadingScreen = false\n\n    if (\n      typeof metadata === 'object' &&\n      metadata !== null &&\n      'optOutLoadingScreen' in metadata &&\n      typeof metadata.optOutLoadingScreen === 'boolean'\n    ) {\n      optOutLoadingScreen = metadata.optOutLoadingScreen\n    }\n\n    // Early return to avoid traversing the list of routeInfos when the loading screen shoudn't be enabled, hiding it anyway just in case.\n    if (optOutLoadingScreen || this.debugMode.enabled) {\n      this.loadingUi.hide()\n      return\n    }\n\n    // Search the list of `routeInfo` objects from the top down using `find()` for a resolved model containing an `interactiveConfig` to determine if the loading screen should be hidden later once the content interactive is done loading. For Caper a `LOAD_COMPLETE` event is fired which we catch in the `caper-load-complete` modifer. For Jester, we setup a `readyForUserInput` action on the controller.\n    const shouldWaitForContentInteractiveToLoad = transition.to?.find(\n      (routeInfo) => {\n        let willHideLoadingScreenManually = false\n\n        if (\n          typeof routeInfo.metadata === 'object' &&\n          routeInfo.metadata !== null &&\n          'willHideLoadingScreenManually' in routeInfo.metadata &&\n          typeof routeInfo.metadata.willHideLoadingScreenManually === 'boolean'\n        ) {\n          willHideLoadingScreenManually =\n            routeInfo.metadata.willHideLoadingScreenManually\n        }\n\n        if (willHideLoadingScreenManually) return true\n        const resolvedModel = (routeInfo as RouteInfoWithAttributes).attributes\n        if (!resolvedModel || typeof resolvedModel !== 'object') return false\n        runInDebug(() => {\n          if ('interactiveConfig' in resolvedModel) {\n            console.debug(\n              '%cFound \"interactiveConfig\" in model for %s route. Loading screen should be hidden when content is ready.',\n              'color: red; font-size: 1.1rem',\n              transition.to?.name,\n            )\n          }\n        })\n        return 'interactiveConfig' in resolvedModel\n      },\n    )\n    // Don't hide the loading screen if we should wait for content to finish loading.\n    if (shouldWaitForContentInteractiveToLoad) return\n\n    this.loadingUi.hide()\n  }\n\n  override async beforeModel(transition: Transition) {\n    if (transition.to?.name && uncheckedRoutes.includes(transition.to.name))\n      return\n\n    if (isGuestSession(transition)) {\n      await this.user.asGuest()\n      this._setCaperMusicToggle(!this.user.student.backgroundMusicDisabled)\n    } else {\n      /**\n       * This query combines all the data we need to setup the session, activities,\n       * student-progress and assignment services which are initialized in the following Promise.all().\n       * By running this query first we populate the apollo cache with all the data\n       * in a single http request. The queries within in each service will then just hit the cache.\n       */\n      await this.apollo.query({ query: initialAppQueryDocument })\n      await this.user.setup()\n      await this.studentProgress.setup()\n\n      await Promise.all([\n        this.activity.setup(),\n        this.assignments.setup(),\n        this.quest.setup(),\n        this.askReggie.setup(),\n      ])\n\n      this.releaseChecker.start()\n      this.longSessionKiller.start()\n      this.sessionTracker.start(this.user.student.remoteId)\n      this._setCaperMusicToggle(!this.user.student.backgroundMusicDisabled)\n\n      // TODO: This is a temporary fix for caper driving test showing cheat keys\n      if (!this.features.isEnabled('debug-allowed')) {\n        window.environment = 'production'\n      }\n\n      if (this.features.isEnabled('re_time-on-task-v2')) {\n        this.timeOnTask.setupV2()\n      }\n\n      this.posthog.setup()\n    }\n\n    this._addCaperFeatures()\n\n    // ESM can be enabled either in config or via a feature flag\n    const isEsmPreferred = this.features.isEnabled(\n      're_caper-esm',\n      config.contentLoader.caper.isEsmPreferred ?? false,\n    )\n\n    this.caperLoader.setup({ accent: this.user.accent, isEsmPreferred })\n    this.jesterLoader.setAccent(this.user.accent)\n  }\n\n  override model(params: Params) {\n    const qaMonth = Number(params.qaMonth)\n    const date = new Date()\n\n    if (!isNaN(qaMonth)) {\n      date.setMonth(qaMonth)\n    }\n\n    this.theme.setDate(date)\n  }\n\n  override async afterModel(_model: unknown, transition: Transition) {\n    if (\n      isGuestSession(transition) ||\n      transition.to?.name === 'login' ||\n      transition.to?.name === 'logout' ||\n      transition.to?.name === 'unauthorised'\n    ) {\n      return\n    }\n\n    if (this._redirectIfRestrictedToWorlds(transition)) return\n\n    await this.assignments.checkTransition(transition)\n  }\n\n  /**\n   * Students restricted to the Worlds curriculum (learningWorldsEnabled and\n   * not yet past the final world) may only navigate within the `worlds`\n   * route tree, plus a small allow-list of routes still reachable from\n   * within Worlds itself (e.g. the placement test). Anywhere else redirects\n   * back to their current world.\n   */\n  _redirectIfRestrictedToWorlds(transition: Transition): boolean {\n    const routeName = transition.to?.name\n    if (!routeName) return false\n    if (uncheckedRoutes.includes(routeName)) return false\n    if (worldsRestrictionExemptRoutes.includes(routeName)) return false\n    if (routeName === 'worlds' || routeName.startsWith('worlds.')) return false\n\n    // Check learningWorldsEnabled before touching studentProgress - for guest\n    // sessions (and transitions that fire before the student has loaded)\n    // studentProgress.lessonsCurrentMap would throw. user.learningWorldsEnabled\n    // is a non-throwing getter that defaults to false in both cases.\n    if (!this.user.learningWorldsEnabled) return false\n    if (\n      this.studentProgress.lessonsCurrentMap > this.learningWorlds.finalWorld\n    ) {\n      return false\n    }\n\n    this.router.replaceWith(\n      'worlds.world',\n      this.studentProgress.lessonsCurrentMap,\n    )\n    return true\n  }\n\n  async _capturePageView(transition: Transition) {\n    if (!this.router.currentURL) return\n\n    let contentType = 'html'\n\n    transition.to?.find((routeInfo) => {\n      const resolvedModel = (routeInfo as RouteInfoWithAttributes).attributes\n      if (!resolvedModel || typeof resolvedModel !== 'object') return false\n\n      if ('interactiveConfig' in resolvedModel) {\n        contentType = 'caper'\n        return true\n      }\n\n      if ('manifests' in resolvedModel) {\n        contentType = 'jester'\n        return true\n      }\n\n      return false\n    })\n\n    const path = this.router.currentURL.split('?')[0] ?? ''\n\n    await this.studentMetrics.capturePageView({\n      contentType,\n      id: uuidV4(),\n      path,\n    })\n  }\n\n  _refreshAndTrack(transition: Transition) {\n    // We never want to refresh the page when we are offline - if we do so the app\n    // will disappear and the browser offline screen is shown.\n    // todo unfortunately safari (ios) has some timing issues and it can happen\n    //      that the internet is gone but the offline event is not fired yet, which\n    //      leads the following code to refresh which puts us in a state where the ios app is gone\n    //      with no refresh button sight.\n    if (this.network.status.isOffline) return\n    const willRefresh = this.refresher.refreshIfSafeAndScheduled(\n      this.router.currentRouteName,\n    )\n    if (!willRefresh) this._trackPage(transition)\n  }\n\n  _trackPage(transition: Transition) {\n    const page = this.router.currentURL\n    const title = this.router.currentRouteName || 'unknown'\n\n    this.metrics.trackPage({ page, title })\n    this.timeOnTask\n      .pingTaskByRoute(this.router.currentRouteName)\n      .catch((reason: unknown) => {\n        this.log.error(reason as Error)\n      })\n\n    if (this.features.isEnabled('re_posthog-capture-pageviews')) {\n      this.posthog.capture('$pageview')\n    }\n\n    void this._capturePageView(transition)\n  }\n\n  @action\n  override willTransition(transition: Transition) {\n    if (transition.to?.name && uncheckedRoutes.includes(transition.to.name))\n      return\n    if (this._redirectIfRestrictedToWorlds(transition)) return\n    void this.assignments.checkTransition(transition)\n  }\n\n  // Route error handlers are called synchronously so cannot return a promise\n  // which also means we can't use async/await\n  @action\n  override error(error: unknown, transition: Transition) {\n    // check if the network is down\n    if (\n      this.network.status.isOffline ||\n      isErrorRepresentingNetworkError(error)\n    ) {\n      // We can assume that the when an abort errors happens that we are offline\n      // we cant really rely on events being fired timely, in safari for instance the offline\n      // event is emitted delayed by 1 - 2 seconds. We do this here as the error action is executed\n      // because the user has performed action which created an error. When we receive errors like\n      // AdapterAbort errors then the application is broken at this point, and there are 2 ways to recover from that.\n      // 1. if we are back online do a refresh of the page / url stays the same\n      // 2. somehow transition to the same route and reload all model hooks.\n      //\n      // this solution simply reloads for now.\n      this.offlineScreen.display()\n\n      // return false wont trigger the error screen to be rendered, the offline-screen component\n      // will show instead once the 2 conditions are met. (component is rendered on the layout template)\n      // 1. this.offlineScreen.display()  is called\n      // 2. the network offline event was fired. (this can be delayed)\n      //\n      // in case the network drops when the application route first loaded we want the application error\n      // template to load. We can check the current transition if we have from location and if its null we know\n      // that this is the initial load and therefor render the application-error template.\n      return transition.from === null\n    }\n\n    if (isAuthorizationError(error)) {\n      if (transition.from) {\n        // transition user to the unauthorised error page\n        this.router.replaceWith('unauthorised')\n      } else {\n        // transition user to login on if this is the initial load\n        this.session.signIn()\n      }\n\n      return false\n    }\n\n    // Do not log Apollo errors as they are already logged by the Apollo client\n    // eslint-disable-next-line @typescript-eslint/no-deprecated\n    if (!isApolloError(error as Error)) {\n      this.log.error(error as Error)\n    }\n\n    return true\n  }\n\n  _addCaperFeatures() {\n    const client = this.features.getClient()\n    const { payload: flagNames } = client.getObjectValue<{ payload: string[] }>(\n      're_caper-flag-names',\n      { payload: [] },\n    )\n\n    const features = new Set<string>()\n\n    flagNames.forEach((flagName) => {\n      if (this.features.isEnabled(flagName)) {\n        features.add(flagName)\n\n        // Special case to support legacy flag name\n        if (flagName === 're_video-ui-update') {\n          features.add('video_ui_update')\n        }\n      }\n    })\n\n    window.CAPER_FEATURES = [...features]\n  }\n\n  /**\n   * Caper will check this global variable to determine if it should play music.\n   */\n  _setCaperMusicToggle(value: boolean) {\n    window.CAPER_MUSIC_ENABLED = value\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type ApolloService from 're-client/services/apollo'\nimport { graphql } from 're-client/graphql'\nimport type { DocumentType } from 're-client/graphql'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type RouterService from '@ember/routing/router-service'\nimport { NotAuthenticatedError } from 're-client/utils/errors'\n\nexport const StudentMyAwardsFragment = graphql(/* GraphQL */ `\n  fragment StudentMyAwardsFragment on Student {\n    id\n    badges {\n      id\n      lesson\n      colour\n    }\n    certificates {\n      id\n      createdAt\n      map\n      url\n      colour\n    }\n    pendingCertificate {\n      id\n      map\n    }\n    ...StudentProgressFragment\n  }\n`)\n\nexport const getMyAwardsQueryDocument = graphql(/* GraphQL */ `\n  query GetMyAwards {\n    student {\n      ...StudentMyAwardsFragment\n    }\n  }\n`)\n\ntype StudentMyAwards = DocumentType<typeof StudentMyAwardsFragment>\n\ninterface Variables {\n  badges: StudentMyAwards['badges'] | undefined\n  certificates: StudentMyAwards['certificates'] | undefined\n  currentMap: number | undefined\n  pendingCertificate: StudentMyAwards['pendingCertificate'] | undefined\n  maxMap: number\n}\n\ninterface ModelForRoute {\n  variables: Variables\n  manifests: string[][]\n}\n\nexport default class AwardsRoute extends Route {\n  @service declare apollo: ApolloService\n\n  @service declare user: UserService\n\n  @service declare features: FeatureService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare router: RouterService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model(): Promise<ModelForRoute> {\n    const {\n      data: { student },\n    } = await this.apollo.query({\n      query: getMyAwardsQueryDocument,\n      fetchPolicy: 'no-cache',\n    })\n\n    if (!student) {\n      throw new NotAuthenticatedError(\n        'null student returned from GetMyAwards query',\n      )\n    }\n\n    const manifests = [['index', 'my-awards']]\n\n    return {\n      variables: {\n        badges: student.badges,\n        certificates: student.certificates,\n        currentMap: student.progress.lessons.currentMap,\n        pendingCertificate: student.pendingCertificate,\n        maxMap: this.studentProgress.lessonsLastMap,\n      },\n      manifests,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\n\nexport default class BookcaseRoute extends Route {\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model() {\n    const supportingAssets = [\n      this.caperLoader.storyFactoryAssetRequest('current'),\n      this.caperLoader.storyFactoryAssetRequest('previous'),\n      this.caperLoader.storyFactoryAssetRequest('voting'),\n      this.caperLoader.storyFactoryEntriesRequest(),\n    ]\n\n    const variables = { student: this.user.student }\n\n    const storyFactoryBookCaseUrl = this.urlMaker.urlForInteractive(\n      'story-factory',\n      'bookcase',\n    )\n    const manifests = [storyFactoryBookCaseUrl, ...supportingAssets]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport { graphql } from 're-client/graphql'\nimport type ApolloService from 're-client/services/apollo'\n\nconst ReadBooksQueryDocument = graphql(/* GraphQL */ `\n  query ReadBooks($first: Int!, $after: String) {\n    student {\n      id\n      readBooks(first: $first, after: $after) {\n        edges {\n          node {\n            code\n            coverUrl\n          }\n        }\n        pageInfo {\n          hasNextPage\n          endCursor\n        }\n      }\n    }\n  }\n`)\n\ninterface Book {\n  code: string\n  coverUrl: string\n}\n\ninterface BookshelfModel {\n  bookPages: AsyncGenerator<{ books: Book[]; hasNextPage: boolean }>\n}\n\nexport default class BookshelfRoute extends Route<BookshelfModel> {\n  @service\n  declare apollo: ApolloService\n\n  override model() {\n    const bookPages = this.bookPages()\n    return { bookPages }\n  }\n\n  async *bookPages(first = 10) {\n    // First page\n    let result = await this.apollo.query({\n      query: ReadBooksQueryDocument,\n      variables: {\n        first,\n      },\n      fetchPolicy: 'network-only',\n    })\n\n    while (result.data.student?.readBooks.pageInfo.endCursor) {\n      const {\n        edges,\n        pageInfo: { endCursor, hasNextPage },\n      } = result.data.student.readBooks\n\n      const books =\n        edges\n          ?.map((edge) => edge?.node)\n          .filter((book) => !!book)\n          .map((book) => ({\n            ...book,\n            coverUrl: book.coverUrl + '?width=104',\n          })) ?? []\n\n      yield { books, hasNextPage }\n\n      if (!hasNextPage) break\n\n      // Next page\n      result = await this.apollo.query({\n        query: ReadBooksQueryDocument,\n        variables: {\n          first,\n          after: endCursor,\n        },\n        fetchPolicy: 'network-only',\n      })\n    }\n  }\n}\n","import { service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class CatchAllRoutesRoute extends Route {\n  @service\n  declare router: RouterService\n\n  override redirect() {\n    void this.router.replaceWith('index')\n  }\n}\n","import { inject as service } from '@ember/service'\nimport type Store from '@ember-data/store'\nimport Route from '@ember/routing/route'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\n\nexport default class ChangingRoomRoute extends Route {\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare store: Store\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model() {\n    const items = await this.store.findAll('item', { reload: true })\n    const studentItemsEmberArray = items.map((item) =>\n      item.getProperties(\n        'aisle',\n        'code',\n        'department',\n        'state',\n        'imageUrl',\n        'animationUrl',\n        'animationJson',\n        'id',\n      ),\n    )\n    const studentItems = [...studentItemsEmberArray]\n    const student = {\n      name: this.user.student.name,\n      dna: { ...this.user.student.dna },\n    }\n    const variables = {\n      student,\n      studentItems,\n    }\n\n    const manifests = [['index', 'avatar-change-room']]\n\n    return {\n      manifests,\n      variables,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type CaperLoaderService from 're-client/services/caper-loader'\n\nexport default class CrittersCritterRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model({ critter_id: critterId }: Record<string, string>) {\n    const variables = {\n      student: this.user.student,\n      skipSaveProgress: true,\n    }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('reading/video', critterId),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type UserService from 're-client/services/user'\n\nexport default class CrittersIndexRoute extends Route {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare user: UserService\n\n  override async model() {\n    const numberOfLessonsCompleted =\n      this.studentProgress.lessonsLastCompletedLessonNumber\n\n    const variables = {\n      student: this.user.student,\n      lesson_number: numberOfLessonsCompleted,\n      maxMap: this.studentProgress.lessonsLastMap,\n    }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('reading', 'my_critters'),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type RouterService from '@ember/routing/router-service'\nimport type AssignmentsService from 're-client/services/assignments'\n\nexport default class DrivingTestsIndexRoute extends Route {\n  @service declare assignments: AssignmentsService\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare router: RouterService\n\n  get drivingTestsLocked() {\n    return (\n      this.studentProgress.isAreaLocked('drivingTests') &&\n      this.assignments.currentTask?.__typename !== 'AssignmentTaskDrivingTests'\n    )\n  }\n\n  override beforeModel() {\n    if (this.drivingTestsLocked) {\n      void this.router.replaceWith('index')\n    }\n  }\n\n  override async model() {\n    const { sightWords, lettersAndSounds, contentWords } =\n      this.studentProgress.drivingTests\n\n    const drivingTestsPosition = {\n      sight_words: sightWords,\n      letters_and_sounds: lettersAndSounds,\n      content_words: contentWords,\n    }\n    const variables = {\n      student: this.user.student,\n      drivingTestsPosition,\n    }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('driving-tests', 'driving_test_lobby'),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type RouterService from '@ember/routing/router-service'\n\ninterface RouteParams {\n  type: string\n  quiz_id: string\n}\n\nexport default class DrivingTestsQuizRoute extends Route {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare assignments: AssignmentsService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model({ type, quiz_id: quizId }: RouteParams) {\n    const isAssignmentMode =\n      this.assignments.canCompleteDrivingTestAssignmentTask(\n        parseInt(quizId),\n        type,\n      )\n\n    if (\n      this.studentProgress.isAreaLocked('drivingTests') &&\n      !isAssignmentMode\n    ) {\n      void this.router.replaceWith('index')\n      return\n    }\n    const variables = { student: this.user.student }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive(`driving-test-quizzes/${type}`, quizId),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      isAssignmentMode,\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type RouterService from '@ember/routing/router-service'\nimport type { InteractiveConfig } from '@blakeelearning/content-loader-core'\n\ninterface Params {\n  assignmentMode?: string\n}\n\ninterface Model {\n  assignmentMode: boolean\n  interactiveConfig: InteractiveConfig\n}\nexport default class DrivingTestsRacingGameRoute extends Route<Model, Params> {\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare router: RouterService\n\n  override beforeModel() {\n    if (!this.user.racingGameAvailable) {\n      void this.router.replaceWith('driving-tests')\n    }\n    this.user.setRacingGameAvailability(false)\n  }\n\n  override async model(params: Params) {\n    const variables = { student: this.user.student }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('driving-tests', 'driving_test_game'),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      assignmentMode: Boolean(params.assignmentMode),\n      interactiveConfig,\n    }\n  }\n}\n","import Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport { service } from '@ember/service'\nimport type UserService from 're-client/services/user'\n\nexport default class GamesRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare router: RouterService\n\n  override beforeModel() {\n    if (!this.user.student.gamesAccess) {\n      void this.router.transitionTo('no-access', 'games')\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type { MinigameAuthService } from '@blakeelearning/minigame-auth'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class GamesGameRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare minigameAuth: MinigameAuthService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model({ game_id: gameId }: Record<string, string>) {\n    const isAuthorized = this.minigameAuth.claimGameToken(gameId!)\n\n    if (!isAuthorized) {\n      return this.router.transitionTo('games.index')\n    }\n\n    const variables = { student: this.user.student }\n\n    const manifests = [this.urlMaker.urlForInteractive('reading', gameId)]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      gameId,\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport ky from 'ky'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport { graphql } from 're-client/graphql'\nimport type ApolloService from 're-client/services/apollo'\n\nconst GamesQueryDocument = graphql(/* GraphQL */ `\n  query GetGames {\n    games {\n      id\n      personalBest {\n        score\n      }\n      highScores(limit: 10) {\n        name\n        score\n      }\n    }\n  }\n`)\n\nexport default class GamesIndexRoute extends Route {\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare apollo: ApolloService\n\n  override async model() {\n    const gamesUrl = this.urlMaker.urlForInteractive('reading', 'arcade')\n\n    const [gamesManifest, { data }] = await Promise.all([\n      ky.get(gamesUrl).json<string>(),\n      this.apollo.query({ query: GamesQueryDocument }),\n    ])\n\n    const games = data.games ?? []\n    const personal_bests = Object.fromEntries(\n      games.map((game) => [game.id, game.personalBest?.score ?? 0]),\n    )\n    const high_scores = Object.fromEntries(\n      games.map((game) => [game.id, game.highScores]),\n    )\n\n    const interactiveConfig = await this.caperLoader.load([gamesManifest], {\n      student: this.user.student,\n      personal_bests,\n      high_scores,\n    })\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport type Store from '@ember-data/store'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type { FeatureService } from '@blakeelearning/features'\n\nexport default class HouseRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare store: Store\n\n  @service\n  declare features: FeatureService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model() {\n    const items = await this.store.findAll('item', { reload: true })\n    const studentItems = items.map((item) => ({\n      id: item.id,\n      aisle: item.aisle,\n      code: item.code,\n      department: item.department,\n      state: item.state,\n      imageUrl: item.imageUrl,\n      animationUrl: item.animationUrl,\n      animationJson: item.animationJson,\n    }))\n\n    const variables = { student: this.user.student, studentItems }\n\n    // Jester My House\n    const manifests = [['index', 'my-house']]\n\n    return {\n      manifests,\n      variables,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport preloadImages from 're-client/utils/preload-images'\nimport reggieImages from 're-client/theme-images'\nimport type ThemeService from 're-client/services/theme'\n\nexport default class IndexRoute extends Route {\n  @service\n  declare theme: ThemeService\n\n  override async model() {\n    // preload images\n    const images = []\n\n    const { currentMonth } = this.theme\n    const reggieThemeImage = reggieImages.months[currentMonth]\n    const reggieImage = reggieImages.default\n\n    images.push(reggieImage)\n\n    if (reggieThemeImage) {\n      images.push(reggieThemeImage)\n    }\n\n    await preloadImages(...images)\n\n    return {\n      reggieThemeImage,\n      reggieImage,\n    }\n  }\n}\n","import Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type Transition from '@ember/routing/transition'\nimport { inject as service } from '@ember/service'\nimport type UserService from 're-client/services/user'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type CertificateService from 're-client/services/certificate'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type AskReggieService from 're-client/services/ask-reggie'\n\nexport default class LessonsRoute extends Route {\n  @service declare certificate: CertificateService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare assignments: AssignmentsService\n\n  @service declare askReggie: AskReggieService\n\n  @service declare features: FeatureService\n\n  override async beforeModel(transition: Transition) {\n    // Don't redirect to the certificate route while the student is in assignments mode\n    if (this.assignments.hasTask) return\n\n    // Don't redirect to the certificate route if we are already heading there\n    if (transition.to?.name === 'lessons.certificate') return\n\n    const hasPendingCertificate = await this.certificate.hasPendingCertificate()\n\n    if (hasPendingCertificate) {\n      void this.router.replaceWith('lessons.certificate')\n    }\n\n    if (this.askReggie.data?.__typename === 'AskReggieSkipLesson') {\n      void this.router.replaceWith(\n        'lessons.lesson.activity',\n        this.askReggie.data.lesson,\n        this.askReggie.data.activity,\n      )\n    }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type UserService from 're-client/services/user'\nimport { assert, debug } from '@ember/debug'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type CertificateService from 're-client/services/certificate'\n\nexport default class LessonsCertificateRoute extends Route {\n  @service declare certificate: CertificateService\n\n  @service declare user: UserService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare features: FeatureService\n\n  @service declare router: RouterService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model() {\n    const {\n      data: { student },\n    } = await this.certificate.getPendingCertificate()\n\n    if (!student?.pendingCertificate) {\n      debug(`[CertificateRoute] model() - no pending certificate`)\n      await this.router.replaceWith('lessons.map.next')\n      assert('pendingCertificate exists', student?.pendingCertificate)\n    }\n\n    const {\n      map,\n      colour,\n      scorePercentage: percentage,\n      quizResultCreatedAt: date,\n      id: pendingCertificateId,\n    } = student.pendingCertificate\n\n    const manifests = [\n      ['map-certificate', `maps/${map.toString().padStart(3, '0')}`],\n    ]\n\n    const mapResult = {\n      date,\n      percentage,\n      colour,\n    }\n\n    return {\n      variables: { studentName: student.name, mapResult },\n      manifests,\n      map,\n      pendingCertificateId,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type UserService from 're-client/services/user'\nimport type ReleaseChecker from '@blakeelearning/app-refresher/release-checker/service'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type StudentProgressService from 're-client/services/student-progress'\n\nexport default class LessonsFinishedReLessonsRoute extends Route {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare releaseChecker: ReleaseChecker\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare router: RouterService\n\n  override beforeModel() {\n    const currentMap = this.studentProgress.lessonsCurrentMap\n    if (currentMap <= this.studentProgress.lessonsLastMap) {\n      void this.router.replaceWith('lessons.map', currentMap)\n    }\n  }\n\n  override async model() {\n    const variables = { student: this.user.student }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('reading', 'finished_readingeggs'),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type ActivityService from 're-client/services/activity'\nimport type UserService from 're-client/services/user'\nimport type RouterService from '@ember/routing/router-service'\nimport type { Activity } from 're-client/services/activity'\nimport type { Framework } from 're-client/graphql/graphql'\nimport type LessonsService from 're-client/services/lessons'\nimport type LessonManifestBundlesService from 're-client/services/lesson-manifest-bundles'\nimport type AssignmentsService from 're-client/services/assignments'\n\nexport interface SideBarData {\n  id: number\n  thumbnail: string | undefined\n}\n\ninterface Params extends Record<string, unknown> {\n  lesson_id: string\n}\n\ninterface LessonsLessonRouteModel {\n  activitiesForLesson: Activity[]\n  lessonId: string\n  manifestBundles: Map<Framework, unknown>\n  sideBarData: SideBarData[]\n}\n\nexport default class LessonsLessonRoute extends Route<\n  LessonsLessonRouteModel,\n  Params\n> {\n  @service declare studentProgress: StudentProgressService\n\n  @service declare lessons: LessonsService\n\n  @service declare assignments: AssignmentsService\n\n  @service declare activity: ActivityService\n\n  @service declare lessonManifestBundles: LessonManifestBundlesService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  override beforeModel() {\n    if (this.assignments.hasTask) {\n      return\n    }\n\n    if (this.studentProgress.showLessonsPlacementTest) {\n      void this.router.transitionTo('lessons.placement-test')\n    }\n  }\n\n  override async model(params: Params) {\n    const lessonId = params.lesson_id\n    this.lessons.setCurrentLesson(lessonId)\n\n    const activitiesForLesson =\n      this.activity.getReadingActivitiesByLessonId(lessonId)\n\n    let manifestBundles = new Map<Framework, unknown>()\n    let sideBarData: SideBarData[] = []\n    if (this.activity.hasReadingActivitiesByLessonId(lessonId)) {\n      manifestBundles =\n        await this.lessonManifestBundles.fetchManifestBundlesForActivities(\n          activitiesForLesson,\n        )\n      sideBarData = activitiesForLesson.map(\n        ({ activityInLesson, framework, manifestKey }) => ({\n          id: activityInLesson,\n          thumbnail: this.lessonManifestBundles.getActivityThumbnail(\n            framework,\n            manifestKey,\n            manifestBundles,\n          ),\n        }),\n      )\n    } else {\n      void this.router.replaceWith(\n        'lessons.lesson.index',\n        this.studentProgress.lessonsCurrentLessonNumber,\n      )\n    }\n\n    return { activitiesForLesson, manifestBundles, sideBarData, lessonId }\n  }\n\n  override afterModel(model: LessonsLessonRouteModel) {\n    if (model.lessonId !== this.lessons.currentLesson) {\n      void this.router.replaceWith('lessons.lesson', this.lessons.currentLesson)\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport { get } from 'lodash'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type LessonsService from 're-client/services/lessons'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type { GqlStudent } from 're-client/services/user'\nimport type RouterService from '@ember/routing/router-service'\nimport type ActivityService from 're-client/services/activity'\nimport { CustomerTypeEnum, Framework } from 're-client/graphql/graphql'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type { InteractiveConfig } from '@blakeelearning/content-loader-core'\nimport type LessonsLessonRoute from 're-client/routes/lessons/lesson'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type LessonManifestBundlesService from 're-client/services/lesson-manifest-bundles'\nimport type { SideBarActivityData } from 're-client/components/activity-sidebar/activity-item'\nimport type BooksService from 're-client/services/books'\nimport type AskReggieService from 're-client/services/ask-reggie'\nimport type { AskReggieVariables } from 're-client/services/ask-reggie'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type PosthogService from 're-client/services/posthog'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport type { MetricsCollectorLocationSegment } from 're-client/services/student-metrics'\n\nexport interface Params extends Record<string, unknown> {\n  activity_id: string\n}\n\ninterface BaseModel {\n  activityId: number\n  activityType?: string\n  askReggieLessonSkipAttempt: boolean\n  askReggieContentVariables: AskReggieVariables\n  isAssignmentMode?: boolean\n  lessonId: string\n  lessonInPrecinct?: number\n  map: number\n  maxLives?: number | undefined\n  sideBarActivityData?: SideBarActivityData[]\n}\n\ninterface CaperModel extends BaseModel {\n  interactiveConfig: InteractiveConfig\n  isCaperActivity: true\n}\n\ninterface Variables {\n  student: GqlStudent\n  isAssignment: boolean\n}\n\ninterface JesterModel extends BaseModel {\n  isCaperActivity?: false\n  manifests?: string[][]\n  variables?: Variables\n}\n\ntype Model = CaperModel | JesterModel\n\ntype Activity = ModelFor<LessonsLessonRoute>['activitiesForLesson'][number]\n\nexport default class LessonsLessonActivityRoute extends Route<Model, Params> {\n  @service declare studentProgress: StudentProgressService\n\n  @service('lessons') declare progress: LessonsService\n\n  @service declare assignments: AssignmentsService\n\n  @service declare books: BooksService\n\n  @service declare caperLoader: CaperLoaderService\n\n  @service declare features: FeatureService\n\n  @service declare user: UserService\n\n  @service declare activity: ActivityService\n\n  @service declare router: RouterService\n\n  @service declare askReggie: AskReggieService\n\n  @service declare posthog: PosthogService\n\n  @service declare lessonManifestBundles: LessonManifestBundlesService\n\n  @service declare studentMetrics: StudentMetricsService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model(params: Params): Promise<Model> {\n    const activityId = Number(params.activity_id)\n    const { currentLesson } = this.progress.setCurrentActivity(activityId)\n\n    const lessonModel = this.modelFor(\n      'lessons.lesson',\n    ) as ModelFor<LessonsLessonRoute>\n\n    const { activitiesForLesson, manifestBundles, sideBarData } = lessonModel\n    const activity: Activity | undefined = activitiesForLesson.find(\n      ({ activityInLesson }) => activityInLesson === activityId,\n    )\n\n    const sideBarActivityData = sideBarData.map((sideBarActivity) => {\n      let status: SideBarActivityData['status'] = 'locked'\n\n      if (sideBarActivity.id === activityId) {\n        status = 'unlocked'\n      } else if (this.progress.canPlayActivity(sideBarActivity.id)) {\n        status = 'complete'\n      }\n\n      return { ...sideBarActivity, status }\n    })\n\n    if (!activity) {\n      void this.router.replaceWith(\n        'lessons.lesson.index',\n        this.studentProgress.lessonsCurrentLessonNumber,\n      )\n    } else {\n      const { lessonInPrecinct } = activity\n      const isAssignment = this.assignments.canCompleteLessonAssignmentTask(\n        currentLesson,\n        activityId,\n      )\n\n      const askReggieLessonSkipAttempt =\n        !isAssignment &&\n        this.askReggie.data?.__typename === 'AskReggieSkipLesson' &&\n        this.askReggie.data.lesson === Number(currentLesson) &&\n        this.askReggie.data.activity === activityId\n\n      if (\n        !isAssignment &&\n        !askReggieLessonSkipAttempt &&\n        this.askReggie.data?.__typename === 'AskReggieSkipLesson'\n      ) {\n        void this.router.replaceWith('index')\n      }\n\n      const askReggieContentVariables = this.askReggie.contentVariables({\n        currentLesson: Number(currentLesson),\n        currentActivity: activityId,\n      })\n\n      let bookVariables\n      const isBook = activity.__typename == 'ReadingActivityBook'\n      if (isBook) {\n        bookVariables = {\n          bookContent: await this.books.fetchContent(activity.bookCode),\n          disableQuiz: true,\n        }\n      }\n\n      const maxLivesVariables = this.getMaxLivesVariables(activity)\n\n      const isCaperActivity = activity.framework === Framework.Caper\n      if (isCaperActivity) {\n        const manifestBundle = this.lessonManifestBundles.getManifestBundle(\n          activity.framework,\n          manifestBundles,\n        )\n\n        const manifests = [\n          get(manifestBundle, activity.manifestKey),\n        ] as string[]\n\n        const learningStateContextUuid = this.trackLearningStateContext({\n          activityFramework: 'caper',\n          currentLesson,\n          activityId,\n          map: activity.map,\n          isAssignmentMode: isAssignment,\n        })\n\n        const variables = {\n          student: this.user.student,\n          isAssignment,\n          askReggie: askReggieContentVariables,\n          ...bookVariables,\n          ...maxLivesVariables,\n          ...this.getLearningStateVariables(currentLesson, activityId),\n          learningStateContextUuid,\n        }\n\n        const interactiveConfig = await this.caperLoader.load(\n          manifests,\n          variables,\n        )\n\n        return {\n          interactiveConfig,\n          activityId,\n          lessonId: currentLesson,\n          activityType: activity.__typename,\n          map: activity.map,\n          sideBarActivityData,\n          isCaperActivity,\n          isAssignmentMode: isAssignment,\n          lessonInPrecinct,\n          askReggieLessonSkipAttempt,\n          askReggieContentVariables,\n          maxLives: maxLivesVariables.maxLives,\n        }\n      }\n\n      const isJesterActivity = activity.framework === Framework.Jester\n      if (isJesterActivity) {\n        const manifests = [[...activity.manifestKey, activity.manifestBundle]] // [['readingeggs-1-end-of-lesson-skills-quiz', 'lessons/001']]\n\n        const learningStateContextUuid = this.trackLearningStateContext({\n          activityFramework: 'jester',\n          currentLesson,\n          activityId,\n          map: activity.map,\n          isAssignmentMode: isAssignment,\n        })\n\n        const variables = {\n          student: this.user.student,\n          isAssignment,\n          askReggie: askReggieContentVariables,\n          ...bookVariables,\n          ...maxLivesVariables,\n          ...this.getLearningStateVariables(currentLesson, activityId),\n          learningStateContextUuid,\n        }\n\n        return {\n          activityId,\n          lessonId: currentLesson,\n          activityType: activity.__typename,\n          map: activity.map,\n          sideBarActivityData,\n          isCaperActivity,\n          manifests,\n          variables,\n          lessonInPrecinct,\n          isAssignmentMode: isAssignment,\n          askReggieLessonSkipAttempt,\n          askReggieContentVariables,\n          maxLives: maxLivesVariables.maxLives,\n        }\n      }\n    }\n\n    throw new Error('Unknown activity framework')\n  }\n\n  /**\n   * Access control to activity based on the student's progress, executed after the model loads.\n   *\n   * Allows access if:\n   *  - `shouldForceAccess()` evaluates to `true`\n   *  - the authorisation policy allows access, based on student progress\n   *\n   * @instance afterModel\n   * @memberOf LessonActivityRoute\n   * @param {Object} params The url params\n   */\n  override afterModel(model: Model) {\n    if (this.assignments.hasTask) {\n      this.captureEnterActivity(model)\n      return\n    }\n\n    if (model.activityId !== this.progress.currentActivity) {\n      void this.router.transitionTo(\n        'lessons.lesson.index',\n        this.progress.currentLesson,\n      )\n      return\n    }\n\n    this.captureEnterActivity(model)\n  }\n\n  private captureEnterActivity({\n    activityId,\n    lessonId,\n    activityType,\n    map,\n    isAssignmentMode,\n    maxLives,\n  }: Model) {\n    if (!this.features.isEnabled('re_posthog-capture-activity-visits')) return\n    const {\n      lessonsCurrentLesson: progressLesson,\n      lessonsCurrentActivity: progressActivity,\n      lessonsCurrentMap: progressMap,\n    } = this.studentProgress\n    const lessonMatchesProgress = lessonId === progressLesson\n\n    this.posthog.capture('student_enter_activity', {\n      precinct: 'lessons',\n      lesson: Number(lessonId),\n      activity: activityId,\n      activity_type: activityType,\n      map,\n      progress_lesson:\n        progressLesson === 'quiz' ? 'quiz' : Number(progressLesson),\n      progress_activity: progressActivity,\n      progress_map: progressMap,\n      lesson_matches_progress: lessonMatchesProgress,\n      activity_matches_progress:\n        lessonMatchesProgress && activityId === progressActivity,\n      map_matches_progress: map === progressMap,\n      assignment_mode: isAssignmentMode ?? false,\n      max_lives: maxLives,\n      '$feature/re_lessons-activities-max-lives': this.features\n        .getClient()\n        .getObjectDetails('re_lessons-activities-max-lives', { payload: 3 })\n        .variant,\n    })\n  }\n\n  private getMaxLivesVariables(activity: Activity) {\n    const maxLivesVariables: { maxLives?: number } = {}\n    if (activity.__typename === 'ReadingActivityInteractive') {\n      if (this.user.student.customerType === CustomerTypeEnum.B2CStudent) {\n        maxLivesVariables.maxLives = this.features.getClient().getObjectValue<{\n          payload: number\n        }>('re_lessons-activities-max-lives', { payload: 3 }).payload\n      } else {\n        maxLivesVariables.maxLives = 3\n      }\n    }\n\n    return maxLivesVariables\n  }\n\n  /**\n   * Position variables captured at load time so the game can echo them back\n   * with its learning state payload. Reading them when the payload is sent is\n   * too late: the game's teardown fires after the route has transitioned, so\n   * the controller model (and student progress) may already point at the next\n   * activity.\n   */\n  private getLearningStateVariables(currentLesson: string, activityId: number) {\n    return {\n      lessonInPrecinct: Number(currentLesson),\n      activityInLesson: activityId,\n      lessonPreviouslyCompleted:\n        this.studentProgress.lessonsCurrentLessonNumber > Number(currentLesson),\n    }\n  }\n\n  /**\n   * Tracks the route/precinct context for this activity instance, keyed by a\n   * uuid, so it can be correctly attached to the learning-state event when\n   * this specific activity later saves its learning state - even if the\n   * student has since navigated to a different activity. Done here, rather\n   * than from a content-driven signal fired after load, so it runs exactly\n   * once per activity instantiation and the path is derived from this route's\n   * own params instead of the live (and by then possibly stale) current URL.\n   */\n  private trackLearningStateContext({\n    activityFramework,\n    currentLesson,\n    activityId,\n    map,\n    isAssignmentMode,\n  }: {\n    activityFramework: 'caper' | 'jester'\n    currentLesson: string\n    activityId: number\n    map: number\n    isAssignmentMode: boolean\n  }): string {\n    const path = this.router.urlFor(\n      'lessons.lesson.activity',\n      currentLesson,\n      activityId,\n    )\n\n    const precinctLocation = this.metricsCollectorLocationFromProgress({\n      map,\n      lesson: currentLesson,\n      activity: activityId,\n    })\n\n    const studentPrecinctProgress = this.metricsCollectorLocationFromProgress({\n      map: this.studentProgress.lessonsCurrentMap,\n      lesson: this.studentProgress.lessonsCurrentLesson,\n      activity: this.studentProgress.lessonsCurrentActivity,\n    })\n\n    const assignmentUuid = isAssignmentMode\n      ? this.assignments.currentTask?.assignmentUuid\n      : undefined\n\n    return this.studentMetrics.trackLearningStateContext({\n      path,\n      activityFramework,\n      activityVariant: this.user.accent,\n      assignment: isAssignmentMode,\n      assignmentUuid,\n      precinct: 'lessons',\n      precinctLocation,\n      studentPrecinctProgress,\n    })\n  }\n\n  private metricsCollectorLocationFromProgress(precinctLocation: {\n    map: number\n    lesson: string\n    activity: number\n  }): MetricsCollectorLocationSegment[] {\n    const { activity, lesson, map } = precinctLocation\n\n    return [\n      { name: 'map', position: map },\n      ...(lesson === 'quiz'\n        ? [{ name: 'quiz' }]\n        : [\n            { name: 'lesson', position: Number(lesson) },\n            { name: 'activity', position: activity },\n          ]),\n    ]\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type LessonsService from 're-client/services/lessons'\n\n/**\n * The lesson index route\n */\nexport default class LessonsLessonIndexRoute extends Route {\n  @service\n  declare lessons: LessonsService\n\n  @service\n  declare router: RouterService\n\n  /**\n   * Transition to the current activity in the lesson, based on the student's progress, or the first activity for the lesson\n   */\n  override afterModel() {\n    const { currentLesson, currentActivity } = this.lessons\n    void this.router.transitionTo(\n      'lessons.lesson.activity',\n      currentLesson,\n      currentActivity,\n    )\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type LessonsService from 're-client/services/lessons'\nimport type CertificateService from 're-client/services/certificate'\n\ninterface LessonsMapModel {\n  mapId: number\n}\n\ninterface ParamsForRoute {\n  map_id: string\n}\n\nexport default class LessonsMapRoute extends Route<\n  LessonsMapModel,\n  ParamsForRoute\n> {\n  @service declare certificate: CertificateService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare lessons: LessonsService\n\n  @service declare router: RouterService\n\n  @service declare features: FeatureService\n\n  /**\n   * Loads the student progress for the precinct\n   */\n  override async beforeModel() {\n    if (this.studentProgress.showLessonsPlacementTest) {\n      void this.router.transitionTo('lessons.placement-test')\n      return\n    }\n\n    const hasPendingCertificate = await this.certificate.hasPendingCertificate()\n    if (hasPendingCertificate) {\n      void this.router.replaceWith('lessons.certificate')\n    }\n\n    const mapParams = this.paramsFor('lessons.map') as Partial<ParamsForRoute>\n    const mapId = parseInt(mapParams.map_id ?? '', 10)\n\n    if (\n      !Number.isNaN(mapId) &&\n      this.studentProgress.hasFinishedLessons &&\n      mapId > this.studentProgress.lessonsLastMap\n    ) {\n      void this.router.replaceWith('lessons.finished-re-lessons')\n      return\n    }\n  }\n\n  /**\n   * Builds the map model from the map id parameter\n   */\n  override model(params: ParamsForRoute) {\n    const mapId = parseInt(params.map_id, 10)\n    this.lessons.setCurrentMap(mapId)\n\n    return { mapId }\n  }\n\n  override afterModel(model: LessonsMapModel) {\n    // playability *only* accounts for if the currentMap is greater than the\n    // map asked for in the route, it does not care about overflows ie asking for map 1000\n    if (model.mapId !== this.lessons.currentMap) {\n      void this.router.transitionTo('lessons.map', this.lessons.currentMap)\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type LessonsService from 're-client/services/lessons'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type ActivityService from 're-client/services/activity'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type { InteractiveConfig } from '@blakeelearning/content-loader-core'\nimport type ReleaseChecker from '@blakeelearning/app-refresher/release-checker/service'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type ApolloService from 're-client/services/apollo'\nimport { getMyAwardsQueryDocument } from 're-client/routes/awards'\nimport config from 're-client/config/environment'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport {\n  getQuizResultsForMap,\n  type LessonQuizResult,\n  type MapQuizResult,\n} from 're-client/utils/quiz-results'\n\ninterface ParamsForRoute {\n  map_id: string\n}\n\ninterface RouteModel {\n  mapId: number\n  isOnFinalMap: boolean\n  nextMapId: number\n  previousMapId: number\n  interactiveConfig?: InteractiveConfig\n  manifests?: string[][]\n  jesterVariables?: JesterVariables\n}\n\ninterface JesterVariables {\n  avatar: AvatarDna\n  canPlayMapQuiz: boolean\n  firstMapInSession: boolean\n  firstName: string\n  lastMapInProgram: number\n  lessonQuizResults: LessonQuizResult[]\n  mapQuizResult?: MapQuizResult\n  progressCurrentLessonNumber: number\n}\n\ninterface AvatarDna {\n  arms: string\n  decal: string\n  egg: string\n  extra: string\n  hat: string\n  head: string\n  legs: string\n  sunnies: string\n}\nexport default class LessonsMapIndexRoute extends Route<\n  RouteModel,\n  ParamsForRoute\n> {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare releaseChecker: ReleaseChecker\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare activity: ActivityService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare lessons: LessonsService\n\n  @service\n  declare features: FeatureService\n\n  @service\n  declare apollo: ApolloService\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model() {\n    const {\n      currentMap,\n      isOnFinalMap,\n      nextMapId,\n      previousMapId,\n      canPlayQuizForMap,\n    } = this.lessons\n\n    const mapId = currentMap\n    const quizComplete = this.lessons.isQuizComplete\n\n    const first_map_in_session =\n      sessionStorage.getItem('has_seen_reggie_bubble') === 'true' ? false : true\n    if (first_map_in_session)\n      sessionStorage.setItem('has_seen_reggie_bubble', 'true')\n\n    const jesterVariables: JesterVariables = {\n      avatar: this.user.student.dna,\n      canPlayMapQuiz: canPlayQuizForMap,\n      firstMapInSession: first_map_in_session,\n      firstName: this.user.student.firstName,\n      lastMapInProgram: config.APP.lastMap,\n      lessonQuizResults: [],\n      progressCurrentLessonNumber:\n        this.studentProgress.lessonsCurrentLessonNumber,\n    }\n\n    const manifests = [['map', `maps/${String(mapId).padStart(3, '0')}`]]\n\n    const {\n      data: { student },\n    } = await this.apollo.query({\n      query: getMyAwardsQueryDocument,\n    })\n\n    const { lessonQuizResults, mapQuizResult } = getQuizResultsForMap({\n      badges: student?.badges,\n      certificates: student?.certificates,\n      currentMap,\n      quizComplete,\n    })\n\n    jesterVariables.lessonQuizResults = lessonQuizResults\n    if (mapQuizResult) {\n      jesterVariables.mapQuizResult = mapQuizResult\n    }\n\n    return {\n      mapId,\n      isOnFinalMap,\n      nextMapId,\n      previousMapId,\n      manifests,\n      jesterVariables,\n    }\n  }\n}\n","import Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport { inject as service } from '@ember/service'\nimport type LessonsService from 're-client/services/lessons'\n\n/**\n * Handles transitioning to the next route when a quiz is completed or when\n * the right arrow is clicked on a map. If it was\n * the last map, it instead transitions to the finished-re-lessons route.\n *\n * @class LessonsMapNextRoute\n */\nexport default class LessonsMapNextRoute extends Route {\n  @service\n  declare router: RouterService\n\n  @service\n  declare lessons: LessonsService\n\n  override redirect() {\n    const { isOnFinalMap, nextMapId } = this.lessons\n\n    if (isOnFinalMap) {\n      void this.router.transitionTo('lessons.finished-re-lessons')\n    } else {\n      void this.router.transitionTo('lessons.map', nextMapId)\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type RouterService from '@ember/routing/router-service'\nimport type { InteractiveConfig } from '@blakeelearning/content-loader-core'\nimport type LessonsService from 're-client/services/lessons'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type CertificateService from 're-client/services/certificate'\nimport type ActivityService from 're-client/services/activity'\n\ninterface LessonMapQuizModel {\n  interactiveConfig: InteractiveConfig\n  mapId: number\n}\n\nexport default class LessonsMapQuizRoute extends Route<LessonMapQuizModel> {\n  @service declare certificate: CertificateService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare lessons: LessonsService\n\n  @service()\n  declare caperLoader: CaperLoaderService\n\n  @service declare user: UserService\n\n  @service declare urlMaker: UrlMakerService\n\n  @service declare features: FeatureService\n\n  @service declare router: RouterService\n\n  @service declare activity: ActivityService\n\n  override beforeModel() {\n    const { canPlayQuizForMap } = this.lessons.setCurrentLesson('quiz')\n\n    if (!canPlayQuizForMap) {\n      void this.router.transitionTo(\n        'lessons.map.index',\n        this.studentProgress.lessonsCurrentMap,\n      )\n    }\n  }\n\n  override async model(): Promise<LessonMapQuizModel> {\n    const mapId = this.lessons.currentMap\n\n    const certificates = await this.certificate.getCertificates()\n\n    const previousBestScorePercentage = certificates?.find(\n      (certificate) => certificate.map === mapId,\n    )?.scorePercentage\n\n    const variables = {\n      student: this.user.student,\n      previousBestScorePercentage,\n    }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('reading/quizzes', mapId),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n      mapId,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type RouterService from '@ember/routing/router-service'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport type { MetricsCollectorLocationSegment } from 're-client/services/student-metrics'\n\n// eslint-disable-next-line ember/no-test-import-export\nexport default class LessonsPlacementTestRoute extends Route {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare features: FeatureService\n\n  @service declare studentMetrics: StudentMetricsService\n\n  override beforeModel() {\n    if (!this.studentProgress.showLessonsPlacementTest) {\n      void this.router.transitionTo(\n        'lessons.map',\n        this.studentProgress.lessonsCurrentMap,\n      )\n    }\n  }\n\n  override async model() {\n    const learningStateContextUuid = this.trackLearningStateContext()\n\n    const variables = {\n      student: this.user.student,\n      learningStateContextUuid,\n    }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('reading/placement-test'),\n    ]\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n\n  /**\n   * Tracks the route/precinct context for this placement test instance, keyed\n   * by a uuid, so it can be correctly attached to the learning-state event\n   * when this activity later saves its learning state - even if the student\n   * has since navigated away. Done here, rather than from a content-driven\n   * signal fired after load, so it runs exactly once per activity\n   * instantiation and the path is derived from this route's own params\n   * instead of the live (and by then possibly stale) current URL.\n   */\n  private trackLearningStateContext(): string {\n    const path = this.router.urlFor('lessons.placement-test')\n\n    const precinctLocation: MetricsCollectorLocationSegment[] = [\n      { name: 'placement_test' },\n    ]\n\n    const studentPrecinctProgress: MetricsCollectorLocationSegment[] =\n      this.studentProgress.lessonsCurrentLesson === 'quiz'\n        ? [\n            { name: 'map', position: this.studentProgress.lessonsCurrentMap },\n            { name: 'quiz' },\n          ]\n        : [\n            { name: 'map', position: this.studentProgress.lessonsCurrentMap },\n            {\n              name: 'lesson',\n              position: Number(this.studentProgress.lessonsCurrentLesson),\n            },\n            {\n              name: 'activity',\n              position: this.studentProgress.lessonsCurrentActivity,\n            },\n          ]\n\n    return this.studentMetrics.trackLearningStateContext({\n      path,\n      activityFramework: 'caper',\n      activityVariant: this.user.accent,\n      assignment: false,\n      assignmentUuid: undefined,\n      precinct: 'lessons',\n      precinctLocation,\n      studentPrecinctProgress,\n    })\n  }\n}\n","import Route from '@ember/routing/route'\nimport { inject as service } from '@ember/service'\nimport type SessionService from 're-client/services/session'\nimport config from 're-client/config/environment'\n\nconst {\n  APP: { loginWarning },\n} = config\n\ninterface ModelForRoute {\n  warning: string | undefined\n}\n\nexport default class LoginRoute extends Route<ModelForRoute> {\n  @service\n  declare session: SessionService\n\n  override model() {\n    return {\n      warning: loginWarning,\n    }\n  }\n\n  /**\n   * This will be called by Ember after the model has been resolved.\n   */\n  override redirect(): void {\n    this.session.signIn()\n  }\n}\n","import type SessionService from 're-client/services/session'\nimport Route from '@ember/routing/route'\nimport { inject as service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport type PosthogService from 're-client/services/posthog'\n\nconst {\n  APP: { loginWarning },\n} = config\n\ninterface ModelForRoute {\n  warning: string | undefined\n}\n\nexport default class LogoutRoute extends Route<ModelForRoute> {\n  @service\n  declare session: SessionService\n\n  @service\n  declare posthog: PosthogService\n\n  override model() {\n    return {\n      warning: loginWarning,\n    }\n  }\n\n  override redirect(): void {\n    this.posthog.reset()\n    this.session.signOut()\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport { graphql } from 're-client/graphql'\nimport type LocationTrackerService from 're-client/services/location-tracker'\nimport type ApolloService from 're-client/services/apollo'\n\nexport const RecommendedBooksQueryDocument = graphql(/* GraphQL */ `\n  query RecommendedBooks {\n    student {\n      id\n      recommendedBooks {\n        code\n        coverUrl\n      }\n      readBooks {\n        totalCount\n      }\n    }\n  }\n`)\n\nexport default class MyProgramRoute extends Route {\n  @service\n  declare apollo: ApolloService\n\n  @service\n  declare locationTracker: LocationTrackerService\n\n  override async model() {\n    const { data } = await this.apollo.query({\n      query: RecommendedBooksQueryDocument,\n      fetchPolicy: 'network-only',\n    })\n\n    const readBooksCount = data.student?.readBooks.totalCount ?? 0\n    const recommendedBooks =\n      data.student?.recommendedBooks.map((book) => ({\n        ...book,\n        coverUrl: book.coverUrl + '?width=104',\n      })) ?? []\n\n    return {\n      books: {\n        readBooksCount,\n        recommendedBooks,\n      },\n    }\n  }\n\n  override afterModel() {\n    this.locationTracker.setCurrentRoute('my-program', [])\n  }\n}\n","import type { FeatureService } from '@blakeelearning/features'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport { inject as service } from '@ember/service'\nimport type ReadingGoalsService from 're-client/services/reading-goals'\n\nexport default class MyReadingGoalsIndexRoute extends Route {\n  @service declare features: FeatureService\n\n  @service declare router: RouterService\n\n  @service declare readingGoals: ReadingGoalsService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override beforeModel() {\n    if (!this.features.isEnabled('re_my-reading-goals')) {\n      void this.router.transitionTo('/')\n    }\n  }\n\n  override async model() {\n    const quizTileList = []\n    const milestoneList = []\n    let lastCompletedQuizTile = null\n\n    const quizList = await this.readingGoals.getQuizzes()\n    const { summaries, minimumLevel, secondsToNextWeek } =\n      await this.readingGoals.getRecord()\n\n    for (const item of quizList) {\n      const { __typename, ...quiz } = item\n\n      // skip quizzes from other levels\n      if (quiz.level !== minimumLevel) {\n        continue\n      }\n\n      const quizSummary = summaries.get(quiz.id)\n\n      const quizTile = {\n        ...quiz,\n        attemptsThisWeek: 0,\n        eggsReward: 0,\n        passed: false,\n        secondsToPass: null,\n        timestamp: '',\n      }\n\n      if (quiz.id === this.readingGoals.lastCompletedQuizId) {\n        lastCompletedQuizTile = { ...quizTile, ...quizSummary }\n\n        // clear lastCompletedQuizId after create the completed quiz tile\n        this.readingGoals.lastCompletedQuizId = ''\n      }\n\n      if (quizSummary === undefined) {\n        // untouched quizzes for reading goals list\n        if (quizTileList.length < 4) {\n          quizTileList.push(quizTile)\n        }\n      } else {\n        if (quizSummary.passed) {\n          // completed quizzes for milestones list\n          milestoneList.push({ ...quizTile, ...quizSummary })\n        } else {\n          // uncompleted quizzes for reading goals list\n          if (quizTileList.length < 4) {\n            quizTileList.push({ ...quizTile, ...quizSummary })\n          }\n        }\n      }\n    }\n\n    const variables = {\n      playIntro: false,\n      quizTileList,\n      milestoneList,\n      secondsToNextWeek,\n      lastCompletedQuizTile,\n    }\n\n    const manifests = [['index', 'activities/mrg-menu']]\n\n    return { variables, manifests }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { inject as service } from '@ember/service'\n\nexport default class MyReadingGoalsMilestonesRoute extends Route {\n  @service\n  features\n\n  @service\n  router\n\n  beforeModel() {\n    if (!this.features.isEnabled('re_my-reading-goals')) {\n      this.router.transitionTo('/')\n    }\n  }\n\n  model() {\n    const variables = {}\n\n    const manifests = [['index', 'activities/mrg-milestones']]\n\n    return { variables, manifests }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { inject as service } from '@ember/service'\n\nexport default class MyReadingGoalsQuizRoute extends Route {\n  @service\n  features\n\n  @service\n  router\n\n  @service\n  user\n\n  buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  beforeModel() {\n    if (!this.features.isEnabled('re_my-reading-goals')) {\n      this.router.transitionTo('/')\n    }\n  }\n\n  model({ quiz_id: quizId }) {\n    const manifests = [['index', `activities/${quizId}`]]\n\n    const {\n      student: { name, eggs },\n    } = this.user\n\n    const variables = {\n      studentData: {\n        name,\n        eggs,\n      },\n      quizData: {\n        attempts: 0,\n      },\n    }\n\n    return { variables, manifests }\n  }\n}\n","import Route from '@ember/routing/route'\n\n/**\n * Lookup object of valid things for the \"no-access\" page.\n * We don't want people able to pass random params to `no-access/garbage` and\n * have it show in the UI, so this lookup hash allows us defined what we\n * actually support.\n */\nconst validProps = new Map([\n  ['games', 'Games'],\n  ['play', 'Playroom'],\n])\n\nexport default class NoAccessRoute extends Route {\n  override model(params: { access_type: string }) {\n    return validProps.get(params.access_type) ?? ''\n  }\n}\n","import Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport { service } from '@ember/service'\nimport type UserService from 're-client/services/user'\n\nexport default class PlayRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare router: RouterService\n\n  override beforeModel() {\n    if (!this.user.student.playroomAccess) {\n      void this.router.transitionTo('no-access', 'play')\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\n\ninterface RouteParams {\n  path: string\n}\n\nconst ALLOWED_PREFIXES = ['playroom_']\n\nexport default class PlayActivityRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare router: RouterService\n\n  override async model({ path }: RouteParams) {\n    const [activityName, activityId] = path.split('/')\n\n    if (\n      !ALLOWED_PREFIXES.some((prefix) =>\n        (activityName ?? path).startsWith(prefix),\n      )\n    ) {\n      void this.router.replaceWith('/')\n      return\n    }\n\n    const variables = {\n      student: this.user.student,\n      skippable: false,\n      show_end_buttons: false,\n    }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive(\n        `reading/activities/${activityName ?? path}`,\n        activityId,\n      ),\n    ]\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type LocationTrackerService from 're-client/services/location-tracker'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\n\nexport default class PlayIndexRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare locationTracker: LocationTrackerService\n\n  override async model() {\n    const variables = { student: this.user.student }\n    const manifests = [this.urlMaker.urlForInteractive('reading', 'playroom')]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n\n  override afterModel() {\n    this.locationTracker.setCurrentRoute('play', [])\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport { toDateString } from 're-client/utils/format-date'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type ThemeService from 're-client/services/theme'\nimport type WeeklyPollService from 're-client/services/weekly-poll'\nimport type CaperLoaderService from 're-client/services/caper-loader'\n\ninterface RouteModel {\n  interactiveConfig: unknown\n}\n\ninterface RouteParams {\n  day?: string | undefined\n}\n\nexport default class PlazaRoute extends Route<RouteModel, RouteParams> {\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare theme: ThemeService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare weeklyPoll: WeeklyPollService\n\n  override queryParams = {\n    day: { refreshModel: true },\n  }\n\n  day = null\n\n  override async model({ day }: RouteParams) {\n    const theme = this.theme.currentTheme\n\n    const urls = [\n      this.urlMaker.urlForInteractive('reading', `plaza_${theme}`),\n      this.urlMaker.urlForInteractive('avatar'),\n    ]\n\n    // Pass in date object to change the current week of the poll\n    const currentDate = day ? new Date(day) : new Date()\n    const date = toDateString(currentDate)\n    const weeklyPollData = await this.weeklyPoll.getWeeklyPoll({\n      date,\n    })\n\n    // In the past, we may've locked the Plaza Shop based on the student's progress, but this\n    // no longer happens. As such, these values are no longer computed - they're static values\n    // that always unlock the shop.\n    // Note that the variable name `areasUnlocked` clashes with the boolean values, so the fact\n    // that unlocked `false` causes an area to be unlocked in confusing.\n    // A rename was avoided since this variable name is depended-upon by the plaza Caper activity,\n    // and any refactoring would need to take place there first.\n    const areasUnlocked = {\n      avatarShop: false,\n      houseShop: false,\n      bookOfTheDay: false,\n    }\n\n    // add the variables data which we will add to the interactive\n    const variables = {\n      student: this.user.student,\n      areasUnlocked,\n      weeklyPollData,\n      currentDate,\n    }\n\n    const interactiveConfig = await this.caperLoader.load(urls, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport type Store from '@ember-data/store'\nimport Route from '@ember/routing/route'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\n\nexport default class PuzzlesIndexRoute extends Route {\n  @service\n  declare store: Store\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  /**\n   * load the puzzle lobby interactive\n   * @param {Object[]} puzzleScores\n   * @param {String} puzzleScores[].id The ID of the puzzle (eg. 'number_nuts')\n   * @param {String} puzzleScores[].puzzle_name The name of the puzzle (eg. 'Number Nuts')\n   * @param {Number} puzzleScores[].score The current student's score for the puzzle (eg. 85)\n   *\n   */\n  override async model() {\n    const emberPuzzleScores = await this.store.findAll('puzzle-score')\n    const puzzleScores = emberPuzzleScores.map((puzzleScore) =>\n      puzzleScore.toJSON({ includeId: true }),\n    )\n    const variables = { student: this.user.student, puzzleScores }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('reading', 'puzzle_park_lobby'),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport type Store from '@ember-data/store'\nimport Route from '@ember/routing/route'\nimport type { InteractiveConfig } from '@blakeelearning/content-loader-core'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\n\ninterface RouteModel {\n  interactiveConfig: InteractiveConfig\n  puzzleId: string\n}\n\ninterface RouteParams {\n  puzzle_id: string\n}\n\nexport default class PuzzlesPuzzleRoute extends Route<RouteModel, RouteParams> {\n  @service\n  declare user: UserService\n\n  @service\n  declare store: Store\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model({ puzzle_id: puzzleId }: RouteParams) {\n    const emberPuzzleScores = await this.store.findAll('puzzle-score')\n    const puzzleScore = emberPuzzleScores.find(\n      (value) => value.id === puzzleId,\n    ) ?? { score: 0 }\n    const variables = { highScore: puzzleScore.score }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('puzzle-park-puzzle', puzzleId),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n      puzzleId,\n    }\n  }\n}\n","import Route from '@ember/routing/route'\n\ninterface RouteParams {\n  book_id: string\n}\n\nexport default class ReaderBookRoute extends Route<unknown, RouteParams> {\n  override model(_: RouteParams) {\n    // Ths empty model hook disables Ember's default behaviour, which\n    // tries to load a model from the ember-data store based on the route's name\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type { ParamsFor } from 're-client/utils/route-model'\nimport type ReaderBookRoute from 're-client/routes/reader/book'\nimport type ApolloService from 're-client/services/apollo'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type BooksService from 're-client/services/books'\n\nexport default class ReaderBookIndexRoute extends Route {\n  @service\n  declare apollo: ApolloService\n\n  @service\n  declare books: BooksService\n\n  @service\n  declare features: FeatureService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override queryParams = {\n    disableQuiz: {\n      replace: true,\n    },\n  }\n\n  override async model({ disableQuiz }: Record<string, string>) {\n    const { book_id: bookId } = this.paramsFor(\n      'reader.book',\n    ) as ParamsFor<ReaderBookRoute>\n\n    const bookContent = await this.books.fetchContent(bookId)\n\n    const variables: Record<string, unknown> = {\n      student: this.user.student,\n      bookContent,\n      disableQuiz: !!disableQuiz,\n    }\n\n    // The Caper book reader will support `disableQuiz` (above) in the future,\n    // as an alternative to doing this.\n    if (disableQuiz) variables['quiz'] = null\n\n    const manifests = [this.urlMaker.urlForInteractive('reading', 'reading')]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type { ParamsFor } from 're-client/utils/route-model'\nimport type ReaderBookRoute from 're-client/routes/reader/book'\n\nexport default class ReaderBookPageRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model({ page }: Record<string, string>) {\n    const { student } = this.user\n    const { book_id: bookId } = this.paramsFor(\n      'reader.book',\n    ) as ParamsFor<ReaderBookRoute>\n    const variables = {\n      student,\n      pageNumber: page,\n      clinkerCastleHint: true,\n      quiz: null,\n    }\n\n    const manifests = [\n      // The book reader activity manifest, without any of the book data\n      this.urlMaker.urlForInteractive('reading', 'reading'),\n      // re-student endpoint will return a manifest only containing the specific book variables data\n      this.caperLoader.readingBookRequest(bookId),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\n\nexport default class ReaderResultRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model({ result_id: resultId }: Record<string, string>) {\n    const variables = {\n      student: this.user.student,\n      skipSaveProgress: true,\n    }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('reading/video', resultId),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type QuestService from 're-client/services/quest'\nimport type RouterService from '@ember/routing/router-service'\nimport type StudentProgressService from 're-client/services/student-progress'\n\nexport default class RecommendedRoute extends Route {\n  @service declare studentProgress: StudentProgressService\n\n  @service declare quest: QuestService\n\n  @service declare router: RouterService\n  override beforeModel() {\n    if (this.studentProgress.showLessonsPlacementTest) {\n      this.router.replaceWith('lessons.placement-test')\n      return\n    }\n    if (this.quest.recommendedTargetRoute) {\n      // @ts-expect-error router params type no bueno\n      this.router.replaceWith(...this.quest.recommendedTargetRoute)\n      return\n    }\n    this.router.replaceWith('/')\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport ky from 'ky'\nimport { cloneDeep } from 'lodash'\n\n/**\n * Represents a lesson\n *\n * @class Lesson\n */\nexport class SampleLessonRouteModel {\n  /**\n   * List of activity objects for this lesson\n   */\n  activities: { lesson: SampleLessonRouteModel; id: number; json: unknown }[]\n\n  id: string\n\n  hideBackButton: boolean\n\n  constructor({\n    id,\n    activities,\n    hideBackButton,\n  }: {\n    id: string\n    activities: unknown[]\n    hideBackButton?: boolean\n  }) {\n    this.id = id\n    this.activities = activities.map((json, index) => ({\n      lesson: this,\n      id: index + 1,\n      json,\n    }))\n    this.hideBackButton = !!hideBackButton\n  }\n\n  /**\n   * Find the next activity in the sequence, after the specified index\n   *\n   * @method function\n   * @memberOf Lesson\n   * @param {Number} activityIndex - the current activity index (1-based index)\n   * @return {Object} A clone of the next activity object\n   */\n  nextActivity(activityIndex: number) {\n    return cloneDeep(this.activities[activityIndex + 1])\n  }\n\n  /**\n   * Find an activity by its index (1-based)\n   *\n   * @method function\n   * @memberOf Lesson\n   * @param {Number} activityIndex - the index (1-based index) of the activity to find\n   * @return {Object} A clone of the activity object at the specified index\n   */\n  findActivity(activityIndex: number) {\n    return cloneDeep(this.activities[activityIndex - 1])\n  }\n\n  /**\n   * Find an activity manifest by its index (1-based)\n   *\n   * @method function\n   * @memberOf Lesson\n   * @param {Number} activityIndex - the index (1-based index) of the activity to find\n   * @return {Object} A clone of the activity object's manifest at the specified index\n   */\n  findActivityManifest(activityIndex: number) {\n    return cloneDeep(this.activities[activityIndex - 1]?.json)\n  }\n}\n\ninterface RouteParams {\n  lesson_id: string\n  isIframe?: string\n}\n\n/**\n * The sample lesson route\n */\nexport default class SampleLessonRoute extends Route<\n  SampleLessonRouteModel,\n  RouteParams\n> {\n  @service\n  declare urlMaker: UrlMakerService\n\n  override queryParams = {\n    isIframe: {\n      refreshModel: true,\n    },\n  }\n\n  /**\n   * Creates a lesson object and returns the first activity\n   *\n   * @param {String} id - The lesson id\n   * @param {Array} activities - An array of lesson activities\n   * @return {Object} - An activity object\n   */\n  getLessonActivity(id: string, activities: unknown[]) {\n    const lesson: { activities: unknown[] } = new SampleLessonRouteModel({\n      id,\n      activities,\n    })\n    const [firstActivity] = lesson.activities\n    return firstActivity\n  }\n\n  /**\n   * Returns the first activity object of a lesson as the model\n   *\n   * @param params - Url params\n   * @return Activity model\n   */\n  override async model(params: RouteParams) {\n    const id = params.lesson_id\n    const json = await ky\n      .get(\n        this.urlMaker.urlForInteractive('sample-lessons/reading/lessons', id),\n      )\n      .json<{ activities: unknown[] }>()\n\n    return new SampleLessonRouteModel({\n      id: params.lesson_id,\n      activities: json.activities,\n      hideBackButton: params.isIframe === 'true',\n    })\n  }\n\n  override error(): void {\n    window.history.back()\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\n\n/**\n * The sample lesson route\n */\nexport default class SampleLessonActivityRoute extends Route {\n  @service()\n  caperLoader\n\n  async model() {\n    const lesson = this.modelFor('sample.lesson')\n    const manifests = [lesson.findActivityManifest(1)]\n    const variables = {}\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type Transition from '@ember/routing/transition'\nimport type RouterService from '@ember/routing/router-service'\nimport Route from '@ember/routing/route'\nimport type Store from '@ember-data/store'\nimport { allowedDepartment } from 're-client/utils/department'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type { ParamsFor } from 're-client/utils/route-model'\nimport type ShopDepartmentRoute from 're-client/routes/shop/department'\n\nexport default class ShopRoute extends Route {\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare store: Store\n\n  @service\n  declare router: RouterService\n\n  override async model() {\n    const { department } = this.paramsFor(\n      'shop.department',\n    ) as ParamsFor<ShopDepartmentRoute>\n    const validDepartment = allowedDepartment(department)\n    const items = await this.store.findAll('item')\n    const studentItemsEmberArray = items.map((item) => item.get('code'))\n    const studentItems = [...studentItemsEmberArray]\n\n    const variables = {\n      student: this.user.student,\n      studentItems,\n      department: validDepartment,\n    }\n\n    const manifests = [this.urlMaker.urlForInteractive('main/shop')]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      department,\n      interactiveConfig,\n    }\n  }\n\n  /**\n   * When we come back from the catalogue we need to refresh the shop model in order to update\n   * the egg count, as the interactive variables are buried deep in the config data which wont trigger the model\n   * at all.\n   *\n   * todo: [tj] consider splitting the interactive variables into its own property which gets passed to the interactive\n   *       component. IN that way the component could rerender when the eggs change.\n   *\n   * @param transition\n   * @returns {boolean}\n   */\n  @action\n  override willTransition(transition: Transition) {\n    const willGotoShopPage = transition.to?.name === 'shop.department.index'\n    const isOnCatalogueRoute =\n      transition.from?.name === 'shop.department.catalogue'\n    if (willGotoShopPage && isOnCatalogueRoute) {\n      void this.router.refresh()\n    }\n    return true\n  }\n}\n","import Route from '@ember/routing/route'\n\ninterface RouteParams {\n  department: string\n}\n\nexport default class ShopDepartmentRoute extends Route<unknown, RouteParams> {}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type Store from '@ember-data/store'\nimport { allowedDepartment } from 're-client/utils/department'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type ThemeService from 're-client/services/theme'\nimport type { ModelFor, ParamsFor } from 're-client/utils/route-model'\nimport type ShopDepartmentRoute from 're-client/routes/shop/department'\nimport type ShopRoute from 're-client/routes/shop'\n\nexport default class ShopDepartmentCatalogueRoute extends Route {\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare theme: ThemeService\n\n  @service\n  declare store: Store\n\n  /**\n   * The catalogue interactive is slightly special as we are loading multiple manifest files\n   * The interactive is based on the `shopCatalogue` manifest and additionally augmented with\n   * a month specific manifest file.\n   *\n   * @returns {Promise<{shopModel: *, interactive: *, department: *}>}\n   */\n  override async model() {\n    const { department } = this.paramsFor(\n      'shop.department',\n    ) as ParamsFor<ShopDepartmentRoute>\n    const validDepartment = allowedDepartment(department)\n    const items = await this.store.findAll('item')\n    const studentItemsEmberArray = items.map((item) => item.get('code'))\n    const studentItems = [...studentItemsEmberArray]\n    const theme = this.theme.currentTheme\n\n    // variablesct the departments data from shop\n    const shopModel = this.modelFor('shop') as ModelFor<ShopRoute>\n\n    const departments: unknown =\n      // @ts-expect-error we don't have a type for this\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n      shopModel.interactiveConfig.manifest.content?.variables?.departments\n\n    const variables = {\n      student: this.user.student,\n      departments,\n      department: validDepartment,\n      studentItems,\n      theme: this.theme.currentTheme,\n      timeToNextMonth: this.theme.timeToNextTheme(),\n    }\n\n    const manifests = [\n      // theme specific manifest url\n      this.urlMaker.urlForInteractive(\n        'reading',\n        `shop_catalogue_${theme}_${department}`,\n      ),\n      // base catalogue manifest url\n      this.urlMaker.urlForInteractive('reading', 'shop_catalogue'),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      shopModel,\n      department,\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\n\nexport default class SongsIndexRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model() {\n    const manifests = [\n      this.urlMaker.urlForInteractive('music-cafe/activities/juke-box'),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests)\n\n    return { interactiveConfig }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\n\nexport default class SongsVideoRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model({ video_id: videoId }: Record<string, string>) {\n    const variables = {\n      showCloseButton: true,\n      skippable: true,\n      show_end_buttons: false,\n      skipSaveProgress: true,\n    }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('reading/video', videoId),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport config from 're-client/config/environment'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class SpellingFinishedReSpellingRoute extends Route {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare router: RouterService\n\n  override beforeModel() {\n    if (this.studentProgress.isAreaLocked('spelling')) {\n      void this.router.transitionTo('index')\n    } else if (\n      this.studentProgress.spellingCurrentMap <= config.APP.lastSpellingMap\n    ) {\n      void this.router.transitionTo(\n        'spelling.map',\n        this.studentProgress.spellingCurrentMap,\n      )\n    }\n  }\n\n  override async model() {\n    const variables = { student: this.user.student }\n    const manifests = [\n      this.urlMaker.urlForInteractive('spelling', 'finished_skills_bank'),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport config from 're-client/config/environment'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type SpellingService from 're-client/services/spelling'\nimport type RouterService from '@ember/routing/router-service'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type UserService from 're-client/services/user'\nimport ky from 'ky'\nimport type AssignmentsService from 're-client/services/assignments'\nimport { cloneDeep } from 'lodash'\nimport type { Manifest } from '@blakeelearning/content-loader-core'\n\n/**\n * Represents a lesson\n */\nexport class SpellingLessonActivity {\n  json?: { caper_module: string }\n\n  constructor(activity: unknown) {\n    Object.assign(this, activity)\n  }\n\n  isQuiz() {\n    const caperModule = this.json?.caper_module\n    const isQuizModule =\n      caperModule === 'readingeggs/activities/spelling/spelling_test'\n    return caperModule && isQuizModule\n  }\n}\n\n/**\n * Represents a lesson\n *\n * @class Lesson\n */\nexport class SpellingLessonRouteModel {\n  /**\n   * List of activity objects for this lesson\n   */\n  activities: {\n    lesson: SpellingLessonRouteModel\n    id: number\n    json: Record<string, unknown>\n  }[] = []\n\n  id: string\n\n  get lessonId() {\n    return this.id\n  }\n\n  constructor({\n    id,\n    activities,\n  }: {\n    id: string\n    activities: Record<string, unknown>[]\n  }) {\n    this.id = id\n    this.activities = activities.map((json, index) => ({\n      lesson: this,\n      id: index + 1,\n      json,\n    }))\n  }\n\n  /**\n   * Find the next activity in the sequence, after the specified index\n   *\n   * @method function\n   * @memberOf Lesson\n   * @param {Number} activityIndex - the current activity index (1-based index)\n   * @return {Object} A clone of the next activity object\n   */\n  nextActivity(activityIndex: number) {\n    return cloneDeep(this.activities[activityIndex + 1])\n  }\n\n  /**\n   * Find an activity by its index (1-based)\n   *\n   * @method function\n   * @memberOf Lesson\n   * @param {Number} activityIndex - the index (1-based index) of the activity to find\n   * @return {Object} A clone of the activity object at the specified index\n   */\n  findActivity(activityIndex: number) {\n    const activity = cloneDeep(this.activities[activityIndex - 1])\n    return new SpellingLessonActivity(activity)\n  }\n\n  /**\n   * Find an activity manifest by its index (1-based)\n   *\n   * @method function\n   * @memberOf Lesson\n   * @param {Number} activityIndex - the index (1-based index) of the activity to find\n   * @return {Object} A clone of the activity object's manifest at the specified index\n   */\n  findActivityManifest(activityIndex: number) {\n    const activity = this.activities[activityIndex - 1]\n    return cloneDeep(activity?.json) as unknown as Manifest\n  }\n}\n\ninterface RouteParams {\n  lesson_id: string\n}\n\n/**\n * The lesson route\n *\n * @class LessonRoute\n */\nexport default class SpellingLessonRoute extends Route<\n  SpellingLessonRouteModel,\n  RouteParams\n> {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare spelling: SpellingService\n\n  @service\n  declare assignments: AssignmentsService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare features: FeatureService\n\n  @service\n  declare user: UserService\n\n  /**\n   * Access control to lesson based on if the student needs to complete a placement test, executed before the model loads.\n   *\n   * Allows access if:\n   *  - `shouldForceAccess()` evaluates to `true`\n   *  - the student does not need to complete a placement test\n   *\n   * @instance beforeModel\n   * @memberOf LessonRoute\n   * @param {Object} params The url params\n   */\n  override beforeModel() {\n    if (this.shouldForceAccess()) {\n      return\n    }\n\n    if (this.studentProgress.showSpellingPlacementTest) {\n      void this.router.transitionTo('spelling.placement-test')\n      return\n    }\n\n    if (this.studentProgress.isAreaLocked('spelling')) {\n      void this.router.transitionTo('index')\n    }\n  }\n\n  /**\n   * The lesson model for the route\n   *\n   * @instance model\n   * @memberOf LessonRoute\n   * @type Ember.Object\n   * @param {Object} params The url params\n   * @return {Ember.Object} The Lesson object\n   */\n  override async model(params: RouteParams) {\n    const lessonId = params.lesson_id\n    this.spelling.setCurrentLesson(lessonId)\n\n    const json = await ky\n      .get(this.urlMaker.urlForInteractive('spelling/lessons', lessonId))\n      .json<{\n        activities: {\n          thumb?: { assetPath: string } | string\n        }[]\n      }>()\n\n    // The 'thumb' property of each activity is used by the activity sidebar\n    for (const activity of json.activities) {\n      if (\n        activity.thumb &&\n        typeof activity.thumb === 'object' &&\n        'assetPath' in activity.thumb\n      ) {\n        const { assetPath } = activity.thumb\n        activity.thumb = new URL(\n          assetPath,\n          config.contentLoader.caper.assetHosts.assets,\n        ).toString()\n      }\n    }\n\n    return new SpellingLessonRouteModel({\n      id: lessonId,\n      activities: json.activities,\n    })\n  }\n\n  /**\n   * Access control to lesson based on the student's progress, executed after the model loads.\n   *\n   * Allows access if:\n   *  - `shouldForceAccess()` evaluates to `true`\n   *  - the authorisation policy allows access, based on student progress\n   *\n   * @instance afterModel\n   * @memberOf LessonRoute\n   * @param {Object} params The url params\n   */\n\n  override afterModel(lesson: SpellingLessonRouteModel) {\n    if (this.shouldForceAccess()) {\n      return\n    }\n\n    if (lesson.id !== this.spelling.currentLesson) {\n      void this.router.transitionTo(\n        'spelling.lesson',\n        this.spelling.currentLesson,\n      )\n    }\n  }\n\n  shouldForceAccess() {\n    return this.assignments.currentTask?.__typename === 'AssignmentTaskSpelling'\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type SpellingService from 're-client/services/spelling'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type SpellingLessonRoute from 're-client/routes/spelling/lesson'\nimport type { SpellingLessonActivity } from 're-client/routes/spelling/lesson'\n\ninterface RouteModel {\n  interactiveConfig?: unknown\n  lesson: ModelFor<SpellingLessonRoute>\n  activityId: number\n  activity: SpellingLessonActivity\n  isAssignment?: boolean\n  sideBarActivityData?: unknown[]\n}\n\ninterface RouteParams {\n  activity_id: string\n}\n\n/**\n * The lesson activity route\n *\n * @class SpellingLessonActivityRoute\n */\nexport default class SpellingLessonActivityRoute extends Route<\n  RouteModel,\n  RouteParams\n> {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare spelling: SpellingService\n\n  @service\n  declare assignments: AssignmentsService\n\n  @service\n  declare user: UserService\n\n  @service()\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare router: RouterService\n\n  override async model({ activity_id }: RouteParams): Promise<RouteModel> {\n    const activityId = parseInt(activity_id, 10)\n    this.spelling.setCurrentActivity(activityId)\n    const lesson = this.modelFor(\n      'spelling.lesson',\n    ) as ModelFor<SpellingLessonRoute>\n    const activity = lesson.findActivity(activityId)\n    // This activity's manifest has already been loaded in the spelling.lesson\n    // parent route, so we pass the preloaded manifest to the interactiveLoader.\n    const manifests = [lesson.findActivityManifest(activityId)]\n    const isAssignment = this.assignments.canCompleteSpellingAssignmentTask(\n      lesson.id,\n      activityId,\n    )\n    const variables = {\n      student: this.user.student,\n      isAssignment,\n    }\n\n    const sideBarActivityData = lesson.activities.map((activity) => {\n      let status = 'locked'\n\n      if (activity.id === activityId) {\n        status = 'unlocked'\n      } else if (this.spelling.canPlayActivity(activity.id)) {\n        status = 'complete'\n      }\n\n      return { id: activity.id, thumbnail: activity.json['thumb'], status }\n    })\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n      lesson,\n      activityId,\n      activity,\n      isAssignment,\n      sideBarActivityData,\n    }\n  }\n\n  /**\n   * Access control to activity based on the student's progress, executed after the model loads.\n   *\n   * Allows access if:\n   *  - `shouldForceAccess()` evaluates to `true`\n   *  - the authorisation spelling allows access based on student progress\n   *\n   * @instance afterModel\n   * @memberOf SpellingLessonActivityRoute\n   * @param {Object} params The url params\n   */\n  override afterModel({ activityId, isAssignment, lesson }: RouteModel) {\n    const lastActivity = lesson.activities.length\n\n    if (isAssignment) {\n      return\n    }\n\n    if (activityId > lastActivity) {\n      this.router.transitionTo('spelling.lesson.activity', lastActivity)\n    } else if (activityId !== this.spelling.currentActivity) {\n      this.router.transitionTo(\n        'spelling.lesson.index',\n        this.spelling.currentLesson,\n      )\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type SpellingService from 're-client/services/spelling'\nimport type RouterService from '@ember/routing/router-service'\n\n/**\n * The lesson index route\n *\n * @class LessonIndexRoute\n */\nexport default class SpellingLessonIndexRoute extends Route {\n  @service\n  declare spelling: SpellingService\n\n  @service\n  declare router: RouterService\n\n  override beforeModel() {\n    const { currentLesson, currentActivity } = this.spelling\n    void this.router.transitionTo(\n      'spelling.lesson.activity',\n\n      currentLesson,\n      currentActivity,\n    )\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type SpellingService from 're-client/services/spelling'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\n\n/**\n * Faux-model for the SpellingLessonsMapRouter\n *\n * @class SpellingLessonsMapObject\n * @property {Number} mapId The map id\n */\nexport interface MapRouteModel {\n  mapId: number\n}\n\ninterface RouteParams {\n  map_id: string\n}\n\n/**\n * Loads student progress and checks to see if the map can be played according\n * to the progress loaded.\n *\n * @class SpellingMapRoute\n */\nexport default class MapRoute extends Route<MapRouteModel, RouteParams> {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare spelling: SpellingService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare user: UserService\n\n  override beforeModel() {\n    if (this.studentProgress.showSpellingPlacementTest) {\n      void this.router.transitionTo('spelling.placement-test')\n      return\n    }\n\n    if (this.studentProgress.isAreaLocked('spelling')) {\n      void this.router.transitionTo('index')\n    }\n  }\n\n  override model(params: RouteParams) {\n    const mapId = parseInt(params.map_id, 10)\n    this.spelling.setCurrentMap(mapId)\n    return { mapId }\n  }\n\n  override afterModel(model: MapRouteModel) {\n    // playability *only* accounts for if the currentMap is greater than the\n    // map asked for in the route, it does not care about overflows ie asking for map 1000\n    if (model.mapId !== this.spelling.currentMap) {\n      void this.router.transitionTo('spelling.map', this.spelling.currentMap)\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport config from 're-client/config/environment'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type ReleaseChecker from '@blakeelearning/app-refresher/release-checker/service'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type SpellingService from 're-client/services/spelling'\nimport ky from 'ky'\n\nconst {\n  APP: { apiNamespace, apiEndpoint },\n} = config\n\nlet prefixUrl = `/${apiNamespace}`\n\nif (apiEndpoint) {\n  prefixUrl = new URL(apiNamespace, apiEndpoint).href\n}\n\ninterface SpellingResults {\n  spelling_results: {\n    map: {\n      best_lesson_quiz_scores: unknown\n      best_map_quiz_percent: number\n    }\n    all_maps: {\n      first_lesson_quiz_completed_at: string\n      first_lesson_quiz_number: number\n      lesson_quizzes_average_score: number\n      best_lesson_quiz_score: number\n    }\n  }\n}\n\nexport default class SpellingMapIndexRoute extends Route {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare releaseChecker: ReleaseChecker\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare spelling: SpellingService\n\n  override async model() {\n    const {\n      currentMap,\n      nextMapId,\n      previousMapId,\n      canPlayQuizForMap,\n      isQuizComplete,\n      isOnFinalMap,\n    } = this.spelling\n    const mapId = currentMap\n\n    const avatarJsonRequest = this.caperLoader.avatarJsonRequest()\n    const quizComplete = isQuizComplete\n    const lessonNumber = this.studentProgress.spellingCurrentLessonNumber\n\n    const { spelling_results: spellingResults } = await ky\n      .get(`spelling_results/${mapId.toFixed()}`, {\n        credentials: 'include',\n        prefixUrl,\n      })\n      .json<SpellingResults>()\n\n    const { map, all_maps: allMaps } = spellingResults\n\n    const {\n      first_lesson_quiz_completed_at: initialLessonCompletedAt,\n      first_lesson_quiz_number: initialLessonNumber,\n    } = allMaps\n\n    const { best_map_quiz_percent: highestPercentage } = map\n\n    const lessonQuizSummary = {\n      average_correct_count: allMaps.lesson_quizzes_average_score,\n      highest_correct_count: allMaps.best_lesson_quiz_score,\n      lesson_quizzes: map.best_lesson_quiz_scores,\n    }\n\n    const variables = {\n      student: this.user.student,\n      map_id: mapId,\n      canPlayQuizForMap,\n      lesson_number: lessonNumber, // deprecated, remove once https://github.com/blake-education/caper-activities/pull/3862 is released\n      quiz_complete: quizComplete,\n      quiz_id: this.studentProgress.spellingCurrentLesson, // deprecated, remove once https://github.com/blake-education/caper-activities/pull/3862 is released\n      map_number: mapId,\n      lesson_quiz_summary: lessonQuizSummary,\n      current_lesson_number: lessonNumber, // deprecated, remove once https://github.com/blake-education/caper-activities/pull/3862 is released\n      initial_lesson_completed_at: initialLessonCompletedAt,\n      initial_lesson_number: initialLessonNumber,\n      highest_percentage: highestPercentage,\n      progressLessonNumber: this.studentProgress.spellingCurrentLessonNumber,\n      progressLessonPosition: this.studentProgress.spellingCurrentLesson,\n    }\n\n    const mapUrl = this.urlMaker.urlForInteractive('spelling/map', mapId)\n    const manifests = [mapUrl, avatarJsonRequest]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      isOnFinalMap,\n      mapId,\n      nextMapId,\n      previousMapId,\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type SpellingService from 're-client/services/spelling'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class QuizRoute extends Route {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare spelling: SpellingService\n\n  @service\n  declare router: RouterService\n\n  /**\n   * Make sure they can play the quiz on this map, if they can't send them back\n   * to their current map.\n   */\n  override beforeModel() {\n    const { canPlayQuizForMap } = this.spelling.setCurrentLesson('quiz')\n\n    if (!canPlayQuizForMap) {\n      void this.router.transitionTo(\n        'spelling.map.index',\n        this.studentProgress.spellingCurrentMap,\n      )\n    }\n  }\n\n  override async model() {\n    const { currentMap, nextMapId } = this.spelling\n    const variables = { student: this.user.student }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('spelling/quizzes', currentMap),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n      mapId: currentMap,\n      nextMapId,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type RouterService from '@ember/routing/router-service'\n\nexport default class MysteryGiftRoute extends Route {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare router: RouterService\n\n  /**\n   * We need to check if we are allow to reward gifts and redirect back to the current map\n   * based on the students progress\n   * @returns {Promise<void>}\n   */\n  override beforeModel() {\n    const { mysteryGiftAvailable } = this.user\n\n    if (!mysteryGiftAvailable) {\n      void this.router.transitionTo(\n        'spelling.map',\n        this.studentProgress.spellingCurrentMap,\n      )\n      return\n    }\n\n    if (this.studentProgress.isAreaLocked('spelling')) {\n      void this.router.transitionTo('index')\n    }\n  }\n\n  override async model() {\n    const variables = {}\n\n    const manifests = [this.urlMaker.urlForInteractive('skills-bank', 'shop')]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport config from 're-client/config/environment'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type RouterService from '@ember/routing/router-service'\n\n// eslint-disable-next-line ember/no-test-import-export\nexport default class PlacementTestRoute extends Route {\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare router: RouterService\n\n  override beforeModel() {\n    const { environment: env } = config\n    const canAlwaysVisitPlacementTest = env === 'development'\n\n    if (\n      !this.studentProgress.showSpellingPlacementTest &&\n      !canAlwaysVisitPlacementTest\n    ) {\n      void this.router.transitionTo(\n        'spelling.map',\n        this.studentProgress.spellingCurrentMap,\n      )\n      return\n    }\n\n    if (this.studentProgress.isAreaLocked('spelling')) {\n      void this.router.transitionTo('index')\n    }\n  }\n\n  override async model() {\n    const variables = { student: this.user.student }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('spelling', 'placement_test'),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\n\nexport default class StoryFactoryFloorRoute extends Route {\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model() {\n    const supportingAssets = [\n      this.caperLoader.storyFactoryAssetRequest('current'),\n      this.caperLoader.storyFactoryAssetRequest('previous'),\n      this.caperLoader.storyFactoryAssetRequest('voting'),\n      this.caperLoader.storyFactoryEntriesRequest(),\n    ]\n\n    const variables = { student: this.user.student }\n\n    const storyFactoryShowroomUrl = this.urlMaker.urlForInteractive(\n      'story-factory',\n      'story_factory_factory_floor',\n    )\n    const manifests = [storyFactoryShowroomUrl, ...supportingAssets]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\n\nexport default class StoryFactoryIndexRoute extends Route {\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model() {\n    const supportingAssets = [\n      this.caperLoader.storyFactoryAssetRequest('current'),\n      this.caperLoader.storyFactoryAssetRequest('previous'),\n      this.caperLoader.storyFactoryAssetRequest('voting'),\n      this.caperLoader.storyFactoryEntriesRequest(),\n    ]\n\n    const variables = { student: this.user.student }\n\n    const storyFactoryUrl = this.urlMaker.urlForInteractive(\n      'story-factory',\n      'story_factory_lobby',\n    )\n    const manifests = [storyFactoryUrl, ...supportingAssets]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\n\nexport default class StoryFactoryShowroomRoute extends Route {\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override async model() {\n    const supportingAssets = [\n      this.caperLoader.storyFactoryAssetRequest('current'),\n      this.caperLoader.storyFactoryAssetRequest('previous'),\n      this.caperLoader.storyFactoryAssetRequest('voting'),\n      this.caperLoader.storyFactoryEntriesRequest(),\n    ]\n\n    const variables = {\n      /**\n       * The caper code looks for the student's id from these variables in\n       * the book ratings contained in variables. Since all the ids in the variables\n       * are integers and the students ID is a string (per graphql ID scalar) we need\n       * to convert it to an integer here. Eventually it would be good to have to content\n       * code do this conversion.\n       */\n      student: { ...this.user.student, id: parseInt(this.user.student.id, 10) },\n    }\n\n    const storyFactoryShowroomUrl = this.urlMaker.urlForInteractive(\n      'story-factory',\n      'story_factory_showroom',\n    )\n    const manifests = [storyFactoryShowroomUrl, ...supportingAssets]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      interactiveConfig,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\n\nexport default class StorylandsBonusGameRoute extends Route {\n  @service\n  declare router: RouterService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override beforeModel() {\n    if (this.studentProgress.isAreaLocked('storylands')) {\n      void this.router.transitionTo('index')\n    }\n  }\n\n  override async model({ game_id: gameId }: Record<string, string>) {\n    const manifests = [\n      this.urlMaker.urlForInteractive('clinker-castle', gameId),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests)\n\n    return { interactiveConfig }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport config from 're-client/config/environment'\nimport type RouterService from '@ember/routing/router-service'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UserService from 're-client/services/user'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\n\nexport default class StorylandsFinishedReStorylandsRoute extends Route {\n  @service\n  declare router: RouterService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  override beforeModel() {\n    // guard against kids finding the route by \"accident\"\n    if (this.studentProgress.isAreaLocked('storylands')) {\n      void this.router.transitionTo('index')\n      return\n    }\n\n    if (\n      this.studentProgress.storylandsCurrentMap <=\n      config.studentProgress.progress.storylands.lastMap\n    ) {\n      void this.router.transitionTo(\n        'storylands.map',\n        this.studentProgress.storylandsCurrentMap,\n      )\n    }\n  }\n\n  override async model() {\n    const variables = { student: this.user.student }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('clinker-castle', 'finished_clinker'),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return { interactiveConfig }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport config from 're-client/config/environment'\nimport type StorylandsService from 're-client/services/storylands'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type UserService from 're-client/services/user'\nimport type RouterService from '@ember/routing/router-service'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport ky from 'ky'\nimport { cloneDeep } from 'lodash'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type { Manifest } from '@blakeelearning/content-loader-core'\n\ntype ManifestMaybeWithBookCode = Manifest & {\n  content?: {\n    variables?: {\n      code?: string\n    }\n  }\n}\n\n/**\n * Represents a lesson\n *\n * @class Lesson\n */\nexport class StorylandsLessonRouteModel {\n  id: string\n  activities: {\n    lesson: StorylandsLessonRouteModel\n    id: number\n    json: Record<string, unknown>\n  }[] = []\n\n  get lessonId() {\n    return this.id\n  }\n\n  constructor(lessonId: string, activities: Record<string, unknown>[]) {\n    this.id = lessonId\n    this.activities = activities.map((activityManifest, index) => ({\n      lesson: this,\n      id: index + 1,\n      json: activityManifest,\n    }))\n  }\n\n  /**\n   * Find the next activity in the sequence, after the specified index\n   *\n   * @method function\n   * @memberOf Lesson\n   * @param {Number} activityIndex - the current activity index (1-based index)\n   * @return {Object} A clone of the next activity object\n   */\n  nextActivity(activityIndex: number) {\n    return cloneDeep(this.activities[activityIndex + 1])\n  }\n\n  /**\n   * Find an activity by its index (1-based)\n   *\n   * @method function\n   * @memberOf Lesson\n   * @param {Number} activityIndex - the index (1-based index) of the activity to find\n   * @return {Object} A clone of the activity object at the specified index\n   */\n  findActivity(activityIndex: number) {\n    return cloneDeep(this.activities[activityIndex - 1])\n  }\n\n  /**\n   * Find an activity manifest by its index (1-based)\n   *\n   * @method function\n   * @memberOf Lesson\n   * @param {Number} activityIndex - the index (1-based index) of the activity to find\n   * @return {Object} A clone of the activity object's manifest at the specified index\n   */\n  findActivityManifest(activityIndex: number) {\n    return this.findActivity(activityIndex)\n      ?.json as unknown as ManifestMaybeWithBookCode\n  }\n}\n\ninterface RouteParams {\n  lesson_id: string\n}\n\nexport default class StorylandsLessonRoute extends Route<\n  StorylandsLessonRouteModel | undefined,\n  RouteParams\n> {\n  @service\n  declare router: RouterService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare assignments: AssignmentsService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare storylands: StorylandsService\n\n  @service\n  declare features: FeatureService\n\n  @service\n  declare user: UserService\n\n  override async model({ lesson_id: lessonId }: RouteParams) {\n    if (!this.ensureAccessAllowed(lessonId)) return\n\n    const json = await ky\n      .get(this.urlMaker.urlForInteractive('clinker-castle/lessons', lessonId))\n      .json<{\n        activities: {\n          thumb:\n            | {\n                assetPath: string\n              }\n            | string\n        }[]\n      }>()\n\n    // The `thumb` property of each activity is used by the activity sidebar\n    for (const activity of json.activities) {\n      if (\n        activity.thumb &&\n        typeof activity.thumb === 'object' &&\n        'assetPath' in activity.thumb\n      ) {\n        const { assetPath } = activity.thumb\n        activity.thumb = new URL(\n          assetPath,\n          config.contentLoader.caper.assetHosts.assets,\n        ).toString()\n      }\n    }\n\n    return new StorylandsLessonRouteModel(lessonId, json.activities)\n  }\n\n  /**\n   * Access control to lesson based on the student's progress, executed after the model loads.\n   *\n   * Allows access if:\n   *  - `shouldForceAccess()` evaluates to `true`\n   *  - the authorisation policy allows access, based on student progress\n   *\n   * @instance afterModel\n   * @memberOf LessonRoute\n   * @param {Object} params The url params\n   */\n\n  ensureAccessAllowed(lessonId: string) {\n    if (\n      this.assignments.currentTask?.__typename === 'AssignmentTaskClinkerCastle'\n    ) {\n      return true\n    }\n    if (this.studentProgress.isAreaLocked('storylands')) {\n      void this.router.transitionTo('index')\n      return false\n    }\n    if (!this.storylands.canPlayLessonActivity(lessonId, 1)) {\n      const { lastMap, lessonsPerMap } =\n        config.studentProgress.progress.storylands\n      const lastLesson = lastMap * lessonsPerMap\n      const currentLesson =\n        this.studentProgress.storylandsCurrentLesson > lastLesson\n          ? lastLesson\n          : this.studentProgress.storylandsCurrentLesson\n      void this.router.transitionTo('storylands.lesson', currentLesson)\n      return false\n    }\n\n    return true\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type StorylandsService from 're-client/services/storylands'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type LocationTrackerService from 're-client/services/location-tracker'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type StorylandsLessonRoute from 're-client/routes/storylands/lesson'\nimport type { StorylandsLessonRouteModel } from 're-client/routes/storylands/lesson'\nimport type Transition from '@ember/routing/transition'\nimport type BooksService from 're-client/services/books'\n\ninterface RouteModel {\n  interactiveConfig: unknown\n  lesson: StorylandsLessonRouteModel\n  activityId: number\n  sideBarActivityData: unknown[]\n  isAssignmentMode: boolean\n}\n\ninterface RouteParams {\n  activity_id: string\n}\n\n/**\n * The lesson activity route\n */\nexport default class StorylandsLessonActivityRoute extends Route<\n  RouteModel | undefined,\n  RouteParams\n> {\n  currentActivityId: number | null = null\n\n  @service\n  declare books: BooksService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare storylands: StorylandsService\n\n  @service\n  declare assignments: AssignmentsService\n\n  @service\n  declare locationTracker: LocationTrackerService\n\n  @service()\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  override async model(params: RouteParams): Promise<RouteModel | undefined> {\n    const lesson = this.modelFor(\n      'storylands.lesson',\n    ) as ModelFor<StorylandsLessonRoute>\n    const activityId = parseInt(params.activity_id, 10)\n    this.currentActivityId = activityId\n\n    if (!lesson || !this.ensureAccessAllowed(lesson, activityId)) return\n\n    const isAssignment = this.assignments.canCompleteStorylandsAssignmentTask(\n      lesson.id,\n      activityId,\n    )\n\n    // This activity's manifest has already been loaded in the storylands.lesson\n    // parent route, so we pass the preloaded manifest to the interactiveLoader.\n    const manifest = lesson.findActivityManifest(activityId)\n\n    const bookCode = manifest.content?.variables?.code\n    const isBook = !!bookCode\n    let bookVariables\n    if (isBook) {\n      bookVariables = {\n        bookContent: await this.books.fetchContent(bookCode),\n        disableQuiz: true,\n      }\n    }\n\n    const variables = {\n      student: this.user.student,\n      isAssignment,\n      ...bookVariables,\n    }\n\n    const interactiveConfig = await this.caperLoader.load([manifest], variables)\n\n    const sideBarActivityData = lesson.activities.map((activity) => {\n      let status = 'locked'\n\n      if (activity.id === activityId) {\n        status = 'unlocked'\n      } else if (\n        this.storylands.canPlayLessonActivity(lesson.id, activity.id)\n      ) {\n        status = 'complete'\n      }\n\n      return { id: activity.id, thumbnail: activity.json['thumb'], status }\n    })\n\n    return {\n      interactiveConfig,\n      lesson,\n      activityId,\n      sideBarActivityData,\n      isAssignmentMode: isAssignment,\n    }\n  }\n\n  /**\n   * Access control to activity based on the student's progress, executed after the model loads.\n   *\n   * Allows access if:\n   *  - `shouldForceAccess()` evaluates to `true`\n   *  - the authorisation storylands allows access based on student progress\n   *\n   * @instance afterModel\n   * @memberOf StorylandsLessonActivityRoute\n   * @param {Object} params The url params\n   */\n  override afterModel(model: RouteModel | undefined, transition: Transition) {\n    const currentRouteName = transition.to?.name\n    this.locationTracker.setCurrentRoute(currentRouteName, [\n      model?.lesson.id,\n      model?.activityId,\n    ])\n  }\n\n  ensureAccessAllowed(lesson: StorylandsLessonRouteModel, activityId: number) {\n    const lastActivity = lesson.activities.length\n\n    if (\n      this.assignments.canCompleteStorylandsAssignmentTask(\n        lesson.id,\n        activityId,\n      )\n    ) {\n      return true\n    }\n    if (activityId > lastActivity) {\n      this.router.transitionTo('storylands.lesson.activity', lastActivity)\n      return false\n    }\n    if (!this.storylands.canPlayLessonActivity(lesson.id, activityId)) {\n      this.router.transitionTo(\n        'storylands.lesson.index',\n        this.studentProgress.storylandsCurrentLesson,\n      )\n      return false\n    }\n    return true\n  }\n\n  /**\n   * Called by the application router, this indicates whether the current route can be safely refreshed.\n   *\n   * @return {boolean} true if the route can be refreshed\n   */\n  isRefreshable() {\n    const quizActivityNumber = 7\n    const notALessonQuiz =\n      typeof this.currentActivityId === 'number' &&\n      this.currentActivityId < quizActivityNumber\n    return notALessonQuiz\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type StorylandsLessonRoute from 're-client/routes/storylands/lesson'\nimport type RouterService from '@ember/routing/router-service'\nimport type StorylandsService from 're-client/services/storylands'\n\n/**\n * The lesson index route\n *\n * @class LessonIndexRoute\n */\nexport default class StorylandsLessonIndexRoute extends Route {\n  @service\n  declare router: RouterService\n\n  @service\n  declare storylands: StorylandsService\n\n  override beforeModel() {\n    const lesson = this.modelFor(\n      'storylands.lesson',\n    ) as ModelFor<StorylandsLessonRoute>\n\n    if (lesson) {\n      const lessonId = lesson.id\n      const activityId = this.storylands.currentActivityForLesson(lessonId)\n\n      this.router.transitionTo(\n        'storylands.lesson.activity',\n        lessonId,\n        activityId,\n      )\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport config from 're-client/config/environment'\nimport type LocationTrackerService from 're-client/services/location-tracker'\nimport type ReleaseChecker from '@blakeelearning/app-refresher/release-checker/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type UserService from 're-client/services/user'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type StorylandsService from 're-client/services/storylands'\nimport type Transition from '@ember/routing/transition'\nimport type { InteractiveConfig } from '@blakeelearning/content-loader-core'\n\n/**\n * Faux-model for the StorylandsLessonsMapRouter\n *\n * @class StorylandsLessonsMapObject\n * @property {Number} id The map id\n */\nexport class StorylandsMapRouteModel {\n  lastMap = config.studentProgress.progress.storylands.lastMap\n\n  id: number\n\n  constructor({ map_id }: RouteParams) {\n    this.id = Number(map_id)\n  }\n\n  get isFinishedStorylands() {\n    return this.id > this.lastMap\n  }\n\n  get previousMapId() {\n    return clamp(this.id - 1, 1, this.lastMap)\n  }\n\n  get nextMapId() {\n    return this.id + 1\n  }\n}\n\nfunction clamp(num: number, min: number, max: number) {\n  return Math.min(Math.max(num, min), max)\n}\n\ninterface RouteParams {\n  map_id: string\n}\n\ninterface RouteModel {\n  mapId: number\n  isFinishedStorylands: boolean\n  nextMapId: number\n  previousMapId: number\n  interactiveConfig: InteractiveConfig\n}\n\n/**\n * Loads student progress and checks to see if the map can be played according\n * to the progress loaded.\n *\n * @class StorylandsMapRoute\n */\nexport default class StorylandsMapRoute extends Route<\n  RouteModel | undefined,\n  RouteParams\n> {\n  @service\n  declare locationTracker: LocationTrackerService\n\n  @service\n  declare releaseChecker: ReleaseChecker\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare storylands: StorylandsService\n\n  override beforeModel() {\n    if (this.studentProgress.isAreaLocked('storylands')) {\n      void this.router.transitionTo('index')\n    }\n  }\n\n  /**\n   * Builds the map model from the map id parameter\n   *\n   * @instance\n   * @memberOf StorylandsMapRoute\n   *\n   * @param  {Object} params - The url params\n   * @return {Map} The model for the map\n   */\n  override async model(params: RouteParams): Promise<RouteModel | undefined> {\n    const {\n      id: mapId,\n      isFinishedStorylands,\n      nextMapId,\n      previousMapId,\n    } = new StorylandsMapRouteModel(params)\n\n    if (isFinishedStorylands) {\n      void this.router.transitionTo(\n        'storylands.map',\n        config.studentProgress.progress.storylands.lastMap,\n      )\n      return\n    }\n    // playability *only* accounts for if the currentMap is greater than the\n    // map asked for in the route, it does not care about overflows ie asking for map 1000\n    if (!this.storylands.canPlayMap(mapId)) {\n      void this.router.transitionTo(\n        'storylands.map',\n        this.studentProgress.storylandsCurrentMap,\n      )\n      return\n    }\n\n    const avatarJsonRequest = this.caperLoader.avatarJsonRequest()\n    const quizComplete = this.storylands.isQuizComplete(mapId)\n\n    const variables = {\n      student: this.user.student,\n      lesson_number: this.studentProgress.storylandsCurrentLesson,\n      map_number: mapId,\n      quiz_complete: quizComplete,\n    }\n\n    const mapUrl = this.urlMaker.urlForInteractive('clinker-castle/map', mapId)\n    const manifests = [mapUrl, avatarJsonRequest]\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      mapId,\n      isFinishedStorylands,\n      nextMapId,\n      previousMapId,\n      interactiveConfig,\n    }\n  }\n\n  override afterModel(model: RouteModel, transition: Transition) {\n    const currentRouteName = transition.to?.name\n    this.locationTracker.setCurrentRoute(currentRouteName, [model.mapId])\n\n    void this.router.transitionTo('storylands.map', model.mapId)\n  }\n}\n","import Route from '@ember/routing/route'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type Transition from '@ember/routing/transition'\n\nexport default class UnauthorisedRoute extends Route {\n  @service\n  declare router: RouterService\n\n  override beforeModel(transition: Transition) {\n    if (transition.from) {\n      return\n    }\n\n    // redirect to login page if transition.from is empty, which means this is the initial load\n    void this.router.replaceWith('login')\n  }\n}\n","import Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport { service } from '@ember/service'\nimport type UserService from 're-client/services/user'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type Transition from '@ember/routing/transition'\n\nexport default class WorldsRoute extends Route {\n  @service declare studentProgress: StudentProgressService\n  @service declare features: FeatureService\n  @service declare user: UserService\n  @service declare router: RouterService\n\n  override beforeModel(transition: Transition) {\n    if (!this.user.student.learningWorldsEnabled) {\n      void this.router.transitionTo('/')\n      return\n    }\n\n    if (transition.to?.name === 'worlds.index') {\n      const currentMap = this.studentProgress.lessonsCurrentMap\n      const lastMap = this.studentProgress.lessonsLastMap\n      if (currentMap < lastMap) {\n        this.router.replaceWith('worlds.world', currentMap)\n      } else {\n        this.router.replaceWith('worlds.world', lastMap)\n      }\n    }\n  }\n}\n","import Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport { service } from '@ember/service'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type LessonsService from 're-client/services/lessons'\n\ninterface ModelForRoute {\n  worldId: string\n}\n\nexport interface WorldParams extends Record<string, unknown> {\n  world_id: string\n}\n\nexport default class WorldRoute extends Route<ModelForRoute, WorldParams> {\n  @service declare learningWorlds: LearningWorldsService\n\n  @service declare router: RouterService\n\n  @service declare lessons: LessonsService\n\n  override async beforeModel() {\n    const { world_id: worldId } = this.paramsFor(this.routeName) as WorldParams\n\n    if (Number(worldId) > this.learningWorlds.finalWorld) {\n      this.router.transitionTo('lessons.map', worldId)\n      return\n    }\n\n    const highestUnlockedWorld =\n      await this.learningWorlds.highestUnlockedWorld()\n\n    if (Number(worldId) > highestUnlockedWorld) {\n      this.router.replaceWith('worlds.world', highestUnlockedWorld)\n    }\n  }\n\n  override model({ world_id: worldId }: WorldParams): ModelForRoute {\n    this.lessons.setCurrentMap(Number(worldId))\n    return { worldId }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type WorldRoute from 're-client/routes/worlds/world'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type {\n  NavigationItemId,\n  ActivityAreaActivity,\n  ActivityAreaActivityTheme,\n  ActivityAreaLetter,\n} from 're-client/routes/worlds/world/activity-area/index'\n\ninterface RouteParams {\n  activity_id: ActivityAreaActivity\n  letter: ActivityAreaLetter\n  theme?: ActivityAreaActivityTheme\n}\n\nexport interface ActivityAreaActivityVariables {\n  navigationItems: { id: NavigationItemId; url: string }[]\n  letter: ActivityAreaLetter\n  theme?: ActivityAreaActivityTheme\n}\n\nexport default class ActivityAreaActivityRoute extends Route<\n  unknown,\n  RouteParams\n> {\n  @service declare router: RouterService\n\n  @service declare learningWorlds: LearningWorldsService\n\n  override queryParams = {\n    theme: { refreshModel: true },\n  }\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override beforeModel() {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n    const { letter } = this.paramsFor(this.routeName) as RouteParams\n\n    if (\n      !this.learningWorlds.isContentUnlocked({\n        world: Number(worldId),\n        building: 'activity-area',\n        contentId: letter,\n      })\n    ) {\n      this.router.replaceWith('worlds.world', worldId)\n    }\n  }\n\n  override model({ activity_id: activityId, letter, theme }: RouteParams) {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n\n    const navigationItems: ActivityAreaActivityVariables['navigationItems'] = [\n      {\n        id: 'back',\n        url: this.router.urlFor('worlds.world.activity-area', worldId),\n      },\n    ]\n\n    const manifests = [\n      [`${activityId}-${letter}`, `worlds/${worldId.padStart(3, '0')}`],\n    ]\n\n    const variables: ActivityAreaActivityVariables = {\n      navigationItems,\n      letter,\n      ...(theme ? { theme } : {}),\n    }\n\n    return { worldId, manifests, variables }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type WorldRoute from 're-client/routes/worlds/world'\n\nexport type NavigationItemId = 'back' | 'activity'\n\nexport type ActivityAreaActivity =\n  | 'book'\n  | 'moving-targets'\n  | 'hopper'\n  | 'handwriting'\n\nexport type ActivityAreaActivityTheme =\n  // moving-targets\n  | 'boats'\n  | 'trains'\n  | 'trucks'\n  | 'planes'\n  // hopper\n  | 'honey_bees'\n  | 'hopper_birds'\n  | 'frog_hops'\n  | 'island_hop'\n  | 'jumping_astronauts'\n  | 'leaping_penguins'\n\nexport type ActivityAreaLetter = 'm' | 's' | 'a' | 't' | 'f' | 'c'\n\nexport interface ActivityAreaVariables {\n  navigationItems: { id: NavigationItemId; url: string }[]\n  previousInteractions: string[]\n  highestCompletedLesson: number\n  previousWorldsOnboarding: string[]\n  worldsStartingLesson: number\n}\n\nexport default class ActivityAreaIndexRoute extends Route {\n  @service declare learningWorlds: LearningWorldsService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare router: RouterService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override beforeModel() {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n\n    if (\n      !this.learningWorlds.isBuildingUnlocked({\n        world: Number(worldId),\n        building: 'activity-area',\n      })\n    ) {\n      this.router.replaceWith('worlds.world', worldId)\n    }\n  }\n\n  override async model() {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n\n    const { previousInteractions, previousWorldsOnboarding } =\n      await this.learningWorlds.fetchWorldData({\n        world: Number(worldId),\n      })\n\n    const highestCompletedLesson =\n      this.studentProgress.lessonsLastCompletedLessonNumber\n\n    const navigationItems: ActivityAreaVariables['navigationItems'] = [\n      { id: 'back', url: this.router.urlFor('worlds.world', worldId) },\n    ]\n\n    const manifests = [['activity-area', `worlds/${worldId.padStart(3, '0')}`]]\n\n    const variables: ActivityAreaVariables = {\n      navigationItems,\n      previousInteractions,\n      highestCompletedLesson,\n      previousWorldsOnboarding,\n      worldsStartingLesson: this.learningWorlds.studentStartingLesson,\n    }\n\n    return { worldId, manifests, variables }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type WorldRoute from 're-client/routes/worlds/world'\n\nexport type NavigationItemId = 'back' | 'read_book'\n\nexport interface BookAreaVariables {\n  navigationItems: { id: NavigationItemId; url: string }[]\n  previousInteractions: string[]\n  highestCompletedLesson: number\n  previousWorldsOnboarding: string[]\n  worldsStartingLesson: number\n}\n\nexport default class BookAreaIndexRoute extends Route {\n  @service declare learningWorlds: LearningWorldsService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare router: RouterService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override beforeModel() {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n\n    if (\n      !this.learningWorlds.isBuildingUnlocked({\n        world: Number(worldId),\n        building: 'book-area',\n      })\n    ) {\n      this.router.replaceWith('worlds.world', worldId)\n    }\n  }\n\n  override async model() {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n\n    const { previousInteractions, previousWorldsOnboarding } =\n      await this.learningWorlds.fetchWorldData({\n        world: Number(worldId),\n      })\n\n    const highestCompletedLesson =\n      this.studentProgress.lessonsLastCompletedLessonNumber\n\n    const navigationItems: BookAreaVariables['navigationItems'] = [\n      { id: 'back', url: this.router.urlFor('worlds.world', worldId) },\n      {\n        id: 'read_book',\n        // `worlds.world.book-area.reader` requires a `book` dynamic segment,\n        // which isn't known yet here, so `router.urlFor` can't generate this\n        // url (it throws without a book code). Build the base path instead.\n        url: `${this.router.urlFor('worlds.world.book-area', worldId)}/reader`,\n      },\n    ]\n\n    const manifests = [['book-area', `worlds/${worldId.padStart(3, '0')}`]]\n\n    const variables: BookAreaVariables = {\n      navigationItems,\n      previousInteractions,\n      highestCompletedLesson,\n      previousWorldsOnboarding,\n      worldsStartingLesson: this.learningWorlds.studentStartingLesson,\n    }\n\n    return { worldId, manifests, variables }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type BooksService from 're-client/services/books'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type WorldRoute from 're-client/routes/worlds/world'\nimport type JesterLoaderService from 're-client/services/jester-loader'\nimport type RouterService from '@ember/routing/router-service'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\n\ninterface RouteParams {\n  book: string\n}\n\ntype NavigationItemId = 'back'\n\ninterface Variables {\n  bookContent: object\n  navigationItems: { id: NavigationItemId; url: string }[]\n}\n\ninterface ReaderModel {\n  worldId: string\n  manifests: string[][]\n  variables: Variables\n}\n\nexport default class BookAreaReaderRoute extends Route<unknown, RouteParams> {\n  @service\n  declare books: BooksService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare jesterLoader: JesterLoaderService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare learningWorlds: LearningWorldsService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override beforeModel() {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n    const { book } = this.paramsFor(this.routeName) as RouteParams\n\n    if (\n      !this.learningWorlds.isContentUnlocked({\n        world: Number(worldId),\n        building: 'book-area',\n        contentId: book,\n      })\n    ) {\n      this.router.replaceWith('worlds.world', worldId)\n    }\n  }\n\n  override async model({ book }: RouteParams): Promise<ReaderModel> {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n\n    const bookContent = await this.books.fetchContent(book)\n    if (bookContent === undefined) {\n      this.router.replaceWith('worlds.world.book-area', worldId)\n      // the replaceWith above aborts this transition, so this value is never rendered\n      return undefined as unknown as ReaderModel\n    }\n\n    const navigationItems: Variables['navigationItems'] = [\n      {\n        id: 'back',\n        url: this.router.urlFor('worlds.world.book-area', worldId),\n      },\n    ]\n\n    const variables: Variables = {\n      bookContent,\n      navigationItems,\n    }\n\n    const manifests = [['book-reader', `worlds/${worldId.padStart(3, '0')}`]]\n\n    return { worldId, manifests, variables }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type UserService from 're-client/services/user'\nimport { assert, debug } from '@ember/debug'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type CertificateService from 're-client/services/certificate'\nimport type { WorldParams } from '../world'\n\nexport default class WorldsCertificateRoute extends Route {\n  @service declare certificate: CertificateService\n\n  @service declare user: UserService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare features: FeatureService\n\n  @service declare router: RouterService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model() {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n    const {\n      data: { student },\n    } = await this.certificate.getPendingCertificate()\n\n    if (!student?.pendingCertificate) {\n      debug(`[CertificateRoute] model() - no pending certificate`)\n      await this.router.replaceWith('worlds.world', worldId)\n      assert('pendingCertificate exists', student?.pendingCertificate)\n    }\n\n    const {\n      map,\n      colour,\n      scorePercentage: percentage,\n      quizResultCreatedAt: date,\n      id: pendingCertificateId,\n    } = student.pendingCertificate\n\n    const manifests = [\n      ['map-certificate', `maps/${map.toString().padStart(3, '0')}`],\n    ]\n\n    const mapResult = {\n      date,\n      percentage,\n      colour,\n    }\n\n    return {\n      variables: {\n        studentName: student.name,\n        mapResult,\n        displayBackButton: true,\n      },\n      manifests,\n      pendingCertificateId,\n      worldId,\n      map,\n    }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type WorldRoute from 're-client/routes/worlds/world'\nimport type JesterLoaderService from 're-client/services/jester-loader'\nimport type UserService from 're-client/services/user'\n\ninterface RouteParams {\n  game: string\n}\n\nexport type NavigationItemId = 'back'\n\nexport interface GamesAreaGameVariables {\n  navigationItems: { id: NavigationItemId; url: string }[]\n  previousInteractions: string[]\n  highestCompletedLesson: number\n  student: object\n}\n\nconst gamesAreaGameIds = [\n  // world 1\n  'keepy_uppy',\n  'super_bouncy_ball',\n  // world 2\n  'juicy_slice',\n  'wheely_racer',\n]\n\nexport default class GamesAreaGameRoute extends Route {\n  @service declare jesterLoader: JesterLoaderService\n\n  @service declare learningWorlds: LearningWorldsService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override beforeModel() {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n    const { game } = this.paramsFor(this.routeName) as RouteParams\n\n    if (\n      !this.learningWorlds.isContentUnlocked({\n        world: Number(worldId),\n        building: 'games-area',\n        contentId: game,\n      })\n    ) {\n      this.router.replaceWith('worlds.world', worldId)\n    }\n  }\n\n  override async model({ game }: RouteParams) {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n\n    if (!gamesAreaGameIds.includes(game)) {\n      this.router.replaceWith('worlds.world.games-area', worldId)\n    }\n\n    const { previousInteractions } = await this.learningWorlds.fetchWorldData({\n      world: Number(worldId),\n    })\n\n    const highestCompletedLesson =\n      this.studentProgress.lessonsLastCompletedLessonNumber\n\n    const navigationItems: GamesAreaGameVariables['navigationItems'] = [\n      {\n        id: 'back',\n        url: this.router.urlFor('worlds.world.games-area', worldId),\n      },\n    ]\n\n    const manifests = [\n      [game.replace(/_/g, '-'), `worlds/${worldId.padStart(3, '0')}`],\n    ]\n\n    const variables: GamesAreaGameVariables = {\n      navigationItems,\n      previousInteractions,\n      highestCompletedLesson,\n      student: this.user.student,\n    }\n\n    return { manifests, variables, worldId }\n  }\n}\n","import Route from '@ember/routing/route'\nimport { service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type WorldRoute from 're-client/routes/worlds/world'\nimport type JesterLoaderService from 're-client/services/jester-loader'\n\nexport type NavigationItemId = 'back' | 'game'\n\nexport interface GamesAreaVariables {\n  navigationItems: {\n    id: NavigationItemId\n    url: string\n  }[]\n  previousInteractions: string[]\n  highestCompletedLesson: number\n  previousWorldsOnboarding: string[]\n  worldsStartingLesson: number\n}\n\nexport default class GamesAreaIndexRoute extends Route {\n  @service declare jesterLoader: JesterLoaderService\n\n  @service declare learningWorlds: LearningWorldsService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare router: RouterService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override beforeModel() {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n\n    if (\n      !this.learningWorlds.isBuildingUnlocked({\n        world: Number(worldId),\n        building: 'games-area',\n      })\n    ) {\n      this.router.replaceWith('worlds.world', worldId)\n    }\n  }\n\n  override async model() {\n    const { worldId } = this.modelFor('worlds.world') as ModelFor<WorldRoute>\n\n    const { previousInteractions, previousWorldsOnboarding } =\n      await this.learningWorlds.fetchWorldData({\n        world: Number(worldId),\n      })\n\n    const highestCompletedLesson =\n      this.studentProgress.lessonsLastCompletedLessonNumber\n\n    const navigationItems: GamesAreaVariables['navigationItems'] = [\n      { id: 'back', url: this.router.urlFor('worlds.world', worldId) },\n      {\n        id: 'game',\n        url: this.router.urlFor('worlds.world.games-area', worldId),\n      },\n    ]\n\n    const manifests = [['games-area', `worlds/${worldId.padStart(3, '0')}`]]\n\n    const variables: GamesAreaVariables = {\n      navigationItems,\n      previousInteractions,\n      highestCompletedLesson,\n      previousWorldsOnboarding,\n      worldsStartingLesson: this.learningWorlds.studentStartingLesson,\n    }\n\n    return { manifests, variables, worldId }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type ApolloService from 're-client/services/apollo'\nimport type { DocumentType } from 're-client/graphql'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type RouterService from '@ember/routing/router-service'\nimport { NotAuthenticatedError } from 're-client/utils/errors'\nimport type { WorldParams } from '../../world'\nimport type { StudentMyAwardsFragment } from 're-client/routes/awards'\nimport { getMyAwardsQueryDocument } from 're-client/routes/awards'\n\ntype StudentMyAwards = DocumentType<typeof StudentMyAwardsFragment>\n\ninterface Variables {\n  badges: StudentMyAwards['badges'] | undefined\n  certificates: StudentMyAwards['certificates'] | undefined\n  currentMap: number | undefined\n  pendingCertificate: StudentMyAwards['pendingCertificate'] | undefined\n  maxMap: number\n  displayBackButton: boolean\n}\n\nexport default class HomeBaseAwardsRoute extends Route {\n  @service declare apollo: ApolloService\n\n  @service declare user: UserService\n\n  @service declare features: FeatureService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare router: RouterService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model() {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n    const {\n      data: { student },\n    } = await this.apollo.query({\n      query: getMyAwardsQueryDocument,\n      fetchPolicy: 'no-cache',\n    })\n\n    if (!student) {\n      throw new NotAuthenticatedError(\n        'null student returned from GetMyAwards query',\n      )\n    }\n\n    const manifests = [['awards', `worlds/${worldId.padStart(3, '0')}`]]\n\n    const variables: Variables = {\n      badges: student.badges,\n      certificates: student.certificates,\n      currentMap: student.progress.lessons.currentMap,\n      pendingCertificate: student.pendingCertificate,\n      maxMap: this.studentProgress.lessonsLastMap,\n      displayBackButton: true,\n    }\n\n    return {\n      variables,\n      manifests,\n      worldId,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport type Store from '@ember-data/store'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type RouterService from '@ember/routing/router-service'\nimport type { WorldParams } from '../../world'\n\nexport default class HomeBaseChangingRoomRoute extends Route {\n  @service\n  declare user: UserService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare store: Store\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model() {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n\n    const items = await this.store.findAll('item', { reload: true })\n    const studentItemsEmberArray = items.map((item) =>\n      item.getProperties(\n        'aisle',\n        'code',\n        'department',\n        'state',\n        'imageUrl',\n        'animationUrl',\n        'animationJson',\n        'id',\n      ),\n    )\n    const studentItems = [...studentItemsEmberArray]\n    const student = {\n      name: this.user.student.name,\n      dna: { ...this.user.student.dna },\n    }\n    const variables = {\n      student,\n      studentItems,\n    }\n\n    const manifests = [['index', 'avatar-change-room']]\n\n    const backHref = this.router.urlFor('worlds.world.home-base', worldId)\n\n    return {\n      manifests,\n      variables,\n      worldId,\n      backHref,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type JesterLoaderService from 're-client/services/jester-loader'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type { WorldParams } from '../../world'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type UserService from 're-client/services/user'\nimport type RouterService from '@ember/routing/router-service'\nimport { getMyAwardsQueryDocument } from 're-client/routes/awards'\nimport type ApolloService from 're-client/services/apollo'\n\ntype NavigationItemId = 'back' | 'my_awards' | 'changing_room'\ninterface AvatarDna {\n  arms: string\n  decal: string\n  egg: string\n  extra: string\n  hat: string\n  head: string\n  legs: string\n  sunnies: string\n}\n\ninterface HomeBaseVariables {\n  navigationItems: {\n    id: NavigationItemId\n    url: string\n  }[]\n  avatarDna: AvatarDna\n  eggs: number\n  previousInteractions: string[]\n  highestCompletedLesson: number // for critters in memory wall\n  previousWorldsOnboarding: string[]\n  hasAwards: boolean\n  worldsStartingLesson: number\n}\n\nexport default class HomeBaseRoute extends Route {\n  @service\n  declare jesterLoader: JesterLoaderService\n\n  @service\n  declare learningWorlds: LearningWorldsService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare apollo: ApolloService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model() {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n\n    const { previousInteractions, previousWorldsOnboarding } =\n      await this.learningWorlds.fetchWorldData({\n        world: Number(worldId),\n      })\n\n    const navigationItems: HomeBaseVariables['navigationItems'] = [\n      { id: 'back', url: this.router.urlFor('worlds.world', worldId) },\n      {\n        id: 'my_awards',\n        url: this.router.urlFor('worlds.world.home-base.awards', worldId),\n      },\n      {\n        id: 'changing_room',\n        url: this.router.urlFor(\n          'worlds.world.home-base.changing-room',\n          worldId,\n        ),\n      },\n    ]\n\n    const {\n      data: { student },\n    } = await this.apollo.query({\n      query: getMyAwardsQueryDocument,\n    })\n\n    const hasAwards =\n      student && (student.badges.length > 0 || student.certificates.length > 0)\n        ? true\n        : false\n\n    const variables: HomeBaseVariables = {\n      navigationItems,\n      previousInteractions,\n      highestCompletedLesson:\n        this.studentProgress.lessonsLastCompletedLessonNumber,\n      eggs: this.user.student.eggs,\n      avatarDna: { ...this.user.student.dna },\n      previousWorldsOnboarding,\n      hasAwards,\n      worldsStartingLesson: this.learningWorlds.studentStartingLesson,\n    }\n\n    const manifests = [['home-base', `worlds/${worldId.padStart(3, '0')}`]]\n\n    return {\n      manifests,\n      variables,\n      worldId,\n    }\n  }\n}\n","import { action } from '@ember/object'\nimport { inject as service } from '@ember/service'\nimport type Transition from '@ember/routing/transition'\nimport Route from '@ember/routing/route'\nimport type Store from '@ember-data/store'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type RouterService from '@ember/routing/router-service'\nimport type { WorldParams } from '../../world'\n\nexport default class HomeBaseShopRoute extends Route {\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare store: Store\n\n  @service\n  declare router: RouterService\n\n  override async model() {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n\n    const items = await this.store.findAll('item')\n    const studentItems = [...items.map((item) => item.get('code'))]\n\n    const variables = {\n      student: this.user.student,\n      studentItems,\n      department: 'avatar',\n      hideHouseDepartment: true,\n    }\n\n    const manifests = [this.urlMaker.urlForInteractive('main/shop')]\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    return {\n      department: 'avatar' as const,\n      interactiveConfig,\n      worldId,\n    }\n  }\n\n  /**\n   * When we come back from the catalogue we need to refresh the shop model in order to update\n   * the egg count, as the interactive variables are buried deep in the config data which wont trigger the model\n   * at all.\n   *\n   * @param transition\n   * @returns {boolean}\n   */\n  @action\n  override willTransition(transition: Transition) {\n    const willGoToShopIndex =\n      transition.to?.name === 'worlds.world.home-base.shop.index'\n    const isOnCatalogueRoute =\n      transition.from?.name === 'worlds.world.home-base.shop.catalogue'\n    if (willGoToShopIndex && isOnCatalogueRoute) {\n      void this.router.refresh()\n    }\n    return true\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type Store from '@ember-data/store'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type ThemeService from 're-client/services/theme'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type HomeBaseShopRoute from 're-client/routes/worlds/world/home-base/shop'\nimport type { WorldParams } from '../../../world'\n\nexport default class HomeBaseShopCatalogueRoute extends Route {\n  @service\n  declare caperLoader: CaperLoaderService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare theme: ThemeService\n\n  @service\n  declare store: Store\n\n  @service\n  declare router: RouterService\n\n  override async model() {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n    const items = await this.store.findAll('item')\n    const studentItemsEmberArray = items.map((item) => item.get('code'))\n    const studentItems = [...studentItemsEmberArray]\n    const theme = this.theme.currentTheme\n\n    const shopModel = this.modelFor(\n      'worlds.world.home-base.shop',\n    ) as ModelFor<HomeBaseShopRoute>\n\n    const departments: unknown =\n      // @ts-expect-error we don't have a type for this\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n      shopModel.interactiveConfig.manifest.content?.variables?.departments\n\n    const variables = {\n      student: this.user.student,\n      departments,\n      department: 'avatar',\n      studentItems,\n      theme: this.theme.currentTheme,\n      timeToNextMonth: this.theme.timeToNextTheme(),\n    }\n\n    const manifests = [\n      // theme specific manifest url\n      this.urlMaker.urlForInteractive(\n        'reading',\n        `shop_catalogue_${theme}_avatar`,\n      ),\n      // base catalogue manifest url\n      this.urlMaker.urlForInteractive('reading', 'shop_catalogue'),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    const backHref = this.router.urlFor('worlds.world.home-base.shop', worldId)\n\n    return {\n      department: 'avatar' as const,\n      interactiveConfig,\n      worldId,\n      backHref,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type HomeBaseShopRoute from 're-client/routes/worlds/world/home-base/shop'\n\nexport default class HomeBaseShopIndexRoute extends Route {\n  @service\n  declare router: RouterService\n\n  override model() {\n    const shopModel = this.modelFor(\n      'worlds.world.home-base.shop',\n    ) as ModelFor<HomeBaseShopRoute>\n\n    const backHref = this.router.urlFor(\n      'worlds.world.home-base.changing-room',\n      shopModel.worldId,\n    )\n\n    return {\n      ...shopModel,\n      backHref,\n    }\n  }\n}\n","import Route from '@ember/routing/route'\nimport type { WorldParams } from '../world'\nimport { service } from '@ember/service'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type UserService from 're-client/services/user'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type CertificateService from 're-client/services/certificate'\nimport type ApolloService from 're-client/services/apollo'\nimport { getMyAwardsQueryDocument } from 're-client/routes/awards'\nimport { getQuizResultsForMap } from 're-client/utils/quiz-results'\nimport type RouterService from '@ember/routing/router-service'\nimport type LessonsService from 're-client/services/lessons'\nimport type DebugModeService from 're-client/services/debug-mode'\n\ninterface AvatarDNA {\n  arms: string\n  decal: string\n  egg: string\n  extra: string\n  hat: string\n  head: string\n  legs: string\n  sunnies: string\n}\n\ntype NavigationItemId =\n  | 'map'\n  | 'logout'\n  | 'lesson'\n  | 'quiz'\n  | 'previous_world'\n  | 'next_world'\n  | 'home_base'\n  | 'activity_area'\n  | 'music_area'\n  | 'book_area'\n  | 'games_area'\n  | 'placement_test'\n  | 'certificate'\n\ninterface LessonQuizResult {\n  lesson: number\n  stars: 1 | 2 | 3\n}\ninterface MapQuizResult {\n  stars: 1 | 2 | 3\n}\ninterface PendingCertificate {\n  map: number\n}\n// type OnboardingSectionId =\n//   | 'welcome'\n//   | 'home_base_avatar'\n//   | 'home_base_awards'\n//   | 'home_base_change_room'\n//   | 'first_mission'\n//   | 'first_area'\n//   | 'activity_area'\n//   | 'music_area'\n//   | 'games_area'\n//   | 'book_area'\n\n// type AreaRevealId =\n//   | 'home_base_1' // basic\n//   | 'activity_area_1' // basic\n//   | 'activity_area_2' // posh\n//   | 'music_area_1' // basic\n//   | 'music_area_2' // posh\n//   | 'music_area_3' // poshest\n//   | 'games_area_1' // basic\n//   | 'games_area_2' // posh\n//   | 'book_area_1' // basic\n//   | 'book_area_2' // posh\n//   | 'book_area_3' // poshest\n//   | 'trophy_1' // ???\n//   | 'world_complete' // ???\n\ninterface NavigationItem {\n  id: NavigationItemId\n  url: string\n}\n\nexport interface WorldVariables {\n  navigationItems: NavigationItem[]\n  // topbar\n  eggs: number\n  lessonQuizResults: LessonQuizResult[]\n  mapQuizResult: MapQuizResult | undefined\n  // lesson progress state\n  highestCompletedLesson: number\n  // world area state\n  worldsStartingLesson: number // the lesson number where the student was entered into the worlds experience\n  areaRevealPosition: string | null | undefined // the id of the highest area reveal that the student has seen in this world\n  progressCurrentMap: number // used to work around progression reset edgecase where student has a map quiz result from prior to a progress reset.\n  // onboarding\n  previousWorldsOnboarding: string[]\n  // Other things\n  finalWorld: number // to identify when worlds is complete\n  pendingCertificate: PendingCertificate | null | undefined // show the certificate modal (pending design, we could simplify to a boolean)\n  placementTestRequired: boolean // show the placement test modal\n  previousInteractions: string[] // for random fun stuff\n  avatarUrl: string\n  avatarDna: AvatarDNA\n}\ninterface ModelForRoute {\n  worldId: string\n  variables: WorldVariables\n  manifests: string[][]\n}\n\nexport default class WorldIndexRoute extends Route {\n  @service declare learningWorlds: LearningWorldsService\n\n  @service declare user: UserService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare certificate: CertificateService\n\n  @service declare apollo: ApolloService\n\n  @service declare router: RouterService\n\n  @service declare lessons: LessonsService\n\n  @service declare debugMode: DebugModeService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override beforeModel() {\n    // Disable debug mode when loading a world so that the menu is collapsed by default\n    this.debugMode.disable()\n  }\n\n  override async model(): Promise<ModelForRoute> {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n    const currentWorld = Number(worldId)\n    this.lessons.setCurrentMap(currentWorld)\n\n    const navigationItems: NavigationItem[] = [\n      { id: 'map', url: this.router.urlFor('worlds.world.map', worldId) },\n      { id: 'logout', url: this.router.urlFor('logout') },\n      { id: 'lesson', url: `${this.router.urlFor('lessons')}/lesson` }, // content to append `/${lessonNumber}`\n      {\n        id: 'quiz',\n        url: this.router.urlFor('worlds.world.map-quiz', worldId),\n      },\n      {\n        id: 'previous_world',\n        url: this.router.urlFor(\n          'worlds.world',\n          String(Math.max(currentWorld - 1, 1)),\n        ),\n      },\n      {\n        id: 'next_world',\n        url: this.router.urlFor('worlds.world', String(currentWorld + 1)), // TODO: final world logic\n      },\n      {\n        id: 'home_base',\n        url: this.router.urlFor('worlds.world.home-base', worldId),\n      },\n      {\n        id: 'activity_area',\n        url: this.router.urlFor('worlds.world.activity-area', worldId),\n      },\n      {\n        id: 'music_area',\n        url: this.router.urlFor('worlds.world.music-area', worldId),\n      },\n      {\n        id: 'book_area',\n        url: this.router.urlFor('worlds.world.book-area', worldId),\n      },\n      {\n        id: 'games_area',\n        url: this.router.urlFor('worlds.world.games-area', worldId),\n      },\n      {\n        id: 'placement_test',\n        url: this.router.urlFor('lessons.placement-test'),\n      },\n      {\n        id: 'certificate',\n        url: this.router.urlFor('worlds.world.certificate', worldId),\n      },\n    ]\n\n    const {\n      data: { student },\n    } = await this.apollo.query({\n      query: getMyAwardsQueryDocument,\n    })\n\n    const {\n      previousInteractions,\n      areaRevealPosition,\n      previousWorldsOnboarding,\n    } = await this.learningWorlds.fetchWorldData({ world: currentWorld })\n\n    const { lessonQuizResults, mapQuizResult } = getQuizResultsForMap({\n      badges: student?.badges,\n      certificates: student?.certificates,\n      currentMap: currentWorld,\n      quizComplete: currentWorld < this.studentProgress.lessonsCurrentMap,\n    })\n\n    const variables: WorldVariables = {\n      avatarUrl: this.user.student.avatarUrl,\n      eggs: this.user.student.eggs,\n      lessonQuizResults,\n      mapQuizResult,\n      highestCompletedLesson:\n        this.studentProgress.lessonsLastCompletedLessonNumber,\n      progressCurrentMap: this.studentProgress.lessonsCurrentMap,\n      worldsStartingLesson: this.learningWorlds.studentStartingLesson,\n      areaRevealPosition,\n      previousWorldsOnboarding,\n      previousInteractions,\n      finalWorld: this.learningWorlds.finalWorld,\n      pendingCertificate: student?.pendingCertificate,\n      placementTestRequired: this.studentProgress.showLessonsPlacementTest,\n      navigationItems,\n      avatarDna: { ...this.user.student.dna },\n    }\n\n    const manifests = [['world', `worlds/${worldId.padStart(3, '0')}`]]\n\n    return { manifests, variables, worldId }\n  }\n}\n","import Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type Transition from '@ember/routing/transition'\nimport { inject as service } from '@ember/service'\nimport type UserService from 're-client/services/user'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type CertificateService from 're-client/services/certificate'\nimport type AskReggieService from 're-client/services/ask-reggie'\nimport type { WorldParams } from 're-client/routes/worlds/world'\n\nexport default class WorldsWorldLessonsRoute extends Route {\n  @service declare certificate: CertificateService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  @service declare askReggie: AskReggieService\n\n  @service declare features: FeatureService\n\n  override async beforeModel(transition: Transition) {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n\n    // Don't redirect to the certificate route if we are already heading there\n    if (transition.to?.name !== 'worlds.world.certificate') {\n      const hasPendingCertificate =\n        await this.certificate.hasPendingCertificate()\n\n      if (hasPendingCertificate) {\n        void this.router.replaceWith('worlds.world.certificate', worldId)\n      }\n    }\n\n    if (this.askReggie.data?.__typename === 'AskReggieSkipLesson') {\n      void this.router.replaceWith(\n        'worlds.world.lessons.lesson.activity',\n        worldId,\n        this.askReggie.data.lesson,\n        this.askReggie.data.activity,\n      )\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type ActivityService from 're-client/services/activity'\nimport type UserService from 're-client/services/user'\nimport type RouterService from '@ember/routing/router-service'\nimport type { Activity } from 're-client/services/activity'\nimport type { Framework } from 're-client/graphql/graphql'\nimport type LessonsService from 're-client/services/lessons'\nimport type LessonManifestBundlesService from 're-client/services/lesson-manifest-bundles'\nimport type { WorldParams } from 're-client/routes/worlds/world'\n\nexport interface SideBarData {\n  id: number\n  thumbnail: string | undefined\n}\n\ninterface Params extends Record<string, unknown> {\n  lesson_id: string\n  return_to?: string\n}\n\ninterface WorldsWorldLessonsLessonRouteModel {\n  activitiesForLesson: Activity[]\n  backHref: string\n  lessonId: string\n  manifestBundles: Map<Framework, unknown>\n  returnToMap: boolean\n  sideBarData: SideBarData[]\n}\n\nexport default class WorldsWorldLessonsLessonRoute extends Route<\n  WorldsWorldLessonsLessonRouteModel,\n  Params\n> {\n  @service declare studentProgress: StudentProgressService\n\n  @service declare lessons: LessonsService\n\n  @service declare activity: ActivityService\n\n  @service declare lessonManifestBundles: LessonManifestBundlesService\n\n  @service declare user: UserService\n\n  @service declare router: RouterService\n\n  override queryParams = { return_to: { refreshModel: false } }\n\n  override beforeModel() {\n    if (this.studentProgress.showLessonsPlacementTest) {\n      void this.router.transitionTo('lessons.placement-test')\n    }\n  }\n\n  override async model(params: Params) {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n    const lessonId = params.lesson_id\n    this.lessons.setCurrentLesson(lessonId)\n\n    const activitiesForLesson =\n      this.activity.getReadingActivitiesByLessonId(lessonId)\n\n    let manifestBundles = new Map<Framework, unknown>()\n    let sideBarData: SideBarData[] = []\n    if (this.activity.hasReadingActivitiesByLessonId(lessonId)) {\n      manifestBundles =\n        await this.lessonManifestBundles.fetchManifestBundlesForActivities(\n          activitiesForLesson,\n        )\n      sideBarData = activitiesForLesson.map(\n        ({ activityInLesson, framework, manifestKey }) => ({\n          id: activityInLesson,\n          thumbnail: this.lessonManifestBundles.getActivityThumbnail(\n            framework,\n            manifestKey,\n            manifestBundles,\n          ),\n        }),\n      )\n    } else {\n      void this.router.replaceWith(\n        'worlds.world.lessons.lesson.index',\n        worldId,\n        this.studentProgress.lessonsCurrentLessonNumber,\n      )\n    }\n\n    const returnToMap = params.return_to === 'map'\n    const backHref = returnToMap\n      ? this.router.urlFor('worlds.world.map', worldId)\n      : this.router.urlFor('worlds.world', worldId)\n\n    return {\n      activitiesForLesson,\n      backHref,\n      manifestBundles,\n      returnToMap,\n      sideBarData,\n      lessonId,\n    }\n  }\n\n  override afterModel(model: WorldsWorldLessonsLessonRouteModel) {\n    if (model.lessonId !== this.lessons.currentLesson) {\n      const { world_id: worldId } = this.paramsFor(\n        'worlds.world',\n      ) as WorldParams\n      void this.router.replaceWith(\n        'worlds.world.lessons.lesson',\n        worldId,\n        this.lessons.currentLesson,\n      )\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport { get } from 'lodash'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type LessonsService from 're-client/services/lessons'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type UserService from 're-client/services/user'\nimport type { GqlStudent } from 're-client/services/user'\nimport type RouterService from '@ember/routing/router-service'\nimport type ActivityService from 're-client/services/activity'\nimport { CustomerTypeEnum, Framework } from 're-client/graphql/graphql'\nimport type { ModelFor } from 're-client/utils/route-model'\nimport type { InteractiveConfig } from '@blakeelearning/content-loader-core'\nimport type WorldsWorldLessonsLessonRoute from 're-client/routes/worlds/world/lessons/lesson'\nimport type { SideBarActivityData } from 're-client/components/activity-sidebar/activity-item'\nimport type BooksService from 're-client/services/books'\nimport type AskReggieService from 're-client/services/ask-reggie'\nimport type { AskReggieVariables } from 're-client/services/ask-reggie'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type PosthogService from 're-client/services/posthog'\nimport type LessonManifestBundlesService from 're-client/services/lesson-manifest-bundles'\nimport type { WorldParams } from 're-client/routes/worlds/world'\nimport type StudentMetricsService from 're-client/services/student-metrics'\nimport type { MetricsCollectorLocationSegment } from 're-client/services/student-metrics'\n\nexport interface Params extends Record<string, unknown> {\n  activity_id: string\n}\n\ninterface BaseModel {\n  activityId: number\n  activityType?: string\n  askReggieLessonSkipAttempt: boolean\n  askReggieContentVariables: AskReggieVariables\n  backHref?: string\n  lessonId: string\n  lessonInPrecinct?: number\n  map: number\n  maxLives?: number | undefined\n  returnToMap?: boolean\n  sideBarActivityData?: SideBarActivityData[]\n  worldId: string\n}\n\ninterface CaperModel extends BaseModel {\n  interactiveConfig: InteractiveConfig\n  isCaperActivity: true\n}\n\ninterface Variables {\n  student: GqlStudent\n  isAssignment: boolean\n}\n\ninterface JesterModel extends BaseModel {\n  isCaperActivity?: false\n  manifests?: string[][]\n  variables?: Variables\n}\n\ntype Model = CaperModel | JesterModel\n\ntype Activity =\n  ModelFor<WorldsWorldLessonsLessonRoute>['activitiesForLesson'][number]\n\nexport default class WorldsWorldLessonsLessonActivityRoute extends Route<\n  Model,\n  Params\n> {\n  @service declare studentProgress: StudentProgressService\n\n  @service('lessons') declare progress: LessonsService\n\n  @service declare books: BooksService\n\n  @service declare caperLoader: CaperLoaderService\n\n  @service declare features: FeatureService\n\n  @service declare user: UserService\n\n  @service declare activity: ActivityService\n\n  @service declare router: RouterService\n\n  @service declare askReggie: AskReggieService\n\n  @service declare posthog: PosthogService\n\n  @service declare lessonManifestBundles: LessonManifestBundlesService\n\n  @service declare studentMetrics: StudentMetricsService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model(params: Params): Promise<Model> {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n    const activityId = Number(params.activity_id)\n    const { currentLesson } = this.progress.setCurrentActivity(activityId)\n\n    const lessonModel = this.modelFor(\n      'worlds.world.lessons.lesson',\n    ) as ModelFor<WorldsWorldLessonsLessonRoute>\n\n    const {\n      activitiesForLesson,\n      manifestBundles,\n      sideBarData,\n      backHref,\n      returnToMap,\n    } = lessonModel\n    const activity: Activity | undefined = activitiesForLesson.find(\n      ({ activityInLesson }) => activityInLesson === activityId,\n    )\n\n    const sideBarActivityData = sideBarData.map((sideBarActivity) => {\n      let status: SideBarActivityData['status'] = 'locked'\n\n      if (sideBarActivity.id === activityId) {\n        status = 'unlocked'\n      } else if (this.progress.canPlayActivity(sideBarActivity.id)) {\n        status = 'complete'\n      }\n\n      return { ...sideBarActivity, status }\n    })\n\n    if (!activity) {\n      void this.router.replaceWith(\n        'worlds.world.lessons.lesson.index',\n        worldId,\n        this.studentProgress.lessonsCurrentLessonNumber,\n      )\n    } else {\n      const { lessonInPrecinct } = activity\n\n      const askReggieLessonSkipAttempt =\n        this.askReggie.data?.__typename === 'AskReggieSkipLesson' &&\n        this.askReggie.data.lesson === Number(currentLesson) &&\n        this.askReggie.data.activity === activityId\n\n      if (\n        !askReggieLessonSkipAttempt &&\n        this.askReggie.data?.__typename === 'AskReggieSkipLesson'\n      ) {\n        void this.router.replaceWith('index')\n      }\n\n      const askReggieContentVariables = this.askReggie.contentVariables({\n        currentLesson: Number(currentLesson),\n        currentActivity: activityId,\n      })\n\n      let bookVariables\n      const isBook = activity.__typename == 'ReadingActivityBook'\n      if (isBook) {\n        bookVariables = {\n          bookContent: await this.books.fetchContent(activity.bookCode),\n          disableQuiz: true,\n        }\n      }\n\n      const maxLivesVariables = this.getMaxLivesVariables(activity)\n\n      const isCaperActivity = activity.framework === Framework.Caper\n      if (isCaperActivity) {\n        const manifestBundle = this.lessonManifestBundles.getManifestBundle(\n          activity.framework,\n          manifestBundles,\n        )\n\n        const manifests = [\n          get(manifestBundle, activity.manifestKey),\n        ] as string[]\n\n        const learningStateContextUuid = this.trackLearningStateContext({\n          activityFramework: 'caper',\n          currentLesson,\n          activityId,\n          map: activity.map,\n          worldId,\n        })\n\n        const variables = {\n          student: this.user.student,\n          isAssignment: false,\n          askReggie: askReggieContentVariables,\n          ...bookVariables,\n          ...maxLivesVariables,\n          ...this.getLearningStateVariables(currentLesson, activityId),\n          learningStateContextUuid,\n        }\n\n        const interactiveConfig = await this.caperLoader.load(\n          manifests,\n          variables,\n        )\n\n        return {\n          interactiveConfig,\n          activityId,\n          backHref,\n          lessonId: currentLesson,\n          activityType: activity.__typename,\n          map: activity.map,\n          returnToMap,\n          sideBarActivityData,\n          isCaperActivity,\n          lessonInPrecinct,\n          askReggieLessonSkipAttempt,\n          askReggieContentVariables,\n          maxLives: maxLivesVariables.maxLives,\n          worldId,\n        }\n      }\n\n      const isJesterActivity = activity.framework === Framework.Jester\n      if (isJesterActivity) {\n        const manifests = [[...activity.manifestKey, activity.manifestBundle]] // [['readingeggs-1-end-of-lesson-skills-quiz', 'lessons/001']]\n\n        const learningStateContextUuid = this.trackLearningStateContext({\n          activityFramework: 'jester',\n          currentLesson,\n          activityId,\n          map: activity.map,\n          worldId,\n        })\n\n        const variables = {\n          student: this.user.student,\n          isAssignment: false,\n          askReggie: askReggieContentVariables,\n          ...bookVariables,\n          ...maxLivesVariables,\n          ...this.getLearningStateVariables(currentLesson, activityId),\n          learningStateContextUuid,\n        }\n\n        return {\n          activityId,\n          backHref,\n          lessonId: currentLesson,\n          activityType: activity.__typename,\n          map: activity.map,\n          returnToMap,\n          sideBarActivityData,\n          isCaperActivity,\n          manifests,\n          variables,\n          lessonInPrecinct,\n          askReggieLessonSkipAttempt,\n          askReggieContentVariables,\n          maxLives: maxLivesVariables.maxLives,\n          worldId,\n        }\n      }\n    }\n\n    throw new Error('Unknown activity framework')\n  }\n\n  /**\n   * Access control to activity based on the student's progress, executed after the model loads.\n   *\n   * Allows access if:\n   *  - the authorisation policy allows access, based on student progress\n   *\n   * @instance afterModel\n   * @memberOf WorldsWorldLessonsLessonActivityRoute\n   * @param {Object} params The url params\n   */\n  override afterModel(model: Model) {\n    if (model.activityId !== this.progress.currentActivity) {\n      const { world_id: worldId } = this.paramsFor(\n        'worlds.world',\n      ) as WorldParams\n      void this.router.transitionTo(\n        'worlds.world.lessons.lesson.index',\n        worldId,\n        this.progress.currentLesson,\n      )\n      return\n    }\n\n    this.captureEnterActivity(model)\n  }\n\n  private captureEnterActivity({\n    activityId,\n    lessonId,\n    activityType,\n    map,\n    maxLives,\n  }: Model) {\n    if (!this.features.isEnabled('re_posthog-capture-activity-visits')) return\n    const {\n      lessonsCurrentLesson: progressLesson,\n      lessonsCurrentActivity: progressActivity,\n      lessonsCurrentMap: progressMap,\n    } = this.studentProgress\n    const lessonMatchesProgress = lessonId === progressLesson\n\n    this.posthog.capture('student_enter_activity', {\n      precinct: 'lessons',\n      lesson: Number(lessonId),\n      activity: activityId,\n      activity_type: activityType,\n      map,\n      progress_lesson:\n        progressLesson === 'quiz' ? 'quiz' : Number(progressLesson),\n      progress_activity: progressActivity,\n      progress_map: progressMap,\n      lesson_matches_progress: lessonMatchesProgress,\n      activity_matches_progress:\n        lessonMatchesProgress && activityId === progressActivity,\n      map_matches_progress: map === progressMap,\n      assignment_mode: false,\n      max_lives: maxLives,\n      '$feature/re_lessons-activities-max-lives': this.features\n        .getClient()\n        .getObjectDetails('re_lessons-activities-max-lives', { payload: 3 })\n        .variant,\n    })\n  }\n\n  private getMaxLivesVariables(activity: Activity) {\n    const maxLivesVariables: { maxLives?: number } = {}\n    if (activity.__typename === 'ReadingActivityInteractive') {\n      if (this.user.student.customerType === CustomerTypeEnum.B2CStudent) {\n        maxLivesVariables.maxLives = this.features.getClient().getObjectValue<{\n          payload: number\n        }>('re_lessons-activities-max-lives', { payload: 3 }).payload\n      } else {\n        maxLivesVariables.maxLives = 3\n      }\n    }\n\n    return maxLivesVariables\n  }\n\n  /**\n   * Position variables captured at load time so the game can echo them back\n   * with its learning state payload. Reading them when the payload is sent is\n   * too late: the game's teardown fires after the route has transitioned, so\n   * the controller model (and student progress) may already point at the next\n   * activity.\n   */\n  private getLearningStateVariables(currentLesson: string, activityId: number) {\n    return {\n      lessonInPrecinct: Number(currentLesson),\n      activityInLesson: activityId,\n      lessonPreviouslyCompleted:\n        this.studentProgress.lessonsCurrentLessonNumber > Number(currentLesson),\n    }\n  }\n\n  /**\n   * Tracks the route/precinct context for this activity instance, keyed by a\n   * uuid, so it can be correctly attached to the learning-state event when\n   * this specific activity later saves its learning state - even if the\n   * student has since navigated to a different activity. Done here, rather\n   * than from a content-driven signal fired after load, so it runs exactly\n   * once per activity instantiation and the path is derived from this route's\n   * own params instead of the live (and by then possibly stale) current URL.\n   */\n  private trackLearningStateContext({\n    activityFramework,\n    currentLesson,\n    activityId,\n    map,\n    worldId,\n  }: {\n    activityFramework: 'caper' | 'jester'\n    currentLesson: string\n    activityId: number\n    map: number\n    worldId: string\n  }): string {\n    const path = this.router.urlFor(\n      'worlds.world.lessons.lesson.activity',\n      worldId,\n      currentLesson,\n      activityId,\n    )\n\n    const precinctLocation = this.metricsCollectorLocationFromProgress({\n      map,\n      lesson: currentLesson,\n      activity: activityId,\n    })\n\n    const studentPrecinctProgress = this.metricsCollectorLocationFromProgress({\n      map: this.studentProgress.lessonsCurrentMap,\n      lesson: this.studentProgress.lessonsCurrentLesson,\n      activity: this.studentProgress.lessonsCurrentActivity,\n    })\n\n    return this.studentMetrics.trackLearningStateContext({\n      path,\n      activityFramework,\n      activityVariant: this.user.accent,\n      assignment: false,\n      assignmentUuid: undefined,\n      precinct: 'lessons',\n      precinctLocation,\n      studentPrecinctProgress,\n    })\n  }\n\n  private metricsCollectorLocationFromProgress(precinctLocation: {\n    map: number\n    lesson: string\n    activity: number\n  }): MetricsCollectorLocationSegment[] {\n    const { activity, lesson, map } = precinctLocation\n\n    return [\n      { name: 'map', position: map },\n      ...(lesson === 'quiz'\n        ? [{ name: 'quiz' }]\n        : [\n            { name: 'lesson', position: Number(lesson) },\n            { name: 'activity', position: activity },\n          ]),\n    ]\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type LessonsService from 're-client/services/lessons'\nimport type { WorldParams } from 're-client/routes/worlds/world'\n\n/**\n * The lesson index route\n */\nexport default class WorldsWorldLessonsLessonIndexRoute extends Route {\n  @service\n  declare lessons: LessonsService\n\n  @service\n  declare router: RouterService\n\n  /**\n   * Transition to the current activity in the lesson, based on the student's progress, or the first activity for the lesson\n   */\n  override afterModel() {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n    const { currentLesson, currentActivity } = this.lessons\n    void this.router.transitionTo(\n      'worlds.world.lessons.lesson.activity',\n      worldId,\n      currentLesson,\n      currentActivity,\n    )\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type UserService from 're-client/services/user'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type RouterService from '@ember/routing/router-service'\nimport type { InteractiveConfig } from '@blakeelearning/content-loader-core'\nimport type LessonsService from 're-client/services/lessons'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type CertificateService from 're-client/services/certificate'\nimport type ActivityService from 're-client/services/activity'\nimport type { WorldParams } from '../world'\n\ninterface WorldsMapQuizModel {\n  interactiveConfig: InteractiveConfig\n  worldId: string\n  returnToMap: boolean\n  backHref: string\n}\n\ninterface RouteParams {\n  return_to?: string\n}\n\nexport default class WorldsMapQuizRoute extends Route<WorldsMapQuizModel> {\n  @service declare certificate: CertificateService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare lessons: LessonsService\n\n  @service declare caperLoader: CaperLoaderService\n\n  @service declare user: UserService\n\n  @service declare urlMaker: UrlMakerService\n\n  @service declare features: FeatureService\n\n  @service declare router: RouterService\n\n  @service declare activity: ActivityService\n\n  override queryParams = { return_to: { refreshModel: false } }\n\n  override beforeModel() {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n    const { canPlayQuizForMap } = this.lessons.setCurrentLesson('quiz')\n    if (!canPlayQuizForMap) {\n      void this.router.replaceWith('worlds.world', worldId)\n    }\n  }\n\n  override async model({\n    return_to,\n  }: RouteParams): Promise<WorldsMapQuizModel> {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n    const currentMap = Number(worldId)\n    const certificates = await this.certificate.getCertificates()\n\n    const previousBestScorePercentage = certificates?.find(\n      (certificate) => certificate.map === currentMap,\n    )?.scorePercentage\n\n    const variables = {\n      student: this.user.student,\n      previousBestScorePercentage,\n    }\n\n    const manifests = [\n      this.urlMaker.urlForInteractive('reading/quizzes', currentMap),\n    ]\n\n    const interactiveConfig = await this.caperLoader.load(manifests, variables)\n\n    const returnToMap = return_to === 'map'\n\n    const backHref = returnToMap\n      ? this.router.urlFor('worlds.world.map', worldId)\n      : this.router.urlFor('worlds.world', worldId)\n\n    return {\n      interactiveConfig,\n      worldId,\n      returnToMap,\n      backHref,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type JesterLoaderService from 're-client/services/jester-loader'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type { WorldParams } from '../../world'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type ApolloService from 're-client/services/apollo'\nimport { getMyAwardsQueryDocument } from 're-client/routes/awards'\nimport config from 're-client/config/environment'\nimport type LoadingUiService from 're-client/services/loading-ui'\nimport type UserService from 're-client/services/user'\nimport type ActivityService from 're-client/services/activity'\nimport type LessonsService from 're-client/services/lessons'\nimport {\n  getQuizResultsForMap,\n  type LessonQuizResult,\n  type MapQuizResult,\n} from 're-client/utils/quiz-results'\n\ninterface Variables {\n  displayBackButton: boolean\n  hideNavigationArrows: boolean\n  hideReggieVideo: boolean\n\n  avatar: AvatarDna\n  canPlayMapQuiz: boolean\n  firstMapInSession: boolean\n  firstName: string\n  lastMapInProgram: number\n  lessonQuizResults: LessonQuizResult[]\n  mapQuizResult?: MapQuizResult\n  progressCurrentLessonNumber: number\n}\n\ninterface AvatarDna {\n  arms: string\n  decal: string\n  egg: string\n  extra: string\n  hat: string\n  head: string\n  legs: string\n  sunnies: string\n}\nexport default class WorldsWorldMapIndexRoute extends Route {\n  @service\n  declare jesterLoader: JesterLoaderService\n\n  @service\n  declare learningWorlds: LearningWorldsService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare user: UserService\n\n  @service\n  declare activity: ActivityService\n\n  @service\n  declare lessons: LessonsService\n\n  @service\n  declare features: FeatureService\n\n  @service\n  declare apollo: ApolloService\n\n  @service\n  declare loadingUi: LoadingUiService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override async model() {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n\n    const currentMap = Number(worldId)\n    // Reset the lessons service's tracked lesson/activity, as lessons.map does.\n    // worlds.world's model doesn't re-run when returning here from a lesson, so\n    // without this the last played lesson's activity would be treated as the\n    // current one and block entering the next lesson.\n    this.lessons.setCurrentMap(currentMap)\n    const canPlayQuizForMap = this.lessons.isWithinProgress(currentMap, 'quiz')\n    const quizComplete = currentMap < this.studentProgress.lessonsCurrentMap\n\n    sessionStorage.setItem('has_seen_reggie_bubble', 'true')\n\n    const variables: Variables = {\n      avatar: this.user.student.dna,\n      canPlayMapQuiz: canPlayQuizForMap,\n      firstName: this.user.student.firstName,\n      lastMapInProgram: config.APP.lastMap,\n      lessonQuizResults: [],\n      progressCurrentLessonNumber:\n        this.studentProgress.lessonsCurrentLessonNumber,\n\n      displayBackButton: true,\n      hideNavigationArrows: true,\n      hideReggieVideo: true,\n      firstMapInSession: false,\n    }\n\n    const manifests = [['map', `maps/${worldId.padStart(3, '0')}`]]\n\n    const {\n      data: { student },\n    } = await this.apollo.query({\n      query: getMyAwardsQueryDocument,\n    })\n\n    const { lessonQuizResults, mapQuizResult } = getQuizResultsForMap({\n      badges: student?.badges,\n      certificates: student?.certificates,\n      currentMap,\n      quizComplete,\n    })\n\n    variables.lessonQuizResults = lessonQuizResults\n    if (mapQuizResult) {\n      variables.mapQuizResult = mapQuizResult\n    }\n\n    return {\n      manifests,\n      variables,\n      worldId,\n    }\n  }\n}\n","import { inject as service } from '@ember/service'\nimport Route from '@ember/routing/route'\nimport type RouterService from '@ember/routing/router-service'\nimport type JesterLoaderService from 're-client/services/jester-loader'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport type { WorldParams } from '../world'\nimport type LearningWorldsService from 're-client/services/learning-worlds'\n\nexport default class MusicAreaRoute extends Route {\n  @service\n  declare jesterLoader: JesterLoaderService\n\n  @service\n  declare learningWorlds: LearningWorldsService\n\n  @service\n  declare studentProgress: StudentProgressService\n\n  @service\n  declare router: RouterService\n\n  override buildRouteInfoMetadata() {\n    return {\n      willHideLoadingScreenManually: true,\n    }\n  }\n\n  override beforeModel() {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n\n    if (\n      !this.learningWorlds.isBuildingUnlocked({\n        world: Number(worldId),\n        building: 'music-area',\n      })\n    ) {\n      this.router.replaceWith('worlds.world', worldId)\n    }\n  }\n\n  override async model() {\n    const { world_id: worldId } = this.paramsFor('worlds.world') as WorldParams\n\n    const { previousInteractions, previousWorldsOnboarding } =\n      await this.learningWorlds.fetchWorldData({\n        world: Number(worldId),\n      })\n\n    const variables = {\n      navigationItems: [{ id: 'back', url: `worlds/${worldId}` }],\n      previousInteractions,\n      highestCompletedLesson:\n        this.studentProgress.lessonsLastCompletedLessonNumber,\n      previousWorldsOnboarding,\n      worldsStartingLesson: this.learningWorlds.studentStartingLesson,\n    }\n\n    const manifests = [['music-area', `worlds/${worldId.padStart(3, '0')}`]]\n\n    return {\n      manifests,\n      variables,\n      worldId,\n    }\n  }\n}\n","import { ActiveModelSerializer } from 'active-model-adapter'\n\nexport default class ApplicationSerializer extends ActiveModelSerializer {}\n","import ApplicationEmbeddedRecordsSerializer from 're-client/serializers/embedded-records'\n\nexport default class BookshelfSerializer extends ApplicationEmbeddedRecordsSerializer {\n  attrs = {\n    bookCovers: {\n      deserialize: 'records',\n    },\n  }\n}\n","import { inject as service } from '@ember/service'\nimport { get, set } from '@ember/object'\nimport { camelize } from '@ember/string'\nimport ApplicationSerializer from 're-client/serializers/application'\n\n// This class was extracted from ember-data, which provides it as a Mixin.\n// https://github.com/emberjs/data/blob/669361954b96f622b1f04ec3150717b6a7f80081/packages/serializer/addon/-private/embedded-records-mixin.js#L135\n// Mixins are antithetical to the Octane programming model, which prefers native classes,\n// and are under discussion for removal in Ember 4.0 or 5.0.\n// Embedded API records are a legacy use case, and we don't intend to use\n// it for any new features.\n// Furthermore, this app only deserializes embedded records at the time this\n// class was extracted (May 2021), so support for serializing records has been\n// intentionally neutered to prevent expanded usage of this legacy functionality.\n// This file may need updating by adapting from the ember-data repo, if bugfixes are\n// contributed there that we want.\nexport default class ApplicationEmbeddedRecordsSerializer extends ApplicationSerializer {\n  @service\n  store\n\n  serialize() {\n    throw new Error(\n      'ApplicationEmbeddedRecordsSerializer does not support serializing records, only deserializing / normalizing.',\n    )\n  }\n\n  /**\n    Normalize the record and recursively normalize/extract all the embedded records\n    while pushing them into the store as they are encountered\n\n    A payload with an attr configured for embedded records needs to be extracted:\n\n    ```js\n    {\n      \"post\": {\n        \"id\": \"1\"\n        \"title\": \"Rails is omakase\",\n        \"comments\": [{\n          \"id\": \"1\",\n          \"body\": \"Rails is unagi\"\n        }, {\n          \"id\": \"2\",\n          \"body\": \"Omakase O_o\"\n        }]\n      }\n    }\n    ```\n    @method normalize\n    @param {Model} typeClass\n    @param {Object} hash to be normalized\n    @param {String} prop the hash has been referenced by\n    @return {Object} the normalized hash\n  */\n  normalize(typeClass, hash, prop) {\n    const normalizedHash = super.normalize(typeClass, hash, prop)\n    return this._extractEmbeddedRecords(\n      this,\n      this.store,\n      typeClass,\n      normalizedHash,\n    )\n  }\n\n  keyForRelationship(key, typeClass, method) {\n    if (method === 'deserialize' && this.hasDeserializeRecordsOption(key)) {\n      return this.keyForAttribute(key, method)\n    }\n    return super.keyForRelationship(key, typeClass, method) || key\n  }\n\n  // checks config for attrs option to embedded (always) - serialize and deserialize\n  hasEmbeddedAlwaysOption(attr) {\n    const option = this.attrsOption(attr)\n    return option && option.embedded === 'always'\n  }\n\n  // checks config for attrs option to deserialize records\n  // a defined option object for a resource is treated the same as\n  // `deserialize: 'records'`\n  hasDeserializeRecordsOption(attr) {\n    const alwaysEmbed = this.hasEmbeddedAlwaysOption(attr)\n    const option = this.attrsOption(attr)\n    return alwaysEmbed || (option && option.deserialize === 'records')\n  }\n\n  attrsOption(attr) {\n    const { attrs } = this\n    return attrs && (attrs[camelize(attr)] || attrs[attr])\n  }\n\n  /**\n     @method _extractEmbeddedRecords\n     @private\n    */\n  _extractEmbeddedRecords(serializer, store, typeClass, partial) {\n    typeClass.eachRelationship((key, relationship) => {\n      if (serializer.hasDeserializeRecordsOption(key)) {\n        if (relationship.kind === 'hasMany') {\n          this._extractEmbeddedHasMany(store, key, partial, relationship)\n        }\n        if (relationship.kind === 'belongsTo') {\n          this._extractEmbeddedBelongsTo(store, key, partial, relationship)\n        }\n      }\n    })\n    return partial\n  }\n\n  /**\n     @method _extractEmbeddedHasMany\n     @private\n    */\n  _extractEmbeddedHasMany(store, key, hash, relationshipMeta) {\n    const relationshipHash = get(hash, `data.relationships.${key}.data`)\n\n    if (!relationshipHash) {\n      return\n    }\n\n    const hasMany = new Array(relationshipHash.length)\n\n    for (let i = 0; i < relationshipHash.length; i++) {\n      const item = relationshipHash[i]\n      const { data, included } = this._normalizeEmbeddedRelationship(\n        store,\n        relationshipMeta,\n        item,\n      )\n      hash.included = hash.included || []\n      hash.included.push(data)\n      if (included) {\n        hash.included.push(...included)\n      }\n\n      hasMany[i] = { id: data.id, type: data.type }\n    }\n\n    const relationship = { data: hasMany }\n    set(hash, `data.relationships.${key}`, relationship)\n  }\n\n  /**\n     @method _extractEmbeddedBelongsTo\n     @private\n    */\n  _extractEmbeddedBelongsTo(store, key, hash, relationshipMeta) {\n    const relationshipHash = get(hash, `data.relationships.${key}.data`)\n    if (!relationshipHash) {\n      return\n    }\n\n    const { data, included } = this._normalizeEmbeddedRelationship(\n      store,\n      relationshipMeta,\n      relationshipHash,\n    )\n    hash.included = hash.included || []\n    hash.included.push(data)\n    if (included) {\n      hash.included.push(...included)\n    }\n\n    const belongsTo = { id: data.id, type: data.type }\n    const relationship = { data: belongsTo }\n\n    set(hash, `data.relationships.${key}`, relationship)\n  }\n\n  /**\n     @method _normalizeEmbeddedRelationship\n     @private\n    */\n  _normalizeEmbeddedRelationship(store, relationshipMeta, relationshipHash) {\n    let modelName = relationshipMeta.type\n    if (relationshipMeta.options.polymorphic) {\n      modelName = relationshipHash.type\n    }\n    const modelClass = store.modelFor(modelName)\n    const serializer = store.serializerFor(modelName)\n\n    return serializer.normalize(modelClass, relationshipHash, null)\n  }\n}\n","import type Store from '@ember-data/store'\nimport JSONSerializer from '@ember-data/serializer/json'\nimport { inject as service } from '@ember/service'\n\n// This serializer exists so it's registered with Ember, and we can use it\n// elsewhere by looking it up in Ember's registry.\n// We use it to reimplement the deprecated `model.toJSON` serialization of\n// some of our models, to match the legacy expectations of our Caper activities.\n// Without this registration, the serializer's method can fail when\n// attempting Ember.getOwner(this).\nexport default class LegacyJSONSerializer extends JSONSerializer {\n  @service\n  declare store: Store\n}\n","import Service, { service } from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport type UserService from 're-client/services/user'\n\nexport default class ActivitySidebarService extends Service {\n  @service\n  declare user: UserService\n\n  @tracked isOpen = false\n\n  /**\n   * Points to award to the user.\n   *\n   * Update this property to play the flying eggs animation.\n   */\n  @tracked pointsToAward: number[] = []\n\n  @tracked flyingEggs = true\n\n  close() {\n    this.isOpen = false\n  }\n\n  /**\n   * Open the activity sidebar, optionally awarding points to the user.\n   *\n   * @param points Number of points to award to the user.\n   */\n  open(points?: number) {\n    this.isOpen = true\n\n    if (typeof points === 'number') {\n      this.pointsToAward = distributePoints(points)\n    }\n  }\n\n  toggle() {\n    this.isOpen = !this.isOpen\n  }\n\n  /**\n   * Increments the user's points by the next value in the `pointsToAward` array.\n   */\n  incrementPoints() {\n    const points = this.pointsToAward.pop()\n\n    if (typeof points === 'number') {\n      this.user.incrementEggs(points)\n    }\n  }\n}\n\n/**\n * Evenly distribute points across the number of eggs to animate.\n *\n * Used by the flying eggs animation to show number of points awarded.\n *\n * @param points number of points to distribute\n * @returns an array of points to award\n */\nfunction distributePoints(points: number, maxPoints = 10) {\n  // Limit the animation to 10 eggs, or the number of points, whichever is smaller.\n  const steps = Math.min(points, maxPoints)\n  const pointsPerStep = Math.floor(points / steps)\n  const pointsRemainder = points % steps\n\n  const pointsToAward = Array<number>(steps)\n\n  if (pointsRemainder > 0) {\n    // Insert the remainder as the first step\n    pointsToAward.splice(0, 1, pointsPerStep + pointsRemainder)\n    return pointsToAward.fill(pointsPerStep, 1, steps)\n  }\n\n  return pointsToAward.fill(pointsPerStep)\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'activity-sidebar': ActivitySidebarService\n  }\n}\n","import Service from '@ember/service'\nimport { graphql } from 're-client/graphql'\nimport type { DocumentType } from 're-client/graphql'\nimport { assert } from '@ember/debug'\nimport { useQuery } from 're-client/resources/query'\n\nexport const ReadingActivityFragment = graphql(/* GraphQL */ `\n  fragment ReadingActivityFragment on ReadingActivity {\n    precinct\n    activityInLesson\n    activityType\n    framework\n    id\n    lessonInMap\n    lessonInPrecinct\n    manifestBundle\n    manifestKey\n    map\n    ... on ReadingActivityBook {\n      bookCode\n    }\n  }\n`)\n\nexport type Activity = DocumentType<typeof ReadingActivityFragment>\n\nconst readingActivitiesQueryDocument = graphql(/* GraphQL */ `\n  query ReadingActivities {\n    readingActivities {\n      ...ReadingActivityFragment\n    }\n  }\n`)\n\nexport default class ActivityService extends Service {\n  activitiesQuery = useQuery(this, () => ({\n    query: readingActivitiesQueryDocument,\n  }))\n\n  get activities() {\n    const activities = this.activitiesQuery.current.data?.readingActivities\n    assert('activities is an array', Array.isArray(activities))\n    return activities\n  }\n\n  readingActivitiesByLesson = new Map<string, Activity[]>()\n\n  async setup() {\n    const queryResult = await this.activitiesQuery.current.result()\n    const activities = queryResult.data.readingActivities\n\n    const lessonsInReadingPrecinct = new Set<number>()\n\n    for (const { precinct, lessonInPrecinct } of activities) {\n      if (precinct === 'reading') {\n        lessonsInReadingPrecinct.add(lessonInPrecinct)\n      }\n    }\n\n    for (const lessonInPrecinct of lessonsInReadingPrecinct) {\n      const lessonId = lessonInPrecinct.toString()\n      const lessonActivities = activities.filter(\n        (a) => a.lessonInPrecinct === lessonInPrecinct,\n      )\n      lessonActivities.sort((a, b) => a.lessonInMap - b.lessonInMap)\n      this.readingActivitiesByLesson.set(lessonId, lessonActivities)\n    }\n  }\n\n  hasReadingActivitiesByLessonId(lessonId: string) {\n    const activities = this.readingActivitiesByLesson.get(lessonId)\n    return activities !== undefined && activities.length > 0\n  }\n\n  getReadingActivitiesByLessonId(lessonId: string) {\n    const activitiesForLesson = this.readingActivitiesByLesson.get(lessonId)\n    return activitiesForLesson ?? []\n  }\n\n  activityInLesson(lessonId: string, activityId: number) {\n    const activitiesForLesson = this.getReadingActivitiesByLessonId(lessonId)\n    return activitiesForLesson.find(\n      ({ activityInLesson }) => activityInLesson === activityId,\n    )\n  }\n\n  lastReadingActivityForLesson(lessonId: string): Activity {\n    const activitiesForLesson = this.getReadingActivitiesByLessonId(lessonId)\n\n    const lastActivity = activitiesForLesson.at(-1)\n\n    assert('lastActivity is not undefined', lastActivity !== undefined)\n    return lastActivity\n  }\n\n  nextReadingActivityForLesson(\n    lessonId: string,\n    activityId: number,\n  ): Activity | undefined {\n    const activitiesForLesson = this.getReadingActivitiesByLessonId(lessonId)\n\n    return activitiesForLesson.find(\n      ({ activityInLesson }) => activityInLesson === activityId + 1,\n    )\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    activity: ActivityService\n  }\n}\n","import type {\n  ApolloQueryResult,\n  FetchResult,\n  MutationOptions,\n  NormalizedCacheObject,\n  Observable,\n  ObservableQuery,\n  OperationVariables,\n  QueryOptions,\n  WatchFragmentOptions,\n  WatchFragmentResult,\n  WatchQueryOptions,\n} from '@apollo/client/core'\nimport {\n  createHttpLink,\n  from,\n  InMemoryCache,\n  ApolloClient,\n} from '@apollo/client/core'\nimport { RetryLink } from '@apollo/client/link/retry'\nimport introspectionResult from 're-client/graphql/introspection-result'\nimport config from 're-client/config/environment'\nimport type { TypedTypePolicies } from 're-client/graphql/apollo-helpers'\nimport {\n  isApolloNetworkErrorRetryable,\n  isAuthorizationError,\n} from 're-client/utils/errors'\nimport { capitalize } from '@ember/string'\nimport { waitFor } from '@ember/test-waiters'\nimport { onError } from '@apollo/client/link/error'\nimport { loadErrorMessages, loadDevMessages } from '@apollo/client/dev'\nimport { runInDebug } from '@ember/debug'\nimport Service, { service } from '@ember/service'\nimport type { Log } from '@blakeelearning/log'\nimport { isTesting, macroCondition } from '@embroider/macros'\n\nrunInDebug(() => {\n  loadDevMessages()\n  loadErrorMessages()\n})\n\nconst {\n  APP: { apiEndpoint, apollo },\n} = config\n\nlet apolloURL = '/graphql'\n\nif (apiEndpoint) {\n  apolloURL = new URL(apolloURL, apiEndpoint).href\n}\n\nconst typePolicies: TypedTypePolicies = {\n  Student: {\n    fields: {\n      name: {\n        read(_, { readField }) {\n          const firstName = readField({ fieldName: 'firstName' })\n          const lastName = readField({ fieldName: 'lastName' })\n          if (typeof firstName === 'string' && typeof lastName === 'string') {\n            return `${capitalize(firstName)} ${capitalize(lastName.charAt(0))}.`\n          }\n\n          return undefined\n        },\n      },\n      remoteId: {\n        read(_, { readField }) {\n          const remoteId = readField({ fieldName: 'id' })\n          if (typeof remoteId === 'string') {\n            return remoteId\n          }\n\n          return undefined\n        },\n      },\n      dnaHash: {\n        read(_, { readField }) {\n          const dna = readField({ fieldName: 'dna' })\n\n          if (\n            dna !== null &&\n            typeof dna === 'object' &&\n            '__typename' in dna &&\n            dna.__typename === 'AvatarDna'\n          ) {\n            const dnaClone = { ...(dna as Record<string, unknown>) }\n            delete dnaClone['__typename']\n            const dnaHash = JSON.stringify(dnaClone)\n            return dnaHash\n          }\n\n          return undefined\n        },\n      },\n    },\n  },\n  AssignmentTaskLesson: {\n    fields: {\n      targetRouteParams: {\n        read(_, { readField }) {\n          const lessonId = readField({ fieldName: 'lessonId' })\n          const activityId = readField({ fieldName: 'activityId' })\n          return ['lessons.lesson.activity', lessonId, activityId]\n        },\n      },\n    },\n  },\n  AssignmentTaskSpelling: {\n    fields: {\n      targetRouteParams: {\n        read(_, { readField }) {\n          const lessonId = readField({ fieldName: 'lessonId' })\n          const activityId = readField({ fieldName: 'activityId' })\n          return ['spelling.lesson.activity', lessonId, activityId]\n        },\n      },\n    },\n  },\n  AssignmentTaskClinkerCastle: {\n    fields: {\n      targetRouteParams: {\n        read(_, { readField }) {\n          const lessonId = readField({ fieldName: 'lessonId' })\n          const activityId = readField({ fieldName: 'activityId' })\n          return ['storylands.lesson.activity', lessonId, activityId]\n        },\n      },\n    },\n  },\n  AssignmentTaskDrivingTests: {\n    fields: {\n      targetRouteParams: {\n        read(_, { readField }) {\n          const lessonId = readField({ fieldName: 'lessonId' })\n          const category = readField({ fieldName: 'category' })\n          return ['driving-tests.quiz', category, lessonId]\n        },\n      },\n    },\n  },\n}\n\nexport default class ApolloService extends Service {\n  @service\n  declare log: Log\n\n  #client: ApolloClient<NormalizedCacheObject>\n\n  constructor(properties?: object) {\n    super(properties)\n\n    const cache = new InMemoryCache({\n      typePolicies,\n      /**\n       * Declare Possible Types\n       *\n       * This is required for when we use fragments on union types or interfaces\n       * Otherwise Apollo doesn't know what to do, and strips all the fields from the response\n       * @see {@link https://github.com/apollographql/apollo-client/issues/7050}\n       * @see {@link https://www.apollographql.com/docs/react/data/fragments/#using-fragments-with-unions-and-interfaces}\n       */\n      possibleTypes: introspectionResult.possibleTypes,\n    })\n\n    const httpLink = createHttpLink({\n      uri: apolloURL,\n      credentials: 'include',\n    })\n\n    const errorLink = onError((error) => {\n      // Don't log authorisation errors - these are handled by error routes, etc.\n      if (isAuthorizationError(error)) return\n\n      // eslint-disable-next-line @typescript-eslint/no-deprecated\n      const { graphQLErrors, networkError } = error\n\n      if (graphQLErrors) {\n        graphQLErrors.forEach(({ message, ...error }) => {\n          this.log.error(message, error)\n        })\n      }\n\n      if (networkError) {\n        this.log.error(networkError)\n      }\n    })\n\n    // This prevents retries from slowing down tests\n    let delayOpts = undefined\n    if (macroCondition(isTesting())) {\n      delayOpts = { delay: () => 0 }\n    }\n    const retryLink = new RetryLink({\n      ...delayOpts,\n      attempts: {\n        max: 5,\n        retryIf: (error, { variables }) => {\n          return (\n            isApolloNetworkErrorRetryable(error) &&\n            !!(variables as { input?: { attemptUuid?: string } }).input\n              ?.attemptUuid\n          )\n        },\n      },\n    })\n\n    this.#client = new ApolloClient({\n      cache,\n      link: from([retryLink, errorLink, httpLink]),\n      devtools: {\n        enabled: apollo.connectToDevTools ?? false,\n      },\n    })\n  }\n\n  get cache() {\n    return this.#client.cache\n  }\n\n  override willDestroy() {\n    void this.#client.clearStore()\n  }\n\n  @waitFor\n  async mutate<\n    T = unknown,\n    TVariables extends OperationVariables = OperationVariables,\n  >(options: MutationOptions<T, TVariables>): Promise<FetchResult<T>> {\n    return this.#client.mutate(options)\n  }\n\n  @waitFor\n  async query<\n    T = unknown,\n    TVariables extends OperationVariables = OperationVariables,\n  >(options: QueryOptions<TVariables, T>): Promise<ApolloQueryResult<T>> {\n    return this.#client.query(options)\n  }\n\n  watchQuery<\n    T = unknown,\n    TVariables extends OperationVariables = OperationVariables,\n  >(options: WatchQueryOptions<TVariables, T>): ObservableQuery<T, TVariables> {\n    return this.#client.watchQuery(options)\n  }\n\n  watchFragment<TFragmentData = unknown, TVariables = OperationVariables>(\n    options: WatchFragmentOptions<TFragmentData, TVariables>,\n  ): Observable<WatchFragmentResult<TFragmentData>> {\n    return this.#client.watchFragment(options)\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    apollo: ApolloService\n  }\n}\n","import type { FeatureService } from '@blakeelearning/features'\nimport Service, { service } from '@ember/service'\nimport type UserService from './user'\nimport type StudentProgressService from './student-progress'\nimport { graphql } from 're-client/graphql'\nimport { useQuery } from 're-client/resources/query'\nimport type ActivityService from './activity'\nimport { ReadingActivityEnum } from 're-client/graphql/graphql'\nimport type ApolloService from './apollo'\nexport interface AskReggieVariables {\n  enabled: boolean\n  state: 'AVAILABLE' | 'UNAVAILABLE' | 'SKIP_LESSON_ATTEMPT' | null\n  actions: AskReggieAction[] | null\n  reason: 'ACTIONS_EXHAUSTED' | 'CURRENT_POSITION' | null\n  student: Student | null\n}\ntype AskReggieAction =\n  | 'SKIP_LESSON'\n  | 'ABORT_SKIP_LESSON'\n  | 'GO_TO_CURRENT_LESSON'\n\ninterface Student {\n  name: string\n  progress: StudentProgress\n}\ninterface StudentProgress {\n  lessonNumber: number\n}\n\ngraphql(/* GraphQL */ `\n  fragment StudentAskReggieDataFragment on Student {\n    id\n    askReggie {\n      __typename\n      ... on AskReggieAvailable {\n        actions\n      }\n      ... on AskReggieUnavailable {\n        reason\n      }\n      ... on AskReggieSkipLesson {\n        lesson\n        activity\n      }\n      ... on AskReggieDisabled {\n        disabled\n      }\n    }\n  }\n`)\n\nconst StudentAskReggieQueryDocument = graphql(/* GraphQL */ `\n  query GetStudentAskReggie {\n    student {\n      ...StudentAskReggieDataFragment\n    }\n  }\n`)\n\nconst askReggieLessonSkipAbortMutationDocument = graphql(/* GraphQL */ `\n  mutation AskReggieLessonSkipAbort {\n    askReggieLessonSkipAbort {\n      student {\n        ...StudentAskReggieDataFragment\n      }\n    }\n  }\n`)\n\nexport const askReggieAttemptLessonSkipMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation AskReggieAttemptLessonSkip(\n      $input: AskReggieAttemptLessonSkipInput!\n    ) {\n      askReggieAttemptLessonSkip(input: $input) {\n        student {\n          ...StudentAskReggieDataFragment\n        }\n      }\n    }\n  `,\n)\nexport default class AskReggieService extends Service {\n  @service declare features: FeatureService\n\n  @service declare user: UserService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare activity: ActivityService\n\n  @service declare apollo: ApolloService\n\n  studentAskReggieQuery = useQuery(this, () => {\n    return {\n      query: StudentAskReggieQueryDocument,\n    }\n  })\n\n  async fetch() {\n    await this.studentAskReggieQuery.current.refetch()\n    await this.setup()\n  }\n\n  async setup() {\n    await this.studentAskReggieQuery.current.result()\n  }\n\n  get data() {\n    return this.studentAskReggieQuery.current.data?.student?.askReggie\n  }\n\n  contentVariables({\n    currentLesson,\n    currentActivity,\n  }: {\n    currentLesson: number\n    currentActivity: number\n  }): AskReggieVariables {\n    const typename = this.data?.__typename\n\n    // Ask Reggie is disabled for school students\n    if (!typename || typename === 'AskReggieDisabled') {\n      return {\n        enabled: false,\n        state: null,\n        actions: null,\n        reason: null,\n        student: null,\n      }\n    }\n\n    // Active Ask Reggie lesson skip attempt\n    if (typename === 'AskReggieSkipLesson') {\n      if (\n        this.data.lesson === currentLesson &&\n        this.data.activity === currentActivity\n      ) {\n        return {\n          enabled: true,\n          state: 'SKIP_LESSON_ATTEMPT',\n          actions: ['ABORT_SKIP_LESSON'],\n          reason: null,\n          student: {\n            name: this.user.student.name,\n            progress: {\n              lessonNumber: this.studentProgress.lessonsCurrentLessonNumber,\n            },\n          },\n        }\n      }\n      return {\n        enabled: false,\n        state: null,\n        actions: null,\n        reason: null,\n        student: null,\n      }\n    }\n\n    const positionMatchesProgress =\n      this.studentProgress.lessonsCurrentLessonNumber === currentLesson &&\n      this.studentProgress.lessons.currentActivity === currentActivity\n\n    // Ask Reggie should only appear on the students current progress position\n    if (!positionMatchesProgress) {\n      return {\n        enabled: false,\n        state: null,\n        actions: null,\n        reason: null,\n        student: null,\n      }\n    }\n\n    if (typename === 'AskReggieAvailable') {\n      const activityType = this.activity.activityInLesson(\n        currentLesson.toString(),\n        currentActivity,\n      )?.activityType\n\n      if (activityType === ReadingActivityEnum.Interactive) {\n        return {\n          enabled: true,\n          state: 'AVAILABLE',\n          actions: this.data.actions,\n          reason: null,\n          student: {\n            name: this.user.student.name,\n            progress: {\n              lessonNumber: this.studentProgress.lessonsCurrentLessonNumber,\n            },\n          },\n        }\n      }\n\n      // Ask Reggie is not available on book, quiz or video activities since there is no value skipping from those positions.\n      return {\n        enabled: true,\n        state: 'UNAVAILABLE',\n        actions: null,\n        reason: 'CURRENT_POSITION',\n        student: {\n          name: this.user.student.name,\n          progress: {\n            lessonNumber: this.studentProgress.lessonsCurrentLessonNumber,\n          },\n        },\n      }\n    }\n\n    // typename === 'AskReggieUnavailable'\n    return {\n      enabled: true,\n      state: 'UNAVAILABLE',\n      actions: null,\n      reason: 'ACTIONS_EXHAUSTED',\n      student: {\n        name: this.user.student.name,\n        progress: {\n          lessonNumber: this.studentProgress.lessonsCurrentLessonNumber,\n        },\n      },\n    }\n  }\n\n  skipLesson(lesson: number) {\n    return this.apollo.mutate({\n      mutation: askReggieAttemptLessonSkipMutationDocument,\n      variables: {\n        input: {\n          lesson,\n        },\n      },\n    })\n  }\n\n  abortSkipLessonAttempt() {\n    return this.apollo.mutate({\n      mutation: askReggieLessonSkipAbortMutationDocument,\n    })\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'ask-reggie': AskReggieService\n  }\n}\n","import type Transition from '@ember/routing/transition'\nimport type RouterService from '@ember/routing/router-service'\nimport Service, { inject as service } from '@ember/service'\nimport { isEqual } from 'lodash'\nimport { graphql } from 're-client/graphql'\nimport type { DocumentType } from 're-client/graphql'\nimport transitionToArray from 're-client/utils/transition-to-array'\nimport { useQuery } from 're-client/resources/query'\n\nexport const AssignmentTask = graphql(/* GraphQL */ `\n  fragment AssignmentTask on Student {\n    assignmentTask {\n      ... on AssignmentTaskLesson {\n        activityId\n        assignmentUuid\n        endAt\n        id\n        lessonId\n        thumbnailUrl\n        title\n        targetRouteParams @client\n      }\n      ... on AssignmentTaskSpelling {\n        activityId\n        assignmentUuid\n        endAt\n        id\n        lessonId\n        thumbnailUrl\n        title\n        targetRouteParams @client\n      }\n      ... on AssignmentTaskClinkerCastle {\n        activityId\n        assignmentUuid\n        endAt\n        id\n        lessonId\n        thumbnailUrl\n        title\n        targetRouteParams @client\n      }\n      ... on AssignmentTaskDrivingTests {\n        assignmentUuid\n        category\n        endAt\n        gradePosition\n        id\n        lessonId\n        thumbnailUrl\n        title\n        targetRouteParams @client\n      }\n      ... on Error {\n        message\n      }\n      __typename\n    }\n  }\n`)\n\nconst getStudentCurrentTaskQueryDocument = graphql(/* GraphQL */ `\n  query GetStudentCurrentTask {\n    student {\n      __typename\n      id\n      ...AssignmentTask\n    }\n  }\n`)\n\nexport type Task = NonNullable<CurrentTask>\n\nexport type CurrentTask = Exclude<\n  DocumentType<typeof AssignmentTask>['assignmentTask'],\n  { __typename: 'Error' }\n>\n\nconst FIVE_MINUTES = 5 * 60 * 1000\n\nexport default class AssignmentsService extends Service {\n  @service declare router: RouterService\n\n  get hasTask() {\n    return Boolean(this.currentTask)\n  }\n\n  get currentTask() {\n    const currentTask =\n      this._assignmentQuery.current.data?.student?.assignmentTask\n\n    /**\n     * If we receive an error on the student.assignmentTask field then we pretend the student\n     * has no assignment task by returning null. We don't need to log this error\n     * since the backend will have already sent it to rollbar.\n     */\n    return currentTask?.__typename === 'Error' ? null : currentTask\n  }\n\n  _assignmentQuery = useQuery(this, () => ({\n    query: getStudentCurrentTaskQueryDocument,\n  }))\n\n  _refetchAfter = 0\n\n  async fetchTaskIfDue() {\n    if (!this.currentTask && this._refetchAfter < Date.now()) {\n      await this.fetch()\n    }\n  }\n\n  async setup() {\n    await this._assignmentQuery.current.result()\n    this._refetchAfter = Date.now() + FIVE_MINUTES\n  }\n\n  async fetch() {\n    await this._assignmentQuery.current.refetch()\n    await this.setup()\n  }\n\n  /**\n   * Checks if a transition is allowed given a student's current task. A transition is\n   * allowed if:\n   *\n   * 1. They have no current task\n   * 2. They have a current task and it is the index route\n   * 3. They have a current task and it is the reader.book.page route\n   * 3. They have a current task and it is the driving-tests.racing-game route\n   * 4. They have a current task and it is the route for that task\n   *\n   * If not allowed we send the student to the index route\n   *\n   */\n  async checkTransition(transition: Transition) {\n    await this.fetchTaskIfDue()\n\n    if (!this.hasTask) return\n\n    if (transition.targetName === 'index') return\n\n    // storylands quiz hint\n    if (transition.targetName === 'reader.book.page') return\n\n    // driving test minigame\n    if (transition.targetName === 'driving-tests.racing-game') return\n\n    if (\n      isEqual(\n        transitionToArray(transition),\n        this.currentTask?.targetRouteParams,\n      )\n    ) {\n      return\n    }\n\n    void this.router.replaceWith('index')\n  }\n\n  canCompleteLessonAssignmentTask(\n    lessonId: number | string,\n    activityId: number,\n  ) {\n    const { currentTask } = this\n    if (!currentTask) return false\n    if (currentTask.__typename !== 'AssignmentTaskLesson') return false\n    if (currentTask.lessonId !== lessonId.toString()) return false\n    if (currentTask.activityId !== activityId.toString()) return false\n    return true\n  }\n\n  canCompleteSpellingAssignmentTask(\n    lessonId: number | string,\n    activityId: number,\n  ) {\n    const { currentTask } = this\n    if (!currentTask) return false\n    if (currentTask.__typename !== 'AssignmentTaskSpelling') return false\n    if (currentTask.lessonId !== lessonId.toString()) return false\n    if (currentTask.activityId !== activityId.toString()) return false\n    return true\n  }\n\n  canCompleteStorylandsAssignmentTask(\n    lessonId: number | string,\n    activityId: number,\n  ) {\n    const { currentTask } = this\n    if (!currentTask) return false\n    if (currentTask.__typename !== 'AssignmentTaskClinkerCastle') return false\n    if (currentTask.lessonId !== lessonId.toString()) return false\n    if (currentTask.activityId !== activityId.toString()) return false\n    return true\n  }\n\n  canCompleteDrivingTestAssignmentTask(lessonId: number, category: string) {\n    const { currentTask } = this\n    if (!currentTask) return false\n    if (currentTask.__typename !== 'AssignmentTaskDrivingTests') return false\n    if (currentTask.lessonId !== lessonId.toString()) return false\n    if (currentTask.category !== category) return false\n    return true\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    assignments: AssignmentsService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport { graphql } from 're-client/graphql'\nimport type ApolloService from './apollo'\n\nexport const bookContentQueryDocument = graphql(/* GraphQL */ `\n  query Book($input: BookQueryInput!) {\n    book(input: $input) {\n      content\n    }\n  }\n`)\n\nexport default class BooksService extends Service {\n  @service declare apollo: ApolloService\n\n  async fetchContent(code: string) {\n    const { data } = await this.apollo.query({\n      query: bookContentQueryDocument,\n      variables: {\n        input: { code },\n      },\n      fetchPolicy: 'cache-first',\n    })\n\n    return data.book?.content as object | undefined\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport type Store from '@ember-data/store'\nimport { ContentLoader, activityAccent } from '@blakeelearning/content-loader'\nimport type { Manifest } from '@blakeelearning/content-loader-core'\nimport config from 're-client/config/environment'\n\nexport default class CaperLoaderService extends Service {\n  @service\n  declare store: Store\n\n  _loader?: ContentLoader\n\n  get loader(): ContentLoader {\n    if (!this._loader) throw new Error('loader is unset')\n    return this._loader\n  }\n\n  load(manifests: Manifest[], variables?: Record<string, unknown>) {\n    return this.loader.load(manifests, variables ?? {})\n  }\n\n  setup({\n    accent,\n    isEsmPreferred,\n  }: {\n    accent: string\n    isEsmPreferred: boolean\n  }) {\n    const variant = activityAccent(accent)\n\n    this._loader = new ContentLoader({\n      framework: 'caper',\n      config: {\n        ...config.contentLoader.caper,\n        isEsmPreferred,\n      },\n      variant,\n    })\n  }\n\n  avatarJsonRequest() {\n    const adapter = this.store.adapterFor('application')\n    const url = adapter.buildURL('avatar', 'avatar_content')\n    return this.loader.manifestRequest(url, {\n      credentials: 'include',\n    })\n  }\n\n  changingRoomRequest() {\n    const adapter = this.store.adapterFor('application')\n    const url = adapter.buildURL('avatar', 'changing_room_content')\n    return this.loader.manifestRequest(url, {\n      credentials: 'include',\n    })\n  }\n\n  readingBookRequest(bookId: string | undefined) {\n    const adapter = this.store.adapterFor('reading/book')\n    const url = adapter.buildURL('reading/book', bookId)\n    return this.loader.manifestRequest(url, {\n      credentials: 'include',\n    })\n  }\n\n  storyFactoryAssetRequest(id: 'current' | 'previous' | 'voting') {\n    const adapter = this.store.adapterFor('application')\n    const url = adapter.buildURL('story-factory-contest', id)\n    return this.loader.manifestRequest(url, {\n      credentials: 'include',\n    })\n  }\n\n  storyFactoryEntriesRequest() {\n    const adapter = this.store.adapterFor('application')\n    const url = adapter.buildURL('story-factory-entries')\n    return this.loader.manifestRequest(url, {\n      credentials: 'include',\n    })\n  }\n}\n\n// Don't remove this declaration: this is what enables TypeScript to resolve\n// this service using `Owner.lookup('service:caper-loader')`, as well\n// as to check when you pass the service name as an argument to the decorator,\n// like `@service('caper-loader') declare altName: CaperLoaderService;`.\ndeclare module '@ember/service' {\n  interface Registry {\n    'caper-loader': CaperLoaderService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport type ApolloService from 're-client/services/apollo'\nimport type { FetchPolicy } from '@apollo/client/core'\nimport { graphql } from 're-client/graphql'\nimport type { DocumentType } from 're-client/graphql'\nimport type { CertificateColourEnum } from 're-client/graphql/graphql'\nimport { useMutation } from 're-client/resources/mutation'\n\ngraphql(/* GraphQL */ `\n  fragment CertificateFragment on Certificate {\n    id\n    createdAt\n    map\n    scorePercentage\n    url\n    colour\n  }\n`)\n\nconst getCertificatesQueryDocument = graphql(/* GraphQL */ `\n  query GetCertificates {\n    student {\n      id\n      certificates {\n        ...CertificateFragment\n      }\n    }\n  }\n`)\n\nexport const PendingCertificateFragment = graphql(/* GraphQL */ `\n  fragment PendingCertificateFragment on PendingCertificate {\n    id\n    colour\n    map\n    quizResultCreatedAt\n    scorePercentage\n  }\n`)\n\nexport const pendingCertificateQueryDocument = graphql(/* GraphQL */ `\n  query GetPendingCertificate {\n    student {\n      id\n      firstName\n      lastName\n      name @client\n      pendingCertificate {\n        ...PendingCertificateFragment\n      }\n    }\n  }\n`)\n\nconst saveCertificateMutationDocument = graphql(/* GraphQL */ `\n  mutation SaveCertificate($input: CertificateSaveInput!) {\n    certificateSave(input: $input) {\n      certificate {\n        id\n        url\n      }\n      student {\n        id\n        pendingCertificate {\n          ...PendingCertificateFragment\n        }\n        certificates {\n          ...CertificateFragment\n        }\n      }\n    }\n  }\n`)\n\nconst getPendingCertificateUploadUrlQueryDocument = graphql(/* GraphQL */ `\n  query GetPendingCertificateUploadUrl($input: PendingCertificateQueryInput!) {\n    getPendingCertificate(input: $input) {\n      id\n      uploadUrl\n    }\n  }\n`)\n\ninterface UpdatePendingCertificate {\n  colour: CertificateColourEnum\n  id: string\n  map: number\n  quizResultCreatedAt: string\n  scorePercentage: number\n}\n\ninterface GetPendingCertificateOptions {\n  fetchPolicy?: FetchPolicy\n}\n\ninterface SaveCertificateOptions {\n  width: number\n  height: number\n  pendingCertificateId: string\n}\n\nexport default class CertificateService extends Service {\n  @service\n  declare apollo: ApolloService\n\n  saveCertificateMutation = useMutation(this, saveCertificateMutationDocument)\n\n  async getCertificates() {\n    const {\n      data: { student },\n    } = await this.apollo.query({\n      query: getCertificatesQueryDocument,\n      fetchPolicy: 'cache-first',\n    })\n\n    return student?.certificates\n  }\n\n  /**\n   * Most of the time this query will just return the data from the apollo cache that was fetched in the lessons route beforeModel().\n   * The exception to this is when a student has just finished all of their assignments.\n   * In that case this will be the first time we check for a pending certificate.\n   */\n  getPendingCertificate({\n    fetchPolicy = 'cache-first',\n  }: GetPendingCertificateOptions = {}) {\n    return this.apollo.query({\n      query: pendingCertificateQueryDocument,\n      fetchPolicy,\n    })\n  }\n\n  getPendingCertificateUploadUrl(pendingCertificateId: string) {\n    return this.apollo.query({\n      query: getPendingCertificateUploadUrlQueryDocument,\n      variables: {\n        input: {\n          pendingCertificateId,\n        },\n      },\n      fetchPolicy: 'no-cache',\n    })\n  }\n\n  async hasPendingCertificate(options?: GetPendingCertificateOptions) {\n    const {\n      data: { student },\n    } = await this.getPendingCertificate(options)\n\n    return Boolean(student?.pendingCertificate)\n  }\n\n  async saveCertificate({\n    pendingCertificateId,\n    width,\n    height,\n  }: SaveCertificateOptions) {\n    return this.saveCertificateMutation.current.mutate({\n      variables: {\n        input: {\n          pendingCertificateId,\n          width,\n          height,\n        },\n      },\n    })\n  }\n\n  updateCache({\n    colour,\n    id,\n    map,\n    quizResultCreatedAt,\n    scorePercentage,\n  }: UpdatePendingCertificate) {\n    this.apollo.cache.updateQuery(\n      { query: pendingCertificateQueryDocument },\n      (data) => {\n        if (!data?.student) return\n\n        return {\n          __typename: 'Query',\n          student: {\n            ...data.student,\n            pendingCertificate: {\n              __typename: 'PendingCertificate',\n              colour,\n              id,\n              map,\n              quizResultCreatedAt,\n              scorePercentage,\n            },\n          },\n        } satisfies DocumentType<typeof pendingCertificateQueryDocument>\n      },\n    )\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    certificate: CertificateService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport { v4 as uuidV4 } from 'uuid'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type ActivityService from 're-client/services/activity'\nimport { saveReadingLessonActivityResultMutationDocument } from 're-client/services/lesson-activity-mutations'\nimport { saveSpellingLessonQuizResultMutationDocument } from 're-client/controllers/spelling/lesson/activity'\nimport { saveClinkerCastleLessonQuizResultMutationDocument } from 're-client/controllers/storylands/lesson/activity'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type UserService from './user'\nimport { useMutation } from 're-client/resources/mutation'\nimport { graphql } from 're-client/graphql'\n\nexport const resetReadingLessonProgressMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation ResetReadingLessonProgress(\n      $input: StudentProgressReadingLessonResetInput!\n    ) {\n      studentProgressReadingLessonReset(input: $input) {\n        student {\n          id\n          ...StudentProgressFragment\n        }\n      }\n    }\n  `,\n)\n\nexport const resetReadingMapQuizProgressMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation ResetReadingMapQuizProgress(\n      $input: StudentProgressReadingMapQuizResetInput!\n    ) {\n      studentProgressReadingMapQuizReset(input: $input) {\n        student {\n          id\n          ...StudentProgressFragment\n        }\n      }\n    }\n  `,\n)\n\nexport const resetReadingPlacementTestProgressMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation ResetReadingPlacementTestProgress {\n      studentProgressReadingPlacementTestReset {\n        student {\n          id\n          ...StudentProgressFragment\n        }\n      }\n    }\n  `,\n)\n\nexport const resetStudentWorldInteractionMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation ResetStudentWorldInteraction(\n      $input: StudentWorldInteractionResetInput!\n    ) {\n      studentWorldInteractionReset(input: $input) {\n        world {\n          id\n          previousInteractions\n        }\n      }\n    }\n  `,\n)\n\nexport const resetStudentWorldAreaRevealPositionMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation ResetStudentWorldAreaRevealPosition(\n      $input: StudentWorldAreaRevealPositionResetInput!\n    ) {\n      studentWorldAreaRevealPositionReset(input: $input) {\n        world {\n          id\n          areaRevealPosition\n        }\n      }\n    }\n  `,\n)\n\nexport const resetStudentWorldOnboardingMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation ResetStudentWorldOnboarding {\n      studentWorldOnboardingReset {\n        student {\n          id\n          previousWorldsOnboarding\n        }\n      }\n    }\n  `,\n)\n\n/**\n * Controls the global state of debug mode.\n */\nexport default class DebugModeService extends Service {\n  @service\n  declare activity: ActivityService\n\n  @service\n  declare features: FeatureService\n\n  @service\n  declare urlMaker: UrlMakerService\n\n  @service\n  declare user: UserService\n\n  saveReadingLessonActivityResultMutation = useMutation(\n    this,\n    saveReadingLessonActivityResultMutationDocument,\n  )\n\n  saveSpellingLessonQuizResultMutation = useMutation(\n    this,\n    saveSpellingLessonQuizResultMutationDocument,\n  )\n\n  saveClinkerCastleLessonQuizResultMutation = useMutation(\n    this,\n    saveClinkerCastleLessonQuizResultMutationDocument,\n  )\n\n  resetReadingLessonProgressMutation = useMutation(\n    this,\n    resetReadingLessonProgressMutationDocument,\n  )\n\n  resetReadingMapQuizProgressMutation = useMutation(\n    this,\n    resetReadingMapQuizProgressMutationDocument,\n  )\n\n  resetReadingPlacementTestProgressMutation = useMutation(\n    this,\n    resetReadingPlacementTestProgressMutationDocument,\n  )\n\n  resetStudentWorldInteractionMutation = useMutation(\n    this,\n    resetStudentWorldInteractionMutationDocument,\n  )\n\n  resetStudentWorldAreaRevealPositionMutation = useMutation(\n    this,\n    resetStudentWorldAreaRevealPositionMutationDocument,\n  )\n\n  resetStudentWorldOnboardingMutation = useMutation(\n    this,\n    resetStudentWorldOnboardingMutationDocument,\n  )\n\n  /**\n   * Is debug mode enabled?\n   */\n  @tracked enabled = false\n\n  /**\n   * Enable debug mode:\n   *  - if debugging is allowed in this environment\n   *  - if the debug controls are visible\n   */\n  enable() {\n    if (this.debugAllowed) {\n      this.enabled = true\n    }\n  }\n\n  /**\n   * Disable debug mode\n   */\n  disable() {\n    this.enabled = false\n  }\n\n  get debugAllowed() {\n    return this.features.isEnabled('debug-allowed')\n  }\n\n  async completeLessonsLesson(lessonId: string) {\n    if (this.enabled) {\n      const { activityInLesson } =\n        this.activity.lastReadingActivityForLesson(lessonId)\n\n      await this.saveReadingLessonActivityResultMutation.current.mutate({\n        variables: {\n          input: {\n            assignment: null,\n            lessonInPrecinct: Number(lessonId),\n            activityInLesson,\n            attemptUuid: uuidV4(),\n          },\n        },\n      })\n    }\n  }\n\n  async completeSpellingLesson(lessonId: string) {\n    if (this.enabled) {\n      const correctAnswers = [\n        'debug1',\n        'debug2',\n        'debug3',\n        'debug4',\n        'debug5',\n        'debug6',\n        'debug7',\n        'debug8',\n        'debug9',\n        'debug10',\n        'debug11',\n        'debug12',\n      ]\n\n      await this.saveSpellingLessonQuizResultMutation.current.mutate({\n        variables: {\n          input: {\n            lesson: Number(lessonId),\n            correctAnswers,\n            incorrectAnswers: {},\n            attemptUuid: uuidV4(),\n            assignment: null,\n          },\n        },\n      })\n    }\n  }\n\n  async completeStorylandsLesson(lessonId: string) {\n    if (this.enabled) {\n      const correctAnswers = [\n        'debug1',\n        'debug2',\n        'debug3',\n        'debug4',\n        'debug5',\n        'debug6',\n        'debug7',\n        'debug8',\n        'debug9',\n        'debug10',\n      ]\n\n      await this.saveClinkerCastleLessonQuizResultMutation.current.mutate({\n        variables: {\n          input: {\n            lesson: Number(lessonId),\n            correctAnswers,\n            incorrectAnswers: {},\n            attemptUuid: uuidV4(),\n            assignment: null,\n          },\n        },\n      })\n    }\n  }\n\n  async resetReadingLessonProgress(lesson: number, activity: number) {\n    if (this.enabled) {\n      await this.resetReadingLessonProgressMutation.current.mutate({\n        variables: {\n          input: {\n            lesson,\n            activity,\n          },\n        },\n      })\n    }\n  }\n\n  async resetReadingMapQuizProgress(map: number) {\n    if (this.enabled) {\n      await this.resetReadingMapQuizProgressMutation.current.mutate({\n        variables: {\n          input: {\n            map,\n          },\n        },\n      })\n    }\n  }\n\n  async resetReadingPlacementTestProgress() {\n    if (this.enabled) {\n      await this.resetReadingPlacementTestProgressMutation.current.mutate({})\n    }\n  }\n\n  async resetWorldInteractions(worldId: number) {\n    if (this.enabled) {\n      await this.resetStudentWorldInteractionMutation.current.mutate({\n        variables: {\n          input: { worldId: String(worldId) },\n        },\n      })\n    }\n  }\n\n  async resetWorldAreaRevealPosition(worldId: number) {\n    if (this.enabled) {\n      await this.resetStudentWorldAreaRevealPositionMutation.current.mutate({\n        variables: {\n          input: { worldId: String(worldId) },\n        },\n      })\n    }\n  }\n\n  async resetWorldOnboarding() {\n    if (this.enabled) {\n      await this.resetStudentWorldOnboardingMutation.current.mutate({})\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'debug-mode': DebugModeService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport type RouterService from '@ember/routing/router-service'\nimport type { Log } from '@blakeelearning/log'\nimport type { ErrorLike } from 're-client/utils/errors'\nimport { isActionableError, isErrorLike } from 're-client/utils/errors'\n\nexport type UnhandledError = Partial<ErrorLike>\n\nexport default class ErrorHandlerService extends Service {\n  @service declare router: RouterService\n\n  @service declare log: Log\n\n  /**\n   * This is a handler for any time Content code calls\n   * `externalController.unhandledError`, indicating that it has encountered an\n   * error it cannot handle.  It:\n   *\n   * 1. logs the error to rollbar\n   * 2. transitions to an error route\n   *\n   * Because these calls come from Content, we can't depend on any instanceof\n   * checks.\n   */\n  handleContentUnhandledError({\n    name = 'Error',\n    message = 'Unknown Error',\n  }: UnhandledError): void {\n    this.handleError(\n      `Unhandled ${name} returned from content`,\n      new Error(message),\n    )\n  }\n\n  /**\n   * This is a general-purpose function for handling errors.  It accepts an\n   * error message and an optional error object.  With these it:\n   *\n   * 1. logs the error to rollbar, unless the error is considered un-actionable\n   * 2. transitions to an error route\n   *\n   * @see {@link #errorIsActionable}\n   */\n  handleError(message: string, error?: unknown): void {\n    this.logErrorIfActionable(message, error)\n\n    void this.router.transitionTo('application-error')\n  }\n\n  /**\n   * This is a general-purpose handler for any time that controller code\n   * encounters an unrecoverable error.  This is any error that occurs in\n   * re-client in the course of actioning a request from Content that\n   * we know that the Content code has no means of recovering from. It:\n   *\n   * 1. logs the error to rollbar\n   * 2. transitions to an error route\n   */\n  handleUnrecoverableError(error: unknown): void {\n    let message: string\n    if (isErrorLike(error)) {\n      message = error.message\n    } else if (typeof error === 'string') {\n      message = error\n    } else {\n      message = 'Unknown error'\n    }\n    this.handleError(`Unrecoverable error: ${message}`, error)\n  }\n\n  /**\n   * This will log errors that are considered actionable.\n   *\n   * @see {@link #errorIsActionable}\n   */\n  logErrorIfActionable(message: string, error?: unknown): void {\n    this.log.log(message)\n\n    if (isActionableError(error)) {\n      this.log.error(error)\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'error-handler': ErrorHandlerService\n  }\n}\n","import type Owner from '@ember/owner'\nimport Service from '@ember/service'\nimport { ContentLoader, activityAccent } from '@blakeelearning/content-loader'\nimport type { Manifest } from '@blakeelearning/content-loader-core'\nimport config from 're-client/config/environment'\n\nexport default class JesterLoaderService extends Service {\n  loader: ContentLoader\n\n  constructor(owner: Owner) {\n    super(owner)\n\n    this.loader = new ContentLoader({\n      framework: 'jester',\n      config: config.contentLoader.jester,\n    })\n  }\n\n  setAccent(accent: string) {\n    const variant = activityAccent(accent)\n\n    if (this.loader.variant !== variant) {\n      this.loader = new ContentLoader({\n        variant,\n        framework: 'jester',\n        config: config.contentLoader.jester,\n      })\n    }\n  }\n\n  load(manifests: Manifest[], variables?: Record<string, unknown>) {\n    return this.loader.load(manifests, variables ?? {})\n  }\n}\n\n// Don't remove this declaration: this is what enables TypeScript to resolve\n// this service using `Owner.lookup('service:jester-loader')`, as well\n// as to check when you pass the service name as an argument to the decorator,\n// like `@service('jester-loader') declare altName: JesterLoaderService;`.\ndeclare module '@ember/service' {\n  interface Registry {\n    'jester-loader': JesterLoaderService\n  }\n}\n","import type { FetchPolicy } from '@apollo/client'\nimport type { FeatureService } from '@blakeelearning/features'\nimport Service, { service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport type ApolloService from 're-client/services/apollo'\nimport { graphql } from 're-client/graphql'\nimport type UserService from './user'\nimport type StudentProgressService from './student-progress'\nimport { NotAuthenticatedError } from 're-client/utils/errors'\n\nconst WORLD_COMPLETE_AREA_REVEAL_POSITION = 'world_complete'\n\nexport type WorldAreaId =\n  | 'activity-area'\n  | 'music-area'\n  | 'games-area'\n  | 'book-area'\n\n/**\n * Lesson-completion thresholds that unlock each area, keyed by world id.\n * A world/area not present here is treated as unlocked, so later worlds\n * stay open until their thresholds are added.\n */\nconst BUILDING_UNLOCK_LESSON: Record<number, Record<WorldAreaId, number>> = {\n  1: { 'activity-area': 1, 'music-area': 3, 'games-area': 6, 'book-area': 8 },\n  2: {\n    'activity-area': 11,\n    'music-area': 13,\n    'games-area': 16,\n    'book-area': 18,\n  },\n  3: {\n    'activity-area': 21,\n    'music-area': 23,\n    'games-area': 26,\n    'book-area': 28,\n  },\n}\n\n/**\n * Lesson-completion thresholds that unlock specific content within a\n * area (activity-area letters, games-area games, book-area books), keyed\n * by world id. music-area has no content-level route - song selection\n * happens inside the interactive content itself.\n */\nconst CONTENT_UNLOCK_LESSON: Record<\n  number,\n  Partial<Record<WorldAreaId, Record<string, number>>>\n> = {\n  1: {\n    'activity-area': { m: 1, s: 2, a: 3, t: 4, c: 7, f: 8 },\n    'games-area': { super_bouncy_ball: 6, keepy_uppy: 7 },\n    'book-area': {\n      my_world_my_funny_cat: 8,\n      reading_eggs_the_squirrel: 8,\n      poetry_a_little_turtle: 8,\n      go_books_big_cat: 9,\n      easy_reads_bella_plays_hide_and_seek: 9,\n      storylands_what_did_buzz_boy_catch: 10,\n    },\n  },\n  2: {\n    'activity-area': { n: 11, p: 12, h: 14, r: 15, z: 17 },\n    'games-area': { juicy_slice: 16, wheely_racer: 17 },\n    'book-area': {\n      reading_eggs_a_day_at_the_beach: 18,\n      poetry_sandcastles: 18,\n      storylands_the_mermaid: 18,\n      my_world_what_do_i_see: 19,\n      readzone_the_sand_dragon: 20,\n    },\n  },\n  3: {\n    'activity-area': { v: 21, /* ???: 22, */ d: 23, j: 25, o: 27, q: 30 },\n    'games-area': {\n      read_runner: 26,\n      memory_match: 27,\n    },\n    'book-area': {\n      reading_eggs_junior_nonfiction_machines_my_first_trucks: 28,\n      reading_eggs_junior_nonfiction_machines_my_first_tools: 28,\n      go_books_dozer_builds_a_hill: 29,\n      silly_stories_moose_with_a_tool_box: 29,\n      go_books_the_birdhouse_that_jack_built: 30,\n    },\n  },\n}\n\ngraphql(/* GraphQL */ `\n  fragment WorldDataFragment on World {\n    id\n    previousInteractions\n    areaRevealPosition\n  }\n`)\n\nconst worldDataQueryDocument = graphql(/* GraphQL */ `\n  query GetWorldData($worldId: ID!) {\n    student {\n      id\n      previousWorldsOnboarding\n      world(id: $worldId) {\n        ...WorldDataFragment\n      }\n    }\n  }\n`)\n\nexport const studentWorldInteractionCreateMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation CreateStudentWorldInteraction(\n      $input: StudentWorldInteractionCreateInput!\n    ) {\n      studentWorldInteractionCreate(input: $input) {\n        world {\n          ...WorldDataFragment\n        }\n      }\n    }\n  `,\n)\n\nexport const studentWorldAreaRevealPositionSetMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation SetStudentWorldAreaRevealPosition(\n      $input: StudentWorldAreaRevealPositionSetInput!\n    ) {\n      studentWorldAreaRevealPositionSet(input: $input) {\n        world {\n          ...WorldDataFragment\n        }\n      }\n    }\n  `,\n)\n\nexport const studentWorldOnboardingSectionCompleteMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation CompleteStudentWorldOnboardingSection(\n      $input: StudentWorldOnboardingSectionCompleteInput!\n    ) {\n      studentWorldOnboardingSectionComplete(input: $input) {\n        student {\n          id\n          previousWorldsOnboarding\n        }\n      }\n    }\n  `,\n)\n\nexport default class LearningWorldsService extends Service {\n  @service declare features: FeatureService\n\n  @service declare apollo: ApolloService\n\n  @service declare user: UserService\n\n  @service declare studentProgress: StudentProgressService\n\n  get studentStartingLesson() {\n    return this.user.student.worldsStartingLesson ?? 1\n  }\n\n  get finalWorld() {\n    return this.features.getClient().getObjectValue<{\n      payload: number\n    }>('re_learning-worlds-final-world', { payload: 1 }).payload\n  }\n\n  isBuildingUnlocked({\n    world,\n    building,\n  }: {\n    world: number\n    building: WorldAreaId\n  }) {\n    const requiredLesson = BUILDING_UNLOCK_LESSON[world]?.[building]\n    if (requiredLesson === undefined) return true\n    return (\n      this.studentProgress.lessonsLastCompletedLessonNumber >= requiredLesson\n    )\n  }\n\n  isContentUnlocked({\n    world,\n    building,\n    contentId,\n  }: {\n    world: number\n    building: WorldAreaId\n    contentId: string\n  }) {\n    const requiredLesson = CONTENT_UNLOCK_LESSON[world]?.[building]?.[contentId]\n    if (requiredLesson === undefined) return true\n    return (\n      this.studentProgress.lessonsLastCompletedLessonNumber >= requiredLesson\n    )\n  }\n\n  /**\n   * The student's starting lesson falls within `world`'s lesson range, so\n   * they were placed directly into this world and never had a previous\n   * world to complete.\n   */\n  isStartingLessonWithinWorld(world: number) {\n    const { lessonsPerMap } = config.studentProgress.progress.lessons\n    const firstLesson = (world - 1) * lessonsPerMap + 1\n    const lastLesson = world * lessonsPerMap\n\n    return (\n      this.studentStartingLesson >= firstLesson &&\n      this.studentStartingLesson <= lastLesson\n    )\n  }\n\n  /**\n   * The highest world the student can currently access. Progress only ever\n   * advances to `lessonsCurrentMap`, so the result is either that world (if\n   * it's reachable) or the one before it.\n   */\n  async highestUnlockedWorld(): Promise<number> {\n    const { lessonsCurrentMap } = this.studentProgress\n\n    if (\n      lessonsCurrentMap <= 1 ||\n      this.isStartingLessonWithinWorld(lessonsCurrentMap)\n    ) {\n      return lessonsCurrentMap\n    }\n\n    const previousWorld = await this.fetchWorldData({\n      world: lessonsCurrentMap - 1,\n    })\n    if (\n      previousWorld.areaRevealPosition === WORLD_COMPLETE_AREA_REVEAL_POSITION\n    ) {\n      return lessonsCurrentMap\n    }\n\n    return lessonsCurrentMap - 1\n  }\n\n  async fetchWorldData({\n    world,\n    fetchPolicy,\n  }: {\n    world: number\n    fetchPolicy?: FetchPolicy | undefined\n  }) {\n    const {\n      data: { student },\n    } = await this.apollo.query({\n      query: worldDataQueryDocument,\n      variables: { worldId: String(world) },\n      ...(fetchPolicy && { fetchPolicy }),\n    })\n\n    if (!student) {\n      throw new NotAuthenticatedError(\n        'null student returned from FetchWorldData query',\n      )\n    }\n\n    const {\n      previousWorldsOnboarding,\n      world: { previousInteractions, areaRevealPosition },\n    } = student\n\n    return {\n      previousInteractions,\n      areaRevealPosition,\n      previousWorldsOnboarding,\n    }\n  }\n\n  async saveInteraction({\n    world,\n    interaction,\n  }: {\n    world: number\n    interaction: string\n  }) {\n    await this.apollo.mutate({\n      mutation: studentWorldInteractionCreateMutationDocument,\n      variables: {\n        input: { worldId: String(world), interactionId: interaction },\n      },\n    })\n  }\n\n  async onboardingSectionComplete({\n    onboardingSection,\n  }: {\n    onboardingSection: string\n  }) {\n    await this.apollo.mutate({\n      mutation: studentWorldOnboardingSectionCompleteMutationDocument,\n      variables: {\n        input: { section: onboardingSection },\n      },\n    })\n  }\n\n  async updateAreaRevealPosition({\n    world,\n    areaRevealPosition,\n  }: {\n    world: number\n    areaRevealPosition: string\n  }) {\n    await this.apollo.mutate({\n      mutation: studentWorldAreaRevealPositionSetMutationDocument,\n      variables: {\n        input: { worldId: String(world), areaRevealPosition },\n      },\n    })\n  }\n\n  clearWorldsFromApolloCache() {\n    const { cache } = this.apollo\n    Object.keys(cache.extract())\n      .filter((id) => id.startsWith('World:'))\n      .forEach((id) => cache.evict({ id }))\n    cache.gc()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'learning-worlds': LearningWorldsService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport { graphql } from 're-client/graphql'\nimport type {\n  ReadingEndOfLessonQuizResultCreateInput,\n  ReadingLessonActivityResultCreateInput,\n} from 're-client/graphql/graphql'\nimport type ApolloService from 're-client/services/apollo'\n\nexport const saveSkillsQuizResultMutationDocument = graphql(/* GraphQL */ `\n  mutation SaveSkillsQuizResult(\n    $input: ReadingEndOfLessonQuizResultCreateInput!\n  ) {\n    readingEndOfLessonQuizResultCreate(input: $input) {\n      readingEndOfLessonQuizResult {\n        attempt\n        autoPassed\n        lessonInPrecinct\n        passed\n        eggsEarned\n      }\n      student {\n        id\n        badges {\n          id\n          lesson\n          colour\n        }\n        ...StudentProgressFragment\n        ...StudentQuestDataFragment\n        ...AssignmentTask\n        ...StudentAskReggieDataFragment\n      }\n    }\n  }\n`)\n\nexport const saveReadingLessonActivityResultMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation SaveReadingLessonActivityResult(\n      $input: ReadingLessonActivityResultCreateInput!\n    ) {\n      readingLessonActivityResultCreate(input: $input) {\n        readingLessonActivityResult {\n          reward {\n            eggs\n          }\n        }\n        student {\n          id\n          ...StudentProgressFragment\n          ...AssignmentTask\n          ...StudentQuestDataFragment\n          ...StudentAskReggieDataFragment\n        }\n      }\n    }\n  `,\n)\n\n/**\n * The GraphQL mutations shared by the lessons and worlds lesson activity\n * controllers for saving activity/quiz progress.\n */\nexport default class LessonActivityMutationsService extends Service {\n  @service declare apollo: ApolloService\n\n  async saveReadingLessonActivityResult(\n    input: ReadingLessonActivityResultCreateInput,\n  ) {\n    const result = await this.apollo.mutate({\n      mutation: saveReadingLessonActivityResultMutationDocument,\n      variables: { input },\n    })\n    return result.data\n  }\n\n  async saveSkillsQuizResult(input: ReadingEndOfLessonQuizResultCreateInput) {\n    const result = await this.apollo.mutate({\n      mutation: saveSkillsQuizResultMutationDocument,\n      variables: { input },\n    })\n    return result.data\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'lesson-activity-mutations': LessonActivityMutationsService\n  }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n\nimport Service, { inject as service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport { get, uniqBy } from 'lodash'\nimport type { Activity } from 're-client/services/activity'\nimport { Framework } from 're-client/graphql/graphql'\nimport type CaperLoaderService from 're-client/services/caper-loader'\nimport type JesterLoaderService from 're-client/services/jester-loader'\nimport type UrlMakerService from 're-client/services/url-maker'\n\n/**\n * Loads and caches the manifest bundles (Caper or Jester) for a lesson's\n * activities, and resolves activity thumbnails from those bundles.\n * Shared by the lessons and worlds lesson routes.\n */\nexport default class LessonManifestBundlesService extends Service {\n  @service() declare caperLoader: CaperLoaderService\n\n  @service() declare jesterLoader: JesterLoaderService\n\n  @service declare urlMaker: UrlMakerService\n\n  async fetchManifestBundle(activity: Activity) {\n    let loader\n    let manifestBundleUrl\n\n    if (activity.framework === Framework.Caper) {\n      loader = this.caperLoader.loader\n      manifestBundleUrl = this.urlMaker.urlForManifestBundle(\n        activity.manifestBundle,\n      )\n    } else {\n      loader = this.jesterLoader.loader\n      manifestBundleUrl = loader.urlForManifestBundle(activity.manifestBundle)\n    }\n\n    const manifestBundle = await loader.fetchManifest(manifestBundleUrl)\n    return manifestBundle\n  }\n\n  async fetchManifestBundlesForActivities(activitiesForLesson: Activity[]) {\n    const uniqueActivitiesByFramework = uniqBy(activitiesForLesson, 'framework')\n\n    const manifestBundles = await Promise.all(\n      uniqueActivitiesByFramework.map((activity) =>\n        this.fetchManifestBundle(activity),\n      ),\n    )\n\n    return new Map(\n      uniqueActivitiesByFramework.map(({ framework }, index) => [\n        framework,\n        manifestBundles[index],\n      ]),\n    )\n  }\n\n  getManifestBundle(\n    framework: Framework,\n    manifestBundles: Map<Framework, unknown>,\n  ) {\n    return manifestBundles.get(framework)\n  }\n\n  getActivityThumbnail(\n    framework: Framework,\n    manifestKey: string[],\n    manifestBundles: Map<Framework, unknown>,\n  ) {\n    switch (framework) {\n      case Framework.Jester: {\n        const thumb = get(manifestBundles.get(Framework.Jester), manifestKey)\n          ?.assets?._lazy?.images[0]\n        if (typeof thumb === 'string') return thumb\n        if (thumb && 'assetPath' in thumb)\n          return new URL(\n            thumb.assetPath,\n            config.contentLoader.jester.assetHosts.assets,\n          ).toString()\n        return\n      }\n\n      case Framework.Caper: {\n        const thumb = get(\n          manifestBundles.get(Framework.Caper),\n          manifestKey,\n        )?.thumb\n        if (typeof thumb === 'string') return thumb\n        if (thumb && 'assetPath' in thumb)\n          return new URL(\n            thumb.assetPath,\n            config.contentLoader.caper.assetHosts.assets,\n          ).toString()\n        return\n      }\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'lesson-manifest-bundles': LessonManifestBundlesService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport config from 're-client/config/environment'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport {\n  isOnFinalLessonsMap,\n  previousLessonMapId,\n} from 're-client/utils/progress-tools'\nimport type AssignmentsService from 're-client/services/assignments'\nimport type AskReggieService from './ask-reggie'\n\nexport default class LessonsService extends Service {\n  @service declare assignments: AssignmentsService\n\n  @service declare studentProgress: StudentProgressService\n\n  @service declare askReggie: AskReggieService\n\n  @tracked\n  private map: number | undefined = undefined\n\n  @tracked\n  private lesson: string | undefined = undefined\n\n  @tracked\n  private activity: number | undefined = undefined\n\n  get currentMap() {\n    return this.map ?? this.studentProgress.lessonsCurrentMap\n  }\n\n  setCurrentMap(mapId: number) {\n    const { lessonsCurrentMap } = this.studentProgress\n    this.map = Math.min(mapId, lessonsCurrentMap, config.APP.lastMap)\n    this.lesson = undefined\n    this.activity = undefined\n\n    return this\n  }\n\n  get currentLesson() {\n    if (this.assignments.currentTask?.__typename === 'AssignmentTaskLesson') {\n      return this.assignments.currentTask.lessonId\n    }\n\n    return this.lesson ?? this.studentProgress.lessonsCurrentLesson\n  }\n\n  setCurrentLesson(lesson: string) {\n    if (this.isWithinProgress(this.currentMap, lesson)) {\n      this.lesson = lesson\n      this.activity = undefined\n    }\n\n    return this\n  }\n\n  get currentActivity() {\n    if (this.assignments.currentTask?.__typename === 'AssignmentTaskLesson') {\n      return Number(this.assignments.currentTask.activityId)\n    }\n\n    if (this.askReggie.data?.__typename === 'AskReggieSkipLesson') {\n      return this.askReggie.data.activity\n    }\n\n    if (this.activity) {\n      return this.activity\n    }\n\n    if (this.studentProgress.lessonsCurrentLesson === this.currentLesson) {\n      return this.studentProgress.lessons.currentActivity\n    }\n\n    return 1\n  }\n\n  setCurrentActivity(activity: number) {\n    if (this.isWithinProgress(this.currentMap, this.currentLesson, activity)) {\n      this.activity = activity\n    }\n\n    return this\n  }\n\n  get canPlayQuizForMap() {\n    return this.isWithinProgress(this.currentMap, 'quiz')\n  }\n\n  canPlayActivity(activityId: number) {\n    return this.isWithinProgress(\n      this.currentMap,\n      this.currentLesson,\n      activityId,\n    )\n  }\n\n  isWithinProgress(\n    mapId = this.currentMap,\n    lessonId = this.currentLesson,\n    activityId = this.currentActivity,\n  ) {\n    const {\n      lessonsCurrentActivity,\n      lessonsCurrentLesson,\n      lessonsCurrentLessonNumber,\n      lessonsCurrentMap,\n    } = this.studentProgress\n\n    const lessonNumber = Number(lessonId)\n    const isCurrentLessonQuiz = lessonsCurrentLesson === 'quiz'\n\n    const isPreviousMap = mapId < lessonsCurrentMap\n    const isPreviousLesson = isCurrentLessonQuiz\n      ? lessonNumber <= lessonsCurrentLessonNumber\n      : lessonNumber < lessonsCurrentLessonNumber\n\n    const isCurrentMap = mapId === lessonsCurrentMap\n    const isCurrentLesson = lessonId === lessonsCurrentLesson\n\n    if (isCurrentMap && isCurrentLesson) {\n      return activityId <= lessonsCurrentActivity\n    }\n\n    return (isCurrentMap && isPreviousLesson) || isPreviousMap\n  }\n\n  get isQuizComplete() {\n    return this.currentMap < this.studentProgress.lessonsCurrentMap\n  }\n\n  get isOnFinalMap() {\n    return isOnFinalLessonsMap(this.currentMap)\n  }\n\n  get previousMapId() {\n    return previousLessonMapId(this.currentMap)\n  }\n\n  get nextMapId() {\n    return this.currentMap + 1\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    lessons: LessonsService\n  }\n}\n","import { runInDebug } from '@ember/debug'\nimport Service from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\n\n/**\n * A service to hold the loading state used by the loading-screen component to determine if it should be visible.\n *\n * In the application route listeners are attached to the router.\n *\n * For each `routeWillChange` event the show() method is called (excluding debug mode). This can be overidden per route by adding metadata to the routeInfo object as follows:\n * @example\n * ```\n * buildRouteInfoMetadata(){\n *  return {\n *    optOutLoadingScreen: true,\n *  }\n * }\n * ```\n * On a `routeDidChange` event we traverse the list of routeInfo objects from the top down, checking if any resolved model contains an `interactiveConfig` or a `loader`.\n * The existance of these keys indicate that a route is loading an interactive and will handle clearing the loading screen manually. If neither of these keys are found we clear the loading screen automatically.\n *\n * For Jester a `readyForUserInput` content action should call `hide()` on this service.\n *\n * For Caper we are listening for a `LOAD_COMPLETE` event via the `caper-load-complete` modifier which is applied directly to the `loading-screen` component.\n *\n * @class LoadingUiService\n */\nexport default class LoadingUiService extends Service {\n  @tracked isLoading = false\n\n  show() {\n    runInDebug(() => {\n      console.debug(`%cshow loading screen`, 'color: red; font-size: 1.1rem')\n    })\n    this.isLoading = true\n  }\n\n  hide() {\n    runInDebug(() => {\n      console.debug(`%chide loading screen`, 'color: red; font-size: 1.1rem')\n    })\n    this.isLoading = false\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'loading-ui': LoadingUiService\n  }\n}\n","import Service from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\n\nexport interface StorylandsQuizData {\n  currentQuestion: number\n  correctAnswers: number[]\n  incorrectAnswers: number[]\n  score: number\n}\n\n/**\n * Service for holding the location state for the user.\n *\n * @method function\n * Route information is sent to the service via setCurrentRoute.\n * It is usually sent as part of the afterModel in routes.\n *\n * @method function\n * Route information is retrieved from the service via getPreviousRoute.\n * It returns both the saved route and the params.\n *\n * @method function\n * storylandsQuizValues is the value supplied to the storylands lesson quiz\n * caper activity. It is initially set to storylandsQuizDefaults but will be\n * updated when the caper activity calls setStorylandsQuizState which is after\n * each question answered in the lesson quiz.\n *\n * @class LocationTrackerService\n */\nexport default class LocationTrackerService extends Service {\n  @tracked route = 'index'\n\n  @tracked params: unknown[] = []\n\n  @tracked storylandsQuizData: StorylandsQuizData | null = null\n\n  get storylandsQuizValues() {\n    return (\n      this.storylandsQuizData ?? {\n        currentQuestion: 1,\n        correctAnswers: [],\n        incorrectAnswers: [],\n        score: 0,\n      }\n    )\n  }\n\n  setStorylandsQuizState(state: StorylandsQuizData | null) {\n    this.storylandsQuizData = state\n  }\n\n  getStorylandsQuizState() {\n    return this.storylandsQuizValues\n  }\n\n  getPreviousRoute() {\n    return { route: this.route, params: this.params }\n  }\n\n  setCurrentRoute(route: string | undefined, params: unknown[]) {\n    if (route) {\n      this.route = route\n      this.params = params\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'location-tracker': LocationTrackerService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport type DeviceNetwork from '@blakeelearning/device/device/network/service'\n\n/**\n * @class OfflineScreenService\n */\nexport default class OfflineScreenService extends Service {\n  @tracked onlineCalled = false\n\n  @tracked shouldDisplay = false\n\n  @service('device/network')\n  declare network: DeviceNetwork\n\n  /**\n   * When the network status is offline (determined bye the offline/online events fired)\n   * and the offlineScreen is displaying then we can\n   * show the offline screen. The offlineScreen service prop is set\n   * when errors certain error conditions are met, mainly done in the applications route error action\n   * or for one special case in the page-loader component.\n   *\n   * @type boolean\n   */\n  get canShowOfflineScreen() {\n    const { isOnline, isOffline } = this.network.status\n\n    if (this.onlineCalled && isOnline && this.shouldDisplay) {\n      this._reloadWindow()\n      return\n    }\n\n    return isOffline && this.shouldDisplay\n  }\n\n  /**\n   * Setter for shouldDisplay. indicates if the offline screen should be shown.\n   */\n  display() {\n    this.shouldDisplay = true\n  }\n\n  _reloadWindow() {\n    window.location.reload()\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport posthog, { type CaptureOptions, type Properties } from 'posthog-js'\nimport config from 're-client/config/environment'\nimport type UserService from './user'\nimport type { FeatureService } from '@blakeelearning/features'\nimport { tracked } from '@glimmer/tracking'\n\nconst {\n  posthog: { projectToken, apiHost },\n} = config\n\nexport default class PosthogService extends Service {\n  @service declare user: UserService\n\n  @service declare features: FeatureService\n\n  @tracked isInstalled = false\n\n  capture(\n    event: string,\n    customProperties?: Properties,\n    options?: CaptureOptions,\n  ) {\n    const properties = { application: 're', ...customProperties }\n\n    console.debug('Capturing Posthog event', { event, properties, options })\n    if (!this.isInstalled) {\n      console.debug('Posthog is not installed, skipping capture')\n      return\n    }\n    posthog.capture(event, properties, {\n      ...options,\n      $set: {\n        customer_type: this.user.student.customerType.toLowerCase(),\n        ...options?.$set,\n      },\n    })\n  }\n\n  setup() {\n    if (\n      !config.posthog.enabled ||\n      !this.features.isEnabled('posthog-capture')\n    ) {\n      console.debug('Posthog is not enabled')\n      return\n    }\n\n    this._setup()\n  }\n\n  _setup() {\n    posthog.init(projectToken, {\n      api_host: apiHost,\n      autocapture: false,\n      capture_pageleave: false,\n      capture_pageview: false,\n      capture_performance: false,\n      advanced_disable_flags: true,\n      bootstrap: {\n        distinctID: this.user.student.id,\n        isIdentifiedID: true,\n      },\n    })\n\n    this.isInstalled = true\n  }\n\n  reset() {\n    if (!this.isInstalled) return\n    posthog.reset()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    posthog: PosthogService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport { graphql } from 're-client/graphql'\nimport type { DocumentType } from 're-client/graphql'\nimport { QuestGoalStatusEnum } from 're-client/graphql/graphql'\nimport type { StudentQuestGoalAcknowledgeCompleteInput } from 're-client/graphql/graphql'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type RouterService from '@ember/routing/router-service'\nimport { useQuery } from 're-client/resources/query'\nimport { useMutation } from 're-client/resources/mutation'\nimport { tracked } from '@glimmer/tracking'\nimport type { RouteModel } from '@ember/routing/router-service'\nimport type LoadingUiService from './loading-ui'\n\nconst _StudentQuestDataFragment = graphql(/* GraphQL */ `\n  fragment StudentQuestDataFragment on Student {\n    id\n    quest {\n      easyGoal {\n        __typename\n        goalType: __typename\n        ... on QuestGoalEarnEggs {\n          id\n          progressCurrent\n          progressTotal\n          rewardAmount\n          status\n        }\n      }\n      primaryGoal {\n        __typename\n        goalType: __typename\n\n        ... on QuestGoalLesson {\n          id\n          lesson\n          progressCurrent\n          progressTotal\n          rewardAmount\n          status\n        }\n        ... on QuestGoalMap {\n          id\n          map\n          progressCurrent\n          progressTotal\n          rewardAmount\n          status\n        }\n      }\n    }\n  }\n`)\n\nconst StudentQuestQueryDocument = graphql(/* GraphQL */ `\n  query GetStudentQuest {\n    student {\n      ...StudentQuestDataFragment\n    }\n  }\n`)\n\nexport const acknowledgeQuestGoalAlertMutationDocument = graphql(/* GraphQL */ `\n  mutation AcknowledgeQuestGoalAlert(\n    $input: StudentQuestGoalAcknowledgeCompleteInput!\n  ) {\n    studentQuestGoalAcknowledgeComplete(input: $input) {\n      student {\n        id\n        eggs\n        ...StudentQuestDataFragment\n      }\n    }\n  }\n`)\nexport default class QuestService extends Service {\n  @service declare features: FeatureService\n\n  @service declare router: RouterService\n\n  @service declare loadingUi: LoadingUiService\n\n  @tracked showQuestAlert = false\n\n  nextRoute: [string] | [string, RouteModel] | undefined\n\n  _studentQuestQuery = useQuery(this, () => {\n    return {\n      query: StudentQuestQueryDocument,\n    }\n  })\n\n  _acknowledgeQuestGoalAlertMutation = useMutation(\n    this,\n    acknowledgeQuestGoalAlertMutationDocument,\n  )\n\n  get currentQuest() {\n    return this._studentQuestQuery.current.data?.student?.quest\n  }\n\n  get incompleteEarnEggGoals() {\n    return [this.currentQuest?.easyGoal].filter(\n      (goal) => goal?.status === QuestGoalStatusEnum.Incomplete,\n    )\n  }\n\n  get questGoalForNotification() {\n    const easyGoal = this.currentQuest?.easyGoal\n    const primaryGoal = this.currentQuest?.primaryGoal\n\n    if (primaryGoal?.status === QuestGoalStatusEnum.ShowCompleteAlert)\n      return primaryGoal\n    if (easyGoal?.status === QuestGoalStatusEnum.ShowCompleteAlert)\n      return easyGoal\n    return undefined\n  }\n\n  get recommendedTargetRoute() {\n    if (!this.currentQuest) return\n\n    const primaryGoal = this.currentQuest.primaryGoal\n    if (primaryGoal?.status === QuestGoalStatusEnum.Incomplete) {\n      switch (primaryGoal.__typename) {\n        case 'QuestGoalLesson':\n          return [\n            'lessons.lesson.activity',\n            primaryGoal.lesson.toString(),\n            (primaryGoal.progressCurrent + 1).toString(),\n          ]\n        case 'QuestGoalMap':\n          return ['lessons.map.quiz', primaryGoal.map.toString()]\n        default:\n          return undefined\n      }\n    }\n    return\n  }\n\n  async fetch() {\n    await this._studentQuestQuery.current.refetch()\n    await this.setup()\n  }\n\n  async setup() {\n    await this._studentQuestQuery.current.result()\n  }\n\n  async acknowledgeQuestGoalAlert(\n    input: StudentQuestGoalAcknowledgeCompleteInput,\n  ) {\n    await this._acknowledgeQuestGoalAlertMutation.current.mutate({\n      variables: {\n        input,\n      },\n    })\n  }\n\n  displayQuestAlertIfRequired(nextRoute?: [string] | [string, RouteModel]) {\n    if (this.questGoalForNotification) {\n      this.nextRoute = nextRoute\n      this.loadingUi.show()\n      this.showQuestAlert = true\n    } else {\n      // @ts-expect-error router params type no bueno\n      if (nextRoute) this.router.transitionTo(...nextRoute)\n    }\n  }\n\n  closeQuestAlert() {\n    this.showQuestAlert = false\n    if (this.nextRoute) {\n      const nextRoute = this.nextRoute\n      this.nextRoute = undefined\n      // @ts-expect-error router params type no bueno\n      this.router.transitionTo(...nextRoute)\n    }\n  }\n\n  incrementEggGoals(amount: number) {\n    this._studentQuestQuery.current.updateQuery((data) => {\n      if (!data.student?.quest?.easyGoal) return data\n\n      return {\n        __typename: 'Query',\n        student: {\n          ...data.student,\n          quest: {\n            ...data.student.quest,\n            easyGoal: this._updateEggGoal(data.student.quest.easyGoal, amount),\n          },\n        },\n      }\n    })\n  }\n\n  _updateEggGoal(\n    goal: NonNullable<\n      NonNullable<\n        DocumentType<typeof _StudentQuestDataFragment>['quest']\n      >['easyGoal']\n    >,\n    amount: number,\n  ) {\n    if (goal.status !== QuestGoalStatusEnum.Incomplete) return goal\n\n    const willCompleteGoal = goal.progressCurrent + amount >= goal.progressTotal\n\n    if (willCompleteGoal) {\n      return {\n        ...goal,\n        progressCurrent: goal.progressTotal,\n        status: QuestGoalStatusEnum.ShowCompleteAlert,\n      }\n    }\n    return {\n      ...goal,\n      progressCurrent: goal.progressCurrent + amount,\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    quest: QuestService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport type ApolloService from 're-client/services/apollo'\nimport { graphql } from 're-client/graphql'\nimport type { DocumentType } from 're-client/graphql'\nimport type {\n  QuizAnswerInput,\n  ReadingGoalsQuizAreaEnum,\n  ReadingGoalsQuizLevelEnum,\n} from 're-client/graphql/graphql'\nimport { useMutation } from 're-client/resources/mutation'\n\ngraphql(`\n  fragment ReadingGoalsQuizFragment on ReadingGoalsQuiz {\n    area\n    badgeReward\n    id\n    level\n    name\n  }\n`)\n\nconst _ReadingGoalsQuizSummaryFragment = graphql(`\n  fragment ReadingGoalsQuizSummaryFragment on ReadingGoalsQuizSummary {\n    attemptsThisWeek\n    eggsReward\n    id\n    passed\n    secondsToPass\n    timestamp\n  }\n`)\n\ngraphql(`\n  fragment QuizAnswerFragment on QuizAnswer {\n    correct\n    correctAnswer\n    studentAnswer\n  }\n`)\n\ngraphql(`\n  fragment ReadingGoalsQuizResultFragment on ReadingGoalsQuizResult {\n    answers {\n      ...QuizAnswerFragment\n    }\n    attemptUuid\n    createdAt\n    eggsReward\n    id\n    level\n    passed\n    quizId\n    score\n  }\n`)\n\nconst readingGoalsQuizzesQueryDocument = graphql(`\n  query GetReadingGoalsQuizzes {\n    readingGoalsQuizzes {\n      ...ReadingGoalsQuizFragment\n    }\n  }\n`)\n\nconst readingGoalsQuizRecordQueryDocument = graphql(`\n  query GetReadingGoalsQuizRecord {\n    student {\n      readingGoalsMinimumLevel\n      readingGoalsQuizSecondsToNextWeek\n      readingGoalsQuizSummaries {\n        ...ReadingGoalsQuizSummaryFragment\n      }\n    }\n  }\n`)\n\nconst readingGoalsQuizResultCreateMutationDocument = graphql(`\n  mutation CreateReadingGoalsQuizResult(\n    $input: ReadingGoalsQuizResultCreateInput!\n  ) {\n    readingGoalsQuizResultCreate(input: $input) {\n      readingGoalsQuizResult {\n        passed\n        eggsReward\n      }\n      student {\n        id\n        eggs\n        name @client\n        readingGoalsQuizSummaries {\n          ...ReadingGoalsQuizSummaryFragment\n        }\n      }\n    }\n  }\n`)\n\ntype ReadingGoalsQuizSummary = DocumentType<\n  typeof _ReadingGoalsQuizSummaryFragment\n>\n\ninterface CreateReadingGoalsQuizResultOptions {\n  answers: QuizAnswerInput[]\n  attemptUuid: string\n  quizId: string\n}\n\nexport interface ReadingGoalsQuizTile {\n  area: ReadingGoalsQuizAreaEnum\n  badgeReward: string\n  id: string\n  level: ReadingGoalsQuizLevelEnum\n  name: string\n  attemptsThisWeek: number\n  eggsReward?: number | null\n  passed: boolean\n  secondsToPass?: number | null\n  timestamp: string\n}\n\nexport default class ReadingGoalsService extends Service {\n  @service\n  declare apollo: ApolloService\n\n  readingGoalsQuizResultCreateMutation = useMutation(\n    this,\n    readingGoalsQuizResultCreateMutationDocument,\n  )\n\n  @tracked lastCompletedQuizId = ''\n\n  async getQuizzes() {\n    const {\n      data: { readingGoalsQuizzes },\n    } = await this.apollo.query({\n      query: readingGoalsQuizzesQueryDocument,\n    })\n\n    return readingGoalsQuizzes\n  }\n\n  async getRecord() {\n    const {\n      data: { student },\n    } = await this.apollo.query({\n      query: readingGoalsQuizRecordQueryDocument,\n    })\n\n    const summaries = new Map<string, ReadingGoalsQuizSummary>()\n\n    if (student?.readingGoalsQuizSummaries) {\n      for (const item of student.readingGoalsQuizSummaries) {\n        summaries.set(item.id, item)\n      }\n    }\n\n    return {\n      summaries,\n      minimumLevel: student?.readingGoalsMinimumLevel,\n      secondsToNextWeek: student?.readingGoalsQuizSecondsToNextWeek,\n    }\n  }\n\n  async createQuizResult({\n    answers,\n    attemptUuid,\n    quizId,\n  }: CreateReadingGoalsQuizResultOptions) {\n    return this.readingGoalsQuizResultCreateMutation.current.mutate({\n      variables: {\n        input: {\n          answers,\n          attemptUuid,\n          quizId,\n        },\n      },\n    })\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'reading-goals': ReadingGoalsService\n  }\n}\n","import { SessionService as AuthSessionService } from '@blakeelearning/auth'\nimport { service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport type PosthogService from 're-client/services/posthog'\n\nexport default class SessionService extends AuthSessionService {\n  @service declare posthog: PosthogService\n\n  signIn() {\n    this._navigate(config.APP.loginUrl)\n  }\n\n  signOut() {\n    this.posthog.reset()\n    this._navigate(config.APP.logoutUrl)\n  }\n\n  _navigate(url: string) {\n    window.location.replace(url)\n  }\n}\n\ndeclare module '@blakeelearning/auth' {\n  interface Session {\n    token: string | null\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    session: SessionService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport { assert } from '@ember/debug'\nimport type Store from '@ember-data/store'\nimport type ThemeService from 're-client/services/theme'\nimport type UserService from 're-client/services/user'\nimport type { Log } from '@blakeelearning/log'\nimport ky from 'ky'\n\nexport default class ShopService extends Service {\n  @service\n  declare theme: ThemeService\n\n  @service\n  declare store: Store\n\n  @service\n  declare user: UserService\n\n  @service\n  declare log: Log\n\n  get student() {\n    return this.user.student\n  }\n\n  /**\n   * The purchase method will call the api to purchase an item and after that we will reload the student\n   * to update the eggs, this could be done through the backend by sending the current student\n   * back with the response which would save us one round trip.\n   * @method purchase\n   * @param item - item object which has to have at least the id given like -> head_47\n   * @returns - a promise that resolves to a result object\n   */\n  async purchase({ id }: { id: string }) {\n    // add the item id as an ember model id to avoid error with the missing response from the server\n    const item = this.store.createRecord('item', {\n      code: id,\n      studentId: this.student.id,\n    })\n\n    try {\n      await item.save()\n      return { ok: true }\n    } catch (error) {\n      this.log.error('[Shop][purchase] failed', error as Error)\n      item.unloadRecord()\n      const { name, message } = error as Error\n      return { ok: false, error: { name, message } }\n    } finally {\n      await this.user.fetch()\n    }\n  }\n\n  /**\n   * PurchaseBundle will make a POST call to the backend with a payload of x items.\n   * The method will generate the bundle_purchase url\n   *\n   * @method purchaseBundle\n   * @param codes - make sure this and array of items like [\"head_40\", \"arms_10\"]\n   * @returns - a promise that resolves to a result object\n   */\n  async purchaseBundle(codes: string[]) {\n    assert('`codes` argument must be an array', Array.isArray(codes))\n\n    const adapter = this.store.adapterFor('application')\n    const url = adapter.buildURL('bundle-items')\n\n    try {\n      await ky.post(url, {\n        credentials: 'include',\n        json: {\n          items: codes.map((code) => ({ code })),\n        },\n      })\n      return { ok: true }\n    } catch (error) {\n      this.log.error('[Shop][purchaseBundle] failed', error as Error)\n      const { name, message } = error as Error\n      return { ok: false, error: { name, message } }\n    } finally {\n      await this.user.fetch()\n    }\n  }\n\n  /**\n   * Returns the bundle price for given items\n   *\n   * @param items - make sure this an array of items like [{ id: \"head_40\" }]\n   */\n  bundlePrice(items: string[]) {\n    const adapter = this.store.adapterFor('application')\n    const url = adapter.buildURL('bundle-items')\n    const searchParams = new URLSearchParams()\n\n    for (const item of items) {\n      searchParams.append('items[]', item)\n    }\n\n    return ky.get(url, { credentials: 'include', searchParams }).json()\n  }\n}\n","import { Howl } from 'howler'\nimport Service, { service } from '@ember/service'\nimport { isTesting, macroCondition } from '@embroider/macros'\nimport type { Log } from '@blakeelearning/log'\n\ndeclare global {\n  interface AudioContext {\n    // Safari has an additional 'interrupted' state\n    state: AudioContextState | 'interrupted'\n  }\n}\n\nexport default class SoundsService extends Service {\n  @service\n  declare log: Log\n\n  /**\n   * Arrow syntax used in order to bind `this`\n   */\n  onplayerror = (_id: number, error: unknown) => {\n    this.log.error(error as Error)\n  }\n\n  /**\n   * Cache of sounds by name\n   */\n  sounds = new Map([\n    [\n      'snap',\n      new Howl({\n        src: '/assets/audio/snap.mp3',\n        onplayerror: this.onplayerror,\n      }),\n    ],\n    [\n      'chaching',\n      new Howl({\n        src: '/assets/audio/chaching.mp3',\n        onplayerror: this.onplayerror,\n      }),\n    ],\n  ])\n\n  /**\n   * Plays a sound when found in the cache\n   * @param name - id name of the sound\n   */\n  play(name: string) {\n    const sound = this.sounds.get(name)\n    if (macroCondition(isTesting())) {\n      // Do not play sounds in test environment\n    } else if (sound) {\n      try {\n        sound.play()\n      } catch (error: unknown) {\n        this.log.error(error as Error)\n      }\n    }\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    sounds: SoundsService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport config from 're-client/config/environment'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport {\n  isOnFinalLessonsMap,\n  previousLessonMapId,\n} from 're-client/utils/progress-tools'\nimport type AssignmentsService from 're-client/services/assignments'\n\nexport default class SpellingService extends Service {\n  @service declare assignments: AssignmentsService\n\n  @service declare studentProgress: StudentProgressService\n\n  @tracked\n  private map: number | undefined = undefined\n\n  @tracked\n  private lesson: string | undefined = undefined\n\n  @tracked\n  private activity: number | undefined = undefined\n\n  get currentMap() {\n    return this.map ?? this.studentProgress.spellingCurrentMap\n  }\n\n  setCurrentMap(mapId: number) {\n    const { spellingCurrentMap } = this.studentProgress\n    this.map = Math.min(mapId, spellingCurrentMap, config.APP.lastSpellingMap)\n    this.lesson = undefined\n    this.activity = undefined\n\n    return this\n  }\n\n  get currentLesson() {\n    if (this.assignments.currentTask?.__typename === 'AssignmentTaskSpelling') {\n      return this.assignments.currentTask.lessonId\n    }\n\n    return this.lesson ?? this.studentProgress.spellingCurrentLesson\n  }\n\n  setCurrentLesson(lesson: string) {\n    if (this.isWithinProgress(this.currentMap, lesson)) {\n      this.lesson = lesson\n      this.activity = undefined\n    }\n\n    return this\n  }\n\n  get currentActivity() {\n    if (this.assignments.currentTask?.__typename === 'AssignmentTaskSpelling') {\n      return Number(this.assignments.currentTask.activityId)\n    }\n\n    if (this.activity) {\n      return this.activity\n    }\n\n    if (this.studentProgress.spelling.currentLesson === this.currentLesson) {\n      return this.studentProgress.spelling.currentActivity\n    }\n\n    return 1\n  }\n\n  setCurrentActivity(activity: number) {\n    if (this.isWithinProgress(this.currentMap, this.currentLesson, activity)) {\n      this.activity = activity\n    }\n\n    return this\n  }\n\n  get canPlayQuizForMap() {\n    return this.isWithinProgress(this.currentMap, 'quiz')\n  }\n\n  canPlayActivity(activityId: number) {\n    return this.isWithinProgress(\n      this.currentMap,\n      this.currentLesson,\n      activityId,\n    )\n  }\n\n  isWithinProgress(\n    mapId = this.currentMap,\n    lessonId = this.currentLesson,\n    activityId = this.currentActivity,\n  ) {\n    const {\n      spellingCurrentActivity,\n      spellingCurrentLesson,\n      spellingCurrentLessonNumber,\n      spellingCurrentMap,\n    } = this.studentProgress\n\n    const lessonNumber = Number(lessonId)\n    const isCurrentLessonQuiz = spellingCurrentLesson === 'quiz'\n\n    const isPreviousMap = mapId < spellingCurrentMap\n    const isPreviousLesson = isCurrentLessonQuiz\n      ? lessonNumber <= spellingCurrentLessonNumber\n      : lessonNumber < spellingCurrentLessonNumber\n\n    const isCurrentMap = mapId === spellingCurrentMap\n    const isCurrentLesson = lessonId === spellingCurrentLesson\n\n    if (isCurrentMap && isCurrentLesson) {\n      return activityId <= spellingCurrentActivity\n    }\n\n    return (isCurrentMap && isPreviousLesson) || isPreviousMap\n  }\n\n  get isQuizComplete() {\n    return this.currentMap < this.studentProgress.spellingCurrentMap\n  }\n\n  get isOnFinalMap() {\n    return isOnFinalLessonsMap(this.currentMap, config.APP.lastSpellingMap)\n  }\n\n  get previousMapId() {\n    return previousLessonMapId(this.currentMap, config.APP.lastSpellingMap)\n  }\n\n  get nextMapId() {\n    return this.currentMap + 1\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    spelling: SpellingService\n  }\n}\n","import { deprecate } from '@ember/debug';\n\nexport { default } from 'ember-data/store';\n\ndeprecate(\n  \"You are relying on ember-data auto-magically installing the store service. Use `export { default } from 'ember-data/store';` in app/services/store.js instead\",\n  false,\n  {\n    id: 'ember-data:deprecate-legacy-imports',\n    for: 'ember-data',\n    until: '6.0',\n    since: {\n      enabled: '5.2',\n      available: '4.13',\n    },\n  }\n);\n","import Service from '@ember/service'\nimport config from 're-client/config/environment'\nimport ky from 'ky'\n\nconst {\n  APP: { apiNamespace, apiEndpoint },\n} = config\n\nlet prefixUrl = `/${apiNamespace}`\n\nif (apiEndpoint) {\n  prefixUrl = new URL(apiNamespace, apiEndpoint).href\n}\n\nexport interface Entry {\n  id?: string | undefined\n  pages: unknown\n}\n\nexport default class StoryFactoryService extends Service {\n  async saveStoryEntry(entry: Entry) {\n    const storyEntry = {\n      story_factory_entry_pages_attributes: entry.pages,\n      ...entry,\n    }\n    if (entry.id) {\n      await ky.put(`story_factory_entries/${entry.id}`, {\n        credentials: 'include',\n        json: { story_factory_entry: storyEntry },\n        prefixUrl,\n      })\n    } else {\n      await ky.post('story_factory_entries', {\n        credentials: 'include',\n        json: { story_factory_entry: storyEntry },\n        prefixUrl,\n      })\n    }\n  }\n\n  loadEntry(id: string) {\n    return ky\n      .get(`story_factory_entries/${id}`, {\n        credentials: 'include',\n        prefixUrl,\n      })\n      .json()\n  }\n\n  newEntry() {\n    return ky\n      .get('story_factory_entries/new', {\n        credentials: 'include',\n        prefixUrl,\n      })\n      .json()\n  }\n\n  loadContest(id: string) {\n    return ky\n      .get(`story_factory_contests/${id}`, {\n        credentials: 'include',\n        prefixUrl,\n      })\n      .json()\n  }\n\n  async voteForEntry(id: string, rating: string) {\n    return ky\n      .post(`story_factory_entries/${id}/story_factory_ratings`, {\n        credentials: 'include',\n        json: { rating },\n        prefixUrl,\n      })\n      .json()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'story-factory': StoryFactoryService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport type StudentProgressService from 're-client/services/student-progress'\nimport { calculateMap } from 're-client/utils/progress-tools'\n\nexport default class StorylandsService extends Service {\n  @service declare studentProgress: StudentProgressService\n\n  get currentMap() {\n    return this.studentProgress.storylandsCurrentMap\n  }\n\n  get currentLesson() {\n    return this.studentProgress.storylandsCurrentLesson\n  }\n\n  get currentActivity() {\n    return this.studentProgress.storylands.currentActivity\n  }\n\n  canPlayMap(map: number) {\n    return this.currentMap >= map\n  }\n\n  currentActivityForLesson(lessonId: string) {\n    if (parseInt(lessonId, 10) === this.currentLesson) {\n      return this.currentActivity\n    }\n    return 1\n  }\n\n  canPlayLessonActivity(lesson: string | number, activity: string | number) {\n    const { currentLesson, currentMap, currentActivity } = this\n\n    const { lessonsPerMap } = config.studentProgress.progress.storylands\n    if (typeof lesson === 'string') {\n      lesson = Number(lesson)\n    }\n    if (typeof activity === 'string') {\n      activity = Number(activity)\n    }\n    const lessonMap = calculateMap(lesson, lessonsPerMap)\n\n    // Later Map\n    if (lessonMap > currentMap) {\n      return false\n    }\n\n    // Earlier map\n    if (lessonMap < currentMap) {\n      return true\n    }\n\n    // From here on, we're on the same map the lesson is progress-wise\n    // Later lesson\n    if (lesson > currentLesson) {\n      return false\n    }\n\n    // Earlier lesson\n    if (lesson < currentLesson) {\n      return true\n    }\n\n    // Earlier or current activity\n    if (activity <= currentActivity) {\n      return true\n    }\n\n    // Only option left is to be a later activity\n    return false\n  }\n\n  isQuizComplete(map: number) {\n    return this.currentMap > map\n  }\n}\n\n// DO NOT DELETE: this is how TypeScript knows how to look up your services.\ndeclare module '@ember/service' {\n  interface Registry {\n    storylands: StorylandsService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport { graphql } from 're-client/graphql'\nimport type ApolloService from './apollo'\nimport type SessionService from './session'\nimport type UserService from './user'\nimport type { FeatureService } from '@blakeelearning/features'\nimport { CustomerTypeEnum } from 're-client/graphql/graphql'\nimport { v4 as uuidV4 } from 'uuid'\nimport type RouterService from '@ember/routing/router-service'\nimport config from 're-client/config/environment'\nimport { bind } from 'bind-event-listener'\n\nexport const capturePageViewMutationDocument = graphql(/* GraphQL */ `\n  mutation CapturePageView($input: CapturePageViewInput!) {\n    capturePageView(input: $input) {\n      success\n    }\n  }\n`)\n\nexport const saveReadingActivityLearningStateMutationDocument = graphql(\n  /* GraphQL */ `\n    mutation SaveReadingActivityLearningState(\n      $input: SaveReadingActivityLearningStateInput!\n    ) {\n      saveReadingActivityLearningState(input: $input) {\n        success\n      }\n    }\n  `,\n)\n\ninterface CapturePageViewArgs {\n  contentType: string\n  id: string\n  path: string\n}\n\ninterface CaptureGeneralEventArgs {\n  eventType: string\n  eventName?: string | undefined\n  eventPayload?: Record<string, unknown> | undefined\n}\n\ninterface MetricsCollectorPageView {\n  id: string\n  student_id: number\n  application: string\n  customer_type: string\n  content_type: string\n  activity_variant: string\n  path: string\n  session_id: string\n}\n\ninterface MetricsCollectorGeneralEvent {\n  id: string\n  student_id: number\n  application: string\n  customer_type: string\n  // content_type: string\n  activity_variant: string\n  path: string\n  session_id: string\n\n  event_type: string\n  event_name?: string | undefined\n  event_payload?: Record<string, unknown> | undefined\n}\n\ninterface MetricsCollectorVisibilityChange {\n  id: string\n  student_id: number\n  application: string\n  customer_type: string\n  activity_variant: string\n  path: string\n  session_id: string\n  visibility_state: DocumentVisibilityState\n}\n\nexport interface MetricsCollectorLocationSegment {\n  name: string\n  position?: number\n}\n\ninterface MetricsCollectorAttempt {\n  attempt_uuid: string\n  start_time: number\n  completed: boolean\n  end_time: number\n  passed: boolean\n}\n\ninterface MetricsCollectorInteraction {\n  attempt_uuid: string\n  timestamp: number\n  section: string\n  round: number\n  step: number\n  step_attempt: number\n  target: string\n  selection: string\n  correct: boolean\n  response_time_ms: number\n}\n\ninterface MetricsCollectorLearningState {\n  id: string\n  student_id: number\n  application: string\n  activity_variant: string\n  session_id: string\n  path: string\n  activity_name: string\n  activity_framework: string\n  activity_content: Record<string, unknown>\n  activity_learning_state: Record<string, unknown>\n  assignment: boolean\n  assignment_uuid: string | undefined\n  precinct: string\n  precinct_location: MetricsCollectorLocationSegment[]\n  student_precinct_progress: MetricsCollectorLocationSegment[]\n  attempts: MetricsCollectorAttempt[]\n  interactions: MetricsCollectorInteraction[]\n}\n\nexport interface Attempt {\n  attemptUuid: string\n  startTime: number\n  endTime: number\n  completed: boolean\n  passed: boolean\n}\n\nexport interface Interaction {\n  attemptUuid: string\n  timestamp: number\n  section: string\n  round: number\n  step: number\n  stepAttempt: number\n  target: string\n  selection: string\n  correct: boolean\n  responseTimeMs: number\n}\n\ninterface LearningStateArgs {\n  id: string\n  path: string\n  activityName: string\n  activityFramework: string\n  activityContent: Record<string, unknown>\n  activityLearningState: Record<string, unknown>\n  activityVariant: string\n  assignment: boolean\n  assignmentUuid: string | undefined\n  precinct: 'lessons'\n  precinctLocation: MetricsCollectorLocationSegment[]\n  studentPrecinctProgress: MetricsCollectorLocationSegment[]\n  attempts: Attempt[]\n  interactions: Interaction[]\n}\n\ntype LearningStateContext = Pick<\n  LearningStateArgs,\n  | 'path'\n  | 'activityFramework'\n  | 'activityVariant'\n  | 'assignment'\n  | 'assignmentUuid'\n  | 'precinct'\n  | 'precinctLocation'\n  | 'studentPrecinctProgress'\n>\ntype CaptureLearningStateArgs = Omit<\n  LearningStateArgs,\n  keyof LearningStateContext | 'id'\n> & {\n  /**\n   * The uuid returned by `trackLearningStateContext()` when this activity's\n   * context was tracked, echoed back by the game. Omitted by game bundles\n   * that haven't been updated to echo it yet, in which case the most\n   * recently tracked context is used instead.\n   */\n  learningStateContextUuid?: string | undefined\n}\n\nexport default class StudentMetricsService extends Service {\n  @service declare apollo: ApolloService\n  @service declare session: SessionService\n  @service declare user: UserService\n  @service declare features: FeatureService\n  @service declare router: RouterService\n\n  private learningStateContexts = new Map<string, LearningStateContext>()\n  private mostRecentLearningStateContextUuid?: string\n\n  /**\n   * Identifies this page load (a reload or a duplicated tab gets its own).\n   * Deliberately in-memory rather than sessionStorage, which is copied into\n   * duplicated tabs. Sent with every beacon alongside `tabSeq`, so events from\n   * one tab can be ordered even when beacons arrive out of order.\n   */\n  private readonly tabId = String(uuidV4())\n  private tabSeq = 0\n\n  /**\n   * The last non-empty session id seen. The auth addon's session service can\n   * replace `session.state.data` with a broadcast from another tab, which\n   * carries no `token`, so the token can disappear for a while. The sid is\n   * stable for the life of the login session, so falling back to the last one\n   * seen is safe.\n   */\n  private lastSessionId = ''\n\n  get sessionId(): string {\n    const sessionId = this.decodeSessionId()\n    // Caching into an untracked field; nothing renders from it.\n    // eslint-disable-next-line ember/no-side-effects\n    if (sessionId) this.lastSessionId = sessionId\n\n    return sessionId || this.lastSessionId\n  }\n\n  private decodeSessionId(): string {\n    const token = this.session.state.data?.token\n    if (!token) return ''\n\n    const payloadSegment = token.split('.')[1]\n    if (!payloadSegment) return ''\n\n    // JWT uses base64url encoding; convert to standard base64 before decoding\n    const base64 = payloadSegment.replace(/-/g, '+').replace(/_/g, '/')\n    const payload = JSON.parse(atob(base64)) as Record<string, unknown>\n\n    return typeof payload['sid'] === 'string' ? payload['sid'] : ''\n  }\n\n  captureGeneralEvent({\n    eventType,\n    eventName,\n    eventPayload,\n  }: CaptureGeneralEventArgs) {\n    let student\n    let locale\n    try {\n      student = this.user.student\n      locale = this.user.locale\n    } catch {\n      return\n    }\n\n    const generalEventPayload: MetricsCollectorGeneralEvent = {\n      id: String(uuidV4()),\n      student_id: Number(student.id),\n      application: 're',\n      customer_type: student.customerType.toLocaleLowerCase(),\n      // content_type: contentType,\n      activity_variant: locale,\n      path: this.router.currentURL.split('?')[0] ?? '',\n      session_id: this.sessionId,\n      event_type: eventType,\n      event_name: eventName,\n      event_payload: eventPayload,\n    }\n\n    this.sendBeacon('/metrics/general', generalEventPayload)\n  }\n\n  capturePageView({ contentType, id, path }: CapturePageViewArgs) {\n    if (!this.features.isEnabled('re_kafka-page-views')) return\n\n    // Try to read the student - if it hasn't been setup this will raise an\n    // error, in which case and cannot capture any metrics.\n    let student\n    let locale\n    try {\n      student = this.user.student\n      locale = this.user.locale\n    } catch {\n      return\n    }\n\n    const metricsCollectorPayload: MetricsCollectorPageView = {\n      id,\n      student_id: Number(student.id),\n      application: 're',\n      customer_type: student.customerType.toLocaleLowerCase(),\n      content_type: contentType,\n      activity_variant: locale,\n      path,\n      session_id: this.sessionId,\n    }\n\n    this.sendBeacon('/metrics/page_view', metricsCollectorPayload)\n\n    if (student.customerType !== CustomerTypeEnum.B2CStudent) return\n    const mutation = this.apollo.mutate({\n      mutation: capturePageViewMutationDocument,\n      variables: {\n        input: {\n          contentLocale: locale,\n          contentType,\n          id,\n          path,\n          sessionId: this.sessionId,\n        },\n      },\n    })\n\n    return mutation\n  }\n\n  /**\n   * Tracks certain learning state properties, keyed by a uuid, to be emitted\n   * on the matching call to `captureLearningState`. Should be done from a\n   * route's model hook, and the returned uuid passed into the activity as a\n   * content variable so it can be echoed back on `captureLearningState` -\n   * this is what lets concurrent/overlapping activity instances (e.g. fast\n   * navigation, back/forward) each resolve their own context rather than\n   * clobbering one another.\n   */\n  trackLearningStateContext(context: LearningStateContext): string {\n    const uuid = String(uuidV4())\n    this.learningStateContexts.set(uuid, context)\n    this.mostRecentLearningStateContextUuid = uuid\n    return uuid\n  }\n\n  captureLearningState({\n    learningStateContextUuid,\n    activityContent,\n    activityName,\n    activityLearningState,\n    attempts,\n    interactions,\n  }: CaptureLearningStateArgs) {\n    // Game bundles that don't echo the uuid yet fall back to the most\n    // recently tracked context. An echoed uuid that isn't found (e.g.\n    // already used) is not a fallback candidate - that would reintroduce the\n    // cross-activity mismatch this keying is meant to prevent.\n    const contextUuid =\n      learningStateContextUuid ?? this.mostRecentLearningStateContextUuid\n    const context = contextUuid\n      ? this.learningStateContexts.get(contextUuid)\n      : undefined\n\n    if (!context || !contextUuid) {\n      console.debug('captureLearningState called without a context')\n      return\n    }\n\n    const {\n      activityFramework,\n      activityVariant,\n      assignment,\n      assignmentUuid,\n      path,\n      precinct,\n      precinctLocation,\n      studentPrecinctProgress,\n    } = context\n\n    this.learningStateContexts.delete(contextUuid)\n    if (contextUuid === this.mostRecentLearningStateContextUuid) {\n      delete this.mostRecentLearningStateContextUuid\n    }\n\n    if (!this.features.isEnabled('re_learning-state')) return\n\n    const id = contextUuid\n\n    const metricsCollectorPayload: MetricsCollectorLearningState = {\n      id,\n      student_id: Number(this.user.student.id),\n      session_id: this.sessionId,\n      application: 're',\n      activity_content: activityContent,\n      activity_framework: activityFramework,\n      activity_learning_state: activityLearningState,\n      activity_name: activityName,\n      activity_variant: activityVariant,\n      assignment,\n      assignment_uuid: assignmentUuid,\n      path,\n      precinct,\n      precinct_location: precinctLocation,\n      student_precinct_progress: studentPrecinctProgress,\n      attempts: attempts.map(\n        ({ attemptUuid, startTime, endTime, completed, passed }) => ({\n          attempt_uuid: attemptUuid,\n          start_time: startTime,\n          end_time: endTime,\n          completed,\n          passed,\n        }),\n      ),\n      interactions: interactions.map(\n        ({ attemptUuid, stepAttempt, responseTimeMs, ...args }) => ({\n          ...args,\n          attempt_uuid: attemptUuid,\n          step_attempt: stepAttempt,\n          response_time_ms: responseTimeMs,\n        }),\n      ),\n    }\n\n    this.sendBeacon('/metrics/learning_state', metricsCollectorPayload)\n  }\n\n  captureVisibilityChange() {\n    let student\n    let locale\n    try {\n      student = this.user.student\n      locale = this.user.locale\n    } catch {\n      return\n    }\n\n    const visibilityChangePayload: MetricsCollectorVisibilityChange = {\n      id: String(uuidV4()),\n      student_id: Number(student.id),\n      application: 're',\n      customer_type: student.customerType.toLocaleLowerCase(),\n      activity_variant: locale,\n      path: this.router.currentURL.split('?')[0] ?? '',\n      session_id: this.sessionId,\n      visibility_state: document.visibilityState,\n    }\n\n    this.sendBeacon('/metrics/visibility_change', visibilityChangePayload)\n  }\n\n  /**\n   * Sends a visibility change event whenever the tab is shown or hidden.\n   * Returns a function that removes the listener.\n   */\n  setupVisibilityTracking() {\n    return bind(document, {\n      type: 'visibilitychange',\n      listener: () => {\n        this.captureVisibilityChange()\n      },\n    })\n  }\n\n  /**\n   * Every beacon is stamped with the tab id, a per-tab sequence number shared\n   * across all event types, the client version and the client time.\n   */\n  sendBeacon(url: string, payload: object) {\n    this.tabSeq += 1\n\n    const stampedPayload = {\n      ...payload,\n      tab_id: this.tabId,\n      tab_seq: this.tabSeq,\n      client_version: config.APP.emberGitSha,\n      client_ts: Date.now(),\n    }\n\n    console.debug(url, stampedPayload)\n    const body = new Blob([JSON.stringify(stampedPayload)], {\n      type: 'application/json',\n    })\n    navigator.sendBeacon(url, body)\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'student-metrics': StudentMetricsService\n  }\n}\n","import Service, { service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport { graphql } from 're-client/graphql'\nimport { useFragment } from 're-client/resources/fragment'\nimport { useQuery } from 're-client/resources/query'\nimport type UserService from 're-client/services/user'\nimport type ApolloService from 're-client/services/apollo'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport type Refresher from '@blakeelearning/app-refresher/refresher/service'\nimport type RouterService from '@ember/routing/router-service'\n\nconst StudentProgressFragment = graphql(/* GraphQL */ `\n  fragment StudentProgressFragment on Student {\n    id\n    targetProgressionSequenceVersion\n    progress {\n      progressionSequenceVersion\n      drivingTests {\n        sightWords\n        lettersAndSounds\n        contentWords\n      }\n      lessons {\n        currentLesson\n        currentMap\n        currentActivity\n        showPlacementTest\n      }\n      spelling {\n        currentLesson\n        currentMap\n        currentActivity\n        showPlacementTest\n      }\n      clinkerCastle {\n        currentLesson\n        currentMap\n        currentActivity\n      }\n    }\n  }\n`)\n\nexport const StudentProgressQuery = graphql(/* GraphQL */ `\n  query StudentProgress {\n    student {\n      ...StudentProgressFragment\n    }\n  }\n`)\n\nexport const StudentProgressionSequenceMigrateMutation = graphql(/* GraphQL */ `\n  mutation StudentProgressionSequenceMigrate {\n    studentProgressionSequenceMigrate {\n      student {\n        ...StudentProgressFragment\n      }\n    }\n  }\n`)\n\nexport default class StudentProgressService extends Service {\n  @service\n  declare user: UserService\n\n  @service\n  declare apollo: ApolloService\n\n  @service\n  declare errorHandler: ErrorHandlerService\n\n  @service\n  declare refresher: Refresher\n\n  @service\n  declare router: RouterService\n\n  /**\n   * @deprecated Used to refetch progress when progress is changed without graphql\n   *\n   * Consider using `progressFragment` instead\n   */\n  progressQuery = useQuery(this, () => ({\n    query: StudentProgressQuery,\n  }))\n\n  progressFragment = useFragment(this, () => ({\n    fragment: StudentProgressFragment,\n    from: this.user.student,\n  }))\n\n  get progress() {\n    const progress = this.progressFragment.current?.progress\n    if (!progress) throw new Error('progress has not been fetched')\n    return progress\n  }\n\n  get lessons() {\n    return this.progress.lessons\n  }\n\n  get lessonsCurrentMap() {\n    return this.lessons.currentMap\n  }\n\n  get lessonsCurrentLesson() {\n    return this.lessons.currentLesson\n  }\n\n  get lessonsCurrentLessonNumber() {\n    if (this.lessonsCurrentLesson === 'quiz') {\n      return (\n        this.lessonsCurrentMap *\n        config.studentProgress.progress.lessons.lessonsPerMap\n      )\n    }\n    return parseInt(this.lessonsCurrentLesson, 10)\n  }\n\n  get lessonsLastCompletedLessonNumber() {\n    const { lessonsCurrentLessonNumber, lessonsCurrentLesson } = this\n\n    if (lessonsCurrentLesson === 'quiz') {\n      return lessonsCurrentLessonNumber\n    }\n\n    return lessonsCurrentLessonNumber - 1\n  }\n\n  get lessonsCurrentActivity() {\n    return this.lessons.currentActivity\n  }\n\n  get hasFinishedLessons() {\n    return this.lessonsCurrentMap > this.lessonsLastMap\n  }\n\n  get lessonsLastMap() {\n    return config.studentProgress.progress.lessons.lastMap\n  }\n\n  get showLessonsPlacementTest() {\n    return this.lessons.showPlacementTest\n  }\n\n  get spelling() {\n    return this.progress.spelling\n  }\n\n  get spellingCurrentMap() {\n    return this.spelling.currentMap\n  }\n\n  get spellingCurrentLesson() {\n    return this.spelling.currentLesson\n  }\n\n  get spellingCurrentLessonNumber() {\n    const { lessonsPerMap } = config.studentProgress.progress.spelling\n\n    if (this.spellingCurrentLesson === 'quiz') {\n      return this.spellingCurrentMap * lessonsPerMap\n    }\n    return parseInt(this.spellingCurrentLesson, 10)\n  }\n\n  get spellingCurrentActivity() {\n    return this.spelling.currentActivity\n  }\n\n  get showSpellingPlacementTest() {\n    return this.spelling.showPlacementTest\n  }\n\n  get storylands() {\n    return this.progress.clinkerCastle\n  }\n\n  get storylandsCurrentMap() {\n    return this.storylands.currentMap\n  }\n\n  get storylandsCurrentLesson() {\n    return this.storylands.currentLesson\n  }\n\n  get drivingTests() {\n    return this.progress.drivingTests\n  }\n\n  isAreaLocked(area: keyof typeof config.APP.minLevels): boolean {\n    const lessonsLevelRequired = config.APP.minLevels[area]\n    return this.lessonsCurrentLessonNumber < lessonsLevelRequired\n  }\n\n  async setup() {\n    const progressionSequenceVersion =\n      this.progressFragment.current?.progress.progressionSequenceVersion\n    const targetProgressionSequenceVersion =\n      this.progressFragment.current?.targetProgressionSequenceVersion\n\n    if (\n      progressionSequenceVersion &&\n      targetProgressionSequenceVersion &&\n      progressionSequenceVersion < targetProgressionSequenceVersion\n    ) {\n      /**\n       * If we detect a mismatch on initial app load we should await the\n       * migration and then immediately reload. This is to handle student's\n       * entering the app on the /recommended route who would otherwise get\n       * reloaded onto the pre migration activity position.\n       */\n      await this.migrateProgressionSequence()\n      this.refresher.hardRefresh()\n    }\n\n    const watchFragment = this.apollo.watchFragment({\n      fragment: StudentProgressFragment,\n      from: this.user.student,\n    })\n\n    watchFragment.subscribe(({ data }) => {\n      if (\n        data.progress?.progressionSequenceVersion &&\n        data.targetProgressionSequenceVersion &&\n        data.progress.progressionSequenceVersion <\n          data.targetProgressionSequenceVersion\n      ) {\n        console.warn(\n          'Progression sequence version mismatch detected. Requesting migration...',\n        )\n        void this.migrateProgressionSequence()\n      }\n    })\n  }\n\n  async migrateProgressionSequence() {\n    try {\n      await this.apollo.mutate({\n        mutation: StudentProgressionSequenceMigrateMutation,\n      })\n    } catch (error) {\n      this.errorHandler.handleError(\n        'Failed to migrate progression sequence',\n        error,\n      )\n    }\n    console.warn('Progression migration complete. Scheduling app refresh.')\n    this.refresher.scheduleRefresh()\n  }\n\n  /**\n   * Performs the initial watchQuery for the student's progress on the first call and will refetch the query on subsequent calls\n   */\n  async fetchProgress() {\n    // eslint-disable-next-line @typescript-eslint/no-deprecated\n    const { data } = await this.progressQuery.current.refetch()\n    return data.student?.progress\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'student-progress': StudentProgressService\n  }\n}\n","import { assert } from '@ember/debug'\nimport Service from '@ember/service'\nimport { tracked } from '@glimmer/tracking'\nimport config from 're-client/config/environment'\nimport { getMonth, isValidDate } from 're-client/utils/format-date'\n\n/**\n * @class ThemeService\n */\nexport default class ThemeService extends Service {\n  @tracked date: Date | null = null\n\n  /**\n   * returns the currently set date\n   */\n  get now() {\n    if (this.date === null)\n      assert('Please use `setDate` to set the current date')\n    return this.date\n  }\n\n  /**\n   * svgjar works with id names. These names correlate to the file names within the public directory\n   * It does not matter if these files are in sub directories.\n   */\n  get bannerName() {\n    return `${this.currentTheme}-month`\n  }\n\n  /**\n   * All themes based on the environment config mapped to an array of objects\n   */\n  themes = config.themesByMonth.map((theme, index) => ({\n    value: index.toFixed(),\n    label: `${getMonth(index)} - ${theme}`,\n  }))\n\n  /**\n   * Returns the current theme object\n   * @type {{month: String, name: String, date: String}}\n   */\n  get currentThemeObject() {\n    return this.themes[this.currentMonth]\n  }\n\n  /**\n   * Return the name of a them which can be used for selecting the correct images or selecting items for the\n   * monthly bundle.\n   * @property {String}\n   * @type {String}\n   */\n  get currentTheme() {\n    return config.themesByMonth[this.currentMonth] ?? ''\n  }\n\n  /**\n   * 0 index based month number\n   * @property {Number}\n   * @type {Number} - returns a number between 0 - 11\n   */\n  get currentMonth() {\n    return this.now.getMonth()\n  }\n\n  /**\n   * Returns an object of hours and days until the next month.\n   * This can be useful for the content team to display on the catalogue for how many days / hours remaining\n   *\n   * @returns {{hours: *, days: *}}\n   */\n  timeToNextTheme() {\n    // Clone the current date in `this.now`, and increment it to the start of next month.\n    // The timezone will remain the same as the cloned date\n    const startOfNextMonth = new Date(this.now.getTime())\n    startOfNextMonth.setMonth(startOfNextMonth.getMonth() + 1)\n    startOfNextMonth.setDate(1)\n    startOfNextMonth.setHours(0)\n    startOfNextMonth.setMinutes(0)\n    startOfNextMonth.setSeconds(0)\n    startOfNextMonth.setMilliseconds(0)\n\n    const millisecondsToNextMonth =\n      startOfNextMonth.getTime() - this.now.getTime()\n    const hours = millisecondsToNextMonth / 1000 / 60 / 60\n    const days = hours / 24\n\n    return { days, hours }\n  }\n\n  /**\n   * Sets the date which is the basis for all theme selection\n   */\n  setDate(date: Date) {\n    assert('Please make sure the passed in date is valid', isValidDate(date))\n    // To maintain parity with the legacy moment-based qa_time query param,\n    // we reset the date to the start of the local day. Moment does this implicitly,\n    // native JS Dates do not.\n    date.setHours(0)\n    date.setMinutes(0)\n    date.setSeconds(0)\n    date.setMilliseconds(0)\n    this.date = date\n  }\n}\n","import ENV from 're-client/config/environment'\nimport Service, { service } from '@ember/service'\nimport { TimeOnTask } from '@blakeelearning/totter'\nimport { waitFor } from '@ember/test-waiters'\nimport ky from 'ky'\nimport { isTesting, macroCondition } from '@embroider/macros'\nimport type { FeatureService } from '@blakeelearning/features'\nimport type { SessionService } from '@blakeelearning/auth'\nimport type UserService from './user'\n\nconst {\n  APP: { apiNamespace, apiEndpoint, routeTaskIds, timeOnTaskUrl },\n} = ENV\n\nlet prefixUrl = `/${apiNamespace}`\n\nif (apiEndpoint) {\n  prefixUrl = new URL(apiNamespace, apiEndpoint).href\n}\n\nexport default class TimeOnTaskService extends Service {\n  @service declare features: FeatureService\n  @service declare session: SessionService\n  @service declare user: UserService\n\n  declare totter?: TimeOnTask\n\n  setupV2() {\n    this.totter = new TimeOnTask(this.user.student.id, {\n      product: 're',\n      syncOptions: {\n        syncUrl: `${timeOnTaskUrl}/api/v2/complete_events`,\n        getAuthCallback: async () => {\n          await Promise.resolve() // External TS expects an async function\n          return this.session.state.data?.token ?? ''\n        },\n      },\n    })\n  }\n  /**\n   * If a task id exists for the current route or one of its ancestors, post to re-student ToT endpoint\n   * @param {String} routeName a period delimited String e.g. \"storylands.lesson.activity\"\n   * @example\n   *\n   * // calling `pingTaskByRoute(\"storylands.lesson.activity\")` will look for:\n   * // 1. \"storylands.lesson.activity\"\n   * // 2. \"storylands.lesson\"\n   * // 3. \"storylands\"\n   * // Because a task id exists for the \"storylands\" route, it will be sent in the post to re-student ToT endpoint\n   */\n  @waitFor\n  async pingTaskByRoute(routeName: string) {\n    const taskId = this._taskIdForRoute(routeName)\n\n    void this.totter?.trackSession(taskId ?? routeName)\n\n    if (taskId) {\n      await ky.post('time_on_task', {\n        credentials: 'include',\n        json: { task: taskId, created_at: Date.now() },\n        keepalive: true,\n        retry: {\n          limit: 10,\n          methods: ['options', 'post'],\n          // This prevents retries from slowing down tests. Note: backoffLimit must be >0 -\n          // ky treats a computed delay of exactly 0 as \"stop retrying\" (see ky's Ky.js#_retry).\n          ...(macroCondition(isTesting()) ? { backoffLimit: 1 } : {}),\n        },\n        prefixUrl,\n        timeout: false,\n      })\n    }\n  }\n\n  /**\n   * Provide a route name and this will return the task id if it or a parent route is present in the routeTaskIds\n   * mapping defined in the environment config.\n   *\n   * @param {String} routeName - the route to find a task id for\n   * @returns {String} taskId - the task id associated with the route. Null if it or a parent route is not mapped.\n   */\n  _taskIdForRoute(routeName: string) {\n    const flattenedRouteTaskIds = this._flattenedRouteTaskIds(routeTaskIds)\n\n    if (!routeName) return null\n    const routeNames = routeName.split('.')\n\n    while (routeNames.length) {\n      const key = routeNames.join('.')\n      const taskId = flattenedRouteTaskIds[key]\n      if (taskId) {\n        return taskId\n      }\n      routeNames.pop()\n    }\n    return null\n  }\n\n  /**\n   * Flatten the config structure to 'nested.route.name': 'taskId' for every route entry for easier parsing\n   * flattened = {\n   *   awards: 'awards',\n   *   bookcase: 'house',\n   *   'changing-room': 'avatar',\n   *   house: 'house',\n   *   ...\n   * }\n   * @param {Object} taskIds - task ids for each route\n   * @returns {Object}\n   */\n\n  _flattenedRouteTaskIds(taskIds: Record<string, string[]>) {\n    const flattened: Record<string, string> = {}\n\n    Object.entries(taskIds).forEach(([taskId, routes]) => {\n      routes.forEach((route) => {\n        flattened[route] = taskId\n      })\n    })\n\n    return flattened\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'time-on-task': TimeOnTaskService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport config from 're-client/config/environment'\nimport type UserService from 're-client/services/user'\nimport type Store from '@ember-data/store'\nimport type ModelRegistry from 'ember-data/types/registries/model'\n\nclass TomfooleryUrlBuilder {\n  base: URL\n\n  constructor({\n    assetHost,\n    locale,\n    releaseSha,\n  }: {\n    assetHost: string\n    locale: string\n    releaseSha: string\n  }) {\n    this.base = new URL(\n      `readingeggs/releases/${releaseSha}/data/${locale}/`,\n      assetHost,\n    )\n  }\n\n  forManifestBundle(path: string) {\n    return new URL(`${path}.json`, this.base)\n  }\n}\n\n/**\n * Handles logic for constructing all urls in the app. Will automatically\n * handle any logic to do with the currently logged in user.\n */\nexport default class UrlMakerService extends Service {\n  @service declare store: Store\n\n  @service declare user: UserService\n\n  /**\n   * Generates a url for a caper interactive manifest from the tomfoolery standalone deploy\n   */\n  urlForInteractive(route: keyof ModelRegistry, interactiveId?: unknown) {\n    const adapter = this.store.adapterFor('caper-activity')\n\n    return adapter.buildURL(route, interactiveId)\n  }\n\n  urlForManifestBundle(path: string) {\n    const { assetHosts, releaseSha } = config.contentLoader.caper\n    const { locale } = this.user\n\n    const urlBuilder = new TomfooleryUrlBuilder({\n      assetHost: assetHosts.code,\n      locale,\n      releaseSha,\n    })\n    return urlBuilder.forManifestBundle(path)\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'url-maker': UrlMakerService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport { assert, debug } from '@ember/debug'\nimport { tracked } from '@glimmer/tracking'\nimport type { FeatureService, OfrepFlag } from '@blakeelearning/features'\nimport type Log from '@blakeelearning/log/services/log'\nimport { useQuery } from 're-client/resources/query'\nimport { graphql } from 're-client/graphql'\nimport type { DocumentType } from 're-client/graphql'\nimport type SessionService from 're-client/services/session'\nimport type RouterService from '@ember/routing/router-service'\nimport { createOfrepInMemoryProvider } from '@blakeelearning/features'\nimport { useFragment } from 're-client/resources/fragment'\nimport { useMutation } from 're-client/resources/mutation'\nimport type QuestService from './quest'\nimport ky from 'ky'\nimport { isTesting, macroCondition } from '@embroider/macros'\nimport config from 're-client/config/environment'\nimport { CustomerTypeEnum } from 're-client/graphql/graphql'\nimport type { AvatarUpdateInput } from 're-client/graphql/graphql'\nimport type StudentMetricsService from './student-metrics'\n\nconst avatarUpdateMutationDocument = graphql(/* GraphQL */ `\n  mutation AvatarUpdate($input: AvatarUpdateInput!) {\n    avatarUpdate(input: $input) {\n      student {\n        id\n        avatarUrl\n        dna {\n          arms\n          decal\n          egg\n          extra\n          hat\n          head\n          legs\n          sunnies\n        }\n      }\n    }\n  }\n`)\n\nconst _StudentUserFragment = graphql(/* GraphQL */ `\n  fragment StudentUserFragment on Student {\n    id\n    avatarUrl\n    eggs\n    firstName\n    lastName\n    gamesAccess\n    playroomAccess\n    name @client\n    remoteId @client\n    dna {\n      arms\n      decal\n      egg\n      extra\n      hat\n      head\n      legs\n      sunnies\n    }\n    dnaHash @client\n    locale\n    backgroundMusicDisabled\n    rosterEnabled\n    customerType\n    parentId\n    worldsStartingLesson\n    learningWorldsEnabled\n  }\n`)\n\nconst StudentLocaleFragment = graphql(/* GraphQL */ `\n  fragment StudentLocaleFragment on Student {\n    locale\n  }\n`)\n\nconst StudentQueryDocument = graphql(/* GraphQL */ `\n  query GetStudent {\n    student {\n      ...StudentUserFragment\n      ...StudentLocaleFragment\n      ...StudentQuestDataFragment\n    }\n  }\n`)\n\nexport type GqlStudent = DocumentType<typeof _StudentUserFragment>\n\nconst guestStudentId = 'guest-student' /**\n * Loads and stores user information (student model) for the user of the app.\n */\n\ninterface OfrepBulkEvaluationResponse {\n  flags: OfrepFlag[]\n}\n\nexport default class UserService extends Service {\n  @service\n  declare session: SessionService\n\n  @service\n  declare log: Log\n\n  @service\n  declare features: FeatureService\n\n  @service\n  declare router: RouterService\n\n  @service\n  declare quest: QuestService\n\n  @service\n  declare studentMetrics: StudentMetricsService\n\n  _studentQuery = useQuery(this, () => {\n    if (this.isGuest) {\n      return {\n        query: StudentQueryDocument,\n        fetchPolicy: 'cache-only',\n      }\n    }\n\n    return {\n      query: StudentQueryDocument,\n    }\n  })\n\n  _localeFragment = useFragment(this, () => ({\n    fragment: StudentLocaleFragment,\n    from: {\n      __typename: 'Student',\n      id: this._studentQuery.current.data?.student?.id,\n    },\n  }))\n\n  avatarUpdateMutation = useMutation(this, avatarUpdateMutationDocument)\n\n  unsubscribeSessionChangeHandlers: (() => void)[] = []\n\n  get student() {\n    const student = this._studentQuery.current.data?.student\n\n    if (!student) {\n      console.debug('Session state', this.session.state)\n      throw new Error('student is unset')\n    }\n\n    return student\n  }\n\n  /**\n   * Non-throwing variant of `learningWorldsEnabled` for callers (e.g. route\n   * transition guards) that may run before the student has loaded.\n   */\n  get learningWorldsEnabled(): boolean {\n    return (\n      this._studentQuery.current.data?.student?.learningWorldsEnabled ?? false\n    )\n  }\n\n  /**\n   * mysteryGiftAvailable flag is set from the quiz activity to enable and disable the\n   * gifting feature.\n   */\n  @tracked mysteryGiftAvailable = false\n\n  @tracked racingGameAvailable = false\n\n  get locale() {\n    return this.accent\n  }\n\n  @tracked isGuest = false\n\n  @tracked backgroundMusicDisabled = false\n\n  get accent(): string {\n    const accent = this._localeFragment.current?.locale\n    const isCanadaAware = this.features.isEnabled('re_canada-aware')\n    if (accent === 'ca' && !isCanadaAware) {\n      return 'us'\n    }\n    return accent ?? 'au'\n  }\n\n  /**\n   * Setup the user service with the cached student data\n   */\n  async setup() {\n    await this._studentQuery.current.result()\n    await this.setupFeatureFlags()\n\n    if (this.backgroundMusicDisabled !== this.student.backgroundMusicDisabled) {\n      this.backgroundMusicDisabled = this.student.backgroundMusicDisabled\n    }\n\n    this.log.setPerson({ id: this.student.id })\n\n    this.session.setup({\n      ...config.session,\n      userID: this.student.remoteId,\n    })\n\n    this.subscribeToSessionChanges()\n  }\n\n  async setupFeatureFlags() {\n    const response = await ky.post('/ofrep/v1/evaluate/flags', {\n      json: {\n        context: {\n          targetingKey: this.student.id,\n          customer_type: this.student.customerType.toLowerCase(),\n          parent: this.student.parentId\n            ? {\n                targetingKey: this.student.parentId,\n              }\n            : undefined,\n        },\n      },\n      retry: {\n        limit: 3,\n        methods: ['POST'],\n        // This prevents retries from slowing down tests. Note: backoffLimit must be >0 -\n        // ky treats a computed delay of exactly 0 as \"stop retrying\" (see ky's Ky.js#_retry).\n        ...(macroCondition(isTesting()) ? { backoffLimit: 1 } : {}),\n      },\n    })\n\n    const { flags } = await response.json<OfrepBulkEvaluationResponse>()\n\n    await this.features.setup({\n      logger: console,\n      provider: createOfrepInMemoryProvider(flags),\n    })\n  }\n\n  /**\n   * Method to set the mystery gift functionality available\n   */\n  setMysteryGiftAvailability(isAvailable = false) {\n    assert('You must pass a boolean', typeof isAvailable === 'boolean')\n    this.mysteryGiftAvailable = isAvailable\n    return this.mysteryGiftAvailable\n  }\n\n  setRacingGameAvailability(isAvailable = false) {\n    assert('You must pass a boolean', typeof isAvailable === 'boolean')\n    this.racingGameAvailable = isAvailable\n    return this.racingGameAvailable\n  }\n\n  /**\n   * Setup a guest student - used for sample lessons.\n   */\n  asGuest() {\n    this.isGuest = true\n    this.log.setPerson({ id: guestStudentId })\n    this._studentQuery.current.updateQuery(() => ({\n      __typename: 'Query',\n      student: {\n        __typename: 'Student',\n        id: guestStudentId,\n        avatarUrl:\n          'https://avatars.static.readingeggs.com/re/1-1-1-1-1-1-1-1.png',\n        eggs: 0,\n        firstName: 'Guest',\n        lastName: 'Student',\n        name: 'Guest S.',\n        remoteId: 'guest-student-remote-id',\n        get dnaHash() {\n          return JSON.stringify(this.dna)\n        },\n        locale: 'au',\n        dna: {\n          __typename: 'AvatarDna',\n          arms: 'default_arms_1',\n          decal: 'decal_1',\n          egg: 'default_egg_1',\n          extra: 'extra_1',\n          hat: 'hat_1',\n          head: 'default_head_1',\n          legs: 'default_legs_1',\n          sunnies: 'sunnies_1',\n        },\n        gamesAccess: true,\n        playroomAccess: true,\n        backgroundMusicDisabled: false,\n        quest: {\n          __typename: 'Quest',\n          easyGoal: null,\n          primaryGoal: null,\n        },\n        rosterEnabled: false,\n        customerType: CustomerTypeEnum.B2CStudent,\n        parentId: null,\n        worldsStartingLesson: null,\n        learningWorldsEnabled: false,\n      },\n    }))\n\n    return this._studentQuery.current.result()\n  }\n\n  /**\n   * Persists a new avatar DNA for the current student via the `avatarUpdate`\n   * mutation. The returned `student` normalizes into the existing Apollo\n   * cache entry (matched by `id` + `__typename`), so `avatarUrl`/`dna`\n   * update reactively for any consumer of the student query without a\n   * manual `fetch()`/refetch.\n   */\n  async avatarUpdate(input: AvatarUpdateInput) {\n    await this.avatarUpdateMutation.current.mutate({\n      variables: { input },\n    })\n    this.studentMetrics.captureGeneralEvent({\n      eventType: 'avatar-updated',\n      eventName: this.student.avatarUrl,\n      eventPayload: { dna: input },\n    })\n  }\n\n  /**\n   * Fetch the student query\n   */\n  async fetch(): Promise<void> {\n    await this._studentQuery.current.refetch()\n    await this.setup()\n  }\n\n  /**\n   * Refetch the student query without re-running setup\n   */\n  async refetchStudent(): Promise<void> {\n    await this._studentQuery.current.refetch()\n  }\n\n  /**\n   * Increments the egg count on the student stored in the apollo cache\n   */\n  incrementEggs(amount: number) {\n    debug(`incrementEggs() updating apollo cache`)\n    this.quest.incrementEggGoals(amount)\n    this._studentQuery.current.updateQuery((data) => {\n      if (!data.student) return data\n\n      return {\n        __typename: 'Query',\n        student: {\n          ...data.student,\n          eggs: data.student.eggs + amount,\n        },\n      }\n    })\n  }\n\n  reset(location = window.location) {\n    location.replace('/')\n  }\n\n  subscribeToSessionChanges() {\n    this.unsubscribeFromSessionChanges()\n\n    this.unsubscribeSessionChangeHandlers.push(\n      this.session.onUnauthenticated(() => {\n        this.router.replaceWith('unauthorised')\n      }),\n      this.session.onMismatched(() => {\n        this.reset()\n      }),\n    )\n  }\n\n  unsubscribeFromSessionChanges() {\n    for (const unsubscribe of this.unsubscribeSessionChangeHandlers) {\n      unsubscribe()\n    }\n    this.unsubscribeSessionChangeHandlers = []\n  }\n\n  override willDestroy(): void {\n    this.unsubscribeFromSessionChanges()\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    user: UserService\n  }\n}\n","import Service, { inject as service } from '@ember/service'\nimport { sortBy } from 'lodash'\nimport type ApolloService from 're-client/services/apollo'\nimport type { FixtureFunctionKey } from 're-client/utils/weekly-poll/fake-data'\nimport { toDateString } from 're-client/utils/format-date'\nimport { graphql } from 're-client/graphql'\nimport type { GetPlazaPollsQuery } from 're-client/graphql/graphql'\nimport type DebugModeService from 're-client/services/debug-mode'\nimport type UrlMakerService from 're-client/services/url-maker'\nimport type UserService from 're-client/services/user'\nimport type ErrorHandlerService from 're-client/services/error-handler'\nimport { useMutation } from 're-client/resources/mutation'\n\ngraphql(/* GraphQL */ `\n  fragment PlazaPollFragment on PlazaPoll {\n    id\n    startDate\n    endDate\n    month\n    week\n    votes {\n      count\n      answer\n    }\n  }\n`)\n\nconst getPlazaPollsQueryDocument = graphql(/* GraphQL */ `\n  query GetPlazaPolls($currentDate: ISO8601Date!) {\n    plazaPolls(input: { currentDate: $currentDate }) {\n      ...PlazaPollFragment\n    }\n\n    student {\n      firstName\n      id\n      plazaPollVote(dateVoted: $currentDate) {\n        dateVoted\n        plazaPollId\n        votedAnswer\n      }\n    }\n  }\n`)\n\nconst savePlazaPollVoteMutationDocument = graphql(/* GraphQL */ `\n  mutation SavePlazaPollVote($input: PlazaPollVoteCreateInput!) {\n    plazaPollVoteCreate(input: $input) {\n      dateVoted\n      plazaPollId\n      votedAnswer\n    }\n  }\n`)\n\nconst deletePlazaPollVoteMutationDocument = graphql(/* GraphQL */ `\n  mutation DeletePlazaPollVote($input: PlazaPollVoteDestroyInput!) {\n    plazaPollVoteDestroy(input: $input) {\n      ...PlazaPollFragment\n    }\n  }\n`)\n\ninterface CaperPollResult {\n  id: number | string\n  totalVotesCount: number\n  votedAnswersCount: number[]\n}\n\nexport interface CaperPoll {\n  studentVotedToday: boolean\n  studentVotedAnswer: number | null\n  results: CaperPollResult[]\n}\n\ninterface PollOptions {\n  date?: string | undefined\n  voteData?: FixtureFunctionKey | undefined\n  refetch?: boolean\n}\n\ninterface AnswerOptions {\n  plazaPollId: string\n  votedAnswer: string | number\n  date?: string | undefined\n  voteData?: FixtureFunctionKey | undefined\n}\n\n/**\n * The weekly poll service provides an interface to the underlying weekly poll api.\n */\nexport default class WeeklyPollService extends Service {\n  @service declare apollo: ApolloService\n\n  @service declare debugMode: DebugModeService\n\n  @service declare urlMaker: UrlMakerService\n\n  @service declare user: UserService\n\n  @service declare errorHandler: ErrorHandlerService\n\n  savePlazaPollVoteMutation = useMutation(\n    this,\n    savePlazaPollVoteMutationDocument,\n  )\n\n  deletePlazaPollVoteMutation = useMutation(\n    this,\n    deletePlazaPollVoteMutationDocument,\n  )\n\n  /**\n   * Need to transform poll data from newer GraphQL API (re-student) to match\n   * shape from older (deprecated) Elixir API (re_student_api). This is because\n   * this data is eventually passed to Caper activities which rely on this data shape.\n   * https://github.com/blake-education/caper-activities/blob/develop/lib/assets/javascripts/readingeggs/weekly_poll/weekly_poll.coffee2\n   * At the time of this refactor, it was easiest to do the transform here.\n   */\n  _transformPollDataForCaper({\n    student,\n    plazaPolls,\n  }: GetPlazaPollsQuery): CaperPoll {\n    const transformed: CaperPoll = {\n      studentVotedAnswer: null,\n      studentVotedToday: !!student?.plazaPollVote, // Because this is fetched using the current date, will be null if student hasn't voted today\n      results: [],\n    }\n\n    if (student?.plazaPollVote) {\n      transformed.studentVotedAnswer = student.plazaPollVote.votedAnswer\n    }\n\n    for (const poll of plazaPolls) {\n      const pollResult: CaperPollResult = {\n        id: parseInt(poll.id, 10),\n        totalVotesCount: 0,\n        votedAnswersCount: [],\n      }\n\n      // Votes should come from API ordered by numerical answer key, but just in case...\n      const sortedVotes = sortBy(poll.votes, 'answer')\n\n      for (const vote of sortedVotes) {\n        pollResult.totalVotesCount += vote.count\n        pollResult.votedAnswersCount.push(vote.count)\n      }\n\n      transformed.results.push(pollResult)\n    }\n\n    return transformed\n  }\n\n  /**\n   * Get the weekly poll which returns a validated response when valid\n   * and returns null when the request or validation fails.\n   * This will cause the ui not to render the weekly poll.\n   */\n  async getWeeklyPoll({\n    date,\n    refetch = false,\n  }: PollOptions = {}): Promise<CaperPoll | null> {\n    const currentDate = date ? date : toDateString(new Date())\n\n    try {\n      const { data } = await this.apollo.query({\n        query: getPlazaPollsQueryDocument,\n        variables: {\n          currentDate,\n        },\n        fetchPolicy: refetch ? 'network-only' : 'cache-first',\n      })\n\n      return this._transformPollDataForCaper(data)\n    } catch (error) {\n      this.errorHandler.logErrorIfActionable(\n        'Failed to retrieve weekly poll',\n        error,\n      )\n    }\n\n    return null\n  }\n\n  /**\n   * Post to the weekly poll endpoint to submit a vote\n   */\n  async postWeeklyPoll({\n    plazaPollId,\n    votedAnswer,\n    date,\n    voteData,\n  }: AnswerOptions) {\n    try {\n      const dateVoted = date ? date : toDateString(new Date())\n\n      if (typeof votedAnswer === 'string') {\n        votedAnswer = parseInt(votedAnswer, 10)\n      }\n\n      await this.savePlazaPollVoteMutation.current.mutate({\n        variables: {\n          input: {\n            dateVoted,\n            plazaPollId,\n            votedAnswer: votedAnswer + 1, // Interactive returns 0 indexed answers, but the backend expects 1-4,\n          },\n        },\n      })\n    } catch (error) {\n      this.errorHandler.logErrorIfActionable(\n        'Failed to save weekly poll vote',\n        error,\n      )\n    }\n\n    return await this.getWeeklyPoll({ voteData, date, refetch: true })\n  }\n\n  /**\n   * Used by debug mode to reset poll data.\n   */\n  async resetWeeklyPoll(dateVoted: string) {\n    if (this.debugMode.enabled) {\n      try {\n        await this.deletePlazaPollVoteMutation.current.mutate({\n          variables: {\n            input: {\n              dateVoted,\n            },\n          },\n        })\n      } catch (error) {\n        this.errorHandler.logErrorIfActionable(\n          'Failed to reset weekly poll vote',\n          error,\n        )\n      }\n    }\n\n    return await this.getWeeklyPoll({ date: dateVoted, refetch: true })\n  }\n}\n\ndeclare module '@ember/service' {\n  interface Registry {\n    'weekly-poll': WeeklyPollService\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<OfflineScreen />\\n\\n<FullPageAlert @status={{this.model.status}}>\\n  <div>\\n    <h2>\\n      Something has gone wrong.\\n    </h2>\\n    <button\\n      type=\\\"button\\\"\\n      {{on \\\"click\\\" this.bye}}\\n      class=\\\"back-to-interstitial\\\"\\n    ></button>\\n  </div>\\n\\n  {{#if this.model.message}}\\n    <br />\\n    {{#if this.showErrorMessage}}\\n      <button\\n        class=\\\"{{style-namespace \\'ui-button\\'}} {{@appearance}}\\\"\\n        type=\\\"button\\\"\\n        {{on \\\"click\\\" this.toggleErrorMessage}}\\n      >\\n        Hide Error Message\\n      </button>\\n      <br />\\n      <p class=\\\"show-error\\\">\\n        {{this.model.message}}\\n      </p>\\n    {{else}}\\n      <button\\n        class=\\\"{{style-namespace \\'ui-button\\'}} {{@appearance}}\\\"\\n        type=\\\"button\\\"\\n        {{on \\\"click\\\" this.toggleErrorMessage}}\\n      >\\n        Show Error Message\\n      </button>\\n    {{/if}}\\n  {{/if}}\\n</FullPageAlert>', { moduleName: 're-client/templates/application-error.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Reading Eggs\\\"}}\\n\\n<OfflineScreen />\\n\\n<div\\n  class=\\\"re application\\\"\\n  {{device/bind-viewport-height propertyName=\\\"--mobile-viewport-height\\\"}}\\n  {{device/detection-classes \\\"ios\\\" \\\"iphone\\\" \\\"android\\\"}}\\n>\\n  {{outlet}}\\n</div>\\n\\n<div id=\\\"dialog-target\\\"></div>\\n\\n<LoadingScreen />\\n<DeviceRotateNotification />', { moduleName: 're-client/templates/application.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"My Awards\\\"}}\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n<HiddenPrintContainer />', { moduleName: 're-client/templates/awards.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Book\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/book.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Bookcase\\\"}}\\n\\n<ActivityHeader />\\n\\n<main>\\n  <ContentInteractives::Bookcase\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @returnToHouseAction={{this.returnToHouse}}\\n  />\\n</main>', { moduleName: 're-client/templates/bookcase.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title this.studentDisplayName \\\"\\'s Bookshelf\\\"}}\\n\\n<ActivityHeader @destination=\\\"index\\\" />\\n<main>\\n  <div class=\\\"bookshelf-page\\\">\\n    <div class=\\\"bookshelf-background\\\">\\n      <h2 class=\\\"mb-6\\\">\\n        {{this.studentDisplayName}}\\'s Bookshelf\\n      </h2>\\n      <BookShelf\\n        @bookPages={{@model.bookPages}}\\n        @goToBookAction={{this.goToBooks}}\\n      />\\n    </div>\\n  </div>\\n</main>', { moduleName: 're-client/templates/bookshelf.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Changing Room\\\"}}\\n\\n<ActivityHeader />\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>', { moduleName: 're-client/templates/changing-room.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Critters\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/critters.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader @destination=\\\"critters\\\" />\\n<main>\\n  <ContentInteractives::Critters::Critter\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @nextAction={{this.next}}\\n  />\\n</main>', { moduleName: 're-client/templates/critters/critter.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::Critters::CritterBook\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @playVideoAction={{this.playVideo}}\\n  />\\n</main>', { moduleName: 're-client/templates/critters/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Driving Tests\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/driving-tests.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::DrivingTests::Lobby\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @startQuizAction={{this.startQuiz}}\\n  />\\n</main>', { moduleName: 're-client/templates/driving-tests/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::DrivingTests::Quiz\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @goToLobbyAction={{this.goToLobby}}\\n    @completeDrivingTestAction={{this.completeDrivingTest}}\\n    @startRaceAction={{this.startRace}}\\n  />\\n</main>', { moduleName: 're-client/templates/driving-tests/quiz.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::DrivingTests::RacingGame\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @incrementScoreAction={{this.incrementScore}}\\n    @exitAction={{this.exit}}\\n  />\\n</main>', { moduleName: 're-client/templates/driving-tests/racing-game.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Games\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/games.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::Games::PlayGame\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @saveGameScoreAction={{this.saveGameScore}}\\n    @nextAction={{this.next}}\\n  />\\n</main>', { moduleName: 're-client/templates/games/game.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::Games\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @purchaseGamePlayAction={{this.purchaseGamePlay}}\\n  />\\n</main>', { moduleName: 're-client/templates/games/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"House\\\"}}\\n\\n<ActivityHeader />\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>', { moduleName: 're-client/templates/house.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<HomeNav>\\n  {{svg-jar \\\"shadow\\\"}}\\n  <NavigationCircles />\\n  <header>\\n    <HomeNav::NavItemSimple\\n      @animate={{true}}\\n      @onClick={{this.myProgram}}\\n      @title=\\\"My {{translate \\'program\\'}}\\\"\\n      @itemName=\\\"MyProgram\\\"\\n    />\\n    <HomeNav::NavWelcome\\n      class=\\\"absolute left-[247px] top-[20px]\\\"\\n      @onClick={{this.goToChangingRoom}}\\n      @avatarUrl={{this.student.avatarUrl}}\\n      @welcomeMessage={{this.welcomeGreeting}}\\n      @name={{this.student.name}}\\n    />\\n    <HomeNav::NavItemEgg\\n      @onClick={{this.awards}}\\n      @title=\\\"My Eggs\\\"\\n      @svg=\\\"Eggs\\\"\\n      @eggs={{this.eggsAsArray}}\\n    />\\n    <HomeNav::NavItemSimple\\n      @onClick={{this.bye}}\\n      @title=\\\"Bye\\\"\\n      @itemName=\\\"Icon-Bye\\\"\\n    />\\n    <HomeNav::NavBanner @bannerSvgName={{this.bannerSvgName}} />\\n  </header>\\n  <main>\\n    <nav>\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.storylands}}\\n        @title=\\\"Storylands\\\"\\n        @disabled={{this.storylandsLocked}}\\n        @itemName={{this.storylandsIcon}}\\n        class=\\\"first-row\\\"\\n      />\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.spelling}}\\n        @title=\\\"Spelling\\\"\\n        @disabled={{this.spellingLocked}}\\n        @itemName={{this.spellingIcon}}\\n        class=\\\"first-row\\\"\\n      />\\n      {{#if this.showMyReadingGoals}}\\n        <HomeNav::NavItemSimple\\n          @onClick={{this.myReadingGoals}}\\n          @title=\\\"Reading Goals\\\"\\n          @itemName=\\\"MyReadingGoals\\\"\\n          class=\\\"first-row\\\"\\n        />\\n      {{/if}}\\n      <HomeNav::NavItemReggie\\n        @onClick={{this.lessons}}\\n        @navType=\\\"lessons\\\"\\n        @title={{this.myLessonsTitle}}\\n        @hasFinishedLessons={{this.hasFinishedLessons}}\\n        @showPlacementTestText={{this.showPlacementTestText}}\\n        @lessonTitle={{this.currentLessonTitle}}\\n        @reggieImagePath={{this.model.reggieImage}}\\n        @reggieThemeUrl={{this.model.reggieThemeImage}}\\n        class=\\\"first-row\\\"\\n      />\\n\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.drivingTests}}\\n        @title=\\\"Driving Tests\\\"\\n        @disabled={{this.drivingTestsLocked}}\\n        @itemName={{this.drivingTestsIcon}}\\n        class=\\\"first-row\\\"\\n      />\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.readingJournal}}\\n        @title=\\\"Reading Journal\\\"\\n        @itemName=\\\"ReadingJournal\\\"\\n        class=\\\"first-row\\\"\\n      />\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.storyFactory}}\\n        @isTablet={{this.isTablet}}\\n        @title=\\\"Story Factory\\\"\\n        @disabled={{this.storyFactoryLocked}}\\n        @itemName={{this.storyFactoryIcon}}\\n        class=\\\"first-row\\\"\\n      />\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.house}}\\n        @title=\\\"House\\\"\\n        @disabled={{this.houseLocked}}\\n        @itemName=\\\"Icon-House\\\"\\n        class=\\\"second-row\\\"\\n      />\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.awards}}\\n        @title=\\\"Awards\\\"\\n        @disabled={{this.awardsLocked}}\\n        @itemName=\\\"Icon-Awards\\\"\\n        class=\\\"second-row\\\"\\n      />\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.games}}\\n        @title=\\\"Games\\\"\\n        @disabled={{this.gamesLocked}}\\n        @itemName=\\\"Icon-Games\\\"\\n        class=\\\"second-row\\\"\\n      />\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.puzzles}}\\n        @title=\\\"Puzzles\\\"\\n        @disabled={{this.puzzlesLocked}}\\n        @itemName=\\\"Icon-Puzzles\\\"\\n        class=\\\"second-row\\\"\\n      />\\n      <HomeNav::NavItemShop\\n        @now={{this.model.now}}\\n        @onClick={{this.plaza}}\\n        @navType=\\\"shop\\\"\\n        @title=\\\"Plaza\\\"\\n        @theme={{this.theme.currentTheme}}\\n        @class={{this.theme.currentTheme}}\\n        class=\\\"second-row\\\"\\n      />\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.critters}}\\n        @title=\\\"Critters\\\"\\n        @itemName=\\\"Icon-Critters\\\"\\n        class=\\\"second-row\\\"\\n      />\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.play}}\\n        @title=\\\"Play\\\"\\n        @itemName=\\\"Icon-Play\\\"\\n        class=\\\"second-row\\\"\\n      />\\n      <HomeNav::NavItemSimple\\n        @onClick={{this.songs}}\\n        @title=\\\"Songs\\\"\\n        @itemName=\\\"Icon-Songs\\\"\\n        class=\\\"second-row\\\"\\n      />\\n    </nav>\\n  </main>\\n  <Footer\\n    @logo={{if\\n      this.isAuLocale\\n      \\\"/assets/svgs/logo_abc.svg\\\"\\n      \\\"/assets/svgs/logo.svg\\\"\\n    }}\\n  />\\n</HomeNav>\\n\\n{{#if this.hasTask}}\\n  {{#let (unique-id) as |titleId|}}\\n    <Dialog\\n      @open={{this.hasTask}}\\n      class=\\\"pointer-events-auto aria-hidden:hidden\\\"\\n      role=\\\"alertdialog\\\"\\n      aria-labelledby={{titleId}}\\n    >\\n      <Dialog::Overlay>\\n        <Dialog::Panel>\\n          <Assignments::AssignmentOverlay\\n            @thumbnailUrl={{this.assignmentThumbnailUrl}}\\n            @title={{this.assignmentTitle}}\\n            @name={{this.assignmentName}}\\n            @dueDate={{this.assignmentDueDate}}\\n            @timeRemaining={{this.assignmentTimeRemaining}}\\n            @instruction={{this.assignmentInstruction}}\\n            @titleId={{titleId}}\\n            @startTask={{this.startTask}}\\n            @logout={{this.bye}}\\n          />\\n        </Dialog::Panel>\\n      </Dialog::Overlay>\\n    </Dialog>\\n  {{/let}}\\n{{else}}\\n  <Quest::Notification @alertAnytime={{true}} />\\n{{/if}}\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Lessons\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/lessons.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"My Certificate\\\"}}\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n<HiddenPrintContainer />', { moduleName: 're-client/templates/lessons/certificate.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Finished Lessons\\\"}}\\n\\n<ActivityHeader />\\n<main>\\n  <ContentInteractives::Lessons::FinishedReLessons\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @goToSkillsBankAction={{this.goToSkillsBank}}\\n    @goToStorylandsAction={{this.goToStorylands}}\\n    @goToIndexAction={{this.goToIndex}}\\n    @goToReadingEggspressAction={{this.goToReadingEggspress}}\\n    @goToPrevMapAction={{this.goToPrevMap}}\\n  />\\n</main>', { moduleName: 're-client/templates/lessons/finished-re-lessons.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Lesson \\\" @model.lessonId}}\\n\\n<ActivityHeader @hideHomeButton={{true}} />\\n{{outlet}}', { moduleName: 're-client/templates/lessons/lesson.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Activity \\\" @model.activityId}}\\n\\n<main>\\n  {{#if @model.isCaperActivity}}\\n    <ContentInteractives::Lessons::LessonActivityGame\\n      @interactiveConfig={{@model.interactiveConfig}}\\n      @incrementScoreAction={{this.incrementScore}}\\n      @nextAction={{this.next}}\\n      @saveProgressAction={{this.saveProgress}}\\n      @saveLearningStateAction={{this.saveLearningState}}\\n      @skipLessonAction={{this.skipLesson}}\\n      @abortSkipLessonAttemptAction={{this.abortSkipLessonAttempt}}\\n      @captureAskReggieInteractionAction={{this.captureAskReggieInteraction}}\\n      @keyboardActivated={{true}}\\n    />\\n  {{else}}\\n    <ContentInteractive\\n      @contentActions={{this}}\\n      @contentSpec={{this.contentSpec}}\\n      @manifests={{@model.manifests}}\\n      @variables={{@model.variables}}\\n      @framework=\\\"jester\\\"\\n    />\\n  {{/if}}\\n  {{#if this.renderQuestAlert}}\\n    <Quest::Notification />\\n  {{/if}}\\n</main>\\n\\n{{#unless this.askReggieLessonSkipAttempt}}\\n  <ActivitySidebar\\n    @activities={{this.model.sideBarActivityData}}\\n    @avatarUrl={{this.user.student.avatarUrl}}\\n    @changeActivityAction={{this.changeActivity}}\\n    @homeLink=\\\"index\\\"\\n    @lessonsRoute=\\\"lessons.map\\\"\\n    @lessonsModel={{this.mapId}}\\n    @lessonsLabel=\\\"Reading lessons\\\"\\n    @programRoute=\\\"my-program\\\"\\n    @programLabel=\\\"My {{translate \\'program\\'}}\\\"\\n    @points={{this.user.student.eggs}}\\n    @position={{this.currentPositionTitle}}\\n    @selectedActivity={{this.activityId}}\\n    @studentName={{this.user.student.name}}\\n    @threeLinkVariant={{true}}\\n    @assignmentMode={{this.isAssignmentMode}}\\n  />\\n{{/unless}}\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/lessons/lesson/activity.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Map \\\" @model.mapId}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/lessons/map.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.jesterVariables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>', { moduleName: 're-client/templates/lessons/map/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Quiz\\\"}}\\n\\n<ActivityHeader />\\n\\n<main>\\n  <div class=\\\"content-interactive\\\" ...attributes>\\n    <ContentLoader::Interactive\\n      @interactiveConfig={{@model.interactiveConfig}}\\n      @externalController={{this}}\\n    />\\n  </div>\\n</main>\\n\\n{{#if this.renderQuestAlert}}\\n  <Quest::Notification />\\n{{/if}}\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/lessons/map/quiz.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Placement Test\\\"}}\\n\\n<ActivityHeader />\\n\\n<main>\\n  <div class=\\\"content-interactive\\\" ...attributes>\\n    <ContentLoader::Interactive\\n      @interactiveConfig={{@model.interactiveConfig}}\\n      @externalController={{this}}\\n    />\\n  </div>\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/lessons/placement-test.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if this.model.warning}}\\n  <p>{{this.model.warning}}</p>\\n{{else}}\\n  <p>Logging in...</p>\\n{{/if}}', { moduleName: 're-client/templates/login.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if this.model.warning}}\\n  <p>{{this.model.warning}}</p>\\n{{else}}\\n  <p>Logging out...</p>\\n{{/if}}', { moduleName: 're-client/templates/logout.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"My Program\\\"}}\\n\\n<div class=\\\"min-h-screen bg-[url(\\'/assets/my-program/blue-glow.png\\')]\\\">\\n  <header\\n    class=\\\"flex h-[100px] w-full justify-around border-b-10 border-[rgba(88,49,167,1)] bg-my-program-header-mobile bg-no-repeat font-futura-bt font-bold md:h-[250px] md:border-0 md:bg-my-program-header md:bg-[length:100%_250px] md:pb-24\\\"\\n  >\\n    <div class=\\\"flex h-full w-20 items-end justify-center md:items-center\\\">\\n      <LinkTo\\n        @route=\\\"index\\\"\\n        @replace={{true}}\\n        aria-label=\\\"Home\\\"\\n        class=\\\"h-[64px] w-[64px] bg-home hover:cursor-pointer\\\"\\n        {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n        {{on \\\"mouseout\\\" this.handleMouseLeave}}\\n        {{on \\\"mouseover\\\" this.handleMouseEnter}}\\n      />\\n    </div>\\n\\n    <div\\n      class=\\\"flex h-full w-[70px] items-end justify-center md:h-full md:w-[206px] md:items-center\\\"\\n    >\\n      <LinkTo\\n        @route=\\\"changing-room\\\"\\n        class=\\\"mt-5 flex items-center justify-center bg-my-program-avatar-button bg-contain bg-center bg-no-repeat hover:cursor-pointer\\\"\\n        {{play-sound-on \\\"click\\\" \\\"snap\\\"}}\\n        {{on \\\"mouseout\\\" this.handleMouseLeave}}\\n        {{on \\\"mouseover\\\" this.handleMouseEnter}}\\n      >\\n        <img\\n          width=\\\"70\\\"\\n          height=\\\"70\\\"\\n          class=\\\"pointer-events-none relative bottom-[3px] md:bottom-[6px] md:h-[150px] md:w-[150px]\\\"\\n          src={{this.studentAvatarUrl}}\\n          alt=\\\"student avatar\\\"\\n          {{loading-spinner}}\\n        />\\n      </LinkTo>\\n    </div>\\n\\n    <div\\n      class=\\\"mt-6 flex h-full min-w-[255px] max-w-[400px] flex-col items-end justify-center text-nowrap text-[20px]/[1.1em] text-white [text-shadow:_0_2px_4px_rgba(0,_0,_0,_0.5)] md:m-0 md:items-center md:text-[40px]/[1.1em]\\\"\\n    >\\n      <h1 class=\\\"flex flex-col\\\">\\n        <span class=\\\"mx-auto md:mx-0\\\" {{fit-text maxSize=40}}>\\n          {{this.firstName}}\\'s\\n        </span>\\n        <span class=\\\"mx-auto block md:mx-0\\\">\\n          {{translate \\\"program\\\"}}\\n        </span>\\n      </h1>\\n    </div>\\n\\n    <div\\n      class=\\\"flex h-[80px] w-[170px] -rotate-[4deg] items-baseline justify-center pt-7 md:h-full md:w-[206px] md:transform-none md:items-center md:pt-20\\\"\\n    >\\n      <img src=\\\"/assets/my-program/reggie-jump-star.png\\\" alt=\\\"reggie\\\" />\\n\\n    </div>\\n\\n    <div class=\\\"hidden h-full w-20 items-center justify-center md:flex\\\">\\n      {{#if this.isAuLocale}}\\n        <img\\n          class=\\\"h-[69px]\\\"\\n          src=\\\"/assets/my-program/re-logo-au.svg\\\"\\n          alt=\\\"readingeggs\\\"\\n        />\\n\\n      {{else}}\\n        <img\\n          class=\\\"h-[69px]\\\"\\n          src=\\\"/assets/my-program/re-logo.svg\\\"\\n          alt=\\\"readingeggs\\\"\\n        />\\n      {{/if}}\\n    </div>\\n  </header>\\n\\n  <main class=\\\"pb-5\\\">\\n    <MyProgram::BlockGrid\\n      @drivingTestsAction={{this.drivingTests}}\\n      @spellingAction={{this.spelling}}\\n      @lessonsAction={{this.lessons}}\\n      @storylandsAction={{this.storylands}}\\n      @goToBookReaderAction={{this.goToBookReader}}\\n      @scrollToBookReaderAction={{this.scrollToBookReader}}\\n      @scrollToTopAction={{this.scrollToTop}}\\n      @books={{@model.books}}\\n      @spellingLocked={{this.spellingLocked}}\\n      @drivingTestsLocked={{this.drivingTestsLocked}}\\n      @nextLesson={{this.nextLesson}}\\n      @finishedLessons={{this.hasFinishedLessons}}\\n    />\\n  </main>\\n</div>', { moduleName: 're-client/templates/my-program.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"My Reading Goals\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/my-reading-goals.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>', { moduleName: 're-client/templates/my-reading-goals/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>', { moduleName: 're-client/templates/my-reading-goals/milestones.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>', { moduleName: 're-client/templates/my-reading-goals/quiz.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<LinkTo\\n  @route=\\\"application\\\"\\n  class=\\\"back-to-index\\\"\\n  data-test-home={{true}}\\n  aria-label=\\\"Go back to the index page\\\"\\n/>\\n<div class=\\\"unavailable\\\">\\n  <span class=\\\"warning\\\">\\n    !\\n  </span>\\n  <h1>\\n    Sorry,\\n    {{this.model}}\\n    has been turned off.\\n  </h1>\\n</div>', { moduleName: 're-client/templates/no-access.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Play\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/play.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::Play::PlayActivity\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @nextAction={{this.next}}\\n  />\\n</main>', { moduleName: 're-client/templates/play/activity.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::Play::PlayRoom\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @showBookAction={{this.showBook}}\\n    @showGameAction={{this.showGame}}\\n    @showVideoAction={{this.showVideo}}\\n  />\\n</main>', { moduleName: 're-client/templates/play/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Plaza\\\"}}\\n\\n<ActivityHeader />\\n<main>\\n  <ContentInteractives::Plaza @interactiveConfig={{@model.interactiveConfig}} />\\n</main>', { moduleName: 're-client/templates/plaza.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Puzzle Park\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/puzzles.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::Puzzles::PuzzleLobbyGame\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @showPuzzleAction={{this.showPuzzle}}\\n  />\\n</main>', { moduleName: 're-client/templates/puzzles/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::Puzzles::PuzzleGame\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @saveScoreAction={{this.saveScore}}\\n    @goBackToLobbyAction={{this.goBackToLobby}}\\n  />\\n</main>', { moduleName: 're-client/templates/puzzles/puzzle.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::BookReader\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @resultVideoAction={{this.resultVideo}}\\n    @nextAction={{this.next}}\\n    @saveBookQuizScoreAction={{this.saveBookQuizScore}}\\n  />\\n</main>', { moduleName: 're-client/templates/reader/book/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::BookReader\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @nextAction={{this.next}}\\n    @backToQuizAction={{this.backToQuiz}}\\n  />\\n</main>', { moduleName: 're-client/templates/reader/book/page.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::BookReader::ResultVideo\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @nextAction={{this.next}}\\n  />\\n</main>', { moduleName: 're-client/templates/reader/result.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader\\n  @hideHomeButton={{true}}\\n  @showBackButton={{if @model.hideBackButton false true}}\\n/>\\n<main>\\n  {{outlet}}\\n</main>', { moduleName: 're-client/templates/sample/lesson.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"content-interactive\\\">\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{this.model.interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>', { moduleName: 're-client/templates/sample/lesson/activity.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Shop | Plaza\\\"}}\\n\\n<ActivityHeader @useHomeButtonAsReturn={{true}} />\\n<main>\\n  {{#if this.isCatalogueRoute}}\\n    {{outlet}}\\n  {{else}}\\n    <ContentInteractives::ShopGame\\n      @interactiveConfig={{@model.interactiveConfig}}\\n      @purchaseAction={{this.purchase}}\\n      @changeDepartmentAction={{this.changeDepartment}}\\n      @gotoCatalogueAction={{this.gotoCatalogue}}\\n    />\\n  {{/if}}\\n</main>', { moduleName: 're-client/templates/shop.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ContentInteractives::ShopGame::Catalogue\\n  @interactiveConfig={{@model.interactiveConfig}}\\n  @purchaseAction={{this.purchase}}\\n  @purchaseBundleAction={{this.purchaseBundle}}\\n  @bundlePriceAction={{this.bundlePrice}}\\n  @backToShopAction={{this.backToShop}}\\n  @timeToNextMonthAction={{this.timeToNextMonth}}\\n/>', { moduleName: 're-client/templates/shop/department/catalogue.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Songs\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/songs.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::Songs::SongsLobby\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @playVideoAction={{this.playVideo}}\\n  />\\n</main>', { moduleName: 're-client/templates/songs/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::Songs::SongsGame\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @nextAction={{this.next}}\\n  />\\n</main>', { moduleName: 're-client/templates/songs/video.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Spelling\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/spelling.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Finished Lessons\\\"}}\\n\\n<ActivityHeader />\\n<main>\\n  <ContentInteractives::Spelling::FinishedReSpelling\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @goToStorylandsAction={{this.goToStorylands}}\\n    @goToIndexAction={{this.goToIndex}}\\n    @goToReadingEggspressAction={{this.goToReadingEggspress}}\\n    @goToPrevMapAction={{this.goToPrevMap}}\\n  />\\n</main>', { moduleName: 're-client/templates/spelling/finished-re-spelling.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Lesson \\\" @model.lessonId}}\\n\\n<ActivityHeader @hideHomeButton={{true}} />\\n{{outlet}}', { moduleName: 're-client/templates/spelling/lesson.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Activity \\\" @model.activityId}}\\n\\n<main>\\n  <div class=\\\"content-interactive\\\" ...attributes>\\n    <ContentLoader::Interactive\\n      @interactiveConfig={{@model.interactiveConfig}}\\n      @externalController={{this}}\\n    />\\n  </div>\\n</main>\\n\\n<ActivitySidebar\\n  @activities={{this.sideBarActivityData}}\\n  @avatarUrl={{this.user.student.avatarUrl}}\\n  @changeActivityAction={{this.changeActivity}}\\n  @homeLink=\\\"index\\\"\\n  @lessonsRoute=\\\"spelling.map\\\"\\n  @lessonsModel={{this.mapId}}\\n  @lessonsLabel=\\\"Spelling lessons\\\"\\n  @programRoute=\\\"my-program\\\"\\n  @programLabel=\\\"My {{translate \\'program\\'}}\\\"\\n  @points={{this.user.student.eggs}}\\n  @position={{this.currentPositionTitle}}\\n  @selectedActivity={{this.activityId}}\\n  @studentName={{this.user.student.name}}\\n  @threeLinkVariant={{true}}\\n  @assignmentMode={{this.isAssignmentMode}}\\n/>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/spelling/lesson/activity.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Map \\\" @model.mapId}}\\n\\n<main>\\n  {{outlet}}\\n</main>', { moduleName: 're-client/templates/spelling/map.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<ContentInteractives::Spelling::MapGame\\n  @interactiveConfig={{@model.interactiveConfig}}\\n  @student={{this.student}}\\n  @playLessonAction={{this.playLesson}}\\n  @playQuizAction={{this.playQuiz}}\\n  @prevMapAction={{this.prevMap}}\\n  @nextMapAction={{this.nextMap}}\\n/>', { moduleName: 're-client/templates/spelling/map/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Quiz\\\"}}\\n\\n<ActivityHeader />\\n\\n<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/spelling/map/quiz.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <ContentInteractives::Spelling::MysteryGame\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @student={{this.student}}\\n    @grantMysteryItemAction={{this.grantMysteryItem}}\\n    @nextAction={{this.next}}\\n  />\\n</main>', { moduleName: 're-client/templates/spelling/mystery-gift.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Placement Test\\\"}}\\n\\n<ActivityHeader />\\n\\n<main>\\n  <div class=\\\"content-interactive\\\" ...attributes>\\n    <ContentLoader::Interactive\\n      @interactiveConfig={{@model.interactiveConfig}}\\n      @externalController={{this}}\\n    />\\n  </div>\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/spelling/placement-test.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Story Factory\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/story-factory.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"My Stories\\\"}}\\n\\n<ActivityHeader />\\n<main>\\n  <div class=\\\"content-interactive\\\" ...attributes>\\n    <ContentLoader::Interactive\\n      @interactiveConfig={{@model.interactiveConfig}}\\n      @externalController={{this}}\\n    />\\n  </div>\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/story-factory/floor.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ActivityHeader />\\n<main>\\n  <div class=\\\"content-interactive\\\" ...attributes>\\n    <ContentLoader::Interactive\\n      @interactiveConfig={{@model.interactiveConfig}}\\n      @externalController={{this}}\\n    />\\n  </div>\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/story-factory/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Showroom\\\"}}\\n\\n<ActivityHeader />\\n<main>\\n  <div class=\\\"content-interactive\\\" ...attributes>\\n    <ContentLoader::Interactive\\n      @interactiveConfig={{@model.interactiveConfig}}\\n      @externalController={{this}}\\n    />\\n  </div>\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/story-factory/showroom.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Storylands\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/storylands.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Bonus Game\\\"}}\\n\\n<ActivityHeader />\\n<main>\\n  <ContentInteractives::Storylands::BonusGame\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @nextAction={{this.next}}\\n  />\\n</main>', { moduleName: 're-client/templates/storylands/bonus-game.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Finished Lessons\\\"}}\\n\\n<ActivityHeader />\\n<main>\\n  <ContentInteractives::Storylands::FinishedStorylands\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @goToSkillsBankAction={{this.goToSkillsBank}}\\n    @goToIndexAction={{this.goToIndex}}\\n    @goToReadingEggspressAction={{this.goToReadingEggspress}}\\n    @goToPrevMapAction={{this.goToPrevMap}}\\n  />\\n</main>', { moduleName: 're-client/templates/storylands/finished-re-storylands.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Lesson \\\" @model.lessonId}}\\n\\n<ActivityHeader @hideHomeButton={{true}} />\\n{{outlet}}', { moduleName: 're-client/templates/storylands/lesson.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Activity \\\" @model.activityId}}\\n\\n<main>\\n  <div class=\\\"content-interactive\\\">\\n    <ContentLoader::Interactive\\n      @interactiveConfig={{@model.interactiveConfig}}\\n      @externalController={{this}}\\n    />\\n  </div>\\n</main>\\n\\n<ActivitySidebar\\n  @activities={{this.model.sideBarActivityData}}\\n  @avatarUrl={{this.user.student.avatarUrl}}\\n  @changeActivityAction={{this.changeActivity}}\\n  @homeLink=\\\"index\\\"\\n  @lessonsRoute=\\\"storylands.map\\\"\\n  @lessonsModel={{this.mapId}}\\n  @lessonsLabel=\\\"Storylands lessons\\\"\\n  @programRoute=\\\"my-program\\\"\\n  @programLabel=\\\"My {{translate \\'program\\'}}\\\"\\n  @points={{this.user.student.eggs}}\\n  @position={{this.currentPositionTitle}}\\n  @selectedActivity={{this.activityId}}\\n  @studentName={{this.user.student.name}}\\n  @threeLinkVariant={{true}}\\n  @assignmentMode={{this.isAssignmentMode}}\\n/>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/storylands/lesson/activity.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Map \\\" @model.mapId}}\\n\\n<ActivityHeader />\\n<main>\\n  <ContentInteractives::Storylands::MapGame\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @playLessonAction={{this.playLesson}}\\n    @playBonusGameAction={{this.playBonusGame}}\\n    @playQuizAction={{this.playQuiz}}\\n    @prevMapAction={{this.prevMap}}\\n    @nextMapAction={{this.nextMap}}\\n  />\\n</main>', { moduleName: 're-client/templates/storylands/map.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<OfflineScreen />\\n\\n<FullPageAlert @status={{this.model.status}}>\\n  <div>\\n    <h2>\\n      Something has gone wrong.\\n    </h2>\\n    <button\\n      type=\\\"button\\\"\\n      {{on \\\"click\\\" this.login}}\\n      class=\\\"unauthorised-login-button\\\"\\n    ></button>\\n  </div>\\n</FullPageAlert>', { moduleName: 're-client/templates/unauthorised.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"World \\\" @model.worldId}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/worlds/world.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}', { moduleName: 're-client/templates/worlds/world/activity-area.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Activity Area Activity\\\"}}\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/activity-area/activity.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Activity Area\\\"}}\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/activity-area/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}', { moduleName: 're-client/templates/worlds/world/book-area.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Book Area\\\"}}\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/book-area/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/book-area/reader.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Worlds Certificate\\\"}}\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n<HiddenPrintContainer />', { moduleName: 're-client/templates/worlds/world/certificate.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}', { moduleName: 're-client/templates/worlds/world/games-area.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Games Area Game\\\"}}\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/games-area/game.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Games Area\\\"}}\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/games-area/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}', { moduleName: 're-client/templates/worlds/world/home-base.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n<HiddenPrintContainer />\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/home-base/awards.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Changing Room\\\"}}\\n\\n<WorldsBackButton @href={{@model.backHref}} @onClick={{this.goBack}} />\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>', { moduleName: 're-client/templates/worlds/world/home-base/changing-room.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"HomeBase\\\"}}\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/home-base/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}', { moduleName: 're-client/templates/worlds/world/home-base/shop.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Catalogue\\\"}}\\n\\n<WorldsBackButton @href={{@model.backHref}} @onClick={{this.backToShop}} />\\n\\n<main>\\n  <ContentInteractives::ShopGame::Catalogue\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @purchaseAction={{this.purchase}}\\n    @purchaseBundleAction={{this.purchaseBundle}}\\n    @bundlePriceAction={{this.bundlePrice}}\\n    @backToShopAction={{this.backToShop}}\\n    @timeToNextMonthAction={{this.timeToNextMonth}}\\n  />\\n</main>', { moduleName: 're-client/templates/worlds/world/home-base/shop/catalogue.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Shop\\\"}}\\n\\n<WorldsBackButton @href={{@model.backHref}} @onClick={{this.goBack}} />\\n\\n<main>\\n  <ContentInteractives::ShopGame\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @purchaseAction={{this.purchase}}\\n    @changeDepartmentAction={{this.changeDepartment}}\\n    @gotoCatalogueAction={{this.goToCatalogue}}\\n  />\\n</main>', { moduleName: 're-client/templates/worlds/world/home-base/shop/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n\\n{{#if (and this.debugMode.debugAllowed this.resetOverlayVisible)}}\\n  <div\\n    class=\\\"fixed inset-0 z-[9999] flex items-center justify-center bg-black/80 text-center text-3xl text-white\\\"\\n    role=\\\"alert\\\"\\n    data-test-reset-overlay\\n  >\\n    <div class=\\\"flex w-1/2 flex-col items-center gap-4\\\">\\n      <p>Resetting learning worlds…</p>\\n      <progress\\n        class=\\\"h-4 w-full\\\"\\n        max=\\\"100\\\"\\n        value={{this.resetProgress}}\\n        data-test-reset-progress\\n      ></progress>\\n    </div>\\n  </div>\\n{{/if}}\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Lessons\\\"}}\\n\\n{{outlet}}', { moduleName: 're-client/templates/worlds/world/lessons.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Lesson \\\" @model.lessonId}}\\n\\n<ActivityHeader @hideHomeButton={{true}} />\\n{{outlet}}', { moduleName: 're-client/templates/worlds/world/lessons/lesson.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Activity \\\" @model.activityId}}\\n\\n<main>\\n  {{#if @model.isCaperActivity}}\\n    <ContentInteractives::Lessons::LessonActivityGame\\n      @interactiveConfig={{@model.interactiveConfig}}\\n      @incrementScoreAction={{this.incrementScore}}\\n      @nextAction={{this.next}}\\n      @saveProgressAction={{this.saveProgress}}\\n      @saveLearningStateAction={{this.saveLearningState}}\\n      @skipLessonAction={{this.skipLesson}}\\n      @abortSkipLessonAttemptAction={{this.abortSkipLessonAttempt}}\\n      @captureAskReggieInteractionAction={{this.captureAskReggieInteraction}}\\n      @keyboardActivated={{true}}\\n    />\\n  {{else}}\\n    <ContentInteractive\\n      @contentActions={{this}}\\n      @contentSpec={{this.contentSpec}}\\n      @manifests={{@model.manifests}}\\n      @variables={{@model.variables}}\\n      @framework=\\\"jester\\\"\\n    />\\n  {{/if}}\\n</main>\\n\\n{{#unless this.askReggieLessonSkipAttempt}}\\n  <ActivitySidebar\\n    @activities={{this.model.sideBarActivityData}}\\n    @avatarUrl={{this.user.student.avatarUrl}}\\n    @changeActivityAction={{this.changeActivity}}\\n    @homeLink=\\\"index\\\"\\n    @lessonsRoute=\\\"worlds.world.map\\\"\\n    @lessonsModel={{this.model.worldId}}\\n    @lessonsLabel=\\\"Reading lessons\\\"\\n    @programRoute=\\\"my-program\\\"\\n    @programLabel=\\\"My {{translate \\'program\\'}}\\\"\\n    @points={{this.user.student.eggs}}\\n    @position={{this.currentPositionTitle}}\\n    @selectedActivity={{this.activityId}}\\n    @studentName={{this.user.student.name}}\\n    @threeLinkVariant={{true}}\\n    @assignmentMode={{false}}\\n    @backHref={{this.model.backHref}}\\n    @onBack={{this.goToMap}}\\n  />\\n{{/unless}}\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/lessons/lesson/activity.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Quiz\\\"}}\\n\\n<WorldsBackButton @href={{@model.backHref}} @onClick={{this.goBack}} />\\n\\n<div class=\\\"content-interactive\\\" ...attributes>\\n  <ContentLoader::Interactive\\n    @interactiveConfig={{@model.interactiveConfig}}\\n    @externalController={{this}}\\n  />\\n</div>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/map-quiz.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}', { moduleName: 're-client/templates/worlds/world/map.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Map\\\"}}\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/map/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{page-title \\\"Music Area\\\"}}\\n\\n<main>\\n  <ContentInteractive\\n    @contentActions={{this}}\\n    @contentSpec={{this.contentSpec}}\\n    @manifests={{@model.manifests}}\\n    @variables={{@model.variables}}\\n    @framework=\\\"jester\\\"\\n  />\\n</main>\\n\\n<DebugApp::ToggleDebug>\\n  <ContentInteractive::Debug @contentActions={{this}} />\\n</DebugApp::ToggleDebug>', { moduleName: 're-client/templates/worlds/world/music-area.hbs' });\n","/*\n * This file is required to ensure these URLs are fingerprinted in production\n * and staging builds, so they can be used to dynamically compose absolute URLs\n */\nexport default {\n  default: '/assets/themes/reggies/reggie.png',\n  months: [\n    '/assets/themes/reggies/animals.png',\n    '/assets/themes/reggies/explorers.png',\n    '/assets/themes/reggies/sports.png',\n    '/assets/themes/reggies/superhero.png',\n    '/assets/themes/reggies/offtowork.png',\n    '/assets/themes/reggies/underwater.png',\n    '/assets/themes/reggies/medieval.png',\n    '/assets/themes/reggies/space.png',\n    '/assets/themes/reggies/redcarpet.png',\n    '/assets/themes/reggies/circus.png',\n    '/assets/themes/reggies/fancydress.png',\n    '/assets/themes/reggies/celebration.png',\n  ],\n}\n","import { deprecate } from '@ember/debug';\n\nexport { BooleanTransform as default } from '@ember-data/serializer/transform';\n\ndeprecate(\n  \"You are relying on ember-data auto-magically installing the BooleanTransform. Use `export { BooleanTransform as default } from '@ember-data/serializer/transform';` in app/transforms/boolean.js instead\",\n  false,\n  {\n    id: 'ember-data:deprecate-legacy-imports',\n    for: 'ember-data',\n    until: '6.0',\n    since: {\n      enabled: '5.2',\n      available: '4.13',\n    },\n  }\n);\n","import { deprecate } from '@ember/debug';\n\nexport { DateTransform as default } from '@ember-data/serializer/transform';\n\ndeprecate(\n  \"You are relying on ember-data auto-magically installing the DateTransform. Use `export { DateTransform as default } from '@ember-data/serializer/transform';` in app/transforms/date.js instead\",\n  false,\n  {\n    id: 'ember-data:deprecate-legacy-imports',\n    for: 'ember-data',\n    until: '6.0',\n    since: {\n      enabled: '5.2',\n      available: '4.13',\n    },\n  }\n);\n","import { deprecate } from '@ember/debug';\n\nexport { NumberTransform as default } from '@ember-data/serializer/transform';\n\ndeprecate(\n  \"You are relying on ember-data auto-magically installing the NumberTransform. Use `export { NumberTransform as default } from '@ember-data/serializer/transform';` in app/transforms/number.js instead\",\n  false,\n  {\n    id: 'ember-data:deprecate-legacy-imports',\n    for: 'ember-data',\n    until: '6.0',\n    since: {\n      enabled: '5.2',\n      available: '4.13',\n    },\n  }\n);\n","import { deprecate } from '@ember/debug';\n\nexport { StringTransform as default } from '@ember-data/serializer/transform';\n\ndeprecate(\n  \"You are relying on ember-data auto-magically installing the StringTransform. Use `export { StringTransform as default } from '@ember-data/serializer/transform';` in app/transforms/string.js instead\",\n  false,\n  {\n    id: 'ember-data:deprecate-legacy-imports',\n    for: 'ember-data',\n    until: '6.0',\n    since: {\n      enabled: '5.2',\n      available: '4.13',\n    },\n  }\n);\n","import camelize from 'camelize2'\nimport { camelize as camelizeAsString } from '@ember/string'\n\n/**\n * Camelize objects and strings.\n * To camelize the keys of an object we are using `camelize2`\n *\n * @see https://github.com/DenysIvko/camelize2\n * @param obj\n * @returns {Object}\n */\nexport default function camelizeKeys(obj) {\n  if (typeof obj === 'string') return camelizeAsString(obj)\n  return camelize(obj)\n}\n","const { abs, ceil, floor } = Math\n\n// This utility is a reimplementation of moment.js's `fromNow` and\n// `toNow` functions, using the same buckets of time for translating\n// relative dates to readable strings like: 'a few seconds ago', 'a year ago', etc\n// https://momentjs.com/docs/#/displaying/fromnow/\n// https://momentjs.com/docs/#/displaying/tonow/\n\n// TODO: This util can be replaced with date-fns intlFormatDistance once we drop support for ios13\n\nconst ONE_SECOND = 1000\nconst ONE_MINUTE = ONE_SECOND * 60\nconst ONE_HOUR = ONE_MINUTE * 60\nconst ONE_DAY = ONE_HOUR * 24\nconst ONE_MONTH = ONE_DAY * 31\nconst ONE_YEAR = ONE_DAY * 365\nconst DIFF_SECONDS_FROM_NOW = ONE_SECOND * 45\nconst DIFF_MINUTE_FROM_NOW = ONE_SECOND * 90\nconst DIFF_MINUTES_FROM_NOW = ONE_MINUTE * 45\nconst DIFF_HOUR_FROM_NOW = ONE_MINUTE * 90\nconst DIFF_HOURS_FROM_NOW = ONE_HOUR * 22\nconst DIFF_DAY_FROM_NOW = ONE_HOUR * 36\nconst DIFF_DAYS_FROM_NOW = ONE_DAY * 26\nconst DIFF_MONTH_FROM_NOW = ONE_DAY * 45\nconst DIFF_MONTHS_FROM_NOW = ONE_DAY * 319\nconst DIFF_YEAR_FROM_NOW = ONE_DAY * 547\nconst DIFF_SECONDS_AGO = DIFF_SECONDS_FROM_NOW * -1\nconst DIFF_MINUTE_AGO = DIFF_MINUTE_FROM_NOW * -1\nconst DIFF_MINUTES_AGO = DIFF_MINUTES_FROM_NOW * -1\nconst DIFF_HOUR_AGO = DIFF_HOUR_FROM_NOW * -1\nconst DIFF_HOURS_AGO = DIFF_HOURS_FROM_NOW * -1\nconst DIFF_DAY_AGO = DIFF_DAY_FROM_NOW * -1\nconst DIFF_DAYS_AGO = DIFF_DAYS_FROM_NOW * -1\nconst DIFF_MONTH_AGO = DIFF_MONTH_FROM_NOW * -1\nconst DIFF_MONTHS_AGO = DIFF_MONTHS_FROM_NOW * -1\nconst DIFF_YEAR_AGO = DIFF_YEAR_FROM_NOW * -1\n\nexport default function dateFromNow(date: Date, now = Date.now()): string {\n  const diff = date.getTime() - now\n\n  if (diff <= DIFF_YEAR_AGO) {\n    return `${_msToAbsolute(diff, 'years')} years ago`\n  }\n  if (diff > DIFF_YEAR_AGO && diff <= DIFF_MONTHS_AGO) {\n    return 'a year ago'\n  }\n  if (diff > DIFF_MONTHS_AGO && diff <= DIFF_MONTH_AGO) {\n    return `${_msToAbsolute(diff, 'months')} months ago`\n  }\n  if (diff > DIFF_MONTH_AGO && diff <= DIFF_DAYS_AGO) {\n    return 'a month ago'\n  }\n  if (diff > DIFF_DAYS_AGO && diff <= DIFF_DAY_AGO) {\n    return `${_msToAbsolute(diff, 'days')} days ago`\n  }\n  if (diff > DIFF_DAY_AGO && diff <= DIFF_HOURS_AGO) {\n    return 'a day ago'\n  }\n  if (diff > DIFF_HOURS_AGO && diff <= DIFF_HOUR_AGO) {\n    return `${_msToAbsolute(diff, 'hours')} hours ago`\n  }\n  if (diff > DIFF_HOUR_AGO && diff <= DIFF_MINUTES_AGO) {\n    return 'an hour ago'\n  }\n  if (diff > DIFF_MINUTES_AGO && diff <= DIFF_MINUTE_AGO) {\n    return `${_msToAbsolute(diff, 'minutes')} minutes ago`\n  }\n  if (diff > DIFF_MINUTE_AGO && diff <= DIFF_SECONDS_AGO) {\n    return 'a minute ago'\n  }\n  if (diff > DIFF_SECONDS_AGO && diff < 0) {\n    return 'a few seconds ago'\n  }\n  if (diff >= 0 && diff < DIFF_SECONDS_FROM_NOW) {\n    return 'in seconds'\n  }\n  if (diff >= DIFF_SECONDS_FROM_NOW && diff < DIFF_MINUTE_FROM_NOW) {\n    return 'in a minute'\n  }\n  if (diff >= DIFF_MINUTE_FROM_NOW && diff < DIFF_MINUTES_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'minutes')} minutes`\n  }\n  if (diff >= DIFF_MINUTES_FROM_NOW && diff < DIFF_HOUR_FROM_NOW) {\n    return 'in an hour'\n  }\n  if (diff >= DIFF_HOUR_FROM_NOW && diff < DIFF_HOURS_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'hours')} hours`\n  }\n  if (diff >= DIFF_HOURS_FROM_NOW && diff < DIFF_DAY_FROM_NOW) {\n    return 'in a day'\n  }\n  if (diff >= DIFF_DAY_FROM_NOW && diff < DIFF_DAYS_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'days')} days`\n  }\n  if (diff >= DIFF_DAYS_FROM_NOW && diff < DIFF_MONTH_FROM_NOW) {\n    return 'in a month'\n  }\n  if (diff >= DIFF_MONTH_FROM_NOW && diff < DIFF_MONTHS_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'months')} months`\n  }\n  if (diff >= DIFF_MONTHS_FROM_NOW && diff < DIFF_YEAR_FROM_NOW) {\n    return 'in a year'\n  }\n  if (diff >= DIFF_YEAR_FROM_NOW) {\n    return `in ${_msToAbsolute(diff, 'years')} years`\n  }\n  return ''\n}\n\ntype TimeUnit = 'minutes' | 'hours' | 'days' | 'months' | 'years'\n\nfunction _msToAbsolute(ms: number, unit: TimeUnit): number {\n  const conversionFactor = {\n    minutes: ONE_MINUTE,\n    hours: ONE_HOUR,\n    days: ONE_DAY,\n    months: ONE_MONTH,\n    years: ONE_YEAR,\n  }[unit]\n\n  const converted = abs(ms / conversionFactor)\n  return converted < 2 ? ceil(converted) : floor(converted)\n}\n","import config from 're-client/config/environment'\n\nexport function generateLessonOptions(\n  lessonType: 'lessons' | 'spelling' | 'storylands',\n  numberOfLessons: number,\n) {\n  const options = []\n  let i = 0\n\n  for (i; i < numberOfLessons; i++) {\n    const lessonNumber = i + 1\n    const progressInfoForLessons = config.studentProgress.progress\n    const { lessonsPerMap } = progressInfoForLessons[lessonType]\n    const mapNumber = Math.ceil(lessonNumber / lessonsPerMap)\n\n    options.push({\n      value: lessonNumber.toFixed(),\n      label: `Lesson ${lessonNumber} - Map ${mapNumber}`,\n    })\n  }\n  return options\n}\n\nexport function generateMapOptions(numberOfMaps: number) {\n  const options = []\n  let i = 0\n\n  for (i; i < numberOfMaps; i++) {\n    const mapNumber = i + 1\n\n    options.push({\n      value: mapNumber.toFixed(),\n      label: ` Map ${mapNumber}`,\n    })\n  }\n  return options\n}\n","export type DebugActionParam =\n  | {\n      type: 'checkbox' | 'date' | 'number' | 'text'\n\n      value?: string | undefined\n\n      optional?: boolean\n    }\n  | {\n      type: 'select'\n\n      options: { label: string; value: string }[]\n\n      values?: Record<string, unknown>\n\n      optional?: boolean\n    }\n\nexport type DebugAction = Record<string, DebugActionParam>\n\n/**\n * Marks this property as a debug value.\n * This property will be displayed in the debug menu as JSON.\n *\n * @example\n * ```ts\n * @debugValue()\n * get someValue() {\n *   return { foo: 'bar', baz: true }\n * }\n * ```\n *\n * @returns a property decorator\n */\nexport function debugValue(): PropertyDecorator {\n  return function (target, propertyKey) {\n    const debug = getDebug(target)\n    debug.values.add(propertyKey)\n  }\n}\n\n/**\n * Marks this action as a debug action.\n * This action and it's params will be avaliable in the debug menu.\n *\n * Each param will be displayed as an input element with the provided type.\n * Default values can optionally be provided for type 'text' | 'number' | 'object'.\n *\n * @param params Debug action params\n * @returns a method decorator\n *\n * @example\n * ```ts\n * @action\n * @debugAction({ foo: {type: 'text', value: 'baz'}, bar: {type: 'date'} })\n * doSomething(foo: string, bar: Date) {\n *   // do something\n * }\n * ```\n */\nexport function debugAction(params?: DebugAction): MethodDecorator {\n  return function (target, propertyKey) {\n    const debug = getDebug(target)\n    debug.actions.set(propertyKey, params)\n  }\n}\n\nexport function debugSubscription(): MethodDecorator {\n  return function (target, propertyKey) {\n    const debug = getDebug(target)\n    debug.subscriptions.add(propertyKey)\n  }\n}\n\n/**\n * Context for the content-interactive debug menu\n */\nexport class DebugContent {\n  /**\n   * Set of keys to lookup when debugging component values\n   */\n  values = new Set<string | symbol>()\n\n  /**\n   * Map of keys and config to lookup when debugging component actions\n   */\n  actions = new Map<string | symbol, DebugAction | undefined>()\n\n  /**\n   * Set of something\n   */\n  subscriptions = new Set<string | symbol>()\n}\n\n/** Unique symbol to lookup the DebugContent class */\nexport const DebugContentSymbol = Symbol.for('debug-content')\n\n/**\n * Gets the DebugContent of an object. Creates a new DebugContent if one doesn't exists already.\n *\n * @param context object to apply the DebugContent too\n * @returns The DebugContent\n */\nexport function getDebug(context: object): DebugContent {\n  const debug: unknown = Reflect.get(context, DebugContentSymbol)\n\n  if (debug instanceof DebugContent) {\n    return debug\n  }\n\n  return setDebug(context, new DebugContent())\n}\n\n/**\n * Sets the provided DebugContent on the context object\n *\n * @param context object to apply the DebugContent too\n * @param debug the DebugContent to apply to the context\n * @returns The DebugContent\n */\nexport function setDebug(context: object, debug: DebugContent): DebugContent {\n  Reflect.defineProperty(context, DebugContentSymbol, {\n    value: debug,\n  })\n\n  return debug\n}\n","const departments = ['avatar', 'house']\n\n/**\n * Simple helper to always return a valid department no matter what has been given\n * Useful when the value to test comes from user changeable source for instance a url-param\n * @param {String} departmentToTest\n * @returns {String} - either avatar or house\n */\nexport function allowedDepartment(departmentToTest = '') {\n  return departments.includes(departmentToTest)\n    ? departmentToTest\n    : departments[0]\n}\n","import { AbortError, UnauthorizedError } from '@ember-data/adapter/error'\nimport { isApolloError } from '@apollo/client/core'\nimport type { ApolloError } from '@apollo/client/core'\nimport { HTTPError } from 'ky'\nimport { ScriptBlockedError } from '@blakeelearning/content-loader'\nimport isNetworkError from 'is-network-error'\n\n// See https://developer.mozilla.org/en-US/docs/Web/API/fetch#exceptions\ntype FetchAPINetworkError = TypeError\n\n// See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#xmlhttprequests_being_stopped\ntype XMLHttpRequestWithZeroStatus = XMLHttpRequest & { status: 0 }\n\n// Not very well documented, but some info is available in https://www.apollographql.com/docs/react/api/link/apollo-link-error/ - note that the `networkError` property can also be a ServerError\ntype ApolloErrorWithNetworkError = ApolloError & {\n  networkError: FetchAPINetworkError\n}\n\nexport type ErrorRepresentingNetworkError =\n  | AbortError\n  | FetchAPINetworkError\n  | XMLHttpRequestWithZeroStatus\n  | ApolloErrorWithNetworkError\n  | ScriptBlockedError\n\n/**\n * This function can be used to tell us if an error we are seeing was caused by\n * a failed request.  In general, any such error does not need to be logged to\n * rollbar so long as we can handle it by advising the student to check their\n * connection and try again.\n *\n * We're using the term \"network error\" here to mean an HTTP request for which\n * the browser has yielded no response.  These are also called abort errors\n * sometimes, but network error is the term used in {@link\n * https://developer.mozilla.org/en-US/docs/Web/API/fetch}.\n */\nexport function isErrorRepresentingNetworkError(\n  error: unknown,\n): error is ErrorRepresentingNetworkError {\n  if (error instanceof AbortError) return true\n  if (error instanceof XMLHttpRequest) return error.status === 0\n  // eslint-disable-next-line @typescript-eslint/no-deprecated\n  if (error instanceof Error && isApolloError(error))\n    return isNetworkError(error.networkError)\n  if (error instanceof ScriptBlockedError) return true\n  return isNetworkError(error)\n}\n\ntype ResponseWith401Status = Response & { status: 401 }\ntype HTTPErrorWith401Response = HTTPError & { response: ResponseWith401Status }\n\ntype XMLHttpRequestWith401Status = XMLHttpRequest & { status: 401 }\n\n// Matches both a real ApolloError (thrown from client.query()/mutate()) and\n// the plain ErrorResponse object passed to an `onError` link's callback -\n// neither of which is guaranteed to be an `instanceof Error`, but both expose\n// networkError/graphQLErrors as own properties.\ninterface ApolloLinkErrorLike {\n  networkError?: { statusCode: number } | null\n  graphQLErrors?: readonly { extensions?: { code?: string } }[]\n}\n\nexport type AuthorizationError =\n  | UnauthorizedError\n  | HTTPErrorWith401Response\n  | XMLHttpRequestWith401Status\n  | ApolloLinkErrorLike\n  | NotAuthenticatedError\n\nfunction isApolloLinkErrorLike(error: unknown): error is ApolloLinkErrorLike {\n  return (\n    typeof error === 'object' &&\n    error !== null &&\n    ('networkError' in error || 'graphQLErrors' in error)\n  )\n}\n\nexport function isAuthorizationError(\n  error: unknown,\n): error is AuthorizationError {\n  // check if the current error is an abort error according to Ember\n  if (error instanceof UnauthorizedError) return true\n  if (error instanceof HTTPError) return error.response.status === 401\n  if (error instanceof XMLHttpRequest) return error.status === 401\n  if (error instanceof NotAuthenticatedError) return true\n\n  if (isApolloLinkErrorLike(error)) {\n    if (\n      hasStatusCode(error.networkError) &&\n      error.networkError.statusCode === 401\n    )\n      return true\n    if (error.graphQLErrors?.some((e) => e.extensions?.code === 'UNAUTHORIZED'))\n      return true\n  }\n\n  return false\n}\n\nexport interface ErrorLike {\n  name: string\n  message: string\n}\n\nclass ContentError extends Error {\n  constructor(name: string, error: unknown) {\n    let message: string\n    let cause: ErrorLike | undefined\n\n    if (isErrorLike(error)) {\n      message = error.message\n      cause = error\n    } else if (typeof error === 'string') {\n      message = error\n    } else {\n      message = `Unrecognised error: ${String(error)}`\n    }\n\n    super(message, { cause })\n\n    this.name = name\n  }\n}\n\nexport function isErrorLike(error: unknown): error is ErrorLike {\n  return (\n    typeof error === 'object' &&\n    error !== null &&\n    'name' in error &&\n    'message' in error &&\n    typeof error.name === 'string' &&\n    typeof error.message === 'string'\n  )\n}\n\nexport function isActionableError(error: unknown): error is ErrorLike {\n  if (error instanceof ContentError && isErrorLike(error.cause)) {\n    return isActionableError(error.cause)\n  }\n  return !isErrorRepresentingNetworkError(error) && !isAuthorizationError(error)\n}\n\n/**\n * @see {@link https://www.npmjs.com/package/errlop}\n * @example\n * try {\n *   doSomething()\n * } catch (error) {\n *   throw contentError('MyErrorName', error)\n * }\n *\n * @example\n * throw contentError('MyErrorName', 'my message')\n */\nexport function contentError(name: string, error: unknown): unknown {\n  return new ContentError(name, error)\n}\n\nfunction hasStatusCode(obj: unknown): obj is { statusCode: number } {\n  return (\n    !!obj &&\n    typeof obj === 'object' &&\n    obj.hasOwnProperty('statusCode') &&\n    typeof (obj as { statusCode: unknown }).statusCode === 'number'\n  )\n}\n\n/**\n * This is used to decide if a \"network error\" (Apollo term) can be retried.\n * We follow the ky logic for this, which says that any failed request (also\n * called a \"network error\", but meaning a fetch request that didn't resolve),\n * as well as certain 4xx and 5xx server errors can be.\n */\nexport function isApolloNetworkErrorRetryable(error: unknown): boolean {\n  return (\n    isNetworkError(error) ||\n    (hasStatusCode(error) &&\n      [408, 413, 429, 500, 502, 503, 504].includes(error.statusCode))\n  )\n}\n\nexport class NotAuthenticatedError extends Error {\n  constructor(message: string) {\n    super(message)\n    this.name = 'NotAuthenticatedError'\n  }\n}\n","import { assert } from '@ember/debug'\n\nconst MONTHS = [\n  'January',\n  'February',\n  'March',\n  'April',\n  'May',\n  'June',\n  'July',\n  'August',\n  'September',\n  'October',\n  'November',\n  'December',\n]\n\nexport function getMonth(monthIndex: number) {\n  const month = MONTHS[monthIndex]\n  assert(`Month ${monthIndex} not found in MONTHS map`, month)\n  return month\n}\n\n/**\n * Converts a Date object to a date string\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#date_strings | Date and time formats}\n *\n * @param input the input date\n * @returns a date string\n */\nexport function toDateString(input: Date) {\n  const [date] = input.toISOString().split('T')\n  assert(`Invalid date: ${input.toString()}`, date)\n  return date\n}\n\nexport function isValidDate(date: Date) {\n  try {\n    const time = date.getTime()\n    return !Number.isNaN(time)\n  } catch {\n    return false\n  }\n}\n","import { assert } from '@ember/debug'\n\nexport default function formatDueDate(date: Date): string {\n  const dateOfMonth = date.getDate()\n  const dayOfWeek = {\n    0: 'Sunday',\n    1: 'Monday',\n    2: 'Tuesday',\n    3: 'Wednesday',\n    4: 'Thursday',\n    5: 'Friday',\n    6: 'Saturday',\n  }[date.getDay()]\n  const month = {\n    0: 'January',\n    1: 'February',\n    2: 'March',\n    3: 'April',\n    4: 'May',\n    5: 'June',\n    6: 'July',\n    7: 'August',\n    8: 'September',\n    9: 'October',\n    10: 'November',\n    11: 'December',\n  }[date.getMonth()]\n\n  assert('dayOfWeek must be a string', typeof dayOfWeek === 'string')\n  assert('month must be a string', typeof month === 'string')\n\n  return `${dayOfWeek}, ${dateOfMonth} ${month}`\n}\n","/**\n * Prefetches a resource by adding a prefetch link to the document's head.\n */\nexport default function prefetch(url: string) {\n  const link = document.createElement('link')\n  link.rel = 'prefetch'\n  link.href = url\n  document.head.appendChild(link)\n}\n","/**\n * Preload given urls\n * Kindly taken from https://gist.github.com/chrism/c35756037f5feaac5023\n * @param urls\n * @returns {Promise}\n */\nexport default function preloadImages(...urls: string[]) {\n  const promises = urls.map(\n    (url) =>\n      new Promise((resolve, reject) => {\n        const image = new Image()\n        image.onload = resolve\n        image.onerror = reject\n        image.src = url\n      }),\n  )\n\n  return Promise.all(promises)\n}\n","import printImage from 're-client/utils/print-image'\nimport { contentError } from 're-client/utils/errors'\n\ninterface PrintCertificateOptions {\n  isNativeMobile: boolean\n}\n\n/**\n * Prints a certificate image. On native mobile apps this hands off to the app via a `fitpage`\n * URL param and `window.open` - the mobile apps intercept this call and take care of printing\n * from there. In a browser it renders the image into the hidden print container and calls\n * `window.print()`.\n */\nexport default async function printCertificate(\n  certificateUrl: string,\n  { isNativeMobile }: PrintCertificateOptions,\n): Promise<void> {\n  if (isNativeMobile) {\n    const nativeMobilePrintUrl = new URL(certificateUrl)\n    // The prescence of this param will result in an SVG element with `width=100% height=auto` attributes. The mobile apps require this for print layout.\n    nativeMobilePrintUrl.searchParams.set('fitpage', '')\n    window.open(nativeMobilePrintUrl.href, '_blank')\n    return\n  }\n\n  try {\n    await printImage(certificateUrl)\n  } catch (error) {\n    throw contentError('PrintFailed', error)\n  }\n}\n","/**\n * This util is designed to be used in conjuntion with the hidden-print-container component.\n */\nexport default async function printImage(url: string): Promise<void> {\n  const hiddenPrintContainerId = 'hidden-print-container'\n\n  const printContainer = document.querySelector(`div#${hiddenPrintContainerId}`)\n  if (!printContainer) throw new Error('Missing print container element')\n\n  while (printContainer.firstChild) {\n    printContainer.firstChild.remove()\n  }\n\n  const hiddenImage = document.createElement('img')\n  hiddenImage.src = url\n\n  const printPromise = new Promise<void>((resolve, reject) => {\n    hiddenImage.onload = () => {\n      /**\n       * This (ugly but functional) timeout is the most reliable way to ensure that Safari prints a fully rendered certificate.\n       * The following didn't work:\n       * -------------------------------\n       * await hiddenImage.decode()\n       * resolve()\n       * window.print()\n       * -------------------------------\n       * hiddenImage.decoding = 'sync' // Tried on it's own and incombination with the above\n       * -------------------------------\n       * requestAnimationFrame(() => {\n       *  requestAnimationFrame(() => {\n       *    resolve()\n       *    window.print()\n       *  })\n       * })\n       * -------------------------------\n       */\n      setTimeout(() => {\n        resolve()\n        const hiddenPrintImage = document.querySelector(\n          `div#${hiddenPrintContainerId} > img`,\n        )\n        if (hiddenPrintImage === hiddenImage) window.print()\n      }, 500)\n    }\n    hiddenImage.onerror = () => {\n      reject(new Error('Failed to load image'))\n    }\n  })\n\n  printContainer.appendChild(hiddenImage)\n\n  return printPromise\n}\n","import config from 're-client/config/environment'\n\n/**\n * Returns the accurate spelling based on the configuration. It is possible for the\n * current map to be 13 (backend will return an increment).\n * This will correct the number to be 12 as this is the maximum possible for spelling.\n *\n * @export\n * @param {number} currentMap the student's current spelling map number\n * @returns {Number}\n */\nexport function correctSpellingMap(currentMap) {\n  const lastSpellingMap = config.studentProgress.progress.spelling.lastMap\n  if (currentMap > lastSpellingMap) return lastSpellingMap\n  return currentMap\n}\n\n/**\n * Determines whether a student is on the final lessons map\n *\n * @export\n * @param {number} currentMap the student's current map number\n * @param {number} [lastMap=config.APP.lastMap] the app's final lesson map\n * @returns {Boolean}\n */\nexport function isOnFinalLessonsMap(currentMap, lastMap = config.APP.lastMap) {\n  return parseInt(currentMap, 10) === lastMap\n}\n\n/**\n * Returns the id of the previous map\n *\n * @export\n * @param {number} mapId a map id integer\n * @param {number} [lastMap=config.APP.lastMap] the app's final lesson map\n * @returns {number}\n *\n * This function ensures the returned id is within the valid range for\n * lesson maps. It's always higher than zero, and never higher than\n * the `lastMap` param.\n */\nexport function previousLessonMapId(mapId, lastMap = config.APP.lastMap) {\n  mapId = parseInt(mapId, 10)\n\n  if (mapId > 1) {\n    // Ensures the previous map is always within a valid range\n    return Math.min(mapId - 1, lastMap)\n  }\n  return 1\n}\n\n/**\n * Calculate the map which a lesson belongs to\n *\n * @param {Number | String} lesson\n * @param {Number} lessonsPerMap\n * @returns {Number}\n */\nexport function calculateMap(lesson, lessonsPerMap) {\n  const lessonId = Math.max(1, lesson)\n  return Math.ceil(lessonId / lessonsPerMap)\n}\n","import {\n  BadgeColourEnum,\n  CertificateColourEnum,\n} from 're-client/graphql/graphql'\nimport { calculateMap } from 're-client/utils/progress-tools'\nimport config from 're-client/config/environment'\n\nconst {\n  studentProgress: {\n    progress: {\n      lessons: { lessonsPerMap },\n    },\n  },\n} = config\n\nexport interface LessonQuizResult {\n  lesson: number\n  stars: 1 | 2 | 3\n}\n\nexport interface MapQuizResult {\n  stars: 1 | 2 | 3\n}\n\ninterface Badge {\n  lesson: number\n  colour: BadgeColourEnum\n}\n\ninterface Certificate {\n  map: number\n  colour: CertificateColourEnum\n}\n\ninterface QuizResultsForMapParams {\n  badges: Badge[] | undefined\n  certificates: Certificate[] | undefined\n  currentMap: number\n  quizComplete: boolean\n}\n\ninterface QuizResultsForMap {\n  lessonQuizResults: LessonQuizResult[]\n  mapQuizResult?: MapQuizResult\n}\n\nfunction starsForColour(\n  colour: BadgeColourEnum | CertificateColourEnum,\n): 1 | 2 | 3 {\n  if (colour === BadgeColourEnum.Gold || colour === CertificateColourEnum.Gold)\n    return 3\n  if (\n    colour === BadgeColourEnum.Silver ||\n    colour === CertificateColourEnum.Silver\n  )\n    return 2\n  return 1\n}\n\nexport function getQuizResultsForMap({\n  badges,\n  certificates,\n  currentMap,\n  quizComplete,\n}: QuizResultsForMapParams): QuizResultsForMap {\n  const result: QuizResultsForMap = { lessonQuizResults: [] }\n\n  const badgesForCurrentMap = badges?.filter(\n    (badge) => calculateMap(badge.lesson, lessonsPerMap) === currentMap,\n  )\n\n  if (badgesForCurrentMap?.length) {\n    result.lessonQuizResults = badgesForCurrentMap.map((badge) => ({\n      lesson: badge.lesson,\n      stars: starsForColour(badge.colour),\n    }))\n  }\n\n  if (quizComplete) {\n    const certificateForCurrentMap = certificates?.find(\n      (certificate) => certificate.map === currentMap,\n    )\n\n    if (certificateForCurrentMap) {\n      result.mapQuizResult = {\n        stars: starsForColour(certificateForCurrentMap.colour),\n      }\n    }\n  }\n\n  return result\n}\n","import { getOwner } from '@ember/application'\nimport type LegacyJSONSerializer from 're-client/serializers/legacy-json'\nimport type Model from '@ember-data/model'\nimport type { Snapshot } from '@ember-data/store'\n\nexport interface ToJSONOptions {\n  includeId?: boolean\n}\n\n// Implement our own version of the deprecated `toJSON` method for ember-data Models\n// https://deprecations.emberjs.com/ember-data/v3.x/#toc_record-toJSON\n// This method preserves the camelCase of the model, which is expected by Caper activities\nexport default function toJSON(\n  record: Model,\n  options: ToJSONOptions = {},\n): Record<string, unknown> {\n  const serializer = getOwner(record).lookup(\n    'serializer:legacy-json',\n  ) as LegacyJSONSerializer\n  // ember-data doesn't expose a public API for snapshotting\n  const snapshot = (\n    record as Model & { _createSnapshot(): Snapshot }\n  )._createSnapshot()\n  return serializer.serialize(snapshot, options)\n}\n","import type Transition from '@ember/routing/transition'\n\nexport default function transitionToArray(transition: Transition) {\n  const urlParams = _getParamValuesFromRouteInfo(transition.to)\n\n  return [transition.targetName, ...urlParams]\n}\n\nfunction _getParamValuesFromRouteInfo(\n  routeInfo: Transition['to'],\n): (string | undefined)[] {\n  if (!routeInfo) {\n    return []\n  }\n\n  const parts = _getParamValuesFromRouteInfo(routeInfo.parent)\n\n  const rest = routeInfo.paramNames.map(\n    (paramName) => routeInfo.params[paramName],\n  )\n\n  return [...parts, ...rest]\n}\n","import { get } from '@ember/object'\n\nconst DEFAULT_LOCALE = 'en'\n\nconst TRANSLATIONS = {\n  en: {\n    program: 'Program',\n  },\n\n  'en-gb': {\n    program: 'Programme',\n  },\n}\n\nexport default function translate(\n  translationKey,\n  blakeLocale = DEFAULT_LOCALE,\n  translations = TRANSLATIONS,\n) {\n  const locale = _localeFromBlakeData(blakeLocale)\n  const translationsForLocale = translations[locale]\n  const defaultTranslations = translations[DEFAULT_LOCALE]\n\n  const translated =\n    (translationsForLocale && get(translationsForLocale, translationKey)) ??\n    (defaultTranslations && get(defaultTranslations, translationKey))\n\n  if (!translated) {\n    throw new Error(\n      `No translation for for locale '${locale}' and key '${translationKey}'`,\n    )\n  }\n\n  return translated\n}\n\n// Ported from @blakeelearning/site-copy\n// https://github.com/blake-education/frontend/blob/cb8c4a0a5b44bb37ae1c2453e7b8405aa2159835/packages/site-copy/addon/utils/language.ts\n// This allows us to avoid depending on site-copy, which drags ~100KB of extra JS\n// into our app bundle.\nfunction _localeFromBlakeData(blakeLocale) {\n  const locale = blakeLocale?.toLowerCase()\n  const languageKey = locale || DEFAULT_LOCALE\n\n  return (\n    {\n      en: 'en',\n      in: 'en-gb',\n      uk: 'en-gb',\n      gb: 'en-gb',\n    }[languageKey] ?? DEFAULT_LOCALE\n  )\n}\n","import ky, { HTTPError } from 'ky'\nimport { debug } from '@ember/debug'\nimport { isTesting, macroCondition } from '@embroider/macros'\n\ninterface ProblemDetails {\n  type: string\n  title: string\n  status: number\n  instance?: string\n  detail?: string\n  [key: string]: unknown\n}\n\ninterface UploadSvgWithRetriesOptions {\n  svgString: string\n  /** The number of times to retry the upload if the uploadUrl has expired. Defaults to 2. */\n  expiryRetries?: number\n  /** Fetches a fresh uploadUrl. Called once up-front, and again on each expired-url retry. */\n  fetchUploadUrl: () => Promise<string>\n}\n\n/**\n * A recursive function that will attempt to upload an SVG string.\n * On each call it will fetch a fresh uploadUrl and then use it to send a PUT request with the SVG string.\n * ky will retry 3 times for network error and also for some 4xx and 5xx HTTP errors.\n * If the upload fails because the uploadUrl has expired and we still have expiry retries remaining the function will be triggered again.\n * @returns A Promise that resolves with the response from the server if the upload is successful.\n * @throws If the upload fails after all retries have been exhausted or if an unknown error occurs.\n */\nexport default async function uploadSvgWithRetries({\n  svgString,\n  expiryRetries = 2,\n  fetchUploadUrl,\n}: UploadSvgWithRetriesOptions): Promise<Response> {\n  const uploadUrl = await fetchUploadUrl()\n  try {\n    const response = await ky.put(uploadUrl, {\n      headers: {\n        'content-type': 'image/svg+xml',\n      },\n      body: svgString,\n      retry: {\n        limit: 3,\n        methods: ['put'],\n        statusCodes: [408, 429, 500, 502, 503, 504], // Omitting 413 (Payload Too Large) from the ky defaults. We also do not retry 410 (Gone) as this indicates an expired url which explicitly handled in the catch block below.\n        // This prevents retries from slowing down tests. Note: backoffLimit must be >0 -\n        // ky treats a computed delay of exactly 0 as \"stop retrying\" (see ky's Ky.js#_retry).\n        ...(macroCondition(isTesting()) ? { backoffLimit: 1 } : {}),\n      },\n    })\n    return response\n  } catch (error) {\n    if (\n      error instanceof HTTPError &&\n      error.response.headers\n        .get('content-type')\n        ?.match(/application\\/problem\\+json/)\n    ) {\n      const problem = (await error.response.json()) as ProblemDetails\n      if (!!/expired_url/.exec(problem.type) && expiryRetries > 0) {\n        debug(\n          `${problem.detail ?? 'URL Expired'} Retrying ${expiryRetries} more times...`,\n        )\n        return uploadSvgWithRetries({\n          svgString,\n          expiryRetries: expiryRetries - 1,\n          fetchUploadUrl,\n        })\n      }\n    }\n\n    throw error\n  }\n}\n","import { WeekId } from 're-client/utils/weekly-poll/week-id'\nimport type { CaperPoll } from 're-client/services/weekly-poll'\n\nexport function fixedResponseFirstWeekVoted(): CaperPoll {\n  const id = new WeekId(1)\n  return {\n    studentVotedToday: true,\n    studentVotedAnswer: 1,\n    results: [\n      {\n        id: id.current(),\n        totalVotesCount: 111,\n        votedAnswersCount: [1, 2, 3, 4],\n      },\n      {\n        id: id.prev(),\n        totalVotesCount: 111,\n        votedAnswersCount: [100, 200, 300, 400],\n      },\n      {\n        id: id.prev(),\n        totalVotesCount: 111,\n        votedAnswersCount: [200, 300, 400, 500],\n      },\n    ],\n  }\n}\n\nexport function fixedResponseLastWeekVoted(): CaperPoll {\n  const id = new WeekId(48)\n  return {\n    studentVotedToday: true,\n    studentVotedAnswer: 2,\n    results: [\n      {\n        id: id.current(),\n        totalVotesCount: 111,\n        votedAnswersCount: [1, 2, 3, 4],\n      },\n      {\n        id: id.prev(),\n        totalVotesCount: 111,\n        votedAnswersCount: [100, 200, 300, 400],\n      },\n      {\n        id: id.prev(),\n        totalVotesCount: 111,\n        votedAnswersCount: [200, 300, 400, 500],\n      },\n    ],\n  }\n}\n\nexport function fixedResponseNotVoted(): CaperPoll {\n  const id = new WeekId(5)\n  return {\n    studentVotedToday: false,\n    studentVotedAnswer: null,\n    results: [\n      {\n        id: id.current(),\n        totalVotesCount: 111,\n        votedAnswersCount: [1, 2, 3, 4],\n      },\n      {\n        id: id.prev(),\n        totalVotesCount: 111,\n        votedAnswersCount: [100, 200, 300, 400],\n      },\n      {\n        id: id.prev(),\n        totalVotesCount: 111,\n        votedAnswersCount: [200, 300, 400, 500],\n      },\n    ],\n  }\n}\n\nexport function fixedResponseZeroVotes(): CaperPoll {\n  const id = new WeekId(5)\n  return {\n    studentVotedToday: false,\n    studentVotedAnswer: null,\n    results: [\n      { id: id.current(), totalVotesCount: 0, votedAnswersCount: [0, 0, 0, 0] },\n      { id: id.prev(), totalVotesCount: 0, votedAnswersCount: [0, 0, 0, 0] },\n      { id: id.prev(), totalVotesCount: 0, votedAnswersCount: [0, 0, 0, 0] },\n    ],\n  }\n}\n\nexport function fixedResponseNoPreviousWeekData(): CaperPoll {\n  const id = new WeekId(5)\n  return {\n    studentVotedToday: false,\n    studentVotedAnswer: null,\n    results: [\n      {\n        id: id.current(),\n        totalVotesCount: 10,\n        votedAnswersCount: [1, 2, 3, 4],\n      },\n      { id: id.prev(), totalVotesCount: 0, votedAnswersCount: [0, 0, 0, 0] },\n      { id: id.prev(), totalVotesCount: 0, votedAnswersCount: [0, 0, 0, 0] },\n    ],\n  }\n}\n\nexport const fixtureFunctions = {\n  fixedResponseZeroVotes,\n  fixedResponseNotVoted,\n  fixedResponseFirstWeekVoted,\n  fixedResponseLastWeekVoted,\n  fixedResponseNoPreviousWeekData,\n}\n\nexport type FixtureFunctionKey = keyof typeof fixtureFunctions\n","const MIN = 1\nconst MAX = 48\n\n/**\n * NOTE: Only used for staging and development purposes\n * This helper class creates an object which stores are range of number of a range 1 - 48\n * and provides next prev and current functions to retrieve a weekid\n *\n * Rules:\n * - week must be >= 1 and week must my <= 48\n *\n * @example\n *  const weekId = new WeekId()\n *  weekId.current() // 1\n *  weekId.next() // 2\n *  weekId.prev() // 1\n *  weekId.prev() // 48\n *\n * @class WeekId\n */\nexport class WeekId {\n  /**\n   *\n   * @param current\n   */\n  constructor(current = 1) {\n    this.max = MAX\n    this.min = MIN\n\n    if (current < this.min) current = MIN\n    if (current > this.max) current = MAX\n\n    this.currentIndex = current - 1\n\n    const data = [...Array(this.max + 1).keys()]\n    data.shift()\n    this.data = data\n  }\n\n  current() {\n    return String(this.data[this.currentIndex])\n  }\n\n  next() {\n    this.currentIndex =\n      this.currentIndex === this.max - 1 ? 0 : this.currentIndex + 1\n    return this.current()\n  }\n\n  prev() {\n    this.currentIndex =\n      this.currentIndex === 0 ? this.max - 1 : this.currentIndex - 1\n    return this.current()\n  }\n}\n","define('re-client/config/environment', [], function() {\n  var prefix = 're-client';\ntry {\n  var metaName = prefix + '/config/environment';\n  var rawConfig = document.querySelector('meta[name=\"' + metaName + '\"]').getAttribute('content');\n  var config = JSON.parse(decodeURIComponent(rawConfig));\n\n  var exports = { 'default': config };\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n}\ncatch(err) {\n  throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n});\n","\n          if (!runningTests) {\n            require(\"re-client/app\")[\"default\"].create({\"apollo\":{},\"product\":\"re\",\"emberGitSha\":\"123\",\"assetHost\":\"https://assets.static.readingeggs.com\",\"enableMessengerLogging\":false,\"timeOnTaskUrl\":\"http://localhost:4007\",\"routeTaskIds\":{\"avatar\":[\"changing-room\",\"worlds.world.home-base.changing-room\"],\"awards\":[\"awards\",\"worlds.world.home-base.awards\"],\"critters\":[\"critters\"],\"dashboard\":[\"index\"],\"driving_tests\":[\"driving-tests\"],\"games\":[\"games\"],\"house\":[\"house\",\"bookcase\"],\"lessons\":[\"lessons\",\"reader\",\"worlds.world.map\",\"worlds.world.map-quiz\",\"worlds.world.lessons\",\"worlds.world.certificate\"],\"my_program\":[\"my-program\",\"bookshelf\"],\"playroom\":[\"play\"],\"puzzle_park\":[\"puzzles\"],\"shop\":[\"shop\",\"worlds.world.home-base.shop\"],\"plaza\":[\"plaza\"],\"songs\":[\"songs\"],\"spelling\":[\"spelling\"],\"story_factory\":[\"story-factory\"],\"storylands\":[\"storylands\"],\"worlds_activity_area\":[\"worlds.world.activity-area\"],\"worlds_book_area\":[\"worlds.world.book-area\"],\"worlds_dashboard\":[\"worlds.world.index\"],\"worlds_games_area\":[\"worlds.world.games-area\"],\"worlds_home_base\":[\"worlds.world.home-base\"],\"worlds_music_area\":[\"worlds.world.music-area\"]},\"apiNamespace\":\"api/v1\",\"lastMap\":13,\"lastSpellingMap\":12,\"lastSpellingLesson\":96,\"lastLessonsLesson\":120,\"lastStorylandsLesson\":20,\"loginUrl\":\"/login\",\"logoutUrl\":\"/logout\",\"minLevels\":{\"games\":1,\"awards\":1,\"drivingTests\":40,\"house\":1,\"puzzles\":1,\"shop\":1,\"plaza\":1,\"spelling\":40,\"storyFactory\":10,\"storylands\":60},\"name\":\"re-client\",\"version\":\"0.22.10+95a32648\"});\n          }\n        \n"],"mappings":"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AC,EACVgsB,YAAa,wCACd,I;UCHc,CACbL,mBAAmB,EAAAM,SAAM,IAAKz6C,GAAM,CAClC,CACE3F,GAAE,mCAAAZ,OAAqCuG,GACvCxG,KAAI,mCAAAC,OAAqCuG,GACzCo6C,UACE,+IACF12B,OAAQ,MAEV,CACErpB,GAAE,4BAAAZ,OAA8BuG,GAChCxG,KAAI,4BAAAC,OAA8BuG,GAClCo6C,UACE,kIACF12B,OAAQ,MAEV,CACErpB,GAAE,qBAAAZ,OAAuBuG,GACzBxG,KAAI,qBAAAC,OAAuBuG,GAC3Bo6C,UACE,oHACF12B,OAAQ,MAEV,CACErpB,GAAE,kCAAAZ,OAAoCuG,GACtCxG,KAAI,kCAAAC,OAAoCuG,GACxCo6C,UACE,8IACF12B,OAAQ,SAETg3B,OACHC,WAAY,GACb,I;UClCc,CACb,CACEtgD,GAAI,aACJg+C,YAAa,aACb3oC,MAAO,IAET,CACErV,GAAI,eACJg+C,YAAa,eACb3oC,MAAO,IAET,CACErV,GAAI,eACJg+C,YAAa,eACb3oC,MAAO,IAET,CACErV,GAAI,eACJg+C,YAAa,eACb3oC,MAAO,IAET,CACErV,GAAI,gBACJg+C,YAAa,gBACb3oC,MAAO,IAET,CACErV,GAAI,iBACJg+C,YAAa,iBACb3oC,MAAO,IAET,CACErV,GAAI,cACJg+C,YAAa,cACb3oC,MAAO,IAET,CACErV,GAAI,mBACJg+C,YAAa,mBACb3oC,MAAO,IAET,CACErV,GAAI,YACJg+C,YAAa,YACb3oC,MAAO,IAET,CACErV,GAAI,UACJg+C,YAAa,UACb3oC,MAAO,IAET,CACErV,GAAI,UACJg+C,YAAa,UACb3oC,MAAO,IAET,CACErV,GAAI,cACJg+C,YAAa,cACb3oC,MAAO,KAET,CACErV,GAAI,YACJg+C,YAAa,YACb3oC,MAAO,IAET,CACErV,GAAI,cACJg+C,YAAa,cACb3oC,MAAO,IAET,CACErV,GAAI,aACJg+C,YAAa,aACb3oC,MAAO,IAET,CACErV,GAAI,WACJg+C,YAAa,WACb3oC,MAAO,IAET,CACErV,GAAI,aACJg+C,YAAa,aACb3oC,MAAO,IAET,CAC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AUuG,GACdg+B,SAAU,EACV+e,cAAe,GAEjB,CACEnyB,KAAM,YACNoT,SAAU,EACV+e,cAAe,GAEjB,CACEnyB,KAAM,YACNoT,SAAU,EACV+e,cAAe,GAEjB,CACEnyB,KAAM,YACNoT,SAAU,EACV+e,cAAe,GAEjB,CACEnyB,KAAM,YACNoT,SAAU,EACV+e,cAAe,GAEjB,CACEnyB,KAAM,YACNoT,SAAU,EACV+e,cAAe,GAEjB,CACEnyB,KAAM,YACNoT,SAAU,EACV+e,cAAe,IAGnBK,QAAS,CACP,CACE7hB,OAAQ,UAMpBqd,OAAQ,CACN,wFACA,wFACA,wFACA,wFACA,wFACA,wFACA,wFACA,wFACA,wFACA,2FAGL,I;UCvJc,CACbpqB,QAAS,CACP3qB,UAAW,CACTw5C,QAAS,CACPhjD,GAAI,IACJqI,KAAM,UACNi6C,SAAU,aACVC,OAAQ,KACR38B,MAAO,OACP+8B,MAAO,CACL,OACA,UACA,MACA,SACA,OACA,SACA,QACA,WACA,SACA,SACA,SACA,SACA,QACA,QACA,WACA,QACA,QACA,SACA,QACA,QAEFpE,OAAQ,CACN,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,cAEFqE,UAAW,KAGfrE,OAAQ,CACN,wFACA,wFACA,wFACA,wFACA,wFACA,wFACA,wFACA,wFACA,wFACA,2FAGL,I;UC3Dc,CACb/nC,MAAO,CACL,CACExW,GAAI,EACJb,KAAM,UACNuU,WAAY,OACZkS,MAAO,KACP62B,UAAW,KACXC,cAAe,KACfC,eAAgB,MAElB,CACE38C,GAAI,EACJb,KAAM,UACNuU,WAAY,OACZkS,MAAO,KACP62B,UAAW,KACXC,cAAe,KACfC,eAAgB,MAElB,CACE38C,GAAI,EACJb,KAAM,yBACNuU,WAAY,YACZkS,MAAO,KACP62B,UACE,0FACFC,cAAe,KACfC,eAAgB,OAGrB,I;AClBD,MAAMsG,EAAQ,CACZ,uCACA,kNACA,+CACAp5B,KAAK,KAEMq5B,EAAgBA,IAAM,CACjCC,OAAKC,KAAK,4BAA4B,IAC7BC,eAAaC,KAAK,CACvBC,MAAO,CACL,CAC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"}