@edx/frontend-plugin-advertisements 1.26.8 → 1.27.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/index.js +6 -0
- package/dist/data/index.js.map +1 -1
- package/dist/data/optimizely.js +10 -1
- package/dist/data/optimizely.js.map +1 -1
- package/dist/upgrade-modal/UpgradeModal.js +1 -1
- package/dist/upgrade-modal/UpgradeModal.js.map +1 -1
- package/dist/upgrade-notification/DefaultUpgradeNotification.js +33 -288
- package/dist/upgrade-notification/DefaultUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js +79 -302
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/UpgradeNotification.js +1 -1
- package/dist/upgrade-notification/UpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/generic/AccessExpirationDateBanner.js +57 -0
- package/dist/upgrade-notification/generic/AccessExpirationDateBanner.js.map +1 -0
- package/dist/upgrade-notification/generic/ExpirationCountdown.js +102 -0
- package/dist/upgrade-notification/generic/ExpirationCountdown.js.map +1 -0
- package/dist/upgrade-notification/generic/PastExpirationCardContent.js +25 -0
- package/dist/upgrade-notification/generic/PastExpirationCardContent.js.map +1 -0
- package/dist/upgrade-notification/generic/PastExpirationDateBanner.js +57 -0
- package/dist/upgrade-notification/generic/PastExpirationDateBanner.js.map +1 -0
- package/dist/upgrade-notification/generic/UpsellFBESoonCardContent.js +81 -0
- package/dist/upgrade-notification/generic/UpsellFBESoonCardContent.js.map +1 -0
- package/dist/upgrade-notification/generic/UpsellFarAwayCardContent.js +30 -0
- package/dist/upgrade-notification/generic/UpsellFarAwayCardContent.js.map +1 -0
- package/dist/upgrade-notification/generic/index.js +49 -0
- package/dist/upgrade-notification/generic/index.js.map +1 -0
- package/dist/upgrade-notification/messages.js +51 -0
- package/dist/upgrade-notification/messages.js.map +1 -0
- package/dist/upsell-bullets/ExperimentalUpsellBullets.js +75 -31
- package/dist/upsell-bullets/ExperimentalUpsellBullets.js.map +1 -1
- package/dist/upsell-bullets/ExperimentalUpsellTable.js +157 -0
- package/dist/upsell-bullets/ExperimentalUpsellTable.js.map +1 -0
- package/dist/upsell-bullets/ExperimentalUpsellTable.scss +61 -0
- package/dist/upsell-bullets/UpsellBullets.js +61 -52
- package/dist/upsell-bullets/UpsellBullets.js.map +1 -1
- package/dist/upsell-bullets/UpsellBullets.scss +0 -5
- package/dist/upsell-bullets/index.js +0 -19
- package/dist/upsell-bullets/index.js.map +1 -1
- package/dist/upsell-bullets/messages.js +66 -0
- package/dist/upsell-bullets/messages.js.map +1 -0
- package/package.json +1 -6
package/dist/data/index.js
CHANGED
|
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "OPTIMIZELY_VTR_MODAL_EXPERIMENT", {
|
|
|
27
27
|
return _optimizely.OPTIMIZELY_VTR_MODAL_EXPERIMENT;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
+
Object.defineProperty(exports, "OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _optimizely.OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
30
36
|
Object.defineProperty(exports, "getOptimizely", {
|
|
31
37
|
enumerable: true,
|
|
32
38
|
get: function () {
|
package/dist/data/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_optimizely","require"],"sources":["../../src/data/index.jsx"],"sourcesContent":["export {\n getOptimizely,\n OPTIMIZELY_EVENT_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY,\n OPTIMIZELY_VTR_MODAL_EXPERIMENT,\n} from './optimizely';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_optimizely","require"],"sources":["../../src/data/index.jsx"],"sourcesContent":["export {\n getOptimizely,\n OPTIMIZELY_EVENT_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY,\n OPTIMIZELY_VTR_MODAL_EXPERIMENT,\n OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT,\n} from './optimizely';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA","ignoreList":[]}
|
package/dist/data/optimizely.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getOptimizely = exports.OPTIMIZELY_VTR_MODAL_EXPERIMENT = exports.OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS = exports.OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY = exports.OPTIMIZELY_EVENT_KEYS = void 0;
|
|
6
|
+
exports.getOptimizely = exports.OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT = exports.OPTIMIZELY_VTR_MODAL_EXPERIMENT = exports.OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS = exports.OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY = exports.OPTIMIZELY_EVENT_KEYS = void 0;
|
|
7
7
|
var _reactSdk = require("@optimizely/react-sdk");
|
|
8
8
|
var _frontendPlatform = require("@edx/frontend-platform");
|
|
9
9
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -48,6 +48,15 @@ const OPTIMIZELY_VTR_MODAL_EXPERIMENT = exports.OPTIMIZELY_VTR_MODAL_EXPERIMENT
|
|
|
48
48
|
OFF: 'off'
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
|
+
const OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT = exports.OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT = {
|
|
52
|
+
KEY: 'evenly_split_a_b_c',
|
|
53
|
+
ACTION: '',
|
|
54
|
+
VARIATIONS: {
|
|
55
|
+
OFF: 'off',
|
|
56
|
+
TABLE: 'comparison table',
|
|
57
|
+
BULLETS: 'new bullets'
|
|
58
|
+
}
|
|
59
|
+
};
|
|
51
60
|
const OPTIMIZELY_EVENT_KEYS = exports.OPTIMIZELY_EVENT_KEYS = {
|
|
52
61
|
UPGRADE_BUTTON_CLICK: 'upgrade_button_click',
|
|
53
62
|
DECLINE_UPGRADE_BUTTON_CLICK: 'decline_upgrade_button_click'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimizely.js","names":["_reactSdk","require","_frontendPlatform","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ensureConfig","DEFAULT_OPTIMIZELY_AGENT_CONFIG","eventFlushInterval","eventBatchSize","getOptimizely","OPTIMIZELY_SDK_KEY","getConfig","OPTIMIZELY_FULL_STACK_SDK_KEY","OPTIMIZELY_AGENT_CONFIG","createInstance","sdkKey","exports","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS","CERTIFICATE_PREVIEW","CERTIFICATE_PREVIEW_WITH_COPY","CONTROL","OFF","OPTIMIZELY_VTR_MODAL_EXPERIMENT","KEY","ACTION","VARIATIONS","ON","OPTIMIZELY_EVENT_KEYS","UPGRADE_BUTTON_CLICK","DECLINE_UPGRADE_BUTTON_CLICK"],"sources":["../../src/data/optimizely.js"],"sourcesContent":["import { createInstance } from '@optimizely/react-sdk';\nimport { ensureConfig, getConfig } from '@edx/frontend-platform';\n\nensureConfig([\n 'OPTIMIZELY_FULL_STACK_SDK_KEY',\n], 'Frontend Plugin Advertisements Optimizely module');\n\nconst DEFAULT_OPTIMIZELY_AGENT_CONFIG = {\n eventFlushInterval: 1000,\n eventBatchSize: 10,\n};\n\n/**\n * Initializing the Optimizely instance at the top-level will not work, becaused it may be initialized before\n * the OPTIMIZELY_FULL_STACK_SDK_KEY is available and will not be reinitialized afterward. Wrapping the initialization\n * in a function allows components to request the instance as-needed.\n */\nconst getOptimizely = () => {\n const OPTIMIZELY_SDK_KEY = getConfig().OPTIMIZELY_FULL_STACK_SDK_KEY;\n const OPTIMIZELY_AGENT_CONFIG = getConfig().OPTIMIZELY_AGENT_CONFIG || {};\n\n if (OPTIMIZELY_SDK_KEY) {\n return createInstance({\n sdkKey: OPTIMIZELY_SDK_KEY,\n ...{\n ...DEFAULT_OPTIMIZELY_AGENT_CONFIG,\n ...OPTIMIZELY_AGENT_CONFIG,\n },\n });\n }\n\n return null;\n};\n\nconst OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY = 'verified_take_rate_preview_watermark_experimentation';\n\nconst OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS = {\n CERTIFICATE_PREVIEW: 'certificate_preview',\n CERTIFICATE_PREVIEW_WITH_COPY: 'certificate_preview_with_copy',\n CONTROL: 'control',\n OFF: 'off',\n};\n\nconst OPTIMIZELY_VTR_MODAL_EXPERIMENT = {\n KEY: 'vtr_in_course_popup_modal_all_orgs',\n ACTION: 'modal_upgrade_button_click',\n VARIATIONS: {\n ON: 'on', OFF: 'off',\n },\n};\n\nconst OPTIMIZELY_EVENT_KEYS = {\n UPGRADE_BUTTON_CLICK: 'upgrade_button_click',\n DECLINE_UPGRADE_BUTTON_CLICK: 'decline_upgrade_button_click',\n};\n\nexport {\n getOptimizely,\n OPTIMIZELY_EVENT_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS,\n OPTIMIZELY_VTR_MODAL_EXPERIMENT,\n};\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"optimizely.js","names":["_reactSdk","require","_frontendPlatform","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ensureConfig","DEFAULT_OPTIMIZELY_AGENT_CONFIG","eventFlushInterval","eventBatchSize","getOptimizely","OPTIMIZELY_SDK_KEY","getConfig","OPTIMIZELY_FULL_STACK_SDK_KEY","OPTIMIZELY_AGENT_CONFIG","createInstance","sdkKey","exports","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS","CERTIFICATE_PREVIEW","CERTIFICATE_PREVIEW_WITH_COPY","CONTROL","OFF","OPTIMIZELY_VTR_MODAL_EXPERIMENT","KEY","ACTION","VARIATIONS","ON","OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT","TABLE","BULLETS","OPTIMIZELY_EVENT_KEYS","UPGRADE_BUTTON_CLICK","DECLINE_UPGRADE_BUTTON_CLICK"],"sources":["../../src/data/optimizely.js"],"sourcesContent":["import { createInstance } from '@optimizely/react-sdk';\nimport { ensureConfig, getConfig } from '@edx/frontend-platform';\n\nensureConfig([\n 'OPTIMIZELY_FULL_STACK_SDK_KEY',\n], 'Frontend Plugin Advertisements Optimizely module');\n\nconst DEFAULT_OPTIMIZELY_AGENT_CONFIG = {\n eventFlushInterval: 1000,\n eventBatchSize: 10,\n};\n\n/**\n * Initializing the Optimizely instance at the top-level will not work, becaused it may be initialized before\n * the OPTIMIZELY_FULL_STACK_SDK_KEY is available and will not be reinitialized afterward. Wrapping the initialization\n * in a function allows components to request the instance as-needed.\n */\nconst getOptimizely = () => {\n const OPTIMIZELY_SDK_KEY = getConfig().OPTIMIZELY_FULL_STACK_SDK_KEY;\n const OPTIMIZELY_AGENT_CONFIG = getConfig().OPTIMIZELY_AGENT_CONFIG || {};\n\n if (OPTIMIZELY_SDK_KEY) {\n return createInstance({\n sdkKey: OPTIMIZELY_SDK_KEY,\n ...{\n ...DEFAULT_OPTIMIZELY_AGENT_CONFIG,\n ...OPTIMIZELY_AGENT_CONFIG,\n },\n });\n }\n\n return null;\n};\n\nconst OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY = 'verified_take_rate_preview_watermark_experimentation';\n\nconst OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS = {\n CERTIFICATE_PREVIEW: 'certificate_preview',\n CERTIFICATE_PREVIEW_WITH_COPY: 'certificate_preview_with_copy',\n CONTROL: 'control',\n OFF: 'off',\n};\n\nconst OPTIMIZELY_VTR_MODAL_EXPERIMENT = {\n KEY: 'vtr_in_course_popup_modal_all_orgs',\n ACTION: 'modal_upgrade_button_click',\n VARIATIONS: {\n ON: 'on', OFF: 'off',\n },\n};\n\nconst OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT = {\n KEY: 'evenly_split_a_b_c',\n ACTION: '',\n VARIATIONS: {\n OFF: 'off',\n TABLE: 'comparison table',\n BULLETS: 'new bullets',\n },\n};\n\nconst OPTIMIZELY_EVENT_KEYS = {\n UPGRADE_BUTTON_CLICK: 'upgrade_button_click',\n DECLINE_UPGRADE_BUTTON_CLICK: 'decline_upgrade_button_click',\n};\n\nexport {\n getOptimizely,\n OPTIMIZELY_EVENT_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS,\n OPTIMIZELY_VTR_MODAL_EXPERIMENT,\n OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -179,8 +179,8 @@ const UpgradeModal = _ref => {
|
|
|
179
179
|
className: "pl-2 text-gray-700",
|
|
180
180
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
|
|
181
181
|
gap: 3,
|
|
182
|
-
role: "listitem",
|
|
183
182
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
|
|
183
|
+
role: "listitem",
|
|
184
184
|
direction: "horizontal",
|
|
185
185
|
gap: 3,
|
|
186
186
|
className: "align-items-start",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpgradeModal.js","names":["_react","require","_propTypes","_interopRequireDefault","_reactSdk","_frontendPlatform","_analytics","_i18n","_paragon","_icons","_data","_certificatePreview","_jsxRuntime","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","UpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","optimizely","decision","useDecision","OPTIMIZELY_VTR_MODAL_EXPERIMENT","KEY","variationKey","enabled","experimentProperties","experiment_key","variation_key","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","VARIATIONS","ON","sendTrackingLogEvent","sendTrackEvent","OFF","logClick","location","linkCategory","linkName","linkType","pageName","track","ACTION","logClickPastExpiration","intl","useIntl","dateNow","Date","now","currencySymbol","price","upgradeUrl","upgradeDeadlineDate","upgradeDeadline","pastDeadline","modalTitle","formatMessage","id","defaultMessage","description","callToActionButton","jsx","Button","className","onClick","href","children","jsxs","MarketingModal","title","onClose","isBlocking","size","heroIsDark","heroNode","ModalDialog","Hero","style","background","borderTopLeftRadius","borderTopRightRadius","Content","bgColor","footerNode","ActionRow","isStacked","values","code","role","Stack","gap","direction","Icon","src","Check","linkedContent","Hyperlink","destination","getConfig","MARKETING_SITE_BASE_URL","boldContent","defaultProps","propTypes","PropTypes","shape","number","isRequired","string","func","bool","object","_default","exports","withOptimizely"],"sources":["../../src/upgrade-modal/UpgradeModal.jsx"],"sourcesContent":["import { useEffect, React } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDecision, withOptimizely } from '@optimizely/react-sdk';\nimport { getConfig } from '@edx/frontend-platform';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow, Button, Hyperlink, Icon, MarketingModal, ModalDialog, Stack,\n} from '@openedx/paragon';\nimport { Check } from '@openedx/paragon/icons';\nimport { OPTIMIZELY_VTR_MODAL_EXPERIMENT } from '../data';\nimport CertificatePreview from '../upgrade-notification/certificate-preview';\n\nconst UpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n optimizely,\n}) => {\n const [decision] = useDecision(OPTIMIZELY_VTR_MODAL_EXPERIMENT.KEY);\n const { variationKey, enabled } = 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_MODAL_EXPERIMENT.KEY,\n variation_key: variationKey,\n };\n\n const upsellPageName = 'course_sequence_modal';\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n const promotionEventProperties = {\n creative: 'marketmodalupsell',\n name: 'In-Course Verification Prompt',\n position: 'marketing-modal-message',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n ...experimentProperties,\n };\n\n useEffect(() => {\n if (variationKey === OPTIMIZELY_VTR_MODAL_EXPERIMENT.VARIATIONS.ON) {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketmodalupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n } else if (variationKey === OPTIMIZELY_VTR_MODAL_EXPERIMENT.VARIATIONS.OFF) {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketmodalupsell.not_displayed', eventProperties);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variationKey]);\n\n const logClick = () => {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketingmodal.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'marketing-modal-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(OPTIMIZELY_VTR_MODAL_EXPERIMENT.ACTION);\n };\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', {\n ...eventProperties,\n ...experimentProperties,\n linkCategory: 'upgrade_modal',\n linkName: `${upsellPageName}_course_details`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n const intl = useIntl();\n const dateNow = Date.now();\n const { currencySymbol, price, upgradeUrl } = verifiedMode || {};\n const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;\n const modalTitle = intl.formatMessage({\n id: 'learning.upgrade-modal.title',\n defaultMessage: 'Pursue a verified certificate',\n description: 'Upgrade modal title',\n });\n let callToActionButton = (\n <Button\n className=\"w-100\"\n onClick={logClick}\n href={upgradeUrl}\n >\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.upgrade-button.label',\n defaultMessage: 'Upgrade for {currencySymbol}{price}',\n description: 'Label for upgrade button',\n },\n { currencySymbol, price },\n )}\n </Button>\n );\n\n if (pastDeadline) {\n callToActionButton = (\n <Button\n className=\"w-100\"\n onClick={logClickPastExpiration}\n href={marketingUrl}\n >\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.upgrade-button.label',\n defaultMessage: 'View course details',\n description: 'Label for upgrade button',\n },\n )}\n </Button>\n );\n }\n\n if (variationKey === OPTIMIZELY_VTR_MODAL_EXPERIMENT.VARIATIONS.OFF) {\n close();\n }\n if (!enabled) {\n return null;\n }\n\n return (\n <MarketingModal\n title={modalTitle}\n isOpen={isOpen}\n onClose={close}\n isBlocking\n size=\"md\"\n heroIsDark\n heroNode={(\n <ModalDialog.Hero\n className=\"justify-content-center\"\n style={{\n background: 'linear-gradient(#001B1E, #0E3639)',\n borderTopLeftRadius: '6.8px',\n borderTopRightRadius: '6.8px',\n }}\n >\n <ModalDialog.Hero.Content className=\"m-0 text-primary-500\">\n {/* TODO: replace with simplified */}\n <CertificatePreview {...{ courseId, bgColor: 'bg-light-100' }} />\n </ModalDialog.Hero.Content>\n </ModalDialog.Hero>\n )}\n footerNode={(\n <ActionRow isStacked className=\"mb-2\">\n {callToActionButton}\n {offer && (\n <div className=\"text-center discount-info\">\n {intl.formatMessage({\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 </ActionRow>\n )}\n >\n <h2 className=\"h3 mb-3 mt-2.5\">\n {modalTitle}\n </h2>\n <div role=\"list\" className=\"pl-2 text-gray-700\">\n <Stack gap={3} role=\"listitem\">\n <Stack direction=\"horizontal\" gap={3} className=\"align-items-start\">\n <Icon size=\"md\" src={Check} />\n <span>\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.body-list.first-item',\n defaultMessage: 'Earn a {linkedContent} of completion to showcase your résumé',\n description: 'Message for first list item',\n },\n {\n linkedContent: (\n <Hyperlink\n className=\"font-weight-bold text-primary-500 inline-link-underline\"\n destination={`${getConfig().MARKETING_SITE_BASE_URL}/verified-certificate`}\n >\n verified certificate\n </Hyperlink>\n ),\n },\n )}\n </span>\n </Stack>\n <Stack direction=\"horizontal\" gap={3} role=\"listitem\" className=\"align-items-start\">\n <Icon size=\"md\" src={Check} />\n <span>\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.body-list.second-item',\n defaultMessage: 'Unlock your access to all course activities, including {boldContent}',\n description: 'Message for second list item',\n },\n {\n boldContent: (\n <span className=\"font-weight-bold\">\n graded assignments\n </span>\n ),\n },\n )}\n </span>\n </Stack>\n <Stack direction=\"horizontal\" gap={3} role=\"listitem\" className=\"align-items-start\">\n <Icon size=\"md\" src={Check} />\n <span>\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.body-list.third-item',\n defaultMessage: '{boldContent} to course content and materials, even after the course ends',\n description: 'Message for third list item',\n },\n {\n boldContent: (\n <span className=\"font-weight-bold\">\n Full access\n </span>\n ),\n },\n )}\n </span>\n </Stack>\n <Stack direction=\"horizontal\" gap={3} role=\"listitem\" className=\"align-items-start\">\n <Icon size=\"md\" src={Check} />\n <span>\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.body-list.fourth-item',\n defaultMessage: 'Support our mission at edX',\n description: 'Message for fourth list item',\n },\n )}\n </span>\n </Stack>\n </Stack>\n </div>\n </MarketingModal>\n );\n};\n\nUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n};\nUpgradeModal.propTypes = {\n verifiedMode: PropTypes.shape({\n price: PropTypes.number.isRequired,\n currencySymbol: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.string.isRequired,\n }),\n offer: PropTypes.shape({\n code: PropTypes.string,\n }),\n accessExpiration: PropTypes.shape({\n upgradeDeadline: PropTypes.string,\n }),\n marketingUrl: PropTypes.string.isRequired,\n org: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n close: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n /* eslint-disable-next-line react/forbid-prop-types */\n optimizely: PropTypes.object.isRequired,\n};\n\nexport default withOptimizely(UpgradeModal);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"UpgradeModal.js","names":["_react","require","_propTypes","_interopRequireDefault","_reactSdk","_frontendPlatform","_analytics","_i18n","_paragon","_icons","_data","_certificatePreview","_jsxRuntime","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","UpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","optimizely","decision","useDecision","OPTIMIZELY_VTR_MODAL_EXPERIMENT","KEY","variationKey","enabled","experimentProperties","experiment_key","variation_key","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","VARIATIONS","ON","sendTrackingLogEvent","sendTrackEvent","OFF","logClick","location","linkCategory","linkName","linkType","pageName","track","ACTION","logClickPastExpiration","intl","useIntl","dateNow","Date","now","currencySymbol","price","upgradeUrl","upgradeDeadlineDate","upgradeDeadline","pastDeadline","modalTitle","formatMessage","id","defaultMessage","description","callToActionButton","jsx","Button","className","onClick","href","children","jsxs","MarketingModal","title","onClose","isBlocking","size","heroIsDark","heroNode","ModalDialog","Hero","style","background","borderTopLeftRadius","borderTopRightRadius","Content","bgColor","footerNode","ActionRow","isStacked","values","code","role","Stack","gap","direction","Icon","src","Check","linkedContent","Hyperlink","destination","getConfig","MARKETING_SITE_BASE_URL","boldContent","defaultProps","propTypes","PropTypes","shape","number","isRequired","string","func","bool","object","_default","exports","withOptimizely"],"sources":["../../src/upgrade-modal/UpgradeModal.jsx"],"sourcesContent":["import { useEffect, React } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDecision, withOptimizely } from '@optimizely/react-sdk';\nimport { getConfig } from '@edx/frontend-platform';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow, Button, Hyperlink, Icon, MarketingModal, ModalDialog, Stack,\n} from '@openedx/paragon';\nimport { Check } from '@openedx/paragon/icons';\nimport { OPTIMIZELY_VTR_MODAL_EXPERIMENT } from '../data';\nimport CertificatePreview from '../upgrade-notification/certificate-preview';\n\nconst UpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n optimizely,\n}) => {\n const [decision] = useDecision(OPTIMIZELY_VTR_MODAL_EXPERIMENT.KEY);\n const { variationKey, enabled } = 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_MODAL_EXPERIMENT.KEY,\n variation_key: variationKey,\n };\n\n const upsellPageName = 'course_sequence_modal';\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n const promotionEventProperties = {\n creative: 'marketmodalupsell',\n name: 'In-Course Verification Prompt',\n position: 'marketing-modal-message',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n ...experimentProperties,\n };\n\n useEffect(() => {\n if (variationKey === OPTIMIZELY_VTR_MODAL_EXPERIMENT.VARIATIONS.ON) {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketmodalupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n } else if (variationKey === OPTIMIZELY_VTR_MODAL_EXPERIMENT.VARIATIONS.OFF) {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketmodalupsell.not_displayed', eventProperties);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variationKey]);\n\n const logClick = () => {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketingmodal.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'marketing-modal-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(OPTIMIZELY_VTR_MODAL_EXPERIMENT.ACTION);\n };\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', {\n ...eventProperties,\n ...experimentProperties,\n linkCategory: 'upgrade_modal',\n linkName: `${upsellPageName}_course_details`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n const intl = useIntl();\n const dateNow = Date.now();\n const { currencySymbol, price, upgradeUrl } = verifiedMode || {};\n const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;\n const modalTitle = intl.formatMessage({\n id: 'learning.upgrade-modal.title',\n defaultMessage: 'Pursue a verified certificate',\n description: 'Upgrade modal title',\n });\n let callToActionButton = (\n <Button\n className=\"w-100\"\n onClick={logClick}\n href={upgradeUrl}\n >\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.upgrade-button.label',\n defaultMessage: 'Upgrade for {currencySymbol}{price}',\n description: 'Label for upgrade button',\n },\n { currencySymbol, price },\n )}\n </Button>\n );\n\n if (pastDeadline) {\n callToActionButton = (\n <Button\n className=\"w-100\"\n onClick={logClickPastExpiration}\n href={marketingUrl}\n >\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.upgrade-button.label',\n defaultMessage: 'View course details',\n description: 'Label for upgrade button',\n },\n )}\n </Button>\n );\n }\n\n if (variationKey === OPTIMIZELY_VTR_MODAL_EXPERIMENT.VARIATIONS.OFF) {\n close();\n }\n if (!enabled) {\n return null;\n }\n\n return (\n <MarketingModal\n title={modalTitle}\n isOpen={isOpen}\n onClose={close}\n isBlocking\n size=\"md\"\n heroIsDark\n heroNode={(\n <ModalDialog.Hero\n className=\"justify-content-center\"\n style={{\n background: 'linear-gradient(#001B1E, #0E3639)',\n borderTopLeftRadius: '6.8px',\n borderTopRightRadius: '6.8px',\n }}\n >\n <ModalDialog.Hero.Content className=\"m-0 text-primary-500\">\n {/* TODO: replace with simplified */}\n <CertificatePreview {...{ courseId, bgColor: 'bg-light-100' }} />\n </ModalDialog.Hero.Content>\n </ModalDialog.Hero>\n )}\n footerNode={(\n <ActionRow isStacked className=\"mb-2\">\n {callToActionButton}\n {offer && (\n <div className=\"text-center discount-info\">\n {intl.formatMessage({\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 </ActionRow>\n )}\n >\n <h2 className=\"h3 mb-3 mt-2.5\">\n {modalTitle}\n </h2>\n <div role=\"list\" className=\"pl-2 text-gray-700\">\n <Stack gap={3}>\n <Stack role=\"listitem\" direction=\"horizontal\" gap={3} className=\"align-items-start\">\n <Icon size=\"md\" src={Check} />\n <span>\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.body-list.first-item',\n defaultMessage: 'Earn a {linkedContent} of completion to showcase your résumé',\n description: 'Message for first list item',\n },\n {\n linkedContent: (\n <Hyperlink\n className=\"font-weight-bold text-primary-500 inline-link-underline\"\n destination={`${getConfig().MARKETING_SITE_BASE_URL}/verified-certificate`}\n >\n verified certificate\n </Hyperlink>\n ),\n },\n )}\n </span>\n </Stack>\n <Stack direction=\"horizontal\" gap={3} role=\"listitem\" className=\"align-items-start\">\n <Icon size=\"md\" src={Check} />\n <span>\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.body-list.second-item',\n defaultMessage: 'Unlock your access to all course activities, including {boldContent}',\n description: 'Message for second list item',\n },\n {\n boldContent: (\n <span className=\"font-weight-bold\">\n graded assignments\n </span>\n ),\n },\n )}\n </span>\n </Stack>\n <Stack direction=\"horizontal\" gap={3} role=\"listitem\" className=\"align-items-start\">\n <Icon size=\"md\" src={Check} />\n <span>\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.body-list.third-item',\n defaultMessage: '{boldContent} to course content and materials, even after the course ends',\n description: 'Message for third list item',\n },\n {\n boldContent: (\n <span className=\"font-weight-bold\">\n Full access\n </span>\n ),\n },\n )}\n </span>\n </Stack>\n <Stack direction=\"horizontal\" gap={3} role=\"listitem\" className=\"align-items-start\">\n <Icon size=\"md\" src={Check} />\n <span>\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.body-list.fourth-item',\n defaultMessage: 'Support our mission at edX',\n description: 'Message for fourth list item',\n },\n )}\n </span>\n </Stack>\n </Stack>\n </div>\n </MarketingModal>\n );\n};\n\nUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n};\nUpgradeModal.propTypes = {\n verifiedMode: PropTypes.shape({\n price: PropTypes.number.isRequired,\n currencySymbol: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.string.isRequired,\n }),\n offer: PropTypes.shape({\n code: PropTypes.string,\n }),\n accessExpiration: PropTypes.shape({\n upgradeDeadline: PropTypes.string,\n }),\n marketingUrl: PropTypes.string.isRequired,\n org: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n close: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n /* eslint-disable-next-line react/forbid-prop-types */\n optimizely: PropTypes.object.isRequired,\n};\n\nexport default withOptimizely(UpgradeModal);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,11 +11,11 @@ var _i18n = require("@edx/frontend-platform/i18n");
|
|
|
11
11
|
var _analytics = require("@edx/frontend-platform/analytics");
|
|
12
12
|
var _paragon = require("@openedx/paragon");
|
|
13
13
|
var _icons = require("@openedx/paragon/icons");
|
|
14
|
-
var _localStorage = require("@src/data/localStorage");
|
|
15
14
|
var _upgradeButton = require("@src/generic/upgrade-button");
|
|
16
15
|
var _modelStore = require("@src/generic/model-store");
|
|
17
|
-
var _upsellBullets = require("../upsell-bullets");
|
|
18
16
|
var _certificatePreview = _interopRequireDefault(require("./certificate-preview"));
|
|
17
|
+
var _generic = require("./generic");
|
|
18
|
+
var _messages = _interopRequireDefault(require("./messages"));
|
|
19
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
21
|
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); }
|
|
@@ -25,250 +25,17 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
25
25
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
26
26
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
27
27
|
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 */
|
|
28
|
-
const
|
|
29
|
-
className: "fa-ul upgrade-notification-ul pt-0",
|
|
30
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.VerifiedCertBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.SupportMissionBullet, {})]
|
|
31
|
-
});
|
|
32
|
-
const UpsellFBEFarAwayCardContent = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", {
|
|
33
|
-
className: "fa-ul upgrade-notification-ul",
|
|
34
|
-
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, {})]
|
|
35
|
-
});
|
|
36
|
-
const UpsellFBESoonCardContent = _ref => {
|
|
37
|
-
let {
|
|
38
|
-
accessExpirationDate,
|
|
39
|
-
timezoneFormatArgs
|
|
40
|
-
} = _ref;
|
|
41
|
-
const includingAnyProgress = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
42
|
-
className: "font-weight-bold",
|
|
43
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
44
|
-
id: "advertisements.upgradeNotification.expirationAccessLoss.progress",
|
|
45
|
-
defaultMessage: "including any progress"
|
|
46
|
-
})
|
|
47
|
-
});
|
|
48
|
-
const date = /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedDate, _objectSpread({
|
|
49
|
-
day: "numeric",
|
|
50
|
-
month: "long",
|
|
51
|
-
value: new Date(accessExpirationDate)
|
|
52
|
-
}, timezoneFormatArgs), "accessDate");
|
|
53
|
-
const benefitsOfUpgrading = /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
|
54
|
-
className: "inline-link-underline font-weight-bold",
|
|
55
|
-
rel: "noopener noreferrer",
|
|
56
|
-
target: "_blank",
|
|
57
|
-
href: "https://support.edx.org/hc/en-us/articles/360013426573-What-are-the-differences-between-audit-free-and-verified-paid-courses-",
|
|
58
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
59
|
-
id: "advertisements.upgradeNotification.expirationVerifiedCert.benefits",
|
|
60
|
-
defaultMessage: "benefits of upgrading"
|
|
61
|
-
})
|
|
62
|
-
});
|
|
63
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
64
|
-
className: "upgrade-notification-text",
|
|
65
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
66
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
67
|
-
id: "advertisements.upgradeNotification.expirationAccessLoss",
|
|
68
|
-
defaultMessage: "You will lose all access to this course, {includingAnyProgress}, on {date}.",
|
|
69
|
-
values: {
|
|
70
|
-
includingAnyProgress,
|
|
71
|
-
date
|
|
72
|
-
}
|
|
73
|
-
})
|
|
74
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
75
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
76
|
-
id: "advertisements.upgradeNotification.expirationVerifiedCert",
|
|
77
|
-
defaultMessage: "Upgrading your course enables you to pursue a verified certificate and unlocks numerous features. Learn more about the {benefitsOfUpgrading}.",
|
|
78
|
-
values: {
|
|
79
|
-
benefitsOfUpgrading
|
|
80
|
-
}
|
|
81
|
-
})
|
|
82
|
-
})]
|
|
83
|
-
});
|
|
84
|
-
};
|
|
85
|
-
UpsellFBESoonCardContent.propTypes = {
|
|
86
|
-
accessExpirationDate: _propTypes.default.PropTypes.instanceOf(Date).isRequired,
|
|
87
|
-
timezoneFormatArgs: _propTypes.default.shape({
|
|
88
|
-
timeZone: _propTypes.default.string
|
|
89
|
-
})
|
|
90
|
-
};
|
|
91
|
-
UpsellFBESoonCardContent.defaultProps = {
|
|
92
|
-
timezoneFormatArgs: {}
|
|
93
|
-
};
|
|
94
|
-
const PastExpirationCardContent = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
95
|
-
className: "upgrade-notification-text",
|
|
96
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
97
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
98
|
-
id: "advertisements.upgradeNotification.pastExpiration.content",
|
|
99
|
-
defaultMessage: "The upgrade deadline for this course passed. To upgrade, enroll in the next available session."
|
|
100
|
-
})
|
|
101
|
-
})
|
|
102
|
-
});
|
|
103
|
-
const ExpirationCountdown = _ref2 => {
|
|
104
|
-
let {
|
|
105
|
-
courseId,
|
|
106
|
-
hoursToExpiration,
|
|
107
|
-
setupgradeNotificationCurrentState,
|
|
108
|
-
type
|
|
109
|
-
} = _ref2;
|
|
110
|
-
let expirationText;
|
|
111
|
-
if (hoursToExpiration >= 24) {
|
|
112
|
-
// More than 1 day left
|
|
113
|
-
// setupgradeNotificationCurrentState is available in NotificationTray (not course home)
|
|
114
|
-
if (setupgradeNotificationCurrentState) {
|
|
115
|
-
if (type === 'access') {
|
|
116
|
-
setupgradeNotificationCurrentState('accessDaysLeft');
|
|
117
|
-
(0, _localStorage.setLocalStorage)(`upgradeNotificationCurrentState.${courseId}`, 'accessDaysLeft');
|
|
118
|
-
}
|
|
119
|
-
if (type === 'offer') {
|
|
120
|
-
setupgradeNotificationCurrentState('FPDdaysLeft');
|
|
121
|
-
(0, _localStorage.setLocalStorage)(`upgradeNotificationCurrentState.${courseId}`, 'FPDdaysLeft');
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
expirationText = /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
125
|
-
id: "advertisements.upgradeNotification.expirationDays",
|
|
126
|
-
defaultMessage: `{dayCount, number} {dayCount, plural,
|
|
127
|
-
one {day}
|
|
128
|
-
other {days}} left`,
|
|
129
|
-
values: {
|
|
130
|
-
dayCount: Math.floor(hoursToExpiration / 24)
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
} else if (hoursToExpiration >= 1) {
|
|
134
|
-
// More than 1 hour left
|
|
135
|
-
// setupgradeNotificationCurrentState is available in NotificationTray (not course home)
|
|
136
|
-
if (setupgradeNotificationCurrentState) {
|
|
137
|
-
if (type === 'access') {
|
|
138
|
-
setupgradeNotificationCurrentState('accessHoursLeft');
|
|
139
|
-
(0, _localStorage.setLocalStorage)(`upgradeNotificationCurrentState.${courseId}`, 'accessHoursLeft');
|
|
140
|
-
}
|
|
141
|
-
if (type === 'offer') {
|
|
142
|
-
setupgradeNotificationCurrentState('FPDHoursLeft');
|
|
143
|
-
(0, _localStorage.setLocalStorage)(`upgradeNotificationCurrentState.${courseId}`, 'FPDHoursLeft');
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
expirationText = /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
147
|
-
id: "advertisements.upgradeNotification.expirationHours",
|
|
148
|
-
defaultMessage: `{hourCount, number} {hourCount, plural,
|
|
149
|
-
one {hour}
|
|
150
|
-
other {hours}} left`,
|
|
151
|
-
values: {
|
|
152
|
-
hourCount: hoursToExpiration
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
} else {
|
|
156
|
-
// Less than 1 hour
|
|
157
|
-
// setupgradeNotificationCurrentState is available in NotificationTray (not course home)
|
|
158
|
-
if (setupgradeNotificationCurrentState) {
|
|
159
|
-
if (type === 'access') {
|
|
160
|
-
setupgradeNotificationCurrentState('accessLastHour');
|
|
161
|
-
(0, _localStorage.setLocalStorage)(`upgradeNotificationCurrentState.${courseId}`, 'accessLastHour');
|
|
162
|
-
}
|
|
163
|
-
if (type === 'offer') {
|
|
164
|
-
setupgradeNotificationCurrentState('FPDLastHour');
|
|
165
|
-
(0, _localStorage.setLocalStorage)(`upgradeNotificationCurrentState.${courseId}`, 'FPDLastHour');
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
expirationText = /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
169
|
-
id: "advertisements.upgradeNotification.expirationMinutes",
|
|
170
|
-
defaultMessage: "Less than 1 hour left"
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
174
|
-
className: "upsell-warning",
|
|
175
|
-
children: expirationText
|
|
176
|
-
});
|
|
177
|
-
};
|
|
178
|
-
ExpirationCountdown.propTypes = {
|
|
179
|
-
courseId: _propTypes.default.string.isRequired,
|
|
180
|
-
hoursToExpiration: _propTypes.default.number.isRequired,
|
|
181
|
-
setupgradeNotificationCurrentState: _propTypes.default.func,
|
|
182
|
-
type: _propTypes.default.string
|
|
183
|
-
};
|
|
184
|
-
ExpirationCountdown.defaultProps = {
|
|
185
|
-
setupgradeNotificationCurrentState: null,
|
|
186
|
-
type: null
|
|
187
|
-
};
|
|
188
|
-
const AccessExpirationDateBanner = _ref3 => {
|
|
189
|
-
let {
|
|
190
|
-
courseId,
|
|
191
|
-
accessExpirationDate,
|
|
192
|
-
timezoneFormatArgs,
|
|
193
|
-
setupgradeNotificationCurrentState
|
|
194
|
-
} = _ref3;
|
|
195
|
-
if (setupgradeNotificationCurrentState) {
|
|
196
|
-
setupgradeNotificationCurrentState('accessDateView');
|
|
197
|
-
(0, _localStorage.setLocalStorage)(`upgradeNotificationCurrentState.${courseId}`, 'accessDateView');
|
|
198
|
-
}
|
|
199
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
200
|
-
className: "upsell-warning-light",
|
|
201
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
202
|
-
id: "advertisements.upgradeNotification.expiration",
|
|
203
|
-
defaultMessage: "Course access will expire {date}",
|
|
204
|
-
values: {
|
|
205
|
-
date: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedDate, _objectSpread({
|
|
206
|
-
day: "numeric",
|
|
207
|
-
month: "long",
|
|
208
|
-
value: accessExpirationDate
|
|
209
|
-
}, timezoneFormatArgs), "accessExpireDate")
|
|
210
|
-
}
|
|
211
|
-
})
|
|
212
|
-
});
|
|
213
|
-
};
|
|
214
|
-
AccessExpirationDateBanner.propTypes = {
|
|
215
|
-
courseId: _propTypes.default.string.isRequired,
|
|
216
|
-
accessExpirationDate: _propTypes.default.PropTypes.instanceOf(Date).isRequired,
|
|
217
|
-
timezoneFormatArgs: _propTypes.default.shape({
|
|
218
|
-
timeZone: _propTypes.default.string
|
|
219
|
-
}),
|
|
220
|
-
setupgradeNotificationCurrentState: _propTypes.default.func
|
|
221
|
-
};
|
|
222
|
-
AccessExpirationDateBanner.defaultProps = {
|
|
223
|
-
timezoneFormatArgs: {},
|
|
224
|
-
setupgradeNotificationCurrentState: null
|
|
225
|
-
};
|
|
226
|
-
const PastExpirationDateBanner = _ref4 => {
|
|
227
|
-
let {
|
|
228
|
-
courseId,
|
|
229
|
-
accessExpirationDate,
|
|
230
|
-
timezoneFormatArgs,
|
|
231
|
-
setupgradeNotificationCurrentState
|
|
232
|
-
} = _ref4;
|
|
233
|
-
if (setupgradeNotificationCurrentState) {
|
|
234
|
-
setupgradeNotificationCurrentState('PastExpirationDate');
|
|
235
|
-
(0, _localStorage.setLocalStorage)(`upgradeNotificationCurrentState.${courseId}`, 'PastExpirationDate');
|
|
236
|
-
}
|
|
237
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
238
|
-
className: "upsell-warning",
|
|
239
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
240
|
-
id: "advertisements.upgradeNotification.pastExpiration.banner",
|
|
241
|
-
defaultMessage: "Upgrade deadline passed on {date}",
|
|
242
|
-
values: {
|
|
243
|
-
date: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedDate, _objectSpread({
|
|
244
|
-
day: "numeric",
|
|
245
|
-
month: "long",
|
|
246
|
-
value: accessExpirationDate
|
|
247
|
-
}, timezoneFormatArgs), "accessExpireDate")
|
|
248
|
-
}
|
|
249
|
-
})
|
|
250
|
-
});
|
|
251
|
-
};
|
|
252
|
-
PastExpirationDateBanner.propTypes = {
|
|
253
|
-
courseId: _propTypes.default.string.isRequired,
|
|
254
|
-
accessExpirationDate: _propTypes.default.PropTypes.instanceOf(Date).isRequired,
|
|
255
|
-
timezoneFormatArgs: _propTypes.default.shape({
|
|
256
|
-
timeZone: _propTypes.default.string
|
|
257
|
-
}),
|
|
258
|
-
setupgradeNotificationCurrentState: _propTypes.default.func
|
|
259
|
-
};
|
|
260
|
-
PastExpirationDateBanner.defaultProps = {
|
|
261
|
-
timezoneFormatArgs: {},
|
|
262
|
-
setupgradeNotificationCurrentState: null
|
|
263
|
-
};
|
|
264
|
-
const DefaultUpgradeNotification = _ref5 => {
|
|
28
|
+
const DefaultUpgradeNotification = _ref => {
|
|
265
29
|
let {
|
|
266
30
|
id,
|
|
267
31
|
courseId,
|
|
268
32
|
setNotificationCurrentState,
|
|
269
33
|
toggleSidebar
|
|
270
|
-
} =
|
|
34
|
+
} = _ref;
|
|
271
35
|
const pluginLocationId = id;
|
|
36
|
+
const {
|
|
37
|
+
formatMessage
|
|
38
|
+
} = (0, _i18n.useIntl)();
|
|
272
39
|
const {
|
|
273
40
|
org,
|
|
274
41
|
userTimezone,
|
|
@@ -290,7 +57,7 @@ const DefaultUpgradeNotification = _ref5 => {
|
|
|
290
57
|
const correctedTime = new Date(dateNow + timeOffsetMillis);
|
|
291
58
|
const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;
|
|
292
59
|
const pastExpirationDeadline = accessExpiration ? new Date(dateNow) > accessExpirationDate : false;
|
|
293
|
-
const shouldDisplayBorder = pluginLocationId
|
|
60
|
+
const shouldDisplayBorder = pluginLocationId.includes('outline');
|
|
294
61
|
const upsellPageName = pluginLocationId === 'outline_tab_notifications' ? 'course_home' : 'in_course';
|
|
295
62
|
const setupgradeNotificationCurrentState = setNotificationCurrentState;
|
|
296
63
|
const eventProperties = {
|
|
@@ -352,69 +119,55 @@ const DefaultUpgradeNotification = _ref5 => {
|
|
|
352
119
|
if (offer) {
|
|
353
120
|
// countdown to the first purchase discount if there is one
|
|
354
121
|
const hoursToDiscountExpiration = Math.floor((new Date(offer.expirationDate) - correctedTime) / 1000 / 60 / 60);
|
|
355
|
-
upgradeNotificationHeaderText =
|
|
356
|
-
|
|
357
|
-
defaultMessage: "{percentage}% First-Time Learner Discount",
|
|
358
|
-
values: {
|
|
359
|
-
percentage: offer.percentage
|
|
360
|
-
}
|
|
122
|
+
upgradeNotificationHeaderText = formatMessage(_messages.default.firstTimeLearnerDiscountHeader, {
|
|
123
|
+
percentage: offer.percentage
|
|
361
124
|
});
|
|
362
|
-
expirationBanner = /*#__PURE__*/(0, _jsxRuntime.jsx)(ExpirationCountdown, {
|
|
125
|
+
expirationBanner = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.ExpirationCountdown, {
|
|
363
126
|
courseId: courseId,
|
|
364
127
|
hoursToExpiration: hoursToDiscountExpiration,
|
|
365
128
|
setupgradeNotificationCurrentState: setupgradeNotificationCurrentState,
|
|
366
129
|
type: "offer"
|
|
367
130
|
});
|
|
368
131
|
} else {
|
|
369
|
-
upgradeNotificationHeaderText =
|
|
370
|
-
|
|
371
|
-
defaultMessage: "Upgrade your course today"
|
|
372
|
-
});
|
|
373
|
-
expirationBanner = /*#__PURE__*/(0, _jsxRuntime.jsx)(AccessExpirationDateBanner, {
|
|
132
|
+
upgradeNotificationHeaderText = formatMessage(_messages.default.accessExpirationHeader);
|
|
133
|
+
expirationBanner = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.AccessExpirationDateBanner, {
|
|
374
134
|
courseId: courseId,
|
|
375
135
|
accessExpirationDate: accessExpirationDate,
|
|
376
136
|
timezoneFormatArgs: timezoneFormatArgs,
|
|
377
137
|
setupgradeNotificationCurrentState: setupgradeNotificationCurrentState
|
|
378
138
|
});
|
|
379
139
|
}
|
|
380
|
-
upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
140
|
+
upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellFarAwayCardContent, {
|
|
141
|
+
isFBE: true
|
|
142
|
+
});
|
|
381
143
|
} else if (hoursToAccessExpiration < 7 * 24 && hoursToAccessExpiration >= 0) {
|
|
382
144
|
// more urgent messaging if there's less than 7 days left to access expiration
|
|
383
|
-
upgradeNotificationHeaderText =
|
|
384
|
-
|
|
385
|
-
defaultMessage: "Course Access Expiration"
|
|
386
|
-
});
|
|
387
|
-
expirationBanner = /*#__PURE__*/(0, _jsxRuntime.jsx)(ExpirationCountdown, {
|
|
145
|
+
upgradeNotificationHeaderText = formatMessage(_messages.default.accessExpirationUrgentHeader);
|
|
146
|
+
expirationBanner = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.ExpirationCountdown, {
|
|
388
147
|
courseId: courseId,
|
|
389
148
|
hoursToExpiration: hoursToAccessExpiration,
|
|
390
149
|
setupgradeNotificationCurrentState: setupgradeNotificationCurrentState,
|
|
391
150
|
type: "access"
|
|
392
151
|
});
|
|
393
|
-
upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(UpsellFBESoonCardContent, {
|
|
152
|
+
upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellFBESoonCardContent, {
|
|
394
153
|
accessExpirationDate: accessExpirationDate,
|
|
395
154
|
timezoneFormatArgs: timezoneFormatArgs
|
|
396
155
|
});
|
|
397
156
|
} else {
|
|
398
157
|
// access expiration deadline has passed
|
|
399
|
-
upgradeNotificationHeaderText =
|
|
400
|
-
|
|
401
|
-
defaultMessage: "Course Access Expiration"
|
|
402
|
-
});
|
|
403
|
-
expirationBanner = /*#__PURE__*/(0, _jsxRuntime.jsx)(PastExpirationDateBanner, {
|
|
158
|
+
upgradeNotificationHeaderText = formatMessage(_messages.default.accessExpirationPastHeader);
|
|
159
|
+
expirationBanner = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.PastExpirationDateBanner, {
|
|
404
160
|
courseId: courseId,
|
|
405
161
|
accessExpirationDate: accessExpirationDate,
|
|
406
162
|
timezoneFormatArgs: timezoneFormatArgs,
|
|
407
163
|
setupgradeNotificationCurrentState: setupgradeNotificationCurrentState
|
|
408
164
|
});
|
|
409
|
-
upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(PastExpirationCardContent, {});
|
|
165
|
+
upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.PastExpirationCardContent, {});
|
|
410
166
|
}
|
|
411
167
|
} else {
|
|
412
168
|
// FBE is turned off
|
|
413
|
-
upgradeNotificationHeaderText =
|
|
414
|
-
|
|
415
|
-
defaultMessage: "Pursue a verified certificate"
|
|
416
|
-
});
|
|
417
|
-
upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(UpsellNoFBECardContent, {});
|
|
169
|
+
upgradeNotificationHeaderText = formatMessage(_messages.default.pursueCertificateMessage);
|
|
170
|
+
upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellFarAwayCardContent, {});
|
|
418
171
|
}
|
|
419
172
|
if (pastExpirationDeadline) {
|
|
420
173
|
callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
|
|
@@ -422,7 +175,7 @@ const DefaultUpgradeNotification = _ref5 => {
|
|
|
422
175
|
onClick: logClickPastExpiration,
|
|
423
176
|
href: marketingUrl,
|
|
424
177
|
block: true,
|
|
425
|
-
children:
|
|
178
|
+
children: formatMessage(_messages.default.pastExpirationCallToActionLabel)
|
|
426
179
|
});
|
|
427
180
|
} else {
|
|
428
181
|
callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
|
|
@@ -436,25 +189,17 @@ const DefaultUpgradeNotification = _ref5 => {
|
|
|
436
189
|
// if there's a first purchase discount, message the code at the bottom
|
|
437
190
|
offerCode = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
438
191
|
className: "text-center discount-info",
|
|
439
|
-
children:
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
className: "font-weight-bold",
|
|
445
|
-
children: offer.code
|
|
446
|
-
})
|
|
447
|
-
}
|
|
192
|
+
children: formatMessage(_messages.default.discountCodeMessage, {
|
|
193
|
+
code: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
194
|
+
className: "font-weight-bold",
|
|
195
|
+
children: offer.code
|
|
196
|
+
})
|
|
448
197
|
})
|
|
449
198
|
});
|
|
450
199
|
}
|
|
451
|
-
const closeAltText = /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
|
|
452
|
-
id: "advertisements.close",
|
|
453
|
-
defaultMessage: "Close"
|
|
454
|
-
});
|
|
455
200
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("section", {
|
|
456
201
|
className: (0, _classnames.default)('upgrade-notification small', {
|
|
457
|
-
'card mb-4': shouldDisplayBorder
|
|
202
|
+
'pgn__card pgn__card-light card mb-4 rounded': shouldDisplayBorder
|
|
458
203
|
}),
|
|
459
204
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
460
205
|
id: "courseHome-upgradeNotification",
|
|
@@ -473,7 +218,7 @@ const DefaultUpgradeNotification = _ref5 => {
|
|
|
473
218
|
iconAs: _paragon.Icon,
|
|
474
219
|
onClick: toggleSidebar,
|
|
475
220
|
className: "icon-hover",
|
|
476
|
-
alt:
|
|
221
|
+
alt: formatMessage(_messages.default.closeAlt)
|
|
477
222
|
})
|
|
478
223
|
})]
|
|
479
224
|
}), expirationBanner, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
@@ -496,5 +241,5 @@ DefaultUpgradeNotification.defaultProps = {
|
|
|
496
241
|
setNotificationCurrentState: null,
|
|
497
242
|
toggleSidebar: null
|
|
498
243
|
};
|
|
499
|
-
var _default = exports.default =
|
|
244
|
+
var _default = exports.default = DefaultUpgradeNotification;
|
|
500
245
|
//# sourceMappingURL=DefaultUpgradeNotification.js.map
|