{"version":3,"file":"app.af7cb5b971e11ad4073a.js","mappings":"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","sources":["webpack://@edx/frontend-app-learner-dashboard/./src/utils/StrictDict.js","webpack://@edx/frontend-app-learner-dashboard/./src/utils/dateFormatter.js","webpack://@edx/frontend-app-learner-dashboard/./src/utils/index.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/constants/requests.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/redux/app/reducer.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/redux/app/selectors/simpleSelectors.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/redux/app/selectors/appSelectors.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/services/lms/urls.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/constants/course.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/redux/app/selectors/courseCard.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/constants/app.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/redux/app/selectors/currentList.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/redux/app/selectors/index.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/redux/requests/reducer.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/redux/requests/selectors.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/redux/index.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/services/lms/fakeData/testUtils.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/store.js","webpack://@edx/frontend-app-learner-dashboard/./src/config/index.js","webpack://@edx/frontend-app-learner-dashboard/./src/i18n/index.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/redux/hooks/app.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/redux/hooks/requests.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/services/lms/utils.js","webpack://@edx/frontend-app-learner-dashboard/./src/tracking/constants.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/services/lms/constants.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/services/lms/api.js","webpack://@edx/frontend-app-learner-dashboard/./src/hooks/api.js","webpack://@edx/frontend-app-learner-dashboard/./src/hooks/utils.js","webpack://@edx/frontend-app-learner-dashboard/./src/hooks/index.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/EnterpriseDashboardModal/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/services/segment/utils.js","webpack://@edx/frontend-app-learner-dashboard/./src/tracking/trackers/course.js","webpack://@edx/frontend-app-learner-dashboard/./src/tracking/trackers/credit.js","webpack://@edx/frontend-app-learner-dashboard/./src/tracking/trackers/engagement.js","webpack://@edx/frontend-app-learner-dashboard/./src/tracking/trackers/filter.js","webpack://@edx/frontend-app-learner-dashboard/./src/tracking/index.js","webpack://@edx/frontend-app-learner-dashboard/./src/tracking/trackers/enterpriseDashboard.js","webpack://@edx/frontend-app-learner-dashboard/./src/tracking/trackers/entitlements.js","webpack://@edx/frontend-app-learner-dashboard/./src/tracking/trackers/socialShare.js","webpack://@edx/frontend-app-learner-dashboard/./src/tracking/trackers/findCourses.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/EnterpriseDashboardModal/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/EnterpriseDashboardModal/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/SelectSessionModal/constants.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/SelectSessionModal/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/SelectSessionModal/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/SelectSessionModal/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseFilterControls/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseFilterControls/components/Checkbox.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseFilterControls/components/FilterForm.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseFilterControls/components/SortForm.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseFilterControls/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseFilterControls/CourseFilterControls.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseFilterControls/ActiveCourseFilters.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/components/Banner.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CourseBanner.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CertificateBanner.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditRequestForm/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditRequestForm/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditContent.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/ProviderLink.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/ApprovedContent.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/EligibleContent.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/RejectedContent.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/CreditBanner/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/EntitlementBanner.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/ProgramsList.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardBanners/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/assets/verified-ribbon.png","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardImage.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/EmailSettingsModal/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/EmailSettingsModal/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/EmailSettingsModal/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/UnenrollConfirmModal/components/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/UnenrollConfirmModal/components/ConfirmPane.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/UnenrollConfirmModal/constants.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/UnenrollConfirmModal/components/ReasonPane.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/UnenrollConfirmModal/components/FinishedPane.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/UnenrollConfirmModal/hooks/reasons.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/UnenrollConfirmModal/hooks/index.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/UnenrollConfirmModal/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardMenu/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardMenu/SocialShareMenu.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardMenu/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardMenu/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardActions/ActionButton/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardActions/ActionButton/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardActions/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardActions/UpgradeButton.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardActions/SelectSessionButton.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardActions/BeginCourseButton.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardActions/ResumeButton.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardActions/ViewCourseButton.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardActions/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardDetails/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardDetails/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardDetails/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/components/CourseCardTitle.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseCard/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/assets/empty-course.svg","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseList/NoCoursesView/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseList/NoCoursesView/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseList/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseList/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/CourseList/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/assets/more-courses-sidewidget.svg","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPanel/track.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/LookingForChallengeWidget/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/LookingForChallengeWidget/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/Dashboard/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPanel/LoadingView.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPanel/components/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPanel/components/CourseCard.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPanel/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPaintedDoorBtn/track.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPaintedDoorBtn/PaintedDoorExperimentContext.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPaintedDoorBtn/constants.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPaintedDoorBtn/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPaintedDoorBtn/components/NavbarButton.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPaintedDoorBtn/components/PaintedDoorModal/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPaintedDoorBtn/components/PaintedDoorModal/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPaintedDoorBtn/components/RecommendationsPanelButton.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPaintedDoorBtn/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPanel/LoadedView.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPanel/testData.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPanel/api.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPanel/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/RecommendationsPanel/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/ExperimentContext.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/api.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/constants.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/optimizely.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/optimizelyExperiment.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/utils.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/track.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/WidgetContainers/LoadedSidebar/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/WidgetContainers/NoCoursesSidebar/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/Dashboard/LoadingView.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/components/LoadingView.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/components/ProductCard.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/components/ProductCardHeader.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/components/ProductCardContainer.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/components/LoadedView.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/widgets/ProductRecommendations/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/WidgetContainers/WidgetFooter/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/Dashboard/DashboardLayout.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/Dashboard/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/components/ZendeskFab/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/components/ZendeskFab/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/data/constants/credit.js","webpack://@edx/frontend-app-learner-dashboard/./src/data/services/lms/fakeData/courses.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/WidgetContainers/AppWrapper/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/MasqueradeBar/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/MasqueradeBar/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/MasqueradeBar/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/assets/confirm-email.svg","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/ConfirmEmailBanner/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/ConfirmEmailBanner/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/ConfirmEmailBanner/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/WidgetContainers/WidgetNavbar/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/messages.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/CollapsedHeader/CollapseMenuBody.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/logo_new1.svg","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/BrandLogo.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/CollapsedHeader/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/ExpandedHeader/utils.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/ExpandedHeader/services.js","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/ExpandedHeader/AuthenticatedUserDropdown.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/ExpandedHeader/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/containers/LearnerDashboardHeader/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/App.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/components/NoticesWrapper/api.js","webpack://@edx/frontend-app-learner-dashboard/./src/components/NoticesWrapper/hooks.js","webpack://@edx/frontend-app-learner-dashboard/./src/components/NoticesWrapper/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./src/index.jsx","webpack://@edx/frontend-app-learner-dashboard/./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["/* eslint-disable no-console */\nconst strictGet = (target, name) => {\n if (name === Symbol.toStringTag) {\n return target;\n }\n\n if (name === '$$typeof') {\n return typeof target;\n }\n\n if (name in target || name === '_reactFragment') {\n return target[name];\n }\n\n console.log(name.toString());\n console.error({ target, name });\n const e = Error(`invalid property \"${name.toString()}\"`);\n console.error(e.stack);\n return undefined;\n};\n\nconst StrictDict = (dict) => new Proxy(dict, { get: strictGet });\n\nexport default StrictDict;\n","import moment from 'moment';\n\nexport const dateFormatter = (formatDate, date) => formatDate(moment(date).toDate(), {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n});\n\nexport default dateFormatter;\n","export const nullMethod = () => ({});\n\nexport { default as StrictDict } from './StrictDict';\nexport { default as keyStore } from './keyStore';\nexport { default as dateFormatter } from './dateFormatter';\n","import { StrictDict } from 'utils';\n\nexport const RequestStates = StrictDict({\n inactive: 'inactive',\n pending: 'pending',\n completed: 'completed',\n failed: 'failed',\n});\n\nexport const RequestKeys = StrictDict({\n initialize: 'initialize',\n refreshList: 'refreshList',\n newEntitlementEnrollment: 'newEntitlementEnrollment',\n leaveEntitlementEnrollment: 'leaveEntitlementEnrollment',\n switchEntitlementSession: 'switchEntitlementSession',\n unenrollFromCourse: 'unenrollFromCourse',\n updateEmailSettings: 'updateEmailSettings',\n enrollEntitlementSession: 'enrollEntitlementSession',\n leaveEntitlementSession: 'leaveEntitlementSession',\n masquerade: 'masquerade',\n recommendedCourses: 'recommendedCourses',\n});\n\nexport const ErrorCodes = StrictDict({\n missingParam: 'ERR_MISSING_PARAM',\n});\n\nexport const ErrorStatuses = StrictDict({\n badRequest: 400,\n unauthorized: 401,\n forbidden: 403,\n notFound: 404,\n conflict: 409,\n serverError: 500,\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nimport { StrictDict } from 'utils';\n\nconst initialState = {\n pageNumber: 1,\n courseData: {},\n entitlement: [],\n emailConfirmation: {},\n enterpriseDashboard: {},\n platformSettings: {},\n suggestedCourses: [],\n filterState: {},\n selectSessionModal: {},\n};\n\nexport const cardId = (val) => `card-${val}`;\n\nexport const today = Date.now();\n\n// eslint-disable-next-line no-unused-vars\nconst app = createSlice({\n name: 'app',\n initialState,\n reducers: {\n loadCourses: (state, { payload: { courses } }) => ({\n ...state,\n courseData: courses.reduce(\n (obj, curr, index) => {\n const out = { ...curr, cardId: cardId(index) };\n if (out.enrollment.lastEnrolled === null) {\n out.enrollment.lastEnrolled = today;\n }\n return { ...obj, [cardId(index)]: out };\n },\n {},\n ),\n }),\n loadGlobalData: (state, { payload }) => ({\n ...state,\n emailConfirmation: payload.emailConfirmation,\n enterpriseDashboard: payload.enterpriseDashboard,\n platformSettings: payload.platformSettings,\n suggestedCourses: payload.suggestedCourses,\n socialShareSettings: payload.socialShareSettings,\n }),\n updateSelectSessionModal: (state, { payload }) => ({\n ...state,\n selectSessionModal: { cardId: payload },\n }),\n setPageNumber: (state, { payload }) => ({ ...state, pageNumber: payload }),\n },\n});\n\nconst actions = StrictDict(app.actions);\n\nconst { reducer } = app;\n\nexport {\n actions,\n initialState,\n reducer,\n};\n","import { createSelector } from 'reselect';\nimport { StrictDict } from 'utils';\n\nimport * as module from './simpleSelectors';\n\nexport const appSelector = (state) => state.app;\nconst mkSimpleSelector = (cb) => createSelector([module.appSelector], cb);\n\n// top-level app data selectors\nexport const simpleSelectors = StrictDict({\n courseData: mkSimpleSelector(app => app.courseData),\n platformSettings: mkSimpleSelector(app => app.platformSettings),\n suggestedCourses: mkSimpleSelector(app => app.suggestedCourses),\n emailConfirmation: mkSimpleSelector(app => app.emailConfirmation),\n enterpriseDashboard: mkSimpleSelector(app => app.enterpriseDashboard || {}),\n selectSessionModal: mkSimpleSelector(app => app.selectSessionModal),\n pageNumber: mkSimpleSelector(app => app.pageNumber),\n socialShareSettings: mkSimpleSelector(app => app.socialShareSettings),\n});\n\nexport const cardSimpleSelectors = StrictDict({\n certificate: ({ certificate }) => certificate,\n course: ({ course }) => course,\n courseProvider: ({ courseProvider }) => courseProvider,\n courseRun: ({ courseRun }) => courseRun,\n credit: ({ credit }) => credit,\n enrollment: ({ enrollment }) => enrollment,\n entitlement: ({ entitlement }) => entitlement,\n gradeData: ({ gradeData }) => gradeData,\n relatedPrograms: ({ programs: { relatedPrograms } }) => relatedPrograms,\n});\n\nexport const mkCardSelector = (simpleSelector, selector) => (state, cardId) => (\n selector(simpleSelector(module.simpleSelectors.courseData(state)[cardId]))\n);\n\nexport default simpleSelectors;\n","import { createSelector } from 'reselect';\n\nimport { StrictDict } from 'utils';\n\nimport simpleSelectors from './simpleSelectors';\nimport * as module from './appSelectors';\n\nexport const numCourses = createSelector(\n [simpleSelectors.courseData],\n (courseData) => Object.keys(courseData).length,\n);\nexport const hasCourses = createSelector([module.numCourses], (num) => num > 0);\nexport const hasAvailableDashboards = createSelector(\n [simpleSelectors.enterpriseDashboard],\n (data) => data !== null && data.isLearnerPortalEnabled === true,\n);\nexport const showSelectSessionModal = createSelector(\n [simpleSelectors.selectSessionModal],\n (data) => data.cardId != null,\n);\n\nexport default StrictDict({\n numCourses,\n hasCourses,\n hasAvailableDashboards,\n showSelectSessionModal,\n});\n","import { StrictDict } from 'utils';\n\nimport { getConfig } from '@edx/frontend-platform';\n\nexport const getEcommerceUrl = () => getConfig().ECOMMERCE_BASE_URL;\n\nconst getBaseUrl = () => getConfig().LMS_BASE_URL;\n\nexport const getApiUrl = () => (`${getConfig().LMS_BASE_URL}/api`);\n\nconst getInitApiUrl = () => (`${getApiUrl()}/learner_home/init`);\n\nconst event = () => `${getBaseUrl()}/event`;\nconst courseUnenroll = () => `${getBaseUrl()}/change_enrollment`;\nconst updateEmailSettings = () => `${getApiUrl()}/change_email_settings`;\nconst entitlementEnrollment = (uuid) => `${getApiUrl()}/entitlements/v1/entitlements/${uuid}/enrollments`;\n\n// if url is null or absolute, return it as is\nexport const updateUrl = (base, url) => ((url == null || url.startsWith('http://') || url.startsWith('https://')) ? url : `${base}${url}`);\n\nexport const baseAppUrl = (url) => updateUrl(getBaseUrl(), url);\nexport const learningMfeUrl = (url) => updateUrl(getConfig().LEARNING_BASE_URL, url);\n\n// static view url\nconst programsUrl = () => baseAppUrl('/dashboard/programs');\n\nexport const creditPurchaseUrl = (courseId) => `${getEcommerceUrl()}/credit/checkout/${courseId}/`;\nexport const creditRequestUrl = (providerId) => `${getApiUrl()}/credit/v1/providers/${providerId}/request/`;\n\nexport default StrictDict({\n getApiUrl,\n baseAppUrl,\n courseUnenroll,\n creditPurchaseUrl,\n creditRequestUrl,\n entitlementEnrollment,\n event,\n getInitApiUrl,\n learningMfeUrl,\n programsUrl,\n updateEmailSettings,\n});\n","// Constants related to courses\nexport const COURSE_MODES = {\n VERIFIED: 'verified',\n PROFESSIONAL: 'professional',\n NO_ID_PROFESSIONAL: 'no-id-professional',\n AUDIT: 'audit',\n HONOR: 'honor',\n EXECUTIVE_EDUCATION: 'executive-education',\n PAID_EXECUTIVE_EDUCATION: 'paid-executive-education',\n UNPAID_EXECUTIVE_EDUCATION: 'unpaid-executive-education',\n};\n\nexport const EXECUTIVE_EDUCATION_COURSE_MODES = [\n COURSE_MODES.EXECUTIVE_EDUCATION,\n COURSE_MODES.PAID_EXECUTIVE_EDUCATION,\n COURSE_MODES.UNPAID_EXECUTIVE_EDUCATION,\n];\n","import { StrictDict } from 'utils';\nimport { baseAppUrl } from 'data/services/lms/urls';\nimport { EXECUTIVE_EDUCATION_COURSE_MODES } from 'data/constants/course';\n\nimport * as module from './courseCard';\nimport * as simpleSelectors from './simpleSelectors';\n\nconst { cardSimpleSelectors, mkCardSelector } = simpleSelectors;\n\nconst today = new Date();\nconst dateSixMonthsFromNow = new Date();\ndateSixMonthsFromNow.setDate(dateSixMonthsFromNow.getDate() + 180);\n\nexport const loadDateVal = (date) => (date ? new Date(date) : null);\n\nexport const courseCard = StrictDict({\n certificate: mkCardSelector(\n cardSimpleSelectors.certificate,\n (certificate) => (certificate === null ? {} : ({\n availableDate: new Date(certificate.availableDate),\n certPreviewUrl: baseAppUrl(certificate.certPreviewUrl),\n isDownloadable: certificate.isDownloadable,\n isEarnedButUnavailable: certificate.isEarned && new Date(certificate.availableDate) > new Date(),\n isRestricted: certificate.isRestricted,\n isEarned: certificate.isEarned,\n })),\n ),\n course: mkCardSelector(\n cardSimpleSelectors.course,\n (course) => ({\n bannerImgSrc: baseAppUrl(course.bannerImgSrc),\n courseNumber: course.courseNumber,\n courseName: course.courseName,\n socialShareUrl: course.socialShareUrl,\n }),\n ),\n courseProvider: mkCardSelector(\n cardSimpleSelectors.courseProvider,\n (courseProvider) => ({ name: courseProvider?.name }),\n ),\n courseRun: mkCardSelector(\n cardSimpleSelectors.courseRun,\n (courseRun) => (courseRun === null ? {} : {\n endDate: module.loadDateVal(courseRun.endDate),\n startDate: module.loadDateVal(courseRun.startDate),\n\n courseId: courseRun.courseId,\n isArchived: courseRun.isArchived,\n isStarted: courseRun.isStarted,\n\n minPassingGrade: Math.floor(courseRun.minPassingGrade * 100),\n\n homeUrl: courseRun.homeUrl,\n marketingUrl: courseRun.marketingUrl,\n upgradeUrl: courseRun.upgradeUrl,\n\n progressUrl: baseAppUrl(courseRun.progressUrl),\n resumeUrl: baseAppUrl(courseRun.resumeUrl), // resume will route this to learning mfe.\n unenrollUrl: baseAppUrl(courseRun.unenrollUrl),\n }),\n ),\n credit: mkCardSelector(\n cardSimpleSelectors.credit,\n (credit) => {\n if (!credit || Object.keys(credit).length === 0) {\n return { isEligible: false };\n }\n return {\n isEligible: true,\n providerStatusUrl: credit.providerStatusUrl,\n providerName: credit.providerName,\n providerId: credit.providerId,\n error: credit.error,\n purchased: credit.purchased,\n requestStatus: credit.requestStatus,\n };\n },\n ),\n enrollment: mkCardSelector(\n cardSimpleSelectors.enrollment,\n (enrollment) => {\n if (enrollment == null) {\n return { isEnrolled: false };\n }\n const { isStaff, hasUnmetPrereqs, isTooEarly } = enrollment.coursewareAccess;\n return {\n coursewareAccess: enrollment.coursewareAccess,\n hasAccess: isStaff || !(hasUnmetPrereqs || isTooEarly),\n isEnrolled: enrollment.isEnrolled,\n lastEnrolled: enrollment.lastEnrolled,\n hasStarted: enrollment.hasStarted,\n\n accessExpirationDate: module.loadDateVal(enrollment.accessExpirationDate),\n canUpgrade: enrollment.canUpgrade,\n isAudit: enrollment.isAudit,\n isAuditAccessExpired: enrollment.isAuditAccessExpired,\n isVerified: enrollment.isVerified,\n\n isEmailEnabled: enrollment.isEmailEnabled,\n hasOptedOutOfEmail: enrollment.hasOptedOutOfEmail,\n mode: enrollment.mode,\n isExecEd2UCourse: EXECUTIVE_EDUCATION_COURSE_MODES.includes(enrollment.mode),\n };\n },\n ),\n entitlement: mkCardSelector(\n cardSimpleSelectors.entitlement,\n (entitlement) => {\n if (!entitlement || Object.keys(entitlement).length === 0) {\n return { isEntitlement: false };\n }\n const deadline = new Date(entitlement.changeDeadline);\n const deadlinePassed = deadline < today;\n const showExpirationWarning = (\n !entitlement.isFulfilled\n && !deadlinePassed\n && deadline <= dateSixMonthsFromNow\n );\n return {\n isEntitlement: true,\n\n availableSessions: entitlement.availableSessions,\n changeDeadline: deadline,\n isExpired: entitlement.isExpired,\n isFulfilled: entitlement.isFulfilled,\n uuid: entitlement.uuid,\n\n hasSessions: entitlement.availableSessions?.length > 0,\n canChange: !deadlinePassed,\n showExpirationWarning,\n };\n },\n ),\n gradeData: mkCardSelector(\n cardSimpleSelectors.gradeData,\n (gradeData) => ({ isPassing: gradeData.isPassing }),\n ),\n relatedPrograms: mkCardSelector(\n cardSimpleSelectors.relatedPrograms,\n (relatedPrograms) => ({\n list: relatedPrograms.map(program => ({\n bannerImgSrc: program.bannerImgSrc,\n logoImgSrc: program.logoImgSrc,\n numberOfCourses: program.numberOfCourses,\n programType: program.programType,\n programUrl: program.programUrl,\n provider: program.provider,\n title: program.title,\n })),\n length: relatedPrograms.length,\n }),\n ),\n});\n\nexport default courseCard;\n","import { getConfig } from '@edx/frontend-platform';\nimport { StrictDict } from 'utils';\n\nexport const routePath = `${getConfig().PUBLIC_PATH}:courseId`;\nexport const locationId = window.location.pathname.slice(1);\n\nexport const SortKeys = StrictDict({\n enrolled: 'enrolled',\n title: 'title',\n});\n\nexport const FilterKeys = StrictDict({\n inProgress: 'inProgress',\n notStarted: 'notStarted',\n done: 'done',\n notEnrolled: 'notEnrolled',\n upgraded: 'upgraded',\n});\n\nexport const ListPageSize = 25;\n","import { StrictDict } from 'utils';\nimport { FilterKeys, SortKeys } from 'data/constants/app';\n\nimport simpleSelectors from './simpleSelectors';\nimport * as module from './currentList';\n\nexport const sortFn = (transform, { reverse }) => (v1, v2) => {\n const [a, b] = [v1, v2].map(transform);\n if (a === b) { return 0; }\n return ((a > b) ? 1 : -1) * (reverse ? -1 : 1);\n};\n\nexport const courseFilters = StrictDict({\n [FilterKeys.notEnrolled]: (course) => !course.enrollment.isEnrolled,\n [FilterKeys.done]: (course) => course.courseRun !== null && course.courseRun.isArchived,\n [FilterKeys.upgraded]: (course) => course.enrollment.isVerified,\n [FilterKeys.inProgress]: (course) => course.enrollment.hasStarted,\n [FilterKeys.notStarted]: (course) => !course.enrollment.hasStarted,\n});\n\nexport const transforms = StrictDict({\n [SortKeys.enrolled]: ({ enrollment }) => new Date(enrollment.lastEnrolled),\n [SortKeys.title]: ({ course }) => course.courseName.toLowerCase(),\n});\n\nexport const courseFilterFn = filters => (filters.length\n ? course => filters.reduce((match, filter) => match && courseFilters[filter](course), true)\n : () => true);\n\nexport const currentList = (allCourses, {\n sortBy,\n filters,\n}) => allCourses\n .filter(module.courseFilterFn(filters))\n .sort(module.sortFn(transforms[sortBy], { reverse: sortBy === SortKeys.enrolled }));\n\nexport const visibleList = (state, {\n sortBy,\n filters,\n pageSize,\n}) => {\n const courses = Object.values(simpleSelectors.courseData(state));\n const list = module.currentList(courses, { sortBy, filters });\n const pageNumber = simpleSelectors.pageNumber(state);\n\n if (pageSize === 0) {\n return {\n visible: list,\n numPages: 1,\n };\n }\n return {\n visible: list.slice((pageNumber - 1) * pageSize, pageNumber * pageSize),\n numPages: Math.ceil(list.length / pageSize),\n };\n};\n\nexport default visibleList;\n","import { StrictDict } from 'utils';\n\nimport simpleSelectors from './simpleSelectors';\nimport appSelectors from './appSelectors';\nimport courseCard from './courseCard';\nimport currentList from './currentList';\n\nexport default StrictDict({\n ...simpleSelectors,\n ...appSelectors,\n courseCard,\n currentList,\n});\n","import { createSlice } from '@reduxjs/toolkit';\n\nimport { StrictDict } from 'utils';\n\nimport { RequestStates, RequestKeys } from 'data/constants/requests';\n\nconst initialState = {\n [RequestKeys.initialize]: { status: RequestStates.inactive },\n [RequestKeys.refreshList]: { status: RequestStates.inactive },\n [RequestKeys.enrollEntitlementSession]: { status: RequestStates.inactive },\n [RequestKeys.leaveEntitlementSession]: { status: RequestStates.inactive },\n [RequestKeys.masquerade]: { status: RequestStates.inactive },\n};\n\n// eslint-disable-next-line no-unused-vars\nconst requests = createSlice({\n name: 'requests',\n initialState,\n reducers: {\n startRequest: (state, { payload }) => ({\n ...state,\n [payload.requestKey]: {\n status: RequestStates.pending,\n },\n }),\n completeRequest: (state, { payload }) => ({\n ...state,\n [payload.requestKey]: {\n status: RequestStates.completed,\n response: payload.response,\n },\n }),\n failRequest: (state, { payload }) => ({\n ...state,\n [payload.requestKey]: {\n status: RequestStates.failed,\n error: payload.error,\n },\n }),\n clearRequest: (state, { payload }) => ({\n ...state,\n [payload.requestKey]: {},\n }),\n },\n});\n\nconst actions = StrictDict(requests.actions);\nconst { reducer } = requests;\n\nexport {\n actions,\n reducer,\n initialState,\n};\n","import { StrictDict } from 'utils';\nimport { RequestStates, RequestKeys } from 'data/constants/requests';\n// import * as module from './selectors';\n\nexport const requestStatus = (state, { requestKey }) => state.requests[requestKey];\n\nconst statusSelector = (fn) => (requestKey) => (state) => fn(state.requests[requestKey]);\n\nexport const isInactive = ({ status }) => status === RequestStates.inactive;\nexport const isPending = ({ status }) => status === RequestStates.pending;\nexport const isCompleted = ({ status }) => status === RequestStates.completed;\nexport const isFailed = ({ status }) => status === RequestStates.failed;\nexport const error = (request) => request.error;\nexport const errorStatus = (request) => request.error?.response?.status;\nexport const errorCode = (request) => request.error?.response?.data;\n\nexport const data = (request) => request.data;\n\nexport const masquerade = (state) => {\n const request = requestStatus(state, { requestKey: RequestKeys.masquerade });\n return {\n isMasquerading: isCompleted(request),\n isMasqueradingFailed: isFailed(request),\n isMasqueradingPending: isPending(request),\n masqueradeErrorStatus: errorStatus(request),\n };\n};\n\nexport default StrictDict({\n requestStatus,\n isInactive: statusSelector(isInactive),\n isPending: statusSelector(isPending),\n isCompleted: statusSelector(isCompleted),\n isFailed: statusSelector(isFailed),\n error: statusSelector(error),\n errorCode: statusSelector(errorCode),\n errorStatus: statusSelector(errorStatus),\n data: statusSelector(data),\n masquerade,\n});\n","import { combineReducers } from 'redux';\n\nimport { StrictDict } from 'utils';\n\nimport * as app from './app';\nimport * as requests from './requests';\n\nconst modules = {\n app,\n requests,\n};\n\nconst moduleProps = (propName) => Object.keys(modules).reduce(\n (obj, moduleKey) => {\n const value = modules[moduleKey][propName];\n return value ? { ...obj, [moduleKey]: value } : obj;\n },\n {},\n);\n\nconst rootReducer = combineReducers(moduleProps('reducer'));\n\nconst actions = StrictDict(moduleProps('actions'));\n\nconst selectors = StrictDict(moduleProps('selectors'));\n\nexport { actions, selectors };\n\nexport default rootReducer;\n","// import { StrictDict } from 'utils';\nimport {\n ErrorStatuses,\n // RequestKeys,\n} from 'data/constants/requests';\nimport { actions } from 'data/redux';\n\nexport const errorData = (status, data = '') => ({\n response: {\n status,\n data,\n },\n});\n\nexport const networkErrorData = errorData(ErrorStatuses.badRequest);\n\nexport const genTestUtils = ({\n dispatch,\n}) => {\n /*\n const mockStart = (requestKey) => () => {\n dispatch(actions.requests.startRequest(requestKey));\n };\n */\n\n const mockError = (requestKey, status, data) => () => {\n dispatch(actions.requests.failRequest({\n requestKey,\n error: errorData(status, data),\n }));\n };\n const mockNetworkError = (requestKey) => (\n mockError(requestKey, ErrorStatuses.badRequest)\n );\n return {\n mockNetworkError,\n };\n};\n\nexport default genTestUtils;\n","import * as redux from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport { composeWithDevTools } from 'redux-devtools-extension/logOnlyInProduction';\nimport { createLogger } from 'redux-logger';\n\nimport apiTestUtils from 'data/services/lms/fakeData/testUtils';\n\nimport reducer, { actions, selectors } from './redux';\n\nexport const createStore = () => {\n const loggerMiddleware = createLogger();\n\n const middleware = [thunkMiddleware, loggerMiddleware];\n\n const store = redux.createStore(\n reducer,\n composeWithDevTools(redux.applyMiddleware(...middleware)),\n );\n\n /**\n * Dev tools for redux work\n */\n if (process.env.NODE_ENV === 'development') {\n window.store = store;\n window.actions = actions;\n window.selectors = selectors;\n window.apiTestUtils = apiTestUtils(store);\n }\n\n return store;\n};\n\nconst store = createStore();\n\nexport default store;\n","const configuration = {\n // BASE_URL: process.env.BASE_URL,\n LMS_BASE_URL: process.env.LMS_BASE_URL,\n ECOMMERCE_BASE_URL: process.env.ECOMMERCE_BASE_URL,\n // LOGIN_URL: process.env.LOGIN_URL,\n // LOGOUT_URL: process.env.LOGOUT_URL,\n // CSRF_TOKEN_API_PATH: process.env.CSRF_TOKEN_API_PATH,\n // REFRESH_ACCESS_TOKEN_ENDPOINT: process.env.REFRESH_ACCESS_TOKEN_ENDPOINT,\n // DATA_API_BASE_URL: process.env.DATA_API_BASE_URL,\n // SECURE_COOKIES: process.env.NODE_ENV !== 'development',\n SEGMENT_KEY: process.env.SEGMENT_KEY,\n // ACCESS_TOKEN_COOKIE_NAME: process.env.ACCESS_TOKEN_COOKIE_NAME,\n LEARNING_BASE_URL: process.env.LEARNING_BASE_URL,\n SESSION_COOKIE_DOMAIN: process.env.SESSION_COOKIE_DOMAIN || '',\n ZENDESK_KEY: process.env.ZENDESK_KEY,\n SUPPORT_URL: process.env.SUPPORT_URL || null,\n ENABLE_NOTICES: process.env.ENABLE_NOTICES || null,\n CAREER_LINK_URL: process.env.CAREER_LINK_URL || null,\n LOGO_URL: process.env.LOGO_URL,\n ENABLE_EDX_PERSONAL_DASHBOARD: process.env.ENABLE_EDX_PERSONAL_DASHBOARD === 'true',\n};\n\nconst features = {};\n\nexport { configuration, features };\n","import { messages as footerMessages } from '@edx/frontend-component-footer';\nimport { messages as paragonMessages } from '@edx/paragon';\n\nimport arMessages from './messages/ar.json';\n// no need to import en messages-- they are in the defaultMessage field\nimport es419Messages from './messages/es_419.json';\nimport frMessages from './messages/fr.json';\nimport frcaMessages from './messages/fr_CA.json';\nimport ptbrMessages from './messages/pt_BR.json';\nimport zhcnMessages from './messages/zh_CN.json';\n\nconst appMessages = {\n ar: arMessages,\n 'es-419': es419Messages,\n fr: frMessages,\n 'fr-ca': frcaMessages,\n 'pt-br': ptbrMessages,\n 'zh-cn': zhcnMessages,\n};\n\nexport default [\n footerMessages,\n appMessages,\n paragonMessages,\n];\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport { useSelector, useDispatch } from 'react-redux';\n\nimport * as redux from 'data/redux';\nimport * as module from './app';\n\nconst selectors = redux.selectors.app;\nconst actions = redux.actions.app;\n\n/** Simple Selectors **/\nexport const usePageNumber = () => useSelector(selectors.pageNumber);\nexport const useEmailConfirmationData = () => useSelector(selectors.emailConfirmation);\nexport const useEnterpriseDashboardData = () => useSelector(selectors.enterpriseDashboard);\nexport const usePlatformSettingsData = () => useSelector(selectors.platformSettings);\nexport const useSelectSessionModalData = () => useSelector(selectors.selectSessionModal);\nexport const useSocialShareSettings = () => useSelector(selectors.socialShareSettings);\n\n/** global-level meta-selectors **/\nexport const useHasCourses = () => useSelector(selectors.hasCourses);\nexport const useHasAvailableDashboards = () => useSelector(selectors.hasAvailableDashboards);\nexport const useCurrentCourseList = (opts) => useSelector(\n state => selectors.currentList(state, opts),\n);\nexport const useShowSelectSessionModal = () => useSelector(selectors.showSelectSessionModal);\n\n// eslint-disable-next-line\nexport const useCourseCardData = (selector) => (cardId) => useSelector(\n (state) => selector(state, cardId),\n);\n/** Course Card selectors **/\nconst { courseCard } = selectors;\nexport const useCardCertificateData = useCourseCardData(courseCard.certificate);\nexport const useCardCourseData = useCourseCardData(courseCard.course);\nexport const useCardCourseRunData = useCourseCardData(courseCard.courseRun);\nexport const useCardCreditData = useCourseCardData(courseCard.credit);\nexport const useCardEnrollmentData = useCourseCardData(courseCard.enrollment);\nexport const useCardEntitlementData = useCourseCardData(courseCard.entitlement);\nexport const useCardGradeData = useCourseCardData(courseCard.gradeData);\nexport const useCardProviderData = useCourseCardData(courseCard.courseProvider);\nexport const useCardRelatedProgramsData = useCourseCardData(courseCard.relatedPrograms);\n\nexport const useCardSocialSettingsData = (cardId) => {\n const socialShareSettings = module.useSocialShareSettings();\n const { socialShareUrl } = module.useCardCourseData(cardId);\n const defaultSettings = { isEnabled: false, shareUrl: '' };\n\n if (!socialShareSettings) {\n return { facebook: defaultSettings, twitter: defaultSettings };\n }\n const { facebook, twitter } = socialShareSettings;\n const loadSettings = (target) => ({\n isEnabled: target.isEnabled,\n shareUrl: `${socialShareUrl}?${target.utmParams}`,\n });\n return { facebook: loadSettings(facebook), twitter: loadSettings(twitter) };\n};\n\nexport const useCardExecEdTrackingParam = (cardId) => {\n const { isExecEd2UCourse } = module.useCardEnrollmentData(cardId);\n const { authOrgId } = module.useEnterpriseDashboardData(cardId);\n return isExecEd2UCourse ? `?org_id=${authOrgId}` : '';\n};\n\n/** Events **/\nexport const useUpdateSelectSessionModalCallback = (cardId) => {\n const dispatch = useDispatch();\n return () => dispatch(actions.updateSelectSessionModal(cardId));\n};\n\nexport const useTrackCourseEvent = (tracker, cardId, ...args) => {\n const { courseId } = module.useCardCourseRunData(cardId);\n return (e) => tracker(courseId, ...args)(e);\n};\n\nexport const useSetPageNumber = () => {\n const dispatch = useDispatch();\n return (value) => dispatch(actions.setPageNumber(value));\n};\n\nexport const useLoadData = () => {\n const dispatch = useDispatch();\n return ({ courses, ...globalData }) => {\n dispatch(actions.setPageNumber(1));\n dispatch(actions.loadGlobalData(globalData));\n dispatch(actions.loadCourses({ courses }));\n };\n};\n","import { useSelector, useDispatch } from 'react-redux';\n\nimport * as redux from 'data/redux';\nimport * as module from './requests';\n\nconst selectors = redux.selectors.requests;\nconst actions = redux.actions.requests;\n\nexport const useMasqueradeData = () => useSelector(selectors.masquerade);\n\nexport const statusSelector = selector => (requestName) => useSelector(selector(requestName));\nexport const useRequestIsPending = module.statusSelector(selectors.isPending);\nexport const useRequestIsFailed = module.statusSelector(selectors.isFailed);\nexport const useRequestIsCompleted = module.statusSelector(selectors.isCompleted);\nexport const useRequestIsInactive = module.statusSelector(selectors.isInactive);\nexport const useRequestError = module.statusSelector(selectors.error);\nexport const useRequestErrorCode = module.statusSelector(selectors.errorCode);\nexport const useRequestErrorStatus = module.statusSelector(selectors.errorStatus);\nexport const useRequestData = module.statusSelector(selectors.data);\n\nexport const useMakeNetworkRequest = () => {\n const dispatch = useDispatch();\n return ({\n requestKey,\n promise,\n onSuccess,\n onFailure,\n }) => {\n dispatch(actions.startRequest({ requestKey }));\n return promise.then((response) => {\n if (onSuccess) { onSuccess(response); }\n dispatch(actions.completeRequest({ requestKey, response }));\n }).catch((error) => {\n if (onFailure) { onFailure(error); }\n dispatch(actions.failRequest({ requestKey, error }));\n });\n };\n};\n\nexport const useClearRequest = () => {\n const dispatch = useDispatch();\n return (requestKey) => {\n dispatch(actions.clearRequest({ requestKey }));\n };\n};\n","import queryString from 'query-string';\nimport { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';\n\n/**\n * get(url)\n * simple wrapper providing an authenticated Http client get action\n * @param {string} url - target url\n */\nexport const get = (...args) => getAuthenticatedHttpClient().get(...args);\n/**\n * post(url, data)\n * simple wrapper providing an authenticated Http client post action\n * queryString.stringify is used to convert the object to query string with = and &\n * @param {string} url - target url\n * @param {object|string} body - post payload\n */\nexport const post = (url, body) => getAuthenticatedHttpClient().post(url, queryString.stringify(body));\n\nexport const client = getAuthenticatedHttpClient;\n\n/**\n * stringifyUrl(url, query)\n * simple wrapper around queryString.stringifyUrl that sets skip behavior\n * @param {string} url - base url string\n * @param {object} query - query parameters\n */\nexport const stringifyUrl = (url, query) => queryString.stringifyUrl(\n { url, query },\n { skipNull: true, skipEmptyString: true },\n);\n","import { StrictDict } from 'utils';\n\nexport const categories = StrictDict({\n dashboard: 'dashboard',\n upgrade: 'upgrade',\n userEngagement: 'user-engagement',\n searchButton: 'search_button',\n credit: 'credit',\n filter: 'filter',\n});\n\nexport const events = StrictDict({\n enterCourseClicked: 'enterCourseClicked',\n courseImageClicked: 'courseImageClicked',\n courseTitleClicked: 'courseTitleClicked',\n courseOptionsDropdownClicked: 'courseOptionsDropdownClicked',\n upgradeButtonClicked: 'upgradeButtonClicked',\n upgradeButtonClickedEnrollment: 'upgradeButtonClickedEnrollment',\n upgradeButtonClickedUpsell: 'upgradeButtonClickedUpsell',\n shareClicked: 'shareClicked',\n userSettingsChanged: 'userSettingsChanged',\n newSession: 'newSession',\n switchSession: 'switchSession',\n leaveSession: 'leaveSession',\n unenrollReason: 'unenrollReason',\n entitlementUnenrollReason: 'entitlementUnenrollReason',\n enterpriseDashboardModalOpened: 'enterpriseDashboardModalOpened',\n enterpriseDashboardModalCTAClicked: 'enterpriseDashboardModalCTAClicked',\n enterpriseDashboardModalClosed: 'enterpriseDashboardModalClosed',\n});\n\nconst learnerPortal = 'edx.ui.enterprise.lms.dashboard.learner_portal_modal';\n\nexport const eventNames = StrictDict({\n enterCourseClicked: 'edx.bi.dashboard.enter_course.clicked',\n courseImageClicked: 'edx.bi.dashboard.course_image.clicked',\n courseTitleClicked: 'edx.bi.dashboard.course_title.clicked',\n courseOptionsDropdownClicked: 'edx.bi.dashboard.course_options_dropdown.clicked',\n upgradeButtonClicked: 'edx.bi.dashboard.upgrade_button.clicked',\n upgradeButtonClickedEnrollment: 'edx.course.enrollment.upgrade.clicked',\n upgradeButtonClickedUpsell: 'edx.bi.ecommerce.upsell_links_clicked',\n shareClicked: 'edx.course.share_clicked',\n userSettingsChanged: 'edx.user.settings.changed',\n newSession: 'course-dashboard.new-session',\n switchSession: 'course-dashboard.switch-session',\n leaveSession: 'course-dashboard.leave-session',\n unenrollReason: 'unenrollment_reason.selected',\n entitlementUnenrollReason: 'entitlement_unenrollment_reason.selected',\n enterpriseDashboardModalOpened: `${learnerPortal}.opened`,\n enterpriseDashboardModalCTAClicked: `${learnerPortal}.dashboard_cta.clicked`,\n enterpriseDashboardModalClosed: `${learnerPortal}.closed`,\n findCoursesClicked: 'edx.bi.dashboard.find_courses_button.clicked',\n purchaseCredit: 'edx.bi.credit.clicked_purchase_credit',\n filterClicked: 'course-dashboard.filter.clicked',\n filterOptionSelected: 'course-dashboard.filter_option.selected',\n});\n\nexport const linkNames = StrictDict({\n learnerHomeNavExplore: 'learner_home_nav_explore',\n learnerHomeNavDropdownExplore: 'learner_home_nav_dropdown_explore',\n});\n\nexport const appName = 'learner-home';\n\nexport default eventNames;\n","import { StrictDict } from 'utils';\n\nexport const apiKeys = StrictDict({\n receiveEmails: 'receive_emails',\n enrollmentAction: 'enrollment_action',\n courseRunId: 'course_run_id',\n courseId: 'course_id',\n user: 'user',\n isRefund: 'is_refund',\n});\n\nexport const apiValues = StrictDict({\n on: 'on',\n unenroll: 'unenroll',\n});\n\nexport const unenrollmentAction = { [apiKeys.enrollmentAction]: apiValues.unenroll };\nexport const enableEmailsAction = { [apiKeys.receiveEmails]: apiValues.on };\n","import eventNames from 'tracking/constants';\nimport {\n client,\n get,\n post,\n stringifyUrl,\n} from './utils';\nimport {\n apiKeys,\n unenrollmentAction,\n enableEmailsAction,\n} from './constants';\nimport urls from './urls';\nimport * as module from './api';\n\n/*********************************************************************************\n * GET Actions\n *********************************************************************************/\nexport const initializeList = ({ user } = {}) => get(\n stringifyUrl(urls.getInitApiUrl(), { [apiKeys.user]: user }),\n);\n\nexport const updateEntitlementEnrollment = ({ uuid, courseId }) => post(\n urls.entitlementEnrollment(uuid),\n { [apiKeys.courseRunId]: courseId },\n);\n\nexport const deleteEntitlementEnrollment = ({ uuid, isRefundable }) => client()\n .delete(\n stringifyUrl(\n urls.entitlementEnrollment(uuid),\n { [apiKeys.isRefund]: isRefundable },\n ),\n );\n\nexport const updateEmailSettings = ({ courseId, enable }) => post(\n urls.updateEmailSettings(),\n { [apiKeys.courseId]: courseId, ...(enable && enableEmailsAction) },\n);\n\nexport const unenrollFromCourse = ({ courseId }) => post(\n urls.courseUnenroll(),\n { [apiKeys.courseId]: courseId, ...unenrollmentAction },\n);\n\nexport const logEvent = ({ eventName, data, courseId }) => post(urls.event(), {\n courserun_key: courseId,\n event_type: eventName,\n page: window.location.href,\n event: JSON.stringify(data),\n});\n\nexport const logUpgrade = ({ courseId }) => module.logEvent({\n eventName: eventNames.upgradeButtonClickedEnrollment,\n courseId,\n data: { location: 'learner-dashboard' },\n});\n\nexport const logShare = ({ courseId, site }) => module.logEvent({\n eventName: eventNames.shareClicked,\n courseId,\n data: {\n course_id: courseId,\n social_media_site: site,\n location: 'dashboard',\n },\n});\n\nexport const createCreditRequest = ({ providerId, courseId, username }) => post(\n urls.creditRequestUrl(providerId),\n { course_key: courseId, username },\n);\n\nexport default {\n initializeList,\n unenrollFromCourse,\n updateEmailSettings,\n updateEntitlementEnrollment,\n deleteEntitlementEnrollment,\n logEvent,\n logUpgrade,\n logShare,\n createCreditRequest,\n};\n","import React from 'react';\n\nimport { AppContext } from '@edx/frontend-platform/react';\n\nimport { RequestKeys } from 'data/constants/requests';\nimport { post } from 'data/services/lms/utils';\nimport api from 'data/services/lms/api';\n\nimport * as reduxHooks from 'data/redux/hooks';\nimport * as module from './api';\n\nconst { useMakeNetworkRequest } = reduxHooks;\n\nexport const useNetworkRequest = (action, args) => {\n const makeNetworkRequest = useMakeNetworkRequest();\n return (...actionsArgs) => makeNetworkRequest({\n promise: action(...actionsArgs),\n ...args,\n });\n};\n\n/**\n * initialize the app, loading ora and course metadata from the api, and loading the initial\n * submission list data.\n */\nexport const useInitializeApp = () => {\n const loadData = reduxHooks.useLoadData();\n return module.useNetworkRequest(api.initializeList, {\n requestKey: RequestKeys.initialize,\n onSuccess: ({ data }) => loadData(data),\n });\n};\n\nexport const useNewEntitlementEnrollment = (cardId) => {\n const { uuid } = reduxHooks.useCardEntitlementData(cardId);\n const onSuccess = module.useInitializeApp();\n return module.useNetworkRequest(\n (selection) => api.updateEntitlementEnrollment({ uuid, courseId: selection }),\n { onSuccess, requestKey: RequestKeys.newEntitlementEnrollment },\n );\n};\n\nexport const useSwitchEntitlementEnrollment = (cardId) => {\n const { uuid } = reduxHooks.useCardEntitlementData(cardId);\n const onSuccess = module.useInitializeApp();\n const action = (selection) => api.updateEntitlementEnrollment({ uuid, courseId: selection });\n return module.useNetworkRequest(\n action,\n { onSuccess, requestKey: RequestKeys.switchEntitlementSession },\n );\n};\n\nexport const useLeaveEntitlementSession = (cardId) => {\n const { uuid, isRefundable } = reduxHooks.useCardEntitlementData(cardId);\n const onSuccess = module.useInitializeApp();\n return module.useNetworkRequest(\n () => api.deleteEntitlementEnrollment({ uuid, isRefundable }),\n { onSuccess, requestKey: RequestKeys.leaveEntitlementSession },\n );\n};\n\nexport const useUnenrollFromCourse = (cardId) => {\n const { courseId } = reduxHooks.useCardCourseRunData(cardId);\n return module.useNetworkRequest(\n () => api.unenrollFromCourse({ courseId }),\n { requestKey: RequestKeys.unenrollFromCourse },\n );\n};\n\nexport const useMasqueradeAs = () => {\n const loadData = reduxHooks.useLoadData();\n return module.useNetworkRequest(\n (user) => api.initializeList({ user }),\n { onSuccess: ({ data }) => loadData(data), requestKey: RequestKeys.masquerade },\n );\n};\n\nexport const useClearMasquerade = () => {\n const clearRequest = reduxHooks.useClearRequest();\n const initializeApp = module.useInitializeApp();\n return () => {\n clearRequest(RequestKeys.masquerade);\n initializeApp();\n };\n};\n\nexport const useUpdateEmailSettings = (cardId) => {\n const { courseId } = reduxHooks.useCardCourseRunData(cardId);\n return module.useNetworkRequest(\n (enable) => api.updateEmailSettings({ courseId, enable }),\n { requestKey: RequestKeys.updateEmailSettings },\n );\n};\n\nexport const useSendConfirmEmail = () => {\n const { sendEmailUrl } = reduxHooks.useEmailConfirmationData();\n return () => post(sendEmailUrl);\n};\n\nexport const useCreateCreditRequest = (cardId) => {\n const { providerId } = reduxHooks.useCardCreditData(cardId);\n const { authenticatedUser: { username } } = React.useContext(AppContext);\n const { courseId } = reduxHooks.useCardCourseRunData(cardId);\n return () => api.createCreditRequest({ providerId, courseId, username });\n};\n","import React from 'react';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport dateFormatter from 'utils/dateFormatter';\n\nexport const useValueCallback = (cb, prereqs = []) => (\n React.useCallback(e => cb(e.target.value), prereqs) // eslint-disable-line\n);\n\nexport const useFormatDate = () => {\n const { formatDate } = useIntl();\n return (date) => dateFormatter(formatDate, date);\n};\n\nexport default {\n useFormatDate,\n useValueCallback,\n};\n","import * as redux from 'data/redux/hooks';\nimport * as api from './api';\nimport * as utils from './utils';\n\nexport const reduxHooks = redux;\nexport const apiHooks = api;\nexport const utilHooks = utils;\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n enterpriseDialogHeader: {\n id: 'leanerDashboard.enterpriseDialogHeader',\n defaultMessage: 'You have access to the {label} dashboard',\n description: 'title for enterpise dashboard dialog',\n },\n enterpriseDialogBody: {\n id: 'leanerDashboard.enterpriseDialogBody',\n defaultMessage: 'To access the courses available to you through {label}, visit the {label} dashboard now.',\n description: 'Body text for enterpise dashboard dialog',\n },\n enterpriseDialogDismissButton: {\n id: 'leanerDashboard.enterpriseDialogDismissButton',\n defaultMessage: 'Dismiss',\n description: 'Dismiss button to cancel visiting dashboard',\n },\n enterpriseDialogConfirmButton: {\n id: 'leanerDashboard.enterpriseDialogConfirmButton',\n defaultMessage: 'Go to dashboard',\n description: 'Confirm button to go to the dashboard url',\n },\n});\n\nexport default messages;\n","/* eslint-disable import/prefer-default-export */\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { appName } from 'tracking/constants';\n\nexport const LINK_TIMEOUT = 300;\n\nexport const createEventTracker = (name, options = {}) => () => sendTrackEvent(\n name,\n { ...options, app_name: appName },\n);\n\nexport const createLinkTracker = (tracker, href) => (e) => {\n e.preventDefault();\n tracker();\n return setTimeout(() => { global.location.href = href; }, LINK_TIMEOUT);\n};\n","import api from 'data/services/lms/api';\nimport { createEventTracker, createLinkTracker } from 'data/services/segment/utils';\nimport { categories, eventNames } from '../constants';\nimport * as module from './course';\n\nexport const upsellOptions = {\n linkName: 'course_dashboard_green',\n linkType: 'button',\n pageName: 'course_dashboard',\n linkCategory: 'green_update',\n};\n\n// Utils/Helpers\n/**\n * Generate a segement event tracker for a given course event.\n * @param {string} eventName - segment event name\n * @param {string} courseId - course run identifier\n * @param {[object]} options - optional event data\n */\nexport const courseEventTracker = (eventName, courseId, options = {}) => createEventTracker(\n eventName,\n { category: categories.dashboard, label: courseId, ...options },\n);\n/**\n * Generate a hook to allow components to provide a courseId and link href and provide\n * a link tracker with defined event name and options, over a set of default optiosn.\n * @param {string} eventName - event name for the click event\n * @return {callback} - component hook returning a link tracking event callback\n */\nexport const courseLinkTracker = (eventName) => (courseId, href) => (\n createLinkTracker(module.courseEventTracker(eventName, courseId), href)\n);\n\n// Upgrade Events\n/**\n * There are currently multiple tracked api events for the upgrade event, with different targets.\n * Goal here is to split out the tracked events for easier testing.\n */\nexport const upgradeButtonClicked = (courseId) => createEventTracker(\n eventNames.upgradeButtonClicked,\n { category: categories.upgrade, label: courseId },\n);\nexport const upgradeButtonClickedUpsell = (courseId) => createEventTracker(\n eventNames.upgradeButtonClickedUpsell,\n { ...upsellOptions, courseId },\n);\n\n// Non-Link events\nexport const courseOptionsDropdownClicked = (courseId) => (\n module.courseEventTracker(eventNames.courseOptionsDropdownClicked, courseId)\n);\n\n// Link events (track and then change page location)\nexport const courseImageClicked = (...args) => (\n module.courseLinkTracker(eventNames.courseImageClicked)(...args));\nexport const courseTitleClicked = (...args) => (\n module.courseLinkTracker(eventNames.courseTitleClicked)(...args));\nexport const enterCourseClicked = (...args) => (\n module.courseLinkTracker(eventNames.enterCourseClicked)(...args));\nexport const upgradeClicked = (courseId, href) => createLinkTracker(\n () => {\n module.upgradeButtonClicked(courseId)();\n module.upgradeButtonClickedUpsell(courseId)();\n api.logUpgrade({ courseId });\n },\n href,\n);\n\nexport default {\n courseImageClicked,\n courseOptionsDropdownClicked,\n courseTitleClicked,\n enterCourseClicked,\n upgradeClicked,\n};\n","import { createEventTracker, createLinkTracker } from 'data/services/segment/utils';\nimport { creditPurchaseUrl } from 'data/services/lms/urls';\nimport { categories, eventNames } from '../constants';\n\n/**\n * Create event tracker for purchase credit event\n * @param {string} fromCourseRun - course run identifier for leaving course\n * @return {callback} - callback that triggers the event tracker\n */\nexport const purchase = (courseId) => createLinkTracker(\n createEventTracker(eventNames.purchaseCredit, {\n label: courseId,\n category: categories.credit,\n }),\n creditPurchaseUrl(courseId),\n);\n\nexport default {\n purchase,\n};\n","import { createEventTracker } from 'data/services/segment/utils';\nimport { categories, eventNames } from '../constants';\n\nexport const engagementOptions = {\n category: categories.userEngagement,\n displayName: 'v1',\n};\n\n/**\n * Creates callback which sends segment event for unenroll with reason event\n * @param {string} courseId - course run identifier\n * @param {string} reason - unenroll reason\n * @param {bool} isEntitlement - is the course an entitlement course?\n * @return {callback} - callback that will send the appropriate segment message.\n */\nexport const unenrollReason = (courseId, reason, isEntitlement) => createEventTracker(\n isEntitlement ? eventNames.entitlementUnenrollReason : eventNames.unenrollReason,\n { reason, course_id: courseId, ...engagementOptions },\n);\n\nexport default {\n unenrollReason,\n};\n","import { createEventTracker } from 'data/services/segment/utils';\nimport { categories, eventNames } from '../constants';\n\nexport const filterClicked = () => createEventTracker(\n eventNames.filterClicked,\n { category: categories.filter },\n)();\n\nexport const filterOptionSelected = (filters = []) => createEventTracker(\n eventNames.filterOptionSelected,\n {\n category: categories.filter,\n // make sure to clone before sorting\n filters: [...filters].sort(),\n },\n)();\n\nexport default {\n filterClicked,\n filterOptionSelected,\n};\n","import course from './trackers/course';\nimport credit from './trackers/credit';\nimport engagement from './trackers/engagement';\nimport enterpriseDashboard from './trackers/enterpriseDashboard';\nimport entitlements from './trackers/entitlements';\nimport socialShare from './trackers/socialShare';\nimport findCourses from './trackers/findCourses';\nimport filter from './trackers/filter';\n\nexport default {\n course,\n credit,\n engagement,\n enterpriseDashboard,\n entitlements,\n socialShare,\n findCourses,\n filter,\n};\n","import { createEventTracker, createLinkTracker } from 'data/services/segment/utils';\nimport { eventNames } from '../constants';\n\n/** Enterprise Dashboard events**/\n/**\n * Creates tracking callback for Enterprise Dashboard Modal open event\n * @param {string} enterpriseUUID - enterprise identifier\n * @return {func} - Callback that tracks the event when fired.\n */\nexport const modalOpened = (enterpriseUUID) => () => createEventTracker(\n eventNames.enterpriseDashboardModalOpened,\n { enterpriseUUID },\n);\n\n/**\n * Creates tracking callback for Enterprise Dashboard Modal Call-to-action click-event\n * @param {string} enterpriseUUID - enterprise identifier\n * @param {string} href - destination url\n * @return {func} - Callback that tracks the event when fired and then loads the passed href.\n */\nexport const modalCTAClicked = (enterpriseUUID, href) => createLinkTracker(\n createEventTracker(\n eventNames.enterpriseDashboardModalCTAClicked,\n { enterpriseUUID },\n ),\n href,\n);\n\n/**\n * Creates tracking callback for Enterprise Dashboard Modal close event\n * @param {string} enterpriseUUID - enterprise identifier\n * @param {string} source - close event soruce (\"Cancel button\" vs \"Escape\")\n * @return {func} - Callback that tracks the event when fired.\n */\nexport const modalClosed = (enterpriseUUID, source) => createEventTracker(\n eventNames.enterpriseDashboardModalClosed,\n { enterpriseUUID, source },\n);\n\nexport default {\n modalOpened,\n modalCTAClicked,\n modalClosed,\n};\n","import { createEventTracker } from 'data/services/segment/utils';\nimport { eventNames } from '../constants';\n\n/**\n * Create event tracker for leave entitlement session event\n * @param {string} fromCourseRun - course run identifier for leaving course\n * @return {callback} - callback that triggers the event tracker\n */\nexport const leaveSession = (fromCourseRun) => (\n createEventTracker(eventNames.leaveSession, { fromCourseRun, toCourseRun: null })\n);\n/**\n * Create event tracker for new entitlement session event\n * @param {string} toCourseRun - course run identifier for new course\n * @return {callback} - callback that triggers the event tracker\n */\nexport const newSession = (toCourseRun) => (\n createEventTracker(eventNames.newSession, { fromCourseRun: null, toCourseRun })\n);\n/**\n * Create event tracker for switch entitlement session event\n * @param {string} fromCourseRun - course run identifier for leaving course\n * @param {string} toCourseRun - course run identifier for new course\n * @return {callback} - callback that triggers the event tracker\n */\nexport const switchSession = (fromCourseRun, toCourseRun) => (\n createEventTracker(eventNames.switchSession, { fromCourseRun, toCourseRun })\n);\n\nexport default {\n leaveSession,\n newSession,\n switchSession,\n};\n","import api from 'data/services/lms/api';\n\n/**\n * Track Social Share event click.\n * @param {string} courseId - course run identifier\n * @param {string} site - sharing destination ('facebook', 'twitter')\n * @return {func} - Callback that tracks the event when fired.\n */\nexport const shareClicked = (courseId, site) => () => api.logShare({ courseId, site });\n\nexport default shareClicked;\n","import { createLinkTracker, createEventTracker } from 'data/services/segment/utils';\nimport { categories, eventNames } from '../constants';\n\nexport const findCoursesClicked = (href, args = {}) => createLinkTracker(\n createEventTracker(eventNames.findCoursesClicked, {\n pageName: 'learner_home',\n linkType: 'button',\n linkCategory: categories.searchButton,\n ...args,\n }),\n href,\n);\n\nexport default {\n findCoursesClicked,\n};\n","import React from 'react';\n\nimport { StrictDict } from 'utils';\nimport track from 'tracking';\nimport { reduxHooks } from 'hooks';\n\nimport * as module from './hooks';\n\nexport const state = StrictDict({\n showModal: (val) => React.useState(val), // eslint-disable-line\n});\n\nconst { modalOpened, modalClosed, modalCTAClicked } = track.enterpriseDashboard;\n\nexport const useEnterpriseDashboardHook = () => {\n const [showModal, setShowModal] = module.state.showModal(true);\n const dashboard = reduxHooks.useEnterpriseDashboardData();\n\n const trackOpened = modalOpened(dashboard.enterpriseUUID);\n const trackClose = modalClosed(dashboard.enterpriseUUID, 'Cancel button');\n const trackEscape = modalClosed(dashboard.enterpriseUUID, 'Escape');\n\n const handleCTAClick = modalCTAClicked(dashboard.enterpriseUUID, dashboard.url);\n const handleClose = () => {\n trackClose();\n setShowModal(false);\n };\n const handleEscape = () => {\n trackEscape();\n setShowModal(false);\n };\n\n React.useEffect(() => {\n if (dashboard && dashboard.label) {\n trackOpened();\n }\n }, []); // eslint-disable-line\n\n return {\n showModal,\n handleCTAClick,\n handleClose,\n handleEscape,\n dashboard,\n };\n};\n\nexport default useEnterpriseDashboardHook;\n","import React from 'react';\n// import PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ModalDialog, ActionRow, Button,\n} from '@edx/paragon';\n\nimport messages from './messages';\nimport useEnterpriseDashboardHook from './hooks';\n\nexport const EnterpriseDashboardModal = () => {\n const { formatMessage } = useIntl();\n const {\n showModal,\n handleClose,\n handleCTAClick,\n handleEscape,\n dashboard,\n } = useEnterpriseDashboardHook();\n if (!dashboard || !dashboard.label) {\n return null;\n }\n return (\n \n \n

\n {formatMessage(messages.enterpriseDialogHeader, {\n label: dashboard.label,\n })}\n

\n

\n {formatMessage(messages.enterpriseDialogBody, {\n label: dashboard.label,\n })}\n

\n \n \n \n \n \n \n );\n};\n\nEnterpriseDashboardModal.propTypes = {};\n\nexport default EnterpriseDashboardModal;\n","/* eslint-disable import/prefer-default-export */\nexport const LEAVE_OPTION = 'leave';\n","/* eslint-disable quotes */\nimport { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n changeOrLeaveHeader: {\n id: 'learner-dash.selectSession.changeOrLeaveHeader',\n description: 'Header for session that allow leave option',\n defaultMessage: 'Change or leave session?',\n },\n selectSessionHeader: {\n id: 'learner-dash.selectSession.selectSessionHeader',\n description: 'Header for unfulfilled entitlement',\n defaultMessage: 'Select a session',\n },\n changeOrLeaveHint: {\n id: 'learner-dash.selectSession.changeOrLeaveHint',\n description: 'Hint for session that allow leave option',\n defaultMessage: 'When you change to a different session any course progress or grades from your current session will be lost.',\n },\n selectSessionHint: {\n id: 'learner-dash.selectSession.selectSessionHint',\n description: 'Hint for session that does not allow leave option',\n defaultMessage: 'Remember, if you change your mind you have 2 weeks to unenroll and select a different session.',\n },\n leaveSessionOption: {\n id: 'learner-dash.selectSession.leaveSessionOption',\n description: 'Radio option for leave session',\n defaultMessage: 'Leave session',\n },\n nevermind: {\n id: 'learner-dash.selectSession.nevermind',\n description: 'Cancel action for select session modal',\n defaultMessage: 'Never mind',\n },\n confirmSession: {\n id: 'learner-dash.selectSession.confirmSession',\n description: 'Confirm action for select session modal',\n defaultMessage: 'Confirm Session',\n },\n});\n\nexport default messages;\n","import React from 'react';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { StrictDict } from 'utils';\n\nimport track from 'tracking';\n\nimport { reduxHooks, apiHooks } from 'hooks';\n\nimport { LEAVE_OPTION } from './constants';\nimport messages from './messages';\nimport * as module from './hooks';\n\nexport const state = StrictDict({\n selectedSession: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useSelectSessionModalData = () => {\n const { formatMessage } = useIntl();\n\n const selectedCardId = reduxHooks.useSelectSessionModalData().cardId;\n const {\n availableSessions,\n isFulfilled,\n } = reduxHooks.useCardEntitlementData(selectedCardId);\n const { title: courseTitle } = reduxHooks.useCardCourseData(selectedCardId);\n const { courseId } = reduxHooks.useCardCourseRunData(selectedCardId) || {};\n const { isEnrolled } = reduxHooks.useCardEnrollmentData(selectedCardId);\n const leaveEntitlementSession = apiHooks.useLeaveEntitlementSession(selectedCardId);\n const switchEntitlementEnrollment = apiHooks.useSwitchEntitlementEnrollment(selectedCardId);\n const newEntitlementEnrollment = apiHooks.useNewEntitlementEnrollment(selectedCardId);\n\n const [selectedSession, setSelectedSession] = module.state.selectedSession(courseId || null);\n\n let header;\n let hint;\n if (isFulfilled) {\n header = formatMessage(messages.changeOrLeaveHeader);\n hint = formatMessage(messages.changeOrLeaveHint);\n } else {\n header = formatMessage(messages.selectSessionHeader, { courseTitle });\n hint = formatMessage(messages.selectSessionHint);\n }\n const closeSessionModal = reduxHooks.useUpdateSelectSessionModalCallback(null);\n\n const trackNewSession = track.entitlements.newSession(selectedSession);\n const trackSwitchSession = track.entitlements.switchSession(selectedCardId, selectedSession);\n const trackLeaveSession = track.entitlements.leaveSession(selectedCardId);\n\n const handleSelection = ({ target: { value } }) => setSelectedSession(value);\n const handleSubmit = () => {\n if (selectedSession === LEAVE_OPTION) {\n trackLeaveSession();\n leaveEntitlementSession();\n } else if (isEnrolled) {\n trackSwitchSession();\n switchEntitlementEnrollment(selectedSession);\n } else {\n trackNewSession();\n newEntitlementEnrollment(selectedSession);\n }\n closeSessionModal();\n };\n\n return {\n showModal: selectedCardId != null,\n closeSessionModal,\n showLeaveOption: isFulfilled,\n availableSessions,\n hint,\n header,\n selectedSession,\n handleSelection,\n handleSubmit,\n };\n};\n\nexport default useSelectSessionModalData;\n","import React from 'react';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n Form,\n ModalDialog,\n} from '@edx/paragon';\n\nimport { utilHooks } from 'hooks';\nimport { nullMethod, dateFormatter } from 'utils';\n\nimport useSelectSessionModalData from './hooks';\nimport { LEAVE_OPTION } from './constants';\nimport messages from './messages';\n\nexport const SelectSessionModal = () => {\n const {\n availableSessions,\n showModal,\n closeSessionModal,\n showLeaveOption,\n handleSelection,\n handleSubmit,\n header,\n hint,\n selectedSession,\n } = useSelectSessionModalData();\n\n const formatDate = utilHooks.useFormatDate();\n const { formatMessage } = useIntl();\n\n return (\n \n

{header}

\n \n {hint}\n \n {availableSessions?.map((session) => (\n \n {dateFormatter(formatDate, session.startDate)} - {dateFormatter(formatDate, session.endDate)}\n \n ))}\n {showLeaveOption && (\n \n {formatMessage(messages.leaveSessionOption)}\n \n )}\n \n \n \n \n \n \n \n );\n};\n\nexport default SelectSessionModal;\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n inProgress: {\n id: 'learner-dash.courseListFilters.inProgress',\n description: 'in-progress filter checkbox label for course list filters',\n defaultMessage: 'In-Progress',\n },\n notStarted: {\n id: 'learner-dash.courseListFilters.notStarted',\n description: 'Not-Started filter checkbox label for course list filters',\n defaultMessage: 'Not Started',\n },\n done: {\n id: 'learner-dash.courseListFilters.done',\n description: 'done filter checkbox label for course list filters',\n defaultMessage: 'Done',\n },\n notEnrolled: {\n id: 'learner-dash.courseListFilters.notEnrolled',\n description: 'not-enrolled filter checkbox label for course list filters',\n defaultMessage: 'Not Enrolled',\n },\n upgraded: {\n id: 'learner-dash.courseListFilters.upgraded',\n description: 'upgraded filter checkbox label for course list filters',\n defaultMessage: 'Upgraded',\n },\n clearAll: {\n id: 'learner-dash.courseListFilters.clearAll',\n description: 'clear all filters button text',\n defaultMessage: 'Clear all',\n },\n sort: {\n id: 'learner-dash.courseListFilters.sort',\n description: 'Sort radio form heading',\n defaultMessage: 'Sort',\n },\n sortLastEnrolled: {\n id: 'learner-dash.courseListFilters.sortLastEnrolled',\n description: 'Last enrolled sort option text',\n defaultMessage: 'Last enrolled',\n },\n sortTitle: {\n id: 'learner-dash.courseListFilters.sortTitle',\n description: 'Title sort option text',\n defaultMessage: 'Title (A-Z)',\n },\n refine: {\n id: 'learner-dash.courseListFilters.refine',\n description: 'Filter button container text',\n defaultMessage: 'Filter',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { Form } from '@edx/paragon';\n\nimport messages from '../messages';\n\nexport const Checkbox = ({ filterKey }) => {\n const { formatMessage } = useIntl();\n return (\n \n {formatMessage(messages[filterKey])}\n \n );\n};\nCheckbox.propTypes = {\n filterKey: PropTypes.string.isRequired,\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { FilterKeys } from 'data/constants/app';\n\nimport { Form } from '@edx/paragon';\n\nimport Checkbox from './Checkbox';\n\nexport const filterOrder = [\n FilterKeys.inProgress,\n FilterKeys.notStarted,\n FilterKeys.done,\n FilterKeys.notEnrolled,\n FilterKeys.upgraded,\n];\n\nexport const FilterForm = ({\n filters,\n handleFilterChange,\n}) => (\n \n
Course Status
\n \n {filterOrder.map(filterKey => (\n \n ))}\n \n
\n);\nFilterForm.propTypes = {\n filters: PropTypes.arrayOf(PropTypes.string).isRequired,\n handleFilterChange: PropTypes.func.isRequired,\n};\n\nexport default FilterForm;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { SortKeys } from 'data/constants/app';\n\nimport { Form } from '@edx/paragon';\n\nimport messages from '../messages';\n\nexport const SortForm = ({\n handleSortChange,\n sortBy,\n}) => {\n const { formatMessage } = useIntl();\n return (\n <>\n
{formatMessage(messages.sort)}
\n \n \n {formatMessage(messages.sortLastEnrolled)}\n \n \n {formatMessage(messages.sortTitle)}\n \n \n \n );\n};\nSortForm.propTypes = {\n handleSortChange: PropTypes.func.isRequired,\n sortBy: PropTypes.string.isRequired,\n};\n\nexport default SortForm;\n","import React from 'react';\nimport { useToggle } from '@edx/paragon';\n\nimport { StrictDict } from 'utils';\nimport track from 'tracking';\n\nimport * as module from './hooks';\n\nexport const state = StrictDict({\n target: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useCourseFilterControlsData = ({\n filters,\n setFilters,\n setSortBy,\n}) => {\n const [isOpen, toggleOpen, toggleClose] = useToggle(false);\n const [target, setTarget] = module.state.target(null);\n const handleFilterChange = ({ target: { checked, value } }) => {\n const update = checked ? setFilters.add : setFilters.remove;\n update(value);\n };\n const handleSortChange = ({ target: { value } }) => {\n setSortBy(value);\n };\n\n const open = () => {\n track.filter.filterClicked();\n toggleOpen();\n };\n\n const close = () => {\n track.filter.filterOptionSelected(filters);\n toggleClose();\n };\n\n return {\n isOpen,\n open,\n close,\n target,\n setTarget,\n handleFilterChange,\n handleSortChange,\n };\n};\n\nexport default useCourseFilterControlsData;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport {\n Button,\n Form,\n Icon,\n ModalPopup,\n Sheet,\n breakpoints,\n useWindowSize,\n ModalCloseButton,\n} from '@edx/paragon';\nimport { Close, Tune } from '@edx/paragon/icons';\n\nimport { reduxHooks } from 'hooks';\n\nimport FilterForm from './components/FilterForm';\nimport SortForm from './components/SortForm';\nimport useCourseFilterControlsData from './hooks';\nimport messages from './messages';\n\nimport './index.scss';\n\nexport const CourseFilterControls = ({\n sortBy,\n setSortBy,\n filters,\n setFilters,\n}) => {\n const { formatMessage } = useIntl();\n const hasCourses = reduxHooks.useHasCourses();\n const {\n isOpen,\n open,\n close,\n target,\n setTarget,\n handleFilterChange,\n handleSortChange,\n } = useCourseFilterControlsData({\n filters,\n setFilters,\n setSortBy,\n });\n const { width } = useWindowSize();\n const isMobile = width < breakpoints.small.minWidth;\n\n return (\n
\n \n {formatMessage(messages.refine)}\n \n
\n {isMobile\n ? (\n \n
\n {formatMessage(messages.refine)}\n
\n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n \n ) : (\n \n \n
\n \n
\n
\n
\n \n
\n
\n \n )}\n \n \n );\n};\nCourseFilterControls.propTypes = {\n sortBy: PropTypes.string.isRequired,\n setSortBy: PropTypes.func.isRequired,\n filters: PropTypes.arrayOf(PropTypes.string).isRequired,\n setFilters: PropTypes.shape({\n add: PropTypes.func.isRequired,\n remove: PropTypes.func.isRequired,\n }).isRequired,\n};\n\nexport default CourseFilterControls;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { Button, Chip } from '@edx/paragon';\nimport { CloseSmall } from '@edx/paragon/icons';\n\nimport messages from './messages';\nimport './index.scss';\n\nexport const ActiveCourseFilters = ({\n filters,\n setFilters,\n handleRemoveFilter,\n}) => {\n const { formatMessage } = useIntl();\n return (\n
\n {filters.map(filter => (\n \n {formatMessage(messages[filter])}\n \n ))}\n \n
\n );\n};\nActiveCourseFilters.propTypes = {\n filters: PropTypes.arrayOf(PropTypes.string).isRequired,\n setFilters: PropTypes.shape({\n remove: PropTypes.func,\n clear: PropTypes.func,\n }).isRequired,\n handleRemoveFilter: PropTypes.func.isRequired,\n};\n\nexport default ActiveCourseFilters;\n","import { useIntl } from '@edx/frontend-platform/i18n';\nimport { useWindowSize, breakpoints } from '@edx/paragon';\nimport { reduxHooks } from 'hooks';\n\nexport const useIsCollapsed = () => {\n const { width } = useWindowSize();\n return width < breakpoints.small.maxWidth;\n};\n\nexport const useCardData = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const { title, bannerImgSrc } = reduxHooks.useCardCourseData(cardId);\n const { isEnrolled } = reduxHooks.useCardEnrollmentData(cardId);\n\n return {\n isEnrolled,\n title,\n bannerImgSrc,\n formatMessage,\n };\n};\n\nexport default useCardData;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Alert } from '@edx/paragon';\nimport { Info } from '@edx/paragon/icons';\n\nexport const Banner = ({\n children, variant, icon, className,\n}) => (\n \n {children}\n \n);\nBanner.defaultProps = {\n icon: Info,\n variant: 'info',\n className: 'mb-0',\n};\nBanner.propTypes = {\n variant: PropTypes.string,\n icon: PropTypes.func,\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n};\n\nexport default Banner;\n","import { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n auditAccessExpired: {\n id: 'learner-dash.courseCard.banners.auditAccessExpired',\n description: 'Audit access expiration banner message',\n defaultMessage: 'Your audit access to this course has expired.',\n },\n upgradeToAccess: {\n id: 'learner-dash.courseCard.banners.upgradeToAccess',\n description: 'Upgrade prompt for audit-expired learners that can still upgrade',\n defaultMessage: 'Upgrade now to access your course again.',\n },\n findAnotherCourse: {\n id: 'learner-dash.courseCard.banners.findAnotherCourse',\n description: 'Action prompt taking learners to course exploration',\n defaultMessage: 'Find another course',\n },\n upgradeDeadlinePassed: {\n id: 'learner-dash.courseCard.banners.upgradeDeadlinePassed',\n description: 'Audit upgrade deadline passed banner message',\n defaultMessage: 'Your upgrade deadline for this course has passed. To upgrade, enroll in a session that is farther in the future.',\n },\n exploreCourseDetails: {\n id: 'learner-dash.courseCard.banners.exploreCourseDetails',\n description: 'Action prompt taking learners to course details page',\n defaultMessage: 'Explore course details.',\n },\n certRestricted: {\n id: 'learner-dash.courseCard.banners.certificateRestricted',\n description: 'Restricted certificate warning message',\n defaultMessage: 'Your Certificate of Achievement is being held pending confirmation that the issuance of your Certificate is in compliance with strict U.S. embargoes on Iran, Cuba, Syria, and Sudan. If you think our system has mistakenly identified you as being connected with one of those countries, please let us know by contacting {supportEmail}.',\n },\n certRestrictedNoEmail: {\n id: 'learner-dash.courseCard.banners.certificateRestrictedNoEmail',\n description: 'Restricted certificate warning message',\n defaultMessage: 'Your Certificate of Achievement is being held pending confirmation that the issuance of your Certificate is in compliance with strict U.S. embargoes on Iran, Cuba, Syria, and Sudan. If you think our system has mistakenly identified you as being connected with one of those countries, please let us know.',\n },\n certRefundContactBilling: {\n id: 'learner-dash.courseCard.banners.certificateRefundContactBilling',\n description: 'Message to learners to contact billing for certificate refunds',\n defaultMessage: 'If you would like a refund on your Certificate of Achievement, please contact our billing address {billingEmail}',\n },\n certRefundContactBillingNoEmail: {\n id: 'learner-dash.courseCard.banners.certificateRefundContactBillingNoEmail',\n description: 'Message to learners to contact billing for certificate refunds',\n defaultMessage: 'If you would like a refund on your Certificate of Achievement, please contact us.',\n },\n passingGrade: {\n id: 'learner-dash.courseCard.banners.passingGrade',\n description: 'Message to learners with minimum passing grade for the course',\n defaultMessage: 'Grade required to pass the course: {minPassingGrade}\\u200f%',\n },\n notEligibleForCert: {\n id: 'learner-dash.courseCard.banners.notEligibleForCert',\n description: 'Certificate inelligibility message',\n defaultMessage: 'You are not eligible for a certificate.',\n },\n viewGrades: {\n id: 'learner-dash.courseCard.banners.viewGrades',\n description: 'Gradses link text',\n defaultMessage: 'View grades.',\n },\n certReady: {\n id: 'learner-dash.courseCard.banners.certReady',\n description: 'Certificate ready message',\n defaultMessage: 'Congratulations. Your certificate is ready.',\n },\n viewCertificate: {\n id: 'learner-dash.courseCard.banners.viewCertificate',\n description: 'Certificate link text',\n defaultMessage: 'View Certificate.',\n },\n certMinGrade: {\n id: 'learner-dash.courseCard.banners.certMinGrade',\n description: 'Passing grade requirement message',\n defaultMessage: 'Grade required for a certificate: {minPassingGrade}\\u200f%',\n },\n downloadCertificate: {\n id: 'learner-dash.courseCard.banners.downloadCertificate',\n description: 'Certificate download link text',\n defaultMessage: 'Download Certificate.',\n },\n gradeAndCertReadyAfter: {\n id: 'learner-dash.courseCard.banners.gradseAndCertReadyAfter',\n description: 'Grade and certificate availability date message',\n defaultMessage: 'Your grade and certificate will be ready after {availableDate}.',\n },\n entitlementUnavailable: {\n id: 'learner-dash.courseCard.banners.entitlementUnavailable',\n description: 'Entitlement course message when no sessions are available',\n defaultMessage: 'There are no sessions available at the moment. The course team will create new sessions soon. If no sessions appear, please contact {emailLink} for information.',\n },\n entitlementExpiringSoon: {\n id: 'learner-dash.courseCard.banners.entitlementExpiringSoon',\n description: 'Entitlement course message when the entitlement is expiring soon.',\n defaultMessage: 'You must {selectSessionButton} by {changeDeadline} to access the course.',\n },\n entitlementExpired: {\n id: 'learner-dash.courseCard.banners.entitlementExpired',\n description: 'Entitlement course message when the entitlement is expired.',\n defaultMessage: 'You can no longer change sessions.',\n },\n selectSession: {\n id: 'learner-dash.courseCard.banners.selectSession',\n description: 'Entitlement session selection link text',\n defaultMessage: 'select a session',\n },\n prerequisitesNotMet: {\n id: 'learner-dash.courseCard.banners.prerequisitesNotMet',\n description: 'Message to learners with unmet prerequisites',\n defaultMessage: 'You can\\'t access this course just yet because you have not met the pre-requisites.',\n },\n courseHasNotStarted: {\n id: 'learner-dash.courseCard.banners.courseHasNotStarted',\n description: 'Course has not started message',\n defaultMessage: 'You can\\'t access this course just yet because the course hasn\\'t started yet. The course will start on {startDate}.',\n },\n});\n\nexport default messages;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Hyperlink } from '@edx/paragon';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { utilHooks, reduxHooks } from 'hooks';\nimport Banner from 'components/Banner';\nimport messages from './messages';\n\nexport const CourseBanner = ({ cardId }) => {\n const {\n isVerified,\n isAuditAccessExpired,\n canUpgrade,\n coursewareAccess = {},\n } = reduxHooks.useCardEnrollmentData(cardId);\n const courseRun = reduxHooks.useCardCourseRunData(cardId);\n const { formatMessage } = useIntl();\n const formatDate = utilHooks.useFormatDate();\n\n const { hasUnmetPrerequisites, isStaff, isTooEarly } = coursewareAccess;\n\n if (isVerified) { return null; }\n\n return (\n <>\n {isAuditAccessExpired\n && (canUpgrade ? (\n \n {formatMessage(messages.auditAccessExpired)}\n {' '}\n {formatMessage(messages.upgradeToAccess)}\n \n ) : (\n \n {formatMessage(messages.auditAccessExpired)}\n {' '}\n \n {formatMessage(messages.findAnotherCourse)}\n \n \n ))}\n\n {courseRun.isActive && !canUpgrade && (\n \n {formatMessage(messages.upgradeDeadlinePassed)}\n {' '}\n \n {formatMessage(messages.exploreCourseDetails)}\n \n \n )}\n\n {(!isStaff && isTooEarly && courseRun.startDate) && (\n \n {formatMessage(messages.courseHasNotStarted, {\n startDate: formatDate(courseRun.startDate),\n })}\n \n )}\n {(!isStaff && hasUnmetPrerequisites) && (\n {formatMessage(messages.prerequisitesNotMet)}\n )}\n \n );\n};\nCourseBanner.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default CourseBanner;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { MailtoLink, Hyperlink } from '@edx/paragon';\nimport { CheckCircle } from '@edx/paragon/icons';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { utilHooks, reduxHooks } from 'hooks';\nimport Banner from 'components/Banner';\n\nimport messages from './messages';\n\nconst { useFormatDate } = utilHooks;\n\nexport const CertificateBanner = ({ cardId }) => {\n const certificate = reduxHooks.useCardCertificateData(cardId);\n const {\n isAudit,\n isVerified,\n } = reduxHooks.useCardEnrollmentData(cardId);\n const { isPassing } = reduxHooks.useCardGradeData(cardId);\n const { isArchived } = reduxHooks.useCardCourseRunData(cardId);\n const { minPassingGrade, progressUrl } = reduxHooks.useCardCourseRunData(cardId);\n const { supportEmail, billingEmail } = reduxHooks.usePlatformSettingsData();\n const { formatMessage } = useIntl();\n const formatDate = useFormatDate();\n\n const emailLink = address => {address};\n\n if (certificate.isRestricted) {\n return (\n \n { supportEmail ? formatMessage(messages.certRestricted, { supportEmail: emailLink(supportEmail) }) : formatMessage(messages.certRestrictedNoEmail)}\n {isVerified && ' '}\n {isVerified && (billingEmail ? formatMessage(messages.certRefundContactBilling, { billingEmail: emailLink(billingEmail) }) : formatMessage(messages.certRefundContactBillingNoEmail))}\n \n );\n }\n if (certificate.isDownloadable) {\n return (\n \n {formatMessage(messages.certReady)}\n {certificate.certPreviewUrl && (\n <>\n {' '}\n \n {formatMessage(messages.viewCertificate)}\n \n \n )}\n \n );\n }\n if (!isPassing) {\n if (isAudit) {\n return (\n \n {formatMessage(messages.passingGrade, { minPassingGrade })}\n \n );\n }\n if (isArchived) {\n return (\n \n {formatMessage(messages.notEligibleForCert)}\n {' '}\n {formatMessage(messages.viewGrades)}\n \n );\n }\n return (\n \n {formatMessage(messages.certMinGrade, { minPassingGrade })}\n \n );\n }\n if (certificate.isEarnedButUnavailable) {\n return (\n \n {formatMessage(\n messages.gradeAndCertReadyAfter,\n { availableDate: formatDate(certificate.availableDate) },\n )}\n \n );\n }\n\n return null;\n};\nCertificateBanner.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default CertificateBanner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Button, Form, FormControl } from '@edx/paragon';\n\nimport useCreditRequestFormData from './hooks';\n\nexport const CreditRequestForm = ({ requestData }) => {\n const { ref } = useCreditRequestFormData(requestData);\n if (requestData === null) {\n return null;\n }\n const { parameters, url } = requestData;\n return (\n \n {Object.keys(parameters).map((key) => (\n \n ))}\n \n \n )}\n \n \n);\nCreditContent.defaultProps = {\n action: null,\n requestData: null,\n};\nCreditContent.propTypes = {\n action: PropTypes.shape({\n href: PropTypes.string,\n onClick: PropTypes.func,\n message: PropTypes.string,\n disabled: PropTypes.bool,\n }),\n message: PropTypes.node.isRequired,\n requestData: PropTypes.shape({\n url: PropTypes.string,\n parameters: PropTypes.objectOf(PropTypes.string),\n }),\n};\n\nexport default CreditContent;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { reduxHooks } from 'hooks';\nimport { Hyperlink } from '@edx/paragon';\n\nexport const ProviderLink = ({ cardId }) => {\n const credit = reduxHooks.useCardCreditData(cardId);\n return (\n \n {credit.providerName}\n \n );\n};\nProviderLink.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default ProviderLink;\n","import { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n approved: {\n id: 'learner-dash.courseCard.banners.credit.approved',\n description: '',\n defaultMessage: '{congratulations} {providerName} has approved your request for course credit. To see your course credit, visit the {linkToProviderSite} website.',\n },\n congratulations: {\n id: 'learner-dash.courseCard.banners.credit.congratulations',\n description: '',\n defaultMessage: 'Congratulations!',\n },\n eligible: {\n id: 'learner-dash.courseCard.banners.credit.eligible',\n description: '',\n defaultMessage: 'You have completed this course and are eligible to purchase course credit. Select {getCredit} to get started.',\n },\n eligibleFromProvider: {\n id: 'learner-dash.courseCard.banners.credit.eligibleFromProvider',\n description: '',\n defaultMessage: 'You are now eligible for credit from {providerName}. Congratulations!',\n },\n getCredit: {\n id: 'learner-dash.courseCard.banners.credit.getCredit',\n description: '',\n defaultMessage: 'Get Credit',\n },\n mustRequest: {\n id: 'learner-dash.courseCard.banners.credit.mustRequest',\n description: '',\n defaultMessage: 'Thank you for your payment. To receive course credit, you must request credit at the {linkToProviderSite} website. Select {requestCredit} to get started',\n },\n received: {\n id: 'learner-dash.courseCard.banners.credit.received',\n description: '',\n defaultMessage: '{providerName} has received your course credit request. We will update you when credit processing is complete.',\n },\n rejected: {\n id: 'learner-dash.courseCard.banners.credit.rejected',\n description: '',\n defaultMessage: '{providerName} did not approve your request for course credit. For more information, contact {linkToProviderSite} directly.',\n },\n requestCredit: {\n id: 'learner-dash.courseCard.banners.credit.requestCredit',\n description: '',\n defaultMessage: 'Request Credit',\n },\n viewCredit: {\n id: 'learner-dash.courseCard.banners.credit.viewCredit',\n description: '',\n defaultMessage: 'View Credit',\n },\n viewDetails: {\n id: 'learner-dash.courseCard.banners.credit.viewDetails',\n description: '',\n defaultMessage: 'View Details',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { reduxHooks } from 'hooks';\nimport CreditContent from './components/CreditContent';\nimport ProviderLink from './components/ProviderLink';\n\nimport messages from './messages';\n\nexport const ApprovedContent = ({ cardId }) => {\n const { providerStatusUrl: href, providerName } = reduxHooks.useCardCreditData(cardId);\n const { isMasquerading } = reduxHooks.useMasqueradeData();\n const { formatMessage } = useIntl();\n return (\n {formatMessage(messages.congratulations)},\n linkToProviderSite: ,\n providerName,\n },\n )}\n />\n );\n};\nApprovedContent.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default ApprovedContent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { reduxHooks } from 'hooks';\nimport track from 'tracking';\n\nimport CreditContent from './components/CreditContent';\nimport messages from './messages';\n\nexport const EligibleContent = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const { providerName } = reduxHooks.useCardCreditData(cardId);\n const { courseId } = reduxHooks.useCardCourseRunData(cardId);\n\n const onClick = track.credit.purchase(courseId);\n const getCredit = formatMessage(messages.getCredit);\n const message = providerName\n ? formatMessage(messages.eligibleFromProvider, { providerName })\n : formatMessage(messages.eligible, { getCredit: ({getCredit}) });\n\n return (\n \n );\n};\nEligibleContent.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default EligibleContent;\n","import React from 'react';\n\nimport { StrictDict } from 'utils';\nimport { apiHooks } from 'hooks';\n\nimport * as module from './hooks';\n\nexport const state = StrictDict({\n creditRequestData: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useCreditRequestData = (cardId) => {\n const [requestData, setRequestData] = module.state.creditRequestData(null);\n const createCreditApiRequest = apiHooks.useCreateCreditRequest(cardId);\n const createCreditRequest = (e) => {\n e.preventDefault();\n createCreditApiRequest()\n .then((request) => {\n setRequestData(request.data);\n });\n };\n return { requestData, createCreditRequest };\n};\n\nexport default {\n useCreditRequestData,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { reduxHooks } from 'hooks';\nimport CreditContent from './components/CreditContent';\nimport ProviderLink from './components/ProviderLink';\nimport hooks from './hooks';\n\nimport messages from './messages';\n\nexport const MustRequestContent = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const { requestData, createCreditRequest } = hooks.useCreditRequestData(cardId);\n const { isMasquerading } = reduxHooks.useMasqueradeData();\n return (\n ),\n requestCredit: ({formatMessage(messages.requestCredit)}),\n })}\n requestData={requestData}\n />\n );\n};\nMustRequestContent.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default MustRequestContent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { reduxHooks } from 'hooks';\nimport CreditContent from './components/CreditContent';\nimport messages from './messages';\n\nexport const PendingContent = ({ cardId }) => {\n const { providerStatusUrl: href, providerName } = reduxHooks.useCardCreditData(cardId);\n const { isMasquerading } = reduxHooks.useMasqueradeData();\n const { formatMessage } = useIntl();\n return (\n \n );\n};\nPendingContent.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default PendingContent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { reduxHooks } from 'hooks';\nimport CreditContent from './components/CreditContent';\nimport ProviderLink from './components/ProviderLink';\nimport messages from './messages';\n\nexport const RejectedContent = ({ cardId }) => {\n const credit = reduxHooks.useCardCreditData(cardId);\n const { formatMessage } = useIntl();\n return (\n ),\n })}\n />\n );\n};\nRejectedContent.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default RejectedContent;\n","import { StrictDict } from 'utils';\n\nimport { reduxHooks } from 'hooks';\n\nimport ApprovedContent from './views/ApprovedContent';\nimport EligibleContent from './views/EligibleContent';\nimport MustRequestContent from './views/MustRequestContent';\nimport PendingContent from './views/PendingContent';\nimport RejectedContent from './views/RejectedContent';\n\nexport const statusComponents = StrictDict({\n pending: PendingContent,\n approved: ApprovedContent,\n rejected: RejectedContent,\n});\n\nexport const useCreditBannerData = (cardId) => {\n const credit = reduxHooks.useCardCreditData(cardId);\n const { supportEmail } = reduxHooks.usePlatformSettingsData();\n if (!credit.isEligible) { return null; }\n\n const { error, purchased, requestStatus } = credit;\n let ContentComponent = EligibleContent;\n if (purchased) {\n if (requestStatus == null) {\n ContentComponent = MustRequestContent;\n } else if (Object.keys(statusComponents).includes(requestStatus)) {\n ContentComponent = statusComponents[requestStatus];\n }\n // Current behavior is to show Elligible State if unknown request status is returned\n }\n return {\n ContentComponent,\n error,\n supportEmail,\n };\n};\n\nexport default {\n useCreditBannerData,\n};\n","import { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n error: {\n id: 'learner-dash.courseCard.banners.credit.error',\n description: '',\n defaultMessage: 'An error occurred with this transaction. For help, contact {supportEmailLink}.',\n },\n errorNoEmail: {\n id: 'learner-dash.courseCard.banners.credit.errorNoEmail',\n description: '',\n defaultMessage: 'An error occurred with this transaction.',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport Banner from 'components/Banner';\n\nimport { MailtoLink } from '@edx/paragon';\nimport hooks from './hooks';\nimport messages from './messages';\n\nexport const CreditBanner = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const hookData = hooks.useCreditBannerData(cardId);\n if (hookData === null) {\n return null;\n }\n\n const { ContentComponent, error, supportEmail } = hookData;\n const supportEmailLink = ({supportEmail});\n return (\n \n {error && (\n

\n {supportEmail ? formatMessage(messages.error, { supportEmailLink }) : formatMessage(messages.errorNoEmail)}\n

\n )}\n \n
\n );\n};\nCreditBanner.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default CreditBanner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button, MailtoLink } from '@edx/paragon';\n\nimport { utilHooks, reduxHooks } from 'hooks';\n\nimport Banner from 'components/Banner';\nimport messages from './messages';\n\nexport const EntitlementBanner = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const {\n isEntitlement,\n hasSessions,\n isFulfilled,\n changeDeadline,\n showExpirationWarning,\n isExpired,\n } = reduxHooks.useCardEntitlementData(cardId);\n const { supportEmail } = reduxHooks.usePlatformSettingsData();\n const openSessionModal = reduxHooks.useUpdateSelectSessionModalCallback(cardId);\n const formatDate = utilHooks.useFormatDate();\n\n if (!isEntitlement) {\n return null;\n }\n\n if (!hasSessions && !isFulfilled) {\n return (\n \n {formatMessage(messages.entitlementUnavailable, {\n emailLink: supportEmail && {supportEmail},\n })}\n \n );\n }\n if (showExpirationWarning) {\n return (\n \n {formatMessage(messages.entitlementExpiringSoon, {\n changeDeadline: formatDate(changeDeadline),\n selectSessionButton: (\n \n ),\n })}\n \n );\n }\n if (isExpired) {\n return (\n \n {formatMessage(messages.entitlementExpired)}\n \n );\n }\n return null;\n};\nEntitlementBanner.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default EntitlementBanner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport const ProgramsList = ({ programs }) => (\n \n);\n\nProgramsList.propTypes = {\n programs: PropTypes.arrayOf(\n PropTypes.shape({\n programUrl: PropTypes.string,\n title: PropTypes.string,\n }),\n ).isRequired,\n};\n\nexport default ProgramsList;\n","import { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n relatedPrograms: {\n id: 'learner-dash.courseCard.banners.relatedPrograms',\n description: 'title for related programs banner',\n defaultMessage: 'Related Programs: ',\n },\n expandBanner: {\n id: 'learner-dash.courseCard.banners.expandBanner',\n description: 'expand banner button text',\n defaultMessage: 'More',\n },\n expandBannerAlt: {\n id: 'learner-dash.courseCard.banners.expandBannerAlt',\n description: 'expand banner button alt text',\n defaultMessage: 'Expand banner icon',\n },\n collapseBanner: {\n id: 'learner-dash.courseCard.banners.collapseBanner',\n description: 'collapse banner button text',\n defaultMessage: 'Less',\n },\n collapseBannerAlt: {\n id: 'learner-dash.courseCard.banners.collapseBannerAlt',\n description: 'collapse banner button alt text',\n defaultMessage: 'Collapse banner icon',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Program } from '@edx/paragon/icons';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { reduxHooks } from 'hooks';\nimport Banner from 'components/Banner';\n\nimport ProgramList from './ProgramsList';\nimport messages from './messages';\n\nexport const RelatedProgramsBanner = ({ cardId }) => {\n const { formatMessage } = useIntl();\n\n const programData = reduxHooks.useCardRelatedProgramsData(cardId);\n\n return (\n programData?.length > 0 && (\n \n {formatMessage(messages.relatedPrograms)}\n \n \n )\n );\n};\nRelatedProgramsBanner.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default RelatedProgramsBanner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { reduxHooks } from 'hooks';\n\nimport CourseBanner from './CourseBanner';\nimport CertificateBanner from './CertificateBanner';\nimport CreditBanner from './CreditBanner';\nimport EntitlementBanner from './EntitlementBanner';\nimport RelatedProgramsBanner from './RelatedProgramsBanner';\n\nexport const CourseCardBanners = ({ cardId }) => {\n const { isEnrolled } = reduxHooks.useCardEnrollmentData(cardId);\n return (\n
\n \n \n \n {isEnrolled && }\n {isEnrolled && }\n
\n );\n};\nCourseCardBanners.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default CourseCardBanners;\n","export default __webpack_public_path__ + \"917f898551500732cc35a2f63da125f0.png\";","import { reduxHooks } from 'hooks';\n\nexport const useActionDisabledState = (cardId) => {\n const { isMasquerading } = reduxHooks.useMasqueradeData();\n const {\n canUpgrade, hasAccess, isAudit, isAuditAccessExpired,\n } = reduxHooks.useCardEnrollmentData(cardId);\n const {\n isEntitlement, isFulfilled, canChange, hasSessions,\n } = reduxHooks.useCardEntitlementData(cardId);\n\n const { resumeUrl, homeUrl, upgradeUrl } = reduxHooks.useCardCourseRunData(cardId);\n\n const disableBeginCourse = !homeUrl || (isMasquerading || !hasAccess || (isAudit && isAuditAccessExpired));\n const disableResumeCourse = !resumeUrl || (isMasquerading || !hasAccess || (isAudit && isAuditAccessExpired));\n const disableViewCourse = !hasAccess || (isAudit && isAuditAccessExpired);\n const disableSelectSession = !isEntitlement || isMasquerading || !hasAccess || (!canChange || !hasSessions);\n const disableUpgradeCourse = !upgradeUrl || (isMasquerading && !canUpgrade);\n\n const disableCourseTitle = (isEntitlement && !isFulfilled) || disableViewCourse;\n\n return {\n disableBeginCourse,\n disableResumeCourse,\n disableViewCourse,\n disableUpgradeCourse,\n disableSelectSession,\n disableCourseTitle,\n };\n};\n\nexport default useActionDisabledState;\n","import { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n bannerAlt: {\n id: 'learner-dash.courseCard.bannerAlt',\n description: 'Course card banner alt-text',\n defaultMessage: 'Course thumbnail',\n },\n verifiedBanner: {\n id: 'learner-dash.courseCard.verifiedBanner',\n description: 'Course card verified banner',\n defaultMessage: 'Verified',\n },\n verifiedHoverDescription: {\n id: 'learner-dash.courseCard.verifiedHoverDescription',\n description: 'Course card verified hover description',\n defaultMessage: 'You\\'re enrolled as a verified student',\n },\n verifiedBannerRibbonAlt: {\n id: 'learner-dash.courseCard.verifiedBannerRibbonAlt',\n description: 'Course card verified banner ribbon alt-text',\n defaultMessage: 'ID Verified Ribbon/Badge',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { Badge } from '@edx/paragon';\n\nimport track from 'tracking';\nimport { reduxHooks } from 'hooks';\nimport verifiedRibbon from 'assets/verified-ribbon.png';\nimport useActionDisabledState from './hooks';\n\nimport messages from '../messages';\n\nconst { courseImageClicked } = track.course;\n\nexport const CourseCardImage = ({ cardId, orientation }) => {\n const { formatMessage } = useIntl();\n const { bannerImgSrc } = reduxHooks.useCardCourseData(cardId);\n const { homeUrl } = reduxHooks.useCardCourseRunData(cardId);\n const { isVerified } = reduxHooks.useCardEnrollmentData(cardId);\n const { disableCourseTitle } = useActionDisabledState(cardId);\n const handleImageClicked = reduxHooks.useTrackCourseEvent(courseImageClicked, cardId, homeUrl);\n const wrapperClassName = `pgn__card-wrapper-image-cap overflow-visible ${orientation}`;\n const image = (\n <>\n \n {\n isVerified && (\n \n \n {formatMessage(messages.verifiedBanner)}\n \n {formatMessage(messages.verifiedBannerRibbonAlt)}\n \n )\n }\n \n );\n return disableCourseTitle\n ? (
{image}
)\n : (\n \n {image}\n \n );\n};\nCourseCardImage.propTypes = {\n cardId: PropTypes.string.isRequired,\n orientation: PropTypes.string.isRequired,\n};\n\nCourseCardImage.defaultProps = {};\n\nexport default CourseCardImage;\n","import React from 'react';\n\nimport { StrictDict } from 'utils';\nimport { reduxHooks, apiHooks } from 'hooks';\n\nimport * as module from './hooks';\n\nexport const state = StrictDict({\n toggle: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useEmailData = ({\n closeModal,\n cardId,\n}) => {\n const { hasOptedOutOfEmail } = reduxHooks.useCardEnrollmentData(cardId);\n const [isOptedOut, setIsOptedOut] = module.state.toggle(hasOptedOutOfEmail);\n const updateEmailSettings = apiHooks.useUpdateEmailSettings(cardId);\n const onToggle = () => setIsOptedOut(!isOptedOut);\n const save = () => {\n updateEmailSettings(!isOptedOut);\n closeModal();\n };\n\n return {\n onToggle,\n save,\n isOptedOut,\n };\n};\n\nexport default useEmailData;\n","/* eslint-disable quotes */\nimport { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n header: {\n id: 'learner-dash.emailSettings.header',\n description: 'Header for email settings modal',\n defaultMessage: 'Receive course emails?',\n },\n emailsOff: {\n id: 'learner-dash.emailSettings.emailsOff',\n description: 'Toggle text for email settings modal when email is disabled',\n defaultMessage: 'Course emails are off',\n },\n emailsOn: {\n id: 'learner-dash.emailSettings.emailsOn',\n description: 'Toggle text for email settings modal when email is enabled',\n defaultMessage: 'Course emails are on',\n },\n description: {\n id: 'learner-dash.emailSettings.description',\n description: 'Description for email settings modal',\n defaultMessage: 'Course emails include important information about your course from instructors.',\n },\n nevermind: {\n id: 'learner-dash.emailSettings.nevermind',\n description: 'Cancel action for email settings modal',\n defaultMessage: 'Never mind',\n },\n save: {\n id: 'learner-dash.emailSettings.save',\n description: 'Save action for email settings modal',\n defaultMessage: 'Save settings',\n },\n\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n Form,\n ModalDialog,\n} from '@edx/paragon';\n\nimport { nullMethod } from 'utils';\n\nimport useEmailData from './hooks';\nimport messages from './messages';\n\nexport const EmailSettingsModal = ({\n closeModal,\n show,\n cardId,\n}) => {\n const {\n isOptedOut,\n onToggle,\n save,\n } = useEmailData({ closeModal, cardId });\n const { formatMessage } = useIntl();\n\n return (\n \n
\n

{formatMessage(messages.header)}

\n \n {formatMessage(isOptedOut ? messages.emailsOff : messages.emailsOn)}\n \n

{formatMessage(messages.description)}

\n \n \n \n \n
\n \n );\n};\nEmailSettingsModal.propTypes = {\n cardId: PropTypes.string.isRequired,\n closeModal: PropTypes.func.isRequired,\n show: PropTypes.bool.isRequired,\n};\n\nexport default EmailSettingsModal;\n","/* eslint-disable quotes */\nimport { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n confirmHeader: {\n id: 'learner-dash.unenrollConfirm.confirm.header',\n description: 'Header for confirm unenroll modal',\n defaultMessage: 'Unenroll from course?',\n },\n confirmCancel: {\n id: 'learner-dash.unenrollConfirm.confirm.cancel',\n description: 'Cancel action for confirm unenroll modal',\n defaultMessage: 'Never mind',\n },\n confirmUnenroll: {\n id: 'learner-dash.unenrollConfirm.confirm.unenroll',\n description: 'Confirm action for confirm unenroll modal',\n defaultMessage: 'Unenroll',\n },\n reasonHeading: {\n id: 'learner-dash.unenrollConfirm.confirm.reason.heading',\n description: 'Heading for unenroll reason modal',\n defaultMessage: `What's your main reason for unenrolling?`,\n },\n reasonSkip: {\n id: 'learner-dash.unenrollConfirm.confirm.reason.skip',\n description: 'Skip action for unenroll reason modal',\n defaultMessage: 'Skip survey',\n },\n reasonSubmit: {\n id: 'learner-dash.unenrollConfirm.confirm.reason.submit',\n description: 'Submit action for unenroll reason modal',\n defaultMessage: 'Submit reason',\n },\n finishHeading: {\n id: 'learner-dash.unenrollConfirm.confirm.finish.heading',\n description: 'Heading for unenroll finish modal',\n defaultMessage: 'You are unenrolled',\n },\n finishThanksText: {\n id: 'learner-dash.unenrollConfirm.confirm.finish.thanks-text',\n description: 'Thank you message on unenroll modal for providing a reason',\n defaultMessage: 'Thank you for sharing your reason for unenrolling. ',\n },\n finishText: {\n id: 'learner-dash.unenrollConfirm.confirm.finish.text',\n description: 'Text for unenroll finish modal',\n defaultMessage: 'This course will be removed from your dashboard.',\n },\n finishReturn: {\n id: 'learner-dash.unenrollConfirm.confirm.finish.return',\n description: 'Return action for unenroll finish modal',\n defaultMessage: 'Return to dashboard',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n} from '@edx/paragon';\n\nimport messages from './messages';\n\nexport const ConfirmPane = ({\n handleClose,\n handleConfirm,\n}) => {\n const { formatMessage } = useIntl();\n return (\n <>\n

{formatMessage(messages.confirmHeader)}

\n \n \n \n \n \n );\n};\nConfirmPane.propTypes = {\n handleClose: PropTypes.func.isRequired,\n handleConfirm: PropTypes.func.isRequired,\n};\n\nexport default ConfirmPane;\n","/* eslint-disable quotes */\nimport { StrictDict } from 'utils';\n\nexport const reasonKeys = StrictDict({\n prereqs: 'prereqs',\n difficulty: 'difficulty',\n goals: 'goals',\n broken: 'broken',\n time: 'time',\n browse: 'browse',\n support: 'support',\n quality: 'quality',\n easy: 'easy',\n custom: 'custom',\n});\n\nexport const order = [\n reasonKeys.prereqs,\n reasonKeys.difficulty,\n reasonKeys.goals,\n reasonKeys.broken,\n reasonKeys.time,\n reasonKeys.browse,\n reasonKeys.support,\n reasonKeys.quality,\n reasonKeys.easy,\n];\n\nconst messages = StrictDict({\n [reasonKeys.prereqs]: {\n id: 'learner-dash.unenrollConfirm.reasons.prereqs',\n description: 'Unenroll reason option - missing prerequisites',\n defaultMessage: `I don't have the academic or language prerequisites`,\n },\n [reasonKeys.difficulty]: {\n id: 'learner-dash.unenrollConfirm.reasons.difficulty',\n description: 'Unenroll reason option - material is too hard',\n defaultMessage: 'The course material was too hard',\n },\n [reasonKeys.goals]: {\n id: 'learner-dash.unenrollConfirm.reasons.goals',\n description: 'Unenroll reason option - goals-related',\n defaultMessage: `This won't help me reach my goals`,\n },\n [reasonKeys.broken]: {\n id: 'learner-dash.unenrollConfirm.reasons.broken',\n description: 'Unenroll reason option - something broken',\n defaultMessage: 'Something was broken',\n },\n [reasonKeys.time]: {\n id: 'learner-dash.unenrollConfirm.reasons.time',\n description: 'Unenroll reason option - time-related',\n defaultMessage: `I don't have the time`,\n },\n [reasonKeys.browse]: {\n id: 'learner-dash.unenrollConfirm.reasons.browse',\n description: 'Unenroll reason option - wanted to browse',\n defaultMessage: 'I just wanted to browse the material',\n },\n [reasonKeys.support]: {\n id: 'learner-dash.unenrollConfirm.reasons.support',\n description: 'Unenroll reason option - lacking support',\n defaultMessage: `I don't have enough support`,\n },\n [reasonKeys.quality]: {\n id: 'learner-dash.unenrollConfirm.reasons.quality',\n description: 'Unenroll reason option - quality-related',\n defaultMessage: 'I am not happy with the quality of the content',\n },\n [reasonKeys.easy]: {\n id: 'learner-dash.unenrollConfirm.reasons.easy',\n description: 'Unenroll reason option - too easy',\n defaultMessage: 'The course material was too easy',\n },\n customPlaceholder: {\n id: 'learner-dash.unenrollConfirm.reasons.custom-placeholder',\n description: 'Unenroll custom reason option placeholder text',\n defaultMessage: 'Other',\n },\n});\n\nexport default {\n messages,\n order,\n reasonKeys,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n Form,\n} from '@edx/paragon';\n\nimport constants from '../constants';\nimport messages from './messages';\n\nexport const ReasonPane = ({\n reason,\n}) => {\n const { formatMessage } = useIntl();\n const option = (key) => (\n \n {formatMessage(constants.messages[key])}\n \n );\n return (\n <>\n

{formatMessage(messages.reasonHeading)}

\n \n {constants.order.map(option)}\n \n \n \n \n \n \n \n \n \n );\n};\nReasonPane.propTypes = {\n reason: PropTypes.shape({\n value: PropTypes.string,\n handleSkip: PropTypes.func,\n hasReason: PropTypes.bool,\n selectOption: PropTypes.func,\n customOption: PropTypes.shape({\n value: PropTypes.string,\n onChange: PropTypes.func,\n }),\n selected: PropTypes.string,\n handleSubmit: PropTypes.func.isRequired,\n }).isRequired,\n};\n\nexport default ReasonPane;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n} from '@edx/paragon';\n\nimport messages from './messages';\n\nexport const FinishedPane = ({\n gaveReason,\n handleClose,\n}) => {\n const { formatMessage } = useIntl();\n return (\n <>\n

{formatMessage(messages.finishHeading)}

\n

\n {gaveReason && formatMessage(messages.finishThanksText)}\n {formatMessage(messages.finishText)}\n

\n \n \n \n \n );\n};\nFinishedPane.propTypes = {\n handleClose: PropTypes.func.isRequired,\n gaveReason: PropTypes.bool.isRequired,\n};\n\nexport default FinishedPane;\n","import React from 'react';\n\nimport {\n apiHooks,\n reduxHooks,\n utilHooks,\n} from 'hooks';\nimport { StrictDict } from 'utils';\nimport track from 'tracking';\n\nimport * as module from './reasons';\n\nexport const state = StrictDict({\n customOption: (val) => React.useState(val), // eslint-disable-line\n isSkipped: (val) => React.useState(val), // eslint-disable-line\n selectedReason: (val) => React.useState(val), // eslint-disable-line\n isSubmitted: (val) => React.useState(val), //eslint-disable-line\n});\n\nexport const useUnenrollReasons = ({\n cardId,\n}) => {\n // The selected option element from the menu\n const [selectedReason, setSelectedReason] = module.state.selectedReason(null);\n // Custom option element entry value\n const [customOption, setCustomOption] = module.state.customOption('');\n\n // Did the user choose to skip selecting a reason?\n const [isSkipped, setIsSkipped] = module.state.isSkipped(false);\n // Did the user submit an unenrollment reason\n const [isSubmitted, setIsSubmitted] = module.state.isSubmitted(false);\n\n const { isEntitlement } = reduxHooks.useCardEntitlementData(cardId);\n\n const submittedReason = selectedReason === 'custom' ? customOption : selectedReason;\n const hasReason = ![null, ''].includes(submittedReason);\n\n const handleTrackReasons = reduxHooks.useTrackCourseEvent(\n track.engagement.unenrollReason,\n cardId,\n submittedReason,\n isEntitlement,\n );\n\n const unenrollFromCourse = apiHooks.useUnenrollFromCourse(cardId);\n\n const handleClear = () => {\n setSelectedReason(null);\n setCustomOption('');\n setIsSkipped(false);\n setIsSubmitted(false);\n };\n\n const handleSkip = () => {\n setIsSkipped(true);\n unenrollFromCourse();\n };\n\n const handleSubmit = (e) => {\n handleTrackReasons(e);\n setIsSubmitted(true);\n unenrollFromCourse();\n };\n\n const handleCustomOptionChange = utilHooks.useValueCallback(setCustomOption);\n const handleSelectOption = utilHooks.useValueCallback(setSelectedReason);\n\n return {\n customOption: { value: customOption, onChange: handleCustomOptionChange },\n handleClear,\n handleSkip,\n handleSubmit,\n hasReason,\n isSkipped,\n isSubmitted,\n selectOption: handleSelectOption,\n submittedReason,\n };\n};\n","import React from 'react';\n\nimport { StrictDict } from 'utils';\nimport { apiHooks } from 'hooks';\n\nimport { useUnenrollReasons } from './reasons';\nimport * as module from '.';\n\nexport const state = StrictDict({\n confirmed: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const modalStates = StrictDict({\n confirm: 'confirm',\n reason: 'reason',\n finished: 'finished',\n});\n\nexport const useUnenrollData = ({ closeModal, cardId }) => {\n const [isConfirmed, setIsConfirmed] = module.state.confirmed(false);\n const confirm = () => setIsConfirmed(true);\n const reason = useUnenrollReasons({ cardId });\n const refreshList = apiHooks.useInitializeApp();\n\n let modalState;\n if (isConfirmed) {\n modalState = (reason.isSubmitted || reason.isSkipped)\n ? modalStates.finished : modalStates.reason;\n } else {\n modalState = modalStates.confirm;\n }\n\n const close = () => {\n closeModal();\n setIsConfirmed(false);\n reason.handleClear();\n };\n const closeAndRefresh = () => {\n refreshList();\n close();\n };\n\n return {\n isConfirmed,\n confirm,\n reason,\n close,\n closeAndRefresh,\n modalState,\n };\n};\n\nexport default useUnenrollData;\n","import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ModalDialog } from '@edx/paragon';\n\nimport { nullMethod } from 'utils';\n\nimport ConfirmPane from './components/ConfirmPane';\nimport ReasonPane from './components/ReasonPane';\nimport FinishedPane from './components/FinishedPane';\n\nimport { useUnenrollData, modalStates } from './hooks';\n\nexport const UnenrollConfirmModal = ({\n closeModal,\n show,\n cardId,\n}) => {\n const {\n confirm,\n reason,\n closeAndRefresh,\n close,\n modalState,\n } = useUnenrollData({ closeModal, cardId });\n const showFullscreen = modalState === modalStates.reason;\n return (\n \n \n {(modalState === modalStates.confirm) && (\n \n )}\n {(modalState === modalStates.finished) && (\n \n )}\n {(modalState === modalStates.reason) && (\n \n )}\n \n \n );\n};\nUnenrollConfirmModal.propTypes = {\n closeModal: PropTypes.func.isRequired,\n show: PropTypes.bool.isRequired,\n cardId: PropTypes.string.isRequired,\n};\n\nexport default UnenrollConfirmModal;\n","import { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n unenroll: {\n id: 'learner-dash.courseCardMenu.unenroll',\n description: 'Course unenroll menu button',\n defaultMessage: 'Unenroll',\n },\n dropdownAlt: {\n id: 'learner-dash.courseCardMenu.dropdownAlt',\n description: 'Course action menu alt-text',\n defaultMessage: 'Course actions dropdown',\n },\n emailSettings: {\n id: 'learner-dash.courseCardMenu.emailSettings',\n description: 'Course email settings menu button',\n defaultMessage: 'Email settings',\n },\n shareToFacebook: {\n id: 'learner-dash.courseCardMenu.shareToFacebook',\n description: 'Course Facebook Sharing button',\n defaultMessage: 'Share to Facebook',\n },\n shareToTwitter: {\n id: 'learner-dash.courseCardMenu.shareToTwitter',\n description: 'Course Twitter Sharing button',\n defaultMessage: 'Share to Twitter',\n },\n shareQuote: {\n id: 'learner-dash.courseCardMenu.shareQuote',\n description: 'Social sharing quote',\n defaultMessage: 'I\\'m taking {courseName} online with {socialBrand}. Check it out!',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as ReactShare from 'react-share';\n\nimport { StrictDict } from '@edx/react-unit-test-utils';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Dropdown } from '@edx/paragon';\n\nimport track from 'tracking';\nimport { reduxHooks } from 'hooks';\n\nimport messages from './messages';\n\nexport const testIds = StrictDict({\n emailSettingsModalToggle: 'emailSettingsModalToggle',\n});\n\nexport const SocialShareMenu = ({ cardId, emailSettings }) => {\n const { formatMessage } = useIntl();\n\n const { courseName } = reduxHooks.useCardCourseData(cardId);\n const { isEmailEnabled, isExecEd2UCourse } = reduxHooks.useCardEnrollmentData(cardId);\n const { twitter, facebook } = reduxHooks.useCardSocialSettingsData(cardId);\n const { isMasquerading } = reduxHooks.useMasqueradeData();\n\n const handleTwitterShare = reduxHooks.useTrackCourseEvent(track.socialShare, cardId, 'twitter');\n const handleFacebookShare = reduxHooks.useTrackCourseEvent(track.socialShare, cardId, 'facebook');\n\n if (isExecEd2UCourse) {\n return null;\n }\n\n return (\n <>\n {isEmailEnabled && (\n \n {formatMessage(messages.emailSettings)}\n \n )}\n {facebook.isEnabled && (\n \n {formatMessage(messages.shareToFacebook)}\n \n )}\n {twitter.isEnabled && (\n \n {formatMessage(messages.shareToTwitter)}\n \n )}\n \n );\n};\nSocialShareMenu.propTypes = {\n cardId: PropTypes.string.isRequired,\n emailSettings: PropTypes.shape({\n show: PropTypes.func,\n }).isRequired,\n};\n\nexport default SocialShareMenu;\n","import { useKeyedState, StrictDict } from '@edx/react-unit-test-utils';\n\nimport track from 'tracking';\nimport { reduxHooks } from 'hooks';\n\nexport const stateKeys = StrictDict({\n isUnenrollConfirmVisible: 'isUnenrollConfirmVisible',\n isEmailSettingsVisible: 'isEmailSettingsVisible',\n});\n\nexport const useUnenrollData = () => {\n const [isVisible, setIsVisible] = useKeyedState(stateKeys.isUnenrollConfirmVisible, false);\n return {\n show: () => setIsVisible(true),\n hide: () => setIsVisible(false),\n isVisible,\n };\n};\n\nexport const useEmailSettings = () => {\n const [isVisible, setIsVisible] = useKeyedState(stateKeys.isEmailSettingsVisible, false);\n return {\n show: () => setIsVisible(true),\n hide: () => setIsVisible(false),\n isVisible,\n };\n};\n\nexport const useHandleToggleDropdown = (cardId) => {\n const trackCourseEvent = reduxHooks.useTrackCourseEvent(\n track.course.courseOptionsDropdownClicked,\n cardId,\n );\n return (isOpen) => {\n if (isOpen) { trackCourseEvent(); }\n };\n};\n\nexport const useOptionVisibility = (cardId) => {\n const { isEnrolled, isEmailEnabled } = reduxHooks.useCardEnrollmentData(cardId);\n const { twitter, facebook } = reduxHooks.useCardSocialSettingsData(cardId);\n const { isEarned } = reduxHooks.useCardCertificateData(cardId);\n\n const shouldShowUnenrollItem = isEnrolled && !isEarned;\n const shouldShowDropdown = (\n shouldShowUnenrollItem\n || isEmailEnabled\n || facebook.isEnabled\n || twitter.isEnabled\n );\n\n return {\n shouldShowUnenrollItem,\n shouldShowDropdown,\n };\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Dropdown, Icon, IconButton } from '@edx/paragon';\nimport { MoreVert } from '@edx/paragon/icons';\nimport { StrictDict } from '@edx/react-unit-test-utils';\n\nimport EmailSettingsModal from 'containers/EmailSettingsModal';\nimport UnenrollConfirmModal from 'containers/UnenrollConfirmModal';\nimport { reduxHooks } from 'hooks';\nimport SocialShareMenu from './SocialShareMenu';\nimport {\n useEmailSettings,\n useUnenrollData,\n useHandleToggleDropdown,\n useOptionVisibility,\n} from './hooks';\n\nimport messages from './messages';\n\nexport const testIds = StrictDict({\n unenrollModalToggle: 'unenrollModalToggle',\n});\n\nexport const CourseCardMenu = ({ cardId }) => {\n const { formatMessage } = useIntl();\n\n const emailSettings = useEmailSettings();\n const unenrollModal = useUnenrollData();\n const handleToggleDropdown = useHandleToggleDropdown(cardId);\n const { shouldShowUnenrollItem, shouldShowDropdown } = useOptionVisibility(cardId);\n const { isMasquerading } = reduxHooks.useMasqueradeData();\n const { isEmailEnabled } = reduxHooks.useCardEnrollmentData(cardId);\n\n if (!shouldShowDropdown) {\n return null;\n }\n\n return (\n <>\n \n \n \n {shouldShowUnenrollItem && (\n \n {formatMessage(messages.unenroll)}\n \n )}\n \n \n \n \n {isEmailEnabled && (\n \n )}\n \n );\n};\nCourseCardMenu.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default CourseCardMenu;\n","import React from 'react';\nimport { Button } from '@edx/paragon';\n\nimport useIsCollapsed from './hooks';\n\nexport const ActionButton = (props) => {\n const isSmall = useIsCollapsed();\n return (\n \n );\n};\n\nexport default ActionButton;\n","import { useWindowSize, breakpoints } from '@edx/paragon';\n\nexport const useIsCollapsed = () => {\n const { width } = useWindowSize();\n return width < breakpoints.medium.maxWidth && width > breakpoints.small.maxWidth;\n};\n\nexport default useIsCollapsed;\n","import { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n upgrade: {\n id: 'learner-dash.courseCard.actions.upgrade',\n description: 'Course card upgrade button text',\n defaultMessage: 'Upgrade',\n },\n beginCourse: {\n id: 'learner-dash.courseCard.actions.beginCourse',\n description: 'Course card begin-course button text',\n defaultMessage: 'Begin Course',\n },\n resume: {\n id: 'learner-dash.courseCard.actions.resume',\n description: 'Course card resume button text',\n defaultMessage: 'Resume',\n },\n viewCourse: {\n id: 'learner-dash.courseCard.actions.viewCourse',\n description: 'Course card view-course button text',\n defaultMessage: 'View Course',\n },\n selectSession: {\n id: 'learner-dash.courseCard.actions.selectSession',\n description: 'Course card select-session button text',\n defaultMessage: 'Select Session',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Locked } from '@edx/paragon/icons';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport track from 'tracking';\nimport { reduxHooks } from 'hooks';\nimport useActionDisabledState from '../hooks';\n\nimport ActionButton from './ActionButton';\nimport messages from './messages';\n\nexport const UpgradeButton = ({ cardId }) => {\n const { formatMessage } = useIntl();\n\n const { upgradeUrl } = reduxHooks.useCardCourseRunData(cardId);\n const { disableUpgradeCourse } = useActionDisabledState(cardId);\n\n const trackUpgradeClick = reduxHooks.useTrackCourseEvent(\n track.course.upgradeClicked,\n cardId,\n upgradeUrl,\n );\n\n const enabledProps = {\n as: 'a',\n href: upgradeUrl,\n onClick: trackUpgradeClick,\n };\n return (\n \n {formatMessage(messages.upgrade)}\n \n );\n};\nUpgradeButton.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\nexport default UpgradeButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { reduxHooks } from 'hooks';\nimport useActionDisabledState from '../hooks';\nimport ActionButton from './ActionButton';\nimport messages from './messages';\n\nexport const SelectSessionButton = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const { disableSelectSession } = useActionDisabledState(cardId);\n const openSessionModal = reduxHooks.useUpdateSelectSessionModalCallback(cardId);\n return (\n \n {formatMessage(messages.selectSession)}\n \n );\n};\nSelectSessionButton.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\nexport default SelectSessionButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Locked } from '@edx/paragon/icons';\nimport track from 'tracking';\nimport { reduxHooks } from 'hooks';\nimport useActionDisabledState from '../hooks';\nimport ActionButton from './ActionButton';\nimport messages from './messages';\n\nexport const BeginCourseButton = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const { homeUrl } = reduxHooks.useCardCourseRunData(cardId);\n const execEdTrackingParam = reduxHooks.useCardExecEdTrackingParam(cardId);\n const { disableBeginCourse } = useActionDisabledState(cardId);\n\n const handleClick = reduxHooks.useTrackCourseEvent(\n track.course.enterCourseClicked,\n cardId,\n homeUrl + execEdTrackingParam,\n );\n return (\n \n {formatMessage(messages.beginCourse)}\n \n \n );\n};\nBeginCourseButton.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\nexport default BeginCourseButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport track from 'tracking';\nimport { reduxHooks } from 'hooks';\nimport useActionDisabledState from '../hooks';\nimport ActionButton from './ActionButton';\nimport messages from './messages';\n\nexport const ResumeButton = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const { resumeUrl } = reduxHooks.useCardCourseRunData(cardId);\n const execEdTrackingParam = reduxHooks.useCardExecEdTrackingParam(cardId);\n const { disableResumeCourse } = useActionDisabledState(cardId);\n\n const handleClick = reduxHooks.useTrackCourseEvent(\n track.course.enterCourseClicked,\n cardId,\n resumeUrl + execEdTrackingParam,\n );\n return (\n \n {formatMessage(messages.resume)}\n \n );\n};\nResumeButton.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\nexport default ResumeButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport track from 'tracking';\nimport { reduxHooks } from 'hooks';\nimport useActionDisabledState from '../hooks';\nimport ActionButton from './ActionButton';\nimport messages from './messages';\n\nexport const ViewCourseButton = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const { homeUrl } = reduxHooks.useCardCourseRunData(cardId);\n const { disableViewCourse } = useActionDisabledState(cardId);\n\n const handleClick = reduxHooks.useTrackCourseEvent(\n track.course.enterCourseClicked,\n cardId,\n homeUrl,\n );\n return (\n \n {formatMessage(messages.viewCourse)}\n \n );\n};\nViewCourseButton.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\nexport default ViewCourseButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ActionRow } from '@edx/paragon';\n\nimport { reduxHooks } from 'hooks';\n\nimport UpgradeButton from './UpgradeButton';\nimport SelectSessionButton from './SelectSessionButton';\nimport BeginCourseButton from './BeginCourseButton';\nimport ResumeButton from './ResumeButton';\nimport ViewCourseButton from './ViewCourseButton';\n\nexport const CourseCardActions = ({ cardId }) => {\n const { isEntitlement, isFulfilled } = reduxHooks.useCardEntitlementData(cardId);\n const {\n isVerified,\n hasStarted,\n isExecEd2UCourse,\n } = reduxHooks.useCardEnrollmentData(cardId);\n const { isArchived } = reduxHooks.useCardCourseRunData(cardId);\n\n return (\n \n {!(isEntitlement || isVerified || isExecEd2UCourse) && }\n {isEntitlement && (isFulfilled\n ? \n : \n )}\n {(isArchived && !isEntitlement) && (\n \n )}\n {!(isArchived || isEntitlement) && (hasStarted\n ? \n : \n )}\n \n );\n};\nCourseCardActions.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default CourseCardActions;\n","import { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n accessExpired: {\n id: 'learner-dash.courseCard.CourseCardDetails.accessExpired',\n description: 'Course access expiration date message on course card for expired access.',\n defaultMessage: 'Access expired {accessExpirationDate}',\n },\n accessExpires: {\n id: 'learner-dash.courseCard.CourseCardDetails.accessExpires',\n description: 'Course access expiration date message on course card.',\n defaultMessage: 'Access expires {accessExpirationDate}',\n },\n courseEnded: {\n id: 'learner-dash.courseCard.CourseCardDetails.courseEnded',\n description: 'Course ended message on course card.',\n defaultMessage: 'Course ended {endDate}',\n },\n courseEnds: {\n id: 'learner-dash.courseCard.CourseCardDetails.courseEnds',\n description: 'Course ending message on course card.',\n defaultMessage: 'Course ends {endDate}',\n },\n courseStarts: {\n id: 'learner-dash.courseCard.CourseCardDetails.courseStarts',\n description: 'Course start date message on course card.',\n defaultMessage: 'Course starts {startDate}',\n },\n unknownProviderName: {\n id: 'learner-dash.courseCard.CourseCardDetails.unknownProviderName',\n description: 'Provider name display when name is unknown',\n defaultMessage: 'Unknown',\n },\n changeOrLeaveSessionButton: {\n id: 'learner-dash.courseCard.CourseCardDetails.changeOrLeaveSessionButton',\n description: 'Button for trigger change or leave session for entitlement course',\n defaultMessage: 'Change or leave session',\n },\n});\n\nexport default messages;\n","import { useIntl } from '@edx/frontend-platform/i18n';\nimport { utilHooks, reduxHooks } from 'hooks';\n\nimport * as hooks from './hooks';\nimport messages from './messages';\n\nexport const useAccessMessage = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const enrollment = reduxHooks.useCardEnrollmentData(cardId);\n const courseRun = reduxHooks.useCardCourseRunData(cardId);\n const formatDate = utilHooks.useFormatDate();\n if (!courseRun.isStarted) {\n if (!courseRun.startDate) { return null; }\n const startDate = formatDate(courseRun.startDate);\n return formatMessage(messages.courseStarts, { startDate });\n }\n if (enrollment.isEnrolled) {\n const { isArchived, endDate } = courseRun;\n const {\n accessExpirationDate,\n isAuditAccessExpired,\n } = enrollment;\n\n if (enrollment.isAudit && accessExpirationDate) {\n return formatMessage(\n isAuditAccessExpired ? messages.accessExpired : messages.accessExpires,\n { accessExpirationDate: formatDate(accessExpirationDate) },\n );\n }\n if (!endDate) { return null; }\n return formatMessage(\n isArchived ? messages.courseEnded : messages.courseEnds,\n { endDate: formatDate(endDate) },\n );\n }\n return null;\n};\n\nexport const useCardDetailsData = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const providerName = reduxHooks.useCardProviderData(cardId).name;\n const { courseNumber } = reduxHooks.useCardCourseData(cardId);\n const {\n isEntitlement,\n isFulfilled,\n canChange,\n } = reduxHooks.useCardEntitlementData(cardId);\n\n const openSessionModal = reduxHooks.useUpdateSelectSessionModalCallback(cardId);\n\n return {\n providerName: providerName || formatMessage(messages.unknownProviderName),\n accessMessage: hooks.useAccessMessage({ cardId }),\n isEntitlement,\n isFulfilled,\n canChange,\n openSessionModal,\n courseNumber,\n changeOrLeaveSessionMessage: formatMessage(messages.changeOrLeaveSessionButton),\n };\n};\n\nexport default useCardDetailsData;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Button } from '@edx/paragon';\n\nimport useCardDetailsData from './hooks';\nimport './index.scss';\n\nexport const CourseCardDetails = ({ cardId }) => {\n const {\n providerName,\n accessMessage,\n isEntitlement,\n isFulfilled,\n canChange,\n openSessionModal,\n courseNumber,\n changeOrLeaveSessionMessage,\n } = useCardDetailsData({ cardId });\n\n return (\n \n {providerName} • {courseNumber}\n {!(isEntitlement && !isFulfilled) && accessMessage && (\n ` • ${accessMessage}`\n )}\n {isEntitlement && isFulfilled && canChange ? (\n <>\n {' • '}\n \n \n ) : null}\n \n );\n};\n\nCourseCardDetails.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nCourseCardDetails.defaultProps = {};\n\nexport default CourseCardDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport track from 'tracking';\nimport { reduxHooks } from 'hooks';\nimport useActionDisabledState from './hooks';\n\nconst { courseTitleClicked } = track.course;\n\nexport const CourseCardTitle = ({ cardId }) => {\n const { courseName } = reduxHooks.useCardCourseData(cardId);\n const { homeUrl } = reduxHooks.useCardCourseRunData(cardId);\n const handleTitleClicked = reduxHooks.useTrackCourseEvent(\n courseTitleClicked,\n cardId,\n homeUrl,\n );\n const { disableCourseTitle } = useActionDisabledState(cardId);\n return (\n

\n {disableCourseTitle ? (\n {courseName}\n ) : (\n \n {courseName}\n \n )}\n

\n );\n};\n\nCourseCardTitle.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nCourseCardTitle.defaultProps = {};\n\nexport default CourseCardTitle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Card } from '@edx/paragon';\n\nimport { useIsCollapsed } from './hooks';\nimport CourseCardBanners from './components/CourseCardBanners';\nimport CourseCardImage from './components/CourseCardImage';\nimport CourseCardMenu from './components/CourseCardMenu';\nimport CourseCardActions from './components/CourseCardActions';\nimport CourseCardDetails from './components/CourseCardDetails';\nimport CourseCardTitle from './components/CourseCardTitle';\n\nimport './CourseCard.scss';\n\nexport const CourseCard = ({\n cardId,\n}) => {\n const isCollapsed = useIsCollapsed();\n const orientation = isCollapsed ? 'vertical' : 'horizontal';\n return (\n
\n \n
\n
\n \n \n }\n actions={}\n />\n \n \n \n \n \n \n \n
\n \n
\n
\n
\n );\n};\nCourseCard.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default CourseCard;\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31;\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\";\nvar SvgEmptyCourse = function SvgEmptyCourse(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 236,\n height: 157,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FBFAF9\",\n d: \"M234.6 77.19a35.372 35.372 0 0 0-.133-6.863A35.963 35.963 0 0 0 222.8 48.029c-6.638-5.824-11.306-4.057-19.463-5.508a16.711 16.711 0 0 0-9.742 1.223c.428-12.578-4.521-22.828-14.47-30.553-20.392-15.795-44.324-9.234-60.246 8.726-7.316-13.291-18.504-23.04-34.751-20.272C70.159 4.024 58.492 16.306 56.84 30.364c-5.9-2.21-12.737-1.178-18.437 1.583-5.701 2.761-10.517 7.054-15.03 11.502C17.93 48.803 12.662 54.59 9.64 61.593c-2.05 4.75-2.058 9.61-2.117 14.676 0 .84 1.652 13.564 3.127 12.327-22.353 18.741-.634 53.35 22.656 58.505 10.326 2.29 21.853-.199 29.7-7.305a90.056 90.056 0 0 0 31.572 13.395c15.598 3.321 32.325 4.595 47.702-.457 3.908-1.281 7.33-3.247 11.062-4.934 4.513-2.047 5.236-.25 9.934 1.26 7.891 2.533 16.631 1.715 24.456-.663 8.363-2.541 17.206-8.27 17.818-16.981 8.923.611 18.297-3.299 23.194-10.766 4.897-7.466 4.425-18.365-1.91-24.66 1.158 1.148 6.549-10.781 6.792-11.893.494-2.276.819-4.584.974-6.907Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D7D3D1\",\n d: \"M119.712 156.438a121.7 121.7 0 0 1-25.215-2.945 91.08 91.08 0 0 1-31.462-13.292c-7.677 6.819-19.072 9.573-29.81 7.202-14.012-3.1-27.766-17.062-31.38-31.789-2.589-10.486.273-20.06 8.046-26.849-1.586-1.789-2.744-12.061-2.736-12.518v-.353c.059-5.022.118-9.757 2.146-14.47 3.083-7.106 8.459-12.997 13.813-18.24 4.44-4.33 9.33-8.8 15.119-11.59 6.232-3.012 12.87-3.682 18.305-1.76C58.396 15.842 70.152 3.64 84.068 1.262 98.2-1.146 110.258 5.77 118.953 21.27c8.069-8.925 18.106-14.89 28.306-16.738 11.298-2.047 22.361.847 32.088 8.365 9.971 7.725 14.89 17.909 14.632 30.28a17.127 17.127 0 0 1 9.425-1.017c2.053.356 4.124.601 6.203.737 4.816.36 8.614.64 13.437 4.897a36.436 36.436 0 0 1 11.8 22.525c.269 2.303.314 4.626.133 6.937h-.369.369a49.519 49.519 0 0 1-1.003 6.93c-.192.868-4.381 10.492-6.424 12.039 5.826 6.296 6.52 16.936 1.475 24.632-4.72 7.201-13.776 11.472-23.165 10.957-.59 5.788-5.612 13.166-18.054 16.936-6.261 1.9-15.627 3.564-24.669.663a30.867 30.867 0 0 1-3.127-1.215c-2.257-.994-3.392-1.473-6.542-.059-1.157.523-2.308 1.09-3.414 1.635a60.464 60.464 0 0 1-7.663 3.314 72.266 72.266 0 0 1-22.678 3.35Zm-56.706-17.04a.453.453 0 0 1 .206.059 90.125 90.125 0 0 0 31.44 13.343c18.85 4.014 34.397 3.866 47.517-.441a59.36 59.36 0 0 0 7.537-3.277c1.114-.545 2.264-1.112 3.437-1.642 3.444-1.569 4.838-.958 7.146.051.993.451 2.01.847 3.046 1.186 8.85 2.849 18.069 1.215 24.234-.663 12.346-3.748 17.169-11.046 17.568-16.649a.358.358 0 0 1 .123-.254.358.358 0 0 1 .267-.092c9.249.633 18.224-3.528 22.863-10.604 4.978-7.578 4.159-18.211-1.858-24.198a.363.363 0 0 1 0-.523.367.367 0 0 1 .471-.036c1.21-.398 5.9-10.177 6.218-11.664.496-2.248.826-4.53.988-6.826a34.31 34.31 0 0 0-.133-6.797 35.614 35.614 0 0 0-11.549-22.091c-4.632-4.087-8.319-4.367-12.995-4.713a59.563 59.563 0 0 1-6.283-.736 16.34 16.34 0 0 0-9.522 1.2.365.365 0 0 1-.361-.03.363.363 0 0 1-.162-.324c.42-12.378-4.425-22.555-14.33-30.25-9.536-7.364-20.436-10.235-31.506-8.225-10.162 1.9-20.193 7.88-28.209 16.944a.408.408 0 0 1-.317.125.384.384 0 0 1-.288-.191C107.757 2.477 93.907.334 84.194 1.99 70.432 4.333 58.831 16.542 57.209 30.386a.36.36 0 0 1-.494.294c-5.325-2.003-11.94-1.399-18.158 1.547-5.678 2.776-10.538 7.157-14.927 11.487-5.302 5.214-10.62 11.046-13.65 18.027-1.97 4.573-2.029 9.241-2.088 14.182v.354c0 1.31 1.534 11.325 2.545 12.017a.37.37 0 0 1 .494.06.375.375 0 0 1-.044.522C2.944 95.555-.007 104.98 2.56 115.437c3.555 14.477 17.095 28.203 30.828 31.244 10.605 2.349 21.86-.42 29.367-7.216a.368.368 0 0 1 .25-.067Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F0CC00\",\n d: \"M84.01 113.228c-7.53 0-7.575-1.097-8.976-5.155-2.522-7.319-7.286-12.938-12.257-18.704-18.438-21.355-12.14-54.764 19.234-60.382 21.27-3.837 39.051 7.4 42.694 28.07 1.807 10.258-.479 19.993-6.232 28.616-3.916 5.89-7.146 11.833-8.275 18.895-.737 4.551-.391 7.239-8.392 7.239-2.899 0-5.79.449-8.68.692-3.04.169-6.07.729-9.116.729Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M84.01 113.559c-7.206 0-7.803-.935-9.16-4.919l-.162-.493c-2.552-7.408-7.457-13.086-12.191-18.579-9.684-11.222-12.892-26.119-8.364-38.88 4.19-11.782 14.065-19.669 27.812-22.15 10.863-1.952 21.195 0 29.087 5.485 7.456 5.155 12.316 13.108 14.012 22.887a39.03 39.03 0 0 1-6.283 28.888c-3.4 5.088-7.029 11.288-8.224 18.748-.059.375-.11.736-.162 1.097-.568 3.881-.936 6.451-8.592 6.451a56.233 56.233 0 0 0-5.9.419c-.922.096-1.836.192-2.758.273-1.032.088-2.058.199-3.09.317-1.998.266-4.01.419-6.025.456Zm6.07-85.014a44.734 44.734 0 0 0-8.003.736c-13.474 2.43-23.15 10.125-27.287 21.672-4.425 12.518-1.283 27.128 8.23 38.151 4.78 5.545 9.728 11.274 12.324 18.822l.17.493c1.216 3.572 1.511 4.418 8.459 4.418a53.533 53.533 0 0 0 5.973-.449 110.23 110.23 0 0 1 3.113-.324 84.873 84.873 0 0 0 2.743-.272 57.225 57.225 0 0 1 5.967-.42c7.013 0 7.293-1.944 7.861-5.825.052-.353.104-.736.17-1.104 1.209-7.592 4.89-13.888 8.334-19.043 5.863-8.785 7.935-18.32 6.173-28.35-1.689-9.573-6.439-17.327-13.733-22.408a35.623 35.623 0 0 0-20.495-6.097Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m80.466 122.338 26.909-2.219a2.033 2.033 0 0 0 1.861-2.192l-.392-4.734a2.034 2.034 0 0 0-2.196-1.858l-26.908 2.218a2.034 2.034 0 0 0-1.861 2.193l.391 4.733a2.035 2.035 0 0 0 2.196 1.859Z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M80.293 122.72a2.4 2.4 0 0 1-2.397-2.21l-.391-4.727a2.405 2.405 0 0 1 2.213-2.592l26.903-2.209a2.422 2.422 0 0 1 1.755.57c.486.414.789 1.003.841 1.639l.391 4.727a2.402 2.402 0 0 1-1.307 2.337c-.282.143-.589.23-.905.255l-26.904 2.21h-.2Zm26.513-11.017h-.133l-26.904 2.21a1.655 1.655 0 0 0-1.137.582 1.666 1.666 0 0 0-.39 1.214l.391 4.728a1.673 1.673 0 0 0 1.8 1.524l26.904-2.209a1.674 1.674 0 0 0 1.136-.582 1.661 1.661 0 0 0 .39-1.215l-.398-4.727a1.662 1.662 0 0 0-1.659-1.525Z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m81.198 131.116 26.908-2.218a2.034 2.034 0 0 0 1.861-2.193l-.391-4.733a2.036 2.036 0 0 0-2.196-1.859l-26.909 2.219a2.033 2.033 0 0 0-1.86 2.192l.39 4.734a2.034 2.034 0 0 0 2.197 1.858Z\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M81.023 131.505a2.409 2.409 0 0 1-1.631-.637 2.399 2.399 0 0 1-.766-1.573l-.391-4.734a2.401 2.401 0 0 1 2.212-2.585l26.904-2.209a2.426 2.426 0 0 1 1.757.567 2.416 2.416 0 0 1 .839 1.642l.391 4.735a2.4 2.4 0 0 1-1.307 2.336 2.406 2.406 0 0 1-.905.256l-26.904 2.209h-.2v-.007Zm26.513-11.017h-.14l-26.904 2.209a1.67 1.67 0 0 0-1.52 1.797l.391 4.735a1.663 1.663 0 0 0 1.8 1.517l26.904-2.209a1.664 1.664 0 0 0 1.448-1.151c.066-.209.09-.428.071-.646l-.391-4.735a1.67 1.67 0 0 0-1.659-1.517Z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M82.638 131.011c.273 3.314 5.9 5.552 12.5 5 6.601-.552 11.801-3.682 11.513-6.981l-24.013 1.981Z\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M93.11 136.468c-5.973 0-10.575-2.209-10.84-5.427a.375.375 0 0 1 .338-.398l24.013-1.951a.372.372 0 0 1 .399.338c.295 3.564-4.912 6.812-11.852 7.364-.698.049-1.384.074-2.058.074Zm-10.052-5.155c.288 1.311 1.542 2.46 3.584 3.277a19.207 19.207 0 0 0 8.467 1.031c6.158-.508 11.026-3.255 11.18-6.222l-23.23 1.914Z\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002121\",\n d: \"M85.41 108.751a.375.375 0 0 1-.33-.253.368.368 0 0 1-.016-.145 92.147 92.147 0 0 0-1.084-22.886 25.259 25.259 0 0 1-5.715-2.018 18.126 18.126 0 0 1-7.759-6.745c-1.91-3.226-2.212-7.106-.855-10.125a3.328 3.328 0 0 1 2.382-2.092c2.279-.456 4.734 1.62 5.428 2.268 4.336 4.02 5.723 10.935 6.836 16.488l.14.736.177.906c3.62.743 7.354.743 10.974 0a44.43 44.43 0 0 1 .59-5.479c1.01-5.89 2.545-10.272 4.573-12.975a7.207 7.207 0 0 1 5.18-2.466 7.221 7.221 0 0 1 5.344 2.09 7.729 7.729 0 0 1 1.187 7.364 14.185 14.185 0 0 1-4.388 6.112 26.644 26.644 0 0 1-11.8 5.95c-.265 7.092.937 14.234 2.11 21.193l.147.869a.377.377 0 0 1-.302.427.367.367 0 0 1-.42-.302l-.148-.869c-1.173-6.936-2.368-14.065-2.132-21.156a27.925 27.925 0 0 1-10.804.037 92.854 92.854 0 0 1 1.047 22.776.372.372 0 0 1-.13.21.384.384 0 0 1-.231.085ZM72.668 65.157c-.173.002-.346.02-.516.052A2.641 2.641 0 0 0 70.3 66.88a10.418 10.418 0 0 0 .818 9.448 17.493 17.493 0 0 0 7.456 6.465c1.67.82 3.427 1.453 5.237 1.886-.037-.192-.082-.39-.118-.582l-.14-.736c-1.1-5.45-2.456-12.224-6.638-16.09-1.136-1.053-2.803-2.114-4.248-2.114Zm33.527-.53h-.273a5.998 5.998 0 0 0-4.602 2.172c-1.955 2.615-3.444 6.87-4.425 12.659a45.927 45.927 0 0 0-.568 5.198 26.017 26.017 0 0 0 11.254-5.736 13.533 13.533 0 0 0 4.174-5.795 7.011 7.011 0 0 0-1.039-6.627 5.957 5.957 0 0 0-4.521-1.87Z\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#03C7E8\",\n d: \"M121.268 110.474c.302-1.171.59-2.335.9-3.498.162-.604.354-1.2.545-1.797a1.667 1.667 0 0 1 1.719-1.244c.929 0 1.851.147 2.78.221.488.07.982.095 1.475.073.369-.017.72-.16.996-.405a77.776 77.776 0 0 0 2.817-3.358 1.562 1.562 0 0 0 .192-1.472c-.317-1.097-.679-2.21-.996-3.27a4.693 4.693 0 0 1-.221-1.303 1.225 1.225 0 0 1 .361-.877 20.336 20.336 0 0 1 5.303-2.945 1.374 1.374 0 0 1 1.615.442c.782.906 1.593 1.79 2.345 2.717a2.215 2.215 0 0 0 2.257.92c1.202-.184 2.426-.301 3.636-.456a1.391 1.391 0 0 0 1.054-.736c.384-.678.738-1.37 1.114-2.047.376-.678.634-1.171.981-1.746a1.4 1.4 0 0 1 1.637-.736c1.733.45 3.466.913 5.163 1.421a1.478 1.478 0 0 1 1.04 1.554c0 .942-.155 1.878-.229 2.82-.037.442-.066.884-.066 1.333a1.814 1.814 0 0 0 .685 1.473 60.305 60.305 0 0 1 2.847 2.327 1.99 1.99 0 0 0 2.021.397c1.187-.353 2.36-.736 3.547-1.097a1.618 1.618 0 0 1 2.095.795 129.307 129.307 0 0 1 2.33 4.19 1.717 1.717 0 0 1 .06 1.961 1.7 1.7 0 0 1-.487.491c-.583.538-1.217 1.017-1.815 1.54-.427.368-.848.736-1.246 1.163a1.569 1.569 0 0 0-.465 1.296c.133 1.252.251 2.511.413 3.77.034.342.158.669.359.948.2.28.471.501.784.643.738.361 1.475.699 2.169 1.068.452.219.89.465 1.312.736a1.471 1.471 0 0 1 .738 1.767 112.52 112.52 0 0 1-1.364 4.72 3.522 3.522 0 0 1-.318.678 1.34 1.34 0 0 1-1.364.773l-3.326-.28h-.251a2.362 2.362 0 0 0-2.434 1.075c-.56.781-1.209 1.473-1.821 2.209a2.375 2.375 0 0 0-.421 2.423 66.575 66.575 0 0 1 1.003 3.13c.303 1.053.141 1.62-.855 2.209-1.431.832-2.884 1.62-4.351 2.386a1.48 1.48 0 0 1-2.036-.361c-.649-.692-1.246-1.429-1.851-2.15-1.305-1.562-1.615-1.679-3.636-1.422l-2.36.324a2.217 2.217 0 0 0-1.77 1.23c-.42.832-.811 1.679-1.254 2.496a7.849 7.849 0 0 1-.818 1.201 1.11 1.11 0 0 1-1.232.419c-1.637-.463-3.282-.927-4.926-1.406a2.761 2.761 0 0 1-.635-.302 1.336 1.336 0 0 1-.744-1.377c.088-1.097.184-2.209.272-3.277v-1.001a1.732 1.732 0 0 0-.663-1.421c-.93-.737-1.851-1.473-2.781-2.21a1.906 1.906 0 0 0-1.917-.309c-1.04.346-2.095.663-3.142.994l-.118.037c-1.379.361-1.844.221-2.552-1.016a81.202 81.202 0 0 1-2.212-4.19 1.47 1.47 0 0 1 .42-2.04 32.787 32.787 0 0 1 2.471-2.062c.416-.283.739-.681.93-1.146a2.56 2.56 0 0 0 .147-1.468c-.17-1.126-.288-2.26-.436-3.387a1.407 1.407 0 0 0-.225-.66 1.412 1.412 0 0 0-.512-.474c-.996-.53-1.999-1.046-2.95-1.583a3.14 3.14 0 0 1-1.615-1.473l-.118-.368Zm36.661 3.49a10.793 10.793 0 0 0-7.505-9.46 10.812 10.812 0 0 0-4.221-.466 10.986 10.986 0 0 0-7.228 3.86 10.952 10.952 0 0 0-2.537 7.782 10.801 10.801 0 0 0 3.747 7.302 10.839 10.839 0 0 0 7.802 2.573c6.933-.545 10.62-6.878 9.942-11.591ZM125.973 28.36c.177-.736.354-1.398.539-2.098.096-.36.214-.736.332-1.075a.998.998 0 0 1 1.025-.736c.56 0 1.113.088 1.674.132.298.044.599.059.9.044a.953.953 0 0 0 .597-.243 43.825 43.825 0 0 0 1.689-2.017.947.947 0 0 0 .125-.884c-.199-.663-.413-1.31-.604-1.966a2.852 2.852 0 0 1-.133-.788.727.727 0 0 1 .221-.523 12.15 12.15 0 0 1 3.186-1.767.819.819 0 0 1 .966.265c.472.545.959 1.075 1.409 1.635a1.355 1.355 0 0 0 1.357.552c.737-.11 1.475-.184 2.212-.28a.815.815 0 0 0 .627-.449c.229-.405.443-.817.671-1.23.229-.412.384-.736.59-1.045a.837.837 0 0 1 .981-.427 88.92 88.92 0 0 1 3.12.846.888.888 0 0 1 .619.936c0 .567-.088 1.126-.132 1.693 0 .265-.045.538-.045.803a1.085 1.085 0 0 0 .413.898c.576.464 1.158.913 1.711 1.4a1.213 1.213 0 0 0 1.217.242c.738-.22 1.416-.449 2.124-.662a.967.967 0 0 1 1.261.478c.487.832.952 1.672 1.402 2.511a1.031 1.031 0 0 1 .184.791 1.038 1.038 0 0 1-.443.682c-.346.324-.737.611-1.084.92-.346.31-.516.457-.737.737a.937.937 0 0 0-.28.78c.081.737.147 1.473.243 2.268a1.212 1.212 0 0 0 .693.958l1.306.633c.265.14.531.28.781.442a.897.897 0 0 1 .428 1.06c-.265.943-.531 1.878-.811 2.813a1.841 1.841 0 0 1-.192.405.82.82 0 0 1-.819.471l-2.035-.184h-.148a1.41 1.41 0 0 0-1.475.648c-.331.464-.737.891-1.091 1.34a1.466 1.466 0 0 0-.251 1.473c.214.619.421 1.245.605 1.878a.963.963 0 0 1 .038.78.953.953 0 0 1-.562.545c-.855.501-1.725.972-2.61 1.473a.91.91 0 0 1-1.225-.22c-.383-.42-.737-.855-1.113-1.29-.782-.942-.966-1.016-2.213-.854l-1.416.192a1.315 1.315 0 0 0-1.062.736c-.251.494-.487 1.002-.737 1.473-.14.261-.306.508-.494.736a.682.682 0 0 1-.738.258l-2.95-.847a2.026 2.026 0 0 1-.383-.184.81.81 0 0 1-.472-.817c.051-.656.11-1.31.162-1.966v-.604a1.062 1.062 0 0 0-.398-.854l-1.675-1.318a1.138 1.138 0 0 0-1.15-.192c-.627.206-1.261.398-1.888.597h-.074c-.826.22-1.106.132-1.534-.604-.428-.736-.907-1.672-1.335-2.518a.873.873 0 0 1-.001-.99.878.878 0 0 1 .252-.24 29.19 29.19 0 0 1 1.475-1.237 1.552 1.552 0 0 0 .649-1.569c-.103-.677-.17-1.362-.258-2.04a.871.871 0 0 0-.457-.685c-.598-.316-1.202-.625-1.8-.95a1.873 1.873 0 0 1-.966-.86l.007-.31Zm22.03 2.085A6.483 6.483 0 0 0 145.725 26a6.501 6.501 0 0 0-4.766-1.512 6.642 6.642 0 0 0-4.352 2.318 6.623 6.623 0 0 0-1.548 4.677 6.495 6.495 0 0 0 2.251 4.39 6.51 6.51 0 0 0 4.689 1.545 6.434 6.434 0 0 0 5.72-4.444 6.415 6.415 0 0 0 .284-2.53Z\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m47.164 119.318.207-13.402 13.031 3.188 1.564 8.476 1.748 9.469-8.349-3.902-8.2-3.829Z\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M63.714 127.418a.414.414 0 0 1-.155-.037l-16.55-7.732a.386.386 0 0 1-.214-.339l.207-13.402a.41.41 0 0 1 .147-.287.385.385 0 0 1 .31-.066l13.01 3.196a.36.36 0 0 1 .273.287l3.31 17.945a.361.361 0 0 1-.132.361.426.426 0 0 1-.206.074Zm-16.181-8.299 15.694 7.363-3.142-17.01-12.353-3.026-.2 12.673Z\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E1DDDB\",\n d: \"m49.918 113.751 4.413-3.402-33.739-43.633-4.413 3.402 33.739 43.633Z\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M49.915 114.126h-.052a.333.333 0 0 1-.243-.14L15.88 70.349a.368.368 0 0 1-.074-.273.39.39 0 0 1 .14-.243l4.425-3.402a.355.355 0 0 1 .509.067l33.74 43.63a.366.366 0 0 1-.059.515l-4.425 3.402a.351.351 0 0 1-.221.081Zm-33.232-43.94 33.298 43.042 3.828-2.946-33.29-43.048-3.836 2.953Z\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"m20.585 66.719 6.077-1.245 33.74 43.63-6.077 1.252-33.74-43.637Z\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M54.325 110.724a.373.373 0 0 1-.295-.147l-33.74-43.63a.375.375 0 0 1 .22-.59l6.078-1.244a.368.368 0 0 1 .369.133l33.74 43.637a.37.37 0 0 1-.22.582l-6.078 1.252-.074.007ZM21.241 66.961l33.24 42.99 5.272-1.09-33.21-42.982-5.302 1.082ZM13.424 75.68l2.75-5.552 33.741 43.63-2.75 5.552-33.741-43.63Z\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D23228\",\n d: \"m55.365 123.147.517-2.533 3.997-3.078 2.087.044 1.748 9.469-8.349-3.902Z\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M63.714 127.418a.414.414 0 0 1-.155-.037l-8.356-3.903a.37.37 0 0 1-.2-.405l.524-2.533a.348.348 0 0 1 .133-.214l3.99-3.078a.464.464 0 0 1 .236-.081l2.094.052a.35.35 0 0 1 .347.294l1.748 9.47a.361.361 0 0 1-.133.361.425.425 0 0 1-.228.074Zm-7.936-4.477 7.449 3.475-1.564-8.475-1.666-.037-3.784 2.945-.435 2.092Z\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M32.916 17.882C21.094 20.378 12.959 29.2 14.744 37.588c1.032 4.867 5.162 8.52 10.811 10.235 1.874 3.196 5.664 7.01 13.32 9.83a21.346 21.346 0 0 1-4.942-8.762 30.466 30.466 0 0 0 5.428-.648c11.8-2.496 19.957-11.318 18.18-19.706-1.778-8.387-12.81-13.151-24.625-10.655Z\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M38.867 58a.348.348 0 0 1-.125 0c-6.416-2.364-10.93-5.678-13.437-9.868-5.9-1.848-9.912-5.655-10.93-10.47-1.844-8.572 6.468-17.607 18.46-20.163 11.998-2.533 23.238 2.371 25.074 10.943 1.837 8.571-6.468 17.6-18.437 20.14a30.84 30.84 0 0 1-5.023.64 21.251 21.251 0 0 0 4.72 8.145.368.368 0 0 1-.258.633h-.044Zm-5.9-39.764c-11.586 2.46-19.603 11.097-17.87 19.27.967 4.58 4.816 8.211 10.562 9.964.086.03.161.086.213.162 2.213 3.785 6.151 6.855 11.72 9.13a21.696 21.696 0 0 1-4.02-7.775.369.369 0 0 1 .346-.464c1.8-.054 3.593-.269 5.355-.64 11.6-2.453 19.632-11.098 17.899-19.272-1.733-8.174-12.582-12.82-24.183-10.375h-.022ZM201.309 113.64l-55.748-18.719 23.873-70.868 44.479 14.941 7.397 15.265-20.001 59.381Z\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M201.331 114.008h-.118l-55.747-18.726a.358.358 0 0 1-.249-.322.36.36 0 0 1 .02-.142l23.865-70.868a.38.38 0 0 1 .472-.228l44.479 14.933a.366.366 0 0 1 .214.192l7.375 15.265c.037.09.037.19 0 .28l-20.008 59.381a.38.38 0 0 1-.07.126.365.365 0 0 1-.115.087.397.397 0 0 1-.118.022Zm-55.312-19.315 55.054 18.483 19.831-58.91-7.257-14.977-43.984-14.728-23.644 70.132Z\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m195.697 117.3-55.748-18.719 23.873-70.868L208.3 42.646l7.398 15.273-20.001 59.381Z\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M195.697 117.646a.334.334 0 0 1-.118 0l-55.748-18.719a.368.368 0 0 1-.229-.464l23.866-70.868a.388.388 0 0 1 .192-.214.32.32 0 0 1 .272 0l44.486 14.934a.353.353 0 0 1 .214.192l7.375 15.265a.355.355 0 0 1 0 .272l-20.001 59.388a.338.338 0 0 1-.184.207.33.33 0 0 1-.125.007Zm-55.313-19.322 55.054 18.49 19.832-58.91-7.265-14.993-43.955-14.734-23.666 70.147Z\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m208.3 42.646-4.233 11.363 11.631 3.91-7.398-15.273Z\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M215.698 58.28a.325.325 0 0 1-.118 0l-11.631-3.91a.36.36 0 0 1-.214-.185.395.395 0 0 1 0-.287l4.234-11.362a.369.369 0 0 1 .536-.187.371.371 0 0 1 .142.158l7.375 15.265a.36.36 0 0 1-.059.404.375.375 0 0 1-.265.104Zm-11.159-4.5 10.451 3.483-6.638-13.71-3.813 10.227Z\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D7D3D1\",\n d: \"M205.83 63.353a.325.325 0 0 1-.118 0l-40.15-13.498a.37.37 0 0 1-.159-.59.35.35 0 0 1 .252-.128.36.36 0 0 1 .143.019l40.15 13.483a.372.372 0 0 1 .16.67.373.373 0 0 1-.278.066v-.022ZM203.293 70.886a.325.325 0 0 1-.118 0l-40.15-13.483a.377.377 0 0 1-.236-.464.37.37 0 0 1 .472-.235l40.15 13.483a.372.372 0 0 1 .16.67.373.373 0 0 1-.278.066v-.037ZM200.756 78.42a.325.325 0 0 1-.118 0l-40.15-13.498a.389.389 0 0 1-.25-.486.386.386 0 0 1 .486-.25l40.15 13.482a.372.372 0 1 1-.118.737v.014ZM198.219 85.982a.325.325 0 0 1-.118 0l-40.15-13.483a.378.378 0 0 1-.235-.464.368.368 0 0 1 .472-.236l40.149 13.447a.372.372 0 0 1 .16.67.373.373 0 0 1-.278.066ZM195.682 93.486a.325.325 0 0 1-.118 0l-40.15-13.483a.389.389 0 0 1-.25-.486.386.386 0 0 1 .486-.25l40.15 13.482a.372.372 0 1 1-.118.737ZM181.337 97.028a.304.304 0 0 1-.118 0l-28.342-9.507a.393.393 0 0 1-.226-.191.38.38 0 0 1-.024-.295.376.376 0 0 1 .191-.226.39.39 0 0 1 .295-.024l28.342 9.514a.375.375 0 0 1 .229.47.361.361 0 0 1-.347.259ZM136.136 64.936a1.845 1.845 0 0 1-1.808-2.202 1.846 1.846 0 0 1 3.345-.656 1.84 1.84 0 0 1-1.537 2.858Zm0-2.945a1.105 1.105 0 1 0 1.106 1.105 1.1 1.1 0 0 0-1.106-1.098v-.007ZM31.706 123.795a1.853 1.853 0 0 1-1.026-.307 1.836 1.836 0 0 1-.79-1.889 1.84 1.84 0 0 1 1.446-1.45 1.844 1.844 0 0 1 2.206 1.805 1.84 1.84 0 0 1-1.836 1.841Zm0-2.946a1.107 1.107 0 0 0-1.093 1.316 1.105 1.105 0 1 0 1.093-1.316ZM43.882 65.842a.37.37 0 0 1-.369-.368V61.63a.368.368 0 0 1 .738 0v3.844a.375.375 0 0 1-.369.368Z\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D7D3D1\",\n d: \"M45.807 63.89h-3.85a.37.37 0 1 1 0-.736h3.85a.37.37 0 0 1 .369.369.376.376 0 0 1-.369.368ZM177.532 136.792a.37.37 0 0 1-.369-.369v-3.843a.37.37 0 1 1 .738 0v3.843a.38.38 0 0 1-.11.259.382.382 0 0 1-.259.11Z\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D7D3D1\",\n d: \"M179.457 134.855h-3.85a.37.37 0 0 1-.261-.629.368.368 0 0 1 .261-.107h3.85a.37.37 0 0 1 .369.368.376.376 0 0 1-.369.368ZM106.658 21.424a.368.368 0 0 1-.368-.368v-3.837a.369.369 0 0 1 .737 0v3.837a.368.368 0 0 1-.369.368Z\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D7D3D1\",\n d: \"M108.583 19.51h-3.864a.376.376 0 0 1-.369-.369.368.368 0 0 1 .369-.368h3.849a.369.369 0 0 1 .015.737ZM28.498 38.913a3.48 3.48 0 0 1-.48-.059 4.554 4.554 0 0 1-3.333-2.341 3.752 3.752 0 0 1-2.537 1.472.372.372 0 0 1-.088-.736 3.121 3.121 0 0 0 2.271-1.473 4.493 4.493 0 0 1 .17-3.792.36.36 0 0 1 .317-.192.384.384 0 0 1 .324.177 3.934 3.934 0 0 1 .045 3.785v.066l.066.148a3.623 3.623 0 0 0 2.91 2.171 3.634 3.634 0 0 0 3.337-1.435c.343-.394.616-.845.803-1.333a2.28 2.28 0 0 1 .14-2.482.391.391 0 0 1 .37-.125.384.384 0 0 1 .272.265 4.176 4.176 0 0 1-.051 2.29 1.716 1.716 0 0 0 1.475.884 1.942 1.942 0 0 0 1.622-1.03c.192-.327.308-.692.34-1.069a3.583 3.583 0 0 1-.237-1.2.368.368 0 0 1 .28-.36.369.369 0 0 1 .42.19c.188.386.282.81.274 1.238.185.426.46.807.804 1.12a2.949 2.949 0 0 0 3.472.527 2.95 2.95 0 0 0 .953-.8c.184-.226.34-.473.464-.737a4.866 4.866 0 0 1-.494-.677 1.574 1.574 0 0 1 .17-1.767.738.738 0 0 1 .922-.074 1.128 1.128 0 0 1 .427.847c.048.497-.007.998-.162 1.473a1.949 1.949 0 0 0 2.213.338c1.829-.795 3.223-3.615 2.706-5.486a.367.367 0 1 1 .708-.198c.62 2.209-.958 5.427-3.127 6.362a2.658 2.658 0 0 1-2.795-.317c-.134.235-.29.456-.464.663a3.685 3.685 0 0 1-2.666 1.398 3.693 3.693 0 0 1-2.821-1.052 3.729 3.729 0 0 1-.51-.574c-.064.165-.14.325-.228.478a2.682 2.682 0 0 1-2.139 1.4 2.363 2.363 0 0 1-1.866-.825c-.2.394-.448.762-.737 1.097a4.71 4.71 0 0 1-3.54 1.745Zm-3.688-5.766a3.826 3.826 0 0 0 0 1.561 3.206 3.206 0 0 0 .008-1.56h-.008Zm18.254-.92a.434.434 0 0 0-.111.235.86.86 0 0 0 .059.604c.042.074.09.145.14.214a2.735 2.735 0 0 0 0-.737c0-.235-.081-.301-.103-.316h.015ZM128.791 84.082a1.62 1.62 0 1 0 0-3.24c-.896 0-1.623.725-1.623 1.62 0 .895.727 1.62 1.623 1.62ZM57.777 93.552a1.621 1.621 0 1 0 0-3.24 1.621 1.621 0 1 0 0 3.24Z\"\n })));\n};\nexport { SvgEmptyCourse as ReactComponent };\nexport default __webpack_public_path__ + \"d8973fc93cdf3e6c9a09f948bcbbc707.svg\";","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n lookingForChallengePrompt: {\n id: 'Dashboard.NoCoursesView.lookingForChallengePrompt',\n defaultMessage: 'Looking for a new challenge?',\n description: 'Prompt user for new challenge',\n },\n exploreCoursesPrompt: {\n id: 'Dashboard.NoCoursesView.exploreCoursesPrompt',\n defaultMessage: 'Explore our courses to add them to your dashboard.',\n description: 'Prompt user to explore more courses',\n },\n exploreCoursesButton: {\n id: 'Dashboard.NoCoursesView.exploreCoursesButton',\n defaultMessage: 'Explore courses',\n description: 'Button to explore more courses',\n },\n bannerAlt: {\n id: 'Dashboard.NoCoursesView.bannerAlt',\n defaultMessage: 'No Courses view banner',\n description: 'No Courses view basnner',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button, Image } from '@edx/paragon';\nimport { Search } from '@edx/paragon/icons';\nimport { baseAppUrl } from 'data/services/lms/urls';\n\nimport emptyCourseSVG from 'assets/empty-course.svg';\nimport { reduxHooks } from 'hooks';\n\nimport messages from './messages';\nimport './index.scss';\n\nexport const NoCoursesView = () => {\n const { formatMessage } = useIntl();\n const { courseSearchUrl } = reduxHooks.usePlatformSettingsData();\n return (\n \n {formatMessage(messages.bannerAlt)}\n

\n {formatMessage(messages.lookingForChallengePrompt)}\n

\n

\n {formatMessage(messages.exploreCoursesPrompt)}\n

\n \n {formatMessage(messages.exploreCoursesButton)}\n \n \n );\n};\n\nexport default NoCoursesView;\n","import React from 'react';\n\nimport { useCheckboxSetValues, useWindowSize, breakpoints } from '@edx/paragon';\nimport queryString from 'query-string';\n\nimport { ListPageSize, SortKeys } from 'data/constants/app';\nimport { reduxHooks } from 'hooks';\nimport { StrictDict } from 'utils';\n\nimport * as module from './hooks';\n\nexport const useIsCollapsed = () => {\n const { width } = useWindowSize();\n return width < breakpoints.medium.maxWidth;\n};\n\nexport const state = StrictDict({\n sortBy: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useCourseListData = () => {\n const [filters, setFilters] = useCheckboxSetValues([]);\n const [sortBy, setSortBy] = module.state.sortBy(SortKeys.enrolled);\n const pageNumber = reduxHooks.usePageNumber();\n const querySearch = queryString.parse(window.location.search, { parseNumbers: true });\n\n const { numPages, visible } = reduxHooks.useCurrentCourseList({\n sortBy,\n filters,\n pageSize: querySearch?.disable_pagination === 1 ? 0 : ListPageSize,\n });\n\n const handleRemoveFilter = (filter) => () => setFilters.remove(filter);\n const setPageNumber = reduxHooks.useSetPageNumber();\n\n return {\n pageNumber,\n numPages,\n setPageNumber,\n visibleList: visible,\n filterOptions: {\n sortBy,\n setSortBy,\n filters,\n setFilters,\n handleRemoveFilter,\n },\n showFilters: filters.length > 0,\n };\n};\n\nexport default useCourseListData;\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n myCourses: {\n id: 'dashboard.mycourses',\n defaultMessage: 'My Courses',\n description: 'Course list heading',\n },\n});\n\nexport default messages;\n","import React from 'react';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Pagination } from '@edx/paragon';\n\nimport { reduxHooks } from 'hooks';\nimport {\n ActiveCourseFilters,\n CourseFilterControls,\n} from 'containers/CourseFilterControls';\nimport CourseCard from 'containers/CourseCard';\nimport NoCoursesView from './NoCoursesView';\n\nimport { useCourseListData, useIsCollapsed } from './hooks';\n\nimport messages from './messages';\n\nimport './index.scss';\n\nexport const CourseList = () => {\n const { formatMessage } = useIntl();\n const hasCourses = reduxHooks.useHasCourses();\n const {\n filterOptions,\n setPageNumber,\n numPages,\n showFilters,\n visibleList,\n } = useCourseListData();\n const isCollapsed = useIsCollapsed();\n return (\n
\n
\n

{formatMessage(messages.myCourses)}

\n
\n \n
\n
\n {hasCourses\n ? (\n <>\n {showFilters && (\n
\n \n
\n )}\n
\n {visibleList.map(({ cardId }) => (\n \n ))}\n {numPages > 1 && (\n \n )}\n
\n \n ) : (\n \n )}\n
\n );\n};\n\nCourseList.propTypes = {};\n\nexport default CourseList;\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29;\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\";\nvar SvgMoreCoursesSidewidget = function SvgMoreCoursesSidewidget(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 186,\n height: 125,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#03C7E8\",\n d: \"M136.816 127H-34L.184-2H171l-34.184 129Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m117.806 36.935-3.417 51.22c0 1.893-2.119 3.432-4.742 3.432H38.889c-2.615 0-4.745-1.539-4.745-3.433l3.418-51.219c0-1.894 2.13-3.433 4.745-3.433h70.758c2.625 0 4.741 1.54 4.741 3.433Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002121\",\n d: \"M109.651 91.761H38.893c-2.712 0-4.918-1.619-4.918-3.607l3.417-51.222c0-1.989 2.206-3.604 4.918-3.604h70.758c2.709 0 4.915 1.615 4.915 3.604l-3.417 51.222c0 2.006-2.206 3.607-4.915 3.607Zm-67.34-58.085c-2.522 0-4.572 1.459-4.572 3.256l-3.417 51.222c0 1.797 2.05 3.259 4.571 3.259h70.758c2.518 0 4.568-1.462 4.568-3.259l3.417-51.222c0-1.797-2.05-3.256-4.568-3.256H42.31Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M114.388 36.935v2.695H37.575v-2.695c0-1.894 2.13-3.433 4.745-3.433h67.341c2.612 0 4.727 1.54 4.727 3.433Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002121\",\n d: \"M117.806 39.804h-80.23a.174.174 0 0 1-.174-.174v-2.698c0-1.988 2.206-3.604 4.919-3.604h70.758c2.709 0 4.915 1.616 4.915 3.604v2.698a.17.17 0 0 1-.015.07.173.173 0 0 1-.173.104Zm-80.06-.348h79.89v-2.524c0-1.797-2.05-3.256-4.568-3.256H42.31c-2.521 0-4.571 1.46-4.571 3.256l.007 2.524Z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M101.787 43.404H47.55v5.418h54.237v-5.418Z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002121\",\n d: \"M101.788 48.996H47.55a.174.174 0 0 1-.173-.174v-5.418a.174.174 0 0 1 .173-.174h54.238c.045 0 .089.02.121.052a.176.176 0 0 1 .052.122v5.418a.173.173 0 0 1-.173.174Zm-54.064-.349h53.89v-5.069h-53.89v5.07Z\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D23228\",\n d: \"M101.787 43.404h-7.356v5.418h7.356v-5.418Z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002121\",\n d: \"M101.787 48.996H94.43a.174.174 0 0 1-.173-.174v-5.418a.174.174 0 0 1 .173-.174h7.357a.175.175 0 0 1 .173.174v5.418c0 .046-.018.09-.05.123a.175.175 0 0 1-.123.05Zm-7.183-.349h7.01v-5.069h-6.996l-.014 5.07Z\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M112.707 52.575h-27.99l-3.418 28.097h27.991l3.417-28.097Z\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#03C7E8\",\n d: \"M72.745 53.275H41.608v.696h31.137v-.696ZM62.319 55.357h-20.71v.696h20.71v-.696Z\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"M75 57.435H41.608v.697H75v-.697ZM70.96 59.517H41.607v.697H70.96v-.697ZM46.26 61.739h-4.415v.348h4.415v-.348ZM49.992 61.739H47.55v.348h2.442v-.348ZM53.478 61.739h-2.359v.348h2.359v-.348Z\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#03C7E8\",\n d: \"M66.03 65.844H41.608v.696H66.03v-.696ZM70.96 67.925H41.607v.697H70.96v-.697Z\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"M61.24 70.004H41.608v.697H61.24v-.697ZM67.345 72.086H41.608v.697h25.737v-.697ZM44.05 74.308h-2.205v.348h2.206v-.348ZM49.992 74.308h-4.814v.348h4.814v-.348ZM52.715 74.308h-1.596v.348h1.596v-.348Z\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#03C7E8\",\n d: \"M68.916 78.412H41.608v.697h27.308v-.697ZM72.745 80.494H41.608v.697h31.137v-.697Z\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"M62.93 82.573H41.607v.696H62.93v-.696ZM59.173 84.652H41.608v.696h17.565v-.696ZM47.585 86.876h-5.74v.349h5.74v-.349ZM52.298 86.876h-3.246v.349h3.246v-.349Z\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#03C7E8\",\n d: \"M41.557 37.712c.632 0 1.144-.515 1.144-1.15 0-.634-.512-1.148-1.144-1.148-.632 0-1.145.514-1.145 1.148 0 .635.513 1.15 1.145 1.15Z\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E6E7E8\",\n d: \"M44.998 37.712c.632 0 1.145-.515 1.145-1.15 0-.634-.513-1.148-1.145-1.148s-1.145.514-1.145 1.148c0 .635.513 1.15 1.145 1.15ZM48.439 37.712c.632 0 1.144-.515 1.144-1.15 0-.634-.512-1.148-1.144-1.148-.633 0-1.145.514-1.145 1.148 0 .635.512 1.15 1.145 1.15Z\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M97.575 47.241a1.464 1.464 0 0 1-1.437-1.187 1.478 1.478 0 0 1 .88-1.647 1.462 1.462 0 0 1 1.78.543 1.477 1.477 0 0 1-.66 2.18c-.178.074-.37.112-.563.111Zm0-2.594a1.106 1.106 0 0 0-.791.328 1.125 1.125 0 0 0 .79 1.92 1.117 1.117 0 0 0 1.036-.695 1.128 1.128 0 0 0-.607-1.469 1.105 1.105 0 0 0-.428-.084Z\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M99.556 47.93a.177.177 0 0 1-.125-.052l-1.065-1.069a.174.174 0 0 1 .056-.282.173.173 0 0 1 .19.038l1.065 1.07a.175.175 0 0 1-.121.295ZM122.772 62.282h-28.48l-3.417 21.207h28.48l3.417-21.207Z\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002121\",\n d: \"M119.356 83.663h-28.48a.173.173 0 0 1-.174-.174l3.417-21.207a.174.174 0 0 1 .174-.174h28.48c.046 0 .089.02.122.052.032.032.05.076.051.122l-3.417 21.207c0 .046-.018.09-.051.123a.17.17 0 0 1-.122.05Zm-28.307-.348h28.133l3.417-20.859H94.466L91.05 83.315Z\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D23228\",\n d: \"M95.223 79.651h-.036c-2.565-.08-3.27-2.467-3.277-2.492a.176.176 0 0 1 .018-.137.183.183 0 0 1 .112-.085.189.189 0 0 1 .195.065c.015.019.026.04.032.063.026.09.648 2.163 2.945 2.237h.011c1.13 0 1.928-2.96 2.63-5.592.715-2.726 1.431-5.301 2.594-5.567a1.789 1.789 0 0 1 1.377.185c1.038.64 1.432 2.43 1.908 4.498a27.07 27.07 0 0 0 .937 3.467c.623 1.684 1.789 2.73 2.913 2.603 1.391-.157 2.443-2.058 2.805-5.088 1.034-8.639 4.104-9.586 5.367-9.593h.046c3.163 0 4.798 1.66 5.829 5.91a.183.183 0 0 1-.023.135.186.186 0 0 1-.253.057.178.178 0 0 1-.082-.112c-.998-4.106-2.483-5.64-5.481-5.64h-.043c-2.451 0-4.33 3.494-5.01 9.285-.386 3.247-1.524 5.214-3.12 5.392-1.284.15-2.608-.992-3.288-2.83a27.886 27.886 0 0 1-.952-3.495c-.429-1.912-.833-3.715-1.749-4.281a1.416 1.416 0 0 0-1.106-.14c-.959.22-1.685 2.929-2.326 5.316-.826 3.001-1.574 5.84-2.973 5.84Z\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"M116.702 75.035h-3.979a.17.17 0 0 1-.122-.05.173.173 0 0 1 .122-.297h3.979a.173.173 0 0 1 .122.297.17.17 0 0 1-.122.05ZM116.702 76.682h-3.979a.173.173 0 0 1-.122-.297.17.17 0 0 1 .122-.051h3.979a.17.17 0 0 1 .122.051.173.173 0 0 1-.122.297ZM114.711 78.322h-1.988a.17.17 0 0 1-.122-.051.173.173 0 0 1 .122-.297h1.988a.173.173 0 0 1 .122.297.17.17 0 0 1-.122.05ZM99.472 64.472h-3.978a.173.173 0 0 1-.174-.174.175.175 0 0 1 .174-.174h3.978a.173.173 0 0 1 .122.296.177.177 0 0 1-.122.052ZM99.472 66.136h-3.978a.173.173 0 0 1-.174-.174.175.175 0 0 1 .174-.174h3.978a.177.177 0 0 1 .174.174.174.174 0 0 1-.174.174ZM97.481 67.77h-1.987a.173.173 0 0 1-.174-.175.174.174 0 0 1 .174-.174h1.987a.173.173 0 0 1 .174.174.174.174 0 0 1-.174.174Z\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002121\",\n d: \"m43.157 66.54-3.453-1.771-4.195 8.24 3.453 1.772 4.195-8.24Z\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002121\",\n d: \"M38.958 74.955a.159.159 0 0 1-.076-.02l-3.469-1.77a.17.17 0 0 1-.076-.233l4.197-8.24a.167.167 0 0 1 .1-.088.173.173 0 0 1 .132 0l3.469 1.772a.17.17 0 0 1 .073.234L39.12 74.86a.184.184 0 0 1-.1.084.142.142 0 0 1-.063.01Zm-3.219-2.02 3.146 1.613 4.052-7.931L39.794 65l-4.055 7.935Z\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m39.973 72.347-3.095-1.587a.862.862 0 0 0-1.162.377l-7.209 14.16a.869.869 0 0 0 .377 1.166l3.094 1.587a.862.862 0 0 0 1.162-.377l7.21-14.159a.869.869 0 0 0-.377-1.166Z\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002121\",\n d: \"M32.372 88.321c-.163 0-.324-.039-.469-.115l-3.1-1.587a1.044 1.044 0 0 1-.451-1.393l7.21-14.16a1.042 1.042 0 0 1 1.388-.453l3.097 1.588a1.043 1.043 0 0 1 .451 1.393l-7.204 14.16a1.043 1.043 0 0 1-.922.567Zm4.113-17.481a.694.694 0 0 0-.614.383l-7.21 14.156a.7.7 0 0 0 .301.93l3.097 1.588a.691.691 0 0 0 .927-.3l7.21-14.15a.698.698 0 0 0-.301-.93l-3.098-1.587a.657.657 0 0 0-.312-.09Z\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M49.374 49.56a9.933 9.933 0 0 0-11.002 1.288 10.007 10.007 0 0 0-3.127 4.89c-.537 1.904-.5 3.926.108 5.809a10.003 10.003 0 0 0 3.307 4.769 9.934 9.934 0 0 0 11.043.876 9.986 9.986 0 0 0 4.01-4.19 10.037 10.037 0 0 0 .6-7.622 9.993 9.993 0 0 0-4.939-5.82ZM41.462 65.09a7.431 7.431 0 0 1-3.1-3 7.47 7.47 0 0 1 .657-8.25 7.42 7.42 0 0 1 3.537-2.467 7.393 7.393 0 0 1 4.306-.079 7.415 7.415 0 0 1 3.625 2.336 7.472 7.472 0 0 1 .958 8.22 7.427 7.427 0 0 1-4.322 3.695 7.393 7.393 0 0 1-5.66-.455Z\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#002121\",\n d: \"M44.831 68.647c-2.56.006-5.03-.957-6.915-2.697a10.239 10.239 0 0 1-1.113-13.822 10.165 10.165 0 0 1 6.394-3.777c2.528-.406 5.117.16 7.248 1.586a10.212 10.212 0 0 1 4.249 6.104c.6 2.498.24 5.133-1.01 7.377a10.182 10.182 0 0 1-5.731 4.727c-1.008.331-2.062.5-3.122.502Zm.02-20.013a9.845 9.845 0 0 0-3.024.48 9.758 9.758 0 0 0-5.49 4.527 9.82 9.82 0 0 0-.973 7.066 9.787 9.787 0 0 0 4.064 5.851A9.721 9.721 0 0 0 52.5 64.483a9.812 9.812 0 0 0-1.033-13.244 9.73 9.73 0 0 0-6.615-2.604Zm-.023 17.45a7.535 7.535 0 0 1-3.441-.832 7.618 7.618 0 0 1-3.627-4.019 7.656 7.656 0 0 1-.05-5.421 7.62 7.62 0 0 1 3.55-4.086 7.574 7.574 0 0 1 5.358-.687 7.6 7.6 0 0 1 4.459 3.06 7.65 7.65 0 0 1-1.198 10.065 7.583 7.583 0 0 1-5.051 1.92Zm-3.278-1.142a7.222 7.222 0 0 0 7.988-.94 7.276 7.276 0 0 0 2.273-3.547 7.3 7.3 0 0 0-.07-4.217 7.273 7.273 0 0 0-2.402-3.466 7.23 7.23 0 0 0-8.023-.645 7.261 7.261 0 0 0-2.92 3.038 7.305 7.305 0 0 0-.434 5.542 7.273 7.273 0 0 0 3.588 4.235Z\"\n })));\n};\nexport { SvgMoreCoursesSidewidget as ReactComponent };\nexport default __webpack_public_path__ + \"8e66153612162aadaba7191d411a3cfc.svg\";","import { StrictDict } from 'utils';\nimport { createLinkTracker, createEventTracker } from 'data/services/segment/utils';\nimport track from 'tracking';\n\nexport const eventNames = StrictDict({\n recommendedCourseClicked: 'edx.bi.user.recommended.course.click',\n});\n\nexport const linkNames = StrictDict({\n findCoursesWidget: 'learner_home_widget_explore',\n});\n\nexport const findCoursesWidgetClicked = (href) => track.findCourses.findCoursesClicked(href, {\n linkName: linkNames.findCoursesWidget,\n});\n\nexport const recommendedCourseClicked = (courseKey, isControl, href) => createLinkTracker(\n createEventTracker(eventNames.recommendedCourseClicked, {\n course_key: courseKey,\n is_control: isControl,\n page: 'dashboard',\n }),\n href,\n);\n\nexport default {\n findCoursesWidgetClicked,\n recommendedCourseClicked,\n};\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n lookingForChallengePrompt: {\n id: 'WidgetSidebar.lookingForChallengePrompt',\n defaultMessage: 'Looking for a new challenge?',\n description: 'Prompt user for new challenge',\n },\n findCoursesButton: {\n id: 'WidgetSidebar.findCoursesButton',\n defaultMessage: 'Find a course {arrow}',\n description: 'Button to explore more courses',\n },\n});\n\nexport default messages;\n","import React from 'react';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Card, Hyperlink, Icon } from '@edx/paragon';\nimport { ArrowForward } from '@edx/paragon/icons';\n\nimport { reduxHooks } from 'hooks';\nimport moreCoursesSVG from 'assets/more-courses-sidewidget.svg';\nimport { baseAppUrl } from 'data/services/lms/urls';\n\nimport track from '../RecommendationsPanel/track';\nimport messages from './messages';\nimport './index.scss';\n\nexport const arrowIcon = ();\n\nexport const LookingForChallengeWidget = () => {\n const { formatMessage } = useIntl();\n const { courseSearchUrl } = reduxHooks.usePlatformSettingsData();\n return (\n \n \n \n

\n {formatMessage(messages.lookingForChallengePrompt)}\n

\n
\n \n {formatMessage(messages.findCoursesButton, { arrow: arrowIcon })}\n \n
\n
\n
\n );\n};\n\nLookingForChallengeWidget.propTypes = {};\n\nexport default LookingForChallengeWidget;\n","import { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n loadingSR: {\n id: 'learner-dash.loadingSR',\n description: 'Page loading screen-reader text',\n defaultMessage: 'Loading...',\n },\n errorMessage: {\n id: 'learner-dash.error-page-message',\n defaultMessage: 'If you experience repeated failures, please email support at {supportEmail}',\n description: 'Error page message',\n },\n pageTitle: {\n id: 'learner-dash.title',\n description: 'Page title: Learner Home',\n defaultMessage: 'Learner Home',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport { useWindowSize, breakpoints } from '@edx/paragon';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { apiHooks } from 'hooks';\nimport { StrictDict } from 'utils';\n\nimport appMessages from 'messages';\nimport * as module from './hooks';\n\nexport const state = StrictDict({\n sidebarShowing: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useInitializeDashboard = () => {\n const initialize = apiHooks.useInitializeApp();\n React.useEffect(() => { initialize(); }, []); // eslint-disable-line\n};\n\nexport const useDashboardMessages = () => {\n const { formatMessage } = useIntl();\n return {\n spinnerScreenReaderText: formatMessage(appMessages.loadingSR),\n pageTitle: formatMessage(appMessages.pageTitle),\n };\n};\n\nexport const useDashboardLayoutData = () => {\n const { width } = useWindowSize();\n const [sidebarShowing, setSidebarShowing] = module.state.sidebarShowing(false);\n return {\n isDashboardCollapsed: width < breakpoints.large.maxWidth,\n sidebarShowing,\n setSidebarShowing,\n };\n};\n\nexport default {\n useDashboardLayoutData,\n useInitializeDashboard,\n useDashboardMessages,\n};\n","import React from 'react';\nimport { Spinner } from '@edx/paragon';\n\nimport { useDashboardMessages } from 'containers/Dashboard/hooks';\n\nexport const LoadingView = () => {\n const { spinnerScreenReaderText } = useDashboardMessages();\n return (\n
\n \n
\n );\n};\n\nexport default LoadingView;\n","import track from '../track';\nimport './index.scss';\n\nexport const useCourseCardData = (course, isControl) => {\n const handleCourseClick = (e) => {\n e.preventDefault();\n\n track.recommendedCourseClicked(\n course.courseKey,\n isControl,\n course?.marketingUrl,\n )(e);\n };\n return { handleCourseClick };\n};\n\nexport default useCourseCardData;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Card, Hyperlink, Truncate } from '@edx/paragon';\n\nimport { useIsCollapsed } from 'containers/CourseCard/hooks';\nimport useCourseCardData from './hooks';\nimport './index.scss';\n\nexport const CourseCard = ({ course, isControl }) => {\n const isCollapsed = useIsCollapsed();\n const { handleCourseClick } = useCourseCardData(course, isControl);\n\n return (\n \n \n
\n \n \n \n

\n \n {course.title}\n \n

\n
\n
\n
\n
\n \n );\n};\n\nCourseCard.propTypes = {\n course: PropTypes.shape({\n courseKey: PropTypes.string,\n title: PropTypes.string,\n logoImageUrl: PropTypes.string,\n marketingUrl: PropTypes.string,\n }).isRequired,\n isControl: PropTypes.oneOf([true, false, null]).isRequired,\n};\n\nexport default CourseCard;\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n recommendationsHeading: {\n id: 'RecommendationsPanel.recommendationsHeading',\n defaultMessage: 'Recommendations for you',\n description: 'Personalize courses heading on recommendations panel',\n },\n popularCoursesHeading: {\n id: 'RecommendationsPanel.popularCoursesHeading',\n defaultMessage: 'Popular courses',\n description: 'Popular courses heading on recommendations panel',\n },\n exploreCoursesButton: {\n id: 'RecommendationsPanel.exploreCoursesButton',\n defaultMessage: 'Explore courses',\n description: 'Button to explore more courses on recommendations panel',\n },\n});\n\nexport default messages;\n","import { StrictDict } from 'utils';\nimport { createEventTracker } from 'data/services/segment/utils';\n\nexport const eventNames = StrictDict({\n variationGroup: 'edx.bi.user.recommendation_home.variation.group',\n recommendationHomeBtnClicked: 'edx.bi.user.recommendation_home.btn.clicked',\n recommendationHomeModalInterestBtnClicked: 'edx.bi.user.recommendation_home.modal.interest_btn.clicked',\n recommendationHomeModalSkipBtnClicked: 'edx.bi.user.recommendation_home.modal.skip_btn.clicked',\n});\n\nexport const trackPaintedDoorVariationGroup = (variation) => {\n createEventTracker(eventNames.variationGroup, {\n variation,\n page: 'dashboard',\n })();\n};\n\nexport const trackPaintedDoorRecommendationHomeBtnClicked = (variation) => {\n createEventTracker(eventNames.recommendationHomeBtnClicked, {\n variation,\n page: 'dashboard',\n })();\n};\n\nexport const trackPaintedDoorRecommendationHomeInterestBtnClicked = (variation) => {\n createEventTracker(eventNames.recommendationHomeModalInterestBtnClicked, {\n variation,\n })();\n};\n\nexport const trackPaintedDoorRecommendationHomeSkipBtnClicked = (variation) => {\n createEventTracker(eventNames.recommendationHomeModalSkipBtnClicked, {\n variation,\n })();\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { StrictDict } from 'utils';\nimport * as module from './PaintedDoorExperimentContext';\nimport {\n useEmailConfirmationData,\n useHasAvailableDashboards,\n useRequestIsPending,\n} from '../../data/redux/hooks';\nimport { RequestKeys } from '../../data/constants/requests';\nimport { trackPaintedDoorVariationGroup } from './track';\n\nexport const state = StrictDict({\n enterpriseUser: (val) => React.useState(val), // eslint-disable-line\n experimentData: (val) => React.useState(val), // eslint-disable-line\n});\n\nconst PAINTED_DOOR_RECOMMENDATIONS_EXP_ID = 25116810832;\nconst PAINTED_DOOR_RECOMMENDATIONS_PAGE = 'url_targeting_for_van1604_recommendations_painted_door_exp';\nconst PAINTED_DOOR_RECS_EXP_NAVBAR_BTN_VARIATION = 'btn_navbar';\nconst PAINTED_DOOR_RECS_EXP_WIDGET_BTN_VARIATION = 'btn_widget';\nconst PAINTED_DOOR_RECS_EXP_CONTROL_VARIATION = 'control';\n\nexport function getPaintedDoorRecommendationsExperimentVariation() {\n try {\n if (window.optimizely && window.optimizely.get('data').experiments[PAINTED_DOOR_RECOMMENDATIONS_EXP_ID]) {\n const selectedVariant = window.optimizely.get('state').getVariationMap()[PAINTED_DOOR_RECOMMENDATIONS_EXP_ID];\n return selectedVariant?.name;\n }\n } catch (e) { /* empty */ }\n return '';\n}\n\nexport function activatePaintedDoorRecommendationsExperiment() {\n window.optimizely = window.optimizely || [];\n window.optimizely.push({\n type: 'page',\n pageName: PAINTED_DOOR_RECOMMENDATIONS_PAGE,\n });\n}\n\nexport const useIsEnterpriseUser = () => {\n const [enterpriseUser, setEnterpriseUser] = module.state.enterpriseUser({\n isEnterpriseUser: false,\n isLoading: true,\n });\n\n const initIsPending = useRequestIsPending(RequestKeys.initialize);\n const hasAvailableDashboards = useHasAvailableDashboards();\n const confirmationData = useEmailConfirmationData();\n\n React.useEffect(() => {\n if (!initIsPending && Object.keys(confirmationData).length && hasAvailableDashboards) {\n setEnterpriseUser(prev => ({\n ...prev,\n isEnterpriseUser: true,\n isLoading: false,\n }));\n } else if (!initIsPending && Object.keys(confirmationData).length && !hasAvailableDashboards) {\n setEnterpriseUser(prev => ({\n ...prev,\n isEnterpriseUser: false,\n isLoading: false,\n }));\n }\n }, [initIsPending]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return enterpriseUser;\n};\n\nexport const PaintedDoorExperimentContext = React.createContext({\n experimentVariation: null,\n isPaintedDoorNavbarBtnVariation: null,\n isPaintedDoorWidgetBtnVariation: null,\n isPaintedDoorControlVariation: null,\n experimentLoading: null,\n});\n\nexport const PaintedDoorExperimentProvider = ({ children }) => {\n const [experimentData, setExperimentData] = module.state.experimentData({\n experimentVariation: '',\n isPaintedDoorNavbarBtnVariation: false,\n isPaintedDoorWidgetBtnVariation: false,\n isPaintedDoorControlVariation: false,\n experimentLoading: true,\n });\n const enterpriseUser = useIsEnterpriseUser();\n\n const contextValue = React.useMemo(\n () => ({\n ...experimentData,\n }),\n [experimentData],\n );\n\n React.useEffect(() => {\n let timer = null;\n if (!enterpriseUser.isLoading && !enterpriseUser.isEnterpriseUser) {\n activatePaintedDoorRecommendationsExperiment();\n timer = setTimeout(() => {\n const variation = getPaintedDoorRecommendationsExperimentVariation();\n setExperimentData(prev => ({\n ...prev,\n experimentVariation: variation,\n isPaintedDoorNavbarBtnVariation: variation === PAINTED_DOOR_RECS_EXP_NAVBAR_BTN_VARIATION,\n isPaintedDoorWidgetBtnVariation: variation === PAINTED_DOOR_RECS_EXP_WIDGET_BTN_VARIATION,\n isPaintedDoorControlVariation: variation === PAINTED_DOOR_RECS_EXP_CONTROL_VARIATION,\n experimentLoading: false,\n }));\n trackPaintedDoorVariationGroup(variation);\n }, 500);\n }\n return () => clearTimeout(timer);\n }, [enterpriseUser]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n \n {children}\n \n );\n};\n\nexport const usePaintedDoorExperimentContext = () => React.useContext(PaintedDoorExperimentContext);\n\nPaintedDoorExperimentProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default PaintedDoorExperimentProvider;\n","export const COLLAPSED_NAVBAR = 'collapsedNavbar';\nexport const EXPANDED_NAVBAR = 'expendedNavbar';\nexport const RECOMMENDATIONS_PANEL = 'recommendationsPanel';\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n recommendationsFeatureText: {\n id: 'RecommendationsPanel.recommendationsFeatureText',\n defaultMessage: 'Personalized recommendations feature is not yet available. We are working hard on bringing it to your learner home in the near future.',\n description: 'recommendations feature text',\n },\n recommendationsAlertText: {\n id: 'RecommendationsPanel.recommendationsAlertText',\n defaultMessage: 'Would you like to be alerted when it becomes available?',\n description: 'recommendations alerted text',\n },\n recommendationsModalHeading: {\n id: 'RecommendationsPanel.recommendationsModalHeading',\n defaultMessage: 'Thank you for your interest!',\n description: 'Heading of modal',\n },\n modalSkipButton: {\n id: 'RecommendationsPanel.modalSkipButton',\n defaultMessage: 'Skip for now',\n description: 'button for Skip for now',\n },\n modalCountMeButton: {\n id: 'RecommendationsPanel.modalCountMeButton',\n defaultMessage: 'Count me in!',\n description: 'button for Count me in!',\n },\n recommendedForYou: {\n id: 'learnerVariantDashboard.recommendedForYou',\n defaultMessage: 'Recommended For You',\n description: 'Header link for recommended page.',\n },\n seeAllRecommendationsButton: {\n id: 'RecommendationsPanel.seeAllRecommendationsButton',\n defaultMessage: 'See All Recommendations',\n description: 'Button to see all recommendations',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport { Button } from '@edx/paragon';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport messages from '../messages';\nimport { COLLAPSED_NAVBAR, EXPANDED_NAVBAR } from '../constants';\n\nexport const NavbarButton = ({ placement, handleClick }) => {\n const { formatMessage } = useIntl();\n\n return (\n \n {formatMessage(messages.recommendedForYou)}\n \n );\n};\n\nNavbarButton.propTypes = {\n placement: PropTypes.oneOf([COLLAPSED_NAVBAR, EXPANDED_NAVBAR]).isRequired,\n handleClick: PropTypes.func.isRequired,\n};\n\nexport default NavbarButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ModalDialog, ActionRow } from '@edx/paragon';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport messages from '../../messages';\n\nimport './index.scss';\nimport {\n trackPaintedDoorRecommendationHomeInterestBtnClicked,\n trackPaintedDoorRecommendationHomeSkipBtnClicked,\n} from '../../track';\n\nexport const ModalView = ({\n isOpen,\n onClose,\n variation,\n}) => {\n const { formatMessage } = useIntl();\n\n const handleSkipBtnClick = () => trackPaintedDoorRecommendationHomeSkipBtnClicked(variation);\n const handleInterestBtnClick = () => trackPaintedDoorRecommendationHomeInterestBtnClicked(variation);\n\n return (\n
\n \n \n \n {formatMessage(messages.recommendationsModalHeading)}\n \n \n \n
\n

{formatMessage(messages.recommendationsFeatureText)}

\n

{formatMessage(messages.recommendationsAlertText)}

\n
\n
\n \n \n \n {formatMessage(messages.modalSkipButton)}\n \n \n {formatMessage(messages.modalCountMeButton)}\n \n \n \n \n
\n );\n};\n\nModalView.defaultProps = {\n isOpen: false,\n};\n\nModalView.propTypes = {\n onClose: PropTypes.func.isRequired,\n isOpen: PropTypes.bool,\n variation: PropTypes.string.isRequired,\n};\n\nexport default ModalView;\n","import React from 'react';\nimport { StrictDict } from 'utils';\n\nimport * as module from './hooks';\n\nexport const state = StrictDict({\n isModalOpen: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const usePaintedDoorModal = () => {\n const [isModalOpen, setIsModalOpen] = module.state.isModalOpen(false);\n const toggleModal = () => setIsModalOpen(!isModalOpen);\n\n return {\n isModalOpen,\n toggleModal,\n };\n};\n","import React from 'react';\nimport { Button } from '@edx/paragon';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport PropTypes from 'prop-types';\nimport messages from '../messages';\n\nexport const RecommendationsPanelButton = ({ handleClick }) => {\n const { formatMessage } = useIntl();\n\n return (\n \n {formatMessage(messages.seeAllRecommendationsButton)}\n \n );\n};\n\nRecommendationsPanelButton.propTypes = {\n handleClick: PropTypes.func.isRequired,\n};\n\nexport default RecommendationsPanelButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport NavbarButton from './components/NavbarButton';\nimport PaintedDoorModal from './components/PaintedDoorModal';\nimport { usePaintedDoorModal } from './components/PaintedDoorModal/hooks';\nimport { COLLAPSED_NAVBAR, EXPANDED_NAVBAR, RECOMMENDATIONS_PANEL } from './constants';\nimport RecommendationsPanelButton from './components/RecommendationsPanelButton';\nimport { trackPaintedDoorRecommendationHomeBtnClicked } from './track';\n\nexport const RecommendationsPaintedDoorBtn = ({ placement, experimentVariation }) => {\n const { isModalOpen, toggleModal } = usePaintedDoorModal();\n\n const handleClick = () => {\n toggleModal();\n trackPaintedDoorRecommendationHomeBtnClicked(experimentVariation);\n };\n\n const getPaintedDoorButton = () => {\n if ([COLLAPSED_NAVBAR, EXPANDED_NAVBAR].includes(placement)) {\n return (\n \n );\n } if (placement === RECOMMENDATIONS_PANEL) {\n return (\n \n );\n }\n return null;\n };\n\n return (\n <>\n {getPaintedDoorButton()}\n \n \n );\n};\n\nRecommendationsPaintedDoorBtn.propTypes = {\n placement: PropTypes.oneOf([COLLAPSED_NAVBAR, EXPANDED_NAVBAR, RECOMMENDATIONS_PANEL]).isRequired,\n experimentVariation: PropTypes.string.isRequired,\n};\n\nexport default RecommendationsPaintedDoorBtn;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button } from '@edx/paragon';\nimport { Search } from '@edx/paragon/icons';\nimport { baseAppUrl } from 'data/services/lms/urls';\n\nimport { reduxHooks } from 'hooks';\nimport track from './track';\nimport CourseCard from './components/CourseCard';\nimport messages from './messages';\n\nimport './index.scss';\nimport { usePaintedDoorExperimentContext } from '../RecommendationsPaintedDoorBtn/PaintedDoorExperimentContext';\nimport { RECOMMENDATIONS_PANEL } from '../RecommendationsPaintedDoorBtn/constants';\nimport RecommendationsPaintedDoorBtn from '../RecommendationsPaintedDoorBtn';\n\nexport const LoadedView = ({\n courses,\n isControl,\n}) => {\n const { formatMessage } = useIntl();\n const { courseSearchUrl } = reduxHooks.usePlatformSettingsData();\n const {\n experimentVariation,\n isPaintedDoorWidgetBtnVariation,\n experimentLoading,\n } = usePaintedDoorExperimentContext();\n\n return (\n
\n

{isControl === false\n ? formatMessage(messages.recommendationsHeading) : formatMessage(messages.popularCoursesHeading)}\n

\n
\n {courses.map((course) => (\n \n ))}\n
\n
\n {!experimentLoading && isPaintedDoorWidgetBtnVariation ? (\n \n ) : (\n \n {formatMessage(messages.exploreCoursesButton)}\n \n )}\n
\n
\n );\n};\n\nLoadedView.defaultProps = {\n isControl: true,\n};\n\nLoadedView.propTypes = {\n courses: PropTypes.arrayOf(PropTypes.shape({\n courseKey: PropTypes.string,\n title: PropTypes.string,\n logoImageUrl: PropTypes.string,\n marketingUrl: PropTypes.string,\n })).isRequired,\n isControl: PropTypes.oneOf([true, false, null]),\n};\n\nexport default LoadedView;\n","// eslint-disable-next-line\nexport default {\"courses\":[{\"courseKey\":\"ETSx+TOEFLx\",\"logoImageUrl\":\"https://prod-discovery.edx-cdn.org/organization/logos/9d9e1a30-c34d-4ad1-8c5a-d2410db8c123-8beea336c2a4.png\",\"marketingUrl\":\"https://www.edx.org/course/toefl-test-preparation-the-insiders-guide?utm_source=lms_catalog_service_user&utm_medium=affiliate_partner\",\"title\":\"TOEFL® Test Preparation: The Insider’s Guide\"},{\"courseKey\":\"HarvardX+CS50P\",\"logoImageUrl\":\"https://prod-discovery.edx-cdn.org/organization/logos/44022f13-20df-4666-9111-cede3e5dc5b6-2cc39992c67a.png\",\"marketingUrl\":\"https://www.edx.org/course/cs50s-introduction-to-programming-with-python?utm_source=lms_catalog_service_user&utm_medium=affiliate_partner\",\"title\":\"CS50's Introduction to Programming with Python\"},{\"courseKey\":\"UQx+IELTSx\",\"logoImageUrl\":\"https://prod-discovery.edx-cdn.org/organization/logos/8554749f-b920-4d7f-8986-af6bb95290aa-f336c6a2ca11.png\",\"marketingUrl\":\"https://www.edx.org/course/ielts-academic-test-preparation?utm_source=lms_catalog_service_user&utm_medium=affiliate_partner\",\"title\":\"IELTS Academic Test Preparation\"},{\"courseKey\":\"QUx+QU01X02\",\"logoImageUrl\":\"https://prod-discovery.edx-cdn.org/organization/logos/7b6ca3d5-1030-408f-b1a4-fb140db1854e-7337e1e6deaf.png\",\"marketingUrl\":\"https://www.edx.org/course/arabic-for-non-arabic-speakers?utm_source=lms_catalog_service_user&utm_medium=affiliate_partner\",\"title\":\"Arabic for non-Arabic Speakers\"},{\"courseKey\":\"HarvardX+CS50W\",\"logoImageUrl\":\"https://prod-discovery.edx-cdn.org/organization/logos/44022f13-20df-4666-9111-cede3e5dc5b6-2cc39992c67a.png\",\"marketingUrl\":\"https://www.edx.org/course/cs50s-web-programming-with-python-and-javascript?utm_source=lms_catalog_service_user&utm_medium=affiliate_partner\",\"title\":\"CS50's Web Programming with Python and JavaScript\"}],\"isControl\":true};\n","import { StrictDict } from 'utils';\nimport { get, stringifyUrl } from 'data/services/lms/utils';\nimport urls from 'data/services/lms/urls';\n\nexport const getFetchUrl = () => (`${urls.getApiUrl()}/edx_recommendations/learner_dashboard/amplitude/`);\nexport const apiKeys = StrictDict({ user: 'user' });\n\nconst fetchRecommendedCourses = () => get(stringifyUrl(getFetchUrl()));\n\nexport default {\n fetchRecommendedCourses,\n};\n","import React from 'react';\n\nimport { StrictDict } from 'utils';\nimport { RequestStates } from 'data/constants/requests';\n\nimport * as module from './hooks';\nimport testData from './testData';\nimport api from './api';\n\nexport const searchCourseEventName = 'learner_home.widget.search_course';\n\nexport const state = StrictDict({\n requestState: (val) => React.useState(val), // eslint-disable-line\n data: (val) => React.useState(val), // eslint-disable-line\n courses: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useFetchCourses = (setRequestState, setData) => {\n React.useEffect(() => {\n let isMounted = true;\n api.fetchRecommendedCourses().then((response) => {\n if (isMounted) {\n setRequestState(RequestStates.completed);\n setData(response);\n }\n }).catch(() => {\n if (isMounted) {\n setRequestState(RequestStates.failed);\n }\n });\n return () => { isMounted = false; };\n /* eslint-disable */\n }, []);\n};\n\nexport const useRecommendationPanelData = () => {\n const [requestState, setRequestState] = module.state.requestState(RequestStates.pending);\n const [data, setData] = module.state.data({});\n module.useFetchCourses(setRequestState, setData);\n const [courses, setCourses] = module.state.courses(data.data?.courses || []);\n const isControl = data.data?.isControl === undefined ? null : data.data?.isControl;\n\n React.useEffect(() => {\n window.loadMockRecommendations = () => {\n setCourses(testData.courses);\n setRequestState(RequestStates.completed);\n }\n }, []);\n\n React.useEffect(() => {\n setCourses(data.data?.courses || []);\n }, [data]);\n\n return {\n courses,\n isControl,\n isLoaded: requestState === RequestStates.completed && courses.length > 0,\n isFailed: requestState === RequestStates.failed\n || (requestState === RequestStates.completed && courses.length === 0),\n isLoading: requestState === RequestStates.pending,\n };\n};\n\nexport default {\n useRecommendationPanelData,\n};\n","import React from 'react';\n\nimport LookingForChallengeWidget from 'widgets/LookingForChallengeWidget';\nimport LoadingView from './LoadingView';\nimport LoadedView from './LoadedView';\nimport hooks from './hooks';\nimport RecommendationsPaintedDoorBtn from '../RecommendationsPaintedDoorBtn';\nimport { RECOMMENDATIONS_PANEL } from '../RecommendationsPaintedDoorBtn/constants';\nimport { usePaintedDoorExperimentContext } from '../RecommendationsPaintedDoorBtn/PaintedDoorExperimentContext';\n\nexport const RecommendationsPanel = () => {\n const {\n courses,\n isControl,\n isFailed,\n isLoaded,\n isLoading,\n } = hooks.useRecommendationPanelData();\n const {\n experimentVariation,\n isPaintedDoorWidgetBtnVariation,\n experimentLoading,\n } = usePaintedDoorExperimentContext();\n\n const getDefaultOrFailedStateWidget = () => {\n if (!experimentLoading && isPaintedDoorWidgetBtnVariation) {\n return (\n <>\n \n
\n \n \n );\n }\n return (\n \n );\n };\n\n if (isLoading) {\n return ();\n }\n if (isLoaded && courses.length > 0) {\n return (\n \n );\n }\n if (isFailed) {\n return getDefaultOrFailedStateWidget();\n }\n // default fallback\n return getDefaultOrFailedStateWidget();\n};\n\nexport default RecommendationsPanel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useWindowSize, breakpoints } from '@edx/paragon';\nimport { StrictDict } from 'utils';\nimport api from 'widgets/ProductRecommendations/api';\nimport * as module from './ExperimentContext';\n\nexport const state = StrictDict({\n experiment: (val) => React.useState(val), // eslint-disable-line\n countryCode: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useCountryCode = (setCountryCode) => {\n React.useEffect(() => {\n api\n .fetchRecommendationsContext()\n .then((response) => {\n setCountryCode(response.data.countryCode);\n })\n .catch(() => {\n setCountryCode('');\n });\n /* eslint-disable */\n }, []);\n};\n\nexport const ExperimentContext = React.createContext();\n\nexport const ExperimentProvider = ({ children }) => {\n const [countryCode, setCountryCode] = module.state.countryCode(null);\n const [experiment, setExperiment] = module.state.experiment({\n isExperimentActive: false,\n inRecommendationsVariant: true,\n });\n\n module.useCountryCode(setCountryCode);\n const { width } = useWindowSize();\n const isMobile = width < breakpoints.small.minWidth;\n\n const contextValue = React.useMemo(\n () => ({\n experiment,\n countryCode,\n setExperiment,\n setCountryCode,\n isMobile,\n }),\n [experiment, countryCode, setExperiment, setCountryCode, isMobile]\n );\n\n return (\n \n {children}\n \n );\n};\n\nexport const useExperimentContext = () => React.useContext(ExperimentContext);\n\nExperimentProvider.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default { useCountryCode, useExperimentContext };\n","import { get, stringifyUrl } from 'data/services/lms/utils';\nimport urls from 'data/services/lms/urls';\n\nexport const crossProductAndAmplitudeRecommendationsUrl = (courseId) => `${urls.getApiUrl()}/edx_recommendations/learner_dashboard/cross_product/${courseId}/`;\nexport const amplitudeRecommendationsUrl = () => `${urls.getApiUrl()}/edx_recommendations/learner_dashboard/amplitude/v2/`;\nexport const recommendationsContextUrl = () => `${urls.getApiUrl()}/edx_recommendations/learner_dashboard/recommendations_context/`;\n\nconst fetchRecommendationsContext = () => get(stringifyUrl(recommendationsContextUrl()));\n\nconst fetchCrossProductRecommendations = (courseId) => (\n get(stringifyUrl(crossProductAndAmplitudeRecommendationsUrl(courseId)))\n);\nconst fetchAmplitudeRecommendations = () => get(stringifyUrl(amplitudeRecommendationsUrl()));\n\nexport default {\n fetchCrossProductRecommendations,\n fetchAmplitudeRecommendations,\n fetchRecommendationsContext,\n};\n","export const bootCamp = 'Boot Camp';\nexport const executiveEducation = 'Executive Education';\nexport const course = 'Course';\n\nexport const control = 'control';\nexport const treatment = 'treatment';\nexport const noExperiment = 'no experiment';\n","import { createInstance, setLogLevel } from '@optimizely/react-sdk';\n\nimport { getConfig } from '@edx/frontend-platform';\n\nconst OPTIMIZELY_SDK_KEY = getConfig().OPTIMIZELY_FULL_STACK_SDK_KEY;\n\nconst configureClient = () => {\n setLogLevel('error');\n\n return createInstance({\n sdkKey: OPTIMIZELY_SDK_KEY,\n });\n};\n\nconst optimizelyClient = configureClient();\n\nexport default optimizelyClient;\n","import { StrictDict } from 'utils';\nimport optimizelyClient from './optimizely';\n\nexport const PRODUCT_RECOMMENDATIONS_EXP_KEY = 'learner_dashboard_product_recommendations_exp';\nexport const PRODUCT_RECOMMENDATIONS_EXP_VARIATION = 'learner_dashboard_product_recommendations_enabled';\n\nexport const eventNames = StrictDict({\n productRecommendationsViewed: 'product_recommendations_viewed',\n productHeaderClicked: 'product_header_clicked',\n productCardClicked: 'product_card_clicked',\n courseCardClicked: 'course_card_clicked',\n});\n\nexport const activateProductRecommendationsExperiment = (userId, userAttributes) => {\n const variation = optimizelyClient?.activate(\n PRODUCT_RECOMMENDATIONS_EXP_KEY,\n userId,\n userAttributes,\n );\n\n return {\n experimentActivated: variation !== null,\n inExperimentVariant: variation === PRODUCT_RECOMMENDATIONS_EXP_VARIATION,\n };\n};\n\nexport const trackProductRecommendationsViewed = (userId, userAttributes = {}) => {\n optimizelyClient.track(eventNames.productRecommendationsViewed, userId, userAttributes);\n};\n\nexport const trackProductHeaderClicked = (userId, userAttributes = {}) => {\n optimizelyClient.track(eventNames.productHeaderClicked, userId, userAttributes);\n};\n\nexport const trackProductCardClicked = (userId, userAttributes = {}) => {\n optimizelyClient.track(eventNames.productCardClicked, userId, userAttributes);\n};\n\nexport const trackCourseCardClicked = (userId, userAttributes = {}) => {\n optimizelyClient.track(eventNames.courseCardClicked, userId, userAttributes);\n};\n","import PropTypes from 'prop-types';\nimport { executiveEducation, course, bootCamp } from './constants';\n\nexport const courseShape = {\n uuid: PropTypes.string,\n title: PropTypes.string,\n image: PropTypes.shape({\n src: PropTypes.string,\n }),\n prospectusPath: PropTypes.string,\n owners: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n name: PropTypes.string,\n logoImageUrl: PropTypes.string,\n }),\n ),\n activeCourseRun: PropTypes.shape({\n key: PropTypes.string,\n marketingUrl: PropTypes.string,\n }),\n courseType: PropTypes.string,\n};\n\nexport const courseTypeToProductTypeMap = {\n course,\n 'verified-audit': course,\n verified: course,\n audit: course,\n 'credit-verified-audit': course,\n 'spoc-verified-audit': course,\n professional: 'Professional Certificate',\n 'bootcamp-2u': bootCamp,\n 'executive-education-2u': executiveEducation,\n 'executive-education': executiveEducation,\n masters: \"Master's\",\n 'masters-verified-audit': \"Master's\",\n};\n\nexport const courseTypeToProductLineMap = {\n [executiveEducation]: 'executive-education',\n [bootCamp]: 'boot-camps',\n [course]: 'open-courses',\n};\n\nexport const convertCourseRunKeyToCourseKey = (courseRunKey) => {\n const newKeyFormat = courseRunKey.includes('+');\n if (newKeyFormat) {\n const splitCourseRunKey = courseRunKey.split(':').slice(-1)[0];\n const splitCourseKey = splitCourseRunKey.split('+').slice(0, 2);\n return `${splitCourseKey[0]}+${splitCourseKey[1]}`;\n }\n const splitCourseKey = courseRunKey.split('/').slice(0, 2);\n return `${splitCourseKey[0]}+${splitCourseKey[1]}`;\n};\n\nexport const wait = (time) => new Promise((resolve) => {\n setTimeout(resolve, time);\n});\n","import { StrictDict } from 'utils';\nimport { createLinkTracker, createEventTracker } from 'data/services/segment/utils';\nimport { courseTypeToProductLineMap, convertCourseRunKeyToCourseKey } from './utils';\n\nexport const eventNames = StrictDict({\n productCardClicked: 'edx.bi.2u-product-card.clicked',\n discoveryCardClicked: 'edx.bi.user.discovery.card.click',\n recommendationsHeaderClicked: 'edx.bi.link.recommendations.header.clicked',\n recommendationsViewed: 'edx.bi.user.recommendations.viewed',\n});\n\nexport const productCardClicked = (courseRunKey, courseTitle, courseType, href) => {\n createLinkTracker(\n createEventTracker(eventNames.productCardClicked, {\n label: courseTitle,\n courserun_key: courseRunKey,\n page: 'dashboard',\n product_line: courseTypeToProductLineMap[courseType],\n }),\n href,\n );\n};\n\nexport const discoveryCardClicked = (courseRunKey, courseTitle, href) => {\n createLinkTracker(\n createEventTracker(eventNames.discoveryCardClicked, {\n label: courseTitle,\n courserun_key: courseRunKey,\n page: 'dashboard',\n product_line: 'open-course',\n }),\n href,\n );\n};\n\nexport const recommendationsHeaderClicked = (courseType, href) => {\n createLinkTracker(\n createEventTracker(eventNames.recommendationsHeaderClicked, {\n page: 'dashboard',\n product_line: courseTypeToProductLineMap[courseType],\n }),\n href,\n );\n};\n\nexport const recommendationsViewed = (isControl, recommenderGroup, courseRunKey) => {\n createEventTracker(eventNames.recommendationsViewed, {\n is_control: isControl,\n productRecommenderGroup: recommenderGroup,\n page: 'dashboard',\n course_key: courseRunKey ? convertCourseRunKeyToCourseKey(courseRunKey) : '',\n });\n};\n","import { useState, useEffect } from 'react';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\n\nimport { RequestStates, RequestKeys } from 'data/constants/requests';\nimport { StrictDict } from 'utils';\nimport { reduxHooks } from 'hooks';\nimport { SortKeys } from 'data/constants/app';\nimport { useWindowSize, breakpoints } from '@edx/paragon';\nimport { useExperimentContext } from 'ExperimentContext';\nimport { control, treatment, noExperiment } from './constants';\nimport { activateProductRecommendationsExperiment, trackProductRecommendationsViewed } from './optimizelyExperiment';\nimport { recommendationsViewed } from './track';\n\nimport api from './api';\nimport * as module from './hooks';\n\nexport const state = StrictDict({\n requestState: (val) => useState(val), // eslint-disable-line\n data: (val) => useState(val), // eslint-disable-line\n});\n\nexport const useIsMobile = () => {\n const { width } = useWindowSize();\n return width < breakpoints.small.minWidth;\n};\n\nexport const useMostRecentCourseRunKey = () => {\n const mostRecentCourseRunKey = reduxHooks.useCurrentCourseList({\n sortBy: SortKeys.enrolled,\n filters: [],\n pageSize: 0,\n }).visible[0]?.courseRun?.courseId;\n\n return mostRecentCourseRunKey;\n};\n\nexport const useActivateRecommendationsExperiment = () => {\n const enterpriseDashboardData = reduxHooks.useEnterpriseDashboardData();\n const hasRequestCompleted = reduxHooks.useRequestIsCompleted(RequestKeys.initialize);\n const mostRecentCourseRunKey = module.useMostRecentCourseRunKey();\n const userId = getAuthenticatedUser().userId.toString();\n\n const {\n experiment: { isExperimentActive },\n setExperiment,\n isMobile,\n countryCode,\n } = useExperimentContext();\n\n useEffect(() => {\n if (!isExperimentActive && countryCode !== null) {\n const activateExperiment = () => {\n const userAttributes = {\n is_mobile_user: isMobile,\n is_enterprise_user: !!enterpriseDashboardData,\n location: countryCode ? countryCode.toLowerCase() : '',\n };\n const experiment = activateProductRecommendationsExperiment(userId, userAttributes);\n\n setExperiment((prev) => ({\n ...prev,\n isExperimentActive: true,\n inRecommendationsVariant: experiment.inExperimentVariant,\n }));\n\n return experiment;\n };\n\n const sendViewedEvent = () => {\n trackProductRecommendationsViewed(userId);\n recommendationsViewed(true, control, mostRecentCourseRunKey);\n };\n\n if (hasRequestCompleted) {\n const { experimentActivated, inExperimentVariant } = activateExperiment();\n\n if (experimentActivated && !inExperimentVariant) {\n sendViewedEvent();\n }\n }\n }\n /* eslint-disable */\n }, [isExperimentActive, countryCode])\n};\n\nexport const useShowRecommendationsFooter = () => {\n const { experiment } = useExperimentContext();\n\n return experiment;\n};\n\nexport const useFetchRecommendations = (setRequestState, setData) => {\n const courseRunKey = module.useMostRecentCourseRunKey();\n\n useEffect(() => {\n let isMounted = true;\n\n const handleSuccess = (response) => {\n if (isMounted) {\n setData(response.data);\n setRequestState(RequestStates.completed);\n }\n };\n\n const handleError = () => {\n if (isMounted) {\n setRequestState(RequestStates.failed);\n }\n };\n\n if (courseRunKey) {\n api\n .fetchCrossProductRecommendations(courseRunKey)\n .then(handleSuccess)\n .catch(handleError);\n } else {\n api\n .fetchAmplitudeRecommendations()\n .then(handleSuccess)\n .catch(handleError);\n }\n return () => {\n isMounted = false;\n };\n /* eslint-disable */\n }, []);\n};\n\nexport const useSendViewedEvents = (requestState, data) => {\n const mostRecentCourseRunKey = module.useMostRecentCourseRunKey();\n const userId = getAuthenticatedUser().userId.toString();\n\n useEffect(() => {\n if (requestState === RequestStates.completed) {\n if (data.crossProductCourses?.length === 2) {\n trackProductRecommendationsViewed(userId);\n recommendationsViewed(false, treatment, mostRecentCourseRunKey);\n } else {\n trackProductRecommendationsViewed(userId);\n recommendationsViewed(true, noExperiment, mostRecentCourseRunKey);\n }\n }\n }, [data, requestState])\n}\n\nexport const useProductRecommendationsData = () => {\n const [requestState, setRequestState] = module.state.requestState(RequestStates.pending);\n const [data, setData] = module.state.data({});\n\n module.useFetchRecommendations(setRequestState, setData);\n module.useSendViewedEvents(requestState, data);\n\n return {\n productRecommendations: data,\n isLoading: requestState === RequestStates.pending,\n isLoaded: requestState === RequestStates.completed,\n hasFailed: requestState === RequestStates.failed \n };\n};\n\nexport default { useProductRecommendationsData, useShowRecommendationsFooter, useIsMobile, useActivateRecommendationsExperiment };\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport RecommendationsPanel from 'widgets/RecommendationsPanel';\nimport hooks from 'widgets/ProductRecommendations/hooks';\n\nexport const WidgetSidebar = ({ setSidebarShowing }) => {\n const { inRecommendationsVariant, isExperimentActive } = hooks.useShowRecommendationsFooter();\n\n if (!inRecommendationsVariant && isExperimentActive) {\n setSidebarShowing(true);\n\n return (\n
\n
\n \n
\n
\n );\n }\n\n return null;\n};\n\nWidgetSidebar.propTypes = {\n setSidebarShowing: PropTypes.func.isRequired,\n};\n\nexport default WidgetSidebar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport RecommendationsPanel from 'widgets/RecommendationsPanel';\nimport hooks from 'widgets/ProductRecommendations/hooks';\n\nexport const WidgetSidebar = ({ setSidebarShowing }) => {\n const { inRecommendationsVariant, isExperimentActive } = hooks.useShowRecommendationsFooter();\n\n if (!inRecommendationsVariant && isExperimentActive) {\n setSidebarShowing(true);\n\n return (\n
\n
\n \n
\n
\n );\n }\n\n return null;\n};\n\nWidgetSidebar.propTypes = {\n setSidebarShowing: PropTypes.func.isRequired,\n};\n\nexport default WidgetSidebar;\n","import React from 'react';\nimport { Spinner } from '@edx/paragon';\n\nimport hooks from './hooks';\n\nexport const LoadingView = () => {\n const { spinnerScreenReaderText } = hooks.useDashboardMessages();\n\n return (\n
\n \n
\n );\n};\n\nexport default LoadingView;\n","import React from 'react';\nimport { Skeleton } from '@edx/paragon';\n\nexport const LoadingView = () => (\n \n);\n\nexport default LoadingView;\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n recommendationsHeading: {\n id: 'ProductRecommendations.recommendationsHeading',\n defaultMessage: 'You might also like',\n description: 'Title for a list of recommended courses',\n },\n executiveEducationHeading: {\n id: 'ProductRecommendations.executiveEducationHeading',\n defaultMessage: 'Executive Education',\n description: 'Heading for an executive education course recommendation',\n },\n executiveEducationDescription: {\n id: 'ProductRecommendations.executiveEducationDescription',\n defaultMessage: 'Short Courses to develop leadership skills',\n description: 'Short description of an executive education course',\n },\n bootcampHeading: {\n id: 'ProductRecommendations.bootcampHeading',\n defaultMessage: 'Boot Camp',\n description: 'Heading for a bootcamp course recommendation',\n },\n bootcampDescription: {\n id: 'ProductRecommendations.bootcampDescription',\n defaultMessage: 'Intensive, hands-on, project based training',\n description: 'Short description of a bootcamp course',\n },\n courseHeading: {\n id: 'ProductRecommendations.courseHeading',\n defaultMessage: 'Courses',\n description: 'Heading for an open course recommendation',\n },\n courseDescription: {\n id: 'ProductRecommendations.courseDescription',\n defaultMessage: 'Find new interests and advance your career',\n description: 'Heading for an open course recommendation',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Badge,\n Card,\n Truncate,\n Hyperlink,\n} from '@edx/paragon';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\n\nimport { trackProductCardClicked, trackCourseCardClicked } from '../optimizelyExperiment';\nimport { productCardClicked, discoveryCardClicked } from '../track';\nimport { bootCamp, executiveEducation } from '../constants';\n\nconst ProductCard = ({\n title,\n subtitle,\n headerImage,\n courseRunKey,\n schoolLogo,\n courseType,\n url,\n}) => {\n const handleClick = (type, link) => {\n const crossProductTypes = [executiveEducation, bootCamp];\n const userId = getAuthenticatedUser().userId.toString();\n\n if (crossProductTypes.includes(type)) {\n trackProductCardClicked(userId);\n productCardClicked(courseRunKey, title, type, link);\n } else {\n trackCourseCardClicked(userId);\n discoveryCardClicked(courseRunKey, title, link);\n }\n };\n\n const getRedirectUrl = (link) => {\n const urlObj = new URL(link);\n const hasQueryStringParameters = urlObj.search !== '';\n\n if (hasQueryStringParameters) {\n return `${link}&linked_from=recommender`;\n }\n\n return `${link}?linked_from=recommender`;\n };\n\n const redirectUrl = getRedirectUrl(url);\n\n return (\n {\n handleClick(courseType, redirectUrl);\n }}\n isClickable\n >\n \n \n {title}\n \n )}\n subtitle={(\n \n {subtitle}\n \n )}\n />\n \n
\n {courseType}\n
\n
\n \n );\n};\n\nProductCard.propTypes = {\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n headerImage: PropTypes.string.isRequired,\n courseRunKey: PropTypes.string.isRequired,\n schoolLogo: PropTypes.string.isRequired,\n courseType: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n};\n\nexport default ProductCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\n\nimport { Icon, Hyperlink } from '@edx/paragon';\nimport { ChevronRight } from '@edx/paragon/icons';\nimport { getConfig } from '@edx/frontend-platform';\nimport { trackProductHeaderClicked } from '../optimizelyExperiment';\nimport { recommendationsHeaderClicked } from '../track';\nimport { executiveEducation, bootCamp } from '../constants';\nimport messages from '../messages';\n\nconst ProductCardHeader = ({ courseType }) => {\n const getProductTypeDetail = (type) => {\n switch (type) {\n case executiveEducation:\n return {\n heading: messages.executiveEducationHeading,\n description: messages.executiveEducationDescription,\n url: '/executive-education?linked_from=recommender',\n };\n case bootCamp:\n return {\n heading: messages.bootcampHeading,\n description: messages.bootcampDescription,\n url: '/boot-camps?linked_from=recommender',\n };\n default: {\n return {\n heading: messages.courseHeading,\n description: messages.courseDescription,\n url: '/search?tab=course',\n };\n }\n }\n };\n\n const handleClick = (type, url) => {\n const userId = getAuthenticatedUser().userId.toString();\n\n trackProductHeaderClicked(userId);\n recommendationsHeaderClicked(type, url);\n };\n\n const { formatMessage } = useIntl();\n const productTypeDetail = getProductTypeDetail(courseType);\n const headerUrl = `${getConfig().MARKETING_SITE_BASE_URL}${productTypeDetail.url}`;\n\n return (\n
\n {\n handleClick(courseType, headerUrl);\n }}\n >\n
\n

\n {formatMessage(productTypeDetail.heading)}\n

\n \n
\n \n

\n {formatMessage(productTypeDetail.description)}\n

\n
\n );\n};\n\nProductCardHeader.propTypes = {\n courseType: PropTypes.string.isRequired,\n};\n\nexport default ProductCardHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport { courseShape, courseTypeToProductTypeMap } from '../utils';\nimport { course } from '../constants';\nimport ProductCard from './ProductCard';\nimport ProductCardHeader from './ProductCardHeader';\n\nconst ProductCardContainer = ({ finalProductList, courseTypes }) => (\n
\n {finalProductList\n && courseTypes.map((type) => (\n
\n \n \n {finalProductList\n .filter((courseObj) => courseTypeToProductTypeMap[courseObj.courseType] === type)\n .map((item) => (\n \n ))}\n
\n
\n ))}\n
\n);\n\nProductCardContainer.propTypes = {\n finalProductList: PropTypes.arrayOf(\n PropTypes.shape(courseShape),\n ).isRequired,\n courseTypes: PropTypes.arrayOf(PropTypes.string).isRequired,\n};\n\nexport default ProductCardContainer;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Container } from '@edx/paragon';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport messages from '../messages';\nimport { courseShape, courseTypeToProductTypeMap } from '../utils';\nimport ProductCardContainer from './ProductCardContainer';\n\nconst LoadedView = ({ crossProductCourses, openCourses }) => {\n const { formatMessage } = useIntl();\n const includesCrossProductTypes = crossProductCourses.length === 2;\n\n const finalProductList = useMemo(() => {\n if (includesCrossProductTypes) {\n const openCourseList = openCourses.slice(0, 2);\n return crossProductCourses.concat(openCourseList);\n }\n return openCourses;\n }, [crossProductCourses, openCourses, includesCrossProductTypes]);\n\n const courseTypes = [...new Set(finalProductList.map((item) => courseTypeToProductTypeMap[item.courseType]))];\n\n return (\n \n

\n {formatMessage(messages.recommendationsHeading)}\n

\n \n \n );\n};\n\nLoadedView.propTypes = {\n crossProductCourses: PropTypes.arrayOf(\n PropTypes.shape(courseShape),\n ).isRequired,\n openCourses: PropTypes.arrayOf(\n PropTypes.shape(courseShape),\n ).isRequired,\n};\n\nexport default LoadedView;\n","import React from 'react';\nimport './index.scss';\nimport { reduxHooks } from 'hooks';\nimport NoCoursesView from 'containers/CourseList/NoCoursesView';\nimport LoadingView from './components/LoadingView';\nimport LoadedView from './components/LoadedView';\nimport hooks from './hooks';\n\nconst ProductRecommendations = () => {\n const checkEmptyResponse = (obj) => {\n const values = Object.values(obj);\n const result = values.filter((item) => item.length === 0);\n return result.length === values.length;\n };\n\n const { productRecommendations, isLoading, isLoaded } = hooks.useProductRecommendationsData();\n const isMobile = hooks.useIsMobile();\n const hasCourses = reduxHooks.useHasCourses();\n const shouldShowPlaceholder = checkEmptyResponse(productRecommendations);\n\n if (isLoading && !isMobile) {\n return ;\n }\n\n if (isLoaded && !isMobile && !shouldShowPlaceholder) {\n return (\n \n );\n }\n\n if (isLoaded && hasCourses && !isMobile && shouldShowPlaceholder) {\n return ;\n }\n return null;\n};\n\nexport default ProductRecommendations;\n","import React from 'react';\n\nimport ProductRecommendations from 'widgets/ProductRecommendations';\nimport hooks from 'widgets/ProductRecommendations/hooks';\n\nexport const WidgetFooter = () => {\n hooks.useActivateRecommendationsExperiment();\n const { inRecommendationsVariant, isExperimentActive } = hooks.useShowRecommendationsFooter();\n\n if (inRecommendationsVariant && isExperimentActive) {\n return (\n
\n \n
\n );\n }\n\n return null;\n};\n\nexport default WidgetFooter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Container, Col, Row } from '@edx/paragon';\n\nimport WidgetFooter from 'containers/WidgetContainers/WidgetFooter';\nimport hooks from './hooks';\n\nexport const columnConfig = {\n courseList: {\n withSidebar: {\n lg: { span: 12, offset: 0 },\n xl: { span: 8, offset: 0 },\n },\n noSidebar: {\n lg: { span: 12, offset: 0 },\n xl: { span: 12, offset: 0 },\n },\n },\n sidebar: {\n lg: { span: 12, offset: 0 },\n xl: { span: 4, offset: 0 },\n },\n};\n\nexport const DashboardLayout = ({ children, sidebar: Sidebar }) => {\n const {\n isCollapsed,\n sidebarShowing,\n setSidebarShowing,\n } = hooks.useDashboardLayoutData();\n\n const courseListColumnProps = sidebarShowing\n ? columnConfig.courseList.withSidebar\n : columnConfig.courseList.noSidebar;\n\n return (\n \n \n \n {children}\n \n \n {!isCollapsed && (

 

)}\n \n \n
\n \n \n \n \n \n
\n );\n};\nDashboardLayout.propTypes = {\n children: PropTypes.node.isRequired,\n sidebar: PropTypes.func.isRequired,\n};\n\nexport default DashboardLayout;\n","import React from 'react';\n\nimport { reduxHooks } from 'hooks';\nimport { RequestKeys } from 'data/constants/requests';\nimport EnterpriseDashboardModal from 'containers/EnterpriseDashboardModal';\nimport SelectSessionModal from 'containers/SelectSessionModal';\nimport CourseList from 'containers/CourseList';\n\nimport LoadedSidebar from 'containers/WidgetContainers/LoadedSidebar';\nimport NoCoursesSidebar from 'containers/WidgetContainers/NoCoursesSidebar';\n\nimport LoadingView from './LoadingView';\nimport DashboardLayout from './DashboardLayout';\nimport hooks from './hooks';\nimport './index.scss';\n\nexport const Dashboard = () => {\n hooks.useInitializeDashboard();\n const { pageTitle } = hooks.useDashboardMessages();\n const hasCourses = reduxHooks.useHasCourses();\n const hasAvailableDashboards = reduxHooks.useHasAvailableDashboards();\n const initIsPending = reduxHooks.useRequestIsPending(RequestKeys.initialize);\n const showSelectSessionModal = reduxHooks.useShowSelectSessionModal();\n\n return (\n
\n

{pageTitle}

\n {!initIsPending && (\n <>\n {hasAvailableDashboards && }\n {(hasCourses && showSelectSessionModal) && }\n \n )}\n
\n {initIsPending\n ? ()\n : (\n \n \n \n )}\n
\n
\n );\n};\n\nexport default Dashboard;\n","import { StrictDict } from 'utils';\n\nexport const messages = StrictDict({\n supportTitle: {\n id: 'zendesk.supportTitle',\n description: 'Title for the support button',\n defaultMessage: 'edX Support',\n },\n selectTicketForm: {\n id: 'zendesk.selectTicketForm',\n description: 'Select ticket form',\n defaultMessage: 'Please choose your request type:',\n },\n});\n\nexport default messages;\n","import React from 'react';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport Zendesk from 'react-zendesk';\nimport messages from './messages';\n\nconst ZendeskFab = () => {\n const { formatMessage } = useIntl();\n const setting = {\n cookies: true,\n webWidget: {\n contactOptions: {\n enabled: false,\n },\n chat: {\n suppress: false,\n departments: {\n enabled: ['account settings', 'billing and payments', 'certificates', 'deadlines', 'errors and technical issues', 'other', 'proctoring'],\n },\n },\n contactForm: {\n ticketForms: [\n {\n id: 360003368814,\n subject: false,\n fields: [{ id: 'description', prefill: { '*': '' } }],\n },\n ],\n selectTicketForm: {\n '*': formatMessage(messages.selectTicketForm),\n },\n attachments: true,\n },\n helpCenter: {\n originalArticleButton: true,\n },\n answerBot: {\n suppress: false,\n contactOnlyAfterQuery: true,\n title: { '*': formatMessage(messages.supportTitle) },\n avatar: {\n url: 'https://edx-cdn.org/v3/prod/favicon.ico',\n name: { '*': formatMessage(messages.supportTitle) },\n },\n },\n },\n };\n\n return (\n \n );\n};\n\nexport default ZendeskFab;\n","import { StrictDict } from 'utils';\n\nexport const requestStatuses = StrictDict({\n pending: 'pending',\n approved: 'approved',\n rejected: 'rejected',\n});\n\nexport default { requestStatuses };\n","import { StrictDict } from 'utils';\nimport creditVals from 'data/constants/credit';\n\nexport const providers = StrictDict({\n edx: { name: 'edX Course Provider' },\n mit: { name: 'MIT' },\n});\n\nexport const relatedPrograms = [\n {\n provider: 'HarvardX',\n bannerImgSrc: 'https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg',\n logoImgSrc: 'https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png',\n title: 'Relativity in Modern Mechanics',\n programUrl: 'www.edx/my-program',\n programType: 'MicroBachelors Program',\n numberOfCourses: 3,\n },\n {\n provider: 'University of Maryland',\n bannerImgSrc: 'https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg',\n logoImgSrc: 'https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png',\n title: 'Pandering for Modern Professionals',\n programUrl: 'www.edx/my-program-2',\n programType: 'MicroBachelors Program',\n programTypeUrl: 'www.edx/my-program-type',\n numberOfCourses: 3,\n },\n {\n provider: 'HarvardX',\n bannerImgSrc: 'https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg',\n logoImgSrc: 'https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png',\n title: 'Relativity in Modern Mechanics',\n programUrl: 'www.edx/my-program-3',\n programType: 'MicroBachelors Program',\n numberOfCourses: 3,\n },\n {\n provider: 'University of Maryland',\n bannerImgSrc: 'https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg',\n logoImgSrc: 'https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png',\n title: 'Pandering for Modern Professionals',\n programUrl: 'www.edx/my-program-4',\n programType: 'MicroBachelors Program',\n programTypeUrl: 'www.edx/my-program-type',\n numberOfCourses: 3,\n },\n];\n\nexport const genCardId = (index) => `card-id${index}`;\nexport const genCourseId = (index) => `course-number${index}-course-id${index}`;\nexport const genCourseNumber = (index) => `course-number${index}`;\nexport const genCourseShareUrl = (index) => `home.edx.org?social-share-url/${index}`;\nexport const genEntitlementUUID = (index) => `entitlement-course-uuid-${index}`;\n\nconst bannerImgSrc = '/asset-v1:edX+DemoX+Demo_Course+type@asset+block@images_course_image.jpg';\n\nexport const farPastDate = '1900-11-11T00:00:00Z';\nexport const pastDate = '2000-11-11T00:00:00Z';\nexport const futureDate = '3030-11-11T00:00:00Z';\nexport const farFutureDate = '4040-11-11T00:00:00Z';\nexport const soonDate = new Date();\nsoonDate.setDate(soonDate.getDate() + 60);\nexport const soonDateStr = soonDate.toDateString();\n\nexport const globalData = {\n emailConfirmation: {\n isNeeded: true,\n sendEmailUrl: 'sendConfirmation@edx.org',\n },\n enterpriseDashboard: { label: 'edX, Inc.', url: '/edx-dashboard' },\n platformSettings: {\n supportEmail: 'support@example.com',\n billingEmail: 'billing@email.com',\n courseSearchUrl: 'edx.com/course-search',\n },\n suggestedCourses: [\n {\n bannerImgSrc: 'https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg',\n courseName: 'Suggested course 1',\n courseUrl: 'www.edx/suggested-course',\n },\n {\n bannerImgSrc: 'https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg',\n courseName: 'Suggested course 2 with a really really really long name for some reason',\n courseUrl: 'www.edx/suggested-course',\n },\n {\n bannerImgSrc: 'https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg',\n courseName: 'Suggested course 3',\n courseUrl: 'www.edx/suggested-course',\n },\n {\n bannerImgSrc: 'https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg',\n courseName: 'Suggested course 4',\n courseUrl: 'www.edx/suggested-course',\n },\n ],\n socialShareSettings: {\n facebook: {\n isEnabled: true,\n socialBrand: 'edx.org',\n utmParams: 'utm_campaign=social-sharing-db&utm_medium=social&utm_source=facebook',\n },\n twitter: {\n isEnabled: true,\n socialBrand: 'edx.org',\n utmParams: 'utm_campaign=social-sharing-db&utm_medium=social&utm_source=twitter',\n },\n },\n};\n\nexport const genCourseRunData = (data = {}) => ({\n isStarted: false,\n isArchived: false,\n startDate: data.isStarted ? farPastDate : futureDate,\n endDate: farFutureDate,\n minPassingGrade: '0.70',\n homeUrl: 'edx.com/courses/my-course-url/home',\n marketingUrl: 'edx.com/courses/my-course-url/marketing',\n progressUrl: 'edx.com/courses/my-course-url/progress',\n unenrollUrl: 'edx.com/courses/my-course-url/unenroll',\n resumeUrl: 'edx.com/courses/my-course-url/resume',\n ...data,\n});\n\nexport const creditData = {\n providerStatusUrl: 'test-provider-status-url',\n providerName: 'Credit Provider Name',\n providerId: 'credit-provider-id',\n error: false,\n purchased: false,\n requestStatus: null,\n};\n\nexport const genEnrollmentData = (data = {}) => ({\n coursewareAccess: {\n isTooEarly: false,\n hasUnmetPrerequisites: false,\n isStaff: false,\n },\n accessExpirationDate: ((data.isEnrolled === false) ? null : futureDate),\n canUpgrade: (data.isVerified ? null : true),\n hasStarted: false,\n isAudit: !data.isVerified && (data.isEnrolled !== false),\n isAuditAccessExpired: data.isVerified ? null : false,\n isEmailEnabled: false,\n hasOptedOutOfEmail: false,\n isEnrolled: true,\n isVerified: false,\n ...data,\n});\n\nexport const genCertificateData = (data = {}) => ({\n availableDate: null,\n isRestricted: false,\n isEarned: false,\n isDownloadable: false,\n certPreviewUrl: 'edx.com/courses/my-course-url/cert-preview',\n ...data,\n});\n\nexport const availableSessions = [\n {\n startDate: '2000-01-02T00:00:00Z',\n endDate: '2020-01-02T00:00:00Z',\n courseId: genCourseId(1000),\n },\n {\n startDate: '2000-02-03T00:00:00Z',\n endDate: '2020-02-03T00:00:00Z',\n courseId: genCourseId(1001),\n },\n {\n startDate: '2000-03-04T00:00:00Z',\n endDate: '2020-03-04T00:00:00Z',\n courseId: genCourseId(1002),\n },\n {\n startDate: '2000-04-05T00:00:00Z',\n endDate: '2020-04-05T00:00:00Z',\n courseId: genCourseId(1003),\n },\n {\n startDate: '2000-05-06T00:00:00Z',\n endDate: '2020-05-06T00:00:00Z',\n courseId: genCourseId(1004),\n },\n];\n\nconst auditCourses = [\n // audit, course run not started\n {\n courseName: 'Audit Course, Course run not started',\n },\n // audit, course run not started, too early to view\n {\n courseName: 'Audit Course, Course run not started, Too early to view',\n enrollment: {\n coursewareAccess: {\n isTooEarly: true,\n hasUnmetPrerequisites: false,\n isStaff: false,\n },\n },\n },\n // audit, course run not started, too early to view and unmet prereqs\n {\n courseName: 'Audit Course, Course run not started, Too early to view, Has unmet prereqs.',\n enrollment: {\n coursewareAccess: {\n isTooEarly: true,\n hasUnmetPrerequisites: true,\n isStaff: false,\n },\n },\n },\n // audit, course run started\n {\n courseName: 'Audit Course, Course run not started',\n courseRun: { isStarted: true },\n },\n // audit, course run started, unmet prereqs\n {\n courseName: 'Audit Course, Course run not started, Has unmet prereqs',\n enrollment: {\n coursewareAccess: {\n isTooEarly: true,\n hasUnmetPrerequisites: true,\n isStaff: false,\n },\n },\n courseRun: { isStarted: true },\n },\n // audit, course run started, access expired, learner not started\n {\n courseName: 'Audit Course, Course run started, Audit ccess expired, Learner not started',\n courseRun: { isStarted: true },\n enrollment: {\n accessExpirationDate: pastDate,\n isAuditAccessExpired: true,\n },\n },\n // audit, course run started, access expired, cannot upgrade, learner not started\n {\n courseName: 'Audit course, Course run not started, Audit access expired, Cannot upgrade, Learner not started',\n courseRun: { isStarted: true },\n enrollment: {\n accessExpirationDate: pastDate,\n canUpgrade: false,\n isAuditAccessExpired: true,\n },\n },\n // audit, course run ended, access expired, cannot upgrade, learner not started\n {\n courseName: 'Audit Course, Course run ended, Audit access expired, Cannot upgrade, Learner not started',\n courseRun: {\n endDate: pastDate,\n isStarted: true,\n },\n enrollment: {\n accessExpirationDate: pastDate,\n isAuditAccessExpired: true,\n },\n },\n // audit, course run archived, access expired, cannot upgrade, learner not started\n {\n courseName: 'Audit Course, Course run archived, Audit access expired, Cannot upgrade, Learner not started',\n courseRun: {\n endDate: pastDate,\n isArchived: true,\n isStarted: true,\n },\n enrollment: {\n accessExpirationDate: pastDate,\n isAuditAccessExpired: true,\n },\n },\n // audit, course run and learner started, passing\n {\n courseName: 'Audit Course, Course run and learner started, Passing',\n courseRun: { isStarted: true },\n enrollment: { hasStarted: true },\n },\n // audit, course run and learner started, access expired\n {\n courseName: 'Audit Course, Course run and learner started, Audit access expired',\n courseRun: { isStarted: true },\n enrollment: {\n accessExpirationDate: pastDate,\n isAuditAccessExpired: true,\n hasStarted: true,\n },\n },\n // audit, course run and learner started, access expired, cannot upgrade\n {\n courseName: 'Audit Course, Course run and learner started, Audit access expired, Cannot upgrade',\n courseRun: { isStarted: true },\n enrollment: {\n accessExpirationDate: pastDate,\n canUpgrade: false,\n isAuditAccessExpired: true,\n hasStarted: true,\n },\n },\n // audit, course run ended, learner started, expired, cannot upgraded, not passing\n {\n courseName: 'Audit Course, Course run ended, Learner started, Access expired, Cannot upgrade, Not passing',\n courseRun: {\n isStarted: true,\n endDate: pastDate,\n },\n enrollment: {\n accessExpirationDate: pastDate,\n canUpgrade: false,\n isAuditAccessExpired: true,\n hasStarted: true,\n },\n grade: { isPassing: false },\n },\n // audit, course run archived, learner started, expired, cannot upgrade, not passing\n {\n courseName: 'Audit Course, Course run archived, Learner started, Access expired, Cannot upgrade, Not passing',\n courseRun: {\n isStarted: true,\n isArchived: true,\n endDate: pastDate,\n },\n enrollment: {\n accessExpirationDate: pastDate,\n canUpgrade: false,\n isAuditAccessExpired: true,\n hasStarted: true,\n },\n grade: { isPassing: false },\n },\n];\nconst verifiedCourses = [\n // verified, course not started, learner not started\n {\n courseName: 'Verified Course, Course and learner not started',\n enrollment: { isVerified: true },\n },\n // verified, course started, learner not started\n {\n courseName: 'Verified Course, Course started, Learner not started',\n courseRun: { isStarted: true },\n enrollment: { isVerified: true },\n },\n // verified, course started, learner started, passing\n {\n courseName: 'Verified Course, Course and learner started, Passing',\n courseRun: { isStarted: true },\n enrollment: { hasStarted: true, isVerified: true },\n },\n // verified, course started, learner started, not passing\n {\n courseName: 'Verified Course, Course and learner started, not passing',\n courseRun: { isStarted: true },\n gradeData: { isPassing: false },\n enrollment: { hasStarted: true, isVerified: true },\n },\n // verified, learner finished, not passing, cert not earned\n {\n courseName: 'Verified Course, Learner finished, cert not earned',\n enrollment: {\n hasStarted: true,\n isVerified: true,\n },\n courseRun: { isStarted: true, isArchived: true },\n gradeData: { isPassing: false },\n certificate: {\n isEarned: false,\n },\n },\n // verified, learner finished, passing, cert earned but not available\n {\n courseName: 'Verified Course, Learner finished, Cert earned but not available',\n enrollment: {\n hasStarted: true,\n isVerified: true,\n },\n courseRun: { isStarted: true, isArchived: true },\n certificate: {\n isEarned: true,\n availableDate: futureDate,\n },\n },\n // verified, learner finished, passing, restricted\n {\n courseName: 'Verified Course, Learner finished, Passing, Certificate restricted',\n enrollment: {\n hasStarted: true,\n isVerified: true,\n },\n courseRun: { isStarted: true, isArchived: true },\n certificate: { isRestricted: true },\n },\n // verified, learner finished, cert earned, downloadable (web + link)\n {\n courseName: 'Verified Course, Learner finished, Passing, Certificate downloadable and viewable',\n enrollment: {\n hasStarted: true,\n isVerified: true,\n },\n courseRun: { isStarted: true, isArchived: true },\n certificate: {\n isEarned: true,\n isDownloadable: true,\n availableDate: pastDate,\n certPreviewUrl: bannerImgSrc,\n },\n },\n // verified, course ended, learner finished, cert earned, downloadable (link only),\n {\n courseName: 'Verified Course, Course ended, Learner finished, Passing, Certificate downloadable',\n enrollment: {\n hasStarted: true,\n isVerified: true,\n },\n courseRun: {\n isStarted: true,\n isArchived: true,\n endDate: pastDate,\n },\n certificate: {\n isEarned: true,\n isDownloadable: true,\n availableDate: pastDate,\n },\n },\n // verified, course ended, learner finished, cert earned, downloadable (web + link)\n {\n courseName: 'Verified Course, Course ended, Learner finished, Passing, Certificate downloadable and viewable',\n enrollment: {\n hasStarted: true,\n isVerified: true,\n },\n courseRun: {\n isStarted: true,\n isArchived: true,\n endDate: pastDate,\n },\n certificate: {\n isEarned: true,\n isDownloadable: true,\n availableDate: pastDate,\n certPreviewUrl: bannerImgSrc,\n },\n },\n];\nconst fulfilledEntitlementCourses = [\n // Entitlement - not started\n {\n courseName: 'Entitlement Course, not started',\n enrollment: {\n isVerified: true,\n coursewareAccess: {\n isTooEarly: true,\n hasUnmetPrerequisites: false,\n isStaff: false,\n },\n },\n courseRun: { isStarted: false },\n entitlement: {\n uuid: genEntitlementUUID(0),\n availableSessions,\n changeDeadline: futureDate,\n enrollmentUrl: '/entitlement-enrollment',\n isExpired: false,\n isFulfilled: true,\n isRefundable: true,\n },\n },\n // Entitlement - Course run started, learner not started, unmet prereqs\n {\n courseName: 'Entitlement Course, Course run started, Learner not started, Has unmet prereqs',\n enrollment: {\n isVerified: true,\n coursewareAccess: {\n },\n },\n courseRun: { isStarted: true },\n entitlement: {\n uuid: genEntitlementUUID(1),\n availableSessions,\n changeDeadline: futureDate,\n enrollmentUrl: '/entitlement-enrollment',\n isExpired: false,\n isFulfilled: true,\n isRefundable: true,\n },\n },\n // Entitlement - Course run started, learner started, not passing\n {\n courseName: 'Entitlement Course, Course run started, Learner started, Not passing',\n enrollment: {\n isVerified: true,\n hasStarted: true,\n },\n courseRun: { isStarted: true },\n entitlement: {\n uuid: genEntitlementUUID(2),\n availableSessions,\n changeDeadline: futureDate,\n enrollmentUrl: '/entitlement-enrollment',\n isExpired: false,\n isFulfilled: true,\n isRefundable: true,\n },\n gradeData: { isPassing: false },\n },\n // Entitlement - Course run started, learner started, passing, cannot change\n {\n courseName: 'Entitlement Course, Course run and learner started, Passing, Cannot change sessions',\n enrollment: {\n isVerified: true,\n hasStarted: true,\n },\n courseRun: { isStarted: true },\n entitlement: {\n uuid: genEntitlementUUID(3),\n availableSessions,\n changeDeadline: pastDate,\n enrollmentUrl: '/entitlement-enrollment',\n isExpired: false,\n isFulfilled: true,\n isRefundable: true,\n },\n },\n // Entitlement - Learner finished, but did not pass\n {\n courseName: 'Entitlement Course, Learner finished but did not pass',\n enrollment: {\n isVerified: true,\n },\n courseRun: { isStarted: true, isArchived: false },\n entitlement: {\n uuid: genEntitlementUUID(4),\n availableSessions: null,\n changeDeadline: pastDate,\n enrollmentUrl: '/entitlement-enrollment',\n isExpired: false,\n isFulfilled: true,\n isRefundable: false,\n },\n gradeData: { isPassing: false },\n },\n // Entitlement - Learner finished, and passed. cannot refund. previewable cert.\n {\n courseName: 'Entitlement course, Learner finished and passed, Cannot refund, Previewable Cert',\n enrollment: {\n isVerified: true,\n },\n courseRun: { isStarted: true, isArchived: false },\n entitlement: {\n uuid: genEntitlementUUID(5),\n availableSessions: null,\n changeDeadline: pastDate,\n enrollmentUrl: '/entitlement-enrollment',\n isExpired: false,\n isFulfilled: true,\n isRefundable: false,\n },\n certificate: {\n isEarned: true,\n isDownloadable: true,\n availableDate: pastDate,\n certPreviewUrl: bannerImgSrc,\n },\n },\n // Entitlement - Learner finished and failed. cannot refund. course ended.\n {\n courseName: 'Entitlement Course, Learner finished and failed, Cannot refund, Course ended',\n enrollment: {\n isVerified: true,\n },\n courseRun: {\n isStarted: true,\n isArchived: false,\n endDate: pastDate,\n },\n entitlement: {\n uuid: genEntitlementUUID(6),\n availableSessions: null,\n enrollmentUrl: '/entitlement-enrollment',\n isFulfilled: true,\n isRefundable: false,\n changeDeadline: pastDate,\n isExpired: false,\n },\n gradeData: { isPassing: false },\n },\n // Entitlement - Learner finished and passed. cannot refund. cert downloadable\n {\n courseName: 'Entitlement Course, Learner finished and passed, Cannot refund, Cert downloadable',\n enrollment: {\n isVerified: true,\n },\n courseRun: {\n isArchived: true,\n isStarted: true,\n endDate: pastDate,\n },\n entitlement: {\n uuid: genEntitlementUUID(7),\n availableSessions: null,\n changeDeadline: pastDate,\n enrollmentUrl: '/entitlement-enrollment',\n isExpired: false,\n isRefundable: false,\n isFulfilled: true,\n },\n certificate: {\n isEarned: true,\n isDownloadable: true,\n availableDate: pastDate,\n certPreviewUrl: bannerImgSrc,\n },\n },\n];\nconst creditCourses = [\n {\n courseName: 'Credit - Eligible for credit from unknown provider',\n credit: {\n ...creditData,\n providerName: null,\n providerId: null,\n },\n enrollment: { isEnrolled: true },\n },\n {\n courseName: 'Credit - Eligible for credit from known provider',\n credit: creditData,\n enrollment: { isEnrolled: true },\n },\n {\n courseName: 'Credit - Purchased but must request',\n credit: { ...creditData, purchased: true },\n enrollment: { isEnrolled: true },\n },\n {\n courseName: 'Credit - Credit Request Pending',\n credit: {\n ...creditData,\n purchased: true,\n requestStatus: creditVals.requestStatuses.pending,\n },\n enrollment: { isEnrolled: true },\n },\n {\n courseName: 'Credit - Credit Request Approved',\n credit: {\n ...creditData,\n purchased: true,\n requestStatus: creditVals.requestStatuses.approved,\n },\n enrollment: { isEnrolled: true },\n },\n {\n courseName: 'Credit - Credit Request Rejected, Error thrown',\n credit: {\n ...creditData,\n purchased: true,\n requestStatus: creditVals.requestStatuses.rejected,\n error: true,\n },\n enrollment: { isEnrolled: true },\n },\n];\n\nexport const courseRuns = [\n ...auditCourses,\n ...verifiedCourses,\n ...fulfilledEntitlementCourses,\n ...creditCourses,\n];\n\n// unfulfilled entitlement select session\n// unfulfilled entitlement select session with deadline\n// unfulfilled entitlement select session pass deadline with available session {banner different from 4th}\n// unfulfilled entitlement select session pass deadline without available session\nexport const entitlementCourses = [\n {\n courseName: 'Unfulfilled Entitlement select session',\n entitlement: {\n uuid: genEntitlementUUID(10),\n availableSessions,\n changeDeadline: futureDate,\n enrollmentUrl: '/entitlement-enrollment',\n isExpired: false,\n isFulfilled: false,\n isRefundable: true,\n },\n }, {\n courseName: 'Unfulfilled Entitlement select session with upcoming deadline',\n entitlement: {\n uuid: genEntitlementUUID(11),\n availableSessions,\n changeDeadline: soonDateStr,\n enrollmentUrl: '/entitlement-enrollment',\n isExpired: false,\n isFulfilled: false,\n isRefundable: true,\n },\n }, {\n courseName: 'Unfulfilled Entitlement select session past deadline, With available session',\n entitlement: {\n uuid: genEntitlementUUID(12),\n availableSessions,\n changeDeadline: pastDate,\n enrollmentUrl: '/entitlement-enrollment',\n isExpired: false,\n isFulfilled: false,\n isRefundable: true,\n },\n }, {\n courseName: 'Unfulfilled Entitlement select session past deadline, With available no session',\n entitlement: {\n uuid: genEntitlementUUID(13),\n availableSessions: [],\n changeDeadline: pastDate,\n enrollmentUrl: '/entitlement-enrollment',\n isExpired: true,\n isFulfilled: false,\n isRefundable: true,\n },\n },\n];\n\nconst providerOptions = [\n providers.edx,\n providers.mit,\n null,\n];\n\nconst emailOptions = [\n { isEmailEnabled: false, hasOptedOutOfEmail: false },\n { isEmailEnabled: true, hasOptedOutOfEmail: false },\n { isEmailEnabled: true, hasOptedOutOfEmail: true },\n];\n\nconst programsOptions = [\n { relatedPrograms },\n { relatedPrograms: [relatedPrograms[0]] },\n { relatedPrograms: [] },\n];\n\nconst getOption = (options, index) => options[index % options.length];\n\nexport const compileCourseRunData = ({ courseName, ...data }, index) => {\n const courseId = genCourseId(index);\n const courseNumber = genCourseNumber(index);\n const socialShareUrl = genCourseShareUrl(index);\n const lastEnrolledDate = new Date();\n lastEnrolledDate.setDate(lastEnrolledDate.getDate() - index - 1);\n const lastEnrolled = lastEnrolledDate.toISOString();\n const out = {\n gradeData: { isPassing: true },\n entitlement: null,\n credit: {},\n ...data,\n certificate: genCertificateData(data.certificate),\n enrollment: genEnrollmentData({\n lastEnrolled,\n ...getOption(emailOptions, index),\n ...data.enrollment,\n }),\n courseRun: genCourseRunData({\n ...data.courseRun,\n courseId,\n }),\n course: {\n courseName,\n bannerImgSrc,\n courseNumber,\n socialShareUrl,\n },\n courseProvider: getOption(providerOptions, index),\n programs: getOption(programsOptions, index),\n };\n if (out.enrollment.canUpgrade) {\n out.courseRun.upgradeUrl = 'test-upgrade-url';\n }\n return out;\n};\n\nexport const compileEntitlementData = ({ courseName, ...data }, index) => {\n const courseNumber = genCourseNumber(100 + index);\n const socialShareUrl = genCourseShareUrl(100 + index);\n return {\n enrollment: genEnrollmentData({\n isEnrolled: false,\n lastEnrolled: null,\n accessExpirationDate: null,\n canUpgrade: false,\n hasStarted: false,\n isAudit: false,\n isAuditAccessExpired: false,\n isEmailEnabled: false,\n isVerified: false,\n }),\n gradeData: null,\n certificate: null,\n courseRun: null,\n ...data,\n course: {\n courseName,\n courseNumber,\n bannerImgSrc,\n socialShareUrl,\n },\n courseProvider: getOption(providerOptions, index),\n programs: getOption(programsOptions, index),\n };\n};\n\n// Entitlement Course - refundable\n// Entitlement Course - cannot view yet\n// Entitlement Course - can view and change\n// Entitlement Course - expired\nexport const courseRunData = courseRuns.map(compileCourseRunData);\nexport const entitlementData = entitlementCourses.map(compileEntitlementData);\n\nexport default {\n compileEntitlementData,\n compileCourseRunData,\n courseRunData,\n entitlementData,\n globalData,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport PaintedDoorExperimentProvider from 'widgets/RecommendationsPaintedDoorBtn/PaintedDoorExperimentContext';\n\nexport const AppWrapper = ({\n children,\n}) => {\n if (process.env.EXPERIMENT_08_23_VAN_PAINTED_DOOR) {\n return (\n \n {children}\n \n );\n }\n return children;\n};\nAppWrapper.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]).isRequired,\n};\n\nexport default AppWrapper;\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n ViewAs: {\n id: 'MasqueradeBar.ViewAs',\n defaultMessage: 'View as: ',\n description: 'Label for the View as',\n },\n ViewingAs: {\n id: 'MasqueradeBar.ViewingAs',\n defaultMessage: 'Viewing as: ',\n description: 'Label for the Viewing as',\n },\n SubmitButton: {\n id: 'MasqueradeBar.SubmitButton',\n defaultMessage: 'Submit',\n description: 'Label for the Submit button',\n },\n StudentNameInput: {\n id: 'MasqueradeBar.StudentNameInput',\n defaultMessage: 'Username or email',\n description: 'Label for the Student Name or email input',\n },\n NoStudentFound: {\n id: 'MasqueradeBar.NoStudentFound',\n defaultMessage: 'No student with this username or email could be found',\n description: 'Error message when no student is found',\n },\n UnknownError: {\n id: 'MasqueradeBar.UnknownError',\n defaultMessage: 'An unknown error occurred',\n description: 'Error message when an unknown error occurs',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { apiHooks, reduxHooks } from 'hooks';\nimport { StrictDict } from 'utils';\nimport * as module from './hooks';\n\nimport messages from './messages';\n\nexport const state = StrictDict({\n masqueradeInput: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useMasqueradeInput = () => {\n const [masqueradeInput, setMasqueradeInput] = module.state.masqueradeInput('');\n const handleMasqueradeInputChange = (e) => setMasqueradeInput(e.target.value);\n return {\n handleMasqueradeInputChange,\n masqueradeInput,\n };\n};\n\nconst masqueradeErrorMessageMap = {\n 404: messages.NoStudentFound,\n};\n\nexport const getMasqueradeErrorMessage = (errorStatus) => {\n if (errorStatus == null) {\n return null;\n }\n return masqueradeErrorMessageMap[errorStatus] || messages.UnknownError;\n};\n\nexport const useMasqueradeBarData = ({\n authenticatedUser,\n}) => {\n const { formatMessage } = useIntl();\n const handleMasqueradeAs = apiHooks.useMasqueradeAs();\n const handleClearMasquerade = apiHooks.useClearMasquerade();\n\n const {\n isMasquerading,\n isMasqueradingFailed,\n isMasqueradingPending,\n masqueradeErrorStatus,\n } = reduxHooks.useMasqueradeData();\n const { masqueradeInput, handleMasqueradeInputChange } = module.useMasqueradeInput();\n\n const masqueradeErrorMessage = getMasqueradeErrorMessage(masqueradeErrorStatus);\n const handleMasqueradeSubmit = (user) => (e) => {\n handleMasqueradeAs(user);\n e.preventDefault();\n };\n\n return {\n canMasquerade: authenticatedUser?.administrator,\n isMasquerading,\n isMasqueradingFailed,\n isMasqueradingPending,\n masqueradeErrorMessage,\n masqueradeInput,\n handleMasqueradeSubmit,\n handleClearMasquerade,\n handleMasqueradeInputChange,\n formatMessage,\n };\n};\n\nexport default useMasqueradeBarData;\n","import React from 'react';\nimport { AppContext } from '@edx/frontend-platform/react';\n\nimport {\n Chip,\n Form,\n FormControl,\n FormControlFeedback,\n FormLabel,\n FormGroup,\n StatefulButton,\n Icon,\n} from '@edx/paragon';\nimport { Close, PersonSearch } from '@edx/paragon/icons';\n\nimport messages from './messages';\nimport { useMasqueradeBarData } from './hooks';\nimport './index.scss';\n\nexport const MasqueradeBar = () => {\n const { authenticatedUser } = React.useContext(AppContext);\n\n const {\n canMasquerade,\n isMasquerading,\n isMasqueradingFailed,\n isMasqueradingPending,\n masqueradeInput,\n masqueradeErrorMessage,\n handleMasqueradeInputChange,\n handleClearMasquerade,\n handleMasqueradeSubmit,\n formatMessage,\n } = useMasqueradeBarData({ authenticatedUser });\n\n if (!canMasquerade) { return null; }\n\n return (\n
\n
\n {isMasquerading ? (\n <>\n \n \n {formatMessage(messages.ViewingAs)}\n \n \n {masqueradeInput}\n \n \n ) : (\n <>\n \n \n {formatMessage(messages.ViewAs)}\n \n \n \n {isMasqueradingFailed && (\n \n {formatMessage(masqueradeErrorMessage)}\n \n )}\n \n \n \n )}\n \n
\n );\n};\n\nexport default MasqueradeBar;\n","var _g, _defs;\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\";\nvar SvgConfirmEmail = function SvgConfirmEmail(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 406,\n height: 302,\n fill: \"none\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#confirm-email_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m160.119 242.657 130.966.151a8.399 8.399 0 0 0 7.81-6.737l24.361-128.607a5.356 5.356 0 0 0-.95-4.685 5.358 5.358 0 0 0-4.311-2.065l-130.966-.151a8.399 8.399 0 0 0-7.81 6.737l-24.361 128.607a5.357 5.357 0 0 0 .95 4.685 5.358 5.358 0 0 0 4.311 2.065Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"m291.048 243.446-130.967-.151a5.923 5.923 0 0 1-4.643-2.107 6.376 6.376 0 0 1-1.261-5.387l24.424-128.62a9.068 9.068 0 0 1 8.428-7.242l130.967.152a5.947 5.947 0 0 1 4.592 2.094 6.434 6.434 0 0 1 1.262 5.4l-24.337 128.62a9.064 9.064 0 0 1-2.99 5.073 9.064 9.064 0 0 1-5.475 2.168Zm-130.967-1.413 130.967.152a7.748 7.748 0 0 0 7.191-6.22l24.349-128.608a5.184 5.184 0 0 0-.971-4.365 4.733 4.733 0 0 0-3.672-1.64l-130.967-.151a7.745 7.745 0 0 0-7.191 6.22l-24.311 128.607a5.204 5.204 0 0 0 .972 4.365 4.733 4.733 0 0 0 3.671 1.64h-.038Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"m320.973 120.187-144.037-.176a.632.632 0 0 1-.631-.631.642.642 0 0 1 .631-.631l144.05.177c.167 0 .327.066.446.184a.633.633 0 0 1 .184.446.642.642 0 0 1-.643.631Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"M311.308 112.057c1.381-1.465 1.523-3.575.316-4.712-1.206-1.138-3.304-.872-4.686.593-1.381 1.465-1.522 3.575-.316 4.713 1.207 1.137 3.305.872 4.686-.594ZM299.838 112.036c1.381-1.466 1.522-3.576.316-4.713-1.207-1.138-3.305-.872-4.686.593-1.381 1.466-1.523 3.575-.316 4.713 1.206 1.137 3.304.872 4.686-.593ZM288.366 112.022c1.381-1.465 1.523-3.575.316-4.712-1.207-1.138-3.305-.872-4.686.593-1.381 1.465-1.523 3.575-.316 4.713 1.207 1.137 3.305.872 4.686-.594Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m252.859 130.098-12.376 65.314 52.483.063 12.376-65.314-52.483-.063Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M252.847 130.1h52.495l-12.364 65.313h-52.495l12.364-65.313Zm0-1.261a1.26 1.26 0 0 0-1.262 1.021l-12.364 65.314a1.258 1.258 0 0 0 .273 1.051 1.257 1.257 0 0 0 .989.45h52.482a1.264 1.264 0 0 0 1.262-1.035l12.364-65.313a1.258 1.258 0 0 0-1.237-1.488h-52.507Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M290.177 147.233a5.823 5.823 0 0 0 .253 2.524c.239.473.527.921.858 1.337a10.772 10.772 0 0 1 1.741 5.324 8.014 8.014 0 0 1-.505 3.785c-.379.883-.984 1.665-1.337 2.523a5.13 5.13 0 0 0-.19 3.28c.291 1.022.871 2.132.341 3.04a2.015 2.015 0 0 1-1.88.846 9.504 9.504 0 0 1-2.107-.518c-3.848-1.11-8.692-.58-12.729-.857l-15.139-1.06c-2.057-.152-4.605-.669-5.148-2.662-.454-1.678 1.186-4.479 1.842-6.056a37.151 37.151 0 0 1 3.949-7.721 17.569 17.569 0 0 0 2.359-3.608c.284-.858.524-1.729.719-2.612a15.784 15.784 0 0 1 4.353-6.61 18.496 18.496 0 0 1 4.378-3.344c5.488-2.851 14.609-.921 17.107 5.148a16.97 16.97 0 0 1 1.135 7.241Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M289.584 170.56h-.164a6.915 6.915 0 0 1-1.779-.391l-.466-.139a31.765 31.765 0 0 0-8.34-.745c-1.501 0-2.901 0-4.264-.1l-15.139-1.06c-3.343-.227-5.21-1.262-5.715-3.129-.429-1.564.568-3.684 1.362-5.387.19-.404.366-.77.505-1.085a37.869 37.869 0 0 1 4.012-7.86c.202-.29.416-.567.631-.845a11.574 11.574 0 0 0 1.653-2.624c.184-.506.332-1.025.441-1.552.076-.341.164-.669.252-1.009a16.166 16.166 0 0 1 4.53-6.876 18.528 18.528 0 0 1 4.529-3.469 14.625 14.625 0 0 1 11.354-.417 10.93 10.93 0 0 1 6.611 5.892 17.574 17.574 0 0 1 1.135 7.507v.113a3.407 3.407 0 0 0 .77 2.977l.227.328a11.36 11.36 0 0 1 1.867 5.652 8.614 8.614 0 0 1-.568 4.126c-.2.434-.427.856-.681 1.261-.246.406-.465.828-.656 1.262a4.507 4.507 0 0 0-.151 2.851c0 .202.126.404.189.606a3.466 3.466 0 0 1 .076 2.939 2.595 2.595 0 0 1-2.221 1.174Zm-11.859-36.334a11.872 11.872 0 0 0-5.437 1.261 17.455 17.455 0 0 0-4.227 3.23 14.742 14.742 0 0 0-4.176 6.308c-.1.315-.164.631-.239.946a13.3 13.3 0 0 1-.505 1.728 12.18 12.18 0 0 1-1.829 2.927l-.618.82a37.758 37.758 0 0 0-3.861 7.57c-.139.341-.328.719-.517 1.148-.681 1.426-1.602 3.394-1.262 4.491.341 1.098 1.88 1.981 4.555 2.17l15.139 1.06c1.325.088 2.712.101 4.176.101a32.79 32.79 0 0 1 8.705.795l.492.151c.473.167.964.277 1.463.328a1.373 1.373 0 0 0 1.262-.517c.277-.467 0-1.148-.189-1.867-.076-.227-.152-.454-.215-.669a5.797 5.797 0 0 1 .215-3.696c.208-.493.453-.969.731-1.426.227-.391.442-.757.619-1.135a7.583 7.583 0 0 0 .454-3.52 10.091 10.091 0 0 0-1.628-5.047l-.227-.302a5.81 5.81 0 0 1-.694-1.148 6.072 6.072 0 0 1-.315-2.65l.656-.088h-.643a16.21 16.21 0 0 0-1.035-6.952 9.634 9.634 0 0 0-5.866-5.172 14.22 14.22 0 0 0-4.984-.833v-.012Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F0CC00\",\n d: \"m244.053 176.552-3.57 18.924h52.495l3.57-18.861c-4.327-5.185-11.594-6.976-17.99-7.569a75.07 75.07 0 0 0-6.775-.291h-.467c-1.854 0-3.999 0-6.308.265h-.113c-6.649.543-14.559 2.36-20.842 7.532Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"m264.049 172.641 1.603 17.662.479 5.148h1.186l2.422-5.16 8.264-17.562c-3.129-1.097-10.409-1.097-13.954-.088Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M278.028 172.667a9.327 9.327 0 0 1-7.57 3.911 6.49 6.49 0 0 1-6.409-3.924l3.583-15.379h12.616l-2.22 15.392Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M270.471 177.224a7.175 7.175 0 0 1-7.027-4.366.575.575 0 0 1 0-.353l3.583-15.366a.66.66 0 0 1 .631-.505h12.616a.637.637 0 0 1 .492.227.634.634 0 0 1 .151.518l-2.233 15.379a.604.604 0 0 1-.088.252 9.933 9.933 0 0 1-8.125 4.214Zm-5.74-4.618a5.897 5.897 0 0 0 5.728 3.318 8.696 8.696 0 0 0 6.939-3.494l2.094-14.484h-11.355l-3.406 14.66Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M279.012 163.875a13.776 13.776 0 0 1-4.466 3.444c-2.763 1.426-6.813 3.015-9.752 2.523l1.728-6.497c2.221.266 4.466.266 6.687 0a20.66 20.66 0 0 0 5.992-1.148c.341-.076.316 1.06-.189 1.678Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M265.929 170.574a7.724 7.724 0 0 1-1.261-.101.613.613 0 0 1-.429-.277.585.585 0 0 1-.076-.505l1.728-6.497a.622.622 0 0 1 .694-.454c2.17.27 4.365.27 6.535 0a20.182 20.182 0 0 0 5.829-1.098.747.747 0 0 1 .883.253 2.282 2.282 0 0 1-.353 2.334 14.15 14.15 0 0 1-4.668 3.608c-2.044 1.097-5.74 2.737-8.882 2.737Zm-.34-1.261c3.04.113 7.014-1.703 8.667-2.523a12.715 12.715 0 0 0 4.264-3.268c.078-.118.142-.245.189-.378a23.654 23.654 0 0 1-5.462.933 28.796 28.796 0 0 1-6.308 0l-1.35 5.236ZM284.475 196.119h-.202a.65.65 0 0 1-.449-.567.638.638 0 0 1 .033-.253l5.046-15.846a.657.657 0 0 1 .328-.386.658.658 0 0 1 .731.083.672.672 0 0 1 .232.45.677.677 0 0 1-.029.257l-5.047 15.846a.64.64 0 0 1-.643.416ZM248.973 196.058a.656.656 0 0 1-.618-.681l.959-15.859a.655.655 0 0 1 1.261.076l-.958 15.858a.646.646 0 0 1-.644.606Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M266.661 153.741c.265-3.608-3.898-4.504-4.478-.252a7.005 7.005 0 0 0 .391 3.999 1.92 1.92 0 0 0 1.153 1.077c.257.088.53.121.801.097a1.94 1.94 0 0 0 .771-.24\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M264.365 159.334a2.122 2.122 0 0 1-.694-.101 2.716 2.716 0 0 1-1.665-1.45 7.696 7.696 0 0 1-.48-4.378c.354-2.523 1.88-3.52 3.243-3.381a3.23 3.23 0 0 1 2.523 3.785.657.657 0 0 1-1.262-.101c.101-1.451-.618-2.296-1.388-2.372-.769-.076-1.564.467-1.804 2.258a6.312 6.312 0 0 0 .328 3.608 1.55 1.55 0 0 0 .883.795 1.163 1.163 0 0 0 .947-.126.666.666 0 0 1 .895.252.654.654 0 0 1-.265.883 2.52 2.52 0 0 1-1.261.328Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M282.986 153.769c1.098-3.608 5.602-4.491 4.58-.239a9.32 9.32 0 0 1-1.905 3.986c-.946 1.035-2.233 1.527-3.091.934\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M283.478 159.355c-.45.013-.893-.12-1.262-.378a.649.649 0 0 1 .745-1.06c.517.353 1.476 0 2.233-.845a8.638 8.638 0 0 0 1.753-3.697c.101-.429.366-1.804-.391-2.018-.757-.215-2.359.706-2.939 2.598a.664.664 0 0 1-.827.436.658.658 0 0 1-.435-.827c.782-2.523 3.003-3.873 4.517-3.456.479.126 1.993.769 1.261 3.57a9.76 9.76 0 0 1-2.056 4.264 3.782 3.782 0 0 1-2.599 1.413Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m266.787 145.82-1.98 10.459c-.946 5.046 2.233 9.083 7.103 9.096h1.021a11.352 11.352 0 0 0 10.547-9.071c.48-2.523 2.221-6.459.379-8.352-2.94-3.028-5.791-5.046-7.418-9.146-3.735.782-9.652 1.816-9.652 7.014Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M272.944 166.018h-1.035a7.72 7.72 0 0 1-6.093-2.763 8.445 8.445 0 0 1-1.628-7.116l1.968-10.383c0-5.5 5.879-6.712 9.752-7.506l.417-.089a.65.65 0 0 1 .732.391 18.816 18.816 0 0 0 5.311 7.002c.643.619 1.261 1.262 1.968 1.931 1.69 1.728.883 4.693.24 7.077-.177.656-.341 1.262-.442 1.842a12.024 12.024 0 0 1-11.19 9.614Zm3.103-26.494c-3.671.769-8.604 1.842-8.604 6.308a.38.38 0 0 1 0 .126l-1.981 10.446a7.163 7.163 0 0 0 1.35 6.043 6.455 6.455 0 0 0 5.11 2.284h1.034a10.663 10.663 0 0 0 9.891-8.541c.114-.581.29-1.262.48-1.943.58-2.17 1.261-4.63.075-5.829a54.348 54.348 0 0 0-1.93-1.892 20.845 20.845 0 0 1-5.425-6.977v-.025Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M273.852 157.794a11.905 11.905 0 0 1-1.4-.088.641.641 0 0 1-.652-.727.627.627 0 0 1 .093-.258.633.633 0 0 1 .449-.295.635.635 0 0 1 .274.018 11.31 11.31 0 0 0 2.283 0c.237-2.02.117-4.065-.353-6.043a.66.66 0 0 1 .53-.757.668.668 0 0 1 .757.53c.24 1.35.984 5.866.076 7.103a1.03 1.03 0 0 1-.732.441 9.95 9.95 0 0 1-1.325.076Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"M239.083 143.674h-53.896a.699.699 0 0 1-.559-.168.706.706 0 0 1 .559-1.232l53.896.063a.704.704 0 0 1 .437 1.165.7.7 0 0 1-.437.235v-.063ZM237.253 153.288H183.37a.699.699 0 0 1-.737-.408.702.702 0 0 1 .439-.968.715.715 0 0 1 .298-.024l53.896.063a.704.704 0 0 1 .437 1.165.7.7 0 0 1-.437.235l-.013-.063ZM235.436 162.903l-53.895-.064a.706.706 0 0 1-.694-.706.695.695 0 0 1 .694-.694l53.895.063a.714.714 0 0 1 .559.169.712.712 0 0 1 .242.531.713.713 0 0 1-.242.532.699.699 0 0 1-.559.169ZM233.619 172.516l-53.895-.075a.7.7 0 0 1-.495-.2.691.691 0 0 1-.199-.494.691.691 0 0 1 .694-.707l53.895.063a.71.71 0 0 1 .707.707.719.719 0 0 1-.707.706ZM231.752 182.177h-37.999a.71.71 0 0 1 0-1.401h37.999a.712.712 0 0 1 .613.701.705.705 0 0 1-.613.7ZM286.291 233.808l-117.707-.139a.675.675 0 0 1-.542-.252.7.7 0 0 1-.152-.581l5.349-28.222a.708.708 0 0 1 .682-.568l117.707.139a.69.69 0 0 1 .68.526.724.724 0 0 1 .014.307l-5.349 28.222a.708.708 0 0 1-.682.568Zm-116.862-1.54 116.282.139 5.047-26.821-116.295-.139-5.034 26.821Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"m289.521 214.412-117.329-.138a.715.715 0 0 1-.559-.169.696.696 0 0 1-.241-.532.704.704 0 0 1 .8-.7l117.329.139a.707.707 0 0 1 0 1.4Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"M254.461 233.764h-.126a.706.706 0 0 1-.555-.82l5.337-28.222a.706.706 0 0 1 .82-.555.721.721 0 0 1 .568.82l-5.35 28.222a.703.703 0 0 1-.694.555ZM195.078 233.689h-.127a.71.71 0 0 1-.567-.82l5.349-28.235a.714.714 0 0 1 .271-.517.699.699 0 0 1 .568-.136.708.708 0 0 1 .536.918l-5.337 28.222a.704.704 0 0 1-.693.568Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m96.105 191.426 130.967.151a8.377 8.377 0 0 0 7.809-6.724l24.362-128.608c.706-3.785-1.653-6.75-5.261-6.75l-130.967-.15a8.377 8.377 0 0 0-7.809 6.673L90.844 184.701c-.706 3.697 1.653 6.725 5.261 6.725ZM2492.26 247.582l130.97.151a8.398 8.398 0 0 0 5.06-2.019 8.427 8.427 0 0 0 2.75-4.705l24.36-128.608c.71-3.784-1.65-6.749-5.26-6.749l-130.97-.152a8.392 8.392 0 0 0-5.05 2 8.419 8.419 0 0 0-2.76 4.674L2487 240.858c-.71 3.696 1.65 6.724 5.26 6.724Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"m227.072 192.272-130.967-.151a5.905 5.905 0 0 1-4.643-2.095 6.404 6.404 0 0 1-1.261-5.399l24.387-128.608a9.046 9.046 0 0 1 8.427-7.242l130.967.152a5.88 5.88 0 0 1 4.643 2.043 6.42 6.42 0 0 1 1.261 5.4l-24.349 128.595a9.044 9.044 0 0 1-8.465 7.305Zm-130.967-1.413 130.967.151a7.732 7.732 0 0 0 7.204-6.308L258.625 56.12a5.174 5.174 0 0 0-.972-4.353 4.624 4.624 0 0 0-3.671-1.64l-130.967-.151a7.759 7.759 0 0 0-7.191 6.22L91.462 184.803a5.213 5.213 0 0 0 .972 4.353 4.645 4.645 0 0 0 3.671 1.64v.063Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"m256.984 68.947-144.037-.164a.631.631 0 0 1 0-1.261l144.037.164a.644.644 0 0 1 .631.63.628.628 0 0 1-.631.631Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"M247.297 60.839c1.382-1.465 1.523-3.575.317-4.713-1.207-1.137-3.305-.872-4.686.593-1.382 1.466-1.523 3.576-.316 4.713 1.206 1.138 3.304.872 4.685-.593ZM235.827 60.817c1.381-1.465 1.523-3.575.316-4.713-1.207-1.137-3.305-.872-4.686.594-1.381 1.465-1.523 3.575-.316 4.712 1.207 1.138 3.304.872 4.686-.593ZM224.355 60.804c1.381-1.465 1.523-3.575.316-4.713-1.206-1.137-3.304-.872-4.686.594-1.381 1.465-1.522 3.575-.316 4.712 1.207 1.138 3.305.872 4.686-.593Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m188.846 78.88-12.377 65.313 52.496.05 12.363-65.3-52.482-.063Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M188.858 78.882h52.483l-12.364 65.313-52.495-.063 12.376-65.25Zm0-1.262a1.262 1.262 0 0 0-1.262 1.022l-12.363 65.313a1.266 1.266 0 0 0 .265 1.034 1.255 1.255 0 0 0 .971.455l52.495.063a1.262 1.262 0 0 0 1.262-1.022l12.364-65.313a1.261 1.261 0 0 0-.265-1.035 1.268 1.268 0 0 0-.972-.467h-52.482l-.013-.05Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D23228\",\n d: \"m180.027 125.321-3.57 18.861 52.495.063 3.583-18.835c-4.328-5.198-11.594-6.977-17.991-7.57a75.034 75.034 0 0 0-6.774-.29h-.467c-1.855 0-4 0-6.308.265h-.114c-6.623.568-14.546 2.346-20.854 7.506Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"m200.036 121.419 1.614 17.662.467 5.147h1.186l2.422-5.16 8.264-17.561a32.226 32.226 0 0 0-13.953-.088Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M214.014 121.448a9.3 9.3 0 0 1-7.569 3.898 6.471 6.471 0 0 1-6.409-3.923l3.595-15.366h12.616l-2.233 15.391Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M206.521 126a7.214 7.214 0 0 1-7.028-4.365.682.682 0 0 1 0-.353l3.583-15.379a.672.672 0 0 1 .644-.505h12.616a.658.658 0 0 1 .492.215.687.687 0 0 1 .151.53l-2.233 15.366a.594.594 0 0 1-.088.252 9.881 9.881 0 0 1-8.137 4.239Zm-5.741-4.63a5.89 5.89 0 0 0 5.728 3.331 8.619 8.619 0 0 0 6.939-3.495l2.107-14.483h-11.355l-3.419 14.647Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M214.999 112.653a13.57 13.57 0 0 1-4.467 3.432c-2.762 1.426-6.812 3.028-9.752 2.523l1.729-6.51c2.22.273 4.466.273 6.686 0a20.633 20.633 0 0 0 5.993-1.148c.34-.05.328 1.073-.189 1.703Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M201.916 119.34a8.072 8.072 0 0 1-1.262-.088.673.673 0 0 1-.429-.278.652.652 0 0 1-.076-.505l1.729-6.497a.633.633 0 0 1 .706-.467c2.171.265 4.365.265 6.535 0a20.622 20.622 0 0 0 5.816-1.097.733.733 0 0 1 .883.239 2.304 2.304 0 0 1-.353 2.347 13.985 13.985 0 0 1-4.668 3.608 21.96 21.96 0 0 1-8.881 2.738Zm-.341-1.262c3.04.139 7.027-1.703 8.68-2.523a12.808 12.808 0 0 0 4.251-3.268c.088-.107.152-.232.19-.365-1.78.514-3.613.823-5.463.921a29.823 29.823 0 0 1-6.308 0l-1.35 5.235ZM220.461 144.886h-.189a.637.637 0 0 1-.389-.319.64.64 0 0 1-.04-.501l5.046-15.846a.654.654 0 0 1 .323-.38.632.632 0 0 1 .497-.036.62.62 0 0 1 .38.315.627.627 0 0 1 .037.492l-5.047 15.846a.64.64 0 0 1-.618.429ZM184.96 144.851a.658.658 0 0 1-.619-.694l.959-15.846a.657.657 0 1 1 1.262.076l-.959 15.846a.641.641 0 0 1-.643.618Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M202.66 102.523c.265-3.608-3.898-4.504-4.491-.253a6.964 6.964 0 0 0 .391 3.987 1.937 1.937 0 0 0 1.962 1.184 1.94 1.94 0 0 0 .775-.238\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M200.351 108.111a2.548 2.548 0 0 1-.694-.1 2.855 2.855 0 0 1-1.665-1.451 7.575 7.575 0 0 1-.467-4.378c.353-2.523 1.867-3.52 3.23-3.381a3.23 3.23 0 0 1 2.523 3.785.657.657 0 1 1-1.262-.089c.114-1.451-.618-2.296-1.387-2.384-.77-.088-1.552.479-1.804 2.271a6.294 6.294 0 0 0 .328 3.595c.175.376.493.666.883.808a1.255 1.255 0 0 0 .959-.126.624.624 0 0 1 .494-.06.65.65 0 0 1 .443.805.654.654 0 0 1-.307.39 2.631 2.631 0 0 1-1.274.315Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M218.972 102.533c1.11-3.608 5.602-4.491 4.58-.24a9.037 9.037 0 0 1-1.893 3.987c-.933 1.047-2.233 1.539-3.078.946\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M219.414 108.138a2.122 2.122 0 0 1-1.262-.379.649.649 0 0 1-.321-.425.655.655 0 0 1 1.066-.647c.517.366 1.476 0 2.233-.833a8.83 8.83 0 0 0 1.791-3.709c.101-.416.379-1.804-.391-2.006-.77-.202-2.359.707-2.927 2.523a.67.67 0 0 1-.319.391.659.659 0 0 1-.943-.769c.783-2.524 3.003-3.886 4.53-3.47.466.14 1.98.783 1.261 3.571a10.09 10.09 0 0 1-2.069 4.277 3.787 3.787 0 0 1-2.649 1.476Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m202.735 94.598-1.98 10.446c-.959 5.047 2.22 9.097 7.09 9.097h1.034a11.355 11.355 0 0 0 10.535-9.071l1.93-9.942s1.653-10.093-7.746-9.083c-9.399 1.009-10.863 8.553-10.863 8.553Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M208.93 114.798h-1.034a7.75 7.75 0 0 1-3.365-.683 7.74 7.74 0 0 1-2.741-2.067 8.443 8.443 0 0 1-1.577-7.116l1.98-10.459c0-.075 1.615-7.973 11.355-9.058a7.454 7.454 0 0 1 6.535 1.88c2.712 2.864 1.943 7.759 1.918 7.973l-1.893 9.954a12.022 12.022 0 0 1-11.178 9.576Zm-5.513-20.072-1.943 10.496a7.244 7.244 0 0 0 1.35 6.043 6.524 6.524 0 0 0 5.11 2.284h1.034a10.644 10.644 0 0 0 9.891-8.541l1.88-9.916s.694-4.454-1.59-6.85a6.2 6.2 0 0 0-5.437-1.477c-8.819.921-10.232 7.658-10.295 7.96Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#231F20\",\n d: \"M209.839 106.557a13.943 13.943 0 0 1-1.401-.076.659.659 0 0 1-.555-.732.658.658 0 0 1 .719-.567 9.913 9.913 0 0 0 2.284 0c.303-.606.139-3.344-.353-6.043a.655.655 0 0 1 .529-.757.646.646 0 0 1 .664.281.63.63 0 0 1 .093.236c.24 1.362.984 5.879.076 7.103a1.06 1.06 0 0 1-.732.454 9.937 9.937 0 0 1-1.324.101Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"M175.068 92.454h-53.895a.707.707 0 0 1 0-1.4h53.895a.707.707 0 0 1 0 1.4ZM173.252 102.067h-53.896a.703.703 0 0 1-.706-.706.705.705 0 0 1 .706-.707l53.896.076a.695.695 0 0 1 .694.694.71.71 0 0 1-.694.643ZM171.423 111.666H117.54a.699.699 0 0 1-.559-.168.706.706 0 0 1 .559-1.232h53.883a.707.707 0 0 1 .499 1.202.701.701 0 0 1-.499.198ZM169.606 121.283H115.71a.704.704 0 0 1-.437-1.165.7.7 0 0 1 .437-.235l53.896.063a.699.699 0 0 1 .559.168.706.706 0 0 1-.559 1.232v-.063ZM167.789 130.897H129.79a.707.707 0 0 1 0-1.4h37.999a.695.695 0 0 1 .492 1.189.706.706 0 0 1-.492.211ZM222.278 182.58l-117.707-.139a.728.728 0 0 1-.537-.259.714.714 0 0 1-.157-.574l5.349-28.222a.703.703 0 0 1 .694-.58l117.707.139a.711.711 0 0 1 .543.265.652.652 0 0 1 .151.567l-5.4 28.222a.71.71 0 0 1-.643.581Zm-116.862-1.539 116.282.138 5.046-26.834-116.282-.139-5.046 26.835Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"m225.508 163.257-117.329-.138a.71.71 0 0 1-.707-.707.705.705 0 0 1 .208-.495.71.71 0 0 1 .229-.15.71.71 0 0 1 .27-.049l117.329.139a.704.704 0 0 1 .437 1.165.7.7 0 0 1-.437.235Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1D3D4\",\n d: \"M190.41 182.545h-.126a.71.71 0 0 1-.556-.82l5.35-28.222a.682.682 0 0 1 .285-.453.696.696 0 0 1 .975.178.703.703 0 0 1 .115.527l-5.349 28.222a.712.712 0 0 1-.694.568ZM131.064 182.474h-.126a.702.702 0 0 1-.445-.297.702.702 0 0 1-.11-.523l5.336-28.222a.706.706 0 0 1 1.375.265l-5.336 28.222a.71.71 0 0 1-.694.555Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"confirm-email_svg__a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0-4h406v306H0z\"\n })))));\n};\nexport { SvgConfirmEmail as ReactComponent };\nexport default __webpack_public_path__ + \"ce54a3c2e5b77ffdfa5e77d15e14a6ee.svg\";","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n confirmNowButton: {\n id: 'leanerDashboard.confirmEmailBanner',\n description: 'Button for sending confirm email and open modal',\n defaultMessage: 'Confirm Now',\n },\n confirmEmailTextReminderBanner: {\n id: 'leanerDashboard.confirmEmailTextReminderBanner',\n description: 'Text for reminding user to confirm email',\n defaultMessage: 'Remember to confirm your email so that you can keep learning on the German-UDS.academy! {confirmNowButton}.',\n },\n verifiedConfirmEmailButton: {\n id: 'leanerDashboard.verifiedConfirmEmailButton',\n description: 'Button for verified confirming email',\n defaultMessage: 'I\\'ve confirmed my email',\n },\n confirmEmailModalHeader: {\n id: 'leanerDashboard.confirmEmailModalHeader',\n description: 'title for confirming email modal',\n defaultMessage: 'Confirm your email',\n },\n confirmEmailModalBody: {\n id: 'leanerDashboard.confirmEmailModalBody',\n description: 'text hint for confirming email modal',\n defaultMessage: 'We\\'ve sent you an email to verify your acccount. Please check your inbox and click on the big red button to confirm and keep learning.',\n },\n confirmEmailImageAlt: {\n id: 'leanerDashboard.confirmEmailImageAlt',\n description: 'text alt confirm email image',\n defaultMessage: 'confirm email background',\n },\n});\n\nexport default messages;\n","import React from 'react';\n\nimport { StrictDict } from 'utils';\nimport { apiHooks, reduxHooks } from 'hooks';\n\nimport * as module from './hooks';\n\nexport const state = StrictDict({\n showPageBanner: (val) => React.useState(val), // eslint-disable-line\n showConfirmModal: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useConfirmEmailBannerData = () => {\n const { isNeeded } = reduxHooks.useEmailConfirmationData();\n const [showPageBanner, setShowPageBanner] = module.state.showPageBanner(isNeeded);\n const [showConfirmModal, setShowConfirmModal] = module.state.showConfirmModal(false);\n const closePageBanner = () => setShowPageBanner(false);\n const closeConfirmModal = () => setShowConfirmModal(false);\n const openConfirmModal = () => setShowConfirmModal(true);\n const sendConfirmEmail = apiHooks.useSendConfirmEmail();\n\n const openConfirmModalButtonClick = () => {\n sendConfirmEmail();\n openConfirmModal();\n closePageBanner();\n };\n\n const userConfirmEmailButtonClick = () => {\n closeConfirmModal();\n closePageBanner();\n };\n return {\n isNeeded,\n showPageBanner,\n closePageBanner,\n showConfirmModal,\n closeConfirmModal,\n openConfirmModalButtonClick,\n userConfirmEmailButtonClick,\n };\n};\n\nexport default useConfirmEmailBannerData;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport {\n Button,\n Image,\n MarketingModal,\n ModalDialog,\n PageBanner,\n} from '@edx/paragon';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport confirmEmailSVG from 'assets/confirm-email.svg';\nimport messages from './messages';\nimport './ConfirmEmailBanner.scss';\nimport useConfirmEmailBannerData from './hooks';\n\nexport const ConfirmEmailBanner = () => {\n const {\n isNeeded,\n showConfirmModal,\n showPageBanner,\n closePageBanner,\n closeConfirmModal,\n openConfirmModalButtonClick,\n userConfirmEmailButtonClick,\n } = useConfirmEmailBannerData();\n const { formatMessage } = useIntl();\n\n if (!isNeeded) { return null; }\n\n return (\n <>\n \n {formatMessage(messages.confirmEmailTextReminderBanner, {\n confirmNowButton: (\n \n {formatMessage(messages.confirmNowButton)}\n \n ),\n })}\n \n \n \n \n )}\n footerNode={(\n \n )}\n >\n

{formatMessage(messages.confirmEmailModalHeader)}

\n

{formatMessage(messages.confirmEmailModalBody)}

\n \n \n );\n};\nConfirmEmailBanner.propTypes = {};\n\nexport default ConfirmEmailBanner;\n","import React from 'react';\nimport { useWindowSize, breakpoints } from '@edx/paragon';\nimport track from 'tracking';\nimport { StrictDict } from 'utils';\nimport { linkNames } from 'tracking/constants';\n\nimport * as module from './hooks';\n\nexport const state = StrictDict({\n isOpen: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useIsCollapsed = () => {\n const { width } = useWindowSize();\n const isCollapsed = React.useMemo(() => (width <= breakpoints.large.minWidth), [width]);\n return isCollapsed;\n};\n\nexport const findCoursesNavClicked = (href) => track.findCourses.findCoursesClicked(href, {\n linkName: linkNames.learnerHomeNavExplore,\n});\n\nexport const findCoursesNavDropdownClicked = (href) => track.findCourses.findCoursesClicked(href, {\n linkName: linkNames.learnerHomeNavDropdownExplore,\n});\n\nexport const useLearnerDashboardHeaderData = () => {\n const [isOpen, setIsOpen] = module.state.isOpen(false);\n const toggleIsOpen = () => setIsOpen(!isOpen);\n\n return {\n isOpen,\n toggleIsOpen,\n };\n};\n\nexport default {\n useIsCollapsed,\n findCoursesNavClicked,\n findCoursesNavDropdownClicked,\n useLearnerDashboardHeaderData,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport RecommendationsPaintedDoorBtn from 'widgets/RecommendationsPaintedDoorBtn';\nimport { COLLAPSED_NAVBAR, EXPANDED_NAVBAR } from 'widgets/RecommendationsPaintedDoorBtn/constants';\nimport {\n usePaintedDoorExperimentContext,\n} from 'widgets/RecommendationsPaintedDoorBtn/PaintedDoorExperimentContext';\n\nexport const WidgetNavbar = ({ placement }) => {\n const {\n experimentVariation,\n isPaintedDoorNavbarBtnVariation,\n experimentLoading,\n } = usePaintedDoorExperimentContext();\n\n if (!experimentLoading && isPaintedDoorNavbarBtnVariation) {\n return (\n \n );\n }\n\n return null;\n};\n\nWidgetNavbar.propTypes = {\n placement: PropTypes.oneOf([COLLAPSED_NAVBAR, EXPANDED_NAVBAR]).isRequired,\n};\n\nexport default WidgetNavbar;\n","import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n dashboard: {\n id: 'learnerVariantDashboard.menu.dashboard.label',\n defaultMessage: 'Dashboard',\n description: 'The text for the user menu Dashboard navigation link.',\n },\n dashboardPersonal: {\n id: 'learnerVariantDashboard.menu.dashboardPersonal.label',\n defaultMessage: 'Personal',\n description: 'Link to personal dashboard in user menu',\n },\n dashboardSwitch: {\n id: 'learnerVariantDashboard.menu.dashboardSwitch.label',\n defaultMessage: 'SWITCH DASHBOARD',\n description: 'Switch Dashboard header in the user menu',\n },\n help: {\n id: 'learnerVariantDashboard.help.label',\n defaultMessage: 'Help',\n description: 'The text for the link to the Help Center',\n },\n profile: {\n id: 'learnerVariantDashboard.menu.profile.label',\n defaultMessage: 'Profile',\n description: 'The text for the user menu Profile navigation link.',\n },\n viewPrograms: {\n id: 'learnerVariantDashboard.menu.viewPrograms.label',\n defaultMessage: 'View Programs',\n description: 'The text for the user menu View Programs navigation link.',\n },\n account: {\n id: 'learnerVariantDashboard.menu.account.label',\n defaultMessage: 'Account',\n description: 'The text for the user menu Account navigation link.',\n },\n orderHistory: {\n id: 'learnerVariantDashboard.menu.orderHistory.label',\n defaultMessage: 'Order History',\n description: 'The text for the user menu Order History navigation link.',\n },\n signOut: {\n id: 'learnerVariantDashboard.menu.signOut.label',\n defaultMessage: 'Sign Out',\n description: 'The label for the user menu Sign Out action.',\n },\n course: {\n id: 'learnerVariantDashboard.course',\n defaultMessage: 'Courses',\n description: 'Header link for switching to dashboard page.',\n },\n program: {\n id: 'learnerVariantDashboard.program',\n defaultMessage: 'Programs',\n description: 'Header link for switching to program page.',\n },\n discoverNew: {\n id: 'learnerVariantDashboard.discoverNew',\n defaultMessage: 'Discover New',\n description: 'Header link for switching to discover page.',\n },\n logoAltText: {\n id: 'learnerVariantDashboard.logoAltText',\n defaultMessage: 'edX, Inc. Dashboard',\n description: 'Alt text for the edX logo.',\n },\n collapseMenuOpenAltText: {\n id: 'learnerVariantDashboard.collapseMenuOpenAltText',\n defaultMessage: 'Menu',\n description: 'Alt text for the collapse menu icon when the menu is open.',\n },\n collapseMenuClosedAltText: {\n id: 'learnerVariantDashboard.collapseMenuClosedAltText',\n defaultMessage: 'Close',\n description: 'Alt text for the collapse menu icon when the menu is closed.',\n },\n career: {\n id: 'leanerDashboard.menu.career.label',\n defaultMessage: 'Career',\n description: 'The text for the user menu Career navigation link.',\n },\n newAlert: {\n id: 'header.menu.new.label',\n defaultMessage: 'New',\n description: 'The text announcing that an item in the user menu is New',\n },\n});\n\nexport default messages;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { AppContext } from '@edx/frontend-platform/react';\nimport { Button, Badge } from '@edx/paragon';\n\nimport WidgetNavbar from 'containers/WidgetContainers/WidgetNavbar';\nimport urls from 'data/services/lms/urls';\nimport { reduxHooks } from 'hooks';\nimport { COLLAPSED_NAVBAR } from 'widgets/RecommendationsPaintedDoorBtn/constants';\n\nimport { findCoursesNavDropdownClicked } from '../hooks';\nimport messages from '../messages';\n\nexport const CollapseMenuBody = ({ isOpen }) => {\n const { formatMessage } = useIntl();\n const { authenticatedUser } = React.useContext(AppContext);\n\n const dashboard = reduxHooks.useEnterpriseDashboardData();\n const { courseSearchUrl } = reduxHooks.usePlatformSettingsData();\n\n const exploreCoursesClick = findCoursesNavDropdownClicked(urls.baseAppUrl(courseSearchUrl));\n\n return (\n isOpen && (\n
\n \n {/* */}\n \n {formatMessage(messages.discoverNew)}\n \n \n {/* */}\n {authenticatedUser && (\n <>\n {!!dashboard && (\n \n )}\n {!dashboard && getConfig().CAREER_LINK_URL && (\n \n )}\n \n {formatMessage(messages.profile)}\n \n \n {formatMessage(messages.account)}\n \n {getConfig().ORDER_HISTORY_URL && (\n \n {formatMessage(messages.orderHistory)}\n \n )}\n \n {formatMessage(messages.signOut)}\n \n \n )}\n
\n )\n );\n};\n\nCollapseMenuBody.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n};\n\nexport default CollapseMenuBody;\n","var _path, _path2, _path3, _path4, _path5;\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\";\nvar SvgLogoNew1 = function SvgLogoNew1(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 255.12 58.11\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h255.12v58.11H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000064\",\n d: \"M76.57 8.2h5.66v5.85c0 1.46-1.18 2.64-2.64 2.64h-5.4a2.62 2.62 0 0 1-2.62-2.64V3.35c0-1.46 1.15-2.64 2.62-2.64h5.4c1.46 0 2.64 1.18 2.64 2.64v1.78l-2.88.48V3.98c0-.36-.29-.62-.65-.62h-3.6c-.36 0-.65.26-.65.62v9.45c0 .36.29.62.65.62h3.6c.36 0 .65-.26.65-.62v-2.69h-2.78V8.2ZM88.52 14.27h2.4c.36 0 .65-.26.65-.62v-.53l2.66.48v.62c0 1.39-1.08 2.47-2.5 2.47H87.6c-1.39 0-2.5-1.13-2.5-2.52V7.83c0-1.39 1.1-2.52 2.5-2.52h4.15c1.39 0 2.5 1.13 2.5 2.52v3.94h-6.38v1.87c0 .36.29.62.65.62Zm-.65-4.78h3.72V8.34c0-.36-.29-.62-.65-.62h-2.42c-.36 0-.65.26-.65.62v1.15ZM103.47 7.79c-.96.38-1.99.86-2.81 1.3-.46.24-.65.55-.65.96v6.65h-2.76V5.32h2.76v1.25c1.06-.5 2.09-1.03 3.29-1.49l.17 2.71ZM108.27 16.69h-2.76V5.32h2.64v.86c1.03-.41 3-1.1 4.18-1.1.98 0 1.7.41 2.14 1.03 1.15-.46 3.31-1.03 4.46-1.03 1.63 0 2.54 1.13 2.54 2.52v9.1h-2.76V8.42c0-.36-.24-.62-.65-.62-.6 0-1.99.53-2.54.72-.41.17-.65.48-.65.84v7.34h-2.76V8.42c0-.36-.24-.62-.65-.62-.6 0-1.99.53-2.54.72-.46.17-.65.55-.65.96v7.22ZM124.47 12.49c0-1.39.91-2.52 2.54-2.52 1.18 0 2.95.22 3.91.5V8.36c0-.36-.29-.62-.65-.62h-2.14c-.36 0-.65.26-.65.62v.38l-2.66-.29v-.67c0-1.39 1.08-2.47 2.5-2.47h3.86c1.39 0 2.5 1.13 2.5 2.52v8.85h-2.76v-.55c-1.18.41-2.74.79-3.91.79-1.63 0-2.54-1.13-2.54-2.52v-1.92Zm2.69 1.44c0 .36.24.62.65.62.58 0 1.8-.29 2.47-.5.43-.14.65-.29.65-.58v-.48c0-.29-.19-.43-.65-.53-.62-.12-1.9-.22-2.47-.22-.41 0-.65.26-.65.62v1.06ZM139.69 16.69h-2.76V5.32h2.64v.86c1.06-.43 3-1.1 4.18-1.1 1.63 0 2.54 1.13 2.54 2.52v9.1h-2.76V8.42c0-.36-.24-.62-.65-.62-.6 0-1.99.53-2.54.72-.46.17-.65.55-.65.96v7.22ZM162.46.71h2.88v13.34c0 1.46-1.18 2.64-2.64 2.64h-5.4a2.62 2.62 0 0 1-2.62-2.64V.71h2.88v12.72c0 .36.29.62.65.62h3.6c.36 0 .65-.26.65-.62V.71ZM171.46 16.69h-2.76V5.32h2.64v.86c1.06-.43 3-1.1 4.18-1.1 1.63 0 2.54 1.13 2.54 2.52v9.1h-2.76V8.42c0-.36-.24-.62-.65-.62-.6 0-1.99.53-2.54.72-.46.17-.65.55-.65.96v7.22ZM181.3.71h2.76v2.9h-2.76V.71Zm0 4.61h2.76v11.37h-2.76V5.32ZM186.1 5.32h2.86l2.35 8.01 2.33-8.01h2.88l-3.74 11.37h-2.95l-3.72-11.37ZM201.48 14.27h2.4c.36 0 .65-.26.65-.62v-.53l2.66.48v.62c0 1.39-1.08 2.47-2.5 2.47h-4.13c-1.39 0-2.5-1.13-2.5-2.52V7.83c0-1.39 1.1-2.52 2.5-2.52h4.15c1.39 0 2.5 1.13 2.5 2.52v3.94h-6.38v1.87c0 .36.29.62.65.62Zm-.65-4.78h3.72V8.34c0-.36-.29-.62-.65-.62h-2.42c-.36 0-.65.26-.65.62v1.15ZM216.44 7.79c-.96.38-1.99.86-2.81 1.3-.46.24-.65.55-.65.96v6.65h-2.76V5.32h2.76v1.25c1.06-.5 2.09-1.03 3.29-1.49l.17 2.71ZM224.33 13.33c0-.43-.1-.58-.5-.7-1.56-.46-2.78-.82-4.01-1.22-1.03-.34-1.8-1.2-1.8-2.3V7.84c0-1.39 1.1-2.52 2.5-2.52h3.82a2.52 2.52 0 0 1 2.54 2.52v.62l-2.64.48v-.62c0-.36-.29-.62-.65-.62h-2.16c-.5 0-.7.26-.7.62v.31c0 .34.22.58.5.67.91.29 2.83.84 4.01 1.22 1.22.41 1.8 1.22 1.8 2.33v1.32c0 1.39-1.13 2.52-2.54 2.52h-4.01c-1.39 0-2.5-1.13-2.5-2.52v-.65l2.64-.48v.65c0 .36.29.62.65.62h2.4c.46 0 .65-.26.65-.62v-.36ZM229.8.71h2.76v2.9h-2.76V.71Zm0 4.61h2.76v11.37h-2.76V5.32ZM241.83 16.69h-3c-1.39 0-2.5-1.13-2.5-2.52V7.71h-1.73v-2.4h1.73V2.67l2.76-.48v3.12h3.1l-.48 2.4h-2.62v5.95c0 .36.29.62.65.62h2.09v2.4ZM245.74 21.25l1.3-4.58-3.77-11.35h2.86l2.28 7.82 2.3-7.82h2.88l-5.18 15.93h-2.66ZM71.57 35.97v-6.34c0-1.39 1.1-2.52 2.5-2.52h4.56a2.52 2.52 0 0 1 2.54 2.52v6.34c0 1.39-1.13 2.52-2.54 2.52h-4.56c-1.39 0-2.5-1.13-2.5-2.52Zm6.84-5.71c0-.36-.29-.62-.65-.62h-2.78c-.36 0-.65.26-.65.62v5.09c0 .36.29.62.65.62h2.78c.36 0 .65-.26.65-.62v-5.09ZM90.56 24.91h-2.23c-.36 0-.65.26-.65.62v1.58h2.76l-.31 2.3h-2.45v9.07h-2.76v-9.07h-1.58v-2.3h1.58v-2.09c0-1.39 1.1-2.52 2.5-2.52h3.14v2.4ZM98 22.51h7.8c1.46 0 2.64 1.18 2.64 2.64v10.7c0 1.46-1.18 2.64-2.64 2.64H98V22.51Zm7.56 3.26c0-.36-.29-.62-.65-.62h-4.03v10.7h4.03c.36 0 .65-.26.65-.62v-9.45ZM111.8 22.34h2.76v3.07h-2.76v-3.07Zm0 4.78h2.76v11.37h-2.76V27.12ZM117.68 29.39c0-1.39.91-2.52 2.54-2.52 1.18 0 2.95.6 4.06 1.01v-.77h2.76v13.41c0 1.39-1.1 2.52-2.5 2.52h-5.76v-2.35h4.85c.36 0 .65-.26.65-.62v-2.9c-1.1.41-2.88 1.01-4.06 1.01-1.63 0-2.54-1.13-2.54-2.52V29.4Zm2.76 5.54c0 .36.24.62.65.62.6 0 1.99-.5 2.54-.72.46-.17.65-.43.65-.79v-3.05c0-.36-.19-.62-.65-.79-.55-.22-1.94-.72-2.54-.72-.41 0-.65.26-.65.62v4.82ZM130.28 22.34h2.76v3.07h-2.76v-3.07Zm0 4.78h2.76v11.37h-2.76V27.12ZM142.3 38.49h-3c-1.39 0-2.5-1.13-2.5-2.52v-6.46h-1.73v-2.4h1.73v-2.64l2.76-.48v3.12h3.1l-.48 2.4h-2.62v5.95c0 .36.29.62.65.62h2.09v2.4ZM144.7 34.29c0-1.39.91-2.52 2.54-2.52 1.18 0 2.95.22 3.91.5v-2.11c0-.36-.29-.62-.65-.62h-2.14c-.36 0-.65.26-.65.62v.38l-2.66-.29v-.67c0-1.39 1.08-2.47 2.5-2.47h3.86c1.39 0 2.5 1.13 2.5 2.52v8.85h-2.76v-.55c-1.18.41-2.74.79-3.91.79-1.63 0-2.54-1.13-2.54-2.52v-1.92Zm2.69 1.44c0 .36.24.62.65.62.58 0 1.8-.29 2.47-.5.43-.14.65-.29.65-.58v-.48c0-.29-.19-.43-.65-.53-.62-.12-1.9-.22-2.47-.22-.41 0-.65.26-.65.62v1.06ZM157.16 22.51l2.76-.48v16.46h-2.76V22.51ZM171.05 31.03c-1.42-.43-2.57-1.13-2.57-2.59v-3.29c0-1.46 1.15-2.64 2.62-2.64h5.09c1.46 0 2.64 1.18 2.64 2.64v1.87l-2.88.48v-1.73c0-.36-.29-.62-.65-.62h-3.29c-.36 0-.65.26-.65.62v1.99c0 .36.29.6.65.7 1.42.41 2.62.72 4.37 1.22 1.37.38 2.5 1.13 2.5 2.59v3.58c0 1.46-1.15 2.64-2.62 2.64h-5.18c-1.46 0-2.64-1.18-2.64-2.64v-1.82l2.88-.48v1.68c0 .36.29.62.65.62h3.38c.36 0 .65-.26.65-.62v-2.3c0-.36-.26-.58-.65-.67-1.82-.5-2.52-.7-4.3-1.22ZM188.19 34.31l2.66.48v1.18c0 1.39-1.08 2.52-2.5 2.52h-4.1c-1.39 0-2.5-1.13-2.5-2.52v-6.34c0-1.39 1.1-2.52 2.5-2.52h4.1c1.42 0 2.5 1.13 2.5 2.52v1.03l-2.66.48v-.89c0-.36-.29-.62-.65-.62h-2.38c-.36 0-.65.26-.65.62v5.09c0 .36.29.62.65.62h2.38c.36 0 .65-.26.65-.62v-1.03ZM193.61 22.34h2.76v3.07h-2.76v-3.07Zm0 4.78h2.76v11.37h-2.76V27.12ZM202.9 36.07h2.4c.36 0 .65-.26.65-.62v-.53l2.66.48v.62c0 1.39-1.08 2.47-2.5 2.47h-4.13c-1.39 0-2.5-1.13-2.5-2.52v-6.34c0-1.39 1.1-2.52 2.5-2.52h4.15c1.39 0 2.5 1.13 2.5 2.52v3.94h-6.38v1.87c0 .36.29.62.65.62Zm-.65-4.78h3.72v-1.15c0-.36-.29-.62-.65-.62h-2.42c-.36 0-.65.26-.65.62v1.15ZM214.39 38.49h-2.76V27.12h2.64v.86c1.06-.43 3-1.1 4.18-1.1 1.63 0 2.54 1.13 2.54 2.52v9.1h-2.76v-8.28c0-.36-.24-.62-.65-.62-.6 0-1.99.53-2.54.72-.46.17-.65.55-.65.96v7.22ZM230.43 34.31l2.66.48v1.18c0 1.39-1.08 2.52-2.5 2.52h-4.1c-1.39 0-2.5-1.13-2.5-2.52v-6.34c0-1.39 1.1-2.52 2.5-2.52h4.1c1.42 0 2.5 1.13 2.5 2.52v1.03l-2.66.48v-.89c0-.36-.29-.62-.65-.62h-2.38c-.36 0-.65.26-.65.62v5.09c0 .36.29.62.65.62h2.38c.36 0 .65-.26.65-.62v-1.03ZM239.02 36.07h2.4c.36 0 .65-.26.65-.62v-.53l2.66.48v.62c0 1.39-1.08 2.47-2.5 2.47h-4.13c-1.39 0-2.5-1.13-2.5-2.52v-6.34c0-1.39 1.1-2.52 2.5-2.52h4.15c1.39 0 2.5 1.13 2.5 2.52v3.94h-6.38v1.87c0 .36.29.62.65.62Zm-.65-4.78h3.72v-1.15c0-.36-.29-.62-.65-.62h-2.42c-.36 0-.65.26-.65.62v1.15Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ff8b00\",\n d: \"M.71.71v28.35c0 5.22 4.23 9.45 9.45 9.45h9.45c5.22 0 9.45-4.23 9.45-9.45V.71H.71Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000064\",\n d: \"M29.08 38.48V19.64l-.03-.03H14.87v37.8h18.9c5.22 0 9.45-4.23 9.45-9.45v-9.48H29.07Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#82b4fa\",\n d: \"M54.25.71H38.5c-5.22 0-9.45 4.23-9.45 9.45s4.2 9.42 9.39 9.45h-9.39v18.9H44.8c5.22 0 9.45-4.23 9.45-9.45 0-5.2-4.2-9.42-9.39-9.45h9.39V.71Z\"\n })));\n};\nexport { SvgLogoNew1 as ReactComponent };\nexport default __webpack_public_path__ + \"4df967387617dcde2eff8f3e0566d204.svg\";","import React from 'react';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { reduxHooks } from 'hooks';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport messages from './messages';\nimport Logo from './logo_new1.svg';\n\nexport const BrandLogo = () => {\n const { formatMessage } = useIntl();\n const dashboard = reduxHooks.useEnterpriseDashboardData();\n\n return (\n \n \n \n );\n};\n\nBrandLogo.propTypes = {};\n\nexport default BrandLogo;\n","import React from 'react';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { MenuIcon, Close } from '@edx/paragon/icons';\nimport { IconButton, Icon } from '@edx/paragon';\n\nimport { useLearnerDashboardHeaderData, useIsCollapsed } from '../hooks';\n\nimport CollapseMenuBody from './CollapseMenuBody';\nimport BrandLogo from '../BrandLogo';\n\nimport messages from '../messages';\n\nexport const CollapsedHeader = () => {\n const { formatMessage } = useIntl();\n const isCollapsed = useIsCollapsed();\n const { isOpen, toggleIsOpen } = useLearnerDashboardHeaderData();\n\n return (\n isCollapsed && (\n <>\n
\n \n \n
\n \n \n
\n \n )\n );\n};\n\nCollapsedHeader.propTypes = {};\n\nexport default CollapsedHeader;\n","import camelCase from 'lodash.camelcase';\nimport snakeCase from 'lodash.snakecase';\n\nexport function modifyObjectKeys(object, modify) {\n // If the passed in object is not an object, return it.\n if (\n object === undefined\n || object === null\n || (typeof object !== 'object' && !Array.isArray(object))\n ) {\n return object;\n }\n\n if (Array.isArray(object)) {\n return object.map(value => modifyObjectKeys(value, modify));\n }\n\n // Otherwise, process all its keys.\n const result = {};\n Object.entries(object).forEach(([key, value]) => {\n result[modify(key)] = modifyObjectKeys(value, modify);\n });\n return result;\n}\n\nexport function camelCaseObject(object) {\n return modifyObjectKeys(object, camelCase);\n}\n\nexport function snakeCaseObject(object) {\n return modifyObjectKeys(object, snakeCase);\n}\n\nexport function convertKeyNames(object, nameMap) {\n const transformer = key => (nameMap[key] === undefined ? key : nameMap[key]);\n\n return modifyObjectKeys(object, transformer);\n}\n\n/**\n * Helper class to save time when writing out action types for asynchronous methods. Also helps\n * ensure that actions are namespaced.\n *\n * TODO: Put somewhere common to it can be used by other MFEs.\n */\nexport class AsyncActionType {\n constructor(topic, name) {\n this.topic = topic;\n this.name = name;\n }\n\n get BASE() {\n return `${this.topic}__${this.name}`;\n }\n\n get BEGIN() {\n return `${this.topic}__${this.name}__BEGIN`;\n }\n\n get SUCCESS() {\n return `${this.topic}__${this.name}__SUCCESS`;\n }\n\n get FAILURE() {\n return `${this.topic}__${this.name}__FAILURE`;\n }\n\n get RESET() {\n return `${this.topic}__${this.name}__RESET`;\n }\n}\n","import { ensureConfig, getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient as getHttpClient } from '@edx/frontend-platform/auth';\nimport { logError } from '@edx/frontend-platform/logging';\nimport { camelCaseObject, convertKeyNames, snakeCaseObject } from './utils';\n\nensureConfig(['LMS_BASE_URL'], 'Profile API service');\n\nfunction processAccountData(data) {\n return camelCaseObject(data);\n}\n\nfunction processAndThrowError(error, errorDataProcessor) {\n const processedError = Object.create(error);\n if (error.response && error.response.data && typeof error.response.data === 'object') {\n processedError.processedData = errorDataProcessor(error.response.data);\n throw processedError;\n } else {\n throw error;\n }\n}\n\n// GET ACCOUNT\nexport async function getAccount(username) {\n const { data } = await getHttpClient().get(`${getConfig().LMS_BASE_URL}/api/user/v1/accounts/${username}`);\n\n // Process response data\n return processAccountData(data);\n}\n\n// PATCH PROFILE\nexport async function patchProfile(username, params) {\n const processedParams = snakeCaseObject(params);\n\n const { data } = await getHttpClient()\n .patch(`${getConfig().LMS_BASE_URL}/api/user/v1/accounts/${username}`, processedParams, {\n headers: {\n 'Content-Type': 'application/merge-patch+json',\n },\n })\n .catch((error) => {\n processAndThrowError(error, processAccountData);\n });\n\n // Process response data\n return processAccountData(data);\n}\n\n// POST PROFILE PHOTO\n\nexport async function postProfilePhoto(username, formData) {\n // eslint-disable-next-line no-unused-vars\n const { data } = await getHttpClient().post(\n `${getConfig().LMS_BASE_URL}/api/user/v1/accounts/${username}/image`,\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n },\n ).catch((error) => {\n processAndThrowError(error, camelCaseObject);\n });\n\n // TODO: Someday in the future the POST photo endpoint\n // will return the new values. At that time we should\n // use the commented line below instead of the separate\n // getAccount request that follows.\n // return camelCaseObject(data);\n const updatedData = await getAccount(username);\n return updatedData.profileImage;\n}\n\n// DELETE PROFILE PHOTO\n\nexport async function deleteProfilePhoto(username) {\n // eslint-disable-next-line no-unused-vars\n const { data } = await getHttpClient().delete(`${getConfig().LMS_BASE_URL}/api/user/v1/accounts/${username}/image`);\n\n // TODO: Someday in the future the POST photo endpoint\n // will return the new values. At that time we should\n // use the commented line below instead of the separate\n // getAccount request that follows.\n // return camelCaseObject(data);\n const updatedData = await getAccount(username);\n return updatedData.profileImage;\n}\n\n// GET PREFERENCES\nexport async function getPreferences(username) {\n const { data } = await getHttpClient().get(`${getConfig().LMS_BASE_URL}/api/user/v1/preferences/${username}`);\n\n return camelCaseObject(data);\n}\n\n// PATCH PREFERENCES\nexport async function patchPreferences(username, params) {\n let processedParams = snakeCaseObject(params);\n processedParams = convertKeyNames(processedParams, {\n visibility_bio: 'visibility.bio',\n visibility_course_certificates: 'visibility.course_certificates',\n visibility_country: 'visibility.country',\n visibility_date_joined: 'visibility.date_joined',\n visibility_level_of_education: 'visibility.level_of_education',\n visibility_language_proficiencies: 'visibility.language_proficiencies',\n visibility_name: 'visibility.name',\n visibility_social_links: 'visibility.social_links',\n visibility_time_zone: 'visibility.time_zone',\n });\n\n await getHttpClient().patch(`${getConfig().LMS_BASE_URL}/api/user/v1/preferences/${username}`, processedParams, {\n headers: { 'Content-Type': 'application/merge-patch+json' },\n });\n\n return params; // TODO: Once the server returns the updated preferences object, return that.\n}\n\n// GET COURSE CERTIFICATES\n\nfunction transformCertificateData(data) {\n const transformedData = [];\n data.forEach((cert) => {\n // download_url may be full url or absolute path.\n // note: using the URL() api breaks in ie 11\n const urlIsPath = typeof cert.download_url === 'string'\n && cert.download_url.search(/http[s]?:\\/\\//) !== 0;\n\n const downloadUrl = urlIsPath\n ? `${getConfig().LMS_BASE_URL}${cert.download_url}`\n : cert.download_url;\n\n transformedData.push({\n ...camelCaseObject(cert),\n certificateType: cert.certificate_type,\n downloadUrl,\n });\n });\n return transformedData;\n}\n\nexport async function getCourseCertificates(username) {\n const url = `${getConfig().LMS_BASE_URL}/api/certificates/v0/certificates/${username}/`;\n try {\n const { data } = await getHttpClient().get(url);\n return transformCertificateData(data);\n } catch (e) {\n logError(e);\n return [];\n }\n}\n","import React, { useEffect, useState } from 'react';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { AppContext } from '@edx/frontend-platform/react';\nimport { AvatarButton, Dropdown, Badge } from '@edx/paragon';\nimport { getAccount } from './services';\nimport { reduxHooks } from 'hooks';\n\nimport messages from '../messages';\n\nexport const AuthenticatedUserDropdown = () => {\n const [profileImage, setProfileImage] = useState('');\n const { formatMessage } = useIntl();\n const { authenticatedUser } = React.useContext(AppContext);\n const dashboard = reduxHooks.useEnterpriseDashboardData();\n\n \n useEffect(() => {\n const fetchUserProfileImage = async () => {\n try {\n const userData = await getAccount(authenticatedUser.username);\n\n // Extract profile image URL from userData\n const profileImageUrl = userData.profileImage?.imageUrlFull;\n const HasImage = userData.profileImage?.hasImage;\n\n // Update the profileImage state with the fetched URL\n if (profileImageUrl && HasImage) {\n setProfileImage(profileImageUrl);\n } else {\n // Fallback to default user icon URL if profile image URL is not available\n setProfileImage('https://img.icons8.com/forma-thin-filled/24/user.png');\n }\n } catch (error) {\n console.error('Fetch error:', error);\n }\n };\n\n fetchUserProfileImage(); // Trigger the fetch when the component mounts\n }, [authenticatedUser.username]);\n\n\n return (\n authenticatedUser && (\n \n \n \n {authenticatedUser.username}\n \n \n \n { getConfig().ENABLE_EDX_PERSONAL_DASHBOARD && (\n <>\n {formatMessage(messages.dashboardSwitch)}\n \n {formatMessage(messages.dashboardPersonal)}\n \n {!!dashboard && (\n \n {dashboard.label} {formatMessage(messages.dashboard)}\n \n )}\n \n \n )}\n\n {!dashboard && getConfig().CAREER_LINK_URL && (\n \n {formatMessage(messages.career)}\n \n {formatMessage(messages.newAlert)}\n \n \n )}\n \n {formatMessage(messages.dashboard)}\n \n \n {formatMessage(messages.profile)}\n \n \n {formatMessage(messages.account)}\n \n {/* {getConfig().ORDER_HISTORY_URL && (\n \n {formatMessage(messages.orderHistory)}\n \n )} */}\n \n {formatMessage(messages.signOut)}\n \n \n \n )\n );\n};\n\nAuthenticatedUserDropdown.propTypes = {};\n\nexport default AuthenticatedUserDropdown;\n","import React from 'react';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button } from '@edx/paragon';\n\nimport WidgetNavbar from 'containers/WidgetContainers/WidgetNavbar';\nimport urls from 'data/services/lms/urls';\nimport { reduxHooks } from 'hooks';\nimport { EXPANDED_NAVBAR } from 'widgets/RecommendationsPaintedDoorBtn/constants';\n\nimport AuthenticatedUserDropdown from './AuthenticatedUserDropdown';\nimport { useIsCollapsed, findCoursesNavClicked } from '../hooks';\nimport messages from '../messages';\nimport BrandLogo from '../BrandLogo';\n\nexport const ExpandedHeader = () => {\n const { formatMessage } = useIntl();\n const { courseSearchUrl } = reduxHooks.usePlatformSettingsData();\n const isCollapsed = useIsCollapsed();\n\n const exploreCoursesClick = findCoursesNavClicked(urls.baseAppUrl(courseSearchUrl));\n\n const handleFeedback = (e) => {\n e.preventDefault(); // Correctly calling preventDefault\n var but = document.getElementById(\"zammad-feedback-form\");\n if (but) {\n but.click();\n }\n };\n\n const lmsBaseUrl = getConfig().LMS_BASE_URL;\n const shouldRenderMicrodegreesButton = lmsBaseUrl.includes('lms'); // Check if LMS_BASE_URL contains 'lms'\n\n return (\n !isCollapsed && (\n <>\n
\n
\n \n\n {!shouldRenderMicrodegreesButton ? (\n \n OPEN COURSES\n \n ) : (\n \n MODULES\n \n )}\n\n {!shouldRenderMicrodegreesButton ? (\n \n MICRO-DEGREES\n \n ) : (\n \n OPEN COURSES\n \n )}\n\n \n PODCAST\n \n \n \n {formatMessage(messages.help)}\n \n \n \n
\n\n \n
\n
\n \n )\n );\n};\n\nExpandedHeader.propTypes = {};\n\nexport default ExpandedHeader;\n","import React from 'react';\n\nimport MasqueradeBar from 'containers/MasqueradeBar';\nimport ConfirmEmailBanner from './ConfirmEmailBanner';\n\nimport CollapsedHeader from './CollapsedHeader';\nimport ExpandedHeader from './ExpandedHeader';\n\nimport './index.scss';\n\nexport const LearnerDashboardHeader = () => (\n <>\n \n \n \n \n \n);\n\nLearnerDashboardHeader.propTypes = {};\n\nexport default LearnerDashboardHeader;\n","import React from 'react';\nimport { Helmet } from 'react-helmet';\n\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { logError } from '@edx/frontend-platform/logging';\nimport { initializeHotjar } from '@edx/frontend-enterprise-hotjar';\n\nimport { ErrorPage, AppContext } from '@edx/frontend-platform/react';\nimport Footer from '@edx/frontend-component-footer';\nimport { Alert } from '@edx/paragon';\n\nimport { RequestKeys } from 'data/constants/requests';\nimport store from 'data/store';\nimport {\n selectors,\n actions,\n} from 'data/redux';\nimport { reduxHooks } from 'hooks';\nimport Dashboard from 'containers/Dashboard';\nimport ZendeskFab from 'components/ZendeskFab';\nimport { ExperimentProvider } from 'ExperimentContext';\n\nimport track from 'tracking';\n\nimport fakeData from 'data/services/lms/fakeData/courses';\n\nimport AppWrapper from 'containers/WidgetContainers/AppWrapper';\nimport LearnerDashboardHeader from 'containers/LearnerDashboardHeader';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport messages from './messages';\nimport './App.scss';\n\nexport const App = () => {\n const { authenticatedUser } = React.useContext(AppContext);\n const { formatMessage } = useIntl();\n const isFailed = {\n initialize: reduxHooks.useRequestIsFailed(RequestKeys.initialize),\n refreshList: reduxHooks.useRequestIsFailed(RequestKeys.refreshList),\n };\n const hasNetworkFailure = isFailed.initialize || isFailed.refreshList;\n const { supportEmail } = reduxHooks.usePlatformSettingsData();\n const loadData = reduxHooks.useLoadData();\n\n const optimizelyScript = () => {\n if (getConfig().OPTIMIZELY_URL) {\n return