{"version":3,"file":"app.d224c885a37f5970169c.js","mappings":"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","sources":["webpack://@edx/frontend-app-learning/./src/course-home/data/api.js","webpack://@edx/frontend-app-learning/./src/course-home/data/slice.js","webpack://@edx/frontend-app-learning/./src/course-home/data/thunks.js","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/certificate-status/messages.js","webpack://@edx/frontend-app-learning/./src/courseware/data/api.js","webpack://@edx/frontend-app-learning/./src/courseware/data/selectors.js","webpack://@edx/frontend-app-learning/./src/courseware/data/slice.js","webpack://@edx/frontend-app-learning/./src/courseware/data/thunks.js","webpack://@edx/frontend-app-learning/./src/data/localStorage.js","webpack://@edx/frontend-app-learning/./src/generic/messages.js","webpack://@edx/frontend-app-learning/./src/generic/model-store/hooks.js","webpack://@edx/frontend-app-learning/./src/generic/model-store/slice.js","webpack://@edx/frontend-app-learning/./src/generic/tabs/useWindowSize.js","webpack://@edx/frontend-app-learning/./src/generic/upgrade-button/messages.js","webpack://@edx/frontend-app-learning/./src/generic/upgrade-button/FormattedPricing.jsx","webpack://@edx/frontend-app-learning/./src/generic/upgrade-button/UpgradeButton.jsx","webpack://@edx/frontend-app-learning/./src/generic/upgrade-button/UpgradeNowButton.jsx","webpack://@edx/frontend-app-learning/./src/generic/user-messages/UserMessagesContext.js","webpack://@edx/frontend-app-learning/./src/generic/user-messages/AlertList.jsx","webpack://@edx/frontend-app-learning/./src/generic/user-messages/hooks.js","webpack://@edx/frontend-app-learning/./src/utils.js","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/alerts/certificate-status-alert/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/alerts/certificate-status-alert/CertificateStatusAlert.jsx","webpack://@edx/frontend-app-learning/./src/generic/user-messages/Alert.jsx","webpack://@edx/frontend-app-learning/./src/generic/user-messages/UserMessagesProvider.jsx","webpack://@edx/frontend-app-learning/./src/i18n/index.jsx","webpack://@edx/frontend-app-learning/./src/course-home/dates-tab/utils.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/DateSummary.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/widgets/CourseDates.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/widgets/CourseGoalCard.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/LmsHtmlFragment.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/widgets/CourseHandouts.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/widgets/CourseRevision.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/widgets/CourseTools.jsx","webpack://@edx/frontend-app-learning/./src/shared/effort-estimate/messages.js","webpack://@edx/frontend-app-learning/./src/shared/effort-estimate/EffortEstimate.jsx","webpack://@edx/frontend-app-learning/./src/shared/effort-estimate/index.js","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/SequenceLink.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/Section.jsx","webpack://@edx/frontend-app-learning/./src/course-home/suggested-schedule-messaging/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/suggested-schedule-messaging/ShiftDatesAlert.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/widgets/UpdateGoalSelector.jsx","webpack://@edx/frontend-app-learning/./src/generic/upgrade-notification/UpgradeNotification.jsx","webpack://@edx/frontend-app-learning/./src/course-home/suggested-schedule-messaging/UpgradeToShiftDatesAlert.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/alerts/certificate-status-alert/hooks.js","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/alerts/course-end-alert/hooks.js","webpack://@edx/frontend-app-learning/./src/alerts/course-start-alert/hooks.js","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/alerts/private-course-alert/hooks.js","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/alerts/scheduled-content-alert/hooks.js","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/widgets/WelcomeMessage.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/widgets/ProctoringInfoPanel.jsx","webpack://@edx/frontend-app-learning/./src/alerts/logistration-alert/AccountActivationAlert.jsx","webpack://@edx/frontend-app-learning/./src/generic/PageLoading.jsx","webpack://@edx/frontend-app-learning/./src/experiments/mm-p2p/BlockModal.jsx","webpack://@edx/frontend-app-learning/./src/experiments/mm-p2p/Sidecard.jsx","webpack://@edx/frontend-app-learning/./src/experiments/mm-p2p/Flyover.jsx","webpack://@edx/frontend-app-learning/./src/experiments/mm-p2p/FlyoverMobile.jsx","webpack://@edx/frontend-app-learning/./src/experiments/mm-p2p/FlyoverTriggerIcon.jsx","webpack://@edx/frontend-app-learning/./src/experiments/mm-p2p/utils.jsx","webpack://@edx/frontend-app-learning/./src/experiments/mm-p2p/FlyoverTrigger.jsx","webpack://@edx/frontend-app-learning/./src/experiments/mm-p2p/FlyoverTriggerMobile.jsx","webpack://@edx/frontend-app-learning/./src/experiments/mm-p2p/LockPaywall.jsx","webpack://@edx/frontend-app-learning/./src/experiments/mm-p2p/index.jsx","webpack://@edx/frontend-app-learning/./src/course-home/outline-tab/OutlineTab.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/assets/celebration_456x328.gif","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/assets/celebration_750x540.gif","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/messages.js","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/ProgramCompletion.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/Footnote.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/utils.js","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/DashboardFootnote.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/UpgradeFootnote.jsx","webpack://@edx/frontend-app-learning/./src/courseware/social-share/messages.js","webpack://@edx/frontend-app-learning/./src/courseware/social-share/SocialIcons.jsx","webpack://@edx/frontend-app-learning/./src/shared/links.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/data/slice.js","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/data/api.js","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/data/thunks.js","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/CatalogSuggestion.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/CourseRecommendations.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/CourseCelebration.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/CourseInProgress.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/CourseNonPassing.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/course-exit/CourseExit.jsx","webpack://@edx/frontend-app-learning/./src/tab-page/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/messages.js","webpack://@edx/frontend-app-learning/./src/course-tabs/messages.js","webpack://@edx/frontend-app-learning/./src/generic/tabs/useIndexOfLastVisibleChild.js","webpack://@edx/frontend-app-learning/./src/generic/tabs/Tabs.jsx","webpack://@edx/frontend-app-learning/./src/course-tabs/CourseTabsNavigation.jsx","webpack://@edx/frontend-app-learning/./src/shared/streak-celebration/assets/Streak_mobile.png","webpack://@edx/frontend-app-learning/./src/shared/streak-celebration/assets/Streak_desktop.png","webpack://@edx/frontend-app-learning/./src/shared/streak-celebration/messages.js","webpack://@edx/frontend-app-learning/./src/shared/streak-celebration/StreakCelebrationModal.jsx","webpack://@edx/frontend-app-learning/./src/shared/streak-celebration/utils.jsx","webpack://@edx/frontend-app-learning/./src/instructor-toolbar/masquerade-widget/messages.js","webpack://@edx/frontend-app-learning/./src/instructor-toolbar/masquerade-widget/MasqueradeUserNameInput.jsx","webpack://@edx/frontend-app-learning/./src/instructor-toolbar/masquerade-widget/MasqueradeWidgetOption.jsx","webpack://@edx/frontend-app-learning/./src/instructor-toolbar/masquerade-widget/data/api.js","webpack://@edx/frontend-app-learning/./src/instructor-toolbar/masquerade-widget/MasqueradeWidget.jsx","webpack://@edx/frontend-app-learning/./src/instructor-toolbar/masquerade-widget/index.js","webpack://@edx/frontend-app-learning/./src/alerts/access-expiration-alert/hooks.js","webpack://@edx/frontend-app-learning/./src/instructor-toolbar/InstructorToolbar.jsx","webpack://@edx/frontend-app-learning/./src/alerts/enrollment-alert/hooks.js","webpack://@edx/frontend-app-learning/./src/alerts/logistration-alert/hooks.js","webpack://@edx/frontend-app-learning/./src/tab-page/LoadedTabPage.jsx","webpack://@edx/frontend-app-learning/./src/tab-page/TabPage.jsx","webpack://@edx/frontend-app-learning/./src/shared/access.js","webpack://@edx/frontend-app-learning/./src/tab-page/TabContainer.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/course-license/messages.js","webpack://@edx/frontend-app-learning/./src/courseware/course/course-license/CourseLicense.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/messages.js","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/hidden-after-due/messages.js","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/hidden-after-due/HiddenAfterDue.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/sequence-navigation/UnitIcon.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/sequence-navigation/CompleteIcon.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/bookmark/BookmarkFilledIcon.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/sequence-navigation/UnitButton.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/sequence-navigation/SequenceNavigationDropdown.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/sequence-navigation/SequenceNavigationTabs.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/sequence-navigation/hooks.js","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/sequence-navigation/messages.js","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/sequence-navigation/SequenceNavigation.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/sequence-navigation/UnitNavigationEffortEstimate.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/sequence-navigation/UnitNavigation.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/bookmark/BookmarkOutlineIcon.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/bookmark/data/api.js","webpack://@edx/frontend-app-learning/./src/courseware/course/bookmark/data/thunks.js","webpack://@edx/frontend-app-learning/./src/courseware/course/bookmark/BookmarkButton.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/Unit.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/SequenceContent.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/messages.js","webpack://@edx/frontend-app-learning/./src/courseware/course/NotificationTray.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/NotificationIcon.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/NotificationTrigger.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/sequence/Sequence.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/celebration/assets/claps_280x201.gif","webpack://@edx/frontend-app-learning/./src/courseware/course/celebration/assets/claps_456x328.gif","webpack://@edx/frontend-app-learning/./src/courseware/course/celebration/messages.js","webpack://@edx/frontend-app-learning/./src/courseware/course/celebration/data/api.js","webpack://@edx/frontend-app-learning/./src/courseware/course/celebration/utils.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/celebration/CelebrationModal.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/content-tools/calculator/messages.js","webpack://@edx/frontend-app-learning/./src/courseware/course/content-tools/calculator/Calculator.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/content-tools/calculator/index.js","webpack://@edx/frontend-app-learning/./src/courseware/course/content-tools/notes-visibility/messages.js","webpack://@edx/frontend-app-learning/./src/courseware/course/content-tools/notes-visibility/NotesVisibility.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/content-tools/notes-visibility/index.js","webpack://@edx/frontend-app-learning/./src/courseware/course/content-tools/ContentTools.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/content-tools/index.js","webpack://@edx/frontend-app-learning/./src/courseware/course/JumpNavMenuItem.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/CourseBreadcrumbs.jsx","webpack://@edx/frontend-app-learning/./src/courseware/course/Course.jsx","webpack://@edx/frontend-app-learning/./src/courseware/CoursewareContainer.jsx","webpack://@edx/frontend-app-learning/./src/courseware/CoursewareRedirect.jsx","webpack://@edx/frontend-app-learning/./src/courseware/CoursewareRedirectLandingPage.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/badge-header/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/logos.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/badge-header/BadgeTabsNavigation.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/assets/logo-badgr-black.svg","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/badge-progress/banner/BadgeProgressBanner.jsx","webpack://@edx/frontend-app-learning/./src/utils/empty.js","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/badge-progress/card/BadgeProgressCardStatus.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/assets/logo-badgr-white.svg","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/badge-progress/card/BadgeProgressCardDetailsModal.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/badge-progress/card/BadgeProgressCard.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/badge-progress/course-list/BadgeProgressCourseListTableHeaderRow.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/badge-progress/course-list/BadgeProgressCourseListTableCell.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/badge-progress/course-list/BadgeProgressCourseListTableRow.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/badge-progress/course-list/BadgeProgressCourseListTable.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/badge-progress/course-list/BadgeProgressCourseList.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/utils.js","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/BadgeProgressTab.jsx","webpack://@edx/frontend-app-learning/./src/course-home/badges-tab/BadgeLeaderboardTab.jsx","webpack://@edx/frontend-app-learning/./src/course-home/dates-tab/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/dates-tab/timeline/badgelist.jsx","webpack://@edx/frontend-app-learning/./src/course-home/dates-tab/timeline/Day.jsx","webpack://@edx/frontend-app-learning/./src/course-home/dates-tab/timeline/Timeline.jsx","webpack://@edx/frontend-app-learning/./src/course-home/suggested-schedule-messaging/SuggestedScheduleHeader.jsx","webpack://@edx/frontend-app-learning/./src/course-home/suggested-schedule-messaging/UpgradeToCompleteAlert.jsx","webpack://@edx/frontend-app-learning/./src/course-home/dates-tab/DatesTab.jsx","webpack://@edx/frontend-app-learning/./src/course-home/goal-unsubscribe/unsubscribe.svg","webpack://@edx/frontend-app-learning/./src/course-home/dates-tab/index.jsx","webpack://@edx/frontend-app-learning/./src/course-home/goal-unsubscribe/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/goal-unsubscribe/ResultPage.jsx","webpack://@edx/frontend-app-learning/./src/course-home/goal-unsubscribe/GoalUnsubscribe.jsx","webpack://@edx/frontend-app-learning/./src/course-home/goal-unsubscribe/index.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/certificate-status/CertificateStatus.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/course-completion/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/course-completion/CompleteDonutSegment.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/course-completion/IncompleteDonutSegment.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/course-completion/LockedDonutSegment.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/course-completion/CompletionDonutChart.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/course-completion/CourseCompletion.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/course-grade/GradeRangeTooltip.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/course-grade/CourseGradeFooter.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/course-grade/CourseGradeHeader.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/course-grade/CurrentGradeTooltip.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/course-grade/PassingGradeTooltip.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/course-grade/GradeBar.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/course-grade/CourseGrade.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/detailed-grades/ProblemScoreDrawer.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/detailed-grades/SubsectionTitleCell.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/detailed-grades/DetailedGradesTable.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/detailed-grades/DetailedGrades.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/grade-summary/GradeSummaryHeader.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/grade-summary/AssignmentTypeCell.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/grade-summary/DroppableAssignmentFootnote.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/grade-summary/GradeSummaryTableFooter.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/grade-summary/GradeSummaryTable.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/grades/grade-summary/GradeSummary.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/ProgressHeader.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/related-links/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/related-links/RelatedLinks.jsx","webpack://@edx/frontend-app-learning/./src/course-home/progress-tab/ProgressTab.jsx","webpack://@edx/frontend-app-learning/./src/course-home/glossary-tab/messages.js","webpack://@edx/frontend-app-learning/./src/course-home/glossary-tab/GlossaryTab.jsx","webpack://@edx/frontend-app-learning/./src/course-home/glossary-tab/index.jsx","webpack://@edx/frontend-app-learning/./src/generic/notices/api.js","webpack://@edx/frontend-app-learning/./src/generic/notices/NoticesProvider.jsx","webpack://@edx/frontend-app-learning/./src/index.jsx","webpack://@edx/frontend-app-learning/./src/store.js","webpack://@edx/frontend-app-learning/./src/generic/assets/edX_certificate.png","webpack://@edx/frontend-app-learning/./src/generic/assets/edX_locked_certificate.png","webpack://@edx/frontend-app-learning//openedx/app/node_modules/moment/locale|sync|/^\\.\\/.*$/"],"sourcesContent":["import { camelCaseObject, getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient, getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { logInfo } from '@edx/frontend-platform/logging';\nimport { appendBrowserTimezoneToUrl } from '../../utils';\n\nconst calculateAssignmentTypeGrades = (points, assignmentWeight, numDroppable) => {\n let dropCount = numDroppable;\n // Drop the lowest grades\n while (dropCount && points.length >= dropCount) {\n const lowestScore = Math.min(...points);\n const lowestScoreIndex = points.indexOf(lowestScore);\n points.splice(lowestScoreIndex, 1);\n dropCount--;\n }\n let averageGrade = 0;\n let weightedGrade = 0;\n if (points.length) {\n averageGrade = points.reduce((a, b) => a + b, 0) / points.length;\n weightedGrade = averageGrade * assignmentWeight;\n }\n return { averageGrade, weightedGrade };\n};\n\nfunction normalizeAssignmentPolicies(assignmentPolicies, sectionScores) {\n const gradeByAssignmentType = {};\n assignmentPolicies.forEach(assignment => {\n // Create an array with the number of total assignments and set the scores to 0\n // as placeholders for assignments that have not yet been released\n gradeByAssignmentType[assignment.type] = {\n grades: Array(assignment.numTotal).fill(0),\n numAssignmentsCreated: 0,\n numTotalExpectedAssignments: assignment.numTotal,\n };\n });\n\n sectionScores.forEach((chapter) => {\n chapter.subsections.forEach((subsection) => {\n if (!(subsection.hasGradedAssignment && subsection.showGrades && subsection.numPointsPossible)) {\n return;\n }\n const {\n assignmentType,\n numPointsEarned,\n numPointsPossible,\n } = subsection;\n\n // If a subsection's assignment type does not match an assignment policy in Studio,\n // we won't be able to include it in this accumulation of grades by assignment type.\n // This may happen if a course author has removed/renamed an assignment policy in Studio and\n // neglected to update the subsection's of that assignment type\n if (!gradeByAssignmentType[assignmentType]) {\n return;\n }\n\n let {\n numAssignmentsCreated,\n } = gradeByAssignmentType[assignmentType];\n\n numAssignmentsCreated++;\n if (numAssignmentsCreated <= gradeByAssignmentType[assignmentType].numTotalExpectedAssignments) {\n // Remove a placeholder grade so long as the number of recorded created assignments is less than the number\n // of expected assignments\n gradeByAssignmentType[assignmentType].grades.shift();\n }\n // Add the graded assignment to the list\n gradeByAssignmentType[assignmentType].grades.push(numPointsEarned ? numPointsEarned / numPointsPossible : 0);\n // Record the created assignment\n gradeByAssignmentType[assignmentType].numAssignmentsCreated = numAssignmentsCreated;\n });\n });\n\n return assignmentPolicies.map((assignment) => {\n const { averageGrade, weightedGrade } = calculateAssignmentTypeGrades(\n gradeByAssignmentType[assignment.type].grades,\n assignment.weight,\n assignment.numDroppable,\n );\n\n return {\n averageGrade,\n numDroppable: assignment.numDroppable,\n shortLabel: assignment.shortLabel,\n type: assignment.type,\n weight: assignment.weight,\n weightedGrade,\n };\n });\n}\n\nfunction normalizeCourseHomeCourseMetadata(metadata) {\n const data = camelCaseObject(metadata);\n return {\n ...data,\n tabs: data.tabs.map(tab => ({\n // The API uses \"courseware\" as a slug for both courseware and the outline tab. We switch it to \"outline\" here for\n // use within the MFE to differentiate between course home and courseware.\n slug: tab.tabId === 'courseware' ? 'outline' : tab.tabId,\n title: tab.title,\n url: tab.url,\n })),\n isMasquerading: data.originalUserIsStaff && !data.isStaff,\n };\n}\n\nexport function normalizeOutlineBlocks(courseId, blocks) {\n const models = {\n courses: {},\n sections: {},\n sequences: {},\n };\n Object.values(blocks).forEach(block => {\n switch (block.type) {\n case 'course':\n models.courses[block.id] = {\n id: courseId,\n title: block.display_name,\n sectionIds: block.children || [],\n hasScheduledContent: block.has_scheduled_content,\n };\n break;\n\n case 'chapter':\n models.sections[block.id] = {\n badgeProgress: block.badge_progress,\n complete: block.complete,\n id: block.id,\n title: block.display_name,\n resumeBlock: block.resume_block,\n sequenceIds: block.children || [],\n };\n break;\n\n case 'sequential':\n models.sequences[block.id] = {\n complete: block.complete,\n description: block.description,\n due: block.due,\n effortActivities: block.effort_activities,\n effortTime: block.effort_time,\n icon: block.icon,\n id: block.id,\n legacyWebUrl: block.legacy_web_url,\n // The presence of an legacy URL for the sequence indicates that we want this\n // sequence to be a clickable link in the outline (even though, if the new\n // courseware experience is active, we will ignore `legacyWebUrl` and build a\n // link to the MFE ourselves).\n showLink: !!block.legacy_web_url,\n title: block.display_name,\n };\n break;\n\n default:\n logInfo(`Unexpected course block type: ${block.type} with ID ${block.id}. Expected block types are course, chapter, and sequential.`);\n }\n });\n\n // Next go through each list and use their child lists to decorate those children with a\n // reference back to their parent.\n Object.values(models.courses).forEach(course => {\n if (Array.isArray(course.sectionIds)) {\n course.sectionIds.forEach(sectionId => {\n const section = models.sections[sectionId];\n section.courseId = course.id;\n });\n }\n });\n\n Object.values(models.sections).forEach(section => {\n if (Array.isArray(section.sequenceIds)) {\n section.sequenceIds.forEach(sequenceId => {\n if (sequenceId in models.sequences) {\n models.sequences[sequenceId].sectionId = section.id;\n } else {\n logInfo(`Section ${section.id} has child block ${sequenceId}, but that block is not in the list of sequences.`);\n }\n });\n }\n });\n\n return models;\n}\n\nexport async function getCourseHomeCourseMetadata(courseId) {\n let url = `${getConfig().LMS_BASE_URL}/api/course_home/course_metadata/${courseId}`;\n url = appendBrowserTimezoneToUrl(url);\n const { data } = await getAuthenticatedHttpClient().get(url);\n return normalizeCourseHomeCourseMetadata(data);\n}\n\nexport async function getBadgeProgressTabData(courseId) {\n const { administrator, username } = getAuthenticatedUser();\n const getProgressApiEndPoint = () => (\n administrator\n ? `${getConfig().LMS_BASE_URL}/api/badges/v1/progress/${courseId}`\n : `${getConfig().LMS_BASE_URL}/api/badges/v1/progress/${courseId}/user/${username}`\n );\n\n try {\n const { data } = await getAuthenticatedHttpClient().get(getProgressApiEndPoint());\n return camelCaseObject(data);\n } catch (error) {\n const { httpErrorStatus } = error && error.customAttributes;\n if (httpErrorStatus === 404) {\n global.location.replace(`${getConfig().LMS_BASE_URL}/courses/${courseId}/badges/progress`);\n return {};\n }\n if (httpErrorStatus === 401) {\n // The backend sends this for unenrolled and unauthenticated learners, but we handle those cases by examining\n // courseAccess in the metadata call, so just ignore this status for now.\n return {};\n }\n throw error;\n }\n}\n\nexport async function getBadgeLeaderboardTabData(courseId) {\n // Todo: Need to define an Badge Leaderboard API endpoint for the LMS\n // and return the result.\n const url = `${getConfig().LMS_BASE_URL}/api/badges/v1/leaderboard/courses/${courseId}`;\n try {\n const { data } = await getAuthenticatedHttpClient().get(url);\n return camelCaseObject(data);\n } catch (error) {\n const { httpErrorStatus } = error && error.customAttributes;\n if (httpErrorStatus === 404) {\n // global.location.replace(`${getConfig().LMS_BASE_URL}/courses/${courseId}/badges/progress`);\n return {};\n }\n throw error;\n }\n}\n\n// For debugging purposes, you might like to see a fully loaded dates tab.\n// Just uncomment the next few lines and the immediate 'return' in the function below\n// import { Factory } from 'rosie';\n// import './__factories__';\n\nexport async function getDatesTabData(courseId) {\n // return camelCaseObject(Factory.build('datesTabData'));\n const url = `${getConfig().LMS_BASE_URL}/api/course_home/dates/${courseId}`;\n try {\n const { data } = await getAuthenticatedHttpClient().get(url);\n return camelCaseObject(data);\n } catch (error) {\n const { httpErrorStatus } = error && error.customAttributes;\n if (httpErrorStatus === 404) {\n global.location.replace(`${getConfig().LMS_BASE_URL}/courses/${courseId}/dates`);\n return {};\n }\n if (httpErrorStatus === 401) {\n // The backend sends this for unenrolled and unauthenticated learners, but we handle those cases by examining\n // courseAccess in the metadata call, so just ignore this status for now.\n return {};\n }\n throw error;\n }\n}\n\nexport async function getProgressTabData(courseId, targetUserId) {\n let url = `${getConfig().LMS_BASE_URL}/api/course_home/progress/${courseId}`;\n\n // If targetUserId is passed in, we will get the progress page data\n // for the user with the provided id, rather than the requesting user.\n if (targetUserId) {\n url += `/${targetUserId}/`;\n }\n\n try {\n const { data } = await getAuthenticatedHttpClient().get(url);\n const camelCasedData = camelCaseObject(data);\n\n camelCasedData.gradingPolicy.assignmentPolicies = normalizeAssignmentPolicies(\n camelCasedData.gradingPolicy.assignmentPolicies,\n camelCasedData.sectionScores,\n );\n\n // Accumulate the weighted grades by assignment type to calculate the learner facing grade. The grades within\n // assignmentPolicies have been filtered by what's visible to the learner.\n camelCasedData.courseGrade.visiblePercent = camelCasedData.gradingPolicy.assignmentPolicies\n ? camelCasedData.gradingPolicy.assignmentPolicies.reduce(\n (accumulator, assignment) => accumulator + assignment.weightedGrade, 0,\n ) : camelCasedData.courseGrade.percent;\n\n camelCasedData.courseGrade.isPassing = camelCasedData.courseGrade.visiblePercent\n >= Math.min(...Object.values(data.grading_policy.grade_range));\n\n // We replace gradingPolicy.gradeRange with the original data to preserve the intended casing for the grade.\n // For example, if a grade range key is \"A\", we do not want it to be camel cased (i.e. \"A\" would become \"a\")\n // in order to preserve a course team's desired grade formatting.\n camelCasedData.gradingPolicy.gradeRange = data.grading_policy.grade_range;\n\n camelCasedData.gradesFeatureIsFullyLocked = camelCasedData.completionSummary.lockedCount > 0;\n\n camelCasedData.gradesFeatureIsPartiallyLocked = false;\n if (camelCasedData.gradesFeatureIsFullyLocked) {\n camelCasedData.sectionScores.forEach((chapter) => {\n chapter.subsections.forEach((subsection) => {\n // If something is eligible to be gated by content type gating and would show up on the progress page\n if (subsection.assignmentType !== null && subsection.hasGradedAssignment && subsection.showGrades\n && (subsection.numPointsPossible > 0 || subsection.numPointsEarned > 0)) {\n // but the learner still has access to it, then we are in a partially locked, rather than fully locked state\n // since the learner has access to some (but not all) content that would normally be locked\n if (subsection.learnerHasAccess) {\n camelCasedData.gradesFeatureIsPartiallyLocked = true;\n camelCasedData.gradesFeatureIsFullyLocked = false;\n }\n }\n });\n });\n }\n\n return camelCasedData;\n } catch (error) {\n const { httpErrorStatus } = error && error.customAttributes;\n if (httpErrorStatus === 404) {\n global.location.replace(`${getConfig().LMS_BASE_URL}/courses/${courseId}/progress`);\n return {};\n }\n if (httpErrorStatus === 401) {\n // The backend sends this for unenrolled and unauthenticated learners, but we handle those cases by examining\n // courseAccess in the metadata call, so just ignore this status for now.\n return {};\n }\n throw error;\n }\n}\n\nexport async function getGlossaryTabData(courseId) {\n const url = `${getConfig().LMS_BASE_URL}/api/course_home/glossary/${courseId}`;\n try {\n const { data } = await getAuthenticatedHttpClient().get(url);\n return camelCaseObject(data);\n } catch (error) {\n const { httpErrorStatus } = error && error.customAttributes;\n if (httpErrorStatus === 404) {\n global.location.replace(`${getConfig().LMS_BASE_URL}/courses/${courseId}/glossary`);\n return {};\n }\n if (httpErrorStatus === 401) {\n // The backend sends this for unenrolled and unauthenticated learners, but we handle those cases by examining\n // courseAccess in the metadata call, so just ignore this status for now.\n return {};\n }\n throw error;\n }\n}\n\nexport async function getGlossaryData(courseId) {\n const url = `${process.env.KEYTERMS_API_BASE_URL}/api/v1/course_terms?course_id=${courseId}`;\n try {\n const { data } = await getAuthenticatedHttpClient().get(url);\n return data;\n } catch (error) {\n const { httpErrorStatus } = error && error.customAttributes;\n if (httpErrorStatus === 404) {\n return {};\n }\n throw error;\n }\n}\n\nexport async function getProctoringInfoData(courseId, username) {\n let url = `${getConfig().LMS_BASE_URL}/api/edx_proctoring/v1/user_onboarding/status?is_learning_mfe=true&course_id=${encodeURIComponent(courseId)}`;\n if (username) {\n url += `&username=${encodeURIComponent(username)}`;\n }\n try {\n const { data } = await getAuthenticatedHttpClient().get(url);\n return data;\n } catch (error) {\n const { httpErrorStatus } = error && error.customAttributes;\n if (httpErrorStatus === 404) {\n return {};\n }\n throw error;\n }\n}\n\nexport function getTimeOffsetMillis(headerDate, requestTime, responseTime) {\n // Time offset computation should move down into the HttpClient wrapper to maintain a global time correction reference\n // Requires 'Access-Control-Expose-Headers: Date' on the server response per https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#access-control-expose-headers\n\n let timeOffsetMillis = 0;\n if (headerDate !== undefined) {\n const headerTime = Date.parse(headerDate);\n const roundTripMillis = requestTime - responseTime;\n const localTime = responseTime - (roundTripMillis / 2); // Roughly compensate for transit time\n timeOffsetMillis = headerTime - localTime;\n }\n\n return timeOffsetMillis;\n}\n\nexport async function getOutlineTabData(courseId) {\n const url = `${getConfig().LMS_BASE_URL}/api/course_home/outline/${courseId}`;\n let { tabData } = {};\n let requestTime = Date.now();\n let responseTime = requestTime;\n try {\n requestTime = Date.now();\n tabData = await getAuthenticatedHttpClient().get(url);\n responseTime = Date.now();\n } catch (error) {\n const { httpErrorStatus } = error && error.customAttributes;\n if (httpErrorStatus === 404) {\n global.location.replace(`${getConfig().LMS_BASE_URL}/courses/${courseId}/course/`);\n return {};\n }\n throw error;\n }\n\n const {\n data,\n headers,\n } = tabData;\n\n const accessExpiration = camelCaseObject(data.access_expiration);\n const canShowUpgradeSock = data.can_show_upgrade_sock;\n const certData = camelCaseObject(data.cert_data);\n const courseBlocks = data.course_blocks ? normalizeOutlineBlocks(courseId, data.course_blocks.blocks) : {};\n const courseGoals = camelCaseObject(data.course_goals);\n const courseTools = camelCaseObject(data.course_tools);\n const courseRevision = camelCaseObject(data.course_revision);\n const datesBannerInfo = camelCaseObject(data.dates_banner_info);\n const datesWidget = camelCaseObject(data.dates_widget);\n const enrollAlert = camelCaseObject(data.enroll_alert);\n const enrollmentMode = data.enrollment_mode;\n const handoutsHtml = data.handouts_html;\n const hasScheduledContent = data.has_scheduled_content;\n const hasEnded = data.has_ended;\n const offer = camelCaseObject(data.offer);\n const resumeCourse = camelCaseObject(data.resume_course);\n const timeOffsetMillis = getTimeOffsetMillis(headers && headers.date, requestTime, responseTime);\n const userHasPassingGrade = data.user_has_passing_grade;\n const verifiedMode = camelCaseObject(data.verified_mode);\n const welcomeMessageHtml = data.welcome_message_html;\n\n return {\n accessExpiration,\n canShowUpgradeSock,\n certData,\n courseBlocks,\n courseGoals,\n courseTools,\n courseRevision,\n datesBannerInfo,\n datesWidget,\n enrollAlert,\n enrollmentMode,\n handoutsHtml,\n hasScheduledContent,\n hasEnded,\n offer,\n resumeCourse,\n timeOffsetMillis, // This should move to a global time correction reference\n userHasPassingGrade,\n verifiedMode,\n welcomeMessageHtml,\n };\n}\n\nexport async function postCourseDeadlines(courseId, model) {\n const url = new URL(`${getConfig().LMS_BASE_URL}/api/course_experience/v1/reset_course_deadlines`);\n return getAuthenticatedHttpClient().post(url.href, {\n course_key: courseId,\n research_event_data: { location: `${model}-tab` },\n });\n}\n\nexport async function postCourseGoals(courseId, goalKey) {\n const url = new URL(`${getConfig().LMS_BASE_URL}/api/course_home/save_course_goal`);\n return getAuthenticatedHttpClient().post(url.href, { course_id: courseId, goal_key: goalKey });\n}\n\nexport async function postDismissWelcomeMessage(courseId) {\n const url = new URL(`${getConfig().LMS_BASE_URL}/api/course_home/dismiss_welcome_message`);\n await getAuthenticatedHttpClient().post(url.href, { course_id: courseId });\n}\n\nexport async function postRequestCert(courseId) {\n const url = new URL(`${getConfig().LMS_BASE_URL}/courses/${courseId}/generate_user_cert`);\n await getAuthenticatedHttpClient().post(url.href);\n}\n\nexport async function executePostFromPostEvent(postData, researchEventData) {\n const url = new URL(postData.url);\n return getAuthenticatedHttpClient().post(url.href, {\n course_key: postData.bodyParams.courseId,\n research_event_data: researchEventData,\n });\n}\n\nexport async function unsubscribeFromCourseGoal(token) {\n const url = new URL(`${getConfig().LMS_BASE_URL}/api/course_home/unsubscribe_from_course_goal/${token}`);\n return getAuthenticatedHttpClient().post(url.href)\n .then(res => camelCaseObject(res));\n}\n","/* eslint-disable no-param-reassign */\nimport { createSlice } from '@reduxjs/toolkit';\n\nexport const LOADING = 'loading';\nexport const LOADED = 'loaded';\nexport const FAILED = 'failed';\nexport const DENIED = 'denied';\n\nconst slice = createSlice({\n name: 'course-home',\n initialState: {\n courseStatus: LOADING,\n courseId: null,\n toastBodyText: null,\n toastBodyLink: null,\n toastHeader: '',\n },\n reducers: {\n fetchTabDenied: (state, { payload }) => {\n state.courseId = payload.courseId;\n state.courseStatus = DENIED;\n },\n fetchTabFailure: (state, { payload }) => {\n state.courseId = payload.courseId;\n state.courseStatus = FAILED;\n },\n fetchTabRequest: (state, { payload }) => {\n state.courseId = payload.courseId;\n state.courseStatus = LOADING;\n },\n fetchTabSuccess: (state, { payload }) => {\n state.courseId = payload.courseId;\n state.targetUserId = payload.targetUserId;\n state.courseStatus = LOADED;\n },\n setCallToActionToast: (state, { payload }) => {\n const {\n header,\n link,\n linkText,\n } = payload;\n state.toastBodyLink = link;\n state.toastBodyText = linkText;\n state.toastHeader = header;\n },\n },\n});\n\nexport const {\n fetchTabDenied,\n fetchTabFailure,\n fetchTabRequest,\n fetchTabSuccess,\n setCallToActionToast,\n} = slice.actions;\n\nexport const {\n reducer,\n} = slice;\n","import { logError } from '@edx/frontend-platform/logging';\nimport { camelCaseObject } from '@edx/frontend-platform';\nimport {\n executePostFromPostEvent,\n getCourseHomeCourseMetadata,\n getBadgeProgressTabData,\n getBadgeLeaderboardTabData,\n getDatesTabData,\n getOutlineTabData,\n getProgressTabData,\n getGlossaryTabData,\n postCourseDeadlines,\n postCourseGoals,\n postDismissWelcomeMessage,\n postRequestCert,\n} from './api';\n\nimport {\n addModel,\n} from '../../generic/model-store';\n\nimport {\n fetchTabDenied,\n fetchTabFailure,\n fetchTabRequest,\n fetchTabSuccess,\n setCallToActionToast,\n} from './slice';\n\nconst eventTypes = {\n POST_EVENT: 'post_event',\n};\n\nexport function fetchTab(courseId, tab, getTabData, targetUserId) {\n return async (dispatch) => {\n dispatch(fetchTabRequest({ courseId }));\n Promise.allSettled([\n getCourseHomeCourseMetadata(courseId),\n getTabData(courseId, targetUserId),\n ]).then(([courseHomeCourseMetadataResult, tabDataResult]) => {\n const fetchedCourseHomeCourseMetadata = courseHomeCourseMetadataResult.status === 'fulfilled';\n const fetchedTabData = tabDataResult.status === 'fulfilled';\n\n if (fetchedCourseHomeCourseMetadata) {\n dispatch(addModel({\n modelType: 'courseHomeMeta',\n model: {\n id: courseId,\n ...courseHomeCourseMetadataResult.value,\n },\n }));\n } else {\n logError(courseHomeCourseMetadataResult.reason);\n }\n\n if (fetchedTabData) {\n dispatch(addModel({\n modelType: tab,\n model: {\n id: courseId,\n ...tabDataResult.value,\n },\n }));\n } else {\n logError(tabDataResult.reason);\n }\n\n // Disable the access-denied path for now - it caused a regression\n if (fetchedCourseHomeCourseMetadata && !courseHomeCourseMetadataResult.value.courseAccess.hasAccess) {\n dispatch(fetchTabDenied({ courseId }));\n } else if (fetchedCourseHomeCourseMetadata && fetchedTabData) {\n dispatch(fetchTabSuccess({ courseId, targetUserId }));\n } else {\n dispatch(fetchTabFailure({ courseId }));\n }\n });\n };\n}\n\nexport function fetchBadgeProgressTab(courseId) {\n return fetchTab(courseId, 'badge-progress', getBadgeProgressTabData);\n}\n\nexport function fetchBadgeLeaderboardTab(courseId) {\n return fetchTab(courseId, 'badge-leaderboard', getBadgeLeaderboardTabData);\n}\n\nexport function fetchDatesTab(courseId) {\n return fetchTab(courseId, 'dates', getDatesTabData);\n}\n\nexport function fetchProgressTab(courseId, targetUserId) {\n return fetchTab(courseId, 'progress', getProgressTabData, parseInt(targetUserId, 10) || targetUserId);\n}\n\nexport function fetchGlossaryTab(courseId) {\n return fetchTab(courseId, 'glossary', getGlossaryTabData);\n}\n\nexport function fetchOutlineTab(courseId) {\n return fetchTab(courseId, 'outline', getOutlineTabData);\n}\n\nexport function dismissWelcomeMessage(courseId) {\n return async () => postDismissWelcomeMessage(courseId);\n}\n\nexport function requestCert(courseId) {\n return async () => postRequestCert(courseId);\n}\n\nexport function resetDeadlines(courseId, model, getTabData) {\n return async (dispatch) => {\n postCourseDeadlines(courseId, model).then(response => {\n const { data } = response;\n const {\n header,\n link,\n link_text: linkText,\n } = data;\n dispatch(getTabData(courseId));\n dispatch(setCallToActionToast({ header, link, linkText }));\n });\n };\n}\n\nexport async function saveCourseGoal(courseId, goalKey) {\n return postCourseGoals(courseId, goalKey);\n}\n\nexport function processEvent(eventData, getTabData) {\n return async (dispatch) => {\n // Pulling this out early so the data doesn't get camelCased and is easier\n // to use when it's passed to the backend\n const { research_event_data: researchEventData } = eventData;\n const event = camelCaseObject(eventData);\n if (event.eventName === eventTypes.POST_EVENT) {\n executePostFromPostEvent(event.postData, researchEventData).then(response => {\n const { data } = response;\n const {\n header,\n link,\n link_text: linkText,\n } = data;\n dispatch(getTabData(event.postData.bodyParams.courseId));\n dispatch(setCallToActionToast({ header, link, linkText }));\n });\n }\n };\n}\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n allDates: {\n id: 'learning.outline.dates.all',\n defaultMessage: 'View all course dates',\n },\n collapseAll: {\n id: 'learning.outline.collapseAll',\n defaultMessage: 'Collapse all',\n description: 'Label for button to close all of the collapsible sections',\n },\n completedAssignment: {\n id: 'learning.outline.completedAssignment',\n defaultMessage: 'Completed',\n description: 'Text used to describe the green checkmark icon in front of an assignment title',\n },\n completedSection: {\n id: 'learning.outline.completedSection',\n defaultMessage: 'Completed section',\n description: 'Text used to describe the green checkmark icon in front of a section title',\n },\n dates: {\n id: 'learning.outline.dates',\n defaultMessage: 'Important dates',\n },\n editGoal: {\n id: 'learning.outline.editGoal',\n defaultMessage: 'Edit goal',\n description: 'Edit course goal button',\n },\n expandAll: {\n id: 'learning.outline.expandAll',\n defaultMessage: 'Expand all',\n description: 'Label for button to open all of the collapsible sections',\n },\n goal: {\n id: 'learning.outline.goal',\n defaultMessage: 'Goal',\n description: 'Label for the selected course goal',\n },\n goalUnsure: {\n id: 'learning.outline.goalUnsure',\n defaultMessage: 'Not sure yet',\n },\n handouts: {\n id: 'learning.outline.handouts',\n defaultMessage: 'Course Handouts',\n },\n incompleteAssignment: {\n id: 'learning.outline.incompleteAssignment',\n defaultMessage: 'Incomplete',\n description: 'Text used to describe the gray checkmark icon in front of an assignment title',\n },\n incompleteSection: {\n id: 'learning.outline.incompleteSection',\n defaultMessage: 'Incomplete section',\n description: 'Text used to describe the gray checkmark icon in front of a section title',\n },\n learnMore: {\n id: 'learning.outline.learnMore',\n defaultMessage: 'Learn More',\n },\n openSection: {\n id: 'learning.outline.altText.openSection',\n defaultMessage: 'Open',\n description: 'A button to open the given section of the course outline',\n },\n resume: {\n id: 'learning.outline.resume',\n defaultMessage: 'Resume course',\n },\n revision: {\n id: 'learning.outline.revision',\n defaultMessage: 'Course Version',\n },\n setGoal: {\n id: 'learning.outline.setGoal',\n defaultMessage: 'To start, set a course goal by selecting the option below that best describes your learning plan.',\n },\n start: {\n id: 'learning.outline.start',\n defaultMessage: 'Start Course',\n },\n tools: {\n id: 'learning.outline.tools',\n defaultMessage: 'Course Tools',\n },\n upgradeButton: {\n id: 'learning.outline.upgradeButton',\n defaultMessage: 'Upgrade ({symbol}{price})',\n },\n upgradeTitle: {\n id: 'learning.outline.upgradeTitle',\n defaultMessage: 'Pursue a verified certificate',\n },\n certAlt: {\n id: 'learning.outline.certificateAlt',\n defaultMessage: 'Example Certificate',\n description: 'Alternate text displayed when the example certificate image cannot be displayed.',\n },\n welcomeMessage: {\n id: 'learning.outline.welcomeMessage',\n defaultMessage: 'Welcome Message',\n },\n welcomeMessageShowMoreButton: {\n id: 'learning.outline.welcomeMessageShowMoreButton',\n defaultMessage: 'Show More',\n },\n welcomeMessageShowLessButton: {\n id: 'learning.outline.welcomeMessageShowLessButton',\n defaultMessage: 'Show Less',\n },\n welcomeTo: {\n id: 'learning.outline.goalWelcome',\n defaultMessage: 'Welcome to',\n description: 'This precedes the title of the course',\n },\n proctoringInfoPanel: {\n id: 'learning.proctoringPanel.header',\n defaultMessage: 'This course contains proctored exams',\n },\n notStartedProctoringStatus: {\n id: 'learning.proctoringPanel.status.notStarted',\n defaultMessage: 'Not Started',\n },\n startedProctoringStatus: {\n id: 'learning.proctoringPanel.status.started',\n defaultMessage: 'Started',\n },\n submittedProctoringStatus: {\n id: 'learning.proctoringPanel.status.submitted',\n defaultMessage: 'Submitted',\n },\n verifiedProctoringStatus: {\n id: 'learning.proctoringPanel.status.verified',\n defaultMessage: 'Verified',\n },\n rejectedProctoringStatus: {\n id: 'learning.proctoringPanel.status.rejected',\n defaultMessage: 'Rejected',\n },\n errorProctoringStatus: {\n id: 'learning.proctoringPanel.status.error',\n defaultMessage: 'Error',\n },\n otherCourseApprovedProctoringStatus: {\n id: 'learning.proctoringPanel.status.otherCourseApproved',\n defaultMessage: 'Approved in Another Course',\n },\n expiringSoonProctoringStatus: {\n id: 'learning.proctoringPanel.status.expiringSoon',\n defaultMessage: 'Expiring Soon',\n },\n proctoringCurrentStatus: {\n id: 'learning.proctoringPanel.status',\n defaultMessage: 'Current Onboarding Status:',\n },\n notStartedProctoringMessage: {\n id: 'learning.proctoringPanel.message.notStarted',\n defaultMessage: 'You have not started your onboarding exam.',\n },\n startedProctoringMessage: {\n id: 'learning.proctoringPanel.message.started',\n defaultMessage: 'You have started your onboarding exam.',\n },\n submittedProctoringMessage: {\n id: 'learning.proctoringPanel.message.submitted',\n defaultMessage: 'You have submitted your onboarding exam.',\n },\n verifiedProctoringMessage: {\n id: 'learning.proctoringPanel.message.verified',\n defaultMessage: 'Your onboarding exam has been approved in this course.',\n },\n rejectedProctoringMessage: {\n id: 'learning.proctoringPanel.message.rejected',\n defaultMessage: 'Your onboarding exam has been rejected. Please retry onboarding.',\n },\n errorProctoringMessage: {\n id: 'learning.proctoringPanel.message.error',\n defaultMessage: 'An error has occurred during your onboarding exam. Please retry onboarding.',\n },\n otherCourseApprovedProctoringMessage: {\n id: 'learning.proctoringPanel.message.otherCourseApproved',\n defaultMessage: 'Your onboarding exam has been approved in another course.',\n },\n otherCourseApprovedProctoringDetail: {\n id: 'learning.proctoringPanel.detail.otherCourseApproved',\n defaultMessage: 'If your device has changed, we recommend that you complete this course\\'s onboarding exam in order to ensure that your setup still meets the requirements for proctoring.',\n },\n expiringSoonProctoringMessage: {\n id: 'learning.proctoringPanel.message.expiringSoon',\n defaultMessage: 'Your onboarding profile has been approved in another course. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.',\n },\n proctoringPanelGeneralInfo: {\n id: 'learning.proctoringPanel.generalInfo',\n defaultMessage: 'You must complete the onboarding process prior to taking any proctored exam. ',\n },\n proctoringPanelGeneralInfoSubmitted: {\n id: 'learning.proctoringPanel.generalInfoSubmitted',\n defaultMessage: 'Your submitted profile is in review.',\n },\n proctoringPanelGeneralTime: {\n id: 'learning.proctoringPanel.generalTime',\n defaultMessage: 'Onboarding profile review can take 2+ business days.',\n },\n proctoringOnboardingButton: {\n id: 'learning.proctoringPanel.onboardingButton',\n defaultMessage: 'Complete Onboarding',\n },\n proctoringOnboardingPracticeButton: {\n id: 'learning.proctoringPanel.onboardingPracticeButton',\n defaultMessage: 'View Onboarding Exam',\n },\n proctoringOnboardingButtonNotOpen: {\n id: 'learning.proctoringPanel.onboardingButtonNotOpen',\n defaultMessage: 'Onboarding Opens: {releaseDate}',\n },\n proctoringReviewRequirementsButton: {\n id: 'learning.proctoringPanel.reviewRequirementsButton',\n defaultMessage: 'Review instructions and system requirements',\n },\n proctoringOnboardingButtonPastDue: {\n id: 'learning.proctoringPanel.onboardingButtonPastDue',\n defaultMessage: 'Onboarding Past Due',\n },\n});\n\nexport default messages;\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n notPassingHeader: {\n id: 'progress.certificateStatus.notPassingHeader',\n defaultMessage: 'Certificate status',\n },\n notPassingBody: {\n id: 'progress.certificateStatus.notPassingBody',\n defaultMessage: 'In order to qualify for a certificate, you must have a passing grade.',\n },\n inProgressHeader: {\n id: 'progress.certificateStatus.inProgressHeader',\n defaultMessage: 'More content is coming soon!',\n },\n inProgressBody: {\n id: 'progress.certificateStatus.inProgressBody',\n defaultMessage: 'It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.',\n },\n requestableHeader: {\n id: 'progress.certificateStatus.requestableHeader',\n defaultMessage: 'Certificate status',\n },\n requestableBody: {\n id: 'progress.certificateStatus.requestableBody',\n defaultMessage: 'Congratulations, you qualified for a certificate! In order to access your certificate, request it below.',\n },\n requestableButton: {\n id: 'progress.certificateStatus.requestableButton',\n defaultMessage: 'Request certificate',\n },\n unverifiedHeader: {\n id: 'progress.certificateStatus.unverifiedHeader',\n defaultMessage: 'Certificate status',\n },\n unverifiedButton: {\n id: 'progress.certificateStatus.unverifiedButton',\n defaultMessage: 'Verify ID',\n },\n unverifiedPendingBody: {\n id: 'progress.certificateStatus.courseCelebration.verificationPending',\n defaultMessage: 'Your ID verification is pending and your certificate will be available once approved.',\n },\n downloadableHeader: {\n id: 'progress.certificateStatus.downloadableHeader',\n defaultMessage: 'Your certificate is available!',\n },\n downloadableBody: {\n id: 'progress.certificateStatus.downloadableBody',\n defaultMessage: 'Showcase your accomplishment on LinkedIn or your resumé today. You can download your certificate now and access it any time from your Dashboard and Profile.',\n },\n downloadableButton: {\n id: 'progress.certificateStatus.downloadableButton',\n defaultMessage: 'Download my certificate',\n },\n viewableButton: {\n id: 'progress.certificateStatus.viewableButton',\n defaultMessage: 'View my certificate',\n },\n notAvailableHeader: {\n id: 'progress.certificateStatus.notAvailableHeader',\n defaultMessage: 'Certificate status',\n },\n upgradeHeader: {\n id: 'progress.certificateStatus.upgradeHeader',\n defaultMessage: 'Earn a certificate',\n },\n upgradeBody: {\n id: 'progress.certificateStatus.upgradeBody',\n defaultMessage: 'You are in an audit track and do not qualify for a certificate. In order to work towards a certificate, upgrade your course today.',\n },\n upgradeButton: {\n id: 'progress.certificateStatus.upgradeButton',\n defaultMessage: 'Upgrade now',\n },\n unverifiedHomeHeader: {\n id: 'progress.certificateStatus.unverifiedHomeHeader',\n defaultMessage: 'Verify your identity to earn a certificate!',\n },\n unverifiedHomeButton: {\n id: 'progress.certificateStatus.unverifiedHomeButton',\n defaultMessage: 'Verify my ID',\n },\n unverifiedHomeBody: {\n id: 'progress.certificateStatus.unverifiedHomeBody',\n defaultMessage: 'In order to generate a certificate for this course, you must complete the ID verification process.',\n },\n});\n\nexport default messages;\n","import { getConfig, camelCaseObject } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient, getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { logInfo } from '@edx/frontend-platform/logging';\nimport { getTimeOffsetMillis } from '../../course-home/data/api';\nimport { appendBrowserTimezoneToUrl } from '../../utils';\n\nexport function normalizeBlocks(courseId, blocks) {\n const models = {\n courses: {},\n sections: {},\n sequences: {},\n units: {},\n };\n\n Object.values(blocks).forEach(block => {\n switch (block.type) {\n case 'course':\n models.courses[block.id] = {\n id: courseId,\n title: block.display_name,\n sectionIds: block.children || [],\n hasScheduledContent: block.has_scheduled_content || false,\n };\n break;\n case 'chapter':\n models.sections[block.id] = {\n id: block.id,\n title: block.display_name,\n sequenceIds: block.children || [],\n };\n break;\n\n case 'sequential':\n models.sequences[block.id] = {\n effortActivities: block.effort_activities,\n effortTime: block.effort_time,\n id: block.id,\n title: block.display_name,\n legacyWebUrl: block.legacy_web_url,\n unitIds: block.children || [],\n };\n break;\n case 'vertical':\n models.units[block.id] = {\n graded: block.graded,\n id: block.id,\n title: block.display_name,\n legacyWebUrl: block.legacy_web_url,\n };\n break;\n default:\n logInfo(`Unexpected course block type: ${block.type} with ID ${block.id}. Expected block types are course, chapter, sequential, and vertical.`);\n }\n });\n\n // Next go through each list and use their child lists to decorate those children with a\n // reference back to their parent.\n Object.values(models.courses).forEach(course => {\n if (Array.isArray(course.sectionIds)) {\n course.sectionIds.forEach(sectionId => {\n const section = models.sections[sectionId];\n section.courseId = course.id;\n });\n }\n });\n\n Object.values(models.sections).forEach(section => {\n if (Array.isArray(section.sequenceIds)) {\n section.sequenceIds.forEach(sequenceId => {\n if (sequenceId in models.sequences) {\n models.sequences[sequenceId].sectionId = section.id;\n } else {\n logInfo(`Section ${section.id} has child block ${sequenceId}, but that block is not in the list of sequences.`);\n }\n });\n }\n });\n\n Object.values(models.sequences).forEach(sequence => {\n if (Array.isArray(sequence.unitIds)) {\n sequence.unitIds.forEach(unitId => {\n if (unitId in models.units) {\n models.units[unitId].sequenceId = sequence.id;\n } else {\n logInfo(`Sequence ${sequence.id} has child block ${unitId}, but that block is not in the list of units.`);\n }\n });\n }\n });\n\n return models;\n}\n\nexport function normalizeLearningSequencesData(learningSequencesData) {\n const models = {\n courses: {},\n sections: {},\n sequences: {},\n };\n\n // Course\n const now = new Date();\n models.courses[learningSequencesData.course_key] = {\n id: learningSequencesData.course_key,\n title: learningSequencesData.title,\n sectionIds: learningSequencesData.outline.sections.map(section => section.id),\n\n // Scan through all the sequences and look for ones that aren't accessible\n // to us yet because the start date has not yet passed. (Some may be\n // inaccessible because the end_date has passed.)\n hasScheduledContent: Object.values(learningSequencesData.outline.sequences).some(\n seq => !seq.accessible && now < Date.parse(seq.effective_start),\n ),\n };\n\n // Sections\n learningSequencesData.outline.sections.forEach(section => {\n models.sections[section.id] = {\n id: section.id,\n title: section.title,\n sequenceIds: section.sequence_ids,\n };\n });\n\n // Sequences\n Object.entries(learningSequencesData.outline.sequences).forEach(([seqId, sequence]) => {\n models.sequences[seqId] = {\n id: seqId,\n title: sequence.title,\n };\n });\n\n return models;\n}\n\nexport async function getCourseBlocks(courseId) {\n const authenticatedUser = getAuthenticatedUser();\n const url = new URL(`${getConfig().LMS_BASE_URL}/api/courses/v2/blocks/`);\n url.searchParams.append('course_id', courseId);\n url.searchParams.append('username', authenticatedUser ? authenticatedUser.username : '');\n url.searchParams.append('depth', 3);\n url.searchParams.append('requested_fields', 'children,effort_activities,effort_time,show_gated_sections,graded,special_exam_info,has_scheduled_content');\n\n const { data } = await getAuthenticatedHttpClient().get(url.href, {});\n return normalizeBlocks(courseId, data.blocks);\n}\n\n// Returns the output of the Learning Sequences API, or null if that API is not\n// currently available for this user in this course.\nexport async function getLearningSequencesOutline(courseId) {\n const outlineUrl = new URL(`${getConfig().LMS_BASE_URL}/api/learning_sequences/v1/course_outline/${courseId}`);\n\n try {\n const { data } = await getAuthenticatedHttpClient().get(outlineUrl.href, {});\n return normalizeLearningSequencesData(data);\n } catch (error) {\n // This is not a critical API to use at the moment. If it errors for any\n // reason, just send back a null so the higher layers know to ignore it.\n if (error.response) {\n if (error.response.status === 403) {\n logInfo('Learning Sequences API not enabled for this user.');\n } else {\n logInfo(`Unexpected error calling Learning Sequences API (${error.response.status}). Ignoring.`);\n }\n return null;\n }\n throw error;\n }\n}\n\nfunction normalizeTabUrls(id, tabs) {\n // If api doesn't return the mfe base url, change tab url to point back to LMS\n return tabs.map((tab) => {\n let { url } = tab;\n if (url[0] === '/') {\n url = `${getConfig().LMS_BASE_URL}${tab.url}`;\n }\n return { ...tab, url };\n });\n}\n\nfunction normalizeMetadata(metadata) {\n const requestTime = Date.now();\n const responseTime = requestTime;\n const { data, headers } = metadata;\n return {\n accessExpiration: camelCaseObject(data.access_expiration),\n canShowUpgradeSock: data.can_show_upgrade_sock,\n contentTypeGatingEnabled: data.content_type_gating_enabled,\n courseGoals: data.course_goals,\n id: data.id,\n title: data.name,\n number: data.number,\n offer: camelCaseObject(data.offer),\n org: data.org,\n enrollmentStart: data.enrollment_start,\n enrollmentEnd: data.enrollment_end,\n end: data.end,\n start: data.start,\n enrollmentMode: data.enrollment.mode,\n isEnrolled: data.enrollment.is_active,\n courseAccess: camelCaseObject(data.course_access),\n canViewLegacyCourseware: data.can_view_legacy_courseware,\n originalUserIsStaff: data.original_user_is_staff,\n isStaff: data.is_staff,\n license: data.license,\n verifiedMode: camelCaseObject(data.verified_mode),\n tabs: normalizeTabUrls(data.id, camelCaseObject(data.tabs)),\n userTimezone: data.user_timezone,\n showCalculator: data.show_calculator,\n notes: camelCaseObject(data.notes),\n marketingUrl: data.marketing_url,\n celebrations: camelCaseObject(data.celebrations),\n userHasPassingGrade: data.user_has_passing_grade,\n courseExitPageIsActive: data.course_exit_page_is_active,\n certificateData: camelCaseObject(data.certificate_data),\n timeOffsetMillis: getTimeOffsetMillis(headers && headers.date, requestTime, responseTime),\n verifyIdentityUrl: data.verify_identity_url,\n verificationStatus: data.verification_status,\n linkedinAddToProfileUrl: data.linkedin_add_to_profile_url,\n relatedPrograms: camelCaseObject(data.related_programs),\n userNeedsIntegritySignature: data.user_needs_integrity_signature,\n isMasquerading: data.original_user_is_staff && !data.is_staff,\n };\n}\n\nexport async function getCourseMetadata(courseId) {\n let url = `${getConfig().LMS_BASE_URL}/api/courseware/course/${courseId}`;\n url = appendBrowserTimezoneToUrl(url);\n const metadata = await getAuthenticatedHttpClient().get(url);\n return normalizeMetadata(metadata);\n}\n\nfunction normalizeSequenceMetadata(sequence) {\n return {\n sequence: {\n id: sequence.item_id,\n blockType: sequence.tag,\n unitIds: sequence.items.map(unit => unit.id),\n bannerText: sequence.banner_text,\n format: sequence.format,\n title: sequence.display_name,\n /*\n Example structure of gated_content when prerequisites exist:\n {\n prereq_id: 'id of the prereq section',\n prereq_url: 'unused by this frontend',\n prereq_section_name: 'Name of the prerequisite section',\n gated: true,\n gated_section_name: 'Name of this gated section',\n */\n gatedContent: camelCaseObject(sequence.gated_content),\n isTimeLimited: sequence.is_time_limited,\n isProctored: sequence.is_proctored,\n isHiddenAfterDue: sequence.is_hidden_after_due,\n // Position comes back from the server 1-indexed. Adjust here.\n activeUnitIndex: sequence.position ? sequence.position - 1 : 0,\n saveUnitPosition: sequence.save_position,\n showCompletion: sequence.show_completion,\n allowProctoringOptOut: sequence.allow_proctoring_opt_out,\n },\n units: sequence.items.map(unit => ({\n id: unit.id,\n sequenceId: sequence.item_id,\n bookmarked: unit.bookmarked,\n complete: unit.complete,\n title: unit.page_title,\n contentType: unit.type,\n graded: unit.graded,\n containsContentTypeGatedContent: unit.contains_content_type_gated_content,\n })),\n };\n}\n\nexport async function getSequenceMetadata(sequenceId) {\n const { data } = await getAuthenticatedHttpClient()\n .get(`${getConfig().LMS_BASE_URL}/api/courseware/sequence/${sequenceId}`, {});\n\n return normalizeSequenceMetadata(data);\n}\n\nconst getSequenceHandlerUrl = (courseId, sequenceId) => `${getConfig().LMS_BASE_URL}/courses/${courseId}/xblock/${sequenceId}/handler`;\n\nexport async function getBlockCompletion(courseId, sequenceId, usageKey) {\n const { data } = await getAuthenticatedHttpClient().post(\n `${getSequenceHandlerUrl(courseId, sequenceId)}/get_completion`,\n { usage_key: usageKey },\n );\n return data.complete === true;\n}\n\nexport async function postSequencePosition(courseId, sequenceId, activeUnitIndex) {\n const { data } = await getAuthenticatedHttpClient().post(\n `${getSequenceHandlerUrl(courseId, sequenceId)}/goto_position`,\n // Position is 1-indexed on the server and 0-indexed in this app. Adjust here.\n { position: activeUnitIndex + 1 },\n );\n return data;\n}\n\nexport async function getResumeBlock(courseId) {\n const url = new URL(`${getConfig().LMS_BASE_URL}/api/courseware/resume/${courseId}`);\n const { data } = await getAuthenticatedHttpClient().get(url.href, {});\n return camelCaseObject(data);\n}\n\nexport async function postIntegritySignature(courseId) {\n const { data } = await getAuthenticatedHttpClient().post(\n `${getConfig().LMS_BASE_URL}/api/agreements/v1/integrity_signature/${courseId}`, {},\n );\n return camelCaseObject(data);\n}\nexport async function sendActivationEmail() {\n const url = new URL(`${getConfig().LMS_BASE_URL}/api/send_account_activation_email`);\n const { data } = await getAuthenticatedHttpClient().post(url.href, {});\n return data;\n}\n","/* eslint-disable import/prefer-default-export */\nexport function sequenceIdsSelector(state) {\n if (state.courseware.courseStatus !== 'loaded') {\n return [];\n }\n const { sectionIds = [] } = state.models.coursewareMeta[state.courseware.courseId];\n\n const sequenceIds = sectionIds\n .flatMap(sectionId => state.models.sections[sectionId].sequenceIds);\n\n return sequenceIds;\n}\n","/* eslint-disable no-param-reassign */\nimport { createSlice } from '@reduxjs/toolkit';\n\nexport const LOADING = 'loading';\nexport const LOADED = 'loaded';\nexport const FAILED = 'failed';\nexport const DENIED = 'denied';\n\nconst slice = createSlice({\n name: 'courseware',\n initialState: {\n courseStatus: 'loading',\n courseId: null,\n sequenceStatus: 'loading',\n sequenceId: null,\n },\n reducers: {\n fetchCourseRequest: (state, { payload }) => {\n state.courseId = payload.courseId;\n state.courseStatus = LOADING;\n },\n fetchCourseSuccess: (state, { payload }) => {\n state.courseId = payload.courseId;\n state.courseStatus = LOADED;\n },\n fetchCourseFailure: (state, { payload }) => {\n state.courseId = payload.courseId;\n state.courseStatus = FAILED;\n },\n fetchCourseDenied: (state, { payload }) => {\n state.courseId = payload.courseId;\n state.courseStatus = DENIED;\n },\n fetchSequenceRequest: (state, { payload }) => {\n state.sequenceId = payload.sequenceId;\n state.sequenceStatus = LOADING;\n },\n fetchSequenceSuccess: (state, { payload }) => {\n state.sequenceId = payload.sequenceId;\n state.sequenceStatus = LOADED;\n },\n fetchSequenceFailure: (state, { payload }) => {\n state.sequenceId = payload.sequenceId;\n state.sequenceStatus = FAILED;\n },\n },\n});\n\nexport const {\n fetchCourseRequest,\n fetchCourseSuccess,\n fetchCourseFailure,\n fetchCourseDenied,\n fetchSequenceRequest,\n fetchSequenceSuccess,\n fetchSequenceFailure,\n fetchCourseRecommendationsRequest,\n fetchCourseRecommendationsSuccess,\n fetchCourseRecommendationsFailure,\n} = slice.actions;\n\nexport const {\n reducer,\n} = slice;\n","import { logError, logInfo } from '@edx/frontend-platform/logging';\nimport {\n getBlockCompletion,\n postSequencePosition,\n getCourseMetadata,\n getCourseBlocks,\n getLearningSequencesOutline,\n getSequenceMetadata,\n postIntegritySignature,\n} from './api';\nimport {\n updateModel, addModel, updateModelsMap, addModelsMap, updateModels,\n} from '../../generic/model-store';\nimport {\n fetchCourseRequest,\n fetchCourseSuccess,\n fetchCourseFailure,\n fetchCourseDenied,\n fetchSequenceRequest,\n fetchSequenceSuccess,\n fetchSequenceFailure,\n} from './slice';\n\n/**\n * Combines the models from the Course Blocks and Learning Sequences API into a\n * new models obj that is returned. Does not mutate the models passed in.\n *\n * For performance and long term maintainability, we want to switch as much of\n * the Courseware MFE to use the Learning Sequences API as possible, and\n * eventually remove calls to the Course Blocks API. However, right now, certain\n * data still has to come form the Course Blocks API. This function is a\n * transitional step to help build out some of the data from the new API, while\n * falling back to the Course Blocks API for other things.\n *\n * Overall performance gains will not be realized until we completely remove\n * this call to the Course Blocks API (and the need for this function).\n *\n * @param {*} learningSequencesModels Normalized model from normalizeLearningSequencesData\n * @param {*} courseBlocksModels Normalized model from normalizeBlocks\n * @param {bool} isMasquerading Is Masquerading being used?\n */\nfunction mergeLearningSequencesWithCourseBlocks(learningSequencesModels, courseBlocksModels, isMasquerading) {\n // If there's no Learning Sequences API data yet (not active for this course),\n // send back the course blocks model as-is. Likewise, Learning Sequences\n // doesn't currently handle masquerading properly for content groups.\n if (isMasquerading || learningSequencesModels === null) {\n return courseBlocksModels;\n }\n const mergedModels = {\n courses: {},\n sections: {},\n sequences: {},\n\n // Units are now copied over verbatim from Course Blocks API, but they\n // should eventually come just-in-time, once the Sequence Metadata API is\n // made to be acceptably fast.\n units: courseBlocksModels.units,\n };\n\n // Top level course information\n //\n // It is not at all clear to me why courses is a dict when there's only ever\n // one course, but I'm not going to make that model change right now.\n const lsCourse = Object.values(learningSequencesModels.courses)[0];\n const [courseBlockId, courseBlock] = Object.entries(courseBlocksModels.courses)[0];\n\n // The Learning Sequences API never exposes the usage key of the root course\n // block, which is used as the key here (instead of the CourseKey). It doesn't\n // look like anything actually queries for this value though, and even the\n // courseBlocksModels.courses uses the CourseKey as the \"id\" in the value. So\n // I'm imitating the form here to minimize the chance of things breaking, but\n // I think we should just forget the keys and replace courses with a singular\n // course. I might end up doing that before my refactoring is done here. >_<\n mergedModels.courses[courseBlockId] = {\n // Learning Sequences API Data\n id: lsCourse.id,\n title: lsCourse.title,\n sectionIds: lsCourse.sectionIds,\n hasScheduledContent: lsCourse.hasScheduledContent,\n\n // Still pulling from Course Blocks API\n effortActivities: courseBlock.effortActivities,\n effortTime: courseBlock.effortTime,\n };\n\n // List of Sequences comes from Learning Sequences. Course Blocks will have\n // extra sequences that we don't want to display to the user, like ones that\n // are empty because all the enclosed units are in user partition groups that\n // the user is not a part of (e.g. Verified Track).\n Object.entries(learningSequencesModels.sequences).forEach(([sequenceId, sequence]) => {\n const blocksSequence = courseBlocksModels.sequences[sequenceId];\n mergedModels.sequences[sequenceId] = {\n // Learning Sequences API Data\n id: sequenceId,\n title: sequence.title,\n\n // Still pulling from Course Blocks API Data:\n effortActivities: blocksSequence.effortActivities,\n effortTime: blocksSequence.effortTime,\n legacyWebUrl: blocksSequence.legacyWebUrl,\n unitIds: blocksSequence.unitIds,\n };\n\n // Add back-references to this sequence for all child units.\n blocksSequence.unitIds.forEach(childUnitId => {\n mergedModels.units[childUnitId].sequenceId = sequenceId;\n });\n });\n\n // List of Sections comes from Learning Sequences.\n Object.entries(learningSequencesModels.sections).forEach(([sectionId, section]) => {\n const blocksSection = courseBlocksModels.sections[sectionId];\n mergedModels.sections[sectionId] = {\n // Learning Sequences API Data\n id: sectionId,\n title: section.title,\n sequenceIds: section.sequenceIds,\n courseId: lsCourse.id,\n\n // Still pulling from Course Blocks API Data:\n effortActivities: blocksSection.effortActivities,\n effortTime: blocksSection.effortTime,\n };\n // Add back-references to this section for all child sequences.\n section.sequenceIds.forEach(childSeqId => {\n mergedModels.sequences[childSeqId].sectionId = sectionId;\n });\n });\n\n return mergedModels;\n}\n\nexport function fetchCourse(courseId) {\n return async (dispatch) => {\n dispatch(fetchCourseRequest({ courseId }));\n Promise.allSettled([\n getCourseMetadata(courseId),\n getCourseBlocks(courseId),\n getLearningSequencesOutline(courseId),\n ]).then(([courseMetadataResult, courseBlocksResult, learningSequencesOutlineResult]) => {\n if (courseMetadataResult.status === 'fulfilled') {\n dispatch(addModel({\n modelType: 'coursewareMeta',\n model: courseMetadataResult.value,\n }));\n }\n\n if (courseBlocksResult.status === 'fulfilled') {\n const {\n courses, sections, sequences, units,\n } = mergeLearningSequencesWithCourseBlocks(\n learningSequencesOutlineResult.value,\n courseBlocksResult.value,\n courseMetadataResult.value.isMasquerading,\n );\n\n // This updates the course with a sectionIds array from the blocks data.\n dispatch(updateModelsMap({\n modelType: 'coursewareMeta',\n modelsMap: courses,\n }));\n dispatch(addModelsMap({\n modelType: 'sections',\n modelsMap: sections,\n }));\n // We update for sequences and units because the sequence metadata may have come back first.\n dispatch(updateModelsMap({\n modelType: 'sequences',\n modelsMap: sequences,\n }));\n dispatch(updateModelsMap({\n modelType: 'units',\n modelsMap: units,\n }));\n }\n\n const fetchedMetadata = courseMetadataResult.status === 'fulfilled';\n const fetchedBlocks = courseBlocksResult.status === 'fulfilled';\n\n // Log errors for each request if needed. Course block failures may occur\n // even if the course metadata request is successful\n if (!fetchedBlocks) {\n const { response } = courseBlocksResult.reason;\n if (response && response.status === 403) {\n // 403 responses are normal - they happen when the learner is logged out.\n // We'll redirect them in a moment to the outline tab by calling fetchCourseDenied() below.\n logInfo(courseBlocksResult.reason);\n } else {\n logError(courseBlocksResult.reason);\n }\n }\n if (!fetchedMetadata) {\n logError(courseMetadataResult.reason);\n }\n\n if (fetchedMetadata) {\n if (courseMetadataResult.value.courseAccess.hasAccess && fetchedBlocks) {\n // User has access\n dispatch(fetchCourseSuccess({ courseId }));\n return;\n }\n // User either doesn't have access or only has partial access\n // (can't access course blocks)\n dispatch(fetchCourseDenied({ courseId }));\n return;\n }\n\n // Definitely an error happening\n dispatch(fetchCourseFailure({ courseId }));\n });\n };\n}\n\nexport function fetchSequence(sequenceId) {\n return async (dispatch) => {\n dispatch(fetchSequenceRequest({ sequenceId }));\n try {\n const { sequence, units } = await getSequenceMetadata(sequenceId);\n if (sequence.blockType !== 'sequential') {\n // Some other block types (particularly 'chapter') can be returned\n // by this API. We want to error in that case, since downstream\n // courseware code is written to render Sequences of Units.\n logError(\n `Requested sequence '${sequenceId}' `\n + `has block type '${sequence.blockType}'; expected block type 'sequential'.`,\n );\n dispatch(fetchSequenceFailure({ sequenceId }));\n } else {\n dispatch(updateModel({\n modelType: 'sequences',\n model: sequence,\n }));\n dispatch(updateModels({\n modelType: 'units',\n models: units,\n }));\n dispatch(fetchSequenceSuccess({ sequenceId }));\n }\n } catch (error) {\n // Some errors are expected - for example, CoursewareContainer may request sequence metadata for a unit and rely\n // on the request failing to notice that it actually does have a unit (mostly so it doesn't have to know anything\n // about the opaque key structure). In such cases, the backend gives us a 422.\n const isExpected = error.response && error.response.status === 422;\n if (!isExpected) {\n logError(error);\n }\n dispatch(fetchSequenceFailure({ sequenceId }));\n }\n };\n}\n\nexport function checkBlockCompletion(courseId, sequenceId, unitId) {\n return async (dispatch, getState) => {\n const { models } = getState();\n if (models.units[unitId].complete) {\n return {}; // do nothing. Things don't get uncompleted after they are completed.\n }\n\n try {\n const isComplete = await getBlockCompletion(courseId, sequenceId, unitId);\n dispatch(updateModel({\n modelType: 'units',\n model: {\n id: unitId,\n complete: isComplete,\n },\n }));\n return isComplete;\n } catch (error) {\n logError(error);\n }\n return {};\n };\n}\n\nexport function saveSequencePosition(courseId, sequenceId, activeUnitIndex) {\n return async (dispatch, getState) => {\n const { models } = getState();\n const initialActiveUnitIndex = models.sequences[sequenceId].activeUnitIndex;\n // Optimistically update the position.\n dispatch(updateModel({\n modelType: 'sequences',\n model: {\n id: sequenceId,\n activeUnitIndex,\n },\n }));\n try {\n await postSequencePosition(courseId, sequenceId, activeUnitIndex);\n // Update again under the assumption that the above call succeeded, since it doesn't return a\n // meaningful response.\n dispatch(updateModel({\n modelType: 'sequences',\n model: {\n id: sequenceId,\n activeUnitIndex,\n },\n }));\n } catch (error) {\n logError(error);\n dispatch(updateModel({\n modelType: 'sequences',\n model: {\n id: sequenceId,\n activeUnitIndex: initialActiveUnitIndex,\n },\n }));\n }\n };\n}\n\nexport function saveIntegritySignature(courseId, isMasquerading) {\n return async (dispatch) => {\n try {\n // If the request is made by a staff user masquerading as a learner,\n // don't actually create a signature for them on the backend. Only\n // frontend state will be updated.\n if (!isMasquerading) {\n await postIntegritySignature(courseId);\n }\n dispatch(updateModel({\n modelType: 'coursewareMeta',\n model: {\n id: courseId,\n userNeedsIntegritySignature: false,\n },\n }));\n } catch (error) {\n logError(error);\n }\n };\n}\n","// This file holds some convenience methods for dealing with localStorage.\n//\n// NOTE: These storage keys are not namespaced. That means that it's shared for the current fully\n// qualified domain. Namespacing could be added, but we'll cross that bridge when we need it.\n\nfunction getLocalStorage(key) {\n try {\n if (global.localStorage) {\n const rawItem = global.localStorage.getItem(key);\n if (rawItem) {\n return JSON.parse(rawItem);\n }\n }\n } catch (e) {\n // If this fails for some reason, just return null.\n }\n return null;\n}\n\nfunction setLocalStorage(key, value) {\n try {\n if (global.localStorage) {\n global.localStorage.setItem(key, JSON.stringify(value));\n }\n } catch (e) {\n // If this fails, just bail.\n }\n}\n\nfunction clearLocalStorage(key) {\n try {\n if (global.localStorage) {\n global.localStorage.removeItem(key);\n }\n } catch (e) {\n // If this fails, just bail.\n }\n}\n\nfunction popLocalStorage(key) {\n const value = getLocalStorage(key);\n clearLocalStorage(key);\n return value;\n}\n\nexport {\n clearLocalStorage,\n getLocalStorage,\n popLocalStorage,\n setLocalStorage,\n};\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n close: {\n id: 'general.altText.close',\n defaultMessage: 'Close',\n description: 'Text used as an aria-label to describe closing or dismissing a component',\n },\n registerLowercase: {\n id: 'learning.logistration.register', // ID left for historical purposes\n defaultMessage: 'register',\n description: 'Text in a link, prompting the user to create an account. Used in \"learning.logistration.alert\"',\n },\n signInSentenceCase: {\n id: 'general.signIn.sentenceCase',\n defaultMessage: 'Sign in',\n description: 'Text in a button, prompting the user to log in.',\n },\n});\n\nexport default messages;\n","import { useSelector, shallowEqual } from 'react-redux';\n\nexport function useModel(type, id) {\n return useSelector(\n state => (state.models[type] !== undefined ? state.models[type][id] : {}),\n shallowEqual,\n );\n}\n\nexport function useModels(type, ids) {\n return useSelector(\n state => ids.map(\n id => (state.models[type] !== undefined ? state.models[type][id] : {}),\n ),\n shallowEqual,\n );\n}\n","/* eslint-disable no-param-reassign */\nimport { createSlice } from '@reduxjs/toolkit';\n\nfunction add(state, modelType, model) {\n const { id } = model;\n if (state[modelType] === undefined) {\n state[modelType] = {};\n }\n state[modelType][id] = model;\n}\n\nfunction update(state, modelType, model) {\n if (state[modelType] === undefined) {\n state[modelType] = {};\n }\n state[modelType][model.id] = { ...state[modelType][model.id], ...model };\n}\n\nfunction remove(state, modelType, id) {\n if (state[modelType] === undefined) {\n state[modelType] = {};\n }\n\n delete state[modelType][id];\n}\n\nconst slice = createSlice({\n name: 'models',\n initialState: {},\n reducers: {\n addModel: (state, { payload }) => {\n const { modelType, model } = payload;\n add(state, modelType, model);\n },\n addModels: (state, { payload }) => {\n const { modelType, models } = payload;\n models.forEach(model => add(state, modelType, model));\n },\n addModelsMap: (state, { payload }) => {\n const { modelType, modelsMap } = payload;\n Object.values(modelsMap).forEach(model => add(state, modelType, model));\n },\n updateModel: (state, { payload }) => {\n const { modelType, model } = payload;\n update(state, modelType, model);\n },\n updateModels: (state, { payload }) => {\n const { modelType, models } = payload;\n models.forEach(model => update(state, modelType, model));\n },\n updateModelsMap: (state, { payload }) => {\n const { modelType, modelsMap } = payload;\n Object.values(modelsMap).forEach(model => update(state, modelType, model));\n },\n removeModel: (state, { payload }) => {\n const { modelType, id } = payload;\n remove(state, modelType, id);\n },\n removeModels: (state, { payload }) => {\n const { modelType, ids } = payload;\n ids.forEach(id => remove(state, modelType, id));\n },\n },\n});\n\nexport const {\n addModel,\n addModels,\n addModelsMap,\n updateModel,\n updateModels,\n updateModelsMap,\n removeModel,\n removeModels,\n} = slice.actions;\n\nexport const { reducer } = slice;\n","import { useState, useEffect } from 'react';\n\n// NOTE: These are the breakpoints used in Bootstrap v4.0.0 as seen in\n// the documentation (https://getbootstrap.com/docs/4.0/layout/overview/#responsive-breakpoints)\nexport const responsiveBreakpoints = {\n extraSmall: {\n maxWidth: 575.98,\n },\n small: {\n minWidth: 576,\n maxWidth: 767.98,\n },\n medium: {\n minWidth: 768,\n maxWidth: 991.98,\n },\n large: {\n minWidth: 992,\n maxWidth: 1199.98,\n },\n extraLarge: {\n minWidth: 1200,\n },\n};\n\nexport default function useWindowSize() {\n const isClient = typeof global === 'object';\n\n const getSize = () => ({\n width: isClient ? global.innerWidth : undefined,\n height: isClient ? global.innerHeight : undefined,\n });\n\n const [windowSize, setWindowSize] = useState(getSize);\n\n useEffect(() => {\n if (!isClient) {\n return false;\n }\n\n const handleResize = () => {\n setWindowSize(getSize());\n };\n global.addEventListener('resize', handleResize);\n return () => global.removeEventListener('resize', handleResize);\n }, []);\n\n return windowSize;\n}\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n srPrices: {\n id: 'learning.offer.screenReaderPrices', // historic id\n defaultMessage: 'Original price: {originalPrice}, discount price: {discountedPrice}',\n },\n srInlinePrices: {\n id: 'learning.upgradeButton.screenReaderInlinePrices',\n defaultMessage: 'Original price: {originalPrice}',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\n\nimport messages from './messages';\n\nfunction FormattedPricing(props) {\n const {\n inline,\n intl,\n offer,\n verifiedMode,\n } = props;\n\n let currencySymbol;\n if (verifiedMode) {\n currencySymbol = verifiedMode.currencySymbol;\n }\n\n if (!offer) {\n const {\n price,\n } = verifiedMode;\n return `${currencySymbol}${price}`;\n }\n\n const {\n discountedPrice,\n originalPrice,\n } = offer;\n\n // The inline style is meant for being embedded in a sentence - it bolds the discount and leaves the original price\n // as a parenthetical. The normal styling is more suited for a button, where the price and discount are side by side.\n if (inline) {\n return (\n <>\n {discountedPrice}\n  (\n \n {intl.formatMessage(messages.srInlinePrices, { originalPrice })}\n \n \n {originalPrice}\n \n )\n \n );\n }\n\n return (\n <>\n \n {intl.formatMessage(messages.srPrices, { discountedPrice, originalPrice })}\n \n \n {discountedPrice} ({originalPrice})\n \n \n );\n}\n\nFormattedPricing.defaultProps = {\n inline: false,\n offer: null,\n verifiedMode: null,\n};\n\nFormattedPricing.propTypes = {\n inline: PropTypes.bool,\n intl: intlShape.isRequired,\n offer: PropTypes.shape({\n discountedPrice: PropTypes.string.isRequired,\n originalPrice: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.string.isRequired,\n }),\n verifiedMode: PropTypes.shape({\n currencySymbol: PropTypes.string.isRequired,\n price: PropTypes.number.isRequired,\n upgradeUrl: PropTypes.string.isRequired,\n }),\n};\n\nexport default injectIntl(FormattedPricing);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage, injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button } from '@edx/paragon';\n\nimport FormattedPricing from './FormattedPricing';\n\nfunction UpgradeButton(props) {\n const {\n intl,\n offer,\n variant,\n onClick,\n verifiedMode,\n ...rest\n } = props;\n\n // Prefer offer's url in case it is ever different (though it is not at time of this writing)\n const url = offer ? offer.upgradeUrl : verifiedMode.upgradeUrl;\n\n return (\n \n \n ),\n }}\n />\n \n );\n}\n\nUpgradeButton.defaultProps = {\n offer: null,\n onClick: null,\n variant: 'primary',\n};\n\nUpgradeButton.propTypes = {\n intl: intlShape.isRequired,\n offer: PropTypes.shape({\n upgradeUrl: PropTypes.string.isRequired,\n }),\n onClick: PropTypes.func,\n verifiedMode: PropTypes.shape({\n upgradeUrl: PropTypes.string.isRequired,\n }).isRequired,\n variant: PropTypes.string,\n};\n\nexport default injectIntl(UpgradeButton);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage, injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button } from '@edx/paragon';\n\nimport FormattedPricing from './FormattedPricing';\n\nfunction UpgradeNowButton(props) {\n const {\n intl,\n offer,\n variant,\n onClick,\n verifiedMode,\n ...rest\n } = props;\n\n // Prefer offer's url in case it is ever different (though it is not at time of this writing)\n const url = offer ? offer.upgradeUrl : verifiedMode.upgradeUrl;\n\n return (\n \n \n ),\n }}\n />\n \n );\n}\n\nUpgradeNowButton.defaultProps = {\n offer: null,\n onClick: null,\n variant: 'primary',\n};\n\nUpgradeNowButton.propTypes = {\n intl: intlShape.isRequired,\n offer: PropTypes.shape({\n upgradeUrl: PropTypes.string.isRequired,\n }),\n onClick: PropTypes.func,\n verifiedMode: PropTypes.shape({\n upgradeUrl: PropTypes.string.isRequired,\n }).isRequired,\n variant: PropTypes.string,\n};\n\nexport default injectIntl(UpgradeNowButton);\n","import React from 'react';\n\nconst UserMessagesContext = React.createContext({});\n\nexport default UserMessagesContext;\n","import React, { useContext, useCallback, Suspense } from 'react';\nimport PropTypes from 'prop-types';\n\nimport UserMessagesContext from './UserMessagesContext';\nimport Alert from './Alert';\n\nexport default function AlertList({\n topic, className, customAlerts, customProps,\n}) {\n const { remove, messages } = useContext(UserMessagesContext);\n const getAlertComponent = useCallback(\n (code) => (customAlerts[code] !== undefined ? customAlerts[code] : Alert),\n [customAlerts],\n );\n\n const topicMessages = messages.filter(message => !topic || message.topic === topic);\n if (topicMessages.length === 0) {\n return null;\n }\n\n return (\n
\n {topicMessages.map(message => {\n const AlertComponent = getAlertComponent(message.code);\n return (\n \n remove(message.id)}\n payload={message.payload}\n {...customProps}\n >\n {message.text}\n \n \n );\n })}\n
\n );\n}\n\nAlertList.propTypes = {\n className: PropTypes.string,\n topic: PropTypes.string,\n customAlerts: PropTypes.objectOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.node,\n ]),\n ),\n // eslint-disable-next-line react/forbid-prop-types\n customProps: PropTypes.object,\n};\n\nAlertList.defaultProps = {\n topic: null,\n className: null,\n customAlerts: {},\n customProps: {},\n};\n","/* eslint-disable import/prefer-default-export */\nimport { useContext, useEffect } from 'react';\nimport UserMessagesContext from './UserMessagesContext';\n\nexport function useAlert(isVisible, {\n code, text, topic, type, payload, dismissible,\n}) {\n const { add, remove } = useContext(UserMessagesContext);\n\n // Please note:\n // The deps list [isVisible, code, ... etc.] in this `useEffect` call prevents the\n // effect from running if none of deps have changed. However, \"changed\" for objects is\n // defined in terms of identity; thus, if you provide a payload that is *seemingly* equal\n // to the previous one but *actually* a different object, then this effect will run.\n // If you are particularly unlucky, this will cause an infinite re-render loop.\n // This manifested itself in TNL-7400.\n // We hope to address the underlying issue in TNL-7418.\n // In the mean time, you may follow the pattern that `useAccessExpirationAlert`\n // establishes: memoize the payload so that the exact same object is used if the\n // payload has not changed. And don't put values based off of now() in your payload, as\n // that breaks memoization.\n useEffect(() => {\n if (!isVisible) {\n return undefined;\n }\n\n const cleanupId = add({\n code, text, topic, type, payload, dismissible,\n });\n\n return () => {\n remove(cleanupId);\n };\n }, [isVisible, code, text, topic, type, payload, dismissible]);\n}\n","// Helper, that is used to forcibly finalize all promises\n// in thunk before running matcher against state.\nexport const executeThunk = async (thunk, dispatch, getState) => {\n await thunk(dispatch, getState);\n await new Promise(setImmediate);\n};\n\n// Utility function for appending the browser timezone to the url\n// Can be used on the backend when the user timezone is not set in the user account\nexport const appendBrowserTimezoneToUrl = (url) => {\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const urlObject = new URL(url);\n if (browserTimezone) {\n urlObject.searchParams.append('browser_timezone', browserTimezone);\n }\n return urlObject.href;\n};\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n certStatusEarnedNotAvailableHeader: {\n id: 'cert.alert.earned.unavailable.header',\n defaultMessage: 'Your grade and certificate will be ready soon!',\n description: 'Header alerting the user that their certificate will be available soon.',\n },\n certStatusDownloadableHeader: {\n id: 'cert.alert.earned.ready.header',\n defaultMessage: 'Congratulations! Your certificate is ready.',\n description: 'Header alerting the user that their certificate is ready.',\n },\n certStatusNotPassingHeader: {\n id: 'cert.alert.notPassing.header',\n defaultMessage: 'You are not eligible for a certificate',\n },\n certStatusNotPassingButton: {\n id: 'cert.alert.notPassing.button',\n defaultMessage: 'View grades',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n FormattedDate,\n FormattedMessage,\n injectIntl,\n intlShape,\n} from '@edx/frontend-platform/i18n';\nimport { Alert, Button } from '@edx/paragon';\nimport { useDispatch } from 'react-redux';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCheckCircle, faExclamationTriangle } from '@fortawesome/free-solid-svg-icons';\nimport { getConfig } from '@edx/frontend-platform';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport certMessages from './messages';\nimport certStatusMessages from '../../../progress-tab/certificate-status/messages';\nimport { requestCert } from '../../../data/thunks';\n\nexport const CERT_STATUS_TYPE = {\n EARNED_NOT_AVAILABLE: 'earned_but_not_available',\n DOWNLOADABLE: 'downloadable',\n REQUESTING: 'requesting',\n UNVERIFIED: 'unverified',\n};\n\nfunction CertificateStatusAlert({ intl, payload }) {\n const dispatch = useDispatch();\n const {\n certificateAvailableDate,\n certStatus,\n courseEndDate,\n courseId,\n certURL,\n isWebCert,\n userTimezone,\n org,\n notPassingCourseEnded,\n tabs,\n } = payload;\n\n // eslint-disable-next-line react/prop-types\n const AlertWrapper = (props) => props.children(props);\n\n const sendAlertClickTracking = (id) => {\n const { administrator } = getAuthenticatedUser();\n sendTrackEvent(id, {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n });\n };\n\n const renderCertAwardedStatus = () => {\n const alertProps = {\n variant: 'success',\n icon: faCheckCircle,\n iconClassName: 'alert-icon text-success-500',\n };\n if (certStatus === CERT_STATUS_TYPE.EARNED_NOT_AVAILABLE) {\n const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};\n const certificateAvailableDateFormatted = ;\n const courseEndDateFormatted = ;\n alertProps.header = intl.formatMessage(certMessages.certStatusEarnedNotAvailableHeader);\n alertProps.body = (\n

\n \n

\n );\n } else if (certStatus === CERT_STATUS_TYPE.DOWNLOADABLE) {\n alertProps.header = intl.formatMessage(certMessages.certStatusDownloadableHeader);\n if (isWebCert) {\n alertProps.buttonMessage = intl.formatMessage(certStatusMessages.viewableButton);\n } else {\n alertProps.buttonMessage = intl.formatMessage(certStatusMessages.downloadableButton);\n }\n alertProps.buttonVisible = true;\n alertProps.buttonLink = certURL;\n alertProps.buttonAction = () => {\n sendAlertClickTracking('edx.ui.lms.course_outline.certificate_alert_downloadable_button.clicked');\n };\n } else if (certStatus === CERT_STATUS_TYPE.REQUESTING) {\n alertProps.header = intl.formatMessage(certMessages.certStatusDownloadableHeader);\n alertProps.buttonMessage = intl.formatMessage(certStatusMessages.requestableButton);\n alertProps.buttonVisible = true;\n alertProps.buttonLink = '';\n alertProps.buttonAction = () => {\n sendAlertClickTracking('edx.ui.lms.course_outline.certificate_alert_request_cert_button.clicked');\n dispatch(requestCert(courseId));\n };\n }\n return alertProps;\n };\n\n const renderNotIDVerifiedStatus = () => {\n const alertProps = {\n variant: 'warning',\n icon: faExclamationTriangle,\n iconClassName: 'alert-icon text-warning-500',\n header: intl.formatMessage(certStatusMessages.unverifiedHomeHeader),\n buttonMessage: intl.formatMessage(certStatusMessages.unverifiedHomeButton),\n body: intl.formatMessage(certStatusMessages.unverifiedHomeBody),\n buttonVisible: true,\n buttonLink: getConfig().SUPPORT_URL_ID_VERIFICATION,\n buttonAction: () => {\n sendAlertClickTracking('edx.ui.lms.course_outline.certificate_alert_unverified_button.clicked');\n },\n };\n\n return alertProps;\n };\n\n const renderNotPassingCourseEnded = () => {\n const progressTab = tabs.find(tab => tab.slug === 'progress');\n const progressLink = progressTab && progressTab.url;\n\n const alertProps = {\n header: intl.formatMessage(certMessages.certStatusNotPassingHeader),\n buttonMessage: intl.formatMessage(certMessages.certStatusNotPassingButton),\n body: intl.formatMessage(certStatusMessages.notPassingBody),\n buttonVisible: true,\n buttonLink: progressLink,\n buttonAction: () => {\n sendAlertClickTracking('edx.ui.lms.course_outline.certificate_alert_view_grades_button.clicked');\n },\n };\n\n return alertProps;\n };\n\n let alertProps = {};\n switch (certStatus) {\n case CERT_STATUS_TYPE.EARNED_NOT_AVAILABLE:\n case CERT_STATUS_TYPE.DOWNLOADABLE:\n case CERT_STATUS_TYPE.REQUESTING:\n alertProps = renderCertAwardedStatus();\n break;\n case CERT_STATUS_TYPE.UNVERIFIED:\n alertProps = renderNotIDVerifiedStatus();\n break;\n default:\n if (notPassingCourseEnded) {\n alertProps = renderNotPassingCourseEnded();\n }\n break;\n }\n\n return (\n \n {({\n variant,\n buttonVisible,\n iconClassName,\n icon,\n header,\n body,\n buttonAction,\n buttonLink,\n buttonMessage,\n }) => (\n \n
\n
\n \n {header}\n {body}\n
\n {buttonVisible && (\n
\n {\n if (buttonAction) { buttonAction(); }\n }}\n >\n {buttonMessage}\n \n
\n )}\n
\n
\n\n )}\n
\n );\n}\n\nCertificateStatusAlert.propTypes = {\n intl: intlShape.isRequired,\n payload: PropTypes.shape({\n certificateAvailableDate: PropTypes.string,\n certStatus: PropTypes.string,\n courseEndDate: PropTypes.string,\n courseId: PropTypes.string,\n certURL: PropTypes.string,\n isWebCert: PropTypes.bool,\n userTimezone: PropTypes.string,\n org: PropTypes.string,\n notPassingCourseEnded: PropTypes.bool,\n tabs: PropTypes.arrayOf(PropTypes.shape({\n tab_id: PropTypes.string,\n title: PropTypes.string,\n url: PropTypes.string,\n })),\n }).isRequired,\n};\n\nexport default injectIntl(CertificateStatusAlert);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Alert as ParagonAlert } from '@edx/paragon';\nimport { CheckCircle, Info, WarningFilled } from '@edx/paragon/icons';\n\nimport { ALERT_TYPES } from './UserMessagesProvider';\n\nfunction getAlertVariant(type) {\n switch (type) {\n case ALERT_TYPES.ERROR:\n return 'warning';\n case ALERT_TYPES.DANGER:\n return 'danger';\n case ALERT_TYPES.SUCCESS:\n return 'success';\n default:\n return 'info';\n }\n}\n\nfunction getAlertIcon(type) {\n switch (type) {\n case ALERT_TYPES.ERROR:\n return WarningFilled;\n case ALERT_TYPES.SUCCESS:\n return CheckCircle;\n default:\n return Info;\n }\n}\n\nfunction Alert({\n type, dismissible, children, onDismiss, stacked,\n}) {\n return (\n \n {children}\n \n );\n}\n\nAlert.propTypes = {\n type: PropTypes.oneOf([\n ALERT_TYPES.ERROR,\n ALERT_TYPES.DANGER,\n ALERT_TYPES.INFO,\n ALERT_TYPES.SUCCESS,\n ]).isRequired,\n dismissible: PropTypes.bool,\n children: PropTypes.node,\n onDismiss: PropTypes.func,\n stacked: PropTypes.bool,\n};\n\nAlert.defaultProps = {\n dismissible: false,\n children: undefined,\n onDismiss: null,\n stacked: false,\n};\n\nexport default Alert;\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport UserMessagesContext from './UserMessagesContext';\nimport { getLocalStorage, popLocalStorage, setLocalStorage } from '../../data/localStorage';\n\nexport const ALERT_TYPES = {\n ERROR: 'error',\n DANGER: 'danger',\n SUCCESS: 'success',\n INFO: 'info',\n WELCOME: 'welcome',\n};\n\nconst FLASH_MESSAGES_LOCAL_STORAGE_KEY = 'UserMessagesProvider.flashMessages';\n\nfunction addFlashMessage(message) {\n let flashMessages = getLocalStorage(FLASH_MESSAGES_LOCAL_STORAGE_KEY);\n if (!flashMessages || !Array.isArray(flashMessages)) {\n flashMessages = [];\n }\n flashMessages.push(message);\n setLocalStorage(FLASH_MESSAGES_LOCAL_STORAGE_KEY, flashMessages);\n}\n\nfunction popFlashMessages() {\n return popLocalStorage(FLASH_MESSAGES_LOCAL_STORAGE_KEY) || [];\n}\n\nexport default function UserMessagesProvider({ children }) {\n // Note: The callbacks (add, remove, clear) below interact with useState in very subtle ways.\n // When we call setMessages, we always do so with the function-based form of the handler, making\n // use of the \"current\" state and not relying on lexical scoping to access the state exposed\n // above with useState. This is very important and allows us to call multiple \"add\", \"remove\",\n // or \"clear\" functions in a single render. Without it, each call to one of the callbacks\n // references back to the -original- value of messages instead of the most recent, causing them\n // all to override each other. Last one in would win.\n const [messages, setMessages] = useState([]);\n const [nextId, setNextId] = useState(1);\n\n // Because the add, remove, and clear handlers also need to access nextId, we have to do\n // something a bit different. There's no way to wait for the \"currentNextId\" in a setMessages\n // handler. The alternative is to update a ref, which will always point to the current value by\n // its very nature.\n const refId = useRef(nextId);\n\n /**\n * Flash messages are a special kind of message that appears once on page refresh.\n */\n function addFlash(message) {\n addFlashMessage(message);\n }\n\n function add(message) {\n const {\n code, dismissible, text, type, topic, payload, ...others\n } = message;\n const id = refId.current;\n setMessages(currentMessages => [...currentMessages, {\n code, dismissible, text, type, topic, payload, ...others, id,\n }]);\n refId.current += 1;\n setNextId(refId.current);\n\n return id;\n }\n\n function remove(id) {\n setMessages(currentMessages => currentMessages.filter(message => message.id !== id));\n }\n\n function clear(topic = null) {\n setMessages(currentMessages => (topic === null ? [] : currentMessages.filter(message => message.topic !== topic)));\n }\n\n useEffect(() => {\n // We only allow flash messages to persist through one refresh, then we clear them out.\n // If we want persistent messages, then add a 'persist' key to the messages and handle that\n // as a separate local storage item.\n const flashMessages = popFlashMessages();\n flashMessages.forEach(flashMessage => add(flashMessage));\n }, []);\n\n const value = {\n add,\n addFlash,\n remove,\n clear,\n messages,\n };\n\n return (\n \n {children}\n \n );\n}\n\nUserMessagesProvider.propTypes = {\n children: PropTypes.node,\n};\n\nUserMessagesProvider.defaultProps = {\n children: null,\n};\n","import arMessages from './messages/ar.json';\nimport caMessages from './messages/ca.json';\n// no need to import en messages-- they are in the defaultMessage field\nimport es419Messages from './messages/es_419.json';\nimport frMessages from './messages/fr.json';\nimport zhcnMessages from './messages/zh_CN.json';\nimport heMessages from './messages/he.json';\nimport idMessages from './messages/id.json';\nimport kokrMessages from './messages/ko_kr.json';\nimport plMessages from './messages/pl.json';\nimport ptbrMessages from './messages/pt_br.json';\nimport ruMessages from './messages/ru.json';\nimport thMessages from './messages/th.json';\nimport ukMessages from './messages/uk.json';\n\nconst messages = {\n ar: arMessages,\n 'es-419': es419Messages,\n fr: frMessages,\n 'zh-cn': zhcnMessages,\n ca: caMessages,\n he: heMessages,\n id: idMessages,\n 'ko-kr': kokrMessages,\n pl: plMessages,\n 'pt-br': ptbrMessages,\n ru: ruMessages,\n th: thMessages,\n uk: ukMessages,\n};\n\nexport default messages;\n","function daycmp(a, b) {\n if (a.getFullYear() < b.getFullYear()) { return -1; }\n if (a.getFullYear() > b.getFullYear()) { return 1; }\n if (a.getMonth() < b.getMonth()) { return -1; }\n if (a.getMonth() > b.getMonth()) { return 1; }\n if (a.getDate() < b.getDate()) { return -1; }\n if (a.getDate() > b.getDate()) { return 1; }\n return 0;\n}\n\n// item is a date block returned from the API\nfunction isLearnerAssignment(item) {\n return item.learnerHasAccess && item.dateType === 'assignment-due-date';\n}\n\nexport { daycmp, isLearnerAssignment };\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCalendarAlt } from '@fortawesome/free-regular-svg-icons';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { FormattedDate } from '@edx/frontend-platform/i18n';\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { useModel } from '../../generic/model-store';\nimport { isLearnerAssignment } from '../dates-tab/utils';\nimport './DateSummary.scss';\n\nexport default function DateSummary({\n dateBlock,\n userTimezone,\n /** [MM-P2P] Experiment */\n mmp2p,\n}) {\n const {\n courseId,\n } = useSelector(state => state.courseHome);\n const {\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const linkedTitle = dateBlock.link && isLearnerAssignment(dateBlock);\n const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};\n\n /** [MM-P2P] Experiment */\n const showMMP2P = mmp2p.state.isEnabled && (dateBlock.dateType === 'verified-upgrade-deadline');\n\n const logVerifiedUpgradeClick = () => {\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n org_key: org,\n courserun_key: courseId,\n linkCategory: '(none)',\n linkName: 'course_home_dates',\n linkType: 'link',\n pageName: 'course_home',\n });\n };\n\n return (\n
  • \n
    \n \n
    \n \n
    \n
    \n {/** [MM-P2P] Experiment (conditional) */}\n { showMMP2P ? (\n
    \n
    \n
    \n Last chance to upgrade\n
    \n
    \n
    \n You are still eligible to upgrade to a Verified Certificate!\n   Unlock full course access and highlight the knowledge you'll gain.\n
    \n
    \n ) : (\n
    \n
    \n {linkedTitle && (\n \n )}\n {!linkedTitle && (\n
    {dateBlock.title}
    \n )}\n
    \n {dateBlock.description && (\n
    {dateBlock.description}
    \n )}\n {!linkedTitle && dateBlock.link && (\n {}}\n className=\"description-link\"\n >\n {dateBlock.linkText}\n \n )}\n
    \n )}\n
  • \n );\n}\n\nDateSummary.propTypes = {\n dateBlock: PropTypes.shape({\n date: PropTypes.string.isRequired,\n dateType: PropTypes.string,\n description: PropTypes.string,\n link: PropTypes.string,\n linkText: PropTypes.string,\n title: PropTypes.string.isRequired,\n learnerHasAccess: PropTypes.bool,\n }).isRequired,\n userTimezone: PropTypes.string,\n /** [MM-P2P] Experiment */\n mmp2p: PropTypes.shape({\n state: PropTypes.shape({\n isEnabled: PropTypes.bool.isRequired,\n upgradeDeadline: PropTypes.string,\n }),\n }),\n};\n\nDateSummary.defaultProps = {\n userTimezone: null,\n /** [MM-P2P] Experiment */\n mmp2p: {\n state: {\n isEnabled: false,\n upgradeDeadline: '',\n },\n },\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\n\nimport DateSummary from '../DateSummary';\nimport messages from '../messages';\nimport { useModel } from '../../../generic/model-store';\n\nfunction CourseDates({\n courseId,\n intl,\n /** [MM-P2P] Experiment */\n mmp2p,\n}) {\n const {\n userTimezone,\n } = useModel('courseHomeMeta', courseId);\n const {\n datesWidget: {\n courseDateBlocks,\n datesTabLink,\n },\n } = useModel('outline', courseId);\n\n if (courseDateBlocks.length === 0) {\n return null;\n }\n\n return (\n
    \n

    {intl.formatMessage(messages.dates)}

    \n
      \n {courseDateBlocks.map((courseDateBlock) => (\n \n ))}\n
    \n \n {intl.formatMessage(messages.allDates)}\n \n
    \n );\n}\n\nCourseDates.propTypes = {\n courseId: PropTypes.string,\n intl: intlShape.isRequired,\n /** [MM-P2P] Experiment */\n mmp2p: PropTypes.shape({}),\n};\n\nCourseDates.defaultProps = {\n courseId: null,\n /** [MM-P2P] Experiment */\n mmp2p: {},\n};\n\nexport default injectIntl(CourseDates);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Button, Card } from '@edx/paragon';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\n\nimport messages from '../messages';\n\nimport { saveCourseGoal } from '../../data';\n\nfunction CourseGoalCard({\n courseId,\n goalOptions,\n intl,\n title,\n setGoalToDisplay,\n setGoalToastHeader,\n}) {\n function selectGoalHandler(event) {\n const selectedGoal = {\n key: event.currentTarget.getAttribute('data-goal-key'),\n text: event.currentTarget.getAttribute('data-goal-text'),\n };\n\n saveCourseGoal(courseId, selectedGoal.key).then((response) => {\n const { data } = response;\n const {\n header,\n } = data;\n\n setGoalToDisplay(selectedGoal);\n setGoalToastHeader(header);\n });\n }\n\n return (\n \n \n
    \n
    \n

    {intl.formatMessage(messages.welcomeTo)} {title}

    \n
    \n
    \n { selectGoalHandler(event); }}\n >\n {intl.formatMessage(messages.goalUnsure)}\n \n
    \n
    \n {intl.formatMessage(messages.setGoal)}\n
    \n {goalOptions.map((goal) => {\n const [goalKey, goalText] = goal;\n return (\n (goalKey !== 'unsure') && (\n
    \n { selectGoalHandler(event); }}\n >\n {goalText}\n \n
    \n )\n );\n })}\n
    \n
    \n
    \n );\n}\n\nCourseGoalCard.propTypes = {\n courseId: PropTypes.string.isRequired,\n goalOptions: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.string),\n ).isRequired,\n intl: intlShape.isRequired,\n title: PropTypes.string.isRequired,\n setGoalToDisplay: PropTypes.func.isRequired,\n setGoalToastHeader: PropTypes.func.isRequired,\n};\n\nexport default injectIntl(CourseGoalCard);\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getConfig } from '@edx/frontend-platform';\n\nexport default function LmsHtmlFragment({\n className,\n html,\n title,\n ...rest\n}) {\n const wholePage = `\n \n \n \n \n \n \n ${html}\n \n `;\n\n const iframe = useRef(null);\n function handleLoad() {\n iframe.current.height = iframe.current.contentWindow.document.body.scrollHeight;\n }\n\n return (\n \n );\n}\n\nLmsHtmlFragment.defaultProps = {\n className: '',\n};\n\nLmsHtmlFragment.propTypes = {\n className: PropTypes.string,\n html: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\n\nimport LmsHtmlFragment from '../LmsHtmlFragment';\nimport messages from '../messages';\nimport { useModel } from '../../../generic/model-store';\n\nfunction CourseHandouts({ courseId, intl }) {\n const {\n handoutsHtml,\n } = useModel('outline', courseId);\n\n if (!handoutsHtml) {\n return null;\n }\n\n return (\n
    \n

    {intl.formatMessage(messages.handouts)}

    \n \n
    \n );\n}\n\nCourseHandouts.propTypes = {\n courseId: PropTypes.string.isRequired,\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(CourseHandouts);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\n\nimport messages from '../messages';\nimport { useModel } from '../../../generic/model-store';\n\nfunction CourseRevision({ courseId, intl }) {\n const {\n courseRevision,\n } = useModel('outline', courseId);\n\n if (!courseRevision) {\n return null;\n }\n\n return (\n
    \n

    {intl.formatMessage(messages.revision)}

    \n {courseRevision}\n
    \n );\n}\n\nCourseRevision.propTypes = {\n courseId: PropTypes.string.isRequired,\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(CourseRevision);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faBookmark, faCertificate, faInfo, faCalendar, faStar,\n} from '@fortawesome/free-solid-svg-icons';\nimport { faNewspaper } from '@fortawesome/free-regular-svg-icons';\n\nimport messages from '../messages';\nimport { useModel } from '../../../generic/model-store';\n\nfunction CourseTools({ courseId, intl }) {\n const { org } = useModel('courseHomeMeta', courseId);\n const {\n courseTools,\n } = useModel('outline', courseId);\n\n if (courseTools.length === 0) {\n return null;\n }\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const logClick = (analyticsId) => {\n const { administrator } = getAuthenticatedUser();\n sendTrackingLogEvent('edx.course.tool.accessed', {\n ...eventProperties,\n course_id: courseId, // should only be courserun_key, but left as-is for historical reasons\n is_staff: administrator,\n tool_name: analyticsId,\n });\n };\n\n const renderIcon = (iconClasses) => {\n switch (iconClasses) {\n case 'edx.bookmarks':\n return faBookmark;\n case 'edx.tool.verified_upgrade':\n return faCertificate;\n case 'edx.tool.financial_assistance':\n return faInfo;\n case 'edx.calendar-sync':\n return faCalendar;\n case 'edx.updates':\n return faNewspaper;\n case 'edx.reviews':\n return faStar;\n default:\n return null;\n }\n };\n\n return (\n
    \n

    {intl.formatMessage(messages.tools)}

    \n \n
    \n );\n}\n\nCourseTools.propTypes = {\n courseId: PropTypes.string,\n intl: intlShape.isRequired,\n};\n\nCourseTools.defaultProps = {\n courseId: null,\n};\n\nexport default injectIntl(CourseTools);\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n activities: {\n id: 'learning.effortEstimation.activities',\n defaultMessage: '{activityCount, plural, one {# activity} other {# activities}}',\n },\n minutesAbbreviated: {\n id: 'learning.effortEstimation.minutesAbbreviated',\n defaultMessage: '{minuteCount, plural, one {# min} other {# min}}',\n description: 'Number of minutes in a casual, shorthand manner: 5 min',\n },\n minutesFull: {\n id: 'learning.effortEstimation.minutesFull',\n defaultMessage: '{minuteCount, plural, one {# minute} other {# minutes}}',\n description: 'Number of minutes spelled out: 5 minutes',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FormattedMessage, injectIntl, intlShape } from '@edx/frontend-platform/i18n';\n\nimport messages from './messages';\n\n// This component shows an effort estimate provided by the backend block data. Either time, activities, or both.\n\nfunction EffortEstimate(props) {\n const {\n block: {\n effortActivities,\n effortTime,\n },\n className,\n intl,\n } = props;\n\n const minuteCount = Math.ceil(effortTime / 60); // effortTime is in seconds\n const minutesAbbreviated = intl.formatMessage(messages.minutesAbbreviated, { minuteCount });\n const minutesFull = intl.formatMessage(messages.minutesFull, { minuteCount });\n const minutes = (\n <>\n {minutesAbbreviated}\n {minutesFull}\n \n );\n const activities = intl.formatMessage(messages.activities, { activityCount: effortActivities });\n let content = null;\n\n if (effortTime && effortActivities) {\n content = (\n \n );\n } else if (effortTime) {\n content = minutes;\n } else if (effortActivities) {\n content = activities;\n } else {\n return null;\n }\n\n return (\n \n {content}\n \n );\n}\n\nEffortEstimate.defaultProps = {\n className: null,\n};\n\nEffortEstimate.propTypes = {\n block: PropTypes.shape({\n effortActivities: PropTypes.number,\n effortTime: PropTypes.number,\n }).isRequired,\n className: PropTypes.string,\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(EffortEstimate);\n","import EffortEstimate from './EffortEstimate';\n\nexport default EffortEstimate;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Link } from 'react-router-dom';\nimport { Hyperlink } from '@edx/paragon';\nimport {\n FormattedMessage,\n FormattedTime,\n injectIntl,\n intlShape,\n} from '@edx/frontend-platform/i18n';\nimport { faCheckCircle as fasCheckCircle } from '@fortawesome/free-solid-svg-icons';\nimport { faCheckCircle as farCheckCircle } from '@fortawesome/free-regular-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport EffortEstimate from '../../shared/effort-estimate';\nimport { useModel } from '../../generic/model-store';\nimport messages from './messages';\nimport './SequenceLink.scss';\n\nfunction SequenceLink({\n id,\n intl,\n courseId,\n first,\n sequence,\n}) {\n const {\n complete,\n description,\n due,\n legacyWebUrl,\n showLink,\n title,\n } = sequence;\n const {\n userTimezone,\n } = useModel('outline', courseId);\n const {\n canLoadCourseware,\n } = useModel('courseHomeMeta', courseId);\n\n const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};\n\n // canLoadCourseware is true if the Courseware MFE is enabled, false otherwise\n const coursewareUrl = (\n canLoadCourseware\n ? {title}\n : {title}\n );\n const displayTitle = showLink ? coursewareUrl : title;\n\n return (\n
  • \n
    \n
    \n
    \n {complete ? (\n \n ) : (\n \n )}\n
    \n
    \n {displayTitle}\n \n , {intl.formatMessage(complete ? messages.completedAssignment : messages.incompleteAssignment)}\n \n \n
    \n
    \n {due && (\n
    \n \n \n ),\n description: description || '',\n }}\n />\n \n
    \n )}\n
    \n
  • \n );\n}\n\nSequenceLink.propTypes = {\n id: PropTypes.string.isRequired,\n intl: intlShape.isRequired,\n courseId: PropTypes.string.isRequired,\n first: PropTypes.bool.isRequired,\n sequence: PropTypes.shape().isRequired,\n};\n\nexport default injectIntl(SequenceLink);\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button, Collapsible, IconButton } from '@edx/paragon';\nimport { faCheckCircle as fasCheckCircle, faMinus, faPlus } from '@fortawesome/free-solid-svg-icons';\nimport { faCheckCircle as farCheckCircle } from '@fortawesome/free-regular-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport SequenceLink from './SequenceLink';\nimport { useModel } from '../../generic/model-store';\n\nimport genericMessages from '../../generic/messages';\nimport messages from './messages';\n\nfunction Section({\n courseId,\n defaultOpen,\n expand,\n intl,\n section,\n}) {\n const {\n badgeProgress,\n complete,\n sequenceIds,\n title,\n } = section;\n const {\n courseBlocks: {\n sequences,\n },\n } = useModel('outline', courseId);\n\n const [open, setOpen] = useState(defaultOpen);\n\n useEffect(() => {\n setOpen(expand);\n }, [expand]);\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, []);\n\n const badgeProgressUrl = './badges/progress';\n\n const sectionTitle = (\n
    \n
    \n {complete ? (\n \n ) : (\n \n )}\n
    \n
    \n {title}\n \n , {intl.formatMessage(complete ? messages.completedSection : messages.incompleteSection)}\n \n {badgeProgress ? (\n <>\n {badgeProgressUrl && (\n \n \n \n )}\n \n ) : (\n <>\n )}\n
    \n
    \n );\n\n return (\n
  • \n { setOpen(!open); }}\n iconWhenClosed={(\n { setOpen(true); }}\n size=\"sm\"\n />\n )}\n iconWhenOpen={(\n { setOpen(false); }}\n size=\"sm\"\n />\n )}\n >\n
      \n {sequenceIds.map((sequenceId, index) => (\n \n ))}\n
    \n \n
  • \n );\n}\n\nSection.propTypes = {\n courseId: PropTypes.string.isRequired,\n defaultOpen: PropTypes.bool.isRequired,\n expand: PropTypes.bool.isRequired,\n intl: intlShape.isRequired,\n section: PropTypes.shape().isRequired,\n};\n\nexport default injectIntl(Section);\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n suggestedSchedule: {\n id: 'datesBanner.suggestedSchedule',\n defaultMessage: 'We’ve built a suggested schedule to help you stay on track. But don’t worry—it’s flexible so you'\n + ' can learn at your own pace.',\n },\n upgradeToCompleteHeader: {\n id: 'datesBanner.upgradeToCompleteGradedBanner.header',\n defaultMessage: 'Upgrade to unlock',\n description: 'Messaging that prompts users to upgrade their course status in order to access locked course content',\n },\n upgradeToCompleteBody: {\n id: 'datesBanner.upgradeToCompleteGradedBanner.body',\n defaultMessage: 'You are auditing this course, which means that you are unable to participate in graded'\n + ' assignments. To complete graded assignments as part of this course, you can upgrade today.',\n },\n upgradeToCompleteButton: {\n id: 'datesBanner.upgradeToCompleteGradedBanner.button',\n defaultMessage: 'Upgrade now',\n description: 'Button that prompts users to upgrade their course status',\n },\n upgradeToShiftBody: {\n id: 'datesBanner.upgradeToResetBanner.body',\n defaultMessage: 'To keep yourself on track, you can update this schedule and shift the past due assignments into'\n + ' the future. Don’t worry—you won’t lose any of the progress you’ve made when you shift your due dates.',\n },\n upgradeToShiftButton: {\n id: 'datesBanner.upgradeToResetBanner.button',\n defaultMessage: 'Upgrade to shift due dates',\n description: 'Button that prompts users to upgrade their course status before they can shift their due dates into'\n + ' the future',\n },\n missedDeadlines: {\n id: 'datesBanner.resetDatesBanner.header',\n defaultMessage: 'It looks like you missed some important deadlines based on our suggested schedule.',\n },\n shiftDatesBody: {\n id: 'datesBanner.resetDatesBanner.body',\n defaultMessage: 'To keep yourself on track, you can update this schedule and shift the past due assignments into'\n + ' the future. Don’t worry—you won’t lose any of the progress you’ve made when you shift your due dates.',\n },\n shiftDatesButton: {\n id: 'datesBanner.resetDatesBanner.button',\n defaultMessage: 'Shift due dates',\n description: 'Button that prompts users to move their due dates into the future',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport {\n Alert,\n Button,\n Row,\n Col,\n} from '@edx/paragon';\n\nimport { resetDeadlines } from '../data';\nimport { useModel } from '../../generic/model-store';\nimport messages from './messages';\n\nfunction ShiftDatesAlert({ fetch, intl, model }) {\n const {\n courseId,\n } = useSelector(state => state.courseHome);\n\n const {\n datesBannerInfo,\n hasEnded,\n } = useModel(model, courseId);\n\n const {\n missedDeadlines,\n missedGatedContent,\n } = datesBannerInfo;\n\n if (!missedDeadlines || missedGatedContent || hasEnded) {\n return null;\n }\n\n const dispatch = useDispatch();\n\n return (\n \n \n \n {intl.formatMessage(messages.missedDeadlines)}\n {' '}{intl.formatMessage(messages.shiftDatesBody)}\n \n \n dispatch(resetDeadlines(courseId, model, fetch))}\n >\n {intl.formatMessage(messages.shiftDatesButton)}\n \n \n \n \n );\n}\n\nShiftDatesAlert.propTypes = {\n fetch: PropTypes.func.isRequired,\n intl: intlShape.isRequired,\n model: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(ShiftDatesAlert);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Dropdown } from '@edx/paragon';\n\nimport messages from '../messages';\nimport { saveCourseGoal } from '../../data';\n\nfunction UpdateGoalSelector({\n courseId,\n goalOptions,\n intl,\n selectedGoal,\n setGoalToDisplay,\n setGoalToastHeader,\n}) {\n function selectGoalHandler(event) {\n const key = event.currentTarget.id;\n const text = event.currentTarget.innerText;\n const newGoal = {\n key,\n text,\n };\n\n setGoalToDisplay(newGoal);\n saveCourseGoal(courseId, key).then((response) => {\n const { data } = response;\n const {\n header,\n } = data;\n\n setGoalToastHeader(header);\n });\n }\n\n return (\n <>\n
    \n
    \n
    \n \n
    \n
    \n \n \n {selectedGoal.text}\n \n \n {goalOptions.map(([goalKey, goalText]) => (\n { selectGoalHandler(event); }}\n role=\"button\"\n >\n {goalText}\n \n ))}\n \n \n
    \n
    \n
    \n \n );\n}\n\nUpdateGoalSelector.propTypes = {\n courseId: PropTypes.string.isRequired,\n goalOptions: PropTypes.arrayOf(\n PropTypes.arrayOf(PropTypes.string),\n ).isRequired,\n intl: intlShape.isRequired,\n selectedGoal: PropTypes.shape({\n key: PropTypes.string,\n text: PropTypes.string,\n }).isRequired,\n setGoalToDisplay: PropTypes.func.isRequired,\n setGoalToastHeader: PropTypes.func.isRequired,\n};\n\nexport default injectIntl(UpdateGoalSelector);\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { FormattedDate, FormattedMessage, injectIntl } from '@edx/frontend-platform/i18n';\nimport { getConfig } from '@edx/frontend-platform';\nimport { setLocalStorage } from '../../data/localStorage';\n\nimport { UpgradeButton } from '../upgrade-button';\n\nfunction UpsellNoFBECardContent() {\n const verifiedCertLink = (\n \n \n \n );\n\n return (\n
      \n
    • \n \n \n
    • \n
    • \n \n non-profit mission\n ),\n }}\n />\n
    • \n
    \n );\n}\n\nfunction UpsellFBEFarAwayCardContent() {\n const verifiedCertLink = (\n \n \n \n );\n\n const gradedAssignments = (\n \n \n \n );\n\n const fullAccess = (\n \n \n \n );\n\n const nonProfitMission = (\n \n \n \n );\n\n return (\n
      \n
    • \n \n \n
    • \n
    • \n \n \n
    • \n
    • \n \n \n
    • \n
    • \n \n \n
    • \n
    \n );\n}\n\nfunction UpsellFBESoonCardContent({ accessExpirationDate, timezoneFormatArgs }) {\n const includingAnyProgress = (\n \n \n \n );\n\n const date = (\n \n );\n\n const benefitsOfUpgrading = (\n \n \n \n );\n\n return (\n
    \n

    \n \n

    \n

    \n \n

    \n
    \n );\n}\n\nUpsellFBESoonCardContent.propTypes = {\n accessExpirationDate: PropTypes.PropTypes.instanceOf(Date).isRequired,\n timezoneFormatArgs: PropTypes.shape({\n timeZone: PropTypes.string,\n }),\n};\n\nUpsellFBESoonCardContent.defaultProps = {\n timezoneFormatArgs: {},\n};\n\nfunction ExpirationCountdown({ hoursToExpiration, setupgradeNotificationCurrentState, type }) {\n let expirationText;\n if (hoursToExpiration >= 24) {\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessDaysLeft');\n setLocalStorage('upgradeNotificationCurrentState', 'accessDaysLeft');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDdaysLeft');\n setLocalStorage('upgradeNotificationCurrentState', 'FPDdaysLeft');\n }\n }\n expirationText = (\n \n );\n } else if (hoursToExpiration >= 1) {\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessHoursLeft');\n setLocalStorage('upgradeNotificationCurrentState', 'accessHoursLeft');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDHoursLeft');\n setLocalStorage('upgradeNotificationCurrentState', 'FPDHoursLeft');\n }\n }\n expirationText = (\n \n );\n } else {\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessLastHour');\n setLocalStorage('upgradeNotificationCurrentState', 'accessLastHour');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDLastHour');\n setLocalStorage('upgradeNotificationCurrentState', 'FPDLastHour');\n }\n }\n expirationText = (\n \n );\n }\n return (
    {expirationText}
    );\n}\n\nExpirationCountdown.propTypes = {\n hoursToExpiration: PropTypes.number.isRequired,\n setupgradeNotificationCurrentState: PropTypes.func,\n type: PropTypes.string,\n};\nExpirationCountdown.defaultProps = {\n setupgradeNotificationCurrentState: null,\n type: null,\n};\n\nfunction AccessExpirationDateBanner({ accessExpirationDate, timezoneFormatArgs, setupgradeNotificationCurrentState }) {\n if (setupgradeNotificationCurrentState) {\n setupgradeNotificationCurrentState('accessDateView');\n setLocalStorage('upgradeNotificationCurrentState', 'accessDateView');\n }\n return (\n
    \n \n ),\n }}\n />\n
    \n );\n}\n\nAccessExpirationDateBanner.propTypes = {\n accessExpirationDate: PropTypes.PropTypes.instanceOf(Date).isRequired,\n timezoneFormatArgs: PropTypes.shape({\n timeZone: PropTypes.string,\n }),\n setupgradeNotificationCurrentState: PropTypes.func,\n};\n\nAccessExpirationDateBanner.defaultProps = {\n timezoneFormatArgs: {},\n setupgradeNotificationCurrentState: null,\n};\n\nfunction UpgradeNotification({\n accessExpiration,\n contentTypeGatingEnabled,\n courseId,\n offer,\n org,\n setupgradeNotificationCurrentState,\n shouldDisplayBorder,\n timeOffsetMillis,\n upsellPageName,\n userTimezone,\n verifiedMode,\n}) {\n const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};\n const correctedTime = new Date(Date.now() + timeOffsetMillis);\n\n if (!verifiedMode) {\n return null;\n }\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const promotionEventProperties = {\n creative: 'sidebarupsell',\n name: 'In-Course Verification Prompt',\n position: 'sidebar-message',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n };\n\n useEffect(() => {\n sendTrackingLogEvent('edx.bi.course.upgrade.sidebarupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n }, []);\n\n const logClick = () => {\n sendTrackingLogEvent('edx.bi.course.upgrade.sidebarupsell.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'sidebar-message',\n });\n sendTrackEvent('Promotion Clicked', promotionEventProperties);\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n /*\n There are 4 parts that change in the upgrade card:\n upgradeNotificationHeaderText\n expirationBanner\n upsellMessage\n offerCode\n */\n let upgradeNotificationHeaderText;\n let expirationBanner;\n let upsellMessage;\n let offerCode;\n\n if (!!accessExpiration && !!contentTypeGatingEnabled) {\n const accessExpirationDate = new Date(accessExpiration.expirationDate);\n const hoursToAccessExpiration = Math.floor((accessExpirationDate - correctedTime) / 1000 / 60 / 60);\n\n if (hoursToAccessExpiration >= (7 * 24)) {\n if (offer) { // countdown to the first purchase discount if there is one\n const hoursToDiscountExpiration = Math.floor((new Date(offer.expirationDate) - correctedTime) / 1000 / 60 / 60);\n upgradeNotificationHeaderText = (\n \n );\n expirationBanner = (\n \n );\n } else {\n upgradeNotificationHeaderText = (\n \n );\n expirationBanner = (\n \n );\n }\n upsellMessage = ;\n } else { // more urgent messaging if there's less than 7 days left to access expiration\n upgradeNotificationHeaderText = (\n \n );\n expirationBanner = (\n \n );\n upsellMessage = (\n \n );\n }\n } else { // FBE is turned off\n upgradeNotificationHeaderText = (\n \n );\n upsellMessage = ();\n }\n\n if (offer) { // if there's a first purchase discount, message the code at the bottom\n offerCode = (\n
    \n {offer.code}),\n }}\n />\n
    \n );\n }\n\n return (\n
    \n

    \n {upgradeNotificationHeaderText}\n

    \n {expirationBanner}\n
    \n {upsellMessage}\n
    \n
    \n \n
    \n {offerCode}\n
    \n );\n}\n\nUpgradeNotification.propTypes = {\n courseId: PropTypes.string.isRequired,\n org: PropTypes.string.isRequired,\n accessExpiration: PropTypes.shape({\n expirationDate: PropTypes.string,\n }),\n contentTypeGatingEnabled: PropTypes.bool,\n offer: PropTypes.shape({\n expirationDate: PropTypes.string,\n percentage: PropTypes.number,\n code: PropTypes.string,\n }),\n shouldDisplayBorder: PropTypes.bool,\n setupgradeNotificationCurrentState: PropTypes.func,\n timeOffsetMillis: PropTypes.number,\n upsellPageName: PropTypes.string.isRequired,\n userTimezone: PropTypes.string,\n verifiedMode: PropTypes.shape({\n currencySymbol: PropTypes.string.isRequired,\n price: PropTypes.number.isRequired,\n upgradeUrl: PropTypes.string.isRequired,\n }),\n};\n\nUpgradeNotification.defaultProps = {\n accessExpiration: null,\n contentTypeGatingEnabled: false,\n offer: null,\n setupgradeNotificationCurrentState: null,\n shouldDisplayBorder: null,\n timeOffsetMillis: 0,\n userTimezone: null,\n verifiedMode: null,\n};\n\nexport default injectIntl(UpgradeNotification);\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport {\n Alert,\n Button,\n Row,\n Col,\n} from '@edx/paragon';\n\nimport { useModel } from '../../generic/model-store';\nimport messages from './messages';\n\nfunction UpgradeToShiftDatesAlert({ intl, logUpgradeLinkClick, model }) {\n const {\n courseId,\n } = useSelector(state => state.courseHome);\n\n const {\n datesBannerInfo,\n hasEnded,\n } = useModel(model, courseId);\n\n const {\n contentTypeGatingEnabled,\n missedDeadlines,\n missedGatedContent,\n verifiedUpgradeLink,\n } = datesBannerInfo;\n\n if (!(contentTypeGatingEnabled && missedDeadlines && missedGatedContent && verifiedUpgradeLink) || hasEnded) {\n return null;\n }\n\n return (\n \n \n \n {intl.formatMessage(messages.missedDeadlines)}\n {' '}{intl.formatMessage(messages.upgradeToShiftBody)}\n \n \n {\n logUpgradeLinkClick();\n global.location.replace(verifiedUpgradeLink);\n }}\n >\n {intl.formatMessage(messages.upgradeToShiftButton)}\n \n \n \n \n );\n}\n\nUpgradeToShiftDatesAlert.propTypes = {\n intl: intlShape.isRequired,\n logUpgradeLinkClick: PropTypes.func,\n model: PropTypes.string.isRequired,\n};\n\nUpgradeToShiftDatesAlert.defaultProps = {\n logUpgradeLinkClick: () => {},\n};\n\nexport default injectIntl(UpgradeToShiftDatesAlert);\n","import React, { useMemo } from 'react';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { useAlert } from '../../../../generic/user-messages';\nimport { useModel } from '../../../../generic/model-store';\n\nimport { CERT_STATUS_TYPE } from './CertificateStatusAlert';\n\nconst CertificateStatusAlert = React.lazy(() => import('./CertificateStatusAlert'));\n\nfunction verifyCertStatusType(status) {\n switch (status) {\n case CERT_STATUS_TYPE.DOWNLOADABLE:\n case CERT_STATUS_TYPE.EARNED_NOT_AVAILABLE:\n case CERT_STATUS_TYPE.REQUESTING:\n case CERT_STATUS_TYPE.UNVERIFIED:\n return true;\n default:\n return false;\n }\n}\n\nfunction useCertificateStatusAlert(courseId) {\n const VERIFIED_MODES = {\n PROFESSIONAL: 'professional',\n VERIFIED: 'verified',\n NO_ID_PROFESSIONAL_MODE: 'no-id-professional',\n CREDIT_MODE: 'credit',\n MASTERS: 'masters',\n EXECUTIVE_EDUCATION: 'executive-education',\n };\n\n const {\n isEnrolled,\n org,\n tabs,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n datesWidget: {\n courseDateBlocks,\n },\n certData,\n hasEnded,\n userHasPassingGrade,\n userTimezone,\n enrollmentMode,\n } = useModel('outline', courseId);\n\n const {\n certStatus,\n certWebViewUrl,\n certificateAvailableDate,\n downloadUrl,\n } = certData || {};\n const endBlock = courseDateBlocks.find(b => b.dateType === 'course-end-date');\n const isWebCert = downloadUrl === null;\n const isVerifiedEnrollmentMode = (\n enrollmentMode !== null\n && enrollmentMode !== undefined\n && !!Object.values(VERIFIED_MODES).find(mode => mode === enrollmentMode)\n );\n let certURL = '';\n if (certWebViewUrl) {\n certURL = `${getConfig().LMS_BASE_URL}${certWebViewUrl}`;\n } else if (downloadUrl) {\n // PDF Certificate\n certURL = downloadUrl;\n }\n const hasAlertingCertStatus = verifyCertStatusType(certStatus);\n\n // Only show if:\n // - there is a known cert status that we want provide status on.\n // - Or the course has ended and the learner does not have a passing grade.\n const isVisible = isEnrolled && hasAlertingCertStatus;\n const notPassingCourseEnded = (\n isEnrolled\n && isVerifiedEnrollmentMode\n && !hasAlertingCertStatus\n && hasEnded\n && !userHasPassingGrade\n );\n const payload = {\n certificateAvailableDate,\n certURL,\n certStatus,\n courseId,\n courseEndDate: endBlock && endBlock.date,\n userTimezone,\n isWebCert,\n org,\n notPassingCourseEnded,\n tabs,\n };\n\n useAlert(isVisible || notPassingCourseEnded, {\n code: 'clientCertificateStatusAlert',\n payload: useMemo(() => payload, Object.values(payload).sort()),\n topic: 'outline-course-alerts',\n });\n\n return {\n clientCertificateStatusAlert: CertificateStatusAlert,\n };\n}\n\nexport default useCertificateStatusAlert;\n","/* eslint-disable import/prefer-default-export */\nimport React, { useMemo } from 'react';\nimport { useAlert } from '../../../../generic/user-messages';\nimport { useModel } from '../../../../generic/model-store';\n\nconst CourseEndAlert = React.lazy(() => import('./CourseEndAlert'));\n\n// period of time (in ms) before end of course during which we alert\nconst WARNING_PERIOD_MS = 14 * 24 * 60 * 60 * 1000; // 14 days\n\nexport function useCourseEndAlert(courseId) {\n const {\n isEnrolled,\n } = useModel('courseHomeMeta', courseId);\n const {\n datesWidget: {\n courseDateBlocks,\n },\n userTimezone,\n } = useModel('outline', courseId);\n\n const endBlock = courseDateBlocks.find(b => b.dateType === 'course-end-date');\n const endDate = endBlock ? new Date(endBlock.date) : null;\n const delta = endBlock ? endDate - new Date() : 0;\n const isVisible = isEnrolled && endBlock && delta > 0 && delta < WARNING_PERIOD_MS;\n const payload = {\n description: endBlock && endBlock.description,\n endDate: endBlock && endBlock.date,\n userTimezone,\n };\n\n useAlert(isVisible, {\n code: 'clientCourseEndAlert',\n payload: useMemo(() => payload, Object.values(payload).sort()),\n topic: 'outline-course-alerts',\n });\n\n return {\n clientCourseEndAlert: CourseEndAlert,\n };\n}\n","import React, { useMemo } from 'react';\nimport { useAlert } from '../../generic/user-messages';\nimport { useModel } from '../../generic/model-store';\n\nconst CourseStartAlert = React.lazy(() => import('./CourseStartAlert'));\nconst CourseStartMasqueradeBanner = React.lazy(() => import('./CourseStartMasqueradeBanner'));\n\nfunction isStartDateInFuture(courseId) {\n const {\n start,\n } = useModel('courseHomeMeta', courseId);\n\n const today = new Date();\n const startDate = new Date(start);\n return startDate > today;\n}\n\nfunction useCourseStartAlert(courseId) {\n const {\n isEnrolled,\n } = useModel('courseHomeMeta', courseId);\n\n const isVisible = isEnrolled && isStartDateInFuture(courseId);\n\n const payload = {\n courseId,\n };\n\n useAlert(isVisible, {\n code: 'clientCourseStartAlert',\n payload: useMemo(() => payload, Object.values(payload).sort()),\n topic: 'outline-course-alerts',\n });\n\n return {\n clientCourseStartAlert: CourseStartAlert,\n };\n}\n\nexport function useCourseStartMasqueradeBanner(courseId, tab) {\n const {\n isMasquerading,\n } = useModel('courseHomeMeta', courseId);\n\n const isVisible = isMasquerading && tab === 'progress' && isStartDateInFuture(courseId);\n\n const payload = {\n courseId,\n };\n\n useAlert(isVisible, {\n code: 'clientCourseStartMasqueradeBanner',\n payload: useMemo(() => payload, Object.values(payload).sort()),\n topic: 'instructor-toolbar-alerts',\n });\n\n return {\n clientCourseStartMasqueradeBanner: CourseStartMasqueradeBanner,\n };\n}\n\nexport default useCourseStartAlert;\n","/* eslint-disable import/prefer-default-export */\nimport React, { useContext, useMemo } from 'react';\nimport { AppContext } from '@edx/frontend-platform/react';\nimport { ALERT_TYPES, useAlert } from '../../../../generic/user-messages';\nimport { useModel } from '../../../../generic/model-store';\n\nconst PrivateCourseAlert = React.lazy(() => import('./PrivateCourseAlert'));\n\nexport function usePrivateCourseAlert(courseId) {\n const { authenticatedUser } = useContext(AppContext);\n const course = useModel('courseHomeMeta', courseId);\n const outline = useModel('outline', courseId);\n const enrolledUser = course && course.isEnrolled !== undefined && course.isEnrolled;\n const privateOutline = outline && outline.courseBlocks && !outline.courseBlocks.courses;\n /**\n * This alert should render if the user is not enrolled AND\n * 1. the user is anonymous AND the outline is private, OR\n * 2. the user is authenticated.\n * */\n const isVisible = !enrolledUser && (privateOutline || authenticatedUser !== null);\n const payload = {\n anonymousUser: authenticatedUser === null,\n canEnroll: outline && outline.enrollAlert ? outline.enrollAlert.canEnroll : false,\n courseId,\n };\n\n useAlert(isVisible, {\n code: 'clientPrivateCourseAlert',\n dismissible: false,\n payload: useMemo(() => payload, Object.values(payload).sort()),\n topic: 'outline-private-alerts',\n type: ALERT_TYPES.WELCOME,\n });\n\n return { clientPrivateCourseAlert: PrivateCourseAlert };\n}\n","import React, { useMemo } from 'react';\n\nimport { useAlert } from '../../../../generic/user-messages';\nimport { useModel } from '../../../../generic/model-store';\n\nconst ScheduledContentAlert = React.lazy(() => import('./ScheduledCotentAlert'));\n\nconst useScheduledContentAlert = (courseId) => {\n const {\n courseBlocks: {\n courses,\n },\n datesWidget: {\n datesTabLink,\n },\n } = useModel('outline', courseId);\n\n const hasScheduledContent = (\n !!courses\n && !!Object.values(courses).find(course => course.hasScheduledContent === true)\n );\n const { isEnrolled } = useModel('courseHomeMeta', courseId);\n const payload = {\n datesTabLink,\n };\n useAlert(hasScheduledContent && isEnrolled, {\n code: 'ScheduledContentAlert',\n payload: useMemo(() => payload, Object.values(payload).sort()),\n topic: 'outline-course-alerts',\n });\n\n return { ScheduledContentAlert };\n};\n\nexport default useScheduledContentAlert;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Alert, Button, TransitionReplace } from '@edx/paragon';\nimport truncate from 'truncate-html';\n\nimport { useDispatch } from 'react-redux';\nimport LmsHtmlFragment from '../LmsHtmlFragment';\nimport messages from '../messages';\nimport { useModel } from '../../../generic/model-store';\nimport { dismissWelcomeMessage } from '../../data/thunks';\n\nfunction WelcomeMessage({ courseId, intl }) {\n const {\n welcomeMessageHtml,\n } = useModel('outline', courseId);\n\n if (!welcomeMessageHtml) {\n return null;\n }\n\n const [display, setDisplay] = useState(true);\n\n const shortWelcomeMessageHtml = truncate(welcomeMessageHtml, 100, { byWords: true, keepWhitespaces: true });\n const messageCanBeShortened = shortWelcomeMessageHtml.length < welcomeMessageHtml.length;\n const [showShortMessage, setShowShortMessage] = useState(messageCanBeShortened);\n const dispatch = useDispatch();\n return (\n {\n setDisplay(false);\n dispatch(dismissWelcomeMessage(courseId));\n }}\n actions={messageCanBeShortened ? [\n setShowShortMessage(!showShortMessage)}\n variant=\"outline-primary\"\n >\n {showShortMessage ? intl.formatMessage(messages.welcomeMessageShowMoreButton)\n : intl.formatMessage(messages.welcomeMessageShowLessButton)}\n ,\n ] : []}\n >\n \n {showShortMessage ? (\n \n ) : (\n \n )}\n \n \n );\n}\n\nWelcomeMessage.propTypes = {\n courseId: PropTypes.string.isRequired,\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(WelcomeMessage);\n","import React, { useState, useEffect } from 'react';\nimport camelCase from 'lodash.camelcase';\nimport PropTypes from 'prop-types';\n\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button } from '@edx/paragon';\n\nimport messages from '../messages';\nimport { getProctoringInfoData } from '../../data/api';\n\nfunction ProctoringInfoPanel({ courseId, username, intl }) {\n const [link, setLink] = useState('');\n const [onboardingPastDue, setOnboardingPastDue] = useState(false);\n const [showInfoPanel, setShowInfoPanel] = useState(false);\n const [status, setStatus] = useState('');\n const [readableStatus, setReadableStatus] = useState('');\n const [releaseDate, setReleaseDate] = useState(null);\n\n const readableStatuses = {\n notStarted: 'notStarted',\n started: 'started',\n submitted: 'submitted',\n verified: 'verified',\n rejected: 'rejected',\n error: 'error',\n otherCourseApproved: 'otherCourseApproved',\n expiringSoon: 'expiringSoon',\n };\n\n function getReadableStatusClass(examStatus) {\n let readableClass = '';\n if (['created', 'download_software_clicked', 'ready_to_start'].includes(examStatus) || !examStatus) {\n readableClass = readableStatuses.notStarted;\n } else if (['started', 'ready_to_submit'].includes(examStatus)) {\n readableClass = readableStatuses.started;\n } else if (['second_review_required', 'submitted'].includes(examStatus)) {\n readableClass = readableStatuses.submitted;\n } else {\n const examStatusCamelCase = camelCase(examStatus);\n if (examStatusCamelCase in readableStatuses) {\n readableClass = readableStatuses[examStatusCamelCase];\n }\n }\n return readableClass;\n }\n\n function isNotYetSubmitted(examStatus) {\n const NO_SHOW_STATES = ['submitted', 'second_review_required', 'verified'];\n return !NO_SHOW_STATES.includes(examStatus);\n }\n\n function isNotYetReleased(examReleaseDate) {\n if (!examReleaseDate) {\n return false;\n }\n const now = new Date();\n return now < examReleaseDate;\n }\n\n function getBorderClass() {\n let borderClass = '';\n if ([readableStatuses.submitted, readableStatuses.expiringSoon].includes(readableStatus)) {\n borderClass = 'proctoring-onboarding-submitted';\n } else if ([readableStatuses.verified, readableStatuses.otherCourseApproved].includes(readableStatus)) {\n borderClass = 'proctoring-onboarding-success';\n }\n return borderClass;\n }\n\n function isExpiringSoon(dateString) {\n // Returns true if the expiration date is within 28 days\n const today = new Date();\n const expirationDateObject = new Date(dateString);\n return today > expirationDateObject.getTime() - 2419200000;\n }\n\n useEffect(() => {\n getProctoringInfoData(courseId, username)\n .then(\n response => {\n if (response) {\n if (Object.keys(response).length > 0) {\n setShowInfoPanel(true);\n }\n\n setStatus(response.onboarding_status);\n setLink(response.onboarding_link);\n const expirationDate = response.expiration_date;\n if (expirationDate && isExpiringSoon(expirationDate)) {\n setReadableStatus(getReadableStatusClass('expiringSoon'));\n } else {\n setReadableStatus(getReadableStatusClass(response.onboarding_status));\n }\n setReleaseDate(new Date(response.onboarding_release_date));\n setOnboardingPastDue(response.onboarding_past_due);\n }\n },\n );\n }, []);\n\n let onboardingExamButton = null;\n\n if (isNotYetReleased(releaseDate)) {\n onboardingExamButton = (\n \n );\n } else if (onboardingPastDue) {\n onboardingExamButton = (\n \n );\n } else if (!isNotYetReleased(releaseDate)) {\n if (readableStatus === readableStatuses.otherCourseApproved) {\n onboardingExamButton = (\n \n );\n } else if (readableStatus !== readableStatuses.otherCourseApproved) {\n onboardingExamButton = (\n \n );\n }\n }\n\n return (\n <>\n { showInfoPanel && (\n
    \n

    {intl.formatMessage(messages.proctoringInfoPanel)}

    \n
    \n {readableStatus && (\n <>\n

    \n {intl.formatMessage(messages.proctoringCurrentStatus)} {intl.formatMessage(messages[`${readableStatus}ProctoringStatus`])}\n

    \n

    \n {intl.formatMessage(messages[`${readableStatus}ProctoringMessage`])}\n

    \n

    \n {readableStatus === readableStatuses.otherCourseApproved && intl.formatMessage(messages[`${readableStatus}ProctoringDetail`])}\n

    \n \n )}\n {![readableStatuses.verified, readableStatuses.otherCourseApproved].includes(readableStatus) && (\n <>\n

    \n {isNotYetSubmitted(status) && (\n intl.formatMessage(messages.proctoringPanelGeneralInfo)\n )}\n {!isNotYetSubmitted(status) && (\n intl.formatMessage(messages.proctoringPanelGeneralInfoSubmitted)\n )}\n

    \n

    {intl.formatMessage(messages.proctoringPanelGeneralTime)}

    \n \n )}\n {isNotYetSubmitted(status) && (\n onboardingExamButton\n )}\n \n
    \n
    \n )}\n \n );\n}\n\nProctoringInfoPanel.propTypes = {\n courseId: PropTypes.string.isRequired,\n username: PropTypes.string,\n intl: intlShape.isRequired,\n};\n\nProctoringInfoPanel.defaultProps = {\n username: null,\n};\n\nexport default injectIntl(ProctoringInfoPanel);\n","import React, { useState } from 'react';\nimport Cookies from 'js-cookie';\nimport { getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport {\n AlertModal,\n Button,\n Spinner,\n Icon,\n} from '@edx/paragon';\nimport { Check, ArrowForward } from '@edx/paragon/icons';\nimport { FormattedMessage, injectIntl } from '@edx/frontend-platform/i18n';\nimport { sendActivationEmail } from '../../courseware/data';\n\nfunction AccountActivationAlert() {\n const [showModal, setShowModal] = useState(false);\n const [showSpinner, setShowSpinner] = useState(false);\n const [showCheck, setShowCheck] = useState(false);\n const handleOnClick = () => {\n setShowSpinner(true);\n setShowCheck(false);\n sendActivationEmail().then(() => {\n setShowSpinner(false);\n setShowCheck(true);\n });\n };\n\n const showAccountActivationAlert = Cookies.get('show-account-activation-popup');\n if (showAccountActivationAlert !== undefined) {\n Cookies.remove('show-account-activation-popup', { path: '/', domain: process.env.SESSION_COOKIE_DOMAIN });\n // extra check to make sure cookie was removed before updating the state. Updating the state without removal\n // of cookie would make it infinit rendering\n if (Cookies.get('show-account-activation-popup') === undefined) {\n setShowModal(true);\n }\n }\n\n const title = (\n

    \n \n

    \n );\n\n const button = (\n setShowModal(false)}\n >\n \n \n \n );\n\n const children = () => {\n let bodyContent = null;\n const message = (\n {getAuthenticatedUser() && getAuthenticatedUser().email},\n sendEmailTag: (\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\n \n \n \n ),\n }}\n />\n );\n bodyContent = (\n
    \n {message}\n
    \n );\n\n if (!showCheck && showSpinner) {\n bodyContent = (\n
    \n {message}\n \n
    \n );\n }\n\n if (showCheck && !showSpinner) {\n bodyContent = (\n
    \n {message}\n \n
    \n );\n }\n return bodyContent;\n };\n\n return (\n ({})}\n >\n {children()}\n \n );\n}\n\nexport default injectIntl(AccountActivationAlert);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Spinner } from '@edx/paragon';\n\nexport default class PageLoading extends Component {\n renderSrMessage() {\n if (!this.props.srMessage) {\n return null;\n }\n\n return (\n \n {this.props.srMessage}\n \n );\n }\n\n render() {\n return (\n
    \n \n \n {this.renderSrMessage()}\n \n
    \n \n );\n }\n}\n\nPageLoading.propTypes = {\n srMessage: PropTypes.node.isRequired,\n};\n","import React, { Suspense } from 'react';\n\nimport { ModalLayer } from '@edx/paragon';\n\nimport PageLoading from '../../generic/PageLoading';\n\nconst BlockModalContent = React.lazy(() => import('./BlockModalContent'));\n\nexport const BlockModal = () => (\n {}}\n isBlocking\n >\n )}>\n \n \n \n);\n\nexport default BlockModal;\n","import React, { Suspense } from 'react';\nimport PropTypes from 'prop-types';\n\nimport PageLoading from '../../generic/PageLoading';\n\nconst SidecardContent = React.lazy(() => import('./SidecardContent'));\n\nconst Sidecard = ({ options }) => (\n )}\n >\n \n \n);\n\nSidecard.propTypes = {\n options: PropTypes.shape({\n state: PropTypes.shape({\n upgradeDeadline: PropTypes.string.isRequired,\n }),\n access: PropTypes.shape({\n accessExpirationDate: PropTypes.string.isRequired,\n price: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.string.isRequired,\n }),\n }),\n};\n\nSidecard.defaultProps = {\n options: {\n state: {\n upgradeDeadline: 'Mar 29, 2021 11:59 PM EST',\n },\n access: {\n accessDeadline: 'Mar 21, 2022 11:59 PM EST',\n price: '$23',\n upgradeUrl: '',\n },\n },\n};\n\nexport default Sidecard;\n","/* eslint-disable no-use-before-define */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport Sidecard from './Sidecard';\n\nconst Flyover = ({\n isStatic,\n options,\n}) => {\n const handleHideFlyoverKeyPress = (event) => {\n if (event.key === 'Enter') {\n options.flyover.toggle();\n }\n };\n if (!options.access.isAudit || options.state.afterUpgradeDeadline) {\n return null;\n }\n return (\n
    \n { !isStatic && (\n
    \n Notifications\n \n \n \n \n \n
    \n
    \n )}\n \n
    \n );\n};\nFlyover.propTypes = {\n isStatic: PropTypes.bool,\n options: PropTypes.shape({\n access: PropTypes.shape({\n isAudit: PropTypes.bool.isRequired,\n }),\n flyover: PropTypes.shape({\n toggle: PropTypes.func.isRequired,\n }),\n state: PropTypes.shape({\n afterUpgradeDeadline: PropTypes.bool.isRequired,\n }),\n }),\n};\n\nFlyover.defaultProps = {\n isStatic: false,\n options: {\n access: {\n isAudit: false,\n },\n flyover: {\n toggle: () => {},\n },\n state: {\n afterUpgradeDeadline: false,\n },\n },\n};\n\nexport default Flyover;\n","/* eslint-disable no-use-before-define */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronLeft } from '@fortawesome/free-solid-svg-icons';\n\nimport Sidecard from './Sidecard';\n\nexport const FlyoverMobile = ({ options }) => {\n const {\n access: { isAudit },\n flyover: { toggle },\n state: { afterUpgradeDeadline },\n } = options;\n\n const handleReturnSpanKeyPress = (event) => {\n if (event.key === 'Enter') {\n toggle();\n }\n };\n\n if (!isAudit || afterUpgradeDeadline) {\n return null;\n }\n\n return (\n
    \n
    \n \n \n \n Back to course\n \n \n
    \n
    \n \n Notifications\n \n
    \n \n
    \n
    \n
    \n );\n};\nFlyoverMobile.propTypes = {\n options: PropTypes.shape({\n access: PropTypes.shape({\n isAudit: PropTypes.bool.isRequired,\n }),\n flyover: PropTypes.shape({\n toggle: PropTypes.func.isRequired,\n }),\n state: PropTypes.shape({\n afterUpgradeDeadline: PropTypes.bool.isRequired,\n }),\n }),\n};\n\nFlyoverMobile.defaultProps = {\n options: {\n access: {\n isAudit: false,\n },\n flyover: {\n toggle: () => {},\n },\n state: {\n afterUpgradeDeadline: false,\n },\n },\n};\n\nexport default FlyoverMobile;\n","/* eslint-disable no-use-before-define */\nimport React from 'react';\n\nconst FlyoverTriggerIcon = () => (\n \n \n \n \n \n \n \n);\n\nexport default FlyoverTriggerIcon;\n","/* eslint-disable no-console */\nimport { useContext } from 'react';\nimport { AppContext } from '@edx/frontend-platform/react';\nimport util from 'util';\n\nexport const isMobile = () => {\n const userAgent = typeof window.navigator === 'undefined' ? '' : navigator.userAgent;\n return Boolean(\n userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile|WPDesktop/i),\n );\n};\n\nexport const getUser = () => useContext(AppContext).authenticatedUser;\n\nconst staticReturnOptions = [\n 'dict',\n 'inspect',\n Symbol.toStringTag,\n util.inspect.custom,\n Symbol.for('nodejs.util.inspect.custom'),\n];\n\nconst strictGet = (target, name) => {\n if (name === Symbol.toStringTag) {\n return target;\n }\n if (name === 'length') {\n return target.length;\n }\n if (staticReturnOptions.indexOf(name) >= 0) {\n return target;\n }\n if (name === Symbol.iterator) {\n return { ...target };\n }\n\n if (name in target || name === '_reactFragment') {\n return target[name];\n }\n\n console.log(name.toString());\n console.error({ target, name });\n const e = Error(`invalid property \"${name.toString()}\"`);\n console.error(e.stack);\n return undefined;\n};\n\nexport const StrictDict = (dict) => new Proxy(dict, { get: strictGet });\n","/* eslint-disable no-use-before-define */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport FlyoverTriggerIcon from './FlyoverTriggerIcon';\nimport { isMobile } from './utils';\n\nexport const FlyoverTrigger = ({ options }) => {\n const { isVisible, toggle } = options.flyover;\n if (!options.access.isAudit || options.state.afterUpgradeDeadline) {\n return null;\n }\n return (!isMobile() && (\n \n \n
    \n ));\n};\n\nFlyoverTrigger.propTypes = {\n options: PropTypes.shape({\n access: PropTypes.shape({\n isAudit: PropTypes.bool.isRequired,\n }),\n flyover: PropTypes.shape({\n isVisible: PropTypes.bool.isRequired,\n toggle: PropTypes.func.isRequired,\n }),\n state: PropTypes.shape({\n afterUpgradeDeadline: PropTypes.bool.isRequired,\n isEnabled: PropTypes.bool.isRequired,\n }),\n }),\n};\n\nFlyoverTrigger.defaultProps = {\n options: {\n access: { isAudit: false },\n flyover: {\n isVisible: false,\n toggle: () => {},\n },\n state: {\n afterUpgradeDeadline: false,\n isEnabled: false,\n },\n },\n};\n\nexport default FlyoverTrigger;\n","/* eslint-disable no-use-before-define */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport FlyoverTriggerIcon from './FlyoverTriggerIcon';\nimport { isMobile } from './utils';\n\nconst FlyoverTriggerMobile = ({ options }) => {\n const { isVisible, toggle } = options.flyover;\n if (!options.access.isAudit || options.state.afterUpgradeDeadline) {\n return null;\n }\n return (isMobile() && (\n \n \n \n ));\n};\n\nFlyoverTriggerMobile.propTypes = {\n options: PropTypes.shape({\n access: PropTypes.shape({\n isAudit: PropTypes.bool.isRequired,\n }),\n flyover: PropTypes.shape({\n isVisible: PropTypes.bool.isRequired,\n toggle: PropTypes.func.isRequired,\n }),\n state: PropTypes.shape({\n afterUpgradeDeadline: PropTypes.bool.isRequired,\n }),\n }),\n};\n\nFlyoverTriggerMobile.defaultProps = {\n options: {\n access: { isAudit: false },\n flyover: {\n isVisible: true,\n toggle: () => {},\n },\n state: { afterUpgradeDeadline: false },\n },\n};\n\nexport default FlyoverTriggerMobile;\n","import React, { Suspense } from 'react';\nimport PropTypes from 'prop-types';\n\nimport PageLoading from '../../generic/PageLoading';\n\nconst LockPaywallContent = React.lazy(() => import('./LockPaywallContent'));\n\nconst LockPaywall = ({ options }) => {\n if (!(options.meta.gradedLock || options.meta.verifiedLock)) {\n return null;\n }\n return (\n )}\n >\n \n \n );\n};\nLockPaywall.propTypes = {\n options: PropTypes.shape({\n access: PropTypes.shape({\n upgradeUrl: PropTypes.string.isRequired,\n price: PropTypes.string.isRequired,\n }),\n meta: PropTypes.shape({\n gradedLock: PropTypes.bool.isRequired,\n verifiedLock: PropTypes.bool.isRequired,\n }),\n }),\n};\n\nLockPaywall.defaultProps = {\n options: {\n access: {\n upgradeUrl: '',\n price: '$23',\n },\n meta: {\n gradedLock: false,\n verifiedLock: false,\n },\n },\n};\nexport default LockPaywall;\n","import { useState } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { useModel } from '../../generic/model-store';\n\nimport MMP2PBlockModal from './BlockModal';\nimport MMP2PFlyover from './Flyover';\nimport MMP2PFlyoverMobile from './FlyoverMobile';\nimport MMP2PFlyoverTrigger from './FlyoverTrigger';\nimport MMP2PFlyoverTriggerMobile from './FlyoverTriggerMobile';\nimport MMP2PLockPaywall from './LockPaywall';\nimport MMP2PSidecard from './Sidecard';\n\nimport { isMobile, StrictDict } from './utils';\n\nconst MMP2PKeys = StrictDict({\n enableFn: 'enable',\n flyoverVisible: 'flyoverVisible',\n state: 'state',\n access: 'access',\n meta: 'meta',\n});\n\nlet location;\nconst windowKey = (field) => `experiment__mmp2p_${location}_${field}`;\n\nconst setWindowVal = (field, val) => {\n window[windowKey(field)] = val;\n};\n\nconst windowVal = (field) => window[windowKey(field)];\nconst defaultWindowVal = (field, val) => (\n windowVal(field) === undefined ? val : windowVal(field)\n);\n\nconst createWindowStateSetter = (stateSetter, key) => (value) => {\n stateSetter(value);\n setWindowVal(key, value);\n};\n\nconst externalConfig = {\n runs: [\n {\n upgradeDeadline: 'Mar 29 2021 11:59 PM EST',\n courses: [\n {\n courseRun: 'course-v1:edX+DemoX+Demo_Course',\n subSections: [\n 'block-v1:edX+DemoX+Demo_Course+type@sequential+block@edx_introduction',\n 'block-v1:edX+DemoX+Demo_Course+type@sequential+block@19a30717eff543078a5d94ae9d6c18a5',\n 'block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions',\n 'block-v1:edX+DemoX+Demo_Course+type@sequential+block@simulations',\n 'block-v1:edX+DemoX+Demo_Course+type@sequential+block@graded_simulations',\n 'block-v1:edX+DemoX+Demo_Course+type@sequential+block@175e76c4951144a29d46211361266e0e',\n ],\n },\n ],\n },\n ],\n};\n\nconst initDatesMMP2P = () => {\n location = 'dates';\n\n const defaultState = {\n isEnabled: false,\n upgradeDeadline: null,\n };\n\n const [MMP2POptions, setMMP2POptions] = useState(\n defaultWindowVal(MMP2PKeys.state, { ...defaultState }),\n );\n\n setWindowVal(MMP2PKeys.enableFn, (upgradeDeadline) => {\n if (upgradeDeadline === undefined) {\n setMMP2POptions({ ...defaultState });\n } else {\n setMMP2POptions({\n isEnabled: true,\n upgradeDeadline,\n });\n }\n });\n\n return {\n state: MMP2POptions,\n };\n};\n\nconst initHomeMMP2P = (courseId) => {\n location = 'home';\n\n const defaultState = {\n isEnabled: false,\n upgradeDeadline: null,\n afterUpgradeDeadline: false,\n };\n const defaultAccess = {\n isAudit: false,\n accessExpirationDate: null,\n upgradeUrl: null,\n price: null,\n };\n\n const [MMP2POptions, _setMMP2POptions] = useState(defaultWindowVal(MMP2PKeys.state, { ...defaultState }));\n const [MMP2PAccess, _setMMP2PAccess] = useState(defaultWindowVal(MMP2PKeys.access, { ...defaultAccess }));\n\n const setMMP2POptions = createWindowStateSetter(_setMMP2POptions, MMP2PKeys.state);\n const setMMP2PAccess = createWindowStateSetter(_setMMP2PAccess, MMP2PKeys.access);\n\n const { accessExpiration, verifiedMode } = useModel('outline', courseId);\n\n const loadAccess = () => {\n if (accessExpiration !== null && accessExpiration !== undefined) {\n setMMP2PAccess({\n isAudit: true,\n accessExpirationDate: accessExpiration.expirationDate,\n upgradeUrl: accessExpiration.upgradeUrl,\n price: ((verifiedMode !== null && verifiedMode !== undefined)\n ? `${verifiedMode.currencySymbol}${verifiedMode.price}`\n : ''\n ),\n });\n }\n };\n\n const enableFunction = (upgradeDeadline) => {\n if (upgradeDeadline === undefined) {\n setMMP2POptions({ ...defaultState });\n setMMP2PAccess({ ...defaultAccess });\n } else {\n setMMP2POptions({\n isEnabled: true,\n upgradeDeadline,\n afterUpgradeDeadline: new Date() > new Date(upgradeDeadline),\n });\n loadAccess();\n }\n };\n\n setWindowVal(MMP2PKeys.enableFn, enableFunction);\n\n return {\n state: MMP2POptions,\n access: MMP2PAccess,\n };\n};\n\nconst initCoursewareMMP2P = (courseId, sequenceId, unitId) => {\n location = 'course';\n\n const defaultState = {\n isEnabled: false,\n upgradeDeadline: null,\n afterUpgradeDeadline: false,\n subSections: [],\n isWhitelisted: false,\n };\n const defaultAccess = {\n isAudit: false,\n accessExpirationDate: null,\n upgradeUrl: null,\n price: null,\n };\n const defaultMeta = {\n blockContent: false,\n gradedLock: false,\n modalLock: false,\n showLock: false,\n verifiedLock: false,\n };\n\n const [MMP2POptions, _setMMP2POptions] = useState(defaultWindowVal(MMP2PKeys.state, { ...defaultState }));\n const [MMP2PAccess, _setMMP2PAccess] = useState(defaultWindowVal(MMP2PKeys.access, { ...defaultAccess }));\n const [MMP2PMeta, _setMMP2PMeta] = useState(defaultWindowVal(MMP2PKeys.meta, { ...defaultMeta }));\n const [MMP2PIsFlyoverVisible, setMMP2PIsFlyoverVisible] = useState(\n defaultWindowVal(MMP2PKeys.flyoverVisible, !isMobile()),\n );\n\n const setMMP2POptions = createWindowStateSetter(_setMMP2POptions, MMP2PKeys.state);\n const setMMP2PAccess = createWindowStateSetter(_setMMP2PAccess, MMP2PKeys.access);\n const setMMP2PMeta = createWindowStateSetter(_setMMP2PMeta, MMP2PKeys.meta);\n\n const flyover = {\n isVisible: MMP2PIsFlyoverVisible,\n toggle: () => {\n setMMP2PIsFlyoverVisible(!MMP2PIsFlyoverVisible);\n setWindowVal(MMP2PKeys.flyoverVisible, !MMP2PIsFlyoverVisible);\n },\n };\n\n const loadOptions = (upgradeDeadline, subSections) => (dispatch, getState) => {\n const state = getState();\n\n const options = {\n isEnabled: true,\n upgradeDeadline,\n afterUpgradeDeadline: new Date() > new Date(upgradeDeadline),\n isWhitelisted: subSections.indexOf(sequenceId) > -1,\n };\n setMMP2POptions(options);\n\n const models = {\n coursewareMeta: state.models.coursewareMeta[courseId],\n units: state.models.units[unitId],\n };\n const { accessExpiration, verifiedMode } = models.coursewareMeta;\n const graded = models.units !== undefined ? models.units.graded : false;\n\n let access = {};\n if (accessExpiration !== null && accessExpiration !== undefined) {\n access = {\n isAudit: true,\n accessExpirationDate: accessExpiration.expirationDate,\n upgradeUrl: accessExpiration.upgradeUrl,\n price: ((verifiedMode !== null && verifiedMode !== undefined)\n ? `${verifiedMode.currencySymbol}${verifiedMode.price}`\n : ''\n ),\n };\n setMMP2PAccess(access);\n }\n const meta = {\n verifiedLock: (access.isAudit && !options.isWhitelisted),\n gradedLock: (access.isAudit && options.isWhitelisted && graded),\n modalLock: (access.isAudit && !options.isWhitelisted && options.afterUpgradeDeadline),\n };\n meta.showLock = (options.isEnabled && (meta.verifiedLock || meta.gradedLock));\n meta.blockContent = (options.isEnabled && meta.verifiedLock);\n setMMP2PMeta(meta);\n };\n\n const dispatch = useDispatch();\n const enableFunction = (upgradeDeadline, subSections) => {\n if (subSections.length !== undefined && subSections.length > 0) {\n dispatch(loadOptions(upgradeDeadline, subSections));\n } else {\n setMMP2POptions({ ...defaultState });\n setMMP2PAccess({ ...defaultAccess });\n setMMP2PMeta({ ...defaultMeta });\n }\n };\n\n setWindowVal(MMP2PKeys.enableFn, enableFunction);\n\n // testing\n setWindowVal('externalConfig', externalConfig);\n\n const config = {\n access: MMP2PAccess,\n flyover,\n meta: MMP2PMeta,\n state: MMP2POptions,\n };\n\n return config;\n};\n\nexport {\n MMP2PBlockModal,\n MMP2PFlyover,\n MMP2PFlyoverMobile,\n MMP2PFlyoverTrigger,\n MMP2PFlyoverTriggerMobile,\n MMP2PLockPaywall,\n MMP2PSidecard,\n initCoursewareMMP2P,\n initHomeMMP2P,\n initDatesMMP2P,\n};\n","import React, { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\n\nimport { Button, Toast } from '@edx/paragon';\nimport { AlertList } from '../../generic/user-messages';\n\nimport CourseDates from './widgets/CourseDates';\nimport CourseGoalCard from './widgets/CourseGoalCard';\nimport CourseHandouts from './widgets/CourseHandouts';\nimport CourseRevision from './widgets/CourseRevision';\nimport CourseTools from './widgets/CourseTools';\nimport { fetchOutlineTab } from '../data';\nimport genericMessages from '../../generic/messages';\nimport messages from './messages';\nimport Section from './Section';\nimport ShiftDatesAlert from '../suggested-schedule-messaging/ShiftDatesAlert';\nimport UpdateGoalSelector from './widgets/UpdateGoalSelector';\nimport UpgradeNotification from '../../generic/upgrade-notification/UpgradeNotification';\nimport UpgradeToShiftDatesAlert from '../suggested-schedule-messaging/UpgradeToShiftDatesAlert';\nimport useCertificateAvailableAlert from './alerts/certificate-status-alert';\nimport useCourseEndAlert from './alerts/course-end-alert';\nimport useCourseStartAlert from '../../alerts/course-start-alert';\nimport usePrivateCourseAlert from './alerts/private-course-alert';\nimport useScheduledContentAlert from './alerts/scheduled-content-alert';\nimport { useModel } from '../../generic/model-store';\nimport WelcomeMessage from './widgets/WelcomeMessage';\nimport ProctoringInfoPanel from './widgets/ProctoringInfoPanel';\nimport AccountActivationAlert from '../../alerts/logistration-alert/AccountActivationAlert';\n\n/** [MM-P2P] Experiment */\nimport { initHomeMMP2P, MMP2PFlyover } from '../../experiments/mm-p2p';\n\nfunction OutlineTab({ intl }) {\n const {\n courseId,\n } = useSelector(state => state.courseHome);\n\n const {\n isSelfPaced,\n org,\n title,\n username,\n userTimezone,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n accessExpiration,\n courseBlocks: {\n courses,\n sections,\n },\n courseGoals: {\n goalOptions,\n selectedGoal,\n } = {},\n datesBannerInfo,\n datesWidget: {\n courseDateBlocks,\n },\n resumeCourse: {\n hasVisitedCourse,\n url: resumeCourseUrl,\n },\n offer,\n timeOffsetMillis,\n verifiedMode,\n } = useModel('outline', courseId);\n\n const [courseGoalToDisplay, setCourseGoalToDisplay] = useState(selectedGoal);\n const [goalToastHeader, setGoalToastHeader] = useState('');\n const [expandAll, setExpandAll] = useState(false);\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const logResumeCourseClick = () => {\n sendTrackingLogEvent('edx.course.home.resume_course.clicked', {\n ...eventProperties,\n event_type: hasVisitedCourse ? 'resume' : 'start',\n url: resumeCourseUrl,\n });\n };\n\n // Below the course title alerts (appearing in the order listed here)\n const courseStartAlert = useCourseStartAlert(courseId);\n const courseEndAlert = useCourseEndAlert(courseId);\n const certificateAvailableAlert = useCertificateAvailableAlert(courseId);\n const privateCourseAlert = usePrivateCourseAlert(courseId);\n const scheduledContentAlert = useScheduledContentAlert(courseId);\n\n const rootCourseId = courses && Object.keys(courses)[0];\n\n const hasDeadlines = courseDateBlocks && courseDateBlocks.some(x => x.dateType === 'assignment-due-date');\n\n const logUpgradeToShiftDatesLinkClick = () => {\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: 'personalized_learner_schedules',\n linkName: 'course_home_upgrade_shift_dates',\n linkType: 'button',\n pageName: 'course_home',\n });\n };\n\n const isEnterpriseUser = () => {\n const authenticatedUser = getAuthenticatedUser();\n const userRoleNames = authenticatedUser ? authenticatedUser.roles.map(role => role.split(':')[0]) : [];\n\n return userRoleNames.includes('enterprise_learner');\n };\n\n /** [[MM-P2P] Experiment */\n const MMP2P = initHomeMMP2P(courseId);\n\n /** show post enrolment survey to only B2C learners */\n const learnerType = isEnterpriseUser() ? 'enterprise_learner' : 'b2c_learner';\n\n return (\n <>\n setGoalToastHeader('')}\n show={!!(goalToastHeader)}\n >\n {goalToastHeader}\n \n
    \n
    \n
    {title}
    \n
    \n {resumeCourseUrl && (\n
    \n \n
    \n )}\n
    \n {/** [MM-P2P] Experiment (className for optimizely trigger) */}\n
    \n \n
    \n \n
    \n
    \n { /** [MM-P2P] Experiment (the conditional) */ }\n { !MMP2P.state.isEnabled\n && (\n \n )}\n {isSelfPaced && hasDeadlines && !MMP2P.state.isEnabled && (\n <>\n \n \n \n )}\n {!courseGoalToDisplay && goalOptions && goalOptions.length > 0 && (\n { setCourseGoalToDisplay(newGoal); }}\n setGoalToastHeader={(newHeader) => { setGoalToastHeader(newHeader); }}\n />\n )}\n \n {rootCourseId && (\n <>\n
    \n
    \n \n
    \n
    \n
      \n {courses[rootCourseId].sectionIds.map((sectionId) => (\n \n ))}\n
    \n \n )}\n
    \n {rootCourseId && (\n
    \n \n {courseGoalToDisplay && goalOptions && goalOptions.length > 0 && (\n { setCourseGoalToDisplay(newGoal); }}\n setGoalToastHeader={(newHeader) => { setGoalToastHeader(newHeader); }}\n />\n )}\n \n { /** [MM-P2P] Experiment (conditional) */ }\n { MMP2P.state.isEnabled\n ? \n : (\n \n )}\n \n \n \n
    \n )}\n
    \n \n );\n}\n\nOutlineTab.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(OutlineTab);\n","export default __webpack_public_path__ + \"ee56f6ef2f1c80ed0cc1129259d6a3cd.gif\";","export default __webpack_public_path__ + \"ed041dea7f493a5345ac6702cf7972cf.gif\";","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n applyForCredit: {\n id: 'courseExit.programs.applyForCredit',\n defaultMessage: 'Apply for credit',\n description: 'Button for the learner to apply for course credit',\n },\n certificateHeaderDownloadable: {\n id: 'courseCelebration.certificateHeader.downloadable',\n defaultMessage: 'Your certificate is available!',\n description: 'Text displayed when course certificate is ready to be downloaded',\n },\n certificateHeaderNotAvailable: {\n id: 'courseCelebration.certificateHeader.notAvailable',\n defaultMessage: 'Your grade and certificate will be ready soon!',\n description: 'Header displayed when course certificate is not yet available to be viewed',\n },\n certificateNotAvailableBodyAccessCert: {\n id: 'courseCelebration.certificateBody.notAvailable.accessCertificate',\n defaultMessage: 'If you have earned a passing grade, your certificate will be automatically issued.',\n description: 'Text displayed when course certificate is not yet available to be viewed',\n },\n certificateHeaderUnverified: {\n id: 'courseCelebration.certificateHeader.unverified',\n defaultMessage: 'You must complete verification to receive your certificate.',\n description: 'Text displayed when a user has not verified their identity and cannot view their course certificate',\n },\n certificateHeaderRequestable: {\n id: 'courseCelebration.certificateHeader.requestable',\n defaultMessage: 'Congratulations, you qualified for a certificate!',\n description: 'Text displayed when a user has completed the course and can request a certificate',\n },\n certificateHeaderUpgradable: {\n id: 'courseCelebration.certificateHeader.upgradable',\n defaultMessage: 'Upgrade to pursue a verified certificate',\n },\n certificateImage: {\n id: 'courseCelebration.certificateImage',\n defaultMessage: 'Sample certificate',\n description: 'Alt text used to describe an image of a certificate',\n },\n completedCourseHeader: {\n id: 'courseCelebration.completedCourseHeader',\n defaultMessage: 'You have completed your course.',\n },\n congratulationsHeader: {\n id: 'courseCelebration.congratulationsHeader',\n defaultMessage: 'Congratulations!',\n },\n congratulationsImage: {\n id: 'courseCelebration.congratulationsImage',\n defaultMessage: 'Four people raising their hands in celebration',\n description: 'Alt text used to describe celebratory image',\n },\n courseInProgressDescription: {\n id: 'courseExit.courseInProgressDescription',\n defaultMessage: 'It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.',\n },\n courseInProgressHeader: {\n id: 'courseExit.courseInProgressHeader',\n defaultMessage: 'More content is coming soon!',\n },\n dashboardLink: {\n id: 'courseExit.dashboardLink',\n defaultMessage: 'Dashboard',\n description: 'Link to user’s dashboard',\n },\n downloadButton: {\n id: 'courseCelebration.downloadButton',\n defaultMessage: 'Download my certificate',\n description: 'Button to download the course certificate',\n },\n endOfCourseDescription: {\n id: 'courseExit.endOfCourseDescription',\n defaultMessage: 'Unfortunately, you are not currently eligible for a certificate. You need to receive a passing grade to be eligible for a certificate.',\n },\n endOfCourseHeader: {\n id: 'courseExit.endOfCourseHeader',\n defaultMessage: 'You’ve reached the end of the course!',\n },\n endOfCourseTitle: {\n id: 'courseExit.endOfCourseTitle',\n defaultMessage: 'End of Course',\n },\n idVerificationSupportLink: {\n id: 'courseExit.idVerificationSupportLink',\n defaultMessage: 'Learn more about ID verification',\n description: 'Link to an article about identity verification',\n },\n linkedinAddToProfileButton: {\n id: 'courseCelebration.linkedinAddToProfileButton',\n defaultMessage: 'Add to LinkedIn profile',\n description: 'Button to add certificate information to the user’s LinkedIn profile',\n },\n microBachelorsLearnMore: {\n id: 'courseExit.programs.microBachelors.learnMore',\n defaultMessage: 'Learn more about how your MicroBachelors credential can be applied for credit.',\n },\n microMastersLearnMore: {\n id: 'courseExit.programs.microMasters.learnMore',\n defaultMessage: 'Learn more about the process of applying MicroMasters certificates to Master’s degrees.',\n },\n microMastersMessage: {\n id: 'courseExit.programs.microMasters.mastersMessage',\n defaultMessage: 'If you’re interested in using your MicroMasters certificate towards a Master’s program, you can get started today!',\n },\n nextButtonComplete: {\n id: 'learn.sequence.navigation.complete.button', // for historical reasons\n defaultMessage: 'Complete the course',\n },\n nextButtonEnd: {\n id: 'courseExit.nextButton.endOfCourse',\n defaultMessage: 'Next (end of course)',\n },\n profileLink: {\n id: 'courseExit.profileLink',\n defaultMessage: 'Profile',\n description: 'Link to user’s profile',\n },\n programsLastCourseHeader: {\n id: 'courseExit.programs.lastCourse',\n defaultMessage: 'You have completed the last course in {title}!',\n },\n requestCertificateBodyText: {\n id: 'courseCelebration.requestCertificateBodyText',\n defaultMessage: 'In order to access your certificate, request it below.',\n },\n requestCertificateButton: {\n id: 'courseCelebration.requestCertificateButton',\n defaultMessage: 'Request certificate',\n description: 'Button to request the course certificate',\n },\n searchOurCatalogLink: {\n id: 'courseExit.searchOurCatalogLink',\n defaultMessage: 'Search our catalog',\n description: 'First part of a sentence that continues afterward',\n },\n shareMessage: {\n id: 'courseCelebration.shareMessage',\n defaultMessage: 'Share your success on social media or email.',\n },\n socialMessage: {\n id: 'courseExit.social.shareCompletionMessage',\n defaultMessage: 'I just completed {title} with {platform}!',\n description: 'Shown when sharing course progress on a social network',\n },\n upgradeButton: {\n id: 'courseExit.upgradeButton',\n defaultMessage: 'Upgrade now',\n },\n upgradeLink: {\n id: 'courseExit.upgradeLink',\n defaultMessage: 'upgrade now',\n },\n verificationPending: {\n id: 'courseCelebration.verificationPending',\n defaultMessage: 'Your ID verification is pending and your certificate will be available once approved.',\n },\n verifiedCertificateSupportLink: {\n id: 'courseExit.verifiedCertificateSupportLink',\n defaultMessage: 'Learn more about verified certificates',\n },\n verifyIdentityButton: {\n id: 'courseCelebration.verifyIdentityButton',\n defaultMessage: 'Verify ID now',\n description: 'Button to verify the identify of the user',\n },\n viewCertificateButton: {\n id: 'courseCelebration.viewCertificateButton',\n defaultMessage: 'View my certificate',\n description: 'Button to view the course certificate',\n },\n viewCourseScheduleButton: {\n id: 'courseExit.viewCourseScheduleButton',\n defaultMessage: 'View course schedule',\n description: 'Button to view the course schedule',\n },\n viewCoursesButton: {\n id: 'courseExit.viewCoursesButton',\n defaultMessage: 'View my courses',\n description: 'Button to redirect user to their course dashboard',\n },\n viewGradesButton: {\n id: 'courseExit.viewGradesButton',\n defaultMessage: 'View grades',\n },\n\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { FormattedMessage, injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Alert, Button, Hyperlink } from '@edx/paragon';\nimport certImage from '../../../generic/assets/edX_certificate.png';\nimport messages from './messages';\n\n/**\n * Note for Open edX developers:\n * There are pieces of this component that are hard-coded and specific to edX that may not apply to your organization.\n * This includes mentions of our edX program types (MicroMasters, MicroBachelors, Professional Certificate, and\n * XSeries), along with their respective support article URLs and image variable names.\n *\n * Currently, this component will not render unless the learner's completed course has a related program of one of the\n * four aforementioned types. This will not impact the parent components (i.e. CourseCelebration will render normally).\n */\n\nconst programTypes = ['microbachelors', 'micromasters', 'professional-certificate', 'xseries'];\n\nfunction ProgramCompletion({\n intl,\n progress,\n title,\n type,\n url,\n}) {\n if (!programTypes.includes(type) || progress.notStarted !== 0 || progress.inProgress !== 0) {\n return null;\n }\n\n const programLink = (\n \n {intl.formatMessage(messages.dashboardLink)}\n \n );\n\n return (\n \n
    \n
    \n
    {intl.formatMessage(messages.programsLastCourseHeader, { title })}
    \n

    \n \n

    \n {type === 'microbachelors' && (\n <>\n

    \n \n {intl.formatMessage(messages.microBachelorsLearnMore)}\n \n

    \n \n \n )}\n {type === 'micromasters' && (\n

    \n {intl.formatMessage(messages.microMastersMessage)}\n {' '}\n \n {intl.formatMessage(messages.microMastersLearnMore)}\n \n

    \n )}\n
    \n
    \n \n
    \n
    \n
    \n );\n}\n\nProgramCompletion.propTypes = {\n intl: intlShape.isRequired,\n progress: PropTypes.shape({\n completed: PropTypes.number.isRequired,\n inProgress: PropTypes.number.isRequired,\n notStarted: PropTypes.number.isRequired,\n }).isRequired,\n title: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(ProgramCompletion);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nfunction Footnote({ icon, text }) {\n return (\n
    \n

    \n  \n {text}\n

    \n
    \n );\n}\n\nFootnote.propTypes = {\n icon: PropTypes.shape({}).isRequired,\n text: PropTypes.node.isRequired,\n};\n\nexport default Footnote;\n","import { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\n\nimport messages from './messages';\nimport { useModel } from '../../../generic/model-store';\n\nconst COURSE_EXIT_MODES = {\n disabled: 0,\n celebration: 1,\n nonPassing: 2,\n inProgress: 3,\n};\n\n// These are taken from the edx-platform `get_cert_data` function found in lms/courseware/views/views.py\nconst CELEBRATION_STATUSES = [\n 'audit_passing',\n 'downloadable',\n 'earned_but_not_available',\n 'honor_passing',\n 'requesting',\n 'unverified',\n];\nconst NON_CERTIFICATE_STATUSES = [ // no certificate will be given, though a valid certificateData block is provided\n 'audit_passing',\n 'honor_passing', // provided when honor is configured to not give a certificate\n];\n\nfunction getCourseExitMode(\n certificateData,\n hasScheduledContent,\n isEnrolled,\n userHasPassingGrade,\n courseExitPageIsActive = null,\n) {\n const authenticatedUser = getAuthenticatedUser();\n\n if (courseExitPageIsActive === false || !authenticatedUser || !isEnrolled) {\n return COURSE_EXIT_MODES.disabled;\n }\n\n // Set defaults for our status-calculated variables, used when no certificateData is provided.\n // This happens when `get_cert_data` in edx-platform returns None, which it does if we are\n // in a certificate-earning mode, but the certificate is not available (maybe they didn't pass\n // or course is not set up for certificates or something). Audit users will always have a\n // certificateData sent over.\n let isCelebratoryStatus = true;\n let isEligibleForCertificate = true;\n\n if (certificateData) {\n const { certStatus } = certificateData;\n isCelebratoryStatus = CELEBRATION_STATUSES.indexOf(certStatus) !== -1;\n isEligibleForCertificate = NON_CERTIFICATE_STATUSES.indexOf(certStatus) === -1;\n }\n\n if (hasScheduledContent && !userHasPassingGrade) {\n return COURSE_EXIT_MODES.inProgress;\n }\n if (isEligibleForCertificate && !userHasPassingGrade) {\n return COURSE_EXIT_MODES.nonPassing;\n }\n if (isCelebratoryStatus) {\n return COURSE_EXIT_MODES.celebration;\n }\n return COURSE_EXIT_MODES.disabled;\n}\n\n// Returns null in order to render the default navigation text\nfunction getCourseExitNavigation(courseId, intl) {\n const {\n certificateData,\n hasScheduledContent,\n isEnrolled,\n userHasPassingGrade,\n courseExitPageIsActive,\n } = useModel('coursewareMeta', courseId);\n const exitMode = getCourseExitMode(\n certificateData,\n hasScheduledContent,\n isEnrolled,\n userHasPassingGrade,\n courseExitPageIsActive,\n );\n const exitActive = exitMode !== COURSE_EXIT_MODES.disabled;\n\n let exitText;\n switch (exitMode) {\n case COURSE_EXIT_MODES.celebration:\n exitText = intl.formatMessage(messages.nextButtonComplete);\n break;\n case COURSE_EXIT_MODES.nonPassing:\n exitText = intl.formatMessage(messages.nextButtonEnd);\n break;\n default:\n exitText = null;\n }\n return { exitActive, exitText };\n}\n\n// Meant to be used as part of a button's onClick handler.\n// For convenience, you can pass a falsy event and it will be ignored.\nconst logClick = (org, courseId, administrator, event, extraProperties) => {\n if (!event) {\n return;\n }\n\n sendTrackEvent(`edx.ui.lms.course_exit.${event}.clicked`, {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n ...extraProperties,\n });\n};\n\n// Use like the following to call this only once on initial page load:\n// useEffect(() => logVisit(org, courseId, administrator, variant), [org, courseId, administrator, variant]);\n// For convenience, you can pass a falsy variant and it will be ignored.\nconst logVisit = (org, courseId, administrator, variant) => {\n if (!variant) {\n return;\n }\n\n sendTrackEvent('edx.ui.lms.course_exit.visited', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n variant,\n });\n};\n\nexport {\n COURSE_EXIT_MODES,\n getCourseExitMode,\n getCourseExitNavigation,\n logClick,\n logVisit,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\n\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport {\n FormattedMessage, injectIntl, intlShape,\n} from '@edx/frontend-platform/i18n';\nimport { Hyperlink } from '@edx/paragon';\nimport { faCalendarAlt } from '@fortawesome/free-regular-svg-icons';\nimport { getConfig } from '@edx/frontend-platform';\n\nimport { useModel } from '../../../generic/model-store';\n\nimport Footnote from './Footnote';\nimport messages from './messages';\nimport { logClick } from './utils';\n\nfunction DashboardFootnote({ intl, variant }) {\n const { courseId } = useSelector(state => state.courseware);\n const { org } = useModel('coursewareMeta', courseId);\n const { administrator } = getAuthenticatedUser();\n\n const dashboardLink = (\n logClick(org, courseId, administrator, 'dashboard_footnote', { variant })}\n >\n {intl.formatMessage(messages.dashboardLink)}\n \n );\n\n return (\n \n )}\n />\n );\n}\n\nDashboardFootnote.propTypes = {\n intl: intlShape.isRequired,\n variant: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(DashboardFootnote);\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport {\n FormattedDate, FormattedMessage, injectIntl, intlShape,\n} from '@edx/frontend-platform/i18n';\nimport { Hyperlink } from '@edx/paragon';\nimport { faCalendarAlt } from '@fortawesome/free-regular-svg-icons';\n\nimport Footnote from './Footnote';\nimport { logClick } from './utils';\nimport messages from './messages';\nimport { useModel } from '../../../generic/model-store';\n\nfunction UpgradeFootnote({ deadline, href, intl }) {\n const { courseId } = useSelector(state => state.courseware);\n const { org } = useModel('coursewareMeta', courseId);\n const { administrator } = getAuthenticatedUser();\n\n const upgradeLink = (\n logClick(org, courseId, administrator, 'upgrade_footnote')}\n >\n {intl.formatMessage(messages.upgradeLink)}\n \n );\n\n const expirationDate = (\n \n );\n\n return (\n \n )}\n />\n );\n}\n\nUpgradeFootnote.propTypes = {\n deadline: PropTypes.instanceOf(Date).isRequired,\n href: PropTypes.string.isRequired,\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(UpgradeFootnote);\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n defaultEmailBody: {\n id: 'learning.celebration.emailBody',\n defaultMessage: 'What are you spending your time learning?',\n description: 'Body when sharing course progress via email',\n },\n shareEmail: {\n id: 'learning.social.shareEmail',\n defaultMessage: 'Share your progress via email.',\n },\n shareService: {\n id: 'learning.social.shareService',\n defaultMessage: 'Share your progress on {service}.',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n EmailIcon,\n EmailShareButton,\n FacebookIcon,\n FacebookShareButton,\n LinkedinIcon,\n LinkedinShareButton,\n TwitterIcon,\n TwitterShareButton,\n} from 'react-share';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\n\nimport messages from './messages';\nimport { useModel } from '../../generic/model-store';\n\nfunction SocialIcons({\n analyticsId,\n className,\n courseId,\n emailBody,\n emailSubject,\n hashtags,\n intl,\n socialMessage,\n}) {\n const {\n marketingUrl,\n org,\n title,\n } = useModel('coursewareMeta', courseId);\n\n if (!marketingUrl) {\n return null;\n }\n\n const twitterUrl = getConfig().TWITTER_URL;\n const twitterAccount = twitterUrl && twitterUrl.substring(twitterUrl.lastIndexOf('/') + 1);\n\n const logClick = (service) => {\n if (!analyticsId) {\n return;\n }\n\n const { administrator } = getAuthenticatedUser();\n sendTrackEvent(analyticsId, {\n org_key: org,\n courserun_key: courseId,\n course_id: courseId, // should only be courserun_key, but left as-is for historical reasons\n is_staff: administrator,\n service,\n });\n };\n\n const socialUtmCampaign = getConfig().SOCIAL_UTM_MILESTONE_CAMPAIGN\n ? `utm_campaign=${getConfig().SOCIAL_UTM_MILESTONE_CAMPAIGN}&` : '';\n const socialUtmMarketingUrl = `${marketingUrl}?${socialUtmCampaign}utm_medium=social`;\n\n return (\n
    \n logClick('linkedin')}\n url={`${socialUtmMarketingUrl}&utm_source=linkedin`}\n >\n \n {intl.formatMessage(messages.shareService, { service: 'LinkedIn' })}\n \n {twitterAccount && (\n logClick('twitter')}\n className=\"ml-2\"\n hashtags={hashtags}\n title={socialMessage ? intl.formatMessage(socialMessage, { platform: `@${twitterAccount}`, title }) : ''}\n url={`${socialUtmMarketingUrl}&utm_source=twitter`}\n >\n \n {intl.formatMessage(messages.shareService, { service: 'Twitter' })}\n \n )}\n logClick('facebook')}\n className=\"ml-2\"\n quote={socialMessage ? intl.formatMessage(socialMessage, { platform: getConfig().SITE_NAME, title }) : ''}\n url={`${socialUtmMarketingUrl}&utm_source=facebook`}\n >\n \n {intl.formatMessage(messages.shareService, { service: 'Facebook' })}\n \n logClick('email')}\n body={emailBody ? `${intl.formatMessage(emailBody)}\\n\\n` : ''}\n className=\"ml-2\"\n subject={emailSubject ? intl.formatMessage(emailSubject, { platform: getConfig().SITE_NAME, title }) : ''}\n url={`${marketingUrl}?${socialUtmCampaign}utm_medium=email&utm_source=email`}\n >\n \n {intl.formatMessage(messages.shareEmail)}\n \n
    \n );\n}\n\nSocialIcons.defaultProps = {\n analyticsId: '',\n className: '',\n emailBody: messages.defaultEmailBody,\n emailSubject: null,\n hashtags: [getConfig().TWITTER_HASHTAG],\n socialMessage: null,\n};\n\nSocialIcons.propTypes = {\n analyticsId: PropTypes.string,\n className: PropTypes.string,\n courseId: PropTypes.string.isRequired,\n emailBody: PropTypes.shape({}),\n emailSubject: PropTypes.shape({}),\n hashtags: PropTypes.arrayOf(PropTypes.string),\n intl: intlShape.isRequired,\n socialMessage: PropTypes.shape({}),\n};\n\nexport default injectIntl(SocialIcons);\n","import React from 'react';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { getConfig } from '@edx/frontend-platform';\nimport { Hyperlink } from '@edx/paragon';\n\nimport messages from '../courseware/course/course-exit/messages';\n\nfunction IntlDashboardLink({ intl }) {\n return (\n \n {intl.formatMessage(messages.dashboardLink)}\n \n );\n}\n\nIntlDashboardLink.propTypes = {\n intl: intlShape.isRequired,\n};\n\nfunction IntlIdVerificationSupportLink({ intl }) {\n if (!getConfig().SUPPORT_URL_ID_VERIFICATION) {\n return null;\n }\n return (\n \n {intl.formatMessage(messages.idVerificationSupportLink)}\n \n );\n}\n\nIntlIdVerificationSupportLink.propTypes = {\n intl: intlShape.isRequired,\n};\n\nfunction IntlProfileLink({ intl }) {\n const { username } = getAuthenticatedUser();\n\n return (\n \n {intl.formatMessage(messages.profileLink)}\n \n );\n}\n\nIntlProfileLink.propTypes = {\n intl: intlShape.isRequired,\n};\n\nconst DashboardLink = injectIntl(IntlDashboardLink);\nconst IdVerificationSupportLink = injectIntl(IntlIdVerificationSupportLink);\nconst ProfileLink = injectIntl(IntlProfileLink);\n\nexport { DashboardLink, IdVerificationSupportLink, ProfileLink };\n","/* eslint-disable no-param-reassign */\nimport { createSlice } from '@reduxjs/toolkit';\n\nexport const LOADING = 'loading';\nexport const LOADED = 'loaded';\nexport const FAILED = 'failed';\n\nconst slice = createSlice({\n courseId: null,\n name: 'recommendations',\n initialState: {\n recommendationsStatus: LOADING,\n },\n reducers: {\n fetchCourseRecommendationsRequest: (state, { payload }) => {\n state.courseId = payload.courseId;\n state.recommendationsStatus = LOADING;\n },\n fetchCourseRecommendationsSuccess: (state, { payload }) => {\n state.courseId = payload.courseId;\n state.recommendationsStatus = LOADED;\n },\n fetchCourseRecommendationsFailure: (state, { payload }) => {\n state.courseId = payload.courseId;\n state.recommendationsStatus = FAILED;\n },\n },\n});\n\nexport const {\n fetchCourseRecommendationsRequest,\n fetchCourseRecommendationsSuccess,\n fetchCourseRecommendationsFailure,\n} = slice.actions;\n\nexport const {\n reducer,\n} = slice;\n","import { getConfig, camelCaseObject } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';\n\nfunction filterRecommendationsList(\n {\n data: {\n uuid,\n recommendations,\n },\n },\n {\n data: enrollments,\n },\n) {\n const enrollmentRunIds = enrollments.map(({\n courseDetails: {\n courseId,\n },\n }) => courseId);\n\n return recommendations.filter(({ uuid: recUuid, courseRunKeys }) => (\n recUuid !== uuid && courseRunKeys.every((key) => !enrollmentRunIds.includes(key))\n ));\n}\n\nexport async function getCourseRecommendations(courseKey) {\n const discoveryApiUrl = getConfig().DISCOVERY_API_BASE_URL;\n if (!discoveryApiUrl) {\n return [];\n }\n const recommendationsUrl = new URL(`${discoveryApiUrl}/api/v1/course_recommendations/${courseKey}?exclude_utm=true`);\n const enrollmentsUrl = new URL(`${getConfig().LMS_BASE_URL}/api/enrollment/v1/enrollment`);\n const [recommendationsResponse, enrollmentsResponse] = await Promise.all([\n getAuthenticatedHttpClient().get(recommendationsUrl),\n getAuthenticatedHttpClient().get(enrollmentsUrl),\n ]);\n return filterRecommendationsList(camelCaseObject(recommendationsResponse), camelCaseObject(enrollmentsResponse));\n}\n\nexport async function postUnsubscribeFromGoalReminders(courseId) {\n const url = new URL(`${getConfig().LMS_BASE_URL}/api/course_home/save_course_goal`);\n return getAuthenticatedHttpClient().post(url.href, {\n course_id: courseId,\n subscribed_to_reminders: false,\n });\n}\n","import { logError } from '@edx/frontend-platform/logging';\n\nimport {\n fetchCourseRecommendationsFailure,\n fetchCourseRecommendationsRequest,\n fetchCourseRecommendationsSuccess,\n} from './slice';\nimport {\n getCourseRecommendations,\n postUnsubscribeFromGoalReminders,\n} from './api';\nimport { updateModel } from '../../../../generic/model-store';\n\nexport default function fetchCourseRecommendations(courseKey, courseId) {\n return async (dispatch) => {\n dispatch(fetchCourseRecommendationsRequest({ courseId }));\n try {\n const recommendations = await getCourseRecommendations(courseKey);\n dispatch(updateModel({\n modelType: 'coursewareMeta',\n model: {\n id: courseId,\n recommendations,\n },\n }));\n dispatch(fetchCourseRecommendationsSuccess({ courseId }));\n } catch (error) {\n logError(error);\n dispatch(fetchCourseRecommendationsFailure({ courseId }));\n }\n };\n}\n\nexport async function unsubscribeFromGoalReminders(courseId, daysPerWeek, subscribedToReminders) {\n return postUnsubscribeFromGoalReminders(courseId, daysPerWeek, subscribedToReminders);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport {\n FormattedMessage, injectIntl, intlShape,\n} from '@edx/frontend-platform/i18n';\nimport { Hyperlink } from '@edx/paragon';\nimport { faSearch } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { useModel } from '../../../generic/model-store';\n\nimport messages from './messages';\nimport { logClick } from './utils';\n\nfunction CatalogSuggestion({ intl, variant }) {\n const { courseId } = useSelector(state => state.courseware);\n const { org } = useModel('coursewareMeta', courseId);\n const { administrator } = getAuthenticatedUser();\n\n const searchOurCatalogLink = (\n logClick(org, courseId, administrator, 'catalog_search', { variant })}\n >\n {intl.formatMessage(messages.searchOurCatalogLink)}\n \n );\n\n return (\n
    \n
    \n  \n \n
    \n
    \n );\n}\n\nCatalogSuggestion.propTypes = {\n intl: intlShape.isRequired,\n variant: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(CatalogSuggestion);\n","import React, { useEffect } from 'react';\nimport { getConfig } from '@edx/frontend-platform';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport {\n FormattedMessage, injectIntl, intlShape, defineMessages,\n} from '@edx/frontend-platform/i18n';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n Hyperlink, DataTable, CardView, Card,\n} from '@edx/paragon';\nimport PropTypes from 'prop-types';\nimport truncate from 'truncate-html';\nimport { useModel } from '../../../generic/model-store/hooks';\nimport fetchCourseRecommendations from './data/thunks';\nimport { FAILED, LOADED, LOADING } from './data/slice';\nimport CatalogSuggestion from './CatalogSuggestion';\nimport PageLoading from '../../../generic/PageLoading';\nimport { logClick } from './utils';\n\nconst messages = defineMessages({\n recommendationsHeading: {\n id: 'courseCelebration.recommendations.heading',\n description: 'Header for recommendations section of course celebration',\n defaultMessage: 'Keep building your skills with these courses!',\n },\n listJoin: {\n id: 'courseCelebration.recommendations.formatting.list_join',\n description: 'Joining mark or word for a list of items, use the {sp} placeholder to include space before the joining word',\n // eslint-disable-next-line prefer-template\n defaultMessage: ('{style, select, '\n + 'punctuation {, } ' // HACK: select keys must match ListStyles, above, but must be statically coded for extract\n + 'conjunction { {sp}and } ' // HACK: interpolating a space character to get a leading-space here\n + 'other { }}'),\n },\n browseCatalog: {\n id: 'courseCelebration.recommendations.browse_catalog',\n description: 'Link to course catalog in course celebration',\n defaultMessage: 'Explore more courses',\n },\n loadingRecommendations: {\n id: 'courseCelebration.recommendations.loading_recommendations',\n description: 'Screen-reader text for the loading screen for recommendations',\n defaultMessage: 'Loading recommendations',\n },\n});\n\nconst ListStyles = {\n punctuation: 'punctuation',\n conjunction: 'conjunction',\n};\n\nfunction CourseCard({\n original: {\n title,\n image,\n owners,\n marketingUrl,\n onClick,\n },\n intl,\n}) {\n const formatList = (items, style) => (\n items.join(intl.formatMessage(\n messages.listJoin,\n { style, sp: ' ' }, // HACK: there isn't a way to escape a leading space in the format, so pass one in\n ))\n );\n\n const formattedOwners = formatList(\n owners.map(owner => owner.key),\n ListStyles.punctuation,\n intl,\n );\n\n return (\n \n \n \n \n \n \n

    \n {truncate(title, 70, { reserveLastWord: -1 })}\n

    \n
    \n
    \n {text => (\n <>\n {text}: \n {truncate(formattedOwners, 40, { reserveLastWord: -1 })}\n \n )}\n \n
    \n
    \n
    \n \n
    \n\n
    \n \n \n );\n}\n\nCourseCard.propTypes = {\n original: PropTypes.shape({\n marketingUrl: PropTypes.string,\n title: PropTypes.string,\n image: PropTypes.shape({\n src: PropTypes.string,\n }),\n owners: PropTypes.arrayOf(PropTypes.shape({\n key: PropTypes.string,\n })),\n onClick: PropTypes.func,\n }).isRequired,\n intl: intlShape.isRequired,\n};\n\nconst IntlCard = injectIntl(CourseCard);\n\nfunction CourseRecommendations({ intl, variant }) {\n const { courseId, recommendationsStatus } = useSelector(state => ({ ...state.recommendations, ...state.courseware }));\n const { org, number, recommendations } = useModel('coursewareMeta', courseId);\n const dispatch = useDispatch();\n\n const courseKey = `${org}+${number}`;\n const { administrator } = getAuthenticatedUser();\n\n useEffect(() => {\n dispatch(fetchCourseRecommendations(courseKey, courseId));\n }, [dispatch]);\n\n if (recommendationsStatus && recommendationsStatus !== LOADING) {\n sendTrackEvent('edx.ui.lms.course_exit.recommendations.viewed', {\n course_key: courseKey,\n recommendations_status: recommendationsStatus,\n recommendations_length: recommendations ? recommendations.length : 0,\n });\n }\n\n if (recommendationsStatus === FAILED || (recommendationsStatus === LOADED && recommendations.length < 2)) {\n return ();\n }\n\n if (recommendationsStatus === LOADING) {\n return ;\n }\n\n const onCardClick = (url) => (e) => {\n e.preventDefault();\n logClick(org, courseId, administrator, 'recommendation_discovery_card');\n setTimeout(() => {\n window.location.href = url;\n }, (200));\n };\n\n const recommendationData = recommendations.map((recommendation) => (\n { ...recommendation, onClick: onCardClick(recommendation.marketingUrl) }\n ));\n\n return (\n
    \n

    {intl.formatMessage(messages.recommendationsHeading)}

    \n
    \n \n \n \n
    \n \n {intl.formatMessage(messages.browseCatalog)}\n \n
    \n );\n}\n\nCourseRecommendations.propTypes = {\n intl: intlShape.isRequired,\n variant: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(CourseRecommendations);\n","import React, { useEffect } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faLinkedinIn } from '@fortawesome/free-brands-svg-icons';\n\nimport {\n FormattedDate, FormattedMessage, injectIntl, intlShape,\n} from '@edx/frontend-platform/i18n';\nimport { layoutGenerator } from 'react-break';\nimport { Helmet } from 'react-helmet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Alert, Button, Hyperlink } from '@edx/paragon';\nimport { CheckCircle } from '@edx/paragon/icons';\nimport { getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\n\nimport CelebrationMobile from './assets/celebration_456x328.gif';\nimport CelebrationDesktop from './assets/celebration_750x540.gif';\nimport certificate from '../../../generic/assets/edX_certificate.png';\nimport certificateLocked from '../../../generic/assets/edX_locked_certificate.png';\nimport { FormattedPricing } from '../../../generic/upgrade-button';\nimport messages from './messages';\nimport { useModel } from '../../../generic/model-store';\nimport { requestCert } from '../../../course-home/data/thunks';\nimport ProgramCompletion from './ProgramCompletion';\nimport DashboardFootnote from './DashboardFootnote';\nimport UpgradeFootnote from './UpgradeFootnote';\nimport SocialIcons from '../../social-share/SocialIcons';\nimport { logClick, logVisit } from './utils';\nimport { DashboardLink, IdVerificationSupportLink, ProfileLink } from '../../../shared/links';\nimport CourseRecommendations from './CourseRecommendations';\n\nconst LINKEDIN_BLUE = '#2867B2';\n\nfunction CourseCelebration({ intl }) {\n const layout = layoutGenerator({\n mobile: 0,\n tablet: 768,\n });\n\n const OnMobile = layout.is('mobile');\n const OnAtLeastTablet = layout.isAtLeast('tablet');\n\n const { courseId } = useSelector(state => state.courseware);\n const dispatch = useDispatch();\n const {\n certificateData,\n end,\n linkedinAddToProfileUrl,\n marketingUrl,\n offer,\n org,\n relatedPrograms,\n title,\n verifiedMode,\n verifyIdentityUrl,\n verificationStatus,\n } = useModel('coursewareMeta', courseId);\n\n const {\n certStatus,\n certWebViewUrl,\n downloadUrl,\n certificateAvailableDate,\n } = certificateData || {};\n\n const { administrator } = getAuthenticatedUser();\n\n const dashboardLink = ;\n const idVerificationSupportLink = ;\n const profileLink = ;\n\n let buttonPrefix = null;\n let buttonLocation;\n let buttonText;\n let buttonVariant = 'outline-primary';\n let buttonEvent = null;\n let buttonSuffix = null;\n let certificateImage = certificate;\n let footnote;\n let message;\n let certHeader;\n let visitEvent = 'celebration_generic';\n // These cases are taken from the edx-platform `get_cert_data` function found in lms/courseware/views/views.py\n switch (certStatus) {\n case 'downloadable':\n certHeader = intl.formatMessage(messages.certificateHeaderDownloadable);\n message = (\n

    \n \n

    \n );\n if (certWebViewUrl) {\n buttonLocation = `${getConfig().LMS_BASE_URL}${certWebViewUrl}`;\n buttonText = intl.formatMessage(messages.viewCertificateButton);\n } else if (downloadUrl) {\n buttonLocation = downloadUrl;\n buttonText = intl.formatMessage(messages.downloadButton);\n }\n if (linkedinAddToProfileUrl) {\n buttonPrefix = (\n logClick(org, courseId, administrator, 'linkedin_add_to_profile')}\n style={{ backgroundColor: LINKEDIN_BLUE, border: 'none' }}\n >\n \n {`${intl.formatMessage(messages.linkedinAddToProfileButton)}`}\n \n );\n }\n buttonEvent = 'view_cert';\n visitEvent = 'celebration_with_cert';\n footnote = ;\n break;\n case 'earned_but_not_available': {\n const endDate = ;\n const certAvailableDate = ;\n certHeader = intl.formatMessage(messages.certificateHeaderNotAvailable);\n message = (\n <>\n

    \n \n

    \n

    \n {intl.formatMessage(messages.certificateNotAvailableBodyAccessCert)}\n

    \n \n );\n visitEvent = 'celebration_with_unavailable_cert';\n footnote = ;\n break;\n }\n case 'requesting':\n // The requesting status needs a different button because it does a POST instead of a GET.\n // So we don't set buttonLocation and instead define a custom button as a buttonPrefix.\n buttonEvent = 'request_cert';\n buttonPrefix = (\n {\n logClick(org, courseId, administrator, buttonEvent);\n dispatch(requestCert(courseId));\n }}\n >\n {intl.formatMessage(messages.requestCertificateButton)}\n \n );\n certHeader = intl.formatMessage(messages.certificateHeaderRequestable);\n message = (

    {intl.formatMessage(messages.requestCertificateBodyText)}

    );\n visitEvent = 'celebration_with_requestable_cert';\n footnote = ;\n break;\n case 'unverified':\n certHeader = intl.formatMessage(messages.certificateHeaderUnverified);\n visitEvent = 'celebration_unverified';\n footnote = ;\n if (verificationStatus === 'pending') {\n message = (

    {intl.formatMessage(messages.verificationPending)}

    );\n } else {\n buttonText = intl.formatMessage(messages.verifyIdentityButton);\n buttonEvent = 'verify_id';\n buttonLocation = verifyIdentityUrl;\n // todo: check for idVerificationSupportLink null\n message = (\n

    \n \n

    \n );\n }\n break;\n case 'audit_passing':\n case 'honor_passing':\n if (verifiedMode) {\n certHeader = intl.formatMessage(messages.certificateHeaderUpgradable);\n message = (\n

    \n }}\n />\n
    \n {getConfig().SUPPORT_URL_VERIFIED_CERTIFICATE && (\n \n {intl.formatMessage(messages.verifiedCertificateSupportLink)}\n \n )}\n

    \n );\n buttonText = intl.formatMessage(messages.upgradeButton);\n buttonEvent = 'upgrade';\n buttonLocation = verifiedMode.upgradeUrl;\n buttonVariant = 'primary';\n if (offer) {\n buttonSuffix = (\n \n {offer.code}),\n percent: offer.percentage,\n }}\n />\n \n );\n }\n certificateImage = certificateLocked;\n visitEvent = 'celebration_upgrade';\n if (verifiedMode.accessExpirationDate) {\n footnote = ;\n } else {\n footnote = ;\n }\n } else {\n visitEvent = 'celebration_audit_no_upgrade';\n }\n break;\n default:\n break;\n }\n\n useEffect(() => logVisit(org, courseId, administrator, visitEvent), [org, courseId, administrator, visitEvent]);\n\n return (\n <>\n \n {`${intl.formatMessage(messages.congratulationsHeader)} | ${title} | ${getConfig().SITE_NAME}`}\n \n
    \n
    \n {intl.formatMessage(messages.congratulationsHeader)}\n
    \n
    \n {intl.formatMessage(messages.completedCourseHeader)}\n {marketingUrl && ` ${intl.formatMessage(messages.shareMessage)}`}\n \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n {certHeader && (\n \n
    \n
    \n
    {certHeader}
    \n {message}\n
    \n {buttonPrefix}\n {buttonLocation && (\n logClick(org, courseId, administrator, buttonEvent)}\n >\n {buttonText}\n \n )}\n {buttonSuffix}\n
    \n
    \n {certStatus !== 'unverified' && (\n
    \n \n
    \n )}\n
    \n
    \n )}\n {relatedPrograms && relatedPrograms.map(program => (\n \n ))}\n {footnote}\n \n
    \n
    \n \n );\n}\n\nCourseCelebration.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(CourseCelebration);\n","import React, { useEffect } from 'react';\n\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Helmet } from 'react-helmet';\nimport { useSelector } from 'react-redux';\nimport { Alert, Button } from '@edx/paragon';\nimport { getConfig } from '@edx/frontend-platform';\n\nimport { useModel } from '../../../generic/model-store';\n\nimport CatalogSuggestion from './CatalogSuggestion';\nimport DashboardFootnote from './DashboardFootnote';\nimport messages from './messages';\nimport { logClick, logVisit } from './utils';\n\nfunction CourseInProgress({ intl }) {\n const { courseId } = useSelector(state => state.courseware);\n const { org, tabs, title } = useModel('coursewareMeta', courseId);\n const { administrator } = getAuthenticatedUser();\n\n // Get dates tab link for 'view course schedule' button\n const datesTab = tabs.find(tab => tab.slug === 'dates');\n const datesTabLink = datesTab && datesTab.url;\n\n useEffect(() => logVisit(org, courseId, administrator, 'in_progress'), [org, courseId, administrator]);\n\n return (\n <>\n \n {`${intl.formatMessage(messages.endOfCourseTitle)} | ${title} | ${getConfig().SITE_NAME}`}\n \n
    \n
    \n { intl.formatMessage(messages.courseInProgressHeader) }\n
    \n \n
    \n
    { intl.formatMessage(messages.courseInProgressDescription) }
    \n {datesTabLink && (\n logClick(org, courseId, administrator, 'view_dates_tab')}\n >\n {intl.formatMessage(messages.viewCourseScheduleButton)}\n \n )}\n
    \n
    \n \n \n
    \n \n );\n}\n\nCourseInProgress.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(CourseInProgress);\n","import React, { useEffect } from 'react';\n\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Helmet } from 'react-helmet';\nimport { useSelector } from 'react-redux';\nimport { Alert, Button } from '@edx/paragon';\nimport { getConfig } from '@edx/frontend-platform';\n\nimport { useModel } from '../../../generic/model-store';\n\nimport CatalogSuggestion from './CatalogSuggestion';\nimport DashboardFootnote from './DashboardFootnote';\nimport messages from './messages';\nimport { logClick, logVisit } from './utils';\n\nfunction CourseNonPassing({ intl }) {\n const { courseId } = useSelector(state => state.courseware);\n const { org, tabs, title } = useModel('coursewareMeta', courseId);\n const { administrator } = getAuthenticatedUser();\n\n // Get progress tab link for 'view grades' button\n const progressTab = tabs.find(tab => tab.slug === 'progress');\n const progressLink = progressTab && progressTab.url;\n\n useEffect(() => logVisit(org, courseId, administrator, 'nonpassing'), [org, courseId, administrator]);\n\n return (\n <>\n \n {`${intl.formatMessage(messages.endOfCourseTitle)} | ${title} | ${getConfig().SITE_NAME}`}\n \n
    \n
    \n { intl.formatMessage(messages.endOfCourseHeader) }\n
    \n \n
    \n
    { intl.formatMessage(messages.endOfCourseDescription) }
    \n {progressLink && (\n logClick(org, courseId, administrator, 'view_grades')}\n >\n {intl.formatMessage(messages.viewGradesButton)}\n \n )}\n
    \n
    \n \n \n
    \n \n );\n}\n\nCourseNonPassing.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(CourseNonPassing);\n","import React, { useEffect } from 'react';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button } from '@edx/paragon';\nimport { useSelector } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\n\nimport CourseCelebration from './CourseCelebration';\nimport CourseInProgress from './CourseInProgress';\nimport CourseNonPassing from './CourseNonPassing';\nimport { COURSE_EXIT_MODES, getCourseExitMode } from './utils';\nimport messages from './messages';\nimport { unsubscribeFromGoalReminders } from './data/thunks';\n\nimport { useModel } from '../../../generic/model-store';\n\nfunction CourseExit({ intl }) {\n const { courseId } = useSelector(state => state.courseware);\n const {\n certificateData,\n courseExitPageIsActive,\n courseGoals,\n enrollmentMode,\n hasScheduledContent,\n isEnrolled,\n isMasquerading,\n userHasPassingGrade,\n } = useModel('coursewareMeta', courseId);\n\n const mode = getCourseExitMode(\n certificateData,\n hasScheduledContent,\n isEnrolled,\n userHasPassingGrade,\n courseExitPageIsActive,\n );\n\n // Audit users cannot fully complete a course, so we will\n // unsubscribe them from goal reminders once they reach the course exit page\n // to avoid spamming them with goal reminder emails\n if (courseGoals && enrollmentMode === 'audit' && !isMasquerading) {\n useEffect(() => {\n unsubscribeFromGoalReminders(courseId);\n }, []);\n }\n\n let body = null;\n if (mode === COURSE_EXIT_MODES.nonPassing) {\n body = ();\n } else if (mode === COURSE_EXIT_MODES.inProgress) {\n body = ();\n } else if (mode === COURSE_EXIT_MODES.celebration) {\n body = ();\n } else {\n return ();\n }\n\n return (\n <>\n
    \n \n {intl.formatMessage(messages.viewCoursesButton)}\n \n
    \n {body}\n \n );\n}\n\nCourseExit.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(CourseExit);\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n failure: {\n id: 'learning.loading.failure',\n defaultMessage: 'There was an error loading this course.',\n },\n loading: {\n id: 'learning.loading',\n defaultMessage: 'Loading course page…',\n },\n});\n\nexport default messages;\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messagesBadgeProgress = defineMessages({\n failure: {\n id: 'badge.progress.loading.failure',\n defaultMessage: 'There was an error loading the course badge progress.',\n description: 'Message when course badge progress page fails to load',\n },\n loading: {\n id: 'badge.progress.loading',\n defaultMessage: 'Loading course badge progress page...',\n description: 'Message when course badge progress page is being loaded',\n },\n});\n\nexport default messagesBadgeProgress;\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n courseMaterial: {\n id: 'learn.navigation.course.tabs.label',\n defaultMessage: 'Course Material',\n description: 'The accessible label for course tabs navigation',\n },\n});\n\nexport default messages;\n","import { useLayoutEffect, useRef, useState } from 'react';\n\nimport useWindowSize from './useWindowSize';\n\nconst invisibleStyle = {\n position: 'absolute',\n left: 0,\n pointerEvents: 'none',\n visibility: 'hidden',\n};\n\n/**\n * This hook will find the index of the last child of a containing element\n * that fits within its bounding rectangle. This is done by summing the widths\n * of the children until they exceed the width of the container.\n *\n * The hook returns an array containing:\n * [indexOfLastVisibleChild, containerElementRef, invisibleStyle, overflowElementRef]\n *\n * indexOfLastVisibleChild - the index of the last visible child\n * containerElementRef - a ref to be added to the containing html node\n * invisibleStyle - a set of styles to be applied to child of the containing node\n * if it needs to be hidden. These styles remove the element visually, from\n * screen readers, and from normal layout flow. But, importantly, these styles\n * preserve the width of the element, so that future width calculations will\n * still be accurate.\n * overflowElementRef - a ref to be added to an html node inside the container\n * that is likely to be used to contain a \"More\" type dropdown or other\n * mechanism to reveal hidden children. The width of this element is always\n * included when determining which children will fit or not. Usage of this ref\n * is optional.\n */\nexport default function useIndexOfLastVisibleChild() {\n const containerElementRef = useRef(null);\n const overflowElementRef = useRef(null);\n const containingRectRef = useRef({});\n const [indexOfLastVisibleChild, setIndexOfLastVisibleChild] = useState(-1);\n const windowSize = useWindowSize();\n\n useLayoutEffect(() => {\n const containingRect = containerElementRef.current.getBoundingClientRect();\n\n // No-op if the width is unchanged.\n // (Assumes tabs themselves don't change count or width).\n if (!containingRect.width === containingRectRef.current.width) {\n return;\n }\n // Update for future comparison\n containingRectRef.current = containingRect;\n\n // Get array of child nodes from NodeList form\n const childNodesArr = Array.prototype.slice.call(containerElementRef.current.children);\n const { nextIndexOfLastVisibleChild } = childNodesArr\n // filter out the overflow element\n .filter(childNode => childNode !== overflowElementRef.current)\n // sum the widths to find the last visible element's index\n .reduce((acc, childNode, index) => {\n // use floor to prevent rounding errors\n acc.sumWidth += Math.floor(childNode.getBoundingClientRect().width);\n if (acc.sumWidth <= containingRect.width) {\n acc.nextIndexOfLastVisibleChild = index;\n }\n return acc;\n }, {\n // Include the overflow element's width to begin with. Doing this means\n // sometimes we'll show a dropdown with one item in it when it would fit,\n // but allowing this case dramatically simplifies the calculations we need\n // to do above.\n sumWidth: overflowElementRef.current ? overflowElementRef.current.getBoundingClientRect().width : 0,\n nextIndexOfLastVisibleChild: -1,\n });\n\n setIndexOfLastVisibleChild(nextIndexOfLastVisibleChild);\n }, [windowSize, containerElementRef.current]);\n\n return [indexOfLastVisibleChild, containerElementRef, invisibleStyle, overflowElementRef];\n}\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Dropdown } from '@edx/paragon';\nimport { FormattedMessage } from '@edx/frontend-platform/i18n';\nimport classNames from 'classnames';\n\nimport useIndexOfLastVisibleChild from './useIndexOfLastVisibleChild';\n\nexport default function Tabs({ children, className, ...attrs }) {\n const [\n indexOfLastVisibleChild,\n containerElementRef,\n invisibleStyle,\n overflowElementRef,\n ] = useIndexOfLastVisibleChild();\n\n const tabChildren = useMemo(() => {\n const childrenArray = React.Children.toArray(children);\n const indexOfOverflowStart = indexOfLastVisibleChild + 1;\n\n // All tabs will be rendered. Those that would overflow are set to invisible.\n const wrappedChildren = childrenArray.map((child, index) => React.cloneElement(child, {\n style: index > indexOfLastVisibleChild ? invisibleStyle : null,\n }));\n\n // Build the list of items to put in the overflow menu\n const overflowChildren = childrenArray.slice(indexOfOverflowStart)\n .map(overflowChild => React.cloneElement(overflowChild, { className: 'dropdown-item' }));\n\n // Insert the overflow menu at the cut off index (even if it will be hidden\n // it so it can be part of measurements)\n wrappedChildren.splice(indexOfOverflowStart, 0, (\n = React.Children.count(children) ? invisibleStyle : null}\n ref={overflowElementRef}\n key=\"overflow\"\n >\n \n \n \n \n {overflowChildren}\n \n \n ));\n return wrappedChildren;\n }, [children, indexOfLastVisibleChild]);\n\n return (\n \n {tabChildren}\n \n );\n}\n\nTabs.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n};\n\nTabs.defaultProps = {\n children: null,\n className: undefined,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport classNames from 'classnames';\n\nimport messages from './messages';\nimport Tabs from '../generic/tabs/Tabs';\n\nfunction CourseTabsNavigation({\n activeTabSlug, className, tabs, intl,\n}) {\n return (\n
    \n
    \n \n {tabs.map(({ url, title, slug }) => (\n \n {title}\n \n ))}\n \n
    \n
    \n );\n}\n\nCourseTabsNavigation.propTypes = {\n activeTabSlug: PropTypes.string,\n className: PropTypes.string,\n tabs: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string.isRequired,\n slug: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n })).isRequired,\n intl: intlShape.isRequired,\n};\n\nCourseTabsNavigation.defaultProps = {\n activeTabSlug: undefined,\n className: null,\n};\n\nexport default injectIntl(CourseTabsNavigation);\n","export default __webpack_public_path__ + \"918dabb96dbc78f01518bac195d6ce58.png\";","export default __webpack_public_path__ + \"fd69edc8826f0733bdad0a718fa9da48.png\";","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n congratulations: {\n id: 'learning.streakCelebration.congratulations',\n defaultMessage: 'Congratulations!',\n },\n streakBody: {\n id: 'learning.streakCelebration.body',\n defaultMessage: 'Keep it up, you’re on a roll!',\n },\n streakButton: {\n id: 'learning.streakCelebration.button',\n defaultMessage: 'Keep it up',\n },\n streakButtonSrOnly: {\n id: 'learning.streakCelebration.buttonSrOnly',\n defaultMessage: 'Close modal and continue',\n description: 'Screenreader label for streakButton text',\n },\n streakButtonAA759: {\n id: 'learning.streakCelebration.buttonAA759',\n defaultMessage: 'Continue with course',\n },\n streakHeader: {\n id: 'learning.streakCelebration.header',\n defaultMessage: 'day streak',\n description: 'Will come after a number. For example, 3 day streak',\n },\n streakFactoidABoldedSection: {\n id: 'learning.streakCelebration.factoidABoldedSection',\n defaultMessage: 'are 20x more likely to pass their course',\n description: 'This bolded section is in the following sentence: Users who learn 3 days in a row {bolded_section} than those who don\\'t.',\n },\n streakFactoidBBoldedSection: {\n id: 'learning.streakCelebration.factoidBBoldedSection',\n defaultMessage: 'complete 5x as much course content on average',\n description: 'This bolded section is in the following sentence: Users who learn 3 days in a row {bolded_section} vs. those who don\\'t.',\n },\n streakDiscountMessage: {\n id: 'learning.streakCelebration.streakDiscountMessage',\n defaultMessage: 'You’ve unlocked a 15% off discount when you upgrade this course for a limited time only.',\n description: 'This message describes a discount the user becomes eligible for when they hit their three day streak',\n },\n});\n\nexport default messages;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n FormattedMessage, injectIntl, intlShape,\n} from '@edx/frontend-platform/i18n';\nimport { Lightbulb, MoneyFilled } from '@edx/paragon/icons';\nimport {\n Alert, Icon, ModalDialog,\n} from '@edx/paragon';\nimport { layoutGenerator } from 'react-break';\nimport { useDispatch } from 'react-redux';\nimport { UpgradeNowButton } from '../../generic/upgrade-button';\n\nimport { useModel } from '../../generic/model-store';\nimport StreakMobileImage from './assets/Streak_mobile.png';\nimport StreakDesktopImage from './assets/Streak_desktop.png';\nimport messages from './messages';\nimport { recordModalClosing, recordStreakCelebration } from './utils';\n\nfunction getRandomFactoid(intl, streakLength) {\n const boldedSectionA = intl.formatMessage(messages.streakFactoidABoldedSection);\n const boldedSectionB = intl.formatMessage(messages.streakFactoidBBoldedSection);\n const factoids = [\n ({boldedSectionA}),\n streak_length: (streakLength),\n }}\n />),\n ({boldedSectionB}),\n streak_length: (streakLength),\n }}\n />),\n ];\n return factoids[Math.floor(Math.random() * (factoids.length))];\n}\n\nfunction StreakModal({\n courseId, metadataModel, streakLengthToCelebrate, intl, isStreakCelebrationOpen,\n closeStreakCelebration, StreakDiscountCouponEnabled, verifiedMode, ...rest\n}) {\n if (!isStreakCelebrationOpen) {\n return null;\n }\n const { org, celebrations } = useModel(metadataModel, courseId);\n const factoid = getRandomFactoid(intl, streakLengthToCelebrate);\n // eslint-disable-next-line no-unused-vars\n const [randomFactoid, setRandomFactoid] = useState(factoid); // Don't change factoid on re-render\n\n const layout = layoutGenerator({\n mobile: 0,\n desktop: 575,\n });\n\n const OnMobile = layout.is('mobile');\n const OnDesktop = layout.isAtLeast('desktop');\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (isStreakCelebrationOpen) {\n recordStreakCelebration(org, courseId);\n }\n }, [isStreakCelebrationOpen, org, courseId]);\n\n function CloseText() {\n return (\n \n {intl.formatMessage(messages.streakButton)}\n . {intl.formatMessage(messages.streakButtonSrOnly)}\n \n );\n }\n\n let upgradeUrl;\n let mode;\n let offer;\n\n if (verifiedMode) {\n upgradeUrl = `${verifiedMode.upgradeUrl}&code=ZGY11119949`;\n mode = {\n currencySymbol: verifiedMode.currencySymbol,\n price: verifiedMode.price,\n upgradeUrl,\n };\n\n offer = {\n discountedPrice: `${verifiedMode.currencySymbol}${(mode.price * 0.85).toFixed(2).toString()}`,\n originalPrice: `${verifiedMode.currencySymbol}${mode.price.toString()}`,\n upgradeUrl: mode.upgradeUrl,\n };\n }\n\n const title = `${streakLengthToCelebrate} ${intl.formatMessage(messages.streakHeader)}`;\n\n return (\n {\n closeStreakCelebration();\n recordModalClosing(metadataModel, celebrations, org, courseId, dispatch);\n }}\n isOpen={isStreakCelebrationOpen}\n isFullscreenScroll\n {...rest}\n >\n \n \n {title}\n \n \n \n

    {intl.formatMessage(messages.streakBody)}

    \n

    \n \n \"\"\n \n \n \"\"\n \n

    \n { !StreakDiscountCouponEnabled && (\n
    \n \n
    \n {randomFactoid}\n
    \n
    \n )}\n { StreakDiscountCouponEnabled && (\n \n
    \n \n
    \n {intl.formatMessage(messages.congratulations)}\n  {intl.formatMessage(messages.streakDiscountMessage)} \n \n
    \n
    \n
    \n )}\n
    \n \n { StreakDiscountCouponEnabled && (\n <>\n \n \n \n {intl.formatMessage(messages.streakButtonAA759)}\n \n \n \n \n \n {intl.formatMessage(messages.streakButtonAA759)}\n \n \n \n )}\n { !StreakDiscountCouponEnabled && (\n \n )}\n \n \n );\n}\n\nStreakModal.defaultProps = {\n isStreakCelebrationOpen: false,\n streakLengthToCelebrate: -1,\n verifiedMode: {},\n StreakDiscountCouponEnabled: false,\n};\n\nStreakModal.propTypes = {\n courseId: PropTypes.string.isRequired,\n metadataModel: PropTypes.string.isRequired,\n streakLengthToCelebrate: PropTypes.number,\n intl: intlShape.isRequired,\n isStreakCelebrationOpen: PropTypes.bool,\n closeStreakCelebration: PropTypes.func.isRequired,\n StreakDiscountCouponEnabled: PropTypes.bool,\n verifiedMode: PropTypes.shape({\n currencySymbol: PropTypes.string,\n price: PropTypes.number,\n upgradeUrl: PropTypes.string,\n }),\n};\n\nexport default injectIntl(StreakModal);\n","import { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\n\nimport { updateModel } from '../../generic/model-store';\n\nfunction recordStreakCelebration(org, courseId) {\n // Tell our analytics\n const { administrator } = getAuthenticatedUser();\n sendTrackEvent('edx.ui.lms.celebration.streak.opened', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n });\n}\n\nfunction recordModalClosing(metadataModel, celebrations, org, courseId, dispatch) {\n // Ensure we only celebrate each streak once\n dispatch(updateModel({\n modelType: metadataModel,\n model: {\n id: courseId,\n celebrations: { ...celebrations, streakLengthToCelebrate: null },\n },\n }));\n}\n\nexport { recordStreakCelebration, recordModalClosing };\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n genericError: {\n id: 'masquerade-widget.userName.error.generic',\n defaultMessage: 'An error has occurred; please try again.',\n description: 'Message shown after a general error when attempting to masquerade',\n },\n placeholder: {\n id: 'masquerade-widget.userName.input.placeholder',\n defaultMessage: 'Username or email',\n description: 'Placeholder text to prompt for a user to masquerade as',\n },\n userNameLabel: {\n id: 'masquerade-widget.userName.input.label',\n defaultMessage: 'Masquerade as this user',\n description: 'Label for the masquerade user input',\n },\n});\n\nexport default messages;\n","import React, {\n Component,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Input } from '@edx/paragon';\n\nimport messages from './messages';\n\nclass MasqueradeUserNameInput extends Component {\n onError(...args) {\n return this.props.onError(...args);\n }\n\n onKeyPress(event) {\n if (event.key === 'Enter') {\n return this.onSubmit(event);\n }\n return true;\n }\n\n onSubmit(event) {\n const payload = {\n role: 'student',\n user_name: event.target.value,\n };\n this.props.onSubmit(payload).then((data) => {\n if (data && data.success) {\n global.location.reload();\n } else {\n const error = (data && data.error) || '';\n this.onError(error);\n }\n }).catch(() => {\n const message = this.props.intl.formatMessage(messages.genericError);\n this.onError(message);\n });\n return true;\n }\n\n render() {\n const {\n intl,\n onError,\n onSubmit,\n ...rest\n } = this.props;\n return (\n this.onKeyPress(event)}\n type=\"text\"\n {...rest}\n />\n );\n }\n}\nMasqueradeUserNameInput.propTypes = {\n intl: intlShape.isRequired,\n onError: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n};\nexport default injectIntl(MasqueradeUserNameInput);\n","import React, {\n Component,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { Dropdown } from '@edx/paragon';\n\nclass MasqueradeWidgetOption extends Component {\n onClick(event) {\n // TODO: Remove this hack when we upgrade Paragon\n // Note: The current version of Paragon does _not_ close dropdown components\n // automatically (or easily programmatically) when you click on an item.\n // We can simulate this behavior by programmatically clicking the\n // toggle button on behalf of the user.\n // The newest version of Paragon already contains this behavior,\n // so we can remove this when we upgrade to that point.\n event.target.parentNode.parentNode.click();\n const {\n groupId,\n role,\n userName,\n userPartitionId,\n userNameInputToggle,\n } = this.props;\n const payload = {};\n if (userName || userName === '') {\n userNameInputToggle(true);\n return false;\n }\n if (role) {\n payload.role = role;\n }\n if (groupId) {\n payload.group_id = parseInt(groupId, 10);\n payload.user_partition_id = parseInt(userPartitionId, 10);\n }\n this.props.onSubmit(payload).then(() => {\n global.location.reload();\n });\n return true;\n }\n\n isSelected() {\n /* eslint-disable arrow-body-style */\n const isEqual = [\n 'groupId',\n 'role',\n 'userName',\n 'userPartitionId',\n ].reduce((accumulator, currentValue) => {\n return accumulator && (\n this.props[currentValue] === this.props.selected[currentValue]\n );\n }, true);\n return isEqual;\n }\n\n render() {\n const {\n groupName,\n } = this.props;\n if (!groupName) {\n return null;\n }\n const selected = this.isSelected();\n let className;\n if (selected) {\n className = 'active';\n }\n return (\n this.onClick(event)}\n >\n {groupName}\n \n );\n }\n}\nMasqueradeWidgetOption.propTypes = {\n groupId: PropTypes.number,\n groupName: PropTypes.string.isRequired,\n onSubmit: PropTypes.func.isRequired,\n role: PropTypes.string,\n selected: PropTypes.shape({\n courseKey: PropTypes.string.isRequired,\n groupId: PropTypes.number,\n role: PropTypes.string,\n userName: PropTypes.string,\n userPartitionId: PropTypes.number,\n }),\n userName: PropTypes.string,\n userNameInputToggle: PropTypes.func.isRequired,\n userPartitionId: PropTypes.number,\n};\nMasqueradeWidgetOption.defaultProps = {\n groupId: null,\n role: null,\n selected: null,\n userName: null,\n userPartitionId: null,\n};\n\nexport default MasqueradeWidgetOption;\n","import { getConfig, camelCaseObject } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';\n\nexport async function getMasqueradeOptions(courseId) {\n const url = new URL(`${getConfig().LMS_BASE_URL}/courses/${courseId}/masquerade`);\n const { data } = await getAuthenticatedHttpClient().get(url.href, {});\n return camelCaseObject(data);\n}\n\nexport async function postMasqueradeOptions(courseId, payload) {\n const url = new URL(`${getConfig().LMS_BASE_URL}/courses/${courseId}/masquerade`);\n const { data } = await getAuthenticatedHttpClient().post(url.href, payload);\n return camelCaseObject(data);\n}\n","import React, {\n Component,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Dropdown } from '@edx/paragon';\n\nimport { UserMessagesContext } from '../../generic/user-messages';\n\nimport MasqueradeUserNameInput from './MasqueradeUserNameInput';\nimport MasqueradeWidgetOption from './MasqueradeWidgetOption';\nimport {\n getMasqueradeOptions,\n postMasqueradeOptions,\n} from './data/api';\nimport messages from './messages';\n\nclass MasqueradeWidget extends Component {\n constructor(props) {\n super(props);\n this.courseId = props.courseId;\n this.state = {\n autoFocus: false,\n masquerade: 'Staff',\n options: [],\n shouldShowUserNameInput: false,\n masqueradeUsername: null,\n };\n }\n\n componentDidMount() {\n getMasqueradeOptions(this.courseId).then((data) => {\n if (data.success) {\n this.onSuccess(data);\n } else {\n // This was explicitly denied by the backend;\n // assume it's disabled/unavailable.\n // eslint-disable-next-line no-console\n this.onError('Unable to get masquerade options');\n }\n }).catch((response) => {\n // There's not much we can do to recover;\n // if we can't fetch masquerade options,\n // assume it's disabled/unavailable.\n // eslint-disable-next-line no-console\n console.error('Unable to get masquerade options', response);\n });\n }\n\n onError(message) {\n this.props.onError(message);\n }\n\n async onSubmit(payload) {\n this.clearError();\n const options = await postMasqueradeOptions(this.courseId, payload);\n return options;\n }\n\n onSuccess(data) {\n const options = this.parseAvailableOptions(data);\n this.setState({\n options,\n });\n }\n\n clearError() {\n this.props.onError('');\n }\n\n toggle(show) {\n this.setState(prevState => ({\n autoFocus: true,\n masquerade: 'Specific Student...',\n shouldShowUserNameInput: show === undefined ? !prevState.shouldShowUserNameInput : show,\n }));\n }\n\n parseAvailableOptions(postData) {\n const data = postData || {};\n const active = data.active || {};\n const available = data.available || [];\n const options = available.map((group) => (\n this.toggle(...args)}\n onSubmit={(payload) => this.onSubmit(payload)}\n />\n ));\n if (active.userName) {\n this.setState({\n autoFocus: false,\n masquerade: 'Specific Student...',\n masqueradeUsername: active.userName,\n shouldShowUserNameInput: true,\n });\n } else if (active.groupName) {\n this.setState({ masquerade: active.groupName });\n } else if (active.role === 'student') {\n this.setState({ masquerade: 'Learner' });\n }\n return options;\n }\n\n render() {\n const {\n autoFocus,\n masquerade,\n options,\n shouldShowUserNameInput,\n masqueradeUsername,\n } = this.state;\n const specificLearnerInputText = this.props.intl.formatMessage(messages.placeholder);\n return (\n
    \n
    \n View this course as:\n \n \n {masquerade}\n \n \n {options}\n \n \n
    \n {shouldShowUserNameInput && (\n
    \n {`${specificLearnerInputText}:`}\n this.onError(errorMessage)}\n onSubmit={(payload) => this.onSubmit(payload)}\n />\n
    \n )}\n
    \n );\n }\n}\nMasqueradeWidget.propTypes = {\n courseId: PropTypes.string.isRequired,\n intl: intlShape.isRequired,\n onError: PropTypes.func.isRequired,\n};\nMasqueradeWidget.contextType = UserMessagesContext;\nexport default injectIntl(MasqueradeWidget);\n","import MasqueradeWidget from './MasqueradeWidget';\n\nexport default MasqueradeWidget;\n","import React, { useMemo } from 'react';\nimport { useAlert } from '../../generic/user-messages';\nimport { useModel } from '../../generic/model-store';\n\nconst AccessExpirationAlert = React.lazy(() => import('./AccessExpirationAlert'));\nconst AccessExpirationMasqueradeBanner = React.lazy(() => import('./AccessExpirationMasqueradeBanner'));\n\nfunction useAccessExpirationAlert(accessExpiration, courseId, org, userTimezone, topic, analyticsPageName) {\n const isVisible = accessExpiration && !accessExpiration.masqueradingExpiredCourse; // If it exists, show it.\n const payload = {\n accessExpiration,\n courseId,\n org,\n userTimezone,\n analyticsPageName,\n };\n\n useAlert(isVisible, {\n code: 'clientAccessExpirationAlert',\n payload: useMemo(() => payload, Object.values(payload).sort()),\n topic,\n });\n\n return { clientAccessExpirationAlert: AccessExpirationAlert };\n}\n\nexport function useAccessExpirationMasqueradeBanner(courseId, tab) {\n const {\n userTimezone,\n } = useModel('courseHomeMeta', courseId);\n const {\n accessExpiration,\n } = useModel(tab, courseId);\n\n const isVisible = accessExpiration && accessExpiration.masqueradingExpiredCourse;\n const expirationDate = accessExpiration && accessExpiration.expirationDate;\n const payload = {\n expirationDate,\n userTimezone,\n };\n\n useAlert(isVisible, {\n code: 'clientAccessExpirationMasqueradeBanner',\n payload: useMemo(() => payload, Object.values(payload).sort()),\n topic: 'instructor-toolbar-alerts',\n });\n\n return { clientAccessExpirationMasqueradeBanner: AccessExpirationMasqueradeBanner };\n}\n\nexport default useAccessExpirationAlert;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { getConfig } from '@edx/frontend-platform';\n\nimport { ALERT_TYPES, AlertList } from '../generic/user-messages';\nimport Alert from '../generic/user-messages/Alert';\nimport MasqueradeWidget from './masquerade-widget';\nimport { useAccessExpirationMasqueradeBanner } from '../alerts/access-expiration-alert';\nimport { useCourseStartMasqueradeBanner } from '../alerts/course-start-alert';\n\nfunction getInsightsUrl(courseId) {\n const urlBase = getConfig().INSIGHTS_BASE_URL;\n let urlFull;\n if (urlBase) {\n urlFull = `${urlBase}/courses`;\n // This shouldn't actually be missing, at present,\n // but we're providing a reasonable fallback,\n // in case of either error or extension.\n if (courseId) {\n urlFull += `/${courseId}`;\n }\n }\n return urlFull;\n}\n\nfunction getStudioUrl(courseId, unitId) {\n const urlBase = getConfig().STUDIO_BASE_URL;\n let urlFull;\n if (urlBase) {\n if (unitId) {\n urlFull = `${urlBase}/container/${unitId}`;\n } else if (courseId) {\n urlFull = `${urlBase}/course/${courseId}`;\n }\n }\n return urlFull;\n}\n\nexport default function InstructorToolbar(props) {\n // This didMount logic became necessary once we had a page that does a redirect on a quick exit.\n // As a result, it unmounts the InstructorToolbar (which will be remounted by the new component),\n // but the InstructorToolbar's MasqueradeWidget has an outgoing request. Since it is unmounted\n // during that time, it raises an error about a potential memory leak. By stopping the render\n // when the InstructorToolbar is unmounted, we avoid the memory leak.\n // NOTE: This was originally added because of the CourseExit page redirect. Once that page stops\n // doing a redirect because a CourseExit experience exists for all learners, this could be removed\n const [didMount, setDidMount] = useState(false);\n useEffect(() => {\n setDidMount(true);\n // Returning this function here will run setDidMount(false) when this component is unmounted\n return () => setDidMount(false);\n });\n\n const {\n courseId,\n unitId,\n canViewLegacyCourseware,\n tab,\n } = props;\n\n const urlInsights = getInsightsUrl(courseId);\n const urlLegacy = useSelector((state) => {\n if (!canViewLegacyCourseware) {\n return undefined;\n }\n\n if (!unitId) {\n return undefined;\n }\n\n const activeUnit = state.models.units[props.unitId];\n return activeUnit ? activeUnit.legacyWebUrl : undefined;\n });\n const urlStudio = getStudioUrl(courseId, unitId);\n const [masqueradeErrorMessage, showMasqueradeError] = useState(null);\n\n const accessExpirationMasqueradeBanner = useAccessExpirationMasqueradeBanner(courseId, tab);\n const courseStartDateMasqueradeBanner = useCourseStartMasqueradeBanner(courseId, tab);\n\n return (!didMount ? null : (\n
    \n
    \n
    \n
    \n \n
    \n {(urlLegacy || urlStudio || urlInsights) && (\n <>\n
    \n View course in:\n \n )}\n {urlLegacy && (\n \n Legacy experience\n \n )}\n {urlStudio && (\n \n Studio\n \n )}\n {urlInsights && (\n \n Insights\n \n )}\n
    \n
    \n {masqueradeErrorMessage && (\n
    \n \n {masqueradeErrorMessage}\n \n
    \n )}\n \n
    \n ));\n}\n\nInstructorToolbar.propTypes = {\n courseId: PropTypes.string,\n unitId: PropTypes.string,\n canViewLegacyCourseware: PropTypes.bool,\n tab: PropTypes.string,\n};\n\nInstructorToolbar.defaultProps = {\n courseId: undefined,\n unitId: undefined,\n canViewLegacyCourseware: undefined,\n tab: '',\n};\n","/* eslint-disable import/prefer-default-export */\nimport React, {\n useContext, useMemo,\n} from 'react';\nimport { AppContext } from '@edx/frontend-platform/react';\n\nimport { useAlert } from '../../generic/user-messages';\nimport { useModel } from '../../generic/model-store';\n\nconst EnrollmentAlert = React.lazy(() => import('./EnrollmentAlert'));\n\nexport function useEnrollmentAlert(courseId) {\n const { authenticatedUser } = useContext(AppContext);\n const course = useModel('courseHomeMeta', courseId);\n const outline = useModel('outline', courseId);\n const enrolledUser = course && course.isEnrolled !== undefined && course.isEnrolled;\n const privateOutline = outline && outline.courseBlocks && !outline.courseBlocks.courses;\n /**\n * This alert should render if\n * 1. the user is not enrolled,\n * 2. the user is authenticated, AND\n * 3. the course is private.\n */\n const isVisible = !enrolledUser && authenticatedUser !== null && privateOutline;\n const payload = {\n canEnroll: outline && outline.enrollAlert ? outline.enrollAlert.canEnroll : false,\n courseId,\n extraText: outline && outline.enrollAlert ? outline.enrollAlert.extraText : '',\n isStaff: course && course.isStaff,\n };\n\n useAlert(isVisible, {\n code: 'clientEnrollmentAlert',\n payload: useMemo(() => payload, Object.values(payload).sort()),\n topic: 'outline',\n });\n\n return { clientEnrollmentAlert: EnrollmentAlert };\n}\n","/* eslint-disable import/prefer-default-export */\nimport React, { useContext } from 'react';\nimport { AppContext } from '@edx/frontend-platform/react';\nimport { ALERT_TYPES, useAlert } from '../../generic/user-messages';\nimport { useModel } from '../../generic/model-store';\n\nconst LogistrationAlert = React.lazy(() => import('./LogistrationAlert'));\n\nexport function useLogistrationAlert(courseId) {\n const { authenticatedUser } = useContext(AppContext);\n const outline = useModel('outline', courseId);\n const privateOutline = outline && outline.courseBlocks && !outline.courseBlocks.courses;\n /**\n * This alert should render if\n * 1. the user is not authenticated, AND\n * 2. the course is private.\n */\n const isVisible = authenticatedUser === null && privateOutline;\n\n useAlert(isVisible, {\n code: 'clientLogistrationAlert',\n topic: 'outline',\n dismissible: false,\n type: ALERT_TYPES.ERROR,\n });\n\n return { clientLogistrationAlert: LogistrationAlert };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Helmet } from 'react-helmet';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { useToggle } from '@edx/paragon';\n\nimport { CourseTabsNavigation } from '../course-tabs';\nimport { useModel } from '../generic/model-store';\nimport { AlertList } from '../generic/user-messages';\nimport StreakModal from '../shared/streak-celebration';\nimport InstructorToolbar from '../instructor-toolbar';\nimport useEnrollmentAlert from '../alerts/enrollment-alert';\nimport useLogistrationAlert from '../alerts/logistration-alert';\n\nfunction LoadedTabPage({\n activeTabSlug,\n children,\n courseId,\n metadataModel,\n unitId,\n}) {\n const {\n originalUserIsStaff,\n tabs,\n title,\n celebrations,\n canViewLegacyCourseware,\n verifiedMode,\n } = useModel(metadataModel, courseId);\n\n // Logistration and enrollment alerts are only really used for the outline tab, but loaded here to put them above\n // breadcrumbs when they are visible.\n const logistrationAlert = useLogistrationAlert(courseId);\n const enrollmentAlert = useEnrollmentAlert(courseId);\n\n const activeTab = tabs.filter(tab => tab.slug === activeTabSlug)[0];\n\n const streakLengthToCelebrate = celebrations && celebrations.streakLengthToCelebrate;\n const StreakDiscountCouponEnabled = celebrations && celebrations.streakDiscountEnabled && verifiedMode;\n const [isStreakCelebrationOpen,, closeStreakCelebration] = useToggle(streakLengthToCelebrate);\n\n return (\n <>\n \n {`${activeTab ? `${activeTab.title} | ` : ''}${title} | ${getConfig().SITE_NAME}`}\n \n {originalUserIsStaff && (\n \n )}\n \n
    \n \n \n
    \n {children}\n
    \n
    \n \n );\n}\n\nLoadedTabPage.propTypes = {\n activeTabSlug: PropTypes.string.isRequired,\n children: PropTypes.node,\n courseId: PropTypes.string.isRequired,\n metadataModel: PropTypes.string,\n unitId: PropTypes.string,\n};\n\nLoadedTabPage.defaultProps = {\n children: null,\n metadataModel: 'courseHomeMeta',\n unitId: null,\n};\n\nexport default LoadedTabPage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Redirect } from 'react-router';\n\nimport Footer from '@edx/frontend-component-footer';\nimport { Toast } from '@edx/paragon';\nimport { LearningHeader as Header } from '@edx/frontend-component-header';\nimport PageLoading from '../generic/PageLoading';\nimport { getAccessDeniedRedirectUrl } from '../shared/access';\nimport { useModel } from '../generic/model-store';\n\nimport genericMessages from '../generic/messages';\nimport messages from './messages';\nimport messagesBadgeProgress from '../course-home/badges-tab/messages';\nimport LoadedTabPage from './LoadedTabPage';\nimport { setCallToActionToast } from '../course-home/data/slice';\n\nfunction TabPage({ intl, ...props }) {\n const {\n activeTabSlug,\n courseId,\n courseStatus,\n metadataModel,\n unitId,\n } = props;\n const {\n toastBodyLink,\n toastBodyText,\n toastHeader,\n } = useSelector(state => state.courseHome);\n const dispatch = useDispatch();\n const {\n courseAccess,\n number,\n org,\n start,\n title,\n } = useModel(metadataModel, courseId);\n\n if (courseStatus === 'loading') {\n let notificationMessage;\n switch (activeTabSlug) {\n case 'badge_progress':\n notificationMessage = messagesBadgeProgress.loading;\n break;\n default:\n notificationMessage = messages.loading;\n }\n\n return (\n <>\n
    \n \n