@edx/frontend-plugin-advertisements 2.4.1 → 2.6.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/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.scss +45 -2
- package/dist/section-outline/SectionHeader.js +5 -20
- package/dist/section-outline/SectionHeader.js.map +1 -1
- package/dist/section-outline/SectionItem.js +6 -20
- package/dist/section-outline/SectionItem.js.map +1 -1
- package/dist/section-outline/SectionList.js +13 -21
- package/dist/section-outline/SectionList.js.map +1 -1
- package/dist/section-outline/SequenceHeader.js +36 -12
- package/dist/section-outline/SequenceHeader.js.map +1 -1
- package/dist/section-outline/SequenceLink.js +9 -3
- package/dist/section-outline/SequenceLink.js.map +1 -1
- package/dist/section-outline/icons/OutlineLock.js +42 -0
- package/dist/section-outline/icons/OutlineLock.js.map +1 -0
- package/dist/section-outline/icons/index.js +14 -0
- package/dist/section-outline/icons/index.js.map +1 -0
- package/dist/section-outline/messages.js +5 -0
- package/dist/section-outline/messages.js.map +1 -1
- package/dist/upgrade-modal/NextUnitButton.js +1 -2
- package/dist/upgrade-modal/NextUnitButton.js.map +1 -1
- package/dist/upgrade-modal/UpgradeModal.js +1 -2
- package/dist/upgrade-modal/UpgradeModal.js.map +1 -1
- package/dist/upgrade-notification/UpgradeNotification.js +1 -2
- package/dist/upgrade-notification/UpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/certificate-preview/CertificatePreview.js +1 -2
- package/dist/upgrade-notification/certificate-preview/CertificatePreview.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -38,5 +38,6 @@ var _paywall = _interopRequireDefault(require("./paywall"));
|
|
|
38
38
|
var _upgradeModal = _interopRequireDefault(require("./upgrade-modal"));
|
|
39
39
|
var _generic = require("./generic");
|
|
40
40
|
var _sectionOutline = _interopRequireDefault(require("./section-outline"));
|
|
41
|
+
require("./index.scss");
|
|
41
42
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
42
43
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_upgradeNotification","_interopRequireDefault","require","_paywall","_upgradeModal","_generic","_sectionOutline","e","__esModule","default"],"sources":["../src/index.jsx"],"sourcesContent":["import UpgradeNotification from './upgrade-notification';\nimport LockPaywall from './paywall';\nimport NextUnitButton from './upgrade-modal';\nimport { UpsellBullets } from './generic';\nimport SectionList from './section-outline';\n\nexport {\n UpgradeNotification,\n LockPaywall,\n NextUnitButton,\n UpsellBullets,\n SectionList,\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,QAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","names":["_upgradeNotification","_interopRequireDefault","require","_paywall","_upgradeModal","_generic","_sectionOutline","e","__esModule","default"],"sources":["../src/index.jsx"],"sourcesContent":["import UpgradeNotification from './upgrade-notification';\nimport LockPaywall from './paywall';\nimport NextUnitButton from './upgrade-modal';\nimport { UpsellBullets } from './generic';\nimport SectionList from './section-outline';\nimport './index.scss';\n\nexport {\n UpgradeNotification,\n LockPaywall,\n NextUnitButton,\n UpsellBullets,\n SectionList,\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,QAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AACAA,OAAA;AAAsB,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
package/dist/index.scss
CHANGED
|
@@ -1,3 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
#courseHome-outline {
|
|
2
|
+
$icon-size: var(--pgn-size-icon-md);
|
|
3
|
+
$icon-padding: 5px;
|
|
4
|
+
$circle-dim: ($icon-size + ($icon-padding * 2));
|
|
5
|
+
$icon-spacing: calc(var(--pgn-spacing-spacer-base) * 0.5);
|
|
6
|
+
|
|
7
|
+
$default-icon-color: var(--pgn-color-primary-500);
|
|
8
|
+
$primary-color: var(--pgn-color-primary-500);
|
|
9
|
+
|
|
10
|
+
$icon-rail-right: calc(var(--pgn-spacing-spacer-base) * 0.35);
|
|
11
|
+
|
|
12
|
+
.collapsible-icon,
|
|
13
|
+
.btn-icon-md {
|
|
14
|
+
flex-shrink: 0;
|
|
15
|
+
width: $circle-dim;
|
|
16
|
+
height: $circle-dim;
|
|
17
|
+
border-radius: 50%;
|
|
18
|
+
padding: 0;
|
|
19
|
+
margin: 0 0 0 $icon-spacing;
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: center;
|
|
22
|
+
justify-content: center;
|
|
23
|
+
color: $default-icon-color;
|
|
24
|
+
background-color: transparent;
|
|
25
|
+
|
|
26
|
+
&:hover,
|
|
27
|
+
&:focus {
|
|
28
|
+
background-color: $primary-color;
|
|
29
|
+
color: var(--pgn-color-white);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
svg {
|
|
33
|
+
width: $icon-size;
|
|
34
|
+
height: $icon-size;
|
|
35
|
+
flex-shrink: 0;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
.btn-icon-md {
|
|
39
|
+
padding: $icon-padding;
|
|
40
|
+
}
|
|
41
|
+
.collapsible-icon,
|
|
42
|
+
.btn-icon-sm {
|
|
43
|
+
position: absolute;
|
|
44
|
+
right: $icon-rail-right;
|
|
45
|
+
}
|
|
3
46
|
}
|
|
@@ -5,11 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
-
var _i18n = require("@edx/frontend-platform/i18n");
|
|
9
8
|
var _paragon = require("@openedx/paragon");
|
|
10
|
-
var _icons = require("@openedx/paragon/icons");
|
|
11
9
|
var _SectionTitle = _interopRequireDefault(require("@src/course-home/outline-tab/section-outline/SectionTitle.tsx"));
|
|
12
|
-
var _messages = _interopRequireDefault(require("./messages"));
|
|
13
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
12
|
/* eslint import/no-unresolved: 0 */
|
|
@@ -17,33 +14,21 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
17
14
|
const SectionHeader = _ref => {
|
|
18
15
|
let {
|
|
19
16
|
complete,
|
|
20
|
-
hasLockedContent,
|
|
21
17
|
hideFromTOC,
|
|
22
|
-
title
|
|
23
|
-
upgradeUrl
|
|
18
|
+
title
|
|
24
19
|
} = _ref;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionTitle.default, {
|
|
20
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow, {
|
|
21
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionTitle.default, {
|
|
28
22
|
complete,
|
|
29
23
|
hideFromTOC,
|
|
30
24
|
title
|
|
31
|
-
})
|
|
32
|
-
onClick: () => window.open(upgradeUrl),
|
|
33
|
-
iconBefore: _icons.Locked,
|
|
34
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
35
|
-
className: "small font-weight-normal",
|
|
36
|
-
children: intl.formatMessage(_messages.default.sectionChipText)
|
|
37
|
-
})
|
|
38
|
-
})]
|
|
25
|
+
})
|
|
39
26
|
});
|
|
40
27
|
};
|
|
41
28
|
SectionHeader.propTypes = {
|
|
42
29
|
complete: _propTypes.default.bool.isRequired,
|
|
43
|
-
hasLockedContent: _propTypes.default.bool.isRequired,
|
|
44
30
|
hideFromTOC: _propTypes.default.bool.isRequired,
|
|
45
|
-
title: _propTypes.default.string.isRequired
|
|
46
|
-
upgradeUrl: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]).isRequired
|
|
31
|
+
title: _propTypes.default.string.isRequired
|
|
47
32
|
};
|
|
48
33
|
var _default = exports.default = SectionHeader;
|
|
49
34
|
//# sourceMappingURL=SectionHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionHeader.js","names":["_propTypes","_interopRequireDefault","require","
|
|
1
|
+
{"version":3,"file":"SectionHeader.js","names":["_propTypes","_interopRequireDefault","require","_paragon","_SectionTitle","_jsxRuntime","e","__esModule","default","SectionHeader","_ref","complete","hideFromTOC","title","jsx","ActionRow","children","propTypes","PropTypes","bool","isRequired","string","_default","exports"],"sources":["../../src/section-outline/SectionHeader.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport PropTypes from 'prop-types';\nimport { ActionRow } from '@openedx/paragon';\n\nimport SectionTitle from '@src/course-home/outline-tab/section-outline/SectionTitle.tsx';\n\nconst SectionHeader = ({\n complete,\n hideFromTOC,\n title,\n}) => (\n <ActionRow>\n <SectionTitle {...{ complete, hideFromTOC, title }} />\n </ActionRow>\n);\n\nSectionHeader.propTypes = {\n complete: PropTypes.bool.isRequired,\n hideFromTOC: PropTypes.bool.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nexport default SectionHeader;\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAyF,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAJzF;;AAMA,MAAMG,aAAa,GAAGC,IAAA;EAAA,IAAC;IACrBC,QAAQ;IACRC,WAAW;IACXC;EACF,CAAC,GAAAH,IAAA;EAAA,oBACC,IAAAL,WAAA,CAAAS,GAAA,EAACX,QAAA,CAAAY,SAAS;IAAAC,QAAA,eACR,IAAAX,WAAA,CAAAS,GAAA,EAACV,aAAA,CAAAI,OAAY;MAAOG,QAAQ;MAAEC,WAAW;MAAEC;IAAK,CAAK;EAAC,CAC7C,CAAC;AAAA,CACb;AAEDJ,aAAa,CAACQ,SAAS,GAAG;EACxBN,QAAQ,EAAEO,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCR,WAAW,EAAEM,kBAAS,CAACC,IAAI,CAACC,UAAU;EACtCP,KAAK,EAAEK,kBAAS,CAACG,MAAM,CAACD;AAC1B,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAf,OAAA,GAEaC,aAAa","ignoreList":[]}
|
|
@@ -14,7 +14,6 @@ var _messages = _interopRequireDefault(require("@src/generic/messages"));
|
|
|
14
14
|
var _messages2 = _interopRequireDefault(require("@src/course-home/outline-tab/messages.ts"));
|
|
15
15
|
var _SectionHeader = _interopRequireDefault(require("./SectionHeader"));
|
|
16
16
|
var _SequenceLink = _interopRequireDefault(require("./SequenceLink"));
|
|
17
|
-
var _messages3 = _interopRequireDefault(require("./messages"));
|
|
18
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
19
|
/* eslint import/no-unresolved: 0 */
|
|
@@ -24,9 +23,7 @@ const SectionItem = _ref => {
|
|
|
24
23
|
courseId,
|
|
25
24
|
defaultOpen,
|
|
26
25
|
expand,
|
|
27
|
-
fetchSectionHasLockedContent,
|
|
28
26
|
section,
|
|
29
|
-
sectionId,
|
|
30
27
|
sequenceData,
|
|
31
28
|
upgradeUrl
|
|
32
29
|
} = _ref;
|
|
@@ -43,7 +40,6 @@ const SectionItem = _ref => {
|
|
|
43
40
|
}
|
|
44
41
|
} = (0, _modelStore.useModel)('outline', courseId);
|
|
45
42
|
const [open, setOpen] = (0, _react.useState)(defaultOpen);
|
|
46
|
-
const hasLockedContent = fetchSectionHasLockedContent(sectionId);
|
|
47
43
|
(0, _react.useEffect)(() => {
|
|
48
44
|
setOpen(expand);
|
|
49
45
|
}, [expand]);
|
|
@@ -51,16 +47,14 @@ const SectionItem = _ref => {
|
|
|
51
47
|
setOpen(defaultOpen);
|
|
52
48
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
53
49
|
}, []);
|
|
54
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
55
|
-
children:
|
|
50
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
|
|
51
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Collapsible, {
|
|
56
52
|
className: "mb-2",
|
|
57
53
|
styling: "card-lg",
|
|
58
54
|
title: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionHeader.default, {
|
|
59
55
|
complete,
|
|
60
|
-
hasLockedContent,
|
|
61
56
|
hideFromTOC,
|
|
62
|
-
title
|
|
63
|
-
upgradeUrl
|
|
57
|
+
title
|
|
64
58
|
}),
|
|
65
59
|
open: open,
|
|
66
60
|
onToggle: () => setOpen(!open),
|
|
@@ -85,26 +79,18 @@ const SectionItem = _ref => {
|
|
|
85
79
|
courseId: courseId,
|
|
86
80
|
sequence: sequences[sequenceId],
|
|
87
81
|
first: index === 0,
|
|
88
|
-
sequenceData: sequenceData
|
|
82
|
+
sequenceData: sequenceData,
|
|
83
|
+
upgradeUrl: upgradeUrl
|
|
89
84
|
}, sequenceId))
|
|
90
85
|
})
|
|
91
|
-
})
|
|
92
|
-
className: "mr-3 mt-2.5 mb-3",
|
|
93
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
|
|
94
|
-
as: "a",
|
|
95
|
-
href: upgradeUrl,
|
|
96
|
-
children: intl.formatMessage(_messages3.default.sectionUpgradeButtonText)
|
|
97
|
-
})
|
|
98
|
-
})]
|
|
86
|
+
})
|
|
99
87
|
});
|
|
100
88
|
};
|
|
101
89
|
SectionItem.propTypes = {
|
|
102
90
|
courseId: _propTypes.default.string.isRequired,
|
|
103
91
|
defaultOpen: _propTypes.default.bool.isRequired,
|
|
104
92
|
expand: _propTypes.default.bool.isRequired,
|
|
105
|
-
fetchSectionHasLockedContent: _propTypes.default.func.isRequired,
|
|
106
93
|
section: _propTypes.default.shape().isRequired,
|
|
107
|
-
sectionId: _propTypes.default.string.isRequired,
|
|
108
94
|
sequenceData: _propTypes.default.shape().isRequired,
|
|
109
95
|
upgradeUrl: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]).isRequired
|
|
110
96
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionItem.js","names":["_react","require","_propTypes","_interopRequireDefault","_i18n","_paragon","_icons","_modelStore","_messages","_messages2","_SectionHeader","_SequenceLink","
|
|
1
|
+
{"version":3,"file":"SectionItem.js","names":["_react","require","_propTypes","_interopRequireDefault","_i18n","_paragon","_icons","_modelStore","_messages","_messages2","_SectionHeader","_SequenceLink","_jsxRuntime","e","__esModule","default","SectionItem","_ref","courseId","defaultOpen","expand","section","sequenceData","upgradeUrl","intl","useIntl","complete","sequenceIds","title","hideFromTOC","courseBlocks","sequences","useModel","open","setOpen","useState","useEffect","jsx","children","Collapsible","className","styling","onToggle","iconWhenClosed","IconButton","alt","formatMessage","outlineMessages","openSection","iconAs","Plus","onClick","size","iconWhenOpen","genericMessages","close","Minus","map","sequenceId","index","id","sequence","first","propTypes","PropTypes","string","isRequired","bool","shape","oneOfType","_default","exports"],"sources":["../../src/section-outline/SectionItem.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n Collapsible,\n IconButton,\n} from '@openedx/paragon';\nimport { Minus, Plus } from '@openedx/paragon/icons';\n\nimport { useModel } from '@src/generic/model-store';\nimport genericMessages from '@src/generic/messages';\nimport outlineMessages from '@src/course-home/outline-tab/messages.ts';\nimport SectionHeader from './SectionHeader';\nimport SequenceLink from './SequenceLink';\n\nconst SectionItem = ({\n courseId,\n defaultOpen,\n expand,\n section,\n sequenceData,\n upgradeUrl,\n}) => {\n const intl = useIntl();\n\n const {\n complete,\n sequenceIds,\n title,\n hideFromTOC,\n } = section;\n const {\n courseBlocks: {\n sequences,\n },\n } = useModel('outline', courseId);\n\n const [open, setOpen] = useState(defaultOpen);\n\n useEffect(() => {\n setOpen(expand);\n }, [expand]);\n\n useEffect(() => {\n setOpen(defaultOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <li>\n <Collapsible\n className=\"mb-2\"\n styling=\"card-lg\"\n title={(\n <SectionHeader\n {...{\n complete,\n hideFromTOC,\n title,\n }}\n />\n )}\n open={open}\n onToggle={() => setOpen(!open)}\n iconWhenClosed={(\n <IconButton\n alt={intl.formatMessage(outlineMessages.openSection)}\n iconAs={Plus}\n onClick={() => setOpen(true)}\n size=\"sm\"\n />\n )}\n iconWhenOpen={(\n <IconButton\n alt={intl.formatMessage(genericMessages.close)}\n iconAs={Minus}\n onClick={() => { setOpen(false); }}\n size=\"sm\"\n />\n )}\n >\n <ol className=\"list-unstyled my-n3 ml-n2.5 mr-n4\">\n {sequenceIds.map((sequenceId, index) => (\n <SequenceLink\n key={sequenceId}\n id={sequenceId}\n courseId={courseId}\n sequence={sequences[sequenceId]}\n first={index === 0}\n sequenceData={sequenceData}\n upgradeUrl={upgradeUrl}\n />\n ))}\n </ol>\n </Collapsible>\n </li>\n );\n};\n\nSectionItem.propTypes = {\n courseId: PropTypes.string.isRequired,\n defaultOpen: PropTypes.bool.isRequired,\n expand: PropTypes.bool.isRequired,\n section: PropTypes.shape().isRequired,\n sequenceData: PropTypes.shape().isRequired,\n upgradeUrl: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).isRequired,\n};\n\nexport default SectionItem;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,14 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
8
|
var _react = require("react");
|
|
9
|
-
var _reactDom = require("react-dom");
|
|
10
9
|
var _i18n = require("@edx/frontend-platform/i18n");
|
|
11
10
|
var _hooks = require("@src/data/hooks");
|
|
12
11
|
var _modelStore = require("@src/generic/model-store");
|
|
13
12
|
var _PageLoading = _interopRequireDefault(require("@src/generic/PageLoading"));
|
|
14
13
|
var _messages = _interopRequireDefault(require("@src/tab-page/messages"));
|
|
15
14
|
var _SectionItem = _interopRequireDefault(require("./SectionItem"));
|
|
16
|
-
var _UpgradeBanner = _interopRequireDefault(require("./UpgradeBanner"));
|
|
17
15
|
var _hooks2 = _interopRequireDefault(require("./hooks"));
|
|
18
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -37,7 +35,6 @@ const SectionList = _ref => {
|
|
|
37
35
|
const isFBE = !!datesBannerInfo?.contentTypeGatingEnabled;
|
|
38
36
|
const upgradeUrl = isFBE && verifiedMode?.upgradeUrl;
|
|
39
37
|
const {
|
|
40
|
-
courseHasLockedContent,
|
|
41
38
|
fetchSectionHasLockedContent,
|
|
42
39
|
isLoading,
|
|
43
40
|
sequenceData
|
|
@@ -45,7 +42,6 @@ const SectionList = _ref => {
|
|
|
45
42
|
sections,
|
|
46
43
|
isFBE
|
|
47
44
|
});
|
|
48
|
-
const hasLockedContent = upgradeUrl && courseHasLockedContent;
|
|
49
45
|
(0, _react.useEffect)(() => {
|
|
50
46
|
const referenceNode = document.getElementById('expand-button-row');
|
|
51
47
|
const portalNode = document.createElement('div');
|
|
@@ -57,23 +53,19 @@ const SectionList = _ref => {
|
|
|
57
53
|
srMessage: intl.formatMessage(_messages.default.loading)
|
|
58
54
|
});
|
|
59
55
|
}
|
|
60
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
sequenceData: sequenceData,
|
|
74
|
-
fetchSectionHasLockedContent: fetchSectionHasLockedContent
|
|
75
|
-
}, sectionId))
|
|
76
|
-
})]
|
|
56
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("ol", {
|
|
57
|
+
id: "courseHome-outline",
|
|
58
|
+
className: "list-unstyled",
|
|
59
|
+
children: sectionIds.map(sectionId => /*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionItem.default, {
|
|
60
|
+
sectionId: sectionId,
|
|
61
|
+
defaultOpen: sections[sectionId].resumeBlock,
|
|
62
|
+
expand: expandAll,
|
|
63
|
+
section: sections[sectionId],
|
|
64
|
+
upgradeUrl: upgradeUrl,
|
|
65
|
+
courseId: courseId,
|
|
66
|
+
sequenceData: sequenceData,
|
|
67
|
+
fetchSectionHasLockedContent: fetchSectionHasLockedContent
|
|
68
|
+
}, sectionId))
|
|
77
69
|
});
|
|
78
70
|
};
|
|
79
71
|
SectionList.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionList.js","names":["_propTypes","_interopRequireDefault","require","_react","
|
|
1
|
+
{"version":3,"file":"SectionList.js","names":["_propTypes","_interopRequireDefault","require","_react","_i18n","_hooks","_modelStore","_PageLoading","_messages","_SectionItem","_hooks2","_jsxRuntime","e","__esModule","default","SectionList","_ref","expandAll","sections","sectionIds","intl","useIntl","portalRef","useRef","courseId","useContextId","verifiedMode","useModel","datesBannerInfo","isFBE","contentTypeGatingEnabled","upgradeUrl","fetchSectionHasLockedContent","isLoading","sequenceData","useSequenceContext","useEffect","referenceNode","document","getElementById","portalNode","createElement","parentNode","insertBefore","current","jsx","srMessage","formatMessage","genericMessages","loading","id","className","children","map","sectionId","defaultOpen","resumeBlock","expand","section","propTypes","PropTypes","bool","isRequired","shape","arrayOf","string","_default","exports"],"sources":["../../src/section-outline/SectionList.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport PropTypes from 'prop-types';\nimport { useRef, useEffect } from 'react';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { useContextId } from '@src/data/hooks';\nimport { useModel } from '@src/generic/model-store';\nimport PageLoading from '@src/generic/PageLoading';\nimport genericMessages from '@src/tab-page/messages';\nimport SectionItem from './SectionItem';\nimport useSequenceContext from './hooks';\n\nconst SectionList = ({ expandAll, sections, sectionIds }) => {\n const intl = useIntl();\n const portalRef = useRef(null);\n const courseId = useContextId();\n\n const {\n verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n const {\n datesBannerInfo,\n } = useModel('outline', courseId);\n\n const isFBE = !!datesBannerInfo?.contentTypeGatingEnabled;\n const upgradeUrl = isFBE && verifiedMode?.upgradeUrl;\n\n const {\n fetchSectionHasLockedContent,\n isLoading,\n sequenceData,\n } = useSequenceContext({ sections, isFBE });\n\n useEffect(() => {\n const referenceNode = document.getElementById('expand-button-row');\n const portalNode = document.createElement('div');\n referenceNode.parentNode.insertBefore(portalNode, referenceNode);\n portalRef.current = portalNode;\n }, []);\n\n if (isLoading) {\n return (\n <PageLoading srMessage={intl.formatMessage(genericMessages.loading)} />\n );\n }\n\n return (\n <ol id=\"courseHome-outline\" className=\"list-unstyled\">\n {sectionIds.map((sectionId) => (\n <SectionItem\n key={sectionId}\n sectionId={sectionId}\n defaultOpen={sections[sectionId].resumeBlock}\n expand={expandAll}\n section={sections[sectionId]}\n upgradeUrl={upgradeUrl}\n courseId={courseId}\n sequenceData={sequenceData}\n fetchSectionHasLockedContent={fetchSectionHasLockedContent}\n />\n ))}\n </ol>\n );\n};\n\nSectionList.propTypes = {\n expandAll: PropTypes.bool.isRequired,\n sections: PropTypes.shape().isRequired,\n sectionIds: PropTypes.arrayOf(PropTypes.string).isRequired,\n};\n\nexport default SectionList;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,13 +8,18 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
8
8
|
var _i18n = require("@edx/frontend-platform/i18n");
|
|
9
9
|
var _paragon = require("@openedx/paragon");
|
|
10
10
|
var _icons = require("@openedx/paragon/icons");
|
|
11
|
+
var _analytics = require("@edx/frontend-platform/analytics");
|
|
11
12
|
var _SequenceTitle = _interopRequireDefault(require("@src/course-home/outline-tab/section-outline/SequenceTitle"));
|
|
12
13
|
var _messages = _interopRequireDefault(require("./messages"));
|
|
13
14
|
var _constants = require("./constants");
|
|
15
|
+
var _OutlineLock = _interopRequireDefault(require("./icons/OutlineLock"));
|
|
14
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
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; }
|
|
19
|
+
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; }
|
|
20
|
+
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; }
|
|
21
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
22
|
+
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 */
|
|
18
23
|
const SequenceHeader = _ref => {
|
|
19
24
|
let {
|
|
20
25
|
complete,
|
|
@@ -22,29 +27,46 @@ const SequenceHeader = _ref => {
|
|
|
22
27
|
lockedStatus,
|
|
23
28
|
sequence,
|
|
24
29
|
showLink,
|
|
25
|
-
title
|
|
30
|
+
title,
|
|
31
|
+
courseId,
|
|
32
|
+
upgradeUrl
|
|
26
33
|
} = _ref;
|
|
27
34
|
const intl = (0, _i18n.useIntl)();
|
|
28
35
|
const isLocked = lockedStatus !== _constants.UNLOCKED;
|
|
36
|
+
const eventProperties = {
|
|
37
|
+
courserun_key: courseId
|
|
38
|
+
};
|
|
39
|
+
const logLockIconClick = () => {
|
|
40
|
+
(0, _analytics.sendTrackingLogEvent)('edx.bi.course.enrollment.sequence.locked.icon.upgrade.clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
41
|
+
linkCategory: 'locked_upgrade',
|
|
42
|
+
linkName: 'locked_sequence',
|
|
43
|
+
linkType: 'button',
|
|
44
|
+
pageName: 'locked_sequence'
|
|
45
|
+
}));
|
|
46
|
+
};
|
|
29
47
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
|
|
30
48
|
direction: "horizontal",
|
|
31
49
|
gap: 2,
|
|
32
50
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SequenceTitle.default, {
|
|
33
|
-
complete,
|
|
34
|
-
showLink,
|
|
35
|
-
title,
|
|
36
|
-
sequence,
|
|
37
|
-
id
|
|
38
|
-
}), isLocked && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButtonWithTooltip, {
|
|
51
|
+
complete: complete,
|
|
52
|
+
showLink: sequence.isPreview ? false : showLink,
|
|
53
|
+
title: title,
|
|
54
|
+
sequence: sequence,
|
|
55
|
+
id: id
|
|
56
|
+
}), (isLocked || sequence.isPreview) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButtonWithTooltip, {
|
|
39
57
|
tooltipPlacement: "top",
|
|
40
58
|
src: _icons.Locked,
|
|
41
59
|
tooltipContent: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
42
|
-
children: intl.formatMessage(_messages.default.sequenceTooltipContent, {
|
|
60
|
+
children: sequence.isPreview ? intl.formatMessage(_messages.default.isPreviewTooltipContent) : intl.formatMessage(_messages.default.sequenceTooltipContent, {
|
|
43
61
|
lockedStatus
|
|
44
62
|
})
|
|
45
63
|
}),
|
|
46
64
|
variant: "primary",
|
|
47
|
-
iconAs: _paragon.Icon
|
|
65
|
+
iconAs: isLocked ? _OutlineLock.default : _paragon.Icon,
|
|
66
|
+
onClick: () => {
|
|
67
|
+
logLockIconClick();
|
|
68
|
+
window.open(upgradeUrl);
|
|
69
|
+
}
|
|
48
70
|
})]
|
|
49
71
|
});
|
|
50
72
|
};
|
|
@@ -54,7 +76,9 @@ SequenceHeader.propTypes = {
|
|
|
54
76
|
lockedStatus: _propTypes.default.string.isRequired,
|
|
55
77
|
sequence: _propTypes.default.shape().isRequired,
|
|
56
78
|
showLink: _propTypes.default.bool.isRequired,
|
|
57
|
-
title: _propTypes.default.string.isRequired
|
|
79
|
+
title: _propTypes.default.string.isRequired,
|
|
80
|
+
courseId: _propTypes.default.string.isRequired,
|
|
81
|
+
upgradeUrl: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]).isRequired
|
|
58
82
|
};
|
|
59
83
|
var _default = exports.default = SequenceHeader;
|
|
60
84
|
//# sourceMappingURL=SequenceHeader.js.map
|
|
@@ -1 +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 {
|
|
1
|
+
{"version":3,"file":"SequenceHeader.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_analytics","_SequenceTitle","_messages","_constants","_OutlineLock","_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","SequenceHeader","_ref","complete","id","lockedStatus","sequence","showLink","title","courseId","upgradeUrl","intl","useIntl","isLocked","UNLOCKED","eventProperties","courserun_key","logLockIconClick","sendTrackingLogEvent","linkCategory","linkName","linkType","pageName","jsxs","Stack","direction","gap","children","jsx","isPreview","IconButtonWithTooltip","tooltipPlacement","src","Locked","tooltipContent","formatMessage","messages","isPreviewTooltipContent","sequenceTooltipContent","variant","iconAs","OutlineLock","Icon","onClick","window","open","propTypes","PropTypes","bool","isRequired","string","shape","oneOfType","_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';\nimport { sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\n\nimport SequenceTitle from '@src/course-home/outline-tab/section-outline/SequenceTitle';\nimport messages from './messages';\nimport { UNLOCKED } from './constants';\nimport OutlineLock from './icons/OutlineLock';\n\nconst SequenceHeader = ({\n complete,\n id,\n lockedStatus,\n sequence,\n showLink,\n title,\n courseId,\n upgradeUrl,\n}) => {\n const intl = useIntl();\n const isLocked = lockedStatus !== UNLOCKED;\n\n const eventProperties = {\n courserun_key: courseId,\n };\n\n const logLockIconClick = () => {\n sendTrackingLogEvent(\n 'edx.bi.course.enrollment.sequence.locked.icon.upgrade.clicked',\n {\n ...eventProperties,\n linkCategory: 'locked_upgrade',\n linkName: 'locked_sequence',\n linkType: 'button',\n pageName: 'locked_sequence',\n },\n );\n };\n\n return (\n <Stack direction=\"horizontal\" gap={2}>\n <SequenceTitle\n complete={complete}\n showLink={sequence.isPreview ? false : showLink}\n title={title}\n sequence={sequence}\n id={id}\n />\n {(isLocked || sequence.isPreview) && (\n <IconButtonWithTooltip\n tooltipPlacement=\"top\"\n src={Locked}\n tooltipContent={(\n <span>\n {\n sequence.isPreview\n ? intl.formatMessage(messages.isPreviewTooltipContent)\n : intl.formatMessage(messages.sequenceTooltipContent, { lockedStatus })\n }\n </span>\n )}\n variant=\"primary\"\n iconAs={isLocked ? OutlineLock : Icon}\n onClick={() => {\n logLockIconClick();\n window.open(upgradeUrl);\n }}\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 courseId: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).isRequired,\n};\n\nexport default SequenceHeader;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,7 +19,9 @@ const SequenceLink = _ref => {
|
|
|
19
19
|
id,
|
|
20
20
|
first,
|
|
21
21
|
sequence,
|
|
22
|
-
sequenceData
|
|
22
|
+
sequenceData,
|
|
23
|
+
courseId,
|
|
24
|
+
upgradeUrl
|
|
23
25
|
} = _ref;
|
|
24
26
|
const {
|
|
25
27
|
complete,
|
|
@@ -44,7 +46,9 @@ const SequenceLink = _ref => {
|
|
|
44
46
|
lockedStatus,
|
|
45
47
|
sequence,
|
|
46
48
|
showLink,
|
|
47
|
-
title
|
|
49
|
+
title,
|
|
50
|
+
courseId,
|
|
51
|
+
upgradeUrl
|
|
48
52
|
}), hideFromTOC && /*#__PURE__*/(0, _jsxRuntime.jsx)(_HiddenSequenceLink.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_SequenceDueDate.default, {
|
|
49
53
|
due,
|
|
50
54
|
id,
|
|
@@ -57,7 +61,9 @@ SequenceLink.propTypes = {
|
|
|
57
61
|
id: _propTypes.default.string.isRequired,
|
|
58
62
|
first: _propTypes.default.bool.isRequired,
|
|
59
63
|
sequence: _propTypes.default.shape().isRequired,
|
|
60
|
-
sequenceData: _propTypes.default.shape().isRequired
|
|
64
|
+
sequenceData: _propTypes.default.shape().isRequired,
|
|
65
|
+
courseId: _propTypes.default.string.isRequired,
|
|
66
|
+
upgradeUrl: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]).isRequired
|
|
61
67
|
};
|
|
62
68
|
var _default = exports.default = SequenceLink;
|
|
63
69
|
//# sourceMappingURL=SequenceLink.js.map
|
|
@@ -1 +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,
|
|
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","courseId","upgradeUrl","complete","description","due","showLink","title","hideFromTOC","lockedStatus","isLocked","UNLOCKED","jsx","children","jsxs","className","classNames","propTypes","PropTypes","string","isRequired","bool","shape","oneOfType","_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 courseId,\n upgradeUrl,\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 courseId,\n upgradeUrl,\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 courseId: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).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,IAOf;EAAA,IAPgB;IACpBC,EAAE;IACFC,KAAK;IACLC,QAAQ;IACRC,YAAY;IACZC,QAAQ;IACRC;EACF,CAAC,GAAAN,IAAA;EACC,MAAM;IACJO,QAAQ;IACRC,WAAW;IACXC,GAAG;IACHC,QAAQ;IACRC,KAAK;IACLC;EACF,CAAC,GAAGT,QAAQ;EAEZ,MAAMU,YAAY,GAAGT,YAAY,CAACH,EAAE,CAAC;EACrC,MAAMa,QAAQ,GAAGD,YAAY,KAAKE,mBAAQ;EAE1C,oBACE,IAAApB,WAAA,CAAAqB,GAAA;IAAAC,QAAA,eACE,IAAAtB,WAAA,CAAAuB,IAAA;MAAKC,SAAS,EAAE,IAAAC,mBAAU,EAAC,WAAW,EAAE;QAAE,yBAAyB,EAAE,CAAClB;MAAM,CAAC,EAAE;QAAE,gBAAgB,EAAEY;MAAS,CAAC,CAAE;MAAAG,QAAA,gBAC7G,IAAAtB,WAAA,CAAAqB,GAAA,EAACvB,eAAA,CAAAK,OAAc;QAEXS,QAAQ;QACRN,EAAE;QACFY,YAAY;QACZV,QAAQ;QACRO,QAAQ;QACRC,KAAK;QACLN,QAAQ;QACRC;MAAU,CAEb,CAAC,EACDM,WAAW,iBACV,IAAAjB,WAAA,CAAAqB,GAAA,EAACxB,mBAAA,CAAAM,OAAkB,IAAE,CACtB,eACD,IAAAH,WAAA,CAAAqB,GAAA,EAACzB,gBAAA,CAAAO,OAAe;QAAOW,GAAG;QAAER,EAAE;QAAEO;MAAW,CAAK,CAAC;IAAA,CAC9C;EAAC,CACJ,CAAC;AAET,CAAC;AAEDT,YAAY,CAACsB,SAAS,GAAG;EACvBpB,EAAE,EAAEqB,kBAAS,CAACC,MAAM,CAACC,UAAU;EAC/BtB,KAAK,EAAEoB,kBAAS,CAACG,IAAI,CAACD,UAAU;EAChCrB,QAAQ,EAAEmB,kBAAS,CAACI,KAAK,CAAC,CAAC,CAACF,UAAU;EACtCpB,YAAY,EAAEkB,kBAAS,CAACI,KAAK,CAAC,CAAC,CAACF,UAAU;EAC1CnB,QAAQ,EAAEiB,kBAAS,CAACC,MAAM,CAACC,UAAU;EACrClB,UAAU,EAAEgB,kBAAS,CAACK,SAAS,CAAC,CAACL,kBAAS,CAACC,MAAM,EAAED,kBAAS,CAACG,IAAI,CAAC,CAAC,CAACD;AACtE,CAAC;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAA/B,OAAA,GAEaC,YAAY","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 _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
const OutlineLock = props => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
11
|
+
className: `${props.className} inline-block`,
|
|
12
|
+
style: {
|
|
13
|
+
position: 'relative',
|
|
14
|
+
width: '24px',
|
|
15
|
+
height: '24px'
|
|
16
|
+
},
|
|
17
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", {
|
|
18
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
19
|
+
width: "24",
|
|
20
|
+
height: "24",
|
|
21
|
+
viewBox: "0 0 24 24",
|
|
22
|
+
fill: "none",
|
|
23
|
+
style: {
|
|
24
|
+
position: 'absolute',
|
|
25
|
+
top: '50%',
|
|
26
|
+
left: '50%',
|
|
27
|
+
transform: 'translate(-50%, -50%)'
|
|
28
|
+
},
|
|
29
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
|
|
30
|
+
d: "M4 22V8H7V6C7 4.61667 7.4875 3.4375 8.4625 2.4625C9.4375 1.4875 10.6167 1 12 1C13.3833 1 14.5625 1.4875 15.5375 2.4625C16.5125 3.4375 17 4.61667 17 6V8H20V22H4ZM6 20H18V10H6V20ZM12 17C12.55 17 13.0208 16.8042 13.4125 16.4125C13.8042 16.0208 14 15.55 14 15C14 14.45 13.8042 13.9792 13.4125 13.5875C13.0208 13.1958 12.55 13 12 13C11.45 13 10.9792 13.1958 10.5875 13.5875C10.1958 13.9792 10 14.45 10 15C10 15.55 10.1958 16.0208 10.5875 16.4125C10.9792 16.8042 11.45 17 12 17ZM9 8H15V6C15 5.16667 14.7083 4.45833 14.125 3.875C13.5417 3.29167 12.8333 3 12 3C11.1667 3 10.4583 3.29167 9.875 3.875C9.29167 4.45833 9 5.16667 9 6V8Z",
|
|
31
|
+
fill: "currentColor"
|
|
32
|
+
})
|
|
33
|
+
})
|
|
34
|
+
});
|
|
35
|
+
OutlineLock.defaultProps = {
|
|
36
|
+
className: ''
|
|
37
|
+
};
|
|
38
|
+
OutlineLock.propTypes = {
|
|
39
|
+
className: _propTypes.default.string
|
|
40
|
+
};
|
|
41
|
+
var _default = exports.default = OutlineLock;
|
|
42
|
+
//# sourceMappingURL=OutlineLock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutlineLock.js","names":["_propTypes","_interopRequireDefault","require","_jsxRuntime","e","__esModule","default","OutlineLock","props","jsx","className","style","position","width","height","children","xmlns","viewBox","fill","top","left","transform","d","defaultProps","propTypes","PropTypes","string","_default","exports"],"sources":["../../../src/section-outline/icons/OutlineLock.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\n\nconst OutlineLock = (props) => (\n <span\n className={`${props.className} inline-block`}\n style={{ position: 'relative', width: '24px', height: '24px' }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n style={{\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n }}\n >\n <path d=\"M4 22V8H7V6C7 4.61667 7.4875 3.4375 8.4625 2.4625C9.4375 1.4875 10.6167 1 12 1C13.3833 1 14.5625 1.4875 15.5375 2.4625C16.5125 3.4375 17 4.61667 17 6V8H20V22H4ZM6 20H18V10H6V20ZM12 17C12.55 17 13.0208 16.8042 13.4125 16.4125C13.8042 16.0208 14 15.55 14 15C14 14.45 13.8042 13.9792 13.4125 13.5875C13.0208 13.1958 12.55 13 12 13C11.45 13 10.9792 13.1958 10.5875 13.5875C10.1958 13.9792 10 14.45 10 15C10 15.55 10.1958 16.0208 10.5875 16.4125C10.9792 16.8042 11.45 17 12 17ZM9 8H15V6C15 5.16667 14.7083 4.45833 14.125 3.875C13.5417 3.29167 12.8333 3 12 3C11.1667 3 10.4583 3.29167 9.875 3.875C9.29167 4.45833 9 5.16667 9 6V8Z\" fill=\"currentColor\" />\n </svg>\n </span>\n);\n\nOutlineLock.defaultProps = {\n className: '',\n};\n\nOutlineLock.propTypes = {\n className: PropTypes.string,\n};\n\nexport default OutlineLock;\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAmC,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnC,MAAMG,WAAW,GAAIC,KAAK,iBACxB,IAAAL,WAAA,CAAAM,GAAA;EACEC,SAAS,EAAE,GAAGF,KAAK,CAACE,SAAS,eAAgB;EAC7CC,KAAK,EAAE;IAAEC,QAAQ,EAAE,UAAU;IAAEC,KAAK,EAAE,MAAM;IAAEC,MAAM,EAAE;EAAO,CAAE;EAAAC,QAAA,eAE/D,IAAAZ,WAAA,CAAAM,GAAA;IACEO,KAAK,EAAC,4BAA4B;IAClCH,KAAK,EAAC,IAAI;IACVC,MAAM,EAAC,IAAI;IACXG,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAC,MAAM;IACXP,KAAK,EAAE;MACLC,QAAQ,EAAE,UAAU;MACpBO,GAAG,EAAE,KAAK;MACVC,IAAI,EAAE,KAAK;MACXC,SAAS,EAAE;IACb,CAAE;IAAAN,QAAA,eAEF,IAAAZ,WAAA,CAAAM,GAAA;MAAMa,CAAC,EAAC,inBAAinB;MAACJ,IAAI,EAAC;IAAc,CAAE;EAAC,CAC7oB;AAAC,CACF,CACP;AAEDX,WAAW,CAACgB,YAAY,GAAG;EACzBb,SAAS,EAAE;AACb,CAAC;AAEDH,WAAW,CAACiB,SAAS,GAAG;EACtBd,SAAS,EAAEe,kBAAS,CAACC;AACvB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAtB,OAAA,GAEaC,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "OutlineLock", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _OutlineLock.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _OutlineLock = _interopRequireDefault(require("./OutlineLock"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_OutlineLock","_interopRequireDefault","require","e","__esModule","default"],"sources":["../../../src/section-outline/icons/index.js"],"sourcesContent":["export { default as OutlineLock } from './OutlineLock';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuD,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -35,6 +35,11 @@ const messages = (0, _i18n.defineMessages)({
|
|
|
35
35
|
id: 'course-home.section-outline.upgrade-banner.button.label',
|
|
36
36
|
defaultMessage: 'Upgrade now',
|
|
37
37
|
description: 'Button label for the upgrade button in the upgrade banner above the section outline'
|
|
38
|
+
},
|
|
39
|
+
isPreviewTooltipContent: {
|
|
40
|
+
id: 'course-home.section-outline.sequence-item.is-preview.tooltip.content',
|
|
41
|
+
defaultMessage: 'Not available.\nUpgrade for full access.',
|
|
42
|
+
description: 'Tooltip content when sequence is only for preview'
|
|
38
43
|
}
|
|
39
44
|
});
|
|
40
45
|
var _default = exports.default = messages;
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","sectionChipText","id","defaultMessage","description","sectionUpgradeButtonText","sequenceTooltipContent","upgradeBannerHeader","upgradeBannerMessage","upgradeBannerButtonLabel","isPreviewTooltipContent","_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 isPreviewTooltipContent: {\n id: 'course-home.section-outline.sequence-item.is-preview.tooltip.content',\n defaultMessage: 'Not available.\\nUpgrade for full access.',\n description: 'Tooltip content when sequence is only for preview',\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,CAAC;EACDM,uBAAuB,EAAE;IACvBR,EAAE,EAAE,sEAAsE;IAC1EC,cAAc,EAAE,0CAA0C;IAC1DC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYd,QAAQ","ignoreList":[]}
|
|
@@ -14,8 +14,7 @@ var _hooks2 = require("./hooks");
|
|
|
14
14
|
var _UpgradeModal = _interopRequireDefault(require("./UpgradeModal"));
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
-
function
|
|
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; }
|
|
17
|
+
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); }
|
|
19
18
|
/* eslint import/no-unresolved: 0 */
|
|
20
19
|
|
|
21
20
|
const NextUnitButton = _ref => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NextUnitButton.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_paragon","_modelStore","_hooks","_NextButton","_hooks2","_UpgradeModal","_jsxRuntime","e","__esModule","default","
|
|
1
|
+
{"version":3,"file":"NextUnitButton.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_paragon","_modelStore","_hooks","_NextButton","_hooks2","_UpgradeModal","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NextUnitButton","_ref","disabled","buttonText","sequenceId","onClickHandler","nextLink","variant","buttonStyle","isAtTop","courseId","useContextId","isOpen","open","close","useToggle","verifiedMode","org","useModel","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","isEnabled","useIsModalEnabled","shouldShowModalOnClick","countNextClick","useInCourseUpgradeModal","handleModal","useEffect","jsxs","Fragment","children","jsx","defaultProps","propTypes","PropTypes","bool","isRequired","string","unitId","func","_default","exports"],"sources":["../../src/upgrade-modal/NextUnitButton.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useToggle } from '@openedx/paragon';\n\nimport { useModel } from '@src/generic/model-store';\nimport { useContextId } from '@src/data/hooks';\nimport NextButton from '@src/courseware/course/sequence/sequence-navigation/generic/NextButton';\nimport { useInCourseUpgradeModal, useIsModalEnabled } from './hooks';\nimport UpgradeModal from './UpgradeModal';\n\nconst NextUnitButton = ({\n disabled,\n buttonText,\n sequenceId,\n onClickHandler,\n nextLink,\n variant,\n buttonStyle,\n isAtTop,\n}) => {\n const courseId = useContextId();\n const [isOpen, open, close] = useToggle(false);\n const {\n verifiedMode,\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n } = useModel('coursewareMeta', courseId);\n\n const isEnabled = useIsModalEnabled(courseId);\n const [shouldShowModalOnClick, countNextClick] = useInCourseUpgradeModal();\n\n const handleModal = () => {\n if (isEnabled) {\n countNextClick();\n if (shouldShowModalOnClick) {\n open();\n }\n }\n };\n\n useEffect(() => {\n handleModal();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sequenceId]);\n\n return (\n <>\n <NextButton\n onClickHandler={onClickHandler}\n nextLink={nextLink}\n variant={variant}\n buttonStyle={buttonStyle}\n buttonText={buttonText}\n disabled={disabled}\n isAtTop={isAtTop}\n />\n {isOpen && (\n <UpgradeModal\n {...{\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n }}\n />\n )}\n </>\n );\n};\n\nNextUnitButton.defaultProps = {\n isAtTop: false,\n};\n\nNextUnitButton.propTypes = {\n disabled: PropTypes.bool.isRequired,\n buttonText: PropTypes.string.isRequired,\n nextLink: PropTypes.string.isRequired,\n sequenceId: PropTypes.string.isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n unitId: PropTypes.string.isRequired,\n onClickHandler: PropTypes.func.isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n courseId: PropTypes.string.isRequired,\n variant: PropTypes.string.isRequired,\n buttonStyle: PropTypes.string.isRequired,\n isAtTop: PropTypes.bool,\n};\n\nexport default NextUnitButton;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAEA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAN,sBAAA,CAAAF,OAAA;AAA0C,IAAAS,WAAA,GAAAT,OAAA;AAAA,SAAAE,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAX,wBAAAW,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAf,uBAAA,YAAAA,CAAAW,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAT1C;;AAWA,MAAMgB,cAAc,GAAGC,IAAA,IASjB;EAAA,IATkB;IACtBC,QAAQ;IACRC,UAAU;IACVC,UAAU;IACVC,cAAc;IACdC,QAAQ;IACRC,OAAO;IACPC,WAAW;IACXC;EACF,CAAC,GAAAR,IAAA;EACC,MAAMS,QAAQ,GAAG,IAAAC,mBAAY,EAAC,CAAC;EAC/B,MAAM,CAACC,MAAM,EAAEC,IAAI,EAAEC,KAAK,CAAC,GAAG,IAAAC,kBAAS,EAAC,KAAK,CAAC;EAC9C,MAAM;IACJC,YAAY;IACZC;EACF,CAAC,GAAG,IAAAC,oBAAQ,EAAC,gBAAgB,EAAER,QAAQ,CAAC;EAExC,MAAM;IACJS,KAAK;IACLC,YAAY;IACZC,gBAAgB;IAChBC,eAAe;IACfC;EACF,CAAC,GAAG,IAAAL,oBAAQ,EAAC,gBAAgB,EAAER,QAAQ,CAAC;EAExC,MAAMc,SAAS,GAAG,IAAAC,yBAAiB,EAACf,QAAQ,CAAC;EAC7C,MAAM,CAACgB,sBAAsB,EAAEC,cAAc,CAAC,GAAG,IAAAC,+BAAuB,EAAC,CAAC;EAE1E,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIL,SAAS,EAAE;MACbG,cAAc,CAAC,CAAC;MAChB,IAAID,sBAAsB,EAAE;QAC1Bb,IAAI,CAAC,CAAC;MACR;IACF;EACF,CAAC;EAED,IAAAiB,gBAAS,EAAC,MAAM;IACdD,WAAW,CAAC,CAAC;IACb;EACF,CAAC,EAAE,CAACzB,UAAU,CAAC,CAAC;EAEhB,oBACE,IAAAxB,WAAA,CAAAmD,IAAA,EAAAnD,WAAA,CAAAoD,QAAA;IAAAC,QAAA,gBACE,IAAArD,WAAA,CAAAsD,GAAA,EAACzD,WAAA,CAAAM,OAAU;MACTsB,cAAc,EAAEA,cAAe;MAC/BC,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjBC,WAAW,EAAEA,WAAY;MACzBL,UAAU,EAAEA,UAAW;MACvBD,QAAQ,EAAEA,QAAS;MACnBO,OAAO,EAAEA;IAAQ,CAClB,CAAC,EACDG,MAAM,iBACL,IAAAhC,WAAA,CAAAsD,GAAA,EAACvD,aAAA,CAAAI,OAAY;MAET6B,MAAM;MACNE,KAAK;MACLE,YAAY;MACZC,GAAG;MACHP,QAAQ;MACRS,KAAK;MACLC,YAAY;MACZC,gBAAgB;MAChBC,eAAe;MACfC;IAAwB,CAE3B,CACF;EAAA,CACD,CAAC;AAEP,CAAC;AAEDvB,cAAc,CAACmC,YAAY,GAAG;EAC5B1B,OAAO,EAAE;AACX,CAAC;AAEDT,cAAc,CAACoC,SAAS,GAAG;EACzBlC,QAAQ,EAAEmC,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCpC,UAAU,EAAEkC,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvCjC,QAAQ,EAAE+B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACrCnC,UAAU,EAAEiC,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvC;EACAE,MAAM,EAAEJ,kBAAS,CAACG,MAAM,CAACD,UAAU;EACnClC,cAAc,EAAEgC,kBAAS,CAACK,IAAI,CAACH,UAAU;EACzC;EACA7B,QAAQ,EAAE2B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACrChC,OAAO,EAAE8B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACpC/B,WAAW,EAAE6B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACxC9B,OAAO,EAAE4B,kBAAS,CAACC;AACrB,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAA7D,OAAA,GAEaiB,cAAc","ignoreList":[]}
|
|
@@ -15,8 +15,7 @@ var _BaseModal = _interopRequireDefault(require("./BaseModal"));
|
|
|
15
15
|
var _cohesion = require("../cohesion");
|
|
16
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
-
function
|
|
19
|
-
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; }
|
|
18
|
+
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); }
|
|
20
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; }
|
|
21
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; }
|
|
22
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; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_analytics","_i18n","_paragon","_upgradeButton","_generic","_BaseModal","_cohesion","_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","UpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","conversion","useCohesion","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","jsxs","UpsellTable","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","_default","exports"],"sources":["../../src/upgrade-modal/UpgradeModal.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';\nimport { useCohesion } from '../cohesion';\n\nconst UpgradeModal = ({\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 const { conversion } = useCohesion(courseId);\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 conversion('Upgraded');\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 data-testid=\"upgrade-button\"\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\nUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nUpgradeModal.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 UpgradeModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"UpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_analytics","_i18n","_paragon","_upgradeButton","_generic","_BaseModal","_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","UpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","conversion","useCohesion","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","jsxs","UpsellTable","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","_default","exports"],"sources":["../../src/upgrade-modal/UpgradeModal.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';\nimport { useCohesion } from '../cohesion';\n\nconst UpgradeModal = ({\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 const { conversion } = useCohesion(courseId);\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 conversion('Upgraded');\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 data-testid=\"upgrade-button\"\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\nUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nUpgradeModal.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 UpgradeModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,8 +21,7 @@ var _messages = _interopRequireDefault(require("./messages"));
|
|
|
21
21
|
var _cohesion = require("../cohesion");
|
|
22
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
23
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
24
|
-
function
|
|
25
|
-
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; }
|
|
24
|
+
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); }
|
|
26
25
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
27
26
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
28
27
|
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; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpgradeNotification.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_i18n","_analytics","_paragon","_icons","_upgradeButton","_modelStore","_data","_certificatePreview","_generic","_utils","_messages","_cohesion","_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","UpgradeNotification","_ref","id","courseId","model","setNotificationCurrentState","toggleSidebar","pluginLocationId","formatMessage","useIntl","org","userTimezone","verifiedMode","useModel","marketingUrl","learningAssistantEnabled","accessExpiration","datesBannerInfo","offer","timeOffsetMillis","conversion","useCohesion","dateNow","Date","now","timezoneFormatArgs","timeZone","correctedTime","accessExpirationDate","upgradeDeadline","pastExpirationDeadline","shouldDisplayBorder","includes","upsellPageName","getUpsellPageName","setupgradeNotificationCurrentState","isFBE","contentTypeGatingEnabled","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logUpgradeClick","location","linkCategory","linkName","linkType","pageName","logClickPastExpiration","upgradeNotificationHeaderText","expirationBanner","callToActionButton","offerCode","upsellMessage","jsx","UpsellTable","hoursToAccessExpiration","Math","floor","hoursToDiscountExpiration","expirationDate","messages","firstTimeLearnerDiscountHeader","percentage","ExpirationCountdown","hoursToExpiration","type","accessExpirationHeader","AccessExpirationDateBanner","accessExpirationUrgentHeader","PAGE_NAMES","PROGRESS","UpsellFBESoonCardContent","accessExpirationPastHeader","PastExpirationDateBanner","PastExpirationCardContent","Button","variant","onClick","href","block","children","pastExpirationCallToActionLabel","UpgradeButton","className","discountCodeMessage","code","classNames","jsxs","pursueCertificateMessage","IconButton","src","Close","size","iconAs","Icon","alt","closeAlt","propTypes","PropTypes","string","isRequired","func","defaultProps","_default","exports"],"sources":["../../src/upgrade-notification/UpgradeNotification.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { Button, Icon, IconButton } from '@openedx/paragon';\nimport { Close } from '@openedx/paragon/icons';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { useModel } from '@src/generic/model-store';\n\nimport { PAGE_NAMES } from '../data';\nimport CertificatePreview from './certificate-preview';\nimport {\n ExpirationCountdown,\n AccessExpirationDateBanner,\n PastExpirationDateBanner,\n PastExpirationCardContent,\n UpsellFBESoonCardContent,\n UpsellTable,\n} from '../generic';\nimport getUpsellPageName from './utils';\nimport messages from './messages';\nimport { useCohesion } from '../cohesion';\n\nconst UpgradeNotification = ({\n id,\n courseId,\n model,\n setNotificationCurrentState,\n toggleSidebar,\n}) => {\n const pluginLocationId = id;\n const { formatMessage } = useIntl();\n\n const {\n org,\n userTimezone,\n verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n marketingUrl,\n learningAssistantEnabled,\n } = useModel('coursewareMeta', courseId);\n\n const {\n accessExpiration,\n datesBannerInfo,\n offer,\n timeOffsetMillis,\n } = useModel(model, courseId);\n\n const { conversion } = useCohesion(courseId);\n\n const dateNow = Date.now();\n const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};\n const correctedTime = new Date(dateNow + timeOffsetMillis);\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(dateNow) > accessExpirationDate : false;\n const shouldDisplayBorder = pluginLocationId.includes('outline');\n const upsellPageName = getUpsellPageName({ id: pluginLocationId });\n const setupgradeNotificationCurrentState = setNotificationCurrentState;\n const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const promotionEventProperties = {\n creative: 'sidebarupsell',\n name: 'In-Course Verification Prompt',\n position: 'sidebar-message',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n };\n\n useEffect(() => {\n sendTrackingLogEvent('edx.bi.course.upgrade.sidebarupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!verifiedMode) {\n return null;\n }\n\n const logUpgradeClick = () => {\n sendTrackingLogEvent('edx.bi.course.upgrade.sidebarupsell.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'sidebar-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 conversion('Upgraded');\n };\n\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_notification.past_expiration.button_clicked', {\n ...eventProperties,\n linkCategory: 'upgrade_notification',\n linkName: `${upsellPageName}_course_details`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n /*\n There are 5 parts that change in the upgrade card:\n upgradeNotificationHeaderText\n expirationBanner\n upsellMessage\n callToActionButton\n offerCode\n */\n let upgradeNotificationHeaderText;\n let expirationBanner;\n let callToActionButton;\n let offerCode;\n\n let upsellMessage = <UpsellTable {...{ isFBE, learningAssistantEnabled }} />;\n\n if (isFBE) {\n const hoursToAccessExpiration = Math.floor((accessExpirationDate - correctedTime) / 1000 / 60 / 60);\n\n if (hoursToAccessExpiration >= (7 * 24)) {\n if (offer) { // countdown to the first purchase discount if there is one\n const hoursToDiscountExpiration = Math.floor((new Date(offer.expirationDate) - correctedTime) / 1000 / 60 / 60);\n upgradeNotificationHeaderText = formatMessage(\n messages.firstTimeLearnerDiscountHeader,\n { percentage: (offer.percentage) },\n );\n expirationBanner = (\n <ExpirationCountdown\n courseId={courseId}\n hoursToExpiration={hoursToDiscountExpiration}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n type=\"offer\"\n />\n );\n } else {\n upgradeNotificationHeaderText = formatMessage(messages.accessExpirationHeader);\n expirationBanner = (\n <AccessExpirationDateBanner\n courseId={courseId}\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n />\n );\n }\n } else if (hoursToAccessExpiration < (7 * 24) && hoursToAccessExpiration >= 0) {\n // more urgent messaging if there's less than 7 days left to access expiration\n upgradeNotificationHeaderText = formatMessage(messages.accessExpirationUrgentHeader);\n expirationBanner = (\n <ExpirationCountdown\n courseId={courseId}\n hoursToExpiration={hoursToAccessExpiration}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n type=\"access\"\n />\n );\n if (upsellPageName !== PAGE_NAMES.PROGRESS) {\n upsellMessage = (\n <UpsellFBESoonCardContent\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n />\n );\n }\n } else { // access expiration deadline has passed\n upgradeNotificationHeaderText = formatMessage(messages.accessExpirationPastHeader);\n expirationBanner = (\n <PastExpirationDateBanner\n courseId={courseId}\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n />\n );\n upsellMessage = (\n <PastExpirationCardContent />\n );\n }\n }\n\n if (pastExpirationDeadline) {\n callToActionButton = (\n <Button\n variant=\"primary\"\n onClick={logClickPastExpiration}\n href={marketingUrl}\n block\n >\n {formatMessage(messages.pastExpirationCallToActionLabel)}\n </Button>\n );\n } else {\n callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logUpgradeClick}\n verifiedMode={verifiedMode}\n block\n />\n );\n }\n\n if (offer) { // if there's a first purchase discount, message the code at the bottom\n offerCode = (\n <div className=\"text-center discount-info\">\n {formatMessage(\n messages.discountCodeMessage,\n {\n code: (<span className=\"font-weight-bold\">{offer.code}</span>),\n },\n )}\n </div>\n );\n }\n\n return (\n <section className={classNames('upgrade-notification small', { 'pgn__card pgn__card-light card mb-4 rounded': shouldDisplayBorder })}>\n <div id=\"courseHome-upgradeNotification\">\n <h2\n className={classNames('upgrade-notification-header', {\n 'd-flex align-items-center mr-2 ml-4 my-1.5 font-size-18': !!toggleSidebar,\n 'm-4': !toggleSidebar,\n })}\n id=\"outline-sidebar-upgrade-header\"\n >\n {formatMessage(messages.pursueCertificateMessage)}\n {!!toggleSidebar && (\n <div className=\"d-inline-flex ml-auto\">\n <IconButton\n src={Close}\n size=\"sm\"\n iconAs={Icon}\n onClick={toggleSidebar}\n className=\"icon-hover\"\n alt={formatMessage(messages.closeAlt)}\n />\n </div>\n )}\n </h2>\n <CertificatePreview courseId={courseId} />\n <h3 className=\"ml-4\">\n {upgradeNotificationHeaderText}\n </h3>\n {expirationBanner}\n <div className=\"upgrade-notification-message\">\n {upsellMessage}\n </div>\n <div className=\"upgrade-notification-button m-4\">\n {callToActionButton}\n </div>\n {offerCode}\n </div>\n </section>\n );\n};\n\nUpgradeNotification.propTypes = {\n id: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n model: PropTypes.string,\n setNotificationCurrentState: PropTypes.func,\n toggleSidebar: PropTypes.func,\n};\n\nUpgradeNotification.defaultProps = {\n setNotificationCurrentState: null,\n toggleSidebar: null,\n model: 'outline',\n};\n\nexport default UpgradeNotification;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"UpgradeNotification.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_i18n","_analytics","_paragon","_icons","_upgradeButton","_modelStore","_data","_certificatePreview","_generic","_utils","_messages","_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","UpgradeNotification","_ref","id","courseId","model","setNotificationCurrentState","toggleSidebar","pluginLocationId","formatMessage","useIntl","org","userTimezone","verifiedMode","useModel","marketingUrl","learningAssistantEnabled","accessExpiration","datesBannerInfo","offer","timeOffsetMillis","conversion","useCohesion","dateNow","Date","now","timezoneFormatArgs","timeZone","correctedTime","accessExpirationDate","upgradeDeadline","pastExpirationDeadline","shouldDisplayBorder","includes","upsellPageName","getUpsellPageName","setupgradeNotificationCurrentState","isFBE","contentTypeGatingEnabled","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logUpgradeClick","location","linkCategory","linkName","linkType","pageName","logClickPastExpiration","upgradeNotificationHeaderText","expirationBanner","callToActionButton","offerCode","upsellMessage","jsx","UpsellTable","hoursToAccessExpiration","Math","floor","hoursToDiscountExpiration","expirationDate","messages","firstTimeLearnerDiscountHeader","percentage","ExpirationCountdown","hoursToExpiration","type","accessExpirationHeader","AccessExpirationDateBanner","accessExpirationUrgentHeader","PAGE_NAMES","PROGRESS","UpsellFBESoonCardContent","accessExpirationPastHeader","PastExpirationDateBanner","PastExpirationCardContent","Button","variant","onClick","href","block","children","pastExpirationCallToActionLabel","UpgradeButton","className","discountCodeMessage","code","classNames","jsxs","pursueCertificateMessage","IconButton","src","Close","size","iconAs","Icon","alt","closeAlt","propTypes","PropTypes","string","isRequired","func","defaultProps","_default","exports"],"sources":["../../src/upgrade-notification/UpgradeNotification.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { Button, Icon, IconButton } from '@openedx/paragon';\nimport { Close } from '@openedx/paragon/icons';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { useModel } from '@src/generic/model-store';\n\nimport { PAGE_NAMES } from '../data';\nimport CertificatePreview from './certificate-preview';\nimport {\n ExpirationCountdown,\n AccessExpirationDateBanner,\n PastExpirationDateBanner,\n PastExpirationCardContent,\n UpsellFBESoonCardContent,\n UpsellTable,\n} from '../generic';\nimport getUpsellPageName from './utils';\nimport messages from './messages';\nimport { useCohesion } from '../cohesion';\n\nconst UpgradeNotification = ({\n id,\n courseId,\n model,\n setNotificationCurrentState,\n toggleSidebar,\n}) => {\n const pluginLocationId = id;\n const { formatMessage } = useIntl();\n\n const {\n org,\n userTimezone,\n verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n marketingUrl,\n learningAssistantEnabled,\n } = useModel('coursewareMeta', courseId);\n\n const {\n accessExpiration,\n datesBannerInfo,\n offer,\n timeOffsetMillis,\n } = useModel(model, courseId);\n\n const { conversion } = useCohesion(courseId);\n\n const dateNow = Date.now();\n const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};\n const correctedTime = new Date(dateNow + timeOffsetMillis);\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(dateNow) > accessExpirationDate : false;\n const shouldDisplayBorder = pluginLocationId.includes('outline');\n const upsellPageName = getUpsellPageName({ id: pluginLocationId });\n const setupgradeNotificationCurrentState = setNotificationCurrentState;\n const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const promotionEventProperties = {\n creative: 'sidebarupsell',\n name: 'In-Course Verification Prompt',\n position: 'sidebar-message',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n };\n\n useEffect(() => {\n sendTrackingLogEvent('edx.bi.course.upgrade.sidebarupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!verifiedMode) {\n return null;\n }\n\n const logUpgradeClick = () => {\n sendTrackingLogEvent('edx.bi.course.upgrade.sidebarupsell.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'sidebar-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 conversion('Upgraded');\n };\n\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_notification.past_expiration.button_clicked', {\n ...eventProperties,\n linkCategory: 'upgrade_notification',\n linkName: `${upsellPageName}_course_details`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n /*\n There are 5 parts that change in the upgrade card:\n upgradeNotificationHeaderText\n expirationBanner\n upsellMessage\n callToActionButton\n offerCode\n */\n let upgradeNotificationHeaderText;\n let expirationBanner;\n let callToActionButton;\n let offerCode;\n\n let upsellMessage = <UpsellTable {...{ isFBE, learningAssistantEnabled }} />;\n\n if (isFBE) {\n const hoursToAccessExpiration = Math.floor((accessExpirationDate - correctedTime) / 1000 / 60 / 60);\n\n if (hoursToAccessExpiration >= (7 * 24)) {\n if (offer) { // countdown to the first purchase discount if there is one\n const hoursToDiscountExpiration = Math.floor((new Date(offer.expirationDate) - correctedTime) / 1000 / 60 / 60);\n upgradeNotificationHeaderText = formatMessage(\n messages.firstTimeLearnerDiscountHeader,\n { percentage: (offer.percentage) },\n );\n expirationBanner = (\n <ExpirationCountdown\n courseId={courseId}\n hoursToExpiration={hoursToDiscountExpiration}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n type=\"offer\"\n />\n );\n } else {\n upgradeNotificationHeaderText = formatMessage(messages.accessExpirationHeader);\n expirationBanner = (\n <AccessExpirationDateBanner\n courseId={courseId}\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n />\n );\n }\n } else if (hoursToAccessExpiration < (7 * 24) && hoursToAccessExpiration >= 0) {\n // more urgent messaging if there's less than 7 days left to access expiration\n upgradeNotificationHeaderText = formatMessage(messages.accessExpirationUrgentHeader);\n expirationBanner = (\n <ExpirationCountdown\n courseId={courseId}\n hoursToExpiration={hoursToAccessExpiration}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n type=\"access\"\n />\n );\n if (upsellPageName !== PAGE_NAMES.PROGRESS) {\n upsellMessage = (\n <UpsellFBESoonCardContent\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n />\n );\n }\n } else { // access expiration deadline has passed\n upgradeNotificationHeaderText = formatMessage(messages.accessExpirationPastHeader);\n expirationBanner = (\n <PastExpirationDateBanner\n courseId={courseId}\n accessExpirationDate={accessExpirationDate}\n timezoneFormatArgs={timezoneFormatArgs}\n setupgradeNotificationCurrentState={setupgradeNotificationCurrentState}\n />\n );\n upsellMessage = (\n <PastExpirationCardContent />\n );\n }\n }\n\n if (pastExpirationDeadline) {\n callToActionButton = (\n <Button\n variant=\"primary\"\n onClick={logClickPastExpiration}\n href={marketingUrl}\n block\n >\n {formatMessage(messages.pastExpirationCallToActionLabel)}\n </Button>\n );\n } else {\n callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logUpgradeClick}\n verifiedMode={verifiedMode}\n block\n />\n );\n }\n\n if (offer) { // if there's a first purchase discount, message the code at the bottom\n offerCode = (\n <div className=\"text-center discount-info\">\n {formatMessage(\n messages.discountCodeMessage,\n {\n code: (<span className=\"font-weight-bold\">{offer.code}</span>),\n },\n )}\n </div>\n );\n }\n\n return (\n <section className={classNames('upgrade-notification small', { 'pgn__card pgn__card-light card mb-4 rounded': shouldDisplayBorder })}>\n <div id=\"courseHome-upgradeNotification\">\n <h2\n className={classNames('upgrade-notification-header', {\n 'd-flex align-items-center mr-2 ml-4 my-1.5 font-size-18': !!toggleSidebar,\n 'm-4': !toggleSidebar,\n })}\n id=\"outline-sidebar-upgrade-header\"\n >\n {formatMessage(messages.pursueCertificateMessage)}\n {!!toggleSidebar && (\n <div className=\"d-inline-flex ml-auto\">\n <IconButton\n src={Close}\n size=\"sm\"\n iconAs={Icon}\n onClick={toggleSidebar}\n className=\"icon-hover\"\n alt={formatMessage(messages.closeAlt)}\n />\n </div>\n )}\n </h2>\n <CertificatePreview courseId={courseId} />\n <h3 className=\"ml-4\">\n {upgradeNotificationHeaderText}\n </h3>\n {expirationBanner}\n <div className=\"upgrade-notification-message\">\n {upsellMessage}\n </div>\n <div className=\"upgrade-notification-button m-4\">\n {callToActionButton}\n </div>\n {offerCode}\n </div>\n </section>\n );\n};\n\nUpgradeNotification.propTypes = {\n id: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n model: PropTypes.string,\n setNotificationCurrentState: PropTypes.func,\n toggleSidebar: PropTypes.func,\n};\n\nUpgradeNotification.defaultProps = {\n setNotificationCurrentState: null,\n toggleSidebar: null,\n model: 'outline',\n};\n\nexport default UpgradeNotification;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,8 +15,7 @@ var _Signatory = _interopRequireDefault(require("./Signatory"));
|
|
|
15
15
|
require("./CertificatePreview.scss");
|
|
16
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
-
function
|
|
19
|
-
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; }
|
|
18
|
+
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); }
|
|
20
19
|
/* eslint import/no-unresolved: 0 */
|
|
21
20
|
|
|
22
21
|
const CertificatePreview = _ref => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CertificatePreview.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_frontendPlatform","_auth","_paragon","_modelStore","_lms_api","_Signatory","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CertificatePreview","_ref","courseId","bgColor","username","name","getAuthenticatedUser","number","org","title","useModel","platformLogoUrl","getConfig","LOGO_URL","isLoading","setIsLoading","useState","orgMetadata","setOrgMetadata","certificateName","setCertificateName","useEffect","fetchOrg","then","data","fetchVerifiedName","certName","useVerifiedNameForCerts","verifiedName","profileName","CertificatePreviewComponent","jsxs","className","children","jsx","alt","src","logo","shortName","component","Skeleton","count","height","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../../src/upgrade-notification/certificate-preview/CertificatePreview.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { Skeleton } from '@openedx/paragon';\nimport { useModel } from '@src/generic/model-store';\n\nimport { fetchOrg, fetchVerifiedName } from '../../data/lms_api';\nimport Signatory from './Signatory';\nimport './CertificatePreview.scss';\n\nconst CertificatePreview = ({ courseId, bgColor }) => {\n const { username, name } = getAuthenticatedUser();\n\n const {\n number,\n org,\n title,\n } = useModel('courseHomeMeta', courseId);\n\n const platformLogoUrl = getConfig().LOGO_URL;\n\n const [isLoading, setIsLoading] = useState(true);\n const [orgMetadata, setOrgMetadata] = useState({});\n const [certificateName, setCertificateName] = useState(name);\n\n useEffect(() => {\n fetchOrg(org).then((data) => {\n setOrgMetadata(data);\n });\n\n fetchVerifiedName(username).then((data) => {\n if (data) {\n const certName = data.useVerifiedNameForCerts ? data.verifiedName : data.profileName;\n setCertificateName(certName);\n }\n });\n\n setIsLoading(false);\n }, [org, username, name]);\n\n const CertificatePreviewComponent = () => (\n <div className={`certificate-preview border m-4 p-3 ${bgColor}`}>\n <div className=\"d-flex justify-content-between\" data-testid=\"certificate-preview-header\">\n <img\n alt=\"Verified Certificate logo\"\n className=\"verified-certificate-logo\"\n src=\"https://edxuploads.s3.amazonaws.com/certificate_template_assets/122/verified-certificate-logo.svg\"\n />\n <span className=\"sr-only\">Verified Certificate</span>\n <div className=\"mb-4\">\n <div className=\"sr-only\">Supported by the following organizations</div>\n {orgMetadata?.logo\n ? (\n <img\n alt={`${orgMetadata.shortName} logo`}\n className=\"organization-logo\"\n data-testid=\"organization-logo\"\n src={orgMetadata.logo}\n />\n )\n : (<div data-testid=\"organization-short-name\">{orgMetadata.shortName}</div>)}\n </div>\n </div>\n <div className=\"d-flex justify-content-between\">\n <div className=\"certificate-statement\">\n <div className=\"certificate-statement-container d-flex flex-column\">\n <span\n className=\"certificate-statement-detail\"\n >\n This is to certify that\n </span>\n <strong\n className=\"certificate-statement-detail certificate-recipient font-weight-bold\"\n >\n {certificateName}\n </strong>\n <span\n className=\"certificate-statement-detail\"\n >\n successfully completed and received a passing grade in\n </span>\n <span\n className=\"certificate-course font-weight-bold\"\n >\n <span>{number}</span>:\n <span>{title}</span>\n </span>\n <span\n className=\"certificate-statement-detail\"\n >\n a course of study offered by {orgMetadata.shortName},\n an online learning initiative of {orgMetadata.name}.\n </span>\n </div>\n </div>\n <div className=\"signatories\">\n <div className=\"sr-only\">Noted by</div>\n <Signatory name=\"Maurilio Pugliesi\" />\n <Signatory name=\"Justine Doe, Ph.D.\" />\n </div>\n </div>\n <div className=\"certificate-identifiers\">\n <ul className=\"d-flex no-bullets stamps pt-3\">\n <li className=\"stamp\">\n <img className=\"platform-logo\" src={platformLogoUrl} alt=\"edX\" />\n </li>\n <li className=\"stamp d-flex flex-column\">\n <span className=\"title\">Verified Certificate</span>\n <span className=\"emphasized\">Issued Month / Year</span>\n </li>\n <li className=\"stamp d-flex flex-column\">\n <span className=\"title\">Valid Certificate ID</span>\n <span className=\"emphasized\">12345678901234567890</span>\n </li>\n </ul>\n </div>\n <div className=\"preview-watermark\">\n <span>PREVIEW</span>\n </div>\n </div>\n );\n\n // We can render if the call to the verified name endpoint returns a null, because we fall back to their LMS\n // profile name, but if the call to the organization endpoint fails, we cannot render the certificate because\n // we require data from this endpoint.\n let component;\n\n if (!orgMetadata) {\n component = false;\n } else if (isLoading) {\n component = (\n <Skeleton\n count={1}\n height=\"5rem\"\n />\n );\n } else {\n component = (\n <CertificatePreviewComponent />\n );\n }\n\n return (\n component\n );\n};\n\nCertificatePreview.propTypes = {\n courseId: PropTypes.string.isRequired,\n};\n\nexport default CertificatePreview;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CertificatePreview.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_frontendPlatform","_auth","_paragon","_modelStore","_lms_api","_Signatory","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CertificatePreview","_ref","courseId","bgColor","username","name","getAuthenticatedUser","number","org","title","useModel","platformLogoUrl","getConfig","LOGO_URL","isLoading","setIsLoading","useState","orgMetadata","setOrgMetadata","certificateName","setCertificateName","useEffect","fetchOrg","then","data","fetchVerifiedName","certName","useVerifiedNameForCerts","verifiedName","profileName","CertificatePreviewComponent","jsxs","className","children","jsx","alt","src","logo","shortName","component","Skeleton","count","height","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../../src/upgrade-notification/certificate-preview/CertificatePreview.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { Skeleton } from '@openedx/paragon';\nimport { useModel } from '@src/generic/model-store';\n\nimport { fetchOrg, fetchVerifiedName } from '../../data/lms_api';\nimport Signatory from './Signatory';\nimport './CertificatePreview.scss';\n\nconst CertificatePreview = ({ courseId, bgColor }) => {\n const { username, name } = getAuthenticatedUser();\n\n const {\n number,\n org,\n title,\n } = useModel('courseHomeMeta', courseId);\n\n const platformLogoUrl = getConfig().LOGO_URL;\n\n const [isLoading, setIsLoading] = useState(true);\n const [orgMetadata, setOrgMetadata] = useState({});\n const [certificateName, setCertificateName] = useState(name);\n\n useEffect(() => {\n fetchOrg(org).then((data) => {\n setOrgMetadata(data);\n });\n\n fetchVerifiedName(username).then((data) => {\n if (data) {\n const certName = data.useVerifiedNameForCerts ? data.verifiedName : data.profileName;\n setCertificateName(certName);\n }\n });\n\n setIsLoading(false);\n }, [org, username, name]);\n\n const CertificatePreviewComponent = () => (\n <div className={`certificate-preview border m-4 p-3 ${bgColor}`}>\n <div className=\"d-flex justify-content-between\" data-testid=\"certificate-preview-header\">\n <img\n alt=\"Verified Certificate logo\"\n className=\"verified-certificate-logo\"\n src=\"https://edxuploads.s3.amazonaws.com/certificate_template_assets/122/verified-certificate-logo.svg\"\n />\n <span className=\"sr-only\">Verified Certificate</span>\n <div className=\"mb-4\">\n <div className=\"sr-only\">Supported by the following organizations</div>\n {orgMetadata?.logo\n ? (\n <img\n alt={`${orgMetadata.shortName} logo`}\n className=\"organization-logo\"\n data-testid=\"organization-logo\"\n src={orgMetadata.logo}\n />\n )\n : (<div data-testid=\"organization-short-name\">{orgMetadata.shortName}</div>)}\n </div>\n </div>\n <div className=\"d-flex justify-content-between\">\n <div className=\"certificate-statement\">\n <div className=\"certificate-statement-container d-flex flex-column\">\n <span\n className=\"certificate-statement-detail\"\n >\n This is to certify that\n </span>\n <strong\n className=\"certificate-statement-detail certificate-recipient font-weight-bold\"\n >\n {certificateName}\n </strong>\n <span\n className=\"certificate-statement-detail\"\n >\n successfully completed and received a passing grade in\n </span>\n <span\n className=\"certificate-course font-weight-bold\"\n >\n <span>{number}</span>:\n <span>{title}</span>\n </span>\n <span\n className=\"certificate-statement-detail\"\n >\n a course of study offered by {orgMetadata.shortName},\n an online learning initiative of {orgMetadata.name}.\n </span>\n </div>\n </div>\n <div className=\"signatories\">\n <div className=\"sr-only\">Noted by</div>\n <Signatory name=\"Maurilio Pugliesi\" />\n <Signatory name=\"Justine Doe, Ph.D.\" />\n </div>\n </div>\n <div className=\"certificate-identifiers\">\n <ul className=\"d-flex no-bullets stamps pt-3\">\n <li className=\"stamp\">\n <img className=\"platform-logo\" src={platformLogoUrl} alt=\"edX\" />\n </li>\n <li className=\"stamp d-flex flex-column\">\n <span className=\"title\">Verified Certificate</span>\n <span className=\"emphasized\">Issued Month / Year</span>\n </li>\n <li className=\"stamp d-flex flex-column\">\n <span className=\"title\">Valid Certificate ID</span>\n <span className=\"emphasized\">12345678901234567890</span>\n </li>\n </ul>\n </div>\n <div className=\"preview-watermark\">\n <span>PREVIEW</span>\n </div>\n </div>\n );\n\n // We can render if the call to the verified name endpoint returns a null, because we fall back to their LMS\n // profile name, but if the call to the organization endpoint fails, we cannot render the certificate because\n // we require data from this endpoint.\n let component;\n\n if (!orgMetadata) {\n component = false;\n } else if (isLoading) {\n component = (\n <Skeleton\n count={1}\n height=\"5rem\"\n />\n );\n } else {\n component = (\n <CertificatePreviewComponent />\n );\n }\n\n return (\n component\n );\n};\n\nCertificatePreview.propTypes = {\n courseId: PropTypes.string.isRequired,\n};\n\nexport default CertificatePreview;\n"],"mappings":"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","ignoreList":[]}
|