@edx/frontend-plugin-advertisements 1.21.0 → 1.22.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/data/__factories__/defaultUpgradeNotificationData.factory.js +18 -0
- package/dist/data/__factories__/defaultUpgradeNotificationData.factory.js.map +1 -0
- package/dist/data/__factories__/index.js +1 -0
- package/dist/data/__factories__/index.js.map +1 -1
- package/dist/index.scss +4 -0
- package/dist/paywall/ExperimentalLockPaywall.js +2 -2
- package/dist/paywall/ExperimentalLockPaywall.js.map +1 -1
- package/dist/upgrade-notification/DefaultUpgradeNotification.js +463 -37
- package/dist/upgrade-notification/DefaultUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js +7 -9
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js.map +1 -1
- package/dist/upsell-bullets/ExperimentalUpsellBullets.js +39 -0
- package/dist/upsell-bullets/ExperimentalUpsellBullets.js.map +1 -0
- package/dist/upsell-bullets/UpsellBullets.js +101 -16
- package/dist/upsell-bullets/UpsellBullets.js.map +1 -1
- package/dist/upsell-bullets/UpsellBullets.scss +11 -0
- package/dist/upsell-bullets/index.js +50 -0
- package/dist/upsell-bullets/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -14,12 +14,11 @@ var _icons = require("@openedx/paragon/icons");
|
|
|
14
14
|
var _reactSdk = require("@optimizely/react-sdk");
|
|
15
15
|
var _localStorage = require("@src/data/localStorage");
|
|
16
16
|
var _upgradeButton = require("@src/generic/upgrade-button");
|
|
17
|
-
var _UpsellBullets = require("@src/generic/upsell-bullets/UpsellBullets");
|
|
18
17
|
var _messages = _interopRequireDefault(require("@src/generic/messages"));
|
|
19
18
|
var _modelStore = require("@src/generic/model-store");
|
|
20
19
|
var _data = require("../data");
|
|
21
20
|
var _certificatePreview = _interopRequireDefault(require("./certificate-preview"));
|
|
22
|
-
var
|
|
21
|
+
var _upsellBullets = require("../upsell-bullets");
|
|
23
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
24
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
@@ -31,19 +30,19 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
|
31
30
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* eslint import/no-unresolved: 0 */
|
|
32
31
|
const UpsellNoFBECardContent = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", {
|
|
33
32
|
className: "fa-ul upgrade-notification-ul pt-0",
|
|
34
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
33
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.VerifiedCertBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.SupportMissionBullet, {})]
|
|
35
34
|
});
|
|
36
35
|
const ExperimentUpsellNoFBECardContent = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", {
|
|
37
36
|
className: "fa-ul upgrade-notification-ul pt-0",
|
|
38
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
37
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.VerifiedCertBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.LifetimeAccessBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.AdditionalToolsBullet, {})]
|
|
39
38
|
});
|
|
40
39
|
const UpsellFBEFarAwayCardContent = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", {
|
|
41
40
|
className: "fa-ul upgrade-notification-ul",
|
|
42
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
41
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.VerifiedCertBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.UnlockGradedBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.FullAccessBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.SupportMissionBullet, {})]
|
|
43
42
|
});
|
|
44
43
|
const ExperimentUpsellFBEFarAwayCardContent = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", {
|
|
45
44
|
className: "fa-ul upgrade-notification-ul",
|
|
46
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
45
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.VerifiedCertBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.LifetimeAccessBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.GradesAndFeedbackBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.AdditionalToolsBullet, {})]
|
|
47
46
|
});
|
|
48
47
|
const UpsellFBESoonCardContent = _ref => {
|
|
49
48
|
let {
|
|
@@ -473,16 +472,15 @@ const ExperimentalUpgradeNotification = _ref5 => {
|
|
|
473
472
|
})
|
|
474
473
|
});
|
|
475
474
|
}
|
|
476
|
-
const certificateExperimentVariation = variationKey === _data.OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS.CERTIFICATE_PREVIEW || variationKey === _data.OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS.CERTIFICATE_PREVIEW_WITH_COPY;
|
|
477
475
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("section", {
|
|
478
476
|
className: (0, _classnames.default)('upgrade-notification small', {
|
|
479
477
|
'card mb-4': shouldDisplayBorder
|
|
480
478
|
}),
|
|
481
479
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
482
480
|
id: "courseHome-upgradeNotification",
|
|
483
|
-
children: [
|
|
481
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_certificatePreview.default, {
|
|
484
482
|
courseId: courseId
|
|
485
|
-
})
|
|
483
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("h2", {
|
|
486
484
|
className: (0, _classnames.default)('h5 upgrade-notification-header', {
|
|
487
485
|
'd-flex align-items-center mr-2 ml-4 my-1.5 font-size-18': !!toggleSidebar
|
|
488
486
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExperimentalUpgradeNotification.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_i18n","_analytics","_paragon","_icons","_reactSdk","_localStorage","_upgradeButton","_UpsellBullets","_messages","_modelStore","_data","_certificatePreview","_UpsellBullets2","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","UpsellNoFBECardContent","jsxs","className","children","jsx","VerifiedCertBullet","SupportMissionBullet","ExperimentUpsellNoFBECardContent","LifetimeAccessBullet","AdditionalToolsBullet","UpsellFBEFarAwayCardContent","UnlockGradedBullet","FullAccessBullet","ExperimentUpsellFBEFarAwayCardContent","GradesAndFeedbackBullet","UpsellFBESoonCardContent","_ref","accessExpirationDate","timezoneFormatArgs","includingAnyProgress","FormattedMessage","id","defaultMessage","date","FormattedDate","day","month","Date","benefitsOfUpgrading","rel","target","href","values","propTypes","PropTypes","instanceOf","isRequired","shape","timeZone","string","defaultProps","PastExpirationCardContent","ExpirationCountdown","_ref2","courseId","hoursToExpiration","setupgradeNotificationCurrentState","type","expirationText","setLocalStorage","dayCount","Math","floor","hourCount","number","func","AccessExpirationDateBanner","_ref3","PastExpirationDateBanner","_ref4","ExperimentalUpgradeNotification","_ref5","setNotificationCurrentState","toggleSidebar","optimizely","pluginLocationId","org","userTimezone","verifiedMode","useModel","accessExpiration","contentTypeGatingEnabled","marketingUrl","offer","timeOffsetMillis","intl","useIntl","dateNow","now","correctedTime","expirationDate","pastExpirationDeadline","shouldDisplayBorder","upsellPageName","decision","useDecision","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY","enabled","variationKey","experimentProperties","experiment_key","variation_key","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","track","logClickPastExpiration","upgradeNotificationHeaderText","expirationBanner","upsellMessage","callToActionButton","offerCode","hoursToAccessExpiration","hoursToDiscountExpiration","percentage","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS","CERTIFICATE_PREVIEW_WITH_COPY","Button","variant","onClick","block","UpgradeButton","code","certificateExperimentVariation","CERTIFICATE_PREVIEW","classNames","IconButton","src","Close","size","iconAs","Icon","alt","formatMessage","messages","close","node","_default","exports","injectIntl","withOptimizely"],"sources":["../../src/upgrade-notification/ExperimentalUpgradeNotification.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {\n useIntl, FormattedDate, FormattedMessage, injectIntl,\n} from '@edx/frontend-platform/i18n';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { Button, Icon, IconButton } from '@openedx/paragon';\nimport { Close } from '@openedx/paragon/icons';\nimport { useDecision, withOptimizely } from '@optimizely/react-sdk';\n\nimport { setLocalStorage } from '@src/data/localStorage';\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from '@src/generic/upsell-bullets/UpsellBullets';\nimport messages from '@src/generic/messages';\nimport { useModel } from '@src/generic/model-store';\n\nimport { OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS, OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY } from '../data';\nimport CertificatePreview from './certificate-preview';\nimport {\n LifetimeAccessBullet,\n GradesAndFeedbackBullet,\n AdditionalToolsBullet,\n} from '../upsell-bullets/UpsellBullets';\n\nconst UpsellNoFBECardContent = () => (\n <ul className=\"fa-ul upgrade-notification-ul pt-0\">\n <VerifiedCertBullet />\n <SupportMissionBullet />\n </ul>\n);\n\nconst ExperimentUpsellNoFBECardContent = () => (\n <ul className=\"fa-ul upgrade-notification-ul pt-0\">\n <VerifiedCertBullet />\n <LifetimeAccessBullet />\n <AdditionalToolsBullet />\n </ul>\n);\n\nconst UpsellFBEFarAwayCardContent = () => (\n <ul className=\"fa-ul upgrade-notification-ul\">\n <VerifiedCertBullet />\n <UnlockGradedBullet />\n <FullAccessBullet />\n <SupportMissionBullet />\n </ul>\n);\n\nconst ExperimentUpsellFBEFarAwayCardContent = () => (\n <ul className=\"fa-ul upgrade-notification-ul\">\n <VerifiedCertBullet />\n <LifetimeAccessBullet />\n <GradesAndFeedbackBullet />\n <AdditionalToolsBullet />\n </ul>\n);\n\nconst UpsellFBESoonCardContent = ({ accessExpirationDate, timezoneFormatArgs }) => {\n const includingAnyProgress = (\n <span className=\"font-weight-bold\">\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationAccessLoss.progress\"\n defaultMessage=\"including any progress\"\n />\n </span>\n );\n\n const date = (\n <FormattedDate\n key=\"accessDate\"\n day=\"numeric\"\n month=\"long\"\n value={new Date(accessExpirationDate)}\n {...timezoneFormatArgs}\n />\n );\n\n const benefitsOfUpgrading = (\n <a className=\"inline-link-underline font-weight-bold\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://support.edx.org/hc/en-us/articles/360013426573-What-are-the-differences-between-audit-free-and-verified-paid-courses-\">\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationVerifiedCert.benefits\"\n defaultMessage=\"benefits of upgrading\"\n />\n </a>\n );\n\n return (\n <div className=\"upgrade-notification-text\">\n <p>\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationAccessLoss\"\n defaultMessage=\"You will lose all access to this course, {includingAnyProgress}, on {date}.\"\n values={{\n includingAnyProgress,\n date,\n }}\n />\n </p>\n <p>\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationVerifiedCert\"\n defaultMessage=\"Upgrading your course enables you to pursue a verified certificate and unlocks numerous features. Learn more about the {benefitsOfUpgrading}.\"\n values={{ benefitsOfUpgrading }}\n />\n </p>\n </div>\n );\n};\n\nUpsellFBESoonCardContent.propTypes = {\n accessExpirationDate: PropTypes.PropTypes.instanceOf(Date).isRequired,\n timezoneFormatArgs: PropTypes.shape({\n timeZone: PropTypes.string,\n }),\n};\n\nUpsellFBESoonCardContent.defaultProps = {\n timezoneFormatArgs: {},\n};\n\nconst PastExpirationCardContent = () => (\n <div className=\"upgrade-notification-text\">\n <p>\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.pastExpiration.content\"\n defaultMessage=\"The upgrade deadline for this course passed. To upgrade, enroll in the next available session.\"\n />\n </p>\n </div>\n);\n\nconst ExpirationCountdown = ({\n courseId, hoursToExpiration, setupgradeNotificationCurrentState, type,\n}) => {\n let expirationText;\n if (hoursToExpiration >= 24) { // More than 1 day left\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessDaysLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessDaysLeft');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDdaysLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'FPDdaysLeft');\n }\n }\n expirationText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationDays\"\n defaultMessage={`{dayCount, number} {dayCount, plural,\n one {day}\n other {days}} left`}\n values={{\n dayCount: (Math.floor(hoursToExpiration / 24)),\n }}\n />\n );\n } else if (hoursToExpiration >= 1) { // More than 1 hour left\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessHoursLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessHoursLeft');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDHoursLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'FPDHoursLeft');\n }\n }\n expirationText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationHours\"\n defaultMessage={`{hourCount, number} {hourCount, plural,\n one {hour}\n other {hours}} left`}\n values={{\n hourCount: (hoursToExpiration),\n }}\n />\n );\n } else { // Less than 1 hour\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessLastHour');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessLastHour');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDLastHour');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'FPDLastHour');\n }\n }\n expirationText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationMinutes\"\n defaultMessage=\"Less than 1 hour left\"\n />\n );\n }\n return (<div className=\"upsell-warning\">{expirationText}</div>);\n};\n\nExpirationCountdown.propTypes = {\n courseId: PropTypes.string.isRequired,\n hoursToExpiration: PropTypes.number.isRequired,\n setupgradeNotificationCurrentState: PropTypes.func,\n type: PropTypes.string,\n};\nExpirationCountdown.defaultProps = {\n setupgradeNotificationCurrentState: null,\n type: null,\n};\n\nconst AccessExpirationDateBanner = ({\n courseId, accessExpirationDate, timezoneFormatArgs, setupgradeNotificationCurrentState,\n}) => {\n if (setupgradeNotificationCurrentState) {\n setupgradeNotificationCurrentState('accessDateView');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessDateView');\n }\n return (\n <div className=\"upsell-warning-light\">\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expiration\"\n defaultMessage=\"Course access will expire {date}\"\n values={{\n date: (\n <FormattedDate\n key=\"accessExpireDate\"\n day=\"numeric\"\n month=\"long\"\n value={accessExpirationDate}\n {...timezoneFormatArgs}\n />\n ),\n }}\n />\n </div>\n );\n};\n\nAccessExpirationDateBanner.propTypes = {\n courseId: PropTypes.string.isRequired,\n accessExpirationDate: PropTypes.PropTypes.instanceOf(Date).isRequired,\n timezoneFormatArgs: PropTypes.shape({\n timeZone: PropTypes.string,\n }),\n setupgradeNotificationCurrentState: PropTypes.func,\n};\n\nAccessExpirationDateBanner.defaultProps = {\n timezoneFormatArgs: {},\n setupgradeNotificationCurrentState: null,\n};\n\nconst PastExpirationDateBanner = ({\n courseId, accessExpirationDate, timezoneFormatArgs, setupgradeNotificationCurrentState,\n}) => {\n if (setupgradeNotificationCurrentState) {\n setupgradeNotificationCurrentState('PastExpirationDate');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'PastExpirationDate');\n }\n return (\n <div className=\"upsell-warning\">\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.pastExpiration.banner\"\n defaultMessage=\"Upgrade deadline passed on {date}\"\n values={{\n date: (\n <FormattedDate\n key=\"accessExpireDate\"\n day=\"numeric\"\n month=\"long\"\n value={accessExpirationDate}\n {...timezoneFormatArgs}\n />\n ),\n }}\n />\n </div>\n );\n};\n\nPastExpirationDateBanner.propTypes = {\n courseId: PropTypes.string.isRequired,\n accessExpirationDate: PropTypes.PropTypes.instanceOf(Date).isRequired,\n timezoneFormatArgs: PropTypes.shape({\n timeZone: PropTypes.string,\n }),\n setupgradeNotificationCurrentState: PropTypes.func,\n};\n\nPastExpirationDateBanner.defaultProps = {\n timezoneFormatArgs: {},\n setupgradeNotificationCurrentState: null,\n};\n\nconst ExperimentalUpgradeNotification = ({\n id,\n courseId,\n setNotificationCurrentState,\n toggleSidebar,\n optimizely,\n}) => {\n const pluginLocationId = id;\n\n const {\n org,\n userTimezone,\n verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n accessExpiration,\n contentTypeGatingEnabled,\n marketingUrl,\n offer,\n timeOffsetMillis,\n } = useModel('coursewareMeta', courseId);\n\n const intl = useIntl();\n const dateNow = Date.now();\n const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};\n const correctedTime = new Date(dateNow + timeOffsetMillis);\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(dateNow) > accessExpirationDate : false;\n const shouldDisplayBorder = pluginLocationId !== 'outline_tab_notifications';\n const upsellPageName = pluginLocationId === 'outline_tab_notifications' ? 'course_home' : 'in_course';\n const setupgradeNotificationCurrentState = setNotificationCurrentState;\n\n const [decision] = useDecision(OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY);\n const { enabled, variationKey } = decision;\n\n // Experiment specific properties or data should not be sent to the tracking logs, so break this\n // object out to ensure it is only sent to Segment and not the tracking logs.\n const experimentProperties = {\n experiment_key: OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY,\n variation_key: variationKey,\n };\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const promotionEventProperties = {\n creative: 'sidebarupsell',\n name: 'In-Course Verification Prompt',\n position: 'sidebar-message',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n ...experimentProperties,\n };\n\n useEffect(() => {\n sendTrackingLogEvent('edx.bi.course.upgrade.sidebarupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!verifiedMode) {\n return null;\n }\n\n const logClick = () => {\n sendTrackingLogEvent('edx.bi.course.upgrade.sidebarupsell.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'sidebar-message',\n });\n sendTrackEvent('Promotion Clicked', promotionEventProperties);\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n ...experimentProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n optimizely.track('upgrade_button_click');\n };\n\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_notification.past_expiration.button_clicked', {\n ...eventProperties,\n ...experimentProperties,\n linkCategory: 'upgrade_notification',\n linkName: `${upsellPageName}_course_details`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n /*\n There are 5 parts that change in the upgrade card:\n upgradeNotificationHeaderText\n expirationBanner\n upsellMessage\n callToActionButton\n offerCode\n */\n let upgradeNotificationHeaderText;\n let expirationBanner;\n let upsellMessage;\n let callToActionButton;\n let offerCode;\n\n if (!!accessExpiration && !!contentTypeGatingEnabled) {\n const hoursToAccessExpiration = Math.floor((accessExpirationDate - correctedTime) / 1000 / 60 / 60);\n\n if (hoursToAccessExpiration >= (7 * 24)) {\n if (offer) { // countdown to the first purchase discount if there is one\n const hoursToDiscountExpiration = Math.floor((new Date(offer.expirationDate) - correctedTime) / 1000 / 60 / 60);\n upgradeNotificationHeaderText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.firstTimeLearnerDiscount\"\n defaultMessage=\"{percentage}% First-Time Learner Discount\"\n values={{\n percentage: (offer.percentage),\n }}\n />\n );\n expirationBanner = (\n <ExpirationCountdown\n courseId={courseId}\n hoursToExpiration={hoursToDiscountExpiration}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n type=\"offer\"\n />\n );\n } else {\n upgradeNotificationHeaderText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.accessExpiration\"\n defaultMessage=\"Upgrade your course today\"\n />\n );\n expirationBanner = (\n <AccessExpirationDateBanner\n courseId={courseId}\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n />\n );\n }\n upsellMessage = (\n variationKey === OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS.CERTIFICATE_PREVIEW_WITH_COPY && enabled\n ? <ExperimentUpsellFBEFarAwayCardContent />\n : <UpsellFBEFarAwayCardContent />\n );\n } else if (hoursToAccessExpiration < (7 * 24) && hoursToAccessExpiration >= 0) {\n // more urgent messaging if there's less than 7 days left to access expiration\n upgradeNotificationHeaderText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.accessExpirationUrgent\"\n defaultMessage=\"Course Access Expiration\"\n />\n );\n expirationBanner = (\n <ExpirationCountdown\n courseId={courseId}\n hoursToExpiration={hoursToAccessExpiration}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n type=\"access\"\n />\n );\n upsellMessage = (\n <UpsellFBESoonCardContent\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n />\n );\n } else { // access expiration deadline has passed\n upgradeNotificationHeaderText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.accessExpirationPast\"\n defaultMessage=\"Course Access Expiration\"\n />\n );\n expirationBanner = (\n <PastExpirationDateBanner\n courseId={courseId}\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n />\n );\n upsellMessage = (\n <PastExpirationCardContent />\n );\n }\n } else { // FBE is turned off\n upgradeNotificationHeaderText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.pursueAverifiedCertificate\"\n defaultMessage=\"Pursue a verified certificate\"\n />\n );\n upsellMessage = (\n variationKey === OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS.CERTIFICATE_PREVIEW_WITH_COPY && enabled\n ? <ExperimentUpsellNoFBECardContent />\n : <UpsellNoFBECardContent />\n );\n }\n\n if (pastExpirationDeadline) {\n callToActionButton = (\n <Button\n variant=\"primary\"\n onClick={logClickPastExpiration}\n href={marketingUrl}\n block\n >\n View Course Details\n </Button>\n );\n } else {\n callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logClick}\n verifiedMode={verifiedMode}\n block\n />\n );\n }\n\n if (offer) { // if there's a first purchase discount, message the code at the bottom\n offerCode = (\n <div className=\"text-center discount-info\">\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.code\"\n defaultMessage=\"Use code {code} at checkout\"\n values={{\n code: (<span className=\"font-weight-bold\">{offer.code}</span>),\n }}\n />\n </div>\n );\n }\n\n const certificateExperimentVariation = (\n variationKey === OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS.CERTIFICATE_PREVIEW\n || variationKey === OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS.CERTIFICATE_PREVIEW_WITH_COPY\n );\n\n return (\n <section className={classNames('upgrade-notification small', { 'card mb-4': shouldDisplayBorder })}>\n <div id=\"courseHome-upgradeNotification\">\n {\n (certificateExperimentVariation && enabled)\n ? <CertificatePreview courseId={courseId} />\n : null\n }\n <h2\n className={classNames('h5 upgrade-notification-header', {\n 'd-flex align-items-center mr-2 ml-4 my-1.5 font-size-18': !!toggleSidebar,\n })}\n id=\"outline-sidebar-upgrade-header\"\n >\n {upgradeNotificationHeaderText}\n {!!toggleSidebar && (\n <div className=\"d-inline-flex ml-auto\">\n <IconButton\n src={Close}\n size=\"sm\"\n iconAs={Icon}\n onClick={toggleSidebar}\n className=\"icon-hover\"\n alt={intl.formatMessage(messages.close)}\n />\n </div>\n )}\n </h2>\n {expirationBanner}\n <div className=\"upgrade-notification-message\">\n {upsellMessage}\n </div>\n <div className=\"upgrade-notification-button\">\n {callToActionButton}\n </div>\n {offerCode}\n </div>\n </section>\n );\n};\n\nExperimentalUpgradeNotification.propTypes = {\n id: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n setNotificationCurrentState: PropTypes.func,\n toggleSidebar: PropTypes.func,\n optimizely: PropTypes.node.isRequired,\n};\n\nExperimentalUpgradeNotification.defaultProps = {\n setNotificationCurrentState: null,\n toggleSidebar: null,\n};\n\nexport default injectIntl(withOptimizely(ExperimentalUpgradeNotification));\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ExperimentalUpgradeNotification.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_i18n","_analytics","_paragon","_icons","_reactSdk","_localStorage","_upgradeButton","_messages","_modelStore","_data","_certificatePreview","_upsellBullets","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","UpsellNoFBECardContent","jsxs","className","children","jsx","VerifiedCertBullet","SupportMissionBullet","ExperimentUpsellNoFBECardContent","LifetimeAccessBullet","AdditionalToolsBullet","UpsellFBEFarAwayCardContent","UnlockGradedBullet","FullAccessBullet","ExperimentUpsellFBEFarAwayCardContent","GradesAndFeedbackBullet","UpsellFBESoonCardContent","_ref","accessExpirationDate","timezoneFormatArgs","includingAnyProgress","FormattedMessage","id","defaultMessage","date","FormattedDate","day","month","Date","benefitsOfUpgrading","rel","target","href","values","propTypes","PropTypes","instanceOf","isRequired","shape","timeZone","string","defaultProps","PastExpirationCardContent","ExpirationCountdown","_ref2","courseId","hoursToExpiration","setupgradeNotificationCurrentState","type","expirationText","setLocalStorage","dayCount","Math","floor","hourCount","number","func","AccessExpirationDateBanner","_ref3","PastExpirationDateBanner","_ref4","ExperimentalUpgradeNotification","_ref5","setNotificationCurrentState","toggleSidebar","optimizely","pluginLocationId","org","userTimezone","verifiedMode","useModel","accessExpiration","contentTypeGatingEnabled","marketingUrl","offer","timeOffsetMillis","intl","useIntl","dateNow","now","correctedTime","expirationDate","pastExpirationDeadline","shouldDisplayBorder","upsellPageName","decision","useDecision","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY","enabled","variationKey","experimentProperties","experiment_key","variation_key","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","track","logClickPastExpiration","upgradeNotificationHeaderText","expirationBanner","upsellMessage","callToActionButton","offerCode","hoursToAccessExpiration","hoursToDiscountExpiration","percentage","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS","CERTIFICATE_PREVIEW_WITH_COPY","Button","variant","onClick","block","UpgradeButton","code","classNames","IconButton","src","Close","size","iconAs","Icon","alt","formatMessage","messages","close","node","_default","exports","injectIntl","withOptimizely"],"sources":["../../src/upgrade-notification/ExperimentalUpgradeNotification.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {\n useIntl, FormattedDate, FormattedMessage, injectIntl,\n} from '@edx/frontend-platform/i18n';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { Button, Icon, IconButton } from '@openedx/paragon';\nimport { Close } from '@openedx/paragon/icons';\nimport { useDecision, withOptimizely } from '@optimizely/react-sdk';\n\nimport { setLocalStorage } from '@src/data/localStorage';\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport messages from '@src/generic/messages';\nimport { useModel } from '@src/generic/model-store';\n\nimport { OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS, OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY } from '../data';\nimport CertificatePreview from './certificate-preview';\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n LifetimeAccessBullet,\n GradesAndFeedbackBullet,\n AdditionalToolsBullet,\n} from '../upsell-bullets';\n\nconst UpsellNoFBECardContent = () => (\n <ul className=\"fa-ul upgrade-notification-ul pt-0\">\n <VerifiedCertBullet />\n <SupportMissionBullet />\n </ul>\n);\n\nconst ExperimentUpsellNoFBECardContent = () => (\n <ul className=\"fa-ul upgrade-notification-ul pt-0\">\n <VerifiedCertBullet />\n <LifetimeAccessBullet />\n <AdditionalToolsBullet />\n </ul>\n);\n\nconst UpsellFBEFarAwayCardContent = () => (\n <ul className=\"fa-ul upgrade-notification-ul\">\n <VerifiedCertBullet />\n <UnlockGradedBullet />\n <FullAccessBullet />\n <SupportMissionBullet />\n </ul>\n);\n\nconst ExperimentUpsellFBEFarAwayCardContent = () => (\n <ul className=\"fa-ul upgrade-notification-ul\">\n <VerifiedCertBullet />\n <LifetimeAccessBullet />\n <GradesAndFeedbackBullet />\n <AdditionalToolsBullet />\n </ul>\n);\n\nconst UpsellFBESoonCardContent = ({ accessExpirationDate, timezoneFormatArgs }) => {\n const includingAnyProgress = (\n <span className=\"font-weight-bold\">\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationAccessLoss.progress\"\n defaultMessage=\"including any progress\"\n />\n </span>\n );\n\n const date = (\n <FormattedDate\n key=\"accessDate\"\n day=\"numeric\"\n month=\"long\"\n value={new Date(accessExpirationDate)}\n {...timezoneFormatArgs}\n />\n );\n\n const benefitsOfUpgrading = (\n <a className=\"inline-link-underline font-weight-bold\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://support.edx.org/hc/en-us/articles/360013426573-What-are-the-differences-between-audit-free-and-verified-paid-courses-\">\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationVerifiedCert.benefits\"\n defaultMessage=\"benefits of upgrading\"\n />\n </a>\n );\n\n return (\n <div className=\"upgrade-notification-text\">\n <p>\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationAccessLoss\"\n defaultMessage=\"You will lose all access to this course, {includingAnyProgress}, on {date}.\"\n values={{\n includingAnyProgress,\n date,\n }}\n />\n </p>\n <p>\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationVerifiedCert\"\n defaultMessage=\"Upgrading your course enables you to pursue a verified certificate and unlocks numerous features. Learn more about the {benefitsOfUpgrading}.\"\n values={{ benefitsOfUpgrading }}\n />\n </p>\n </div>\n );\n};\n\nUpsellFBESoonCardContent.propTypes = {\n accessExpirationDate: PropTypes.PropTypes.instanceOf(Date).isRequired,\n timezoneFormatArgs: PropTypes.shape({\n timeZone: PropTypes.string,\n }),\n};\n\nUpsellFBESoonCardContent.defaultProps = {\n timezoneFormatArgs: {},\n};\n\nconst PastExpirationCardContent = () => (\n <div className=\"upgrade-notification-text\">\n <p>\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.pastExpiration.content\"\n defaultMessage=\"The upgrade deadline for this course passed. To upgrade, enroll in the next available session.\"\n />\n </p>\n </div>\n);\n\nconst ExpirationCountdown = ({\n courseId, hoursToExpiration, setupgradeNotificationCurrentState, type,\n}) => {\n let expirationText;\n if (hoursToExpiration >= 24) { // More than 1 day left\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessDaysLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessDaysLeft');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDdaysLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'FPDdaysLeft');\n }\n }\n expirationText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationDays\"\n defaultMessage={`{dayCount, number} {dayCount, plural,\n one {day}\n other {days}} left`}\n values={{\n dayCount: (Math.floor(hoursToExpiration / 24)),\n }}\n />\n );\n } else if (hoursToExpiration >= 1) { // More than 1 hour left\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessHoursLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessHoursLeft');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDHoursLeft');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'FPDHoursLeft');\n }\n }\n expirationText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationHours\"\n defaultMessage={`{hourCount, number} {hourCount, plural,\n one {hour}\n other {hours}} left`}\n values={{\n hourCount: (hoursToExpiration),\n }}\n />\n );\n } else { // Less than 1 hour\n // setupgradeNotificationCurrentState is available in NotificationTray (not course home)\n if (setupgradeNotificationCurrentState) {\n if (type === 'access') {\n setupgradeNotificationCurrentState('accessLastHour');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessLastHour');\n }\n if (type === 'offer') {\n setupgradeNotificationCurrentState('FPDLastHour');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'FPDLastHour');\n }\n }\n expirationText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expirationMinutes\"\n defaultMessage=\"Less than 1 hour left\"\n />\n );\n }\n return (<div className=\"upsell-warning\">{expirationText}</div>);\n};\n\nExpirationCountdown.propTypes = {\n courseId: PropTypes.string.isRequired,\n hoursToExpiration: PropTypes.number.isRequired,\n setupgradeNotificationCurrentState: PropTypes.func,\n type: PropTypes.string,\n};\nExpirationCountdown.defaultProps = {\n setupgradeNotificationCurrentState: null,\n type: null,\n};\n\nconst AccessExpirationDateBanner = ({\n courseId, accessExpirationDate, timezoneFormatArgs, setupgradeNotificationCurrentState,\n}) => {\n if (setupgradeNotificationCurrentState) {\n setupgradeNotificationCurrentState('accessDateView');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'accessDateView');\n }\n return (\n <div className=\"upsell-warning-light\">\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.expiration\"\n defaultMessage=\"Course access will expire {date}\"\n values={{\n date: (\n <FormattedDate\n key=\"accessExpireDate\"\n day=\"numeric\"\n month=\"long\"\n value={accessExpirationDate}\n {...timezoneFormatArgs}\n />\n ),\n }}\n />\n </div>\n );\n};\n\nAccessExpirationDateBanner.propTypes = {\n courseId: PropTypes.string.isRequired,\n accessExpirationDate: PropTypes.PropTypes.instanceOf(Date).isRequired,\n timezoneFormatArgs: PropTypes.shape({\n timeZone: PropTypes.string,\n }),\n setupgradeNotificationCurrentState: PropTypes.func,\n};\n\nAccessExpirationDateBanner.defaultProps = {\n timezoneFormatArgs: {},\n setupgradeNotificationCurrentState: null,\n};\n\nconst PastExpirationDateBanner = ({\n courseId, accessExpirationDate, timezoneFormatArgs, setupgradeNotificationCurrentState,\n}) => {\n if (setupgradeNotificationCurrentState) {\n setupgradeNotificationCurrentState('PastExpirationDate');\n setLocalStorage(`upgradeNotificationCurrentState.${courseId}`, 'PastExpirationDate');\n }\n return (\n <div className=\"upsell-warning\">\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.pastExpiration.banner\"\n defaultMessage=\"Upgrade deadline passed on {date}\"\n values={{\n date: (\n <FormattedDate\n key=\"accessExpireDate\"\n day=\"numeric\"\n month=\"long\"\n value={accessExpirationDate}\n {...timezoneFormatArgs}\n />\n ),\n }}\n />\n </div>\n );\n};\n\nPastExpirationDateBanner.propTypes = {\n courseId: PropTypes.string.isRequired,\n accessExpirationDate: PropTypes.PropTypes.instanceOf(Date).isRequired,\n timezoneFormatArgs: PropTypes.shape({\n timeZone: PropTypes.string,\n }),\n setupgradeNotificationCurrentState: PropTypes.func,\n};\n\nPastExpirationDateBanner.defaultProps = {\n timezoneFormatArgs: {},\n setupgradeNotificationCurrentState: null,\n};\n\nconst ExperimentalUpgradeNotification = ({\n id,\n courseId,\n setNotificationCurrentState,\n toggleSidebar,\n optimizely,\n}) => {\n const pluginLocationId = id;\n\n const {\n org,\n userTimezone,\n verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n accessExpiration,\n contentTypeGatingEnabled,\n marketingUrl,\n offer,\n timeOffsetMillis,\n } = useModel('coursewareMeta', courseId);\n\n const intl = useIntl();\n const dateNow = Date.now();\n const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};\n const correctedTime = new Date(dateNow + timeOffsetMillis);\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(dateNow) > accessExpirationDate : false;\n const shouldDisplayBorder = pluginLocationId !== 'outline_tab_notifications';\n const upsellPageName = pluginLocationId === 'outline_tab_notifications' ? 'course_home' : 'in_course';\n const setupgradeNotificationCurrentState = setNotificationCurrentState;\n\n const [decision] = useDecision(OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY);\n const { enabled, variationKey } = decision;\n\n // Experiment specific properties or data should not be sent to the tracking logs, so break this\n // object out to ensure it is only sent to Segment and not the tracking logs.\n const experimentProperties = {\n experiment_key: OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY,\n variation_key: variationKey,\n };\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const promotionEventProperties = {\n creative: 'sidebarupsell',\n name: 'In-Course Verification Prompt',\n position: 'sidebar-message',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n ...experimentProperties,\n };\n\n useEffect(() => {\n sendTrackingLogEvent('edx.bi.course.upgrade.sidebarupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!verifiedMode) {\n return null;\n }\n\n const logClick = () => {\n sendTrackingLogEvent('edx.bi.course.upgrade.sidebarupsell.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'sidebar-message',\n });\n sendTrackEvent('Promotion Clicked', promotionEventProperties);\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n ...experimentProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n optimizely.track('upgrade_button_click');\n };\n\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_notification.past_expiration.button_clicked', {\n ...eventProperties,\n ...experimentProperties,\n linkCategory: 'upgrade_notification',\n linkName: `${upsellPageName}_course_details`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n /*\n There are 5 parts that change in the upgrade card:\n upgradeNotificationHeaderText\n expirationBanner\n upsellMessage\n callToActionButton\n offerCode\n */\n let upgradeNotificationHeaderText;\n let expirationBanner;\n let upsellMessage;\n let callToActionButton;\n let offerCode;\n\n if (!!accessExpiration && !!contentTypeGatingEnabled) {\n const hoursToAccessExpiration = Math.floor((accessExpirationDate - correctedTime) / 1000 / 60 / 60);\n\n if (hoursToAccessExpiration >= (7 * 24)) {\n if (offer) { // countdown to the first purchase discount if there is one\n const hoursToDiscountExpiration = Math.floor((new Date(offer.expirationDate) - correctedTime) / 1000 / 60 / 60);\n upgradeNotificationHeaderText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.firstTimeLearnerDiscount\"\n defaultMessage=\"{percentage}% First-Time Learner Discount\"\n values={{\n percentage: (offer.percentage),\n }}\n />\n );\n expirationBanner = (\n <ExpirationCountdown\n courseId={courseId}\n hoursToExpiration={hoursToDiscountExpiration}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n type=\"offer\"\n />\n );\n } else {\n upgradeNotificationHeaderText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.accessExpiration\"\n defaultMessage=\"Upgrade your course today\"\n />\n );\n expirationBanner = (\n <AccessExpirationDateBanner\n courseId={courseId}\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n />\n );\n }\n upsellMessage = (\n variationKey === OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS.CERTIFICATE_PREVIEW_WITH_COPY && enabled\n ? <ExperimentUpsellFBEFarAwayCardContent />\n : <UpsellFBEFarAwayCardContent />\n );\n } else if (hoursToAccessExpiration < (7 * 24) && hoursToAccessExpiration >= 0) {\n // more urgent messaging if there's less than 7 days left to access expiration\n upgradeNotificationHeaderText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.accessExpirationUrgent\"\n defaultMessage=\"Course Access Expiration\"\n />\n );\n expirationBanner = (\n <ExpirationCountdown\n courseId={courseId}\n hoursToExpiration={hoursToAccessExpiration}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n type=\"access\"\n />\n );\n upsellMessage = (\n <UpsellFBESoonCardContent\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n />\n );\n } else { // access expiration deadline has passed\n upgradeNotificationHeaderText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.accessExpirationPast\"\n defaultMessage=\"Course Access Expiration\"\n />\n );\n expirationBanner = (\n <PastExpirationDateBanner\n courseId={courseId}\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n />\n );\n upsellMessage = (\n <PastExpirationCardContent />\n );\n }\n } else { // FBE is turned off\n upgradeNotificationHeaderText = (\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.pursueAverifiedCertificate\"\n defaultMessage=\"Pursue a verified certificate\"\n />\n );\n upsellMessage = (\n variationKey === OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS.CERTIFICATE_PREVIEW_WITH_COPY && enabled\n ? <ExperimentUpsellNoFBECardContent />\n : <UpsellNoFBECardContent />\n );\n }\n\n if (pastExpirationDeadline) {\n callToActionButton = (\n <Button\n variant=\"primary\"\n onClick={logClickPastExpiration}\n href={marketingUrl}\n block\n >\n View Course Details\n </Button>\n );\n } else {\n callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logClick}\n verifiedMode={verifiedMode}\n block\n />\n );\n }\n\n if (offer) { // if there's a first purchase discount, message the code at the bottom\n offerCode = (\n <div className=\"text-center discount-info\">\n <FormattedMessage\n id=\"learning.generic.upgradeNotification.code\"\n defaultMessage=\"Use code {code} at checkout\"\n values={{\n code: (<span className=\"font-weight-bold\">{offer.code}</span>),\n }}\n />\n </div>\n );\n }\n\n return (\n <section className={classNames('upgrade-notification small', { 'card mb-4': shouldDisplayBorder })}>\n <div id=\"courseHome-upgradeNotification\">\n <CertificatePreview courseId={courseId} />\n <h2\n className={classNames('h5 upgrade-notification-header', {\n 'd-flex align-items-center mr-2 ml-4 my-1.5 font-size-18': !!toggleSidebar,\n })}\n id=\"outline-sidebar-upgrade-header\"\n >\n {upgradeNotificationHeaderText}\n {!!toggleSidebar && (\n <div className=\"d-inline-flex ml-auto\">\n <IconButton\n src={Close}\n size=\"sm\"\n iconAs={Icon}\n onClick={toggleSidebar}\n className=\"icon-hover\"\n alt={intl.formatMessage(messages.close)}\n />\n </div>\n )}\n </h2>\n {expirationBanner}\n <div className=\"upgrade-notification-message\">\n {upsellMessage}\n </div>\n <div className=\"upgrade-notification-button\">\n {callToActionButton}\n </div>\n {offerCode}\n </div>\n </section>\n );\n};\n\nExperimentalUpgradeNotification.propTypes = {\n id: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n setNotificationCurrentState: PropTypes.func,\n toggleSidebar: PropTypes.func,\n optimizely: PropTypes.node.isRequired,\n};\n\nExperimentalUpgradeNotification.defaultProps = {\n setNotificationCurrentState: null,\n toggleSidebar: null,\n};\n\nexport default injectIntl(withOptimizely(ExperimentalUpgradeNotification));\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LifetimeAccessBullet = exports.GradesAndFeedbackBullet = exports.AdditionalToolsBullet = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _faCheck = require("@fortawesome/free-solid-svg-icons/faCheck");
|
|
9
|
+
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
const CheckmarkBullet = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
13
|
+
className: "fa-li",
|
|
14
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
15
|
+
icon: _faCheck.faCheck
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
// Must be child of a <ul className="fa-ul">
|
|
20
|
+
const LifetimeAccessBullet = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
|
|
21
|
+
className: "upsell-bullet",
|
|
22
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CheckmarkBullet, {}), "Lifetime access to course materials"]
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// Must be child of a <ul className="fa-ul">
|
|
26
|
+
exports.LifetimeAccessBullet = LifetimeAccessBullet;
|
|
27
|
+
const GradesAndFeedbackBullet = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
|
|
28
|
+
className: "upsell-bullet",
|
|
29
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CheckmarkBullet, {}), "Graded assignments and instructor feedback"]
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// Must be child of a <ul className="fa-ul">
|
|
33
|
+
exports.GradesAndFeedbackBullet = GradesAndFeedbackBullet;
|
|
34
|
+
const AdditionalToolsBullet = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
|
|
35
|
+
className: "upsell-bullet",
|
|
36
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CheckmarkBullet, {}), "Additional learning tools such as the AI-Powered Xpert Learning Assistant"]
|
|
37
|
+
});
|
|
38
|
+
exports.AdditionalToolsBullet = AdditionalToolsBullet;
|
|
39
|
+
//# sourceMappingURL=ExperimentalUpsellBullets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExperimentalUpsellBullets.js","names":["_react","_interopRequireDefault","require","_faCheck","_reactFontawesome","_jsxRuntime","obj","__esModule","default","CheckmarkBullet","jsx","className","children","FontAwesomeIcon","icon","faCheck","LifetimeAccessBullet","jsxs","exports","GradesAndFeedbackBullet","AdditionalToolsBullet"],"sources":["../../src/upsell-bullets/ExperimentalUpsellBullets.jsx"],"sourcesContent":["import React from 'react';\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nconst CheckmarkBullet = () => (\n <span className=\"fa-li\"><FontAwesomeIcon icon={faCheck} /></span>\n);\n\n// Must be child of a <ul className=\"fa-ul\">\nexport const LifetimeAccessBullet = () => (\n <li className=\"upsell-bullet\">\n <CheckmarkBullet />\n Lifetime access to course materials\n </li>\n);\n\n// Must be child of a <ul className=\"fa-ul\">\nexport const GradesAndFeedbackBullet = () => (\n <li className=\"upsell-bullet\">\n <CheckmarkBullet />\n Graded assignments and instructor feedback\n </li>\n);\n\n// Must be child of a <ul className=\"fa-ul\">\nexport const AdditionalToolsBullet = () => (\n <li className=\"upsell-bullet\">\n <CheckmarkBullet />\n Additional learning tools such as the AI-Powered Xpert Learning Assistant\n </li>\n);\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,IAAAC,QAAA,GAAAD,OAAA;AAE1B,IAAAE,iBAAA,GAAAF,OAAA;AAAiE,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEjE,MAAMG,eAAe,GAAGA,CAAA,kBACtB,IAAAJ,WAAA,CAAAK,GAAA;EAAMC,SAAS,EAAC,OAAO;EAAAC,QAAA,eAAC,IAAAP,WAAA,CAAAK,GAAA,EAACN,iBAAA,CAAAS,eAAe;IAACC,IAAI,EAAEC;EAAQ,CAAE;AAAC,CAAM,CACjE;;AAED;AACO,MAAMC,oBAAoB,GAAGA,CAAA,kBAClC,IAAAX,WAAA,CAAAY,IAAA;EAAIN,SAAS,EAAC,eAAe;EAAAC,QAAA,gBAC3B,IAAAP,WAAA,CAAAK,GAAA,EAACD,eAAe,IAAE,CAAC,uCAErB;AAAA,CAAI,CACL;;AAED;AAAAS,OAAA,CAAAF,oBAAA,GAAAA,oBAAA;AACO,MAAMG,uBAAuB,GAAGA,CAAA,kBACrC,IAAAd,WAAA,CAAAY,IAAA;EAAIN,SAAS,EAAC,eAAe;EAAAC,QAAA,gBAC3B,IAAAP,WAAA,CAAAK,GAAA,EAACD,eAAe,IAAE,CAAC,8CAErB;AAAA,CAAI,CACL;;AAED;AAAAS,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AACO,MAAMC,qBAAqB,GAAGA,CAAA,kBACnC,IAAAf,WAAA,CAAAY,IAAA;EAAIN,SAAS,EAAC,eAAe;EAAAC,QAAA,gBAC3B,IAAAP,WAAA,CAAAK,GAAA,EAACD,eAAe,IAAE,CAAC,6EAErB;AAAA,CAAI,CACL;AAACS,OAAA,CAAAE,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.VerifiedCertBullet = exports.UnlockGradedBullet = exports.SupportMissionBullet = exports.FullAccessBullet = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _faCheck = require("@fortawesome/free-solid-svg-icons/faCheck");
|
|
9
9
|
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
10
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
11
|
+
var _frontendPlatform = require("@edx/frontend-platform");
|
|
10
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
14
|
const CheckmarkBullet = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
@@ -17,23 +19,106 @@ const CheckmarkBullet = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
|
17
19
|
});
|
|
18
20
|
|
|
19
21
|
// Must be child of a <ul className="fa-ul">
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const VerifiedCertBullet = () => {
|
|
23
|
+
const verifiedCertLink = /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
|
24
|
+
className: "inline-link-underline font-weight-bold",
|
|
25
|
+
rel: "noopener noreferrer",
|
|
26
|
+
target: "_blank",
|
|
27
|
+
href: `${(0, _frontendPlatform.getConfig)().MARKETING_SITE_BASE_URL}/verified-certificate`,
|
|
28
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
29
|
+
id: "advertisements.upsell.verifiedCertBullet.verifiedCert",
|
|
30
|
+
defaultMessage: "verified certificate",
|
|
31
|
+
description: "Bolded words 'verified certificate', which is the name of credential the learner receives."
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
|
|
35
|
+
className: "upsell-bullets",
|
|
36
|
+
"data-testid": "verified-cert-bullet",
|
|
37
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CheckmarkBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
38
|
+
id: "advertisements.upsell.verifiedCertBullet",
|
|
39
|
+
defaultMessage: "Earn a {verifiedCertLink} of completion to showcase on your resum\xE9",
|
|
40
|
+
description: "Bullet showcasing benefit of earned credential.",
|
|
41
|
+
values: {
|
|
42
|
+
verifiedCertLink
|
|
43
|
+
}
|
|
44
|
+
})]
|
|
45
|
+
});
|
|
46
|
+
};
|
|
24
47
|
|
|
25
48
|
// Must be child of a <ul className="fa-ul">
|
|
26
|
-
exports.
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
49
|
+
exports.VerifiedCertBullet = VerifiedCertBullet;
|
|
50
|
+
const UnlockGradedBullet = () => {
|
|
51
|
+
const gradedAssignmentsInBoldText = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
52
|
+
className: "font-weight-bold",
|
|
53
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
54
|
+
id: "advertisements.upsell.unlockGradedBullet.gradedAssignments",
|
|
55
|
+
defaultMessage: "graded assignments",
|
|
56
|
+
description: "Bolded words 'graded assignments', which are the bolded portion of a bullet point highlighting that course content is unlocked when purchasing an upgrade. Graded assignments are any course content that is graded and are unlocked by upgrading to verified certificates."
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
|
|
60
|
+
className: "upsell-bullets",
|
|
61
|
+
"data-testid": "unlock-graded-bullet",
|
|
62
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CheckmarkBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
63
|
+
id: "advertisements.upsell.unlockGradedBullet",
|
|
64
|
+
defaultMessage: "Unlock your access to all course activities, including {gradedAssignmentsInBoldText}",
|
|
65
|
+
description: "Bullet showcasing benefit of additional course material.",
|
|
66
|
+
values: {
|
|
67
|
+
gradedAssignmentsInBoldText
|
|
68
|
+
}
|
|
69
|
+
})]
|
|
70
|
+
});
|
|
71
|
+
};
|
|
31
72
|
|
|
32
73
|
// Must be child of a <ul className="fa-ul">
|
|
33
|
-
exports.
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
74
|
+
exports.UnlockGradedBullet = UnlockGradedBullet;
|
|
75
|
+
const FullAccessBullet = () => {
|
|
76
|
+
const fullAccessInBoldText = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
77
|
+
className: "font-weight-bold",
|
|
78
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
79
|
+
id: "advertisements.upsell.fullAccessBullet.fullAccess",
|
|
80
|
+
defaultMessage: "Full access",
|
|
81
|
+
description: "Bolded phrase 'Full access', which is the bolded portion of a bullet point highlighting that access to course content will not have time limits."
|
|
82
|
+
})
|
|
83
|
+
});
|
|
84
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
|
|
85
|
+
className: "upsell-bullets",
|
|
86
|
+
"data-testid": "full-access-bullet",
|
|
87
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CheckmarkBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
88
|
+
id: "advertisements.upsell.fullAccessBullet",
|
|
89
|
+
defaultMessage: "{fullAccessInBoldText} to course content and materials, even after the course ends",
|
|
90
|
+
description: "Bullet showcasing upgrade lifts access durations.",
|
|
91
|
+
values: {
|
|
92
|
+
fullAccessInBoldText
|
|
93
|
+
}
|
|
94
|
+
})]
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// Must be child of a <ul className="fa-ul">
|
|
99
|
+
exports.FullAccessBullet = FullAccessBullet;
|
|
100
|
+
const SupportMissionBullet = () => {
|
|
101
|
+
const missionInBoldText = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
102
|
+
className: "font-weight-bold",
|
|
103
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
104
|
+
id: "advertisements.upsell.supportMissionBullet.mission",
|
|
105
|
+
defaultMessage: "mission",
|
|
106
|
+
description: "Bolded word 'mission', which is the bolded portion of a bullet point encouraging the learner to support the goals of the website."
|
|
107
|
+
})
|
|
108
|
+
});
|
|
109
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
|
|
110
|
+
className: "upsell-bullets",
|
|
111
|
+
"data-testid": "support-mission-bullet",
|
|
112
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CheckmarkBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
113
|
+
id: "advertisements.upsell.supportMissionBullet",
|
|
114
|
+
defaultMessage: "Support our {missionInBoldText} at {siteName}",
|
|
115
|
+
description: "Bullet encouraging user to support edX's goals.",
|
|
116
|
+
values: {
|
|
117
|
+
missionInBoldText,
|
|
118
|
+
siteName: (0, _frontendPlatform.getConfig)().SITE_NAME
|
|
119
|
+
}
|
|
120
|
+
})]
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
exports.SupportMissionBullet = SupportMissionBullet;
|
|
39
124
|
//# sourceMappingURL=UpsellBullets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpsellBullets.js","names":["_react","_interopRequireDefault","require","_faCheck","_reactFontawesome","_jsxRuntime","obj","__esModule","default","CheckmarkBullet","jsx","className","children","FontAwesomeIcon","icon","faCheck","
|
|
1
|
+
{"version":3,"file":"UpsellBullets.js","names":["_react","_interopRequireDefault","require","_faCheck","_reactFontawesome","_i18n","_frontendPlatform","_jsxRuntime","obj","__esModule","default","CheckmarkBullet","jsx","className","children","FontAwesomeIcon","icon","faCheck","VerifiedCertBullet","verifiedCertLink","rel","target","href","getConfig","MARKETING_SITE_BASE_URL","FormattedMessage","id","defaultMessage","description","jsxs","values","exports","UnlockGradedBullet","gradedAssignmentsInBoldText","FullAccessBullet","fullAccessInBoldText","SupportMissionBullet","missionInBoldText","siteName","SITE_NAME"],"sources":["../../src/upsell-bullets/UpsellBullets.jsx"],"sourcesContent":["import React from 'react';\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { FormattedMessage } from '@edx/frontend-platform/i18n';\nimport { getConfig } from '@edx/frontend-platform';\n\nconst CheckmarkBullet = () => (\n <span className=\"fa-li\"><FontAwesomeIcon icon={faCheck} /></span>\n);\n\n// Must be child of a <ul className=\"fa-ul\">\nexport const VerifiedCertBullet = () => {\n const verifiedCertLink = (\n <a className=\"inline-link-underline font-weight-bold\" rel=\"noopener noreferrer\" target=\"_blank\" href={`${getConfig().MARKETING_SITE_BASE_URL}/verified-certificate`}>\n <FormattedMessage\n id=\"advertisements.upsell.verifiedCertBullet.verifiedCert\"\n defaultMessage=\"verified certificate\"\n description=\"Bolded words 'verified certificate', which is the name of credential the learner receives.\"\n />\n </a>\n );\n return (\n <li className=\"upsell-bullets\" data-testid=\"verified-cert-bullet\">\n <CheckmarkBullet />\n <FormattedMessage\n id=\"advertisements.upsell.verifiedCertBullet\"\n defaultMessage=\"Earn a {verifiedCertLink} of completion to showcase on your resumé\"\n description=\"Bullet showcasing benefit of earned credential.\"\n values={{ verifiedCertLink }}\n />\n </li>\n );\n};\n\n// Must be child of a <ul className=\"fa-ul\">\nexport const UnlockGradedBullet = () => {\n const gradedAssignmentsInBoldText = (\n <span className=\"font-weight-bold\">\n <FormattedMessage\n id=\"advertisements.upsell.unlockGradedBullet.gradedAssignments\"\n defaultMessage=\"graded assignments\"\n description=\"Bolded words 'graded assignments', which are the bolded portion of a bullet point highlighting that course content is unlocked when purchasing an upgrade. Graded assignments are any course content that is graded and are unlocked by upgrading to verified certificates.\"\n />\n </span>\n );\n return (\n <li className=\"upsell-bullets\" data-testid=\"unlock-graded-bullet\">\n <CheckmarkBullet />\n <FormattedMessage\n id=\"advertisements.upsell.unlockGradedBullet\"\n defaultMessage=\"Unlock your access to all course activities, including {gradedAssignmentsInBoldText}\"\n description=\"Bullet showcasing benefit of additional course material.\"\n values={{ gradedAssignmentsInBoldText }}\n />\n </li>\n );\n};\n\n// Must be child of a <ul className=\"fa-ul\">\nexport const FullAccessBullet = () => {\n const fullAccessInBoldText = (\n <span className=\"font-weight-bold\">\n <FormattedMessage\n id=\"advertisements.upsell.fullAccessBullet.fullAccess\"\n defaultMessage=\"Full access\"\n description=\"Bolded phrase 'Full access', which is the bolded portion of a bullet point highlighting that access to course content will not have time limits.\"\n />\n </span>\n );\n return (\n <li className=\"upsell-bullets\" data-testid=\"full-access-bullet\">\n <CheckmarkBullet />\n <FormattedMessage\n id=\"advertisements.upsell.fullAccessBullet\"\n defaultMessage=\"{fullAccessInBoldText} to course content and materials, even after the course ends\"\n description=\"Bullet showcasing upgrade lifts access durations.\"\n values={{ fullAccessInBoldText }}\n />\n </li>\n );\n};\n\n// Must be child of a <ul className=\"fa-ul\">\nexport const SupportMissionBullet = () => {\n const missionInBoldText = (\n <span className=\"font-weight-bold\">\n <FormattedMessage\n id=\"advertisements.upsell.supportMissionBullet.mission\"\n defaultMessage=\"mission\"\n description=\"Bolded word 'mission', which is the bolded portion of a bullet point encouraging the learner to support the goals of the website.\"\n />\n </span>\n );\n return (\n <li className=\"upsell-bullets\" data-testid=\"support-mission-bullet\">\n <CheckmarkBullet />\n <FormattedMessage\n id=\"advertisements.upsell.supportMissionBullet\"\n defaultMessage=\"Support our {missionInBoldText} at {siteName}\"\n description=\"Bullet encouraging user to support edX's goals.\"\n values={{ missionInBoldText, siteName: getConfig().SITE_NAME }}\n />\n </li>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "AdditionalToolsBullet", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _ExperimentalUpsellBullets.AdditionalToolsBullet;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "FullAccessBullet", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _UpsellBullets.FullAccessBullet;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "GradesAndFeedbackBullet", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _ExperimentalUpsellBullets.GradesAndFeedbackBullet;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "LifetimeAccessBullet", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _ExperimentalUpsellBullets.LifetimeAccessBullet;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "SupportMissionBullet", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _UpsellBullets.SupportMissionBullet;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "UnlockGradedBullet", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _UpsellBullets.UnlockGradedBullet;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "VerifiedCertBullet", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _UpsellBullets.VerifiedCertBullet;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
var _UpsellBullets = require("./UpsellBullets");
|
|
49
|
+
var _ExperimentalUpsellBullets = require("./ExperimentalUpsellBullets");
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_UpsellBullets","require","_ExperimentalUpsellBullets"],"sources":["../../src/upsell-bullets/index.jsx"],"sourcesContent":["export {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from './UpsellBullets';\nexport {\n LifetimeAccessBullet,\n GradesAndFeedbackBullet,\n AdditionalToolsBullet,\n} from './ExperimentalUpsellBullets';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAMA,IAAAC,0BAAA,GAAAD,OAAA","ignoreList":[]}
|