@edx/frontend-app-learner-dashboard 1.1.0 → 1.2.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.
Files changed (36) hide show
  1. package/dist/slots.js +3 -1
  2. package/dist/slots.js.map +1 -1
  3. package/dist/widgets/LearnerDashboardPlugins/app.d.ts +3 -0
  4. package/dist/widgets/LearnerDashboardPlugins/app.js +15 -0
  5. package/dist/widgets/LearnerDashboardPlugins/app.js.map +1 -0
  6. package/dist/widgets/LearnerDashboardPlugins/index.d.ts +2 -0
  7. package/dist/widgets/LearnerDashboardPlugins/index.js +3 -0
  8. package/dist/widgets/LearnerDashboardPlugins/index.js.map +1 -0
  9. package/dist/widgets/LearnerDashboardPlugins/tracking/constants.d.ts +17 -0
  10. package/dist/widgets/LearnerDashboardPlugins/tracking/constants.js +20 -0
  11. package/dist/widgets/LearnerDashboardPlugins/tracking/constants.js.map +1 -0
  12. package/dist/widgets/LearnerDashboardPlugins/tracking/cookie.d.ts +2 -0
  13. package/dist/widgets/LearnerDashboardPlugins/tracking/cookie.js +14 -0
  14. package/dist/widgets/LearnerDashboardPlugins/tracking/cookie.js.map +1 -0
  15. package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/upgradeButton.d.ts +1 -0
  16. package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/upgradeButton.js +53 -0
  17. package/dist/widgets/LearnerDashboardPlugins/tracking/trackers/upgradeButton.js.map +1 -0
  18. package/dist/widgets/LearnerDashboardPlugins/tracking/utils.d.ts +8 -0
  19. package/dist/widgets/LearnerDashboardPlugins/tracking/utils.js +28 -0
  20. package/dist/widgets/LearnerDashboardPlugins/tracking/utils.js.map +1 -0
  21. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/UpgradeButton.d.ts +10 -0
  22. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/UpgradeButton.js +33 -0
  23. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/UpgradeButton.js.map +1 -0
  24. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/UpgradeButtonWrapper.d.ts +10 -0
  25. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/UpgradeButtonWrapper.js +21 -0
  26. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/UpgradeButtonWrapper.js.map +1 -0
  27. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/data/hooks.d.ts +4 -0
  28. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/data/hooks.js +17 -0
  29. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/data/hooks.js.map +1 -0
  30. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/index.d.ts +2 -0
  31. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/index.js +3 -0
  32. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/index.js.map +1 -0
  33. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/messages.d.ts +8 -0
  34. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/messages.js +10 -0
  35. package/dist/widgets/LearnerDashboardPlugins/upgrade-button/messages.js.map +1 -0
  36. package/package.json +1 -1
package/dist/slots.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { learnerDashboardHeaderApp } from './widgets/LearnerDashboardHeader';
2
+ import { learnerDashboardPlugins } from './widgets/LearnerDashboardPlugins';
2
3
  const slots = [
3
- ...learnerDashboardHeaderApp.slots
4
+ ...learnerDashboardHeaderApp.slots,
5
+ ...learnerDashboardPlugins.slots,
4
6
  ];
5
7
  export default slots;
6
8
  //# sourceMappingURL=slots.js.map
package/dist/slots.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"slots.js","sourceRoot":"","sources":["../src/slots.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,MAAM,KAAK,GAAoB;IAC7B,GAAI,yBAAyB,CAAC,KAAY;CAC3C,CAAC;AAEF,eAAe,KAAK,CAAC","sourcesContent":["import { SlotOperation } from '@openedx/frontend-base';\n\nimport { learnerDashboardHeaderApp } from './widgets/LearnerDashboardHeader';\n\nconst slots: SlotOperation[] = [\n ...(learnerDashboardHeaderApp.slots as [])\n];\n\nexport default slots;\n"]}
1
+ {"version":3,"file":"slots.js","sourceRoot":"","sources":["../src/slots.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,MAAM,KAAK,GAAoB;IAC7B,GAAI,yBAAyB,CAAC,KAAY;IAC1C,GAAI,uBAAuB,CAAC,KAAY;CACzC,CAAC;AAEF,eAAe,KAAK,CAAC","sourcesContent":["import { SlotOperation } from '@openedx/frontend-base';\n\nimport { learnerDashboardHeaderApp } from './widgets/LearnerDashboardHeader';\nimport { learnerDashboardPlugins } from './widgets/LearnerDashboardPlugins';\n\nconst slots: SlotOperation[] = [\n ...(learnerDashboardHeaderApp.slots as []),\n ...(learnerDashboardPlugins.slots as []),\n];\n\nexport default slots;\n"]}
@@ -0,0 +1,3 @@
1
+ import { App } from '@openedx/frontend-base';
2
+ declare const app: App;
3
+ export default app;
@@ -0,0 +1,15 @@
1
+ import { WidgetOperationTypes } from '@openedx/frontend-base';
2
+ import UpgradeButton from './upgrade-button/UpgradeButton';
3
+ const app = {
4
+ appId: 'org.openedx.frontend.app.learnerDashboard.plugins',
5
+ slots: [
6
+ {
7
+ slotId: 'org.openedx.frontend.slot.learnerDashboard.courseCardAction.v1',
8
+ id: 'org.openedx.frontend.widget.learnerDashboard.upgradeButton.v1',
9
+ op: WidgetOperationTypes.PREPEND,
10
+ component: UpgradeButton,
11
+ },
12
+ ],
13
+ };
14
+ export default app;
15
+ //# sourceMappingURL=app.js.map
@@ -0,0 +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;AAE3D,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;KACF;CACF,CAAC;AAEF,eAAe,GAAG,CAAC","sourcesContent":["import { App, WidgetOperationTypes } from '@openedx/frontend-base';\n\nimport UpgradeButton from './upgrade-button/UpgradeButton';\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};\n\nexport default app;\n"]}
@@ -0,0 +1,2 @@
1
+ export { default as UpgradeButton } from "./upgrade-button";
2
+ export { default as learnerDashboardPlugins } from "./app";
@@ -0,0 +1,3 @@
1
+ export { default as UpgradeButton } from './upgrade-button';
2
+ export { default as learnerDashboardPlugins } from './app';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardPlugins/index.jsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,OAAO,CAAC","sourcesContent":["export { default as UpgradeButton } from './upgrade-button';\nexport { default as learnerDashboardPlugins } from './app';\n"]}
@@ -0,0 +1,17 @@
1
+ export const LEARNER_HOME_APP_NAME: "learner-home";
2
+ export namespace eventNames {
3
+ let dashboardModalOpened: string;
4
+ let dashboardModalCTAClicked: string;
5
+ let dashboardModalClosed: string;
6
+ let upgradeButtonClicked: string;
7
+ let upgradeButtonClickedEnrollment: string;
8
+ let upgradeButtonClickedUpsell: string;
9
+ }
10
+ export namespace categories {
11
+ let upgrade: string;
12
+ }
13
+ export const BUTTON_ELEMENT_TYPE: "BUTTON";
14
+ export const LOCATION_LEARNER_HOME: "learner-home-legacy";
15
+ export const EXPLORE_COURSES_HTML_ID: "explore-courses";
16
+ export const EXPLORE_COURSES_EVENT_NAME: "explore-courses-LD-cta";
17
+ export const EXPLORE_COURSES_EVENT_TEXT: "Explore courses";
@@ -0,0 +1,20 @@
1
+ export const LEARNER_HOME_APP_NAME = 'learner-home';
2
+ const learnerPortal = 'edx.ui.enterprise.lms.dashboard.learner_portal_modal';
3
+ export const eventNames = {
4
+ dashboardModalOpened: `${learnerPortal}.opened`,
5
+ dashboardModalCTAClicked: `${learnerPortal}.dashboard_cta.clicked`,
6
+ dashboardModalClosed: `${learnerPortal}.closed`,
7
+ upgradeButtonClicked: 'edx.bi.dashboard.upgrade_button.clicked',
8
+ upgradeButtonClickedEnrollment: 'edx.course.enrollment.upgrade.clicked',
9
+ upgradeButtonClickedUpsell: 'edx.bi.ecommerce.upsell_links_clicked',
10
+ };
11
+ export const categories = {
12
+ upgrade: 'upgrade',
13
+ };
14
+ // Cohesion event properties
15
+ export const BUTTON_ELEMENT_TYPE = 'BUTTON';
16
+ export const LOCATION_LEARNER_HOME = 'learner-home-legacy';
17
+ export const EXPLORE_COURSES_HTML_ID = 'explore-courses';
18
+ export const EXPLORE_COURSES_EVENT_NAME = 'explore-courses-LD-cta';
19
+ export const EXPLORE_COURSES_EVENT_TEXT = 'Explore courses';
20
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/tracking/constants.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEpD,MAAM,aAAa,GAAG,sDAAsD,CAAC;AAE7E,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,oBAAoB,EAAE,GAAG,aAAa,SAAS;IAC/C,wBAAwB,EAAE,GAAG,aAAa,wBAAwB;IAClE,oBAAoB,EAAE,GAAG,aAAa,SAAS;IAC/C,oBAAoB,EAAE,yCAAyC;IAC/D,8BAA8B,EAAE,uCAAuC;IACvE,0BAA0B,EAAE,uCAAuC;CACpE,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AACzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AACnE,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC","sourcesContent":["export const LEARNER_HOME_APP_NAME = 'learner-home';\n\nconst learnerPortal = 'edx.ui.enterprise.lms.dashboard.learner_portal_modal';\n\nexport const eventNames = {\n dashboardModalOpened: `${learnerPortal}.opened`,\n dashboardModalCTAClicked: `${learnerPortal}.dashboard_cta.clicked`,\n dashboardModalClosed: `${learnerPortal}.closed`,\n upgradeButtonClicked: 'edx.bi.dashboard.upgrade_button.clicked',\n upgradeButtonClickedEnrollment: 'edx.course.enrollment.upgrade.clicked',\n upgradeButtonClickedUpsell: 'edx.bi.ecommerce.upsell_links_clicked',\n};\n\nexport const categories = {\n upgrade: 'upgrade',\n};\n\n// Cohesion event properties\nexport const BUTTON_ELEMENT_TYPE = 'BUTTON';\nexport const LOCATION_LEARNER_HOME = 'learner-home-legacy';\nexport const EXPLORE_COURSES_HTML_ID = 'explore-courses';\nexport const EXPLORE_COURSES_EVENT_NAME = 'explore-courses-LD-cta';\nexport const EXPLORE_COURSES_EVENT_TEXT = 'Explore courses';\n"]}
@@ -0,0 +1,2 @@
1
+ export function setCookie(cookieName: any, cookieValue: any): void;
2
+ export function handleCorrelationIDCookie(): `${string}-${string}-${string}-${string}-${string}`;
@@ -0,0 +1,14 @@
1
+ // general cookie setter, expires after 30 minutes
2
+ export function setCookie(cookieName, cookieValue) {
3
+ const a = new Date();
4
+ // set to expire after 30 minutes, or 1.8 million milliseconds
5
+ a.setTime(a.getTime() + 1800000);
6
+ document.cookie = `${cookieName}\x3d${cookieValue}; expires\x3d${a.toGMTString()}; path\x3d/; domain\x3d.edx.org;`;
7
+ }
8
+ export const handleCorrelationIDCookie = () => {
9
+ // set correlation ID to a random UUID
10
+ const correlationId = window.crypto.randomUUID();
11
+ setCookie('tglr_correlation_id', correlationId);
12
+ return correlationId;
13
+ };
14
+ //# sourceMappingURL=cookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/tracking/cookie.js"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,UAAU,SAAS,CAAC,UAAU,EAAE,WAAW;IAC/C,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,8DAA8D;IAC9D,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,MAAM,GAAG,GAAG,UAAU,OAAO,WAAW,gBAAgB,CAAC,CAAC,WAAW,EAAE,kCAAkC,CAAC;AACrH,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC5C,sCAAsC;IACtC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAEjD,SAAS,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;IAChD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC","sourcesContent":["// general cookie setter, expires after 30 minutes\nexport function setCookie(cookieName, cookieValue) {\n const a = new Date();\n // set to expire after 30 minutes, or 1.8 million milliseconds\n a.setTime(a.getTime() + 1800000);\n document.cookie = `${cookieName}\\x3d${cookieValue}; expires\\x3d${a.toGMTString()}; path\\x3d/; domain\\x3d.edx.org;`;\n}\n\nexport const handleCorrelationIDCookie = () => {\n // set correlation ID to a random UUID\n const correlationId = window.crypto.randomUUID();\n\n setCookie('tglr_correlation_id', correlationId);\n return correlationId;\n};\n"]}
@@ -0,0 +1 @@
1
+ export function upgradeClicked(courseId: any, org: any, courseName: any, href: any): (e: any) => number;
@@ -0,0 +1,53 @@
1
+ import { logError } from '@openedx/frontend-base';
2
+ import { logEvent, createEventTracker, createLinkTracker } from '../utils';
3
+ import { handleCorrelationIDCookie } from '../cookie';
4
+ import { eventNames, categories } from '../constants';
5
+ const upsellOptions = {
6
+ linkName: 'course_dashboard_green',
7
+ linkCategory: 'green_update',
8
+ };
9
+ const logUpgrade = ({ courseId }) => logEvent({
10
+ eventName: eventNames.upgradeButtonClickedEnrollment,
11
+ courseId,
12
+ data: { location: 'learner-dashboard' },
13
+ });
14
+ // Upgrade Events
15
+ /**
16
+ * There are currently multiple tracked api events for the upgrade event, with different targets.
17
+ * Goal here is to split out the tracked events for easier testing.
18
+ */
19
+ const upgradeButtonClicked = (courseId) => createEventTracker(eventNames.upgradeButtonClicked, { category: categories.upgrade, label: courseId });
20
+ const upgradeButtonClickedUpsell = (courseId) => createEventTracker(eventNames.upgradeButtonClickedUpsell, Object.assign(Object.assign({}, upsellOptions), { courseId }));
21
+ const upgradeButtonClickedCohesion = (org, courseName) => {
22
+ var _a;
23
+ const correlationId = handleCorrelationIDCookie();
24
+ const courseOrganization = org.toLowerCase();
25
+ if (window.tagular && typeof window.tagular === 'function') {
26
+ (_a = window.tagular) === null || _a === void 0 ? void 0 : _a.call(window, 'beam', {
27
+ '@type': 'core.conversions.ConversionTracked.v2',
28
+ correlation: {
29
+ id: correlationId,
30
+ },
31
+ metadata: {
32
+ category: 'Enrollment',
33
+ action: 'Upgraded',
34
+ timestamp: new Date().toISOString(),
35
+ productList: [{
36
+ brand: courseOrganization,
37
+ variant: 'courses',
38
+ name: courseName,
39
+ }],
40
+ },
41
+ });
42
+ }
43
+ else {
44
+ logError('Cohesion script failed to load before upgrade button clicked');
45
+ }
46
+ };
47
+ export const upgradeClicked = (courseId, org, courseName, href) => createLinkTracker(() => {
48
+ upgradeButtonClicked(courseId)();
49
+ upgradeButtonClickedUpsell(courseId)();
50
+ upgradeButtonClickedCohesion(org, courseName);
51
+ logUpgrade({ courseId });
52
+ }, href);
53
+ //# sourceMappingURL=upgradeButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgradeButton.js","sourceRoot":"","sources":["../../../../../src/widgets/LearnerDashboardPlugins/tracking/trackers/upgradeButton.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,aAAa,GAAG;IACpB,QAAQ,EAAE,wBAAwB;IAClC,YAAY,EAAE,cAAc;CAC7B,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC;IAC5C,SAAS,EAAE,UAAU,CAAC,8BAA8B;IACpD,QAAQ;IACR,IAAI,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE;CACxC,CAAC,CAAC;AAEH,iBAAiB;AACjB;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAC3D,UAAU,CAAC,oBAAoB,EAC/B,EAAE,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAClD,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CACjE,UAAU,CAAC,0BAA0B,kCAChC,aAAa,KAAE,QAAQ,IAC7B,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;;IACvD,MAAM,aAAa,GAAG,yBAAyB,EAAE,CAAC;IAClD,MAAM,kBAAkB,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAE7C,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3D,MAAA,MAAM,CAAC,OAAO,uDAAG,MAAM,EAAE;YACvB,OAAO,EAAE,uCAAuC;YAChD,WAAW,EAAE;gBACX,EAAE,EAAE,aAAa;aAClB;YACD,QAAQ,EAAE;gBACR,QAAQ,EAAE,YAAY;gBACtB,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,WAAW,EAAE,CAAC;wBACZ,KAAK,EAAE,kBAAkB;wBACzB,OAAO,EAAE,SAAS;wBAClB,IAAI,EAAE,UAAU;qBACjB,CAAC;aACH;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,8DAA8D,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAClF,GAAG,EAAE;IACH,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvC,4BAA4B,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC9C,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3B,CAAC,EACD,IAAI,CACL,CAAC","sourcesContent":["import { logError } from '@openedx/frontend-base';\nimport { logEvent, createEventTracker, createLinkTracker } from '../utils';\nimport { handleCorrelationIDCookie } from '../cookie';\nimport { eventNames, categories } from '../constants';\n\nconst upsellOptions = {\n linkName: 'course_dashboard_green',\n linkCategory: 'green_update',\n};\n\nconst logUpgrade = ({ courseId }) => logEvent({\n eventName: eventNames.upgradeButtonClickedEnrollment,\n courseId,\n data: { location: 'learner-dashboard' },\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 */\nconst upgradeButtonClicked = (courseId) => createEventTracker(\n eventNames.upgradeButtonClicked,\n { category: categories.upgrade, label: courseId },\n);\n\nconst upgradeButtonClickedUpsell = (courseId) => createEventTracker(\n eventNames.upgradeButtonClickedUpsell,\n { ...upsellOptions, courseId },\n);\n\nconst upgradeButtonClickedCohesion = (org, courseName) => {\n const correlationId = handleCorrelationIDCookie();\n const courseOrganization = org.toLowerCase();\n\n if (window.tagular && typeof window.tagular === 'function') {\n window.tagular?.('beam', {\n '@type': 'core.conversions.ConversionTracked.v2',\n correlation: {\n id: correlationId,\n },\n metadata: {\n category: 'Enrollment',\n action: 'Upgraded',\n timestamp: new Date().toISOString(),\n productList: [{\n brand: courseOrganization,\n variant: 'courses',\n name: courseName,\n }],\n },\n });\n } else {\n logError('Cohesion script failed to load before upgrade button clicked');\n }\n};\n\nexport const upgradeClicked = (courseId, org, courseName, href) => createLinkTracker(\n () => {\n upgradeButtonClicked(courseId)();\n upgradeButtonClickedUpsell(courseId)();\n upgradeButtonClickedCohesion(org, courseName);\n logUpgrade({ courseId });\n },\n href,\n);\n"]}
@@ -0,0 +1,8 @@
1
+ export function logEvent({ eventName, data, courseId }: {
2
+ eventName: any;
3
+ data: any;
4
+ courseId: any;
5
+ }): any;
6
+ export function createEventTracker(name: any, options?: {}): () => void;
7
+ export function createPageEventTracker(name: string, options?: object): Function;
8
+ export function createLinkTracker(tracker: any, href: any): (e: any) => number;
@@ -0,0 +1,28 @@
1
+ import { getSiteConfig, getAuthenticatedHttpClient, sendTrackEvent, sendPageEvent, } from '@openedx/frontend-base';
2
+ import { LEARNER_HOME_APP_NAME } from './constants';
3
+ const LINK_TIMEOUT = 300;
4
+ const eventUrl = `${getSiteConfig().LMS_BASE_URL}/event`;
5
+ // Utils/Helpers
6
+ export const logEvent = ({ eventName, data, courseId }) => getAuthenticatedHttpClient().post(eventUrl, {
7
+ courserun_key: courseId,
8
+ event_type: eventName,
9
+ page: window.location.href,
10
+ event: JSON.stringify(data),
11
+ });
12
+ export const createEventTracker = (name, options = {}) => () => sendTrackEvent(name, Object.assign(Object.assign({}, options), { app_name: LEARNER_HOME_APP_NAME }));
13
+ /**
14
+ * Creates an event tracker function that sends a tracking event with the given name and options.
15
+ *
16
+ * @param {string} name - The name of the event to be tracked.
17
+ * @param {object} [options={}] - Additional options to be included with the event.
18
+ * @returns {function} - A function that, when called, sends the tracking event.
19
+ */
20
+ export const createPageEventTracker = (name, options = null) => () => sendPageEvent(name, options, { app_name: LEARNER_HOME_APP_NAME });
21
+ export const createLinkTracker = (tracker, href) => (e) => {
22
+ e.preventDefault();
23
+ tracker();
24
+ return setTimeout(() => {
25
+ global.location.href = href;
26
+ }, LINK_TIMEOUT);
27
+ };
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/tracking/utils.js"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAAE,0BAA0B,EAAE,cAAc,EAAE,aAAa,GACzE,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,MAAM,QAAQ,GAAG,GAAG,aAAa,EAAE,CAAC,YAAY,QAAQ,CAAC;AAEzD,gBAAgB;AAChB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,0BAA0B,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;IACrG,aAAa,EAAE,QAAQ;IACvB,UAAU,EAAE,SAAS;IACrB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;IAC1B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,cAAc,CAC5E,IAAI,kCACC,OAAO,KAAE,QAAQ,EAAE,qBAAqB,IAC9C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CACjF,IAAI,EACJ,OAAO,EACP,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACxD,CAAC,CAAC,cAAc,EAAE,CAAC;IACnB,OAAO,EAAE,CAAC;IACV,OAAO,UAAU,CAAC,GAAG,EAAE;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC9B,CAAC,EAAE,YAAY,CAAC,CAAC;AACnB,CAAC,CAAC","sourcesContent":["import {\n getSiteConfig, getAuthenticatedHttpClient, sendTrackEvent, sendPageEvent,\n} from '@openedx/frontend-base';\nimport { LEARNER_HOME_APP_NAME } from './constants';\n\nconst LINK_TIMEOUT = 300;\n\nconst eventUrl = `${getSiteConfig().LMS_BASE_URL}/event`;\n\n// Utils/Helpers\nexport const logEvent = ({ eventName, data, courseId }) => getAuthenticatedHttpClient().post(eventUrl, {\n courserun_key: courseId,\n event_type: eventName,\n page: window.location.href,\n event: JSON.stringify(data),\n});\n\nexport const createEventTracker = (name, options = {}) => () => sendTrackEvent(\n name,\n { ...options, app_name: LEARNER_HOME_APP_NAME },\n);\n\n/**\n * Creates an event tracker function that sends a tracking event with the given name and options.\n *\n * @param {string} name - The name of the event to be tracked.\n * @param {object} [options={}] - Additional options to be included with the event.\n * @returns {function} - A function that, when called, sends the tracking event.\n */\nexport const createPageEventTracker = (name, options = null) => () => sendPageEvent(\n name,\n options,\n { app_name: LEARNER_HOME_APP_NAME },\n);\n\nexport const createLinkTracker = (tracker, href) => (e) => {\n e.preventDefault();\n tracker();\n return setTimeout(() => {\n global.location.href = href;\n }, LINK_TIMEOUT);\n};\n"]}
@@ -0,0 +1,10 @@
1
+ export function UpgradeButton({ cardId }: {
2
+ cardId: any;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ export namespace UpgradeButton {
5
+ namespace propTypes {
6
+ let cardId: PropTypes.Validator<string>;
7
+ }
8
+ }
9
+ export default UpgradeButton;
10
+ import PropTypes from 'prop-types';
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint-disable import/no-named-as-default-member */
3
+ import React from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import { useIntl } from '@openedx/frontend-base';
6
+ import { Button } from '@openedx/paragon';
7
+ import { Locked } from '@openedx/paragon/icons';
8
+ import { useCourseData, useCourseTrackingEvent } from '../../../hooks';
9
+ import { upgradeClicked } from '../tracking/trackers/upgradeButton';
10
+ import { useIsCollapsed, useActionDisabledState } from './data/hooks';
11
+ import messages from './messages';
12
+ export const UpgradeButton = ({ cardId }) => {
13
+ var _a;
14
+ const { formatMessage } = useIntl();
15
+ const courseRun = ((_a = useCourseData(cardId)) === null || _a === void 0 ? void 0 : _a.courseRun) || {};
16
+ const { upgradeUrl } = courseRun;
17
+ const org = courseRun.org || '';
18
+ const courseName = courseRun.title || '';
19
+ const { disableUpgradeCourse } = useActionDisabledState(cardId);
20
+ const trackUpgradeClick = useCourseTrackingEvent(upgradeClicked, cardId, org, courseName, upgradeUrl);
21
+ const isSmall = useIsCollapsed();
22
+ const enabledProps = {
23
+ as: 'a',
24
+ href: upgradeUrl,
25
+ onClick: trackUpgradeClick,
26
+ };
27
+ return (_jsx(Button, Object.assign({ iconBefore: Locked, variant: "outline-primary", disabled: disableUpgradeCourse }, !disableUpgradeCourse && enabledProps, isSmall && { size: 'sm' }, { children: formatMessage(messages.upgrade) })));
28
+ };
29
+ UpgradeButton.propTypes = {
30
+ cardId: PropTypes.string.isRequired,
31
+ };
32
+ export default UpgradeButton;
33
+ //# sourceMappingURL=UpgradeButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpgradeButton.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/upgrade-button/UpgradeButton.jsx"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;;IAC1C,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,SAAS,GAAG,CAAA,MAAA,aAAa,CAAC,MAAM,CAAC,0CAAE,SAAS,KAAI,EAAE,CAAC;IACzD,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IACjC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;IACzC,MAAM,EAAE,oBAAoB,EAAE,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,iBAAiB,GAAG,sBAAsB,CAC9C,cAAc,EACd,MAAM,EACN,GAAG,EACH,UAAU,EACV,UAAU,CACX,CAAC;IAEF,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,MAAM,YAAY,GAAG;QACnB,EAAE,EAAE,GAAG;QACP,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,iBAAiB;KAC3B,CAAC;IAEF,OAAO,CACL,KAAC,MAAM,kBACL,UAAU,EAAE,MAAM,EAClB,OAAO,EAAC,iBAAiB,EACzB,QAAQ,EAAE,oBAAoB,IAC1B,CAAC,oBAAoB,IAAI,YAAY,EACrC,OAAO,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAE5B,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IACzB,CACV,CAAC;AACJ,CAAC,CAAC;AACF,aAAa,CAAC,SAAS,GAAG;IACxB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;CACpC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["/* eslint-disable import/no-named-as-default-member */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useIntl } from '@openedx/frontend-base';\nimport { Button } from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\n\nimport { useCourseData, useCourseTrackingEvent } from '@src/hooks';\nimport { upgradeClicked } from '../tracking/trackers/upgradeButton';\n\nimport { useIsCollapsed, useActionDisabledState } from './data/hooks';\nimport messages from './messages';\n\nexport const UpgradeButton = ({ cardId }) => {\n const { formatMessage } = useIntl();\n\n const courseRun = useCourseData(cardId)?.courseRun || {};\n const { upgradeUrl } = courseRun;\n const org = courseRun.org || '';\n const courseName = courseRun.title || '';\n const { disableUpgradeCourse } = useActionDisabledState(cardId);\n const trackUpgradeClick = useCourseTrackingEvent(\n upgradeClicked,\n cardId,\n org,\n courseName,\n upgradeUrl,\n );\n\n const isSmall = useIsCollapsed();\n\n const enabledProps = {\n as: 'a',\n href: upgradeUrl,\n onClick: trackUpgradeClick,\n };\n\n return (\n <Button\n iconBefore={Locked}\n variant=\"outline-primary\"\n disabled={disableUpgradeCourse}\n {...!disableUpgradeCourse && enabledProps}\n {...isSmall && { size: 'sm' }}\n >\n {formatMessage(messages.upgrade)}\n </Button>\n );\n};\nUpgradeButton.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default UpgradeButton;\n"]}
@@ -0,0 +1,10 @@
1
+ export default UpgradeButtonWrapper;
2
+ declare function UpgradeButtonWrapper({ cardId }: {
3
+ cardId: any;
4
+ }): import("react/jsx-runtime").JSX.Element | null;
5
+ declare namespace UpgradeButtonWrapper {
6
+ namespace propTypes {
7
+ let cardId: PropTypes.Validator<string>;
8
+ }
9
+ }
10
+ import PropTypes from 'prop-types';
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint-disable import/no-named-as-default */
3
+ /* eslint-disable import/no-named-as-default-member */
4
+ import React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import { useCourseData, useEntitlementInfo } from '../../../hooks';
7
+ import UpgradeButton from './UpgradeButton';
8
+ const UpgradeButtonWrapper = ({ cardId }) => {
9
+ const courseData = useCourseData(cardId);
10
+ const { isEntitlement } = useEntitlementInfo(courseData);
11
+ const { isVerified, isExecEd2UCourse, } = (courseData === null || courseData === void 0 ? void 0 : courseData.enrollment) || {};
12
+ if (!(isEntitlement || isVerified || isExecEd2UCourse)) {
13
+ return _jsx(UpgradeButton, { cardId: cardId });
14
+ }
15
+ return null;
16
+ };
17
+ UpgradeButtonWrapper.propTypes = {
18
+ cardId: PropTypes.string.isRequired,
19
+ };
20
+ export default UpgradeButtonWrapper;
21
+ //# sourceMappingURL=UpgradeButtonWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpgradeButtonWrapper.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/upgrade-button/UpgradeButtonWrapper.jsx"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,sDAAsD;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,oBAAoB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAC1C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,EACJ,UAAU,EACV,gBAAgB,GACjB,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,KAAI,EAAE,CAAC;IAEjC,IAAI,CAAC,CAAC,aAAa,IAAI,UAAU,IAAI,gBAAgB,CAAC,EAAE,CAAC;QACvD,OAAO,KAAC,aAAa,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,oBAAoB,CAAC,SAAS,GAAG;IAC/B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;CACpC,CAAC;AAEF,eAAe,oBAAoB,CAAC","sourcesContent":["/* eslint-disable import/no-named-as-default */\n/* eslint-disable import/no-named-as-default-member */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useCourseData, useEntitlementInfo } from '@src/hooks';\nimport UpgradeButton from './UpgradeButton';\n\nconst UpgradeButtonWrapper = ({ cardId }) => {\n const courseData = useCourseData(cardId);\n const { isEntitlement } = useEntitlementInfo(courseData);\n const {\n isVerified,\n isExecEd2UCourse,\n } = courseData?.enrollment || {};\n\n if (!(isEntitlement || isVerified || isExecEd2UCourse)) {\n return <UpgradeButton cardId={cardId} />;\n }\n return null;\n};\n\nUpgradeButtonWrapper.propTypes = {\n cardId: PropTypes.string.isRequired,\n};\n\nexport default UpgradeButtonWrapper;\n"]}
@@ -0,0 +1,4 @@
1
+ export function useIsCollapsed(): boolean;
2
+ export function useActionDisabledState(cardId: any): {
3
+ disableUpgradeCourse: boolean;
4
+ };
@@ -0,0 +1,17 @@
1
+ import { useWindowSize, breakpoints } from '@openedx/paragon';
2
+ import { useCourseData, useIsMasquerading } from '../../../../hooks';
3
+ export const useIsCollapsed = () => {
4
+ const { width } = useWindowSize();
5
+ return width < breakpoints.medium.maxWidth && width > breakpoints.small.maxWidth;
6
+ };
7
+ export const useActionDisabledState = (cardId) => {
8
+ const isMasquerading = useIsMasquerading();
9
+ const courseData = useCourseData(cardId);
10
+ const { canUpgrade } = (courseData === null || courseData === void 0 ? void 0 : courseData.enrollment) || {};
11
+ const { upgradeUrl } = (courseData === null || courseData === void 0 ? void 0 : courseData.courseRun) || {};
12
+ const disableUpgradeCourse = !upgradeUrl || (isMasquerading && !canUpgrade);
13
+ return {
14
+ disableUpgradeCourse,
15
+ };
16
+ };
17
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../../src/widgets/LearnerDashboardPlugins/upgrade-button/data/hooks.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAAC;IAClC,OAAO,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;AACnF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,EAAE;IAC/C,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,KAAI,EAAE,CAAC;IACpD,MAAM,EAAE,UAAU,EAAE,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,KAAI,EAAE,CAAC;IAEnD,MAAM,oBAAoB,GAAG,CAAC,UAAU,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,CAAC;IAE5E,OAAO;QACL,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { useWindowSize, breakpoints } from '@openedx/paragon';\nimport { useCourseData, useIsMasquerading } from '@src/hooks';\n\nexport const useIsCollapsed = () => {\n const { width } = useWindowSize();\n return width < breakpoints.medium.maxWidth && width > breakpoints.small.maxWidth;\n};\n\nexport const useActionDisabledState = (cardId) => {\n const isMasquerading = useIsMasquerading();\n const courseData = useCourseData(cardId);\n const { canUpgrade } = courseData?.enrollment || {};\n const { upgradeUrl } = courseData?.courseRun || {};\n\n const disableUpgradeCourse = !upgradeUrl || (isMasquerading && !canUpgrade);\n\n return {\n disableUpgradeCourse,\n };\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export default UpgradeButtonWrapper;
2
+ import UpgradeButtonWrapper from './UpgradeButtonWrapper';
@@ -0,0 +1,3 @@
1
+ import UpgradeButtonWrapper from './UpgradeButtonWrapper';
2
+ export default UpgradeButtonWrapper;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/upgrade-button/index.jsx"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D,eAAe,oBAAoB,CAAC","sourcesContent":["import UpgradeButtonWrapper from './UpgradeButtonWrapper';\n\nexport default UpgradeButtonWrapper;\n"]}
@@ -0,0 +1,8 @@
1
+ export default messages;
2
+ declare namespace messages {
3
+ namespace upgrade {
4
+ let id: string;
5
+ let description: string;
6
+ let defaultMessage: string;
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ import { defineMessages } from '@openedx/frontend-base';
2
+ const messages = defineMessages({
3
+ upgrade: {
4
+ id: 'learner-dash.courseCard.actions.upgrade',
5
+ description: 'Course card upgrade button text',
6
+ defaultMessage: 'Upgrade',
7
+ },
8
+ });
9
+ export default messages;
10
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardPlugins/upgrade-button/messages.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC9B,OAAO,EAAE;QACP,EAAE,EAAE,yCAAyC;QAC7C,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE,SAAS;KAC1B;CACF,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\nconst messages = defineMessages({\n upgrade: {\n id: 'learner-dash.courseCard.actions.upgrade',\n description: 'Course card upgrade button text',\n defaultMessage: 'Upgrade',\n },\n});\n\nexport default messages;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edx/frontend-app-learner-dashboard",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",