@edx/frontend-plugin-advertisements 1.33.3 → 1.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/index.js +8 -0
- package/dist/data/index.js.map +1 -1
- package/dist/generic/index.js +8 -15
- package/dist/generic/index.js.map +1 -1
- package/dist/generic/upsell-bullets/PaywallUpsellBullets.js +133 -0
- package/dist/generic/upsell-bullets/PaywallUpsellBullets.js.map +1 -0
- package/dist/generic/upsell-bullets/UpsellBullets.js +69 -116
- package/dist/generic/upsell-bullets/UpsellBullets.js.map +1 -1
- package/dist/generic/upsell-bullets/{ExperimentalUpsellTable.js → UpsellTable.js} +7 -7
- package/dist/generic/upsell-bullets/UpsellTable.js.map +1 -0
- package/dist/generic/upsell-bullets/index.js +14 -14
- package/dist/generic/upsell-bullets/index.js.map +1 -1
- package/dist/index.js +2 -8
- package/dist/index.js.map +1 -1
- package/dist/optimizely/utils.js +19 -3
- package/dist/optimizely/utils.js.map +1 -1
- package/dist/upgrade-modal/BaseModal.js +4 -10
- package/dist/upgrade-modal/BaseModal.js.map +1 -1
- package/dist/upgrade-modal/DefaultUpgradeModal.js +7 -5
- package/dist/upgrade-modal/DefaultUpgradeModal.js.map +1 -1
- package/dist/upgrade-modal/ExperimentalUpgradeModal.js +24 -11
- package/dist/upgrade-modal/ExperimentalUpgradeModal.js.map +1 -1
- package/dist/upgrade-notification/DefaultUpgradeNotification.js +16 -24
- package/dist/upgrade-notification/DefaultUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js +34 -13
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/utils.js +2 -21
- package/dist/upgrade-notification/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/generic/UpsellFarAwayCardContent.js +0 -30
- package/dist/generic/UpsellFarAwayCardContent.js.map +0 -1
- package/dist/generic/upsell-bullets/ExperimentalUpsellBullets.js +0 -86
- package/dist/generic/upsell-bullets/ExperimentalUpsellBullets.js.map +0 -1
- package/dist/generic/upsell-bullets/ExperimentalUpsellTable.js.map +0 -1
- /package/dist/generic/upsell-bullets/{UpsellBullets.scss → PaywallUpsellBullets.scss} +0 -0
- /package/dist/generic/upsell-bullets/{ExperimentalUpsellTable.scss → UpsellTable.scss} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultUpgradeNotification.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_i18n","_analytics","_paragon","_icons","_upgradeButton","_modelStore","_certificatePreview","_generic","_messages","_utils","_constants","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","DefaultUpgradeNotification","_ref","id","courseId","model","setNotificationCurrentState","toggleSidebar","pluginLocationId","formatMessage","useIntl","org","userTimezone","verifiedMode","useModel","marketingUrl","accessExpiration","datesBannerInfo","offer","timeOffsetMillis","learningAssistantEnabled","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","upsellMessage","getUpsellBullets","callToActionButton","offerCode","hoursToAccessExpiration","Math","floor","hoursToDiscountExpiration","expirationDate","messages","firstTimeLearnerDiscountHeader","percentage","jsx","ExpirationCountdown","hoursToExpiration","type","accessExpirationHeader","AccessExpirationDateBanner","accessExpirationUrgentHeader","PAGE_NAMES","PROGRESS","UpsellFBESoonCardContent","accessExpirationPastHeader","PastExpirationDateBanner","PastExpirationCardContent","pursueCertificateMessage","Button","variant","onClick","href","block","children","pastExpirationCallToActionLabel","UpgradeButton","className","discountCodeMessage","code","classNames","jsxs","bgColor","IconButton","src","Close","size","iconAs","Icon","alt","closeAlt","propTypes","PropTypes","string","isRequired","func","defaultProps","_default","exports"],"sources":["../../src/upgrade-notification/DefaultUpgradeNotification.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';\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { useModel } from '@src/generic/model-store';\n\nimport CertificatePreview from './certificate-preview';\nimport {\n ExpirationCountdown,\n AccessExpirationDateBanner,\n PastExpirationCardContent,\n PastExpirationDateBanner,\n UpsellFBESoonCardContent,\n} from '../generic';\nimport messages from './messages';\nimport { getUpsellBullets, getUpsellPageName } from './utils';\nimport PAGE_NAMES from '../data/constants';\n\nconst DefaultUpgradeNotification = ({\n id,\n courseId,\n model,\n setNotificationCurrentState,\n toggleSidebar,\n}) => {\n const pluginLocationId = id;\n const { formatMessage } = useIntl();\n const {\n org,\n userTimezone,\n verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n marketingUrl,\n } = useModel('coursewareMeta', courseId);\n\n /**\n * model prop is use to select relevant model to get offer which is passed from the frontend-app-learning app.\n * for OutlineTab component use outline model and\n * for NotificationTray component use coursewareMeta model to show offer code.\n */\n const {\n accessExpiration,\n datesBannerInfo,\n offer,\n timeOffsetMillis,\n learningAssistantEnabled,\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 upsellMessage = getUpsellBullets({ isFBE, upsellPageName, learningAssistantEnabled });\n let callToActionButton;\n let offerCode;\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 } else { // FBE is turned off\n upgradeNotificationHeaderText = formatMessage(messages.pursueCertificateMessage);\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 <CertificatePreview\n courseId={courseId}\n bgColor={upsellPageName === PAGE_NAMES.PROGRESS ? 'bg-light-100' : ''}\n />\n <h2\n className={classNames('h5 upgrade-notification-header', {\n 'd-flex align-items-center mr-2 ml-4 my-1.5 font-size-18': !!toggleSidebar,\n })}\n id=\"outline-sidebar-upgrade-header\"\n >\n {upgradeNotificationHeaderText}\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 {expirationBanner}\n <div className=\"upgrade-notification-message\">\n {upsellMessage}\n </div>\n <div className=\"upgrade-notification-button\">\n {callToActionButton}\n </div>\n {offerCode}\n </div>\n </section>\n );\n};\n\nDefaultUpgradeNotification.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\nDefaultUpgradeNotification.defaultProps = {\n setNotificationCurrentState: null,\n toggleSidebar: null,\n model: 'outline',\n};\n\nexport default DefaultUpgradeNotification;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DefaultUpgradeNotification.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_i18n","_analytics","_paragon","_icons","_upgradeButton","_modelStore","_certificatePreview","_generic","_messages","_utils","_data","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","DefaultUpgradeNotification","_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","upsellMessage","jsx","UpsellBullets","callToActionButton","offerCode","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/DefaultUpgradeNotification.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 CertificatePreview from './certificate-preview';\nimport {\n ExpirationCountdown,\n AccessExpirationDateBanner,\n PastExpirationCardContent,\n PastExpirationDateBanner,\n UpsellFBESoonCardContent,\n UpsellBullets,\n} from '../generic';\nimport messages from './messages';\nimport getUpsellPageName from './utils';\nimport { PAGE_NAMES } from '../data';\n\nconst DefaultUpgradeNotification = ({\n id,\n courseId,\n model,\n setNotificationCurrentState,\n toggleSidebar,\n}) => {\n const pluginLocationId = id;\n const { formatMessage } = useIntl();\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 upsellMessage = <UpsellBullets {...{ isFBE, learningAssistantEnabled }} />;\n let callToActionButton;\n let offerCode;\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 })}\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\">\n {callToActionButton}\n </div>\n {offerCode}\n </div>\n </section>\n );\n};\n\nDefaultUpgradeNotification.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\nDefaultUpgradeNotification.defaultProps = {\n setNotificationCurrentState: null,\n toggleSidebar: null,\n model: 'outline',\n};\n\nexport default DefaultUpgradeNotification;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,6 +18,7 @@ var _utils = _interopRequireDefault(require("../optimizely/utils"));
|
|
|
18
18
|
var _data = require("../data");
|
|
19
19
|
var _certificatePreview = _interopRequireDefault(require("./certificate-preview"));
|
|
20
20
|
var _generic = require("../generic");
|
|
21
|
+
var _utils2 = _interopRequireDefault(require("./utils"));
|
|
21
22
|
var _messages = _interopRequireDefault(require("./messages"));
|
|
22
23
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -27,7 +28,13 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
27
28
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
28
29
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
29
30
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
30
|
-
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); } /*
|
|
31
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* All of this code includes the necessary functions to run and track an A/B experiment
|
|
32
|
+
using Optimizely. Please fully read through the code to know where changes
|
|
33
|
+
need to be made specifically for a new test.
|
|
34
|
+
|
|
35
|
+
As of 2025-01-08, this code is functionally the same as the
|
|
36
|
+
DefaultUpgradeNotification.
|
|
37
|
+
*/ /* eslint import/no-unresolved: 0 */
|
|
31
38
|
const ExperimentalUpgradeNotification = _ref => {
|
|
32
39
|
let {
|
|
33
40
|
id,
|
|
@@ -38,15 +45,19 @@ const ExperimentalUpgradeNotification = _ref => {
|
|
|
38
45
|
optimizely
|
|
39
46
|
} = _ref;
|
|
40
47
|
const pluginLocationId = id;
|
|
41
|
-
const {
|
|
42
|
-
KEY: experimentKey,
|
|
43
|
-
VARIATIONS,
|
|
44
|
-
ANY_CLICK_ACTION,
|
|
45
|
-
SIDEBAR_CLICK_ACTION
|
|
46
|
-
} = _data.OPTIMIZELY_VTR_BULLET_EXPERIMENT;
|
|
47
48
|
const {
|
|
48
49
|
formatMessage
|
|
49
50
|
} = (0, _i18n.useIntl)();
|
|
51
|
+
|
|
52
|
+
/*
|
|
53
|
+
Update the following line with the new experiment constants.
|
|
54
|
+
KEY and ANY_CLICK_ACTION are required and used in the later in the code.
|
|
55
|
+
To update the variables, make changes in ../optimizely/utils
|
|
56
|
+
*/
|
|
57
|
+
const {
|
|
58
|
+
KEY: experimentKey,
|
|
59
|
+
ANY_CLICK_ACTION
|
|
60
|
+
} = _data.OPTIMIZELY_VTR_BULLET_EXPERIMENT;
|
|
50
61
|
const {
|
|
51
62
|
org,
|
|
52
63
|
userTimezone,
|
|
@@ -70,7 +81,9 @@ const ExperimentalUpgradeNotification = _ref => {
|
|
|
70
81
|
const accessExpirationDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;
|
|
71
82
|
const pastExpirationDeadline = accessExpiration ? new Date(dateNow) > accessExpirationDate : false;
|
|
72
83
|
const shouldDisplayBorder = pluginLocationId.includes('outline');
|
|
73
|
-
const upsellPageName =
|
|
84
|
+
const upsellPageName = (0, _utils2.default)({
|
|
85
|
+
id: pluginLocationId
|
|
86
|
+
});
|
|
74
87
|
const setupgradeNotificationCurrentState = setNotificationCurrentState;
|
|
75
88
|
const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;
|
|
76
89
|
const [decision] = (0, _reactSdk.useDecision)(experimentKey);
|
|
@@ -115,8 +128,12 @@ const ExperimentalUpgradeNotification = _ref => {
|
|
|
115
128
|
linkType: 'button',
|
|
116
129
|
pageName: upsellPageName
|
|
117
130
|
}));
|
|
131
|
+
|
|
132
|
+
/*
|
|
133
|
+
Confirm that the ANY_CLICK_ACTION matches the event key in Optimizely.
|
|
134
|
+
Add any additional tracking for Optimizely here.
|
|
135
|
+
*/
|
|
118
136
|
optimizely.track(ANY_CLICK_ACTION);
|
|
119
|
-
optimizely.track(SIDEBAR_CLICK_ACTION);
|
|
120
137
|
};
|
|
121
138
|
const logClickPastExpiration = () => {
|
|
122
139
|
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upgrade_notification.past_expiration.button_clicked', _objectSpread(_objectSpread(_objectSpread({}, eventProperties), experimentProperties), {}, {
|
|
@@ -137,17 +154,21 @@ const ExperimentalUpgradeNotification = _ref => {
|
|
|
137
154
|
*/
|
|
138
155
|
let upgradeNotificationHeaderText;
|
|
139
156
|
let expirationBanner;
|
|
157
|
+
let callToActionButton;
|
|
158
|
+
let offerCode;
|
|
159
|
+
|
|
160
|
+
/*
|
|
161
|
+
Update the enabled variation according to your experiment
|
|
162
|
+
*/
|
|
140
163
|
let upsellMessage = (0, _utils.default)({
|
|
141
164
|
enabled,
|
|
142
165
|
variationKey,
|
|
143
166
|
isFBE,
|
|
144
|
-
enabledVariation: /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.
|
|
167
|
+
enabledVariation: /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellBullets, {
|
|
145
168
|
isFBE,
|
|
146
169
|
learningAssistantEnabled
|
|
147
170
|
})
|
|
148
171
|
});
|
|
149
|
-
let callToActionButton;
|
|
150
|
-
let offerCode;
|
|
151
172
|
if (isFBE) {
|
|
152
173
|
const hoursToAccessExpiration = Math.floor((accessExpirationDate - correctedTime) / 1000 / 60 / 60);
|
|
153
174
|
if (hoursToAccessExpiration >= 7 * 24) {
|
|
@@ -181,7 +202,7 @@ const ExperimentalUpgradeNotification = _ref => {
|
|
|
181
202
|
setupgradeNotificationCurrentState: setupgradeNotificationCurrentState,
|
|
182
203
|
type: "access"
|
|
183
204
|
});
|
|
184
|
-
if (
|
|
205
|
+
if (upsellPageName !== _data.PAGE_NAMES.PROGRESS) {
|
|
185
206
|
upsellMessage = /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellFBESoonCardContent, {
|
|
186
207
|
accessExpirationDate: accessExpirationDate,
|
|
187
208
|
timezoneFormatArgs: timezoneFormatArgs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExperimentalUpgradeNotification.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_i18n","_analytics","_paragon","_icons","_reactSdk","_upgradeButton","_modelStore","_utils","_data","_certificatePreview","_generic","_messages","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","ExperimentalUpgradeNotification","_ref","id","courseId","model","setNotificationCurrentState","toggleSidebar","optimizely","pluginLocationId","KEY","experimentKey","VARIATIONS","ANY_CLICK_ACTION","SIDEBAR_CLICK_ACTION","OPTIMIZELY_VTR_BULLET_EXPERIMENT","formatMessage","useIntl","org","userTimezone","verifiedMode","useModel","marketingUrl","learningAssistantEnabled","accessExpiration","datesBannerInfo","offer","timeOffsetMillis","dateNow","Date","now","timezoneFormatArgs","timeZone","correctedTime","accessExpirationDate","upgradeDeadline","pastExpirationDeadline","shouldDisplayBorder","includes","upsellPageName","setupgradeNotificationCurrentState","isFBE","contentTypeGatingEnabled","decision","useDecision","enabled","variationKey","experimentProperties","experiment_key","variation_key","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","track","logClickPastExpiration","upgradeNotificationHeaderText","expirationBanner","upsellMessage","getBulletVariation","enabledVariation","jsx","ExperimentalUpsellBullets","callToActionButton","offerCode","hoursToAccessExpiration","Math","floor","hoursToDiscountExpiration","expirationDate","messages","firstTimeLearnerDiscountHeader","percentage","ExpirationCountdown","hoursToExpiration","type","accessExpirationHeader","AccessExpirationDateBanner","accessExpirationUrgentHeader","CONTROL","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","object","defaultProps","_default","exports","withOptimizely"],"sources":["../../src/upgrade-notification/ExperimentalUpgradeNotification.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';\nimport { useDecision, withOptimizely } from '@optimizely/react-sdk';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { useModel } from '@src/generic/model-store';\n\nimport getBulletVariation from '../optimizely/utils';\nimport { OPTIMIZELY_VTR_BULLET_EXPERIMENT } from '../data';\nimport CertificatePreview from './certificate-preview';\nimport {\n ExpirationCountdown,\n AccessExpirationDateBanner,\n PastExpirationDateBanner,\n PastExpirationCardContent,\n UpsellFBESoonCardContent,\n ExperimentalUpsellBullets,\n} from '../generic';\nimport messages from './messages';\n\nconst ExperimentalUpgradeNotification = ({\n id,\n courseId,\n model,\n setNotificationCurrentState,\n toggleSidebar,\n optimizely,\n}) => {\n const pluginLocationId = id;\n const {\n KEY: experimentKey,\n VARIATIONS,\n ANY_CLICK_ACTION,\n SIDEBAR_CLICK_ACTION,\n } = OPTIMIZELY_VTR_BULLET_EXPERIMENT;\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 = pluginLocationId === 'outline_tab_notifications' ? 'course_home' : 'in_course';\n const setupgradeNotificationCurrentState = setNotificationCurrentState;\n const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;\n\n const [decision] = useDecision(experimentKey);\n const { enabled, variationKey } = decision;\n\n // Experiment specific properties or data should not be sent to the tracking logs, so break this\n // object out to ensure it is only sent to Segment and not the tracking logs.\n const experimentProperties = {\n experiment_key: experimentKey,\n variation_key: variationKey,\n };\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 ...experimentProperties,\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 ...experimentProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n optimizely.track(ANY_CLICK_ACTION);\n optimizely.track(SIDEBAR_CLICK_ACTION);\n };\n\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_notification.past_expiration.button_clicked', {\n ...eventProperties,\n ...experimentProperties,\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 upsellMessage = getBulletVariation({\n enabled,\n variationKey,\n isFBE,\n enabledVariation: (\n <ExperimentalUpsellBullets {...{ isFBE, learningAssistantEnabled }} />\n ),\n });\n let callToActionButton;\n let offerCode;\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 (variationKey === VARIATIONS.CONTROL) {\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 })}\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\">\n {callToActionButton}\n </div>\n {offerCode}\n </div>\n </section>\n );\n};\n\nExperimentalUpgradeNotification.propTypes = {\n id: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n model: PropTypes.string,\n setNotificationCurrentState: PropTypes.func,\n toggleSidebar: PropTypes.func,\n /* eslint-disable-next-line react/forbid-prop-types */\n optimizely: PropTypes.object.isRequired,\n};\n\nExperimentalUpgradeNotification.defaultProps = {\n setNotificationCurrentState: null,\n toggleSidebar: null,\n model: 'outline',\n};\n\nexport default withOptimizely(ExperimentalUpgradeNotification);\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,WAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AAEA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AAEA,IAAAW,MAAA,GAAAT,sBAAA,CAAAF,OAAA;AACA,IAAAY,KAAA,GAAAZ,OAAA;AACA,IAAAa,mBAAA,GAAAX,sBAAA,CAAAF,OAAA;AACA,IAAAc,QAAA,GAAAd,OAAA;AAQA,IAAAe,SAAA,GAAAb,sBAAA,CAAAF,OAAA;AAAkC,IAAAgB,WAAA,GAAAhB,OAAA;AAAA,SAAAE,uBAAAe,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAtB,wBAAAsB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAY,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAhB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAAA,SAAAW,QAAAjB,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAAM,MAAA,CAAAS,IAAA,CAAAlB,CAAA,OAAAS,MAAA,CAAAU,qBAAA,QAAAC,CAAA,GAAAX,MAAA,CAAAU,qBAAA,CAAAnB,CAAA,GAAAE,CAAA,KAAAkB,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAnB,CAAA,WAAAO,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAE,CAAA,EAAAoB,UAAA,OAAAnB,CAAA,CAAAoB,IAAA,CAAAC,KAAA,CAAArB,CAAA,EAAAiB,CAAA,YAAAjB,CAAA;AAAA,SAAAsB,cAAAzB,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAAwB,SAAA,CAAAC,MAAA,EAAAzB,CAAA,UAAAC,CAAA,WAAAuB,SAAA,CAAAxB,CAAA,IAAAwB,SAAA,CAAAxB,CAAA,QAAAA,CAAA,OAAAe,OAAA,CAAAR,MAAA,CAAAN,CAAA,OAAAyB,OAAA,WAAA1B,CAAA,IAAA2B,eAAA,CAAA7B,CAAA,EAAAE,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAO,MAAA,CAAAqB,yBAAA,GAAArB,MAAA,CAAAsB,gBAAA,CAAA/B,CAAA,EAAAS,MAAA,CAAAqB,yBAAA,CAAA3B,CAAA,KAAAc,OAAA,CAAAR,MAAA,CAAAN,CAAA,GAAAyB,OAAA,WAAA1B,CAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAV,CAAA,EAAAE,CAAA,EAAAO,MAAA,CAAAE,wBAAA,CAAAR,CAAA,EAAAD,CAAA,iBAAAF,CAAA;AAAA,SAAA6B,gBAAAjC,GAAA,EAAAoC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAApC,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAoC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAX,UAAA,QAAAa,YAAA,QAAAC,QAAA,oBAAAxC,GAAA,CAAAoC,GAAA,IAAAC,KAAA,WAAArC,GAAA;AAAA,SAAAsC,eAAA/B,CAAA,QAAAY,CAAA,GAAAsB,YAAA,CAAAlC,CAAA,uCAAAY,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAsB,aAAAlC,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAH,CAAA,GAAAG,CAAA,CAAAmC,MAAA,CAAAC,WAAA,kBAAAvC,CAAA,QAAAe,CAAA,GAAAf,CAAA,CAAAc,IAAA,CAAAX,CAAA,EAAAD,CAAA,uCAAAa,CAAA,SAAAA,CAAA,YAAAyB,SAAA,yEAAAtC,CAAA,GAAAuC,MAAA,GAAAC,MAAA,EAAAvC,CAAA,KAxBlC;AA0BA,MAAMwC,+BAA+B,GAAGC,IAAA,IAOlC;EAAA,IAPmC;IACvCC,EAAE;IACFC,QAAQ;IACRC,KAAK;IACLC,2BAA2B;IAC3BC,aAAa;IACbC;EACF,CAAC,GAAAN,IAAA;EACC,MAAMO,gBAAgB,GAAGN,EAAE;EAC3B,MAAM;IACJO,GAAG,EAAEC,aAAa;IAClBC,UAAU;IACVC,gBAAgB;IAChBC;EACF,CAAC,GAAGC,sCAAgC;EACpC,MAAM;IAAEC;EAAc,CAAC,GAAG,IAAAC,aAAO,EAAC,CAAC;EAEnC,MAAM;IACJC,GAAG;IACHC,YAAY;IACZC;EACF,CAAC,GAAG,IAAAC,oBAAQ,EAAC,gBAAgB,EAAEjB,QAAQ,CAAC;EAExC,MAAM;IACJkB,YAAY;IACZC;EACF,CAAC,GAAG,IAAAF,oBAAQ,EAAC,gBAAgB,EAAEjB,QAAQ,CAAC;EAExC,MAAM;IACJoB,gBAAgB;IAChBC,eAAe;IACfC,KAAK;IACLC;EACF,CAAC,GAAG,IAAAN,oBAAQ,EAAChB,KAAK,EAAED,QAAQ,CAAC;EAE7B,MAAMwB,OAAO,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EAC1B,MAAMC,kBAAkB,GAAGZ,YAAY,GAAG;IAAEa,QAAQ,EAAEb;EAAa,CAAC,GAAG,CAAC,CAAC;EACzE,MAAMc,aAAa,GAAG,IAAIJ,IAAI,CAACD,OAAO,GAAGD,gBAAgB,CAAC;EAC1D,MAAMO,oBAAoB,GAAGV,gBAAgB,GAAG,IAAIK,IAAI,CAACL,gBAAgB,CAACW,eAAe,CAAC,GAAG,IAAI;EACjG,MAAMC,sBAAsB,GAAGZ,gBAAgB,GAAG,IAAIK,IAAI,CAACD,OAAO,CAAC,GAAGM,oBAAoB,GAAG,KAAK;EAClG,MAAMG,mBAAmB,GAAG5B,gBAAgB,CAAC6B,QAAQ,CAAC,SAAS,CAAC;EAChE,MAAMC,cAAc,GAAG9B,gBAAgB,KAAK,2BAA2B,GAAG,aAAa,GAAG,WAAW;EACrG,MAAM+B,kCAAkC,GAAGlC,2BAA2B;EACtE,MAAMmC,KAAK,GAAG,CAAC,CAACjB,gBAAgB,IAAI,CAAC,CAACC,eAAe,EAAEiB,wBAAwB;EAE/E,MAAM,CAACC,QAAQ,CAAC,GAAG,IAAAC,qBAAW,EAACjC,aAAa,CAAC;EAC7C,MAAM;IAAEkC,OAAO;IAAEC;EAAa,CAAC,GAAGH,QAAQ;;EAE1C;EACA;EACA,MAAMI,oBAAoB,GAAG;IAC3BC,cAAc,EAAErC,aAAa;IAC7BsC,aAAa,EAAEH;EACjB,CAAC;EAED,MAAMI,eAAe,GAAG;IACtBC,OAAO,EAAEjC,GAAG;IACZkC,aAAa,EAAEhD;EACjB,CAAC;EAED,MAAMiD,wBAAwB,GAAAtE,aAAA,CAAAA,aAAA;IAC5BuE,QAAQ,EAAE,eAAe;IACzBC,IAAI,EAAE,+BAA+B;IACrCC,QAAQ,EAAE,iBAAiB;IAC3BC,YAAY,EAAE;EAAwC,GACnDP,eAAe,GACfH,oBAAoB,CACxB;EAED,IAAAW,gBAAS,EAAC,MAAM;IACd,IAAAC,+BAAoB,EAAC,+CAA+C,EAAET,eAAe,CAAC;IACtF,IAAAU,yBAAc,EAAC,kBAAkB,EAAEP,wBAAwB,CAAC;IAC5D;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAI,CAACjC,YAAY,EAAE;IACjB,OAAO,IAAI;EACb;EAEA,MAAMyC,QAAQ,GAAGA,CAAA,KAAM;IACrB,IAAAF,+BAAoB,EAAC,6CAA6C,EAAET,eAAe,CAAC;IACpF,IAAAS,+BAAoB,EAAC,uCAAuC,EAAA5E,aAAA,CAAAA,aAAA,KACvDmE,eAAe;MAClBY,QAAQ,EAAE;IAAiB,EAC5B,CAAC;IACF,IAAAF,yBAAc,EAAC,mBAAmB,EAAEP,wBAAwB,CAAC;IAC7D,IAAAO,yBAAc,EAAC,uCAAuC,EAAA7E,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACjDmE,eAAe,GACfH,oBAAoB;MACvBgB,YAAY,EAAE,eAAe;MAC7BC,QAAQ,EAAE,GAAGzB,cAAc,QAAQ;MACnC0B,QAAQ,EAAE,QAAQ;MAClBC,QAAQ,EAAE3B;IAAc,EACzB,CAAC;IACF/B,UAAU,CAAC2D,KAAK,CAACtD,gBAAgB,CAAC;IAClCL,UAAU,CAAC2D,KAAK,CAACrD,oBAAoB,CAAC;EACxC,CAAC;EAED,MAAMsD,sBAAsB,GAAGA,CAAA,KAAM;IACnC,IAAAR,yBAAc,EAAC,sEAAsE,EAAA7E,aAAA,CAAAA,aAAA,CAAAA,aAAA,KAChFmE,eAAe,GACfH,oBAAoB;MACvBgB,YAAY,EAAE,sBAAsB;MACpCC,QAAQ,EAAE,GAAGzB,cAAc,iBAAiB;MAC5C0B,QAAQ,EAAE,QAAQ;MAClBC,QAAQ,EAAE3B;IAAc,EACzB,CAAC;EACJ,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAI8B,6BAA6B;EACjC,IAAIC,gBAAgB;EACpB,IAAIC,aAAa,GAAG,IAAAC,cAAkB,EAAC;IACrC3B,OAAO;IACPC,YAAY;IACZL,KAAK;IACLgC,gBAAgB,eACd,IAAAxH,WAAA,CAAAyH,GAAA,EAAC3H,QAAA,CAAA4H,yBAAyB;MAAOlC,KAAK;MAAElB;IAAwB,CAAK;EAEzE,CAAC,CAAC;EACF,IAAIqD,kBAAkB;EACtB,IAAIC,SAAS;EAEb,IAAIpC,KAAK,EAAE;IACT,MAAMqC,uBAAuB,GAAGC,IAAI,CAACC,KAAK,CAAC,CAAC9C,oBAAoB,GAAGD,aAAa,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;IAEnG,IAAI6C,uBAAuB,IAAK,CAAC,GAAG,EAAG,EAAE;MACvC,IAAIpD,KAAK,EAAE;QAAE;QACX,MAAMuD,yBAAyB,GAAGF,IAAI,CAACC,KAAK,CAAC,CAAC,IAAInD,IAAI,CAACH,KAAK,CAACwD,cAAc,CAAC,GAAGjD,aAAa,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;QAC/GoC,6BAA6B,GAAGrD,aAAa,CAC3CmE,iBAAQ,CAACC,8BAA8B,EACvC;UAAEC,UAAU,EAAG3D,KAAK,CAAC2D;QAAY,CACnC,CAAC;QACDf,gBAAgB,gBACd,IAAArH,WAAA,CAAAyH,GAAA,EAAC3H,QAAA,CAAAuI,mBAAmB;UAClBlF,QAAQ,EAAEA,QAAS;UACnBmF,iBAAiB,EAAEN,yBAA0B;UAC7CzC,kCAAkC,EAAEA,kCAAmC;UACvEgD,IAAI,EAAC;QAAO,CACb,CACF;MACH,CAAC,MAAM;QACLnB,6BAA6B,GAAGrD,aAAa,CAACmE,iBAAQ,CAACM,sBAAsB,CAAC;QAC9EnB,gBAAgB,gBACd,IAAArH,WAAA,CAAAyH,GAAA,EAAC3H,QAAA,CAAA2I,0BAA0B;UACzBtF,QAAQ,EAAEA,QAAS;UACnB8B,oBAAoB,EAAEA,oBAAqB;UAC3CH,kBAAkB,EAAEA,kBAAmB;UACvCS,kCAAkC,EAAEA;QAAmC,CACxE,CACF;MACH;IACF,CAAC,MAAM,IAAIsC,uBAAuB,GAAI,CAAC,GAAG,EAAG,IAAIA,uBAAuB,IAAI,CAAC,EAAE;MAC7E;MACAT,6BAA6B,GAAGrD,aAAa,CAACmE,iBAAQ,CAACQ,4BAA4B,CAAC;MACpFrB,gBAAgB,gBACd,IAAArH,WAAA,CAAAyH,GAAA,EAAC3H,QAAA,CAAAuI,mBAAmB;QAClBlF,QAAQ,EAAEA,QAAS;QACnBmF,iBAAiB,EAAET,uBAAwB;QAC3CtC,kCAAkC,EAAEA,kCAAmC;QACvEgD,IAAI,EAAC;MAAQ,CACd,CACF;MACD,IAAI1C,YAAY,KAAKlC,UAAU,CAACgF,OAAO,EAAE;QACvCrB,aAAa,gBACX,IAAAtH,WAAA,CAAAyH,GAAA,EAAC3H,QAAA,CAAA8I,wBAAwB;UACvB3D,oBAAoB,EAAEA,oBAAqB;UAC3CH,kBAAkB,EAAEA;QAAmB,CACxC,CACF;MACH;IACF,CAAC,MAAM;MAAE;MACPsC,6BAA6B,GAAGrD,aAAa,CAACmE,iBAAQ,CAACW,0BAA0B,CAAC;MAClFxB,gBAAgB,gBACd,IAAArH,WAAA,CAAAyH,GAAA,EAAC3H,QAAA,CAAAgJ,wBAAwB;QACvB3F,QAAQ,EAAEA,QAAS;QACnB8B,oBAAoB,EAAEA,oBAAqB;QAC3CH,kBAAkB,EAAEA,kBAAmB;QACvCS,kCAAkC,EAAEA;MAAmC,CACxE,CACF;MACD+B,aAAa,gBACX,IAAAtH,WAAA,CAAAyH,GAAA,EAAC3H,QAAA,CAAAiJ,yBAAyB,IAAE,CAC7B;IACH;EACF;EAEA,IAAI5D,sBAAsB,EAAE;IAC1BwC,kBAAkB,gBAChB,IAAA3H,WAAA,CAAAyH,GAAA,EAACnI,QAAA,CAAA0J,MAAM;MACLC,OAAO,EAAC,SAAS;MACjBC,OAAO,EAAE/B,sBAAuB;MAChCgC,IAAI,EAAE9E,YAAa;MACnB+E,KAAK;MAAAC,QAAA,EAEJtF,aAAa,CAACmE,iBAAQ,CAACoB,+BAA+B;IAAC,CAClD,CACT;EACH,CAAC,MAAM;IACL3B,kBAAkB,gBAChB,IAAA3H,WAAA,CAAAyH,GAAA,EAAChI,cAAA,CAAA8J,aAAa;MACZ9E,KAAK,EAAEA,KAAM;MACbyE,OAAO,EAAEtC,QAAS;MAClBzC,YAAY,EAAEA,YAAa;MAC3BiF,KAAK;IAAA,CACN,CACF;EACH;EAEA,IAAI3E,KAAK,EAAE;IAAE;IACXmD,SAAS,gBACP,IAAA5H,WAAA,CAAAyH,GAAA;MAAK+B,SAAS,EAAC,2BAA2B;MAAAH,QAAA,EACvCtF,aAAa,CACZmE,iBAAQ,CAACuB,mBAAmB,EAC5B;QACEC,IAAI,eAAG,IAAA1J,WAAA,CAAAyH,GAAA;UAAM+B,SAAS,EAAC,kBAAkB;UAAAH,QAAA,EAAE5E,KAAK,CAACiF;QAAI,CAAO;MAC9D,CACF;IAAC,CACE,CACN;EACH;EAEA,oBACE,IAAA1J,WAAA,CAAAyH,GAAA;IAAS+B,SAAS,EAAE,IAAAG,mBAAU,EAAC,4BAA4B,EAAE;MAAE,6CAA6C,EAAEvE;IAAoB,CAAC,CAAE;IAAAiE,QAAA,eACnI,IAAArJ,WAAA,CAAA4J,IAAA;MAAK1G,EAAE,EAAC,gCAAgC;MAAAmG,QAAA,gBACtC,IAAArJ,WAAA,CAAA4J,IAAA;QACEJ,SAAS,EAAE,IAAAG,mBAAU,EAAC,6BAA6B,EAAE;UACnD,yDAAyD,EAAE,CAAC,CAACrG;QAC/D,CAAC,CAAE;QACHJ,EAAE,EAAC,gCAAgC;QAAAmG,QAAA,GAElCtF,aAAa,CAACmE,iBAAQ,CAAC2B,wBAAwB,CAAC,EAChD,CAAC,CAACvG,aAAa,iBACd,IAAAtD,WAAA,CAAAyH,GAAA;UAAK+B,SAAS,EAAC,uBAAuB;UAAAH,QAAA,eACpC,IAAArJ,WAAA,CAAAyH,GAAA,EAACnI,QAAA,CAAAwK,UAAU;YACTC,GAAG,EAAEC,YAAM;YACXC,IAAI,EAAC,IAAI;YACTC,MAAM,EAAEC,aAAK;YACbjB,OAAO,EAAE5F,aAAc;YACvBkG,SAAS,EAAC,YAAY;YACtBY,GAAG,EAAErG,aAAa,CAACmE,iBAAQ,CAACmC,QAAQ;UAAE,CACvC;QAAC,CACC,CACN;MAAA,CACC,CAAC,eACL,IAAArK,WAAA,CAAAyH,GAAA,EAAC5H,mBAAA,CAAAM,OAAkB;QAACgD,QAAQ,EAAEA;MAAS,CAAE,CAAC,eAC1C,IAAAnD,WAAA,CAAAyH,GAAA;QAAI+B,SAAS,EAAC,MAAM;QAAAH,QAAA,EACjBjC;MAA6B,CAC5B,CAAC,EACJC,gBAAgB,eACjB,IAAArH,WAAA,CAAAyH,GAAA;QAAK+B,SAAS,EAAC,8BAA8B;QAAAH,QAAA,EAC1C/B;MAAa,CACX,CAAC,eACN,IAAAtH,WAAA,CAAAyH,GAAA;QAAK+B,SAAS,EAAC,6BAA6B;QAAAH,QAAA,EACzC1B;MAAkB,CAChB,CAAC,EACLC,SAAS;IAAA,CACP;EAAC,CACC,CAAC;AAEd,CAAC;AAED5E,+BAA+B,CAACsH,SAAS,GAAG;EAC1CpH,EAAE,EAAEqH,kBAAS,CAACC,MAAM,CAACC,UAAU;EAC/BtH,QAAQ,EAAEoH,kBAAS,CAACC,MAAM,CAACC,UAAU;EACrCrH,KAAK,EAAEmH,kBAAS,CAACC,MAAM;EACvBnH,2BAA2B,EAAEkH,kBAAS,CAACG,IAAI;EAC3CpH,aAAa,EAAEiH,kBAAS,CAACG,IAAI;EAC7B;EACAnH,UAAU,EAAEgH,kBAAS,CAACI,MAAM,CAACF;AAC/B,CAAC;AAEDzH,+BAA+B,CAAC4H,YAAY,GAAG;EAC7CvH,2BAA2B,EAAE,IAAI;EACjCC,aAAa,EAAE,IAAI;EACnBF,KAAK,EAAE;AACT,CAAC;AAAC,IAAAyH,QAAA,GAAAC,OAAA,CAAA3K,OAAA,GAEa,IAAA4K,wBAAc,EAAC/H,+BAA+B,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ExperimentalUpgradeNotification.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_i18n","_analytics","_paragon","_icons","_reactSdk","_upgradeButton","_modelStore","_utils","_data","_certificatePreview","_generic","_utils2","_messages","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","ExperimentalUpgradeNotification","_ref","id","courseId","model","setNotificationCurrentState","toggleSidebar","optimizely","pluginLocationId","formatMessage","useIntl","KEY","experimentKey","ANY_CLICK_ACTION","OPTIMIZELY_VTR_BULLET_EXPERIMENT","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","decision","useDecision","enabled","variationKey","experimentProperties","experiment_key","variation_key","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","track","logClickPastExpiration","upgradeNotificationHeaderText","expirationBanner","callToActionButton","offerCode","upsellMessage","getBulletVariation","enabledVariation","jsx","UpsellBullets","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","object","defaultProps","_default","exports","withOptimizely"],"sources":["../../src/upgrade-notification/ExperimentalUpgradeNotification.jsx"],"sourcesContent":["/* All of this code includes the necessary functions to run and track an A/B experiment\n using Optimizely. Please fully read through the code to know where changes\n need to be made specifically for a new test.\n\n As of 2025-01-08, this code is functionally the same as the\n DefaultUpgradeNotification.\n*/\n\n/* 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';\nimport { useDecision, withOptimizely } from '@optimizely/react-sdk';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { useModel } from '@src/generic/model-store';\n\nimport getBulletVariation from '../optimizely/utils';\nimport { OPTIMIZELY_VTR_BULLET_EXPERIMENT, PAGE_NAMES } from '../data';\nimport CertificatePreview from './certificate-preview';\nimport {\n ExpirationCountdown,\n AccessExpirationDateBanner,\n PastExpirationDateBanner,\n PastExpirationCardContent,\n UpsellFBESoonCardContent,\n UpsellBullets,\n} from '../generic';\nimport getUpsellPageName from './utils';\nimport messages from './messages';\n\nconst ExperimentalUpgradeNotification = ({\n id,\n courseId,\n model,\n setNotificationCurrentState,\n toggleSidebar,\n optimizely,\n}) => {\n const pluginLocationId = id;\n const { formatMessage } = useIntl();\n\n /*\n Update the following line with the new experiment constants.\n KEY and ANY_CLICK_ACTION are required and used in the later in the code.\n To update the variables, make changes in ../optimizely/utils\n */\n const { KEY: experimentKey, ANY_CLICK_ACTION } = OPTIMIZELY_VTR_BULLET_EXPERIMENT;\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 [decision] = useDecision(experimentKey);\n const { enabled, variationKey } = decision;\n\n // Experiment specific properties or data should not be sent to the tracking logs, so break this\n // object out to ensure it is only sent to Segment and not the tracking logs.\n const experimentProperties = {\n experiment_key: experimentKey,\n variation_key: variationKey,\n };\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 ...experimentProperties,\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 ...experimentProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n\n /*\n Confirm that the ANY_CLICK_ACTION matches the event key in Optimizely.\n Add any additional tracking for Optimizely here.\n */\n optimizely.track(ANY_CLICK_ACTION);\n };\n\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_notification.past_expiration.button_clicked', {\n ...eventProperties,\n ...experimentProperties,\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 /*\n Update the enabled variation according to your experiment\n */\n let upsellMessage = getBulletVariation({\n enabled,\n variationKey,\n isFBE,\n enabledVariation: (\n <UpsellBullets {...{ isFBE, learningAssistantEnabled }} />\n ),\n });\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 })}\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\">\n {callToActionButton}\n </div>\n {offerCode}\n </div>\n </section>\n );\n};\n\nExperimentalUpgradeNotification.propTypes = {\n id: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n model: PropTypes.string,\n setNotificationCurrentState: PropTypes.func,\n toggleSidebar: PropTypes.func,\n /* eslint-disable-next-line react/forbid-prop-types */\n optimizely: PropTypes.object.isRequired,\n};\n\nExperimentalUpgradeNotification.defaultProps = {\n setNotificationCurrentState: null,\n toggleSidebar: null,\n model: 'outline',\n};\n\nexport default withOptimizely(ExperimentalUpgradeNotification);\n"],"mappings":";;;;;;AASA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,WAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AAEA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AAEA,IAAAW,MAAA,GAAAT,sBAAA,CAAAF,OAAA;AACA,IAAAY,KAAA,GAAAZ,OAAA;AACA,IAAAa,mBAAA,GAAAX,sBAAA,CAAAF,OAAA;AACA,IAAAc,QAAA,GAAAd,OAAA;AAQA,IAAAe,OAAA,GAAAb,sBAAA,CAAAF,OAAA;AACA,IAAAgB,SAAA,GAAAd,sBAAA,CAAAF,OAAA;AAAkC,IAAAiB,WAAA,GAAAjB,OAAA;AAAA,SAAAE,uBAAAgB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAvB,wBAAAuB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAY,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAhB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAAA,SAAAW,QAAAjB,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAAM,MAAA,CAAAS,IAAA,CAAAlB,CAAA,OAAAS,MAAA,CAAAU,qBAAA,QAAAC,CAAA,GAAAX,MAAA,CAAAU,qBAAA,CAAAnB,CAAA,GAAAE,CAAA,KAAAkB,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAnB,CAAA,WAAAO,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAE,CAAA,EAAAoB,UAAA,OAAAnB,CAAA,CAAAoB,IAAA,CAAAC,KAAA,CAAArB,CAAA,EAAAiB,CAAA,YAAAjB,CAAA;AAAA,SAAAsB,cAAAzB,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAAwB,SAAA,CAAAC,MAAA,EAAAzB,CAAA,UAAAC,CAAA,WAAAuB,SAAA,CAAAxB,CAAA,IAAAwB,SAAA,CAAAxB,CAAA,QAAAA,CAAA,OAAAe,OAAA,CAAAR,MAAA,CAAAN,CAAA,OAAAyB,OAAA,WAAA1B,CAAA,IAAA2B,eAAA,CAAA7B,CAAA,EAAAE,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAO,MAAA,CAAAqB,yBAAA,GAAArB,MAAA,CAAAsB,gBAAA,CAAA/B,CAAA,EAAAS,MAAA,CAAAqB,yBAAA,CAAA3B,CAAA,KAAAc,OAAA,CAAAR,MAAA,CAAAN,CAAA,GAAAyB,OAAA,WAAA1B,CAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAV,CAAA,EAAAE,CAAA,EAAAO,MAAA,CAAAE,wBAAA,CAAAR,CAAA,EAAAD,CAAA,iBAAAF,CAAA;AAAA,SAAA6B,gBAAAjC,GAAA,EAAAoC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAApC,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAoC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAX,UAAA,QAAAa,YAAA,QAAAC,QAAA,oBAAAxC,GAAA,CAAAoC,GAAA,IAAAC,KAAA,WAAArC,GAAA;AAAA,SAAAsC,eAAA/B,CAAA,QAAAY,CAAA,GAAAsB,YAAA,CAAAlC,CAAA,uCAAAY,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAsB,aAAAlC,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAH,CAAA,GAAAG,CAAA,CAAAmC,MAAA,CAAAC,WAAA,kBAAAvC,CAAA,QAAAe,CAAA,GAAAf,CAAA,CAAAc,IAAA,CAAAX,CAAA,EAAAD,CAAA,uCAAAa,CAAA,SAAAA,CAAA,YAAAyB,SAAA,yEAAAtC,CAAA,GAAAuC,MAAA,GAAAC,MAAA,EAAAvC,CAAA,KAjClC;AACA;AACA;AACA;AACA;AACA;AACA,EANA,CAQA;AA2BA,MAAMwC,+BAA+B,GAAGC,IAAA,IAOlC;EAAA,IAPmC;IACvCC,EAAE;IACFC,QAAQ;IACRC,KAAK;IACLC,2BAA2B;IAC3BC,aAAa;IACbC;EACF,CAAC,GAAAN,IAAA;EACC,MAAMO,gBAAgB,GAAGN,EAAE;EAC3B,MAAM;IAAEO;EAAc,CAAC,GAAG,IAAAC,aAAO,EAAC,CAAC;;EAEnC;AACF;AACA;AACA;AACA;EACE,MAAM;IAAEC,GAAG,EAAEC,aAAa;IAAEC;EAAiB,CAAC,GAAGC,sCAAgC;EAEjF,MAAM;IACJC,GAAG;IACHC,YAAY;IACZC;EACF,CAAC,GAAG,IAAAC,oBAAQ,EAAC,gBAAgB,EAAEf,QAAQ,CAAC;EAExC,MAAM;IACJgB,YAAY;IACZC;EACF,CAAC,GAAG,IAAAF,oBAAQ,EAAC,gBAAgB,EAAEf,QAAQ,CAAC;EAExC,MAAM;IACJkB,gBAAgB;IAChBC,eAAe;IACfC,KAAK;IACLC;EACF,CAAC,GAAG,IAAAN,oBAAQ,EAACd,KAAK,EAAED,QAAQ,CAAC;EAE7B,MAAMsB,OAAO,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EAC1B,MAAMC,kBAAkB,GAAGZ,YAAY,GAAG;IAAEa,QAAQ,EAAEb;EAAa,CAAC,GAAG,CAAC,CAAC;EACzE,MAAMc,aAAa,GAAG,IAAIJ,IAAI,CAACD,OAAO,GAAGD,gBAAgB,CAAC;EAC1D,MAAMO,oBAAoB,GAAGV,gBAAgB,GAAG,IAAIK,IAAI,CAACL,gBAAgB,CAACW,eAAe,CAAC,GAAG,IAAI;EACjG,MAAMC,sBAAsB,GAAGZ,gBAAgB,GAAG,IAAIK,IAAI,CAACD,OAAO,CAAC,GAAGM,oBAAoB,GAAG,KAAK;EAClG,MAAMG,mBAAmB,GAAG1B,gBAAgB,CAAC2B,QAAQ,CAAC,SAAS,CAAC;EAChE,MAAMC,cAAc,GAAG,IAAAC,eAAiB,EAAC;IAAEnC,EAAE,EAAEM;EAAiB,CAAC,CAAC;EAClE,MAAM8B,kCAAkC,GAAGjC,2BAA2B;EACtE,MAAMkC,KAAK,GAAG,CAAC,CAAClB,gBAAgB,IAAI,CAAC,CAACC,eAAe,EAAEkB,wBAAwB;EAE/E,MAAM,CAACC,QAAQ,CAAC,GAAG,IAAAC,qBAAW,EAAC9B,aAAa,CAAC;EAC7C,MAAM;IAAE+B,OAAO;IAAEC;EAAa,CAAC,GAAGH,QAAQ;;EAE1C;EACA;EACA,MAAMI,oBAAoB,GAAG;IAC3BC,cAAc,EAAElC,aAAa;IAC7BmC,aAAa,EAAEH;EACjB,CAAC;EAED,MAAMI,eAAe,GAAG;IACtBC,OAAO,EAAElC,GAAG;IACZmC,aAAa,EAAE/C;EACjB,CAAC;EAED,MAAMgD,wBAAwB,GAAArE,aAAA,CAAAA,aAAA;IAC5BsE,QAAQ,EAAE,eAAe;IACzBC,IAAI,EAAE,+BAA+B;IACrCC,QAAQ,EAAE,iBAAiB;IAC3BC,YAAY,EAAE;EAAwC,GACnDP,eAAe,GACfH,oBAAoB,CACxB;EAED,IAAAW,gBAAS,EAAC,MAAM;IACd,IAAAC,+BAAoB,EAAC,+CAA+C,EAAET,eAAe,CAAC;IACtF,IAAAU,yBAAc,EAAC,kBAAkB,EAAEP,wBAAwB,CAAC;IAC5D;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAI,CAAClC,YAAY,EAAE;IACjB,OAAO,IAAI;EACb;EAEA,MAAM0C,QAAQ,GAAGA,CAAA,KAAM;IACrB,IAAAF,+BAAoB,EAAC,6CAA6C,EAAET,eAAe,CAAC;IACpF,IAAAS,+BAAoB,EAAC,uCAAuC,EAAA3E,aAAA,CAAAA,aAAA,KACvDkE,eAAe;MAClBY,QAAQ,EAAE;IAAiB,EAC5B,CAAC;IACF,IAAAF,yBAAc,EAAC,mBAAmB,EAAEP,wBAAwB,CAAC;IAC7D,IAAAO,yBAAc,EAAC,uCAAuC,EAAA5E,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACjDkE,eAAe,GACfH,oBAAoB;MACvBgB,YAAY,EAAE,eAAe;MAC7BC,QAAQ,EAAE,GAAG1B,cAAc,QAAQ;MACnC2B,QAAQ,EAAE,QAAQ;MAClBC,QAAQ,EAAE5B;IAAc,EACzB,CAAC;;IAEF;AACJ;AACA;AACA;IACI7B,UAAU,CAAC0D,KAAK,CAACpD,gBAAgB,CAAC;EACpC,CAAC;EAED,MAAMqD,sBAAsB,GAAGA,CAAA,KAAM;IACnC,IAAAR,yBAAc,EAAC,sEAAsE,EAAA5E,aAAA,CAAAA,aAAA,CAAAA,aAAA,KAChFkE,eAAe,GACfH,oBAAoB;MACvBgB,YAAY,EAAE,sBAAsB;MACpCC,QAAQ,EAAE,GAAG1B,cAAc,iBAAiB;MAC5C2B,QAAQ,EAAE,QAAQ;MAClBC,QAAQ,EAAE5B;IAAc,EACzB,CAAC;EACJ,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAI+B,6BAA6B;EACjC,IAAIC,gBAAgB;EACpB,IAAIC,kBAAkB;EACtB,IAAIC,SAAS;;EAEb;AACF;AACA;EACE,IAAIC,aAAa,GAAG,IAAAC,cAAkB,EAAC;IACrC7B,OAAO;IACPC,YAAY;IACZL,KAAK;IACLkC,gBAAgB,eACd,IAAAzH,WAAA,CAAA0H,GAAA,EAAC7H,QAAA,CAAA8H,aAAa;MAAOpC,KAAK;MAAEnB;IAAwB,CAAK;EAE7D,CAAC,CAAC;EAEF,IAAImB,KAAK,EAAE;IACT,MAAMqC,uBAAuB,GAAGC,IAAI,CAACC,KAAK,CAAC,CAAC/C,oBAAoB,GAAGD,aAAa,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;IAEnG,IAAI8C,uBAAuB,IAAK,CAAC,GAAG,EAAG,EAAE;MACvC,IAAIrD,KAAK,EAAE;QAAE;QACX,MAAMwD,yBAAyB,GAAGF,IAAI,CAACC,KAAK,CAAC,CAAC,IAAIpD,IAAI,CAACH,KAAK,CAACyD,cAAc,CAAC,GAAGlD,aAAa,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;QAC/GqC,6BAA6B,GAAG1D,aAAa,CAC3CwE,iBAAQ,CAACC,8BAA8B,EACvC;UAAEC,UAAU,EAAG5D,KAAK,CAAC4D;QAAY,CACnC,CAAC;QACDf,gBAAgB,gBACd,IAAApH,WAAA,CAAA0H,GAAA,EAAC7H,QAAA,CAAAuI,mBAAmB;UAClBjF,QAAQ,EAAEA,QAAS;UACnBkF,iBAAiB,EAAEN,yBAA0B;UAC7CzC,kCAAkC,EAAEA,kCAAmC;UACvEgD,IAAI,EAAC;QAAO,CACb,CACF;MACH,CAAC,MAAM;QACLnB,6BAA6B,GAAG1D,aAAa,CAACwE,iBAAQ,CAACM,sBAAsB,CAAC;QAC9EnB,gBAAgB,gBACd,IAAApH,WAAA,CAAA0H,GAAA,EAAC7H,QAAA,CAAA2I,0BAA0B;UACzBrF,QAAQ,EAAEA,QAAS;UACnB4B,oBAAoB,EAAEA,oBAAqB;UAC3CH,kBAAkB,EAAEA,kBAAmB;UACvCU,kCAAkC,EAAEA;QAAmC,CACxE,CACF;MACH;IACF,CAAC,MAAM,IAAIsC,uBAAuB,GAAI,CAAC,GAAG,EAAG,IAAIA,uBAAuB,IAAI,CAAC,EAAE;MAC7E;MACAT,6BAA6B,GAAG1D,aAAa,CAACwE,iBAAQ,CAACQ,4BAA4B,CAAC;MACpFrB,gBAAgB,gBACd,IAAApH,WAAA,CAAA0H,GAAA,EAAC7H,QAAA,CAAAuI,mBAAmB;QAClBjF,QAAQ,EAAEA,QAAS;QACnBkF,iBAAiB,EAAET,uBAAwB;QAC3CtC,kCAAkC,EAAEA,kCAAmC;QACvEgD,IAAI,EAAC;MAAQ,CACd,CACF;MACD,IAAIlD,cAAc,KAAKsD,gBAAU,CAACC,QAAQ,EAAE;QAC1CpB,aAAa,gBACX,IAAAvH,WAAA,CAAA0H,GAAA,EAAC7H,QAAA,CAAA+I,wBAAwB;UACvB7D,oBAAoB,EAAEA,oBAAqB;UAC3CH,kBAAkB,EAAEA;QAAmB,CACxC,CACF;MACH;IACF,CAAC,MAAM;MAAE;MACPuC,6BAA6B,GAAG1D,aAAa,CAACwE,iBAAQ,CAACY,0BAA0B,CAAC;MAClFzB,gBAAgB,gBACd,IAAApH,WAAA,CAAA0H,GAAA,EAAC7H,QAAA,CAAAiJ,wBAAwB;QACvB3F,QAAQ,EAAEA,QAAS;QACnB4B,oBAAoB,EAAEA,oBAAqB;QAC3CH,kBAAkB,EAAEA,kBAAmB;QACvCU,kCAAkC,EAAEA;MAAmC,CACxE,CACF;MACDiC,aAAa,gBACX,IAAAvH,WAAA,CAAA0H,GAAA,EAAC7H,QAAA,CAAAkJ,yBAAyB,IAAE,CAC7B;IACH;EACF;EAEA,IAAI9D,sBAAsB,EAAE;IAC1BoC,kBAAkB,gBAChB,IAAArH,WAAA,CAAA0H,GAAA,EAACrI,QAAA,CAAA2J,MAAM;MACLC,OAAO,EAAC,SAAS;MACjBC,OAAO,EAAEhC,sBAAuB;MAChCiC,IAAI,EAAEhF,YAAa;MACnBiF,KAAK;MAAAC,QAAA,EAEJ5F,aAAa,CAACwE,iBAAQ,CAACqB,+BAA+B;IAAC,CAClD,CACT;EACH,CAAC,MAAM;IACLjC,kBAAkB,gBAChB,IAAArH,WAAA,CAAA0H,GAAA,EAAClI,cAAA,CAAA+J,aAAa;MACZhF,KAAK,EAAEA,KAAM;MACb2E,OAAO,EAAEvC,QAAS;MAClB1C,YAAY,EAAEA,YAAa;MAC3BmF,KAAK;IAAA,CACN,CACF;EACH;EAEA,IAAI7E,KAAK,EAAE;IAAE;IACX+C,SAAS,gBACP,IAAAtH,WAAA,CAAA0H,GAAA;MAAK8B,SAAS,EAAC,2BAA2B;MAAAH,QAAA,EACvC5F,aAAa,CACZwE,iBAAQ,CAACwB,mBAAmB,EAC5B;QACEC,IAAI,eAAG,IAAA1J,WAAA,CAAA0H,GAAA;UAAM8B,SAAS,EAAC,kBAAkB;UAAAH,QAAA,EAAE9E,KAAK,CAACmF;QAAI,CAAO;MAC9D,CACF;IAAC,CACE,CACN;EACH;EAEA,oBACE,IAAA1J,WAAA,CAAA0H,GAAA;IAAS8B,SAAS,EAAE,IAAAG,mBAAU,EAAC,4BAA4B,EAAE;MAAE,6CAA6C,EAAEzE;IAAoB,CAAC,CAAE;IAAAmE,QAAA,eACnI,IAAArJ,WAAA,CAAA4J,IAAA;MAAK1G,EAAE,EAAC,gCAAgC;MAAAmG,QAAA,gBACtC,IAAArJ,WAAA,CAAA4J,IAAA;QACEJ,SAAS,EAAE,IAAAG,mBAAU,EAAC,6BAA6B,EAAE;UACnD,yDAAyD,EAAE,CAAC,CAACrG;QAC/D,CAAC,CAAE;QACHJ,EAAE,EAAC,gCAAgC;QAAAmG,QAAA,GAElC5F,aAAa,CAACwE,iBAAQ,CAAC4B,wBAAwB,CAAC,EAChD,CAAC,CAACvG,aAAa,iBACd,IAAAtD,WAAA,CAAA0H,GAAA;UAAK8B,SAAS,EAAC,uBAAuB;UAAAH,QAAA,eACpC,IAAArJ,WAAA,CAAA0H,GAAA,EAACrI,QAAA,CAAAyK,UAAU;YACTC,GAAG,EAAEC,YAAM;YACXC,IAAI,EAAC,IAAI;YACTC,MAAM,EAAEC,aAAK;YACbjB,OAAO,EAAE5F,aAAc;YACvBkG,SAAS,EAAC,YAAY;YACtBY,GAAG,EAAE3G,aAAa,CAACwE,iBAAQ,CAACoC,QAAQ;UAAE,CACvC;QAAC,CACC,CACN;MAAA,CACC,CAAC,eACL,IAAArK,WAAA,CAAA0H,GAAA,EAAC9H,mBAAA,CAAAO,OAAkB;QAACgD,QAAQ,EAAEA;MAAS,CAAE,CAAC,eAC1C,IAAAnD,WAAA,CAAA0H,GAAA;QAAI8B,SAAS,EAAC,MAAM;QAAAH,QAAA,EACjBlC;MAA6B,CAC5B,CAAC,EACJC,gBAAgB,eACjB,IAAApH,WAAA,CAAA0H,GAAA;QAAK8B,SAAS,EAAC,8BAA8B;QAAAH,QAAA,EAC1C9B;MAAa,CACX,CAAC,eACN,IAAAvH,WAAA,CAAA0H,GAAA;QAAK8B,SAAS,EAAC,6BAA6B;QAAAH,QAAA,EACzChC;MAAkB,CAChB,CAAC,EACLC,SAAS;IAAA,CACP;EAAC,CACC,CAAC;AAEd,CAAC;AAEDtE,+BAA+B,CAACsH,SAAS,GAAG;EAC1CpH,EAAE,EAAEqH,kBAAS,CAACC,MAAM,CAACC,UAAU;EAC/BtH,QAAQ,EAAEoH,kBAAS,CAACC,MAAM,CAACC,UAAU;EACrCrH,KAAK,EAAEmH,kBAAS,CAACC,MAAM;EACvBnH,2BAA2B,EAAEkH,kBAAS,CAACG,IAAI;EAC3CpH,aAAa,EAAEiH,kBAAS,CAACG,IAAI;EAC7B;EACAnH,UAAU,EAAEgH,kBAAS,CAACI,MAAM,CAACF;AAC/B,CAAC;AAEDzH,+BAA+B,CAAC4H,YAAY,GAAG;EAC7CvH,2BAA2B,EAAE,IAAI;EACjCC,aAAa,EAAE,IAAI;EACnBF,KAAK,EAAE;AACT,CAAC;AAAC,IAAAyH,QAAA,GAAAC,OAAA,CAAA3K,OAAA,GAEa,IAAA4K,wBAAc,EAAC/H,+BAA+B,CAAC","ignoreList":[]}
|
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
var _constants = _interopRequireDefault(require("../data/constants"));
|
|
8
|
-
var _generic = require("../generic");
|
|
9
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
9
|
const getUpsellPageName = _ref => {
|
|
12
10
|
let {
|
|
@@ -20,22 +18,5 @@ const getUpsellPageName = _ref => {
|
|
|
20
18
|
}
|
|
21
19
|
return _constants.default.IN_COURSE;
|
|
22
20
|
};
|
|
23
|
-
exports.
|
|
24
|
-
const getUpsellBullets = _ref2 => {
|
|
25
|
-
let {
|
|
26
|
-
upsellPageName,
|
|
27
|
-
isFBE,
|
|
28
|
-
learningAssistantEnabled
|
|
29
|
-
} = _ref2;
|
|
30
|
-
if (upsellPageName === _constants.default.PROGRESS) {
|
|
31
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.ExperimentalUpsellBullets, {
|
|
32
|
-
isFBE,
|
|
33
|
-
learningAssistantEnabled
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellFarAwayCardContent, {
|
|
37
|
-
isFBE
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
exports.getUpsellBullets = getUpsellBullets;
|
|
21
|
+
var _default = exports.default = getUpsellPageName;
|
|
41
22
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_constants","_interopRequireDefault","require","
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_constants","_interopRequireDefault","require","obj","__esModule","default","getUpsellPageName","_ref","id","includes","PAGE_NAMES","HOME","PROGRESS","IN_COURSE","_default","exports"],"sources":["../../src/upgrade-notification/utils.jsx"],"sourcesContent":["import PAGE_NAMES from '../data/constants';\n\nconst getUpsellPageName = ({ id }) => {\n if (id.includes('outline')) {\n return PAGE_NAMES.HOME;\n }\n\n if (id.includes('progress')) {\n return PAGE_NAMES.PROGRESS;\n }\n\n return PAGE_NAMES.IN_COURSE;\n};\n\nexport default getUpsellPageName;\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA2C,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE3C,MAAMG,iBAAiB,GAAGC,IAAA,IAAY;EAAA,IAAX;IAAEC;EAAG,CAAC,GAAAD,IAAA;EAC/B,IAAIC,EAAE,CAACC,QAAQ,CAAC,SAAS,CAAC,EAAE;IAC1B,OAAOC,kBAAU,CAACC,IAAI;EACxB;EAEA,IAAIH,EAAE,CAACC,QAAQ,CAAC,UAAU,CAAC,EAAE;IAC3B,OAAOC,kBAAU,CAACE,QAAQ;EAC5B;EAEA,OAAOF,kBAAU,CAACG,SAAS;AAC7B,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAV,OAAA,GAEaC,iBAAiB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
-
var _upsellBullets = require("./upsell-bullets");
|
|
9
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
const UpsellFarAwayCardContent = _ref => {
|
|
12
|
-
let {
|
|
13
|
-
isFBE
|
|
14
|
-
} = _ref;
|
|
15
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
16
|
-
role: "list",
|
|
17
|
-
className: "pl-4 text-gray-700 pt-0 mb-4",
|
|
18
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.VerifiedCertBullet, {}), isFBE && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
19
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.UnlockGradedBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.FullAccessBullet, {})]
|
|
20
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_upsellBullets.SupportMissionBullet, {})]
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
UpsellFarAwayCardContent.defaultProps = {
|
|
24
|
-
isFBE: false
|
|
25
|
-
};
|
|
26
|
-
UpsellFarAwayCardContent.propTypes = {
|
|
27
|
-
isFBE: _propTypes.default.bool
|
|
28
|
-
};
|
|
29
|
-
var _default = exports.default = UpsellFarAwayCardContent;
|
|
30
|
-
//# sourceMappingURL=UpsellFarAwayCardContent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UpsellFarAwayCardContent.js","names":["_propTypes","_interopRequireDefault","require","_upsellBullets","_jsxRuntime","obj","__esModule","default","UpsellFarAwayCardContent","_ref","isFBE","jsxs","role","className","children","jsx","VerifiedCertBullet","Fragment","UnlockGradedBullet","FullAccessBullet","SupportMissionBullet","defaultProps","propTypes","PropTypes","bool","_default","exports"],"sources":["../../src/generic/UpsellFarAwayCardContent.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from './upsell-bullets';\n\nconst UpsellFarAwayCardContent = ({ isFBE }) => (\n <div role=\"list\" className=\"pl-4 text-gray-700 pt-0 mb-4\">\n <VerifiedCertBullet />\n {isFBE && (\n <>\n <UnlockGradedBullet />\n <FullAccessBullet />\n </>\n )}\n <SupportMissionBullet />\n </div>\n);\n\nUpsellFarAwayCardContent.defaultProps = {\n isFBE: false,\n};\n\nUpsellFarAwayCardContent.propTypes = {\n isFBE: PropTypes.bool,\n};\n\nexport default UpsellFarAwayCardContent;\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAK0B,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE1B,MAAMG,wBAAwB,GAAGC,IAAA;EAAA,IAAC;IAAEC;EAAM,CAAC,GAAAD,IAAA;EAAA,oBACzC,IAAAL,WAAA,CAAAO,IAAA;IAAKC,IAAI,EAAC,MAAM;IAACC,SAAS,EAAC,8BAA8B;IAAAC,QAAA,gBACvD,IAAAV,WAAA,CAAAW,GAAA,EAACZ,cAAA,CAAAa,kBAAkB,IAAE,CAAC,EACrBN,KAAK,iBACJ,IAAAN,WAAA,CAAAO,IAAA,EAAAP,WAAA,CAAAa,QAAA;MAAAH,QAAA,gBACE,IAAAV,WAAA,CAAAW,GAAA,EAACZ,cAAA,CAAAe,kBAAkB,IAAE,CAAC,eACtB,IAAAd,WAAA,CAAAW,GAAA,EAACZ,cAAA,CAAAgB,gBAAgB,IAAE,CAAC;IAAA,CACpB,CACH,eACD,IAAAf,WAAA,CAAAW,GAAA,EAACZ,cAAA,CAAAiB,oBAAoB,IAAE,CAAC;EAAA,CACrB,CAAC;AAAA,CACP;AAEDZ,wBAAwB,CAACa,YAAY,GAAG;EACtCX,KAAK,EAAE;AACT,CAAC;AAEDF,wBAAwB,CAACc,SAAS,GAAG;EACnCZ,KAAK,EAAEa,kBAAS,CAACC;AACnB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAnB,OAAA,GAEaC,wBAAwB","ignoreList":[]}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
-
var _i18n = require("@edx/frontend-platform/i18n");
|
|
9
|
-
var _paragon = require("@openedx/paragon");
|
|
10
|
-
var _icons = require("@openedx/paragon/icons");
|
|
11
|
-
var _frontendPlatform = require("@edx/frontend-platform");
|
|
12
|
-
var _messages = _interopRequireDefault(require("./messages"));
|
|
13
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
const ExperimentalUpsellBullets = _ref => {
|
|
16
|
-
let {
|
|
17
|
-
isFBE,
|
|
18
|
-
learningAssistantEnabled
|
|
19
|
-
} = _ref;
|
|
20
|
-
const intl = (0, _i18n.useIntl)();
|
|
21
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
|
|
22
|
-
role: "list",
|
|
23
|
-
gap: 3,
|
|
24
|
-
className: "m-4",
|
|
25
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
|
|
26
|
-
direction: "horizontal",
|
|
27
|
-
role: "listitem",
|
|
28
|
-
gap: 2,
|
|
29
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Icon, {
|
|
30
|
-
src: _icons.ArrowForward,
|
|
31
|
-
size: "xs",
|
|
32
|
-
className: "text-brand-500"
|
|
33
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
34
|
-
children: intl.formatMessage(_messages.default.access)
|
|
35
|
-
})]
|
|
36
|
-
}), isFBE && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
|
|
37
|
-
direction: "horizontal",
|
|
38
|
-
role: "listitem",
|
|
39
|
-
gap: 2,
|
|
40
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Icon, {
|
|
41
|
-
src: _icons.ArrowForward,
|
|
42
|
-
size: "xs",
|
|
43
|
-
className: "text-brand-500"
|
|
44
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
45
|
-
children: intl.formatMessage(_messages.default.grades)
|
|
46
|
-
})]
|
|
47
|
-
}), learningAssistantEnabled && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
|
|
48
|
-
direction: "horizontal",
|
|
49
|
-
role: "listitem",
|
|
50
|
-
gap: 2,
|
|
51
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Icon, {
|
|
52
|
-
src: _icons.ArrowForward,
|
|
53
|
-
size: "xs",
|
|
54
|
-
className: "text-brand-500"
|
|
55
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
56
|
-
children: intl.formatMessage(_messages.default.learningAssistant)
|
|
57
|
-
})]
|
|
58
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Stack, {
|
|
59
|
-
direction: "horizontal",
|
|
60
|
-
role: "listitem",
|
|
61
|
-
gap: 2,
|
|
62
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Icon, {
|
|
63
|
-
src: _icons.ArrowForward,
|
|
64
|
-
size: "xs",
|
|
65
|
-
className: "text-brand-500"
|
|
66
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
67
|
-
children: intl.formatMessage(_messages.default.certificate, {
|
|
68
|
-
certificateLink: /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Hyperlink, {
|
|
69
|
-
destination: `${(0, _frontendPlatform.getConfig)().MARKETING_SITE_BASE_URL}/verified-certificate`,
|
|
70
|
-
children: intl.formatMessage(_messages.default.certificateLinkText)
|
|
71
|
-
})
|
|
72
|
-
})
|
|
73
|
-
})]
|
|
74
|
-
})]
|
|
75
|
-
});
|
|
76
|
-
};
|
|
77
|
-
ExperimentalUpsellBullets.defaultProps = {
|
|
78
|
-
isFBE: false,
|
|
79
|
-
learningAssistantEnabled: false
|
|
80
|
-
};
|
|
81
|
-
ExperimentalUpsellBullets.propTypes = {
|
|
82
|
-
isFBE: _propTypes.default.bool,
|
|
83
|
-
learningAssistantEnabled: _propTypes.default.bool
|
|
84
|
-
};
|
|
85
|
-
var _default = exports.default = ExperimentalUpsellBullets;
|
|
86
|
-
//# sourceMappingURL=ExperimentalUpsellBullets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExperimentalUpsellBullets.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_frontendPlatform","_messages","_jsxRuntime","obj","__esModule","default","ExperimentalUpsellBullets","_ref","isFBE","learningAssistantEnabled","intl","useIntl","jsxs","Stack","role","gap","className","children","direction","jsx","Icon","src","ArrowForward","size","formatMessage","messages","access","grades","learningAssistant","certificate","certificateLink","Hyperlink","destination","getConfig","MARKETING_SITE_BASE_URL","certificateLinkText","defaultProps","propTypes","PropTypes","bool","_default","exports"],"sources":["../../../src/generic/upsell-bullets/ExperimentalUpsellBullets.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Hyperlink, Icon, Stack } from '@openedx/paragon';\nimport { ArrowForward } from '@openedx/paragon/icons';\nimport { getConfig } from '@edx/frontend-platform';\n\nimport messages from './messages';\n\nconst ExperimentalUpsellBullets = ({ isFBE, learningAssistantEnabled }) => {\n const intl = useIntl();\n return (\n <Stack role=\"list\" gap={3} className=\"m-4\">\n <Stack direction=\"horizontal\" role=\"listitem\" gap={2}>\n <Icon src={ArrowForward} size=\"xs\" className=\"text-brand-500\" />\n <span>\n {intl.formatMessage(messages.access)}\n </span>\n </Stack>\n {isFBE && (\n <Stack direction=\"horizontal\" role=\"listitem\" gap={2}>\n <Icon src={ArrowForward} size=\"xs\" className=\"text-brand-500\" />\n <span>\n {intl.formatMessage(messages.grades)}\n </span>\n </Stack>\n )}\n {learningAssistantEnabled && (\n <Stack direction=\"horizontal\" role=\"listitem\" gap={2}>\n <Icon src={ArrowForward} size=\"xs\" className=\"text-brand-500\" />\n <span>\n {intl.formatMessage(messages.learningAssistant)}\n </span>\n </Stack>\n )}\n <Stack direction=\"horizontal\" role=\"listitem\" gap={2}>\n <Icon src={ArrowForward} size=\"xs\" className=\"text-brand-500\" />\n <span>\n {intl.formatMessage(\n messages.certificate,\n {\n certificateLink: (\n <Hyperlink destination={`${getConfig().MARKETING_SITE_BASE_URL}/verified-certificate`}>\n {intl.formatMessage(messages.certificateLinkText)}\n </Hyperlink>\n ),\n },\n )}\n </span>\n </Stack>\n </Stack>\n );\n};\n\nExperimentalUpsellBullets.defaultProps = {\n isFBE: false,\n learningAssistantEnabled: false,\n};\n\nExperimentalUpsellBullets.propTypes = {\n isFBE: PropTypes.bool,\n learningAssistantEnabled: PropTypes.bool,\n};\n\nexport default ExperimentalUpsellBullets;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExperimentalUpsellTable.js","names":["_propTypes","_interopRequireDefault","require","_i18n","_paragon","_icons","_frontendPlatform","_messages","_jsxRuntime","obj","__esModule","default","ExperimentalUpsellTable","_ref","isFBE","learningAssistantEnabled","intl","useIntl","jsxs","Col","className","children","jsx","formatMessage","messages","tableSectionHeader","Row","featureHeader","auditHeader","verifiedHeader","certificate","certificateLink","Hyperlink","destination","getConfig","MARKETING_SITE_BASE_URL","certificateLinkText","Icon","src","CloseSmall","alt","notIncludedAltMessage","CheckCircle","includedAltMessage","grades","learningAssistant","access","defaultProps","propTypes","PropTypes","bool","_default","exports"],"sources":["../../../src/generic/upsell-bullets/ExperimentalUpsellTable.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n Col,\n Hyperlink,\n Icon,\n Row,\n} from '@openedx/paragon';\nimport { CheckCircle, CloseSmall } from '@openedx/paragon/icons';\nimport { getConfig } from '@edx/frontend-platform';\n\nimport './ExperimentalUpsellTable.scss';\nimport messages from './messages';\n\nconst ExperimentalUpsellTable = ({ isFBE, learningAssistantEnabled }) => {\n const intl = useIntl();\n return (\n <Col className=\"px-4 pb-4 small\">\n <h3 className=\"mb-4 primary-500\">\n {intl.formatMessage(messages.tableSectionHeader)}\n </h3>\n <Row className=\"m-0 text-center\">\n <Col>\n <span className=\"sr-only\">\n {intl.formatMessage(messages.featureHeader)}\n </span>\n </Col>\n <Col className=\"audit-cell top-audit-border col-2 \">\n <div className=\"center-items\">\n {intl.formatMessage(messages.auditHeader)}\n </div>\n </Col>\n <Col className=\"verified-cell top-verified-border font-weight-bold col-2\">\n <div className=\"center-items\">\n {intl.formatMessage(messages.verifiedHeader)}\n </div>\n </Col>\n </Row>\n <Row className=\"m-0\">\n <Col className=\"feature-cell\">\n {intl.formatMessage(\n messages.certificate,\n {\n certificateLink: (\n <Hyperlink destination={`${getConfig().MARKETING_SITE_BASE_URL}/verified-certificate`}>\n {intl.formatMessage(messages.certificateLinkText)}\n </Hyperlink>\n ),\n },\n )}\n </Col>\n <Col className=\"audit-cell col-2\">\n <div className=\"center-items\">\n <Icon src={CloseSmall} alt={intl.formatMessage(messages.notIncludedAltMessage)} />\n </div>\n </Col>\n <Col className=\"verified-cell col-2\">\n <div className=\"center-items\">\n <Icon src={CheckCircle} alt={intl.formatMessage(messages.includedAltMessage)} />\n </div>\n </Col>\n </Row>\n {isFBE && (\n <Row className=\"m-0\">\n <Col className=\"feature-cell\">\n {intl.formatMessage(messages.grades)}\n </Col>\n <Col className=\"audit-cell col-2 center-items\">\n <Icon src={CloseSmall} alt={intl.formatMessage(messages.notIncludedAltMessage)} />\n </Col>\n <Col className=\"verified-cell col-2 center-items\">\n <Icon src={CheckCircle} alt={intl.formatMessage(messages.includedAltMessage)} />\n </Col>\n </Row>\n )}\n {learningAssistantEnabled && (\n <Row className=\"m-0\">\n <Col className=\"feature-cell\">\n <span>\n {intl.formatMessage(messages.learningAssistant)}\n </span>\n </Col>\n <Col className=\"audit-cell col-2 center-items\">\n <Icon src={CloseSmall} alt={intl.formatMessage(messages.notIncludedAltMessage)} />\n </Col>\n <Col className=\"verified-cell col-2 center-items\">\n <Icon src={CheckCircle} alt={intl.formatMessage(messages.includedAltMessage)} />\n </Col>\n </Row>\n )}\n <Row className=\"m-0\">\n <Col className=\"feature-cell bottom-no-border flex align-items-center pb-3\">\n {intl.formatMessage(messages.access)}\n </Col>\n <Col className=\"audit-cell bottom-audit-border col-2 pb-3\">\n <Icon src={CloseSmall} alt={intl.formatMessage(messages.notIncludedAltMessage)} />\n </Col>\n <Col className=\"verified-cell bottom-verified-border col-2 center-items pb-3\">\n <Icon src={CheckCircle} alt={intl.formatMessage(messages.includedAltMessage)} />\n </Col>\n </Row>\n </Col>\n );\n};\n\nExperimentalUpsellTable.defaultProps = {\n isFBE: false,\n learningAssistantEnabled: false,\n};\n\nExperimentalUpsellTable.propTypes = {\n isFBE: PropTypes.bool,\n learningAssistantEnabled: PropTypes.bool,\n};\n\nexport default ExperimentalUpsellTable;\n"],"mappings":"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","ignoreList":[]}
|
|
File without changes
|
|
File without changes
|