@edx/frontend-plugin-advertisements 1.21.0 → 1.23.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.
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _rosie = require("rosie");
4
+ // eslint-disable-line import/no-extraneous-dependencies
5
+
6
+ _rosie.Factory.define('defaultUpgradeNotificationData').option('host', 'http://localhost:18000').option('dateBlocks', []).option('offer', null).option('userTimezone', null).option('contentTypeGatingEnabled', false).attr('courseId', 'course-v1:edX+DemoX+Demo_Course').attr('upsellPageName', 'test').attr('verifiedMode', ['host'], host => ({
7
+ access_expiration_date: '2050-01-01T12:00:00',
8
+ currency: 'USD',
9
+ currencySymbol: '$',
10
+ price: 149,
11
+ sku: 'ABCD1234',
12
+ upgradeUrl: `${host}/dashboard`
13
+ })).attr('org', 'edX').attrs({
14
+ accessExpiration: {
15
+ expiration_date: '1950-07-13T02:04:49.040006Z'
16
+ }
17
+ }).attr('timeOffsetMillis', 0);
18
+ //# sourceMappingURL=defaultUpgradeNotificationData.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultUpgradeNotificationData.factory.js","names":["_rosie","require","Factory","define","option","attr","host","access_expiration_date","currency","currencySymbol","price","sku","upgradeUrl","attrs","accessExpiration","expiration_date"],"sources":["../../../src/data/__factories__/defaultUpgradeNotificationData.factory.js"],"sourcesContent":["import { Factory } from 'rosie'; // eslint-disable-line import/no-extraneous-dependencies\n\nFactory.define('defaultUpgradeNotificationData')\n .option('host', 'http://localhost:18000')\n .option('dateBlocks', [])\n .option('offer', null)\n .option('userTimezone', null)\n .option('contentTypeGatingEnabled', false)\n .attr('courseId', 'course-v1:edX+DemoX+Demo_Course')\n .attr('upsellPageName', 'test')\n .attr('verifiedMode', ['host'], (host) => ({\n access_expiration_date: '2050-01-01T12:00:00',\n currency: 'USD',\n currencySymbol: '$',\n price: 149,\n sku: 'ABCD1234',\n upgradeUrl: `${host}/dashboard`,\n }))\n .attr('org', 'edX')\n .attrs({\n accessExpiration: {\n expiration_date: '1950-07-13T02:04:49.040006Z',\n },\n })\n .attr('timeOffsetMillis', 0);\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAiC;;AAEjCC,cAAO,CAACC,MAAM,CAAC,gCAAgC,CAAC,CAC7CC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CACxCA,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CACxBA,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CACrBA,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAC5BA,MAAM,CAAC,0BAA0B,EAAE,KAAK,CAAC,CACzCC,IAAI,CAAC,UAAU,EAAE,iCAAiC,CAAC,CACnDA,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAC9BA,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAGC,IAAI,KAAM;EACzCC,sBAAsB,EAAE,qBAAqB;EAC7CC,QAAQ,EAAE,KAAK;EACfC,cAAc,EAAE,GAAG;EACnBC,KAAK,EAAE,GAAG;EACVC,GAAG,EAAE,UAAU;EACfC,UAAU,EAAG,GAAEN,IAAK;AACtB,CAAC,CAAC,CAAC,CACFD,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAClBQ,KAAK,CAAC;EACLC,gBAAgB,EAAE;IAChBC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC,CACDV,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ require("./defaultUpgradeNotificationData.factory");
3
4
  require("./experimentalUpgradeNotificationData.factory");
4
5
  require("./courseHomeMeta.factory");
5
6
  require("./coursewareMeta.factory");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["require"],"sources":["../../../src/data/__factories__/index.js"],"sourcesContent":["import './experimentalUpgradeNotificationData.factory';\nimport './courseHomeMeta.factory';\nimport './coursewareMeta.factory';\n"],"mappings":";;AAAAA,OAAA;AACAA,OAAA;AACAA,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["require"],"sources":["../../../src/data/__factories__/index.js"],"sourcesContent":["import './defaultUpgradeNotificationData.factory';\nimport './experimentalUpgradeNotificationData.factory';\nimport './courseHomeMeta.factory';\nimport './coursewareMeta.factory';\n"],"mappings":";;AAAAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA","ignoreList":[]}
package/dist/index.scss CHANGED
@@ -2,3 +2,7 @@
2
2
  @import "@edx/brand/paragon/variables.scss";
3
3
  @import "@openedx/paragon/scss/core/core.scss";
4
4
  @import "@edx/brand/paragon/overrides.scss";
5
+
6
+ .inline-link-underline {
7
+ text-decoration: underline;
8
+ }
@@ -14,10 +14,10 @@ var _messages = _interopRequireDefault(require("@src/courseware/course/sequence/
14
14
  var _edX_locked_certificate = _interopRequireDefault(require("@src/generic/assets/edX_locked_certificate.png"));
15
15
  var _modelStore = require("@src/generic/model-store");
16
16
  var _upgradeButton = require("@src/generic/upgrade-button");
17
- var _UpsellBullets = require("@src/generic/upsell-bullets/UpsellBullets");
18
17
  var _auth = require("@edx/frontend-platform/auth");
19
18
  var _analytics = require("@edx/frontend-platform/analytics");
20
19
  var _reactSdk = require("@optimizely/react-sdk");
20
+ var _upsellBullets = require("../upsell-bullets");
21
21
  var _jsxRuntime = require("react/jsx-runtime");
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
  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; }
@@ -126,7 +126,7 @@ const ExperimentalLockPaywall = _ref => {
126
126
  children: intl.formatMessage(_messages.default['learn.lockPaywall.list.intro'])
127
127
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", {
128
128
  className: "fa-ul ml-4 pl-2",
129
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_UpsellBullets.VerifiedCertBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpsellBullets.UnlockGradedBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpsellBullets.FullAccessBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpsellBullets.SupportMissionBullet, {})]
129
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.VerifiedCertBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.UnlockGradedBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.FullAccessBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.SupportMissionBullet, {})]
130
130
  })]
131
131
  })]
132
132
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"ExperimentalLockPaywall.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_i18n","_paragon","_icons","_messages","_edX_locked_certificate","_modelStore","_upgradeButton","_UpsellBullets","_auth","_analytics","_reactSdk","_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","ExperimentalLockPaywall","_ref","intl","courseId","course","useModel","accessExpiration","marketingUrl","offer","org","verifiedMode","shouldDisplayGatedContentTwoColumnsHalf","useWindowSize","width","breakpoints","large","minWidth","shouldWrapTextOnButton","extraSmall","accessExpirationDate","Date","expirationDate","pastExpirationDeadline","now","eventProperties","org_key","courserun_key","userId","getAuthenticatedUser","logClick","sendTrackEvent","linkCategory","linkName","linkType","pageName","logClickPastExpiration","jsx","Alert","variant","icon","Locked","className","children","jsxs","formatMessage","messages","Hyperlink","destination","onClick","target","classNames","style","float","alt","src","certificateLocked","height","VerifiedCertBullet","UnlockGradedBullet","FullAccessBullet","SupportMissionBullet","UpgradeButton","whiteSpace","propTypes","intlShape","isRequired","PropTypes","string","_default","exports","injectIntl","withOptimizely"],"sources":["../../src/paywall/ExperimentalLockPaywall.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport {\n Alert, breakpoints, Hyperlink, useWindowSize,\n} from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\nimport messages from '@src/courseware/course/sequence/lock-paywall/messages';\nimport certificateLocked from '@src/generic/assets/edX_locked_certificate.png';\nimport { useModel } from '@src/generic/model-store';\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from '@src/generic/upsell-bullets/UpsellBullets';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { withOptimizely } from '@optimizely/react-sdk';\n\nconst ExperimentalLockPaywall = ({\n intl,\n courseId,\n}) => {\n const course = useModel('coursewareMeta', courseId);\n const {\n accessExpiration,\n marketingUrl,\n offer,\n } = course;\n\n const {\n org, verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n // the following variables are set and used for resposive layout to work with\n // whether the NotificationTray is open or not and if there's an offer with longer text\n const shouldDisplayGatedContentTwoColumnsHalf = useWindowSize().width <= breakpoints.large.minWidth;\n const shouldWrapTextOnButton = useWindowSize().width > breakpoints.extraSmall.minWidth;\n\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(Date.now()) > accessExpirationDate : false;\n\n if (!verifiedMode) {\n return null;\n }\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const { userId } = getAuthenticatedUser();\n\n const logClick = () => {\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: '(none)',\n linkName: 'in_course_upgrade',\n linkType: 'link',\n pageName: 'in_course',\n });\n };\n\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.gated_content.past_expiration.link_clicked', {\n ...eventProperties,\n linkCategory: 'gated_content',\n linkName: 'course_details',\n linkType: 'link',\n pageName: 'in_course',\n });\n };\n\n return (\n <Alert variant=\"light\" aria-live=\"off\" icon={Locked} className=\"lock-paywall-container\" data-testId=\"lock-paywall-lock-paywall-test-id\">\n <div className=\"row\">\n <div className=\"col\">\n <h4 aria-level=\"3\">\n <span>{intl.formatMessage(messages['learn.lockPaywall.title'])}</span>\n </h4>\n {pastExpirationDeadline ? (\n <div className=\"mb-2 upgrade-intro\" data-testId=\"lock-paywall-past-expiration\">\n {intl.formatMessage(messages['learn.lockPaywall.content.pastExpiration'])}\n <Hyperlink destination={marketingUrl} onClick={logClickPastExpiration(eventProperties)} target=\"_blank\" data-testId=\"lock-paywall-past-expiration-link\">{intl.formatMessage(messages['learn.lockPaywall.courseDetails'])}</Hyperlink>\n </div>\n ) : (\n <div className=\"mb-2 upgrade-intro\">\n {intl.formatMessage(messages['learn.lockPaywall.content'])}\n </div>\n )}\n\n <div className={classNames('d-inline-flex flex-row', { 'flex-wrap': shouldDisplayGatedContentTwoColumnsHalf })}>\n <div style={{ float: 'left' }} className=\"mr-3 mb-2\">\n <img\n alt={intl.formatMessage(messages['learn.lockPaywall.example.alt'])}\n src={certificateLocked}\n className=\"border-0 certificate-image-banner\"\n style={{ height: '128px', width: '175px' }}\n />\n </div>\n\n <div className=\"mw-xs list-div\">\n <div className=\"mb-2\">\n {intl.formatMessage(messages['learn.lockPaywall.list.intro'])}\n </div>\n <ul className=\"fa-ul ml-4 pl-2\">\n <VerifiedCertBullet />\n <UnlockGradedBullet />\n <FullAccessBullet />\n <SupportMissionBullet />\n </ul>\n </div>\n </div>\n </div>\n\n {pastExpirationDeadline\n ? null\n : (\n <div\n className={\n classNames('d-flex flex-column align-items-md-center text-right justify-content-center', {\n 'col-md-4 mx-md-3': !shouldDisplayGatedContentTwoColumnsHalf, 'col-md-6': shouldDisplayGatedContentTwoColumnsHalf,\n })\n }\n >\n <UpgradeButton\n offer={offer}\n onClick={() => logClick(eventProperties, userId)}\n verifiedMode={verifiedMode}\n style={{ whiteSpace: shouldWrapTextOnButton ? 'nowrap' : null }}\n data-testId=\"upgrade-button\"\n />\n </div>\n )}\n </div>\n </Alert>\n );\n};\nExperimentalLockPaywall.propTypes = {\n intl: intlShape.isRequired,\n courseId: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(withOptimizely(ExperimentalLockPaywall));\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ExperimentalLockPaywall.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_i18n","_paragon","_icons","_messages","_edX_locked_certificate","_modelStore","_upgradeButton","_auth","_analytics","_reactSdk","_upsellBullets","_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","ExperimentalLockPaywall","_ref","intl","courseId","course","useModel","accessExpiration","marketingUrl","offer","org","verifiedMode","shouldDisplayGatedContentTwoColumnsHalf","useWindowSize","width","breakpoints","large","minWidth","shouldWrapTextOnButton","extraSmall","accessExpirationDate","Date","expirationDate","pastExpirationDeadline","now","eventProperties","org_key","courserun_key","userId","getAuthenticatedUser","logClick","sendTrackEvent","linkCategory","linkName","linkType","pageName","logClickPastExpiration","jsx","Alert","variant","icon","Locked","className","children","jsxs","formatMessage","messages","Hyperlink","destination","onClick","target","classNames","style","float","alt","src","certificateLocked","height","VerifiedCertBullet","UnlockGradedBullet","FullAccessBullet","SupportMissionBullet","UpgradeButton","whiteSpace","propTypes","intlShape","isRequired","PropTypes","string","_default","exports","injectIntl","withOptimizely"],"sources":["../../src/paywall/ExperimentalLockPaywall.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport {\n Alert, breakpoints, Hyperlink, useWindowSize,\n} from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\nimport messages from '@src/courseware/course/sequence/lock-paywall/messages';\nimport certificateLocked from '@src/generic/assets/edX_locked_certificate.png';\nimport { useModel } from '@src/generic/model-store';\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { withOptimizely } from '@optimizely/react-sdk';\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from '../upsell-bullets';\n\nconst ExperimentalLockPaywall = ({\n intl,\n courseId,\n}) => {\n const course = useModel('coursewareMeta', courseId);\n const {\n accessExpiration,\n marketingUrl,\n offer,\n } = course;\n\n const {\n org, verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n // the following variables are set and used for resposive layout to work with\n // whether the NotificationTray is open or not and if there's an offer with longer text\n const shouldDisplayGatedContentTwoColumnsHalf = useWindowSize().width <= breakpoints.large.minWidth;\n const shouldWrapTextOnButton = useWindowSize().width > breakpoints.extraSmall.minWidth;\n\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(Date.now()) > accessExpirationDate : false;\n\n if (!verifiedMode) {\n return null;\n }\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const { userId } = getAuthenticatedUser();\n\n const logClick = () => {\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: '(none)',\n linkName: 'in_course_upgrade',\n linkType: 'link',\n pageName: 'in_course',\n });\n };\n\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.gated_content.past_expiration.link_clicked', {\n ...eventProperties,\n linkCategory: 'gated_content',\n linkName: 'course_details',\n linkType: 'link',\n pageName: 'in_course',\n });\n };\n\n return (\n <Alert variant=\"light\" aria-live=\"off\" icon={Locked} className=\"lock-paywall-container\" data-testId=\"lock-paywall-lock-paywall-test-id\">\n <div className=\"row\">\n <div className=\"col\">\n <h4 aria-level=\"3\">\n <span>{intl.formatMessage(messages['learn.lockPaywall.title'])}</span>\n </h4>\n {pastExpirationDeadline ? (\n <div className=\"mb-2 upgrade-intro\" data-testId=\"lock-paywall-past-expiration\">\n {intl.formatMessage(messages['learn.lockPaywall.content.pastExpiration'])}\n <Hyperlink destination={marketingUrl} onClick={logClickPastExpiration(eventProperties)} target=\"_blank\" data-testId=\"lock-paywall-past-expiration-link\">{intl.formatMessage(messages['learn.lockPaywall.courseDetails'])}</Hyperlink>\n </div>\n ) : (\n <div className=\"mb-2 upgrade-intro\">\n {intl.formatMessage(messages['learn.lockPaywall.content'])}\n </div>\n )}\n\n <div className={classNames('d-inline-flex flex-row', { 'flex-wrap': shouldDisplayGatedContentTwoColumnsHalf })}>\n <div style={{ float: 'left' }} className=\"mr-3 mb-2\">\n <img\n alt={intl.formatMessage(messages['learn.lockPaywall.example.alt'])}\n src={certificateLocked}\n className=\"border-0 certificate-image-banner\"\n style={{ height: '128px', width: '175px' }}\n />\n </div>\n\n <div className=\"mw-xs list-div\">\n <div className=\"mb-2\">\n {intl.formatMessage(messages['learn.lockPaywall.list.intro'])}\n </div>\n <ul className=\"fa-ul ml-4 pl-2\">\n <VerifiedCertBullet />\n <UnlockGradedBullet />\n <FullAccessBullet />\n <SupportMissionBullet />\n </ul>\n </div>\n </div>\n </div>\n\n {pastExpirationDeadline\n ? null\n : (\n <div\n className={\n classNames('d-flex flex-column align-items-md-center text-right justify-content-center', {\n 'col-md-4 mx-md-3': !shouldDisplayGatedContentTwoColumnsHalf, 'col-md-6': shouldDisplayGatedContentTwoColumnsHalf,\n })\n }\n >\n <UpgradeButton\n offer={offer}\n onClick={() => logClick(eventProperties, userId)}\n verifiedMode={verifiedMode}\n style={{ whiteSpace: shouldWrapTextOnButton ? 'nowrap' : null }}\n data-testId=\"upgrade-button\"\n />\n </div>\n )}\n </div>\n </Alert>\n );\n};\nExperimentalLockPaywall.propTypes = {\n intl: intlShape.isRequired,\n courseId: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(withOptimizely(ExperimentalLockPaywall));\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _modelStore = require("@src/generic/model-store");
9
+ var _frontendPlatform = require("@edx/frontend-platform");
7
10
  var _DefaultUpgradeModal = _interopRequireDefault(require("./DefaultUpgradeModal"));
8
11
  var _ExperimentalUpgradeModal = _interopRequireDefault(require("./ExperimentalUpgradeModal"));
9
12
  var _optimizely = _interopRequireDefault(require("../optimizely"));
@@ -14,13 +17,41 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
14
17
  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; }
15
18
  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; }
16
19
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
17
- 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); } // This is not fully functional and is currently just a copy of the UpgradeNotification
20
+ 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-disable import/no-unresolved */
21
+ (0, _frontendPlatform.ensureConfig)(['OPTIMIZELY_MODAL_ROLLOUT_WHITELIST'], 'Optimizely In-Course Modal rollout config');
22
+
23
+ // This is not fully functional and is currently just a copy of the UpgradeNotification
18
24
  // experiment with the imports updated
19
- const UpgradeModalWrapper = props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_optimizely.default, _objectSpread({
20
- defaultComponent: _DefaultUpgradeModal.default,
21
- experimentalComponent: _ExperimentalUpgradeModal.default,
22
- defaultVariationKey: "off",
23
- experimentKey: _optimizely2.OPTIMIZELY_VTR_MODAL_EXPERIMENT.KEY
24
- }, props));
25
+ const isExperimentEnabledForOrg = org => {
26
+ const {
27
+ OPTIMIZELY_MODAL_ROLLOUT_WHITELIST
28
+ } = (0, _frontendPlatform.getConfig)();
29
+ if (!OPTIMIZELY_MODAL_ROLLOUT_WHITELIST) {
30
+ return false;
31
+ }
32
+ return OPTIMIZELY_MODAL_ROLLOUT_WHITELIST.includes(org);
33
+ };
34
+ const UpgradeModalWrapper = props => {
35
+ const {
36
+ courseId
37
+ } = props;
38
+ const {
39
+ org
40
+ } = (0, _modelStore.useModel)('courseHomeMeta', courseId);
41
+ const allowExperiment = isExperimentEnabledForOrg(org);
42
+
43
+ // If the org isn't whitelisted for experiment rollout, don't run the experiment
44
+ // We don't want users who aren't being experimented on to be bucketed, which will
45
+ // happen if we call useDecision()
46
+ return allowExperiment ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_optimizely.default, _objectSpread({
47
+ defaultComponent: _DefaultUpgradeModal.default,
48
+ experimentalComponent: _ExperimentalUpgradeModal.default,
49
+ defaultVariationKey: "off",
50
+ experimentKey: _optimizely2.OPTIMIZELY_VTR_MODAL_EXPERIMENT.KEY
51
+ }, props)) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_DefaultUpgradeModal.default, _objectSpread({}, props));
52
+ };
53
+ UpgradeModalWrapper.propTypes = {
54
+ courseId: _propTypes.default.string.isRequired
55
+ };
25
56
  var _default = exports.default = UpgradeModalWrapper;
26
57
  //# sourceMappingURL=UpgradeModalWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradeModalWrapper.js","names":["_DefaultUpgradeModal","_interopRequireDefault","require","_ExperimentalUpgradeModal","_optimizely","_optimizely2","_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","UpgradeModalWrapper","props","jsx","defaultComponent","DefaultUpgradeModal","experimentalComponent","ExperimentalUpgradeModal","defaultVariationKey","experimentKey","OPTIMIZELY_VTR_MODAL_EXPERIMENT","KEY","_default","exports"],"sources":["../../src/upgrade-modal/UpgradeModalWrapper.jsx"],"sourcesContent":["import DefaultUpgradeModal from './DefaultUpgradeModal';\nimport ExperimentalUpgradeModal from './ExperimentalUpgradeModal';\n\nimport OptimizelyExperiment from '../optimizely';\nimport { OPTIMIZELY_VTR_MODAL_EXPERIMENT } from '../data/optimizely';\n\n// This is not fully functional and is currently just a copy of the UpgradeNotification\n// experiment with the imports updated\nconst UpgradeModalWrapper = (props) => (\n <OptimizelyExperiment\n defaultComponent={DefaultUpgradeModal}\n experimentalComponent={ExperimentalUpgradeModal}\n defaultVariationKey=\"off\"\n experimentKey={OPTIMIZELY_VTR_MODAL_EXPERIMENT.KEY}\n {...props}\n />\n);\n\nexport default UpgradeModalWrapper;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"UpgradeModalWrapper.js","names":["_propTypes","_interopRequireDefault","require","_modelStore","_frontendPlatform","_DefaultUpgradeModal","_ExperimentalUpgradeModal","_optimizely","_optimizely2","_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","ensureConfig","isExperimentEnabledForOrg","org","OPTIMIZELY_MODAL_ROLLOUT_WHITELIST","getConfig","includes","UpgradeModalWrapper","props","courseId","useModel","allowExperiment","jsx","defaultComponent","DefaultUpgradeModal","experimentalComponent","ExperimentalUpgradeModal","defaultVariationKey","experimentKey","OPTIMIZELY_VTR_MODAL_EXPERIMENT","KEY","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../src/upgrade-modal/UpgradeModalWrapper.jsx"],"sourcesContent":["/* eslint-disable import/no-unresolved */\nimport PropTypes from 'prop-types';\nimport { useModel } from '@src/generic/model-store';\nimport { ensureConfig, getConfig } from '@edx/frontend-platform';\n\nimport DefaultUpgradeModal from './DefaultUpgradeModal';\nimport ExperimentalUpgradeModal from './ExperimentalUpgradeModal';\n\nimport OptimizelyExperiment from '../optimizely';\nimport { OPTIMIZELY_VTR_MODAL_EXPERIMENT } from '../data/optimizely';\n\nensureConfig([\n 'OPTIMIZELY_MODAL_ROLLOUT_WHITELIST',\n], 'Optimizely In-Course Modal rollout config');\n\n// This is not fully functional and is currently just a copy of the UpgradeNotification\n// experiment with the imports updated\nconst isExperimentEnabledForOrg = (org) => {\n const { OPTIMIZELY_MODAL_ROLLOUT_WHITELIST } = getConfig();\n if (!OPTIMIZELY_MODAL_ROLLOUT_WHITELIST) { return false; }\n return OPTIMIZELY_MODAL_ROLLOUT_WHITELIST.includes(org);\n};\n\nconst UpgradeModalWrapper = (props) => {\n const { courseId } = props;\n const { org } = useModel('courseHomeMeta', courseId);\n const allowExperiment = isExperimentEnabledForOrg(org);\n\n // If the org isn't whitelisted for experiment rollout, don't run the experiment\n // We don't want users who aren't being experimented on to be bucketed, which will\n // happen if we call useDecision()\n return (\n allowExperiment ? (\n <OptimizelyExperiment\n defaultComponent={DefaultUpgradeModal}\n experimentalComponent={ExperimentalUpgradeModal}\n defaultVariationKey=\"off\"\n experimentKey={OPTIMIZELY_VTR_MODAL_EXPERIMENT.KEY}\n {...props}\n />\n ) : <DefaultUpgradeModal {...props} />\n );\n};\n\nUpgradeModalWrapper.propTypes = {\n courseId: PropTypes.string.isRequired,\n};\n\nexport default UpgradeModalWrapper;\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
8
  const CLICK_COUNT_KEY = 'VTR_IN_COURSE_MODAL_NEXT_CLICK_COUNT';
9
- const SHOW_MODAL_CLICK_COUNT = 2;
9
+ const SHOW_MODAL_CLICK_COUNT = 3;
10
10
  function isLocalStorageAvailable() {
11
11
  // A simple helper to check if localStorage is currently available
12
12
  const testKey = 'testKey';
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","names":["_react","require","CLICK_COUNT_KEY","SHOW_MODAL_CLICK_COUNT","isLocalStorageAvailable","testKey","localStorage","setItem","removeItem","e","useClickCount","localStorageAvailable","clickCount","setClickCount","useState","clickString","getItem","clicks","JSON","parse","useEffect","undefined","stringify","useInCourseUpgradeModal","_ref","verifiedMode","isStaff","enrollmentMode","qualifiesForModal","nextClick","countNextClick","shouldShowModalOnClick","_default","exports","default"],"sources":["../../src/upgrade-modal/hooks.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nconst CLICK_COUNT_KEY = 'VTR_IN_COURSE_MODAL_NEXT_CLICK_COUNT';\nconst SHOW_MODAL_CLICK_COUNT = 2;\n\nfunction isLocalStorageAvailable() {\n // A simple helper to check if localStorage is currently available\n const testKey = 'testKey';\n try {\n localStorage.setItem(testKey, testKey);\n localStorage.removeItem(testKey);\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction useClickCount() {\n /**\n * Hook that tracks the number of times that a user has clicked something\n * and stores that number in localStorage (if available).\n *\n * Returns: [clickCount, setClickCount]\n * - clickCount (int): The current count of clicks\n * - setClickCount (func): Function to update the number of clicks\n */\n const localStorageAvailable = isLocalStorageAvailable();\n const [clickCount, setClickCount] = useState(() => {\n if (!localStorageAvailable) { return 0; }\n const clickString = localStorage.getItem(CLICK_COUNT_KEY);\n const clicks = JSON.parse(clickString);\n return clicks || 0;\n });\n\n useEffect(() => {\n // When clickCount changes, this will update it in localStorage\n if (clickCount === undefined) { return; }\n if (!localStorageAvailable) { return; }\n localStorage.setItem(CLICK_COUNT_KEY, JSON.stringify(clickCount));\n }, [clickCount, localStorageAvailable]);\n\n return [clickCount, setClickCount];\n}\n\nfunction useInCourseUpgradeModal({ verifiedMode, isStaff, enrollmentMode }) {\n /**\n * Hook that wraps around useClickCount to handle the \"modal show\" logic\n */\n const qualifiesForModal = (enrollmentMode === 'audit' && verifiedMode && !isStaff);\n const [clickCount, setClickCount] = useClickCount();\n const nextClick = clickCount + 1;\n const countNextClick = () => { setClickCount(nextClick); };\n const shouldShowModalOnClick = nextClick % SHOW_MODAL_CLICK_COUNT === 0;\n return [qualifiesForModal, shouldShowModalOnClick, countNextClick];\n}\n\nexport default useInCourseUpgradeModal;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,eAAe,GAAG,sCAAsC;AAC9D,MAAMC,sBAAsB,GAAG,CAAC;AAEhC,SAASC,uBAAuBA,CAAA,EAAG;EACjC;EACA,MAAMC,OAAO,GAAG,SAAS;EACzB,IAAI;IACFC,YAAY,CAACC,OAAO,CAACF,OAAO,EAAEA,OAAO,CAAC;IACtCC,YAAY,CAACE,UAAU,CAACH,OAAO,CAAC;IAChC,OAAO,IAAI;EACb,CAAC,CAAC,OAAOI,CAAC,EAAE;IACV,OAAO,KAAK;EACd;AACF;AAEA,SAASC,aAAaA,CAAA,EAAG;EACvB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,qBAAqB,GAAGP,uBAAuB,CAAC,CAAC;EACvD,MAAM,CAACQ,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAM;IACjD,IAAI,CAACH,qBAAqB,EAAE;MAAE,OAAO,CAAC;IAAE;IACxC,MAAMI,WAAW,GAAGT,YAAY,CAACU,OAAO,CAACd,eAAe,CAAC;IACzD,MAAMe,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACJ,WAAW,CAAC;IACtC,OAAOE,MAAM,IAAI,CAAC;EACpB,CAAC,CAAC;EAEF,IAAAG,gBAAS,EAAC,MAAM;IACd;IACA,IAAIR,UAAU,KAAKS,SAAS,EAAE;MAAE;IAAQ;IACxC,IAAI,CAACV,qBAAqB,EAAE;MAAE;IAAQ;IACtCL,YAAY,CAACC,OAAO,CAACL,eAAe,EAAEgB,IAAI,CAACI,SAAS,CAACV,UAAU,CAAC,CAAC;EACnE,CAAC,EAAE,CAACA,UAAU,EAAED,qBAAqB,CAAC,CAAC;EAEvC,OAAO,CAACC,UAAU,EAAEC,aAAa,CAAC;AACpC;AAEA,SAASU,uBAAuBA,CAAAC,IAAA,EAA4C;EAAA,IAA3C;IAAEC,YAAY;IAAEC,OAAO;IAAEC;EAAe,CAAC,GAAAH,IAAA;EACxE;AACF;AACA;EACE,MAAMI,iBAAiB,GAAID,cAAc,KAAK,OAAO,IAAIF,YAAY,IAAI,CAACC,OAAQ;EAClF,MAAM,CAACd,UAAU,EAAEC,aAAa,CAAC,GAAGH,aAAa,CAAC,CAAC;EACnD,MAAMmB,SAAS,GAAGjB,UAAU,GAAG,CAAC;EAChC,MAAMkB,cAAc,GAAGA,CAAA,KAAM;IAAEjB,aAAa,CAACgB,SAAS,CAAC;EAAE,CAAC;EAC1D,MAAME,sBAAsB,GAAGF,SAAS,GAAG1B,sBAAsB,KAAK,CAAC;EACvE,OAAO,CAACyB,iBAAiB,EAAEG,sBAAsB,EAAED,cAAc,CAAC;AACpE;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcX,uBAAuB","ignoreList":[]}
1
+ {"version":3,"file":"hooks.js","names":["_react","require","CLICK_COUNT_KEY","SHOW_MODAL_CLICK_COUNT","isLocalStorageAvailable","testKey","localStorage","setItem","removeItem","e","useClickCount","localStorageAvailable","clickCount","setClickCount","useState","clickString","getItem","clicks","JSON","parse","useEffect","undefined","stringify","useInCourseUpgradeModal","_ref","verifiedMode","isStaff","enrollmentMode","qualifiesForModal","nextClick","countNextClick","shouldShowModalOnClick","_default","exports","default"],"sources":["../../src/upgrade-modal/hooks.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nconst CLICK_COUNT_KEY = 'VTR_IN_COURSE_MODAL_NEXT_CLICK_COUNT';\nconst SHOW_MODAL_CLICK_COUNT = 3;\n\nfunction isLocalStorageAvailable() {\n // A simple helper to check if localStorage is currently available\n const testKey = 'testKey';\n try {\n localStorage.setItem(testKey, testKey);\n localStorage.removeItem(testKey);\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction useClickCount() {\n /**\n * Hook that tracks the number of times that a user has clicked something\n * and stores that number in localStorage (if available).\n *\n * Returns: [clickCount, setClickCount]\n * - clickCount (int): The current count of clicks\n * - setClickCount (func): Function to update the number of clicks\n */\n const localStorageAvailable = isLocalStorageAvailable();\n const [clickCount, setClickCount] = useState(() => {\n if (!localStorageAvailable) { return 0; }\n const clickString = localStorage.getItem(CLICK_COUNT_KEY);\n const clicks = JSON.parse(clickString);\n return clicks || 0;\n });\n\n useEffect(() => {\n // When clickCount changes, this will update it in localStorage\n if (clickCount === undefined) { return; }\n if (!localStorageAvailable) { return; }\n localStorage.setItem(CLICK_COUNT_KEY, JSON.stringify(clickCount));\n }, [clickCount, localStorageAvailable]);\n\n return [clickCount, setClickCount];\n}\n\nfunction useInCourseUpgradeModal({ verifiedMode, isStaff, enrollmentMode }) {\n /**\n * Hook that wraps around useClickCount to handle the \"modal show\" logic\n */\n const qualifiesForModal = (enrollmentMode === 'audit' && verifiedMode && !isStaff);\n const [clickCount, setClickCount] = useClickCount();\n const nextClick = clickCount + 1;\n const countNextClick = () => { setClickCount(nextClick); };\n const shouldShowModalOnClick = nextClick % SHOW_MODAL_CLICK_COUNT === 0;\n return [qualifiesForModal, shouldShowModalOnClick, countNextClick];\n}\n\nexport default useInCourseUpgradeModal;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,eAAe,GAAG,sCAAsC;AAC9D,MAAMC,sBAAsB,GAAG,CAAC;AAEhC,SAASC,uBAAuBA,CAAA,EAAG;EACjC;EACA,MAAMC,OAAO,GAAG,SAAS;EACzB,IAAI;IACFC,YAAY,CAACC,OAAO,CAACF,OAAO,EAAEA,OAAO,CAAC;IACtCC,YAAY,CAACE,UAAU,CAACH,OAAO,CAAC;IAChC,OAAO,IAAI;EACb,CAAC,CAAC,OAAOI,CAAC,EAAE;IACV,OAAO,KAAK;EACd;AACF;AAEA,SAASC,aAAaA,CAAA,EAAG;EACvB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,qBAAqB,GAAGP,uBAAuB,CAAC,CAAC;EACvD,MAAM,CAACQ,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAM;IACjD,IAAI,CAACH,qBAAqB,EAAE;MAAE,OAAO,CAAC;IAAE;IACxC,MAAMI,WAAW,GAAGT,YAAY,CAACU,OAAO,CAACd,eAAe,CAAC;IACzD,MAAMe,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACJ,WAAW,CAAC;IACtC,OAAOE,MAAM,IAAI,CAAC;EACpB,CAAC,CAAC;EAEF,IAAAG,gBAAS,EAAC,MAAM;IACd;IACA,IAAIR,UAAU,KAAKS,SAAS,EAAE;MAAE;IAAQ;IACxC,IAAI,CAACV,qBAAqB,EAAE;MAAE;IAAQ;IACtCL,YAAY,CAACC,OAAO,CAACL,eAAe,EAAEgB,IAAI,CAACI,SAAS,CAACV,UAAU,CAAC,CAAC;EACnE,CAAC,EAAE,CAACA,UAAU,EAAED,qBAAqB,CAAC,CAAC;EAEvC,OAAO,CAACC,UAAU,EAAEC,aAAa,CAAC;AACpC;AAEA,SAASU,uBAAuBA,CAAAC,IAAA,EAA4C;EAAA,IAA3C;IAAEC,YAAY;IAAEC,OAAO;IAAEC;EAAe,CAAC,GAAAH,IAAA;EACxE;AACF;AACA;EACE,MAAMI,iBAAiB,GAAID,cAAc,KAAK,OAAO,IAAIF,YAAY,IAAI,CAACC,OAAQ;EAClF,MAAM,CAACd,UAAU,EAAEC,aAAa,CAAC,GAAGH,aAAa,CAAC,CAAC;EACnD,MAAMmB,SAAS,GAAGjB,UAAU,GAAG,CAAC;EAChC,MAAMkB,cAAc,GAAGA,CAAA,KAAM;IAAEjB,aAAa,CAACgB,SAAS,CAAC;EAAE,CAAC;EAC1D,MAAME,sBAAsB,GAAGF,SAAS,GAAG1B,sBAAsB,KAAK,CAAC;EACvE,OAAO,CAACyB,iBAAiB,EAAEG,sBAAsB,EAAED,cAAc,CAAC;AACpE;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcX,uBAAuB","ignoreList":[]}