@edx/frontend-plugin-advertisements 1.28.0 → 1.29.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 (67) hide show
  1. package/dist/data/index.js +0 -6
  2. package/dist/data/index.js.map +1 -1
  3. package/dist/data/optimizely.js +1 -9
  4. package/dist/data/optimizely.js.map +1 -1
  5. package/dist/generic/AccessExpirationDateBanner.js.map +1 -0
  6. package/dist/generic/ExpirationCountdown.js.map +1 -0
  7. package/dist/generic/PastExpirationCardContent.js.map +1 -0
  8. package/dist/generic/PastExpirationDateBanner.js.map +1 -0
  9. package/dist/generic/UpsellFBESoonCardContent.js.map +1 -0
  10. package/dist/{upgrade-notification/generic → generic}/UpsellFarAwayCardContent.js +1 -1
  11. package/dist/generic/UpsellFarAwayCardContent.js.map +1 -0
  12. package/dist/generic/index.js.map +1 -0
  13. package/dist/generic/upsell-bullets/ExperimentalUpsellBullets.js.map +1 -0
  14. package/dist/generic/upsell-bullets/ExperimentalUpsellTable.js.map +1 -0
  15. package/dist/generic/upsell-bullets/UpsellBullets.js.map +1 -0
  16. package/dist/generic/upsell-bullets/index.js.map +1 -0
  17. package/dist/generic/upsell-bullets/messages.js.map +1 -0
  18. package/dist/index.js +2 -17
  19. package/dist/index.js.map +1 -1
  20. package/dist/optimizely/utils.js +43 -0
  21. package/dist/optimizely/utils.js.map +1 -0
  22. package/dist/paywall/ExperimentalLockPaywall.js +1 -1
  23. package/dist/paywall/ExperimentalLockPaywall.js.map +1 -1
  24. package/dist/upgrade-modal/BaseModal.js +95 -0
  25. package/dist/upgrade-modal/BaseModal.js.map +1 -0
  26. package/dist/upgrade-modal/DefaultUpgradeModal.js +118 -27
  27. package/dist/upgrade-modal/DefaultUpgradeModal.js.map +1 -1
  28. package/dist/upgrade-modal/ExperimentalUpgradeModal.js +132 -72
  29. package/dist/upgrade-modal/ExperimentalUpgradeModal.js.map +1 -1
  30. package/dist/upgrade-modal/NextUnitButton.js +58 -10
  31. package/dist/upgrade-modal/NextUnitButton.js.map +1 -1
  32. package/dist/upgrade-modal/hooks.js +2 -2
  33. package/dist/upgrade-modal/hooks.js.map +1 -1
  34. package/dist/upgrade-modal/index.js +2 -9
  35. package/dist/upgrade-modal/index.js.map +1 -1
  36. package/dist/upgrade-notification/DefaultUpgradeNotification.js +1 -1
  37. package/dist/upgrade-notification/DefaultUpgradeNotification.js.map +1 -1
  38. package/dist/upgrade-notification/ExperimentalUpgradeNotification.js +5 -35
  39. package/dist/upgrade-notification/ExperimentalUpgradeNotification.js.map +1 -1
  40. package/package.json +1 -1
  41. package/dist/upgrade-modal/UpgradeModal.js +0 -289
  42. package/dist/upgrade-modal/UpgradeModal.js.map +0 -1
  43. package/dist/upgrade-notification/generic/AccessExpirationDateBanner.js.map +0 -1
  44. package/dist/upgrade-notification/generic/ExpirationCountdown.js.map +0 -1
  45. package/dist/upgrade-notification/generic/PastExpirationCardContent.js.map +0 -1
  46. package/dist/upgrade-notification/generic/PastExpirationDateBanner.js.map +0 -1
  47. package/dist/upgrade-notification/generic/UpsellFBESoonCardContent.js.map +0 -1
  48. package/dist/upgrade-notification/generic/UpsellFarAwayCardContent.js.map +0 -1
  49. package/dist/upgrade-notification/generic/index.js.map +0 -1
  50. package/dist/upsell-bullets/ExperimentalUpsellBullets.js.map +0 -1
  51. package/dist/upsell-bullets/ExperimentalUpsellTable.js.map +0 -1
  52. package/dist/upsell-bullets/UpsellBullets.js.map +0 -1
  53. package/dist/upsell-bullets/index.js.map +0 -1
  54. package/dist/upsell-bullets/messages.js.map +0 -1
  55. /package/dist/{upgrade-notification/generic → generic}/AccessExpirationDateBanner.js +0 -0
  56. /package/dist/{upgrade-notification/generic → generic}/ExpirationCountdown.js +0 -0
  57. /package/dist/{upgrade-notification/generic → generic}/PastExpirationCardContent.js +0 -0
  58. /package/dist/{upgrade-notification/generic → generic}/PastExpirationDateBanner.js +0 -0
  59. /package/dist/{upgrade-notification/generic → generic}/UpsellFBESoonCardContent.js +0 -0
  60. /package/dist/{upgrade-notification/generic → generic}/index.js +0 -0
  61. /package/dist/{upsell-bullets → generic/upsell-bullets}/ExperimentalUpsellBullets.js +0 -0
  62. /package/dist/{upsell-bullets → generic/upsell-bullets}/ExperimentalUpsellTable.js +0 -0
  63. /package/dist/{upsell-bullets → generic/upsell-bullets}/ExperimentalUpsellTable.scss +0 -0
  64. /package/dist/{upsell-bullets → generic/upsell-bullets}/UpsellBullets.js +0 -0
  65. /package/dist/{upsell-bullets → generic/upsell-bullets}/UpsellBullets.scss +0 -0
  66. /package/dist/{upsell-bullets → generic/upsell-bullets}/index.js +0 -0
  67. /package/dist/{upsell-bullets → generic/upsell-bullets}/messages.js +0 -0
@@ -4,42 +4,133 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _NextUnitButton = _interopRequireDefault(require("./NextUnitButton"));
9
+ var _analytics = require("@edx/frontend-platform/analytics");
10
+ var _i18n = require("@edx/frontend-platform/i18n");
11
+ var _paragon = require("@openedx/paragon");
12
+ var _upgradeButton = require("@src/generic/upgrade-button");
13
+ var _generic = require("../generic");
14
+ var _BaseModal = _interopRequireDefault(require("./BaseModal"));
10
15
  var _jsxRuntime = require("react/jsx-runtime");
11
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ 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); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ 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; }
21
+ 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; }
22
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
23
+ 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 */
12
24
  const DefaultUpgradeModal = _ref => {
13
25
  let {
14
- disabled,
15
- buttonText,
16
- nextLink,
17
- sequenceId,
18
- unitId,
19
- handleNavigate,
20
- nextSequenceHandler
26
+ isOpen,
27
+ close,
28
+ verifiedMode,
29
+ org,
30
+ courseId,
31
+ offer,
32
+ marketingUrl,
33
+ accessExpiration,
34
+ datesBannerInfo
21
35
  } = _ref;
22
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NextUnitButton.default, {
23
- disabled,
24
- buttonText,
25
- nextLink,
26
- sequenceId,
27
- unitId,
28
- nextSequenceHandler,
29
- handleNavigate
36
+ const upsellPageName = 'course_sequence_modal';
37
+ const eventProperties = {
38
+ org_key: org,
39
+ courserun_key: courseId
40
+ };
41
+ const promotionEventProperties = _objectSpread({
42
+ creative: 'marketmodalupsell',
43
+ name: 'In-Course Verification Prompt',
44
+ position: 'marketing-modal-message',
45
+ promotion_id: 'courseware_verified_certificate_upsell'
46
+ }, eventProperties);
47
+ (0, _react.useEffect)(() => {
48
+ (0, _analytics.sendTrackingLogEvent)('edx.bi.course.upgrade.marketmodalupsell.displayed', eventProperties);
49
+ (0, _analytics.sendTrackEvent)('Promotion Viewed', promotionEventProperties);
50
+ // eslint-disable-next-line react-hooks/exhaustive-deps
51
+ }, []);
52
+ const logClick = () => {
53
+ (0, _analytics.sendTrackingLogEvent)('edx.bi.course.upgrade.marketingmodal.clicked', eventProperties);
54
+ (0, _analytics.sendTrackingLogEvent)('edx.course.enrollment.upgrade.clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
55
+ location: 'marketing-modal-message'
56
+ }));
57
+ (0, _analytics.sendTrackEvent)('Promotion Clicked', promotionEventProperties);
58
+ (0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upsell_links_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
59
+ linkCategory: 'green_upgrade',
60
+ linkName: `${upsellPageName}_green`,
61
+ linkType: 'button',
62
+ pageName: upsellPageName
63
+ }));
64
+ };
65
+ const logClickPastExpiration = () => {
66
+ (0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
67
+ linkCategory: 'upgrade_modal',
68
+ linkName: `${upsellPageName}_course_details`,
69
+ linkType: 'button',
70
+ pageName: upsellPageName
71
+ }));
72
+ };
73
+ const intl = (0, _i18n.useIntl)();
74
+ const dateNow = Date.now();
75
+ const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;
76
+ const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;
77
+ const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;
78
+ let callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
79
+ offer: offer,
80
+ onClick: logClick,
81
+ verifiedMode: verifiedMode,
82
+ block: true
30
83
  });
84
+ if (pastDeadline) {
85
+ callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
86
+ className: "w-100",
87
+ onClick: logClickPastExpiration,
88
+ href: marketingUrl,
89
+ children: intl.formatMessage({
90
+ id: 'learning.upgrade-modal.upgrade-button.label',
91
+ defaultMessage: 'View course details',
92
+ description: 'Label for upgrade button'
93
+ })
94
+ });
95
+ }
96
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BaseModal.default, {
97
+ variationKey: "off",
98
+ isOpen,
99
+ close,
100
+ courseId,
101
+ offer,
102
+ callToActionButton,
103
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellFarAwayCardContent, {
104
+ isFBE: isFBE
105
+ })
106
+ });
107
+ };
108
+ DefaultUpgradeModal.defaultProps = {
109
+ verifiedMode: {},
110
+ offer: null,
111
+ accessExpiration: null,
112
+ datesBannerInfo: null
31
113
  };
32
114
  DefaultUpgradeModal.propTypes = {
33
- disabled: _propTypes.default.bool.isRequired,
34
- buttonText: _propTypes.default.string.isRequired,
35
- nextArrow: _propTypes.default.func.isRequired,
36
- nextLink: _propTypes.default.string.isRequired,
37
- shouldDisplayNotificationTriggerInSequence: _propTypes.default.bool.isRequired,
38
- sequenceId: _propTypes.default.string.isRequired,
39
- unitId: _propTypes.default.string.isRequired,
40
- handleNavigate: _propTypes.default.func.isRequired,
41
- linkComponent: _propTypes.default.node.isRequired,
42
- nextSequenceHandler: _propTypes.default.func.isRequired
115
+ verifiedMode: _propTypes.default.shape({
116
+ price: _propTypes.default.number.isRequired,
117
+ currencySymbol: _propTypes.default.string.isRequired,
118
+ upgradeUrl: _propTypes.default.string.isRequired
119
+ }),
120
+ offer: _propTypes.default.shape({
121
+ code: _propTypes.default.string
122
+ }),
123
+ accessExpiration: _propTypes.default.shape({
124
+ upgradeDeadline: _propTypes.default.string
125
+ }),
126
+ datesBannerInfo: _propTypes.default.shape({
127
+ contentTypeGatingEnabled: _propTypes.default.bool
128
+ }),
129
+ marketingUrl: _propTypes.default.string.isRequired,
130
+ org: _propTypes.default.string.isRequired,
131
+ courseId: _propTypes.default.string.isRequired,
132
+ close: _propTypes.default.func.isRequired,
133
+ isOpen: _propTypes.default.bool.isRequired
43
134
  };
44
135
  var _default = exports.default = DefaultUpgradeModal;
45
136
  //# sourceMappingURL=DefaultUpgradeModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultUpgradeModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_NextUnitButton","_jsxRuntime","obj","__esModule","default","DefaultUpgradeModal","_ref","disabled","buttonText","nextLink","sequenceId","unitId","handleNavigate","nextSequenceHandler","jsx","propTypes","PropTypes","bool","isRequired","string","nextArrow","func","shouldDisplayNotificationTriggerInSequence","linkComponent","node","_default","exports"],"sources":["../../src/upgrade-modal/DefaultUpgradeModal.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport NextUnitButton from './NextUnitButton';\n\nconst DefaultUpgradeModal = ({\n disabled,\n buttonText,\n nextLink,\n sequenceId,\n unitId,\n handleNavigate,\n nextSequenceHandler,\n}) => (\n <NextUnitButton\n {...{\n disabled,\n buttonText,\n nextLink,\n sequenceId,\n unitId,\n nextSequenceHandler,\n handleNavigate,\n }}\n />\n);\n\nDefaultUpgradeModal.propTypes = {\n disabled: PropTypes.bool.isRequired,\n buttonText: PropTypes.string.isRequired,\n nextArrow: PropTypes.func.isRequired,\n nextLink: PropTypes.string.isRequired,\n shouldDisplayNotificationTriggerInSequence: PropTypes.bool.isRequired,\n sequenceId: PropTypes.string.isRequired,\n unitId: PropTypes.string.isRequired,\n handleNavigate: PropTypes.func.isRequired,\n linkComponent: PropTypes.node.isRequired,\n nextSequenceHandler: PropTypes.func.isRequired,\n};\n\nexport default DefaultUpgradeModal;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,eAAA,GAAAH,sBAAA,CAAAC,OAAA;AAA8C,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE9C,MAAMG,mBAAmB,GAAGC,IAAA;EAAA,IAAC;IAC3BC,QAAQ;IACRC,UAAU;IACVC,QAAQ;IACRC,UAAU;IACVC,MAAM;IACNC,cAAc;IACdC;EACF,CAAC,GAAAP,IAAA;EAAA,oBACC,IAAAL,WAAA,CAAAa,GAAA,EAACd,eAAA,CAAAI,OAAc;IAEXG,QAAQ;IACRC,UAAU;IACVC,QAAQ;IACRC,UAAU;IACVC,MAAM;IACNE,mBAAmB;IACnBD;EAAc,CAEjB,CAAC;AAAA,CACH;AAEDP,mBAAmB,CAACU,SAAS,GAAG;EAC9BR,QAAQ,EAAES,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCV,UAAU,EAAEQ,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvCE,SAAS,EAAEJ,kBAAS,CAACK,IAAI,CAACH,UAAU;EACpCT,QAAQ,EAAEO,kBAAS,CAACG,MAAM,CAACD,UAAU;EACrCI,0CAA0C,EAAEN,kBAAS,CAACC,IAAI,CAACC,UAAU;EACrER,UAAU,EAAEM,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvCP,MAAM,EAAEK,kBAAS,CAACG,MAAM,CAACD,UAAU;EACnCN,cAAc,EAAEI,kBAAS,CAACK,IAAI,CAACH,UAAU;EACzCK,aAAa,EAAEP,kBAAS,CAACQ,IAAI,CAACN,UAAU;EACxCL,mBAAmB,EAAEG,kBAAS,CAACK,IAAI,CAACH;AACtC,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAtB,OAAA,GAEaC,mBAAmB","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","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":[]}
@@ -4,91 +4,151 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = _interopRequireDefault(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _modelStore = require("@src/generic/model-store");
10
- var _UpgradeModal = _interopRequireDefault(require("./UpgradeModal"));
11
- var _NextUnitButton = _interopRequireDefault(require("./NextUnitButton"));
12
- var _hooks = require("./hooks");
9
+ var _reactSdk = require("@optimizely/react-sdk");
10
+ var _analytics = require("@edx/frontend-platform/analytics");
11
+ var _i18n = require("@edx/frontend-platform/i18n");
12
+ var _paragon = require("@openedx/paragon");
13
+ var _upgradeButton = require("@src/generic/upgrade-button");
14
+ var _utils = _interopRequireDefault(require("../optimizely/utils"));
15
+ var _data = require("../data");
16
+ var _BaseModal = _interopRequireDefault(require("./BaseModal"));
13
17
  var _jsxRuntime = require("react/jsx-runtime");
14
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
- 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); }
16
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
- /* eslint import/no-unresolved: 0 */
18
-
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ 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; }
21
+ 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; }
22
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
23
+ 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 */
19
24
  const ExperimentalUpgradeModal = _ref => {
20
25
  let {
21
- courseId,
22
- disabled,
23
- buttonText,
24
- sequenceId,
25
- unitId,
26
- nextSequenceHandler,
27
- handleNavigate,
28
- nextLink,
29
26
  isOpen,
30
- open,
31
- close
32
- } = _ref;
33
- const {
27
+ close,
34
28
  verifiedMode,
35
- org
36
- } = (0, _modelStore.useModel)('courseHomeMeta', courseId);
37
- const {
29
+ org,
30
+ courseId,
38
31
  offer,
39
32
  marketingUrl,
40
- accessExpiration
41
- } = (0, _modelStore.useModel)('coursewareMeta', courseId);
42
- const isExperimentEnabled = (0, _hooks.useIsModalExperimentEnabled)(courseId);
43
- const [shouldShowModalOnClick, countNextClick] = (0, _hooks.useInCourseUpgradeModal)();
44
- const handleModal = () => {
45
- if (isExperimentEnabled) {
46
- countNextClick();
47
- if (shouldShowModalOnClick) {
48
- open();
49
- }
50
- }
33
+ accessExpiration,
34
+ datesBannerInfo,
35
+ optimizely
36
+ } = _ref;
37
+ const {
38
+ KEY: experimentKey,
39
+ ACTION
40
+ } = _data.OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT;
41
+ const [decision] = (0, _reactSdk.useDecision)(experimentKey);
42
+ const {
43
+ variationKey,
44
+ enabled
45
+ } = decision;
46
+
47
+ // Experiment specific properties or data should not be sent to the tracking logs, so break this
48
+ // object out to ensure it is only sent to Segment and not the tracking logs.
49
+ const experimentProperties = {
50
+ experiment_key: experimentKey,
51
+ variation_key: variationKey
52
+ };
53
+ const upsellPageName = 'course_sequence_modal';
54
+ const eventProperties = {
55
+ org_key: org,
56
+ courserun_key: courseId
51
57
  };
52
- (0, _react.useEffect)(() => {
53
- handleModal();
54
- // eslint-disable-next-line react-hooks/exhaustive-deps
55
- }, [sequenceId]);
56
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
57
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_NextUnitButton.default, {
58
- disabled,
59
- buttonText,
60
- sequenceId,
61
- unitId,
62
- nextSequenceHandler,
63
- handleNavigate,
64
- nextLink
65
- }), isOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpgradeModal.default, {
66
- isOpen,
67
- close,
68
- verifiedMode,
69
- org,
70
- courseId,
71
- offer,
72
- marketingUrl,
73
- accessExpiration
74
- })]
58
+ const promotionEventProperties = _objectSpread(_objectSpread({
59
+ creative: 'marketmodalupsell',
60
+ name: 'In-Course Verification Prompt',
61
+ position: 'marketing-modal-message',
62
+ promotion_id: 'courseware_verified_certificate_upsell'
63
+ }, eventProperties), experimentProperties);
64
+ const logClick = () => {
65
+ (0, _analytics.sendTrackingLogEvent)('edx.bi.course.upgrade.marketingmodal.clicked', eventProperties);
66
+ (0, _analytics.sendTrackingLogEvent)('edx.course.enrollment.upgrade.clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
67
+ location: 'marketing-modal-message'
68
+ }));
69
+ (0, _analytics.sendTrackEvent)('Promotion Clicked', promotionEventProperties);
70
+ (0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upsell_links_clicked', _objectSpread(_objectSpread(_objectSpread({}, eventProperties), experimentProperties), {}, {
71
+ linkCategory: 'green_upgrade',
72
+ linkName: `${upsellPageName}_green`,
73
+ linkType: 'button',
74
+ pageName: upsellPageName
75
+ }));
76
+ optimizely.track(ACTION);
77
+ };
78
+ const logClickPastExpiration = () => {
79
+ (0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', _objectSpread(_objectSpread(_objectSpread({}, eventProperties), experimentProperties), {}, {
80
+ linkCategory: 'upgrade_modal',
81
+ linkName: `${upsellPageName}_course_details`,
82
+ linkType: 'button',
83
+ pageName: upsellPageName
84
+ }));
85
+ };
86
+ const intl = (0, _i18n.useIntl)();
87
+ const dateNow = Date.now();
88
+ const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;
89
+ const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;
90
+ const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;
91
+ const upsellMessage = (0, _utils.default)({
92
+ enabled,
93
+ variationKey,
94
+ isFBE
95
+ });
96
+ let callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
97
+ offer: offer,
98
+ onClick: logClick,
99
+ verifiedMode: verifiedMode,
100
+ block: true
101
+ });
102
+ if (pastDeadline) {
103
+ callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
104
+ className: "w-100",
105
+ onClick: logClickPastExpiration,
106
+ href: marketingUrl,
107
+ children: intl.formatMessage({
108
+ id: 'learning.upgrade-modal.upgrade-button.label',
109
+ defaultMessage: 'View course details',
110
+ description: 'Label for upgrade button'
111
+ })
112
+ });
113
+ }
114
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BaseModal.default, {
115
+ isOpen,
116
+ close,
117
+ courseId,
118
+ offer,
119
+ callToActionButton,
120
+ variationKey,
121
+ children: upsellMessage
75
122
  });
76
123
  };
124
+ ExperimentalUpgradeModal.defaultProps = {
125
+ verifiedMode: {},
126
+ offer: null,
127
+ accessExpiration: null,
128
+ datesBannerInfo: null
129
+ };
77
130
  ExperimentalUpgradeModal.propTypes = {
78
- disabled: _propTypes.default.bool.isRequired,
79
- buttonText: _propTypes.default.string.isRequired,
80
- nextArrow: _propTypes.default.func.isRequired,
81
- nextLink: _propTypes.default.string.isRequired,
82
- shouldDisplayNotificationTriggerInSequence: _propTypes.default.bool.isRequired,
83
- sequenceId: _propTypes.default.string.isRequired,
84
- unitId: _propTypes.default.string.isRequired,
85
- handleNavigate: _propTypes.default.func.isRequired,
86
- nextSequenceHandler: _propTypes.default.func.isRequired,
87
- isOpen: _propTypes.default.bool.isRequired,
88
- open: _propTypes.default.func.isRequired,
89
- linkComponent: _propTypes.default.node.isRequired,
131
+ verifiedMode: _propTypes.default.shape({
132
+ price: _propTypes.default.number.isRequired,
133
+ currencySymbol: _propTypes.default.string.isRequired,
134
+ upgradeUrl: _propTypes.default.string.isRequired
135
+ }),
136
+ offer: _propTypes.default.shape({
137
+ code: _propTypes.default.string
138
+ }),
139
+ accessExpiration: _propTypes.default.shape({
140
+ upgradeDeadline: _propTypes.default.string
141
+ }),
142
+ datesBannerInfo: _propTypes.default.shape({
143
+ contentTypeGatingEnabled: _propTypes.default.bool
144
+ }),
145
+ marketingUrl: _propTypes.default.string.isRequired,
146
+ org: _propTypes.default.string.isRequired,
147
+ courseId: _propTypes.default.string.isRequired,
90
148
  close: _propTypes.default.func.isRequired,
91
- courseId: _propTypes.default.string.isRequired
149
+ isOpen: _propTypes.default.bool.isRequired,
150
+ /* eslint-disable-next-line react/forbid-prop-types */
151
+ optimizely: _propTypes.default.object.isRequired
92
152
  };
93
- var _default = exports.default = ExperimentalUpgradeModal;
153
+ var _default = exports.default = (0, _reactSdk.withOptimizely)(ExperimentalUpgradeModal);
94
154
  //# sourceMappingURL=ExperimentalUpgradeModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExperimentalUpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_modelStore","_UpgradeModal","_NextUnitButton","_hooks","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ExperimentalUpgradeModal","_ref","courseId","disabled","buttonText","sequenceId","unitId","nextSequenceHandler","handleNavigate","nextLink","isOpen","open","close","verifiedMode","org","useModel","offer","marketingUrl","accessExpiration","isExperimentEnabled","useIsModalExperimentEnabled","shouldShowModalOnClick","countNextClick","useInCourseUpgradeModal","handleModal","useEffect","jsxs","Fragment","children","jsx","propTypes","PropTypes","bool","isRequired","string","nextArrow","func","shouldDisplayNotificationTriggerInSequence","linkComponent","node","_default","exports"],"sources":["../../src/upgrade-modal/ExperimentalUpgradeModal.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 UpgradeModal from './UpgradeModal';\nimport NextUnitButton from './NextUnitButton';\nimport { useInCourseUpgradeModal, useIsModalExperimentEnabled } from './hooks';\n\nconst ExperimentalUpgradeModal = ({\n courseId,\n disabled,\n buttonText,\n sequenceId,\n unitId,\n nextSequenceHandler,\n handleNavigate,\n nextLink,\n isOpen,\n open,\n close,\n}) => {\n const {\n verifiedMode,\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n offer,\n marketingUrl,\n accessExpiration,\n } = useModel('coursewareMeta', courseId);\n\n const isExperimentEnabled = useIsModalExperimentEnabled(courseId);\n const [shouldShowModalOnClick, countNextClick] = useInCourseUpgradeModal();\n\n const handleModal = () => {\n if (isExperimentEnabled) {\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 <NextUnitButton\n {...{\n disabled,\n buttonText,\n sequenceId,\n unitId,\n nextSequenceHandler,\n handleNavigate,\n nextLink,\n }}\n />\n\n {isOpen && (\n <UpgradeModal\n {...{\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n }}\n />\n )}\n </>\n );\n};\n\nExperimentalUpgradeModal.propTypes = {\n disabled: PropTypes.bool.isRequired,\n buttonText: PropTypes.string.isRequired,\n nextArrow: PropTypes.func.isRequired,\n nextLink: PropTypes.string.isRequired,\n shouldDisplayNotificationTriggerInSequence: PropTypes.bool.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 open: PropTypes.func.isRequired,\n linkComponent: PropTypes.node.isRequired,\n close: PropTypes.func.isRequired,\n courseId: PropTypes.string.isRequired,\n};\n\nexport default ExperimentalUpgradeModal;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ExperimentalUpgradeModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactSdk","_analytics","_i18n","_paragon","_upgradeButton","_utils","_data","_BaseModal","_jsxRuntime","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ExperimentalUpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","optimizely","KEY","experimentKey","ACTION","OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT","decision","useDecision","variationKey","enabled","experimentProperties","experiment_key","variation_key","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","logClick","sendTrackingLogEvent","location","sendTrackEvent","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":["/* eslint import/no-unresolved: 0 */\nimport React 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_SIDEBAR_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}) => {\n const { KEY: experimentKey, ACTION } = OPTIMIZELY_VTR_SIDEBAR_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 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(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({ enabled, variationKey, isFBE });\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};\n\nexport default withOptimizely(ExperimentalUpgradeModal);\n"],"mappings":"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","ignoreList":[]}
@@ -4,25 +4,57 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _modelStore = require("@src/generic/model-store");
10
10
  var _NextButton = _interopRequireDefault(require("@src/courseware/course/sequence/sequence-navigation/generic/NextButton"));
11
+ var _hooks = require("./hooks");
12
+ var _UpgradeModalWrapper = _interopRequireDefault(require("./UpgradeModalWrapper"));
11
13
  var _jsxRuntime = require("react/jsx-runtime");
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ 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); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
17
  /* eslint import/no-unresolved: 0 */
14
18
 
15
19
  const NextUnitButton = _ref => {
16
20
  let {
21
+ courseId,
17
22
  disabled,
18
23
  buttonText,
19
24
  sequenceId,
20
25
  unitId,
21
26
  handleNavigate,
22
27
  nextSequenceHandler,
23
- nextLink
28
+ nextLink,
29
+ isOpen,
30
+ open,
31
+ close
24
32
  } = _ref;
25
33
  const sequence = (0, _modelStore.useModel)('sequences', sequenceId);
34
+ const {
35
+ verifiedMode,
36
+ org
37
+ } = (0, _modelStore.useModel)('courseHomeMeta', courseId);
38
+ const {
39
+ offer,
40
+ marketingUrl,
41
+ accessExpiration,
42
+ datesBannerInfo
43
+ } = (0, _modelStore.useModel)('coursewareMeta', courseId);
44
+ const isEnabled = (0, _hooks.useIsModalEnabled)(courseId);
45
+ const [shouldShowModalOnClick, countNextClick] = (0, _hooks.useInCourseUpgradeModal)();
46
+ const handleModal = () => {
47
+ if (isEnabled) {
48
+ countNextClick();
49
+ if (shouldShowModalOnClick) {
50
+ open();
51
+ }
52
+ }
53
+ };
54
+ (0, _react.useEffect)(() => {
55
+ handleModal();
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ }, [sequenceId]);
26
58
  const handleNext = () => {
27
59
  const nextIndex = sequence.unitIds.indexOf(unitId) + 1;
28
60
  const newUnitId = sequence.unitIds[nextIndex];
@@ -31,13 +63,25 @@ const NextUnitButton = _ref => {
31
63
  nextSequenceHandler();
32
64
  }
33
65
  };
34
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NextButton.default, {
35
- onClick: handleNext,
36
- nextLink: nextLink,
37
- variant: "link",
38
- buttonStyle: "next-btn",
39
- buttonLabel: buttonText,
40
- disabled: disabled
66
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
67
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_NextButton.default, {
68
+ onClick: handleNext,
69
+ nextLink: nextLink,
70
+ variant: "link",
71
+ buttonStyle: "next-btn",
72
+ buttonLabel: buttonText,
73
+ disabled: disabled
74
+ }), isOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpgradeModalWrapper.default, {
75
+ isOpen,
76
+ close,
77
+ verifiedMode,
78
+ org,
79
+ courseId,
80
+ offer,
81
+ marketingUrl,
82
+ accessExpiration,
83
+ datesBannerInfo
84
+ })]
41
85
  });
42
86
  };
43
87
  NextUnitButton.propTypes = {
@@ -47,7 +91,11 @@ NextUnitButton.propTypes = {
47
91
  sequenceId: _propTypes.default.string.isRequired,
48
92
  unitId: _propTypes.default.string.isRequired,
49
93
  handleNavigate: _propTypes.default.func.isRequired,
50
- nextSequenceHandler: _propTypes.default.func.isRequired
94
+ nextSequenceHandler: _propTypes.default.func.isRequired,
95
+ isOpen: _propTypes.default.bool.isRequired,
96
+ close: _propTypes.default.func.isRequired,
97
+ open: _propTypes.default.func.isRequired,
98
+ courseId: _propTypes.default.string.isRequired
51
99
  };
52
100
  var _default = exports.default = NextUnitButton;
53
101
  //# sourceMappingURL=NextUnitButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NextUnitButton.js","names":["_react","_interopRequireDefault","require","_propTypes","_modelStore","_NextButton","_jsxRuntime","obj","__esModule","default","NextUnitButton","_ref","disabled","buttonText","sequenceId","unitId","handleNavigate","nextSequenceHandler","nextLink","sequence","useModel","handleNext","nextIndex","unitIds","indexOf","newUnitId","length","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 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';\n\nconst NextUnitButton = ({\n disabled,\n buttonText,\n sequenceId,\n unitId,\n handleNavigate,\n nextSequenceHandler,\n nextLink,\n}) => {\n const sequence = useModel('sequences', 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 <NextButton\n onClick={handleNext}\n nextLink={nextLink}\n variant=\"link\"\n buttonStyle=\"next-btn\"\n buttonLabel={buttonText}\n disabled={disabled}\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};\n\nexport default NextUnitButton;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAgG,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AALhG;;AAOA,MAAMG,cAAc,GAAGC,IAAA,IAQjB;EAAA,IARkB;IACtBC,QAAQ;IACRC,UAAU;IACVC,UAAU;IACVC,MAAM;IACNC,cAAc;IACdC,mBAAmB;IACnBC;EACF,CAAC,GAAAP,IAAA;EACC,MAAMQ,QAAQ,GAAG,IAAAC,oBAAQ,EAAC,WAAW,EAAEN,UAAU,CAAC;EAElD,MAAMO,UAAU,GAAGA,CAAA,KAAM;IACvB,MAAMC,SAAS,GAAGH,QAAQ,CAACI,OAAO,CAACC,OAAO,CAACT,MAAM,CAAC,GAAG,CAAC;IACtD,MAAMU,SAAS,GAAGN,QAAQ,CAACI,OAAO,CAACD,SAAS,CAAC;IAC7CN,cAAc,CAACS,SAAS,CAAC;IAEzB,IAAIH,SAAS,IAAIH,QAAQ,CAACI,OAAO,CAACG,MAAM,EAAE;MACxCT,mBAAmB,CAAC,CAAC;IACvB;EACF,CAAC;EAED,oBACE,IAAAX,WAAA,CAAAqB,GAAA,EAACtB,WAAA,CAAAI,OAAU;IACTmB,OAAO,EAAEP,UAAW;IACpBH,QAAQ,EAAEA,QAAS;IACnBW,OAAO,EAAC,MAAM;IACdC,WAAW,EAAC,UAAU;IACtBC,WAAW,EAAElB,UAAW;IACxBD,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC;AAEDF,cAAc,CAACsB,SAAS,GAAG;EACzBpB,QAAQ,EAAEqB,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCtB,UAAU,EAAEoB,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvCjB,QAAQ,EAAEe,kBAAS,CAACG,MAAM,CAACD,UAAU;EACrCrB,UAAU,EAAEmB,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvCpB,MAAM,EAAEkB,kBAAS,CAACG,MAAM,CAACD,UAAU;EACnCnB,cAAc,EAAEiB,kBAAS,CAACI,IAAI,CAACF,UAAU;EACzClB,mBAAmB,EAAEgB,kBAAS,CAACI,IAAI,CAACF;AACtC,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAA9B,OAAA,GAEaC,cAAc","ignoreList":[]}
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","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 } = 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 }}\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":[]}