@edx/frontend-plugin-advertisements 2.24.2 → 2.25.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.
Files changed (34) hide show
  1. package/dist/course-exit-upsell/CourseExitUpsell.js +147 -0
  2. package/dist/course-exit-upsell/CourseExitUpsell.js.map +1 -0
  3. package/dist/course-exit-upsell/UpgradeFootnote.js +74 -0
  4. package/dist/course-exit-upsell/UpgradeFootnote.js.map +1 -0
  5. package/dist/course-exit-upsell/index.js +10 -0
  6. package/dist/course-exit-upsell/index.js.map +1 -0
  7. package/dist/course-exit-upsell/messages.js +46 -0
  8. package/dist/course-exit-upsell/messages.js.map +1 -0
  9. package/dist/course-exit-upsell/track.js +124 -0
  10. package/dist/course-exit-upsell/track.js.map +1 -0
  11. package/dist/data/__factories__/extraOffer.factory.js +15 -0
  12. package/dist/data/__factories__/extraOffer.factory.js.map +1 -0
  13. package/dist/data/__factories__/index.js +1 -0
  14. package/dist/data/__factories__/index.js.map +1 -1
  15. package/dist/data/lms_api.js +40 -0
  16. package/dist/data/lms_api.js.map +1 -1
  17. package/dist/index.js +38 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/subscription-upsell/SubscriptionBenefitsModal.js +145 -0
  20. package/dist/subscription-upsell/SubscriptionBenefitsModal.js.map +1 -0
  21. package/dist/subscription-upsell/SubscriptionComparisonModal.js +248 -0
  22. package/dist/subscription-upsell/SubscriptionComparisonModal.js.map +1 -0
  23. package/dist/subscription-upsell/SubscriptionComparisonModal.scss +66 -0
  24. package/dist/subscription-upsell/SubscriptionUpgradeCard.js +193 -0
  25. package/dist/subscription-upsell/SubscriptionUpgradeCard.js.map +1 -0
  26. package/dist/subscription-upsell/SubscriptionUpsell.js +186 -0
  27. package/dist/subscription-upsell/SubscriptionUpsell.js.map +1 -0
  28. package/dist/subscription-upsell/index.js +61 -0
  29. package/dist/subscription-upsell/index.js.map +1 -0
  30. package/dist/subscription-upsell/messages.js +261 -0
  31. package/dist/subscription-upsell/messages.js.map +1 -0
  32. package/dist/subscription-upsell/useSubscriptionOffer.js +80 -0
  33. package/dist/subscription-upsell/useSubscriptionOffer.js.map +1 -0
  34. package/package.json +1 -1
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _i18n = require("@edx/frontend-platform/i18n");
8
+ const messages = (0, _i18n.defineMessages)({
9
+ subscribe: {
10
+ id: 'advertisements.subscription.subscribe',
11
+ defaultMessage: 'Subscribe',
12
+ description: 'Button that sends the learner to subscription checkout'
13
+ },
14
+ purchase: {
15
+ id: 'advertisements.subscription.purchase',
16
+ defaultMessage: 'Buy {price}',
17
+ description: 'Button that sends the learner to one-time purchase checkout for this course. {price} is the formatted course price, for example $49.'
18
+ },
19
+ purchaseNoPrice: {
20
+ id: 'advertisements.subscription.purchase-no-price',
21
+ defaultMessage: 'Buy',
22
+ description: 'Purchase button label when the course price is not known'
23
+ },
24
+ upgradeNow: {
25
+ id: 'advertisements.subscription.upgrade-now',
26
+ defaultMessage: 'Upgrade now',
27
+ description: 'Button for a subscriber to unlock this course under their subscription'
28
+ },
29
+ upgrading: {
30
+ id: 'advertisements.subscription.upgrading',
31
+ defaultMessage: 'Upgrading…',
32
+ description: 'Button label while the upgrade request is in progress'
33
+ },
34
+ upgradePending: {
35
+ id: 'advertisements.subscription.upgrade-pending',
36
+ defaultMessage: 'Your upgrade is being processed. This can take a moment.',
37
+ description: 'Shown after the server accepted the upgrade but has not finished applying it'
38
+ },
39
+ upgradeNotActive: {
40
+ id: 'advertisements.subscription.upgrade-not-active',
41
+ defaultMessage: 'Your subscription is not active, so this course could not be upgraded.',
42
+ description: 'Shown when the upgrade failed because the subscription is not active'
43
+ },
44
+ reactivateSubscription: {
45
+ id: 'advertisements.subscription.reactivate',
46
+ defaultMessage: 'Reactivate your subscription',
47
+ description: 'Link to subscription checkout shown when the subscription is not active'
48
+ },
49
+ upgradeFailed: {
50
+ id: 'advertisements.subscription.upgrade-failed',
51
+ defaultMessage: 'We could not upgrade this course. Please try again.',
52
+ description: 'Shown when the upgrade request failed for an unexpected reason'
53
+ },
54
+ cardHeader: {
55
+ id: 'advertisements.subscription.card.header',
56
+ defaultMessage: 'Make the most out of your learning',
57
+ description: 'Header of the subscription upgrade card in the course sidebar'
58
+ },
59
+ benefitsHeader: {
60
+ id: 'advertisements.subscription.card.benefits-header',
61
+ defaultMessage: 'Upgrading can have huge benefits',
62
+ description: 'Header above the Buy vs Subscribe comparison table'
63
+ },
64
+ featureColumn: {
65
+ id: 'advertisements.subscription.card.feature-column',
66
+ defaultMessage: 'Feature',
67
+ description: 'Screen-reader-only header for the feature column of the comparison table'
68
+ },
69
+ buyColumn: {
70
+ id: 'advertisements.subscription.card.buy-column',
71
+ defaultMessage: 'Buy',
72
+ description: 'Column header for the one-time purchase option'
73
+ },
74
+ subscribeColumn: {
75
+ id: 'advertisements.subscription.card.subscribe-column',
76
+ defaultMessage: 'Subscribe',
77
+ description: 'Column header for the subscription option'
78
+ },
79
+ pricePerInterval: {
80
+ id: 'advertisements.subscription.card.price-per-interval',
81
+ defaultMessage: '{price}/{interval, select, month {month} year {year} other {{interval}}}',
82
+ description: 'Subscription price with its billing interval, for example $59/month. interval is month or year.'
83
+ },
84
+ featureFreeTrial: {
85
+ id: 'advertisements.subscription.card.feature.free-trial',
86
+ defaultMessage: 'Free trial',
87
+ description: 'Comparison row: a free trial is available'
88
+ },
89
+ featureChangeCourses: {
90
+ id: 'advertisements.subscription.card.feature.change-courses',
91
+ defaultMessage: 'Change courses for free',
92
+ description: 'Comparison row: switch to other courses at no extra cost'
93
+ },
94
+ featureCertificates: {
95
+ id: 'advertisements.subscription.card.feature.certificates',
96
+ defaultMessage: 'Earn {certificateLink}',
97
+ description: 'Comparison row: earn verified certificates. {certificateLink} is a link reading "verified certificates".'
98
+ },
99
+ featureCertificatesLink: {
100
+ id: 'advertisements.subscription.card.feature.certificates-link',
101
+ defaultMessage: 'verified certificates',
102
+ description: 'Link text inside the earn certificates row'
103
+ },
104
+ featureGradedAssignments: {
105
+ id: 'advertisements.subscription.card.feature.graded-assignments',
106
+ defaultMessage: 'Complete graded assignments',
107
+ description: 'Comparison row: access to graded assignments'
108
+ },
109
+ featureUnlimitedAccess: {
110
+ id: 'advertisements.subscription.card.feature.unlimited-access',
111
+ defaultMessage: 'Unlimited access to course materials',
112
+ description: 'Comparison row: no access expiration'
113
+ },
114
+ includedAlt: {
115
+ id: 'advertisements.subscription.card.included',
116
+ defaultMessage: 'Included',
117
+ description: 'Alt text for the check icon in the comparison table'
118
+ },
119
+ notIncludedAlt: {
120
+ id: 'advertisements.subscription.card.not-included',
121
+ defaultMessage: 'Not included',
122
+ description: 'Alt text for the cross icon in the comparison table'
123
+ },
124
+ brand: {
125
+ id: 'advertisements.subscription.brand',
126
+ defaultMessage: 'edX Plus',
127
+ description: 'Subscription product name shown above the pop-up title'
128
+ },
129
+ modalTitleFreeTrial: {
130
+ id: 'advertisements.subscription.modal.title.free-trial',
131
+ defaultMessage: 'Subscribe to start your free trial',
132
+ description: 'Pop-up title when the learner is eligible for a free trial'
133
+ },
134
+ modalTitleLaunch: {
135
+ id: 'advertisements.subscription.modal.title.launch',
136
+ defaultMessage: 'Subscribe and upgrade this course',
137
+ description: 'Pop-up title when there is no free trial to offer'
138
+ },
139
+ modalSubtitle: {
140
+ id: 'advertisements.subscription.modal.subtitle',
141
+ defaultMessage: 'Give your career a boost with flexible courses and new skills in your field.',
142
+ description: 'Pop-up subtitle under the title'
143
+ },
144
+ benefitCertificatesTitle: {
145
+ id: 'advertisements.subscription.modal.benefit.certificates.title',
146
+ defaultMessage: 'Earn multiple certificates',
147
+ description: 'Benefit title: unlimited certificates'
148
+ },
149
+ benefitCertificatesBody: {
150
+ id: 'advertisements.subscription.modal.benefit.certificates.body',
151
+ defaultMessage: 'There’s no limit to the certificates you can earn and add to your resume.',
152
+ description: 'Benefit body: unlimited certificates'
153
+ },
154
+ benefitChangeCourseTitle: {
155
+ id: 'advertisements.subscription.modal.benefit.change-course.title',
156
+ defaultMessage: 'Change your course at any time',
157
+ description: 'Benefit title: switch courses'
158
+ },
159
+ benefitChangeCourseBody: {
160
+ id: 'advertisements.subscription.modal.benefit.change-course.body',
161
+ defaultMessage: 'This subscription offers unlimited flexibility. Change topics or courses anytime.',
162
+ description: 'Benefit body: switch courses'
163
+ },
164
+ benefitTrialTitle: {
165
+ id: 'advertisements.subscription.modal.benefit.trial.title',
166
+ defaultMessage: 'Get your free trial',
167
+ description: 'Benefit title: free trial'
168
+ },
169
+ benefitTrialBody: {
170
+ id: 'advertisements.subscription.modal.benefit.trial.body',
171
+ defaultMessage: 'Try it for free to see if a subscription is right for you.',
172
+ description: 'Benefit body: free trial'
173
+ },
174
+ earnCertificateFor: {
175
+ id: 'advertisements.subscription.modal.earn-certificate-for',
176
+ defaultMessage: 'Earn certificate for {price}',
177
+ description: 'Pop-up button for one-time purchase. {price} is the course price.'
178
+ },
179
+ continueToCheckout: {
180
+ id: 'advertisements.subscription.modal.continue-to-checkout',
181
+ defaultMessage: 'Continue to checkout',
182
+ description: 'Pop-up button that goes to subscription checkout'
183
+ },
184
+ cancelAnytime: {
185
+ id: 'advertisements.subscription.modal.cancel-anytime',
186
+ defaultMessage: 'Cancel anytime',
187
+ description: 'Small note under the checkout button in the free trial pop-up'
188
+ },
189
+ comparisonTitle: {
190
+ id: 'advertisements.subscription.comparison.title',
191
+ defaultMessage: 'Try our new subscription or upgrade to a certificate',
192
+ description: 'Title of the Subscribe vs Buy comparison pop-up'
193
+ },
194
+ comparisonSubtitle: {
195
+ id: 'advertisements.subscription.comparison.subtitle',
196
+ defaultMessage: 'See what other learning paths have to offer to learn if upgrading is right for you.',
197
+ description: 'Subtitle of the comparison pop-up'
198
+ },
199
+ buyCourseColumn: {
200
+ id: 'advertisements.subscription.comparison.buy-course-column',
201
+ defaultMessage: 'Buy course',
202
+ description: 'Column header for the one-time purchase option in the comparison pop-up'
203
+ },
204
+ rowPrice: {
205
+ id: 'advertisements.subscription.comparison.row.price',
206
+ defaultMessage: 'Price',
207
+ description: 'Comparison row header: price'
208
+ },
209
+ oneTimePurchase: {
210
+ id: 'advertisements.subscription.comparison.one-time-purchase',
211
+ defaultMessage: 'One-time purchase',
212
+ description: 'Small print under the course price'
213
+ },
214
+ rowEarnCertificates: {
215
+ id: 'advertisements.subscription.comparison.row.earn-certificates',
216
+ defaultMessage: 'Earn certificates',
217
+ description: 'Comparison row header: certificates'
218
+ },
219
+ certificatesUnlimited: {
220
+ id: 'advertisements.subscription.comparison.certificates-unlimited',
221
+ defaultMessage: 'Unlimited',
222
+ description: 'Certificates cell for the subscription column'
223
+ },
224
+ certificatesOne: {
225
+ id: 'advertisements.subscription.comparison.certificates-one',
226
+ defaultMessage: '1 certificate',
227
+ description: 'Certificates cell for the one-time purchase column'
228
+ },
229
+ startFreeTrial: {
230
+ id: 'advertisements.subscription.comparison.start-free-trial',
231
+ defaultMessage: 'Start free trial',
232
+ description: 'Subscribe button when a free trial is available'
233
+ },
234
+ buyFor: {
235
+ id: 'advertisements.subscription.comparison.buy-for',
236
+ defaultMessage: 'Buy for {price}',
237
+ description: 'Purchase button in the comparison pop-up. {price} is the course price.'
238
+ },
239
+ previousPlan: {
240
+ id: 'advertisements.subscription.comparison.previous-plan',
241
+ defaultMessage: 'Previous option',
242
+ description: 'Screen reader label for the arrow that shows the previous column on small screens'
243
+ },
244
+ nextPlan: {
245
+ id: 'advertisements.subscription.comparison.next-plan',
246
+ defaultMessage: 'Next option',
247
+ description: 'Screen reader label for the arrow that shows the next column on small screens'
248
+ },
249
+ showPlan: {
250
+ id: 'advertisements.subscription.comparison.show-plan',
251
+ defaultMessage: 'Show {plan}',
252
+ description: 'Screen reader label for the dot that shows one column on small screens. {plan} is the column name.'
253
+ },
254
+ notIncluded: {
255
+ id: 'advertisements.subscription.not-included',
256
+ defaultMessage: 'This course is not included in your subscription.',
257
+ description: 'Note shown to subscribers on a course that is outside the subscription catalog'
258
+ }
259
+ });
260
+ var _default = exports.default = messages;
261
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","subscribe","id","defaultMessage","description","purchase","purchaseNoPrice","upgradeNow","upgrading","upgradePending","upgradeNotActive","reactivateSubscription","upgradeFailed","cardHeader","benefitsHeader","featureColumn","buyColumn","subscribeColumn","pricePerInterval","featureFreeTrial","featureChangeCourses","featureCertificates","featureCertificatesLink","featureGradedAssignments","featureUnlimitedAccess","includedAlt","notIncludedAlt","brand","modalTitleFreeTrial","modalTitleLaunch","modalSubtitle","benefitCertificatesTitle","benefitCertificatesBody","benefitChangeCourseTitle","benefitChangeCourseBody","benefitTrialTitle","benefitTrialBody","earnCertificateFor","continueToCheckout","cancelAnytime","comparisonTitle","comparisonSubtitle","buyCourseColumn","rowPrice","oneTimePurchase","rowEarnCertificates","certificatesUnlimited","certificatesOne","startFreeTrial","buyFor","previousPlan","nextPlan","showPlan","notIncluded","_default","exports","default"],"sources":["../../src/subscription-upsell/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n subscribe: {\n id: 'advertisements.subscription.subscribe',\n defaultMessage: 'Subscribe',\n description: 'Button that sends the learner to subscription checkout',\n },\n purchase: {\n id: 'advertisements.subscription.purchase',\n defaultMessage: 'Buy {price}',\n description: 'Button that sends the learner to one-time purchase checkout for this course. {price} is the formatted course price, for example $49.',\n },\n purchaseNoPrice: {\n id: 'advertisements.subscription.purchase-no-price',\n defaultMessage: 'Buy',\n description: 'Purchase button label when the course price is not known',\n },\n upgradeNow: {\n id: 'advertisements.subscription.upgrade-now',\n defaultMessage: 'Upgrade now',\n description: 'Button for a subscriber to unlock this course under their subscription',\n },\n upgrading: {\n id: 'advertisements.subscription.upgrading',\n defaultMessage: 'Upgrading…',\n description: 'Button label while the upgrade request is in progress',\n },\n upgradePending: {\n id: 'advertisements.subscription.upgrade-pending',\n defaultMessage: 'Your upgrade is being processed. This can take a moment.',\n description: 'Shown after the server accepted the upgrade but has not finished applying it',\n },\n upgradeNotActive: {\n id: 'advertisements.subscription.upgrade-not-active',\n defaultMessage: 'Your subscription is not active, so this course could not be upgraded.',\n description: 'Shown when the upgrade failed because the subscription is not active',\n },\n reactivateSubscription: {\n id: 'advertisements.subscription.reactivate',\n defaultMessage: 'Reactivate your subscription',\n description: 'Link to subscription checkout shown when the subscription is not active',\n },\n upgradeFailed: {\n id: 'advertisements.subscription.upgrade-failed',\n defaultMessage: 'We could not upgrade this course. Please try again.',\n description: 'Shown when the upgrade request failed for an unexpected reason',\n },\n cardHeader: {\n id: 'advertisements.subscription.card.header',\n defaultMessage: 'Make the most out of your learning',\n description: 'Header of the subscription upgrade card in the course sidebar',\n },\n benefitsHeader: {\n id: 'advertisements.subscription.card.benefits-header',\n defaultMessage: 'Upgrading can have huge benefits',\n description: 'Header above the Buy vs Subscribe comparison table',\n },\n featureColumn: {\n id: 'advertisements.subscription.card.feature-column',\n defaultMessage: 'Feature',\n description: 'Screen-reader-only header for the feature column of the comparison table',\n },\n buyColumn: {\n id: 'advertisements.subscription.card.buy-column',\n defaultMessage: 'Buy',\n description: 'Column header for the one-time purchase option',\n },\n subscribeColumn: {\n id: 'advertisements.subscription.card.subscribe-column',\n defaultMessage: 'Subscribe',\n description: 'Column header for the subscription option',\n },\n pricePerInterval: {\n id: 'advertisements.subscription.card.price-per-interval',\n defaultMessage: '{price}/{interval, select, month {month} year {year} other {{interval}}}',\n description: 'Subscription price with its billing interval, for example $59/month. interval is month or year.',\n },\n featureFreeTrial: {\n id: 'advertisements.subscription.card.feature.free-trial',\n defaultMessage: 'Free trial',\n description: 'Comparison row: a free trial is available',\n },\n featureChangeCourses: {\n id: 'advertisements.subscription.card.feature.change-courses',\n defaultMessage: 'Change courses for free',\n description: 'Comparison row: switch to other courses at no extra cost',\n },\n featureCertificates: {\n id: 'advertisements.subscription.card.feature.certificates',\n defaultMessage: 'Earn {certificateLink}',\n description: 'Comparison row: earn verified certificates. {certificateLink} is a link reading \"verified certificates\".',\n },\n featureCertificatesLink: {\n id: 'advertisements.subscription.card.feature.certificates-link',\n defaultMessage: 'verified certificates',\n description: 'Link text inside the earn certificates row',\n },\n featureGradedAssignments: {\n id: 'advertisements.subscription.card.feature.graded-assignments',\n defaultMessage: 'Complete graded assignments',\n description: 'Comparison row: access to graded assignments',\n },\n featureUnlimitedAccess: {\n id: 'advertisements.subscription.card.feature.unlimited-access',\n defaultMessage: 'Unlimited access to course materials',\n description: 'Comparison row: no access expiration',\n },\n includedAlt: {\n id: 'advertisements.subscription.card.included',\n defaultMessage: 'Included',\n description: 'Alt text for the check icon in the comparison table',\n },\n notIncludedAlt: {\n id: 'advertisements.subscription.card.not-included',\n defaultMessage: 'Not included',\n description: 'Alt text for the cross icon in the comparison table',\n },\n brand: {\n id: 'advertisements.subscription.brand',\n defaultMessage: 'edX Plus',\n description: 'Subscription product name shown above the pop-up title',\n },\n modalTitleFreeTrial: {\n id: 'advertisements.subscription.modal.title.free-trial',\n defaultMessage: 'Subscribe to start your free trial',\n description: 'Pop-up title when the learner is eligible for a free trial',\n },\n modalTitleLaunch: {\n id: 'advertisements.subscription.modal.title.launch',\n defaultMessage: 'Subscribe and upgrade this course',\n description: 'Pop-up title when there is no free trial to offer',\n },\n modalSubtitle: {\n id: 'advertisements.subscription.modal.subtitle',\n defaultMessage: 'Give your career a boost with flexible courses and new skills in your field.',\n description: 'Pop-up subtitle under the title',\n },\n benefitCertificatesTitle: {\n id: 'advertisements.subscription.modal.benefit.certificates.title',\n defaultMessage: 'Earn multiple certificates',\n description: 'Benefit title: unlimited certificates',\n },\n benefitCertificatesBody: {\n id: 'advertisements.subscription.modal.benefit.certificates.body',\n defaultMessage: 'There’s no limit to the certificates you can earn and add to your resume.',\n description: 'Benefit body: unlimited certificates',\n },\n benefitChangeCourseTitle: {\n id: 'advertisements.subscription.modal.benefit.change-course.title',\n defaultMessage: 'Change your course at any time',\n description: 'Benefit title: switch courses',\n },\n benefitChangeCourseBody: {\n id: 'advertisements.subscription.modal.benefit.change-course.body',\n defaultMessage: 'This subscription offers unlimited flexibility. Change topics or courses anytime.',\n description: 'Benefit body: switch courses',\n },\n benefitTrialTitle: {\n id: 'advertisements.subscription.modal.benefit.trial.title',\n defaultMessage: 'Get your free trial',\n description: 'Benefit title: free trial',\n },\n benefitTrialBody: {\n id: 'advertisements.subscription.modal.benefit.trial.body',\n defaultMessage: 'Try it for free to see if a subscription is right for you.',\n description: 'Benefit body: free trial',\n },\n earnCertificateFor: {\n id: 'advertisements.subscription.modal.earn-certificate-for',\n defaultMessage: 'Earn certificate for {price}',\n description: 'Pop-up button for one-time purchase. {price} is the course price.',\n },\n continueToCheckout: {\n id: 'advertisements.subscription.modal.continue-to-checkout',\n defaultMessage: 'Continue to checkout',\n description: 'Pop-up button that goes to subscription checkout',\n },\n cancelAnytime: {\n id: 'advertisements.subscription.modal.cancel-anytime',\n defaultMessage: 'Cancel anytime',\n description: 'Small note under the checkout button in the free trial pop-up',\n },\n comparisonTitle: {\n id: 'advertisements.subscription.comparison.title',\n defaultMessage: 'Try our new subscription or upgrade to a certificate',\n description: 'Title of the Subscribe vs Buy comparison pop-up',\n },\n comparisonSubtitle: {\n id: 'advertisements.subscription.comparison.subtitle',\n defaultMessage: 'See what other learning paths have to offer to learn if upgrading is right for you.',\n description: 'Subtitle of the comparison pop-up',\n },\n buyCourseColumn: {\n id: 'advertisements.subscription.comparison.buy-course-column',\n defaultMessage: 'Buy course',\n description: 'Column header for the one-time purchase option in the comparison pop-up',\n },\n rowPrice: {\n id: 'advertisements.subscription.comparison.row.price',\n defaultMessage: 'Price',\n description: 'Comparison row header: price',\n },\n oneTimePurchase: {\n id: 'advertisements.subscription.comparison.one-time-purchase',\n defaultMessage: 'One-time purchase',\n description: 'Small print under the course price',\n },\n rowEarnCertificates: {\n id: 'advertisements.subscription.comparison.row.earn-certificates',\n defaultMessage: 'Earn certificates',\n description: 'Comparison row header: certificates',\n },\n certificatesUnlimited: {\n id: 'advertisements.subscription.comparison.certificates-unlimited',\n defaultMessage: 'Unlimited',\n description: 'Certificates cell for the subscription column',\n },\n certificatesOne: {\n id: 'advertisements.subscription.comparison.certificates-one',\n defaultMessage: '1 certificate',\n description: 'Certificates cell for the one-time purchase column',\n },\n startFreeTrial: {\n id: 'advertisements.subscription.comparison.start-free-trial',\n defaultMessage: 'Start free trial',\n description: 'Subscribe button when a free trial is available',\n },\n buyFor: {\n id: 'advertisements.subscription.comparison.buy-for',\n defaultMessage: 'Buy for {price}',\n description: 'Purchase button in the comparison pop-up. {price} is the course price.',\n },\n previousPlan: {\n id: 'advertisements.subscription.comparison.previous-plan',\n defaultMessage: 'Previous option',\n description: 'Screen reader label for the arrow that shows the previous column on small screens',\n },\n nextPlan: {\n id: 'advertisements.subscription.comparison.next-plan',\n defaultMessage: 'Next option',\n description: 'Screen reader label for the arrow that shows the next column on small screens',\n },\n showPlan: {\n id: 'advertisements.subscription.comparison.show-plan',\n defaultMessage: 'Show {plan}',\n description: 'Screen reader label for the dot that shows one column on small screens. {plan} is the column name.',\n },\n notIncluded: {\n id: 'advertisements.subscription.not-included',\n defaultMessage: 'This course is not included in your subscription.',\n description: 'Note shown to subscribers on a course that is outside the subscription catalog',\n },\n});\n\nexport default messages;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formatOfferPrice = exports.formatCoursePrice = exports.default = exports.SUBSCRIPTION_STATUS = void 0;
7
+ var _i18n = require("@edx/frontend-platform/i18n");
8
+ var _modelStore = require("@src/generic/model-store");
9
+ var _messages = _interopRequireDefault(require("./messages"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* eslint import/no-unresolved: 0 */
16
+ // Viax statuses, as the LMS extra_offer block reports them.
17
+ const SUBSCRIPTION_STATUS = exports.SUBSCRIPTION_STATUS = {
18
+ NOT_SUBSCRIBED: 'NOT_SUBSCRIBED',
19
+ TRIAL_ACTIVE: 'TRIAL_ACTIVE',
20
+ ACTIVE: 'ACTIVE',
21
+ CANCEL_PENDING: 'CANCEL_PENDING',
22
+ CANCELLED: 'CANCELLED',
23
+ UNKNOWN: 'UNKNOWN'
24
+ };
25
+
26
+ /** "$39" from { amount: "39.00", currency: "USD" }, or null without a price. */
27
+ const formatOfferPrice = (intl, price) => {
28
+ if (price?.amount === undefined || price?.amount === null) {
29
+ return null;
30
+ }
31
+ const amount = Number(price.amount);
32
+ return intl.formatNumber(amount, _objectSpread({
33
+ style: 'currency',
34
+ currency: price.currency || 'USD'
35
+ }, Number.isInteger(amount) ? {
36
+ minimumFractionDigits: 0
37
+ } : {}));
38
+ };
39
+
40
+ /** "$149" from verifiedMode, as the existing upgrade button shows it, or null. */
41
+ exports.formatOfferPrice = formatOfferPrice;
42
+ const formatCoursePrice = verifiedMode => verifiedMode?.price === undefined || verifiedMode?.price === null ? null : `${verifiedMode.currencySymbol || ''}${verifiedMode.price}`;
43
+
44
+ /**
45
+ * The offer for a course from courseHomeMeta.extraOffer, with the flags and labels the components
46
+ * need, or null when the LMS sent no block (callers keep today's UI). The backend decides whether
47
+ * Subscribe is offered: subscribeUrl is null when not. Purchase uses the course's verifiedMode link.
48
+ */
49
+ exports.formatCoursePrice = formatCoursePrice;
50
+ const useSubscriptionOffer = courseId => {
51
+ const intl = (0, _i18n.useIntl)();
52
+ const {
53
+ extraOffer,
54
+ verifiedMode
55
+ } = (0, _modelStore.useModel)('courseHomeMeta', courseId) || {};
56
+ if (!extraOffer) {
57
+ return null;
58
+ }
59
+ const inCatalog = extraOffer.inCatalog !== false;
60
+ const isSubscriber = extraOffer.isSubscriber === true;
61
+ const purchaseUrl = verifiedMode?.upgradeUrl || null;
62
+ const price = formatOfferPrice(intl, extraOffer.price);
63
+ return _objectSpread(_objectSpread({}, extraOffer), {}, {
64
+ inCatalog,
65
+ isSubscriber,
66
+ purchaseUrl,
67
+ hasTrial: extraOffer.freeTrialEligible === true,
68
+ canPurchase: !!purchaseUrl,
69
+ canSubscribe: inCatalog && !isSubscriber && !!extraOffer.subscribeUrl,
70
+ canUpgradeInPlace: inCatalog && isSubscriber,
71
+ showNotIncluded: !inCatalog && isSubscriber,
72
+ coursePrice: formatCoursePrice(verifiedMode),
73
+ subscribePrice: price && intl.formatMessage(_messages.default.pricePerInterval, {
74
+ price,
75
+ interval: extraOffer.price.billingPeriod || 'month'
76
+ })
77
+ });
78
+ };
79
+ var _default = exports.default = useSubscriptionOffer;
80
+ //# sourceMappingURL=useSubscriptionOffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSubscriptionOffer.js","names":["_i18n","require","_modelStore","_messages","_interopRequireDefault","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","SUBSCRIPTION_STATUS","exports","NOT_SUBSCRIBED","TRIAL_ACTIVE","ACTIVE","CANCEL_PENDING","CANCELLED","UNKNOWN","formatOfferPrice","intl","price","amount","undefined","formatNumber","style","currency","isInteger","minimumFractionDigits","formatCoursePrice","verifiedMode","currencySymbol","useSubscriptionOffer","courseId","useIntl","extraOffer","useModel","inCatalog","isSubscriber","purchaseUrl","upgradeUrl","hasTrial","freeTrialEligible","canPurchase","canSubscribe","subscribeUrl","canUpgradeInPlace","showNotIncluded","coursePrice","subscribePrice","formatMessage","messages","pricePerInterval","interval","billingPeriod","_default"],"sources":["../../src/subscription-upsell/useSubscriptionOffer.js"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { useModel } from '@src/generic/model-store';\n\nimport messages from './messages';\n\n// Viax statuses, as the LMS extra_offer block reports them.\nexport const SUBSCRIPTION_STATUS = {\n NOT_SUBSCRIBED: 'NOT_SUBSCRIBED',\n TRIAL_ACTIVE: 'TRIAL_ACTIVE',\n ACTIVE: 'ACTIVE',\n CANCEL_PENDING: 'CANCEL_PENDING',\n CANCELLED: 'CANCELLED',\n UNKNOWN: 'UNKNOWN',\n};\n\n/** \"$39\" from { amount: \"39.00\", currency: \"USD\" }, or null without a price. */\nexport const formatOfferPrice = (intl, price) => {\n if (price?.amount === undefined || price?.amount === null) {\n return null;\n }\n const amount = Number(price.amount);\n return intl.formatNumber(amount, {\n style: 'currency',\n currency: price.currency || 'USD',\n // Whole amounts show as \"$39\"; otherwise the currency's own precision applies.\n ...(Number.isInteger(amount) ? { minimumFractionDigits: 0 } : {}),\n });\n};\n\n/** \"$149\" from verifiedMode, as the existing upgrade button shows it, or null. */\nexport const formatCoursePrice = (verifiedMode) => (\n verifiedMode?.price === undefined || verifiedMode?.price === null\n ? null\n : `${verifiedMode.currencySymbol || ''}${verifiedMode.price}`\n);\n\n/**\n * The offer for a course from courseHomeMeta.extraOffer, with the flags and labels the components\n * need, or null when the LMS sent no block (callers keep today's UI). The backend decides whether\n * Subscribe is offered: subscribeUrl is null when not. Purchase uses the course's verifiedMode link.\n */\nconst useSubscriptionOffer = (courseId) => {\n const intl = useIntl();\n const { extraOffer, verifiedMode } = useModel('courseHomeMeta', courseId) || {};\n if (!extraOffer) {\n return null;\n }\n const inCatalog = extraOffer.inCatalog !== false;\n const isSubscriber = extraOffer.isSubscriber === true;\n const purchaseUrl = verifiedMode?.upgradeUrl || null;\n const price = formatOfferPrice(intl, extraOffer.price);\n return {\n ...extraOffer,\n inCatalog,\n isSubscriber,\n purchaseUrl,\n hasTrial: extraOffer.freeTrialEligible === true,\n canPurchase: !!purchaseUrl,\n canSubscribe: inCatalog && !isSubscriber && !!extraOffer.subscribeUrl,\n canUpgradeInPlace: inCatalog && isSubscriber,\n showNotIncluded: !inCatalog && isSubscriber,\n coursePrice: formatCoursePrice(verifiedMode),\n subscribePrice: price && intl.formatMessage(messages.pricePerInterval, {\n price,\n interval: extraOffer.price.billingPeriod || 'month',\n }),\n };\n};\n\nexport default useSubscriptionOffer;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edx/frontend-plugin-advertisements",
3
- "version": "2.24.2",
3
+ "version": "2.25.0",
4
4
  "description": "Frontend plugin for edX in course advertisements",
5
5
  "main": "dist/index.js",
6
6
  "repository": {