@edx/frontend-plugin-advertisements 1.33.3 → 1.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/data/index.js +8 -0
  2. package/dist/data/index.js.map +1 -1
  3. package/dist/generic/index.js +8 -15
  4. package/dist/generic/index.js.map +1 -1
  5. package/dist/generic/upsell-bullets/PaywallUpsellBullets.js +133 -0
  6. package/dist/generic/upsell-bullets/PaywallUpsellBullets.js.map +1 -0
  7. package/dist/generic/upsell-bullets/UpsellBullets.js +69 -116
  8. package/dist/generic/upsell-bullets/UpsellBullets.js.map +1 -1
  9. package/dist/generic/upsell-bullets/{ExperimentalUpsellTable.js → UpsellTable.js} +7 -7
  10. package/dist/generic/upsell-bullets/UpsellTable.js.map +1 -0
  11. package/dist/generic/upsell-bullets/index.js +14 -14
  12. package/dist/generic/upsell-bullets/index.js.map +1 -1
  13. package/dist/index.js +2 -8
  14. package/dist/index.js.map +1 -1
  15. package/dist/optimizely/utils.js +19 -3
  16. package/dist/optimizely/utils.js.map +1 -1
  17. package/dist/upgrade-modal/BaseModal.js +4 -10
  18. package/dist/upgrade-modal/BaseModal.js.map +1 -1
  19. package/dist/upgrade-modal/DefaultUpgradeModal.js +7 -5
  20. package/dist/upgrade-modal/DefaultUpgradeModal.js.map +1 -1
  21. package/dist/upgrade-modal/ExperimentalUpgradeModal.js +24 -11
  22. package/dist/upgrade-modal/ExperimentalUpgradeModal.js.map +1 -1
  23. package/dist/upgrade-modal/NextUnitButton.js +13 -25
  24. package/dist/upgrade-modal/NextUnitButton.js.map +1 -1
  25. package/dist/upgrade-notification/DefaultUpgradeNotification.js +16 -24
  26. package/dist/upgrade-notification/DefaultUpgradeNotification.js.map +1 -1
  27. package/dist/upgrade-notification/ExperimentalUpgradeNotification.js +34 -13
  28. package/dist/upgrade-notification/ExperimentalUpgradeNotification.js.map +1 -1
  29. package/dist/upgrade-notification/utils.js +2 -21
  30. package/dist/upgrade-notification/utils.js.map +1 -1
  31. package/package.json +1 -1
  32. package/dist/generic/UpsellFarAwayCardContent.js +0 -30
  33. package/dist/generic/UpsellFarAwayCardContent.js.map +0 -1
  34. package/dist/generic/upsell-bullets/ExperimentalUpsellBullets.js +0 -86
  35. package/dist/generic/upsell-bullets/ExperimentalUpsellBullets.js.map +0 -1
  36. package/dist/generic/upsell-bullets/ExperimentalUpsellTable.js.map +0 -1
  37. /package/dist/generic/upsell-bullets/{UpsellBullets.scss → PaywallUpsellBullets.scss} +0 -0
  38. /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, "ExperimentalUpsellBullets", {
6
+ Object.defineProperty(exports, "FullAccessBullet", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _ExperimentalUpsellBullets.default;
9
+ return _PaywallUpsellBullets.FullAccessBullet;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "ExperimentalUpsellTable", {
12
+ Object.defineProperty(exports, "SupportMissionBullet", {
13
13
  enumerable: true,
14
14
  get: function () {
15
- return _ExperimentalUpsellTable.default;
15
+ return _PaywallUpsellBullets.SupportMissionBullet;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "FullAccessBullet", {
18
+ Object.defineProperty(exports, "UnlockGradedBullet", {
19
19
  enumerable: true,
20
20
  get: function () {
21
- return _UpsellBullets.FullAccessBullet;
21
+ return _PaywallUpsellBullets.UnlockGradedBullet;
22
22
  }
23
23
  });
24
- Object.defineProperty(exports, "SupportMissionBullet", {
24
+ Object.defineProperty(exports, "UpsellBullets", {
25
25
  enumerable: true,
26
26
  get: function () {
27
- return _UpsellBullets.SupportMissionBullet;
27
+ return _UpsellBullets.default;
28
28
  }
29
29
  });
30
- Object.defineProperty(exports, "UnlockGradedBullet", {
30
+ Object.defineProperty(exports, "UpsellTable", {
31
31
  enumerable: true,
32
32
  get: function () {
33
- return _UpsellBullets.UnlockGradedBullet;
33
+ return _UpsellTable.default;
34
34
  }
35
35
  });
36
36
  Object.defineProperty(exports, "VerifiedCertBullet", {
37
37
  enumerable: true,
38
38
  get: function () {
39
- return _UpsellBullets.VerifiedCertBullet;
39
+ return _PaywallUpsellBullets.VerifiedCertBullet;
40
40
  }
41
41
  });
42
- var _UpsellBullets = require("./UpsellBullets");
43
- var _ExperimentalUpsellBullets = _interopRequireDefault(require("./ExperimentalUpsellBullets"));
44
- var _ExperimentalUpsellTable = _interopRequireDefault(require("./ExperimentalUpsellTable"));
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":["_UpsellBullets","require","_ExperimentalUpsellBullets","_interopRequireDefault","_ExperimentalUpsellTable","obj","__esModule","default"],"sources":["../../../src/generic/upsell-bullets/index.jsx"],"sourcesContent":["export {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from './UpsellBullets';\nexport { default as ExperimentalUpsellBullets } from './ExperimentalUpsellBullets';\nexport { default as ExperimentalUpsellTable } from './ExperimentalUpsellTable';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAMA,IAAAC,0BAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,wBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA+E,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA","ignoreList":[]}
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, "UpsellFarAwayCardContent", {
24
+ Object.defineProperty(exports, "UpsellBullets", {
31
25
  enumerable: true,
32
26
  get: function () {
33
- return _generic.UpsellFarAwayCardContent;
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 { UpsellFarAwayCardContent, ExperimentalUpsellBullets } from './generic';\n\nexport {\n UpgradeNotification,\n LockPaywall,\n NextUnitButton,\n UpsellFarAwayCardContent,\n ExperimentalUpsellBullets,\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;AAAgF,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA","ignoreList":[]}
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":[]}
@@ -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
- const getBulletVariation = _ref => {
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
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellFarAwayCardContent, {
25
- isFBE
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","UpsellFarAwayCardContent","_default","exports","default"],"sources":["../../src/optimizely/utils.jsx"],"sourcesContent":["import { OPTIMIZELY_VTR_BULLET_EXPERIMENT } from '../data';\n\nimport {\n UpsellFarAwayCardContent,\n} from '../generic';\n\nconst getBulletVariation = ({\n isFBE,\n variationKey,\n enabled,\n enabledVariation,\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 return <UpsellFarAwayCardContent {...{ isFBE }} />;\n};\n\nexport default getBulletVariation;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAEoB,IAAAE,WAAA,GAAAF,OAAA;AAEpB,MAAMG,kBAAkB,GAAGC,IAAA,IAKrB;EAAA,IALsB;IAC1BC,KAAK;IACLC,YAAY;IACZC,OAAO;IACPC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAM;IAAEK;EAAW,CAAC,GAAGC,sCAAgC;EACvD,MAAMC,iBAAiB,GAAGJ,OAAO,IAAID,YAAY,KAAKG,UAAU,CAACG,UAAU;EAE3E,IAAID,iBAAiB,EAAE;IACrB,OAAOH,gBAAgB;EACzB;EAEA,oBAAO,IAAAN,WAAA,CAAAW,GAAA,EAACZ,QAAA,CAAAa,wBAAwB;IAAOT;EAAK,CAAK,CAAC;AACpD,CAAC;AAAC,IAAAU,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEad,kBAAkB","ignoreList":[]}
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
- const isTableVariation = variationKey === _data.OPTIMIZELY_VTR_BULLET_EXPERIMENT.VARIATIONS.EXPERIMENT;
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: [/*#__PURE__*/(0, _jsxRuntime.jsx)("h2", {
72
- className: "h3 mb-3 mt-2.5",
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","_data","_jsxRuntime","obj","__esModule","default","BaseModal","_ref","isOpen","close","courseId","offer","callToActionButton","variationKey","children","intl","useIntl","title","formatMessage","id","defaultMessage","description","isTableVariation","OPTIMIZELY_VTR_BULLET_EXPERIMENT","VARIATIONS","EXPERIMENT","jsxs","MarketingModal","onClose","isBlocking","size","heroIsDark","heroNode","jsx","ModalDialog","Hero","className","style","background","borderTopLeftRadius","borderTopRightRadius","Content","bgColor","footerNode","ActionRow","isStacked","code","defaultProps","propTypes","PropTypes","shape","string","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';\nimport { OPTIMIZELY_VTR_BULLET_EXPERIMENT } from '../data';\n\nconst BaseModal = ({\n isOpen,\n close,\n courseId,\n offer,\n callToActionButton,\n variationKey,\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 const isTableVariation = variationKey === OPTIMIZELY_VTR_BULLET_EXPERIMENT.VARIATIONS.EXPERIMENT;\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 <h2 className=\"h3 mb-3 mt-2.5\">\n {!isTableVariation && title}\n </h2>\n <div className={isTableVariation ? 'mx-n4' : 'ml-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":[]}
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.UpsellFarAwayCardContent, {
104
- isFBE: 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); } /* eslint import/no-unresolved: 0 */
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
- variationKey,
120
+ // temporary assignement while not running experiment to force component
121
+ variationKey: 'table',
105
122
  isFBE,
106
- enabledVariation: /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.ExperimentalUpsellTable, {
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":[]}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _paragon = require("@openedx/paragon");
9
10
  var _modelStore = require("@src/generic/model-store");
10
11
  var _NextButton = _interopRequireDefault(require("@src/courseware/course/sequence/sequence-navigation/generic/NextButton"));
11
12
  var _hooks = require("./hooks");
@@ -22,15 +23,12 @@ const NextUnitButton = _ref => {
22
23
  disabled,
23
24
  buttonText,
24
25
  sequenceId,
25
- unitId,
26
- handleNavigate,
27
- nextSequenceHandler,
26
+ onClickHandler,
28
27
  nextLink,
29
- isOpen,
30
- open,
31
- close
28
+ variant,
29
+ buttonStyle
32
30
  } = _ref;
33
- const sequence = (0, _modelStore.useModel)('sequences', sequenceId);
31
+ const [isOpen, open, close] = (0, _paragon.useToggle)(false);
34
32
  const {
35
33
  verifiedMode,
36
34
  org
@@ -56,21 +54,13 @@ const NextUnitButton = _ref => {
56
54
  handleModal();
57
55
  // eslint-disable-next-line react-hooks/exhaustive-deps
58
56
  }, [sequenceId]);
59
- const handleNext = () => {
60
- const nextIndex = sequence.unitIds.indexOf(unitId) + 1;
61
- const newUnitId = sequence.unitIds[nextIndex];
62
- handleNavigate(newUnitId);
63
- if (nextIndex >= sequence.unitIds.length) {
64
- nextSequenceHandler();
65
- }
66
- };
67
57
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
68
58
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_NextButton.default, {
69
- onClick: handleNext,
59
+ onClickHandler: onClickHandler,
70
60
  nextLink: nextLink,
71
- variant: "link",
72
- buttonStyle: "next-btn",
73
- buttonLabel: buttonText,
61
+ variant: variant,
62
+ buttonStyle: buttonStyle,
63
+ buttonText: buttonText,
74
64
  disabled: disabled
75
65
  }), isOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpgradeModalWrapper.default, {
76
66
  isOpen,
@@ -92,12 +82,10 @@ NextUnitButton.propTypes = {
92
82
  nextLink: _propTypes.default.string.isRequired,
93
83
  sequenceId: _propTypes.default.string.isRequired,
94
84
  unitId: _propTypes.default.string.isRequired,
95
- handleNavigate: _propTypes.default.func.isRequired,
96
- nextSequenceHandler: _propTypes.default.func.isRequired,
97
- isOpen: _propTypes.default.bool.isRequired,
98
- close: _propTypes.default.func.isRequired,
99
- open: _propTypes.default.func.isRequired,
100
- courseId: _propTypes.default.string.isRequired
85
+ onClickHandler: _propTypes.default.func.isRequired,
86
+ courseId: _propTypes.default.string.isRequired,
87
+ variant: _propTypes.default.string.isRequired,
88
+ buttonStyle: _propTypes.default.string.isRequired
101
89
  };
102
90
  var _default = exports.default = NextUnitButton;
103
91
  //# sourceMappingURL=NextUnitButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NextUnitButton.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_modelStore","_NextButton","_hooks","_UpgradeModalWrapper","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","NextUnitButton","_ref","courseId","disabled","buttonText","sequenceId","unitId","handleNavigate","nextSequenceHandler","nextLink","isOpen","open","close","sequence","useModel","verifiedMode","org","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","isEnabled","useIsModalEnabled","shouldShowModalOnClick","countNextClick","useInCourseUpgradeModal","handleModal","useEffect","handleNext","nextIndex","unitIds","indexOf","newUnitId","length","jsxs","Fragment","children","jsx","onClick","variant","buttonStyle","buttonLabel","propTypes","PropTypes","bool","isRequired","string","func","_default","exports"],"sources":["../../src/upgrade-modal/NextUnitButton.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useModel } from '@src/generic/model-store';\nimport NextButton from '@src/courseware/course/sequence/sequence-navigation/generic/NextButton';\nimport { useInCourseUpgradeModal, useIsModalEnabled } from './hooks';\nimport UpgradeModalWrapper from './UpgradeModalWrapper';\n\nconst NextUnitButton = ({\n courseId,\n disabled,\n buttonText,\n sequenceId,\n unitId,\n handleNavigate,\n nextSequenceHandler,\n nextLink,\n isOpen,\n open,\n close,\n}) => {\n const sequence = useModel('sequences', sequenceId);\n const {\n verifiedMode,\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n } = useModel('coursewareMeta', courseId);\n\n const isEnabled = useIsModalEnabled(courseId);\n const [shouldShowModalOnClick, countNextClick] = useInCourseUpgradeModal();\n\n const handleModal = () => {\n if (isEnabled) {\n countNextClick();\n if (shouldShowModalOnClick) {\n open();\n }\n }\n };\n\n useEffect(() => {\n handleModal();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sequenceId]);\n\n const handleNext = () => {\n const nextIndex = sequence.unitIds.indexOf(unitId) + 1;\n const newUnitId = sequence.unitIds[nextIndex];\n handleNavigate(newUnitId);\n\n if (nextIndex >= sequence.unitIds.length) {\n nextSequenceHandler();\n }\n };\n\n return (\n <>\n <NextButton\n onClick={handleNext}\n nextLink={nextLink}\n variant=\"link\"\n buttonStyle=\"next-btn\"\n buttonLabel={buttonText}\n disabled={disabled}\n />\n {isOpen && (\n <UpgradeModalWrapper\n {...{\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n }}\n />\n )}\n </>\n );\n};\n\nNextUnitButton.propTypes = {\n disabled: PropTypes.bool.isRequired,\n buttonText: PropTypes.string.isRequired,\n nextLink: PropTypes.string.isRequired,\n sequenceId: PropTypes.string.isRequired,\n unitId: PropTypes.string.isRequired,\n handleNavigate: PropTypes.func.isRequired,\n nextSequenceHandler: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n close: PropTypes.func.isRequired,\n open: PropTypes.func.isRequired,\n courseId: PropTypes.string.isRequired,\n};\n\nexport default NextUnitButton;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NextUnitButton.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_paragon","_modelStore","_NextButton","_hooks","_UpgradeModalWrapper","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","NextUnitButton","_ref","courseId","disabled","buttonText","sequenceId","onClickHandler","nextLink","variant","buttonStyle","isOpen","open","close","useToggle","verifiedMode","org","useModel","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","isEnabled","useIsModalEnabled","shouldShowModalOnClick","countNextClick","useInCourseUpgradeModal","handleModal","useEffect","jsxs","Fragment","children","jsx","propTypes","PropTypes","bool","isRequired","string","unitId","func","_default","exports"],"sources":["../../src/upgrade-modal/NextUnitButton.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useToggle } from '@openedx/paragon';\n\nimport { useModel } from '@src/generic/model-store';\nimport NextButton from '@src/courseware/course/sequence/sequence-navigation/generic/NextButton';\nimport { useInCourseUpgradeModal, useIsModalEnabled } from './hooks';\nimport UpgradeModalWrapper from './UpgradeModalWrapper';\n\nconst NextUnitButton = ({\n courseId,\n disabled,\n buttonText,\n sequenceId,\n onClickHandler,\n nextLink,\n variant,\n buttonStyle,\n}) => {\n const [isOpen, open, close] = useToggle(false);\n const {\n verifiedMode,\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n } = useModel('coursewareMeta', courseId);\n\n const isEnabled = useIsModalEnabled(courseId);\n const [shouldShowModalOnClick, countNextClick] = useInCourseUpgradeModal();\n\n const handleModal = () => {\n if (isEnabled) {\n countNextClick();\n if (shouldShowModalOnClick) {\n open();\n }\n }\n };\n\n useEffect(() => {\n handleModal();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sequenceId]);\n\n return (\n <>\n <NextButton\n onClickHandler={onClickHandler}\n nextLink={nextLink}\n variant={variant}\n buttonStyle={buttonStyle}\n buttonText={buttonText}\n disabled={disabled}\n />\n {isOpen && (\n <UpgradeModalWrapper\n {...{\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n }}\n />\n )}\n </>\n );\n};\n\nNextUnitButton.propTypes = {\n disabled: PropTypes.bool.isRequired,\n buttonText: PropTypes.string.isRequired,\n nextLink: PropTypes.string.isRequired,\n sequenceId: PropTypes.string.isRequired,\n unitId: PropTypes.string.isRequired,\n onClickHandler: PropTypes.func.isRequired,\n courseId: PropTypes.string.isRequired,\n variant: PropTypes.string.isRequired,\n buttonStyle: PropTypes.string.isRequired,\n};\n\nexport default NextUnitButton;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAEA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,oBAAA,GAAAL,sBAAA,CAAAF,OAAA;AAAwD,IAAAQ,WAAA,GAAAR,OAAA;AAAA,SAAAE,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAd,wBAAAc,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAY,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAhB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AARxD;;AAUA,MAAMW,cAAc,GAAGC,IAAA,IASjB;EAAA,IATkB;IACtBC,QAAQ;IACRC,QAAQ;IACRC,UAAU;IACVC,UAAU;IACVC,cAAc;IACdC,QAAQ;IACRC,OAAO;IACPC;EACF,CAAC,GAAAR,IAAA;EACC,MAAM,CAACS,MAAM,EAAEC,IAAI,EAAEC,KAAK,CAAC,GAAG,IAAAC,kBAAS,EAAC,KAAK,CAAC;EAC9C,MAAM;IACJC,YAAY;IACZC;EACF,CAAC,GAAG,IAAAC,oBAAQ,EAAC,gBAAgB,EAAEd,QAAQ,CAAC;EAExC,MAAM;IACJe,KAAK;IACLC,YAAY;IACZC,gBAAgB;IAChBC,eAAe;IACfC;EACF,CAAC,GAAG,IAAAL,oBAAQ,EAAC,gBAAgB,EAAEd,QAAQ,CAAC;EAExC,MAAMoB,SAAS,GAAG,IAAAC,wBAAiB,EAACrB,QAAQ,CAAC;EAC7C,MAAM,CAACsB,sBAAsB,EAAEC,cAAc,CAAC,GAAG,IAAAC,8BAAuB,EAAC,CAAC;EAE1E,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIL,SAAS,EAAE;MACbG,cAAc,CAAC,CAAC;MAChB,IAAID,sBAAsB,EAAE;QAC1Bb,IAAI,CAAC,CAAC;MACR;IACF;EACF,CAAC;EAED,IAAAiB,gBAAS,EAAC,MAAM;IACdD,WAAW,CAAC,CAAC;IACb;EACF,CAAC,EAAE,CAACtB,UAAU,CAAC,CAAC;EAEhB,oBACE,IAAA3B,WAAA,CAAAmD,IAAA,EAAAnD,WAAA,CAAAoD,QAAA;IAAAC,QAAA,gBACE,IAAArD,WAAA,CAAAsD,GAAA,EAACzD,WAAA,CAAAM,OAAU;MACTyB,cAAc,EAAEA,cAAe;MAC/BC,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjBC,WAAW,EAAEA,WAAY;MACzBL,UAAU,EAAEA,UAAW;MACvBD,QAAQ,EAAEA;IAAS,CACpB,CAAC,EACDO,MAAM,iBACL,IAAAhC,WAAA,CAAAsD,GAAA,EAACvD,oBAAA,CAAAI,OAAmB;MAEhB6B,MAAM;MACNE,KAAK;MACLE,YAAY;MACZC,GAAG;MACHb,QAAQ;MACRe,KAAK;MACLC,YAAY;MACZC,gBAAgB;MAChBC,eAAe;MACfC;IAAwB,CAE3B,CACF;EAAA,CACD,CAAC;AAEP,CAAC;AAEDrB,cAAc,CAACiC,SAAS,GAAG;EACzB9B,QAAQ,EAAE+B,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnChC,UAAU,EAAE8B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvC7B,QAAQ,EAAE2B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACrC/B,UAAU,EAAE6B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvCE,MAAM,EAAEJ,kBAAS,CAACG,MAAM,CAACD,UAAU;EACnC9B,cAAc,EAAE4B,kBAAS,CAACK,IAAI,CAACH,UAAU;EACzClC,QAAQ,EAAEgC,kBAAS,CAACG,MAAM,CAACD,UAAU;EACrC5B,OAAO,EAAE0B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACpC3B,WAAW,EAAEyB,kBAAS,CAACG,MAAM,CAACD;AAChC,CAAC;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAA5D,OAAA,GAEamB,cAAc","ignoreList":[]}