richie-education 2.29.0 → 2.29.1-dev37

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 (122) hide show
  1. package/i18n/locales/ar-SA.json +209 -125
  2. package/i18n/locales/es-ES.json +210 -126
  3. package/i18n/locales/fa-IR.json +209 -125
  4. package/i18n/locales/fr-CA.json +209 -125
  5. package/i18n/locales/fr-FR.json +209 -125
  6. package/i18n/locales/ko-KR.json +209 -125
  7. package/i18n/locales/pt-PT.json +212 -128
  8. package/i18n/locales/ru-RU.json +209 -125
  9. package/i18n/locales/vi-VN.json +209 -125
  10. package/js/api/joanie.ts +42 -17
  11. package/js/api/lms/dummy.ts +1 -12
  12. package/js/components/ContractFrame/AbstractContractFrame.spec.tsx +16 -9
  13. package/js/components/ContractFrame/AbstractContractFrame.tsx +28 -23
  14. package/js/components/ContractFrame/LearnerContractFrame.tsx +2 -2
  15. package/js/components/ContractFrame/_styles.scss +6 -14
  16. package/js/components/ContractStatus/index.spec.tsx +1 -1
  17. package/js/components/ContractStatus/index.tsx +1 -1
  18. package/js/components/{SaleTunnel/CreditCardSelector → CreditCardSelector}/index.spec.tsx +15 -45
  19. package/js/components/{SaleTunnel/CreditCardSelector → CreditCardSelector}/index.tsx +19 -26
  20. package/js/components/DownloadContractButton/index.spec.tsx +1 -1
  21. package/js/components/OpenEdxFullNameForm/index.spec.tsx +229 -0
  22. package/js/components/OpenEdxFullNameForm/index.tsx +7 -7
  23. package/js/components/PaymentInterfaces/LyraPopIn.tsx +2 -2
  24. package/js/components/PaymentInterfaces/PayplugLightbox.tsx +1 -1
  25. package/js/components/PaymentInterfaces/__mocks__/index.tsx +1 -4
  26. package/js/components/PaymentInterfaces/types.ts +5 -2
  27. package/js/components/PaymentScheduleGrid/_styles.scss +13 -0
  28. package/js/components/PaymentScheduleGrid/index.tsx +50 -70
  29. package/js/components/PurchaseButton/index.spec.tsx +84 -37
  30. package/js/components/PurchaseButton/index.tsx +9 -27
  31. package/js/components/SaleTunnel/AddressSelector/index.spec.tsx +2 -2
  32. package/js/components/SaleTunnel/CertificateSaleTunnel/index.tsx +2 -2
  33. package/js/components/SaleTunnel/CredentialSaleTunnel/index.tsx +6 -10
  34. package/js/components/SaleTunnel/GenericSaleTunnel.tsx +105 -48
  35. package/js/components/SaleTunnel/SaleTunnelInformation/index.tsx +16 -20
  36. package/js/components/SaleTunnel/SaleTunnelSavePaymentMethod/_styles.scss +12 -0
  37. package/js/components/SaleTunnel/SaleTunnelSavePaymentMethod/index.tsx +157 -0
  38. package/js/components/SaleTunnel/SaleTunnelSuccess/index.tsx +15 -29
  39. package/js/components/SaleTunnel/Sponsors/SaleTunnelSponsors.scss +4 -5
  40. package/js/components/SaleTunnel/Sponsors/SaleTunnelSponsors.tsx +39 -11
  41. package/js/components/SaleTunnel/SubscriptionButton/_styles.scss +7 -0
  42. package/js/components/SaleTunnel/SubscriptionButton/index.tsx +202 -0
  43. package/js/components/SaleTunnel/_styles.scss +16 -5
  44. package/js/components/SaleTunnel/hooks/useTerms.tsx +0 -77
  45. package/js/components/SaleTunnel/index.credential.spec.tsx +14 -25
  46. package/js/components/SaleTunnel/index.full-process.spec.tsx +114 -48
  47. package/js/components/SaleTunnel/index.spec.tsx +333 -717
  48. package/js/components/SaleTunnel/index.tsx +2 -1
  49. package/js/components/SignContractButton/index.omniscientOrders.spec.tsx +16 -11
  50. package/js/components/SignContractButton/index.spec.tsx +16 -20
  51. package/js/components/SignContractButton/index.tsx +3 -1
  52. package/js/hooks/useCreditCards/index.spec.tsx +70 -6
  53. package/js/hooks/useCreditCards/index.ts +49 -11
  54. package/js/hooks/useOrders/index.spec.tsx +322 -0
  55. package/js/hooks/{useOrders.ts → useOrders/index.ts} +40 -14
  56. package/js/hooks/usePaymentSchedule.tsx +23 -0
  57. package/js/hooks/useProductOrder/index.spec.tsx +77 -60
  58. package/js/hooks/useProductOrder/index.tsx +2 -2
  59. package/js/hooks/useResources/useResourcesRoot.ts +4 -3
  60. package/js/index.tsx +2 -0
  61. package/js/pages/DashboardCreditCardsManagement/CreditCardBrandLogo.spec.tsx +1 -1
  62. package/js/pages/DashboardCreditCardsManagement/CreditCardBrandLogo.tsx +4 -2
  63. package/js/pages/DashboardOrderLayout/index.spec.tsx +10 -1
  64. package/js/pages/TeacherDashboardContractsLayout/components/ContractActionsBar/index.spec.tsx +8 -5
  65. package/js/pages/TeacherDashboardContractsLayout/components/SignOrganizationContractButton/index.spec.tsx +8 -9
  66. package/js/pages/TeacherDashboardCourseLearnersLayout/components/CourseLearnerDataGrid/index.spec.tsx +1 -1
  67. package/js/pages/TeacherDashboardCourseLearnersLayout/components/CourseLearnerDataGrid/index.tsx +1 -6
  68. package/js/settings/settings.prod.ts +0 -2
  69. package/js/settings/settings.test.ts +16 -2
  70. package/js/translations/ar-SA.json +1 -1
  71. package/js/translations/es-ES.json +1 -1
  72. package/js/translations/fa-IR.json +1 -1
  73. package/js/translations/fr-CA.json +1 -1
  74. package/js/translations/fr-FR.json +1 -1
  75. package/js/translations/ko-KR.json +1 -1
  76. package/js/translations/pt-PT.json +1 -1
  77. package/js/translations/ru-RU.json +1 -1
  78. package/js/translations/vi-VN.json +1 -1
  79. package/js/types/Joanie.ts +77 -31
  80. package/js/utils/OrderHelper/index.ts +53 -38
  81. package/js/utils/ProductHelper/index.spec.ts +322 -166
  82. package/js/utils/ProductHelper/index.ts +32 -0
  83. package/js/utils/test/factories/joanie.ts +65 -68
  84. package/js/widgets/Dashboard/components/DashboardItem/Contract/index.spec.tsx +2 -2
  85. package/js/widgets/Dashboard/components/DashboardItem/CourseEnrolling/index.tsx +8 -18
  86. package/js/widgets/Dashboard/components/DashboardItem/Enrollment/ProductCertificateFooter/index.spec.tsx +26 -32
  87. package/js/widgets/Dashboard/components/DashboardItem/Enrollment/ProductCertificateFooter/index.tsx +20 -23
  88. package/js/widgets/Dashboard/components/DashboardItem/Order/CertificateItem/index.tsx +51 -0
  89. package/js/widgets/Dashboard/components/DashboardItem/Order/ContractItem/index.tsx +52 -0
  90. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemNotResumable.spec.tsx +109 -0
  91. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemOrder.spec.tsx +219 -5
  92. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemOrder.tsx +111 -245
  93. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemOrderContract.spec.tsx +61 -8
  94. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemOrderContract.useUnionResource.cache.spec.tsx +17 -7
  95. package/js/widgets/Dashboard/components/DashboardItem/Order/DashboardItemSavePaymentMethod.spec.tsx +116 -0
  96. package/js/widgets/Dashboard/components/DashboardItem/Order/Installment/index.tsx +174 -0
  97. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderPaymentDetailsModal/_styles.scss +7 -0
  98. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderPaymentDetailsModal/index.tsx +127 -0
  99. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderPaymentRetryModal/index.tsx +210 -0
  100. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderStateLearnerMessage/index.spec.tsx +18 -71
  101. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderStateLearnerMessage/index.tsx +40 -25
  102. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderStateMessage/index.tsx +28 -22
  103. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderStateTeacherMessage/index.spec.tsx +18 -73
  104. package/js/widgets/Dashboard/components/DashboardItem/Order/OrderStateTeacherMessage/index.tsx +32 -16
  105. package/js/widgets/Dashboard/components/DashboardItem/Order/OrganizationBlock/index.tsx +150 -0
  106. package/js/widgets/Dashboard/components/DashboardOrderLoader/index.tsx +32 -14
  107. package/js/widgets/Dashboard/components/Signature/SignatureDummy.tsx +25 -3
  108. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/components/CourseProductCourseRuns/EnrollableCourseRunList.tsx +2 -6
  109. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/components/CourseProductCourseRuns/index.spec.tsx +7 -14
  110. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/components/CourseRunItem/index.spec.tsx +7 -5
  111. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/components/CourseRunItem/index.tsx +5 -7
  112. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/index.spec.tsx +242 -332
  113. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/index.stories.tsx +12 -13
  114. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/index.tsx +10 -21
  115. package/js/widgets/SyllabusCourseRunsList/components/CourseRunEnrollment/index.joanie.spec.tsx +2 -2
  116. package/package.json +3 -2
  117. package/scss/components/_index.scss +4 -2
  118. package/js/components/PaymentButton/_styles.scss +0 -27
  119. package/js/components/SaleTunnel/GenericPaymentButton/index.tsx +0 -340
  120. package/js/components/SaleTunnel/SaleTunnelNotValidated/index.tsx +0 -70
  121. package/js/widgets/SyllabusCourseRunsList/components/CourseProductItem/components/ProductSignatureHeader/index.tsx +0 -41
  122. /package/js/components/{SaleTunnel/CreditCardSelector → CreditCardSelector}/_styles.scss +0 -0
@@ -207,10 +207,6 @@
207
207
  "description": "Course run languages",
208
208
  "message": "Available in {languages}"
209
209
  },
210
- "components.CourseProductItem.contractSignActionLabel": {
211
- "description": "Label of \"sign contract\" action on the syllabus.",
212
- "message": "Sign your training contract"
213
- },
214
210
  "components.CourseProductItem.fromTo": {
215
211
  "description": "Course run date range",
216
212
  "message": "From {from} {to, select, undefined {} other {to {to}}}"
@@ -227,18 +223,10 @@
227
223
  "description": "Message displayed when no seats are available for the product",
228
224
  "message": "Sorry, no seats available for now"
229
225
  },
230
- "components.CourseProductItem.pending": {
231
- "description": "Message displayed when authenticated user has purchased the product but order is still pending",
232
- "message": "Pending"
233
- },
234
226
  "components.CourseProductItem.purchased": {
235
227
  "description": "Message displayed when authenticated user owned the product",
236
228
  "message": "Purchased"
237
229
  },
238
- "components.CourseProductItem.signatureNeeded": {
239
- "description": "Banner displayed when the contract is not signed on the syllabus",
240
- "message": "You need to sign your training contract before enrolling to course runs"
241
- },
242
230
  "components.CourseProductsList.end": {
243
231
  "description": "End label displayed in the header of course run dates section",
244
232
  "message": "End"
@@ -589,7 +577,7 @@
589
577
  },
590
578
  "components.DashboardItem.Order.ContractFrame.finishedDescription": {
591
579
  "description": "Message displayed inside the contract signin modal when the contract is signed.",
592
- "message": "You will receive an email once your contract will be fully signed. You can now enroll in your course runs!"
580
+ "message": "You will receive an email once your contract will be fully signed. You can now finalize your subscription."
593
581
  },
594
582
  "components.DashboardItem.Order.ContractFrame.loadingContract": {
595
583
  "description": "Message displayed inside the contract signin modal when loading the contract.",
@@ -603,74 +591,98 @@
603
591
  "description": "Message displayed inside the contract signin modal when polling the order.",
604
592
  "message": "We are waiting for the signature to be validated from our signature platform. It can take up to few minutes. Do not close this page."
605
593
  },
606
- "components.DashboardItem.Order.OrderStateMessage.statusCanceled": {
594
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusAssigned": {
595
+ "description": "Status shown on the dashboard order item when order is assigned.",
596
+ "message": "Pending"
597
+ },
598
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusCanceled": {
607
599
  "description": "Status shown on the dashboard order item when order is canceled",
608
600
  "message": "Canceled"
609
601
  },
610
- "components.DashboardItem.Order.OrderStateMessage.statusCompleted": {
611
- "description": "Status shown on the dashboard order item when order is validated with certificate",
612
- "message": "Completed"
602
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusCompleted": {
603
+ "description": "Status shown on the dashboard order item when order is completed",
604
+ "message": "On going"
613
605
  },
614
- "components.DashboardItem.Order.OrderStateMessage.statusDraft": {
606
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusDraft": {
615
607
  "description": "Status shown on the dashboard order item when order is draft.",
616
- "message": "Draft"
608
+ "message": "Pending"
617
609
  },
618
- "components.DashboardItem.Order.OrderStateMessage.statusOnGoing": {
619
- "description": "Status shown on the dashboard order item when order is validated with no certificate",
620
- "message": "On going"
610
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusFailedPayment": {
611
+ "description": "Status shown on the dashboard order item when order is in failed payment state",
612
+ "message": "Last direct debit has failed"
613
+ },
614
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusNoPayment": {
615
+ "description": "Status shown on the dashboard order item when order is in no payment state",
616
+ "message": "First direct debit has failed"
621
617
  },
622
- "components.DashboardItem.Order.OrderStateMessage.statusOther": {
623
- "description": "Status shown on the dashboard order item when order status is unknown",
624
- "message": "{state}"
618
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusPassed": {
619
+ "description": "Status shown on the dashboard order item when order is completed and has a certificate",
620
+ "message": "Successfully completed"
625
621
  },
626
- "components.DashboardItem.Order.OrderStateMessage.statusPending": {
622
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusPending": {
627
623
  "description": "Status shown on the dashboard order item when order is pending.",
628
- "message": "Pending"
624
+ "message": "Pending for the first direct debit"
629
625
  },
630
- "components.DashboardItem.Order.OrderStateMessage.statusSubmitted": {
631
- "description": "Status shown on the dashboard order item when order is submitted.",
632
- "message": "Submitted"
626
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusPendingPayment": {
627
+ "description": "Status shown on the dashboard order item when order is pending for payment",
628
+ "message": "On going"
633
629
  },
634
- "components.DashboardItem.Order.OrderStateMessage.statusWaitingCounterSignature": {
630
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusWaitingCounterSignature": {
635
631
  "description": "Status shown on the dashboard order item when order is validated with contract's organization signature missing.",
636
632
  "message": "On going"
637
633
  },
638
- "components.DashboardItem.Order.OrderStateMessage.statusWaitingSignature": {
634
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusWaitingPaymentMethod": {
635
+ "description": "Status shown on the dashboard order item when order is in to_save_payment_method state.",
636
+ "message": "Payment method is missing"
637
+ },
638
+ "components.DashboardItem.Order.OrderStateLearnerMessage.statusWaitingSignature": {
639
639
  "description": "Status shown on the dashboard order item when order is validated with contract's learner signature missing.",
640
640
  "message": "Signature required"
641
641
  },
642
+ "components.DashboardItem.Order.OrderStateTeacherMessage.statusAssigned": {
643
+ "description": "Status shown on the dashboard order item when order is assigned.",
644
+ "message": "Pending"
645
+ },
642
646
  "components.DashboardItem.Order.OrderStateTeacherMessage.statusCanceled": {
643
647
  "description": "Status shown on the dashboard order item when order is canceled",
644
648
  "message": "Canceled"
645
649
  },
646
650
  "components.DashboardItem.Order.OrderStateTeacherMessage.statusCompleted": {
647
- "description": "Status shown on the dashboard order item when order is validated with certificate",
648
- "message": "Certified"
651
+ "description": "Status shown on the dashboard order item when order is completed",
652
+ "message": "On going"
649
653
  },
650
654
  "components.DashboardItem.Order.OrderStateTeacherMessage.statusDraft": {
651
655
  "description": "Status shown on the dashboard order item when order is draft.",
652
656
  "message": "Pending"
653
657
  },
654
- "components.DashboardItem.Order.OrderStateTeacherMessage.statusOnGoing": {
655
- "description": "Status shown on the dashboard order item when order is validated with no certificate",
656
- "message": "Enrolled"
658
+ "components.DashboardItem.Order.OrderStateTeacherMessage.statusFailedPayment": {
659
+ "description": "Status shown on the dashboard order item when order is in failed payment state",
660
+ "message": "Last direct debit has failed"
661
+ },
662
+ "components.DashboardItem.Order.OrderStateTeacherMessage.statusNoPayment": {
663
+ "description": "Status shown on the dashboard order item when order is in no payment state",
664
+ "message": "First direct debit has failed"
657
665
  },
658
- "components.DashboardItem.Order.OrderStateTeacherMessage.statusOther": {
659
- "description": "Status shown on the dashboard order item when order status is unknown",
660
- "message": "{state}"
666
+ "components.DashboardItem.Order.OrderStateTeacherMessage.statusPassed": {
667
+ "description": "Status shown on the dashboard order item when order is completed with certificate",
668
+ "message": "Certified"
661
669
  },
662
670
  "components.DashboardItem.Order.OrderStateTeacherMessage.statusPending": {
663
671
  "description": "Status shown on the dashboard order item when order is pending.",
664
- "message": "Pending"
672
+ "message": "Pending for the first direct debit"
665
673
  },
666
- "components.DashboardItem.Order.OrderStateTeacherMessage.statusSubmitted": {
667
- "description": "Status shown on the dashboard order item when order is submitted.",
668
- "message": "Pending"
674
+ "components.DashboardItem.Order.OrderStateTeacherMessage.statusPendingPayment": {
675
+ "description": "Status shown on the dashboard order item when order is validated with no certificate",
676
+ "message": "On going"
669
677
  },
670
678
  "components.DashboardItem.Order.OrderStateTeacherMessage.statusWaitingCounterSignature": {
671
679
  "description": "Status shown on the dashboard order item when order is validated with contract's organization signature missing.",
672
680
  "message": "To be signed"
673
681
  },
682
+ "components.DashboardItem.Order.OrderStateTeacherMessage.statusWaitingPaymentMethod": {
683
+ "description": "Status shown on the dashboard order item when order is in to_save_payment_method state.",
684
+ "message": "Payment method is missing"
685
+ },
674
686
  "components.DashboardItem.Order.OrderStateTeacherMessage.statusWaitingSignature": {
675
687
  "description": "Status shown on the dashboard order item when order is validated with contract's learner signature missing.",
676
688
  "message": "Pending for learner's signature"
@@ -679,9 +691,9 @@
679
691
  "description": "Accessible label for the more button on the dashboard item",
680
692
  "message": "See additional options"
681
693
  },
682
- "components.DashboardItemCourseEnrollingRun.contractUnsigned": {
683
- "description": "Message displayed as disabled button title when a contract needs to be signed.",
684
- "message": "You have to sign the training contract before enrolling to your course."
694
+ "components.DashboardItemCourseEnrollingRun.cannotEnroll": {
695
+ "description": "Message displayed as disabled button title when the order state does not allow enrollment.",
696
+ "message": "You cannot enroll yet to this training."
685
697
  },
686
698
  "components.DashboardItemCourseEnrollingRun.courseRunsLoading": {
687
699
  "description": "Text displayed when course runs list is loading",
@@ -727,6 +739,50 @@
727
739
  "description": "Text shown when a course run is not active",
728
740
  "message": "Not enrolled"
729
741
  },
742
+ "components.DashboardItemOrder.OrderPaymentRetryModal.description": {
743
+ "description": "Message displayed when payment is needed",
744
+ "message": "The payment failed, please choose another payment method or add a new one during the payment"
745
+ },
746
+ "components.DashboardItemOrder.OrderPaymentRetryModal.errorAbortingPolling": {
747
+ "description": "Error message when submitting installment payment fails",
748
+ "message": "Your payment has succeeded but your order validation is taking too long, you can close this dialog and come back later."
749
+ },
750
+ "components.DashboardItemOrder.OrderPaymentRetryModal.errorFailedSubmitInstallmentPayment": {
751
+ "description": "Error message when submitting installment payment fails",
752
+ "message": "Failed to submit installment payment, please retry later."
753
+ },
754
+ "components.DashboardItemOrder.OrderPaymentRetryModal.paymentInProgress": {
755
+ "description": "Label for screen reader when a retry payment is in progress.",
756
+ "message": "Payment in progress"
757
+ },
758
+ "components.DashboardItemOrder.OrderPaymentRetryModal.submit": {
759
+ "description": "Message displayed when payment is needed",
760
+ "message": "Pay {amount}"
761
+ },
762
+ "components.DashboardItemOrder.OrderPaymentRetryModal.successDescription": {
763
+ "description": "Description of the payment success modal",
764
+ "message": "The payment was successful"
765
+ },
766
+ "components.DashboardItemOrder.OrderPaymentRetryModal.successTitle": {
767
+ "description": "Title of the payment success modal",
768
+ "message": "Payment successful"
769
+ },
770
+ "components.DashboardItemOrder.OrderPaymentRetryModal.title": {
771
+ "description": "Title of the payment retry modal",
772
+ "message": "Retry payment"
773
+ },
774
+ "components.DashboardItemOrder.PaymentModal.paymentMethodTitle": {
775
+ "description": "Title of the payment method section",
776
+ "message": "Payment method"
777
+ },
778
+ "components.DashboardItemOrder.PaymentModal.scheduleTitle": {
779
+ "description": "Title of the payment schedule",
780
+ "message": "Repayment schedule"
781
+ },
782
+ "components.DashboardItemOrder.PaymentModal.title": {
783
+ "description": "Title of the payment modal",
784
+ "message": "Payment details"
785
+ },
730
786
  "components.DashboardItemOrder.contactButton": {
731
787
  "description": "Button to contact the organization",
732
788
  "message": "Contact"
@@ -763,6 +819,26 @@
763
819
  "description": "Label for the organization phone contact",
764
820
  "message": "Phone"
765
821
  },
822
+ "components.DashboardItemOrder.paymentButton": {
823
+ "description": "Button label for the payment block",
824
+ "message": "Manage payment"
825
+ },
826
+ "components.DashboardItemOrder.paymentLabel": {
827
+ "description": "Label for the payment block",
828
+ "message": "You can see and manage all installments."
829
+ },
830
+ "components.DashboardItemOrder.paymentNeededButton": {
831
+ "description": "Button label for the payment needed message",
832
+ "message": "Pay {amount}"
833
+ },
834
+ "components.DashboardItemOrder.paymentNeededMessage": {
835
+ "description": "Message displayed when payment is needed",
836
+ "message": "The payment failed, please update your payment method"
837
+ },
838
+ "components.DashboardItemOrder.paymentTitle": {
839
+ "description": "Label for the payment block",
840
+ "message": "Payment"
841
+ },
766
842
  "components.DashboardItemOrder.syllabusLinkLabel": {
767
843
  "description": "Syllabus link label on order details",
768
844
  "message": "Go to syllabus"
@@ -1047,41 +1123,17 @@
1047
1123
  "description": "Error message shown when user aborts the payment.",
1048
1124
  "message": "You have aborted the payment."
1049
1125
  },
1050
- "components.PaymentButton.errorAborting": {
1051
- "description": "Error message shown when user asks to abort the payment.",
1052
- "message": "Aborting the payment..."
1053
- },
1054
- "components.PaymentButton.errorAddress": {
1055
- "description": "Error message shown when the user didn't select a billing address.",
1056
- "message": "You must have a billing address."
1057
- },
1058
1126
  "components.PaymentButton.errorDefault": {
1059
1127
  "description": "Error message shown when payment creation request failed.",
1060
1128
  "message": "An error occurred during payment. Please retry later."
1061
1129
  },
1062
- "components.PaymentButton.errorFullProduct": {
1063
- "description": "Error message shown when payment creation request failed because there is no remaining available seat for the product.",
1064
- "message": "There are no more places available for this product."
1065
- },
1066
- "components.PaymentButton.errorTerms": {
1067
- "description": "Error message shown when the user didn't check the terms checkbox.",
1068
- "message": "You must accept the terms."
1069
- },
1070
- "components.PaymentButton.pay": {
1071
- "description": "CTA label to proceed to the payment of the product",
1072
- "message": "Pay {price}"
1073
- },
1074
- "components.PaymentButton.payInOneClick": {
1075
- "description": "CTA label to proceed to the one click payment of the product",
1076
- "message": "Pay in one click {price}"
1077
- },
1078
- "components.PaymentButton.paymentInProgress": {
1079
- "description": "Label for screen reader when a payment is in progress.",
1080
- "message": "Payment in progress"
1130
+ "components.PaymentButton.tokenizingPayment": {
1131
+ "description": "Label for screen reader when a credit card is being tokenized.",
1132
+ "message": "Payment method definition in progress."
1081
1133
  },
1082
- "components.PaymentButton.termsMessage": {
1083
- "description": "Message next to the checkbox in order to accept the terms",
1084
- "message": "By checking this box, you accept the"
1134
+ "components.PaymentScheduleGrid.withdrawnAt": {
1135
+ "description": "Label displayed to explain when the installment will be withdrawn.",
1136
+ "message": "Withdrawn on {date}"
1085
1137
  },
1086
1138
  "components.ProductCertificateFooter.buyProductCertificateLabel": {
1087
1139
  "description": "Label on the enrollment row that propose to buy a product of type certificate",
@@ -1137,11 +1189,7 @@
1137
1189
  },
1138
1190
  "components.SaleTunnel.CreditCardSelector.creditCardEmptyInlineDescription": {
1139
1191
  "description": "Description for the empty credit card inline",
1140
- "message": "Use another credit card during payment"
1141
- },
1142
- "components.SaleTunnel.CreditCardSelector.description": {
1143
- "description": "Description for the credit card section",
1144
- "message": "Choose your payment method or add a new one during the payment."
1192
+ "message": "Use another credit card"
1145
1193
  },
1146
1194
  "components.SaleTunnel.CreditCardSelector.editCreditCardAriaLabel": {
1147
1195
  "description": "Aria label for the edit credit card button",
@@ -1171,10 +1219,6 @@
1171
1219
  "description": "Validate button for the credit card modal",
1172
1220
  "message": "Validate"
1173
1221
  },
1174
- "components.SaleTunnel.CreditCardSelector.title": {
1175
- "description": "Title for the credit card section",
1176
- "message": "Payment method"
1177
- },
1178
1222
  "components.SaleTunnel.Information.description": {
1179
1223
  "description": "Description of the information section",
1180
1224
  "message": "Those information will be used for billing"
@@ -1203,6 +1247,26 @@
1203
1247
  "description": "Label for the total amount",
1204
1248
  "message": "Total"
1205
1249
  },
1250
+ "components.SaleTunnel.Sponsors.SaleTunnelSponsors.blockTitle": {
1251
+ "description": "Title for the universities section in the sale tunnel",
1252
+ "message": "University"
1253
+ },
1254
+ "components.SaleTunnel.SubscriptionButton.subscribe": {
1255
+ "description": "Label of the button to subscribe to a product.",
1256
+ "message": "Subscribe"
1257
+ },
1258
+ "components.SaleTunnel.SubscriptionButton.walkthroughToSavePayment": {
1259
+ "description": "Message explaining the subscription process with only a payment method to set.",
1260
+ "message": "To enroll in the training, you will be invited to define a payment method."
1261
+ },
1262
+ "components.SaleTunnel.SubscriptionButton.walkthroughToSign": {
1263
+ "description": "Message explaining the subscription process with only a training agreement to sign.",
1264
+ "message": "To enroll in the training, you will be invited to sign the training agreement."
1265
+ },
1266
+ "components.SaleTunnel.SubscriptionButton.walkthroughToSignAndSavePayment": {
1267
+ "description": "Message explaining the subscription process with a training agreement to sign and a payment method to set.",
1268
+ "message": "To enroll in the training, you will first be invited to sign the training agreement and then to define a payment method."
1269
+ },
1206
1270
  "components.SaleTunnel.callToActionDescription": {
1207
1271
  "description": "Additional description announced by screen readers when focusing the call to action buying button",
1208
1272
  "message": "Purchase {product}"
@@ -1223,13 +1287,17 @@
1223
1287
  "description": "Label displayed below the product's CTA when there is no remaining available seat for the product",
1224
1288
  "message": "There are no more places available for this product."
1225
1289
  },
1226
- "components.SaleTunnelStepPayment.termsMessageLink": {
1227
- "description": "Clickable link included in the terms message",
1228
- "message": "General Terms of Sale"
1290
+ "components.SaleTunnelSavePaymentMethod.cta": {
1291
+ "description": "Label to the call to action to close sale tunnel",
1292
+ "message": "Define"
1293
+ },
1294
+ "components.SaleTunnelSavePaymentMethod.description": {
1295
+ "description": "Text to explain what the user has to do in the 'save payment method' step",
1296
+ "message": "This is the last step to validate your subscription, you must define a payment method. This one will be used to debit installments. You will not be charged during this step. Pick an existing payment method or add a new one."
1229
1297
  },
1230
- "components.SaleTunnelStepPayment.termsMessageLinkTitle": {
1231
- "description": "Title of clickable link included in the terms message",
1232
- "message": "Open a preview of the General Terms of Sale"
1298
+ "components.SaleTunnelSavePaymentMethod.title": {
1299
+ "description": "Content title",
1300
+ "message": "Define a payment method"
1233
1301
  },
1234
1302
  "components.SaleTunnelStepValidation.availableCourseRuns": {
1235
1303
  "description": "Course runs available text",
@@ -1249,43 +1317,19 @@
1249
1317
  },
1250
1318
  "components.SaleTunnelSuccess.congratulations": {
1251
1319
  "description": "Text displayed to thank user for his order",
1252
- "message": "Congratulations!"
1320
+ "message": "Subscription confirmed!"
1253
1321
  },
1254
1322
  "components.SaleTunnelSuccess.cta": {
1255
1323
  "description": "Label to the call to action to close sale tunnel",
1256
- "message": "Start this course now!"
1257
- },
1258
- "components.SaleTunnelSuccess.ctaSignature": {
1259
- "description": "Label to the call to action to close sale tunnel if there is a pending signature",
1260
- "message": "Sign the training contract"
1324
+ "message": "Close"
1261
1325
  },
1262
1326
  "components.SaleTunnelSuccess.successDetailMessage": {
1263
- "description": "Text to remind that order's invoice will be send by email soon",
1264
- "message": "You will receive your invoice by email in a few moments."
1265
- },
1266
- "components.SaleTunnelSuccess.successDetailSignatureMessage": {
1267
- "description": "Text to remind that order needs to be signed",
1268
- "message": "In order to enroll to course runs you first need to sign the training contract."
1327
+ "description": "Text to explain when the user will be able to start its training.",
1328
+ "message": "You will be able to start your training once the first installment will be paid."
1269
1329
  },
1270
1330
  "components.SaleTunnelSuccess.successMessage": {
1271
1331
  "description": "Message to confirm that order has been created",
1272
- "message": "Your order has been successfully created."
1273
- },
1274
- "components.SaleTunnelSuccessNotValidated.apology": {
1275
- "description": "Text displayed to thank user for his order",
1276
- "message": "Sorry, you'll have to wait a little longer!"
1277
- },
1278
- "components.SaleTunnelSuccessNotValidated.cta": {
1279
- "description": "Label to the call to action to close sale tunnel",
1280
- "message": "Close"
1281
- },
1282
- "components.SaleTunnelSuccessNotValidated.description": {
1283
- "description": "Text to remind that order's invoice will be send by email soon",
1284
- "message": "Your payment has succeeded but your order validation is taking too long, you can close this dialog and come back later. You will receive your invoice by email in a few moments."
1285
- },
1286
- "components.SaleTunnelSuccessNotValidated.title": {
1287
- "description": "Message to confirm that order has been created",
1288
- "message": "It takes too long to validate your order."
1332
+ "message": "Your order has been successfully registered."
1289
1333
  },
1290
1334
  "components.Search.errorMessage": {
1291
1335
  "description": "Error message for Search view when the request to load courses fails",
@@ -1391,6 +1435,22 @@
1391
1435
  "description": "Sub title of the dashboard sidebar",
1392
1436
  "message": "You are on your dashboard"
1393
1437
  },
1438
+ "components.SubscriptionButton.errorAddress": {
1439
+ "description": "Error message shown when the user didn't select a billing address.",
1440
+ "message": "You must have a billing address."
1441
+ },
1442
+ "components.SubscriptionButton.errorDefault": {
1443
+ "description": "Error message shown when order creation request failed.",
1444
+ "message": "An error occurred during order creation. Please retry later."
1445
+ },
1446
+ "components.SubscriptionButton.errorFullProduct": {
1447
+ "description": "Error message shown when order creation request failed because there is no remaining available seat for the product.",
1448
+ "message": "There are no more places available for this product."
1449
+ },
1450
+ "components.SubscriptionButton.orderCreationInProgress": {
1451
+ "description": "Label for screen reader when an order creation is in progress.",
1452
+ "message": "Order creation in progress"
1453
+ },
1394
1454
  "components.SyllabusAsideList.archived": {
1395
1455
  "description": "Message displayed on syllabus when there are archived course runs",
1396
1456
  "message": "Archived"
@@ -1443,6 +1503,22 @@
1443
1503
  "description": "Title of the languages section of an opened course run block",
1444
1504
  "message": "Languages"
1445
1505
  },
1506
+ "components.SyllabusCourseRunCompacted.course": {
1507
+ "description": "Title of the course dates section of an opened course run block",
1508
+ "message": "Course"
1509
+ },
1510
+ "components.SyllabusCourseRunCompacted.languages": {
1511
+ "description": "Title of the languages section of an opened course run block",
1512
+ "message": "Languages"
1513
+ },
1514
+ "components.SyllabusCourseRunCompacted.selfPaceCoursePeriod": {
1515
+ "description": "Course date of an opened and self paced course run block",
1516
+ "message": "Available until {endDate}"
1517
+ },
1518
+ "components.SyllabusCourseRunCompacted.selfPaceNoEndDate": {
1519
+ "description": "Self paced course run block with no end date",
1520
+ "message": "Available"
1521
+ },
1446
1522
  "components.SyllabusCourseRunsList.multipleOpenedCourseRuns": {
1447
1523
  "description": "Message displayed when there are multiple opened course runs on a syllabus",
1448
1524
  "message": "{count} course runs are currently open for this course"
@@ -1759,10 +1835,6 @@
1759
1835
  "description": "Error message shown to the user when course fetch request fails.",
1760
1836
  "message": "An error occurred while fetching course. Please retry later."
1761
1837
  },
1762
- "hooks.useCreditCards.errorCreate": {
1763
- "description": "Error message shown to the user when credit card creation request fails.",
1764
- "message": "An error occurred while creating the credit card. Please retry later."
1765
- },
1766
1838
  "hooks.useCreditCards.errorDelete": {
1767
1839
  "description": "Error message shown to the user when credit card deletion request fails.",
1768
1840
  "message": "An error occurred while deleting the credit card. Please retry later."
@@ -1775,6 +1847,10 @@
1775
1847
  "description": "Error message shown to the user when credit cards fetch request fails.",
1776
1848
  "message": "An error occurred while fetching credit cards. Please retry later."
1777
1849
  },
1850
+ "hooks.useCreditCards.errorTokenize": {
1851
+ "description": "Error message shown to the user when credit card tokenize request fails.",
1852
+ "message": "An error occurred while adding a credit card. Please retry later."
1853
+ },
1778
1854
  "hooks.useCreditCards.errorUpdate": {
1779
1855
  "description": "Error message shown to the user when credit card update request fails.",
1780
1856
  "message": "An error occurred while updating the credit card. Please retry later."
@@ -1827,6 +1903,10 @@
1827
1903
  "description": "Error message shown to the user when openEdx profile fullname post request fails.",
1828
1904
  "message": "An error occurred while updating your full name. Please retry later."
1829
1905
  },
1906
+ "hooks.useOrders.errorCancel": {
1907
+ "description": "Error message shown to the user when cancel mutation failed.",
1908
+ "message": "Cannot cancel the order."
1909
+ },
1830
1910
  "hooks.useOrders.errorGet": {
1831
1911
  "description": "Error message shown to the user when orders fetch request fails.",
1832
1912
  "message": "An error occurred while fetching orders. Please retry later."
@@ -1835,6 +1915,10 @@
1835
1915
  "description": "Error message shown to the user when no orders matches.",
1836
1916
  "message": "Cannot find the orders."
1837
1917
  },
1918
+ "hooks.useOrders.errorSetPaymentMethod": {
1919
+ "description": "Error message shown to the user when set payment method mutation failed.",
1920
+ "message": "Cannot set the order's payment method."
1921
+ },
1838
1922
  "hooks.useOrdersEnrollments.errorGet": {
1839
1923
  "description": "Error message shown to the user when orders or enrollments fetch request fails.",
1840
1924
  "message": "An error occurred while fetching orders and enrollments. Please retry later."