@edx/frontend-plugin-advertisements 1.7.0 → 1.9.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/__factories__/courseHomeMeta.factory.js +1 -1
- package/dist/data/__factories__/courseHomeMeta.factory.js.map +1 -1
- package/dist/data/{api.js → discovery_api.js} +1 -1
- package/dist/data/discovery_api.js.map +1 -0
- package/dist/data/index.js +12 -0
- package/dist/data/index.js.map +1 -1
- package/dist/data/lms_api.js +36 -0
- package/dist/data/lms_api.js.map +1 -0
- package/dist/data/optimizely.js +13 -1
- package/dist/data/optimizely.js.map +1 -1
- package/dist/index.js +7 -12
- package/dist/index.js.map +1 -1
- package/dist/mocks/optimizely/index.js +1 -1
- package/dist/mocks/optimizely/index.js.map +1 -1
- package/dist/paywall/ExperimentalLockPaywall.js +174 -0
- package/dist/paywall/ExperimentalLockPaywall.js.map +1 -0
- package/dist/paywall/LockPaywall.js +25 -0
- package/dist/paywall/LockPaywall.js.map +1 -0
- package/dist/paywall/index.js +3 -7
- package/dist/paywall/index.js.map +1 -1
- package/dist/paywall/utils.js +27 -0
- package/dist/paywall/utils.js.map +1 -0
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js +4 -1
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/UpgradeNotification.js +25 -0
- package/dist/upgrade-notification/UpgradeNotification.js.map +1 -0
- package/dist/upgrade-notification/certificate-preview/CertificatePreview.js +169 -0
- package/dist/upgrade-notification/certificate-preview/CertificatePreview.js.map +1 -0
- package/dist/upgrade-notification/certificate-preview/CertificatePreview.scss +104 -0
- package/dist/upgrade-notification/certificate-preview/Signatory.js +39 -0
- package/dist/upgrade-notification/certificate-preview/Signatory.js.map +1 -0
- package/dist/upgrade-notification/certificate-preview/assets/signatory-placeholder.png +0 -0
- package/dist/upgrade-notification/certificate-preview/index.js +10 -0
- package/dist/upgrade-notification/certificate-preview/index.js.map +1 -0
- package/dist/upgrade-notification/index.js +3 -14
- package/dist/upgrade-notification/index.js.map +1 -1
- package/dist/upgrade-notification/partner-branding/PartnerBranding.js +2 -2
- package/dist/upgrade-notification/partner-branding/PartnerBranding.js.map +1 -1
- package/package.json +5 -4
- package/dist/data/api.js.map +0 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _rosie = require("rosie");
|
|
4
4
|
// eslint-disable-line import/no-extraneous-dependencies
|
|
5
5
|
|
|
6
|
-
_rosie.Factory.define('courseHomeMeta').option('host', 'http://localhost:18000').attr('org', 'edX').attr('userTimezone', null).attr('verifiedMode', ['host'], host => ({
|
|
6
|
+
_rosie.Factory.define('courseHomeMeta').option('host', 'http://localhost:18000').attr('number', 'DemoX').attr('title', 'Demonstration Course').attr('org', 'edX').attr('userTimezone', null).attr('verifiedMode', ['host'], host => ({
|
|
7
7
|
access_expiration_date: '2050-01-01T12:00:00',
|
|
8
8
|
currency: 'USD',
|
|
9
9
|
currencySymbol: '$',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"courseHomeMeta.factory.js","names":["_rosie","require","Factory","define","option","attr","host","access_expiration_date","currency","currencySymbol","price","sku","upgradeUrl"],"sources":["../../../src/data/__factories__/courseHomeMeta.factory.js"],"sourcesContent":["import { Factory } from 'rosie'; // eslint-disable-line import/no-extraneous-dependencies\n\nFactory.define('courseHomeMeta')\n .option('host', 'http://localhost:18000')\n .attr('org', 'edX')\n .attr('userTimezone', null)\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"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAiC;;AAEjCC,cAAO,CAACC,MAAM,CAAC,gBAAgB,CAAC,CAC7BC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CACxCC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAClBA,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAC1BA,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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"courseHomeMeta.factory.js","names":["_rosie","require","Factory","define","option","attr","host","access_expiration_date","currency","currencySymbol","price","sku","upgradeUrl"],"sources":["../../../src/data/__factories__/courseHomeMeta.factory.js"],"sourcesContent":["import { Factory } from 'rosie'; // eslint-disable-line import/no-extraneous-dependencies\n\nFactory.define('courseHomeMeta')\n .option('host', 'http://localhost:18000')\n .attr('number', 'DemoX')\n .attr('title', 'Demonstration Course')\n .attr('org', 'edX')\n .attr('userTimezone', null)\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"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAiC;;AAEjCC,cAAO,CAACC,MAAM,CAAC,gBAAgB,CAAC,CAC7BC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CACxCC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CACvBA,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CACrCA,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAClBA,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAC1BA,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","ignoreList":[]}
|
|
@@ -24,4 +24,4 @@ async function fetchOrg(courseRunId) {
|
|
|
24
24
|
} = await (0, _auth.getAuthenticatedHttpClient)().get(coursesUrl.href);
|
|
25
25
|
return data.owners[0]; // only retrieve first org related to course
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=
|
|
27
|
+
//# sourceMappingURL=discovery_api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery_api.js","names":["_frontendPlatform","require","_auth","fetchCourseId","courseRunId","discoveryApiUrl","getConfig","DISCOVERY_API_BASE_URL","courseRunsUrl","URL","data","getAuthenticatedHttpClient","get","href","course","fetchOrg","courseId","coursesUrl","owners"],"sources":["../../src/data/discovery_api.js"],"sourcesContent":["import { getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';\n\nexport async function fetchCourseId(courseRunId) {\n const discoveryApiUrl = getConfig().DISCOVERY_API_BASE_URL;\n const courseRunsUrl = new URL(`${discoveryApiUrl}/api/v1/course_runs/${courseRunId}`);\n const { data } = await getAuthenticatedHttpClient().get(courseRunsUrl.href);\n return data.course;\n}\n\nexport async function fetchOrg(courseRunId) {\n const courseId = await fetchCourseId(courseRunId);\n const discoveryApiUrl = getConfig().DISCOVERY_API_BASE_URL;\n const coursesUrl = new URL(`${discoveryApiUrl}/api/v1/courses/${courseId}`);\n const { data } = await getAuthenticatedHttpClient().get(coursesUrl.href);\n return data.owners[0]; // only retrieve first org related to course\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEO,eAAeE,aAAaA,CAACC,WAAW,EAAE;EAC/C,MAAMC,eAAe,GAAG,IAAAC,2BAAS,EAAC,CAAC,CAACC,sBAAsB;EAC1D,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAAE,GAAEJ,eAAgB,uBAAsBD,WAAY,EAAC,CAAC;EACrF,MAAM;IAAEM;EAAK,CAAC,GAAG,MAAM,IAAAC,gCAA0B,EAAC,CAAC,CAACC,GAAG,CAACJ,aAAa,CAACK,IAAI,CAAC;EAC3E,OAAOH,IAAI,CAACI,MAAM;AACpB;AAEO,eAAeC,QAAQA,CAACX,WAAW,EAAE;EAC1C,MAAMY,QAAQ,GAAG,MAAMb,aAAa,CAACC,WAAW,CAAC;EACjD,MAAMC,eAAe,GAAG,IAAAC,2BAAS,EAAC,CAAC,CAACC,sBAAsB;EAC1D,MAAMU,UAAU,GAAG,IAAIR,GAAG,CAAE,GAAEJ,eAAgB,mBAAkBW,QAAS,EAAC,CAAC;EAC3E,MAAM;IAAEN;EAAK,CAAC,GAAG,MAAM,IAAAC,gCAA0B,EAAC,CAAC,CAACC,GAAG,CAACK,UAAU,CAACJ,IAAI,CAAC;EACxE,OAAOH,IAAI,CAACQ,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB","ignoreList":[]}
|
package/dist/data/index.js
CHANGED
|
@@ -9,12 +9,24 @@ Object.defineProperty(exports, "OPTIMIZELY_VTR_EXPERIMENT_KEY", {
|
|
|
9
9
|
return _optimizely.OPTIMIZELY_VTR_EXPERIMENT_KEY;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _optimizely.OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
12
18
|
Object.defineProperty(exports, "optimizely", {
|
|
13
19
|
enumerable: true,
|
|
14
20
|
get: function () {
|
|
15
21
|
return _optimizely.optimizely;
|
|
16
22
|
}
|
|
17
23
|
});
|
|
24
|
+
Object.defineProperty(exports, "trackDeclineUpgradeClickOptimizely", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _optimizely.trackDeclineUpgradeClickOptimizely;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
18
30
|
Object.defineProperty(exports, "trackUpgradeClickOptimizely", {
|
|
19
31
|
enumerable: true,
|
|
20
32
|
get: function () {
|
package/dist/data/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_optimizely","require"],"sources":["../../src/data/index.jsx"],"sourcesContent":["export {
|
|
1
|
+
{"version":3,"file":"index.js","names":["_optimizely","require"],"sources":["../../src/data/index.jsx"],"sourcesContent":["export {\n optimizely,\n OPTIMIZELY_VTR_EXPERIMENT_KEY,\n OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS,\n trackUpgradeClickOptimizely,\n trackDeclineUpgradeClickOptimizely,\n} from './optimizely';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.fetchOrg = fetchOrg;
|
|
7
|
+
exports.fetchVerifiedName = fetchVerifiedName;
|
|
8
|
+
var _frontendPlatform = require("@edx/frontend-platform");
|
|
9
|
+
var _auth = require("@edx/frontend-platform/auth");
|
|
10
|
+
async function fetchOrg(org) {
|
|
11
|
+
const LmsApiUrl = (0, _frontendPlatform.getConfig)().LMS_BASE_URL;
|
|
12
|
+
const orgUrl = new URL(`${LmsApiUrl}/api/organizations/v0/organizations/${org}/`);
|
|
13
|
+
let data;
|
|
14
|
+
try {
|
|
15
|
+
({
|
|
16
|
+
data
|
|
17
|
+
} = await (0, _auth.getAuthenticatedHttpClient)().get(orgUrl.href));
|
|
18
|
+
} catch (error) {
|
|
19
|
+
data = null;
|
|
20
|
+
}
|
|
21
|
+
return (0, _frontendPlatform.camelCaseObject)(data);
|
|
22
|
+
}
|
|
23
|
+
async function fetchVerifiedName() {
|
|
24
|
+
const LmsApiUrl = (0, _frontendPlatform.getConfig)().LMS_BASE_URL;
|
|
25
|
+
const verifiedNameUrl = new URL(`${LmsApiUrl}/api/edx_name_affirmation/v1/verified_name`);
|
|
26
|
+
let data;
|
|
27
|
+
try {
|
|
28
|
+
({
|
|
29
|
+
data
|
|
30
|
+
} = await (0, _auth.getAuthenticatedHttpClient)().get(verifiedNameUrl.href));
|
|
31
|
+
} catch (error) {
|
|
32
|
+
data = null;
|
|
33
|
+
}
|
|
34
|
+
return (0, _frontendPlatform.camelCaseObject)(data);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=lms_api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lms_api.js","names":["_frontendPlatform","require","_auth","fetchOrg","org","LmsApiUrl","getConfig","LMS_BASE_URL","orgUrl","URL","data","getAuthenticatedHttpClient","get","href","error","camelCaseObject","fetchVerifiedName","verifiedNameUrl"],"sources":["../../src/data/lms_api.js"],"sourcesContent":["import { getConfig, camelCaseObject } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';\n\nexport async function fetchOrg(org) {\n const LmsApiUrl = getConfig().LMS_BASE_URL;\n const orgUrl = new URL(`${LmsApiUrl}/api/organizations/v0/organizations/${org}/`);\n\n let data;\n try {\n ({ data } = await getAuthenticatedHttpClient().get(orgUrl.href));\n } catch (error) {\n data = null;\n }\n return camelCaseObject(data);\n}\n\nexport async function fetchVerifiedName() {\n const LmsApiUrl = getConfig().LMS_BASE_URL;\n const verifiedNameUrl = new URL(`${LmsApiUrl}/api/edx_name_affirmation/v1/verified_name`);\n let data;\n try {\n ({ data } = await getAuthenticatedHttpClient().get(verifiedNameUrl.href));\n } catch (error) {\n data = null;\n }\n return camelCaseObject(data);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEO,eAAeE,QAAQA,CAACC,GAAG,EAAE;EAClC,MAAMC,SAAS,GAAG,IAAAC,2BAAS,EAAC,CAAC,CAACC,YAAY;EAC1C,MAAMC,MAAM,GAAG,IAAIC,GAAG,CAAE,GAAEJ,SAAU,uCAAsCD,GAAI,GAAE,CAAC;EAEjF,IAAIM,IAAI;EACR,IAAI;IACF,CAAC;MAAEA;IAAK,CAAC,GAAG,MAAM,IAAAC,gCAA0B,EAAC,CAAC,CAACC,GAAG,CAACJ,MAAM,CAACK,IAAI,CAAC;EACjE,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdJ,IAAI,GAAG,IAAI;EACb;EACA,OAAO,IAAAK,iCAAe,EAACL,IAAI,CAAC;AAC9B;AAEO,eAAeM,iBAAiBA,CAAA,EAAG;EACxC,MAAMX,SAAS,GAAG,IAAAC,2BAAS,EAAC,CAAC,CAACC,YAAY;EAC1C,MAAMU,eAAe,GAAG,IAAIR,GAAG,CAAE,GAAEJ,SAAU,4CAA2C,CAAC;EACzF,IAAIK,IAAI;EACR,IAAI;IACF,CAAC;MAAEA;IAAK,CAAC,GAAG,MAAM,IAAAC,gCAA0B,EAAC,CAAC,CAACC,GAAG,CAACK,eAAe,CAACJ,IAAI,CAAC;EAC1E,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdJ,IAAI,GAAG,IAAI;EACb;EACA,OAAO,IAAAK,iCAAe,EAACL,IAAI,CAAC;AAC9B","ignoreList":[]}
|
package/dist/data/optimizely.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.trackUpgradeClickOptimizely = exports.optimizely = exports.OPTIMIZELY_VTR_EXPERIMENT_KEY = void 0;
|
|
6
|
+
exports.trackUpgradeClickOptimizely = exports.trackDeclineUpgradeClickOptimizely = exports.optimizely = exports.OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS = exports.OPTIMIZELY_VTR_EXPERIMENT_KEY = void 0;
|
|
7
7
|
var _reactSdk = require("@optimizely/react-sdk");
|
|
8
8
|
var _frontendPlatform = require("@edx/frontend-platform");
|
|
9
9
|
const OPTIMIZELY_SDK_KEY = (0, _frontendPlatform.getConfig)().OPTIMIZELY_FEATURE_EXPERIMENTATION_SDK_KEY;
|
|
@@ -11,9 +11,21 @@ const optimizely = exports.optimizely = (0, _reactSdk.createInstance)({
|
|
|
11
11
|
sdkKey: OPTIMIZELY_SDK_KEY
|
|
12
12
|
});
|
|
13
13
|
const OPTIMIZELY_VTR_EXPERIMENT_KEY = exports.OPTIMIZELY_VTR_EXPERIMENT_KEY = 'verified_take_rate_experimentation';
|
|
14
|
+
const OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS = exports.OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS = {
|
|
15
|
+
WHY_NOT_SURVEY: 'why_not_survey',
|
|
16
|
+
CERTIFICATE_PREVIEW: 'certificate_preview',
|
|
17
|
+
PARTNER_BRANDING: 'partner_branding',
|
|
18
|
+
CONTROL: 'control',
|
|
19
|
+
OFF: 'off'
|
|
20
|
+
};
|
|
14
21
|
const trackUpgradeClickOptimizely = function (userId) {
|
|
15
22
|
let userAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
16
23
|
optimizely.track('upgrade_button_click', userId, userAttributes);
|
|
17
24
|
};
|
|
18
25
|
exports.trackUpgradeClickOptimizely = trackUpgradeClickOptimizely;
|
|
26
|
+
const trackDeclineUpgradeClickOptimizely = function (userId) {
|
|
27
|
+
let userAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
28
|
+
optimizely.track('decline_upgrade_button_click', userId, userAttributes);
|
|
29
|
+
};
|
|
30
|
+
exports.trackDeclineUpgradeClickOptimizely = trackDeclineUpgradeClickOptimizely;
|
|
19
31
|
//# sourceMappingURL=optimizely.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimizely.js","names":["_reactSdk","require","_frontendPlatform","OPTIMIZELY_SDK_KEY","getConfig","OPTIMIZELY_FEATURE_EXPERIMENTATION_SDK_KEY","optimizely","exports","createInstance","sdkKey","OPTIMIZELY_VTR_EXPERIMENT_KEY","trackUpgradeClickOptimizely","userId","userAttributes","arguments","length","undefined","track"],"sources":["../../src/data/optimizely.js"],"sourcesContent":["import { createInstance } from '@optimizely/react-sdk';\n\nimport { getConfig } from '@edx/frontend-platform';\n\nconst OPTIMIZELY_SDK_KEY = getConfig().OPTIMIZELY_FEATURE_EXPERIMENTATION_SDK_KEY;\n\nconst optimizely = createInstance({\n sdkKey: OPTIMIZELY_SDK_KEY,\n});\n\nconst OPTIMIZELY_VTR_EXPERIMENT_KEY = 'verified_take_rate_experimentation';\n\nconst trackUpgradeClickOptimizely = (userId, userAttributes = {}) => {\n optimizely.track('upgrade_button_click', userId, userAttributes);\n};\n\
|
|
1
|
+
{"version":3,"file":"optimizely.js","names":["_reactSdk","require","_frontendPlatform","OPTIMIZELY_SDK_KEY","getConfig","OPTIMIZELY_FEATURE_EXPERIMENTATION_SDK_KEY","optimizely","exports","createInstance","sdkKey","OPTIMIZELY_VTR_EXPERIMENT_KEY","OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS","WHY_NOT_SURVEY","CERTIFICATE_PREVIEW","PARTNER_BRANDING","CONTROL","OFF","trackUpgradeClickOptimizely","userId","userAttributes","arguments","length","undefined","track","trackDeclineUpgradeClickOptimizely"],"sources":["../../src/data/optimizely.js"],"sourcesContent":["import { createInstance } from '@optimizely/react-sdk';\n\nimport { getConfig } from '@edx/frontend-platform';\n\nconst OPTIMIZELY_SDK_KEY = getConfig().OPTIMIZELY_FEATURE_EXPERIMENTATION_SDK_KEY;\n\nconst optimizely = createInstance({\n sdkKey: OPTIMIZELY_SDK_KEY,\n});\n\nconst OPTIMIZELY_VTR_EXPERIMENT_KEY = 'verified_take_rate_experimentation';\n\nconst OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS = {\n WHY_NOT_SURVEY: 'why_not_survey',\n CERTIFICATE_PREVIEW: 'certificate_preview',\n PARTNER_BRANDING: 'partner_branding',\n CONTROL: 'control',\n OFF: 'off',\n};\n\nconst trackUpgradeClickOptimizely = (userId, userAttributes = {}) => {\n optimizely.track('upgrade_button_click', userId, userAttributes);\n};\n\nconst trackDeclineUpgradeClickOptimizely = (userId, userAttributes = {}) => {\n optimizely.track('decline_upgrade_button_click', userId, userAttributes);\n};\n\nexport {\n optimizely,\n OPTIMIZELY_VTR_EXPERIMENT_KEY,\n OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS,\n trackUpgradeClickOptimizely,\n trackDeclineUpgradeClickOptimizely,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,MAAME,kBAAkB,GAAG,IAAAC,2BAAS,EAAC,CAAC,CAACC,0CAA0C;AAEjF,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,IAAAE,wBAAc,EAAC;EAChCC,MAAM,EAAEN;AACV,CAAC,CAAC;AAEF,MAAMO,6BAA6B,GAAAH,OAAA,CAAAG,6BAAA,GAAG,oCAAoC;AAE1E,MAAMC,wCAAwC,GAAAJ,OAAA,CAAAI,wCAAA,GAAG;EAC/CC,cAAc,EAAE,gBAAgB;EAChCC,mBAAmB,EAAE,qBAAqB;EAC1CC,gBAAgB,EAAE,kBAAkB;EACpCC,OAAO,EAAE,SAAS;EAClBC,GAAG,EAAE;AACP,CAAC;AAED,MAAMC,2BAA2B,GAAG,SAAAA,CAACC,MAAM,EAA0B;EAAA,IAAxBC,cAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC9Dd,UAAU,CAACiB,KAAK,CAAC,sBAAsB,EAAEL,MAAM,EAAEC,cAAc,CAAC;AAClE,CAAC;AAACZ,OAAA,CAAAU,2BAAA,GAAAA,2BAAA;AAEF,MAAMO,kCAAkC,GAAG,SAAAA,CAACN,MAAM,EAA0B;EAAA,IAAxBC,cAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACrEd,UAAU,CAACiB,KAAK,CAAC,8BAA8B,EAAEL,MAAM,EAAEC,cAAc,CAAC;AAC1E,CAAC;AAACZ,OAAA,CAAAiB,kCAAA,GAAAA,kCAAA","ignoreList":[]}
|
package/dist/index.js
CHANGED
|
@@ -3,24 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "LockPaywall", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return _paywall.
|
|
9
|
+
return _paywall.default;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "UpgradeNotification", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return _upgradeNotification.
|
|
15
|
+
return _upgradeNotification.default;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return _upgradeNotification.ExperimentalUpgradeNotification;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
var _upgradeNotification = require("./upgrade-notification");
|
|
25
|
-
var _paywall = require("./paywall");
|
|
18
|
+
var _upgradeNotification = _interopRequireDefault(require("./upgrade-notification"));
|
|
19
|
+
var _paywall = _interopRequireDefault(require("./paywall"));
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_upgradeNotification","require","_paywall"],"sources":["../src/index.jsx"],"sourcesContent":["
|
|
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":[]}
|
|
@@ -8,7 +8,7 @@ exports.useDecision = exports.createInstance = exports.OptimizelyProvider = void
|
|
|
8
8
|
/* eslint-disable react/prop-types */
|
|
9
9
|
|
|
10
10
|
const useDecision = experimentKey => [{
|
|
11
|
-
enabled:
|
|
11
|
+
enabled: true,
|
|
12
12
|
variationKey: 'fill me in'
|
|
13
13
|
}];
|
|
14
14
|
exports.useDecision = useDecision;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useDecision","experimentKey","enabled","variationKey","exports","OptimizelyProvider","_ref","optimizely","user","children","createInstance","args"],"sources":["../../../src/mocks/optimizely/index.jsx"],"sourcesContent":["/* eslint-disable no-unused-vars */\n/* eslint-disable react/prop-types */\n\nconst useDecision = (experimentKey) => (\n [{ enabled:
|
|
1
|
+
{"version":3,"file":"index.js","names":["useDecision","experimentKey","enabled","variationKey","exports","OptimizelyProvider","_ref","optimizely","user","children","createInstance","args"],"sources":["../../../src/mocks/optimizely/index.jsx"],"sourcesContent":["/* eslint-disable no-unused-vars */\n/* eslint-disable react/prop-types */\n\nconst useDecision = (experimentKey) => (\n [{ enabled: true, variationKey: 'fill me in' }]\n);\n\nconst OptimizelyProvider = ({ optimizely, user, children = null }) => children;\n\nconst createInstance = (args) => (null);\n\nexport { createInstance, useDecision, OptimizelyProvider };\n"],"mappings":";;;;;;AAAA;AACA;;AAEA,MAAMA,WAAW,GAAIC,aAAa,IAChC,CAAC;EAAEC,OAAO,EAAE,IAAI;EAAEC,YAAY,EAAE;AAAa,CAAC,CAC/C;AAACC,OAAA,CAAAJ,WAAA,GAAAA,WAAA;AAEF,MAAMK,kBAAkB,GAAGC,IAAA;EAAA,IAAC;IAAEC,UAAU;IAAEC,IAAI;IAAEC,QAAQ,GAAG;EAAK,CAAC,GAAAH,IAAA;EAAA,OAAKG,QAAQ;AAAA;AAACL,OAAA,CAAAC,kBAAA,GAAAA,kBAAA;AAE/E,MAAMK,cAAc,GAAIC,IAAI,IAAM,IAAK;AAACP,OAAA,CAAAM,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -0,0 +1,174 @@
|
|
|
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 _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _analytics = require("@edx/frontend-platform/analytics");
|
|
11
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
12
|
+
var _paragon = require("@openedx/paragon");
|
|
13
|
+
var _icons = require("@openedx/paragon/icons");
|
|
14
|
+
var _messages = _interopRequireDefault(require("@src/courseware/course/sequence/lock-paywall/messages"));
|
|
15
|
+
var _edX_locked_certificate = _interopRequireDefault(require("@src/generic/assets/edX_locked_certificate.png"));
|
|
16
|
+
var _modelStore = require("@src/generic/model-store");
|
|
17
|
+
var _upgradeButton = require("@src/generic/upgrade-button");
|
|
18
|
+
var _UpsellBullets = require("@src/generic/upsell-bullets/UpsellBullets");
|
|
19
|
+
var _reactSdk = require("@optimizely/react-sdk");
|
|
20
|
+
var _auth = require("@edx/frontend-platform/auth");
|
|
21
|
+
var _data = require("../data");
|
|
22
|
+
var _utils = _interopRequireDefault(require("./utils"));
|
|
23
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
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; }
|
|
26
|
+
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; }
|
|
27
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
28
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
29
|
+
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 */
|
|
30
|
+
const ExperimentalLockPaywall = _ref => {
|
|
31
|
+
let {
|
|
32
|
+
intl,
|
|
33
|
+
courseId
|
|
34
|
+
} = _ref;
|
|
35
|
+
const course = (0, _modelStore.useModel)('coursewareMeta', courseId);
|
|
36
|
+
const {
|
|
37
|
+
accessExpiration,
|
|
38
|
+
marketingUrl,
|
|
39
|
+
offer
|
|
40
|
+
} = course;
|
|
41
|
+
const {
|
|
42
|
+
org,
|
|
43
|
+
verifiedMode
|
|
44
|
+
} = (0, _modelStore.useModel)('courseHomeMeta', courseId);
|
|
45
|
+
const [decision] = (0, _reactSdk.useDecision)(_data.OPTIMIZELY_VTR_EXPERIMENT_KEY);
|
|
46
|
+
const {
|
|
47
|
+
variationKey
|
|
48
|
+
} = decision;
|
|
49
|
+
|
|
50
|
+
// the following variables are set and used for resposive layout to work with
|
|
51
|
+
// whether the NotificationTray is open or not and if there's an offer with longer text
|
|
52
|
+
const shouldDisplayGatedContentTwoColumnsHalf = (0, _paragon.useWindowSize)().width <= _paragon.breakpoints.large.minWidth;
|
|
53
|
+
const shouldWrapTextOnButton = (0, _paragon.useWindowSize)().width > _paragon.breakpoints.extraSmall.minWidth;
|
|
54
|
+
const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;
|
|
55
|
+
const pastExpirationDeadline = accessExpiration ? new Date(Date.now()) > accessExpirationDate : false;
|
|
56
|
+
if (!verifiedMode) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
const eventProperties = {
|
|
60
|
+
org_key: org,
|
|
61
|
+
courserun_key: courseId,
|
|
62
|
+
experiment_key: _data.OPTIMIZELY_VTR_EXPERIMENT_KEY,
|
|
63
|
+
variation_key: variationKey
|
|
64
|
+
};
|
|
65
|
+
const {
|
|
66
|
+
userId
|
|
67
|
+
} = (0, _auth.getAuthenticatedUser)();
|
|
68
|
+
const logClick = () => {
|
|
69
|
+
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upsell_links_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
70
|
+
linkCategory: '(none)',
|
|
71
|
+
linkName: 'in_course_upgrade_experimental',
|
|
72
|
+
linkType: 'link',
|
|
73
|
+
pageName: 'in_course'
|
|
74
|
+
}));
|
|
75
|
+
(0, _data.trackUpgradeClickOptimizely)(userId.toString());
|
|
76
|
+
};
|
|
77
|
+
const logClickPastExpiration = () => {
|
|
78
|
+
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.gated_content.past_expiration.link_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
79
|
+
linkCategory: 'gated_content',
|
|
80
|
+
linkName: 'course_details_experimental',
|
|
81
|
+
linkType: 'link',
|
|
82
|
+
pageName: 'in_course'
|
|
83
|
+
}));
|
|
84
|
+
};
|
|
85
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Alert, {
|
|
86
|
+
variant: "light",
|
|
87
|
+
"aria-live": "off",
|
|
88
|
+
icon: _icons.Locked,
|
|
89
|
+
className: "lock-paywall-container",
|
|
90
|
+
"data-testId": "lock-paywall-lock-paywall-test-id",
|
|
91
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
92
|
+
className: "row",
|
|
93
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
94
|
+
className: "col",
|
|
95
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("h4", {
|
|
96
|
+
"aria-level": "3",
|
|
97
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
98
|
+
children: intl.formatMessage(_messages.default['learn.lockPaywall.title'])
|
|
99
|
+
})
|
|
100
|
+
}), pastExpirationDeadline ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
101
|
+
className: "mb-2 upgrade-intro",
|
|
102
|
+
"data-testId": "lock-paywall-past-expiration",
|
|
103
|
+
children: [intl.formatMessage(_messages.default['learn.lockPaywall.content.pastExpiration']), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Hyperlink, {
|
|
104
|
+
destination: marketingUrl,
|
|
105
|
+
onClick: logClickPastExpiration,
|
|
106
|
+
target: "_blank",
|
|
107
|
+
"data-testId": "lock-paywall-past-expiration-link",
|
|
108
|
+
children: intl.formatMessage(_messages.default['learn.lockPaywall.courseDetails'])
|
|
109
|
+
})]
|
|
110
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
111
|
+
className: "mb-2 upgrade-intro",
|
|
112
|
+
children: intl.formatMessage(_messages.default['learn.lockPaywall.content'])
|
|
113
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
114
|
+
className: (0, _classnames.default)('d-inline-flex flex-row', {
|
|
115
|
+
'flex-wrap': shouldDisplayGatedContentTwoColumnsHalf
|
|
116
|
+
}),
|
|
117
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
118
|
+
style: {
|
|
119
|
+
float: 'left'
|
|
120
|
+
},
|
|
121
|
+
className: "mr-3 mb-2",
|
|
122
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
|
|
123
|
+
alt: intl.formatMessage(_messages.default['learn.lockPaywall.example.alt']),
|
|
124
|
+
src: _edX_locked_certificate.default,
|
|
125
|
+
className: "border-0 certificate-image-banner",
|
|
126
|
+
style: {
|
|
127
|
+
height: '128px',
|
|
128
|
+
width: '175px'
|
|
129
|
+
}
|
|
130
|
+
})
|
|
131
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
132
|
+
className: "mw-xs list-div",
|
|
133
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
134
|
+
className: "mb-2",
|
|
135
|
+
children: intl.formatMessage(_messages.default['learn.lockPaywall.list.intro'])
|
|
136
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", {
|
|
137
|
+
className: "fa-ul ml-4 pl-2",
|
|
138
|
+
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, {})]
|
|
139
|
+
})]
|
|
140
|
+
})]
|
|
141
|
+
})]
|
|
142
|
+
}), pastExpirationDeadline ? null : /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
143
|
+
className: (0, _classnames.default)('d-flex flex-column align-items-md-center text-right justify-content-center', {
|
|
144
|
+
'col-md-4 mx-md-3': !shouldDisplayGatedContentTwoColumnsHalf,
|
|
145
|
+
'col-md-6': shouldDisplayGatedContentTwoColumnsHalf
|
|
146
|
+
}),
|
|
147
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
|
|
148
|
+
offer: offer,
|
|
149
|
+
onClick: logClick(),
|
|
150
|
+
verifiedMode: verifiedMode,
|
|
151
|
+
style: {
|
|
152
|
+
whiteSpace: shouldWrapTextOnButton ? 'nowrap' : null
|
|
153
|
+
},
|
|
154
|
+
"data-testId": "upgrade-button"
|
|
155
|
+
}), variationKey === _data.OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS.WHY_NOT_SURVEY ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Hyperlink, {
|
|
156
|
+
variant: "outline-primary",
|
|
157
|
+
className: "mt-3",
|
|
158
|
+
onClick: () => {
|
|
159
|
+
(0, _data.trackDeclineUpgradeClickOptimizely)(userId.toString());
|
|
160
|
+
(0, _utils.default)();
|
|
161
|
+
},
|
|
162
|
+
"data-testId": "lock-paywall-upgrade-decline-button",
|
|
163
|
+
children: "Take our 1-question survey"
|
|
164
|
+
}) : null]
|
|
165
|
+
})]
|
|
166
|
+
})
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
ExperimentalLockPaywall.propTypes = {
|
|
170
|
+
intl: _i18n.intlShape.isRequired,
|
|
171
|
+
courseId: _propTypes.default.string.isRequired
|
|
172
|
+
};
|
|
173
|
+
var _default = exports.default = (0, _i18n.injectIntl)(ExperimentalLockPaywall);
|
|
174
|
+
//# sourceMappingURL=ExperimentalLockPaywall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExperimentalLockPaywall.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_analytics","_i18n","_paragon","_icons","_messages","_edX_locked_certificate","_modelStore","_upgradeButton","_UpsellBullets","_reactSdk","_auth","_data","_utils","_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","decision","useDecision","OPTIMIZELY_VTR_EXPERIMENT_KEY","variationKey","shouldDisplayGatedContentTwoColumnsHalf","useWindowSize","width","breakpoints","large","minWidth","shouldWrapTextOnButton","extraSmall","accessExpirationDate","Date","expirationDate","pastExpirationDeadline","now","eventProperties","org_key","courserun_key","experiment_key","variation_key","userId","getAuthenticatedUser","logClick","sendTrackEvent","linkCategory","linkName","linkType","pageName","trackUpgradeClickOptimizely","toString","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","OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS","WHY_NOT_SURVEY","trackDeclineUpgradeClickOptimizely","showSurvey","propTypes","intlShape","isRequired","PropTypes","string","_default","exports","injectIntl"],"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 { sendTrackEvent } from '@edx/frontend-platform/analytics';\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 { useDecision } from '@optimizely/react-sdk';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport {\n OPTIMIZELY_VTR_EXPERIMENT_KEY,\n OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS,\n trackUpgradeClickOptimizely,\n trackDeclineUpgradeClickOptimizely,\n} from '../data';\nimport showSurvey from './utils';\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 const [decision] = useDecision(OPTIMIZELY_VTR_EXPERIMENT_KEY);\n const { variationKey } = decision;\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 experiment_key: OPTIMIZELY_VTR_EXPERIMENT_KEY,\n variation_key: variationKey,\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_experimental',\n linkType: 'link',\n pageName: 'in_course',\n });\n trackUpgradeClickOptimizely(userId.toString());\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_experimental',\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} 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()}\n verifiedMode={verifiedMode}\n style={{ whiteSpace: shouldWrapTextOnButton ? 'nowrap' : null }}\n data-testId=\"upgrade-button\"\n />\n {variationKey === OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS.WHY_NOT_SURVEY\n ? (\n <Hyperlink\n variant=\"outline-primary\"\n className=\"mt-3\"\n onClick={() => {\n trackDeclineUpgradeClickOptimizely(userId.toString());\n showSurvey();\n }}\n data-testId=\"lock-paywall-upgrade-decline-button\"\n >\n Take our 1-question survey\n </Hyperlink>\n )\n : null}\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(ExperimentalLockPaywall);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _DefaultLockPaywall = _interopRequireDefault(require("./DefaultLockPaywall"));
|
|
8
|
+
var _ExperimentalLockPaywall = _interopRequireDefault(require("./ExperimentalLockPaywall"));
|
|
9
|
+
var _Optimizely = _interopRequireDefault(require("../optimizely/Optimizely"));
|
|
10
|
+
var _optimizely = require("../data/optimizely");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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
|
+
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(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18
|
+
const LockPaywall = props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Optimizely.default, _objectSpread({
|
|
19
|
+
defaultComponent: _DefaultLockPaywall.default,
|
|
20
|
+
experimentalComponent: _ExperimentalLockPaywall.default,
|
|
21
|
+
defaultVariationKey: "off",
|
|
22
|
+
experimentKey: _optimizely.OPTIMIZELY_VTR_EXPERIMENT_KEY
|
|
23
|
+
}, props));
|
|
24
|
+
var _default = exports.default = LockPaywall;
|
|
25
|
+
//# sourceMappingURL=LockPaywall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LockPaywall.js","names":["_DefaultLockPaywall","_interopRequireDefault","require","_ExperimentalLockPaywall","_Optimizely","_optimizely","_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","LockPaywall","props","jsx","defaultComponent","DefaultLockPaywall","experimentalComponent","ExperimentalLockPaywall","defaultVariationKey","experimentKey","OPTIMIZELY_VTR_EXPERIMENT_KEY","_default","exports"],"sources":["../../src/paywall/LockPaywall.jsx"],"sourcesContent":["import DefaultLockPaywall from './DefaultLockPaywall';\nimport ExperimentalLockPaywall from './ExperimentalLockPaywall';\nimport OptimizelyExperiment from '../optimizely/Optimizely';\nimport { OPTIMIZELY_VTR_EXPERIMENT_KEY } from '../data/optimizely';\n\nconst LockPaywall = (props) => (\n <OptimizelyExperiment\n defaultComponent={DefaultLockPaywall}\n experimentalComponent={ExperimentalLockPaywall}\n defaultVariationKey=\"off\"\n experimentKey={OPTIMIZELY_VTR_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,WAAA,GAAAH,OAAA;AAAmE,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,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;AAEnE,MAAM+B,WAAW,GAAIC,KAAK,iBACxB,IAAAvC,WAAA,CAAAwC,GAAA,EAAC1C,WAAA,CAAAK,OAAoB,EAAAc,aAAA;EACnBwB,gBAAgB,EAAEC,2BAAmB;EACrCC,qBAAqB,EAAEC,gCAAwB;EAC/CC,mBAAmB,EAAC,KAAK;EACzBC,aAAa,EAAEC;AAA8B,GACzCR,KAAK,CACV,CACF;AAAC,IAAAS,QAAA,GAAAC,OAAA,CAAA9C,OAAA,GAEamC,WAAW","ignoreList":[]}
|
package/dist/paywall/index.js
CHANGED
|
@@ -3,12 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
get: function () {
|
|
9
|
-
return _DefaultLockPaywall.default;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
var _DefaultLockPaywall = _interopRequireDefault(require("./DefaultLockPaywall"));
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _LockPaywall = _interopRequireDefault(require("./LockPaywall"));
|
|
13
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
var _default = exports.default = _LockPaywall.default;
|
|
14
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_LockPaywall","_interopRequireDefault","require","obj","__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,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEzBG,oBAAW","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
/* eslint-disable func-names,no-unused-expressions,no-param-reassign,no-sequences */
|
|
8
|
+
|
|
9
|
+
// This function contains the script provided by SuveryMonkey,
|
|
10
|
+
// Which is used to embed the survey in the html upon this function
|
|
11
|
+
// being called onClick of the "Take our survey" button
|
|
12
|
+
// For more info: https://help.surveymonkey.com/en/surveymonkey/send/website-collector/
|
|
13
|
+
const showSurvey = () => {
|
|
14
|
+
// SurveyMonkey uses a cookie to determine if the user has already taken the survey.
|
|
15
|
+
// This causes the survey to only ever appear once per user, even when the pages is refreshed.
|
|
16
|
+
// We reset its value here to allow the survey to appear more than once.
|
|
17
|
+
// There may be a better way to do this but this is the simplest workaround we found.
|
|
18
|
+
document.cookie = 'smcx_455874507_last_shown_at=';
|
|
19
|
+
(function (t, e, s, o) {
|
|
20
|
+
let n;
|
|
21
|
+
let c;
|
|
22
|
+
let l;
|
|
23
|
+
t.SMCX = t.SMCX || [], e.getElementById(o) || (n = e.getElementsByTagName(s), c = n[n.length - 1], l = e.createElement(s), l.type = 'text/javascript', l.async = !0, l.id = o, l.src = 'https://widget.surveymonkey.com/collect/website/js/tRaiETqnLgj758hTBazgdxIz34JHrCL7ZtslnQemQr9Ugsg12ofPY9us6g_2FYL315.js', c.parentNode.insertBefore(l, c));
|
|
24
|
+
})(window, document, 'script', 'smcx-sdk');
|
|
25
|
+
};
|
|
26
|
+
var _default = exports.default = showSurvey;
|
|
27
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["showSurvey","document","cookie","t","e","s","o","n","c","l","SMCX","getElementById","getElementsByTagName","length","createElement","type","async","id","src","parentNode","insertBefore","window","_default","exports","default"],"sources":["../../src/paywall/utils.jsx"],"sourcesContent":["/* eslint-disable func-names,no-unused-expressions,no-param-reassign,no-sequences */\n\n// This function contains the script provided by SuveryMonkey,\n// Which is used to embed the survey in the html upon this function\n// being called onClick of the \"Take our survey\" button\n// For more info: https://help.surveymonkey.com/en/surveymonkey/send/website-collector/\nconst showSurvey = () => {\n // SurveyMonkey uses a cookie to determine if the user has already taken the survey.\n // This causes the survey to only ever appear once per user, even when the pages is refreshed.\n // We reset its value here to allow the survey to appear more than once.\n // There may be a better way to do this but this is the simplest workaround we found.\n document.cookie = 'smcx_455874507_last_shown_at=';\n (function (t, e, s, o) { let n; let c; let l; t.SMCX = t.SMCX || [], e.getElementById(o) || (n = e.getElementsByTagName(s), c = n[n.length - 1], l = e.createElement(s), l.type = 'text/javascript', l.async = !0, l.id = o, l.src = 'https://widget.surveymonkey.com/collect/website/js/tRaiETqnLgj758hTBazgdxIz34JHrCL7ZtslnQemQr9Ugsg12ofPY9us6g_2FYL315.js', c.parentNode.insertBefore(l, c)); }(window, document, 'script', 'smcx-sdk'));\n};\n\nexport default showSurvey;\n"],"mappings":";;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACA,MAAMA,UAAU,GAAGA,CAAA,KAAM;EACvB;EACA;EACA;EACA;EACAC,QAAQ,CAACC,MAAM,GAAG,+BAA+B;EAChD,WAAUC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE;IAAE,IAAIC,CAAC;IAAE,IAAIC,CAAC;IAAE,IAAIC,CAAC;IAAEN,CAAC,CAACO,IAAI,GAAGP,CAAC,CAACO,IAAI,IAAI,EAAE,EAAEN,CAAC,CAACO,cAAc,CAACL,CAAC,CAAC,KAAKC,CAAC,GAAGH,CAAC,CAACQ,oBAAoB,CAACP,CAAC,CAAC,EAAEG,CAAC,GAAGD,CAAC,CAACA,CAAC,CAACM,MAAM,GAAG,CAAC,CAAC,EAAEJ,CAAC,GAAGL,CAAC,CAACU,aAAa,CAACT,CAAC,CAAC,EAAEI,CAAC,CAACM,IAAI,GAAG,iBAAiB,EAAEN,CAAC,CAACO,KAAK,GAAG,CAAC,CAAC,EAAEP,CAAC,CAACQ,EAAE,GAAGX,CAAC,EAAEG,CAAC,CAACS,GAAG,GAAG,0HAA0H,EAAEV,CAAC,CAACW,UAAU,CAACC,YAAY,CAACX,CAAC,EAAED,CAAC,CAAC,CAAC;EAAE,CAAC,EAACa,MAAM,EAAEpB,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;AAC9a,CAAC;AAAC,IAAAqB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaxB,UAAU","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ var _UpsellBullets = require("@src/generic/upsell-bullets/UpsellBullets");
|
|
|
19
19
|
var _messages = _interopRequireDefault(require("@src/generic/messages"));
|
|
20
20
|
var _modelStore = require("@src/generic/model-store");
|
|
21
21
|
var _data = require("../data");
|
|
22
|
+
var _certificatePreview = _interopRequireDefault(require("./certificate-preview"));
|
|
22
23
|
var _PartnerBranding = _interopRequireDefault(require("./partner-branding/PartnerBranding"));
|
|
23
24
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
25
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -468,8 +469,10 @@ const ExperimentalUpgradeNotification = _ref5 => {
|
|
|
468
469
|
}),
|
|
469
470
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
470
471
|
id: "courseHome-upgradeNotification",
|
|
471
|
-
children: [variationKey ===
|
|
472
|
+
children: [variationKey === _data.OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS.PARTNER_BRANDING && enabled ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_PartnerBranding.default, {
|
|
472
473
|
courseRunId: courseId
|
|
474
|
+
}) : null, variationKey === _data.OPTIMIZELY_VTR_EXPERIMENT_VARIATION_KEYS.CERTIFICATE_PREVIEW && enabled ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_certificatePreview.default, {
|
|
475
|
+
courseId: courseId
|
|
473
476
|
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)("h2", {
|
|
474
477
|
className: (0, _classnames.default)('h5 upgrade-notification-header', {
|
|
475
478
|
'd-flex align-items-center mr-2 ml-4 my-1.5 font-size-18': !!toggleSidebar
|