@edx/frontend-plugin-advertisements 1.37.1 → 1.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/index.js +1 -1
- package/dist/data/index.js.map +1 -1
- package/dist/data/optimizely.js +1 -1
- package/dist/data/optimizely.js.map +1 -1
- package/dist/generic/AccessExpirationDateBanner.js +2 -2
- package/dist/generic/AccessExpirationDateBanner.js.map +1 -1
- package/dist/generic/ExpirationCountdown.js +1 -1
- package/dist/generic/ExpirationCountdown.js.map +1 -1
- package/dist/generic/PastExpirationDateBanner.js +2 -2
- package/dist/generic/PastExpirationDateBanner.js.map +1 -1
- package/dist/generic/UpsellFBESoonCardContent.js +2 -2
- package/dist/generic/UpsellFBESoonCardContent.js.map +1 -1
- package/dist/generic/index.js +1 -1
- package/dist/generic/index.js.map +1 -1
- package/dist/generic/upsell-bullets/PaywallUpsellBullets.js +1 -1
- package/dist/generic/upsell-bullets/PaywallUpsellBullets.js.map +1 -1
- package/dist/generic/upsell-bullets/UpsellBullets.js +1 -1
- package/dist/generic/upsell-bullets/UpsellBullets.js.map +1 -1
- package/dist/generic/upsell-bullets/UpsellTable.js +1 -1
- package/dist/generic/upsell-bullets/UpsellTable.js.map +1 -1
- package/dist/generic/upsell-bullets/index.js +1 -1
- package/dist/generic/upsell-bullets/index.js.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/mocks/optimizely/index.js +1 -1
- package/dist/optimizely/Optimizely.js +4 -4
- package/dist/optimizely/Optimizely.js.map +1 -1
- package/dist/paywall/DefaultLockPaywall.js +2 -2
- package/dist/paywall/DefaultLockPaywall.js.map +1 -1
- package/dist/paywall/ExperimentalLockPaywall.js +2 -2
- package/dist/paywall/ExperimentalLockPaywall.js.map +1 -1
- package/dist/paywall/LockPaywall.js +2 -2
- package/dist/paywall/LockPaywall.js.map +1 -1
- package/dist/paywall/index.js +1 -1
- package/dist/paywall/index.js.map +1 -1
- package/dist/section-outline/SectionHeader.js +49 -0
- package/dist/section-outline/SectionHeader.js.map +1 -0
- package/dist/section-outline/SectionItem.js +112 -0
- package/dist/section-outline/SectionItem.js.map +1 -0
- package/dist/section-outline/SectionList.js +85 -0
- package/dist/section-outline/SectionList.js.map +1 -0
- package/dist/section-outline/SequenceHeader.js +60 -0
- package/dist/section-outline/SequenceHeader.js.map +1 -0
- package/dist/section-outline/SequenceLink.js +63 -0
- package/dist/section-outline/SequenceLink.js.map +1 -0
- package/dist/section-outline/UpgradeBanner.js +49 -0
- package/dist/section-outline/UpgradeBanner.js.map +1 -0
- package/dist/section-outline/constants.js +10 -0
- package/dist/section-outline/constants.js.map +1 -0
- package/dist/section-outline/data/api.js +42 -0
- package/dist/section-outline/data/api.js.map +1 -0
- package/dist/section-outline/hooks.js +79 -0
- package/dist/section-outline/hooks.js.map +1 -0
- package/dist/section-outline/index.js +10 -0
- package/dist/section-outline/index.js.map +1 -0
- package/dist/section-outline/messages.js +41 -0
- package/dist/section-outline/messages.js.map +1 -0
- package/dist/upgrade-modal/BaseModal.js +2 -1
- package/dist/upgrade-modal/BaseModal.js.map +1 -1
- package/dist/upgrade-modal/DefaultUpgradeModal.js +2 -2
- package/dist/upgrade-modal/DefaultUpgradeModal.js.map +1 -1
- package/dist/upgrade-modal/ExperimentalUpgradeModal.js +2 -2
- package/dist/upgrade-modal/ExperimentalUpgradeModal.js.map +1 -1
- package/dist/upgrade-modal/NextUnitButton.js +3 -1
- package/dist/upgrade-modal/NextUnitButton.js.map +1 -1
- package/dist/upgrade-modal/UpgradeModalWrapper.js +2 -2
- package/dist/upgrade-modal/UpgradeModalWrapper.js.map +1 -1
- package/dist/upgrade-modal/index.js +1 -1
- package/dist/upgrade-modal/index.js.map +1 -1
- package/dist/upgrade-notification/DefaultUpgradeNotification.js +2 -2
- package/dist/upgrade-notification/DefaultUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js +2 -2
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/UpgradeNotification.js +2 -2
- package/dist/upgrade-notification/UpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/certificate-preview/CertificatePreview.js +1 -1
- package/dist/upgrade-notification/certificate-preview/CertificatePreview.js.map +1 -1
- package/dist/upgrade-notification/certificate-preview/Signatory.js +1 -1
- package/dist/upgrade-notification/certificate-preview/Signatory.js.map +1 -1
- package/dist/upgrade-notification/certificate-preview/index.js +1 -1
- package/dist/upgrade-notification/certificate-preview/index.js.map +1 -1
- package/dist/upgrade-notification/index.js +1 -1
- package/dist/upgrade-notification/index.js.map +1 -1
- package/dist/upgrade-notification/utils.js +1 -1
- package/dist/upgrade-notification/utils.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SequenceHeader.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_SequenceTitle","_messages","_constants","_jsxRuntime","e","__esModule","default","SequenceHeader","_ref","complete","id","lockedStatus","sequence","showLink","title","intl","useIntl","isLocked","UNLOCKED","jsxs","Stack","direction","gap","children","jsx","IconButtonWithTooltip","tooltipPlacement","src","Locked","tooltipContent","formatMessage","messages","sequenceTooltipContent","variant","iconAs","Icon","propTypes","PropTypes","bool","isRequired","string","shape","_default","exports"],"sources":["../../src/section-outline/SequenceHeader.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Icon, IconButtonWithTooltip, Stack } from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\n\nimport SequenceTitle from '@src/course-home/outline-tab/section-outline/SequenceTitle';\nimport messages from './messages';\nimport { UNLOCKED } from './constants';\n\nconst SequenceHeader = ({\n complete,\n id,\n lockedStatus,\n sequence,\n showLink,\n title,\n}) => {\n const intl = useIntl();\n const isLocked = lockedStatus !== UNLOCKED;\n\n return (\n <Stack direction=\"horizontal\" gap={2}>\n <SequenceTitle\n {...{\n complete,\n showLink,\n title,\n sequence,\n id,\n }}\n />\n {isLocked && (\n <IconButtonWithTooltip\n tooltipPlacement=\"top\"\n src={Locked}\n tooltipContent={(\n <span>\n {intl.formatMessage(messages.sequenceTooltipContent, { lockedStatus })}\n </span>\n )}\n variant=\"primary\"\n iconAs={Icon}\n />\n )}\n </Stack>\n );\n};\n\nSequenceHeader.propTypes = {\n complete: PropTypes.bool.isRequired,\n id: PropTypes.string.isRequired,\n lockedStatus: PropTypes.string.isRequired,\n sequence: PropTypes.shape().isRequired,\n showLink: PropTypes.bool.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nexport default SequenceHeader;\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,cAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAAuC,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AARvC;;AAUA,MAAMG,cAAc,GAAGC,IAAA,IAOjB;EAAA,IAPkB;IACtBC,QAAQ;IACRC,EAAE;IACFC,YAAY;IACZC,QAAQ;IACRC,QAAQ;IACRC;EACF,CAAC,GAAAN,IAAA;EACC,MAAMO,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EACtB,MAAMC,QAAQ,GAAGN,YAAY,KAAKO,mBAAQ;EAE1C,oBACE,IAAAf,WAAA,CAAAgB,IAAA,EAACrB,QAAA,CAAAsB,KAAK;IAACC,SAAS,EAAC,YAAY;IAACC,GAAG,EAAE,CAAE;IAAAC,QAAA,gBACnC,IAAApB,WAAA,CAAAqB,GAAA,EAACxB,cAAA,CAAAM,OAAa;MAEVG,QAAQ;MACRI,QAAQ;MACRC,KAAK;MACLF,QAAQ;MACRF;IAAE,CAEL,CAAC,EACDO,QAAQ,iBACP,IAAAd,WAAA,CAAAqB,GAAA,EAAC1B,QAAA,CAAA2B,qBAAqB;MACpBC,gBAAgB,EAAC,KAAK;MACtBC,GAAG,EAAEC,aAAO;MACZC,cAAc,eACZ,IAAA1B,WAAA,CAAAqB,GAAA;QAAAD,QAAA,EACGR,IAAI,CAACe,aAAa,CAACC,iBAAQ,CAACC,sBAAsB,EAAE;UAAErB;QAAa,CAAC;MAAC,CAClE,CACN;MACFsB,OAAO,EAAC,SAAS;MACjBC,MAAM,EAAEC;IAAK,CACd,CACF;EAAA,CACI,CAAC;AAEZ,CAAC;AAED5B,cAAc,CAAC6B,SAAS,GAAG;EACzB3B,QAAQ,EAAE4B,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnC7B,EAAE,EAAE2B,kBAAS,CAACG,MAAM,CAACD,UAAU;EAC/B5B,YAAY,EAAE0B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACzC3B,QAAQ,EAAEyB,kBAAS,CAACI,KAAK,CAAC,CAAC,CAACF,UAAU;EACtC1B,QAAQ,EAAEwB,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCzB,KAAK,EAAEuB,kBAAS,CAACG,MAAM,CAACD;AAC1B,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAArC,OAAA,GAEaC,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
+
var _SequenceDueDate = _interopRequireDefault(require("@src/course-home/outline-tab/section-outline/SequenceDueDate"));
|
|
10
|
+
var _HiddenSequenceLink = _interopRequireDefault(require("@src/course-home/outline-tab/section-outline/HiddenSequenceLink"));
|
|
11
|
+
var _SequenceHeader = _interopRequireDefault(require("./SequenceHeader"));
|
|
12
|
+
var _constants = require("./constants");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
/* eslint import/no-unresolved: 0 */
|
|
16
|
+
|
|
17
|
+
const SequenceLink = _ref => {
|
|
18
|
+
let {
|
|
19
|
+
id,
|
|
20
|
+
first,
|
|
21
|
+
sequence,
|
|
22
|
+
sequenceData
|
|
23
|
+
} = _ref;
|
|
24
|
+
const {
|
|
25
|
+
complete,
|
|
26
|
+
description,
|
|
27
|
+
due,
|
|
28
|
+
showLink,
|
|
29
|
+
title,
|
|
30
|
+
hideFromTOC
|
|
31
|
+
} = sequence;
|
|
32
|
+
const lockedStatus = sequenceData[id];
|
|
33
|
+
const isLocked = lockedStatus !== _constants.UNLOCKED;
|
|
34
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
|
|
35
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
36
|
+
className: (0, _classnames.default)('px-3 py-2', {
|
|
37
|
+
'border-top border-light': !first
|
|
38
|
+
}, {
|
|
39
|
+
'bg-primary-100': isLocked
|
|
40
|
+
}),
|
|
41
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SequenceHeader.default, {
|
|
42
|
+
complete,
|
|
43
|
+
id,
|
|
44
|
+
lockedStatus,
|
|
45
|
+
sequence,
|
|
46
|
+
showLink,
|
|
47
|
+
title
|
|
48
|
+
}), hideFromTOC && /*#__PURE__*/(0, _jsxRuntime.jsx)(_HiddenSequenceLink.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_SequenceDueDate.default, {
|
|
49
|
+
due,
|
|
50
|
+
id,
|
|
51
|
+
description
|
|
52
|
+
})]
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
SequenceLink.propTypes = {
|
|
57
|
+
id: _propTypes.default.string.isRequired,
|
|
58
|
+
first: _propTypes.default.bool.isRequired,
|
|
59
|
+
sequence: _propTypes.default.shape().isRequired,
|
|
60
|
+
sequenceData: _propTypes.default.shape().isRequired
|
|
61
|
+
};
|
|
62
|
+
var _default = exports.default = SequenceLink;
|
|
63
|
+
//# sourceMappingURL=SequenceLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SequenceLink.js","names":["_propTypes","_interopRequireDefault","require","_classnames","_SequenceDueDate","_HiddenSequenceLink","_SequenceHeader","_constants","_jsxRuntime","e","__esModule","default","SequenceLink","_ref","id","first","sequence","sequenceData","complete","description","due","showLink","title","hideFromTOC","lockedStatus","isLocked","UNLOCKED","jsx","children","jsxs","className","classNames","propTypes","PropTypes","string","isRequired","bool","shape","_default","exports"],"sources":["../../src/section-outline/SequenceLink.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport SequenceDueDate from '@src/course-home/outline-tab/section-outline/SequenceDueDate';\nimport HiddenSequenceLink from '@src/course-home/outline-tab/section-outline/HiddenSequenceLink';\nimport SequenceHeader from './SequenceHeader';\nimport { UNLOCKED } from './constants';\n\nconst SequenceLink = ({\n id,\n first,\n sequence,\n sequenceData,\n}) => {\n const {\n complete,\n description,\n due,\n showLink,\n title,\n hideFromTOC,\n } = sequence;\n\n const lockedStatus = sequenceData[id];\n const isLocked = lockedStatus !== UNLOCKED;\n\n return (\n <li>\n <div className={classNames('px-3 py-2', { 'border-top border-light': !first }, { 'bg-primary-100': isLocked })}>\n <SequenceHeader\n {...{\n complete,\n id,\n lockedStatus,\n sequence,\n showLink,\n title,\n }}\n />\n {hideFromTOC && (\n <HiddenSequenceLink />\n )}\n <SequenceDueDate {...{ due, id, description }} />\n </div>\n </li>\n );\n};\n\nSequenceLink.propTypes = {\n id: PropTypes.string.isRequired,\n first: PropTypes.bool.isRequired,\n sequence: PropTypes.shape().isRequired,\n sequenceData: PropTypes.shape().isRequired,\n};\n\nexport default SequenceLink;\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,gBAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,mBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAAuC,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAPvC;;AASA,MAAMG,YAAY,GAAGC,IAAA,IAKf;EAAA,IALgB;IACpBC,EAAE;IACFC,KAAK;IACLC,QAAQ;IACRC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAM;IACJK,QAAQ;IACRC,WAAW;IACXC,GAAG;IACHC,QAAQ;IACRC,KAAK;IACLC;EACF,CAAC,GAAGP,QAAQ;EAEZ,MAAMQ,YAAY,GAAGP,YAAY,CAACH,EAAE,CAAC;EACrC,MAAMW,QAAQ,GAAGD,YAAY,KAAKE,mBAAQ;EAE1C,oBACE,IAAAlB,WAAA,CAAAmB,GAAA;IAAAC,QAAA,eACE,IAAApB,WAAA,CAAAqB,IAAA;MAAKC,SAAS,EAAE,IAAAC,mBAAU,EAAC,WAAW,EAAE;QAAE,yBAAyB,EAAE,CAAChB;MAAM,CAAC,EAAE;QAAE,gBAAgB,EAAEU;MAAS,CAAC,CAAE;MAAAG,QAAA,gBAC7G,IAAApB,WAAA,CAAAmB,GAAA,EAACrB,eAAA,CAAAK,OAAc;QAEXO,QAAQ;QACRJ,EAAE;QACFU,YAAY;QACZR,QAAQ;QACRK,QAAQ;QACRC;MAAK,CAER,CAAC,EACDC,WAAW,iBACV,IAAAf,WAAA,CAAAmB,GAAA,EAACtB,mBAAA,CAAAM,OAAkB,IAAE,CACtB,eACD,IAAAH,WAAA,CAAAmB,GAAA,EAACvB,gBAAA,CAAAO,OAAe;QAAOS,GAAG;QAAEN,EAAE;QAAEK;MAAW,CAAK,CAAC;IAAA,CAC9C;EAAC,CACJ,CAAC;AAET,CAAC;AAEDP,YAAY,CAACoB,SAAS,GAAG;EACvBlB,EAAE,EAAEmB,kBAAS,CAACC,MAAM,CAACC,UAAU;EAC/BpB,KAAK,EAAEkB,kBAAS,CAACG,IAAI,CAACD,UAAU;EAChCnB,QAAQ,EAAEiB,kBAAS,CAACI,KAAK,CAAC,CAAC,CAACF,UAAU;EACtClB,YAAY,EAAEgB,kBAAS,CAACI,KAAK,CAAC,CAAC,CAACF;AAClC,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAA5B,OAAA,GAEaC,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
9
|
+
var _paragon = require("@openedx/paragon");
|
|
10
|
+
var _icons = require("@openedx/paragon/icons");
|
|
11
|
+
var _messages = _interopRequireDefault(require("./messages"));
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
const UpgradeBanner = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
upgradeUrl
|
|
17
|
+
} = _ref;
|
|
18
|
+
const intl = (0, _i18n.useIntl)();
|
|
19
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.ActionRow, {
|
|
20
|
+
className: "my-3 p-4 bg-primary rounded",
|
|
21
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
|
|
22
|
+
direction: "horizontal",
|
|
23
|
+
gap: 3,
|
|
24
|
+
className: "text-white align-items-start",
|
|
25
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Icon, {
|
|
26
|
+
src: _icons.Locked
|
|
27
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
|
|
28
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
29
|
+
className: "h4 text-white",
|
|
30
|
+
children: intl.formatMessage(_messages.default.upgradeBannerHeader)
|
|
31
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
32
|
+
className: "small",
|
|
33
|
+
children: intl.formatMessage(_messages.default.upgradeBannerMessage)
|
|
34
|
+
})]
|
|
35
|
+
})]
|
|
36
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow.Spacer, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
|
|
37
|
+
size: "sm",
|
|
38
|
+
variant: "inverse-primary",
|
|
39
|
+
as: "a",
|
|
40
|
+
href: upgradeUrl,
|
|
41
|
+
children: intl.formatMessage(_messages.default.upgradeBannerButtonLabel)
|
|
42
|
+
})]
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
UpgradeBanner.propTypes = {
|
|
46
|
+
upgradeUrl: _propTypes.default.string.isRequired
|
|
47
|
+
};
|
|
48
|
+
var _default = exports.default = UpgradeBanner;
|
|
49
|
+
//# sourceMappingURL=UpgradeBanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpgradeBanner.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_messages","_jsxRuntime","e","__esModule","default","UpgradeBanner","_ref","upgradeUrl","intl","useIntl","jsxs","ActionRow","className","children","Stack","direction","gap","jsx","Icon","src","Locked","formatMessage","messages","upgradeBannerHeader","upgradeBannerMessage","Spacer","Button","size","variant","as","href","upgradeBannerButtonLabel","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../src/section-outline/UpgradeBanner.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n Icon,\n Stack,\n} from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\n\nimport messages from './messages';\n\nconst UpgradeBanner = ({ upgradeUrl }) => {\n const intl = useIntl();\n\n return (\n <ActionRow className=\"my-3 p-4 bg-primary rounded\">\n <Stack direction=\"horizontal\" gap={3} className=\"text-white align-items-start\">\n <Icon src={Locked} />\n <Stack>\n <div className=\"h4 text-white\">\n {intl.formatMessage(messages.upgradeBannerHeader)}\n </div>\n <div className=\"small\">\n {intl.formatMessage(messages.upgradeBannerMessage)}\n </div>\n </Stack>\n </Stack>\n <ActionRow.Spacer />\n <Button\n size=\"sm\"\n variant=\"inverse-primary\"\n as=\"a\"\n href={upgradeUrl}\n >\n {intl.formatMessage(messages.upgradeBannerButtonLabel)}\n </Button>\n </ActionRow>\n );\n};\n\nUpgradeBanner.propTypes = {\n upgradeUrl: PropTypes.string.isRequired,\n};\n\nexport default UpgradeBanner;\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAMA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAkC,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElC,MAAMG,aAAa,GAAGC,IAAA,IAAoB;EAAA,IAAnB;IAAEC;EAAW,CAAC,GAAAD,IAAA;EACnC,MAAME,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EAEtB,oBACE,IAAAR,WAAA,CAAAS,IAAA,EAACZ,QAAA,CAAAa,SAAS;IAACC,SAAS,EAAC,6BAA6B;IAAAC,QAAA,gBAChD,IAAAZ,WAAA,CAAAS,IAAA,EAACZ,QAAA,CAAAgB,KAAK;MAACC,SAAS,EAAC,YAAY;MAACC,GAAG,EAAE,CAAE;MAACJ,SAAS,EAAC,8BAA8B;MAAAC,QAAA,gBAC5E,IAAAZ,WAAA,CAAAgB,GAAA,EAACnB,QAAA,CAAAoB,IAAI;QAACC,GAAG,EAAEC;MAAO,CAAE,CAAC,eACrB,IAAAnB,WAAA,CAAAS,IAAA,EAACZ,QAAA,CAAAgB,KAAK;QAAAD,QAAA,gBACJ,IAAAZ,WAAA,CAAAgB,GAAA;UAAKL,SAAS,EAAC,eAAe;UAAAC,QAAA,EAC3BL,IAAI,CAACa,aAAa,CAACC,iBAAQ,CAACC,mBAAmB;QAAC,CAC9C,CAAC,eACN,IAAAtB,WAAA,CAAAgB,GAAA;UAAKL,SAAS,EAAC,OAAO;UAAAC,QAAA,EACnBL,IAAI,CAACa,aAAa,CAACC,iBAAQ,CAACE,oBAAoB;QAAC,CAC/C,CAAC;MAAA,CACD,CAAC;IAAA,CACH,CAAC,eACR,IAAAvB,WAAA,CAAAgB,GAAA,EAACnB,QAAA,CAAAa,SAAS,CAACc,MAAM,IAAE,CAAC,eACpB,IAAAxB,WAAA,CAAAgB,GAAA,EAACnB,QAAA,CAAA4B,MAAM;MACLC,IAAI,EAAC,IAAI;MACTC,OAAO,EAAC,iBAAiB;MACzBC,EAAE,EAAC,GAAG;MACNC,IAAI,EAAEvB,UAAW;MAAAM,QAAA,EAEhBL,IAAI,CAACa,aAAa,CAACC,iBAAQ,CAACS,wBAAwB;IAAC,CAChD,CAAC;EAAA,CACA,CAAC;AAEhB,CAAC;AAED1B,aAAa,CAAC2B,SAAS,GAAG;EACxBzB,UAAU,EAAE0B,kBAAS,CAACC,MAAM,CAACC;AAC/B,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAjC,OAAA,GAEaC,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UNLOCKED = exports.PARTIALLY_LOCKED = exports.LOCKED = void 0;
|
|
7
|
+
const UNLOCKED = exports.UNLOCKED = 'unlocked';
|
|
8
|
+
const LOCKED = exports.LOCKED = 'locked';
|
|
9
|
+
const PARTIALLY_LOCKED = exports.PARTIALLY_LOCKED = 'partial';
|
|
10
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["UNLOCKED","exports","LOCKED","PARTIALLY_LOCKED"],"sources":["../../src/section-outline/constants.js"],"sourcesContent":["const UNLOCKED = 'unlocked';\nconst LOCKED = 'locked';\nconst PARTIALLY_LOCKED = 'partial';\n\nexport {\n UNLOCKED,\n LOCKED,\n PARTIALLY_LOCKED,\n};\n"],"mappings":";;;;;;AAAA,MAAMA,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG,UAAU;AAC3B,MAAME,MAAM,GAAAD,OAAA,CAAAC,MAAA,GAAG,QAAQ;AACvB,MAAMC,gBAAgB,GAAAF,OAAA,CAAAE,gBAAA,GAAG,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _frontendPlatform = require("@edx/frontend-platform");
|
|
8
|
+
var _auth = require("@edx/frontend-platform/auth");
|
|
9
|
+
var _constants = require("../constants");
|
|
10
|
+
async function fetchSequenceBlocks(id) {
|
|
11
|
+
const LmsApiUrl = (0, _frontendPlatform.getConfig)().LMS_BASE_URL;
|
|
12
|
+
const sequenceUrl = `${LmsApiUrl}/api/courseware/sequence/${id}`;
|
|
13
|
+
const gatedContent = {};
|
|
14
|
+
try {
|
|
15
|
+
let gatedContentCount = 0;
|
|
16
|
+
const {
|
|
17
|
+
data: {
|
|
18
|
+
items
|
|
19
|
+
}
|
|
20
|
+
} = await (0, _auth.getAuthenticatedHttpClient)().get(sequenceUrl);
|
|
21
|
+
(0, _frontendPlatform.camelCaseObject)(items).forEach(item => {
|
|
22
|
+
const {
|
|
23
|
+
containsContentTypeGatedContent
|
|
24
|
+
} = item;
|
|
25
|
+
if (containsContentTypeGatedContent) {
|
|
26
|
+
gatedContentCount += 1;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
if (gatedContentCount === 0) {
|
|
30
|
+
gatedContent[id] = _constants.UNLOCKED;
|
|
31
|
+
} else if (gatedContentCount === items.length) {
|
|
32
|
+
gatedContent[id] = _constants.LOCKED;
|
|
33
|
+
} else {
|
|
34
|
+
gatedContent[id] = _constants.PARTIALLY_LOCKED;
|
|
35
|
+
}
|
|
36
|
+
} catch (error) {
|
|
37
|
+
gatedContent[id] = _constants.UNLOCKED;
|
|
38
|
+
}
|
|
39
|
+
return gatedContent;
|
|
40
|
+
}
|
|
41
|
+
var _default = exports.default = fetchSequenceBlocks;
|
|
42
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","names":["_frontendPlatform","require","_auth","_constants","fetchSequenceBlocks","id","LmsApiUrl","getConfig","LMS_BASE_URL","sequenceUrl","gatedContent","gatedContentCount","data","items","getAuthenticatedHttpClient","get","camelCaseObject","forEach","item","containsContentTypeGatedContent","UNLOCKED","length","LOCKED","PARTIALLY_LOCKED","error","_default","exports","default"],"sources":["../../../src/section-outline/data/api.js"],"sourcesContent":["import { getConfig, camelCaseObject } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';\nimport { LOCKED, PARTIALLY_LOCKED, UNLOCKED } from '../constants';\n\nasync function fetchSequenceBlocks(id) {\n const LmsApiUrl = getConfig().LMS_BASE_URL;\n const sequenceUrl = `${LmsApiUrl}/api/courseware/sequence/${id}`;\n const gatedContent = {};\n\n try {\n let gatedContentCount = 0;\n const { data: { items } } = await getAuthenticatedHttpClient().get(sequenceUrl);\n camelCaseObject(items).forEach(item => {\n const { containsContentTypeGatedContent } = item;\n if (containsContentTypeGatedContent) {\n gatedContentCount += 1;\n }\n });\n\n if (gatedContentCount === 0) {\n gatedContent[id] = UNLOCKED;\n } else if (gatedContentCount === items.length) {\n gatedContent[id] = LOCKED;\n } else {\n gatedContent[id] = PARTIALLY_LOCKED;\n }\n } catch (error) {\n gatedContent[id] = UNLOCKED;\n }\n\n return gatedContent;\n}\n\nexport default fetchSequenceBlocks;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,eAAeG,mBAAmBA,CAACC,EAAE,EAAE;EACrC,MAAMC,SAAS,GAAG,IAAAC,2BAAS,EAAC,CAAC,CAACC,YAAY;EAC1C,MAAMC,WAAW,GAAG,GAAGH,SAAS,4BAA4BD,EAAE,EAAE;EAChE,MAAMK,YAAY,GAAG,CAAC,CAAC;EAEvB,IAAI;IACF,IAAIC,iBAAiB,GAAG,CAAC;IACzB,MAAM;MAAEC,IAAI,EAAE;QAAEC;MAAM;IAAE,CAAC,GAAG,MAAM,IAAAC,gCAA0B,EAAC,CAAC,CAACC,GAAG,CAACN,WAAW,CAAC;IAC/E,IAAAO,iCAAe,EAACH,KAAK,CAAC,CAACI,OAAO,CAACC,IAAI,IAAI;MACrC,MAAM;QAAEC;MAAgC,CAAC,GAAGD,IAAI;MAChD,IAAIC,+BAA+B,EAAE;QACnCR,iBAAiB,IAAI,CAAC;MACxB;IACF,CAAC,CAAC;IAEF,IAAIA,iBAAiB,KAAK,CAAC,EAAE;MAC3BD,YAAY,CAACL,EAAE,CAAC,GAAGe,mBAAQ;IAC7B,CAAC,MAAM,IAAIT,iBAAiB,KAAKE,KAAK,CAACQ,MAAM,EAAE;MAC7CX,YAAY,CAACL,EAAE,CAAC,GAAGiB,iBAAM;IAC3B,CAAC,MAAM;MACLZ,YAAY,CAACL,EAAE,CAAC,GAAGkB,2BAAgB;IACrC;EACF,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdd,YAAY,CAACL,EAAE,CAAC,GAAGe,mBAAQ;EAC7B;EAEA,OAAOV,YAAY;AACrB;AAAC,IAAAe,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcvB,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _api = _interopRequireDefault(require("./data/api"));
|
|
9
|
+
var _constants = require("./constants");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
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; }
|
|
12
|
+
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; }
|
|
13
|
+
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; }
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
15
|
+
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); }
|
|
16
|
+
const getAllSequenceIds = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
sections
|
|
19
|
+
} = _ref;
|
|
20
|
+
let allSequenceIds = [];
|
|
21
|
+
const sectionToSequenceMap = {};
|
|
22
|
+
Object.entries(sections).forEach(_ref2 => {
|
|
23
|
+
let [id, section] = _ref2;
|
|
24
|
+
const {
|
|
25
|
+
sequenceIds
|
|
26
|
+
} = section;
|
|
27
|
+
allSequenceIds = [...allSequenceIds, ...sequenceIds];
|
|
28
|
+
sectionToSequenceMap[id] = sequenceIds;
|
|
29
|
+
});
|
|
30
|
+
return [sectionToSequenceMap, allSequenceIds];
|
|
31
|
+
};
|
|
32
|
+
const useSequenceContext = _ref3 => {
|
|
33
|
+
let {
|
|
34
|
+
sections,
|
|
35
|
+
isFBE
|
|
36
|
+
} = _ref3;
|
|
37
|
+
const [isLoading, setIsLoading] = (0, _react.useState)(true);
|
|
38
|
+
const [sequenceData, setSequenceData] = (0, _react.useState)({});
|
|
39
|
+
const [courseHasLockedContent, setCourseHasLockedContent] = (0, _react.useState)(false);
|
|
40
|
+
const [sectionToSequenceMap, sequenceIds] = (0, _react.useMemo)(() => getAllSequenceIds({
|
|
41
|
+
sections
|
|
42
|
+
}), [sections]);
|
|
43
|
+
const fetchSectionHasLockedContent = sectionId => {
|
|
44
|
+
const currentSequenceIds = sectionToSequenceMap[sectionId];
|
|
45
|
+
const hasLockedContent = currentSequenceIds.some(id => sequenceData[id] === _constants.LOCKED || sequenceData[id] === _constants.PARTIALLY_LOCKED);
|
|
46
|
+
return hasLockedContent;
|
|
47
|
+
};
|
|
48
|
+
(0, _react.useEffect)(() => {
|
|
49
|
+
const fetchData = async () => {
|
|
50
|
+
let lockedSequencesData = {};
|
|
51
|
+
await Promise.all(sequenceIds.map(async id => {
|
|
52
|
+
await (0, _api.default)(id).then(data => {
|
|
53
|
+
lockedSequencesData = _objectSpread(_objectSpread({}, lockedSequencesData), data);
|
|
54
|
+
});
|
|
55
|
+
}));
|
|
56
|
+
const hasLockedContent = Object.values(lockedSequencesData).some(sequenceLockedStatus => sequenceLockedStatus === _constants.LOCKED || sequenceLockedStatus === _constants.PARTIALLY_LOCKED);
|
|
57
|
+
setCourseHasLockedContent(hasLockedContent);
|
|
58
|
+
setSequenceData(lockedSequencesData);
|
|
59
|
+
};
|
|
60
|
+
if (isFBE) {
|
|
61
|
+
fetchData();
|
|
62
|
+
} else {
|
|
63
|
+
const lockedSequencesData = {};
|
|
64
|
+
sequenceIds.forEach(sequenceId => {
|
|
65
|
+
lockedSequencesData[sequenceId] = _constants.UNLOCKED;
|
|
66
|
+
setSequenceData(lockedSequencesData);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
setIsLoading(false);
|
|
70
|
+
}, [sections, isFBE, sequenceIds]);
|
|
71
|
+
return {
|
|
72
|
+
courseHasLockedContent,
|
|
73
|
+
fetchSectionHasLockedContent,
|
|
74
|
+
isLoading,
|
|
75
|
+
sequenceData
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
var _default = exports.default = useSequenceContext;
|
|
79
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","names":["_react","require","_api","_interopRequireDefault","_constants","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","getAllSequenceIds","_ref","sections","allSequenceIds","sectionToSequenceMap","entries","_ref2","id","section","sequenceIds","useSequenceContext","_ref3","isFBE","isLoading","setIsLoading","useState","sequenceData","setSequenceData","courseHasLockedContent","setCourseHasLockedContent","useMemo","fetchSectionHasLockedContent","sectionId","currentSequenceIds","hasLockedContent","some","LOCKED","PARTIALLY_LOCKED","useEffect","fetchData","lockedSequencesData","Promise","all","map","fetchSequenceBlocks","then","data","values","sequenceLockedStatus","sequenceId","UNLOCKED","_default","exports"],"sources":["../../src/section-outline/hooks.jsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\nimport fetchSequenceBlocks from './data/api';\nimport { LOCKED, PARTIALLY_LOCKED, UNLOCKED } from './constants';\n\nconst getAllSequenceIds = ({ sections }) => {\n let allSequenceIds = [];\n const sectionToSequenceMap = {};\n\n Object.entries(sections).forEach(([id, section]) => {\n const { sequenceIds } = section;\n\n allSequenceIds = [...allSequenceIds, ...sequenceIds];\n sectionToSequenceMap[id] = sequenceIds;\n });\n return [sectionToSequenceMap, allSequenceIds];\n};\n\nconst useSequenceContext = ({ sections, isFBE }) => {\n const [isLoading, setIsLoading] = useState(true);\n const [sequenceData, setSequenceData] = useState({});\n const [courseHasLockedContent, setCourseHasLockedContent] = useState(false);\n\n const [sectionToSequenceMap, sequenceIds] = useMemo(() => getAllSequenceIds({ sections }), [sections]);\n\n const fetchSectionHasLockedContent = (sectionId) => {\n const currentSequenceIds = sectionToSequenceMap[sectionId];\n const hasLockedContent = currentSequenceIds.some(id => (\n sequenceData[id] === LOCKED || sequenceData[id] === PARTIALLY_LOCKED\n ));\n\n return hasLockedContent;\n };\n\n useEffect(() => {\n const fetchData = async () => {\n let lockedSequencesData = {};\n\n await Promise.all(sequenceIds.map(async (id) => {\n await fetchSequenceBlocks(id).then((data) => {\n lockedSequencesData = { ...lockedSequencesData, ...data };\n });\n }));\n\n const hasLockedContent = Object.values(lockedSequencesData).some(\n sequenceLockedStatus => (\n sequenceLockedStatus === LOCKED || sequenceLockedStatus === PARTIALLY_LOCKED\n ),\n );\n\n setCourseHasLockedContent(hasLockedContent);\n setSequenceData(lockedSequencesData);\n };\n\n if (isFBE) {\n fetchData();\n } else {\n const lockedSequencesData = {};\n sequenceIds.forEach(sequenceId => {\n lockedSequencesData[sequenceId] = UNLOCKED;\n setSequenceData(lockedSequencesData);\n });\n }\n\n setIsLoading(false);\n }, [sections, isFBE, sequenceIds]);\n\n return {\n courseHasLockedContent,\n fetchSectionHasLockedContent,\n isLoading,\n sequenceData,\n };\n};\n\nexport default useSequenceContext;\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 _SectionList = _interopRequireDefault(require("./SectionList"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
var _default = exports.default = _SectionList.default;
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_SectionList","_interopRequireDefault","require","e","__esModule","default","_default","exports","SectionList"],"sources":["../../src/section-outline/index.js"],"sourcesContent":["import SectionList from './SectionList';\n\nexport default SectionList;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAwC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEzBG,oBAAW","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
sectionChipText: {
|
|
10
|
+
id: 'course-home.section-outline.section-item.chip.text',
|
|
11
|
+
defaultMessage: 'Limited content. Upgrade for full access.',
|
|
12
|
+
description: 'Message notifying user that some of the content in the section is locked'
|
|
13
|
+
},
|
|
14
|
+
sectionUpgradeButtonText: {
|
|
15
|
+
id: 'course-home.section-outline.section-item.button.label',
|
|
16
|
+
defaultMessage: 'Upgrade for full access',
|
|
17
|
+
description: 'Message for button that is used to upgrade'
|
|
18
|
+
},
|
|
19
|
+
sequenceTooltipContent: {
|
|
20
|
+
id: 'course-home.section-outline.sequence-item.tooltip.content',
|
|
21
|
+
defaultMessage: '{lockedStatus, select, partial {Limited content} other {Not Available}}.\nUpgrade for full access.',
|
|
22
|
+
description: 'Tooltip content dependent on the locked status of units in the sequence.'
|
|
23
|
+
},
|
|
24
|
+
upgradeBannerHeader: {
|
|
25
|
+
id: 'course-home.section-outline.upgrade-banner.header',
|
|
26
|
+
defaultMessage: 'Unlock graded assessments and assignments',
|
|
27
|
+
description: 'Header message for the upgrade banner above the section outline'
|
|
28
|
+
},
|
|
29
|
+
upgradeBannerMessage: {
|
|
30
|
+
id: 'course-home.section-outline.upgrade-banner.message',
|
|
31
|
+
defaultMessage: 'Upgrade today and enjoy unlimited access to all course material.',
|
|
32
|
+
description: 'Body message for the upgrade banner above the section outline'
|
|
33
|
+
},
|
|
34
|
+
upgradeBannerButtonLabel: {
|
|
35
|
+
id: 'course-home.section-outline.upgrade-banner.button.label',
|
|
36
|
+
defaultMessage: 'Upgrade now',
|
|
37
|
+
description: 'Button label for the upgrade button in the upgrade banner above the section outline'
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
var _default = exports.default = messages;
|
|
41
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","sectionChipText","id","defaultMessage","description","sectionUpgradeButtonText","sequenceTooltipContent","upgradeBannerHeader","upgradeBannerMessage","upgradeBannerButtonLabel","_default","exports","default"],"sources":["../../src/section-outline/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n sectionChipText: {\n id: 'course-home.section-outline.section-item.chip.text',\n defaultMessage: 'Limited content. Upgrade for full access.',\n description: 'Message notifying user that some of the content in the section is locked',\n },\n sectionUpgradeButtonText: {\n id: 'course-home.section-outline.section-item.button.label',\n defaultMessage: 'Upgrade for full access',\n description: 'Message for button that is used to upgrade',\n },\n sequenceTooltipContent: {\n id: 'course-home.section-outline.sequence-item.tooltip.content',\n defaultMessage: '{lockedStatus, select, partial {Limited content} other {Not Available}}.\\nUpgrade for full access.',\n description: 'Tooltip content dependent on the locked status of units in the sequence.',\n },\n upgradeBannerHeader: {\n id: 'course-home.section-outline.upgrade-banner.header',\n defaultMessage: 'Unlock graded assessments and assignments',\n description: 'Header message for the upgrade banner above the section outline',\n },\n upgradeBannerMessage: {\n id: 'course-home.section-outline.upgrade-banner.message',\n defaultMessage: 'Upgrade today and enjoy unlimited access to all course material.',\n description: 'Body message for the upgrade banner above the section outline',\n },\n upgradeBannerButtonLabel: {\n id: 'course-home.section-outline.upgrade-banner.button.label',\n defaultMessage: 'Upgrade now',\n description: 'Button label for the upgrade button in the upgrade banner above the section outline',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9BC,eAAe,EAAE;IACfC,EAAE,EAAE,oDAAoD;IACxDC,cAAc,EAAE,2CAA2C;IAC3DC,WAAW,EAAE;EACf,CAAC;EACDC,wBAAwB,EAAE;IACxBH,EAAE,EAAE,uDAAuD;IAC3DC,cAAc,EAAE,yBAAyB;IACzCC,WAAW,EAAE;EACf,CAAC;EACDE,sBAAsB,EAAE;IACtBJ,EAAE,EAAE,2DAA2D;IAC/DC,cAAc,EAAE,oGAAoG;IACpHC,WAAW,EAAE;EACf,CAAC;EACDG,mBAAmB,EAAE;IACnBL,EAAE,EAAE,mDAAmD;IACvDC,cAAc,EAAE,2CAA2C;IAC3DC,WAAW,EAAE;EACf,CAAC;EACDI,oBAAoB,EAAE;IACpBN,EAAE,EAAE,oDAAoD;IACxDC,cAAc,EAAE,kEAAkE;IAClFC,WAAW,EAAE;EACf,CAAC;EACDK,wBAAwB,EAAE;IACxBP,EAAE,EAAE,yDAAyD;IAC7DC,cAAc,EAAE,aAAa;IAC7BC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYb,QAAQ","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ var _i18n = require("@edx/frontend-platform/i18n");
|
|
|
10
10
|
var _paragon = require("@openedx/paragon");
|
|
11
11
|
var _certificatePreview = _interopRequireDefault(require("../upgrade-notification/certificate-preview"));
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
function _interopRequireDefault(
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
const BaseModal = _ref => {
|
|
15
15
|
let {
|
|
16
16
|
isOpen,
|
|
@@ -78,6 +78,7 @@ BaseModal.propTypes = {
|
|
|
78
78
|
offer: _propTypes.default.shape({
|
|
79
79
|
code: _propTypes.default.string
|
|
80
80
|
}),
|
|
81
|
+
// eslint-disable-next-line react/no-unused-prop-types
|
|
81
82
|
variationKey: _propTypes.default.string.isRequired,
|
|
82
83
|
courseId: _propTypes.default.string.isRequired,
|
|
83
84
|
close: _propTypes.default.func.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_i18n","_paragon","_certificatePreview","_jsxRuntime","
|
|
1
|
+
{"version":3,"file":"BaseModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_i18n","_paragon","_certificatePreview","_jsxRuntime","e","__esModule","default","BaseModal","_ref","isOpen","close","courseId","offer","callToActionButton","children","intl","useIntl","title","formatMessage","id","defaultMessage","description","jsx","MarketingModal","onClose","isBlocking","size","heroIsDark","heroNode","ModalDialog","Hero","className","style","background","borderTopLeftRadius","borderTopRightRadius","Content","bgColor","footerNode","jsxs","ActionRow","isStacked","code","defaultProps","propTypes","PropTypes","shape","string","variationKey","isRequired","func","bool","node","_default","exports"],"sources":["../../src/upgrade-modal/BaseModal.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { ActionRow, MarketingModal, ModalDialog } from '@openedx/paragon';\nimport CertificatePreview from '../upgrade-notification/certificate-preview';\n\nconst BaseModal = ({\n isOpen,\n close,\n courseId,\n offer,\n callToActionButton,\n children,\n}) => {\n const intl = useIntl();\n const title = intl.formatMessage({\n id: 'learning.upgrade-modal.title',\n defaultMessage: 'Pursue a verified certificate',\n description: 'Upgrade modal title',\n });\n\n return (\n <MarketingModal\n title={title}\n isOpen={isOpen}\n onClose={close}\n isBlocking\n size=\"md\"\n heroIsDark\n heroNode={(\n <ModalDialog.Hero\n className=\"justify-content-center\"\n style={{\n background: 'linear-gradient(#001B1E, #0E3639)',\n borderTopLeftRadius: '6.8px',\n borderTopRightRadius: '6.8px',\n }}\n >\n <ModalDialog.Hero.Content className=\"m-0 text-primary-500\">\n <CertificatePreview {...{ courseId, bgColor: 'bg-light-100' }} />\n </ModalDialog.Hero.Content>\n </ModalDialog.Hero>\n )}\n footerNode={(\n <ActionRow isStacked className=\"mb-2\">\n {offer && (\n <div className=\"text-center\">\n {intl.formatMessage(\n {\n id: 'learning.generic.upgradeNotification.code',\n defaultMessage: 'Use code {code} at checkout',\n description: 'Message to user with code for discounted course price',\n },\n {\n code: (<span className=\"font-weight-bold\">{offer.code}</span>),\n },\n )}\n </div>\n )}\n {callToActionButton}\n </ActionRow>\n )}\n >\n <div className=\"mx-n4\">\n {children}\n </div>\n </MarketingModal>\n );\n};\n\nBaseModal.defaultProps = {\n offer: null,\n};\n\nBaseModal.propTypes = {\n offer: PropTypes.shape({\n code: PropTypes.string,\n }),\n // eslint-disable-next-line react/no-unused-prop-types\n variationKey: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n close: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n callToActionButton: PropTypes.node.isRequired,\n children: PropTypes.node.isRequired,\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,12 +13,12 @@ var _upgradeButton = require("@src/generic/upgrade-button");
|
|
|
13
13
|
var _generic = require("../generic");
|
|
14
14
|
var _BaseModal = _interopRequireDefault(require("./BaseModal"));
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
-
function _interopRequireDefault(
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
17
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
18
18
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
19
|
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; }
|
|
20
20
|
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; }
|
|
21
|
-
function _defineProperty(
|
|
21
|
+
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; }
|
|
22
22
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
23
23
|
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 */
|
|
24
24
|
const DefaultUpgradeModal = _ref => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultUpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_analytics","_i18n","_paragon","_upgradeButton","_generic","_BaseModal","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","DefaultUpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","logClickPastExpiration","intl","useIntl","dateNow","Date","now","upgradeDeadlineDate","upgradeDeadline","pastDeadline","isFBE","contentTypeGatingEnabled","callToActionButton","jsx","UpgradeButton","onClick","block","Button","className","href","children","formatMessage","id","defaultMessage","description","UpsellTable","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","_default","exports"],"sources":["../../src/upgrade-modal/DefaultUpgradeModal.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button } from '@openedx/paragon';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { UpsellTable } from '../generic';\nimport BaseModal from './BaseModal';\n\nconst DefaultUpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n}) => {\n const upsellPageName = 'course_sequence_modal';\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n const promotionEventProperties = {\n creative: 'marketmodalupsell',\n name: 'In-Course Verification Prompt',\n position: 'marketing-modal-message',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n };\n\n useEffect(() => {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketmodalupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const logClick = () => {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketingmodal.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'marketing-modal-message',\n });\n sendTrackEvent('Promotion Clicked', promotionEventProperties);\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', {\n ...eventProperties,\n linkCategory: 'upgrade_modal',\n linkName: `${upsellPageName}_course_details`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n const intl = useIntl();\n const dateNow = Date.now();\n const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;\n const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;\n\n let callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logClick}\n verifiedMode={verifiedMode}\n block\n />\n );\n\n if (pastDeadline) {\n callToActionButton = (\n <Button\n className=\"w-100\"\n onClick={logClickPastExpiration}\n href={marketingUrl}\n >\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.upgrade-button.label',\n defaultMessage: 'View course details',\n description: 'Label for upgrade button',\n },\n )}\n </Button>\n );\n }\n\n return (\n <BaseModal\n {...{\n isOpen,\n close,\n courseId,\n offer,\n callToActionButton,\n }}\n >\n <UpsellTable {...{ isFBE, learningAssistantEnabled }} />\n </BaseModal>\n );\n};\n\nDefaultUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nDefaultUpgradeModal.propTypes = {\n verifiedMode: PropTypes.shape({\n price: PropTypes.number.isRequired,\n currencySymbol: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.string.isRequired,\n }),\n offer: PropTypes.shape({\n code: PropTypes.string,\n }),\n accessExpiration: PropTypes.shape({\n upgradeDeadline: PropTypes.string,\n }),\n datesBannerInfo: PropTypes.shape({\n contentTypeGatingEnabled: PropTypes.bool,\n }),\n marketingUrl: PropTypes.string.isRequired,\n org: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n close: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n learningAssistantEnabled: PropTypes.bool.isRequired,\n};\n\nexport default DefaultUpgradeModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DefaultUpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_analytics","_i18n","_paragon","_upgradeButton","_generic","_BaseModal","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","DefaultUpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","logClickPastExpiration","intl","useIntl","dateNow","Date","now","upgradeDeadlineDate","upgradeDeadline","pastDeadline","isFBE","contentTypeGatingEnabled","callToActionButton","jsx","UpgradeButton","onClick","block","Button","className","href","children","formatMessage","id","defaultMessage","description","UpsellTable","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","_default","exports"],"sources":["../../src/upgrade-modal/DefaultUpgradeModal.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button } from '@openedx/paragon';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { UpsellTable } from '../generic';\nimport BaseModal from './BaseModal';\n\nconst DefaultUpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n}) => {\n const upsellPageName = 'course_sequence_modal';\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n const promotionEventProperties = {\n creative: 'marketmodalupsell',\n name: 'In-Course Verification Prompt',\n position: 'marketing-modal-message',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n };\n\n useEffect(() => {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketmodalupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const logClick = () => {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketingmodal.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'marketing-modal-message',\n });\n sendTrackEvent('Promotion Clicked', promotionEventProperties);\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', {\n ...eventProperties,\n linkCategory: 'upgrade_modal',\n linkName: `${upsellPageName}_course_details`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n const intl = useIntl();\n const dateNow = Date.now();\n const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;\n const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;\n\n let callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logClick}\n verifiedMode={verifiedMode}\n block\n />\n );\n\n if (pastDeadline) {\n callToActionButton = (\n <Button\n className=\"w-100\"\n onClick={logClickPastExpiration}\n href={marketingUrl}\n >\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.upgrade-button.label',\n defaultMessage: 'View course details',\n description: 'Label for upgrade button',\n },\n )}\n </Button>\n );\n }\n\n return (\n <BaseModal\n {...{\n isOpen,\n close,\n courseId,\n offer,\n callToActionButton,\n }}\n >\n <UpsellTable {...{ isFBE, learningAssistantEnabled }} />\n </BaseModal>\n );\n};\n\nDefaultUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nDefaultUpgradeModal.propTypes = {\n verifiedMode: PropTypes.shape({\n price: PropTypes.number.isRequired,\n currencySymbol: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.string.isRequired,\n }),\n offer: PropTypes.shape({\n code: PropTypes.string,\n }),\n accessExpiration: PropTypes.shape({\n upgradeDeadline: PropTypes.string,\n }),\n datesBannerInfo: PropTypes.shape({\n contentTypeGatingEnabled: PropTypes.bool,\n }),\n marketingUrl: PropTypes.string.isRequired,\n org: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n close: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n learningAssistantEnabled: PropTypes.bool.isRequired,\n};\n\nexport default DefaultUpgradeModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,12 +15,12 @@ var _utils = _interopRequireDefault(require("../optimizely/utils"));
|
|
|
15
15
|
var _data = require("../data");
|
|
16
16
|
var _BaseModal = _interopRequireDefault(require("./BaseModal"));
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
-
function _interopRequireDefault(
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
19
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
20
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
21
21
|
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; }
|
|
22
22
|
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; }
|
|
23
|
-
function _defineProperty(
|
|
23
|
+
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; }
|
|
24
24
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
25
25
|
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); } /* All of this code includes the necessary functions to run and track an A/B experiment
|
|
26
26
|
using Optimizely. Please fully read through the code to know where changes
|