@edx/frontend-plugin-advertisements 1.20.0 → 1.22.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 (41) hide show
  1. package/dist/data/__factories__/defaultUpgradeNotificationData.factory.js +18 -0
  2. package/dist/data/__factories__/defaultUpgradeNotificationData.factory.js.map +1 -0
  3. package/dist/data/__factories__/index.js +1 -0
  4. package/dist/data/__factories__/index.js.map +1 -1
  5. package/dist/data/index.js +6 -0
  6. package/dist/data/index.js.map +1 -1
  7. package/dist/data/optimizely.js +9 -1
  8. package/dist/data/optimizely.js.map +1 -1
  9. package/dist/index.js +7 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.scss +4 -0
  12. package/dist/paywall/ExperimentalLockPaywall.js +2 -2
  13. package/dist/paywall/ExperimentalLockPaywall.js.map +1 -1
  14. package/dist/upgrade-modal/DefaultUpgradeModal.js +51 -0
  15. package/dist/upgrade-modal/DefaultUpgradeModal.js.map +1 -0
  16. package/dist/upgrade-modal/ExperimentalUpgradeModal.js +105 -0
  17. package/dist/upgrade-modal/ExperimentalUpgradeModal.js.map +1 -0
  18. package/dist/upgrade-modal/NextButton.js +68 -0
  19. package/dist/upgrade-modal/NextButton.js.map +1 -0
  20. package/dist/upgrade-modal/UpgradeModal.js +234 -0
  21. package/dist/upgrade-modal/UpgradeModal.js.map +1 -0
  22. package/dist/upgrade-modal/UpgradeModalWrapper.js +26 -0
  23. package/dist/upgrade-modal/UpgradeModalWrapper.js.map +1 -0
  24. package/dist/upgrade-modal/hooks.js +70 -0
  25. package/dist/upgrade-modal/hooks.js.map +1 -0
  26. package/dist/upgrade-modal/index.js +17 -0
  27. package/dist/upgrade-modal/index.js.map +1 -0
  28. package/dist/upgrade-notification/DefaultUpgradeNotification.js +463 -37
  29. package/dist/upgrade-notification/DefaultUpgradeNotification.js.map +1 -1
  30. package/dist/upgrade-notification/ExperimentalUpgradeNotification.js +7 -9
  31. package/dist/upgrade-notification/ExperimentalUpgradeNotification.js.map +1 -1
  32. package/dist/upgrade-notification/certificate-preview/CertificatePreview.js +3 -2
  33. package/dist/upgrade-notification/certificate-preview/CertificatePreview.js.map +1 -1
  34. package/dist/upsell-bullets/ExperimentalUpsellBullets.js +39 -0
  35. package/dist/upsell-bullets/ExperimentalUpsellBullets.js.map +1 -0
  36. package/dist/upsell-bullets/UpsellBullets.js +101 -16
  37. package/dist/upsell-bullets/UpsellBullets.js.map +1 -1
  38. package/dist/upsell-bullets/UpsellBullets.scss +11 -0
  39. package/dist/upsell-bullets/index.js +50 -0
  40. package/dist/upsell-bullets/index.js.map +1 -0
  41. package/package.json +1 -1
@@ -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":[]}
@@ -21,6 +21,12 @@ Object.defineProperty(exports, "OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_
21
21
  return _optimizely.OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "OPTIMIZELY_VTR_MODAL_EXPERIMENT", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _optimizely.OPTIMIZELY_VTR_MODAL_EXPERIMENT;
28
+ }
29
+ });
24
30
  Object.defineProperty(exports, "getOptimizely", {
25
31
  enumerable: true,
26
32
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_optimizely","require"],"sources":["../../src/data/index.jsx"],"sourcesContent":["export {\n getOptimizely,\n OPTIMIZELY_EVENT_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY,\n} from './optimizely';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_optimizely","require"],"sources":["../../src/data/index.jsx"],"sourcesContent":["export {\n getOptimizely,\n OPTIMIZELY_EVENT_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY,\n OPTIMIZELY_VTR_MODAL_EXPERIMENT,\n} from './optimizely';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getOptimizely = exports.OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS = exports.OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY = exports.OPTIMIZELY_EVENT_KEYS = void 0;
6
+ exports.getOptimizely = exports.OPTIMIZELY_VTR_MODAL_EXPERIMENT = exports.OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS = exports.OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY = exports.OPTIMIZELY_EVENT_KEYS = void 0;
7
7
  var _reactSdk = require("@optimizely/react-sdk");
8
8
  var _frontendPlatform = require("@edx/frontend-platform");
9
9
  (0, _frontendPlatform.ensureConfig)(['OPTIMIZELY_FULL_STACK_SDK_KEY'], 'Frontend Plugin Advertisements Optimizely module');
@@ -30,6 +30,14 @@ const OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS = exports.OPTIMIZELY_
30
30
  CONTROL: 'control',
31
31
  OFF: 'off'
32
32
  };
33
+ const OPTIMIZELY_VTR_MODAL_EXPERIMENT = exports.OPTIMIZELY_VTR_MODAL_EXPERIMENT = {
34
+ KEY: 'vtr_in_course_popup_modal',
35
+ ACTION: 'modal_upgrade_button_click',
36
+ VARIATIONS: {
37
+ ON: 'on',
38
+ OFF: 'off'
39
+ }
40
+ };
33
41
  const OPTIMIZELY_EVENT_KEYS = exports.OPTIMIZELY_EVENT_KEYS = {
34
42
  UPGRADE_BUTTON_CLICK: 'upgrade_button_click',
35
43
  DECLINE_UPGRADE_BUTTON_CLICK: 'decline_upgrade_button_click'
@@ -1 +1 @@
1
- {"version":3,"file":"optimizely.js","names":["_reactSdk","require","_frontendPlatform","ensureConfig","getOptimizely","OPTIMIZELY_SDK_KEY","getConfig","OPTIMIZELY_FULL_STACK_SDK_KEY","createInstance","sdkKey","exports","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS","CERTIFICATE_PREVIEW","CERTIFICATE_PREVIEW_WITH_COPY","CONTROL","OFF","OPTIMIZELY_EVENT_KEYS","UPGRADE_BUTTON_CLICK","DECLINE_UPGRADE_BUTTON_CLICK"],"sources":["../../src/data/optimizely.js"],"sourcesContent":["import { createInstance } from '@optimizely/react-sdk';\nimport { ensureConfig, getConfig } from '@edx/frontend-platform';\n\nensureConfig([\n 'OPTIMIZELY_FULL_STACK_SDK_KEY',\n], 'Frontend Plugin Advertisements Optimizely module');\n\n/**\n * Initializing the Optimizely instance at the top-level will not work, becaused it may be initialized before\n * the OPTIMIZELY_FULL_STACK_SDK_KEY is available and will not be reinitialized afterward. Wrapping the initialization\n * in a function allows components to request the instance as-needed.\n */\nconst getOptimizely = () => {\n const OPTIMIZELY_SDK_KEY = getConfig().OPTIMIZELY_FULL_STACK_SDK_KEY;\n\n if (OPTIMIZELY_SDK_KEY) {\n return createInstance({\n sdkKey: OPTIMIZELY_SDK_KEY,\n });\n }\n\n return null;\n};\n\nconst OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY = 'verified_take_rate_preview_watermark_experimentation';\n\nconst OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS = {\n CERTIFICATE_PREVIEW: 'certificate_preview',\n CERTIFICATE_PREVIEW_WITH_COPY: 'certificate_preview_with_copy',\n CONTROL: 'control',\n OFF: 'off',\n};\n\nconst OPTIMIZELY_EVENT_KEYS = {\n UPGRADE_BUTTON_CLICK: 'upgrade_button_click',\n DECLINE_UPGRADE_BUTTON_CLICK: 'decline_upgrade_button_click',\n};\n\nexport {\n getOptimizely,\n OPTIMIZELY_EVENT_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,IAAAE,8BAAY,EAAC,CACX,+BAA+B,CAChC,EAAE,kDAAkD,CAAC;;AAEtD;AACA;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC1B,MAAMC,kBAAkB,GAAG,IAAAC,2BAAS,EAAC,CAAC,CAACC,6BAA6B;EAEpE,IAAIF,kBAAkB,EAAE;IACtB,OAAO,IAAAG,wBAAc,EAAC;MACpBC,MAAM,EAAEJ;IACV,CAAC,CAAC;EACJ;EAEA,OAAO,IAAI;AACb,CAAC;AAACK,OAAA,CAAAN,aAAA,GAAAA,aAAA;AAEF,MAAMO,yCAAyC,GAAAD,OAAA,CAAAC,yCAAA,GAAG,sDAAsD;AAExG,MAAMC,oDAAoD,GAAAF,OAAA,CAAAE,oDAAA,GAAG;EAC3DC,mBAAmB,EAAE,qBAAqB;EAC1CC,6BAA6B,EAAE,+BAA+B;EAC9DC,OAAO,EAAE,SAAS;EAClBC,GAAG,EAAE;AACP,CAAC;AAED,MAAMC,qBAAqB,GAAAP,OAAA,CAAAO,qBAAA,GAAG;EAC5BC,oBAAoB,EAAE,sBAAsB;EAC5CC,4BAA4B,EAAE;AAChC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"optimizely.js","names":["_reactSdk","require","_frontendPlatform","ensureConfig","getOptimizely","OPTIMIZELY_SDK_KEY","getConfig","OPTIMIZELY_FULL_STACK_SDK_KEY","createInstance","sdkKey","exports","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY","OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS","CERTIFICATE_PREVIEW","CERTIFICATE_PREVIEW_WITH_COPY","CONTROL","OFF","OPTIMIZELY_VTR_MODAL_EXPERIMENT","KEY","ACTION","VARIATIONS","ON","OPTIMIZELY_EVENT_KEYS","UPGRADE_BUTTON_CLICK","DECLINE_UPGRADE_BUTTON_CLICK"],"sources":["../../src/data/optimizely.js"],"sourcesContent":["import { createInstance } from '@optimizely/react-sdk';\nimport { ensureConfig, getConfig } from '@edx/frontend-platform';\n\nensureConfig([\n 'OPTIMIZELY_FULL_STACK_SDK_KEY',\n], 'Frontend Plugin Advertisements Optimizely module');\n\n/**\n * Initializing the Optimizely instance at the top-level will not work, becaused it may be initialized before\n * the OPTIMIZELY_FULL_STACK_SDK_KEY is available and will not be reinitialized afterward. Wrapping the initialization\n * in a function allows components to request the instance as-needed.\n */\nconst getOptimizely = () => {\n const OPTIMIZELY_SDK_KEY = getConfig().OPTIMIZELY_FULL_STACK_SDK_KEY;\n\n if (OPTIMIZELY_SDK_KEY) {\n return createInstance({\n sdkKey: OPTIMIZELY_SDK_KEY,\n });\n }\n\n return null;\n};\n\nconst OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY = 'verified_take_rate_preview_watermark_experimentation';\n\nconst OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS = {\n CERTIFICATE_PREVIEW: 'certificate_preview',\n CERTIFICATE_PREVIEW_WITH_COPY: 'certificate_preview_with_copy',\n CONTROL: 'control',\n OFF: 'off',\n};\n\nconst OPTIMIZELY_VTR_MODAL_EXPERIMENT = {\n KEY: 'vtr_in_course_popup_modal',\n ACTION: 'modal_upgrade_button_click',\n VARIATIONS: {\n ON: 'on', OFF: 'off',\n },\n};\n\nconst OPTIMIZELY_EVENT_KEYS = {\n UPGRADE_BUTTON_CLICK: 'upgrade_button_click',\n DECLINE_UPGRADE_BUTTON_CLICK: 'decline_upgrade_button_click',\n};\n\nexport {\n getOptimizely,\n OPTIMIZELY_EVENT_KEYS,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_KEY,\n OPTIMIZELY_VTR_COPY_CHANGE_EXPERIMENT_VARIATION_KEYS,\n OPTIMIZELY_VTR_MODAL_EXPERIMENT,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,IAAAE,8BAAY,EAAC,CACX,+BAA+B,CAChC,EAAE,kDAAkD,CAAC;;AAEtD;AACA;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC1B,MAAMC,kBAAkB,GAAG,IAAAC,2BAAS,EAAC,CAAC,CAACC,6BAA6B;EAEpE,IAAIF,kBAAkB,EAAE;IACtB,OAAO,IAAAG,wBAAc,EAAC;MACpBC,MAAM,EAAEJ;IACV,CAAC,CAAC;EACJ;EAEA,OAAO,IAAI;AACb,CAAC;AAACK,OAAA,CAAAN,aAAA,GAAAA,aAAA;AAEF,MAAMO,yCAAyC,GAAAD,OAAA,CAAAC,yCAAA,GAAG,sDAAsD;AAExG,MAAMC,oDAAoD,GAAAF,OAAA,CAAAE,oDAAA,GAAG;EAC3DC,mBAAmB,EAAE,qBAAqB;EAC1CC,6BAA6B,EAAE,+BAA+B;EAC9DC,OAAO,EAAE,SAAS;EAClBC,GAAG,EAAE;AACP,CAAC;AAED,MAAMC,+BAA+B,GAAAP,OAAA,CAAAO,+BAAA,GAAG;EACtCC,GAAG,EAAE,2BAA2B;EAChCC,MAAM,EAAE,4BAA4B;EACpCC,UAAU,EAAE;IACVC,EAAE,EAAE,IAAI;IAAEL,GAAG,EAAE;EACjB;AACF,CAAC;AAED,MAAMM,qBAAqB,GAAAZ,OAAA,CAAAY,qBAAA,GAAG;EAC5BC,oBAAoB,EAAE,sBAAsB;EAC5CC,4BAA4B,EAAE;AAChC,CAAC","ignoreList":[]}
package/dist/index.js CHANGED
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "LockPaywall", {
9
9
  return _paywall.default;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "UpgradeModalWrapper", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _upgradeModal.default;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "UpgradeNotification", {
13
19
  enumerable: true,
14
20
  get: function () {
@@ -17,5 +23,6 @@ Object.defineProperty(exports, "UpgradeNotification", {
17
23
  });
18
24
  var _upgradeNotification = _interopRequireDefault(require("./upgrade-notification"));
19
25
  var _paywall = _interopRequireDefault(require("./paywall"));
26
+ var _upgradeModal = _interopRequireDefault(require("./upgrade-modal"));
20
27
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_upgradeNotification","_interopRequireDefault","require","_paywall","obj","__esModule","default"],"sources":["../src/index.jsx"],"sourcesContent":["import UpgradeNotification from './upgrade-notification';\nimport LockPaywall from './paywall';\n\nexport {\n UpgradeNotification,\n LockPaywall,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAoC,SAAAD,uBAAAG,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","obj","__esModule","default"],"sources":["../src/index.jsx"],"sourcesContent":["import UpgradeNotification from './upgrade-notification';\nimport LockPaywall from './paywall';\nimport UpgradeModalWrapper from './upgrade-modal';\n\nexport {\n UpgradeNotification,\n LockPaywall,\n UpgradeModalWrapper,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA","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":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _NextButton = _interopRequireDefault(require("./NextButton"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ const DefaultUpgradeModal = _ref => {
13
+ let {
14
+ disabled,
15
+ buttonText,
16
+ nextArrow,
17
+ nextLink,
18
+ shouldDisplayNotificationTriggerInSequence,
19
+ sequenceId,
20
+ unitId,
21
+ handleNavigate,
22
+ nextSequenceHandler,
23
+ linkComponent
24
+ } = _ref;
25
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NextButton.default, {
26
+ disabled,
27
+ buttonText,
28
+ nextArrow,
29
+ nextLink,
30
+ shouldDisplayNotificationTriggerInSequence,
31
+ sequenceId,
32
+ unitId,
33
+ nextSequenceHandler,
34
+ handleNavigate,
35
+ linkComponent
36
+ });
37
+ };
38
+ DefaultUpgradeModal.propTypes = {
39
+ disabled: _propTypes.default.bool.isRequired,
40
+ buttonText: _propTypes.default.string.isRequired,
41
+ nextArrow: _propTypes.default.func.isRequired,
42
+ nextLink: _propTypes.default.string.isRequired,
43
+ shouldDisplayNotificationTriggerInSequence: _propTypes.default.bool.isRequired,
44
+ sequenceId: _propTypes.default.string.isRequired,
45
+ unitId: _propTypes.default.string.isRequired,
46
+ handleNavigate: _propTypes.default.func.isRequired,
47
+ linkComponent: _propTypes.default.node.isRequired,
48
+ nextSequenceHandler: _propTypes.default.func.isRequired
49
+ };
50
+ var _default = exports.default = DefaultUpgradeModal;
51
+ //# sourceMappingURL=DefaultUpgradeModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultUpgradeModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_NextButton","_jsxRuntime","obj","__esModule","default","DefaultUpgradeModal","_ref","disabled","buttonText","nextArrow","nextLink","shouldDisplayNotificationTriggerInSequence","sequenceId","unitId","handleNavigate","nextSequenceHandler","linkComponent","jsx","propTypes","PropTypes","bool","isRequired","string","func","node","_default","exports"],"sources":["../../src/upgrade-modal/DefaultUpgradeModal.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport NextButton from './NextButton';\n\nconst DefaultUpgradeModal = ({\n disabled,\n buttonText,\n nextArrow,\n nextLink,\n shouldDisplayNotificationTriggerInSequence,\n sequenceId,\n unitId,\n handleNavigate,\n nextSequenceHandler,\n linkComponent,\n}) => (\n <NextButton\n {...{\n disabled,\n buttonText,\n nextArrow,\n nextLink,\n shouldDisplayNotificationTriggerInSequence,\n sequenceId,\n unitId,\n nextSequenceHandler,\n handleNavigate,\n linkComponent,\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,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAsC,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEtC,MAAMG,mBAAmB,GAAGC,IAAA;EAAA,IAAC;IAC3BC,QAAQ;IACRC,UAAU;IACVC,SAAS;IACTC,QAAQ;IACRC,0CAA0C;IAC1CC,UAAU;IACVC,MAAM;IACNC,cAAc;IACdC,mBAAmB;IACnBC;EACF,CAAC,GAAAV,IAAA;EAAA,oBACC,IAAAL,WAAA,CAAAgB,GAAA,EAACjB,WAAA,CAAAI,OAAU;IAEPG,QAAQ;IACRC,UAAU;IACVC,SAAS;IACTC,QAAQ;IACRC,0CAA0C;IAC1CC,UAAU;IACVC,MAAM;IACNE,mBAAmB;IACnBD,cAAc;IACdE;EAAa,CAEhB,CAAC;AAAA,CACH;AAEDX,mBAAmB,CAACa,SAAS,GAAG;EAC9BX,QAAQ,EAAEY,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCb,UAAU,EAAEW,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvCZ,SAAS,EAAEU,kBAAS,CAACI,IAAI,CAACF,UAAU;EACpCX,QAAQ,EAAES,kBAAS,CAACG,MAAM,CAACD,UAAU;EACrCV,0CAA0C,EAAEQ,kBAAS,CAACC,IAAI,CAACC,UAAU;EACrET,UAAU,EAAEO,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvCR,MAAM,EAAEM,kBAAS,CAACG,MAAM,CAACD,UAAU;EACnCP,cAAc,EAAEK,kBAAS,CAACI,IAAI,CAACF,UAAU;EACzCL,aAAa,EAAEG,kBAAS,CAACK,IAAI,CAACH,UAAU;EACxCN,mBAAmB,EAAEI,kBAAS,CAACI,IAAI,CAACF;AACtC,CAAC;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAAtB,OAAA,GAEaC,mBAAmB","ignoreList":[]}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _modelStore = require("@src/generic/model-store");
10
+ var _UpgradeModal = _interopRequireDefault(require("./UpgradeModal"));
11
+ var _NextButton = _interopRequireDefault(require("./NextButton"));
12
+ var _hooks = _interopRequireDefault(require("./hooks"));
13
+ var _jsxRuntime = require("react/jsx-runtime");
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; }
17
+ /* eslint import/no-unresolved: 0 */
18
+
19
+ const ExperimentalUpgradeModal = _ref => {
20
+ let {
21
+ courseId,
22
+ disabled,
23
+ buttonText,
24
+ nextArrow,
25
+ nextLink,
26
+ shouldDisplayNotificationTriggerInSequence,
27
+ sequenceId,
28
+ unitId,
29
+ nextSequenceHandler,
30
+ handleNavigate,
31
+ isOpen,
32
+ open,
33
+ close,
34
+ linkComponent
35
+ } = _ref;
36
+ const {
37
+ verifiedMode,
38
+ org,
39
+ isStaff
40
+ } = (0, _modelStore.useModel)('courseHomeMeta', courseId);
41
+ const {
42
+ enrollmentMode,
43
+ offer,
44
+ marketingUrl,
45
+ accessExpiration
46
+ } = (0, _modelStore.useModel)('coursewareMeta', courseId);
47
+ const [qualifiesForModal, shouldShowModalOnClick, countNextClick] = (0, _hooks.default)({
48
+ verifiedMode,
49
+ isStaff,
50
+ enrollmentMode
51
+ });
52
+ const handleModal = () => {
53
+ if (qualifiesForModal) {
54
+ countNextClick();
55
+ if (shouldShowModalOnClick) {
56
+ open();
57
+ }
58
+ }
59
+ };
60
+ (0, _react.useEffect)(() => {
61
+ handleModal();
62
+ // eslint-disable-next-line react-hooks/exhaustive-deps
63
+ }, [sequenceId]);
64
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
65
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_NextButton.default, {
66
+ disabled,
67
+ buttonText,
68
+ nextArrow,
69
+ nextLink,
70
+ shouldDisplayNotificationTriggerInSequence,
71
+ sequenceId,
72
+ unitId,
73
+ nextSequenceHandler,
74
+ handleNavigate,
75
+ linkComponent
76
+ }), verifiedMode && /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpgradeModal.default, {
77
+ isOpen,
78
+ close,
79
+ verifiedMode,
80
+ org,
81
+ courseId,
82
+ offer,
83
+ marketingUrl,
84
+ accessExpiration
85
+ })]
86
+ });
87
+ };
88
+ ExperimentalUpgradeModal.propTypes = {
89
+ disabled: _propTypes.default.bool.isRequired,
90
+ buttonText: _propTypes.default.string.isRequired,
91
+ nextArrow: _propTypes.default.func.isRequired,
92
+ nextLink: _propTypes.default.string.isRequired,
93
+ shouldDisplayNotificationTriggerInSequence: _propTypes.default.bool.isRequired,
94
+ sequenceId: _propTypes.default.string.isRequired,
95
+ unitId: _propTypes.default.string.isRequired,
96
+ handleNavigate: _propTypes.default.func.isRequired,
97
+ nextSequenceHandler: _propTypes.default.func.isRequired,
98
+ isOpen: _propTypes.default.bool.isRequired,
99
+ open: _propTypes.default.func.isRequired,
100
+ linkComponent: _propTypes.default.node.isRequired,
101
+ close: _propTypes.default.func.isRequired,
102
+ courseId: _propTypes.default.string.isRequired
103
+ };
104
+ var _default = exports.default = ExperimentalUpgradeModal;
105
+ //# sourceMappingURL=ExperimentalUpgradeModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExperimentalUpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_modelStore","_UpgradeModal","_NextButton","_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","nextArrow","nextLink","shouldDisplayNotificationTriggerInSequence","sequenceId","unitId","nextSequenceHandler","handleNavigate","isOpen","open","close","linkComponent","verifiedMode","org","isStaff","useModel","enrollmentMode","offer","marketingUrl","accessExpiration","qualifiesForModal","shouldShowModalOnClick","countNextClick","useInCourseUpgradeModal","handleModal","useEffect","jsxs","Fragment","children","jsx","propTypes","PropTypes","bool","isRequired","string","func","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 NextButton from './NextButton';\nimport useInCourseUpgradeModal from './hooks';\n\nconst ExperimentalUpgradeModal = ({\n courseId,\n disabled,\n buttonText,\n nextArrow,\n nextLink,\n shouldDisplayNotificationTriggerInSequence,\n sequenceId,\n unitId,\n nextSequenceHandler,\n handleNavigate,\n isOpen,\n open,\n close,\n linkComponent,\n}) => {\n const {\n verifiedMode,\n org,\n isStaff,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n enrollmentMode,\n offer,\n marketingUrl,\n accessExpiration,\n } = useModel('coursewareMeta', courseId);\n\n const [\n qualifiesForModal,\n shouldShowModalOnClick,\n countNextClick,\n ] = useInCourseUpgradeModal({ verifiedMode, isStaff, enrollmentMode });\n\n const handleModal = () => {\n if (qualifiesForModal) {\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 {...{\n disabled,\n buttonText,\n nextArrow,\n nextLink,\n shouldDisplayNotificationTriggerInSequence,\n sequenceId,\n unitId,\n nextSequenceHandler,\n handleNavigate,\n linkComponent,\n }}\n />\n {verifiedMode && (\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":[]}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _paragon = require("@openedx/paragon");
10
+ var _modelStore = require("@src/generic/model-store");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ /* eslint import/no-unresolved: 0 */
14
+
15
+ const NextButton = _ref => {
16
+ let {
17
+ disabled,
18
+ buttonText,
19
+ nextArrow,
20
+ nextLink,
21
+ shouldDisplayNotificationTriggerInSequence,
22
+ sequenceId,
23
+ unitId,
24
+ handleNavigate,
25
+ nextSequenceHandler,
26
+ // handleModal,
27
+ linkComponent
28
+ } = _ref;
29
+ const sequence = (0, _modelStore.useModel)('sequences', sequenceId);
30
+ const handleNext = () => {
31
+ const nextIndex = sequence.unitIds.indexOf(unitId) + 1;
32
+ const newUnitId = sequence.unitIds[nextIndex];
33
+ handleNavigate(newUnitId);
34
+ if (nextIndex >= sequence.unitIds.length) {
35
+ nextSequenceHandler();
36
+ // handleModal();
37
+ }
38
+ };
39
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
40
+ variant: "link",
41
+ className: "next-btn",
42
+ onClick: handleNext,
43
+ disabled: disabled,
44
+ iconAfter: nextArrow,
45
+ as: disabled ? undefined : linkComponent,
46
+ to: disabled ? undefined : nextLink,
47
+ children: shouldDisplayNotificationTriggerInSequence ? null : buttonText
48
+ });
49
+ };
50
+
51
+ // NextButton.defaultProps = {
52
+ // handleModal: () => null,
53
+ // };
54
+ NextButton.propTypes = {
55
+ disabled: _propTypes.default.bool.isRequired,
56
+ buttonText: _propTypes.default.string.isRequired,
57
+ nextArrow: _propTypes.default.func.isRequired,
58
+ nextLink: _propTypes.default.string.isRequired,
59
+ shouldDisplayNotificationTriggerInSequence: _propTypes.default.bool.isRequired,
60
+ sequenceId: _propTypes.default.string.isRequired,
61
+ unitId: _propTypes.default.string.isRequired,
62
+ handleNavigate: _propTypes.default.func.isRequired,
63
+ nextSequenceHandler: _propTypes.default.func.isRequired,
64
+ // handleModal: PropTypes.func,
65
+ linkComponent: _propTypes.default.node.isRequired
66
+ };
67
+ var _default = exports.default = NextButton;
68
+ //# sourceMappingURL=NextButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NextButton.js","names":["_react","_interopRequireDefault","require","_propTypes","_paragon","_modelStore","_jsxRuntime","obj","__esModule","default","NextButton","_ref","disabled","buttonText","nextArrow","nextLink","shouldDisplayNotificationTriggerInSequence","sequenceId","unitId","handleNavigate","nextSequenceHandler","linkComponent","sequence","useModel","handleNext","nextIndex","unitIds","indexOf","newUnitId","length","jsx","Button","variant","className","onClick","iconAfter","as","undefined","to","children","propTypes","PropTypes","bool","isRequired","string","func","node","_default","exports"],"sources":["../../src/upgrade-modal/NextButton.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@openedx/paragon';\n\nimport { useModel } from '@src/generic/model-store';\n\nconst NextButton = ({\n disabled,\n buttonText,\n nextArrow,\n nextLink,\n shouldDisplayNotificationTriggerInSequence,\n sequenceId,\n unitId,\n handleNavigate,\n nextSequenceHandler,\n // handleModal,\n linkComponent,\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 // handleModal();\n }\n };\n\n return (\n <Button\n variant=\"link\"\n className=\"next-btn\"\n onClick={handleNext}\n disabled={disabled}\n iconAfter={nextArrow}\n as={disabled ? undefined : linkComponent}\n to={disabled ? undefined : nextLink}\n >\n {shouldDisplayNotificationTriggerInSequence ? null : buttonText}\n </Button>\n );\n};\n\n// NextButton.defaultProps = {\n// handleModal: () => null,\n// };\nNextButton.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 // handleModal: PropTypes.func,\n linkComponent: PropTypes.node.isRequired,\n};\n\nexport default NextButton;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAAoD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AALpD;;AAOA,MAAMG,UAAU,GAAGC,IAAA,IAYb;EAAA,IAZc;IAClBC,QAAQ;IACRC,UAAU;IACVC,SAAS;IACTC,QAAQ;IACRC,0CAA0C;IAC1CC,UAAU;IACVC,MAAM;IACNC,cAAc;IACdC,mBAAmB;IACnB;IACAC;EACF,CAAC,GAAAV,IAAA;EACC,MAAMW,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;MACrB;IACF;EACF,CAAC;EAED,oBACE,IAAAd,WAAA,CAAAwB,GAAA,EAAC1B,QAAA,CAAA2B,MAAM;IACLC,OAAO,EAAC,MAAM;IACdC,SAAS,EAAC,UAAU;IACpBC,OAAO,EAAEV,UAAW;IACpBZ,QAAQ,EAAEA,QAAS;IACnBuB,SAAS,EAAErB,SAAU;IACrBsB,EAAE,EAAExB,QAAQ,GAAGyB,SAAS,GAAGhB,aAAc;IACzCiB,EAAE,EAAE1B,QAAQ,GAAGyB,SAAS,GAAGtB,QAAS;IAAAwB,QAAA,EAEnCvB,0CAA0C,GAAG,IAAI,GAAGH;EAAU,CACzD,CAAC;AAEb,CAAC;;AAED;AACA;AACA;AACAH,UAAU,CAAC8B,SAAS,GAAG;EACrB5B,QAAQ,EAAE6B,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnC9B,UAAU,EAAE4B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvC7B,SAAS,EAAE2B,kBAAS,CAACI,IAAI,CAACF,UAAU;EACpC5B,QAAQ,EAAE0B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACrC3B,0CAA0C,EAAEyB,kBAAS,CAACC,IAAI,CAACC,UAAU;EACrE1B,UAAU,EAAEwB,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvCzB,MAAM,EAAEuB,kBAAS,CAACG,MAAM,CAACD,UAAU;EACnCxB,cAAc,EAAEsB,kBAAS,CAACI,IAAI,CAACF,UAAU;EACzCvB,mBAAmB,EAAEqB,kBAAS,CAACI,IAAI,CAACF,UAAU;EAC9C;EACAtB,aAAa,EAAEoB,kBAAS,CAACK,IAAI,CAACH;AAChC,CAAC;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAAvC,OAAA,GAEaC,UAAU","ignoreList":[]}