@edx/frontend-plugin-advertisements 1.37.1 → 1.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/index.js +1 -1
- package/dist/data/index.js.map +1 -1
- package/dist/data/optimizely.js +1 -1
- package/dist/data/optimizely.js.map +1 -1
- package/dist/generic/AccessExpirationDateBanner.js +2 -2
- package/dist/generic/AccessExpirationDateBanner.js.map +1 -1
- package/dist/generic/ExpirationCountdown.js +1 -1
- package/dist/generic/ExpirationCountdown.js.map +1 -1
- package/dist/generic/PastExpirationDateBanner.js +2 -2
- package/dist/generic/PastExpirationDateBanner.js.map +1 -1
- package/dist/generic/UpsellFBESoonCardContent.js +2 -2
- package/dist/generic/UpsellFBESoonCardContent.js.map +1 -1
- package/dist/generic/index.js +1 -1
- package/dist/generic/index.js.map +1 -1
- package/dist/generic/upsell-bullets/PaywallUpsellBullets.js +1 -1
- package/dist/generic/upsell-bullets/PaywallUpsellBullets.js.map +1 -1
- package/dist/generic/upsell-bullets/UpsellBullets.js +1 -1
- package/dist/generic/upsell-bullets/UpsellBullets.js.map +1 -1
- package/dist/generic/upsell-bullets/UpsellTable.js +1 -1
- package/dist/generic/upsell-bullets/UpsellTable.js.map +1 -1
- package/dist/generic/upsell-bullets/index.js +1 -1
- package/dist/generic/upsell-bullets/index.js.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/mocks/optimizely/index.js +1 -1
- package/dist/optimizely/Optimizely.js +4 -4
- package/dist/optimizely/Optimizely.js.map +1 -1
- package/dist/paywall/DefaultLockPaywall.js +2 -2
- package/dist/paywall/DefaultLockPaywall.js.map +1 -1
- package/dist/paywall/ExperimentalLockPaywall.js +2 -2
- package/dist/paywall/ExperimentalLockPaywall.js.map +1 -1
- package/dist/paywall/LockPaywall.js +2 -2
- package/dist/paywall/LockPaywall.js.map +1 -1
- package/dist/paywall/index.js +1 -1
- package/dist/paywall/index.js.map +1 -1
- package/dist/section-outline/SectionHeader.js +49 -0
- package/dist/section-outline/SectionHeader.js.map +1 -0
- package/dist/section-outline/SectionItem.js +112 -0
- package/dist/section-outline/SectionItem.js.map +1 -0
- package/dist/section-outline/SectionList.js +85 -0
- package/dist/section-outline/SectionList.js.map +1 -0
- package/dist/section-outline/SequenceHeader.js +60 -0
- package/dist/section-outline/SequenceHeader.js.map +1 -0
- package/dist/section-outline/SequenceLink.js +63 -0
- package/dist/section-outline/SequenceLink.js.map +1 -0
- package/dist/section-outline/UpgradeBanner.js +49 -0
- package/dist/section-outline/UpgradeBanner.js.map +1 -0
- package/dist/section-outline/constants.js +10 -0
- package/dist/section-outline/constants.js.map +1 -0
- package/dist/section-outline/data/api.js +42 -0
- package/dist/section-outline/data/api.js.map +1 -0
- package/dist/section-outline/hooks.js +79 -0
- package/dist/section-outline/hooks.js.map +1 -0
- package/dist/section-outline/index.js +10 -0
- package/dist/section-outline/index.js.map +1 -0
- package/dist/section-outline/messages.js +41 -0
- package/dist/section-outline/messages.js.map +1 -0
- package/dist/upgrade-modal/BaseModal.js +2 -1
- package/dist/upgrade-modal/BaseModal.js.map +1 -1
- package/dist/upgrade-modal/DefaultUpgradeModal.js +2 -2
- package/dist/upgrade-modal/DefaultUpgradeModal.js.map +1 -1
- package/dist/upgrade-modal/ExperimentalUpgradeModal.js +2 -2
- package/dist/upgrade-modal/ExperimentalUpgradeModal.js.map +1 -1
- package/dist/upgrade-modal/NextUnitButton.js +3 -1
- package/dist/upgrade-modal/NextUnitButton.js.map +1 -1
- package/dist/upgrade-modal/UpgradeModalWrapper.js +2 -2
- package/dist/upgrade-modal/UpgradeModalWrapper.js.map +1 -1
- package/dist/upgrade-modal/index.js +1 -1
- package/dist/upgrade-modal/index.js.map +1 -1
- package/dist/upgrade-notification/DefaultUpgradeNotification.js +2 -2
- package/dist/upgrade-notification/DefaultUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js +2 -2
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/UpgradeNotification.js +2 -2
- package/dist/upgrade-notification/UpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/certificate-preview/CertificatePreview.js +1 -1
- package/dist/upgrade-notification/certificate-preview/CertificatePreview.js.map +1 -1
- package/dist/upgrade-notification/certificate-preview/Signatory.js +1 -1
- package/dist/upgrade-notification/certificate-preview/Signatory.js.map +1 -1
- package/dist/upgrade-notification/certificate-preview/index.js +1 -1
- package/dist/upgrade-notification/certificate-preview/index.js.map +1 -1
- package/dist/upgrade-notification/index.js +1 -1
- package/dist/upgrade-notification/index.js.map +1 -1
- package/dist/upgrade-notification/utils.js +1 -1
- package/dist/upgrade-notification/utils.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Optimizely.js","names":["_propTypes","_interopRequireDefault","require","_auth","_reactSdk","_i18n","_optimizely","_jsxRuntime","_excluded","_excluded2","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","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","sourceKeys","OptimizelyExperimentController","_ref","defaultComponent","DefaultComponent","experimentalComponent","ExperimentalComponent","defaultVariationKey","experimentKey","props","decision","useDecision","enabled","variationKey","showDefault","jsx","children","propTypes","PropTypes","elementType","isRequired","string","defaultProps","OptimizelyExperiment","userId","getAuthenticatedUser","optimizely","getOptimizely","OptimizelyProvider","user","id","toString","attributes","lms_language_preference","getLocale","exports","OptimizelyProviderWrapper","_ref2","_default"],"sources":["../../src/optimizely/Optimizely.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { OptimizelyProvider, useDecision } from '@optimizely/react-sdk';\n\nimport { getLocale } from '@edx/frontend-platform/i18n';\nimport { getOptimizely } from '../data/optimizely';\n\nconst OptimizelyExperimentController = (\n // Use defaultVariationKey if your experiment is set to target less than 100% of traffic\n // and you have a variation for users not included in the experiment.\n {\n defaultComponent: DefaultComponent,\n experimentalComponent: ExperimentalComponent,\n defaultVariationKey,\n experimentKey,\n ...props\n },\n) => {\n const [decision] = useDecision(experimentKey);\n const { enabled, variationKey } = decision;\n\n const showDefault = !enabled || (defaultVariationKey && defaultVariationKey === variationKey);\n\n return (\n <div>\n {showDefault ? <DefaultComponent {...props} /> : <ExperimentalComponent {...props} />}\n </div>\n );\n};\n\nOptimizelyExperimentController.propTypes = {\n defaultComponent: PropTypes.elementType.isRequired,\n experimentalComponent: PropTypes.elementType.isRequired,\n defaultVariationKey: PropTypes.string,\n experimentKey: PropTypes.string.isRequired,\n};\n\nOptimizelyExperimentController.defaultProps = {\n defaultVariationKey: null,\n};\n\n/**\n * An optimizely helper:\n * Creates an OptimizelyProvider context for the given user and renders either experimentalComponent or\n * defaultCompoment based on the decision returned by optimizely.\n */\nconst OptimizelyExperiment = (props) => {\n const { userId } = getAuthenticatedUser();\n const { defaultComponent: DefaultComponent } = props;\n\n const optimizely = getOptimizely();\n\n return (\n optimizely\n ? (\n // The Optimizely SDK requires the user ID to be a string.\n <OptimizelyProvider\n optimizely={optimizely}\n user={{\n id: userId.toString(),\n attributes: { lms_language_preference: getLocale() },\n }}\n >\n <OptimizelyExperimentController {...props} />\n </OptimizelyProvider>\n )\n : (<DefaultComponent {...props} />)\n );\n};\n\nOptimizelyExperiment.propTypes = {\n defaultComponent: PropTypes.elementType.isRequired,\n};\n\n/**\n * An optimizely helper:\n * Creates an OptimizelyProvider context for the given user, but does not call decide to bucket the learner immediately.\n * Used if you need an optimizely context but don't want to immediately bucket the user.\n *\n * DefaultComponent is only rendered in the case that optimizely cannot be loaded.\n */\nconst OptimizelyProviderWrapper = ({\n defaultComponent: DefaultComponent,\n experimentalComponent: ExperimentalComponent,\n ...props\n}) => {\n const { userId } = getAuthenticatedUser();\n const optimizely = getOptimizely();\n\n return (\n optimizely\n ? (\n // The Optimizely SDK requires the user ID to be a string.\n <OptimizelyProvider\n optimizely={optimizely}\n user={{\n id: userId.toString(),\n attributes: { lms_language_preference: getLocale() },\n }}\n >\n <ExperimentalComponent {...props} />\n </OptimizelyProvider>\n ) : <DefaultComponent {...props} />\n );\n};\n\nOptimizelyProviderWrapper.propTypes = {\n experimentalComponent: PropTypes.elementType.isRequired,\n defaultComponent: PropTypes.elementType.isRequired,\n};\n\nexport default OptimizelyExperiment;\n\nexport {\n OptimizelyExperiment,\n OptimizelyProviderWrapper,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Optimizely.js","names":["_propTypes","_interopRequireDefault","require","_auth","_reactSdk","_i18n","_optimizely","_jsxRuntime","_excluded","_excluded2","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","indexOf","propertyIsEnumerable","hasOwnProperty","OptimizelyExperimentController","_ref","defaultComponent","DefaultComponent","experimentalComponent","ExperimentalComponent","defaultVariationKey","experimentKey","props","decision","useDecision","enabled","variationKey","showDefault","jsx","children","propTypes","PropTypes","elementType","isRequired","string","defaultProps","OptimizelyExperiment","userId","getAuthenticatedUser","optimizely","getOptimizely","OptimizelyProvider","user","id","toString","attributes","lms_language_preference","getLocale","exports","OptimizelyProviderWrapper","_ref2","_default"],"sources":["../../src/optimizely/Optimizely.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { OptimizelyProvider, useDecision } from '@optimizely/react-sdk';\n\nimport { getLocale } from '@edx/frontend-platform/i18n';\nimport { getOptimizely } from '../data/optimizely';\n\nconst OptimizelyExperimentController = (\n // Use defaultVariationKey if your experiment is set to target less than 100% of traffic\n // and you have a variation for users not included in the experiment.\n {\n defaultComponent: DefaultComponent,\n experimentalComponent: ExperimentalComponent,\n defaultVariationKey,\n experimentKey,\n ...props\n },\n) => {\n const [decision] = useDecision(experimentKey);\n const { enabled, variationKey } = decision;\n\n const showDefault = !enabled || (defaultVariationKey && defaultVariationKey === variationKey);\n\n return (\n <div>\n {showDefault ? <DefaultComponent {...props} /> : <ExperimentalComponent {...props} />}\n </div>\n );\n};\n\nOptimizelyExperimentController.propTypes = {\n defaultComponent: PropTypes.elementType.isRequired,\n experimentalComponent: PropTypes.elementType.isRequired,\n defaultVariationKey: PropTypes.string,\n experimentKey: PropTypes.string.isRequired,\n};\n\nOptimizelyExperimentController.defaultProps = {\n defaultVariationKey: null,\n};\n\n/**\n * An optimizely helper:\n * Creates an OptimizelyProvider context for the given user and renders either experimentalComponent or\n * defaultCompoment based on the decision returned by optimizely.\n */\nconst OptimizelyExperiment = (props) => {\n const { userId } = getAuthenticatedUser();\n const { defaultComponent: DefaultComponent } = props;\n\n const optimizely = getOptimizely();\n\n return (\n optimizely\n ? (\n // The Optimizely SDK requires the user ID to be a string.\n <OptimizelyProvider\n optimizely={optimizely}\n user={{\n id: userId.toString(),\n attributes: { lms_language_preference: getLocale() },\n }}\n >\n <OptimizelyExperimentController {...props} />\n </OptimizelyProvider>\n )\n : (<DefaultComponent {...props} />)\n );\n};\n\nOptimizelyExperiment.propTypes = {\n defaultComponent: PropTypes.elementType.isRequired,\n};\n\n/**\n * An optimizely helper:\n * Creates an OptimizelyProvider context for the given user, but does not call decide to bucket the learner immediately.\n * Used if you need an optimizely context but don't want to immediately bucket the user.\n *\n * DefaultComponent is only rendered in the case that optimizely cannot be loaded.\n */\nconst OptimizelyProviderWrapper = ({\n defaultComponent: DefaultComponent,\n experimentalComponent: ExperimentalComponent,\n ...props\n}) => {\n const { userId } = getAuthenticatedUser();\n const optimizely = getOptimizely();\n\n return (\n optimizely\n ? (\n // The Optimizely SDK requires the user ID to be a string.\n <OptimizelyProvider\n optimizely={optimizely}\n user={{\n id: userId.toString(),\n attributes: { lms_language_preference: getLocale() },\n }}\n >\n <ExperimentalComponent {...props} />\n </OptimizelyProvider>\n ) : <DefaultComponent {...props} />\n );\n};\n\nOptimizelyProviderWrapper.propTypes = {\n experimentalComponent: PropTypes.elementType.isRequired,\n defaultComponent: PropTypes.elementType.isRequired,\n};\n\nexport default OptimizelyExperiment;\n\nexport {\n OptimizelyExperiment,\n OptimizelyProviderWrapper,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _LockPaywall = _interopRequireDefault(require("@src/courseware/course/sequence/lock-paywall/LockPaywall"));
|
|
8
8
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
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; }
|
|
11
11
|
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; }
|
|
12
|
-
function _defineProperty(
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
13
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
14
14
|
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-line import/no-unresolved
|
|
15
15
|
const DefaultLockPaywall = props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_LockPaywall.default, _objectSpread({}, props));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultLockPaywall.js","names":["_LockPaywall","_interopRequireDefault","require","_jsxRuntime","
|
|
1
|
+
{"version":3,"file":"DefaultLockPaywall.js","names":["_LockPaywall","_interopRequireDefault","require","_jsxRuntime","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DefaultLockPaywall","props","jsx","_default","exports"],"sources":["../../src/paywall/DefaultLockPaywall.jsx"],"sourcesContent":["import LockPaywall from '@src/courseware/course/sequence/lock-paywall/LockPaywall'; // eslint-disable-line import/no-unresolved\n\nconst DefaultLockPaywall = (props) => (\n <LockPaywall {...props} />\n);\n\nexport default DefaultLockPaywall;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAmF,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA,KAAC;AAEpF,MAAM8B,kBAAkB,GAAIC,KAAK,iBAC/B,IAAArC,WAAA,CAAAsC,GAAA,EAACzC,YAAA,CAAAM,OAAW,EAAAa,aAAA,KAAKqB,KAAK,CAAG,CAC1B;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAArC,OAAA,GAEaiC,kBAAkB","ignoreList":[]}
|
|
@@ -20,10 +20,10 @@ var _reactSdk = require("@optimizely/react-sdk");
|
|
|
20
20
|
var _data = require("../data");
|
|
21
21
|
var _upsellBullets = require("../generic/upsell-bullets");
|
|
22
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
-
function _interopRequireDefault(
|
|
23
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
24
24
|
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; }
|
|
25
25
|
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; }
|
|
26
|
-
function _defineProperty(
|
|
26
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
27
27
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
28
28
|
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 */
|
|
29
29
|
const ExperimentalLockPaywall = _ref => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExperimentalLockPaywall.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_i18n","_paragon","_icons","_messages","_edX_locked_certificate","_modelStore","_upgradeButton","_auth","_analytics","_reactSdk","_data","_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","courseId","optimizely","intl","useIntl","course","useModel","accessExpiration","marketingUrl","offer","KEY","experimentKey","ANY_CLICK_ACTION","OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT","decision","useDecision","variationKey","org","verifiedMode","shouldDisplayGatedContentTwoColumnsHalf","useWindowSize","width","breakpoints","large","minWidth","shouldWrapTextOnButton","extraSmall","accessExpirationDate","Date","expirationDate","pastExpirationDeadline","now","experimentProperties","experiment_key","variation_key","eventProperties","org_key","courserun_key","userId","getAuthenticatedUser","logClick","sendTrackEvent","linkCategory","linkName","linkType","pageName","track","logClickPastExpiration","jsx","Alert","variant","icon","Locked","className","children","jsxs","formatMessage","messages","Hyperlink","destination","onClick","target","id","defaultMessage","description","classNames","style","float","alt","src","certificateLocked","height","VerifiedCertBullet","UnlockGradedBullet","FullAccessBullet","SupportMissionBullet","UpgradeButton","whiteSpace","propTypes","PropTypes","string","isRequired","object","_default","exports","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 { useIntl } 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 { useDecision, withOptimizely } from '@optimizely/react-sdk';\n\nimport { OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT } from '../data';\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from '../generic/upsell-bullets';\n\nconst ExperimentalLockPaywall = ({\n courseId,\n optimizely,\n}) => {\n const intl = useIntl();\n const course = useModel('coursewareMeta', courseId);\n const {\n accessExpiration,\n marketingUrl,\n offer,\n } = course;\n\n /*\n Update the following line with the new experiment constants.\n KEY and ANY_CLICK_ACTION are required and used in the later in the code.\n To update the variables, make changes in ../optimizely/utils\n */\n const { KEY: experimentKey, ANY_CLICK_ACTION } = OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT;\n\n const [decision] = useDecision(experimentKey);\n const { variationKey } = decision;\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 // 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 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 ...experimentProperties,\n linkCategory: '(none)',\n linkName: 'in_course_upgrade',\n linkType: 'link',\n pageName: 'in_course',\n });\n\n /*\n Confirm that the ANY_CLICK_ACTION matches the event key in Optimizely.\n Add any additional tracking for Optimizely here.\n */\n optimizely.track(ANY_CLICK_ACTION);\n };\n\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\n destination={marketingUrl}\n onClick={logClickPastExpiration(eventProperties)}\n target=\"_blank\"\n data-testid=\"lock-paywall-past-expiration-link\"\n >\n {intl.formatMessage(messages['learn.lockPaywall.courseDetails'])}\n <span>\n {intl.formatMessage({\n id: 'learn.lockPaywall.content.link.new-tab.screenreader-only.message',\n defaultMessage: 'in a new tab',\n description: 'Screenreader only text for new tab link',\n })}\n </span>\n </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 courseId: PropTypes.string.isRequired,\n /* eslint-disable-next-line react/forbid-prop-types */\n optimizely: PropTypes.object.isRequired,\n};\n\nexport default withOptimizely(ExperimentalLockPaywall);\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAGA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,uBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AACA,IAAAY,SAAA,GAAAZ,OAAA;AAEA,IAAAa,KAAA,GAAAb,OAAA;AACA,IAAAc,cAAA,GAAAd,OAAA;AAKmC,IAAAe,WAAA,GAAAf,OAAA;AAAA,SAAAD,uBAAAiB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAgB,gBAAApB,GAAA,EAAAwB,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAxB,GAAA,IAAAO,MAAA,CAAAgB,cAAA,CAAAvB,GAAA,EAAAwB,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAZ,UAAA,QAAAc,YAAA,QAAAC,QAAA,oBAAA5B,GAAA,CAAAwB,GAAA,IAAAC,KAAA,WAAAzB,GAAA;AAAA,SAAA0B,eAAApB,CAAA,QAAAuB,CAAA,GAAAC,YAAA,CAAAxB,CAAA,uCAAAuB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAxB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAyB,MAAA,CAAAC,WAAA,kBAAA5B,CAAA,QAAAyB,CAAA,GAAAzB,CAAA,CAAA6B,IAAA,CAAA3B,CAAA,EAAAD,CAAA,uCAAAwB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA7B,CAAA,GAAA8B,MAAA,GAAAC,MAAA,EAAA9B,CAAA,KAvBnC;AAyBA,MAAM+B,uBAAuB,GAAGC,IAAA,IAG1B;EAAA,IAH2B;IAC/BC,QAAQ;IACRC;EACF,CAAC,GAAAF,IAAA;EACC,MAAMG,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EACtB,MAAMC,MAAM,GAAG,IAAAC,oBAAQ,EAAC,gBAAgB,EAAEL,QAAQ,CAAC;EACnD,MAAM;IACJM,gBAAgB;IAChBC,YAAY;IACZC;EACF,CAAC,GAAGJ,MAAM;;EAEV;AACF;AACA;AACA;AACA;EACE,MAAM;IAAEK,GAAG,EAAEC,aAAa;IAAEC;EAAiB,CAAC,GAAGC,uCAAiC;EAElF,MAAM,CAACC,QAAQ,CAAC,GAAG,IAAAC,qBAAW,EAACJ,aAAa,CAAC;EAC7C,MAAM;IAAEK;EAAa,CAAC,GAAGF,QAAQ;EAEjC,MAAM;IACJG,GAAG;IAAEC;EACP,CAAC,GAAG,IAAAZ,oBAAQ,EAAC,gBAAgB,EAAEL,QAAQ,CAAC;;EAExC;EACA;EACA,MAAMkB,uCAAuC,GAAG,IAAAC,sBAAa,EAAC,CAAC,CAACC,KAAK,IAAIC,oBAAW,CAACC,KAAK,CAACC,QAAQ;EACnG,MAAMC,sBAAsB,GAAG,IAAAL,sBAAa,EAAC,CAAC,CAACC,KAAK,GAAGC,oBAAW,CAACI,UAAU,CAACF,QAAQ;EAEtF,MAAMG,oBAAoB,GAAGpB,gBAAgB,GAAG,IAAIqB,IAAI,CAACrB,gBAAgB,CAACsB,cAAc,CAAC,GAAG,IAAI;EAChG,MAAMC,sBAAsB,GAAGvB,gBAAgB,GAAG,IAAIqB,IAAI,CAACA,IAAI,CAACG,GAAG,CAAC,CAAC,CAAC,GAAGJ,oBAAoB,GAAG,KAAK;EAErG,IAAI,CAACT,YAAY,EAAE;IACjB,OAAO,IAAI;EACb;;EAEA;EACA;EACA,MAAMc,oBAAoB,GAAG;IAC3BC,cAAc,EAAEtB,aAAa;IAC7BuB,aAAa,EAAElB;EACjB,CAAC;EAED,MAAMmB,eAAe,GAAG;IACtBC,OAAO,EAAEnB,GAAG;IACZoB,aAAa,EAAEpC;EACjB,CAAC;EAED,MAAM;IAAEqC;EAAO,CAAC,GAAG,IAAAC,0BAAoB,EAAC,CAAC;EAEzC,MAAMC,QAAQ,GAAGA,CAAA,KAAM;IACrB,IAAAC,yBAAc,EAAC,uCAAuC,EAAA/D,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACjDyD,eAAe,GACfH,oBAAoB;MACvBU,YAAY,EAAE,QAAQ;MACtBC,QAAQ,EAAE,mBAAmB;MAC7BC,QAAQ,EAAE,MAAM;MAChBC,QAAQ,EAAE;IAAW,EACtB,CAAC;;IAEF;AACJ;AACA;AACA;IACI3C,UAAU,CAAC4C,KAAK,CAAClC,gBAAgB,CAAC;EACpC,CAAC;EAED,MAAMmC,sBAAsB,GAAGA,CAAA,KAAM;IACnC,IAAAN,yBAAc,EAAC,6DAA6D,EAAA/D,aAAA,CAAAA,aAAA,KACvEyD,eAAe;MAClBO,YAAY,EAAE,eAAe;MAC7BC,QAAQ,EAAE,gBAAgB;MAC1BC,QAAQ,EAAE,MAAM;MAChBC,QAAQ,EAAE;IAAW,EACtB,CAAC;EACJ,CAAC;EAED,oBACE,IAAApF,WAAA,CAAAuF,GAAA,EAAClG,QAAA,CAAAmG,KAAK;IAACC,OAAO,EAAC,OAAO;IAAC,aAAU,KAAK;IAACC,IAAI,EAAEC,aAAO;IAACC,SAAS,EAAC,wBAAwB;IAAC,eAAY,mCAAmC;IAAAC,QAAA,eACrI,IAAA7F,WAAA,CAAA8F,IAAA;MAAKF,SAAS,EAAC,KAAK;MAAAC,QAAA,gBAClB,IAAA7F,WAAA,CAAA8F,IAAA;QAAKF,SAAS,EAAC,KAAK;QAAAC,QAAA,gBAClB,IAAA7F,WAAA,CAAAuF,GAAA;UAAI,cAAW,GAAG;UAAAM,QAAA,eAChB,IAAA7F,WAAA,CAAAuF,GAAA;YAAAM,QAAA,EAAOnD,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,yBAAyB,CAAC;UAAC,CAAO;QAAC,CACpE,CAAC,EACJ3B,sBAAsB,gBACrB,IAAArE,WAAA,CAAA8F,IAAA;UAAKF,SAAS,EAAC,oBAAoB;UAAC,eAAY,8BAA8B;UAAAC,QAAA,GAC3EnD,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,0CAA0C,CAAC,CAAC,eACzE,IAAAhG,WAAA,CAAA8F,IAAA,EAACzG,QAAA,CAAA4G,SAAS;YACRC,WAAW,EAAEnD,YAAa;YAC1BoD,OAAO,EAAEb,sBAAsB,CAACZ,eAAe,CAAE;YACjD0B,MAAM,EAAC,QAAQ;YACf,eAAY,mCAAmC;YAAAP,QAAA,GAE9CnD,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,iCAAiC,CAAC,CAAC,eAChE,IAAAhG,WAAA,CAAAuF,GAAA;cAAAM,QAAA,EACGnD,IAAI,CAACqD,aAAa,CAAC;gBAClBM,EAAE,EAAE,kEAAkE;gBACtEC,cAAc,EAAE,cAAc;gBAC9BC,WAAW,EAAE;cACf,CAAC;YAAC,CACE,CAAC;UAAA,CACE,CAAC;QAAA,CACT,CAAC,gBAEN,IAAAvG,WAAA,CAAAuF,GAAA;UAAKK,SAAS,EAAC,oBAAoB;UAAAC,QAAA,EAChCnD,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,2BAA2B,CAAC;QAAC,CACvD,CACN,eAED,IAAAhG,WAAA,CAAA8F,IAAA;UAAKF,SAAS,EAAE,IAAAY,mBAAU,EAAC,wBAAwB,EAAE;YAAE,WAAW,EAAE9C;UAAwC,CAAC,CAAE;UAAAmC,QAAA,gBAC7G,IAAA7F,WAAA,CAAAuF,GAAA;YAAKkB,KAAK,EAAE;cAAEC,KAAK,EAAE;YAAO,CAAE;YAACd,SAAS,EAAC,WAAW;YAAAC,QAAA,eAClD,IAAA7F,WAAA,CAAAuF,GAAA;cACEoB,GAAG,EAAEjE,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,+BAA+B,CAAC,CAAE;cACnEY,GAAG,EAAEC,+BAAkB;cACvBjB,SAAS,EAAC,mCAAmC;cAC7Ca,KAAK,EAAE;gBAAEK,MAAM,EAAE,OAAO;gBAAElD,KAAK,EAAE;cAAQ;YAAE,CAC5C;UAAC,CACC,CAAC,eAEN,IAAA5D,WAAA,CAAA8F,IAAA;YAAKF,SAAS,EAAC,gBAAgB;YAAAC,QAAA,gBAC7B,IAAA7F,WAAA,CAAAuF,GAAA;cAAKK,SAAS,EAAC,MAAM;cAAAC,QAAA,EAClBnD,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,8BAA8B,CAAC;YAAC,CAC1D,CAAC,eACN,IAAAhG,WAAA,CAAA8F,IAAA;cAAIF,SAAS,EAAC,iBAAiB;cAAAC,QAAA,gBAC7B,IAAA7F,WAAA,CAAAuF,GAAA,EAACxF,cAAA,CAAAgH,kBAAkB,IAAE,CAAC,eACtB,IAAA/G,WAAA,CAAAuF,GAAA,EAACxF,cAAA,CAAAiH,kBAAkB,IAAE,CAAC,eACtB,IAAAhH,WAAA,CAAAuF,GAAA,EAACxF,cAAA,CAAAkH,gBAAgB,IAAE,CAAC,eACpB,IAAAjH,WAAA,CAAAuF,GAAA,EAACxF,cAAA,CAAAmH,oBAAoB,IAAE,CAAC;YAAA,CACtB,CAAC;UAAA,CACF,CAAC;QAAA,CACH,CAAC;MAAA,CACH,CAAC,EAEL7C,sBAAsB,GACnB,IAAI,gBAEJ,IAAArE,WAAA,CAAAuF,GAAA;QACEK,SAAS,EACP,IAAAY,mBAAU,EAAC,4EAA4E,EAAE;UACvF,kBAAkB,EAAE,CAAC9C,uCAAuC;UAAE,UAAU,EAAEA;QAC5E,CAAC,CACF;QAAAmC,QAAA,eAED,IAAA7F,WAAA,CAAAuF,GAAA,EAAC7F,cAAA,CAAAyH,aAAa;UACZnE,KAAK,EAAEA,KAAM;UACbmD,OAAO,EAAEA,CAAA,KAAMpB,QAAQ,CAACL,eAAe,EAAEG,MAAM,CAAE;UACjDpB,YAAY,EAAEA,YAAa;UAC3BgD,KAAK,EAAE;YAAEW,UAAU,EAAEpD,sBAAsB,GAAG,QAAQ,GAAG;UAAK,CAAE;UAChE,eAAY;QAAgB,CAC7B;MAAC,CACC,CACN;IAAA,CACA;EAAC,CACD,CAAC;AAEZ,CAAC;AACD1B,uBAAuB,CAAC+E,SAAS,GAAG;EAClC7E,QAAQ,EAAE8E,kBAAS,CAACC,MAAM,CAACC,UAAU;EACrC;EACA/E,UAAU,EAAE6E,kBAAS,CAACG,MAAM,CAACD;AAC/B,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAxH,OAAA,GAEa,IAAAyH,wBAAc,EAACtF,uBAAuB,CAAC","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","_data","_upsellBullets","_jsxRuntime","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ExperimentalLockPaywall","_ref","courseId","optimizely","intl","useIntl","course","useModel","accessExpiration","marketingUrl","offer","KEY","experimentKey","ANY_CLICK_ACTION","OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT","decision","useDecision","variationKey","org","verifiedMode","shouldDisplayGatedContentTwoColumnsHalf","useWindowSize","width","breakpoints","large","minWidth","shouldWrapTextOnButton","extraSmall","accessExpirationDate","Date","expirationDate","pastExpirationDeadline","now","experimentProperties","experiment_key","variation_key","eventProperties","org_key","courserun_key","userId","getAuthenticatedUser","logClick","sendTrackEvent","linkCategory","linkName","linkType","pageName","track","logClickPastExpiration","jsx","Alert","variant","icon","Locked","className","children","jsxs","formatMessage","messages","Hyperlink","destination","onClick","target","id","defaultMessage","description","classNames","style","float","alt","src","certificateLocked","height","VerifiedCertBullet","UnlockGradedBullet","FullAccessBullet","SupportMissionBullet","UpgradeButton","whiteSpace","propTypes","PropTypes","string","isRequired","object","_default","exports","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 { useIntl } 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 { useDecision, withOptimizely } from '@optimizely/react-sdk';\n\nimport { OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT } from '../data';\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from '../generic/upsell-bullets';\n\nconst ExperimentalLockPaywall = ({\n courseId,\n optimizely,\n}) => {\n const intl = useIntl();\n const course = useModel('coursewareMeta', courseId);\n const {\n accessExpiration,\n marketingUrl,\n offer,\n } = course;\n\n /*\n Update the following line with the new experiment constants.\n KEY and ANY_CLICK_ACTION are required and used in the later in the code.\n To update the variables, make changes in ../optimizely/utils\n */\n const { KEY: experimentKey, ANY_CLICK_ACTION } = OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT;\n\n const [decision] = useDecision(experimentKey);\n const { variationKey } = decision;\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 // 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 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 ...experimentProperties,\n linkCategory: '(none)',\n linkName: 'in_course_upgrade',\n linkType: 'link',\n pageName: 'in_course',\n });\n\n /*\n Confirm that the ANY_CLICK_ACTION matches the event key in Optimizely.\n Add any additional tracking for Optimizely here.\n */\n optimizely.track(ANY_CLICK_ACTION);\n };\n\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\n destination={marketingUrl}\n onClick={logClickPastExpiration(eventProperties)}\n target=\"_blank\"\n data-testid=\"lock-paywall-past-expiration-link\"\n >\n {intl.formatMessage(messages['learn.lockPaywall.courseDetails'])}\n <span>\n {intl.formatMessage({\n id: 'learn.lockPaywall.content.link.new-tab.screenreader-only.message',\n defaultMessage: 'in a new tab',\n description: 'Screenreader only text for new tab link',\n })}\n </span>\n </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 courseId: PropTypes.string.isRequired,\n /* eslint-disable-next-line react/forbid-prop-types */\n optimizely: PropTypes.object.isRequired,\n};\n\nexport default withOptimizely(ExperimentalLockPaywall);\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAGA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,uBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AACA,IAAAY,SAAA,GAAAZ,OAAA;AAEA,IAAAa,KAAA,GAAAb,OAAA;AACA,IAAAc,cAAA,GAAAd,OAAA;AAKmC,IAAAe,WAAA,GAAAf,OAAA;AAAA,SAAAD,uBAAAiB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA,KAvBnC;AAyBA,MAAM8B,uBAAuB,GAAGC,IAAA,IAG1B;EAAA,IAH2B;IAC/BC,QAAQ;IACRC;EACF,CAAC,GAAAF,IAAA;EACC,MAAMG,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EACtB,MAAMC,MAAM,GAAG,IAAAC,oBAAQ,EAAC,gBAAgB,EAAEL,QAAQ,CAAC;EACnD,MAAM;IACJM,gBAAgB;IAChBC,YAAY;IACZC;EACF,CAAC,GAAGJ,MAAM;;EAEV;AACF;AACA;AACA;AACA;EACE,MAAM;IAAEK,GAAG,EAAEC,aAAa;IAAEC;EAAiB,CAAC,GAAGC,uCAAiC;EAElF,MAAM,CAACC,QAAQ,CAAC,GAAG,IAAAC,qBAAW,EAACJ,aAAa,CAAC;EAC7C,MAAM;IAAEK;EAAa,CAAC,GAAGF,QAAQ;EAEjC,MAAM;IACJG,GAAG;IAAEC;EACP,CAAC,GAAG,IAAAZ,oBAAQ,EAAC,gBAAgB,EAAEL,QAAQ,CAAC;;EAExC;EACA;EACA,MAAMkB,uCAAuC,GAAG,IAAAC,sBAAa,EAAC,CAAC,CAACC,KAAK,IAAIC,oBAAW,CAACC,KAAK,CAACC,QAAQ;EACnG,MAAMC,sBAAsB,GAAG,IAAAL,sBAAa,EAAC,CAAC,CAACC,KAAK,GAAGC,oBAAW,CAACI,UAAU,CAACF,QAAQ;EAEtF,MAAMG,oBAAoB,GAAGpB,gBAAgB,GAAG,IAAIqB,IAAI,CAACrB,gBAAgB,CAACsB,cAAc,CAAC,GAAG,IAAI;EAChG,MAAMC,sBAAsB,GAAGvB,gBAAgB,GAAG,IAAIqB,IAAI,CAACA,IAAI,CAACG,GAAG,CAAC,CAAC,CAAC,GAAGJ,oBAAoB,GAAG,KAAK;EAErG,IAAI,CAACT,YAAY,EAAE;IACjB,OAAO,IAAI;EACb;;EAEA;EACA;EACA,MAAMc,oBAAoB,GAAG;IAC3BC,cAAc,EAAEtB,aAAa;IAC7BuB,aAAa,EAAElB;EACjB,CAAC;EAED,MAAMmB,eAAe,GAAG;IACtBC,OAAO,EAAEnB,GAAG;IACZoB,aAAa,EAAEpC;EACjB,CAAC;EAED,MAAM;IAAEqC;EAAO,CAAC,GAAG,IAAAC,0BAAoB,EAAC,CAAC;EAEzC,MAAMC,QAAQ,GAAGA,CAAA,KAAM;IACrB,IAAAC,yBAAc,EAAC,uCAAuC,EAAA9D,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACjDwD,eAAe,GACfH,oBAAoB;MACvBU,YAAY,EAAE,QAAQ;MACtBC,QAAQ,EAAE,mBAAmB;MAC7BC,QAAQ,EAAE,MAAM;MAChBC,QAAQ,EAAE;IAAW,EACtB,CAAC;;IAEF;AACJ;AACA;AACA;IACI3C,UAAU,CAAC4C,KAAK,CAAClC,gBAAgB,CAAC;EACpC,CAAC;EAED,MAAMmC,sBAAsB,GAAGA,CAAA,KAAM;IACnC,IAAAN,yBAAc,EAAC,6DAA6D,EAAA9D,aAAA,CAAAA,aAAA,KACvEwD,eAAe;MAClBO,YAAY,EAAE,eAAe;MAC7BC,QAAQ,EAAE,gBAAgB;MAC1BC,QAAQ,EAAE,MAAM;MAChBC,QAAQ,EAAE;IAAW,EACtB,CAAC;EACJ,CAAC;EAED,oBACE,IAAAlF,WAAA,CAAAqF,GAAA,EAAChG,QAAA,CAAAiG,KAAK;IAACC,OAAO,EAAC,OAAO;IAAC,aAAU,KAAK;IAACC,IAAI,EAAEC,aAAO;IAACC,SAAS,EAAC,wBAAwB;IAAC,eAAY,mCAAmC;IAAAC,QAAA,eACrI,IAAA3F,WAAA,CAAA4F,IAAA;MAAKF,SAAS,EAAC,KAAK;MAAAC,QAAA,gBAClB,IAAA3F,WAAA,CAAA4F,IAAA;QAAKF,SAAS,EAAC,KAAK;QAAAC,QAAA,gBAClB,IAAA3F,WAAA,CAAAqF,GAAA;UAAI,cAAW,GAAG;UAAAM,QAAA,eAChB,IAAA3F,WAAA,CAAAqF,GAAA;YAAAM,QAAA,EAAOnD,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,yBAAyB,CAAC;UAAC,CAAO;QAAC,CACpE,CAAC,EACJ3B,sBAAsB,gBACrB,IAAAnE,WAAA,CAAA4F,IAAA;UAAKF,SAAS,EAAC,oBAAoB;UAAC,eAAY,8BAA8B;UAAAC,QAAA,GAC3EnD,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,0CAA0C,CAAC,CAAC,eACzE,IAAA9F,WAAA,CAAA4F,IAAA,EAACvG,QAAA,CAAA0G,SAAS;YACRC,WAAW,EAAEnD,YAAa;YAC1BoD,OAAO,EAAEb,sBAAsB,CAACZ,eAAe,CAAE;YACjD0B,MAAM,EAAC,QAAQ;YACf,eAAY,mCAAmC;YAAAP,QAAA,GAE9CnD,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,iCAAiC,CAAC,CAAC,eAChE,IAAA9F,WAAA,CAAAqF,GAAA;cAAAM,QAAA,EACGnD,IAAI,CAACqD,aAAa,CAAC;gBAClBM,EAAE,EAAE,kEAAkE;gBACtEC,cAAc,EAAE,cAAc;gBAC9BC,WAAW,EAAE;cACf,CAAC;YAAC,CACE,CAAC;UAAA,CACE,CAAC;QAAA,CACT,CAAC,gBAEN,IAAArG,WAAA,CAAAqF,GAAA;UAAKK,SAAS,EAAC,oBAAoB;UAAAC,QAAA,EAChCnD,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,2BAA2B,CAAC;QAAC,CACvD,CACN,eAED,IAAA9F,WAAA,CAAA4F,IAAA;UAAKF,SAAS,EAAE,IAAAY,mBAAU,EAAC,wBAAwB,EAAE;YAAE,WAAW,EAAE9C;UAAwC,CAAC,CAAE;UAAAmC,QAAA,gBAC7G,IAAA3F,WAAA,CAAAqF,GAAA;YAAKkB,KAAK,EAAE;cAAEC,KAAK,EAAE;YAAO,CAAE;YAACd,SAAS,EAAC,WAAW;YAAAC,QAAA,eAClD,IAAA3F,WAAA,CAAAqF,GAAA;cACEoB,GAAG,EAAEjE,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,+BAA+B,CAAC,CAAE;cACnEY,GAAG,EAAEC,+BAAkB;cACvBjB,SAAS,EAAC,mCAAmC;cAC7Ca,KAAK,EAAE;gBAAEK,MAAM,EAAE,OAAO;gBAAElD,KAAK,EAAE;cAAQ;YAAE,CAC5C;UAAC,CACC,CAAC,eAEN,IAAA1D,WAAA,CAAA4F,IAAA;YAAKF,SAAS,EAAC,gBAAgB;YAAAC,QAAA,gBAC7B,IAAA3F,WAAA,CAAAqF,GAAA;cAAKK,SAAS,EAAC,MAAM;cAAAC,QAAA,EAClBnD,IAAI,CAACqD,aAAa,CAACC,iBAAQ,CAAC,8BAA8B,CAAC;YAAC,CAC1D,CAAC,eACN,IAAA9F,WAAA,CAAA4F,IAAA;cAAIF,SAAS,EAAC,iBAAiB;cAAAC,QAAA,gBAC7B,IAAA3F,WAAA,CAAAqF,GAAA,EAACtF,cAAA,CAAA8G,kBAAkB,IAAE,CAAC,eACtB,IAAA7G,WAAA,CAAAqF,GAAA,EAACtF,cAAA,CAAA+G,kBAAkB,IAAE,CAAC,eACtB,IAAA9G,WAAA,CAAAqF,GAAA,EAACtF,cAAA,CAAAgH,gBAAgB,IAAE,CAAC,eACpB,IAAA/G,WAAA,CAAAqF,GAAA,EAACtF,cAAA,CAAAiH,oBAAoB,IAAE,CAAC;YAAA,CACtB,CAAC;UAAA,CACF,CAAC;QAAA,CACH,CAAC;MAAA,CACH,CAAC,EAEL7C,sBAAsB,GACnB,IAAI,gBAEJ,IAAAnE,WAAA,CAAAqF,GAAA;QACEK,SAAS,EACP,IAAAY,mBAAU,EAAC,4EAA4E,EAAE;UACvF,kBAAkB,EAAE,CAAC9C,uCAAuC;UAAE,UAAU,EAAEA;QAC5E,CAAC,CACF;QAAAmC,QAAA,eAED,IAAA3F,WAAA,CAAAqF,GAAA,EAAC3F,cAAA,CAAAuH,aAAa;UACZnE,KAAK,EAAEA,KAAM;UACbmD,OAAO,EAAEA,CAAA,KAAMpB,QAAQ,CAACL,eAAe,EAAEG,MAAM,CAAE;UACjDpB,YAAY,EAAEA,YAAa;UAC3BgD,KAAK,EAAE;YAAEW,UAAU,EAAEpD,sBAAsB,GAAG,QAAQ,GAAG;UAAK,CAAE;UAChE,eAAY;QAAgB,CAC7B;MAAC,CACC,CACN;IAAA,CACA;EAAC,CACD,CAAC;AAEZ,CAAC;AACD1B,uBAAuB,CAAC+E,SAAS,GAAG;EAClC7E,QAAQ,EAAE8E,kBAAS,CAACC,MAAM,CAACC,UAAU;EACrC;EACA/E,UAAU,EAAE6E,kBAAS,CAACG,MAAM,CAACD;AAC/B,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAtH,OAAA,GAEa,IAAAuH,wBAAc,EAACtF,uBAAuB,CAAC","ignoreList":[]}
|
|
@@ -9,10 +9,10 @@ var _ExperimentalLockPaywall = _interopRequireDefault(require("./ExperimentalLoc
|
|
|
9
9
|
var _optimizely = _interopRequireDefault(require("../optimizely"));
|
|
10
10
|
var _optimizely2 = require("../data/optimizely");
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
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; }
|
|
14
14
|
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
|
-
function _defineProperty(
|
|
15
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
16
16
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17
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); }
|
|
18
18
|
const LockPaywall = props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_optimizely.default, _objectSpread({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LockPaywall.js","names":["_DefaultLockPaywall","_interopRequireDefault","require","_ExperimentalLockPaywall","_optimizely","_optimizely2","_jsxRuntime","
|
|
1
|
+
{"version":3,"file":"LockPaywall.js","names":["_DefaultLockPaywall","_interopRequireDefault","require","_ExperimentalLockPaywall","_optimizely","_optimizely2","_jsxRuntime","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LockPaywall","props","jsx","defaultComponent","DefaultLockPaywall","experimentalComponent","ExperimentalLockPaywall","defaultVariationKey","experimentKey","OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT","KEY","_default","exports"],"sources":["../../src/paywall/LockPaywall.jsx"],"sourcesContent":["import DefaultLockPaywall from './DefaultLockPaywall';\nimport ExperimentalLockPaywall from './ExperimentalLockPaywall';\nimport OptimizelyExperiment from '../optimizely';\nimport { OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT } from '../data/optimizely';\n\nconst LockPaywall = (props) => (\n <OptimizelyExperiment\n defaultComponent={DefaultLockPaywall}\n experimentalComponent={ExperimentalLockPaywall}\n defaultVariationKey=\"off\"\n experimentKey={OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT.KEY}\n {...props}\n />\n);\n\nexport default LockPaywall;\n"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAAuE,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAEvE,MAAM8B,WAAW,GAAIC,KAAK,iBACxB,IAAArC,WAAA,CAAAsC,GAAA,EAACxC,WAAA,CAAAK,OAAoB,EAAAa,aAAA;EACnBuB,gBAAgB,EAAEC,2BAAmB;EACrCC,qBAAqB,EAAEC,gCAAwB;EAC/CC,mBAAmB,EAAC,KAAK;EACzBC,aAAa,EAAEC,8CAAiC,CAACC;AAAI,GACjDT,KAAK,CACV,CACF;AAAC,IAAAU,QAAA,GAAAC,OAAA,CAAA7C,OAAA,GAEaiC,WAAW","ignoreList":[]}
|
package/dist/paywall/index.js
CHANGED
|
@@ -5,6 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _LockPaywall = _interopRequireDefault(require("./LockPaywall"));
|
|
8
|
-
function _interopRequireDefault(
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
var _default = exports.default = _LockPaywall.default;
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_LockPaywall","_interopRequireDefault","require","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_LockPaywall","_interopRequireDefault","require","e","__esModule","default","_default","exports","LockPaywall"],"sources":["../../src/paywall/index.jsx"],"sourcesContent":["import LockPaywall from './LockPaywall';\n\nexport default LockPaywall;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAwC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEzBG,oBAAW","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
9
|
+
var _paragon = require("@openedx/paragon");
|
|
10
|
+
var _icons = require("@openedx/paragon/icons");
|
|
11
|
+
var _SectionTitle = _interopRequireDefault(require("@src/course-home/outline-tab/section-outline/SectionTitle.tsx"));
|
|
12
|
+
var _messages = _interopRequireDefault(require("./messages"));
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
/* eslint import/no-unresolved: 0 */
|
|
16
|
+
|
|
17
|
+
const SectionHeader = _ref => {
|
|
18
|
+
let {
|
|
19
|
+
complete,
|
|
20
|
+
hasLockedContent,
|
|
21
|
+
hideFromTOC,
|
|
22
|
+
title,
|
|
23
|
+
upgradeUrl
|
|
24
|
+
} = _ref;
|
|
25
|
+
const intl = (0, _i18n.useIntl)();
|
|
26
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.ActionRow, {
|
|
27
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionTitle.default, {
|
|
28
|
+
complete,
|
|
29
|
+
hideFromTOC,
|
|
30
|
+
title
|
|
31
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow.Spacer, {}), hasLockedContent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Chip, {
|
|
32
|
+
onClick: () => window.open(upgradeUrl),
|
|
33
|
+
iconBefore: _icons.Locked,
|
|
34
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
35
|
+
className: "small font-weight-normal",
|
|
36
|
+
children: intl.formatMessage(_messages.default.sectionChipText)
|
|
37
|
+
})
|
|
38
|
+
})]
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
SectionHeader.propTypes = {
|
|
42
|
+
complete: _propTypes.default.bool.isRequired,
|
|
43
|
+
hasLockedContent: _propTypes.default.bool.isRequired,
|
|
44
|
+
hideFromTOC: _propTypes.default.bool.isRequired,
|
|
45
|
+
title: _propTypes.default.string.isRequired,
|
|
46
|
+
upgradeUrl: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]).isRequired
|
|
47
|
+
};
|
|
48
|
+
var _default = exports.default = SectionHeader;
|
|
49
|
+
//# sourceMappingURL=SectionHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionHeader.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_SectionTitle","_messages","_jsxRuntime","e","__esModule","default","SectionHeader","_ref","complete","hasLockedContent","hideFromTOC","title","upgradeUrl","intl","useIntl","jsxs","ActionRow","children","jsx","Spacer","Chip","onClick","window","open","iconBefore","Locked","className","formatMessage","messages","sectionChipText","propTypes","PropTypes","bool","isRequired","string","oneOfType","_default","exports"],"sources":["../../src/section-outline/SectionHeader.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { ActionRow, Chip } from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\n\nimport SectionTitle from '@src/course-home/outline-tab/section-outline/SectionTitle.tsx';\nimport messages from './messages';\n\nconst SectionHeader = ({\n complete,\n hasLockedContent,\n hideFromTOC,\n title,\n upgradeUrl,\n}) => {\n const intl = useIntl();\n\n return (\n <ActionRow>\n <SectionTitle {...{ complete, hideFromTOC, title }} />\n <ActionRow.Spacer />\n {hasLockedContent && (\n <Chip\n onClick={() => window.open(upgradeUrl)}\n iconBefore={Locked}\n >\n <span className=\"small font-weight-normal\">\n {intl.formatMessage(messages.sectionChipText)}\n </span>\n </Chip>\n )}\n </ActionRow>\n );\n};\n\nSectionHeader.propTypes = {\n complete: PropTypes.bool.isRequired,\n hasLockedContent: PropTypes.bool.isRequired,\n hideFromTOC: PropTypes.bool.isRequired,\n title: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).isRequired,\n};\n\nexport default SectionHeader;\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,aAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AAAkC,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAPlC;;AASA,MAAMG,aAAa,GAAGC,IAAA,IAMhB;EAAA,IANiB;IACrBC,QAAQ;IACRC,gBAAgB;IAChBC,WAAW;IACXC,KAAK;IACLC;EACF,CAAC,GAAAL,IAAA;EACC,MAAMM,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EAEtB,oBACE,IAAAZ,WAAA,CAAAa,IAAA,EAACjB,QAAA,CAAAkB,SAAS;IAAAC,QAAA,gBACR,IAAAf,WAAA,CAAAgB,GAAA,EAAClB,aAAA,CAAAK,OAAY;MAAOG,QAAQ;MAAEE,WAAW;MAAEC;IAAK,CAAK,CAAC,eACtD,IAAAT,WAAA,CAAAgB,GAAA,EAACpB,QAAA,CAAAkB,SAAS,CAACG,MAAM,IAAE,CAAC,EACnBV,gBAAgB,iBACf,IAAAP,WAAA,CAAAgB,GAAA,EAACpB,QAAA,CAAAsB,IAAI;MACHC,OAAO,EAAEA,CAAA,KAAMC,MAAM,CAACC,IAAI,CAACX,UAAU,CAAE;MACvCY,UAAU,EAAEC,aAAO;MAAAR,QAAA,eAEnB,IAAAf,WAAA,CAAAgB,GAAA;QAAMQ,SAAS,EAAC,0BAA0B;QAAAT,QAAA,EACvCJ,IAAI,CAACc,aAAa,CAACC,iBAAQ,CAACC,eAAe;MAAC,CACzC;IAAC,CACH,CACP;EAAA,CACQ,CAAC;AAEhB,CAAC;AAEDvB,aAAa,CAACwB,SAAS,GAAG;EACxBtB,QAAQ,EAAEuB,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCxB,gBAAgB,EAAEsB,kBAAS,CAACC,IAAI,CAACC,UAAU;EAC3CvB,WAAW,EAAEqB,kBAAS,CAACC,IAAI,CAACC,UAAU;EACtCtB,KAAK,EAAEoB,kBAAS,CAACG,MAAM,CAACD,UAAU;EAClCrB,UAAU,EAAEmB,kBAAS,CAACI,SAAS,CAAC,CAACJ,kBAAS,CAACG,MAAM,EAAEH,kBAAS,CAACC,IAAI,CAAC,CAAC,CAACC;AACtE,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAhC,OAAA,GAEaC,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
10
|
+
var _paragon = require("@openedx/paragon");
|
|
11
|
+
var _icons = require("@openedx/paragon/icons");
|
|
12
|
+
var _modelStore = require("@src/generic/model-store");
|
|
13
|
+
var _messages = _interopRequireDefault(require("@src/generic/messages"));
|
|
14
|
+
var _messages2 = _interopRequireDefault(require("@src/course-home/outline-tab/messages.ts"));
|
|
15
|
+
var _SectionHeader = _interopRequireDefault(require("./SectionHeader"));
|
|
16
|
+
var _SequenceLink = _interopRequireDefault(require("./SequenceLink"));
|
|
17
|
+
var _messages3 = _interopRequireDefault(require("./messages"));
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
|
+
/* eslint import/no-unresolved: 0 */
|
|
21
|
+
|
|
22
|
+
const SectionItem = _ref => {
|
|
23
|
+
let {
|
|
24
|
+
courseId,
|
|
25
|
+
defaultOpen,
|
|
26
|
+
expand,
|
|
27
|
+
fetchSectionHasLockedContent,
|
|
28
|
+
section,
|
|
29
|
+
sectionId,
|
|
30
|
+
sequenceData,
|
|
31
|
+
upgradeUrl
|
|
32
|
+
} = _ref;
|
|
33
|
+
const intl = (0, _i18n.useIntl)();
|
|
34
|
+
const {
|
|
35
|
+
complete,
|
|
36
|
+
sequenceIds,
|
|
37
|
+
title,
|
|
38
|
+
hideFromTOC
|
|
39
|
+
} = section;
|
|
40
|
+
const {
|
|
41
|
+
courseBlocks: {
|
|
42
|
+
sequences
|
|
43
|
+
}
|
|
44
|
+
} = (0, _modelStore.useModel)('outline', courseId);
|
|
45
|
+
const [open, setOpen] = (0, _react.useState)(defaultOpen);
|
|
46
|
+
const hasLockedContent = fetchSectionHasLockedContent(sectionId);
|
|
47
|
+
(0, _react.useEffect)(() => {
|
|
48
|
+
setOpen(expand);
|
|
49
|
+
}, [expand]);
|
|
50
|
+
(0, _react.useEffect)(() => {
|
|
51
|
+
setOpen(defaultOpen);
|
|
52
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
53
|
+
}, []);
|
|
54
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
|
|
55
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Collapsible, {
|
|
56
|
+
className: "mb-2",
|
|
57
|
+
styling: "card-lg",
|
|
58
|
+
title: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionHeader.default, {
|
|
59
|
+
complete,
|
|
60
|
+
hasLockedContent,
|
|
61
|
+
hideFromTOC,
|
|
62
|
+
title,
|
|
63
|
+
upgradeUrl
|
|
64
|
+
}),
|
|
65
|
+
open: open,
|
|
66
|
+
onToggle: () => setOpen(!open),
|
|
67
|
+
iconWhenClosed: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButton, {
|
|
68
|
+
alt: intl.formatMessage(_messages2.default.openSection),
|
|
69
|
+
iconAs: _icons.Plus,
|
|
70
|
+
onClick: () => setOpen(true),
|
|
71
|
+
size: "sm"
|
|
72
|
+
}),
|
|
73
|
+
iconWhenOpen: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButton, {
|
|
74
|
+
alt: intl.formatMessage(_messages.default.close),
|
|
75
|
+
iconAs: _icons.Minus,
|
|
76
|
+
onClick: () => {
|
|
77
|
+
setOpen(false);
|
|
78
|
+
},
|
|
79
|
+
size: "sm"
|
|
80
|
+
}),
|
|
81
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("ol", {
|
|
82
|
+
className: "list-unstyled my-n3 ml-n2.5 mr-n4",
|
|
83
|
+
children: sequenceIds.map((sequenceId, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_SequenceLink.default, {
|
|
84
|
+
id: sequenceId,
|
|
85
|
+
courseId: courseId,
|
|
86
|
+
sequence: sequences[sequenceId],
|
|
87
|
+
first: index === 0,
|
|
88
|
+
sequenceData: sequenceData
|
|
89
|
+
}, sequenceId))
|
|
90
|
+
})
|
|
91
|
+
}), open && hasLockedContent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow, {
|
|
92
|
+
className: "mr-3 mt-2.5 mb-3",
|
|
93
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
|
|
94
|
+
as: "a",
|
|
95
|
+
href: upgradeUrl,
|
|
96
|
+
children: intl.formatMessage(_messages3.default.sectionUpgradeButtonText)
|
|
97
|
+
})
|
|
98
|
+
})]
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
SectionItem.propTypes = {
|
|
102
|
+
courseId: _propTypes.default.string.isRequired,
|
|
103
|
+
defaultOpen: _propTypes.default.bool.isRequired,
|
|
104
|
+
expand: _propTypes.default.bool.isRequired,
|
|
105
|
+
fetchSectionHasLockedContent: _propTypes.default.func.isRequired,
|
|
106
|
+
section: _propTypes.default.shape().isRequired,
|
|
107
|
+
sectionId: _propTypes.default.string.isRequired,
|
|
108
|
+
sequenceData: _propTypes.default.shape().isRequired,
|
|
109
|
+
upgradeUrl: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]).isRequired
|
|
110
|
+
};
|
|
111
|
+
var _default = exports.default = SectionItem;
|
|
112
|
+
//# sourceMappingURL=SectionItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionItem.js","names":["_react","require","_propTypes","_interopRequireDefault","_i18n","_paragon","_icons","_modelStore","_messages","_messages2","_SectionHeader","_SequenceLink","_messages3","_jsxRuntime","e","__esModule","default","SectionItem","_ref","courseId","defaultOpen","expand","fetchSectionHasLockedContent","section","sectionId","sequenceData","upgradeUrl","intl","useIntl","complete","sequenceIds","title","hideFromTOC","courseBlocks","sequences","useModel","open","setOpen","useState","hasLockedContent","useEffect","jsxs","children","jsx","Collapsible","className","styling","onToggle","iconWhenClosed","IconButton","alt","formatMessage","outlineMessages","openSection","iconAs","Plus","onClick","size","iconWhenOpen","genericMessages","close","Minus","map","sequenceId","index","id","sequence","first","ActionRow","Button","as","href","messages","sectionUpgradeButtonText","propTypes","PropTypes","string","isRequired","bool","func","shape","oneOfType","_default","exports"],"sources":["../../src/section-outline/SectionItem.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n Collapsible,\n IconButton,\n} from '@openedx/paragon';\nimport { Minus, Plus } from '@openedx/paragon/icons';\n\nimport { useModel } from '@src/generic/model-store';\nimport genericMessages from '@src/generic/messages';\nimport outlineMessages from '@src/course-home/outline-tab/messages.ts';\nimport SectionHeader from './SectionHeader';\nimport SequenceLink from './SequenceLink';\nimport messages from './messages';\n\nconst SectionItem = ({\n courseId,\n defaultOpen,\n expand,\n fetchSectionHasLockedContent,\n section,\n sectionId,\n sequenceData,\n upgradeUrl,\n}) => {\n const intl = useIntl();\n\n const {\n complete,\n sequenceIds,\n title,\n hideFromTOC,\n } = section;\n const {\n courseBlocks: {\n sequences,\n },\n } = useModel('outline', courseId);\n\n const [open, setOpen] = useState(defaultOpen);\n const hasLockedContent = fetchSectionHasLockedContent(sectionId);\n\n useEffect(() => {\n setOpen(expand);\n }, [expand]);\n\n useEffect(() => {\n setOpen(defaultOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <li>\n <Collapsible\n className=\"mb-2\"\n styling=\"card-lg\"\n title={(\n <SectionHeader\n {...{\n complete,\n hasLockedContent,\n hideFromTOC,\n title,\n upgradeUrl,\n }}\n />\n )}\n open={open}\n onToggle={() => setOpen(!open)}\n iconWhenClosed={(\n <IconButton\n alt={intl.formatMessage(outlineMessages.openSection)}\n iconAs={Plus}\n onClick={() => setOpen(true)}\n size=\"sm\"\n />\n )}\n iconWhenOpen={(\n <IconButton\n alt={intl.formatMessage(genericMessages.close)}\n iconAs={Minus}\n onClick={() => { setOpen(false); }}\n size=\"sm\"\n />\n )}\n >\n <ol className=\"list-unstyled my-n3 ml-n2.5 mr-n4\">\n {sequenceIds.map((sequenceId, index) => (\n <SequenceLink\n key={sequenceId}\n id={sequenceId}\n courseId={courseId}\n sequence={sequences[sequenceId]}\n first={index === 0}\n sequenceData={sequenceData}\n />\n ))}\n </ol>\n </Collapsible>\n {open && hasLockedContent && (\n <ActionRow className=\"mr-3 mt-2.5 mb-3\">\n <Button as=\"a\" href={upgradeUrl}>\n {intl.formatMessage(messages.sectionUpgradeButtonText)}\n </Button>\n </ActionRow>\n )}\n </li>\n );\n};\n\nSectionItem.propTypes = {\n courseId: PropTypes.string.isRequired,\n defaultOpen: PropTypes.bool.isRequired,\n expand: PropTypes.bool.isRequired,\n fetchSectionHasLockedContent: PropTypes.func.isRequired,\n section: PropTypes.shape().isRequired,\n sectionId: PropTypes.string.isRequired,\n sequenceData: PropTypes.shape().isRequired,\n upgradeUrl: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).isRequired,\n};\n\nexport default SectionItem;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _reactDom = require("react-dom");
|
|
10
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
11
|
+
var _hooks = require("@src/data/hooks");
|
|
12
|
+
var _modelStore = require("@src/generic/model-store");
|
|
13
|
+
var _PageLoading = _interopRequireDefault(require("@src/generic/PageLoading"));
|
|
14
|
+
var _messages = _interopRequireDefault(require("@src/tab-page/messages"));
|
|
15
|
+
var _SectionItem = _interopRequireDefault(require("./SectionItem"));
|
|
16
|
+
var _UpgradeBanner = _interopRequireDefault(require("./UpgradeBanner"));
|
|
17
|
+
var _hooks2 = _interopRequireDefault(require("./hooks"));
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
|
+
/* eslint import/no-unresolved: 0 */
|
|
21
|
+
|
|
22
|
+
const SectionList = _ref => {
|
|
23
|
+
let {
|
|
24
|
+
expandAll,
|
|
25
|
+
sections,
|
|
26
|
+
sectionIds
|
|
27
|
+
} = _ref;
|
|
28
|
+
const intl = (0, _i18n.useIntl)();
|
|
29
|
+
const portalRef = (0, _react.useRef)(null);
|
|
30
|
+
const courseId = (0, _hooks.useContextId)();
|
|
31
|
+
const {
|
|
32
|
+
verifiedMode
|
|
33
|
+
} = (0, _modelStore.useModel)('courseHomeMeta', courseId);
|
|
34
|
+
const {
|
|
35
|
+
datesBannerInfo
|
|
36
|
+
} = (0, _modelStore.useModel)('outline', courseId);
|
|
37
|
+
const isFBE = !!datesBannerInfo?.contentTypeGatingEnabled;
|
|
38
|
+
const upgradeUrl = isFBE && verifiedMode?.upgradeUrl;
|
|
39
|
+
const {
|
|
40
|
+
courseHasLockedContent,
|
|
41
|
+
fetchSectionHasLockedContent,
|
|
42
|
+
isLoading,
|
|
43
|
+
sequenceData
|
|
44
|
+
} = (0, _hooks2.default)({
|
|
45
|
+
sections,
|
|
46
|
+
isFBE
|
|
47
|
+
});
|
|
48
|
+
const hasLockedContent = upgradeUrl && courseHasLockedContent;
|
|
49
|
+
(0, _react.useEffect)(() => {
|
|
50
|
+
const referenceNode = document.getElementById('expand-button-row');
|
|
51
|
+
const portalNode = document.createElement('div');
|
|
52
|
+
referenceNode.parentNode.insertBefore(portalNode, referenceNode);
|
|
53
|
+
portalRef.current = portalNode;
|
|
54
|
+
}, []);
|
|
55
|
+
if (isLoading) {
|
|
56
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PageLoading.default, {
|
|
57
|
+
srMessage: intl.formatMessage(_messages.default.loading)
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
61
|
+
children: [hasLockedContent && portalRef.current && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_UpgradeBanner.default, {
|
|
62
|
+
upgradeUrl
|
|
63
|
+
}), portalRef.current), /*#__PURE__*/(0, _jsxRuntime.jsx)("ol", {
|
|
64
|
+
id: "courseHome-outline",
|
|
65
|
+
className: "list-unstyled",
|
|
66
|
+
children: sectionIds.map(sectionId => /*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionItem.default, {
|
|
67
|
+
sectionId: sectionId,
|
|
68
|
+
defaultOpen: sections[sectionId].resumeBlock,
|
|
69
|
+
expand: expandAll,
|
|
70
|
+
section: sections[sectionId],
|
|
71
|
+
upgradeUrl: upgradeUrl,
|
|
72
|
+
courseId: courseId,
|
|
73
|
+
sequenceData: sequenceData,
|
|
74
|
+
fetchSectionHasLockedContent: fetchSectionHasLockedContent
|
|
75
|
+
}, sectionId))
|
|
76
|
+
})]
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
SectionList.propTypes = {
|
|
80
|
+
expandAll: _propTypes.default.bool.isRequired,
|
|
81
|
+
sections: _propTypes.default.shape().isRequired,
|
|
82
|
+
sectionIds: _propTypes.default.arrayOf(_propTypes.default.string).isRequired
|
|
83
|
+
};
|
|
84
|
+
var _default = exports.default = SectionList;
|
|
85
|
+
//# sourceMappingURL=SectionList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionList.js","names":["_propTypes","_interopRequireDefault","require","_react","_reactDom","_i18n","_hooks","_modelStore","_PageLoading","_messages","_SectionItem","_UpgradeBanner","_hooks2","_jsxRuntime","e","__esModule","default","SectionList","_ref","expandAll","sections","sectionIds","intl","useIntl","portalRef","useRef","courseId","useContextId","verifiedMode","useModel","datesBannerInfo","isFBE","contentTypeGatingEnabled","upgradeUrl","courseHasLockedContent","fetchSectionHasLockedContent","isLoading","sequenceData","useSequenceContext","hasLockedContent","useEffect","referenceNode","document","getElementById","portalNode","createElement","parentNode","insertBefore","current","jsx","srMessage","formatMessage","genericMessages","loading","jsxs","Fragment","children","createPortal","id","className","map","sectionId","defaultOpen","resumeBlock","expand","section","propTypes","PropTypes","bool","isRequired","shape","arrayOf","string","_default","exports"],"sources":["../../src/section-outline/SectionList.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport PropTypes from 'prop-types';\nimport { useRef, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { useContextId } from '@src/data/hooks';\nimport { useModel } from '@src/generic/model-store';\nimport PageLoading from '@src/generic/PageLoading';\nimport genericMessages from '@src/tab-page/messages';\nimport SectionItem from './SectionItem';\nimport UpgradeBanner from './UpgradeBanner';\nimport useSequenceContext from './hooks';\n\nconst SectionList = ({ expandAll, sections, sectionIds }) => {\n const intl = useIntl();\n const portalRef = useRef(null);\n const courseId = useContextId();\n\n const {\n verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n const {\n datesBannerInfo,\n } = useModel('outline', courseId);\n\n const isFBE = !!datesBannerInfo?.contentTypeGatingEnabled;\n const upgradeUrl = isFBE && verifiedMode?.upgradeUrl;\n\n const {\n courseHasLockedContent,\n fetchSectionHasLockedContent,\n isLoading,\n sequenceData,\n } = useSequenceContext({ sections, isFBE });\n\n const hasLockedContent = upgradeUrl && courseHasLockedContent;\n\n useEffect(() => {\n const referenceNode = document.getElementById('expand-button-row');\n const portalNode = document.createElement('div');\n referenceNode.parentNode.insertBefore(portalNode, referenceNode);\n portalRef.current = portalNode;\n }, []);\n\n if (isLoading) {\n return (\n <PageLoading srMessage={intl.formatMessage(genericMessages.loading)} />\n );\n }\n\n return (\n <>\n {hasLockedContent && portalRef.current && createPortal(\n <UpgradeBanner {...{ upgradeUrl }} />,\n portalRef.current,\n )}\n <ol id=\"courseHome-outline\" className=\"list-unstyled\">\n {sectionIds.map((sectionId) => (\n <SectionItem\n key={sectionId}\n sectionId={sectionId}\n defaultOpen={sections[sectionId].resumeBlock}\n expand={expandAll}\n section={sections[sectionId]}\n upgradeUrl={upgradeUrl}\n courseId={courseId}\n sequenceData={sequenceData}\n fetchSectionHasLockedContent={fetchSectionHasLockedContent}\n />\n ))}\n </ol>\n </>\n );\n};\n\nSectionList.propTypes = {\n expandAll: PropTypes.bool.isRequired,\n sections: PropTypes.shape().isRequired,\n sectionIds: PropTypes.arrayOf(PropTypes.string).isRequired,\n};\n\nexport default SectionList;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
9
|
+
var _paragon = require("@openedx/paragon");
|
|
10
|
+
var _icons = require("@openedx/paragon/icons");
|
|
11
|
+
var _SequenceTitle = _interopRequireDefault(require("@src/course-home/outline-tab/section-outline/SequenceTitle"));
|
|
12
|
+
var _messages = _interopRequireDefault(require("./messages"));
|
|
13
|
+
var _constants = require("./constants");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
/* eslint import/no-unresolved: 0 */
|
|
17
|
+
|
|
18
|
+
const SequenceHeader = _ref => {
|
|
19
|
+
let {
|
|
20
|
+
complete,
|
|
21
|
+
id,
|
|
22
|
+
lockedStatus,
|
|
23
|
+
sequence,
|
|
24
|
+
showLink,
|
|
25
|
+
title
|
|
26
|
+
} = _ref;
|
|
27
|
+
const intl = (0, _i18n.useIntl)();
|
|
28
|
+
const isLocked = lockedStatus !== _constants.UNLOCKED;
|
|
29
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
|
|
30
|
+
direction: "horizontal",
|
|
31
|
+
gap: 2,
|
|
32
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SequenceTitle.default, {
|
|
33
|
+
complete,
|
|
34
|
+
showLink,
|
|
35
|
+
title,
|
|
36
|
+
sequence,
|
|
37
|
+
id
|
|
38
|
+
}), isLocked && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButtonWithTooltip, {
|
|
39
|
+
tooltipPlacement: "top",
|
|
40
|
+
src: _icons.Locked,
|
|
41
|
+
tooltipContent: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
42
|
+
children: intl.formatMessage(_messages.default.sequenceTooltipContent, {
|
|
43
|
+
lockedStatus
|
|
44
|
+
})
|
|
45
|
+
}),
|
|
46
|
+
variant: "primary",
|
|
47
|
+
iconAs: _paragon.Icon
|
|
48
|
+
})]
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
SequenceHeader.propTypes = {
|
|
52
|
+
complete: _propTypes.default.bool.isRequired,
|
|
53
|
+
id: _propTypes.default.string.isRequired,
|
|
54
|
+
lockedStatus: _propTypes.default.string.isRequired,
|
|
55
|
+
sequence: _propTypes.default.shape().isRequired,
|
|
56
|
+
showLink: _propTypes.default.bool.isRequired,
|
|
57
|
+
title: _propTypes.default.string.isRequired
|
|
58
|
+
};
|
|
59
|
+
var _default = exports.default = SequenceHeader;
|
|
60
|
+
//# sourceMappingURL=SequenceHeader.js.map
|