@edx/frontend-plugin-advertisements 2.4.0 → 2.5.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.
@@ -44,7 +44,7 @@ const LockPaywall = _ref => {
44
44
  conversion
45
45
  } = (0, _cohesion.useCohesion)(courseId);
46
46
 
47
- // the following variables are set and used for resposive layout to work with
47
+ // the following variables are set and used for responsive layout to work with
48
48
  // whether the NotificationTray is open or not and if there's an offer with longer text
49
49
  const shouldDisplayGatedContentTwoColumnsHalf = (0, _paragon.useWindowSize)().width <= _paragon.breakpoints.large.minWidth;
50
50
  const shouldWrapTextOnButton = (0, _paragon.useWindowSize)().width > _paragon.breakpoints.extraSmall.minWidth;
@@ -1 +1 @@
1
- {"version":3,"file":"LockPaywall.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_i18n","_paragon","_icons","_messages","_edX_locked_certificate","_modelStore","_upgradeButton","_auth","_analytics","_upsellBullets","_cohesion","_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","LockPaywall","_ref","courseId","intl","useIntl","course","useModel","accessExpiration","marketingUrl","offer","org","verifiedMode","conversion","useCohesion","shouldDisplayGatedContentTwoColumnsHalf","useWindowSize","width","breakpoints","large","minWidth","shouldWrapTextOnButton","extraSmall","accessExpirationDate","Date","expirationDate","pastExpirationDeadline","now","eventProperties","org_key","courserun_key","userId","getAuthenticatedUser","handleUpgradeClick","sendTrackEvent","linkCategory","linkName","linkType","pageName","handleUpgradeClickPastExpiration","jsx","Alert","variant","icon","Locked","className","children","jsxs","formatMessage","messages","Hyperlink","destination","onClick","target","id","defaultMessage","description","classNames","style","float","alt","src","certificateLocked","height","VerifiedCertBullet","UnlockGradedBullet","FullAccessBullet","SupportMissionBullet","UpgradeButton","whiteSpace","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../src/paywall/LockPaywall.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n Alert, breakpoints, Hyperlink, useWindowSize,\n} from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\nimport messages from '@src/courseware/course/sequence/lock-paywall/messages';\nimport certificateLocked from '@src/generic/assets/edX_locked_certificate.png';\nimport { useModel } from '@src/generic/model-store';\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\n\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from '../generic/upsell-bullets';\nimport { useCohesion } from '../cohesion';\n\nconst LockPaywall = ({\n courseId,\n}) => {\n const intl = useIntl();\n const course = useModel('coursewareMeta', courseId);\n const {\n accessExpiration,\n marketingUrl,\n offer,\n } = course;\n\n const {\n org, verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n const { conversion } = useCohesion(courseId);\n\n // the following variables are set and used for resposive layout to work with\n // whether the NotificationTray is open or not and if there's an offer with longer text\n const shouldDisplayGatedContentTwoColumnsHalf = useWindowSize().width <= breakpoints.large.minWidth;\n const shouldWrapTextOnButton = useWindowSize().width > breakpoints.extraSmall.minWidth;\n\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(Date.now()) > accessExpirationDate : false;\n\n if (!verifiedMode) {\n return null;\n }\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const { userId } = getAuthenticatedUser();\n\n const handleUpgradeClick = () => {\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: '(none)',\n linkName: 'in_course_upgrade',\n linkType: 'link',\n pageName: 'in_course',\n });\n\n conversion('Upgraded');\n };\n\n const handleUpgradeClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.gated_content.past_expiration.link_clicked', {\n ...eventProperties,\n linkCategory: 'gated_content',\n linkName: 'course_details',\n linkType: 'link',\n pageName: 'in_course',\n });\n };\n\n return (\n <Alert variant=\"light\" aria-live=\"off\" icon={Locked} className=\"lock-paywall-container\" data-testid=\"lock-paywall-lock-paywall-test-id\">\n <div className=\"row\">\n <div className=\"col\">\n <h4 aria-level=\"3\">\n <span>{intl.formatMessage(messages['learn.lockPaywall.title'])}</span>\n </h4>\n {pastExpirationDeadline ? (\n <div className=\"mb-2 upgrade-intro\" data-testid=\"lock-paywall-past-expiration\">\n {intl.formatMessage(messages['learn.lockPaywall.content.pastExpiration'])}\n <Hyperlink\n destination={marketingUrl}\n onClick={handleUpgradeClickPastExpiration(eventProperties)}\n target=\"_blank\"\n data-testid=\"lock-paywall-past-expiration-link\"\n >\n {intl.formatMessage(messages['learn.lockPaywall.courseDetails'])}\n <span>\n {intl.formatMessage({\n id: 'learn.lockPaywall.content.link.new-tab.screenreader-only.message',\n defaultMessage: 'in a new tab',\n description: 'Screenreader only text for new tab link',\n })}\n </span>\n </Hyperlink>\n </div>\n ) : (\n <div className=\"mb-2 upgrade-intro\">\n {intl.formatMessage(messages['learn.lockPaywall.content'])}\n </div>\n )}\n\n <div className={classNames('d-inline-flex flex-row', { 'flex-wrap': shouldDisplayGatedContentTwoColumnsHalf })}>\n <div style={{ float: 'left' }} className=\"mr-3 mb-2\">\n <img\n alt={intl.formatMessage(messages['learn.lockPaywall.example.alt'])}\n src={certificateLocked}\n className=\"border-0 certificate-image-banner\"\n style={{ height: '128px', width: '175px' }}\n />\n </div>\n\n <div className=\"mw-xs list-div\">\n <div className=\"mb-2\">\n {intl.formatMessage(messages['learn.lockPaywall.list.intro'])}\n </div>\n <ul className=\"fa-ul ml-4 pl-2\">\n <VerifiedCertBullet />\n <UnlockGradedBullet />\n <FullAccessBullet />\n <SupportMissionBullet />\n </ul>\n </div>\n </div>\n </div>\n\n {pastExpirationDeadline\n ? null\n : (\n <div\n className={\n classNames('d-flex flex-column align-items-md-center text-right justify-content-center', {\n 'col-md-4 mx-md-3': !shouldDisplayGatedContentTwoColumnsHalf, 'col-md-6': shouldDisplayGatedContentTwoColumnsHalf,\n })\n }\n >\n <UpgradeButton\n offer={offer}\n onClick={() => handleUpgradeClick(eventProperties, userId)}\n verifiedMode={verifiedMode}\n style={{ whiteSpace: shouldWrapTextOnButton ? 'nowrap' : null }}\n data-testid=\"upgrade-button\"\n />\n </div>\n )}\n </div>\n </Alert>\n );\n};\nLockPaywall.propTypes = {\n courseId: PropTypes.string.isRequired,\n};\n\nexport default LockPaywall;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LockPaywall.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_i18n","_paragon","_icons","_messages","_edX_locked_certificate","_modelStore","_upgradeButton","_auth","_analytics","_upsellBullets","_cohesion","_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","LockPaywall","_ref","courseId","intl","useIntl","course","useModel","accessExpiration","marketingUrl","offer","org","verifiedMode","conversion","useCohesion","shouldDisplayGatedContentTwoColumnsHalf","useWindowSize","width","breakpoints","large","minWidth","shouldWrapTextOnButton","extraSmall","accessExpirationDate","Date","expirationDate","pastExpirationDeadline","now","eventProperties","org_key","courserun_key","userId","getAuthenticatedUser","handleUpgradeClick","sendTrackEvent","linkCategory","linkName","linkType","pageName","handleUpgradeClickPastExpiration","jsx","Alert","variant","icon","Locked","className","children","jsxs","formatMessage","messages","Hyperlink","destination","onClick","target","id","defaultMessage","description","classNames","style","float","alt","src","certificateLocked","height","VerifiedCertBullet","UnlockGradedBullet","FullAccessBullet","SupportMissionBullet","UpgradeButton","whiteSpace","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../src/paywall/LockPaywall.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n Alert, breakpoints, Hyperlink, useWindowSize,\n} from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\nimport messages from '@src/courseware/course/sequence/lock-paywall/messages';\nimport certificateLocked from '@src/generic/assets/edX_locked_certificate.png';\nimport { useModel } from '@src/generic/model-store';\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\n\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from '../generic/upsell-bullets';\nimport { useCohesion } from '../cohesion';\n\nconst LockPaywall = ({\n courseId,\n}) => {\n const intl = useIntl();\n const course = useModel('coursewareMeta', courseId);\n const {\n accessExpiration,\n marketingUrl,\n offer,\n } = course;\n\n const {\n org, verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n const { conversion } = useCohesion(courseId);\n\n // the following variables are set and used for responsive layout to work with\n // whether the NotificationTray is open or not and if there's an offer with longer text\n const shouldDisplayGatedContentTwoColumnsHalf = useWindowSize().width <= breakpoints.large.minWidth;\n const shouldWrapTextOnButton = useWindowSize().width > breakpoints.extraSmall.minWidth;\n\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(Date.now()) > accessExpirationDate : false;\n\n if (!verifiedMode) {\n return null;\n }\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const { userId } = getAuthenticatedUser();\n\n const handleUpgradeClick = () => {\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: '(none)',\n linkName: 'in_course_upgrade',\n linkType: 'link',\n pageName: 'in_course',\n });\n\n conversion('Upgraded');\n };\n\n const handleUpgradeClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.gated_content.past_expiration.link_clicked', {\n ...eventProperties,\n linkCategory: 'gated_content',\n linkName: 'course_details',\n linkType: 'link',\n pageName: 'in_course',\n });\n };\n\n return (\n <Alert variant=\"light\" aria-live=\"off\" icon={Locked} className=\"lock-paywall-container\" data-testid=\"lock-paywall-lock-paywall-test-id\">\n <div className=\"row\">\n <div className=\"col\">\n <h4 aria-level=\"3\">\n <span>{intl.formatMessage(messages['learn.lockPaywall.title'])}</span>\n </h4>\n {pastExpirationDeadline ? (\n <div className=\"mb-2 upgrade-intro\" data-testid=\"lock-paywall-past-expiration\">\n {intl.formatMessage(messages['learn.lockPaywall.content.pastExpiration'])}\n <Hyperlink\n destination={marketingUrl}\n onClick={handleUpgradeClickPastExpiration(eventProperties)}\n target=\"_blank\"\n data-testid=\"lock-paywall-past-expiration-link\"\n >\n {intl.formatMessage(messages['learn.lockPaywall.courseDetails'])}\n <span>\n {intl.formatMessage({\n id: 'learn.lockPaywall.content.link.new-tab.screenreader-only.message',\n defaultMessage: 'in a new tab',\n description: 'Screenreader only text for new tab link',\n })}\n </span>\n </Hyperlink>\n </div>\n ) : (\n <div className=\"mb-2 upgrade-intro\">\n {intl.formatMessage(messages['learn.lockPaywall.content'])}\n </div>\n )}\n\n <div className={classNames('d-inline-flex flex-row', { 'flex-wrap': shouldDisplayGatedContentTwoColumnsHalf })}>\n <div style={{ float: 'left' }} className=\"mr-3 mb-2\">\n <img\n alt={intl.formatMessage(messages['learn.lockPaywall.example.alt'])}\n src={certificateLocked}\n className=\"border-0 certificate-image-banner\"\n style={{ height: '128px', width: '175px' }}\n />\n </div>\n\n <div className=\"mw-xs list-div\">\n <div className=\"mb-2\">\n {intl.formatMessage(messages['learn.lockPaywall.list.intro'])}\n </div>\n <ul className=\"fa-ul ml-4 pl-2\">\n <VerifiedCertBullet />\n <UnlockGradedBullet />\n <FullAccessBullet />\n <SupportMissionBullet />\n </ul>\n </div>\n </div>\n </div>\n\n {pastExpirationDeadline\n ? null\n : (\n <div\n className={\n classNames('d-flex flex-column align-items-md-center text-right justify-content-center', {\n 'col-md-4 mx-md-3': !shouldDisplayGatedContentTwoColumnsHalf, 'col-md-6': shouldDisplayGatedContentTwoColumnsHalf,\n })\n }\n >\n <UpgradeButton\n offer={offer}\n onClick={() => handleUpgradeClick(eventProperties, userId)}\n verifiedMode={verifiedMode}\n style={{ whiteSpace: shouldWrapTextOnButton ? 'nowrap' : null }}\n data-testid=\"upgrade-button\"\n />\n </div>\n )}\n </div>\n </Alert>\n );\n};\nLockPaywall.propTypes = {\n courseId: PropTypes.string.isRequired,\n};\n\nexport default LockPaywall;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAGA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,uBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AAEA,IAAAY,cAAA,GAAAZ,OAAA;AAMA,IAAAa,SAAA,GAAAb,OAAA;AAA0C,IAAAc,WAAA,GAAAd,OAAA;AAAA,SAAAD,uBAAAgB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA,KAtB1C;AAwBA,MAAM8B,WAAW,GAAGC,IAAA,IAEd;EAAA,IAFe;IACnBC;EACF,CAAC,GAAAD,IAAA;EACC,MAAME,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EACtB,MAAMC,MAAM,GAAG,IAAAC,oBAAQ,EAAC,gBAAgB,EAAEJ,QAAQ,CAAC;EACnD,MAAM;IACJK,gBAAgB;IAChBC,YAAY;IACZC;EACF,CAAC,GAAGJ,MAAM;EAEV,MAAM;IACJK,GAAG;IAAEC;EACP,CAAC,GAAG,IAAAL,oBAAQ,EAAC,gBAAgB,EAAEJ,QAAQ,CAAC;EAExC,MAAM;IAAEU;EAAW,CAAC,GAAG,IAAAC,qBAAW,EAACX,QAAQ,CAAC;;EAE5C;EACA;EACA,MAAMY,uCAAuC,GAAG,IAAAC,sBAAa,EAAC,CAAC,CAACC,KAAK,IAAIC,oBAAW,CAACC,KAAK,CAACC,QAAQ;EACnG,MAAMC,sBAAsB,GAAG,IAAAL,sBAAa,EAAC,CAAC,CAACC,KAAK,GAAGC,oBAAW,CAACI,UAAU,CAACF,QAAQ;EAEtF,MAAMG,oBAAoB,GAAGf,gBAAgB,GAAG,IAAIgB,IAAI,CAAChB,gBAAgB,CAACiB,cAAc,CAAC,GAAG,IAAI;EAChG,MAAMC,sBAAsB,GAAGlB,gBAAgB,GAAG,IAAIgB,IAAI,CAACA,IAAI,CAACG,GAAG,CAAC,CAAC,CAAC,GAAGJ,oBAAoB,GAAG,KAAK;EAErG,IAAI,CAACX,YAAY,EAAE;IACjB,OAAO,IAAI;EACb;EAEA,MAAMgB,eAAe,GAAG;IACtBC,OAAO,EAAElB,GAAG;IACZmB,aAAa,EAAE3B;EACjB,CAAC;EAED,MAAM;IAAE4B;EAAO,CAAC,GAAG,IAAAC,0BAAoB,EAAC,CAAC;EAEzC,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,IAAAC,yBAAc,EAAC,uCAAuC,EAAArD,aAAA,CAAAA,aAAA,KACjD+C,eAAe;MAClBO,YAAY,EAAE,QAAQ;MACtBC,QAAQ,EAAE,mBAAmB;MAC7BC,QAAQ,EAAE,MAAM;MAChBC,QAAQ,EAAE;IAAW,EACtB,CAAC;IAEFzB,UAAU,CAAC,UAAU,CAAC;EACxB,CAAC;EAED,MAAM0B,gCAAgC,GAAGA,CAAA,KAAM;IAC7C,IAAAL,yBAAc,EAAC,6DAA6D,EAAArD,aAAA,CAAAA,aAAA,KACvE+C,eAAe;MAClBO,YAAY,EAAE,eAAe;MAC7BC,QAAQ,EAAE,gBAAgB;MAC1BC,QAAQ,EAAE,MAAM;MAChBC,QAAQ,EAAE;IAAW,EACtB,CAAC;EACJ,CAAC;EAED,oBACE,IAAAzE,WAAA,CAAA2E,GAAA,EAACrF,QAAA,CAAAsF,KAAK;IAACC,OAAO,EAAC,OAAO;IAAC,aAAU,KAAK;IAACC,IAAI,EAAEC,aAAO;IAACC,SAAS,EAAC,wBAAwB;IAAC,eAAY,mCAAmC;IAAAC,QAAA,eACrI,IAAAjF,WAAA,CAAAkF,IAAA;MAAKF,SAAS,EAAC,KAAK;MAAAC,QAAA,gBAClB,IAAAjF,WAAA,CAAAkF,IAAA;QAAKF,SAAS,EAAC,KAAK;QAAAC,QAAA,gBAClB,IAAAjF,WAAA,CAAA2E,GAAA;UAAI,cAAW,GAAG;UAAAM,QAAA,eAChB,IAAAjF,WAAA,CAAA2E,GAAA;YAAAM,QAAA,EAAO1C,IAAI,CAAC4C,aAAa,CAACC,iBAAQ,CAAC,yBAAyB,CAAC;UAAC,CAAO;QAAC,CACpE,CAAC,EACJvB,sBAAsB,gBACrB,IAAA7D,WAAA,CAAAkF,IAAA;UAAKF,SAAS,EAAC,oBAAoB;UAAC,eAAY,8BAA8B;UAAAC,QAAA,GAC3E1C,IAAI,CAAC4C,aAAa,CAACC,iBAAQ,CAAC,0CAA0C,CAAC,CAAC,eACzE,IAAApF,WAAA,CAAAkF,IAAA,EAAC5F,QAAA,CAAA+F,SAAS;YACRC,WAAW,EAAE1C,YAAa;YAC1B2C,OAAO,EAAEb,gCAAgC,CAACX,eAAe,CAAE;YAC3DyB,MAAM,EAAC,QAAQ;YACf,eAAY,mCAAmC;YAAAP,QAAA,GAE9C1C,IAAI,CAAC4C,aAAa,CAACC,iBAAQ,CAAC,iCAAiC,CAAC,CAAC,eAChE,IAAApF,WAAA,CAAA2E,GAAA;cAAAM,QAAA,EACG1C,IAAI,CAAC4C,aAAa,CAAC;gBAClBM,EAAE,EAAE,kEAAkE;gBACtEC,cAAc,EAAE,cAAc;gBAC9BC,WAAW,EAAE;cACf,CAAC;YAAC,CACE,CAAC;UAAA,CACE,CAAC;QAAA,CACT,CAAC,gBAEN,IAAA3F,WAAA,CAAA2E,GAAA;UAAKK,SAAS,EAAC,oBAAoB;UAAAC,QAAA,EAChC1C,IAAI,CAAC4C,aAAa,CAACC,iBAAQ,CAAC,2BAA2B,CAAC;QAAC,CACvD,CACN,eAED,IAAApF,WAAA,CAAAkF,IAAA;UAAKF,SAAS,EAAE,IAAAY,mBAAU,EAAC,wBAAwB,EAAE;YAAE,WAAW,EAAE1C;UAAwC,CAAC,CAAE;UAAA+B,QAAA,gBAC7G,IAAAjF,WAAA,CAAA2E,GAAA;YAAKkB,KAAK,EAAE;cAAEC,KAAK,EAAE;YAAO,CAAE;YAACd,SAAS,EAAC,WAAW;YAAAC,QAAA,eAClD,IAAAjF,WAAA,CAAA2E,GAAA;cACEoB,GAAG,EAAExD,IAAI,CAAC4C,aAAa,CAACC,iBAAQ,CAAC,+BAA+B,CAAC,CAAE;cACnEY,GAAG,EAAEC,+BAAkB;cACvBjB,SAAS,EAAC,mCAAmC;cAC7Ca,KAAK,EAAE;gBAAEK,MAAM,EAAE,OAAO;gBAAE9C,KAAK,EAAE;cAAQ;YAAE,CAC5C;UAAC,CACC,CAAC,eAEN,IAAApD,WAAA,CAAAkF,IAAA;YAAKF,SAAS,EAAC,gBAAgB;YAAAC,QAAA,gBAC7B,IAAAjF,WAAA,CAAA2E,GAAA;cAAKK,SAAS,EAAC,MAAM;cAAAC,QAAA,EAClB1C,IAAI,CAAC4C,aAAa,CAACC,iBAAQ,CAAC,8BAA8B,CAAC;YAAC,CAC1D,CAAC,eACN,IAAApF,WAAA,CAAAkF,IAAA;cAAIF,SAAS,EAAC,iBAAiB;cAAAC,QAAA,gBAC7B,IAAAjF,WAAA,CAAA2E,GAAA,EAAC7E,cAAA,CAAAqG,kBAAkB,IAAE,CAAC,eACtB,IAAAnG,WAAA,CAAA2E,GAAA,EAAC7E,cAAA,CAAAsG,kBAAkB,IAAE,CAAC,eACtB,IAAApG,WAAA,CAAA2E,GAAA,EAAC7E,cAAA,CAAAuG,gBAAgB,IAAE,CAAC,eACpB,IAAArG,WAAA,CAAA2E,GAAA,EAAC7E,cAAA,CAAAwG,oBAAoB,IAAE,CAAC;YAAA,CACtB,CAAC;UAAA,CACF,CAAC;QAAA,CACH,CAAC;MAAA,CACH,CAAC,EAELzC,sBAAsB,GACnB,IAAI,gBAEJ,IAAA7D,WAAA,CAAA2E,GAAA;QACEK,SAAS,EACP,IAAAY,mBAAU,EAAC,4EAA4E,EAAE;UACvF,kBAAkB,EAAE,CAAC1C,uCAAuC;UAAE,UAAU,EAAEA;QAC5E,CAAC,CACF;QAAA+B,QAAA,eAED,IAAAjF,WAAA,CAAA2E,GAAA,EAAChF,cAAA,CAAA4G,aAAa;UACZ1D,KAAK,EAAEA,KAAM;UACb0C,OAAO,EAAEA,CAAA,KAAMnB,kBAAkB,CAACL,eAAe,EAAEG,MAAM,CAAE;UAC3DnB,YAAY,EAAEA,YAAa;UAC3B8C,KAAK,EAAE;YAAEW,UAAU,EAAEhD,sBAAsB,GAAG,QAAQ,GAAG;UAAK,CAAE;UAChE,eAAY;QAAgB,CAC7B;MAAC,CACC,CACN;IAAA,CACA;EAAC,CACD,CAAC;AAEZ,CAAC;AACDpB,WAAW,CAACqE,SAAS,GAAG;EACtBnE,QAAQ,EAAEoE,kBAAS,CAACC,MAAM,CAACC;AAC7B,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA3G,OAAA,GAEaiC,WAAW","ignoreList":[]}
@@ -8,33 +8,61 @@ 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 _SectionTitle = _interopRequireDefault(require("@src/course-home/outline-tab/section-outline/SectionTitle.tsx"));
12
13
  var _messages = _interopRequireDefault(require("./messages"));
14
+ var _constants = require("./constants");
13
15
  var _jsxRuntime = require("react/jsx-runtime");
14
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- /* eslint import/no-unresolved: 0 */
16
-
17
+ 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; }
18
+ 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; }
19
+ 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; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
21
+ 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 */
17
22
  const SectionHeader = _ref => {
18
23
  let {
19
24
  complete,
20
25
  hasLockedContent,
21
26
  hideFromTOC,
22
27
  title,
23
- upgradeUrl
28
+ upgradeUrl,
29
+ sequenceIds,
30
+ sequences,
31
+ courseId
24
32
  } = _ref;
25
33
  const intl = (0, _i18n.useIntl)();
34
+ const hasOnlyPreviewContent = sequenceIds.every(id => sequences[id]?.isPreview === true);
35
+ const hasSomePreviewContent = sequenceIds.some(id => sequences[id]?.isPreview);
36
+ const eventProperties = {
37
+ courserun_key: courseId
38
+ };
39
+ const logLockIconClick = () => {
40
+ (0, _analytics.sendTrackingLogEvent)('edx.bi.course.enrollment.section.locked.icon.upgrade.clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
41
+ linkCategory: 'locked_upgrade',
42
+ linkName: 'locked_section',
43
+ linkType: 'button',
44
+ pageName: 'locked_section'
45
+ }));
46
+ };
26
47
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.ActionRow, {
27
48
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionTitle.default, {
28
49
  complete,
29
50
  hideFromTOC,
30
51
  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
- })
52
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.ActionRow.Spacer, {}), (hasLockedContent || hasSomePreviewContent) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButtonWithTooltip, {
53
+ tooltipPlacement: "top",
54
+ src: _icons.Locked,
55
+ tooltipContent: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
56
+ children: hasOnlyPreviewContent ? intl.formatMessage(_messages.default.isPreviewTooltipContent) : intl.formatMessage(_messages.default.sequenceTooltipContent, {
57
+ lockedStatus: _constants.PARTIALLY_LOCKED
58
+ })
59
+ }),
60
+ variant: "primary",
61
+ iconAs: _paragon.Icon,
62
+ onClick: () => {
63
+ logLockIconClick();
64
+ window.open(upgradeUrl);
65
+ }
38
66
  })]
39
67
  });
40
68
  };
@@ -43,7 +71,10 @@ SectionHeader.propTypes = {
43
71
  hasLockedContent: _propTypes.default.bool.isRequired,
44
72
  hideFromTOC: _propTypes.default.bool.isRequired,
45
73
  title: _propTypes.default.string.isRequired,
46
- upgradeUrl: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]).isRequired
74
+ upgradeUrl: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]).isRequired,
75
+ sequenceIds: _propTypes.default.shape().isRequired,
76
+ sequences: _propTypes.default.shape().isRequired,
77
+ courseId: _propTypes.default.string.isRequired
47
78
  };
48
79
  var _default = exports.default = SectionHeader;
49
80
  //# sourceMappingURL=SectionHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SectionHeader.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_SectionTitle","_messages","_jsxRuntime","e","__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,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;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":[]}
1
+ {"version":3,"file":"SectionHeader.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_analytics","_SectionTitle","_messages","_constants","_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","SectionHeader","_ref","complete","hasLockedContent","hideFromTOC","title","upgradeUrl","sequenceIds","sequences","courseId","intl","useIntl","hasOnlyPreviewContent","every","id","isPreview","hasSomePreviewContent","some","eventProperties","courserun_key","logLockIconClick","sendTrackingLogEvent","linkCategory","linkName","linkType","pageName","jsxs","ActionRow","children","jsx","Spacer","IconButtonWithTooltip","tooltipPlacement","src","Locked","tooltipContent","formatMessage","messages","isPreviewTooltipContent","sequenceTooltipContent","lockedStatus","PARTIALLY_LOCKED","variant","iconAs","Icon","onClick","window","open","propTypes","PropTypes","bool","isRequired","string","oneOfType","shape","_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 { Icon, ActionRow, IconButtonWithTooltip } from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\nimport { sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\n\nimport SectionTitle from '@src/course-home/outline-tab/section-outline/SectionTitle.tsx';\nimport messages from './messages';\nimport { PARTIALLY_LOCKED } from './constants';\n\nconst SectionHeader = ({\n complete,\n hasLockedContent,\n hideFromTOC,\n title,\n upgradeUrl,\n sequenceIds,\n sequences,\n courseId,\n}) => {\n const intl = useIntl();\n\n const hasOnlyPreviewContent = sequenceIds.every(id => sequences[id]?.isPreview === true);\n const hasSomePreviewContent = sequenceIds.some(id => sequences[id]?.isPreview);\n\n const eventProperties = {\n courserun_key: courseId,\n };\n\n const logLockIconClick = () => {\n sendTrackingLogEvent(\n 'edx.bi.course.enrollment.section.locked.icon.upgrade.clicked',\n {\n ...eventProperties,\n linkCategory: 'locked_upgrade',\n linkName: 'locked_section',\n linkType: 'button',\n pageName: 'locked_section',\n },\n );\n };\n\n return (\n <ActionRow>\n <SectionTitle {...{ complete, hideFromTOC, title }} />\n <ActionRow.Spacer />\n {\n (hasLockedContent || hasSomePreviewContent) && (\n <IconButtonWithTooltip\n tooltipPlacement=\"top\"\n src={Locked}\n tooltipContent={(\n <span>\n {\n hasOnlyPreviewContent\n ? intl.formatMessage(messages.isPreviewTooltipContent)\n : intl.formatMessage(messages.sequenceTooltipContent, { lockedStatus: PARTIALLY_LOCKED })\n }\n </span>\n )}\n variant=\"primary\"\n iconAs={Icon}\n onClick={() => {\n logLockIconClick();\n window.open(upgradeUrl);\n }}\n />\n )\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 sequenceIds: PropTypes.shape().isRequired,\n sequences: PropTypes.shape().isRequired,\n courseId: PropTypes.string.isRequired,\n};\n\nexport default SectionHeader;\n"],"mappings":"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","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 */
@@ -51,8 +50,8 @@ const SectionItem = _ref => {
51
50
  setOpen(defaultOpen);
52
51
  // eslint-disable-next-line react-hooks/exhaustive-deps
53
52
  }, []);
54
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
55
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Collapsible, {
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
54
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Collapsible, {
56
55
  className: "mb-2",
57
56
  styling: "card-lg",
58
57
  title: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionHeader.default, {
@@ -60,7 +59,10 @@ const SectionItem = _ref => {
60
59
  hasLockedContent,
61
60
  hideFromTOC,
62
61
  title,
63
- upgradeUrl
62
+ upgradeUrl,
63
+ sequenceIds,
64
+ sequences,
65
+ courseId
64
66
  }),
65
67
  open: open,
66
68
  onToggle: () => setOpen(!open),
@@ -85,17 +87,11 @@ const SectionItem = _ref => {
85
87
  courseId: courseId,
86
88
  sequence: sequences[sequenceId],
87
89
  first: index === 0,
88
- sequenceData: sequenceData
90
+ sequenceData: sequenceData,
91
+ upgradeUrl: upgradeUrl
89
92
  }, sequenceId))
90
93
  })
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
- })]
94
+ })
99
95
  });
100
96
  };
101
97
  SectionItem.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"file":"SectionItem.js","names":["_react","require","_propTypes","_interopRequireDefault","_i18n","_paragon","_icons","_modelStore","_messages","_messages2","_SectionHeader","_SequenceLink","_messages3","_jsxRuntime","e","__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":[]}
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","fetchSectionHasLockedContent","section","sectionId","sequenceData","upgradeUrl","intl","useIntl","complete","sequenceIds","title","hideFromTOC","courseBlocks","sequences","useModel","open","setOpen","useState","hasLockedContent","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","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 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 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 sequenceIds,\n sequences,\n courseId,\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 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":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAIA,IAAAK,MAAA,GAAAL,OAAA;AAEA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,UAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,cAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,aAAA,GAAAR,sBAAA,CAAAF,OAAA;AAA0C,IAAAW,WAAA,GAAAX,OAAA;AAAA,SAAAE,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAd1C;;AAgBA,MAAMG,WAAW,GAAGC,IAAA,IASd;EAAA,IATe;IACnBC,QAAQ;IACRC,WAAW;IACXC,MAAM;IACNC,4BAA4B;IAC5BC,OAAO;IACPC,SAAS;IACTC,YAAY;IACZC;EACF,CAAC,GAAAR,IAAA;EACC,MAAMS,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EAEtB,MAAM;IACJC,QAAQ;IACRC,WAAW;IACXC,KAAK;IACLC;EACF,CAAC,GAAGT,OAAO;EACX,MAAM;IACJU,YAAY,EAAE;MACZC;IACF;EACF,CAAC,GAAG,IAAAC,oBAAQ,EAAC,SAAS,EAAEhB,QAAQ,CAAC;EAEjC,MAAM,CAACiB,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAClB,WAAW,CAAC;EAC7C,MAAMmB,gBAAgB,GAAGjB,4BAA4B,CAACE,SAAS,CAAC;EAEhE,IAAAgB,gBAAS,EAAC,MAAM;IACdH,OAAO,CAAChB,MAAM,CAAC;EACjB,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,IAAAmB,gBAAS,EAAC,MAAM;IACdH,OAAO,CAACjB,WAAW,CAAC;IACtB;EACA,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE,IAAAP,WAAA,CAAA4B,GAAA;IAAAC,QAAA,eACE,IAAA7B,WAAA,CAAA4B,GAAA,EAACnC,QAAA,CAAAqC,WAAW;MACVC,SAAS,EAAC,MAAM;MAChBC,OAAO,EAAC,SAAS;MACjBd,KAAK,eACH,IAAAlB,WAAA,CAAA4B,GAAA,EAAC9B,cAAA,CAAAK,OAAa;QAEVa,QAAQ;QACRU,gBAAgB;QAChBP,WAAW;QACXD,KAAK;QACLL,UAAU;QACVI,WAAW;QACXI,SAAS;QACTf;MAAQ,CAEX,CACD;MACFiB,IAAI,EAAEA,IAAK;MACXU,QAAQ,EAAEA,CAAA,KAAMT,OAAO,CAAC,CAACD,IAAI,CAAE;MAC/BW,cAAc,eACZ,IAAAlC,WAAA,CAAA4B,GAAA,EAACnC,QAAA,CAAA0C,UAAU;QACTC,GAAG,EAAEtB,IAAI,CAACuB,aAAa,CAACC,kBAAe,CAACC,WAAW,CAAE;QACrDC,MAAM,EAAEC,WAAK;QACbC,OAAO,EAAEA,CAAA,KAAMlB,OAAO,CAAC,IAAI,CAAE;QAC7BmB,IAAI,EAAC;MAAI,CACV,CACD;MACFC,YAAY,eACV,IAAA5C,WAAA,CAAA4B,GAAA,EAACnC,QAAA,CAAA0C,UAAU;QACTC,GAAG,EAAEtB,IAAI,CAACuB,aAAa,CAACQ,iBAAe,CAACC,KAAK,CAAE;QAC/CN,MAAM,EAAEO,YAAM;QACdL,OAAO,EAAEA,CAAA,KAAM;UAAElB,OAAO,CAAC,KAAK,CAAC;QAAE,CAAE;QACnCmB,IAAI,EAAC;MAAI,CACV,CACD;MAAAd,QAAA,eAEF,IAAA7B,WAAA,CAAA4B,GAAA;QAAIG,SAAS,EAAC,mCAAmC;QAAAF,QAAA,EAC9CZ,WAAW,CAAC+B,GAAG,CAAC,CAACC,UAAU,EAAEC,KAAK,kBACjC,IAAAlD,WAAA,CAAA4B,GAAA,EAAC7B,aAAA,CAAAI,OAAY;UAEXgD,EAAE,EAAEF,UAAW;UACf3C,QAAQ,EAAEA,QAAS;UACnB8C,QAAQ,EAAE/B,SAAS,CAAC4B,UAAU,CAAE;UAChCI,KAAK,EAAEH,KAAK,KAAK,CAAE;UACnBtC,YAAY,EAAEA,YAAa;UAC3BC,UAAU,EAAEA;QAAW,GANlBoC,UAON,CACF;MAAC,CACA;IAAC,CACM;EAAC,CACZ,CAAC;AAET,CAAC;AAED7C,WAAW,CAACkD,SAAS,GAAG;EACtBhD,QAAQ,EAAEiD,kBAAS,CAACC,MAAM,CAACC,UAAU;EACrClD,WAAW,EAAEgD,kBAAS,CAACG,IAAI,CAACD,UAAU;EACtCjD,MAAM,EAAE+C,kBAAS,CAACG,IAAI,CAACD,UAAU;EACjChD,4BAA4B,EAAE8C,kBAAS,CAACI,IAAI,CAACF,UAAU;EACvD/C,OAAO,EAAE6C,kBAAS,CAACK,KAAK,CAAC,CAAC,CAACH,UAAU;EACrC9C,SAAS,EAAE4C,kBAAS,CAACC,MAAM,CAACC,UAAU;EACtC7C,YAAY,EAAE2C,kBAAS,CAACK,KAAK,CAAC,CAAC,CAACH,UAAU;EAC1C5C,UAAU,EAAE0C,kBAAS,CAACM,SAAS,CAAC,CAACN,kBAAS,CAACC,MAAM,EAAED,kBAAS,CAACG,IAAI,CAAC,CAAC,CAACD;AACtE,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAA5D,OAAA,GAEaC,WAAW","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.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
- })]
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","_reactDom","_i18n","_hooks","_modelStore","_PageLoading","_messages","_SectionItem","_UpgradeBanner","_hooks2","_jsxRuntime","e","__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":"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","ignoreList":[]}
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,17 @@ 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");
14
15
  var _jsxRuntime = require("react/jsx-runtime");
15
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- /* eslint import/no-unresolved: 0 */
17
-
17
+ 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; }
18
+ 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; }
19
+ 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; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
21
+ 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
22
  const SequenceHeader = _ref => {
19
23
  let {
20
24
  complete,
@@ -22,10 +26,23 @@ const SequenceHeader = _ref => {
22
26
  lockedStatus,
23
27
  sequence,
24
28
  showLink,
25
- title
29
+ title,
30
+ courseId,
31
+ upgradeUrl
26
32
  } = _ref;
27
33
  const intl = (0, _i18n.useIntl)();
28
34
  const isLocked = lockedStatus !== _constants.UNLOCKED;
35
+ const eventProperties = {
36
+ courserun_key: courseId
37
+ };
38
+ const logLockIconClick = () => {
39
+ (0, _analytics.sendTrackingLogEvent)('edx.bi.course.enrollment.sequence.locked.icon.upgrade.clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
40
+ linkCategory: 'locked_upgrade',
41
+ linkName: 'locked_sequence',
42
+ linkType: 'button',
43
+ pageName: 'locked_sequence'
44
+ }));
45
+ };
29
46
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
30
47
  direction: "horizontal",
31
48
  gap: 2,
@@ -35,16 +52,20 @@ const SequenceHeader = _ref => {
35
52
  title,
36
53
  sequence,
37
54
  id
38
- }), isLocked && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButtonWithTooltip, {
55
+ }), (isLocked || sequence.isPreview) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.IconButtonWithTooltip, {
39
56
  tooltipPlacement: "top",
40
57
  src: _icons.Locked,
41
58
  tooltipContent: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
42
- children: intl.formatMessage(_messages.default.sequenceTooltipContent, {
59
+ children: sequence.isPreview ? intl.formatMessage(_messages.default.isPreviewTooltipContent) : intl.formatMessage(_messages.default.sequenceTooltipContent, {
43
60
  lockedStatus
44
61
  })
45
62
  }),
46
63
  variant: "primary",
47
- iconAs: _paragon.Icon
64
+ iconAs: _paragon.Icon,
65
+ onClick: () => {
66
+ logLockIconClick();
67
+ window.open(upgradeUrl);
68
+ }
48
69
  })]
49
70
  });
50
71
  };
@@ -54,7 +75,9 @@ SequenceHeader.propTypes = {
54
75
  lockedStatus: _propTypes.default.string.isRequired,
55
76
  sequence: _propTypes.default.shape().isRequired,
56
77
  showLink: _propTypes.default.bool.isRequired,
57
- title: _propTypes.default.string.isRequired
78
+ title: _propTypes.default.string.isRequired,
79
+ courseId: _propTypes.default.string.isRequired,
80
+ upgradeUrl: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]).isRequired
58
81
  };
59
82
  var _default = exports.default = SequenceHeader;
60
83
  //# 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 {...{\n complete,\n showLink,\n title,\n sequence,\n id,\n }}\n />\n {isLocked && (\n <IconButtonWithTooltip\n tooltipPlacement=\"top\"\n src={Locked}\n tooltipContent={(\n <span>\n {intl.formatMessage(messages.sequenceTooltipContent, { lockedStatus })}\n </span>\n )}\n variant=\"primary\"\n iconAs={Icon}\n />\n )}\n </Stack>\n );\n};\n\nSequenceHeader.propTypes = {\n complete: PropTypes.bool.isRequired,\n id: PropTypes.string.isRequired,\n lockedStatus: PropTypes.string.isRequired,\n sequence: PropTypes.shape().isRequired,\n showLink: PropTypes.bool.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nexport default SequenceHeader;\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,cAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAAuC,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AARvC;;AAUA,MAAMG,cAAc,GAAGC,IAAA,IAOjB;EAAA,IAPkB;IACtBC,QAAQ;IACRC,EAAE;IACFC,YAAY;IACZC,QAAQ;IACRC,QAAQ;IACRC;EACF,CAAC,GAAAN,IAAA;EACC,MAAMO,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EACtB,MAAMC,QAAQ,GAAGN,YAAY,KAAKO,mBAAQ;EAE1C,oBACE,IAAAf,WAAA,CAAAgB,IAAA,EAACrB,QAAA,CAAAsB,KAAK;IAACC,SAAS,EAAC,YAAY;IAACC,GAAG,EAAE,CAAE;IAAAC,QAAA,gBACnC,IAAApB,WAAA,CAAAqB,GAAA,EAACxB,cAAA,CAAAM,OAAa;MAEVG,QAAQ;MACRI,QAAQ;MACRC,KAAK;MACLF,QAAQ;MACRF;IAAE,CAEL,CAAC,EACDO,QAAQ,iBACP,IAAAd,WAAA,CAAAqB,GAAA,EAAC1B,QAAA,CAAA2B,qBAAqB;MACpBC,gBAAgB,EAAC,KAAK;MACtBC,GAAG,EAAEC,aAAO;MACZC,cAAc,eACZ,IAAA1B,WAAA,CAAAqB,GAAA;QAAAD,QAAA,EACGR,IAAI,CAACe,aAAa,CAACC,iBAAQ,CAACC,sBAAsB,EAAE;UAAErB;QAAa,CAAC;MAAC,CAClE,CACN;MACFsB,OAAO,EAAC,SAAS;MACjBC,MAAM,EAAEC;IAAK,CACd,CACF;EAAA,CACI,CAAC;AAEZ,CAAC;AAED5B,cAAc,CAAC6B,SAAS,GAAG;EACzB3B,QAAQ,EAAE4B,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnC7B,EAAE,EAAE2B,kBAAS,CAACG,MAAM,CAACD,UAAU;EAC/B5B,YAAY,EAAE0B,kBAAS,CAACG,MAAM,CAACD,UAAU;EACzC3B,QAAQ,EAAEyB,kBAAS,CAACI,KAAK,CAAC,CAAC,CAACF,UAAU;EACtC1B,QAAQ,EAAEwB,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCzB,KAAK,EAAEuB,kBAAS,CAACG,MAAM,CAACD;AAC1B,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAArC,OAAA,GAEaC,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"SequenceHeader.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_analytics","_SequenceTitle","_messages","_constants","_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","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';\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 {...{\n complete,\n showLink,\n title,\n sequence,\n id,\n }}\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={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,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":[]}
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":[]}
@@ -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,IAAAM,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYb,QAAQ","ignoreList":[]}
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 _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
- 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","_getRequireWildcardCache","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 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":"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","ignoreList":[]}
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":"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","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 _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
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; }
@@ -82,6 +81,7 @@ const UpgradeModal = _ref => {
82
81
  const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;
83
82
  const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;
84
83
  let callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
84
+ "data-testid": "upgrade-button",
85
85
  offer: offer,
86
86
  onClick: logClick,
87
87
  verifiedMode: verifiedMode,
@@ -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 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":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAEA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AAA0C,IAAAU,WAAA,GAAAV,OAAA;AAAA,SAAAE,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAZ,wBAAAY,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAhB,uBAAA,YAAAA,CAAAY,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;AAAA,SAAAgB,QAAAnB,CAAA,EAAAK,CAAA,QAAAF,CAAA,GAAAa,MAAA,CAAAI,IAAA,CAAApB,CAAA,OAAAgB,MAAA,CAAAK,qBAAA,QAAAd,CAAA,GAAAS,MAAA,CAAAK,qBAAA,CAAArB,CAAA,GAAAK,CAAA,KAAAE,CAAA,GAAAA,CAAA,CAAAe,MAAA,WAAAjB,CAAA,WAAAW,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAK,CAAA,EAAAkB,UAAA,OAAApB,CAAA,CAAAqB,IAAA,CAAAC,KAAA,CAAAtB,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAuB,cAAA1B,CAAA,aAAAK,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAF,CAAA,WAAAwB,SAAA,CAAAtB,CAAA,IAAAsB,SAAA,CAAAtB,CAAA,QAAAA,CAAA,OAAAc,OAAA,CAAAH,MAAA,CAAAb,CAAA,OAAA0B,OAAA,WAAAxB,CAAA,IAAAyB,eAAA,CAAA9B,CAAA,EAAAK,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAW,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAhC,CAAA,EAAAgB,MAAA,CAAAe,yBAAA,CAAA5B,CAAA,KAAAgB,OAAA,CAAAH,MAAA,CAAAb,CAAA,GAAA0B,OAAA,WAAAxB,CAAA,IAAAW,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAK,CAAA,EAAAW,MAAA,CAAAE,wBAAA,CAAAf,CAAA,EAAAE,CAAA,iBAAAL,CAAA;AAAA,SAAA8B,gBAAA9B,CAAA,EAAAK,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAA4B,cAAA,CAAA5B,CAAA,MAAAL,CAAA,GAAAgB,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAK,CAAA,IAAA6B,KAAA,EAAA/B,CAAA,EAAAoB,UAAA,MAAAY,YAAA,MAAAC,QAAA,UAAApC,CAAA,CAAAK,CAAA,IAAAF,CAAA,EAAAH,CAAA;AAAA,SAAAiC,eAAA9B,CAAA,QAAAK,CAAA,GAAA6B,YAAA,CAAAlC,CAAA,uCAAAK,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAA6B,aAAAlC,CAAA,EAAAE,CAAA,2BAAAF,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAH,CAAA,GAAAG,CAAA,CAAAmC,MAAA,CAAAC,WAAA,kBAAAvC,CAAA,QAAAQ,CAAA,GAAAR,CAAA,CAAAe,IAAA,CAAAZ,CAAA,EAAAE,CAAA,uCAAAG,CAAA,SAAAA,CAAA,YAAAgC,SAAA,yEAAAnC,CAAA,GAAAoC,MAAA,GAAAC,MAAA,EAAAvC,CAAA,KAV1C;AAYA,MAAMwC,YAAY,GAAGC,IAAA,IAWf;EAAA,IAXgB;IACpBC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,GAAG;IACHC,QAAQ;IACRC,KAAK;IACLC,YAAY;IACZC,gBAAgB;IAChBC,eAAe;IACfC;EACF,CAAC,GAAAV,IAAA;EACC,MAAMW,cAAc,GAAG,uBAAuB;EAC9C,MAAMC,eAAe,GAAG;IACtBC,OAAO,EAAET,GAAG;IACZU,aAAa,EAAET;EACjB,CAAC;EACD,MAAMU,wBAAwB,GAAAjC,aAAA;IAC5BkC,QAAQ,EAAE,mBAAmB;IAC7BC,IAAI,EAAE,+BAA+B;IACrCC,QAAQ,EAAE,yBAAyB;IACnCC,YAAY,EAAE;EAAwC,GACnDP,eAAe,CACnB;EAED,MAAM;IAAEQ;EAAW,CAAC,GAAG,IAAAC,qBAAW,EAAChB,QAAQ,CAAC;EAE5C,IAAAiB,gBAAS,EAAC,MAAM;IACd,IAAAC,+BAAoB,EAAC,mDAAmD,EAAEX,eAAe,CAAC;IAC1F,IAAAY,yBAAc,EAAC,kBAAkB,EAAET,wBAAwB,CAAC;IAC5D;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMU,QAAQ,GAAGA,CAAA,KAAM;IACrB,IAAAF,+BAAoB,EAAC,8CAA8C,EAAEX,eAAe,CAAC;IACrF,IAAAW,+BAAoB,EAAC,uCAAuC,EAAAzC,aAAA,CAAAA,aAAA,KACvD8B,eAAe;MAClBc,QAAQ,EAAE;IAAyB,EACpC,CAAC;IACF,IAAAF,yBAAc,EAAC,mBAAmB,EAAET,wBAAwB,CAAC;IAC7D,IAAAS,yBAAc,EAAC,uCAAuC,EAAA1C,aAAA,CAAAA,aAAA,KACjD8B,eAAe;MAClBe,YAAY,EAAE,eAAe;MAC7BC,QAAQ,EAAE,GAAGjB,cAAc,QAAQ;MACnCkB,QAAQ,EAAE,QAAQ;MAClBC,QAAQ,EAAEnB;IAAc,EACzB,CAAC;IAEFS,UAAU,CAAC,UAAU,CAAC;EACxB,CAAC;EACD,MAAMW,sBAAsB,GAAGA,CAAA,KAAM;IACnC,IAAAP,yBAAc,EAAC,+DAA+D,EAAA1C,aAAA,CAAAA,aAAA,KACzE8B,eAAe;MAClBe,YAAY,EAAE,eAAe;MAC7BC,QAAQ,EAAE,GAAGjB,cAAc,iBAAiB;MAC5CkB,QAAQ,EAAE,QAAQ;MAClBC,QAAQ,EAAEnB;IAAc,EACzB,CAAC;EACJ,CAAC;EAED,MAAMqB,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EACtB,MAAMC,OAAO,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EAC1B,MAAMC,mBAAmB,GAAG7B,gBAAgB,GAAG,IAAI2B,IAAI,CAAC3B,gBAAgB,CAAC8B,eAAe,CAAC,GAAG,IAAI;EAChG,MAAMC,YAAY,GAAG/B,gBAAgB,GAAG,IAAI2B,IAAI,CAACD,OAAO,CAAC,GAAGG,mBAAmB,GAAG,KAAK;EACvF,MAAMG,KAAK,GAAG,CAAC,CAAChC,gBAAgB,IAAI,CAAC,CAACC,eAAe,EAAEgC,wBAAwB;EAE/E,IAAIC,kBAAkB,gBACpB,IAAAvF,WAAA,CAAAwF,GAAA,EAAC5F,cAAA,CAAA6F,aAAa;IACZ,eAAY,gBAAgB;IAC5BtC,KAAK,EAAEA,KAAM;IACbuC,OAAO,EAAEpB,QAAS;IAClBtB,YAAY,EAAEA,YAAa;IAC3B2C,KAAK;EAAA,CACN,CACF;EAED,IAAIP,YAAY,EAAE;IAChBG,kBAAkB,gBAChB,IAAAvF,WAAA,CAAAwF,GAAA,EAAC7F,QAAA,CAAAiG,MAAM;MACLC,SAAS,EAAC,OAAO;MACjBH,OAAO,EAAEd,sBAAuB;MAChCkB,IAAI,EAAE1C,YAAa;MAAA2C,QAAA,EAElBlB,IAAI,CAACmB,aAAa,CACjB;QACEC,EAAE,EAAE,6CAA6C;QACjDC,cAAc,EAAE,qBAAqB;QACrCC,WAAW,EAAE;MACf,CACF;IAAC,CACK,CACT;EACH;EAEA,oBACE,IAAAnG,WAAA,CAAAoG,IAAA,EAACtG,UAAA,CAAAK,OAAS;IAEN2C,MAAM;IACNC,KAAK;IACLG,QAAQ;IACRC,KAAK;IACLoC,kBAAkB;IAAAQ,QAAA,gBAGpB,IAAA/F,WAAA,CAAAwF,GAAA,EAAC3F,QAAA,CAAAwG,WAAW;MAAOhB,KAAK;MAAE9B;IAAwB,CAAK,CAAC,KAC1D;EAAA,CAAW,CAAC;AAEhB,CAAC;AAEDX,YAAY,CAAC0D,YAAY,GAAG;EAC1BtD,YAAY,EAAE,CAAC,CAAC;EAChBG,KAAK,EAAE,IAAI;EACXE,gBAAgB,EAAE,IAAI;EACtBC,eAAe,EAAE;AACnB,CAAC;AACDV,YAAY,CAAC2D,SAAS,GAAG;EACvBvD,YAAY,EAAEwD,kBAAS,CAACC,KAAK,CAAC;IAC5BC,KAAK,EAAEF,kBAAS,CAACG,MAAM,CAACC,UAAU;IAClCC,cAAc,EAAEL,kBAAS,CAACM,MAAM,CAACF,UAAU;IAC3CG,UAAU,EAAEP,kBAAS,CAACM,MAAM,CAACF;EAC/B,CAAC,CAAC;EACFzD,KAAK,EAAEqD,kBAAS,CAACC,KAAK,CAAC;IACrBO,IAAI,EAAER,kBAAS,CAACM;EAClB,CAAC,CAAC;EACFzD,gBAAgB,EAAEmD,kBAAS,CAACC,KAAK,CAAC;IAChCtB,eAAe,EAAEqB,kBAAS,CAACM;EAC7B,CAAC,CAAC;EACFxD,eAAe,EAAEkD,kBAAS,CAACC,KAAK,CAAC;IAC/BnB,wBAAwB,EAAEkB,kBAAS,CAACS;EACtC,CAAC,CAAC;EACF7D,YAAY,EAAEoD,kBAAS,CAACM,MAAM,CAACF,UAAU;EACzC3D,GAAG,EAAEuD,kBAAS,CAACM,MAAM,CAACF,UAAU;EAChC1D,QAAQ,EAAEsD,kBAAS,CAACM,MAAM,CAACF,UAAU;EACrC7D,KAAK,EAAEyD,kBAAS,CAACU,IAAI,CAACN,UAAU;EAChC9D,MAAM,EAAE0D,kBAAS,CAACS,IAAI,CAACL,UAAU;EACjCrD,wBAAwB,EAAEiD,kBAAS,CAACS,IAAI,CAACL;AAC3C,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAjH,OAAA,GAEayC,YAAY","ignoreList":[]}
@@ -18,10 +18,10 @@ var _certificatePreview = _interopRequireDefault(require("./certificate-preview"
18
18
  var _generic = require("../generic");
19
19
  var _utils = _interopRequireDefault(require("./utils"));
20
20
  var _messages = _interopRequireDefault(require("./messages"));
21
+ var _cohesion = require("../cohesion");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
23
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
23
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
- 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); }
25
25
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
26
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
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; }
@@ -54,6 +54,9 @@ const UpgradeNotification = _ref => {
54
54
  offer,
55
55
  timeOffsetMillis
56
56
  } = (0, _modelStore.useModel)(model, courseId);
57
+ const {
58
+ conversion
59
+ } = (0, _cohesion.useCohesion)(courseId);
57
60
  const dateNow = Date.now();
58
61
  const timezoneFormatArgs = userTimezone ? {
59
62
  timeZone: userTimezone
@@ -85,7 +88,7 @@ const UpgradeNotification = _ref => {
85
88
  if (!verifiedMode) {
86
89
  return null;
87
90
  }
88
- const logClick = () => {
91
+ const logUpgradeClick = () => {
89
92
  (0, _analytics.sendTrackingLogEvent)('edx.bi.course.upgrade.sidebarupsell.clicked', eventProperties);
90
93
  (0, _analytics.sendTrackingLogEvent)('edx.course.enrollment.upgrade.clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
91
94
  location: 'sidebar-message'
@@ -97,6 +100,7 @@ const UpgradeNotification = _ref => {
97
100
  linkType: 'button',
98
101
  pageName: upsellPageName
99
102
  }));
103
+ conversion('Upgraded');
100
104
  };
101
105
  const logClickPastExpiration = () => {
102
106
  (0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upgrade_notification.past_expiration.button_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
@@ -185,7 +189,7 @@ const UpgradeNotification = _ref => {
185
189
  } else {
186
190
  callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
187
191
  offer: offer,
188
- onClick: logClick,
192
+ onClick: logUpgradeClick,
189
193
  verifiedMode: verifiedMode,
190
194
  block: true
191
195
  });
@@ -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","_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","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","logClick","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';\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 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 logClick = () => {\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\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={logClick}\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 _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edx/frontend-plugin-advertisements",
3
- "version": "2.4.0",
3
+ "version": "2.5.0",
4
4
  "description": "Frontend plugin for edX in course advertisements",
5
5
  "main": "dist/index.js",
6
6
  "repository": {