@edx/frontend-plugin-advertisements 1.33.3 → 1.34.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 +8 -0
- package/dist/data/index.js.map +1 -1
- package/dist/generic/index.js +8 -15
- package/dist/generic/index.js.map +1 -1
- package/dist/generic/upsell-bullets/PaywallUpsellBullets.js +133 -0
- package/dist/generic/upsell-bullets/PaywallUpsellBullets.js.map +1 -0
- package/dist/generic/upsell-bullets/UpsellBullets.js +69 -116
- package/dist/generic/upsell-bullets/UpsellBullets.js.map +1 -1
- package/dist/generic/upsell-bullets/{ExperimentalUpsellTable.js → UpsellTable.js} +7 -7
- package/dist/generic/upsell-bullets/UpsellTable.js.map +1 -0
- package/dist/generic/upsell-bullets/index.js +14 -14
- package/dist/generic/upsell-bullets/index.js.map +1 -1
- package/dist/index.js +2 -8
- package/dist/index.js.map +1 -1
- package/dist/optimizely/utils.js +19 -3
- package/dist/optimizely/utils.js.map +1 -1
- package/dist/upgrade-modal/BaseModal.js +4 -10
- package/dist/upgrade-modal/BaseModal.js.map +1 -1
- package/dist/upgrade-modal/DefaultUpgradeModal.js +7 -5
- package/dist/upgrade-modal/DefaultUpgradeModal.js.map +1 -1
- package/dist/upgrade-modal/ExperimentalUpgradeModal.js +24 -11
- package/dist/upgrade-modal/ExperimentalUpgradeModal.js.map +1 -1
- package/dist/upgrade-notification/DefaultUpgradeNotification.js +16 -24
- package/dist/upgrade-notification/DefaultUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js +34 -13
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/utils.js +2 -21
- package/dist/upgrade-notification/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/generic/UpsellFarAwayCardContent.js +0 -30
- package/dist/generic/UpsellFarAwayCardContent.js.map +0 -1
- package/dist/generic/upsell-bullets/ExperimentalUpsellBullets.js +0 -86
- package/dist/generic/upsell-bullets/ExperimentalUpsellBullets.js.map +0 -1
- package/dist/generic/upsell-bullets/ExperimentalUpsellTable.js.map +0 -1
- /package/dist/generic/upsell-bullets/{UpsellBullets.scss → PaywallUpsellBullets.scss} +0 -0
- /package/dist/generic/upsell-bullets/{ExperimentalUpsellTable.scss → UpsellTable.scss} +0 -0
|
@@ -3,44 +3,44 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "FullAccessBullet", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _PaywallUpsellBullets.FullAccessBullet;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "SupportMissionBullet", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return
|
|
15
|
+
return _PaywallUpsellBullets.SupportMissionBullet;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "
|
|
18
|
+
Object.defineProperty(exports, "UnlockGradedBullet", {
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: function () {
|
|
21
|
-
return
|
|
21
|
+
return _PaywallUpsellBullets.UnlockGradedBullet;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
Object.defineProperty(exports, "
|
|
24
|
+
Object.defineProperty(exports, "UpsellBullets", {
|
|
25
25
|
enumerable: true,
|
|
26
26
|
get: function () {
|
|
27
|
-
return _UpsellBullets.
|
|
27
|
+
return _UpsellBullets.default;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
Object.defineProperty(exports, "
|
|
30
|
+
Object.defineProperty(exports, "UpsellTable", {
|
|
31
31
|
enumerable: true,
|
|
32
32
|
get: function () {
|
|
33
|
-
return
|
|
33
|
+
return _UpsellTable.default;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
Object.defineProperty(exports, "VerifiedCertBullet", {
|
|
37
37
|
enumerable: true,
|
|
38
38
|
get: function () {
|
|
39
|
-
return
|
|
39
|
+
return _PaywallUpsellBullets.VerifiedCertBullet;
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
var
|
|
42
|
+
var _PaywallUpsellBullets = require("./PaywallUpsellBullets");
|
|
43
|
+
var _UpsellBullets = _interopRequireDefault(require("./UpsellBullets"));
|
|
44
|
+
var _UpsellTable = _interopRequireDefault(require("./UpsellTable"));
|
|
45
45
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
46
46
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_PaywallUpsellBullets","require","_UpsellBullets","_interopRequireDefault","_UpsellTable","obj","__esModule","default"],"sources":["../../../src/generic/upsell-bullets/index.jsx"],"sourcesContent":["export {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from './PaywallUpsellBullets';\nexport { default as UpsellBullets } from './UpsellBullets';\nexport { default as UpsellTable } from './UpsellTable';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,qBAAA,GAAAC,OAAA;AAMA,IAAAC,cAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAuD,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA","ignoreList":[]}
|
package/dist/index.js
CHANGED
|
@@ -3,12 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "ExperimentalUpsellBullets", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _generic.ExperimentalUpsellBullets;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
6
|
Object.defineProperty(exports, "LockPaywall", {
|
|
13
7
|
enumerable: true,
|
|
14
8
|
get: function () {
|
|
@@ -27,10 +21,10 @@ Object.defineProperty(exports, "UpgradeNotification", {
|
|
|
27
21
|
return _upgradeNotification.default;
|
|
28
22
|
}
|
|
29
23
|
});
|
|
30
|
-
Object.defineProperty(exports, "
|
|
24
|
+
Object.defineProperty(exports, "UpsellBullets", {
|
|
31
25
|
enumerable: true,
|
|
32
26
|
get: function () {
|
|
33
|
-
return _generic.
|
|
27
|
+
return _generic.UpsellBullets;
|
|
34
28
|
}
|
|
35
29
|
});
|
|
36
30
|
var _upgradeNotification = _interopRequireDefault(require("./upgrade-notification"));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_upgradeNotification","_interopRequireDefault","require","_paywall","_upgradeModal","_generic","obj","__esModule","default"],"sources":["../src/index.jsx"],"sourcesContent":["import UpgradeNotification from './upgrade-notification';\nimport LockPaywall from './paywall';\nimport NextUnitButton from './upgrade-modal';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","names":["_upgradeNotification","_interopRequireDefault","require","_paywall","_upgradeModal","_generic","obj","__esModule","default"],"sources":["../src/index.jsx"],"sourcesContent":["import UpgradeNotification from './upgrade-notification';\nimport LockPaywall from './paywall';\nimport NextUnitButton from './upgrade-modal';\nimport { UpsellBullets } from './generic';\n\nexport {\n UpgradeNotification,\n LockPaywall,\n NextUnitButton,\n UpsellBullets,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAA0C,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA","ignoreList":[]}
|
package/dist/optimizely/utils.js
CHANGED
|
@@ -7,13 +7,22 @@ exports.default = void 0;
|
|
|
7
7
|
var _data = require("../data");
|
|
8
8
|
var _generic = require("../generic");
|
|
9
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
-
|
|
10
|
+
/*
|
|
11
|
+
getBulletVariation is used by both the sidebar and modal sidebar.
|
|
12
|
+
When making changes, remember to test the impact on both upsells.
|
|
13
|
+
*/const getBulletVariation = _ref => {
|
|
11
14
|
let {
|
|
12
15
|
isFBE,
|
|
16
|
+
learningAssistantEnabled,
|
|
13
17
|
variationKey,
|
|
14
18
|
enabled,
|
|
15
19
|
enabledVariation
|
|
16
20
|
} = _ref;
|
|
21
|
+
/*
|
|
22
|
+
Update the following two lines according to changes in ../data.
|
|
23
|
+
Make any changes necessary for the distinguishing of different components
|
|
24
|
+
for the modal and sidebar as necessary.
|
|
25
|
+
*/
|
|
17
26
|
const {
|
|
18
27
|
VARIATIONS
|
|
19
28
|
} = _data.OPTIMIZELY_VTR_BULLET_EXPERIMENT;
|
|
@@ -21,8 +30,15 @@ const getBulletVariation = _ref => {
|
|
|
21
30
|
if (showTestVariation) {
|
|
22
31
|
return enabledVariation;
|
|
23
32
|
}
|
|
24
|
-
|
|
25
|
-
|
|
33
|
+
if (variationKey === 'table') {
|
|
34
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellTable, {
|
|
35
|
+
isFBE,
|
|
36
|
+
learningAssistantEnabled
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellBullets, {
|
|
40
|
+
isFBE,
|
|
41
|
+
learningAssistantEnabled
|
|
26
42
|
});
|
|
27
43
|
};
|
|
28
44
|
var _default = exports.default = getBulletVariation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_data","require","_generic","_jsxRuntime","getBulletVariation","_ref","isFBE","variationKey","enabled","enabledVariation","VARIATIONS","OPTIMIZELY_VTR_BULLET_EXPERIMENT","showTestVariation","EXPERIMENT","jsx","
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_data","require","_generic","_jsxRuntime","getBulletVariation","_ref","isFBE","learningAssistantEnabled","variationKey","enabled","enabledVariation","VARIATIONS","OPTIMIZELY_VTR_BULLET_EXPERIMENT","showTestVariation","EXPERIMENT","jsx","UpsellTable","UpsellBullets","_default","exports","default"],"sources":["../../src/optimizely/utils.jsx"],"sourcesContent":["import { OPTIMIZELY_VTR_BULLET_EXPERIMENT } from '../data';\n\nimport { UpsellBullets, UpsellTable } from '../generic';\n\n/*\n getBulletVariation is used by both the sidebar and modal sidebar.\n When making changes, remember to test the impact on both upsells.\n*/\nconst getBulletVariation = ({\n isFBE,\n learningAssistantEnabled,\n variationKey,\n enabled,\n enabledVariation,\n}) => {\n /*\n Update the following two lines according to changes in ../data.\n Make any changes necessary for the distinguishing of different components\n for the modal and sidebar as necessary.\n */\n const { VARIATIONS } = OPTIMIZELY_VTR_BULLET_EXPERIMENT;\n const showTestVariation = enabled && variationKey === VARIATIONS.EXPERIMENT;\n\n if (showTestVariation) {\n return enabledVariation;\n }\n\n if (variationKey === 'table') {\n return <UpsellTable {...{ isFBE, learningAssistantEnabled }} />;\n }\n\n return <UpsellBullets {...{ isFBE, learningAssistantEnabled }} />;\n};\n\nexport default getBulletVariation;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAAwD,IAAAE,WAAA,GAAAF,OAAA;AAExD;AACA;AACA;AACA,EACA,MAAMG,kBAAkB,GAAGC,IAAA,IAMrB;EAAA,IANsB;IAC1BC,KAAK;IACLC,wBAAwB;IACxBC,YAAY;IACZC,OAAO;IACPC;EACF,CAAC,GAAAL,IAAA;EACC;AACF;AACA;AACA;AACA;EACE,MAAM;IAAEM;EAAW,CAAC,GAAGC,sCAAgC;EACvD,MAAMC,iBAAiB,GAAGJ,OAAO,IAAID,YAAY,KAAKG,UAAU,CAACG,UAAU;EAE3E,IAAID,iBAAiB,EAAE;IACrB,OAAOH,gBAAgB;EACzB;EAEA,IAAIF,YAAY,KAAK,OAAO,EAAE;IAC5B,oBAAO,IAAAL,WAAA,CAAAY,GAAA,EAACb,QAAA,CAAAc,WAAW;MAAOV,KAAK;MAAEC;IAAwB,CAAK,CAAC;EACjE;EAEA,oBAAO,IAAAJ,WAAA,CAAAY,GAAA,EAACb,QAAA,CAAAe,aAAa;IAAOX,KAAK;IAAEC;EAAwB,CAAK,CAAC;AACnE,CAAC;AAAC,IAAAW,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEahB,kBAAkB","ignoreList":[]}
|
|
@@ -9,7 +9,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
9
9
|
var _i18n = require("@edx/frontend-platform/i18n");
|
|
10
10
|
var _paragon = require("@openedx/paragon");
|
|
11
11
|
var _certificatePreview = _interopRequireDefault(require("../upgrade-notification/certificate-preview"));
|
|
12
|
-
var _data = require("../data");
|
|
13
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
14
|
const BaseModal = _ref => {
|
|
@@ -19,7 +18,6 @@ const BaseModal = _ref => {
|
|
|
19
18
|
courseId,
|
|
20
19
|
offer,
|
|
21
20
|
callToActionButton,
|
|
22
|
-
variationKey,
|
|
23
21
|
children
|
|
24
22
|
} = _ref;
|
|
25
23
|
const intl = (0, _i18n.useIntl)();
|
|
@@ -28,8 +26,7 @@ const BaseModal = _ref => {
|
|
|
28
26
|
defaultMessage: 'Pursue a verified certificate',
|
|
29
27
|
description: 'Upgrade modal title'
|
|
30
28
|
});
|
|
31
|
-
|
|
32
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.MarketingModal, {
|
|
29
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.MarketingModal, {
|
|
33
30
|
title: title,
|
|
34
31
|
isOpen: isOpen,
|
|
35
32
|
onClose: close,
|
|
@@ -68,13 +65,10 @@ const BaseModal = _ref => {
|
|
|
68
65
|
})
|
|
69
66
|
}), callToActionButton]
|
|
70
67
|
}),
|
|
71
|
-
children:
|
|
72
|
-
className: "
|
|
73
|
-
children: !isTableVariation && title
|
|
74
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
75
|
-
className: isTableVariation ? 'mx-n4' : 'ml-n4',
|
|
68
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
69
|
+
className: "mx-n4",
|
|
76
70
|
children: children
|
|
77
|
-
})
|
|
71
|
+
})
|
|
78
72
|
});
|
|
79
73
|
};
|
|
80
74
|
BaseModal.defaultProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_i18n","_paragon","_certificatePreview","
|
|
1
|
+
{"version":3,"file":"BaseModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_i18n","_paragon","_certificatePreview","_jsxRuntime","obj","__esModule","default","BaseModal","_ref","isOpen","close","courseId","offer","callToActionButton","children","intl","useIntl","title","formatMessage","id","defaultMessage","description","jsx","MarketingModal","onClose","isBlocking","size","heroIsDark","heroNode","ModalDialog","Hero","className","style","background","borderTopLeftRadius","borderTopRightRadius","Content","bgColor","footerNode","jsxs","ActionRow","isStacked","code","defaultProps","propTypes","PropTypes","shape","string","variationKey","isRequired","func","bool","node","_default","exports"],"sources":["../../src/upgrade-modal/BaseModal.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { ActionRow, MarketingModal, ModalDialog } from '@openedx/paragon';\nimport CertificatePreview from '../upgrade-notification/certificate-preview';\n\nconst BaseModal = ({\n isOpen,\n close,\n courseId,\n offer,\n callToActionButton,\n children,\n}) => {\n const intl = useIntl();\n const title = intl.formatMessage({\n id: 'learning.upgrade-modal.title',\n defaultMessage: 'Pursue a verified certificate',\n description: 'Upgrade modal title',\n });\n\n return (\n <MarketingModal\n title={title}\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 <CertificatePreview {...{ courseId, bgColor: 'bg-light-100' }} />\n </ModalDialog.Hero.Content>\n </ModalDialog.Hero>\n )}\n footerNode={(\n <ActionRow isStacked className=\"mb-2\">\n {offer && (\n <div className=\"text-center\">\n {intl.formatMessage(\n {\n id: 'learning.generic.upgradeNotification.code',\n defaultMessage: 'Use code {code} at checkout',\n description: 'Message to user with code for discounted course price',\n },\n {\n code: (<span className=\"font-weight-bold\">{offer.code}</span>),\n },\n )}\n </div>\n )}\n {callToActionButton}\n </ActionRow>\n )}\n >\n <div className=\"mx-n4\">\n {children}\n </div>\n </MarketingModal>\n );\n};\n\nBaseModal.defaultProps = {\n offer: null,\n};\n\nBaseModal.propTypes = {\n offer: PropTypes.shape({\n code: PropTypes.string,\n }),\n variationKey: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n close: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n callToActionButton: PropTypes.node.isRequired,\n children: PropTypes.node.isRequired,\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,7 +31,8 @@ const DefaultUpgradeModal = _ref => {
|
|
|
31
31
|
offer,
|
|
32
32
|
marketingUrl,
|
|
33
33
|
accessExpiration,
|
|
34
|
-
datesBannerInfo
|
|
34
|
+
datesBannerInfo,
|
|
35
|
+
learningAssistantEnabled
|
|
35
36
|
} = _ref;
|
|
36
37
|
const upsellPageName = 'course_sequence_modal';
|
|
37
38
|
const eventProperties = {
|
|
@@ -94,14 +95,14 @@ const DefaultUpgradeModal = _ref => {
|
|
|
94
95
|
});
|
|
95
96
|
}
|
|
96
97
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BaseModal.default, {
|
|
97
|
-
variationKey: "off",
|
|
98
98
|
isOpen,
|
|
99
99
|
close,
|
|
100
100
|
courseId,
|
|
101
101
|
offer,
|
|
102
102
|
callToActionButton,
|
|
103
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.
|
|
104
|
-
isFBE
|
|
103
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellTable, {
|
|
104
|
+
isFBE,
|
|
105
|
+
learningAssistantEnabled
|
|
105
106
|
})
|
|
106
107
|
});
|
|
107
108
|
};
|
|
@@ -130,7 +131,8 @@ DefaultUpgradeModal.propTypes = {
|
|
|
130
131
|
org: _propTypes.default.string.isRequired,
|
|
131
132
|
courseId: _propTypes.default.string.isRequired,
|
|
132
133
|
close: _propTypes.default.func.isRequired,
|
|
133
|
-
isOpen: _propTypes.default.bool.isRequired
|
|
134
|
+
isOpen: _propTypes.default.bool.isRequired,
|
|
135
|
+
learningAssistantEnabled: _propTypes.default.bool.isRequired
|
|
134
136
|
};
|
|
135
137
|
var _default = exports.default = DefaultUpgradeModal;
|
|
136
138
|
//# sourceMappingURL=DefaultUpgradeModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultUpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_analytics","_i18n","_paragon","_upgradeButton","_generic","_BaseModal","_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","DefaultUpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","logClickPastExpiration","intl","useIntl","dateNow","Date","now","upgradeDeadlineDate","upgradeDeadline","pastDeadline","isFBE","contentTypeGatingEnabled","callToActionButton","jsx","UpgradeButton","onClick","block","Button","className","href","children","formatMessage","id","defaultMessage","description","variationKey","UpsellFarAwayCardContent","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","_default","exports"],"sources":["../../src/upgrade-modal/DefaultUpgradeModal.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button } from '@openedx/paragon';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { UpsellFarAwayCardContent } from '../generic';\nimport BaseModal from './BaseModal';\n\nconst DefaultUpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\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 };\n\n useEffect(() => {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketmodalupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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 linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', {\n ...eventProperties,\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 upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;\n const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;\n\n let callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logClick}\n verifiedMode={verifiedMode}\n block\n />\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 return (\n <BaseModal\n variationKey=\"off\"\n {...{\n isOpen,\n close,\n courseId,\n offer,\n callToActionButton,\n }}\n >\n <UpsellFarAwayCardContent isFBE={isFBE} />\n </BaseModal>\n );\n};\n\nDefaultUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nDefaultUpgradeModal.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 datesBannerInfo: PropTypes.shape({\n contentTypeGatingEnabled: PropTypes.bool,\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};\n\nexport default DefaultUpgradeModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DefaultUpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_analytics","_i18n","_paragon","_upgradeButton","_generic","_BaseModal","_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","DefaultUpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","logClickPastExpiration","intl","useIntl","dateNow","Date","now","upgradeDeadlineDate","upgradeDeadline","pastDeadline","isFBE","contentTypeGatingEnabled","callToActionButton","jsx","UpgradeButton","onClick","block","Button","className","href","children","formatMessage","id","defaultMessage","description","UpsellTable","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","_default","exports"],"sources":["../../src/upgrade-modal/DefaultUpgradeModal.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button } from '@openedx/paragon';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { UpsellTable } from '../generic';\nimport BaseModal from './BaseModal';\n\nconst DefaultUpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\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 };\n\n useEffect(() => {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketmodalupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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 linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', {\n ...eventProperties,\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 upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;\n const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;\n\n let callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logClick}\n verifiedMode={verifiedMode}\n block\n />\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 return (\n <BaseModal\n {...{\n isOpen,\n close,\n courseId,\n offer,\n callToActionButton,\n }}\n >\n <UpsellTable {...{ isFBE, learningAssistantEnabled }} />\n </BaseModal>\n );\n};\n\nDefaultUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nDefaultUpgradeModal.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 datesBannerInfo: PropTypes.shape({\n contentTypeGatingEnabled: PropTypes.bool,\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 learningAssistantEnabled: PropTypes.bool.isRequired,\n};\n\nexport default DefaultUpgradeModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,6 @@ var _upgradeButton = require("@src/generic/upgrade-button");
|
|
|
14
14
|
var _utils = _interopRequireDefault(require("../optimizely/utils"));
|
|
15
15
|
var _data = require("../data");
|
|
16
16
|
var _BaseModal = _interopRequireDefault(require("./BaseModal"));
|
|
17
|
-
var _generic = require("../generic");
|
|
18
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
19
|
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); }
|
|
@@ -23,7 +22,12 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
23
22
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
23
|
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; }
|
|
25
24
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
26
|
-
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); } /*
|
|
25
|
+
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); } /* All of this code includes the necessary functions to run and track an A/B experiment
|
|
26
|
+
using Optimizely. Please fully read through the code to know where changes
|
|
27
|
+
need to be made specifically for a new test.
|
|
28
|
+
|
|
29
|
+
As of 2025-01-08, this code is functionally the same as the DefaultUpgradeModal.
|
|
30
|
+
*/ /* eslint import/no-unresolved: 0 */
|
|
27
31
|
const ExperimentalUpgradeModal = _ref => {
|
|
28
32
|
let {
|
|
29
33
|
isOpen,
|
|
@@ -38,10 +42,14 @@ const ExperimentalUpgradeModal = _ref => {
|
|
|
38
42
|
optimizely,
|
|
39
43
|
learningAssistantEnabled
|
|
40
44
|
} = _ref;
|
|
45
|
+
/*
|
|
46
|
+
Update the following line with the new experiment constants.
|
|
47
|
+
KEY and ANY_CLICK_ACTION are required and used in the later in the code.
|
|
48
|
+
To update the variables, make changes in ../optimizely/utils
|
|
49
|
+
*/
|
|
41
50
|
const {
|
|
42
51
|
KEY: experimentKey,
|
|
43
|
-
ANY_CLICK_ACTION
|
|
44
|
-
MODAL_CLICK_ACTION
|
|
52
|
+
ANY_CLICK_ACTION
|
|
45
53
|
} = _data.OPTIMIZELY_VTR_BULLET_EXPERIMENT;
|
|
46
54
|
const [decision] = (0, _reactSdk.useDecision)(experimentKey);
|
|
47
55
|
const {
|
|
@@ -83,8 +91,12 @@ const ExperimentalUpgradeModal = _ref => {
|
|
|
83
91
|
linkType: 'button',
|
|
84
92
|
pageName: upsellPageName
|
|
85
93
|
}));
|
|
94
|
+
|
|
95
|
+
/*
|
|
96
|
+
Confirm that the ANY_CLICK_ACTION matches the event key in Optimizely.
|
|
97
|
+
Add any additional tracking for Optimizely here.
|
|
98
|
+
*/
|
|
86
99
|
optimizely.track(ANY_CLICK_ACTION);
|
|
87
|
-
optimizely.track(MODAL_CLICK_ACTION);
|
|
88
100
|
};
|
|
89
101
|
const logClickPastExpiration = () => {
|
|
90
102
|
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', _objectSpread(_objectSpread(_objectSpread({}, eventProperties), experimentProperties), {}, {
|
|
@@ -99,14 +111,16 @@ const ExperimentalUpgradeModal = _ref => {
|
|
|
99
111
|
const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;
|
|
100
112
|
const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;
|
|
101
113
|
const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;
|
|
114
|
+
|
|
115
|
+
/*
|
|
116
|
+
Update the enabled variation according to your experiment
|
|
117
|
+
*/
|
|
102
118
|
const upsellMessage = (0, _utils.default)({
|
|
103
119
|
enabled,
|
|
104
|
-
|
|
120
|
+
// temporary assignement while not running experiment to force component
|
|
121
|
+
variationKey: 'table',
|
|
105
122
|
isFBE,
|
|
106
|
-
|
|
107
|
-
isFBE,
|
|
108
|
-
learningAssistantEnabled
|
|
109
|
-
})
|
|
123
|
+
learningAssistantEnabled
|
|
110
124
|
});
|
|
111
125
|
let callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
|
|
112
126
|
offer: offer,
|
|
@@ -132,7 +146,6 @@ const ExperimentalUpgradeModal = _ref => {
|
|
|
132
146
|
courseId,
|
|
133
147
|
offer,
|
|
134
148
|
callToActionButton,
|
|
135
|
-
variationKey,
|
|
136
149
|
children: upsellMessage
|
|
137
150
|
});
|
|
138
151
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExperimentalUpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_reactSdk","_analytics","_i18n","_paragon","_upgradeButton","_utils","_data","_BaseModal","_generic","_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","ExperimentalUpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","optimizely","learningAssistantEnabled","KEY","experimentKey","ANY_CLICK_ACTION","MODAL_CLICK_ACTION","OPTIMIZELY_VTR_BULLET_EXPERIMENT","decision","useDecision","variationKey","enabled","experimentProperties","experiment_key","variation_key","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","track","logClickPastExpiration","intl","useIntl","dateNow","Date","now","upgradeDeadlineDate","upgradeDeadline","pastDeadline","isFBE","contentTypeGatingEnabled","upsellMessage","getBulletVariation","enabledVariation","jsx","ExperimentalUpsellTable","callToActionButton","UpgradeButton","onClick","block","Button","className","href","children","formatMessage","id","defaultMessage","description","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","object","_default","exports","withOptimizely"],"sources":["../../src/upgrade-modal/ExperimentalUpgradeModal.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDecision, withOptimizely } from '@optimizely/react-sdk';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button } from '@openedx/paragon';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport getBulletVariation from '../optimizely/utils';\nimport { OPTIMIZELY_VTR_BULLET_EXPERIMENT } from '../data';\nimport BaseModal from './BaseModal';\nimport { ExperimentalUpsellTable } from '../generic';\n\nconst ExperimentalUpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n optimizely,\n learningAssistantEnabled,\n}) => {\n const {\n KEY: experimentKey,\n ANY_CLICK_ACTION,\n MODAL_CLICK_ACTION,\n } = OPTIMIZELY_VTR_BULLET_EXPERIMENT;\n const [decision] = useDecision(experimentKey);\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: experimentKey,\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 sendTrackingLogEvent('edx.bi.course.upgrade.marketmodalupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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(ANY_CLICK_ACTION);\n optimizely.track(MODAL_CLICK_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 upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;\n const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;\n const upsellMessage = getBulletVariation({\n enabled,\n variationKey,\n isFBE,\n enabledVariation: (\n <ExperimentalUpsellTable {...{ isFBE, learningAssistantEnabled }} />\n ),\n });\n let callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logClick}\n verifiedMode={verifiedMode}\n block\n />\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 return (\n <BaseModal\n {...{\n isOpen,\n close,\n courseId,\n offer,\n callToActionButton,\n variationKey,\n }}\n >\n {upsellMessage}\n </BaseModal>\n );\n};\n\nExperimentalUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nExperimentalUpgradeModal.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 datesBannerInfo: PropTypes.shape({\n contentTypeGatingEnabled: PropTypes.bool,\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 learningAssistantEnabled: PropTypes.bool.isRequired,\n};\n\nexport default withOptimizely(ExperimentalUpgradeModal);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ExperimentalUpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_reactSdk","_analytics","_i18n","_paragon","_upgradeButton","_utils","_data","_BaseModal","_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","ExperimentalUpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","optimizely","learningAssistantEnabled","KEY","experimentKey","ANY_CLICK_ACTION","OPTIMIZELY_VTR_BULLET_EXPERIMENT","decision","useDecision","variationKey","enabled","experimentProperties","experiment_key","variation_key","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","track","logClickPastExpiration","intl","useIntl","dateNow","Date","now","upgradeDeadlineDate","upgradeDeadline","pastDeadline","isFBE","contentTypeGatingEnabled","upsellMessage","getBulletVariation","callToActionButton","jsx","UpgradeButton","onClick","block","Button","className","href","children","formatMessage","id","defaultMessage","description","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","object","_default","exports","withOptimizely"],"sources":["../../src/upgrade-modal/ExperimentalUpgradeModal.jsx"],"sourcesContent":["/* All of this code includes the necessary functions to run and track an A/B experiment\n using Optimizely. Please fully read through the code to know where changes\n need to be made specifically for a new test.\n\n As of 2025-01-08, this code is functionally the same as the DefaultUpgradeModal.\n*/\n\n/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDecision, withOptimizely } from '@optimizely/react-sdk';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button } from '@openedx/paragon';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport getBulletVariation from '../optimizely/utils';\nimport { OPTIMIZELY_VTR_BULLET_EXPERIMENT } from '../data';\nimport BaseModal from './BaseModal';\n\nconst ExperimentalUpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n optimizely,\n learningAssistantEnabled,\n}) => {\n /*\n Update the following line with the new experiment constants.\n KEY and ANY_CLICK_ACTION are required and used in the later in the code.\n To update the variables, make changes in ../optimizely/utils\n */\n const { KEY: experimentKey, ANY_CLICK_ACTION } = OPTIMIZELY_VTR_BULLET_EXPERIMENT;\n\n const [decision] = useDecision(experimentKey);\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: experimentKey,\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 sendTrackingLogEvent('edx.bi.course.upgrade.marketmodalupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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\n /*\n Confirm that the ANY_CLICK_ACTION matches the event key in Optimizely.\n Add any additional tracking for Optimizely here.\n */\n optimizely.track(ANY_CLICK_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 upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;\n const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;\n\n /*\n Update the enabled variation according to your experiment\n */\n const upsellMessage = getBulletVariation({\n enabled,\n // temporary assignement while not running experiment to force component\n variationKey: 'table',\n isFBE,\n learningAssistantEnabled,\n });\n\n let callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logClick}\n verifiedMode={verifiedMode}\n block\n />\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 return (\n <BaseModal\n {...{\n isOpen,\n close,\n courseId,\n offer,\n callToActionButton,\n }}\n >\n {upsellMessage}\n </BaseModal>\n );\n};\n\nExperimentalUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nExperimentalUpgradeModal.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 datesBannerInfo: PropTypes.shape({\n contentTypeGatingEnabled: PropTypes.bool,\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 learningAssistantEnabled: PropTypes.bool.isRequired,\n};\n\nexport default withOptimizely(ExperimentalUpgradeModal);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,8 +16,8 @@ var _modelStore = require("@src/generic/model-store");
|
|
|
16
16
|
var _certificatePreview = _interopRequireDefault(require("./certificate-preview"));
|
|
17
17
|
var _generic = require("../generic");
|
|
18
18
|
var _messages = _interopRequireDefault(require("./messages"));
|
|
19
|
-
var _utils = require("./utils");
|
|
20
|
-
var
|
|
19
|
+
var _utils = _interopRequireDefault(require("./utils"));
|
|
20
|
+
var _data = require("../data");
|
|
21
21
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
23
|
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); }
|
|
@@ -45,20 +45,14 @@ const DefaultUpgradeNotification = _ref => {
|
|
|
45
45
|
verifiedMode
|
|
46
46
|
} = (0, _modelStore.useModel)('courseHomeMeta', courseId);
|
|
47
47
|
const {
|
|
48
|
-
marketingUrl
|
|
48
|
+
marketingUrl,
|
|
49
|
+
learningAssistantEnabled
|
|
49
50
|
} = (0, _modelStore.useModel)('coursewareMeta', courseId);
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* model prop is use to select relevant model to get offer which is passed from the frontend-app-learning app.
|
|
53
|
-
* for OutlineTab component use outline model and
|
|
54
|
-
* for NotificationTray component use coursewareMeta model to show offer code.
|
|
55
|
-
*/
|
|
56
51
|
const {
|
|
57
52
|
accessExpiration,
|
|
58
53
|
datesBannerInfo,
|
|
59
54
|
offer,
|
|
60
|
-
timeOffsetMillis
|
|
61
|
-
learningAssistantEnabled
|
|
55
|
+
timeOffsetMillis
|
|
62
56
|
} = (0, _modelStore.useModel)(model, courseId);
|
|
63
57
|
const dateNow = Date.now();
|
|
64
58
|
const timezoneFormatArgs = userTimezone ? {
|
|
@@ -68,7 +62,7 @@ const DefaultUpgradeNotification = _ref => {
|
|
|
68
62
|
const accessExpirationDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;
|
|
69
63
|
const pastExpirationDeadline = accessExpiration ? new Date(dateNow) > accessExpirationDate : false;
|
|
70
64
|
const shouldDisplayBorder = pluginLocationId.includes('outline');
|
|
71
|
-
const upsellPageName = (0, _utils.
|
|
65
|
+
const upsellPageName = (0, _utils.default)({
|
|
72
66
|
id: pluginLocationId
|
|
73
67
|
});
|
|
74
68
|
const setupgradeNotificationCurrentState = setNotificationCurrentState;
|
|
@@ -123,9 +117,8 @@ const DefaultUpgradeNotification = _ref => {
|
|
|
123
117
|
*/
|
|
124
118
|
let upgradeNotificationHeaderText;
|
|
125
119
|
let expirationBanner;
|
|
126
|
-
let upsellMessage = (0,
|
|
120
|
+
let upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellBullets, {
|
|
127
121
|
isFBE,
|
|
128
|
-
upsellPageName,
|
|
129
122
|
learningAssistantEnabled
|
|
130
123
|
});
|
|
131
124
|
let callToActionButton;
|
|
@@ -163,7 +156,7 @@ const DefaultUpgradeNotification = _ref => {
|
|
|
163
156
|
setupgradeNotificationCurrentState: setupgradeNotificationCurrentState,
|
|
164
157
|
type: "access"
|
|
165
158
|
});
|
|
166
|
-
if (upsellPageName !==
|
|
159
|
+
if (upsellPageName !== _data.PAGE_NAMES.PROGRESS) {
|
|
167
160
|
upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellFBESoonCardContent, {
|
|
168
161
|
accessExpirationDate: accessExpirationDate,
|
|
169
162
|
timezoneFormatArgs: timezoneFormatArgs
|
|
@@ -180,9 +173,6 @@ const DefaultUpgradeNotification = _ref => {
|
|
|
180
173
|
});
|
|
181
174
|
upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.PastExpirationCardContent, {});
|
|
182
175
|
}
|
|
183
|
-
} else {
|
|
184
|
-
// FBE is turned off
|
|
185
|
-
upgradeNotificationHeaderText = formatMessage(_messages.default.pursueCertificateMessage);
|
|
186
176
|
}
|
|
187
177
|
if (pastExpirationDeadline) {
|
|
188
178
|
callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
|
|
@@ -218,15 +208,12 @@ const DefaultUpgradeNotification = _ref => {
|
|
|
218
208
|
}),
|
|
219
209
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
220
210
|
id: "courseHome-upgradeNotification",
|
|
221
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.
|
|
222
|
-
|
|
223
|
-
bgColor: upsellPageName === _constants.default.PROGRESS ? 'bg-light-100' : ''
|
|
224
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("h2", {
|
|
225
|
-
className: (0, _classnames.default)('h5 upgrade-notification-header', {
|
|
211
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("h2", {
|
|
212
|
+
className: (0, _classnames.default)('upgrade-notification-header', {
|
|
226
213
|
'd-flex align-items-center mr-2 ml-4 my-1.5 font-size-18': !!toggleSidebar
|
|
227
214
|
}),
|
|
228
215
|
id: "outline-sidebar-upgrade-header",
|
|
229
|
-
children: [
|
|
216
|
+
children: [formatMessage(_messages.default.pursueCertificateMessage), !!toggleSidebar && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
230
217
|
className: "d-inline-flex ml-auto",
|
|
231
218
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButton, {
|
|
232
219
|
src: _icons.Close,
|
|
@@ -237,6 +224,11 @@ const DefaultUpgradeNotification = _ref => {
|
|
|
237
224
|
alt: formatMessage(_messages.default.closeAlt)
|
|
238
225
|
})
|
|
239
226
|
})]
|
|
227
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_certificatePreview.default, {
|
|
228
|
+
courseId: courseId
|
|
229
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("h3", {
|
|
230
|
+
className: "ml-4",
|
|
231
|
+
children: upgradeNotificationHeaderText
|
|
240
232
|
}), expirationBanner, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
241
233
|
className: "upgrade-notification-message",
|
|
242
234
|
children: upsellMessage
|