{"version":3,"file":"app.7f194ebc7b0e3590be01.js","mappings":"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","sources":["webpack://@edx/frontend-app-learning-themed/./src/course-home/data/api.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/data/slice.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/data/thunks.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/messages.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/certificate-status/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/messages.js","webpack://@edx/frontend-app-learning-themed/./src/data/localStorage.js","webpack://@edx/frontend-app-learning-themed/./src/generic/messages.js","webpack://@edx/frontend-app-learning-themed/./src/generic/model-store/slice.js","webpack://@edx/frontend-app-learning-themed/./src/generic/model-store/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/generic/user-messages/UserMessagesContext.js","webpack://@edx/frontend-app-learning-themed/./src/generic/user-messages/AlertList.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/user-messages/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/utils.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/alerts/certificate-status-alert/messages.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/alerts/certificate-status-alert/CertificateStatusAlert.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/user-messages/Alert.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/user-messages/UserMessagesProvider.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/discussion-tab/DiscussionTab.jsx","webpack://@edx/frontend-app-learning-themed/./src/i18n/index.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/dates-tab/utils.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/DateSummary.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/CourseDates.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/LmsHtmlFragment.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/CourseHandouts.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/StartOrResumeCourseCard.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/flag_black.svg","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/flag_outline.svg","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/flag_gray.svg","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/FlagButton.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/LearningGoalButton.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/FlagButton.scss?e631","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/WeeklyLearningGoalCard.jsx","webpack://@edx/frontend-app-learning-themed/./src/product-tours/data/slice.js","webpack://@edx/frontend-app-learning-themed/./src/product-tours/messages.js","webpack://@edx/frontend-app-learning-themed/./src/product-tours/newUserCourseHomeTour/LaunchCourseHomeTourButton.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/CourseTools.jsx","webpack://@edx/frontend-app-learning-themed/./src/shared/effort-estimate/messages.js","webpack://@edx/frontend-app-learning-themed/./src/shared/effort-estimate/EffortEstimate.jsx","webpack://@edx/frontend-app-learning-themed/./src/shared/effort-estimate/index.js","webpack://@edx/frontend-app-learning-themed/./src/menuSlice.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/SequenceLink.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/Section.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/suggested-schedule-messaging/messages.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/suggested-schedule-messaging/ShiftDatesAlert.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/upgrade-button/messages.js","webpack://@edx/frontend-app-learning-themed/./src/generic/upgrade-button/FormattedPricing.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/upgrade-button/UpgradeButton.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/upgrade-button/UpgradeNowButton.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/upsell-bullets/UpsellBullets.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/upgrade-notification/UpgradeNotification.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/suggested-schedule-messaging/UpgradeToShiftDatesAlert.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/alerts/certificate-status-alert/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/alerts/course-end-alert/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/alerts/course-start-alert/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/alerts/private-course-alert/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/alerts/scheduled-content-alert/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/WelcomeMessage.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/widgets/ProctoringInfoPanel.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/data/api.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/data/slice.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/data/thunks.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/data/selectors.js","webpack://@edx/frontend-app-learning-themed/./src/alerts/logistration-alert/messages.js","webpack://@edx/frontend-app-learning-themed/./src/alerts/logistration-alert/AccountActivationAlert.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/OutlineTab.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/assets/celebration_456x328.gif","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/assets/celebration_750x540.gif","webpack://@edx/frontend-app-learning-themed/./src/generic/assets/edX_certificate.png","webpack://@edx/frontend-app-learning-themed/./src/generic/assets/edX_locked_certificate.png","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/ProgramCompletion.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/Footnote.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/utils.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/DashboardFootnote.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/UpgradeFootnote.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/social-share/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/social-share/SocialIcons.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/data/slice.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/CatalogSuggestion.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/PageLoading.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/CourseRecommendations.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/data/thunks.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/data/api.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/CourseCelebration.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/CourseInProgress.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/CourseNonPassing.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-exit/CourseExit.jsx","webpack://@edx/frontend-app-learning-themed/./src/tab-page/messages.js","webpack://@edx/frontend-app-learning-themed/./src/course-tabs/messages.js","webpack://@edx/frontend-app-learning-themed/./src/generic/tabs/useIndexOfLastVisibleChild.js","webpack://@edx/frontend-app-learning-themed/./src/generic/tabs/Tabs.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-tabs/CourseTabsNavigation.jsx","webpack://@edx/frontend-app-learning-themed/./src/shared/streak-celebration/assets/Streak_mobile.png","webpack://@edx/frontend-app-learning-themed/./src/shared/streak-celebration/assets/Streak_desktop.png","webpack://@edx/frontend-app-learning-themed/./src/shared/streak-celebration/messages.js","webpack://@edx/frontend-app-learning-themed/./src/shared/streak-celebration/StreakCelebrationModal.jsx","webpack://@edx/frontend-app-learning-themed/./src/shared/streak-celebration/utils.jsx","webpack://@edx/frontend-app-learning-themed/./src/instructor-toolbar/masquerade-widget/messages.js","webpack://@edx/frontend-app-learning-themed/./src/instructor-toolbar/masquerade-widget/MasqueradeUserNameInput.jsx","webpack://@edx/frontend-app-learning-themed/./src/instructor-toolbar/masquerade-widget/MasqueradeWidgetOption.jsx","webpack://@edx/frontend-app-learning-themed/./src/instructor-toolbar/masquerade-widget/MasqueradeWidget.jsx","webpack://@edx/frontend-app-learning-themed/./src/instructor-toolbar/masquerade-widget/data/api.js","webpack://@edx/frontend-app-learning-themed/./src/instructor-toolbar/masquerade-widget/index.js","webpack://@edx/frontend-app-learning-themed/./src/alerts/access-expiration-alert/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/instructor-toolbar/InstructorToolbar.jsx","webpack://@edx/frontend-app-learning-themed/./src/alerts/enrollment-alert/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/alerts/logistration-alert/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/product-tours/GenericTourFormattedMessages.jsx","webpack://@edx/frontend-app-learning-themed/./src/product-tours/AbandonTour.jsx","webpack://@edx/frontend-app-learning-themed/./src/product-tours/CoursewareTour.jsx","webpack://@edx/frontend-app-learning-themed/./src/product-tours/ExistingUserCourseHomeTour.jsx","webpack://@edx/frontend-app-learning-themed/./src/product-tours/newUserCourseHomeTour/NewUserCourseHomeTour.jsx","webpack://@edx/frontend-app-learning-themed/./src/product-tours/newUserCourseHomeTour/course_home_tour_modal_hero.png","webpack://@edx/frontend-app-learning-themed/./src/product-tours/newUserCourseHomeTour/NewUserCourseHomeTourModal.jsx","webpack://@edx/frontend-app-learning-themed/./src/product-tours/data/api.js","webpack://@edx/frontend-app-learning-themed/./src/product-tours/data/thunks.js","webpack://@edx/frontend-app-learning-themed/./src/product-tours/ProductTours.jsx","webpack://@edx/frontend-app-learning-themed/./src/tab-page/LoadedTabPage.jsx","webpack://@edx/frontend-app-learning-themed/./src/tab-page/TabPage.jsx","webpack://@edx/frontend-app-learning-themed/./src/shared/access.js","webpack://@edx/frontend-app-learning-themed/./src/tab-page/TabContainer.jsx","webpack://@edx/frontend-app-learning-themed/./src/alerts/sequence-alerts/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-license/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/course-license/CourseLicense.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/SidebarContext.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/common/SidebarBase.jsx","webpack://@edx/frontend-app-learning-themed/./src/data/sessionStorage.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/common/TriggerBase.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/sidebars/notifications/NotificationIcon.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/sidebars/notifications/NotificationTrigger.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/sidebars/notifications/NotificationTray.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/sidebars/discussions/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/sidebars/discussions/DiscussionsTrigger.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/sidebars/discussions/DiscussionsSidebar.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/sidebars/index.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/Sidebar.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/SidebarTriggers.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/hidden-after-due/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/hidden-after-due/HiddenAfterDue.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/sequence-navigation/UnitIcon.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/sequence-navigation/CompleteIcon.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/bookmark/BookmarkFilledIcon.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/sequence-navigation/UnitButton.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/sequence-navigation/SequenceNavigationDropdown.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/sequence-navigation/SequenceNavigationTabs.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/sequence-navigation/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/sequence-navigation/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/sequence-navigation/SequenceNavigation.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/sequence-navigation/UnitNavigationEffortEstimate.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/sequence-navigation/UnitNavigation.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/bookmark/BookmarkOutlineIcon.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/bookmark/data/api.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/bookmark/BookmarkButton.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/bookmark/data/thunks.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/Unit/hooks/useExamAccess.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/Unit/constants.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/Unit/hooks/useLoadBearingHook.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/Unit/hooks/useIFrameBehavior.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/Unit/hooks/useModalIFrameData.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/Unit/hooks/useShouldDisplayHonorCode.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/Unit/ContentIFrame.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/honor-code/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/honor-code/HonorCode.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/lock-paywall/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/lock-paywall/LockPaywall.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/Unit/UnitSuspense.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/Unit/urls.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/Unit/index.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/SequenceContent.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/outline-tab/Section2.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sequence/Sequence.jsx","webpack://@edx/frontend-app-learning-themed/./src/alerts/sequence-alerts/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/celebration/assets/claps_280x201.gif","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/celebration/assets/claps_456x328.gif","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/celebration/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/celebration/data/api.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/celebration/utils.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/celebration/CelebrationModal.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/celebration/assets/target.svg","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/celebration/WeeklyGoalCelebrationModal.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/chat/Chat.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/content-tools/calculator/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/content-tools/calculator/Calculator.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/content-tools/calculator/index.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/content-tools/notes-visibility/messages.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/content-tools/notes-visibility/NotesVisibility.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/content-tools/notes-visibility/index.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/content-tools/ContentTools.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/content-tools/index.js","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/JumpNavMenuItem.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/CourseBreadcrumbs.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/sidebar/SidebarContextProvider.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/course/Course.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/CoursewareContainer.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/utils.jsx","webpack://@edx/frontend-app-learning-themed/./src/constants.js","webpack://@edx/frontend-app-learning-themed/./src/decode-page-route/index.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/RedirectPage.jsx","webpack://@edx/frontend-app-learning-themed/./src/courseware/CoursewareRedirectLandingPage.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/dates-tab/messages.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/dates-tab/timeline/badgelist.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/dates-tab/timeline/Day.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/dates-tab/timeline/Timeline.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/suggested-schedule-messaging/SuggestedScheduleHeader.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/suggested-schedule-messaging/UpgradeToCompleteAlert.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/dates-tab/DatesTab.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/dates-tab/index.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/goal-unsubscribe/messages.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/goal-unsubscribe/unsubscribe.svg","webpack://@edx/frontend-app-learning-themed/./src/course-home/goal-unsubscribe/ResultPage.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/goal-unsubscribe/GoalUnsubscribe.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/goal-unsubscribe/index.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/certificate-status/CertificateStatus.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/course-completion/messages.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/course-completion/CompleteDonutSegment.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/course-completion/IncompleteDonutSegment.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/course-completion/LockedDonutSegment.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/course-completion/CompletionDonutChart.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/course-completion/CourseCompletion.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/messages.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/course-grade/GradeRangeTooltip.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/course-grade/CourseGradeFooter.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/course-grade/CourseGradeHeader.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/course-grade/CurrentGradeTooltip.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/course-grade/PassingGradeTooltip.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/course-grade/GradeBar.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/credit-information/messages.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/credit-information/CreditInformation.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/course-grade/CourseGrade.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/detailed-grades/ProblemScoreDrawer.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/detailed-grades/SubsectionTitleCell.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/detailed-grades/DetailedGradesTable.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/detailed-grades/DetailedGrades.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/grade-summary/GradeSummaryHeader.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/grade-summary/AssignmentTypeCell.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/grade-summary/DroppableAssignmentFootnote.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/grade-summary/GradeSummaryTableFooter.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/grade-summary/GradeSummaryTable.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/grades/grade-summary/GradeSummary.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/messages.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/ProgressHeader.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/related-links/messages.js","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/related-links/RelatedLinks.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/progress-tab/ProgressTab.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/notices/NoticesProvider.jsx","webpack://@edx/frontend-app-learning-themed/./src/generic/notices/api.js","webpack://@edx/frontend-app-learning-themed/./src/generic/path-fixes/PathFixesProvider.jsx","webpack://@edx/frontend-app-learning-themed/./src/course-home/live-tab/LiveTab.jsx","webpack://@edx/frontend-app-learning-themed/./src/alerts/active-enteprise-alert/hooks.js","webpack://@edx/frontend-app-learning-themed/./src/generic/CourseAccessErrorPage.jsx","webpack://@edx/frontend-app-learning-themed/./src/index.jsx","webpack://@edx/frontend-app-learning-themed/./src/store.js","webpack://@edx/frontend-app-learning-themed/./src/shared/links.jsx"],"sourcesContent":["import { camelCaseObject, getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient } 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 // Calculate the average grade for the assignment and round it. This rounding is not ideal and does not accurately\n // reflect what a learner's grade would be, however, we must have parity with the current grading behavior that\n // exists in edx-platform.\n averageGrade = (points.reduce((a, b) => a + b, 0) / points.length).toFixed(2);\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\n/**\n * Tweak the metadata for consistency\n * @param metadata the data to normalize\n * @param rootSlug either 'courseware' or 'outline' depending on the context\n * @returns {Object} The normalized metadata\n */\nfunction normalizeCourseHomeCourseMetadata(metadata, rootSlug) {\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.\n // If needed, we switch it to \"outline\" here for\n // use within the MFE to differentiate between course home and courseware.\n slug: tab.tabId === 'courseware' ? rootSlug : 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 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 // The presence of a URL for the sequence indicates that we want this sequence to be a clickable\n // link in the outline (even though we ignore the given url and use an internal to ourselves).\n showLink: !!block.lms_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, rootSlug) {\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, rootSlug);\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__';\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?.response?.status;\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 if (httpErrorStatus === 403) {\n // The backend sends this if there is a course access error and the user should be redirected. The redirect\n // info is included in the course metadata request and will be handled there as long as this call returns\n // without an error\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 // 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?.response?.status;\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 if (httpErrorStatus === 403) {\n // The backend sends this if there is a course access error and the user should be redirected. The redirect\n // info is included in the course metadata request and will be handled there as long as this call returns\n // without an error\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 async function getLiveTabIframe(courseId) {\n const url = `${getConfig().LMS_BASE_URL}/api/course_live/iframe/${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 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 const requestTime = Date.now();\n let tabData;\n try {\n tabData = await getAuthenticatedHttpClient().get(url);\n } catch (error) {\n const httpErrorStatus = error?.response?.status;\n if (httpErrorStatus === 403) {\n // The backend sends this if there is a course access error and the user should be redirected. The redirect\n // info is included in the course metadata request and will be handled there as long as this call returns\n // without an error\n return {};\n }\n throw error;\n }\n\n const responseTime = Date.now();\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 datesBannerInfo = camelCaseObject(data.dates_banner_info);\n const datesWidget = camelCaseObject(data.dates_widget);\n const enableProctoredExams = data.enable_proctored_exams;\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 datesBannerInfo,\n datesWidget,\n enrollAlert,\n enrollmentMode,\n enableProctoredExams,\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 deprecatedPostCourseGoals(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 postWeeklyLearningGoal(courseId, daysPerWeek, subscribedToReminders) {\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 days_per_week: daysPerWeek,\n subscribed_to_reminders: subscribedToReminders,\n });\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 proctoringPanelStatus: 'loading',\n toastBodyText: null,\n toastBodyLink: null,\n toastHeader: '',\n },\n reducers: {\n fetchProctoringInfoResolved: (state) => {\n state.proctoringPanelStatus = LOADED;\n },\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 fetchProctoringInfoResolved,\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 getDatesTabData,\n getOutlineTabData,\n getProgressTabData,\n postCourseDeadlines,\n deprecatedPostCourseGoals,\n postWeeklyLearningGoal,\n postDismissWelcomeMessage,\n postRequestCert,\n getLiveTabIframe,\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 try {\n const courseHomeCourseMetadata = await getCourseHomeCourseMetadata(courseId, 'outline');\n dispatch(addModel({\n modelType: 'courseHomeMeta',\n model: {\n id: courseId,\n ...courseHomeCourseMetadata,\n },\n }));\n const tabDataResult = getTabData && await getTabData(courseId, targetUserId);\n if (tabDataResult) {\n dispatch(addModel({\n modelType: tab,\n model: {\n id: courseId,\n ...tabDataResult,\n },\n }));\n }\n // Disable the access-denied path for now - it caused a regression\n if (!courseHomeCourseMetadata.courseAccess.hasAccess) {\n dispatch(fetchTabDenied({ courseId }));\n } else if (tabDataResult || !getTabData) {\n dispatch(fetchTabSuccess({\n courseId,\n targetUserId,\n }));\n }\n } catch (e) {\n dispatch(fetchTabFailure({ courseId }));\n logError(e);\n }\n };\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 fetchOutlineTab(courseId) {\n return fetchTab(courseId, 'outline', getOutlineTabData);\n}\n\nexport function fetchLiveTab(courseId) {\n return fetchTab(courseId, 'live', getLiveTabIframe);\n}\n\nexport function fetchDiscussionTab(courseId) {\n return fetchTab(courseId, 'discussion');\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 deprecatedSaveCourseGoal(courseId, goalKey) {\n return deprecatedPostCourseGoals(courseId, goalKey);\n}\n\nexport async function saveWeeklyLearningGoal(courseId, daysPerWeek, subscribedToReminders) {\n return postWeeklyLearningGoal(courseId, daysPerWeek, subscribedToReminders);\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 description: 'Text anchor for link that redirects to dates or course timeline tab',\n },\n casualGoalButtonText: {\n id: 'learning.outline.goalButton.casual.text',\n defaultMessage: '1 day a week',\n description: 'Text shown for casual goal button',\n },\n casualGoalButtonTitle: {\n id: 'learning.outline.goalButton.screenReader.text',\n defaultMessage: 'Casual',\n description: 'A very short description of the least intense of three learning goals',\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 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 description: 'Headline for the (summary of dates) section of the outline page',\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 goalReminderDetail: {\n id: 'learning.outline.goalReminderDetail',\n defaultMessage: 'If we notice you’re not quite at your goal, we’ll send you an email reminder.',\n description: 'It describe to learner what is goal reminder service',\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 description: 'Header for (Course Handouts) section in course outline',\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 intenseGoalButtonText: {\n id: 'learning.outline.goalButton.intense.text',\n defaultMessage: '5 days a week',\n description: 'Text shown for intense goal button',\n },\n intenseGoalButtonTitle: {\n id: 'learning.outline.goalButton.intense.title',\n defaultMessage: 'Intense',\n description: 'A very short description of the most intensive option of three learning goals, Casual, Regular and Intense',\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 proctoringInfoPanel: {\n id: 'learning.proctoringPanel.header',\n defaultMessage: 'This course contains proctored exams',\n description: 'Used as a label to indicate that course has proctored exams',\n },\n regularGoalButtonText: {\n id: 'learning.outline.goalButton.regular.text',\n defaultMessage: '3 days a week',\n description: 'Text shown for regular goal button',\n\n },\n regularGoalButtonTitle: {\n id: 'learning.outline.goalButton.regular.title',\n defaultMessage: 'Regular',\n description: 'A very short description of the middle option of three learning goals, Casual, Regular and Intense',\n },\n resumeBlurb: {\n id: 'learning.outline.resumeBlurb',\n defaultMessage: 'Pick up where you left off',\n description: 'Text describing to the learner that they can return to the last section they visited within the course.',\n },\n resume: {\n id: 'learning.outline.resume',\n defaultMessage: 'Resume course',\n description: 'Anchor text for button that would resume course',\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 description: 'In indicate to learner how to set or use the goal reminder service',\n },\n setGoalReminder: {\n id: 'learning.outline.setGoalReminder',\n defaultMessage: 'Set a goal reminder',\n description: 'The text for the radio button which activate or deactivate the goal reminder service',\n },\n setLearningGoalButtonScreenReaderText: {\n id: 'learning.outline.goalButton.casual.title',\n defaultMessage: 'Set a learning goal style.',\n description: 'screen reader text informing learner they can select an intensity of learning goal',\n },\n setWeeklyGoal: {\n id: 'learning.outline.setWeeklyGoal',\n defaultMessage: 'Set a weekly learning goal',\n description: 'The headline for (goal reminder service) section in course outline',\n },\n setWeeklyGoalDetail: {\n id: 'learning.outline.setWeeklyGoalDetail',\n defaultMessage: 'Setting a goal motivates you to finish the course. You can always change it later.',\n description: 'It indiacate the gaol or the purpose of the goal reminder service to learners',\n },\n start: {\n id: 'learning.outline.start',\n defaultMessage: 'Start course',\n description: 'The text for button which starts the course',\n },\n startBlurb: {\n id: 'learning.outline.startBlurb',\n defaultMessage: 'Begin your course today',\n },\n tools: {\n id: 'learning.outline.tools',\n defaultMessage: 'Course Tools',\n description: 'Headline for the (course tools) section in course outline. course tool might include links to course bookmarks, financial assistance...etc',\n },\n upgradeButton: {\n id: 'learning.outline.upgradeButton',\n defaultMessage: 'Upgrade ({symbol}{price})',\n description: 'Text for the button which redirects to the upgrading page',\n },\n upgradeTitle: {\n id: 'learning.outline.upgradeTitle',\n defaultMessage: 'Pursue a verified certificate',\n description: 'Upgrade title',\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 notStartedProctoringStatus: {\n id: 'learning.proctoringPanel.status.notStarted',\n defaultMessage: 'Not Started',\n description: 'It indcate that proctortrack onboarding exam hasn’t started yet',\n },\n startedProctoringStatus: {\n id: 'learning.proctoringPanel.status.started',\n defaultMessage: 'Started',\n description: 'Label to indicate the starting status of the proctortrack onboarding exam',\n },\n submittedProctoringStatus: {\n id: 'learning.proctoringPanel.status.submitted',\n defaultMessage: 'Submitted',\n description: 'Label to indicate the submitted status of proctortrack onboarding exam',\n },\n verifiedProctoringStatus: {\n id: 'learning.proctoringPanel.status.verified',\n defaultMessage: 'Verified',\n description: 'Label to indicate the verified status of the proctortrack onboarding exam',\n },\n rejectedProctoringStatus: {\n id: 'learning.proctoringPanel.status.rejected',\n defaultMessage: 'Rejected',\n description: 'Label to indicate the rejection status of the proctortrack onboarding exam',\n },\n errorProctoringStatus: {\n id: 'learning.proctoringPanel.status.error',\n defaultMessage: 'Error',\n description: 'Label to indicate that there is error in proctortrack onboarding exam',\n },\n otherCourseApprovedProctoringStatus: {\n id: 'learning.proctoringPanel.status.otherCourseApproved',\n defaultMessage: 'Approved in Another Course',\n description: 'Label to indicate that the proctortrack onboarding exam is verified based on taking onboarding exam on another course',\n },\n expiringSoonProctoringStatus: {\n id: 'learning.proctoringPanel.status.expiringSoon',\n defaultMessage: 'Expiring Soon',\n description: 'A label to indicate that proctortrack onboarding exam will expire soon',\n },\n expiredProctoringStatus: {\n id: 'learning.proctoringPanel.status.expired',\n defaultMessage: 'Expired',\n description: 'A label to indicate that proctortrack onboarding exam has expired',\n },\n proctoringCurrentStatus: {\n id: 'learning.proctoringPanel.status',\n defaultMessage: 'Current Onboarding Status:',\n description: 'The text that precede the status label of proctortrack onboarding exam',\n },\n notStartedProctoringMessage: {\n id: 'learning.proctoringPanel.message.notStarted',\n defaultMessage: 'You have not started your onboarding exam.',\n description: 'The text that explain the meaning of (not started) label of the proctortrack onboarding exam',\n },\n startedProctoringMessage: {\n id: 'learning.proctoringPanel.message.started',\n defaultMessage: 'You have started your onboarding exam.',\n description: 'The text that explain the meaning of (started) label of the proctortrack onboarding exam',\n },\n submittedProctoringMessage: {\n id: 'learning.proctoringPanel.message.submitted',\n defaultMessage: 'You have submitted your onboarding exam.',\n description: 'The text that explain the meaning of (submitted) label of the proctortrack onboarding exam',\n },\n verifiedProctoringMessage: {\n id: 'learning.proctoringPanel.message.verified',\n defaultMessage: 'Your onboarding exam has been approved in this course.',\n description: 'The text that explain the meaning of (verified) label of the proctortrack onboarding exam',\n },\n rejectedProctoringMessage: {\n id: 'learning.proctoringPanel.message.rejected',\n defaultMessage: 'Your onboarding exam has been rejected. Please retry onboarding.',\n description: 'The text that explain the meaning of (rejected) label of the proctortrack onboarding exam',\n },\n errorProctoringMessage: {\n id: 'learning.proctoringPanel.message.error',\n defaultMessage: 'An error has occurred during your onboarding exam. Please retry onboarding.',\n description: 'The text that explain the meaning of (error) label of the proctortrack onboarding exam',\n },\n otherCourseApprovedProctoringMessage: {\n id: 'learning.proctoringPanel.message.otherCourseApproved',\n defaultMessage: 'Your onboarding exam has been approved in another course.',\n description: 'The text that explain the meaning of (approved in another course) label of the proctortrack onboarding exam',\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 description: 'The text that recommend an action when the status of the proctortrack onboarding exam is (approved in another course)',\n },\n expiringSoonProctoringMessage: {\n id: 'learning.proctoringPanel.message.expiringSoon',\n defaultMessage: 'Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.',\n description: 'The text that recommend an action when the status of the proctortrack onboarding exam is (expiring soon)',\n },\n expiredProctoringMessage: {\n id: 'learning.proctoringPanel.message.expired',\n defaultMessage: 'Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.',\n description: 'The text that recommend an action when the status of the proctortrack onboarding exam is (expired)',\n },\n proctoringPanelGeneralInfo: {\n id: 'learning.proctoringPanel.generalInfo',\n defaultMessage: 'You must complete the onboarding process prior to taking any proctored exam. ',\n description: 'It indicate key and important fact to learner about the importance of taking proctortrack onboarding exam',\n },\n proctoringPanelGeneralInfoSubmitted: {\n id: 'learning.proctoringPanel.generalInfoSubmitted',\n defaultMessage: 'Your submitted profile is in review.',\n description: 'The text that explain the meaning of (in review) label of the proctortrack onboarding exam',\n },\n proctoringPanelGeneralTime: {\n id: 'learning.proctoringPanel.generalTime',\n defaultMessage: 'Onboarding profile review can take 2+ business days.',\n description: 'This text explain for how long the (in review) status of the proctortrack onboarding exam might remain',\n },\n proctoringOnboardingButton: {\n id: 'learning.proctoringPanel.onboardingButton',\n defaultMessage: 'Complete Onboarding',\n description: 'Text shown on the button that starts the actual proctortrack onboarding exam when it is released',\n },\n proctoringOnboardingPracticeButton: {\n id: 'learning.proctoringPanel.onboardingPracticeButton',\n defaultMessage: 'View Onboarding Exam',\n description: 'The text that appears on onboarding exam while its not released, so learners can take or view it as a practice',\n },\n proctoringOnboardingButtonNotOpen: {\n id: 'learning.proctoringPanel.onboardingButtonNotOpen',\n defaultMessage: 'Onboarding Opens: {releaseDate}',\n description: 'It indicate when or from when the learner can take the proctortrack onboarding exam',\n },\n proctoringReviewRequirementsButton: {\n id: 'learning.proctoringPanel.reviewRequirementsButton',\n defaultMessage: 'Review instructions and system requirements',\n description: 'Anchor text for button which redirect leaner to doc or a detailed page about proctortrack onboarding exam',\n },\n proctoringOnboardingButtonPastDue: {\n id: 'learning.proctoringPanel.onboardingButtonPastDue',\n defaultMessage: 'Onboarding Past Due',\n description: 'Text that show when the deadline of proctortrack onboarding exam has passed, it appears on button that start the onboarding exam however for this case the button is disabled for obvious reason',\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 description: 'Header text when learner certifcate status is not passing',\n },\n notPassingBody: {\n id: 'progress.certificateStatus.notPassingBody',\n defaultMessage: 'In order to qualify for a certificate, you must have a passing grade.',\n description: 'Body text when learner certifcate status is not passing',\n },\n inProgressHeader: {\n id: 'progress.certificateStatus.inProgressHeader',\n defaultMessage: 'More content is coming soon!',\n description: 'Header text when learner certifcate is in progress',\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 description: 'Body text when learner certifcate is in progress',\n },\n requestableHeader: {\n id: 'progress.certificateStatus.requestableHeader',\n defaultMessage: 'Certificate status',\n description: 'Header text when learner certifcate status is requestable',\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 description: 'Body text when learner certifcate status is requestable',\n },\n requestableButton: {\n id: 'progress.certificateStatus.requestableButton',\n defaultMessage: 'Request certificate',\n description: 'Button text when learner certifcate status is requestable',\n },\n unverifiedHeader: {\n id: 'progress.certificateStatus.unverifiedHeader',\n defaultMessage: 'Certificate status',\n description: 'Header text when learner certifcate status is unverified',\n },\n unverifiedButton: {\n id: 'progress.certificateStatus.unverifiedButton',\n defaultMessage: 'Verify ID',\n description: 'Button text when learner certifcate status is unverified',\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 description: 'Body text when learner certifcate status is unverified pending',\n },\n downloadableHeader: {\n id: 'progress.certificateStatus.downloadableHeader',\n defaultMessage: 'Your certificate is available!',\n description: 'Header text when the certifcate 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 description: 'Recommending an action for learner when course certificate is available',\n },\n viewableButton: {\n id: 'progress.certificateStatus.viewableButton',\n defaultMessage: 'View my certificate',\n description: 'Button text which view or links to the certifcate',\n },\n notAvailableHeader: {\n id: 'progress.certificateStatus.notAvailableHeader',\n defaultMessage: 'Certificate status',\n description: 'Header text when the certifcate is not available',\n },\n notAvailableEndDateBody: {\n id: 'progress.certificateBody.notAvailable.endDate',\n defaultMessage: 'Final grades and any earned certificates are scheduled to be available after {endDate}.',\n description: 'Shown for learners who have finished a course before grades and certificates are available.',\n },\n upgradeHeader: {\n id: 'progress.certificateStatus.upgradeHeader',\n defaultMessage: 'Earn a certificate',\n description: 'Header text when the learner needs to upgrade to earn a certifcate ',\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 description: 'Body text when the learner needs to upgrade to earn a certifcate ',\n },\n upgradeButton: {\n id: 'progress.certificateStatus.upgradeButton',\n defaultMessage: 'Upgrade now',\n description: 'Button text which leaner needs to upgrade to get the certifcate',\n },\n unverifiedHomeHeader: {\n id: 'progress.certificateStatus.unverifiedHomeHeader.v2',\n defaultMessage: 'Verify your identity to qualify for a certificate.',\n description: 'Header text when the learner needs to do verification to earn a certifcate ',\n },\n unverifiedHomeButton: {\n id: 'progress.certificateStatus.unverifiedHomeButton',\n defaultMessage: 'Verify my ID',\n description: 'Button text which leaner needs to do verification to earn a certifcate',\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 description: 'Body text when the learner needs to do verification to earn a certifcate',\n },\n modalProcessingRequest: {\n id: 'certStatusMessages.modalProcessingRequest',\n },\n\n modelProcessingButton: {\n id: 'certStatusMessages.modalProcessingButton',\n }\n});\n\nexport default messages;\n","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 status will be available 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 certificateNotAvailableEndDateBody: {\n id: 'courseCelebration.certificateBody.notAvailable.endDate',\n defaultMessage: 'Final grades and any earned certificates are scheduled to be available after {endDate}.',\n description: 'Shown for learners who have finished a course before grades and certificates are available.',\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 description: 'Header when learner finished or pass the course but need to upgrade to get a 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 description: 'Header text for course exit section',\n },\n congratulationsHeader: {\n id: 'courseCelebration.congratulationsHeader',\n defaultMessage: 'Congratulations!',\n description: 'Greeting learner for finishing the course',\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 description: 'Shown to learner when they finish all available assignments, but not the whole course',\n },\n courseInProgressHeader: {\n id: 'courseExit.courseInProgressHeader',\n defaultMessage: 'More content is coming soon!',\n description: 'Header when the status of the course not all of (contents or assignments) available yet',\n },\n dashboardLink: {\n id: 'courseExit.dashboardLink',\n defaultMessage: 'Dashboard',\n description: 'Link to user’s dashboard',\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 description: 'Shown to learner when they did not pass the course',\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 description: 'This text is shown on the button which usually links to the next unit or assignment in course sequence, however when it is the last unit. The button will link to course exit page',\n },\n nextButtonEnd: {\n id: 'courseExit.nextButton.endOfCourse',\n defaultMessage: 'Next (end of course)',\n description: 'This shown for the button which links to the next unit, when learner did not pass the 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 description: 'This shown to learner when the course they completed is the last one of a program, the program might be mircomaster, or microbachelors...etc',\n },\n requestCertificateBodyText: {\n id: 'courseCelebration.requestCertificateBodyText',\n defaultMessage: 'In order to access your certificate, request it below.',\n description: 'Shown when learner need to request the certifcate',\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 description: 'Recommending an action when learner pass the course',\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 description: 'Shown when the status of verification is pending',\n },\n verifiedCertificateSupportLink: {\n id: 'courseExit.verifiedCertificateSupportLink',\n defaultMessage: 'Learn more about verified certificates',\n description: 'Anchor text for link that redirect to external help page 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\nexport default messages;\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 signInLowercase: {\n id: 'learning.logistration.login', // ID left for historical purposes\n defaultMessage: 'sign in',\n description: 'Text in a link, prompting the user to log in. 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","/* eslint-disable no-param-reassign */\nimport { createSlice } from '@reduxjs/toolkit';\n\nfunction add(state, modelType, model, idField) {\n idField = idField ?? 'id';\n const id = model[idField];\n if (state[modelType] === undefined) {\n state[modelType] = {};\n }\n state[modelType][id] = model;\n}\n\nfunction update(state, modelType, model, idField) {\n idField = idField ?? 'id';\n const id = model[idField];\n if (state[modelType] === undefined) {\n state[modelType] = {};\n }\n state[modelType][id] = { ...state[modelType][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, idField } = payload;\n add(state, modelType, model, idField);\n },\n addModels: (state, { payload }) => {\n const { modelType, models, idField } = payload;\n models.forEach(model => add(state, modelType, model, idField));\n },\n addModelsMap: (state, { payload }) => {\n const { modelType, modelsMap, idField } = payload;\n Object.values(modelsMap).forEach(model => add(state, modelType, model, idField));\n },\n updateModel: (state, { payload }) => {\n const { modelType, model, idField } = payload;\n update(state, modelType, model, idField);\n },\n updateModels: (state, { payload }) => {\n const { modelType, models, idField } = payload;\n models.forEach(model => update(state, modelType, model, idField));\n },\n updateModelsMap: (state, { payload }) => {\n const { modelType, modelsMap, idField } = payload;\n Object.values(modelsMap).forEach(model => update(state, modelType, model, idField));\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 { useSelector, shallowEqual } from 'react-redux';\n\n/*\n Return the selected model with the given id, or an empty object if the model does not exist \"{}\".\n */\nexport function useModel(type, id) {\n return useSelector(\n state => ((state.models[type] !== undefined && state.models[type][id] !== 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] !== undefined) ? state.models[type][id] : {}),\n ),\n shallowEqual,\n );\n}\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\nconst 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\nexport default AlertList;\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 // eslint-disable-next-line react-hooks/exhaustive-deps\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.v2',\n defaultMessage: 'Your grade and certificate status will be available 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 yet 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, { useState } 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, Modal } 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';\nimport { DashboardLink} from '../../../../shared/links';\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\nconst CertificateStatusAlert = ({ intl, payload }) => {\n const dispatch = useDispatch();\n const [isPopupVisible, setPopupVisible] = useState(false);\n const {\n certificateAvailableDate,\n certStatus,\n courseEndDate,\n courseId,\n certURL,\n userTimezone,\n org,\n notPassingCourseEnded,\n tabs,\n } = payload;\n\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 alertProps.buttonMessage = intl.formatMessage(certStatusMessages.viewableButton);\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 setPopupVisible(true);\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 const dashboardLink = ;\n\n return (\n <>\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 {isPopupVisible && (\n setPopupVisible(false)}\n variant=\"default\"\n body={\n

\n \n

\n }\n footerNode={\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 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\nconst Alert = ({\n type, dismissible, children, onDismiss, stacked,\n}) => (\n \n {children}\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, {\n useState, useRef, useEffect, useMemo,\n} 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\nconst 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 = useMemo(() => ({\n add,\n addFlash,\n remove,\n clear,\n messages,\n }), [messages]);\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\nexport default UserMessagesProvider;\n","/* eslint-disable import/prefer-default-export */\n\nimport {\n useCallback, useEffect, useRef, useState,\n} from 'react';\n\nexport function useEventListener(type, handler) {\n // We use this ref so that we can hold a reference to the currently active event listener.\n const eventListenerRef = useRef(null);\n useEffect(() => {\n // If we currently have an event listener, remove it.\n if (eventListenerRef.current !== null) {\n global.removeEventListener(type, eventListenerRef.current);\n eventListenerRef.current = null;\n }\n // Now add our new handler as the event listener.\n global.addEventListener(type, handler);\n // And then save it to our ref for next time.\n eventListenerRef.current = handler;\n // When the component finally unmounts, use the ref to remove the correct handler.\n return () => global.removeEventListener(type, eventListenerRef.current);\n }, [type, handler]);\n}\n\n/**\n * Hooks up post messages to callbacks\n * @param {Object.} events A mapping of message type to callback\n */\nexport function useIFramePluginEvents(events) {\n const receiveMessage = useCallback(({ data }) => {\n const {\n type,\n payload,\n } = data;\n if (events[type]) {\n events[type](payload);\n }\n }, [events]);\n useEventListener('message', receiveMessage);\n}\n\n/**\n * A hook to monitor message about changes in iframe content height\n * @param onIframeLoaded A callback for when the frame is loaded\n * @returns {[boolean, number]}\n */\nexport function useIFrameHeight(onIframeLoaded = null) {\n const [iframeHeight, setIframeHeight] = useState(null);\n const [hasLoaded, setHasLoaded] = useState(false);\n const receiveResizeMessage = useCallback(({ height }) => {\n setIframeHeight(height);\n if (!hasLoaded && !iframeHeight && height > 0) {\n setHasLoaded(true);\n if (onIframeLoaded) {\n onIframeLoaded();\n }\n }\n }, [setIframeHeight, hasLoaded, iframeHeight, setHasLoaded, onIframeLoaded]);\n useIFramePluginEvents({ 'plugin.resize': receiveResizeMessage });\n return [hasLoaded, iframeHeight];\n}\n","import { getConfig } from '@edx/frontend-platform';\nimport { injectIntl } from '@edx/frontend-platform/i18n';\nimport React, { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useParams, generatePath, useNavigate } from 'react-router-dom';\nimport { useIFrameHeight, useIFramePluginEvents } from '../../generic/hooks';\n\nconst DiscussionTab = () => {\n const { courseId } = useSelector(state => state.courseHome);\n const { path } = useParams();\n const [originalPath] = useState(path);\n const navigate = useNavigate();\n\n const [, iFrameHeight] = useIFrameHeight();\n useIFramePluginEvents({\n 'discussions.navigate': (payload) => {\n const basePath = generatePath('/course/:courseId/discussion', { courseId });\n navigate(`${basePath}/${payload.path}`);\n },\n });\n const discussionsUrl = `${getConfig().DISCUSSIONS_MFE_BASE_URL}/${courseId}/${originalPath}`;\n return (\n \n );\n};\n\nDiscussionTab.propTypes = {};\n\nexport default injectIntl(DiscussionTab);\n","import { messages as footerMessages } from '@edx/frontend-component-footer';\nimport { messages as headerMessages } from '@edx/frontend-component-header';\nimport { messages as paragonMessages } from '@edx/paragon';\n\nimport arMessages from './messages/ar.json';\nimport frMessages from './messages/fr.json';\nimport es419Messages from './messages/es_419.json';\nimport zhcnMessages from './messages/zh_CN.json';\nimport ptMessages from './messages/pt.json';\nimport itMessages from './messages/it.json';\nimport ukMessages from './messages/uk.json';\nimport deMessages from './messages/de.json';\nimport ruMessages from './messages/ru.json';\nimport hiMessages from './messages/hi.json';\nimport faIRMessages from './messages/fa_IR.json';\nimport frCAMessages from './messages/fr_CA.json';\nimport dedeCAMessages from './messages/de_DE.json';\nimport ititCAMessages from './messages/it_IT.json';\nimport ptptCAMessages from './messages/pt_PT.json';\n// no need to import en messages-- they are in the defaultMessage field\n\nconst appMessages = {\n ar: arMessages,\n 'es-419': es419Messages,\n fr: frMessages,\n 'zh-cn': zhcnMessages,\n pt: ptMessages,\n it: itMessages,\n de: deMessages,\n hi: hiMessages,\n 'fa-ir': faIRMessages,\n 'fr-ca': frCAMessages,\n ru: ruMessages,\n uk: ukMessages,\n 'de-de': dedeCAMessages,\n 'it-it': ititCAMessages,\n 'pt-pt': ptptCAMessages,\n};\n\nexport default [\n paragonMessages,\n appMessages,\n footerMessages,\n headerMessages,\n];\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\nconst DateSummary = ({\n dateBlock,\n userTimezone,\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 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
    \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\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};\n\nDateSummary.defaultProps = {\n userTimezone: null,\n};\n\nexport default DateSummary;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\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\nconst CourseDates = ({\n intl,\n}) => {\n const {\n courseId,\n } = useSelector(state => state.courseHome);\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
    \n

    {intl.formatMessage(messages.dates)}

    \n
      \n {courseDateBlocks.map((courseDateBlock) => (\n \n ))}\n
    \n \n {intl.formatMessage(messages.allDates)}\n \n
    \n
    \n );\n};\n\nCourseDates.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(CourseDates);\n","import React, { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getConfig } from '@edx/frontend-platform';\n\n\nconst 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\n const iframe = useRef(null);\n function resetIframeHeight() {\n if (iframe?.current?.contentWindow?.document?.body) {\n iframe.current.height = iframe.current.contentWindow.document.body.scrollHeight;\n }\n }\n\n useEffect(() => {\n function receiveMessage(event) {\n const { type } = event.data;\n if (type === 'lmshtmlfragment.resize') {\n resetIframeHeight();\n }\n }\n global.addEventListener('message', receiveMessage);\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\nexport default LmsHtmlFragment;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\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\nconst CourseHandouts = ({ intl }) => {\n const {\n courseId,\n } = useSelector(state => state.courseHome);\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 intl: intlShape.isRequired,\n};\n\nexport default injectIntl(CourseHandouts);\n","import React from 'react';\nimport { Button, Card } from '@edx/paragon';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\n\nimport { useSelector } from 'react-redux';\nimport { sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport messages from '../messages';\nimport { useModel } from '../../../generic/model-store';\n\nconst StartOrResumeCourseCard = ({ intl }) => {\n const {\n courseId,\n } = useSelector(state => state.courseHome);\n\n const {\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const {\n resumeCourse: {\n hasVisitedCourse,\n url: resumeCourseUrl,\n },\n } = useModel('outline', courseId);\n\n if (!resumeCourseUrl) {\n return null;\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 return (\n \n logResumeCourseClick()}\n >\n {hasVisitedCourse ? intl.formatMessage(messages.resume) : intl.formatMessage(messages.start)}\n \n )}\n />\n {/* Footer is needed for internal vertical spacing to work out. If you can remove, be my guest */}\n {/* eslint-disable-next-line react/jsx-no-useless-fragment */}\n <>\n \n );\n};\n\nStartOrResumeCourseCard.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(StartOrResumeCourseCard);\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nconst SvgFlagBlack = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n fill: \"none\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n d: \"M14.4 6 14 4H5v17h2v-7h5.6l.4 2h7V6h-5.6Z\"\n})));\nexport { SvgFlagBlack as ReactComponent };\nexport default __webpack_public_path__ + \"618c66f2320092cb2a787c07147f7146.svg\";","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nconst SvgFlagOutline = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 15,\n height: 17,\n fill: \"none\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002B2B\",\n d: \"M9.4 2 9 0H0v17h2v-7h5.6l.4 2h7V2H9.4Zm3.6 8H9.64l-.4-2H2V2h5.36l.4 2H13v6Z\"\n})));\nexport { SvgFlagOutline as ReactComponent };\nexport default __webpack_public_path__ + \"5615c2010dc4523a5ca27285b35e4266.svg\";","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nconst SvgFlagGray = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 15,\n height: 17,\n fill: \"none\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002B2B\",\n d: \"M9.4 2 9 0H0v17h2v-7h5.6l.4 2h7V2H9.4Zm3.6 8H9.64l-.4-2H2V2h5.36l.4 2H13v6Z\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.66 9.987c-.002-.004-.095-.456-.206-1.004l-.202-.996-3.614-.008-3.615-.008V2.023l2.664.007 2.663.008.197.99.197.988h5.24v5.979h-1.66c-.914 0-1.663-.004-1.665-.008z\",\n style: {\n fill: \"gray\",\n fillRule: \"evenodd\",\n strokeWidth: 0.0150977\n }\n}));\nexport { SvgFlagGray as ReactComponent };\nexport default __webpack_public_path__ + \"cb5894908f8fdcc54d5d94bed8c3b7c9.svg\";","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nconst FlagButton = ({\n buttonIcon,\n title,\n text,\n handleSelect,\n isSelected,\n}) => (\n handleSelect()}\n data-testid={`weekly-learning-goal-input-${title}`}\n >\n
    \n {buttonIcon}\n
    \n
    \n {title}\n
    \n
    \n {text}\n
    \n \n);\n\nFlagButton.propTypes = {\n buttonIcon: PropTypes.element.isRequired,\n title: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n handleSelect: PropTypes.func.isRequired,\n isSelected: PropTypes.bool.isRequired,\n};\n\nexport default FlagButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\n// These flag svgs are derivatives of the Flag icon from paragon\nimport { ReactComponent as FlagIntenseIcon } from './flag_black.svg';\nimport { ReactComponent as FlagCasualIcon } from './flag_outline.svg';\nimport { ReactComponent as FlagRegularIcon } from './flag_gray.svg';\nimport FlagButton from './FlagButton';\nimport messages from '../messages';\n\nconst LearningGoalButton = ({\n level,\n isSelected,\n handleSelect,\n intl,\n}) => {\n const buttonDetails = {\n casual: {\n daysPerWeek: 1,\n title: messages.casualGoalButtonTitle,\n text: messages.casualGoalButtonText,\n icon: ,\n },\n regular: {\n daysPerWeek: 3,\n title: messages.regularGoalButtonTitle,\n text: messages.regularGoalButtonText,\n icon: ,\n },\n intense: {\n daysPerWeek: 5,\n title: messages.intenseGoalButtonTitle,\n text: messages.intenseGoalButtonText,\n icon: ,\n },\n };\n\n const values = buttonDetails[level];\n\n return (\n handleSelect(values.daysPerWeek)}\n isSelected={isSelected}\n />\n );\n};\n\nLearningGoalButton.propTypes = {\n level: PropTypes.string.isRequired,\n isSelected: PropTypes.bool.isRequired,\n handleSelect: PropTypes.func.isRequired,\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(LearningGoalButton);\n","// extracted by mini-css-extract-plugin\nexport default {\"xs\":\"0\",\"sm\":\"576px\",\"md\":\"768px\",\"lg\":\"992px\",\"xl\":\"1200px\",\"xxl\":\"1400px\"};","import React, { useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { Form, Card, Icon } from '@edx/paragon';\nimport { history } 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';\nimport { Email } from '@edx/paragon/icons';\nimport { useSelector } from 'react-redux';\nimport messages from '../messages';\nimport LearningGoalButton from './LearningGoalButton';\nimport { saveWeeklyLearningGoal } from '../../data';\nimport { useModel } from '../../../generic/model-store';\nimport './FlagButton.scss';\n\nconst WeeklyLearningGoalCard = ({\n daysPerWeek,\n subscribedToReminders,\n intl,\n}) => {\n const {\n courseId,\n } = useSelector(state => state.courseHome);\n\n const {\n isMasquerading,\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const { administrator } = getAuthenticatedUser();\n\n const [daysPerWeekGoal, setDaysPerWeekGoal] = useState(daysPerWeek);\n // eslint-disable-next-line react/prop-types\n const [isGetReminderSelected, setGetReminderSelected] = useState(subscribedToReminders);\n const location = useLocation();\n\n const handleSelect = (days, triggeredFromEmail = false) => {\n // Set the subscription button if this is the first time selecting a goal\n const selectReminders = daysPerWeekGoal === null ? true : isGetReminderSelected;\n setGetReminderSelected(selectReminders);\n setDaysPerWeekGoal(days);\n if (!isMasquerading) { // don't save goal updates while masquerading\n saveWeeklyLearningGoal(courseId, days, selectReminders);\n sendTrackEvent('edx.ui.lms.goal.days-per-week.changed', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n num_days: days,\n reminder_selected: selectReminders,\n });\n if (triggeredFromEmail) {\n sendTrackEvent('enrollment.email.clicked.setgoal', {});\n }\n }\n };\n\n function handleSubscribeToReminders(event) {\n const isGetReminderChecked = event.target.checked;\n setGetReminderSelected(isGetReminderChecked);\n if (!isMasquerading) { // don't save goal updates while masquerading\n saveWeeklyLearningGoal(courseId, daysPerWeekGoal, isGetReminderChecked);\n sendTrackEvent('edx.ui.lms.goal.reminder-selected.changed', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n num_days: daysPerWeekGoal,\n reminder_selected: isGetReminderChecked,\n });\n }\n }\n\n useEffect(() => {\n const currentParams = new URLSearchParams(location.search);\n const weeklyGoal = Number(currentParams.get('weekly_goal'));\n if ([1, 3, 5].includes(weeklyGoal)) {\n handleSelect(weeklyGoal, true);\n\n // Deleting the weekly_goal query param as it only needs to be set once\n // whenever passed in query params.\n currentParams.delete('weekly_goal');\n history.replace({\n search: currentParams.toString(),\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search]);\n\n return (\n \n {intl.formatMessage(messages.setWeeklyGoal)})}\n subtitle={intl.formatMessage(messages.setWeeklyGoalDetail)}\n />\n \n \n \n \n \n \n
    \n handleSubscribeToReminders(event)}\n disabled={!daysPerWeekGoal}\n >\n {intl.formatMessage(messages.setGoalReminder)}\n \n
    \n
    \n {isGetReminderSelected && (\n \n
    \n
    \n \n
    \n
    \n {intl.formatMessage(messages.goalReminderDetail)}\n
    \n
    \n
    \n )}\n \n );\n};\n\nWeeklyLearningGoalCard.propTypes = {\n daysPerWeek: PropTypes.number,\n subscribedToReminders: PropTypes.bool,\n intl: intlShape.isRequired,\n};\n\nWeeklyLearningGoalCard.defaultProps = {\n daysPerWeek: null,\n subscribedToReminders: false,\n};\nexport default injectIntl(WeeklyLearningGoalCard);\n","/* eslint-disable no-param-reassign */\nimport { createSlice } from '@reduxjs/toolkit';\n\nconst slice = createSlice({\n name: 'tours',\n initialState: {\n showCoursewareTour: false,\n showExistingUserCourseHomeTour: false,\n showNewUserCourseHomeModal: false,\n showNewUserCourseHomeTour: false,\n toursEnabled: false,\n },\n reducers: {\n disableCourseHomeTour: (state) => {\n state.showNewUserCourseHomeModal = false;\n state.showNewUserCourseHomeTour = false;\n state.showExistingUserCourseHomeTour = false;\n },\n disableCoursewareTour: (state) => {\n state.showCoursewareTour = false;\n },\n disableNewUserCourseHomeModal: (state) => {\n state.showNewUserCourseHomeModal = false;\n },\n launchCourseHomeTour: (state) => {\n if (state.showExistingUserCourseHomeTour) {\n state.showExistingUserCourseHomeTour = false;\n }\n\n if (!state.showNewUserCourseHomeModal || !state.showNewUserCourseHomeTour) {\n state.showNewUserCourseHomeTour = true;\n }\n },\n setTourData: (state, { payload }) => {\n const {\n courseHomeTourStatus,\n showCoursewareTour,\n toursEnabled,\n } = payload;\n state.showCoursewareTour = showCoursewareTour;\n state.showExistingUserCourseHomeTour = courseHomeTourStatus === 'show-existing-user-tour';\n state.showNewUserCourseHomeModal = courseHomeTourStatus === 'show-new-user-tour';\n state.toursEnabled = toursEnabled;\n },\n },\n});\n\nexport const {\n disableCourseHomeTour,\n disableCoursewareTour,\n disableNewUserCourseHomeModal,\n launchCourseHomeTour,\n setTourData,\n} = slice.actions;\n\nexport const {\n reducer,\n} = slice;\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n beginTour: {\n id: 'tours.button.beginTour',\n defaultMessage: 'Begin tour',\n description: 'A button used to start a tour of the website',\n },\n launchTour: {\n id: 'tours.button.launchTour',\n defaultMessage: 'Launch tour',\n description: 'A button used to launch a tour of the website',\n },\n newUserModalBody: {\n id: 'tours.newUserModal.body',\n defaultMessage: 'Let’s take a quick tour of {siteName} so you can get the most out of your course.',\n },\n newUserModalTitleWelcome: {\n id: 'tours.newUserModal.title.welcome',\n defaultMessage: 'Welcome to your',\n description: 'The beginning of the phrase \"Welcome to your edX course!\"',\n },\n skipForNow: {\n id: 'tours.button.skipForNow',\n defaultMessage: 'Skip for now',\n description: 'A button used to dismiss the modal and skip the optional tour of the website',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button, Icon } from '@edx/paragon';\nimport { Compass } from '@edx/paragon/icons';\n\nimport { useModel } from '../../generic/model-store';\nimport { launchCourseHomeTour } from '../data/slice';\nimport messages from '../messages';\n\nconst LaunchCourseHomeTourButton = ({ intl, srOnly }) => {\n const {\n courseId,\n } = useSelector(state => state.courseHome);\n\n const {\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n toursEnabled,\n } = useSelector(state => state.tours);\n\n const dispatch = useDispatch();\n\n const handleClick = () => {\n const { administrator } = getAuthenticatedUser();\n sendTrackEvent('edx.ui.lms.launch_tour.clicked', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n tour_variant: 'course_home',\n });\n\n dispatch(launchCourseHomeTour());\n };\n\n return (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <>\n {toursEnabled && (\n \n )}\n \n );\n};\n\nLaunchCourseHomeTourButton.defaultProps = {\n srOnly: false,\n};\n\nLaunchCourseHomeTourButton.propTypes = {\n intl: intlShape.isRequired,\n srOnly: PropTypes.bool,\n};\n\nexport default injectIntl(LaunchCourseHomeTourButton);\n","import React from 'react';\nimport { useSelector } from 'react-redux';\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';\nimport LaunchCourseHomeTourButton from '../../../product-tours/newUserCourseHomeTour/LaunchCourseHomeTourButton';\n\nconst CourseTools = ({ intl }) => {\n const {\n courseId,\n } = useSelector(state => state.courseHome);\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 intl: intlShape.isRequired,\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\nconst 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 { createSlice } from '@reduxjs/toolkit';\n\nconst menuSlice = createSlice({\n name: 'menu',\n initialState: {\n isOpen: false,\n isShown: true,\n childData: '',\n activeLink: '',\n tabLink: '', // New state for data from child\n },\n reducers: {\n toggleMenu: (state) => {\n state.isOpen = !state.isOpen;\n },\n setMenu: (state) => {\n state.isShown = !state.isShown;\n },\n setChildData: (state, action) => { // New reducer to set child data\n state.childData = action.payload;\n },\n setActiveLink: (state, action) => { // New reducer to set child data\n state.activeLink = action.payload;\n },\n setTabLink: (state, action) => { // New reducer to set child data\n state.tabLink = action.payload;\n },\n },\n});\n\nexport const { toggleMenu, setMenu, setChildData, setActiveLink, setTabLink } = menuSlice.actions;\nexport default menuSlice.reducer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Link } from 'react-router-dom';\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 { useDispatch } from 'react-redux';\nimport { useSelector } from 'react-redux';\nimport { setChildData } from '../../menuSlice';\nimport { setActiveLink } from '../../menuSlice';\n\nconst SequenceLink = ({\n id,\n intl,\n courseId,\n first,\n sequence,\n}) => {\n const {\n complete,\n description,\n due,\n showLink,\n title,\n } = sequence;\n const {\n userTimezone,\n } = useModel('outline', courseId);\n //fetch the saved link from the redux store to compare with the lsit of links\n const tabLink = useSelector((state) => state.menu.tabLink);\n\n\n \n\n const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};\n\n const coursewareUrl = {title};\n const displayTitle = showLink ? coursewareUrl : title;\n\n const dueDateMessage = (\n \n ),\n description: description || '',\n }}\n />\n );\n\n const noDueDateMessage = (\n \n ),\n description: description || '',\n }}\n />\n );\n\n return (\n
  • \n
    \n
    \n
    \n {complete ? (\n \n ) : (\n \n )}\n
    \n
    \n {/* this is where we compare to see which link should be highlighted */}\n {displayTitle}\n \n , {intl.formatMessage(complete ? messages.completedAssignment : messages.incompleteAssignment)}\n \n \n
    \n
    \n
    \n \n {due ? dueDateMessage : noDueDateMessage}\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 { 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\nconst Section = ({\n courseId,\n defaultOpen,\n expand,\n intl,\n section,\n}) => {\n const {\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 // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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
    \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);","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 description: 'Messaging that explain the gaol and the effect fo the suggested schedule',\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 description: 'It explain the effect of upgrading the course',\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 description: 'Text that explain the consequences of resetting dates when learner needs to upgrade to do so',\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 description: 'Text shown when leaner missed assignment due date',\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 description: 'Text that explain the consequences of resetting 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\nconst 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 const dispatch = useDispatch();\n\n if (!missedDeadlines || missedGatedContent || hasEnded) {\n return null;\n }\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 { 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\nconst 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\nconst 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 );\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\nconst 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 different (might hold a coupon code that the normal does not)\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';\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { FormattedMessage } from '@edx/frontend-platform/i18n';\nimport { getConfig } from '@edx/frontend-platform';\n\nconst CheckmarkBullet = () => (\n \n);\n\n// Must be child of a
      \nexport const VerifiedCertBullet = () => {\n const verifiedCertLink = (\n \n \n \n );\n return (\n
    • \n \n \n
    • \n );\n};\n\n// Must be child of a
        \nexport const UnlockGradedBullet = () => {\n const gradedAssignmentsInBoldText = (\n \n \n \n );\n return (\n
      • \n \n \n
      • \n );\n};\n\n// Must be child of a
          \nexport const FullAccessBullet = () => {\n const fullAccessInBoldText = (\n \n \n \n );\n return (\n
        • \n \n \n
        • \n );\n};\n\n// Must be child of a
            \nexport const SupportMissionBullet = () => {\n const missionInBoldText = (\n \n \n \n );\n return (\n
          • \n \n \n
          • \n );\n};\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { FormattedDate, FormattedMessage, injectIntl } from '@edx/frontend-platform/i18n';\nimport { Button } from '@edx/paragon';\nimport { setLocalStorage } from '../../data/localStorage';\nimport { UpgradeButton } from '../upgrade-button';\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from '../upsell-bullets/UpsellBullets';\n\nconst UpsellNoFBECardContent = () => (\n
              \n \n \n
            \n);\n\nconst UpsellFBEFarAwayCardContent = () => (\n
              \n \n \n \n \n
            \n);\n\nconst 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\nconst PastExpirationCardContent = () => (\n
            \n

            \n \n

            \n
            \n);\n\nconst ExpirationCountdown = ({\n courseId, hoursToExpiration, setupgradeNotificationCurrentState, type,\n}) => {\n let expirationText;\n if (hoursToExpiration >= 24) { // More than 1 day left\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessDaysLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessDaysLeft');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDdaysLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'FPDdaysLeft');\n }\n }\n expirationText = (\n \n );\n } else if (hoursToExpiration >= 1) { // More than 1 hour left\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessHoursLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessHoursLeft');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDHoursLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'FPDHoursLeft');\n }\n }\n expirationText = (\n \n );\n } else { // Less than 1 hour\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessLastHour');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessLastHour');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDLastHour');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'FPDLastHour');\n }\n }\n expirationText = (\n \n );\n }\n return (
            {expirationText}
            );\n};\n\nExpirationCountdown.propTypes = {\n courseId: PropTypes.string.isRequired,\n hoursToExpiration: PropTypes.number.isRequired,\n setupgradeNotificationCurrentState: PropTypes.func,\n type: PropTypes.string,\n};\nExpirationCountdown.defaultProps = {\n setupgradeNotificationCurrentState: null,\n type: null,\n};\n\nconst AccessExpirationDateBanner = ({\n courseId, accessExpirationDate, timezoneFormatArgs, setupgradeNotificationCurrentState,\n}) => {\n if (setupgradeNotificationCurrentState) {\n setupgradeNotificationCurrentState('accessDateView');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessDateView');\n }\n return (\n
            \n \n ),\n }}\n />\n
            \n );\n};\n\nAccessExpirationDateBanner.propTypes = {\n courseId: PropTypes.string.isRequired,\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\nconst PastExpirationDateBanner = ({\n courseId, accessExpirationDate, timezoneFormatArgs, setupgradeNotificationCurrentState,\n}) => {\n if (setupgradeNotificationCurrentState) {\n setupgradeNotificationCurrentState('PastExpirationDate');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'PastExpirationDate');\n }\n return (\n
            \n \n ),\n }}\n />\n
            \n );\n};\n\nPastExpirationDateBanner.propTypes = {\n courseId: PropTypes.string.isRequired,\n accessExpirationDate: PropTypes.PropTypes.instanceOf(Date).isRequired,\n timezoneFormatArgs: PropTypes.shape({\n timeZone: PropTypes.string,\n }),\n setupgradeNotificationCurrentState: PropTypes.func,\n};\n\nPastExpirationDateBanner.defaultProps = {\n timezoneFormatArgs: {},\n setupgradeNotificationCurrentState: null,\n};\n\nconst UpgradeNotification = ({\n accessExpiration,\n contentTypeGatingEnabled,\n marketingUrl,\n courseId,\n offer,\n org,\n setupgradeNotificationCurrentState,\n shouldDisplayBorder,\n timeOffsetMillis,\n upsellPageName,\n userTimezone,\n verifiedMode,\n}) => {\n const dateNow = Date.now();\n const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};\n const correctedTime = new Date(dateNow + timeOffsetMillis);\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(dateNow) > accessExpirationDate : false;\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 // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!verifiedMode) {\n return null;\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 const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_notification.past_expiration.button_clicked', {\n ...eventProperties,\n linkCategory: 'upgrade_notification',\n linkName: `${upsellPageName}_course_details`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n /*\n There are 5 parts that change in the upgrade card:\n upgradeNotificationHeaderText\n expirationBanner\n upsellMessage\n callToActionButton\n offerCode\n */\n let upgradeNotificationHeaderText;\n let expirationBanner;\n let upsellMessage;\n let callToActionButton;\n let offerCode;\n\n if (!!accessExpiration && !!contentTypeGatingEnabled) {\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 if (hoursToAccessExpiration < (7 * 24) && hoursToAccessExpiration >= 0) {\n // 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 } else { // access expiration deadline has passed\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 (pastExpirationDeadline) {\n callToActionButton = (\n \n View Course Details\n \n );\n } else {\n callToActionButton = (\n \n );\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

            \n {upgradeNotificationHeaderText}\n

            \n {expirationBanner}\n
            \n {upsellMessage}\n
            \n
            \n {callToActionButton}\n
            \n {offerCode}\n
            \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 marketingUrl: PropTypes.string,\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 marketingUrl: null,\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\nconst 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 } = certData || {};\n const endBlock = courseDateBlocks.find(b => b.dateType === 'course-end-date');\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 }\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 = useMemo(() => ({\n certificateAvailableDate,\n certURL,\n certStatus,\n courseId,\n courseEndDate: endBlock && endBlock.date,\n userTimezone,\n org,\n notPassingCourseEnded,\n tabs,\n }), [certStatus, certURL, certificateAvailableDate, courseId,\n endBlock, notPassingCourseEnded, org, tabs, userTimezone]);\n\n useAlert(isVisible || notPassingCourseEnded, {\n code: 'clientCertificateStatusAlert',\n payload,\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 = useMemo(() => ({\n description: endBlock && endBlock.description,\n endDate: endBlock && endBlock.date,\n userTimezone,\n }), [endBlock, userTimezone]);\n\n useAlert(isVisible, {\n code: 'clientCourseEndAlert',\n payload,\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 = useMemo(() => ({\n courseId,\n }), [courseId]);\n\n useAlert(isVisible, {\n code: 'clientCourseStartAlert',\n payload,\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 = useMemo(() => ({\n courseId,\n }), [courseId]);\n\n useAlert(isVisible, {\n code: 'clientCourseStartMasqueradeBanner',\n payload,\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 = useMemo(() => ({\n anonymousUser: authenticatedUser === null,\n canEnroll: outline && outline.enrollAlert ? outline.enrollAlert.canEnroll : false,\n courseId,\n }), [authenticatedUser, courseId, outline]);\n\n useAlert(isVisible, {\n code: 'clientPrivateCourseAlert',\n dismissible: false,\n payload,\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 = useMemo(() => ({\n datesTabLink,\n }), [datesTabLink]);\n useAlert(hasScheduledContent && isEnrolled, {\n code: 'ScheduledContentAlert',\n payload,\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\nconst WelcomeMessage = ({ courseId, intl }) => {\n const {\n welcomeMessageHtml,\n } = useModel('outline', courseId);\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\n if (!welcomeMessageHtml) {\n return null;\n }\n\n return (\n {\n setDisplay(false);\n dispatch(dismissWelcomeMessage(courseId));\n }}\n className=\"raised-card\"\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 { useDispatch, useSelector } from 'react-redux';\nimport camelCase from 'lodash.camelcase';\n\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button } from '@edx/paragon';\n\nimport messages from '../messages';\nimport { getProctoringInfoData } from '../../data/api';\nimport { fetchProctoringInfoResolved } from '../../data/slice';\nimport { useModel } from '../../../generic/model-store';\n\nconst ProctoringInfoPanel = ({ intl }) => {\n const {\n courseId,\n } = useSelector(state => state.courseHome);\n const {\n username,\n } = useModel('courseHomeMeta', courseId);\n const dispatch = useDispatch();\n\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 expired: 'expired',\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 isCurrentlySubmitted(examStatus) {\n const SUBMITTED_STATES = ['submitted', 'second_review_required'];\n return SUBMITTED_STATES.includes(examStatus);\n }\n\n function isSubmissionRequired(examStatus) {\n const OK_STATES = [readableStatuses.submitted, readableStatuses.verified];\n return !OK_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 isExpired(dateString) {\n // Returns true if the expiration date has passed\n const today = new Date();\n const expirationDateObject = new Date(dateString);\n return today >= expirationDateObject.getTime();\n }\n\n function isExpiringSoon(dateString) {\n // Returns true if the expiration date is within 28 days\n const twentyeightDays = 28 * 24 * 60 * 60 * 1000;\n const today = new Date();\n const expirationDateObject = new Date(dateString);\n return today > expirationDateObject.getTime() - twentyeightDays;\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 && isExpired(expirationDate)) {\n setReadableStatus(getReadableStatusClass('expired'));\n } else 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 .catch(() => {\n /* Do nothing. API throws 404 when class does not have proctoring */\n })\n .finally(() => {\n dispatch(fetchProctoringInfoResolved());\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\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 // eslint-disable-next-line react/jsx-no-useless-fragment\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 {!isCurrentlySubmitted(status) && (\n intl.formatMessage(messages.proctoringPanelGeneralInfo)\n )}\n {isCurrentlySubmitted(status) && (\n intl.formatMessage(messages.proctoringPanelGeneralInfoSubmitted)\n )}\n

            \n

            {intl.formatMessage(messages.proctoringPanelGeneralTime)}

            \n \n )}\n {isSubmissionRequired(readableStatus) && (\n onboardingExamButton\n )}\n \n
            \n
            \n )}\n \n );\n};\n\nProctoringInfoPanel.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(ProctoringInfoPanel);\n","import { camelCaseObject, getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient, getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { getTimeOffsetMillis } from '../../course-home/data/api';\nimport { appendBrowserTimezoneToUrl } from '../../utils';\n\nexport function normalizeLearningSequencesData(learningSequencesData) {\n const models = {\n courses: {},\n sections: {},\n sequences: {},\n };\n\n const now = new Date();\n function isReleased(block) {\n // We check whether the backend marks this as accessible because staff users are granted access anyway.\n // Note that sections don't have the `accessible` field and will just be checking `effective_start`.\n return block.accessible || !block.effective_start || now >= Date.parse(block.effective_start);\n }\n\n // Sequences\n Object.entries(learningSequencesData.outline.sequences).forEach(([seqId, sequence]) => {\n if (!isReleased(sequence)) {\n return; // Don't let the learner see unreleased sequences\n }\n\n models.sequences[seqId] = {\n id: seqId,\n title: sequence.title,\n };\n });\n\n // Sections\n learningSequencesData.outline.sections.forEach(section => {\n // Filter out any ignored sequences (e.g. unreleased sequences)\n const availableSequenceIds = section.sequence_ids.filter(seqId => seqId in models.sequences);\n\n // If we are unreleased and already stripped out all our children, just don't show us at all.\n // (We check both release date and children because children will exist for an unreleased section even for staff,\n // so we still want to show this section.)\n if (!isReleased(section) && availableSequenceIds.length === 0) {\n return;\n }\n\n models.sections[section.id] = {\n id: section.id,\n title: section.title,\n sequenceIds: availableSequenceIds,\n courseId: learningSequencesData.course_key,\n };\n\n // Add back-references to this section for all child sequences.\n availableSequenceIds.forEach(childSeqId => {\n models.sequences[childSeqId].sectionId = section.id;\n });\n });\n\n // Course\n models.courses[learningSequencesData.course_key] = {\n id: learningSequencesData.course_key,\n title: learningSequencesData.title,\n sectionIds: Object.entries(models.sections).map(([sectionId]) => sectionId),\n\n // Scan through all the sequences and look for ones that aren't released yet.\n hasScheduledContent: Object.values(learningSequencesData.outline.sequences).some(seq => !isReleased(seq)),\n };\n\n return models;\n}\n\n// Do not add further calls to this API - we don't like making use of the modulestore if we can help it\nexport async function getSequenceForUnitDeprecated(courseId, unitId) {\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,discussions_url');\n\n const { data } = await getAuthenticatedHttpClient().get(url.href, {});\n const parent = Object.values(data.blocks).find(block => block.type === 'sequential' && block.children.includes(unitId));\n return parent?.id;\n}\n\nexport async function getLearningSequencesOutline(courseId) {\n const outlineUrl = new URL(`${getConfig().LMS_BASE_URL}/api/learning_sequences/v1/course_outline/${courseId}`);\n const { data } = await getAuthenticatedHttpClient().get(outlineUrl.href, {});\n return normalizeLearningSequencesData(data);\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: camelCaseObject(data.course_goals),\n id: data.id,\n title: data.name,\n offer: camelCaseObject(data.offer),\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 license: data.license,\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 entranceExamData: camelCaseObject(data.entrance_exam_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 canAccessProctoredExams: data.can_access_proctored_exams,\n learningAssistantEnabled: data.learning_assistant_enabled,\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(`${getConfig().LMS_BASE_URL}/api/agreements/v1/integrity_signature/${courseId}`, {});\n return camelCaseObject(data);\n}\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\nexport async function getCourseDiscussionConfig(courseId) {\n const url = `${getConfig().LMS_BASE_URL}/api/discussion/v1/courses/${courseId}`;\n const { data } = await getAuthenticatedHttpClient().get(url);\n return data;\n}\n\nexport async function getCourseTopics(courseId) {\n const { data } = await getAuthenticatedHttpClient()\n .get(`${getConfig().LMS_BASE_URL}/api/discussion/v2/course_topics/${courseId}`);\n return camelCaseObject(data);\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 sequenceMightBeUnit: false,\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 state.sequenceMightBeUnit = false;\n },\n fetchSequenceSuccess: (state, { payload }) => {\n state.sequenceId = payload.sequenceId;\n state.sequenceStatus = LOADED;\n state.sequenceMightBeUnit = false;\n },\n fetchSequenceFailure: (state, { payload }) => {\n state.sequenceId = payload.sequenceId;\n state.sequenceStatus = FAILED;\n state.sequenceMightBeUnit = payload.sequenceMightBeUnit || false;\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 { getCourseHomeCourseMetadata } from '../../course-home/data/api';\nimport {\n addModel, addModelsMap, updateModel, updateModels, updateModelsMap,\n} from '../../generic/model-store';\nimport {\n getBlockCompletion,\n getCourseDiscussionConfig,\n getCourseMetadata,\n getCourseTopics,\n getLearningSequencesOutline,\n getSequenceMetadata,\n postIntegritySignature,\n postSequencePosition,\n} from './api';\nimport {\n fetchCourseDenied,\n fetchCourseFailure,\n fetchCourseRequest,\n fetchCourseSuccess,\n fetchSequenceFailure,\n fetchSequenceRequest,\n fetchSequenceSuccess,\n} from './slice';\n\nexport function fetchCourse(courseId) {\n return async (dispatch) => {\n dispatch(fetchCourseRequest({ courseId }));\n Promise.allSettled([\n getCourseMetadata(courseId),\n getLearningSequencesOutline(courseId),\n getCourseHomeCourseMetadata(courseId, 'courseware'),\n ]).then(([\n courseMetadataResult,\n learningSequencesOutlineResult,\n courseHomeMetadataResult]) => {\n if (courseMetadataResult.status === 'fulfilled') {\n dispatch(addModel({\n modelType: 'coursewareMeta',\n model: courseMetadataResult.value,\n }));\n }\n\n if (courseHomeMetadataResult.status === 'fulfilled') {\n dispatch(addModel({\n modelType: 'courseHomeMeta',\n model: {\n id: courseId,\n ...courseHomeMetadataResult.value,\n },\n }));\n }\n\n if (learningSequencesOutlineResult.status === 'fulfilled') {\n const {\n courses, sections, sequences,\n } = learningSequencesOutlineResult.value;\n\n // This updates the course with a sectionIds array from the Learning Sequence 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 because the sequence metadata may have come back first.\n dispatch(updateModelsMap({\n modelType: 'sequences',\n modelsMap: sequences,\n }));\n }\n\n const fetchedMetadata = courseMetadataResult.status === 'fulfilled';\n const fetchedCourseHomeMetadata = courseHomeMetadataResult.status === 'fulfilled';\n const fetchedOutline = learningSequencesOutlineResult.status === 'fulfilled';\n\n // Log errors for each request if needed. Outline failures may occur\n // even if the course metadata request is successful\n if (!fetchedOutline) {\n const { response } = learningSequencesOutlineResult.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(learningSequencesOutlineResult.reason);\n } else {\n logError(learningSequencesOutlineResult.reason);\n }\n }\n if (!fetchedMetadata) {\n logError(courseMetadataResult.reason);\n }\n if (!fetchedCourseHomeMetadata) {\n logError(courseHomeMetadataResult.reason);\n }\n if (fetchedMetadata && fetchedCourseHomeMetadata) {\n if (courseHomeMetadataResult.value.courseAccess.hasAccess && fetchedOutline) {\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 sequenceMightBeUnit = error?.response?.status === 422;\n if (!sequenceMightBeUnit) {\n logError(error);\n }\n dispatch(fetchSequenceFailure({ sequenceId, sequenceMightBeUnit }));\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 specific learner,\n // don't actually create a signature for them on the backend,\n // only the modal dialog will be dismissed\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\nexport function getCourseDiscussionTopics(courseId) {\n return async (dispatch) => {\n try {\n const config = await getCourseDiscussionConfig(courseId);\n // Only load topics for the openedx provider, the legacy provider uses\n // the xblock\n if (config.provider === 'openedx') {\n const topics = await getCourseTopics(courseId);\n dispatch(updateModels({\n modelType: 'discussionTopics',\n models: topics.filter(topic => topic.usageKey),\n idField: 'usageKey',\n }));\n }\n } catch (error) {\n logError(error);\n }\n };\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","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n accountActivationAlertTitle: {\n id: 'account-activation.alert.title',\n defaultMessage: 'Activate your account so you can log back in',\n description: 'Title for account activation alert which is shown after the registration',\n },\n});\n\nexport default messages;\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, intlShape } from '@edx/frontend-platform/i18n';\nimport { sendActivationEmail } from '../../courseware/data';\nimport messages from './messages';\n\nconst AccountActivationAlert = ({\n intl,\n}) => {\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 infinite rendering\n if (Cookies.get('show-account-activation-popup') === undefined) {\n setShowModal(true);\n }\n }\n\n const button = (\n setShowModal(false)}\n >\n \n \n \n );\n\n const children = () => {\n let bodyContent;\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\nAccountActivationAlert.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(AccountActivationAlert);\n","import React, { useEffect, useState } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button } from '@edx/paragon';\nimport { AlertList } from '../../generic/user-messages';\n\nimport CourseDates from './widgets/CourseDates';\nimport CourseHandouts from './widgets/CourseHandouts';\nimport StartOrResumeCourseCard from './widgets/StartOrResumeCourseCard';\nimport WeeklyLearningGoalCard from './widgets/WeeklyLearningGoalCard';\nimport CourseTools from './widgets/CourseTools';\nimport { fetchOutlineTab } from '../data';\nimport messages from './messages';\nimport Section from './Section';\nimport ShiftDatesAlert from '../suggested-schedule-messaging/ShiftDatesAlert';\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\nconst OutlineTab = ({ intl }) => {\n const {\n courseId,\n proctoringPanelStatus,\n } = useSelector(state => state.courseHome);\n\n const {\n isSelfPaced,\n org,\n title,\n userTimezone,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n accessExpiration,\n courseBlocks: {\n courses,\n sections,\n },\n courseGoals: {\n selectedGoal,\n weeklyLearningGoalEnabled,\n } = {},\n datesBannerInfo,\n datesWidget: {\n courseDateBlocks,\n },\n enableProctoredExams,\n offer,\n timeOffsetMillis,\n verifiedMode,\n } = useModel('outline', courseId);\n\n const {\n marketingUrl,\n } = useModel('coursewareMeta', courseId);\n\n const [expandAll, setExpandAll] = useState(false);\n const navigate = useNavigate();\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\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 /** show post enrolment survey to only B2C learners */\n const learnerType = isEnterpriseUser() ? 'enterprise_learner' : 'b2c_learner';\n\n const location = useLocation();\n\n useEffect(() => {\n const currentParams = new URLSearchParams(location.search);\n const startCourse = currentParams.get('start_course');\n if (startCourse === '1') {\n sendTrackEvent('enrollment.email.clicked.startcourse', {});\n\n // Deleting the course_start query param as it only needs to be set once\n // whenever passed in query params.\n currentParams.delete('start_course');\n navigate({\n pathname: location.pathname,\n search: `?${currentParams.toString()}`,\n replace: true,\n });\n }\n }, [location.search]);\n\n return (\n <>\n
            \n
            \n
            {title}
            \n
            \n
            \n
            \n \n
            \n \n
            \n
            \n \n {isSelfPaced && hasDeadlines && (\n <>\n \n \n \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 { /** Defer showing the goal widget until the ProctoringInfoPanel has resolved or has been determined as\n disabled to avoid components bouncing around too much as screen is rendered */ }\n {(!enableProctoredExams || proctoringPanelStatus === 'loaded') && weeklyLearningGoalEnabled && (\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__ + \"d8d2ddd02a2781719fd303dc4b868ac0.gif\";","export default __webpack_public_path__ + \"8ecb9b1c7d41d7196375abdc97a53b4b.gif\";","export default __webpack_public_path__ + \"d0cc1158a1b3bd75bb785cd0d6e306c1.png\";","export default __webpack_public_path__ + \"50e380db78f1d321fe1ce5bacea07644.png\";","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\nconst 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\nconst Footnote = ({ icon, text }) => (\n
            \n

            \n  \n {text}\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 canImmediatelyViewCertificate = false,\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 && canImmediatelyViewCertificate) {\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 { canViewCertificate } = useModel('courseHomeMeta', courseId);\n const exitMode = getCourseExitMode(\n certificateData,\n hasScheduledContent,\n isEnrolled,\n userHasPassingGrade,\n courseExitPageIsActive,\n canViewCertificate,\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\nconst DashboardFootnote = ({ intl, variant }) => {\n const { courseId } = useSelector(state => state.courseware);\n const { org } = useModel('courseHomeMeta', 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\nconst UpgradeFootnote = ({ deadline, href, intl }) => {\n const { courseId } = useSelector(state => state.courseware);\n const { org } = useModel('courseHomeMeta', 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 description: 'Text email share button',\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\nconst SocialIcons = ({\n analyticsId,\n className,\n courseId,\n emailBody,\n emailSubject,\n hashtags,\n intl,\n socialMessage,\n}) => {\n const { marketingUrl } = useModel('coursewareMeta', courseId);\n\n const {\n org,\n title,\n } = useModel('courseHomeMeta', 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","/* 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 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\nconst CatalogSuggestion = ({ intl, variant }) => {\n const { courseId } = useSelector(state => state.courseware);\n const { org } = useModel('courseHomeMeta', 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, { 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
            \n \n );\n }\n}\n\nPageLoading.propTypes = {\n srMessage: PropTypes.node.isRequired,\n};\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport 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';\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 recommendationsCourseFooter: {\n id: 'courseCelebration.recommendations.label', // not very descriptive, but is historical\n description: 'Label on a discovery-card that lets a user know that it is a course card',\n defaultMessage: 'Course',\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\nconst 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 const subtitle = (\n {text => (\n <>\n {text}: \n {truncate(formattedOwners, 40, { reserveLastWord: -1 })}\n \n )}\n \n );\n\n return (\n \n \n \n \n \n {/* Section is needed for internal vertical spacing to work out. If you can remove, be my guest */}\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\nconst CourseRecommendations = ({ intl, variant }) => {\n const { courseId, recommendationsStatus } = useSelector(state => ({ ...state.recommendations, ...state.courseware }));\n const { recommendations } = useModel('coursewareMeta', courseId);\n const { org, number } = useModel('courseHomeMeta', courseId);\n const dispatch = useDispatch();\n\n const courseKey = `${org}+${number}`;\n const { administrator } = getAuthenticatedUser();\n\n useEffect(() => {\n dispatch(fetchCourseRecommendations(courseKey, courseId));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dispatch]);\n\n const recommendationsLength = recommendations ? recommendations.length : 0;\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: recommendationsLength,\n });\n }\n\n if (recommendationsStatus === FAILED || (recommendationsStatus === LOADED && recommendationsLength < 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 { 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 { 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 React, { useEffect, useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faLinkedinIn } from '@fortawesome/free-brands-svg-icons';\nimport {\n FormattedDate,\n FormattedMessage,\n injectIntl,\n intlShape,\n} from '@edx/frontend-platform/i18n';\nimport { Helmet } from 'react-helmet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n Alert,\n breakpoints,\n Button,\n Hyperlink,\n Modal,\n useWindowSize,\n} 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\nconst CourseCelebration = ({ intl }) => {\n const wideScreen = useWindowSize().width >= breakpoints.medium.minWidth;\n const { courseId } = useSelector(state => state.courseware);\n const dispatch = useDispatch();\n const {\n certificateData,\n end,\n linkedinAddToProfileUrl,\n marketingUrl,\n offer,\n relatedPrograms,\n title,\n verifyIdentityUrl,\n verificationStatus,\n } = useModel('coursewareMeta', courseId);\n\n const {\n org,\n verifiedMode,\n canViewCertificate,\n userTimezone,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n certStatus,\n certWebViewUrl,\n certificateAvailableDate,\n } = certificateData || {};\n\n const { administrator } = getAuthenticatedUser();\n\n const dashboardLink = ;\n const idVerificationSupportLink = ;\n const profileLink = ;\n const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};\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\n // State for handling processing message visibility\n const [isProcessing, setProcessing] = useState(false);\n // State for handling modal visibility\n const [isPopupVisible, setPopupVisible] = useState(false);\n\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 }\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 setProcessing(true); // Update state to show processing message\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 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 description=\"Body text when the learner needs to upgrade to earn a certifcate and they have passed the course\"\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 description=\"Shown if learner can use a discount code when they upgrade the course\"\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 if (!canViewCertificate) {\n // We reuse the cert event here. Since this default state is so\n // Similar to the earned_not_available state, this event name should be fine\n // to cover the same cases.\n visitEvent = 'celebration_with_unavailable_cert';\n certHeader = intl.formatMessage(messages.certificateHeaderNotAvailable);\n const endDate = intl.formatDate(end, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n ...timezoneFormatArgs,\n });\n message = (\n <>\n

            \n {intl.formatMessage(messages.certificateNotAvailableEndDateBody, { endDate })}\n

            \n

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

            \n \n );\n }\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 {!wideScreen && (\n \n )}\n {wideScreen && (\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

            \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 {/* Processing Message Modal */}\n setProcessing(false)}\n variant=\"default\"\n body={\n

            \n \n

            \n }\n footerNode={\n \n }\n />\n \n );\n};\n\nCourseCelebration.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(CourseCelebration);\n\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\nconst CourseInProgress = ({ intl }) => {\n const { courseId } = useSelector(state => state.courseware);\n const {\n org,\n tabs,\n title,\n } = useModel('courseHomeMeta', 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\nconst CourseNonPassing = ({ intl }) => {\n const { courseId } = useSelector(state => state.courseware);\n const {\n org,\n tabs,\n title,\n } = useModel('courseHomeMeta', 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 { Navigate } 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\nconst CourseExit = ({ intl }) => {\n const { courseId } = useSelector(state => state.courseware);\n const {\n certificateData,\n courseExitPageIsActive,\n courseGoals,\n enrollmentMode,\n hasScheduledContent,\n isEnrolled,\n userHasPassingGrade,\n } = useModel('coursewareMeta', courseId);\n\n const {\n isMasquerading,\n canViewCertificate,\n } = useModel('courseHomeMeta', courseId);\n\n const mode = getCourseExitMode(\n certificateData,\n hasScheduledContent,\n isEnrolled,\n userHasPassingGrade,\n courseExitPageIsActive,\n canViewCertificate,\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 description: 'Can be because internet connection or any technical other reason',\n },\n loading: {\n id: 'learning.loading',\n defaultMessage: 'Loading course page…',\n description: 'When content of the course is still loading...etc',\n },\n});\n\nexport default messages;\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';\nimport { useWindowSize } from '@edx/paragon';\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 // eslint-disable-next-line react-hooks/exhaustive-deps\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\nconst 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(\n indexOfOverflowStart,\n 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 );\n return wrappedChildren;\n }, [children, indexOfLastVisibleChild, invisibleStyle, overflowElementRef]);\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\nexport default Tabs;\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\nconst CourseTabsNavigation = ({\n activeTabSlug, className, tabs, intl,\n}) => (\n
            \n
            \n \n {tabs.map(({ url, title, slug }) => (\n \n {title}\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__ + \"b69837871e2ef32b6802932f909dd089.png\";","export default __webpack_public_path__ + \"1a0e59bbcf5275b2cf9957f81a555867.png\";","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n congratulations: {\n id: 'learning.streakCelebration.congratulations',\n defaultMessage: 'Congratulations!',\n description: 'Shown to learners when are using the learning app for X days in a row',\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 description: 'Text on the button which closes the celebration dialog',\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 {percent}% 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","/* eslint-disable react/prop-types */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { camelCaseObject, getConfig } from '@edx/frontend-platform';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';\nimport {\n FormattedMessage, injectIntl, intlShape,\n} from '@edx/frontend-platform/i18n';\nimport { Lightbulb, MoneyFilled } from '@edx/paragon/icons';\nimport {\n Alert, breakpoints, Icon, ModalDialog, Spinner, useWindowSize,\n} from '@edx/paragon';\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\nasync function calculateVoucherDiscount(voucher, sku, username) {\n const urlBase = `${getConfig().ECOMMERCE_BASE_URL}/api/v2/baskets/calculate`;\n const url = `${urlBase}/?code=${voucher}&sku=${sku}&username=${username}`;\n return getAuthenticatedHttpClient().get(url)\n .then(res => camelCaseObject(res));\n}\n\nconst CloseText = ({ intl }) => (\n \n {intl.formatMessage(messages.streakButton)}\n . {intl.formatMessage(messages.streakButtonSrOnly)}\n \n);\n\nconst StreakModal = ({\n courseId, metadataModel, streakLengthToCelebrate, intl, isStreakCelebrationOpen,\n closeStreakCelebration, streakDiscountCouponEnabled, verifiedMode, ...rest\n}) => {\n const { org, celebrations, username } = useModel('courseHomeMeta', 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 // Open edX Folks: if you create a voucher with this code, the MFE will notice and show the discount\n const discountCode = 'ZGY11119949';\n // Negative means \"we don't know yet\" vs zero meaning no discount available\n const [discountPercent, setDiscountPercent] = useState(-1);\n const queryingDiscount = discountPercent < 0;\n\n const wideScreen = useWindowSize().width >= breakpoints.small.minWidth;\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (isStreakCelebrationOpen) {\n recordStreakCelebration(org, courseId);\n }\n }, [isStreakCelebrationOpen, org, courseId]);\n\n // Ask ecommerce to calculate discount savings\n useEffect(() => {\n if (streakDiscountCouponEnabled && verifiedMode && getConfig().ECOMMERCE_BASE_URL) {\n calculateVoucherDiscount(discountCode, verifiedMode.sku, username)\n .then(\n (result) => {\n const { totalInclTax, totalInclTaxExclDiscounts } = result.data;\n if (totalInclTaxExclDiscounts && totalInclTax !== totalInclTaxExclDiscounts) {\n // Just store the percent (rather than using these values directly), because ecommerce doesn't give us\n // the currency symbol to use, so we want to use the symbol that LMS gives us. And I don't want to assume\n // ecommerce's currency is the same as the LMS. So we'll keep using the values in verifiedMode, just\n // multiplied by the calculated percentage.\n setDiscountPercent(1 - totalInclTax / totalInclTaxExclDiscounts);\n sendTrackEvent('edx.bi.course.streak_discount_enabled', {\n course_id: courseId,\n sku: verifiedMode.sku,\n });\n } else {\n setDiscountPercent(0);\n }\n },\n () => {\n // ignore any errors - we just won't show the discount to the user then\n setDiscountPercent(0);\n },\n );\n } else {\n setDiscountPercent(0);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [streakDiscountCouponEnabled, username, verifiedMode]);\n\n if (!isStreakCelebrationOpen) {\n return null;\n }\n\n let upgradeUrl;\n let mode;\n let offer;\n\n if (verifiedMode) {\n upgradeUrl = `${verifiedMode.upgradeUrl}`;\n mode = {\n currencySymbol: verifiedMode.currencySymbol,\n price: verifiedMode.price,\n upgradeUrl,\n };\n\n if (discountPercent > 0) {\n const discountMultipler = 1 - discountPercent;\n offer = {\n discountedPrice: `${verifiedMode.currencySymbol}${(mode.price * discountMultipler).toFixed(2).toString()}`,\n originalPrice: `${verifiedMode.currencySymbol}${mode.price.toString()}`,\n upgradeUrl: `${mode.upgradeUrl}&code=${discountCode}`,\n };\n }\n }\n\n const title = `${streakLengthToCelebrate} ${intl.formatMessage(messages.streakHeader)}`;\n const showOffer = offer && streakDiscountCouponEnabled;\n\n return (\n {\n closeStreakCelebration();\n recordModalClosing(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 {!wideScreen && \"\"}\n {wideScreen && \"\"}\n

            \n { queryingDiscount && (\n \n )}\n { !queryingDiscount && !showOffer && (\n
            \n \n
            \n {randomFactoid}\n
            \n
            \n )}\n { !queryingDiscount && showOffer && (\n \n
            \n \n
            \n {intl.formatMessage(messages.congratulations)}\n  {intl.formatMessage(messages.streakDiscountMessage, {\n percent: (discountPercent * 100).toFixed(0),\n })} \n \n
            \n
            \n
            \n )}\n
            \n \n { !queryingDiscount && showOffer && (\n <>\n {!wideScreen && (\n <>\n \n \n {intl.formatMessage(messages.streakButtonAA759)}\n \n \n )}\n {wideScreen && (\n <>\n \n \n {intl.formatMessage(messages.streakButtonAA759)}\n \n \n )}\n \n )}\n { !queryingDiscount && !showOffer && (\n \n )}\n \n \n );\n};\n\nStreakModal.defaultProps = {\n isStreakCelebrationOpen: false,\n streakDiscountCouponEnabled: false,\n streakLengthToCelebrate: -1,\n verifiedMode: {},\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 sku: PropTypes.string,\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(celebrations, org, courseId, dispatch) {\n // Ensure we only celebrate each streak once\n dispatch(updateModel({\n modelType: 'courseHomeMeta',\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 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 { 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 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 = useMemo(() => ({\n accessExpiration,\n courseId,\n org,\n userTimezone,\n analyticsPageName,\n }), [accessExpiration, analyticsPageName, courseId, org, userTimezone]);\n\n useAlert(isVisible, {\n code: 'clientAccessExpirationAlert',\n payload,\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 = useMemo(() => ({\n expirationDate,\n userTimezone,\n }), [expirationDate, userTimezone]);\n\n useAlert(isVisible, {\n code: 'clientAccessExpirationMasqueradeBanner',\n payload,\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 { 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\nconst 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 // eslint-disable-next-line react-hooks/exhaustive-deps\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 tab,\n } = props;\n\n const urlInsights = getInsightsUrl(courseId);\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 {(urlStudio || urlInsights) && (\n <>\n
            \n View course in:\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 tab: PropTypes.string,\n};\n\nInstructorToolbar.defaultProps = {\n courseId: undefined,\n unitId: undefined,\n tab: '',\n};\n\nexport default InstructorToolbar;\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 = useMemo(() => ({\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 }), [course, courseId, outline]);\n\n useAlert(isVisible, {\n code: 'clientEnrollmentAlert',\n payload,\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 { FormattedMessage } from '@edx/frontend-platform/i18n';\n\nexport const DismissButtonFormattedMessage = () => (\n \n);\n\nexport const NextButtonFormattedMessage = () => (\n \n);\n\nexport const OkayButtonFormattedMessage = () => (\n \n);\n","import React from 'react';\nimport { FormattedMessage } from '@edx/frontend-platform/i18n';\n\nimport { OkayButtonFormattedMessage } from './GenericTourFormattedMessages';\n\nconst abandonTour = ({ enabled, onEnd }) => ({\n checkpoints: [{\n body: ,\n placement: 'left',\n target: '#courseHome-launchTourLink',\n }],\n enabled,\n endButtonText: ,\n onEnd,\n onEscape: onEnd,\n tourId: 'abandonTour',\n});\n\nexport default abandonTour;\n","import React from 'react';\nimport { FormattedMessage } from '@edx/frontend-platform/i18n';\n\nimport { OkayButtonFormattedMessage } from './GenericTourFormattedMessages';\n\nconst coursewareTour = ({ enabled, onEnd }) => ({\n checkpoints: [{\n body: ,\n placement: 'bottom',\n target: '#courseware-sequenceNavigation',\n }],\n enabled,\n endButtonText: ,\n onEnd,\n onEscape: onEnd,\n tourId: 'coursewareTour',\n});\n\nexport default coursewareTour;\n","import React from 'react';\nimport { FormattedMessage } from '@edx/frontend-platform/i18n';\n\nimport { OkayButtonFormattedMessage } from './GenericTourFormattedMessages';\n\nconst existingUserCourseHomeTour = ({ enabled, onEnd }) => ({\n checkpoints: [{\n body: ,\n placement: 'left',\n target: '#courseHome-launchTourLink',\n }],\n enabled,\n endButtonText: ,\n onEnd,\n onEscape: onEnd,\n tourId: 'existingUserCourseHomeTour',\n});\n\nexport default existingUserCourseHomeTour;\n","import React from 'react';\nimport { FormattedMessage } from '@edx/frontend-platform/i18n';\nimport {\n DismissButtonFormattedMessage,\n NextButtonFormattedMessage,\n OkayButtonFormattedMessage,\n} from '../GenericTourFormattedMessages';\n\nconst datesCheckpoint = {\n body: ,\n placement: 'left',\n target: '#courseHome-dates',\n title: ,\n};\n\nconst outlineCheckpoint = {\n body: ,\n placement: 'top',\n target: '#courseHome-outline',\n title: ,\n};\n\nconst tabNavigationCheckpoint = {\n body: ,\n placement: 'bottom',\n target: '#courseTabsNavigation',\n title: ,\n};\n\nconst upgradeCheckpoint = {\n body: ,\n placement: 'left',\n target: '#courseHome-upgradeNotification',\n title: ,\n};\n\nconst weeklyGoalsCheckpoint = {\n body: ,\n placement: 'left',\n target: '#courseHome-weeklyLearningGoal',\n title: ,\n};\n\nconst newUserCourseHomeTour = ({\n enabled,\n onDismiss,\n onEnd,\n}) => ({\n advanceButtonText: ,\n checkpoints: [\n outlineCheckpoint,\n datesCheckpoint,\n tabNavigationCheckpoint,\n upgradeCheckpoint,\n weeklyGoalsCheckpoint,\n ],\n dismissButtonText: ,\n enabled,\n endButtonText: ,\n onDismiss,\n onEnd,\n onEscape: onDismiss,\n tourId: 'newUserCourseHomeTour',\n});\n\nexport default newUserCourseHomeTour;\n","export default __webpack_public_path__ + \"2649294b11a63f2f74a0e594104f2722.png\";","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { getConfig } from '@edx/frontend-platform';\nimport { injectIntl, intlShape, FormattedMessage } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow, Button, MarketingModal, ModalDialog,\n} from '@edx/paragon';\n\nimport heroImage from './course_home_tour_modal_hero.png';\nimport messages from '../messages';\n\nconst NewUserCourseHomeTourModal = ({\n intl,\n isOpen,\n onDismiss,\n onStartTour,\n}) => (\n \n \n \n \n {intl.formatMessage(messages.newUserModalTitleWelcome)},\n }}\n />\n \n \n \n )}\n footerNode={(\n \n \n {intl.formatMessage(messages.skipForNow)}\n \n \n {intl.formatMessage(messages.beginTour)}\n \n \n )}\n onClose={onDismiss}\n >\n

            {intl.formatMessage(messages.newUserModalBody, { siteName: getConfig().SITE_NAME })}

            \n \n);\n\nNewUserCourseHomeTourModal.propTypes = {\n intl: intlShape.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onDismiss: PropTypes.func.isRequired,\n onStartTour: PropTypes.func.isRequired,\n};\n\nexport default injectIntl(NewUserCourseHomeTourModal);\n","import { camelCaseObject, getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';\n\nexport async function getTourData(username) {\n const url = `${getConfig().LMS_BASE_URL}/api/user_tours/v1/${username}`;\n try {\n const { data } = await getAuthenticatedHttpClient().get(url);\n return { toursEnabled: true, ...camelCaseObject(data) };\n } catch (error) {\n const { httpErrorStatus } = error && error.customAttributes;\n /** The API will return a\n * 401 if the user is not authenticated\n * 403 if the tour waffle flag is inactive\n * 404 if no User Tour objects exist for the given username\n */\n if (httpErrorStatus === 401 || httpErrorStatus === 403 || httpErrorStatus === 404) {\n return { toursEnabled: false };\n }\n throw error;\n }\n}\n\nexport async function patchTourData(username, tourData) {\n const url = `${getConfig().LMS_BASE_URL}/api/user_tours/v1/${username}`;\n return getAuthenticatedHttpClient().patch(url, tourData);\n}\n","import { logError } from '@edx/frontend-platform/logging';\n\nimport { getTourData, patchTourData } from './api';\nimport {\n disableCourseHomeTour,\n disableCoursewareTour,\n disableNewUserCourseHomeModal,\n setTourData,\n} from './slice';\n\nexport function closeNewUserCourseHomeModal() {\n return async (dispatch) => dispatch(disableNewUserCourseHomeModal());\n}\n\nexport function endCourseHomeTour(username) {\n return async (dispatch) => {\n try {\n await patchTourData(username, {\n course_home_tour_status: 'no-tour',\n });\n dispatch(disableCourseHomeTour());\n } catch (error) {\n logError(error);\n }\n };\n}\n\nexport function endCoursewareTour(username) {\n return async (dispatch) => {\n try {\n await patchTourData(username, {\n show_courseware_tour: false,\n });\n dispatch(disableCoursewareTour());\n } catch (error) {\n logError(error);\n }\n };\n}\n\nexport function fetchTourData(username) {\n return async (dispatch) => {\n try {\n const data = await getTourData(username);\n dispatch(setTourData(data));\n } catch (error) {\n logError(error);\n }\n };\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { ProductTour } from '@edx/paragon';\n\nimport abandonTour from './AbandonTour';\nimport coursewareTour from './CoursewareTour';\nimport existingUserCourseHomeTour from './ExistingUserCourseHomeTour';\nimport newUserCourseHomeTour from './newUserCourseHomeTour/NewUserCourseHomeTour';\nimport NewUserCourseHomeTourModal from './newUserCourseHomeTour/NewUserCourseHomeTourModal';\nimport {\n closeNewUserCourseHomeModal,\n endCourseHomeTour,\n endCoursewareTour,\n fetchTourData,\n} from './data';\n\nconst ProductTours = ({\n activeTab,\n courseId,\n isStreakCelebrationOpen,\n org,\n}) => {\n const {\n proctoringPanelStatus,\n } = useSelector(state => state.courseHome);\n\n const {\n showCoursewareTour,\n showExistingUserCourseHomeTour,\n showNewUserCourseHomeModal,\n showNewUserCourseHomeTour,\n } = useSelector(state => state.tours);\n\n const [isAbandonTourEnabled, setIsAbandonTourEnabled] = useState(false);\n const [isCoursewareTourEnabled, setIsCoursewareTourEnabled] = useState(false);\n const [isExistingUserCourseHomeTourEnabled, setIsExistingUserCourseHomeTourEnabled] = useState(false);\n const [isNewUserCourseHomeTourEnabled, setIsNewUserCourseHomeTourEnabled] = useState(false);\n\n const dispatch = useDispatch();\n const {\n administrator,\n username,\n } = getAuthenticatedUser() || {};\n const isCoursewareTab = activeTab === 'courseware';\n const isOutlineTab = activeTab === 'outline';\n\n useEffect(() => {\n const isOutlineTabResolved = isOutlineTab && proctoringPanelStatus === 'loaded';\n const userIsAuthenticated = !!username;\n\n // Tours currently only exist on the Outline Tab and within Courseware, so we'll avoid\n // calling the tour endpoint unnecessarily.\n if (userIsAuthenticated && (isCoursewareTab || isOutlineTabResolved)) {\n dispatch(fetchTourData(username));\n }\n }, [proctoringPanelStatus]);\n\n useEffect(() => {\n if (isCoursewareTab && showCoursewareTour) {\n setIsCoursewareTourEnabled(true);\n }\n }, [showCoursewareTour]);\n\n useEffect(() => {\n if (isOutlineTab) {\n setIsExistingUserCourseHomeTourEnabled(!!showExistingUserCourseHomeTour);\n }\n }, [showExistingUserCourseHomeTour]);\n\n useEffect(() => {\n if (isOutlineTab && showNewUserCourseHomeTour) {\n setIsAbandonTourEnabled(false);\n setIsNewUserCourseHomeTourEnabled(true);\n }\n }, [showNewUserCourseHomeTour]);\n\n if (isStreakCelebrationOpen) {\n return null;\n }\n\n // The component cannot handle rendering multiple enabled tours at once.\n // I.e. when adding new tours, beware that if multiple tours are enabled,\n // the first enabled tour in the following array will be the only one that renders.\n // The suggestion for populating these tour objects is to ensure only one tour is enabled at a time.\n const tours = [\n abandonTour({\n enabled: isAbandonTourEnabled,\n onEnd: () => setIsAbandonTourEnabled(false),\n }),\n coursewareTour({\n enabled: isCoursewareTourEnabled,\n onEnd: () => {\n setIsCoursewareTourEnabled(false);\n sendTrackEvent('edx.ui.lms.courseware_tour.completed', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n });\n dispatch(endCoursewareTour(username));\n },\n }),\n existingUserCourseHomeTour({\n enabled: isExistingUserCourseHomeTourEnabled,\n onEnd: () => {\n setIsExistingUserCourseHomeTourEnabled(false);\n sendTrackEvent('edx.ui.lms.existing_user_tour.completed', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n });\n dispatch(endCourseHomeTour(username));\n },\n }),\n newUserCourseHomeTour({\n enabled: isNewUserCourseHomeTourEnabled,\n onDismiss: () => {\n setIsNewUserCourseHomeTourEnabled(false);\n setIsAbandonTourEnabled(true);\n sendTrackEvent('edx.ui.lms.new_user_tour.dismissed', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n });\n dispatch(endCourseHomeTour(username));\n dispatch(endCoursewareTour(username));\n },\n onEnd: () => {\n setIsNewUserCourseHomeTourEnabled(false);\n sendTrackEvent('edx.ui.lms.new_user_tour.completed', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n });\n dispatch(endCourseHomeTour(username));\n },\n }),\n ];\n\n return (\n <>\n \n {\n sendTrackEvent('edx.ui.lms.new_user_modal.dismissed', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n });\n dispatch(closeNewUserCourseHomeModal());\n setIsAbandonTourEnabled(true);\n dispatch(endCourseHomeTour(username));\n }}\n onStartTour={() => {\n sendTrackEvent('edx.ui.lms.new_user_tour.started', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n });\n dispatch(closeNewUserCourseHomeModal());\n setIsNewUserCourseHomeTourEnabled(true);\n }}\n />\n \n );\n};\n\nProductTours.propTypes = {\n activeTab: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n isStreakCelebrationOpen: PropTypes.bool.isRequired,\n org: PropTypes.string.isRequired,\n};\n\nexport default ProductTours;\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\nimport ProductTours from '../product-tours/ProductTours';\n\nconst LoadedTabPage = ({\n activeTabSlug,\n children,\n courseId,\n metadataModel,\n unitId,\n}) => {\n const {\n celebrations,\n org,\n originalUserIsStaff,\n tabs,\n title,\n verifiedMode,\n } = useModel('courseHomeMeta', 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 \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 { Navigate } from 'react-router-dom';\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 LoadedTabPage from './LoadedTabPage';\nimport { setCallToActionToast } from '../course-home/data/slice';\nimport LaunchCourseHomeTourButton from '../product-tours/newUserCourseHomeTour/LaunchCourseHomeTourButton';\n\nconst TabPage = ({ intl, ...props }) => {\n const {\n activeTabSlug,\n courseId,\n courseStatus,\n metadataModel,\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('courseHomeMeta', courseId);\n\n if (courseStatus === 'denied') {\n const redirectUrl = getAccessDeniedRedirectUrl(courseId, activeTabSlug, courseAccess, start);\n if (redirectUrl) {\n return ();\n }\n }\n\n return (\n <>\n {['loaded', 'denied'].includes(courseStatus) && (\n <>\n dispatch(setCallToActionToast({ header: '', link: null, link_text: null }))}\n show={!!(toastHeader)}\n >\n {toastHeader}\n \n {metadataModel === 'courseHomeMeta' && ()}\n \n )}\n\n
            \n\n {courseStatus === 'loading' && (\n \n )}\n\n {['loaded', 'denied'].includes(courseStatus) && (\n \n )}\n\n {/* courseStatus 'failed' and any other unexpected course status. */}\n {(!['loading', 'loaded', 'denied'].includes(courseStatus)) && (\n

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

            \n )}\n