@edx/frontend-app-learner-dashboard 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/containers/CourseCard/components/CourseCardActions/index.js +2 -1
- package/dist/containers/CourseCard/components/CourseCardActions/index.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardDetails/hooks.js +4 -4
- package/dist/containers/CourseCard/components/CourseCardDetails/hooks.js.map +1 -1
- package/dist/widgets/LearnerDashboardPlugins/app.js +70 -0
- package/dist/widgets/LearnerDashboardPlugins/app.js.map +1 -1
- package/dist/widgets/LearnerDashboardPlugins/career-menu/index.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/career-menu/index.js +22 -0
- package/dist/widgets/LearnerDashboardPlugins/career-menu/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/career-menu/messages.d.ts +16 -0
- package/dist/widgets/LearnerDashboardPlugins/career-menu/messages.js +15 -0
- package/dist/widgets/LearnerDashboardPlugins/career-menu/messages.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/chatbot/HelpChatbot.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/chatbot/HelpChatbot.js +25 -0
- package/dist/widgets/LearnerDashboardPlugins/chatbot/HelpChatbot.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/chatbot/data/five9.d.ts +3 -0
- package/dist/widgets/LearnerDashboardPlugins/chatbot/data/five9.js +5 -0
- package/dist/widgets/LearnerDashboardPlugins/chatbot/data/five9.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/chatbot/index.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/chatbot/index.js +3 -0
- package/dist/widgets/LearnerDashboardPlugins/chatbot/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/cohesion-wrapper/CohesionWrapper.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/cohesion-wrapper/CohesionWrapper.js +33 -0
- package/dist/widgets/LearnerDashboardPlugins/cohesion-wrapper/CohesionWrapper.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/cohesion-wrapper/index.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/cohesion-wrapper/index.js +3 -0
- package/dist/widgets/LearnerDashboardPlugins/cohesion-wrapper/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/Banner.d.ts +24 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/Banner.js +19 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/Banner.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/CourseBanner.d.ts +10 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/CourseBanner.js +31 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/CourseBanner.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/formatDate.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/formatDate.js +13 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/formatDate.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/index.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/index.js +3 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/messages.d.ts +56 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/messages.js +40 -0
- package/dist/widgets/LearnerDashboardPlugins/course-banner/messages.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-menu/index.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-menu/index.js +23 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-menu/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-menu/messages.d.ts +24 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-menu/messages.js +20 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-menu/messages.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/EnterpriseDashboardModal.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/EnterpriseDashboardModal.js +20 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/EnterpriseDashboardModal.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/EnterpriseDashboardModalWrapper.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/EnterpriseDashboardModalWrapper.js +17 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/EnterpriseDashboardModalWrapper.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/hooks/hooks.d.ts +10 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/hooks/hooks.js +34 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/hooks/hooks.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/index.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/index.js +3 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/messages.d.ts +32 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/messages.js +25 -0
- package/dist/widgets/LearnerDashboardPlugins/dashboard-modal/messages.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/mocks/optimizely/index.d.ts +10 -0
- package/dist/widgets/LearnerDashboardPlugins/mocks/optimizely/index.js +10 -0
- package/dist/widgets/LearnerDashboardPlugins/mocks/optimizely/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/no-courses-view/index.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/no-courses-view/index.js +37 -0
- package/dist/widgets/LearnerDashboardPlugins/no-courses-view/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/no-courses-view/index.scss +13 -0
- package/dist/widgets/LearnerDashboardPlugins/no-courses-view/messages.d.ts +32 -0
- package/dist/widgets/LearnerDashboardPlugins/no-courses-view/messages.js +25 -0
- package/dist/widgets/LearnerDashboardPlugins/no-courses-view/messages.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/api.d.ts +9 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/api.js +32 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/api.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/hooks.d.ts +4 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/hooks.js +32 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/hooks.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/index.d.ts +8 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/index.js +14 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/messages.d.ts +8 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/messages.js +10 -0
- package/dist/widgets/LearnerDashboardPlugins/notices-redirect/messages.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/ProgressiveProfilingEntry.d.ts +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/ProgressiveProfilingEntry.js +23 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/ProgressiveProfilingEntry.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/ProgressiveProfilingModal.d.ts +14 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/ProgressiveProfilingModal.js +51 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/ProgressiveProfilingModal.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/api/service.d.ts +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/api/service.js +35 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/api/service.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/data/progressiveProfilingFields.d.ts +22 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/data/progressiveProfilingFields.js +33 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/data/progressiveProfilingFields.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/field-renderer/FieldRenderer.d.ts +21 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/field-renderer/FieldRenderer.js +29 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/field-renderer/FieldRenderer.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/field-renderer/index.d.ts +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/field-renderer/index.js +2 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/field-renderer/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/hooks/useClearProgressiveProfilingQueryParams.d.ts +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/hooks/useClearProgressiveProfilingQueryParams.js +10 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/hooks/useClearProgressiveProfilingQueryParams.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/hooks/useProgressiveProfilingForm.d.ts +11 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/hooks/useProgressiveProfilingForm.js +50 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/hooks/useProgressiveProfilingForm.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/hooks/useProgressiveProfilingTrigger.d.ts +3 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/hooks/useProgressiveProfilingTrigger.js +8 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/hooks/useProgressiveProfilingTrigger.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/index.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/index.js +3 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/ProgressiveProfiling.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/ProgressiveProfiling.js +82 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/ProgressiveProfiling.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/ProgressiveProfilingPageModal.d.ts +13 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/ProgressiveProfilingPageModal.js +26 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/ProgressiveProfilingPageModal.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/LargeLayout.d.ts +19 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/LargeLayout.js +34 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/LargeLayout.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/MediumLayout.d.ts +19 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/MediumLayout.js +35 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/MediumLayout.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/SmallLayout.d.ts +19 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/SmallLayout.js +36 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/SmallLayout.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/index.d.ts +3 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/index.js +4 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/messages.d.ts +33 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/messages.js +35 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/components/welcome-page-layout/messages.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/index.d.ts +20 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/index.js +24 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/base-container/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/index.d.ts +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/index.js +2 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/index.scss +269 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/messages.d.ts +58 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/messages.js +62 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/messages.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/service/getThirdPartyAuthContext.d.ts +5 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/service/getThirdPartyAuthContext.js +31 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/progressive-profiling-authn-replica/service/getThirdPartyAuthContext.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/utils/constants.d.ts +5 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/utils/constants.js +6 -0
- package/dist/widgets/LearnerDashboardPlugins/progressive-profiling-dashboard/utils/constants.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/enterpriseDashboardModal.d.ts +9 -0
- package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/enterpriseDashboardModal.js +29 -0
- package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/enterpriseDashboardModal.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/exploreCourses.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/exploreCourses.js +46 -0
- package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/exploreCourses.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/progressiveProfiling.d.ts +14 -0
- package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/progressiveProfiling.js +24 -0
- package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/progressiveProfiling.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/ucl-wrapper/UclWrapper.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/ucl-wrapper/UclWrapper.js +36 -0
- package/dist/widgets/LearnerDashboardPlugins/ucl-wrapper/UclWrapper.js.map +1 -0
- package/dist/widgets/LearnerDashboardPlugins/ucl-wrapper/index.d.ts +2 -0
- package/dist/widgets/LearnerDashboardPlugins/ucl-wrapper/index.js +3 -0
- package/dist/widgets/LearnerDashboardPlugins/ucl-wrapper/index.js.map +1 -0
- package/package.json +4 -1
|
@@ -9,10 +9,11 @@ import BeginCourseButton from './BeginCourseButton';
|
|
|
9
9
|
import ResumeButton from './ResumeButton';
|
|
10
10
|
import ViewCourseButton from './ViewCourseButton';
|
|
11
11
|
export const CourseCardActions = ({ cardId }) => {
|
|
12
|
+
var _a;
|
|
12
13
|
const cardData = useCourseData(cardId);
|
|
13
14
|
const hasStarted = cardData.enrollment.hasStarted || false;
|
|
14
15
|
const { isEntitlement, isFulfilled } = useEntitlementInfo(cardData);
|
|
15
|
-
const isArchived = cardData.courseRun.isArchived || false;
|
|
16
|
+
const isArchived = ((_a = cardData === null || cardData === void 0 ? void 0 : cardData.courseRun) === null || _a === void 0 ? void 0 : _a.isArchived) || false;
|
|
16
17
|
return (_jsxs(ActionRow, { "data-test-id": "CourseCardActions", children: [_jsx(CourseCardActionSlot, { cardId: cardId }), isEntitlement && (isFulfilled
|
|
17
18
|
? _jsx(ViewCourseButton, { cardId: cardId })
|
|
18
19
|
: _jsx(SelectSessionButton, { cardId: cardId })), (isArchived && !isEntitlement) && (_jsx(ViewCourseButton, { cardId: cardId })), !(isArchived || isEntitlement) && (hasStarted
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/CourseCard/components/CourseCardActions/index.jsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,oBAAoB,MAAM,iCAAiC,CAAC;AACnE,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/CourseCard/components/CourseCardActions/index.jsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,oBAAoB,MAAM,iCAAiC,CAAC;AACnE,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;;IAC9C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC;IAC3D,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,0CAAE,UAAU,KAAI,KAAK,CAAC;IAE5D,OAAO,CACL,MAAC,SAAS,oBAAc,mBAAmB,aACzC,KAAC,oBAAoB,IAAC,MAAM,EAAE,MAAM,GAAI,EACvC,aAAa,IAAI,CAAC,WAAW;gBAC5B,CAAC,CAAC,KAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,GAAI;gBACtC,CAAC,CAAC,KAAC,mBAAmB,IAAC,MAAM,EAAE,MAAM,GAAI,CAC1C,EACA,CAAC,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,CACjC,KAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,GAAI,CACrC,EACA,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU;gBAC5C,CAAC,CAAC,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,GAAI;gBAClC,CAAC,CAAC,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,GAAI,CACxC,IACS,CACb,CAAC;AACJ,CAAC,CAAC;AACF,iBAAiB,CAAC,SAAS,GAAG;IAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;CACpC,CAAC;AAEF,eAAe,iBAAiB,CAAC","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ActionRow } from '@openedx/paragon';\n\nimport { useCourseData, useEntitlementInfo } from '@src/hooks';\n\nimport CourseCardActionSlot from '@src/slots/CourseCardActionSlot';\nimport SelectSessionButton from './SelectSessionButton';\nimport BeginCourseButton from './BeginCourseButton';\nimport ResumeButton from './ResumeButton';\nimport ViewCourseButton from './ViewCourseButton';\n\nexport const CourseCardActions = ({ cardId }) => {\n const cardData = useCourseData(cardId);\n const hasStarted = cardData.enrollment.hasStarted || false;\n const { isEntitlement, isFulfilled } = useEntitlementInfo(cardData);\n const isArchived = cardData?.courseRun?.isArchived || false;\n\n return (\n <ActionRow data-test-id=\"CourseCardActions\">\n <CourseCardActionSlot cardId={cardId} />\n {isEntitlement && (isFulfilled\n ? <ViewCourseButton cardId={cardId} />\n : <SelectSessionButton cardId={cardId} />\n )}\n {(isArchived && !isEntitlement) && (\n <ViewCourseButton cardId={cardId} />\n )}\n {!(isArchived || isEntitlement) && (hasStarted\n ? <ResumeButton cardId={cardId} />\n : <BeginCourseButton cardId={cardId} />\n )}\n </ActionRow>\n );\n};\nCourseCardActions.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default CourseCardActions;\n"]}
|
|
@@ -8,15 +8,15 @@ export const useAccessMessage = ({ cardId }) => {
|
|
|
8
8
|
const courseData = useCourseData(cardId);
|
|
9
9
|
const { courseRun, enrollment } = courseData || {};
|
|
10
10
|
const formatDate = utilHooks.useFormatDate();
|
|
11
|
-
if (!courseRun.isStarted) {
|
|
12
|
-
if (!courseRun
|
|
11
|
+
if (!(courseRun === null || courseRun === void 0 ? void 0 : courseRun.isStarted)) {
|
|
12
|
+
if (!(courseRun === null || courseRun === void 0 ? void 0 : courseRun.startDate)) {
|
|
13
13
|
return null;
|
|
14
14
|
}
|
|
15
|
-
const startDate = courseRun.advertisedStart || formatDate(courseRun.startDate);
|
|
15
|
+
const startDate = (courseRun === null || courseRun === void 0 ? void 0 : courseRun.advertisedStart) || formatDate(courseRun === null || courseRun === void 0 ? void 0 : courseRun.startDate);
|
|
16
16
|
return formatMessage(messages.courseStarts, { startDate });
|
|
17
17
|
}
|
|
18
18
|
if (enrollment === null || enrollment === void 0 ? void 0 : enrollment.isEnrolled) {
|
|
19
|
-
const { isArchived, endDate } = courseRun;
|
|
19
|
+
const { isArchived, endDate } = courseRun || {};
|
|
20
20
|
const { accessExpirationDate, isAuditAccessExpired, } = enrollment;
|
|
21
21
|
if (enrollment.isAudit && accessExpirationDate) {
|
|
22
22
|
return formatMessage(isAuditAccessExpired ? messages.accessExpired : messages.accessExpires, { accessExpirationDate: formatDate(accessExpirationDate) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../../src/containers/CourseCard/components/CourseCardDetails/hooks.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC7C,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAC7C,IAAI,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../../src/containers/CourseCard/components/CourseCardDetails/hooks.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC7C,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAC7C,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAA,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAA,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,eAAe,KAAI,UAAU,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAC,CAAC;QACjF,OAAO,aAAa,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,EAAE,CAAC;QAC3B,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,IAAI,EAAE,CAAC;QAChD,MAAM,EACJ,oBAAoB,EACpB,oBAAoB,GACrB,GAAG,UAAU,CAAC;QAEf,IAAI,UAAU,CAAC,OAAO,IAAI,oBAAoB,EAAE,CAAC;YAC/C,OAAO,aAAa,CAClB,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EACtE,EAAE,oBAAoB,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAC3D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,aAAa,CAClB,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EACvD,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CACjC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;;IAC/C,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,cAAc,0CAAE,IAAI,CAAC;IACtD,MAAM,YAAY,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,0CAAE,YAAY,CAAC;IACtD,MAAM,EACJ,aAAa,EACb,WAAW,EACX,SAAS,GACV,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,EAAE,wBAAwB,EAAE,GAAG,qBAAqB,EAAE,CAAC;IAE7D,OAAO;QACL,YAAY,EAAE,YAAY,IAAI,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACzE,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QACjD,aAAa;QACb,WAAW;QACX,SAAS;QACT,gBAAgB,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;QACxD,YAAY;QACZ,2BAA2B,EAAE,aAAa,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAChF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC","sourcesContent":["import { useIntl } from '@openedx/frontend-base';\nimport { utilHooks, useCourseData, useEntitlementInfo } from '@src/hooks';\nimport { useSelectSessionModal } from '@src/data/context';\n\nimport * as hooks from './hooks';\nimport messages from './messages';\n\nexport const useAccessMessage = ({ cardId }) => {\n const { formatMessage } = useIntl();\n const courseData = useCourseData(cardId);\n const { courseRun, enrollment } = courseData || {};\n const formatDate = utilHooks.useFormatDate();\n if (!courseRun?.isStarted) {\n if (!courseRun?.startDate) {\n return null;\n }\n const startDate = courseRun?.advertisedStart || 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) {\n return null;\n }\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 courseData = useCourseData(cardId);\n const providerName = courseData?.courseProvider?.name;\n const courseNumber = courseData?.course?.courseNumber;\n const {\n isEntitlement,\n isFulfilled,\n canChange,\n } = useEntitlementInfo(courseData);\n const { updateSelectSessionModal } = useSelectSessionModal();\n\n return {\n providerName: providerName || formatMessage(messages.unknownProviderName),\n accessMessage: hooks.useAccessMessage({ cardId }),\n isEntitlement,\n isFulfilled,\n canChange,\n openSessionModal: () => updateSelectSessionModal(cardId),\n courseNumber,\n changeOrLeaveSessionMessage: formatMessage(messages.changeOrLeaveSessionButton),\n };\n};\n\nexport default useCardDetailsData;\n"]}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { WidgetOperationTypes } from '@openedx/frontend-base';
|
|
2
2
|
import UpgradeButton from './upgrade-button/UpgradeButton';
|
|
3
|
+
import UclWrapper from './ucl-wrapper/index';
|
|
4
|
+
import ProgressiveProfilingEntry from './progressive-profiling-dashboard/ProgressiveProfilingModal';
|
|
5
|
+
import useNoticesRedirectData from './notices-redirect';
|
|
6
|
+
import NoCoursesView from './no-courses-view';
|
|
7
|
+
import EnterpriseDashboardModalWrapper from './dashboard-modal';
|
|
8
|
+
import UserDashboardMenu from './dashboard-menu';
|
|
9
|
+
import CourseBanner from './course-banner';
|
|
10
|
+
import CohesionWrapper from './cohesion-wrapper';
|
|
11
|
+
import HelpChatbot from './chatbot';
|
|
12
|
+
import UserCareerMenu from './career-menu';
|
|
3
13
|
const app = {
|
|
4
14
|
appId: 'org.openedx.frontend.app.learnerDashboard.plugins',
|
|
5
15
|
slots: [
|
|
@@ -9,6 +19,66 @@ const app = {
|
|
|
9
19
|
op: WidgetOperationTypes.PREPEND,
|
|
10
20
|
component: UpgradeButton,
|
|
11
21
|
},
|
|
22
|
+
{
|
|
23
|
+
slotId: 'org.openedx.frontend.slot.learnerDashboard.courseCardAction.v1',
|
|
24
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.uclWrapper.v1',
|
|
25
|
+
op: WidgetOperationTypes.PREPEND,
|
|
26
|
+
component: UclWrapper,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
slotId: 'org.openedx.frontend.slot.learnerDashboard.courseCardAction.v1',
|
|
30
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.progressiveProfilingEntry.v1',
|
|
31
|
+
op: WidgetOperationTypes.PREPEND,
|
|
32
|
+
component: ProgressiveProfilingEntry,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
slotId: 'org.openedx.frontend.slot.learnerDashboard.noCoursesView.v1',
|
|
36
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.noCoursesView.v1',
|
|
37
|
+
op: WidgetOperationTypes.PREPEND,
|
|
38
|
+
component: NoCoursesView,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
slotId: 'org.openedx.frontend.slot.learnerDashboard.enterpriseDashboardModal.v1',
|
|
42
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.enterpriseDashboardModal.v1',
|
|
43
|
+
op: WidgetOperationTypes.PREPEND,
|
|
44
|
+
component: EnterpriseDashboardModalWrapper,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
slotId: 'org.openedx.frontend.slot.learnerDashboard.userDashboardMenu.v1',
|
|
48
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.userDashboardMenu.v1',
|
|
49
|
+
op: WidgetOperationTypes.PREPEND,
|
|
50
|
+
component: UserDashboardMenu,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
slotId: 'org.openedx.frontend.slot.learnerDashboard.courseBanner.v1',
|
|
54
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.courseBanner.v1',
|
|
55
|
+
op: WidgetOperationTypes.PREPEND,
|
|
56
|
+
component: CourseBanner,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
slotId: 'org.openedx.frontend.slot.learnerDashboard.cohesionWrapper.v1',
|
|
60
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.cohesionWrapper.v1',
|
|
61
|
+
op: WidgetOperationTypes.PREPEND,
|
|
62
|
+
component: CohesionWrapper,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
slotId: 'org.openedx.frontend.slot.learnerDashboard.chatbot.v1',
|
|
66
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.chatbot.v1',
|
|
67
|
+
op: WidgetOperationTypes.PREPEND,
|
|
68
|
+
component: HelpChatbot,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
slotId: 'org.openedx.frontend.slot.learnerDashboard.careerMenu.v1',
|
|
72
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.careerMenu.v1',
|
|
73
|
+
op: WidgetOperationTypes.PREPEND,
|
|
74
|
+
component: UserCareerMenu,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
slotId: 'org.openedx.frontend.slot.learnerDashboard.optimizelyExperiment.v1',
|
|
78
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.optimizelyExperiment.v1',
|
|
79
|
+
op: WidgetOperationTypes.PREPEND,
|
|
80
|
+
component: useNoticesRedirectData,
|
|
81
|
+
},
|
|
12
82
|
],
|
|
13
83
|
};
|
|
14
84
|
export default app;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardPlugins/app.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,aAAa,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardPlugins/app.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,aAAa,MAAM,gCAAgC,CAAC;AAC3D,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,yBAAyB,MAAM,6DAA6D,CAAC;AACpG,OAAO,sBAAsB,MAAM,oBAAoB,CAAC;AACxD,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,+BAA+B,MAAM,mBAAmB,CAAC;AAChE,OAAO,iBAAiB,MAAM,kBAAkB,CAAC;AACjD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,WAAW,MAAM,WAAW,CAAC;AACpC,OAAO,cAAc,MAAM,eAAe,CAAC;AAE3C,MAAM,GAAG,GAAQ;IACf,KAAK,EAAE,mDAAmD;IAC1D,KAAK,EAAE;QACL;YACE,MAAM,EAAE,gEAAgE;YACxE,EAAE,EAAE,+DAA+D;YACnE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,aAAa;SACzB;QACD;YACE,MAAM,EAAE,gEAAgE;YACxE,EAAE,EAAE,4DAA4D;YAChE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,UAAU;SACtB;QACD;YACE,MAAM,EAAE,gEAAgE;YACxE,EAAE,EAAE,2EAA2E;YAC/E,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,yBAAyB;SACrC;QACD;YACE,MAAM,EAAE,6DAA6D;YACrE,EAAE,EAAE,+DAA+D;YACnE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,aAAa;SACzB;QACD;YACE,MAAM,EAAE,wEAAwE;YAChF,EAAE,EAAE,0EAA0E;YAC9E,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,+BAA+B;SAC3C;QACD;YACE,MAAM,EAAE,iEAAiE;YACzE,EAAE,EAAE,mEAAmE;YACvE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,iBAAiB;SAC7B;QACD;YACE,MAAM,EAAE,4DAA4D;YACpE,EAAE,EAAE,8DAA8D;YAClE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,YAAY;SACxB;QACD;YACE,MAAM,EAAE,+DAA+D;YACvE,EAAE,EAAE,iEAAiE;YACrE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,eAAe;SAC3B;QACD;YACE,MAAM,EAAE,uDAAuD;YAC/D,EAAE,EAAE,yDAAyD;YAC7D,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,WAAW;SACvB;QACD;YACE,MAAM,EAAE,0DAA0D;YAClE,EAAE,EAAE,4DAA4D;YAChE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,cAAc;SAC1B;QACD;YACE,MAAM,EAAE,oEAAoE;YAC5E,EAAE,EAAE,sEAAsE;YAC1E,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,sBAAsB;SAClC;KACF;CACF,CAAC;AAEF,eAAe,GAAG,CAAC","sourcesContent":["import { App, WidgetOperationTypes } from '@openedx/frontend-base';\n\nimport UpgradeButton from './upgrade-button/UpgradeButton';\nimport UclWrapper from './ucl-wrapper/index';\nimport ProgressiveProfilingEntry from './progressive-profiling-dashboard/ProgressiveProfilingModal';\nimport useNoticesRedirectData from './notices-redirect';\nimport NoCoursesView from './no-courses-view';\nimport EnterpriseDashboardModalWrapper from './dashboard-modal';\nimport UserDashboardMenu from './dashboard-menu';\nimport CourseBanner from './course-banner';\nimport CohesionWrapper from './cohesion-wrapper';\nimport HelpChatbot from './chatbot';\nimport UserCareerMenu from './career-menu';\n\nconst app: App = {\n appId: 'org.openedx.frontend.app.learnerDashboard.plugins',\n slots: [\n {\n slotId: 'org.openedx.frontend.slot.learnerDashboard.courseCardAction.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.upgradeButton.v1',\n op: WidgetOperationTypes.PREPEND,\n component: UpgradeButton,\n },\n {\n slotId: 'org.openedx.frontend.slot.learnerDashboard.courseCardAction.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.uclWrapper.v1',\n op: WidgetOperationTypes.PREPEND,\n component: UclWrapper,\n },\n {\n slotId: 'org.openedx.frontend.slot.learnerDashboard.courseCardAction.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.progressiveProfilingEntry.v1',\n op: WidgetOperationTypes.PREPEND,\n component: ProgressiveProfilingEntry,\n },\n {\n slotId: 'org.openedx.frontend.slot.learnerDashboard.noCoursesView.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.noCoursesView.v1',\n op: WidgetOperationTypes.PREPEND,\n component: NoCoursesView,\n },\n {\n slotId: 'org.openedx.frontend.slot.learnerDashboard.enterpriseDashboardModal.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.enterpriseDashboardModal.v1',\n op: WidgetOperationTypes.PREPEND,\n component: EnterpriseDashboardModalWrapper,\n },\n {\n slotId: 'org.openedx.frontend.slot.learnerDashboard.userDashboardMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.userDashboardMenu.v1',\n op: WidgetOperationTypes.PREPEND,\n component: UserDashboardMenu,\n },\n {\n slotId: 'org.openedx.frontend.slot.learnerDashboard.courseBanner.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.courseBanner.v1',\n op: WidgetOperationTypes.PREPEND,\n component: CourseBanner,\n },\n {\n slotId: 'org.openedx.frontend.slot.learnerDashboard.cohesionWrapper.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.cohesionWrapper.v1',\n op: WidgetOperationTypes.PREPEND,\n component: CohesionWrapper,\n },\n {\n slotId: 'org.openedx.frontend.slot.learnerDashboard.chatbot.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.chatbot.v1',\n op: WidgetOperationTypes.PREPEND,\n component: HelpChatbot,\n },\n {\n slotId: 'org.openedx.frontend.slot.learnerDashboard.careerMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.careerMenu.v1',\n op: WidgetOperationTypes.PREPEND,\n component: UserCareerMenu,\n },\n {\n slotId: 'org.openedx.frontend.slot.learnerDashboard.optimizelyExperiment.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.optimizelyExperiment.v1',\n op: WidgetOperationTypes.PREPEND,\n component: useNoticesRedirectData,\n },\n ],\n};\n\nexport default app;\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getAppConfig, useIntl } from '@openedx/frontend-base';
|
|
3
|
+
import { Badge, breakpoints, Dropdown, useWindowSize, } from '@openedx/paragon';
|
|
4
|
+
import _ from 'lodash';
|
|
5
|
+
import { useInitializeLearnerHome } from '../../../data/hooks';
|
|
6
|
+
import messages from './messages';
|
|
7
|
+
const UserCareerMenu = () => {
|
|
8
|
+
const { formatMessage } = useIntl();
|
|
9
|
+
const { width } = useWindowSize();
|
|
10
|
+
const { data } = useInitializeLearnerHome();
|
|
11
|
+
const dashboard = (data === null || data === void 0 ? void 0 : data.enterpriseDashboard) || {};
|
|
12
|
+
const isMobile = width <= breakpoints.small.maxWidth;
|
|
13
|
+
if (_.isEmpty(dashboard) && getAppConfig().CAREER_LINK_URL) {
|
|
14
|
+
if (!isMobile) {
|
|
15
|
+
return (_jsxs(Dropdown.Item, { href: `${getAppConfig().CAREER_LINK_URL}`, children: [formatMessage(messages.career), _jsx(Badge, { className: "px-2 mx-2", variant: "warning", children: formatMessage(messages.newAlert) })] }, "item-career"));
|
|
16
|
+
}
|
|
17
|
+
return (_jsx("li", { className: "nav-item", children: _jsxs("a", { href: `${getAppConfig().CAREER_LINK_URL}`, className: "nav-link", children: [formatMessage(messages.career), _jsx(Badge, { className: "px-2 mx-2", variant: "warning", children: formatMessage(messages.newAlert) })] }) }, "item-career"));
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
};
|
|
21
|
+
export default UserCareerMenu;
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/career-menu/index.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EACL,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,GAC5C,MAAM,kBAAkB,CAAC;AAE1B,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,EAAE,IAAI,EAAE,GAAG,wBAAwB,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,KAAI,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;IAErD,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,YAAY,EAAE,CAAC,eAAe,EAAE,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CACL,MAAC,QAAQ,CAAC,IAAI,IAAC,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC,eAAe,EAAE,aACrD,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC/B,KAAC,KAAK,IAAC,SAAS,EAAC,WAAW,EAAC,OAAO,EAAC,SAAS,YAC3C,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAC3B,KAJoD,aAAa,CAK3D,CACjB,CAAC;QACJ,CAAC;QAED,OAAO,CACL,aAAI,SAAS,EAAC,UAAU,YACtB,aAAG,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC,eAAe,EAAE,EAAE,SAAS,EAAC,UAAU,aAC/D,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC/B,KAAC,KAAK,IAAC,SAAS,EAAC,WAAW,EAAC,OAAO,EAAC,SAAS,YAC3C,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAC3B,IACN,IANuB,aAAa,CAOrC,CACN,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["import { getAppConfig, useIntl } from '@openedx/frontend-base';\nimport {\n Badge, breakpoints, Dropdown, useWindowSize,\n} from '@openedx/paragon';\n\nimport _ from 'lodash';\n\nimport { useInitializeLearnerHome } from '@src/data/hooks';\nimport messages from './messages';\n\nconst UserCareerMenu = () => {\n const { formatMessage } = useIntl();\n const { width } = useWindowSize();\n const { data } = useInitializeLearnerHome();\n const dashboard = data?.enterpriseDashboard || {};\n const isMobile = width <= breakpoints.small.maxWidth;\n\n if (_.isEmpty(dashboard) && getAppConfig().CAREER_LINK_URL) {\n if (!isMobile) {\n return (\n <Dropdown.Item href={`${getAppConfig().CAREER_LINK_URL}`} key=\"item-career\">\n {formatMessage(messages.career)}\n <Badge className=\"px-2 mx-2\" variant=\"warning\">\n {formatMessage(messages.newAlert)}\n </Badge>\n </Dropdown.Item>\n );\n }\n\n return (\n <li className=\"nav-item\" key=\"item-career\">\n <a href={`${getAppConfig().CAREER_LINK_URL}`} className=\"nav-link\">\n {formatMessage(messages.career)}\n <Badge className=\"px-2 mx-2\" variant=\"warning\">\n {formatMessage(messages.newAlert)}\n </Badge>\n </a>\n </li>\n );\n }\n return null;\n};\n\nexport default UserCareerMenu;\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default messages;
|
|
2
|
+
declare namespace messages {
|
|
3
|
+
namespace career {
|
|
4
|
+
let id: string;
|
|
5
|
+
let defaultMessage: string;
|
|
6
|
+
let description: string;
|
|
7
|
+
}
|
|
8
|
+
namespace newAlert {
|
|
9
|
+
let id_1: string;
|
|
10
|
+
export { id_1 as id };
|
|
11
|
+
let defaultMessage_1: string;
|
|
12
|
+
export { defaultMessage_1 as defaultMessage };
|
|
13
|
+
let description_1: string;
|
|
14
|
+
export { description_1 as description };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { defineMessages } from '@openedx/frontend-base';
|
|
2
|
+
const messages = defineMessages({
|
|
3
|
+
career: {
|
|
4
|
+
id: 'leanerDashboard.menu.career.label',
|
|
5
|
+
defaultMessage: 'Career',
|
|
6
|
+
description: 'The text for the user menu Career navigation link.',
|
|
7
|
+
},
|
|
8
|
+
newAlert: {
|
|
9
|
+
id: 'header.menu.new.label',
|
|
10
|
+
defaultMessage: 'New',
|
|
11
|
+
description: 'The text announcing that an item in the user menu is New',
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
export default messages;
|
|
15
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/career-menu/messages.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC9B,MAAM,EAAE;QACN,EAAE,EAAE,mCAAmC;QACvC,cAAc,EAAE,QAAQ;QACxB,WAAW,EAAE,oDAAoD;KAClE;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,uBAAuB;QAC3B,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE,0DAA0D;KACxE;CACF,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\nconst messages = defineMessages({\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"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
import { FIVE9_CHATBOT_CSS, FIVE9_CHATBOT_JS, XPERT_KEY } from './data/five9';
|
|
3
|
+
const HelpChatbot = () => {
|
|
4
|
+
const [isBotLoaded, setBotLoaded] = useState(false);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
if (isBotLoaded) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
const body = document.getElementsByTagName('body')[0];
|
|
10
|
+
window.XpertChatbotFrontend = {};
|
|
11
|
+
window.XpertChatbotFrontend.clientId = XPERT_KEY;
|
|
12
|
+
const link = document.createElement('link');
|
|
13
|
+
link.rel = 'stylesheet';
|
|
14
|
+
link.href = FIVE9_CHATBOT_CSS;
|
|
15
|
+
const script = document.createElement('script');
|
|
16
|
+
script.src = FIVE9_CHATBOT_JS;
|
|
17
|
+
script.defer = true;
|
|
18
|
+
body.appendChild(link);
|
|
19
|
+
body.appendChild(script);
|
|
20
|
+
setBotLoaded(true);
|
|
21
|
+
}, [isBotLoaded]);
|
|
22
|
+
return null;
|
|
23
|
+
};
|
|
24
|
+
export default HelpChatbot;
|
|
25
|
+
//# sourceMappingURL=HelpChatbot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpChatbot.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/chatbot/HelpChatbot.jsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9E,MAAM,WAAW,GAAG,GAAG,EAAE;IACvB,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtD,MAAM,CAAC,oBAAoB,GAAG,EAAE,CAAC;QACjC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,GAAG,SAAS,CAAC;QAEjD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAE9B,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,gBAAgB,CAAC;QAC9B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["import { useState, useEffect } from 'react';\nimport { FIVE9_CHATBOT_CSS, FIVE9_CHATBOT_JS, XPERT_KEY } from './data/five9';\n\nconst HelpChatbot = () => {\n const [isBotLoaded, setBotLoaded] = useState(false);\n\n useEffect(() => {\n if (isBotLoaded) {\n return;\n }\n\n const body = document.getElementsByTagName('body')[0];\n\n window.XpertChatbotFrontend = {};\n window.XpertChatbotFrontend.clientId = XPERT_KEY;\n\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = FIVE9_CHATBOT_CSS;\n\n const script = document.createElement('script');\n script.src = FIVE9_CHATBOT_JS;\n script.defer = true;\n\n body.appendChild(link);\n body.appendChild(script);\n setBotLoaded(true);\n }, [isBotLoaded]);\n return null;\n};\n\nexport default HelpChatbot;\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const XPERT_KEY = 'edx-gs';
|
|
2
|
+
const FIVE9_CHATBOT_JS = 'https://chatbot-frontend.prod.ai.2u.com/@latest/index.min.js';
|
|
3
|
+
const FIVE9_CHATBOT_CSS = 'https://chatbot-frontend.prod.ai.2u.com/@latest/index.min.css';
|
|
4
|
+
export { XPERT_KEY, FIVE9_CHATBOT_JS, FIVE9_CHATBOT_CSS, };
|
|
5
|
+
//# sourceMappingURL=five9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"five9.js","sourceRoot":"","sources":["../../../../../src/widgets/LearnerDashboardPlugins/chatbot/data/five9.js"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,MAAM,gBAAgB,GAAG,8DAA8D,CAAC;AACxF,MAAM,iBAAiB,GAAG,+DAA+D,CAAC;AAE1F,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,iBAAiB,GAClB,CAAC","sourcesContent":["const XPERT_KEY = 'edx-gs';\nconst FIVE9_CHATBOT_JS = 'https://chatbot-frontend.prod.ai.2u.com/@latest/index.min.js';\nconst FIVE9_CHATBOT_CSS = 'https://chatbot-frontend.prod.ai.2u.com/@latest/index.min.css';\n\nexport {\n XPERT_KEY,\n FIVE9_CHATBOT_JS,\n FIVE9_CHATBOT_CSS,\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/chatbot/index.jsx"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,eAAe,WAAW,CAAC","sourcesContent":["import HelpChatbot from './HelpChatbot';\n\nexport default HelpChatbot;\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
import { logError, logInfo } from '@openedx/frontend-base';
|
|
3
|
+
const CohesionWrapper = () => {
|
|
4
|
+
const [isLoaded, setLoaded] = useState(false);
|
|
5
|
+
// set pageType value
|
|
6
|
+
window.chsn_pageType = 'lms-homepage';
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
if (isLoaded) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const head = document.getElementsByTagName('head')[0];
|
|
12
|
+
const script = document.createElement('script');
|
|
13
|
+
script.src = 'https://www.edx.org/beam-wrapper.js';
|
|
14
|
+
script.dataset.testId = 'cohesion-test';
|
|
15
|
+
script.onload = () => {
|
|
16
|
+
if (window.tagular && typeof window.tagular === 'function') {
|
|
17
|
+
logInfo('Cohesion script loaded successfully!');
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
// in the case that the script successfully loaded but tagular is still not found
|
|
21
|
+
logError('window.tagular not found after Cohesion script load.');
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
script.onerror = (e) => {
|
|
25
|
+
logError('Cohesion script failed to load', e);
|
|
26
|
+
};
|
|
27
|
+
head.appendChild(script);
|
|
28
|
+
setLoaded(true);
|
|
29
|
+
}, [isLoaded]);
|
|
30
|
+
return null;
|
|
31
|
+
};
|
|
32
|
+
export default CohesionWrapper;
|
|
33
|
+
//# sourceMappingURL=CohesionWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CohesionWrapper.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/cohesion-wrapper/CohesionWrapper.jsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,qBAAqB;IACrB,MAAM,CAAC,aAAa,GAAG,cAAc,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,qCAAqC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC;QAExC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;YACnB,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3D,OAAO,CAAC,sCAAsC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,iFAAiF;gBACjF,QAAQ,CAAC,sDAAsD,CAAC,CAAC;YACnE,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE;YACrB,QAAQ,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,SAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["import { useState, useEffect } from 'react';\nimport { logError, logInfo } from '@openedx/frontend-base';\n\nconst CohesionWrapper = () => {\n const [isLoaded, setLoaded] = useState(false);\n\n // set pageType value\n window.chsn_pageType = 'lms-homepage';\n\n useEffect(() => {\n if (isLoaded) {\n return;\n }\n\n const head = document.getElementsByTagName('head')[0];\n const script = document.createElement('script');\n script.src = 'https://www.edx.org/beam-wrapper.js';\n script.dataset.testId = 'cohesion-test';\n\n script.onload = () => {\n if (window.tagular && typeof window.tagular === 'function') {\n logInfo('Cohesion script loaded successfully!');\n } else {\n // in the case that the script successfully loaded but tagular is still not found\n logError('window.tagular not found after Cohesion script load.');\n }\n };\n\n script.onerror = (e) => {\n logError('Cohesion script failed to load', e);\n };\n\n head.appendChild(script);\n setLoaded(true);\n }, [isLoaded]);\n\n return null;\n};\n\nexport default CohesionWrapper;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/cohesion-wrapper/index.jsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,eAAe,eAAe,CAAC","sourcesContent":["import CohesionWrapper from './CohesionWrapper';\n\nexport default CohesionWrapper;\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function Banner({ children, variant, icon, className, }: {
|
|
2
|
+
children: any;
|
|
3
|
+
variant: any;
|
|
4
|
+
icon: any;
|
|
5
|
+
className: any;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export namespace Banner {
|
|
8
|
+
namespace defaultProps {
|
|
9
|
+
export { Info as icon };
|
|
10
|
+
export let variant: string;
|
|
11
|
+
export let className: string;
|
|
12
|
+
}
|
|
13
|
+
namespace propTypes {
|
|
14
|
+
let variant_1: PropTypes.Requireable<string>;
|
|
15
|
+
export { variant_1 as variant };
|
|
16
|
+
export let icon: PropTypes.Requireable<(...args: any[]) => any>;
|
|
17
|
+
export let children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
|
|
18
|
+
let className_1: PropTypes.Requireable<string>;
|
|
19
|
+
export { className_1 as className };
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export default Banner;
|
|
23
|
+
import { Info } from '@openedx/paragon/icons';
|
|
24
|
+
import PropTypes from 'prop-types';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import { Alert } from '@openedx/paragon';
|
|
5
|
+
import { Info } from '@openedx/paragon/icons';
|
|
6
|
+
export const Banner = ({ children, variant, icon, className, }) => (_jsx(Alert, { variant: variant, className: className, icon: icon, children: children }));
|
|
7
|
+
Banner.defaultProps = {
|
|
8
|
+
icon: Info,
|
|
9
|
+
variant: 'info',
|
|
10
|
+
className: 'mb-0',
|
|
11
|
+
};
|
|
12
|
+
Banner.propTypes = {
|
|
13
|
+
variant: PropTypes.string,
|
|
14
|
+
icon: PropTypes.func,
|
|
15
|
+
children: PropTypes.node.isRequired,
|
|
16
|
+
className: PropTypes.string,
|
|
17
|
+
};
|
|
18
|
+
export default Banner;
|
|
19
|
+
//# sourceMappingURL=Banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/course-banner/Banner.jsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EACrB,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GACnC,EAAE,EAAE,CAAC,CACJ,KAAC,KAAK,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,YACtD,QAAQ,GACH,CACT,CAAC;AACF,MAAM,CAAC,YAAY,GAAG;IACpB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,MAAM;CAClB,CAAC;AACF,MAAM,CAAC,SAAS,GAAG;IACjB,OAAO,EAAE,SAAS,CAAC,MAAM;IACzB,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;IACnC,SAAS,EAAE,SAAS,CAAC,MAAM;CAC5B,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Alert } from '@openedx/paragon';\nimport { Info } from '@openedx/paragon/icons';\n\nexport const Banner = ({\n children, variant, icon, className,\n}) => (\n <Alert variant={variant} className={className} icon={icon}>\n {children}\n </Alert>\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"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default CourseBanner;
|
|
2
|
+
declare function CourseBanner({ cardId }: {
|
|
3
|
+
cardId: any;
|
|
4
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
5
|
+
declare namespace CourseBanner {
|
|
6
|
+
namespace propTypes {
|
|
7
|
+
let cardId: PropTypes.Validator<string>;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
import PropTypes from 'prop-types';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable import/no-named-as-default-member */
|
|
3
|
+
/* eslint-disable import/no-named-as-default */
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import { Hyperlink } from '@openedx/paragon';
|
|
7
|
+
import { useIntl } from '@openedx/frontend-base';
|
|
8
|
+
import { useFormatDate } from './formatDate';
|
|
9
|
+
import Banner from './Banner';
|
|
10
|
+
import messages from './messages';
|
|
11
|
+
import { useCourseData } from '../../../hooks';
|
|
12
|
+
const CourseBanner = ({ cardId }) => {
|
|
13
|
+
const courseData = useCourseData(cardId);
|
|
14
|
+
const { isVerified, isAuditAccessExpired, canUpgrade, coursewareAccess = {}, } = (courseData === null || courseData === void 0 ? void 0 : courseData.enrollment) || {};
|
|
15
|
+
const courseRun = (courseData === null || courseData === void 0 ? void 0 : courseData.courseRun) || {};
|
|
16
|
+
const { formatMessage } = useIntl();
|
|
17
|
+
const formatDate = useFormatDate();
|
|
18
|
+
const { hasUnmetPrerequisites, isStaff, isTooEarly } = coursewareAccess;
|
|
19
|
+
if (isVerified) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return (_jsxs(_Fragment, { children: [isAuditAccessExpired
|
|
23
|
+
&& (canUpgrade ? (_jsxs(Banner, { children: [formatMessage(messages.auditAccessExpired), ' ', formatMessage(messages.upgradeToAccess)] })) : (_jsxs(Banner, { children: [formatMessage(messages.auditAccessExpired), ' ', _jsx(Hyperlink, { isInline: true, destination: "", children: formatMessage(messages.findAnotherCourse) })] }))), courseRun.isStarted && !courseRun.isArchived && !canUpgrade && (_jsxs(Banner, { children: [formatMessage(messages.upgradeDeadlinePassed), ' ', _jsx(Hyperlink, { isInline: true, destination: courseRun.marketingUrl || '', children: formatMessage(messages.exploreCourseDetails) })] })), (!isStaff && isTooEarly && courseRun.startDate) && (_jsx(Banner, { children: formatMessage(messages.courseHasNotStarted, {
|
|
24
|
+
startDate: formatDate(courseRun.startDate),
|
|
25
|
+
}) })), (!isStaff && hasUnmetPrerequisites) && (_jsx(Banner, { children: formatMessage(messages.prerequisitesNotMet) }))] }));
|
|
26
|
+
};
|
|
27
|
+
CourseBanner.propTypes = {
|
|
28
|
+
cardId: PropTypes.string.isRequired,
|
|
29
|
+
};
|
|
30
|
+
export default CourseBanner;
|
|
31
|
+
//# sourceMappingURL=CourseBanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CourseBanner.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/course-banner/CourseBanner.jsx"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,+CAA+C;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAClC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EACJ,UAAU,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,GAAG,EAAE,GACtB,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,KAAI,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,KAAI,EAAE,CAAC;IAC9C,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC;IAExE,IAAI,UAAU,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAEhC,OAAO,CACL,8BACG,oBAAoB;mBAChB,CAAC,UAAU,CAAC,CAAC,CAAC,CACf,MAAC,MAAM,eACJ,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAC1C,IAAI,EACJ,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,IACjC,CACV,CAAC,CAAC,CAAC,CACF,MAAC,MAAM,eACJ,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAC1C,IAAI,EACL,KAAC,SAAS,IAAC,QAAQ,QAAC,WAAW,EAAC,EAAE,YAC/B,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAChC,IACL,CACV,CAAC,EAEH,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,UAAU,IAAI,CAC9D,MAAC,MAAM,eACJ,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAC7C,IAAI,EACL,KAAC,SAAS,IAAC,QAAQ,QAAC,WAAW,EAAE,SAAS,CAAC,YAAY,IAAI,EAAE,YAC1D,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GACnC,IACL,CACV,EAEA,CAAC,CAAC,OAAO,IAAI,UAAU,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,CAClD,KAAC,MAAM,cACJ,aAAa,CAAC,QAAQ,CAAC,mBAAmB,EAAE;oBAC3C,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;iBAC3C,CAAC,GACK,CACV,EACA,CAAC,CAAC,OAAO,IAAI,qBAAqB,CAAC,IAAI,CACtC,KAAC,MAAM,cAAE,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,GAAU,CAC/D,IACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,YAAY,CAAC,SAAS,GAAG;IACvB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;CACpC,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["/* eslint-disable import/no-named-as-default-member */\n/* eslint-disable import/no-named-as-default */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Hyperlink } from '@openedx/paragon';\nimport { useIntl } from '@openedx/frontend-base';\nimport { useFormatDate } from './formatDate';\nimport Banner from './Banner';\nimport messages from './messages';\nimport { useCourseData } from '@src/hooks';\n\nconst CourseBanner = ({ cardId }) => {\n const courseData = useCourseData(cardId);\n const {\n isVerified,\n isAuditAccessExpired,\n canUpgrade,\n coursewareAccess = {},\n } = courseData?.enrollment || {};\n const courseRun = courseData?.courseRun || {};\n const { formatMessage } = useIntl();\n const formatDate = useFormatDate();\n\n const { hasUnmetPrerequisites, isStaff, isTooEarly } = coursewareAccess;\n\n if (isVerified) { return null; }\n\n return (\n <>\n {isAuditAccessExpired\n && (canUpgrade ? (\n <Banner>\n {formatMessage(messages.auditAccessExpired)}\n {' '}\n {formatMessage(messages.upgradeToAccess)}\n </Banner>\n ) : (\n <Banner>\n {formatMessage(messages.auditAccessExpired)}\n {' '}\n <Hyperlink isInline destination=\"\">\n {formatMessage(messages.findAnotherCourse)}\n </Hyperlink>\n </Banner>\n ))}\n\n {courseRun.isStarted && !courseRun.isArchived && !canUpgrade && (\n <Banner>\n {formatMessage(messages.upgradeDeadlinePassed)}\n {' '}\n <Hyperlink isInline destination={courseRun.marketingUrl || ''}>\n {formatMessage(messages.exploreCourseDetails)}\n </Hyperlink>\n </Banner>\n )}\n\n {(!isStaff && isTooEarly && courseRun.startDate) && (\n <Banner>\n {formatMessage(messages.courseHasNotStarted, {\n startDate: formatDate(courseRun.startDate),\n })}\n </Banner>\n )}\n {(!isStaff && hasUnmetPrerequisites) && (\n <Banner>{formatMessage(messages.prerequisitesNotMet)}</Banner>\n )}\n </>\n );\n};\n\nCourseBanner.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default CourseBanner;\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
import { useIntl } from '@openedx/frontend-base';
|
|
3
|
+
export const dateFormatter = (formatDate, date) => formatDate(moment(date).toDate(), {
|
|
4
|
+
year: 'numeric',
|
|
5
|
+
month: 'long',
|
|
6
|
+
day: 'numeric',
|
|
7
|
+
});
|
|
8
|
+
// Hook
|
|
9
|
+
export const useFormatDate = () => {
|
|
10
|
+
const { formatDate } = useIntl();
|
|
11
|
+
return (date) => dateFormatter(formatDate, date);
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=formatDate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatDate.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/course-banner/formatDate.js"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;IACnF,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,SAAS;CACf,CAAC,CAAC;AAEH,OAAO;AACP,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,CAAC;IACjC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC,CAAC","sourcesContent":["import moment from 'moment';\nimport { useIntl } from '@openedx/frontend-base';\n\nexport const dateFormatter = (formatDate, date) => formatDate(moment(date).toDate(), {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n});\n\n// Hook\nexport const useFormatDate = () => {\n const { formatDate } = useIntl();\n return (date) => dateFormatter(formatDate, date);\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/course-banner/index.jsx"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,eAAe,YAAY,CAAC","sourcesContent":["import CourseBanner from './CourseBanner';\n\nexport default CourseBanner;\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export default messages;
|
|
2
|
+
declare namespace messages {
|
|
3
|
+
namespace auditAccessExpired {
|
|
4
|
+
let id: string;
|
|
5
|
+
let description: string;
|
|
6
|
+
let defaultMessage: string;
|
|
7
|
+
}
|
|
8
|
+
namespace upgradeToAccess {
|
|
9
|
+
let id_1: string;
|
|
10
|
+
export { id_1 as id };
|
|
11
|
+
let description_1: string;
|
|
12
|
+
export { description_1 as description };
|
|
13
|
+
let defaultMessage_1: string;
|
|
14
|
+
export { defaultMessage_1 as defaultMessage };
|
|
15
|
+
}
|
|
16
|
+
namespace findAnotherCourse {
|
|
17
|
+
let id_2: string;
|
|
18
|
+
export { id_2 as id };
|
|
19
|
+
let description_2: string;
|
|
20
|
+
export { description_2 as description };
|
|
21
|
+
let defaultMessage_2: string;
|
|
22
|
+
export { defaultMessage_2 as defaultMessage };
|
|
23
|
+
}
|
|
24
|
+
namespace upgradeDeadlinePassed {
|
|
25
|
+
let id_3: string;
|
|
26
|
+
export { id_3 as id };
|
|
27
|
+
let description_3: string;
|
|
28
|
+
export { description_3 as description };
|
|
29
|
+
let defaultMessage_3: string;
|
|
30
|
+
export { defaultMessage_3 as defaultMessage };
|
|
31
|
+
}
|
|
32
|
+
namespace exploreCourseDetails {
|
|
33
|
+
let id_4: string;
|
|
34
|
+
export { id_4 as id };
|
|
35
|
+
let description_4: string;
|
|
36
|
+
export { description_4 as description };
|
|
37
|
+
let defaultMessage_4: string;
|
|
38
|
+
export { defaultMessage_4 as defaultMessage };
|
|
39
|
+
}
|
|
40
|
+
namespace prerequisitesNotMet {
|
|
41
|
+
let id_5: string;
|
|
42
|
+
export { id_5 as id };
|
|
43
|
+
let description_5: string;
|
|
44
|
+
export { description_5 as description };
|
|
45
|
+
let defaultMessage_5: string;
|
|
46
|
+
export { defaultMessage_5 as defaultMessage };
|
|
47
|
+
}
|
|
48
|
+
namespace courseHasNotStarted {
|
|
49
|
+
let id_6: string;
|
|
50
|
+
export { id_6 as id };
|
|
51
|
+
let description_6: string;
|
|
52
|
+
export { description_6 as description };
|
|
53
|
+
let defaultMessage_6: string;
|
|
54
|
+
export { defaultMessage_6 as defaultMessage };
|
|
55
|
+
}
|
|
56
|
+
}
|