@edx/frontend-plugin-advertisements 2.24.1 → 2.24.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _i18n = require("@edx/frontend-platform/i18n");
10
+ var _frontendPlatform = require("@edx/frontend-platform");
11
+ var _paragon = require("@openedx/paragon");
12
+ var _icons = require("@openedx/paragon/icons");
13
+ var _upgradeButton = require("@src/generic/upgrade-button");
14
+ var _edX_locked_certificate = _interopRequireDefault(require("@src/generic/assets/edX_locked_certificate.png"));
15
+ var _messages = _interopRequireDefault(require("./messages"));
16
+ var _UpgradeFootnote = _interopRequireDefault(require("./UpgradeFootnote"));
17
+ var _track = require("./track");
18
+ var _cohesion = require("../cohesion");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
22
+ 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; }
23
+ 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; }
24
+ 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; }
25
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
26
+ 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
27
+ // eslint-disable-line import/no-unresolved
28
+ const CourseExitUpsell = _ref => {
29
+ let {
30
+ courseId,
31
+ org,
32
+ administrator,
33
+ offer,
34
+ verifiedMode
35
+ } = _ref;
36
+ const intl = (0, _i18n.useIntl)();
37
+ const {
38
+ conversion
39
+ } = (0, _cohesion.useCohesion)(courseId);
40
+ const hasLoggedDisplay = (0, _react.useRef)(false);
41
+ (0, _react.useEffect)(() => {
42
+ if (verifiedMode && !hasLoggedDisplay.current) {
43
+ hasLoggedDisplay.current = true;
44
+ (0, _track.logUpgradeDisplayed)(org, courseId, administrator);
45
+ }
46
+ // eslint-disable-next-line react-hooks/exhaustive-deps
47
+ }, [verifiedMode, org, courseId, administrator]);
48
+ if (!verifiedMode) {
49
+ return null;
50
+ }
51
+ const handleUpgradeClick = () => {
52
+ (0, _track.logUpgradeClick)(org, courseId, administrator);
53
+ conversion('Upgraded');
54
+ };
55
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
56
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Alert, {
57
+ variant: "success",
58
+ icon: _icons.CheckCircle,
59
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
60
+ className: "row w-100 m-0",
61
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
62
+ className: "col order-1 order-md-0 pl-0 pr-0 pr-md-5",
63
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
64
+ className: "h4",
65
+ children: intl.formatMessage(_messages.default.certificateHeaderUpgradable)
66
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
67
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, {
68
+ id: "courseExitUpsell.certificateBody.upgradable.full",
69
+ defaultMessage: "It's not too late to upgrade. For {price} you will unlock access to all graded assignments in this course. Upon completion, you will receive a verified certificate which is a valuable credential to improve your job prospects and advance your career, or highlight your certificate in school applications.",
70
+ values: {
71
+ price: /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.FormattedPricing, {
72
+ inline: true,
73
+ offer: offer,
74
+ verifiedMode: verifiedMode
75
+ })
76
+ }
77
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), (0, _frontendPlatform.getConfig)().SUPPORT_URL_VERIFIED_CERTIFICATE && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Hyperlink, {
78
+ className: "text-gray-700",
79
+ style: {
80
+ textDecoration: 'underline'
81
+ },
82
+ destination: (0, _frontendPlatform.getConfig)().SUPPORT_URL_VERIFIED_CERTIFICATE,
83
+ children: intl.formatMessage(_messages.default.verifiedCertificateSupportLink)
84
+ })]
85
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
86
+ className: "mt-2",
87
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
88
+ offer: offer,
89
+ onClick: handleUpgradeClick,
90
+ verifiedMode: verifiedMode
91
+ }), offer && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
92
+ className: "ml-2 align-middle",
93
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, _objectSpread(_objectSpread({}, _messages.default.upgradeDiscountCodePrompt), {}, {
94
+ values: {
95
+ code: /*#__PURE__*/(0, _jsxRuntime.jsx)("b", {
96
+ children: offer.code
97
+ }),
98
+ percent: offer.percentage
99
+ }
100
+ }))
101
+ })]
102
+ })]
103
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
104
+ className: "col-12 order-0 col-md-3 order-md-1 w-100 mb-3 p-0 text-center",
105
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
106
+ src: _edX_locked_certificate.default,
107
+ alt: intl.formatMessage(_messages.default.certificateImage),
108
+ className: "w-100",
109
+ style: {
110
+ maxWidth: '13rem'
111
+ }
112
+ })
113
+ })]
114
+ })
115
+ }), verifiedMode.accessExpirationDate && /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpgradeFootnote.default, {
116
+ deadline: verifiedMode.accessExpirationDate,
117
+ href: verifiedMode.upgradeUrl,
118
+ org: org,
119
+ courseId: courseId,
120
+ administrator: administrator
121
+ })]
122
+ });
123
+ };
124
+ CourseExitUpsell.propTypes = {
125
+ courseId: _propTypes.default.string.isRequired,
126
+ org: _propTypes.default.string.isRequired,
127
+ administrator: _propTypes.default.bool,
128
+ offer: _propTypes.default.shape({
129
+ code: _propTypes.default.string,
130
+ percentage: _propTypes.default.number,
131
+ expirationDate: _propTypes.default.string
132
+ }),
133
+ verifiedMode: _propTypes.default.shape({
134
+ upgradeUrl: _propTypes.default.string.isRequired,
135
+ accessExpirationDate: _propTypes.default.string,
136
+ currencySymbol: _propTypes.default.string.isRequired,
137
+ price: _propTypes.default.number.isRequired,
138
+ sku: _propTypes.default.string
139
+ })
140
+ };
141
+ CourseExitUpsell.defaultProps = {
142
+ administrator: false,
143
+ offer: null,
144
+ verifiedMode: null
145
+ };
146
+ var _default = exports.default = CourseExitUpsell;
147
+ //# sourceMappingURL=CourseExitUpsell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CourseExitUpsell.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_i18n","_frontendPlatform","_paragon","_icons","_upgradeButton","_edX_locked_certificate","_messages","_UpgradeFootnote","_track","_cohesion","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","CourseExitUpsell","_ref","courseId","org","administrator","offer","verifiedMode","intl","useIntl","conversion","useCohesion","hasLoggedDisplay","useRef","useEffect","current","logUpgradeDisplayed","handleUpgradeClick","logUpgradeClick","jsxs","Fragment","children","jsx","Alert","variant","icon","CheckCircle","className","formatMessage","messages","certificateHeaderUpgradable","FormattedMessage","id","defaultMessage","values","price","FormattedPricing","inline","getConfig","SUPPORT_URL_VERIFIED_CERTIFICATE","Hyperlink","style","textDecoration","destination","verifiedCertificateSupportLink","UpgradeButton","onClick","upgradeDiscountCodePrompt","code","percent","percentage","src","certificateLocked","alt","certificateImage","maxWidth","accessExpirationDate","deadline","href","upgradeUrl","propTypes","PropTypes","string","isRequired","bool","shape","number","expirationDate","currencySymbol","sku","defaultProps","_default","exports"],"sources":["../../src/course-exit-upsell/CourseExitUpsell.jsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl, FormattedMessage } from '@edx/frontend-platform/i18n';\nimport { getConfig } from '@edx/frontend-platform';\nimport {\n Alert,\n Hyperlink,\n} from '@openedx/paragon';\nimport { CheckCircle } from '@openedx/paragon/icons';\n\nimport { FormattedPricing, UpgradeButton } from '@src/generic/upgrade-button'; // eslint-disable-line import/no-unresolved\nimport certificateLocked from '@src/generic/assets/edX_locked_certificate.png'; // eslint-disable-line import/no-unresolved\n\nimport messages from './messages';\nimport UpgradeFootnote from './UpgradeFootnote';\nimport { logUpgradeClick, logUpgradeDisplayed } from './track';\nimport { useCohesion } from '../cohesion';\n\nconst CourseExitUpsell = ({\n courseId,\n org,\n administrator,\n offer,\n verifiedMode,\n}) => {\n const intl = useIntl();\n const { conversion } = useCohesion(courseId);\n const hasLoggedDisplay = useRef(false);\n\n useEffect(() => {\n if (verifiedMode && !hasLoggedDisplay.current) {\n hasLoggedDisplay.current = true;\n logUpgradeDisplayed(org, courseId, administrator);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [verifiedMode, org, courseId, administrator]);\n\n if (!verifiedMode) {\n return null;\n }\n\n const handleUpgradeClick = () => {\n logUpgradeClick(org, courseId, administrator);\n conversion('Upgraded');\n };\n\n return (\n <>\n <Alert variant=\"success\" icon={CheckCircle}>\n <div className=\"row w-100 m-0\">\n <div className=\"col order-1 order-md-0 pl-0 pr-0 pr-md-5\">\n <div className=\"h4\">\n {intl.formatMessage(messages.certificateHeaderUpgradable)}\n </div>\n <p>\n <FormattedMessage\n id=\"courseExitUpsell.certificateBody.upgradable.full\"\n defaultMessage=\"It's not too late to upgrade. For {price} you will unlock access to all graded assignments in this course. Upon completion, you will receive a verified certificate which is a valuable credential to improve your job prospects and advance your career, or highlight your certificate in school applications.\"\n values={{\n price: (\n <FormattedPricing\n inline\n offer={offer}\n verifiedMode={verifiedMode}\n />\n ),\n }}\n />\n <br />\n {getConfig().SUPPORT_URL_VERIFIED_CERTIFICATE && (\n <Hyperlink\n className=\"text-gray-700\"\n style={{ textDecoration: 'underline' }}\n destination={getConfig().SUPPORT_URL_VERIFIED_CERTIFICATE}\n >\n {intl.formatMessage(messages.verifiedCertificateSupportLink)}\n </Hyperlink>\n )}\n </p>\n <div className=\"mt-2\">\n <UpgradeButton\n offer={offer}\n onClick={handleUpgradeClick}\n verifiedMode={verifiedMode}\n />\n {offer && (\n <span className=\"ml-2 align-middle\">\n <FormattedMessage\n {...messages.upgradeDiscountCodePrompt}\n values={{\n code: (<b>{offer.code}</b>),\n percent: offer.percentage,\n }}\n />\n </span>\n )}\n </div>\n </div>\n <div className=\"col-12 order-0 col-md-3 order-md-1 w-100 mb-3 p-0 text-center\">\n <img\n src={certificateLocked}\n alt={intl.formatMessage(messages.certificateImage)}\n className=\"w-100\"\n style={{ maxWidth: '13rem' }}\n />\n </div>\n </div>\n </Alert>\n {verifiedMode.accessExpirationDate && (\n <UpgradeFootnote\n deadline={verifiedMode.accessExpirationDate}\n href={verifiedMode.upgradeUrl}\n org={org}\n courseId={courseId}\n administrator={administrator}\n />\n )}\n </>\n );\n};\n\nCourseExitUpsell.propTypes = {\n courseId: PropTypes.string.isRequired,\n org: PropTypes.string.isRequired,\n administrator: PropTypes.bool,\n offer: PropTypes.shape({\n code: PropTypes.string,\n percentage: PropTypes.number,\n expirationDate: PropTypes.string,\n }),\n verifiedMode: PropTypes.shape({\n upgradeUrl: PropTypes.string.isRequired,\n accessExpirationDate: PropTypes.string,\n currencySymbol: PropTypes.string.isRequired,\n price: PropTypes.number.isRequired,\n sku: PropTypes.string,\n }),\n};\n\nCourseExitUpsell.defaultProps = {\n administrator: false,\n offer: null,\n verifiedMode: null,\n};\n\nexport default CourseExitUpsell;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,74 @@
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 _i18n = require("@edx/frontend-platform/i18n");
10
+ var _paragon = require("@openedx/paragon");
11
+ var _icons = require("@openedx/paragon/icons");
12
+ var _messages = _interopRequireDefault(require("./messages"));
13
+ var _track = require("./track");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ 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; }
17
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
+ 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; }
19
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
20
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
+ const UpgradeFootnote = _ref => {
22
+ let {
23
+ deadline,
24
+ href,
25
+ org,
26
+ courseId,
27
+ administrator
28
+ } = _ref;
29
+ const upgradeLink = /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Hyperlink, {
30
+ id: "course-exit-upgrade-link",
31
+ style: {
32
+ textDecoration: 'underline'
33
+ },
34
+ destination: href,
35
+ className: "text-reset",
36
+ onClick: () => (0, _track.logFootnoteClick)(org, courseId, administrator),
37
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, _objectSpread({}, _messages.default.upgradeLink))
38
+ });
39
+ const expirationDate = /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedDate, {
40
+ day: "numeric",
41
+ month: "long",
42
+ year: "numeric",
43
+ value: deadline
44
+ });
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
46
+ className: "row w-100 m-0 my-3 p-0 small",
47
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
48
+ className: "col-auto p-0 mr-2",
49
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Icon, {
50
+ src: _icons.CalendarMonth
51
+ })
52
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
53
+ className: "col p-0",
54
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_i18n.FormattedMessage, _objectSpread(_objectSpread({}, _messages.default.upgradeFootnote), {}, {
55
+ values: {
56
+ expirationDate,
57
+ upgradeLink
58
+ }
59
+ }))
60
+ })]
61
+ });
62
+ };
63
+ UpgradeFootnote.propTypes = {
64
+ deadline: _propTypes.default.string.isRequired,
65
+ href: _propTypes.default.string.isRequired,
66
+ org: _propTypes.default.string.isRequired,
67
+ courseId: _propTypes.default.string.isRequired,
68
+ administrator: _propTypes.default.bool
69
+ };
70
+ UpgradeFootnote.defaultProps = {
71
+ administrator: false
72
+ };
73
+ var _default = exports.default = UpgradeFootnote;
74
+ //# sourceMappingURL=UpgradeFootnote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpgradeFootnote.js","names":["_react","_interopRequireDefault","require","_propTypes","_i18n","_paragon","_icons","_messages","_track","_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","UpgradeFootnote","_ref","deadline","href","org","courseId","administrator","upgradeLink","jsx","Hyperlink","id","style","textDecoration","destination","className","onClick","logFootnoteClick","children","FormattedMessage","messages","expirationDate","FormattedDate","day","month","year","jsxs","Icon","src","CalendarMonth","upgradeFootnote","values","propTypes","PropTypes","string","isRequired","bool","defaultProps","_default","exports"],"sources":["../../src/course-exit-upsell/UpgradeFootnote.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedDate, FormattedMessage } from '@edx/frontend-platform/i18n';\nimport { Hyperlink, Icon } from '@openedx/paragon';\nimport { CalendarMonth } from '@openedx/paragon/icons';\n\nimport messages from './messages';\nimport { logFootnoteClick } from './track';\n\nconst UpgradeFootnote = ({\n deadline,\n href,\n org,\n courseId,\n administrator,\n}) => {\n const upgradeLink = (\n <Hyperlink\n id=\"course-exit-upgrade-link\"\n style={{ textDecoration: 'underline' }}\n destination={href}\n className=\"text-reset\"\n onClick={() => logFootnoteClick(org, courseId, administrator)}\n >\n <FormattedMessage {...messages.upgradeLink} />\n </Hyperlink>\n );\n\n const expirationDate = (\n <FormattedDate\n day=\"numeric\"\n month=\"long\"\n year=\"numeric\"\n value={deadline}\n />\n );\n\n return (\n <div className=\"row w-100 m-0 my-3 p-0 small\">\n <div className=\"col-auto p-0 mr-2\">\n <Icon src={CalendarMonth} />\n </div>\n <div className=\"col p-0\">\n <FormattedMessage\n {...messages.upgradeFootnote}\n values={{ expirationDate, upgradeLink }}\n />\n </div>\n </div>\n );\n};\n\nUpgradeFootnote.propTypes = {\n deadline: PropTypes.string.isRequired,\n href: PropTypes.string.isRequired,\n org: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n administrator: PropTypes.bool,\n};\n\nUpgradeFootnote.defaultProps = {\n administrator: false,\n};\n\nexport default UpgradeFootnote;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _CourseExitUpsell = _interopRequireDefault(require("./CourseExitUpsell"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ var _default = exports.default = _CourseExitUpsell.default;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_CourseExitUpsell","_interopRequireDefault","require","e","__esModule","default","_default","exports","CourseExitUpsell"],"sources":["../../src/course-exit-upsell/index.jsx"],"sourcesContent":["import CourseExitUpsell from './CourseExitUpsell';\n\nexport default CourseExitUpsell;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEnCG,yBAAgB","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _i18n = require("@edx/frontend-platform/i18n");
8
+ const messages = (0, _i18n.defineMessages)({
9
+ certificateHeaderUpgradable: {
10
+ id: 'courseExitUpsell.certificateHeader.upgradable',
11
+ defaultMessage: 'Upgrade to pursue a verified certificate',
12
+ description: 'Header when learner finished or passed the course but needs to upgrade to get a certificate'
13
+ },
14
+ verifiedCertificateSupportLink: {
15
+ id: 'courseExitUpsell.verifiedCertificateSupportLink',
16
+ defaultMessage: 'Learn more about verified certificates',
17
+ description: 'Anchor text for link that redirects to external help page about verified certificates'
18
+ },
19
+ upgradeButton: {
20
+ id: 'courseExitUpsell.upgradeButton',
21
+ defaultMessage: 'Upgrade now',
22
+ description: 'Button text to upgrade the course enrollment'
23
+ },
24
+ upgradeDiscountCodePrompt: {
25
+ id: 'courseExitUpsell.upgradeDiscountCodePrompt',
26
+ defaultMessage: 'Use code {code} at checkout for {percent}% off!',
27
+ description: 'Shown if learner can use a discount code when they upgrade the course'
28
+ },
29
+ certificateImage: {
30
+ id: 'courseExitUpsell.certificateImage',
31
+ defaultMessage: 'Locked certificate',
32
+ description: 'Alt text for the locked certificate image'
33
+ },
34
+ upgradeLink: {
35
+ id: 'courseExitUpsell.upgradeLink',
36
+ defaultMessage: 'upgrade now',
37
+ description: 'Link text for upgrade in footnote'
38
+ },
39
+ upgradeFootnote: {
40
+ id: 'courseExitUpsell.upgradeFootnote',
41
+ defaultMessage: 'Access to this course and its materials is available on your dashboard until {expirationDate}. To extend access, {upgradeLink}.',
42
+ description: 'Message body to tell learner until when the material will be available, and to suggest to upgrade'
43
+ }
44
+ });
45
+ var _default = exports.default = messages;
46
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","certificateHeaderUpgradable","id","defaultMessage","description","verifiedCertificateSupportLink","upgradeButton","upgradeDiscountCodePrompt","certificateImage","upgradeLink","upgradeFootnote","_default","exports","default"],"sources":["../../src/course-exit-upsell/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n certificateHeaderUpgradable: {\n id: 'courseExitUpsell.certificateHeader.upgradable',\n defaultMessage: 'Upgrade to pursue a verified certificate',\n description: 'Header when learner finished or passed the course but needs to upgrade to get a certificate',\n },\n verifiedCertificateSupportLink: {\n id: 'courseExitUpsell.verifiedCertificateSupportLink',\n defaultMessage: 'Learn more about verified certificates',\n description: 'Anchor text for link that redirects to external help page about verified certificates',\n },\n upgradeButton: {\n id: 'courseExitUpsell.upgradeButton',\n defaultMessage: 'Upgrade now',\n description: 'Button text to upgrade the course enrollment',\n },\n upgradeDiscountCodePrompt: {\n id: 'courseExitUpsell.upgradeDiscountCodePrompt',\n defaultMessage: 'Use code {code} at checkout for {percent}% off!',\n description: 'Shown if learner can use a discount code when they upgrade the course',\n },\n certificateImage: {\n id: 'courseExitUpsell.certificateImage',\n defaultMessage: 'Locked certificate',\n description: 'Alt text for the locked certificate image',\n },\n upgradeLink: {\n id: 'courseExitUpsell.upgradeLink',\n defaultMessage: 'upgrade now',\n description: 'Link text for upgrade in footnote',\n },\n upgradeFootnote: {\n id: 'courseExitUpsell.upgradeFootnote',\n defaultMessage: 'Access to this course and its materials is available on your dashboard until {expirationDate}. To extend access, {upgradeLink}.',\n description: 'Message body to tell learner until when the material will be available, and to suggest to upgrade',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9BC,2BAA2B,EAAE;IAC3BC,EAAE,EAAE,+CAA+C;IACnDC,cAAc,EAAE,0CAA0C;IAC1DC,WAAW,EAAE;EACf,CAAC;EACDC,8BAA8B,EAAE;IAC9BH,EAAE,EAAE,iDAAiD;IACrDC,cAAc,EAAE,wCAAwC;IACxDC,WAAW,EAAE;EACf,CAAC;EACDE,aAAa,EAAE;IACbJ,EAAE,EAAE,gCAAgC;IACpCC,cAAc,EAAE,aAAa;IAC7BC,WAAW,EAAE;EACf,CAAC;EACDG,yBAAyB,EAAE;IACzBL,EAAE,EAAE,4CAA4C;IAChDC,cAAc,EAAE,iDAAiD;IACjEC,WAAW,EAAE;EACf,CAAC;EACDI,gBAAgB,EAAE;IAChBN,EAAE,EAAE,mCAAmC;IACvCC,cAAc,EAAE,oBAAoB;IACpCC,WAAW,EAAE;EACf,CAAC;EACDK,WAAW,EAAE;IACXP,EAAE,EAAE,8BAA8B;IAClCC,cAAc,EAAE,aAAa;IAC7BC,WAAW,EAAE;EACf,CAAC;EACDM,eAAe,EAAE;IACfR,EAAE,EAAE,kCAAkC;IACtCC,cAAc,EAAE,iIAAiI;IACjJC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYd,QAAQ","ignoreList":[]}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.logUpgradeDisplayed = exports.logUpgradeClick = exports.logFootnoteClick = void 0;
7
+ var _analytics = require("@edx/frontend-platform/analytics");
8
+ 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; }
9
+ 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; }
10
+ 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; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
12
+ 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); }
13
+ /**
14
+ * Logs an upgrade click event for the course exit upsell (main CTA button).
15
+ *
16
+ * @param {string} org - The organization key
17
+ * @param {string} courseId - The course run key
18
+ * @param {boolean} administrator - Whether the user is an admin
19
+ */
20
+ const logUpgradeClick = function (org, courseId) {
21
+ let administrator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
22
+ const eventProperties = {
23
+ org_key: org,
24
+ courserun_key: courseId,
25
+ is_administrator: administrator
26
+ };
27
+ (0, _analytics.sendTrackEvent)('edx.ui.lms.course_exit.upgrade.clicked', {
28
+ org_key: org,
29
+ courserun_key: courseId,
30
+ is_staff: administrator
31
+ });
32
+
33
+ // New advertisement/ecommerce events
34
+ (0, _analytics.sendTrackingLogEvent)('edx.bi.course.upgrade.course_exit_upsell.clicked', eventProperties);
35
+ (0, _analytics.sendTrackingLogEvent)('edx.course.enrollment.upgrade.clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
36
+ location: 'course_exit'
37
+ }));
38
+ (0, _analytics.sendTrackEvent)('Promotion Clicked', _objectSpread({
39
+ creative: 'course_exit_upsell',
40
+ name: 'In-Course Verification Prompt',
41
+ position: 'course-exit-page',
42
+ promotion_id: 'courseware_verified_certificate_upsell'
43
+ }, eventProperties));
44
+ (0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upsell_links_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
45
+ linkCategory: 'green_upgrade',
46
+ linkName: 'course_exit_green',
47
+ linkType: 'button',
48
+ pageName: 'course_exit'
49
+ }));
50
+ };
51
+
52
+ /**
53
+ * Logs an upgrade click event for the course exit footnote link.
54
+ *
55
+ * @param {string} org - The organization key
56
+ * @param {string} courseId - The course run key
57
+ * @param {boolean} administrator - Whether the user is an admin
58
+ */
59
+ exports.logUpgradeClick = logUpgradeClick;
60
+ const logFootnoteClick = function (org, courseId) {
61
+ let administrator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
62
+ const eventProperties = {
63
+ org_key: org,
64
+ courserun_key: courseId,
65
+ is_administrator: administrator
66
+ };
67
+ (0, _analytics.sendTrackEvent)('edx.ui.lms.course_exit.upgrade_footnote.clicked', {
68
+ org_key: org,
69
+ courserun_key: courseId,
70
+ is_staff: administrator
71
+ });
72
+
73
+ // New advertisement/ecommerce events
74
+ (0, _analytics.sendTrackingLogEvent)('edx.bi.course.upgrade.course_exit_upsell.clicked', eventProperties);
75
+ (0, _analytics.sendTrackingLogEvent)('edx.course.enrollment.upgrade.clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
76
+ location: 'course_exit_footnote'
77
+ }));
78
+ (0, _analytics.sendTrackEvent)('Promotion Clicked', _objectSpread({
79
+ creative: 'course_exit_upsell',
80
+ name: 'In-Course Verification Prompt',
81
+ position: 'course-exit-page-footnote',
82
+ promotion_id: 'courseware_verified_certificate_upsell'
83
+ }, eventProperties));
84
+ (0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upsell_links_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
85
+ linkCategory: 'green_upgrade',
86
+ linkName: 'course_exit_footnote',
87
+ linkType: 'link',
88
+ pageName: 'course_exit'
89
+ }));
90
+ };
91
+
92
+ /**
93
+ * Logs a display event for the course exit upsell.
94
+ *
95
+ * @param {string} org - The organization key
96
+ * @param {string} courseId - The course run key
97
+ * @param {boolean} administrator - Whether the user is an admin
98
+ */
99
+ exports.logFootnoteClick = logFootnoteClick;
100
+ const logUpgradeDisplayed = function (org, courseId) {
101
+ let administrator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
102
+ (0, _analytics.sendTrackEvent)('edx.ui.lms.course_exit.visited', {
103
+ org_key: org,
104
+ courserun_key: courseId,
105
+ is_staff: administrator,
106
+ variant: 'celebration_upgrade'
107
+ });
108
+
109
+ // New advertisement/ecommerce events
110
+ (0, _analytics.sendTrackingLogEvent)('edx.bi.course.upgrade.course_exit_upsell.displayed', {
111
+ org_key: org,
112
+ courserun_key: courseId
113
+ });
114
+ (0, _analytics.sendTrackEvent)('Promotion Viewed', {
115
+ creative: 'course_exit_upsell',
116
+ name: 'In-Course Verification Prompt',
117
+ position: 'course-exit-page',
118
+ promotion_id: 'courseware_verified_certificate_upsell',
119
+ org_key: org,
120
+ courserun_key: courseId
121
+ });
122
+ };
123
+ exports.logUpgradeDisplayed = logUpgradeDisplayed;
124
+ //# sourceMappingURL=track.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track.js","names":["_analytics","require","ownKeys","e","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","logUpgradeClick","org","courseId","administrator","undefined","eventProperties","org_key","courserun_key","is_administrator","sendTrackEvent","is_staff","sendTrackingLogEvent","location","creative","name","position","promotion_id","linkCategory","linkName","linkType","pageName","exports","logFootnoteClick","logUpgradeDisplayed","variant"],"sources":["../../src/course-exit-upsell/track.js"],"sourcesContent":["import { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\n\n/**\n * Logs an upgrade click event for the course exit upsell (main CTA button).\n *\n * @param {string} org - The organization key\n * @param {string} courseId - The course run key\n * @param {boolean} administrator - Whether the user is an admin\n */\nexport const logUpgradeClick = (org, courseId, administrator = false) => {\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n is_administrator: administrator,\n };\n\n sendTrackEvent('edx.ui.lms.course_exit.upgrade.clicked', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n });\n\n // New advertisement/ecommerce events\n sendTrackingLogEvent('edx.bi.course.upgrade.course_exit_upsell.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'course_exit',\n });\n\n sendTrackEvent('Promotion Clicked', {\n creative: 'course_exit_upsell',\n name: 'In-Course Verification Prompt',\n position: 'course-exit-page',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n });\n\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: 'green_upgrade',\n linkName: 'course_exit_green',\n linkType: 'button',\n pageName: 'course_exit',\n });\n};\n\n/**\n * Logs an upgrade click event for the course exit footnote link.\n *\n * @param {string} org - The organization key\n * @param {string} courseId - The course run key\n * @param {boolean} administrator - Whether the user is an admin\n */\nexport const logFootnoteClick = (org, courseId, administrator = false) => {\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n is_administrator: administrator,\n };\n\n sendTrackEvent('edx.ui.lms.course_exit.upgrade_footnote.clicked', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n });\n\n // New advertisement/ecommerce events\n sendTrackingLogEvent('edx.bi.course.upgrade.course_exit_upsell.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'course_exit_footnote',\n });\n\n sendTrackEvent('Promotion Clicked', {\n creative: 'course_exit_upsell',\n name: 'In-Course Verification Prompt',\n position: 'course-exit-page-footnote',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n });\n\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: 'green_upgrade',\n linkName: 'course_exit_footnote',\n linkType: 'link',\n pageName: 'course_exit',\n });\n};\n\n/**\n * Logs a display event for the course exit upsell.\n *\n * @param {string} org - The organization key\n * @param {string} courseId - The course run key\n * @param {boolean} administrator - Whether the user is an admin\n */\nexport const logUpgradeDisplayed = (org, courseId, administrator = false) => {\n sendTrackEvent('edx.ui.lms.course_exit.visited', {\n org_key: org,\n courserun_key: courseId,\n is_staff: administrator,\n variant: 'celebration_upgrade',\n });\n\n // New advertisement/ecommerce events\n sendTrackingLogEvent('edx.bi.course.upgrade.course_exit_upsell.displayed', {\n org_key: org,\n courserun_key: courseId,\n });\n\n sendTrackEvent('Promotion Viewed', {\n creative: 'course_exit_upsell',\n name: 'In-Course Verification Prompt',\n position: 'course-exit-page',\n promotion_id: 'courseware_verified_certificate_upsell',\n org_key: org,\n courserun_key: courseId,\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAAwF,SAAAC,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,gBAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAD,CAAA,GAAAG,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAAvB,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAoB,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,MAAAF,CAAA,GAAAE,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA3B,CAAA,QAAAwB,CAAA,GAAAxB,CAAA,CAAA4B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAExF;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM8B,eAAe,GAAG,SAAAA,CAACC,GAAG,EAAEC,QAAQ,EAA4B;EAAA,IAA1BC,aAAa,GAAAtB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAuB,SAAA,GAAAvB,SAAA,MAAG,KAAK;EAClE,MAAMwB,eAAe,GAAG;IACtBC,OAAO,EAAEL,GAAG;IACZM,aAAa,EAAEL,QAAQ;IACvBM,gBAAgB,EAAEL;EACpB,CAAC;EAED,IAAAM,yBAAc,EAAC,wCAAwC,EAAE;IACvDH,OAAO,EAAEL,GAAG;IACZM,aAAa,EAAEL,QAAQ;IACvBQ,QAAQ,EAAEP;EACZ,CAAC,CAAC;;EAEF;EACA,IAAAQ,+BAAoB,EAAC,kDAAkD,EAAEN,eAAe,CAAC;EACzF,IAAAM,+BAAoB,EAAC,uCAAuC,EAAA/B,aAAA,CAAAA,aAAA,KACvDyB,eAAe;IAClBO,QAAQ,EAAE;EAAa,EACxB,CAAC;EAEF,IAAAH,yBAAc,EAAC,mBAAmB,EAAA7B,aAAA;IAChCiC,QAAQ,EAAE,oBAAoB;IAC9BC,IAAI,EAAE,+BAA+B;IACrCC,QAAQ,EAAE,kBAAkB;IAC5BC,YAAY,EAAE;EAAwC,GACnDX,eAAe,CACnB,CAAC;EAEF,IAAAI,yBAAc,EAAC,uCAAuC,EAAA7B,aAAA,CAAAA,aAAA,KACjDyB,eAAe;IAClBY,YAAY,EAAE,eAAe;IAC7BC,QAAQ,EAAE,mBAAmB;IAC7BC,QAAQ,EAAE,QAAQ;IAClBC,QAAQ,EAAE;EAAa,EACxB,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAC,OAAA,CAAArB,eAAA,GAAAA,eAAA;AAOO,MAAMsB,gBAAgB,GAAG,SAAAA,CAACrB,GAAG,EAAEC,QAAQ,EAA4B;EAAA,IAA1BC,aAAa,GAAAtB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAuB,SAAA,GAAAvB,SAAA,MAAG,KAAK;EACnE,MAAMwB,eAAe,GAAG;IACtBC,OAAO,EAAEL,GAAG;IACZM,aAAa,EAAEL,QAAQ;IACvBM,gBAAgB,EAAEL;EACpB,CAAC;EAED,IAAAM,yBAAc,EAAC,iDAAiD,EAAE;IAChEH,OAAO,EAAEL,GAAG;IACZM,aAAa,EAAEL,QAAQ;IACvBQ,QAAQ,EAAEP;EACZ,CAAC,CAAC;;EAEF;EACA,IAAAQ,+BAAoB,EAAC,kDAAkD,EAAEN,eAAe,CAAC;EACzF,IAAAM,+BAAoB,EAAC,uCAAuC,EAAA/B,aAAA,CAAAA,aAAA,KACvDyB,eAAe;IAClBO,QAAQ,EAAE;EAAsB,EACjC,CAAC;EAEF,IAAAH,yBAAc,EAAC,mBAAmB,EAAA7B,aAAA;IAChCiC,QAAQ,EAAE,oBAAoB;IAC9BC,IAAI,EAAE,+BAA+B;IACrCC,QAAQ,EAAE,2BAA2B;IACrCC,YAAY,EAAE;EAAwC,GACnDX,eAAe,CACnB,CAAC;EAEF,IAAAI,yBAAc,EAAC,uCAAuC,EAAA7B,aAAA,CAAAA,aAAA,KACjDyB,eAAe;IAClBY,YAAY,EAAE,eAAe;IAC7BC,QAAQ,EAAE,sBAAsB;IAChCC,QAAQ,EAAE,MAAM;IAChBC,QAAQ,EAAE;EAAa,EACxB,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAC,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAOO,MAAMC,mBAAmB,GAAG,SAAAA,CAACtB,GAAG,EAAEC,QAAQ,EAA4B;EAAA,IAA1BC,aAAa,GAAAtB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAuB,SAAA,GAAAvB,SAAA,MAAG,KAAK;EACtE,IAAA4B,yBAAc,EAAC,gCAAgC,EAAE;IAC/CH,OAAO,EAAEL,GAAG;IACZM,aAAa,EAAEL,QAAQ;IACvBQ,QAAQ,EAAEP,aAAa;IACvBqB,OAAO,EAAE;EACX,CAAC,CAAC;;EAEF;EACA,IAAAb,+BAAoB,EAAC,oDAAoD,EAAE;IACzEL,OAAO,EAAEL,GAAG;IACZM,aAAa,EAAEL;EACjB,CAAC,CAAC;EAEF,IAAAO,yBAAc,EAAC,kBAAkB,EAAE;IACjCI,QAAQ,EAAE,oBAAoB;IAC9BC,IAAI,EAAE,+BAA+B;IACrCC,QAAQ,EAAE,kBAAkB;IAC5BC,YAAY,EAAE,wCAAwC;IACtDV,OAAO,EAAEL,GAAG;IACZM,aAAa,EAAEL;EACjB,CAAC,CAAC;AACJ,CAAC;AAACmB,OAAA,CAAAE,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -17,7 +17,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
17
17
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
18
18
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
19
19
  function useUCL() {
20
- let timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10000;
20
+ let timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 60000;
21
21
  const [ucl, setUcl] = (0, _react.useState)(() => window.UCL);
22
22
  (0, _react.useEffect)(() => {
23
23
  if (ucl) {
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicExperienceSlot.js","names":["_react","require","_propTypes","_interopRequireDefault","_jsxRuntime","_excluded","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","useUCL","timeout","undefined","ucl","setUcl","useState","window","UCL","useEffect","start","Date","now","id","setInterval","clearInterval","RenderFallbackSignal","Error","constructor","name","DynamicExperienceSlot","_ref","widgetName","rest","ref","useRef","shouldThrow","setShouldThrow","error","setError","restPropsRef","current","refCurrent","mount","onFallbackShouldRender","unmount","jsx","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../src/dynamic-experience-slot/DynamicExperienceSlot.jsx"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction useUCL(timeout = 10000) {\n const [ucl, setUcl] = useState(() => window.UCL);\n useEffect(() => {\n if (ucl) { return undefined; }\n const start = Date.now();\n const id = setInterval(() => {\n if (window.UCL) {\n setUcl(window.UCL);\n clearInterval(id);\n } else if (Date.now() - start > timeout) {\n clearInterval(id);\n }\n }, 100);\n return () => clearInterval(id);\n }, [ucl, timeout]);\n return ucl;\n}\nclass RenderFallbackSignal extends Error {\n constructor() {\n super('Render fallback requested by widget');\n this.name = 'RenderFallbackSignal';\n }\n}\n\nconst DynamicExperienceSlot = ({ widgetName, ...rest }) => {\n const ref = useRef(null);\n const UCL = useUCL();\n const [shouldThrow, setShouldThrow] = useState(false);\n const [error, setError] = useState(null);\n\n // Lock props to prevent unnecessary re-renders\n const restPropsRef = useRef(rest);\n // Update ref on each render to prevent stale props\n restPropsRef.current = rest;\n\n useEffect(() => {\n const refCurrent = ref.current;\n if (!refCurrent || !UCL) { return undefined; }\n try {\n UCL.mount(widgetName, refCurrent, {\n ...restPropsRef.current,\n onFallbackShouldRender: setShouldThrow,\n });\n } catch (e) {\n setError(e);\n }\n return () => UCL.unmount(refCurrent);\n }, [widgetName, UCL]);\n if (error) { throw error; }\n if (shouldThrow) { throw new RenderFallbackSignal(); }\n return <div ref={ref} />;\n};\n\nDynamicExperienceSlot.propTypes = {\n widgetName: PropTypes.string.isRequired,\n};\n\nexport default DynamicExperienceSlot;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DynamicExperienceSlot.js","names":["_react","require","_propTypes","_interopRequireDefault","_jsxRuntime","_excluded","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","useUCL","timeout","undefined","ucl","setUcl","useState","window","UCL","useEffect","start","Date","now","id","setInterval","clearInterval","RenderFallbackSignal","Error","constructor","name","DynamicExperienceSlot","_ref","widgetName","rest","ref","useRef","shouldThrow","setShouldThrow","error","setError","restPropsRef","current","refCurrent","mount","onFallbackShouldRender","unmount","jsx","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../src/dynamic-experience-slot/DynamicExperienceSlot.jsx"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction useUCL(timeout = 60000) {\n const [ucl, setUcl] = useState(() => window.UCL);\n useEffect(() => {\n if (ucl) { return undefined; }\n const start = Date.now();\n const id = setInterval(() => {\n if (window.UCL) {\n setUcl(window.UCL);\n clearInterval(id);\n } else if (Date.now() - start > timeout) {\n clearInterval(id);\n }\n }, 100);\n return () => clearInterval(id);\n }, [ucl, timeout]);\n return ucl;\n}\nclass RenderFallbackSignal extends Error {\n constructor() {\n super('Render fallback requested by widget');\n this.name = 'RenderFallbackSignal';\n }\n}\n\nconst DynamicExperienceSlot = ({ widgetName, ...rest }) => {\n const ref = useRef(null);\n const UCL = useUCL();\n const [shouldThrow, setShouldThrow] = useState(false);\n const [error, setError] = useState(null);\n\n // Lock props to prevent unnecessary re-renders\n const restPropsRef = useRef(rest);\n // Update ref on each render to prevent stale props\n restPropsRef.current = rest;\n\n useEffect(() => {\n const refCurrent = ref.current;\n if (!refCurrent || !UCL) { return undefined; }\n try {\n UCL.mount(widgetName, refCurrent, {\n ...restPropsRef.current,\n onFallbackShouldRender: setShouldThrow,\n });\n } catch (e) {\n setError(e);\n }\n return () => UCL.unmount(refCurrent);\n }, [widgetName, UCL]);\n if (error) { throw error; }\n if (shouldThrow) { throw new RenderFallbackSignal(); }\n return <div ref={ref} />;\n};\n\nDynamicExperienceSlot.propTypes = {\n widgetName: PropTypes.string.isRequired,\n};\n\nexport default DynamicExperienceSlot;\n"],"mappings":"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","ignoreList":[]}
package/dist/index.js CHANGED
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "AccessExpirationAlert", {
9
9
  return _accessExpirationAlert.default;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "CourseExitUpsell", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _courseExitUpsell.default;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "DynamicExperienceSlot", {
13
19
  enumerable: true,
14
20
  get: function () {
@@ -62,6 +68,7 @@ var _paywall = _interopRequireDefault(require("./paywall"));
62
68
  var _upgradeModal = _interopRequireDefault(require("./upgrade-modal"));
63
69
  var _accessExpirationAlert = _interopRequireDefault(require("./access-expiration-alert"));
64
70
  var _upgradeToCompleteAlert = _interopRequireDefault(require("./upgrade-to-complete-alert"));
71
+ var _courseExitUpsell = _interopRequireDefault(require("./course-exit-upsell"));
65
72
  var _generic = require("./generic");
66
73
  var _sectionOutline = _interopRequireDefault(require("./section-outline"));
67
74
  var _dynamicExperienceSlot = _interopRequireDefault(require("./dynamic-experience-slot"));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_upgradeNotification","_interopRequireDefault","require","_paywall","_upgradeModal","_accessExpirationAlert","_upgradeToCompleteAlert","_generic","_sectionOutline","_dynamicExperienceSlot","_uclWrapper","e","__esModule","default"],"sources":["../src/index.jsx"],"sourcesContent":["import UpgradeNotification from './upgrade-notification';\nimport LockPaywall from './paywall';\nimport NextUnitButton from './upgrade-modal';\nimport AccessExpirationAlert from './access-expiration-alert';\nimport UpgradeToCompleteAlert from './upgrade-to-complete-alert';\nimport { UpsellBullets } from './generic';\nimport SectionList from './section-outline';\nimport DynamicExperienceSlot from './dynamic-experience-slot';\nimport UclWrapper from './ucl-wrapper';\nimport './index.scss';\n\nexport {\n UpgradeNotification,\n LockPaywall,\n NextUnitButton,\n AccessExpirationAlert,\n UpgradeToCompleteAlert,\n UpsellBullets,\n SectionList,\n DynamicExperienceSlot,\n UclWrapper,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,sBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,uBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,sBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,WAAA,GAAAT,sBAAA,CAAAC,OAAA;AACAA,OAAA;AAAsB,SAAAD,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_upgradeNotification","_interopRequireDefault","require","_paywall","_upgradeModal","_accessExpirationAlert","_upgradeToCompleteAlert","_courseExitUpsell","_generic","_sectionOutline","_dynamicExperienceSlot","_uclWrapper","e","__esModule","default"],"sources":["../src/index.jsx"],"sourcesContent":["import UpgradeNotification from './upgrade-notification';\nimport LockPaywall from './paywall';\nimport NextUnitButton from './upgrade-modal';\nimport AccessExpirationAlert from './access-expiration-alert';\nimport UpgradeToCompleteAlert from './upgrade-to-complete-alert';\nimport CourseExitUpsell from './course-exit-upsell';\nimport { UpsellBullets } from './generic';\nimport SectionList from './section-outline';\nimport DynamicExperienceSlot from './dynamic-experience-slot';\nimport UclWrapper from './ucl-wrapper';\nimport './index.scss';\n\nexport {\n UpgradeNotification,\n LockPaywall,\n NextUnitButton,\n AccessExpirationAlert,\n UpgradeToCompleteAlert,\n CourseExitUpsell,\n UpsellBullets,\n SectionList,\n DynamicExperienceSlot,\n UclWrapper,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,sBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,uBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,iBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,sBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,WAAA,GAAAV,sBAAA,CAAAC,OAAA;AACAA,OAAA;AAAsB,SAAAD,uBAAAW,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edx/frontend-plugin-advertisements",
3
- "version": "2.24.1",
3
+ "version": "2.24.3",
4
4
  "description": "Frontend plugin for edX in course advertisements",
5
5
  "main": "dist/index.js",
6
6
  "repository": {