@edx/frontend-plugin-advertisements 1.37.0 → 1.38.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 CHANGED
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "NextUnitButton", {
15
15
  return _upgradeModal.default;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "SectionList", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _sectionOutline.default;
22
+ }
23
+ });
18
24
  Object.defineProperty(exports, "UpgradeNotification", {
19
25
  enumerable: true,
20
26
  get: function () {
@@ -31,5 +37,6 @@ var _upgradeNotification = _interopRequireDefault(require("./upgrade-notificatio
31
37
  var _paywall = _interopRequireDefault(require("./paywall"));
32
38
  var _upgradeModal = _interopRequireDefault(require("./upgrade-modal"));
33
39
  var _generic = require("./generic");
40
+ var _sectionOutline = _interopRequireDefault(require("./section-outline"));
34
41
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
42
  //# 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","obj","__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';\n\nexport {\n UpgradeNotification,\n LockPaywall,\n NextUnitButton,\n UpsellBullets,\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;AAA0C,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_upgradeNotification","_interopRequireDefault","require","_paywall","_upgradeModal","_generic","_sectionOutline","obj","__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;AAA4C,SAAAD,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _i18n = require("@edx/frontend-platform/i18n");
9
+ var _paragon = require("@openedx/paragon");
10
+ var _icons = require("@openedx/paragon/icons");
11
+ var _SectionTitle = _interopRequireDefault(require("@src/course-home/outline-tab/section-outline/SectionTitle.tsx"));
12
+ var _messages = _interopRequireDefault(require("./messages"));
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ /* eslint import/no-unresolved: 0 */
16
+
17
+ const SectionHeader = _ref => {
18
+ let {
19
+ complete,
20
+ hasLockedContent,
21
+ hideFromTOC,
22
+ title,
23
+ upgradeUrl
24
+ } = _ref;
25
+ const intl = (0, _i18n.useIntl)();
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.ActionRow, {
27
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionTitle.default, {
28
+ complete,
29
+ hideFromTOC,
30
+ title
31
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow.Spacer, {}), hasLockedContent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Chip, {
32
+ onClick: () => window.open(upgradeUrl),
33
+ iconBefore: _icons.Locked,
34
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
35
+ className: "small font-weight-normal",
36
+ children: intl.formatMessage(_messages.default.sectionChipText)
37
+ })
38
+ })]
39
+ });
40
+ };
41
+ SectionHeader.propTypes = {
42
+ complete: _propTypes.default.bool.isRequired,
43
+ hasLockedContent: _propTypes.default.bool.isRequired,
44
+ hideFromTOC: _propTypes.default.bool.isRequired,
45
+ title: _propTypes.default.string.isRequired,
46
+ upgradeUrl: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]).isRequired
47
+ };
48
+ var _default = exports.default = SectionHeader;
49
+ //# sourceMappingURL=SectionHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionHeader.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_SectionTitle","_messages","_jsxRuntime","obj","__esModule","default","SectionHeader","_ref","complete","hasLockedContent","hideFromTOC","title","upgradeUrl","intl","useIntl","jsxs","ActionRow","children","jsx","Spacer","Chip","onClick","window","open","iconBefore","Locked","className","formatMessage","messages","sectionChipText","propTypes","PropTypes","bool","isRequired","string","oneOfType","_default","exports"],"sources":["../../src/section-outline/SectionHeader.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { ActionRow, Chip } from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\n\nimport SectionTitle from '@src/course-home/outline-tab/section-outline/SectionTitle.tsx';\nimport messages from './messages';\n\nconst SectionHeader = ({\n complete,\n hasLockedContent,\n hideFromTOC,\n title,\n upgradeUrl,\n}) => {\n const intl = useIntl();\n\n return (\n <ActionRow>\n <SectionTitle {...{ complete, hideFromTOC, title }} />\n <ActionRow.Spacer />\n {hasLockedContent && (\n <Chip\n onClick={() => window.open(upgradeUrl)}\n iconBefore={Locked}\n >\n <span className=\"small font-weight-normal\">\n {intl.formatMessage(messages.sectionChipText)}\n </span>\n </Chip>\n )}\n </ActionRow>\n );\n};\n\nSectionHeader.propTypes = {\n complete: PropTypes.bool.isRequired,\n hasLockedContent: PropTypes.bool.isRequired,\n hideFromTOC: PropTypes.bool.isRequired,\n title: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).isRequired,\n};\n\nexport default SectionHeader;\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,aAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AAAkC,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAPlC;;AASA,MAAMG,aAAa,GAAGC,IAAA,IAMhB;EAAA,IANiB;IACrBC,QAAQ;IACRC,gBAAgB;IAChBC,WAAW;IACXC,KAAK;IACLC;EACF,CAAC,GAAAL,IAAA;EACC,MAAMM,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EAEtB,oBACE,IAAAZ,WAAA,CAAAa,IAAA,EAACjB,QAAA,CAAAkB,SAAS;IAAAC,QAAA,gBACR,IAAAf,WAAA,CAAAgB,GAAA,EAAClB,aAAA,CAAAK,OAAY;MAAOG,QAAQ;MAAEE,WAAW;MAAEC;IAAK,CAAK,CAAC,eACtD,IAAAT,WAAA,CAAAgB,GAAA,EAACpB,QAAA,CAAAkB,SAAS,CAACG,MAAM,IAAE,CAAC,EACnBV,gBAAgB,iBACf,IAAAP,WAAA,CAAAgB,GAAA,EAACpB,QAAA,CAAAsB,IAAI;MACHC,OAAO,EAAEA,CAAA,KAAMC,MAAM,CAACC,IAAI,CAACX,UAAU,CAAE;MACvCY,UAAU,EAAEC,aAAO;MAAAR,QAAA,eAEnB,IAAAf,WAAA,CAAAgB,GAAA;QAAMQ,SAAS,EAAC,0BAA0B;QAAAT,QAAA,EACvCJ,IAAI,CAACc,aAAa,CAACC,iBAAQ,CAACC,eAAe;MAAC,CACzC;IAAC,CACH,CACP;EAAA,CACQ,CAAC;AAEhB,CAAC;AAEDvB,aAAa,CAACwB,SAAS,GAAG;EACxBtB,QAAQ,EAAEuB,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCxB,gBAAgB,EAAEsB,kBAAS,CAACC,IAAI,CAACC,UAAU;EAC3CvB,WAAW,EAAEqB,kBAAS,CAACC,IAAI,CAACC,UAAU;EACtCtB,KAAK,EAAEoB,kBAAS,CAACG,MAAM,CAACD,UAAU;EAClCrB,UAAU,EAAEmB,kBAAS,CAACI,SAAS,CAAC,CAACJ,kBAAS,CAACG,MAAM,EAAEH,kBAAS,CAACC,IAAI,CAAC,CAAC,CAACC;AACtE,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAhC,OAAA,GAEaC,aAAa","ignoreList":[]}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _i18n = require("@edx/frontend-platform/i18n");
10
+ var _paragon = require("@openedx/paragon");
11
+ var _icons = require("@openedx/paragon/icons");
12
+ var _modelStore = require("@src/generic/model-store");
13
+ var _messages = _interopRequireDefault(require("@src/generic/messages"));
14
+ var _messages2 = _interopRequireDefault(require("@src/course-home/outline-tab/messages.ts"));
15
+ var _SectionHeader = _interopRequireDefault(require("./SectionHeader"));
16
+ var _SequenceLink = _interopRequireDefault(require("./SequenceLink"));
17
+ var _messages3 = _interopRequireDefault(require("./messages"));
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+ /* eslint import/no-unresolved: 0 */
21
+
22
+ const SectionItem = _ref => {
23
+ let {
24
+ courseId,
25
+ defaultOpen,
26
+ expand,
27
+ fetchSectionHasLockedContent,
28
+ section,
29
+ sectionId,
30
+ sequenceData,
31
+ upgradeUrl
32
+ } = _ref;
33
+ const intl = (0, _i18n.useIntl)();
34
+ const {
35
+ complete,
36
+ sequenceIds,
37
+ title,
38
+ hideFromTOC
39
+ } = section;
40
+ const {
41
+ courseBlocks: {
42
+ sequences
43
+ }
44
+ } = (0, _modelStore.useModel)('outline', courseId);
45
+ const [open, setOpen] = (0, _react.useState)(defaultOpen);
46
+ const hasLockedContent = fetchSectionHasLockedContent(sectionId);
47
+ (0, _react.useEffect)(() => {
48
+ setOpen(expand);
49
+ }, [expand]);
50
+ (0, _react.useEffect)(() => {
51
+ setOpen(defaultOpen);
52
+ // eslint-disable-next-line react-hooks/exhaustive-deps
53
+ }, []);
54
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
55
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Collapsible, {
56
+ className: "mb-2",
57
+ styling: "card-lg",
58
+ title: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionHeader.default, {
59
+ complete,
60
+ hasLockedContent,
61
+ hideFromTOC,
62
+ title,
63
+ upgradeUrl
64
+ }),
65
+ open: open,
66
+ onToggle: () => setOpen(!open),
67
+ iconWhenClosed: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButton, {
68
+ alt: intl.formatMessage(_messages2.default.openSection),
69
+ iconAs: _icons.Plus,
70
+ onClick: () => setOpen(true),
71
+ size: "sm"
72
+ }),
73
+ iconWhenOpen: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButton, {
74
+ alt: intl.formatMessage(_messages.default.close),
75
+ iconAs: _icons.Minus,
76
+ onClick: () => {
77
+ setOpen(false);
78
+ },
79
+ size: "sm"
80
+ }),
81
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("ol", {
82
+ className: "list-unstyled my-n3 ml-n2.5 mr-n4",
83
+ children: sequenceIds.map((sequenceId, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_SequenceLink.default, {
84
+ id: sequenceId,
85
+ courseId: courseId,
86
+ sequence: sequences[sequenceId],
87
+ first: index === 0,
88
+ sequenceData: sequenceData
89
+ }, sequenceId))
90
+ })
91
+ }), open && hasLockedContent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow, {
92
+ className: "mr-3 mt-2.5 mb-3",
93
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
94
+ as: "a",
95
+ href: upgradeUrl,
96
+ children: intl.formatMessage(_messages3.default.sectionUpgradeButtonText)
97
+ })
98
+ })]
99
+ });
100
+ };
101
+ SectionItem.propTypes = {
102
+ courseId: _propTypes.default.string.isRequired,
103
+ defaultOpen: _propTypes.default.bool.isRequired,
104
+ expand: _propTypes.default.bool.isRequired,
105
+ fetchSectionHasLockedContent: _propTypes.default.func.isRequired,
106
+ section: _propTypes.default.shape().isRequired,
107
+ sectionId: _propTypes.default.string.isRequired,
108
+ sequenceData: _propTypes.default.shape().isRequired,
109
+ upgradeUrl: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]).isRequired
110
+ };
111
+ var _default = exports.default = SectionItem;
112
+ //# sourceMappingURL=SectionItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionItem.js","names":["_react","require","_propTypes","_interopRequireDefault","_i18n","_paragon","_icons","_modelStore","_messages","_messages2","_SectionHeader","_SequenceLink","_messages3","_jsxRuntime","obj","__esModule","default","SectionItem","_ref","courseId","defaultOpen","expand","fetchSectionHasLockedContent","section","sectionId","sequenceData","upgradeUrl","intl","useIntl","complete","sequenceIds","title","hideFromTOC","courseBlocks","sequences","useModel","open","setOpen","useState","hasLockedContent","useEffect","jsxs","children","jsx","Collapsible","className","styling","onToggle","iconWhenClosed","IconButton","alt","formatMessage","outlineMessages","openSection","iconAs","Plus","onClick","size","iconWhenOpen","genericMessages","close","Minus","map","sequenceId","index","id","sequence","first","ActionRow","Button","as","href","messages","sectionUpgradeButtonText","propTypes","PropTypes","string","isRequired","bool","func","shape","oneOfType","_default","exports"],"sources":["../../src/section-outline/SectionItem.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n Collapsible,\n IconButton,\n} from '@openedx/paragon';\nimport { Minus, Plus } from '@openedx/paragon/icons';\n\nimport { useModel } from '@src/generic/model-store';\nimport genericMessages from '@src/generic/messages';\nimport outlineMessages from '@src/course-home/outline-tab/messages.ts';\nimport SectionHeader from './SectionHeader';\nimport SequenceLink from './SequenceLink';\nimport messages from './messages';\n\nconst SectionItem = ({\n courseId,\n defaultOpen,\n expand,\n fetchSectionHasLockedContent,\n section,\n sectionId,\n sequenceData,\n upgradeUrl,\n}) => {\n const intl = useIntl();\n\n const {\n complete,\n sequenceIds,\n title,\n hideFromTOC,\n } = section;\n const {\n courseBlocks: {\n sequences,\n },\n } = useModel('outline', courseId);\n\n const [open, setOpen] = useState(defaultOpen);\n const hasLockedContent = fetchSectionHasLockedContent(sectionId);\n\n useEffect(() => {\n setOpen(expand);\n }, [expand]);\n\n useEffect(() => {\n setOpen(defaultOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <li>\n <Collapsible\n className=\"mb-2\"\n styling=\"card-lg\"\n title={(\n <SectionHeader\n {...{\n complete,\n hasLockedContent,\n hideFromTOC,\n title,\n upgradeUrl,\n }}\n />\n )}\n open={open}\n onToggle={() => setOpen(!open)}\n iconWhenClosed={(\n <IconButton\n alt={intl.formatMessage(outlineMessages.openSection)}\n iconAs={Plus}\n onClick={() => setOpen(true)}\n size=\"sm\"\n />\n )}\n iconWhenOpen={(\n <IconButton\n alt={intl.formatMessage(genericMessages.close)}\n iconAs={Minus}\n onClick={() => { setOpen(false); }}\n size=\"sm\"\n />\n )}\n >\n <ol className=\"list-unstyled my-n3 ml-n2.5 mr-n4\">\n {sequenceIds.map((sequenceId, index) => (\n <SequenceLink\n key={sequenceId}\n id={sequenceId}\n courseId={courseId}\n sequence={sequences[sequenceId]}\n first={index === 0}\n sequenceData={sequenceData}\n />\n ))}\n </ol>\n </Collapsible>\n {open && hasLockedContent && (\n <ActionRow className=\"mr-3 mt-2.5 mb-3\">\n <Button as=\"a\" href={upgradeUrl}>\n {intl.formatMessage(messages.sectionUpgradeButtonText)}\n </Button>\n </ActionRow>\n )}\n </li>\n );\n};\n\nSectionItem.propTypes = {\n courseId: PropTypes.string.isRequired,\n defaultOpen: PropTypes.bool.isRequired,\n expand: PropTypes.bool.isRequired,\n fetchSectionHasLockedContent: PropTypes.func.isRequired,\n section: PropTypes.shape().isRequired,\n sectionId: PropTypes.string.isRequired,\n sequenceData: PropTypes.shape().isRequired,\n upgradeUrl: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]).isRequired,\n};\n\nexport default SectionItem;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _react = require("react");
9
+ var _reactDom = require("react-dom");
10
+ var _i18n = require("@edx/frontend-platform/i18n");
11
+ var _hooks = require("@src/data/hooks");
12
+ var _modelStore = require("@src/generic/model-store");
13
+ var _PageLoading = _interopRequireDefault(require("@src/generic/PageLoading"));
14
+ var _messages = _interopRequireDefault(require("@src/tab-page/messages"));
15
+ var _SectionItem = _interopRequireDefault(require("./SectionItem"));
16
+ var _UpgradeBanner = _interopRequireDefault(require("./UpgradeBanner"));
17
+ var _hooks2 = _interopRequireDefault(require("./hooks"));
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+ /* eslint import/no-unresolved: 0 */
21
+
22
+ const SectionList = _ref => {
23
+ let {
24
+ expandAll,
25
+ sections,
26
+ sectionIds
27
+ } = _ref;
28
+ const intl = (0, _i18n.useIntl)();
29
+ const portalRef = (0, _react.useRef)(null);
30
+ const courseId = (0, _hooks.useContextId)();
31
+ const {
32
+ verifiedMode
33
+ } = (0, _modelStore.useModel)('courseHomeMeta', courseId);
34
+ const {
35
+ datesBannerInfo
36
+ } = (0, _modelStore.useModel)('outline', courseId);
37
+ const isFBE = !!datesBannerInfo?.contentTypeGatingEnabled;
38
+ const upgradeUrl = isFBE && verifiedMode?.upgradeUrl;
39
+ const {
40
+ courseHasLockedContent,
41
+ fetchSectionHasLockedContent,
42
+ isLoading,
43
+ sequenceData
44
+ } = (0, _hooks2.default)({
45
+ sections,
46
+ isFBE
47
+ });
48
+ const hasLockedContent = upgradeUrl && courseHasLockedContent;
49
+ (0, _react.useEffect)(() => {
50
+ const referenceNode = document.getElementById('expand-button-row');
51
+ const portalNode = document.createElement('div');
52
+ referenceNode.parentNode.insertBefore(portalNode, referenceNode);
53
+ portalRef.current = portalNode;
54
+ }, []);
55
+ if (isLoading) {
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PageLoading.default, {
57
+ srMessage: intl.formatMessage(_messages.default.loading)
58
+ });
59
+ }
60
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
61
+ children: [hasLockedContent && portalRef.current && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_UpgradeBanner.default, {
62
+ upgradeUrl
63
+ }), portalRef.current), /*#__PURE__*/(0, _jsxRuntime.jsx)("ol", {
64
+ id: "courseHome-outline",
65
+ className: "list-unstyled",
66
+ children: sectionIds.map(sectionId => /*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionItem.default, {
67
+ sectionId: sectionId,
68
+ defaultOpen: sections[sectionId].resumeBlock,
69
+ expand: expandAll,
70
+ section: sections[sectionId],
71
+ upgradeUrl: upgradeUrl,
72
+ courseId: courseId,
73
+ sequenceData: sequenceData,
74
+ fetchSectionHasLockedContent: fetchSectionHasLockedContent
75
+ }, sectionId))
76
+ })]
77
+ });
78
+ };
79
+ SectionList.propTypes = {
80
+ expandAll: _propTypes.default.bool.isRequired,
81
+ sections: _propTypes.default.shape().isRequired,
82
+ sectionIds: _propTypes.default.arrayOf(_propTypes.default.string).isRequired
83
+ };
84
+ var _default = exports.default = SectionList;
85
+ //# sourceMappingURL=SectionList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionList.js","names":["_propTypes","_interopRequireDefault","require","_react","_reactDom","_i18n","_hooks","_modelStore","_PageLoading","_messages","_SectionItem","_UpgradeBanner","_hooks2","_jsxRuntime","obj","__esModule","default","SectionList","_ref","expandAll","sections","sectionIds","intl","useIntl","portalRef","useRef","courseId","useContextId","verifiedMode","useModel","datesBannerInfo","isFBE","contentTypeGatingEnabled","upgradeUrl","courseHasLockedContent","fetchSectionHasLockedContent","isLoading","sequenceData","useSequenceContext","hasLockedContent","useEffect","referenceNode","document","getElementById","portalNode","createElement","parentNode","insertBefore","current","jsx","srMessage","formatMessage","genericMessages","loading","jsxs","Fragment","children","createPortal","id","className","map","sectionId","defaultOpen","resumeBlock","expand","section","propTypes","PropTypes","bool","isRequired","shape","arrayOf","string","_default","exports"],"sources":["../../src/section-outline/SectionList.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport PropTypes from 'prop-types';\nimport { useRef, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useIntl } from '@edx/frontend-platform/i18n';\n\nimport { useContextId } from '@src/data/hooks';\nimport { useModel } from '@src/generic/model-store';\nimport PageLoading from '@src/generic/PageLoading';\nimport genericMessages from '@src/tab-page/messages';\nimport SectionItem from './SectionItem';\nimport UpgradeBanner from './UpgradeBanner';\nimport useSequenceContext from './hooks';\n\nconst SectionList = ({ expandAll, sections, sectionIds }) => {\n const intl = useIntl();\n const portalRef = useRef(null);\n const courseId = useContextId();\n\n const {\n verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n const {\n datesBannerInfo,\n } = useModel('outline', courseId);\n\n const isFBE = !!datesBannerInfo?.contentTypeGatingEnabled;\n const upgradeUrl = isFBE && verifiedMode?.upgradeUrl;\n\n const {\n courseHasLockedContent,\n fetchSectionHasLockedContent,\n isLoading,\n sequenceData,\n } = useSequenceContext({ sections, isFBE });\n\n const hasLockedContent = upgradeUrl && courseHasLockedContent;\n\n useEffect(() => {\n const referenceNode = document.getElementById('expand-button-row');\n const portalNode = document.createElement('div');\n referenceNode.parentNode.insertBefore(portalNode, referenceNode);\n portalRef.current = portalNode;\n }, []);\n\n if (isLoading) {\n return (\n <PageLoading srMessage={intl.formatMessage(genericMessages.loading)} />\n );\n }\n\n return (\n <>\n {hasLockedContent && portalRef.current && createPortal(\n <UpgradeBanner {...{ upgradeUrl }} />,\n portalRef.current,\n )}\n <ol id=\"courseHome-outline\" className=\"list-unstyled\">\n {sectionIds.map((sectionId) => (\n <SectionItem\n key={sectionId}\n sectionId={sectionId}\n defaultOpen={sections[sectionId].resumeBlock}\n expand={expandAll}\n section={sections[sectionId]}\n upgradeUrl={upgradeUrl}\n courseId={courseId}\n sequenceData={sequenceData}\n fetchSectionHasLockedContent={fetchSectionHasLockedContent}\n />\n ))}\n </ol>\n </>\n );\n};\n\nSectionList.propTypes = {\n expandAll: PropTypes.bool.isRequired,\n sections: PropTypes.shape().isRequired,\n sectionIds: PropTypes.arrayOf(PropTypes.string).isRequired,\n};\n\nexport default SectionList;\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAEA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,SAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,YAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,cAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,OAAA,GAAAX,sBAAA,CAAAC,OAAA;AAAyC,IAAAW,WAAA,GAAAX,OAAA;AAAA,SAAAD,uBAAAa,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAZzC;;AAcA,MAAMG,WAAW,GAAGC,IAAA,IAAyC;EAAA,IAAxC;IAAEC,SAAS;IAAEC,QAAQ;IAAEC;EAAW,CAAC,GAAAH,IAAA;EACtD,MAAMI,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EACtB,MAAMC,SAAS,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAC9B,MAAMC,QAAQ,GAAG,IAAAC,mBAAY,EAAC,CAAC;EAE/B,MAAM;IACJC;EACF,CAAC,GAAG,IAAAC,oBAAQ,EAAC,gBAAgB,EAAEH,QAAQ,CAAC;EACxC,MAAM;IACJI;EACF,CAAC,GAAG,IAAAD,oBAAQ,EAAC,SAAS,EAAEH,QAAQ,CAAC;EAEjC,MAAMK,KAAK,GAAG,CAAC,CAACD,eAAe,EAAEE,wBAAwB;EACzD,MAAMC,UAAU,GAAGF,KAAK,IAAIH,YAAY,EAAEK,UAAU;EAEpD,MAAM;IACJC,sBAAsB;IACtBC,4BAA4B;IAC5BC,SAAS;IACTC;EACF,CAAC,GAAG,IAAAC,eAAkB,EAAC;IAAElB,QAAQ;IAAEW;EAAM,CAAC,CAAC;EAE3C,MAAMQ,gBAAgB,GAAGN,UAAU,IAAIC,sBAAsB;EAE7D,IAAAM,gBAAS,EAAC,MAAM;IACd,MAAMC,aAAa,GAAGC,QAAQ,CAACC,cAAc,CAAC,mBAAmB,CAAC;IAClE,MAAMC,UAAU,GAAGF,QAAQ,CAACG,aAAa,CAAC,KAAK,CAAC;IAChDJ,aAAa,CAACK,UAAU,CAACC,YAAY,CAACH,UAAU,EAAEH,aAAa,CAAC;IAChEjB,SAAS,CAACwB,OAAO,GAAGJ,UAAU;EAChC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAIR,SAAS,EAAE;IACb,oBACE,IAAAvB,WAAA,CAAAoC,GAAA,EAACzC,YAAA,CAAAQ,OAAW;MAACkC,SAAS,EAAE5B,IAAI,CAAC6B,aAAa,CAACC,iBAAe,CAACC,OAAO;IAAE,CAAE,CAAC;EAE3E;EAEA,oBACE,IAAAxC,WAAA,CAAAyC,IAAA,EAAAzC,WAAA,CAAA0C,QAAA;IAAAC,QAAA,GACGjB,gBAAgB,IAAIf,SAAS,CAACwB,OAAO,iBAAI,IAAAS,sBAAY,eACpD,IAAA5C,WAAA,CAAAoC,GAAA,EAACtC,cAAA,CAAAK,OAAa;MAAOiB;IAAU,CAAK,CAAC,EACrCT,SAAS,CAACwB,OACZ,CAAC,eACD,IAAAnC,WAAA,CAAAoC,GAAA;MAAIS,EAAE,EAAC,oBAAoB;MAACC,SAAS,EAAC,eAAe;MAAAH,QAAA,EAClDnC,UAAU,CAACuC,GAAG,CAAEC,SAAS,iBACxB,IAAAhD,WAAA,CAAAoC,GAAA,EAACvC,YAAA,CAAAM,OAAW;QAEV6C,SAAS,EAAEA,SAAU;QACrBC,WAAW,EAAE1C,QAAQ,CAACyC,SAAS,CAAC,CAACE,WAAY;QAC7CC,MAAM,EAAE7C,SAAU;QAClB8C,OAAO,EAAE7C,QAAQ,CAACyC,SAAS,CAAE;QAC7B5B,UAAU,EAAEA,UAAW;QACvBP,QAAQ,EAAEA,QAAS;QACnBW,YAAY,EAAEA,YAAa;QAC3BF,4BAA4B,EAAEA;MAA6B,GARtD0B,SASN,CACF;IAAC,CACA,CAAC;EAAA,CACL,CAAC;AAEP,CAAC;AAED5C,WAAW,CAACiD,SAAS,GAAG;EACtB/C,SAAS,EAAEgD,kBAAS,CAACC,IAAI,CAACC,UAAU;EACpCjD,QAAQ,EAAE+C,kBAAS,CAACG,KAAK,CAAC,CAAC,CAACD,UAAU;EACtChD,UAAU,EAAE8C,kBAAS,CAACI,OAAO,CAACJ,kBAAS,CAACK,MAAM,CAAC,CAACH;AAClD,CAAC;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAA1D,OAAA,GAEaC,WAAW","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _i18n = require("@edx/frontend-platform/i18n");
9
+ var _paragon = require("@openedx/paragon");
10
+ var _icons = require("@openedx/paragon/icons");
11
+ var _SequenceTitle = _interopRequireDefault(require("@src/course-home/outline-tab/section-outline/SequenceTitle"));
12
+ var _messages = _interopRequireDefault(require("./messages"));
13
+ var _constants = require("./constants");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ /* eslint import/no-unresolved: 0 */
17
+
18
+ const SequenceHeader = _ref => {
19
+ let {
20
+ complete,
21
+ id,
22
+ lockedStatus,
23
+ sequence,
24
+ showLink,
25
+ title
26
+ } = _ref;
27
+ const intl = (0, _i18n.useIntl)();
28
+ const isLocked = lockedStatus !== _constants.UNLOCKED;
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
30
+ direction: "horizontal",
31
+ gap: 2,
32
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SequenceTitle.default, {
33
+ complete,
34
+ showLink,
35
+ title,
36
+ sequence,
37
+ id
38
+ }), isLocked && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButtonWithTooltip, {
39
+ tooltipPlacement: "top",
40
+ src: _icons.Locked,
41
+ tooltipContent: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
42
+ children: intl.formatMessage(_messages.default.sequenceTooltipContent, {
43
+ lockedStatus
44
+ })
45
+ }),
46
+ variant: "primary",
47
+ iconAs: _paragon.Icon
48
+ })]
49
+ });
50
+ };
51
+ SequenceHeader.propTypes = {
52
+ complete: _propTypes.default.bool.isRequired,
53
+ id: _propTypes.default.string.isRequired,
54
+ lockedStatus: _propTypes.default.string.isRequired,
55
+ sequence: _propTypes.default.shape().isRequired,
56
+ showLink: _propTypes.default.bool.isRequired,
57
+ title: _propTypes.default.string.isRequired
58
+ };
59
+ var _default = exports.default = SequenceHeader;
60
+ //# sourceMappingURL=SequenceHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SequenceHeader.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_SequenceTitle","_messages","_constants","_jsxRuntime","obj","__esModule","default","SequenceHeader","_ref","complete","id","lockedStatus","sequence","showLink","title","intl","useIntl","isLocked","UNLOCKED","jsxs","Stack","direction","gap","children","jsx","IconButtonWithTooltip","tooltipPlacement","src","Locked","tooltipContent","formatMessage","messages","sequenceTooltipContent","variant","iconAs","Icon","propTypes","PropTypes","bool","isRequired","string","shape","_default","exports"],"sources":["../../src/section-outline/SequenceHeader.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Icon, IconButtonWithTooltip, Stack } from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\n\nimport SequenceTitle from '@src/course-home/outline-tab/section-outline/SequenceTitle';\nimport messages from './messages';\nimport { UNLOCKED } from './constants';\n\nconst SequenceHeader = ({\n complete,\n id,\n lockedStatus,\n sequence,\n showLink,\n title,\n}) => {\n const intl = useIntl();\n const isLocked = lockedStatus !== UNLOCKED;\n\n return (\n <Stack direction=\"horizontal\" gap={2}>\n <SequenceTitle\n {...{\n complete,\n showLink,\n title,\n sequence,\n id,\n }}\n />\n {isLocked && (\n <IconButtonWithTooltip\n tooltipPlacement=\"top\"\n src={Locked}\n tooltipContent={(\n <span>\n {intl.formatMessage(messages.sequenceTooltipContent, { lockedStatus })}\n </span>\n )}\n variant=\"primary\"\n iconAs={Icon}\n />\n )}\n </Stack>\n );\n};\n\nSequenceHeader.propTypes = {\n complete: PropTypes.bool.isRequired,\n id: PropTypes.string.isRequired,\n lockedStatus: PropTypes.string.isRequired,\n sequence: PropTypes.shape().isRequired,\n showLink: PropTypes.bool.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nexport default SequenceHeader;\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,cAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAAuC,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,uBAAAS,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AARvC;;AAUA,MAAMG,cAAc,GAAGC,IAAA,IAOjB;EAAA,IAPkB;IACtBC,QAAQ;IACRC,EAAE;IACFC,YAAY;IACZC,QAAQ;IACRC,QAAQ;IACRC;EACF,CAAC,GAAAN,IAAA;EACC,MAAMO,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EACtB,MAAMC,QAAQ,GAAGN,YAAY,KAAKO,mBAAQ;EAE1C,oBACE,IAAAf,WAAA,CAAAgB,IAAA,EAACrB,QAAA,CAAAsB,KAAK;IAACC,SAAS,EAAC,YAAY;IAACC,GAAG,EAAE,CAAE;IAAAC,QAAA,gBACnC,IAAApB,WAAA,CAAAqB,GAAA,EAACxB,cAAA,CAAAM,OAAa;MAEVG,QAAQ;MACRI,QAAQ;MACRC,KAAK;MACLF,QAAQ;MACRF;IAAE,CAEL,CAAC,EACDO,QAAQ,iBACP,IAAAd,WAAA,CAAAqB,GAAA,EAAC1B,QAAA,CAAA2B,qBAAqB;MACpBC,gBAAgB,EAAC,KAAK;MACtBC,GAAG,EAAEC,aAAO;MACZC,cAAc,eACZ,IAAA1B,WAAA,CAAAqB,GAAA;QAAAD,QAAA,EACGR,IAAI,CAACe,aAAa,CAACC,iBAAQ,CAACC,sBAAsB,EAAE;UAAErB;QAAa,CAAC;MAAC,CAClE,CACN;MACFsB,OAAO,EAAC,SAAS;MACjBC,MAAM,EAAEC;IAAK,CACd,CACF;EAAA,CACI,CAAC;AAEZ,CAAC;AAED5B,cAAc,CAAC6B,SAAS,GAAG;EACzB3B,QAAQ,EAAE4B,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnC7B,EAAE,EAAE2B,kBAAS,CAACG,MAAM,CAACD,UAAU;EAC/B5B,YAAY,EAAE0B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACzC3B,QAAQ,EAAEyB,kBAAS,CAACI,KAAK,CAAC,CAAC,CAACF,UAAU;EACtC1B,QAAQ,EAAEwB,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCzB,KAAK,EAAEuB,kBAAS,CAACG,MAAM,CAACD;AAC1B,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAArC,OAAA,GAEaC,cAAc","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _classnames = _interopRequireDefault(require("classnames"));
9
+ var _SequenceDueDate = _interopRequireDefault(require("@src/course-home/outline-tab/section-outline/SequenceDueDate"));
10
+ var _HiddenSequenceLink = _interopRequireDefault(require("@src/course-home/outline-tab/section-outline/HiddenSequenceLink"));
11
+ var _SequenceHeader = _interopRequireDefault(require("./SequenceHeader"));
12
+ var _constants = require("./constants");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ /* eslint import/no-unresolved: 0 */
16
+
17
+ const SequenceLink = _ref => {
18
+ let {
19
+ id,
20
+ first,
21
+ sequence,
22
+ sequenceData
23
+ } = _ref;
24
+ const {
25
+ complete,
26
+ description,
27
+ due,
28
+ showLink,
29
+ title,
30
+ hideFromTOC
31
+ } = sequence;
32
+ const lockedStatus = sequenceData[id];
33
+ const isLocked = lockedStatus !== _constants.UNLOCKED;
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
35
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
36
+ className: (0, _classnames.default)('px-3 py-2', {
37
+ 'border-top border-light': !first
38
+ }, {
39
+ 'bg-primary-100': isLocked
40
+ }),
41
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SequenceHeader.default, {
42
+ complete,
43
+ id,
44
+ lockedStatus,
45
+ sequence,
46
+ showLink,
47
+ title
48
+ }), hideFromTOC && /*#__PURE__*/(0, _jsxRuntime.jsx)(_HiddenSequenceLink.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_SequenceDueDate.default, {
49
+ due,
50
+ id,
51
+ description
52
+ })]
53
+ })
54
+ });
55
+ };
56
+ SequenceLink.propTypes = {
57
+ id: _propTypes.default.string.isRequired,
58
+ first: _propTypes.default.bool.isRequired,
59
+ sequence: _propTypes.default.shape().isRequired,
60
+ sequenceData: _propTypes.default.shape().isRequired
61
+ };
62
+ var _default = exports.default = SequenceLink;
63
+ //# sourceMappingURL=SequenceLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SequenceLink.js","names":["_propTypes","_interopRequireDefault","require","_classnames","_SequenceDueDate","_HiddenSequenceLink","_SequenceHeader","_constants","_jsxRuntime","obj","__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,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAPvC;;AASA,MAAMG,YAAY,GAAGC,IAAA,IAKf;EAAA,IALgB;IACpBC,EAAE;IACFC,KAAK;IACLC,QAAQ;IACRC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAM;IACJK,QAAQ;IACRC,WAAW;IACXC,GAAG;IACHC,QAAQ;IACRC,KAAK;IACLC;EACF,CAAC,GAAGP,QAAQ;EAEZ,MAAMQ,YAAY,GAAGP,YAAY,CAACH,EAAE,CAAC;EACrC,MAAMW,QAAQ,GAAGD,YAAY,KAAKE,mBAAQ;EAE1C,oBACE,IAAAlB,WAAA,CAAAmB,GAAA;IAAAC,QAAA,eACE,IAAApB,WAAA,CAAAqB,IAAA;MAAKC,SAAS,EAAE,IAAAC,mBAAU,EAAC,WAAW,EAAE;QAAE,yBAAyB,EAAE,CAAChB;MAAM,CAAC,EAAE;QAAE,gBAAgB,EAAEU;MAAS,CAAC,CAAE;MAAAG,QAAA,gBAC7G,IAAApB,WAAA,CAAAmB,GAAA,EAACrB,eAAA,CAAAK,OAAc;QAEXO,QAAQ;QACRJ,EAAE;QACFU,YAAY;QACZR,QAAQ;QACRK,QAAQ;QACRC;MAAK,CAER,CAAC,EACDC,WAAW,iBACV,IAAAf,WAAA,CAAAmB,GAAA,EAACtB,mBAAA,CAAAM,OAAkB,IAAE,CACtB,eACD,IAAAH,WAAA,CAAAmB,GAAA,EAACvB,gBAAA,CAAAO,OAAe;QAAOS,GAAG;QAAEN,EAAE;QAAEK;MAAW,CAAK,CAAC;IAAA,CAC9C;EAAC,CACJ,CAAC;AAET,CAAC;AAEDP,YAAY,CAACoB,SAAS,GAAG;EACvBlB,EAAE,EAAEmB,kBAAS,CAACC,MAAM,CAACC,UAAU;EAC/BpB,KAAK,EAAEkB,kBAAS,CAACG,IAAI,CAACD,UAAU;EAChCnB,QAAQ,EAAEiB,kBAAS,CAACI,KAAK,CAAC,CAAC,CAACF,UAAU;EACtClB,YAAY,EAAEgB,kBAAS,CAACI,KAAK,CAAC,CAAC,CAACF;AAClC,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAA5B,OAAA,GAEaC,YAAY","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _i18n = require("@edx/frontend-platform/i18n");
9
+ var _paragon = require("@openedx/paragon");
10
+ var _icons = require("@openedx/paragon/icons");
11
+ var _messages = _interopRequireDefault(require("./messages"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ const UpgradeBanner = _ref => {
15
+ let {
16
+ upgradeUrl
17
+ } = _ref;
18
+ const intl = (0, _i18n.useIntl)();
19
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.ActionRow, {
20
+ className: "my-3 p-4 bg-primary rounded",
21
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
22
+ direction: "horizontal",
23
+ gap: 3,
24
+ className: "text-white align-items-start",
25
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Icon, {
26
+ src: _icons.Locked
27
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
28
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
29
+ className: "h4 text-white",
30
+ children: intl.formatMessage(_messages.default.upgradeBannerHeader)
31
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
32
+ className: "small",
33
+ children: intl.formatMessage(_messages.default.upgradeBannerMessage)
34
+ })]
35
+ })]
36
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow.Spacer, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
37
+ size: "sm",
38
+ variant: "inverse-primary",
39
+ as: "a",
40
+ href: upgradeUrl,
41
+ children: intl.formatMessage(_messages.default.upgradeBannerButtonLabel)
42
+ })]
43
+ });
44
+ };
45
+ UpgradeBanner.propTypes = {
46
+ upgradeUrl: _propTypes.default.string.isRequired
47
+ };
48
+ var _default = exports.default = UpgradeBanner;
49
+ //# sourceMappingURL=UpgradeBanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpgradeBanner.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_messages","_jsxRuntime","obj","__esModule","default","UpgradeBanner","_ref","upgradeUrl","intl","useIntl","jsxs","ActionRow","className","children","Stack","direction","gap","jsx","Icon","src","Locked","formatMessage","messages","upgradeBannerHeader","upgradeBannerMessage","Spacer","Button","size","variant","as","href","upgradeBannerButtonLabel","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../src/section-outline/UpgradeBanner.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n Icon,\n Stack,\n} from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\n\nimport messages from './messages';\n\nconst UpgradeBanner = ({ upgradeUrl }) => {\n const intl = useIntl();\n\n return (\n <ActionRow className=\"my-3 p-4 bg-primary rounded\">\n <Stack direction=\"horizontal\" gap={3} className=\"text-white align-items-start\">\n <Icon src={Locked} />\n <Stack>\n <div className=\"h4 text-white\">\n {intl.formatMessage(messages.upgradeBannerHeader)}\n </div>\n <div className=\"small\">\n {intl.formatMessage(messages.upgradeBannerMessage)}\n </div>\n </Stack>\n </Stack>\n <ActionRow.Spacer />\n <Button\n size=\"sm\"\n variant=\"inverse-primary\"\n as=\"a\"\n href={upgradeUrl}\n >\n {intl.formatMessage(messages.upgradeBannerButtonLabel)}\n </Button>\n </ActionRow>\n );\n};\n\nUpgradeBanner.propTypes = {\n upgradeUrl: PropTypes.string.isRequired,\n};\n\nexport default UpgradeBanner;\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAMA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAkC,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAElC,MAAMG,aAAa,GAAGC,IAAA,IAAoB;EAAA,IAAnB;IAAEC;EAAW,CAAC,GAAAD,IAAA;EACnC,MAAME,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EAEtB,oBACE,IAAAR,WAAA,CAAAS,IAAA,EAACZ,QAAA,CAAAa,SAAS;IAACC,SAAS,EAAC,6BAA6B;IAAAC,QAAA,gBAChD,IAAAZ,WAAA,CAAAS,IAAA,EAACZ,QAAA,CAAAgB,KAAK;MAACC,SAAS,EAAC,YAAY;MAACC,GAAG,EAAE,CAAE;MAACJ,SAAS,EAAC,8BAA8B;MAAAC,QAAA,gBAC5E,IAAAZ,WAAA,CAAAgB,GAAA,EAACnB,QAAA,CAAAoB,IAAI;QAACC,GAAG,EAAEC;MAAO,CAAE,CAAC,eACrB,IAAAnB,WAAA,CAAAS,IAAA,EAACZ,QAAA,CAAAgB,KAAK;QAAAD,QAAA,gBACJ,IAAAZ,WAAA,CAAAgB,GAAA;UAAKL,SAAS,EAAC,eAAe;UAAAC,QAAA,EAC3BL,IAAI,CAACa,aAAa,CAACC,iBAAQ,CAACC,mBAAmB;QAAC,CAC9C,CAAC,eACN,IAAAtB,WAAA,CAAAgB,GAAA;UAAKL,SAAS,EAAC,OAAO;UAAAC,QAAA,EACnBL,IAAI,CAACa,aAAa,CAACC,iBAAQ,CAACE,oBAAoB;QAAC,CAC/C,CAAC;MAAA,CACD,CAAC;IAAA,CACH,CAAC,eACR,IAAAvB,WAAA,CAAAgB,GAAA,EAACnB,QAAA,CAAAa,SAAS,CAACc,MAAM,IAAE,CAAC,eACpB,IAAAxB,WAAA,CAAAgB,GAAA,EAACnB,QAAA,CAAA4B,MAAM;MACLC,IAAI,EAAC,IAAI;MACTC,OAAO,EAAC,iBAAiB;MACzBC,EAAE,EAAC,GAAG;MACNC,IAAI,EAAEvB,UAAW;MAAAM,QAAA,EAEhBL,IAAI,CAACa,aAAa,CAACC,iBAAQ,CAACS,wBAAwB;IAAC,CAChD,CAAC;EAAA,CACA,CAAC;AAEhB,CAAC;AAED1B,aAAa,CAAC2B,SAAS,GAAG;EACxBzB,UAAU,EAAE0B,kBAAS,CAACC,MAAM,CAACC;AAC/B,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAjC,OAAA,GAEaC,aAAa","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UNLOCKED = exports.PARTIALLY_LOCKED = exports.LOCKED = void 0;
7
+ const UNLOCKED = exports.UNLOCKED = 'unlocked';
8
+ const LOCKED = exports.LOCKED = 'locked';
9
+ const PARTIALLY_LOCKED = exports.PARTIALLY_LOCKED = 'partial';
10
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":["UNLOCKED","exports","LOCKED","PARTIALLY_LOCKED"],"sources":["../../src/section-outline/constants.js"],"sourcesContent":["const UNLOCKED = 'unlocked';\nconst LOCKED = 'locked';\nconst PARTIALLY_LOCKED = 'partial';\n\nexport {\n UNLOCKED,\n LOCKED,\n PARTIALLY_LOCKED,\n};\n"],"mappings":";;;;;;AAAA,MAAMA,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG,UAAU;AAC3B,MAAME,MAAM,GAAAD,OAAA,CAAAC,MAAA,GAAG,QAAQ;AACvB,MAAMC,gBAAgB,GAAAF,OAAA,CAAAE,gBAAA,GAAG,SAAS","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _frontendPlatform = require("@edx/frontend-platform");
8
+ var _auth = require("@edx/frontend-platform/auth");
9
+ var _constants = require("../constants");
10
+ async function fetchSequenceBlocks(id) {
11
+ const LmsApiUrl = (0, _frontendPlatform.getConfig)().LMS_BASE_URL;
12
+ const sequenceUrl = `${LmsApiUrl}/api/courseware/sequence/${id}`;
13
+ const gatedContent = {};
14
+ try {
15
+ let gatedContentCount = 0;
16
+ const {
17
+ data: {
18
+ items
19
+ }
20
+ } = await (0, _auth.getAuthenticatedHttpClient)().get(sequenceUrl);
21
+ (0, _frontendPlatform.camelCaseObject)(items).forEach(item => {
22
+ const {
23
+ containsContentTypeGatedContent
24
+ } = item;
25
+ if (containsContentTypeGatedContent) {
26
+ gatedContentCount += 1;
27
+ }
28
+ });
29
+ if (gatedContentCount === 0) {
30
+ gatedContent[id] = _constants.UNLOCKED;
31
+ } else if (gatedContentCount === items.length) {
32
+ gatedContent[id] = _constants.LOCKED;
33
+ } else {
34
+ gatedContent[id] = _constants.PARTIALLY_LOCKED;
35
+ }
36
+ } catch (error) {
37
+ gatedContent[id] = _constants.UNLOCKED;
38
+ }
39
+ return gatedContent;
40
+ }
41
+ var _default = exports.default = fetchSequenceBlocks;
42
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","names":["_frontendPlatform","require","_auth","_constants","fetchSequenceBlocks","id","LmsApiUrl","getConfig","LMS_BASE_URL","sequenceUrl","gatedContent","gatedContentCount","data","items","getAuthenticatedHttpClient","get","camelCaseObject","forEach","item","containsContentTypeGatedContent","UNLOCKED","length","LOCKED","PARTIALLY_LOCKED","error","_default","exports","default"],"sources":["../../../src/section-outline/data/api.js"],"sourcesContent":["import { getConfig, camelCaseObject } from '@edx/frontend-platform';\nimport { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';\nimport { LOCKED, PARTIALLY_LOCKED, UNLOCKED } from '../constants';\n\nasync function fetchSequenceBlocks(id) {\n const LmsApiUrl = getConfig().LMS_BASE_URL;\n const sequenceUrl = `${LmsApiUrl}/api/courseware/sequence/${id}`;\n const gatedContent = {};\n\n try {\n let gatedContentCount = 0;\n const { data: { items } } = await getAuthenticatedHttpClient().get(sequenceUrl);\n camelCaseObject(items).forEach(item => {\n const { containsContentTypeGatedContent } = item;\n if (containsContentTypeGatedContent) {\n gatedContentCount += 1;\n }\n });\n\n if (gatedContentCount === 0) {\n gatedContent[id] = UNLOCKED;\n } else if (gatedContentCount === items.length) {\n gatedContent[id] = LOCKED;\n } else {\n gatedContent[id] = PARTIALLY_LOCKED;\n }\n } catch (error) {\n gatedContent[id] = UNLOCKED;\n }\n\n return gatedContent;\n}\n\nexport default fetchSequenceBlocks;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,eAAeG,mBAAmBA,CAACC,EAAE,EAAE;EACrC,MAAMC,SAAS,GAAG,IAAAC,2BAAS,EAAC,CAAC,CAACC,YAAY;EAC1C,MAAMC,WAAW,GAAG,GAAGH,SAAS,4BAA4BD,EAAE,EAAE;EAChE,MAAMK,YAAY,GAAG,CAAC,CAAC;EAEvB,IAAI;IACF,IAAIC,iBAAiB,GAAG,CAAC;IACzB,MAAM;MAAEC,IAAI,EAAE;QAAEC;MAAM;IAAE,CAAC,GAAG,MAAM,IAAAC,gCAA0B,EAAC,CAAC,CAACC,GAAG,CAACN,WAAW,CAAC;IAC/E,IAAAO,iCAAe,EAACH,KAAK,CAAC,CAACI,OAAO,CAACC,IAAI,IAAI;MACrC,MAAM;QAAEC;MAAgC,CAAC,GAAGD,IAAI;MAChD,IAAIC,+BAA+B,EAAE;QACnCR,iBAAiB,IAAI,CAAC;MACxB;IACF,CAAC,CAAC;IAEF,IAAIA,iBAAiB,KAAK,CAAC,EAAE;MAC3BD,YAAY,CAACL,EAAE,CAAC,GAAGe,mBAAQ;IAC7B,CAAC,MAAM,IAAIT,iBAAiB,KAAKE,KAAK,CAACQ,MAAM,EAAE;MAC7CX,YAAY,CAACL,EAAE,CAAC,GAAGiB,iBAAM;IAC3B,CAAC,MAAM;MACLZ,YAAY,CAACL,EAAE,CAAC,GAAGkB,2BAAgB;IACrC;EACF,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdd,YAAY,CAACL,EAAE,CAAC,GAAGe,mBAAQ;EAC7B;EAEA,OAAOV,YAAY;AACrB;AAAC,IAAAe,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcvB,mBAAmB","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _api = _interopRequireDefault(require("./data/api"));
9
+ var _constants = require("./constants");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
+ const getAllSequenceIds = _ref => {
17
+ let {
18
+ sections
19
+ } = _ref;
20
+ let allSequenceIds = [];
21
+ const sectionToSequenceMap = {};
22
+ Object.entries(sections).forEach(_ref2 => {
23
+ let [id, section] = _ref2;
24
+ const {
25
+ sequenceIds
26
+ } = section;
27
+ allSequenceIds = [...allSequenceIds, ...sequenceIds];
28
+ sectionToSequenceMap[id] = sequenceIds;
29
+ });
30
+ return [sectionToSequenceMap, allSequenceIds];
31
+ };
32
+ const useSequenceContext = _ref3 => {
33
+ let {
34
+ sections,
35
+ isFBE
36
+ } = _ref3;
37
+ const [isLoading, setIsLoading] = (0, _react.useState)(true);
38
+ const [sequenceData, setSequenceData] = (0, _react.useState)({});
39
+ const [courseHasLockedContent, setCourseHasLockedContent] = (0, _react.useState)(false);
40
+ const [sectionToSequenceMap, sequenceIds] = (0, _react.useMemo)(() => getAllSequenceIds({
41
+ sections
42
+ }), [sections]);
43
+ const fetchSectionHasLockedContent = sectionId => {
44
+ const currentSequenceIds = sectionToSequenceMap[sectionId];
45
+ const hasLockedContent = currentSequenceIds.some(id => sequenceData[id] === _constants.LOCKED || sequenceData[id] === _constants.PARTIALLY_LOCKED);
46
+ return hasLockedContent;
47
+ };
48
+ (0, _react.useEffect)(() => {
49
+ const fetchData = async () => {
50
+ let lockedSequencesData = {};
51
+ await Promise.all(sequenceIds.map(async id => {
52
+ await (0, _api.default)(id).then(data => {
53
+ lockedSequencesData = _objectSpread(_objectSpread({}, lockedSequencesData), data);
54
+ });
55
+ }));
56
+ const hasLockedContent = Object.values(lockedSequencesData).some(sequenceLockedStatus => sequenceLockedStatus === _constants.LOCKED || sequenceLockedStatus === _constants.PARTIALLY_LOCKED);
57
+ setCourseHasLockedContent(hasLockedContent);
58
+ setSequenceData(lockedSequencesData);
59
+ };
60
+ if (isFBE) {
61
+ fetchData();
62
+ } else {
63
+ const lockedSequencesData = {};
64
+ sequenceIds.forEach(sequenceId => {
65
+ lockedSequencesData[sequenceId] = _constants.UNLOCKED;
66
+ setSequenceData(lockedSequencesData);
67
+ });
68
+ }
69
+ setIsLoading(false);
70
+ }, [sections, isFBE, sequenceIds]);
71
+ return {
72
+ courseHasLockedContent,
73
+ fetchSectionHasLockedContent,
74
+ isLoading,
75
+ sequenceData
76
+ };
77
+ };
78
+ var _default = exports.default = useSequenceContext;
79
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","names":["_react","require","_api","_interopRequireDefault","_constants","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","getAllSequenceIds","_ref","sections","allSequenceIds","sectionToSequenceMap","entries","_ref2","id","section","sequenceIds","useSequenceContext","_ref3","isFBE","isLoading","setIsLoading","useState","sequenceData","setSequenceData","courseHasLockedContent","setCourseHasLockedContent","useMemo","fetchSectionHasLockedContent","sectionId","currentSequenceIds","hasLockedContent","some","LOCKED","PARTIALLY_LOCKED","useEffect","fetchData","lockedSequencesData","Promise","all","map","fetchSequenceBlocks","then","data","values","sequenceLockedStatus","sequenceId","UNLOCKED","_default","exports"],"sources":["../../src/section-outline/hooks.jsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\nimport fetchSequenceBlocks from './data/api';\nimport { LOCKED, PARTIALLY_LOCKED, UNLOCKED } from './constants';\n\nconst getAllSequenceIds = ({ sections }) => {\n let allSequenceIds = [];\n const sectionToSequenceMap = {};\n\n Object.entries(sections).forEach(([id, section]) => {\n const { sequenceIds } = section;\n\n allSequenceIds = [...allSequenceIds, ...sequenceIds];\n sectionToSequenceMap[id] = sequenceIds;\n });\n return [sectionToSequenceMap, allSequenceIds];\n};\n\nconst useSequenceContext = ({ sections, isFBE }) => {\n const [isLoading, setIsLoading] = useState(true);\n const [sequenceData, setSequenceData] = useState({});\n const [courseHasLockedContent, setCourseHasLockedContent] = useState(false);\n\n const [sectionToSequenceMap, sequenceIds] = useMemo(() => getAllSequenceIds({ sections }), [sections]);\n\n const fetchSectionHasLockedContent = (sectionId) => {\n const currentSequenceIds = sectionToSequenceMap[sectionId];\n const hasLockedContent = currentSequenceIds.some(id => (\n sequenceData[id] === LOCKED || sequenceData[id] === PARTIALLY_LOCKED\n ));\n\n return hasLockedContent;\n };\n\n useEffect(() => {\n const fetchData = async () => {\n let lockedSequencesData = {};\n\n await Promise.all(sequenceIds.map(async (id) => {\n await fetchSequenceBlocks(id).then((data) => {\n lockedSequencesData = { ...lockedSequencesData, ...data };\n });\n }));\n\n const hasLockedContent = Object.values(lockedSequencesData).some(\n sequenceLockedStatus => (\n sequenceLockedStatus === LOCKED || sequenceLockedStatus === PARTIALLY_LOCKED\n ),\n );\n\n setCourseHasLockedContent(hasLockedContent);\n setSequenceData(lockedSequencesData);\n };\n\n if (isFBE) {\n fetchData();\n } else {\n const lockedSequencesData = {};\n sequenceIds.forEach(sequenceId => {\n lockedSequencesData[sequenceId] = UNLOCKED;\n setSequenceData(lockedSequencesData);\n });\n }\n\n setIsLoading(false);\n }, [sections, isFBE, sequenceIds]);\n\n return {\n courseHasLockedContent,\n fetchSectionHasLockedContent,\n isLoading,\n sequenceData,\n };\n};\n\nexport default useSequenceContext;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _SectionList = _interopRequireDefault(require("./SectionList"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ var _default = exports.default = _SectionList.default;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_SectionList","_interopRequireDefault","require","obj","__esModule","default","_default","exports","SectionList"],"sources":["../../src/section-outline/index.js"],"sourcesContent":["import SectionList from './SectionList';\n\nexport default SectionList;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAwC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEzBG,oBAAW","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _i18n = require("@edx/frontend-platform/i18n");
8
+ const messages = (0, _i18n.defineMessages)({
9
+ sectionChipText: {
10
+ id: 'course-home.section-outline.section-item.chip.text',
11
+ defaultMessage: 'Limited content. Upgrade for full access.',
12
+ description: 'Message notifying user that some of the content in the section is locked'
13
+ },
14
+ sectionUpgradeButtonText: {
15
+ id: 'course-home.section-outline.section-item.button.label',
16
+ defaultMessage: 'Upgrade for full access',
17
+ description: 'Message for button that is used to upgrade'
18
+ },
19
+ sequenceTooltipContent: {
20
+ id: 'course-home.section-outline.sequence-item.tooltip.content',
21
+ defaultMessage: '{lockedStatus, select, partial {Limited content} other {Not Available}}.\nUpgrade for full access.',
22
+ description: 'Tooltip content dependent on the locked status of units in the sequence.'
23
+ },
24
+ upgradeBannerHeader: {
25
+ id: 'course-home.section-outline.upgrade-banner.header',
26
+ defaultMessage: 'Unlock graded assessments and assignments',
27
+ description: 'Header message for the upgrade banner above the section outline'
28
+ },
29
+ upgradeBannerMessage: {
30
+ id: 'course-home.section-outline.upgrade-banner.message',
31
+ defaultMessage: 'Upgrade today and enjoy unlimited access to all course material.',
32
+ description: 'Body message for the upgrade banner above the section outline'
33
+ },
34
+ upgradeBannerButtonLabel: {
35
+ id: 'course-home.section-outline.upgrade-banner.button.label',
36
+ defaultMessage: 'Upgrade now',
37
+ description: 'Button label for the upgrade button in the upgrade banner above the section outline'
38
+ }
39
+ });
40
+ var _default = exports.default = messages;
41
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","sectionChipText","id","defaultMessage","description","sectionUpgradeButtonText","sequenceTooltipContent","upgradeBannerHeader","upgradeBannerMessage","upgradeBannerButtonLabel","_default","exports","default"],"sources":["../../src/section-outline/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n sectionChipText: {\n id: 'course-home.section-outline.section-item.chip.text',\n defaultMessage: 'Limited content. Upgrade for full access.',\n description: 'Message notifying user that some of the content in the section is locked',\n },\n sectionUpgradeButtonText: {\n id: 'course-home.section-outline.section-item.button.label',\n defaultMessage: 'Upgrade for full access',\n description: 'Message for button that is used to upgrade',\n },\n sequenceTooltipContent: {\n id: 'course-home.section-outline.sequence-item.tooltip.content',\n defaultMessage: '{lockedStatus, select, partial {Limited content} other {Not Available}}.\\nUpgrade for full access.',\n description: 'Tooltip content dependent on the locked status of units in the sequence.',\n },\n upgradeBannerHeader: {\n id: 'course-home.section-outline.upgrade-banner.header',\n defaultMessage: 'Unlock graded assessments and assignments',\n description: 'Header message for the upgrade banner above the section outline',\n },\n upgradeBannerMessage: {\n id: 'course-home.section-outline.upgrade-banner.message',\n defaultMessage: 'Upgrade today and enjoy unlimited access to all course material.',\n description: 'Body message for the upgrade banner above the section outline',\n },\n upgradeBannerButtonLabel: {\n id: 'course-home.section-outline.upgrade-banner.button.label',\n defaultMessage: 'Upgrade now',\n description: 'Button label for the upgrade button in the upgrade banner above the section outline',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9BC,eAAe,EAAE;IACfC,EAAE,EAAE,oDAAoD;IACxDC,cAAc,EAAE,2CAA2C;IAC3DC,WAAW,EAAE;EACf,CAAC;EACDC,wBAAwB,EAAE;IACxBH,EAAE,EAAE,uDAAuD;IAC3DC,cAAc,EAAE,yBAAyB;IACzCC,WAAW,EAAE;EACf,CAAC;EACDE,sBAAsB,EAAE;IACtBJ,EAAE,EAAE,2DAA2D;IAC/DC,cAAc,EAAE,oGAAoG;IACpHC,WAAW,EAAE;EACf,CAAC;EACDG,mBAAmB,EAAE;IACnBL,EAAE,EAAE,mDAAmD;IACvDC,cAAc,EAAE,2CAA2C;IAC3DC,WAAW,EAAE;EACf,CAAC;EACDI,oBAAoB,EAAE;IACpBN,EAAE,EAAE,oDAAoD;IACxDC,cAAc,EAAE,kEAAkE;IAClFC,WAAW,EAAE;EACf,CAAC;EACDK,wBAAwB,EAAE;IACxBP,EAAE,EAAE,yDAAyD;IAC7DC,cAAc,EAAE,aAAa;IAC7BC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYb,QAAQ","ignoreList":[]}
@@ -8,8 +8,9 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _paragon = require("@openedx/paragon");
10
10
  var _modelStore = require("@src/generic/model-store");
11
+ var _hooks = require("@src/data/hooks");
11
12
  var _NextButton = _interopRequireDefault(require("@src/courseware/course/sequence/sequence-navigation/generic/NextButton"));
12
- var _hooks = require("./hooks");
13
+ var _hooks2 = require("./hooks");
13
14
  var _UpgradeModalWrapper = _interopRequireDefault(require("./UpgradeModalWrapper"));
14
15
  var _jsxRuntime = require("react/jsx-runtime");
15
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -19,15 +20,16 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
19
20
 
20
21
  const NextUnitButton = _ref => {
21
22
  let {
22
- courseId,
23
23
  disabled,
24
24
  buttonText,
25
25
  sequenceId,
26
26
  onClickHandler,
27
27
  nextLink,
28
28
  variant,
29
- buttonStyle
29
+ buttonStyle,
30
+ isAtTop
30
31
  } = _ref;
32
+ const courseId = (0, _hooks.useContextId)();
31
33
  const [isOpen, open, close] = (0, _paragon.useToggle)(false);
32
34
  const {
33
35
  verifiedMode,
@@ -40,8 +42,8 @@ const NextUnitButton = _ref => {
40
42
  datesBannerInfo,
41
43
  learningAssistantEnabled
42
44
  } = (0, _modelStore.useModel)('coursewareMeta', courseId);
43
- const isEnabled = (0, _hooks.useIsModalEnabled)(courseId);
44
- const [shouldShowModalOnClick, countNextClick] = (0, _hooks.useInCourseUpgradeModal)();
45
+ const isEnabled = (0, _hooks2.useIsModalEnabled)(courseId);
46
+ const [shouldShowModalOnClick, countNextClick] = (0, _hooks2.useInCourseUpgradeModal)();
45
47
  const handleModal = () => {
46
48
  if (isEnabled) {
47
49
  countNextClick();
@@ -61,7 +63,8 @@ const NextUnitButton = _ref => {
61
63
  variant: variant,
62
64
  buttonStyle: buttonStyle,
63
65
  buttonText: buttonText,
64
- disabled: disabled
66
+ disabled: disabled,
67
+ isAtTop: isAtTop
65
68
  }), isOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpgradeModalWrapper.default, {
66
69
  isOpen,
67
70
  close,
@@ -76,6 +79,9 @@ const NextUnitButton = _ref => {
76
79
  })]
77
80
  });
78
81
  };
82
+ NextUnitButton.defaultProps = {
83
+ isAtTop: false
84
+ };
79
85
  NextUnitButton.propTypes = {
80
86
  disabled: _propTypes.default.bool.isRequired,
81
87
  buttonText: _propTypes.default.string.isRequired,
@@ -85,7 +91,8 @@ NextUnitButton.propTypes = {
85
91
  onClickHandler: _propTypes.default.func.isRequired,
86
92
  courseId: _propTypes.default.string.isRequired,
87
93
  variant: _propTypes.default.string.isRequired,
88
- buttonStyle: _propTypes.default.string.isRequired
94
+ buttonStyle: _propTypes.default.string.isRequired,
95
+ isAtTop: _propTypes.default.bool
89
96
  };
90
97
  var _default = exports.default = NextUnitButton;
91
98
  //# sourceMappingURL=NextUnitButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NextUnitButton.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_paragon","_modelStore","_NextButton","_hooks","_UpgradeModalWrapper","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","NextUnitButton","_ref","courseId","disabled","buttonText","sequenceId","onClickHandler","nextLink","variant","buttonStyle","isOpen","open","close","useToggle","verifiedMode","org","useModel","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","isEnabled","useIsModalEnabled","shouldShowModalOnClick","countNextClick","useInCourseUpgradeModal","handleModal","useEffect","jsxs","Fragment","children","jsx","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 NextButton from '@src/courseware/course/sequence/sequence-navigation/generic/NextButton';\nimport { useInCourseUpgradeModal, useIsModalEnabled } from './hooks';\nimport UpgradeModalWrapper from './UpgradeModalWrapper';\n\nconst NextUnitButton = ({\n courseId,\n disabled,\n buttonText,\n sequenceId,\n onClickHandler,\n nextLink,\n variant,\n buttonStyle,\n}) => {\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 />\n {isOpen && (\n <UpgradeModalWrapper\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.propTypes = {\n disabled: PropTypes.bool.isRequired,\n buttonText: PropTypes.string.isRequired,\n nextLink: PropTypes.string.isRequired,\n sequenceId: PropTypes.string.isRequired,\n unitId: PropTypes.string.isRequired,\n onClickHandler: PropTypes.func.isRequired,\n courseId: PropTypes.string.isRequired,\n variant: PropTypes.string.isRequired,\n buttonStyle: PropTypes.string.isRequired,\n};\n\nexport default NextUnitButton;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NextUnitButton.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_paragon","_modelStore","_hooks","_NextButton","_hooks2","_UpgradeModalWrapper","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","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 UpgradeModalWrapper from './UpgradeModalWrapper';\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 <UpgradeModalWrapper\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 unitId: PropTypes.string.isRequired,\n onClickHandler: PropTypes.func.isRequired,\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":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edx/frontend-plugin-advertisements",
3
- "version": "1.37.0",
3
+ "version": "1.38.0",
4
4
  "description": "Frontend plugin for edX in course advertisements",
5
5
  "main": "dist/index.js",
6
6
  "repository": {