@edx/frontend-app-subscription-learner-dashboard 1.8.5 → 1.10.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 (35) hide show
  1. package/dist/assets/Unlimited.svg +23 -0
  2. package/dist/containers/ProgramDashboard/ProgramProgress/CompletedTabData/CompletedRecordBanner/index.d.ts +3 -0
  3. package/dist/containers/ProgramDashboard/ProgramProgress/CompletedTabData/CompletedRecordBanner/index.js +11 -0
  4. package/dist/containers/ProgramDashboard/ProgramProgress/CompletedTabData/CompletedRecordBanner/index.js.map +1 -0
  5. package/dist/containers/ProgramDashboard/ProgramProgress/CompletedTabData/CompletedRecordBanner/index.scss +3 -0
  6. package/dist/containers/ProgramDashboard/ProgramProgress/CompletedTabData/index.d.ts +2 -0
  7. package/dist/containers/ProgramDashboard/ProgramProgress/CompletedTabData/index.js +27 -0
  8. package/dist/containers/ProgramDashboard/ProgramProgress/CompletedTabData/index.js.map +1 -0
  9. package/dist/containers/ProgramDashboard/ProgramProgress/ProgramProgressTabs/index.js +2 -1
  10. package/dist/containers/ProgramDashboard/ProgramProgress/ProgramProgressTabs/index.js.map +1 -1
  11. package/dist/containers/ProgramDashboard/ProgramProgress/ProgressCard/index.js +9 -13
  12. package/dist/containers/ProgramDashboard/ProgramProgress/ProgressCard/index.js.map +1 -1
  13. package/dist/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/ProgressCardButton.d.ts +3 -0
  14. package/dist/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/ProgressCardButton.js +9 -0
  15. package/dist/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/ProgressCardButton.js.map +1 -0
  16. package/dist/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/index.d.ts +2 -1
  17. package/dist/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/index.js +9 -5
  18. package/dist/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/index.js.map +1 -1
  19. package/dist/containers/ProgramDashboard/ProgramProgress/RemainingTabData/index.js +13 -1
  20. package/dist/containers/ProgramDashboard/ProgramProgress/RemainingTabData/index.js.map +1 -1
  21. package/dist/containers/ProgramDashboard/ProgramProgress/messages.d.ts +37 -2
  22. package/dist/containers/ProgramDashboard/ProgramProgress/messages.js +43 -8
  23. package/dist/containers/ProgramDashboard/ProgramProgress/messages.js.map +1 -1
  24. package/dist/messages.d.ts +25 -0
  25. package/dist/messages.js +25 -0
  26. package/dist/messages.js.map +1 -1
  27. package/dist/utils/dateFormatter.d.ts +1 -1
  28. package/dist/utils/dateFormatter.js +2 -2
  29. package/dist/utils/dateFormatter.js.map +1 -1
  30. package/dist/widgets/LearnerDashboardHeader/app.js +31 -0
  31. package/dist/widgets/LearnerDashboardHeader/app.js.map +1 -1
  32. package/package.json +2 -2
  33. package/dist/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/ViewCourseDetailButton.d.ts +0 -2
  34. package/dist/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/ViewCourseDetailButton.js +0 -9
  35. package/dist/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/ViewCourseDetailButton.js.map +0 -1
@@ -0,0 +1,23 @@
1
+ <svg width="237" height="48" viewBox="0 0 237 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M206.489 36.7076C205.232 36.7076 204.128 36.3782 203.177 35.7195C202.234 35.0607 201.556 34.0611 201.142 32.7206C200.735 31.3801 200.701 29.691 201.038 27.6535C201.391 25.524 202.008 23.7928 202.89 22.46C203.779 21.1272 204.799 20.1505 205.949 19.5301C207.106 18.9096 208.268 18.5994 209.433 18.5994C210.307 18.5994 211.047 18.7526 211.652 19.059C212.266 19.3577 212.753 19.7599 213.113 20.2654C213.473 20.7633 213.718 21.311 213.849 21.9085H213.941L215.436 12.9463H221.784L217.874 36.4778H211.572L212.055 33.5823H211.917C211.572 34.1798 211.131 34.716 210.594 35.1909C210.065 35.6582 209.456 36.0297 208.766 36.3055C208.076 36.5736 207.317 36.7076 206.489 36.7076ZM209.64 31.8358C210.223 31.8358 210.752 31.6673 211.227 31.3303C211.702 30.9856 212.105 30.503 212.434 29.8825C212.764 29.2544 212.998 28.5114 213.136 27.6535C213.282 26.7802 213.293 26.0334 213.17 25.4129C213.048 24.7848 212.802 24.3061 212.434 23.9767C212.074 23.6396 211.603 23.4711 211.02 23.4711C210.437 23.4711 209.912 23.6396 209.444 23.9767C208.977 24.3061 208.582 24.7848 208.26 25.4129C207.946 26.0334 207.716 26.7802 207.57 27.6535C207.424 28.5267 207.405 29.2774 207.512 29.9055C207.627 30.526 207.865 31.0047 208.225 31.3418C208.586 31.6712 209.057 31.8358 209.64 31.8358Z" fill="#00262B"/>
3
+ <path d="M188.834 36.7998C186.948 36.7998 185.384 36.4397 184.142 35.7197C182.9 34.992 182.026 33.9502 181.52 32.5944C181.014 31.2309 180.922 29.5994 181.244 27.6997C181.551 25.8766 182.184 24.2833 183.142 22.9198C184.108 21.5564 185.323 20.4955 186.787 19.7371C188.259 18.9788 189.908 18.5996 191.732 18.5996C193.066 18.5996 194.235 18.8064 195.24 19.2201C196.252 19.6337 197.076 20.235 197.712 21.024C198.348 21.813 198.778 22.7666 199 23.885C199.23 24.9957 199.23 26.2519 199 27.6537L198.77 29.1244H182.992L183.544 25.6315H193.48C193.557 25.1259 193.507 24.6816 193.331 24.2986C193.162 23.908 192.89 23.6054 192.514 23.3909C192.146 23.1688 191.702 23.0577 191.18 23.0577C190.659 23.0577 190.168 23.1688 189.708 23.3909C189.256 23.6131 188.869 23.9233 188.547 24.3216C188.232 24.7199 188.022 25.1872 187.914 25.7234L187.224 29.4002C187.132 29.967 187.167 30.4726 187.328 30.9169C187.489 31.3612 187.769 31.7097 188.167 31.9625C188.566 32.2153 189.08 32.3416 189.708 32.3416C190.138 32.3416 190.544 32.2842 190.927 32.1693C191.318 32.0467 191.663 31.8706 191.962 31.6408C192.269 31.4033 192.514 31.116 192.698 30.779H198.494C198.08 32.0046 197.425 33.0693 196.528 33.9732C195.638 34.8694 194.542 35.5665 193.239 36.0644C191.943 36.5546 190.475 36.7998 188.834 36.7998Z" fill="#00262B"/>
4
+ <path d="M180.959 18.8299L180.177 23.4259H168.539L169.321 18.8299H180.959ZM172.265 14.6016H178.613L175.922 30.8025C175.884 31.0476 175.891 31.2544 175.945 31.4229C175.999 31.5838 176.106 31.7063 176.267 31.7906C176.436 31.8672 176.658 31.9055 176.934 31.9055C177.118 31.9055 177.344 31.8825 177.612 31.8366C177.881 31.7829 178.084 31.7446 178.222 31.7217L178.406 36.1798C178.084 36.2717 177.651 36.3751 177.106 36.49C176.57 36.6126 175.945 36.693 175.232 36.7313C173.745 36.8002 172.533 36.6432 171.598 36.2602C170.67 35.8772 170.026 35.2797 169.666 34.4678C169.313 33.6482 169.252 32.6255 169.482 31.3999L172.265 14.6016Z" fill="#00262B"/>
5
+ <path d="M157.9 36.4782L160.844 18.8296H167.192L164.248 36.4782H157.9ZM164.294 16.9912C163.436 16.9912 162.742 16.7077 162.213 16.1409C161.684 15.5664 161.488 14.8847 161.626 14.0957C161.764 13.2914 162.186 12.6096 162.891 12.0505C163.597 11.4836 164.379 11.2002 165.237 11.2002C166.104 11.2002 166.794 11.4836 167.307 12.0505C167.821 12.6096 168.012 13.2914 167.882 14.0957C167.76 14.8847 167.346 15.5664 166.64 16.1409C165.943 16.7077 165.161 16.9912 164.294 16.9912Z" fill="#00262B"/>
6
+ <path d="M127.492 36.478L130.436 18.8294H136.462L135.91 22.1845H136.094C136.638 21.0814 137.409 20.2082 138.405 19.5648C139.402 18.9213 140.518 18.5996 141.752 18.5996C142.986 18.5996 143.998 18.929 144.788 19.5877C145.577 20.2388 145.976 21.1044 145.984 22.1845H146.168C146.643 21.1044 147.421 20.2388 148.502 19.5877C149.583 18.929 150.783 18.5996 152.102 18.5996C153.781 18.5996 155.057 19.1435 155.931 20.2312C156.813 21.3189 157.1 22.7666 156.794 24.5744L154.816 36.478H148.468L150.216 26.183C150.323 25.4093 150.216 24.8042 149.894 24.3676C149.572 23.9233 149.081 23.7012 148.422 23.7012C147.77 23.7012 147.218 23.9233 146.766 24.3676C146.321 24.8042 146.045 25.4093 145.938 26.183L144.19 36.478H138.118L139.866 26.183C139.973 25.4093 139.866 24.8042 139.544 24.3676C139.222 23.9233 138.731 23.7012 138.072 23.7012C137.643 23.7012 137.252 23.8007 136.899 23.9999C136.554 24.1991 136.266 24.4863 136.036 24.8617C135.814 25.2293 135.665 25.6698 135.588 26.183L133.84 36.478H127.492Z" fill="#00262B"/>
7
+ <path d="M117.863 36.4782L120.807 18.8296H127.155L124.211 36.4782H117.863ZM124.257 16.9912C123.398 16.9912 122.705 16.7077 122.176 16.1409C121.647 15.5664 121.451 14.8847 121.589 14.0957C121.727 13.2914 122.149 12.6096 122.854 12.0505C123.559 11.4836 124.341 11.2002 125.2 11.2002C126.066 11.2002 126.756 11.4836 127.27 12.0505C127.784 12.6096 127.975 13.2914 127.845 14.0957C127.722 14.8847 127.308 15.5664 126.603 16.1409C125.905 16.7077 125.123 16.9912 124.257 16.9912Z" fill="#00262B"/>
8
+ <path d="M118.539 12.9463L114.629 36.4778H108.281L112.191 12.9463H118.539Z" fill="#00262B"/>
9
+ <path d="M95.3964 26.5507L93.7404 36.478H87.3926L90.3365 18.8294H96.3624L95.8104 22.1845H95.9944C96.554 21.0585 97.3705 20.1814 98.4438 19.5533C99.5248 18.9175 100.717 18.5996 102.02 18.5996C103.27 18.5996 104.309 18.883 105.137 19.4499C105.965 20.0167 106.551 20.798 106.896 21.7938C107.241 22.7896 107.302 23.931 107.08 25.2178L105.194 36.478H98.8463L100.502 26.5507C100.648 25.6774 100.541 24.9919 100.18 24.494C99.8276 23.9961 99.245 23.7471 98.4323 23.7471C97.9187 23.7471 97.4472 23.862 97.0179 24.0918C96.5962 24.314 96.2435 24.6357 95.9599 25.057C95.6839 25.4706 95.4961 25.9685 95.3964 26.5507Z" fill="#00262B"/>
10
+ <path d="M79.058 28.7565L80.7139 18.8291H87.0618L84.1179 36.4777H78.092L78.644 33.1227H78.46C77.9157 34.2487 77.103 35.1296 76.0221 35.7654C74.9487 36.3935 73.7528 36.7075 72.4341 36.7075C71.1998 36.7075 70.1687 36.4241 69.3407 35.8573C68.5127 35.2904 67.9262 34.5091 67.5812 33.5133C67.2363 32.5175 67.1673 31.3762 67.3742 30.0893L69.2602 18.8291H75.6081L73.9521 28.7565C73.8218 29.6297 73.9329 30.3153 74.2856 30.8132C74.6459 31.3111 75.2247 31.56 76.0221 31.56C76.551 31.56 77.0264 31.4489 77.448 31.2268C77.8773 30.997 78.23 30.6753 78.506 30.2616C78.7897 29.8403 78.9737 29.3386 79.058 28.7565Z" fill="#00262B"/>
11
+ <g clip-path="url(#clip0_246_68287)">
12
+ <path d="M39.8927 12.7025L41.0971 7.18555H5.79125L0 33.6998H29.5192L27.8949 40.8139H56.1682L62.4071 12.7025H39.8927Z" fill="#00262B"/>
13
+ <path d="M12.0276 30.3135C11.2292 30.3135 10.4725 30.1896 9.76182 29.9374C9.05118 29.6853 8.42821 29.3136 7.90216 28.827C7.37148 28.3359 6.95618 27.7342 6.647 27.0175C6.33783 26.3007 6.18555 25.4778 6.18555 24.5488C6.18555 23.279 6.37013 22.1199 6.73929 21.0758C7.10846 20.0316 7.62067 19.138 8.28055 18.3903C8.94043 17.6426 9.72952 17.0674 10.6478 16.656C11.5661 16.249 12.5767 16.041 13.6703 16.041C14.4087 16.041 15.1101 16.1649 15.77 16.4126C16.4344 16.6604 17.0113 17.0188 17.5096 17.4922C18.008 17.9655 18.4049 18.5451 18.6956 19.2397C18.9909 19.9299 19.134 20.7218 19.134 21.6199C19.134 21.7571 19.1293 21.9164 19.1201 22.0978C19.1109 22.2836 19.097 22.4694 19.0786 22.6596C19.0601 22.8499 19.0417 23.0401 19.0278 23.2215C19.0094 23.4029 18.9863 23.5622 18.9632 23.686H8.59895C8.58972 23.8055 8.58511 23.9205 8.58049 24.0311C8.57588 24.1417 8.57588 24.2568 8.57588 24.3762C8.57588 25.0841 8.68202 25.6858 8.89428 26.1857C9.10655 26.6857 9.38343 27.0927 9.72952 27.4068C10.071 27.7209 10.4586 27.951 10.8832 28.0926C11.3077 28.2341 11.7415 28.3049 12.1752 28.3049C13.1258 28.3049 13.8918 28.1456 14.4687 27.8315C15.0455 27.5174 15.4885 27.0883 15.7884 26.5529H18.2295C18.0772 27.0838 17.828 27.5749 17.4819 28.035C17.1359 28.4952 16.6975 28.8933 16.1668 29.2296C15.6361 29.5658 15.0224 29.8313 14.3256 30.0215C13.6334 30.2206 12.8628 30.3135 12.0276 30.3135ZM16.7113 21.9119C16.7206 21.8677 16.7252 21.7925 16.7298 21.673C16.7344 21.558 16.7344 21.443 16.7344 21.3324C16.7344 20.8811 16.6652 20.4519 16.5267 20.0449C16.3883 19.6423 16.1806 19.284 15.9038 18.9787C15.6269 18.6734 15.2854 18.4301 14.8747 18.2487C14.464 18.0717 13.9887 17.9788 13.4488 17.9788C12.8951 17.9788 12.3829 18.0717 11.903 18.262C11.4231 18.4478 10.9847 18.7177 10.5971 19.0627C10.2048 19.4078 9.86795 19.8193 9.58185 20.3015C9.29575 20.7838 9.06964 21.3191 8.90351 21.9075L16.7113 21.9119Z" fill="white"/>
14
+ <path d="M25.688 30.3164C24.9681 30.3164 24.2898 30.1881 23.6576 29.9271C23.0254 29.666 22.4716 29.2944 21.9963 28.8078C21.521 28.3211 21.1426 27.7327 20.8704 27.0425C20.5935 26.3523 20.4551 25.5825 20.4551 24.7286C20.4551 23.9013 20.5428 23.1094 20.7135 22.3573C20.8888 21.6051 21.1334 20.9017 21.4518 20.2602C21.7702 19.6143 22.1578 19.0347 22.6055 18.5126C23.0531 17.9906 23.5514 17.5482 24.1006 17.1809C24.6497 16.8137 25.2404 16.5306 25.8772 16.3359C26.514 16.1413 27.1785 16.0395 27.8706 16.0395C28.3875 16.0395 28.8766 16.1059 29.3427 16.243C29.8088 16.3802 30.2333 16.5704 30.6117 16.8137C30.9901 17.0571 31.3131 17.3491 31.5854 17.6942C31.8576 18.0392 32.056 18.4153 32.1806 18.8267H32.3929L34.1695 10.8057H36.5045L32.236 30.0687H30.021L30.4363 28.1884H30.2241C29.698 28.8431 29.0427 29.3608 28.249 29.7413C27.4553 30.1262 26.6016 30.3164 25.688 30.3164ZM26.4217 28.3344C27.1692 28.3344 27.8614 28.1662 28.4982 27.83C29.135 27.4938 29.6888 27.0336 30.1595 26.4497C30.6301 25.8657 30.9993 25.1799 31.267 24.3924C31.5346 23.6049 31.6684 22.751 31.6684 21.8396C31.6684 21.2512 31.5854 20.7247 31.4146 20.2513C31.2439 19.7824 31.0039 19.3842 30.6947 19.0568C30.381 18.7294 30.0072 18.4728 29.5596 18.2958C29.1166 18.1145 28.6136 18.026 28.0506 18.026C27.3123 18.026 26.6293 18.1852 25.9971 18.4994C25.365 18.8135 24.8204 19.2515 24.3544 19.8178C23.8929 20.3796 23.5284 21.0521 23.2607 21.8308C22.9931 22.6094 22.8593 23.4677 22.8593 24.3968C22.8593 24.9764 22.9469 25.5073 23.1223 25.994C23.2976 26.4806 23.5376 26.8965 23.8514 27.2416C24.1652 27.5867 24.5343 27.8565 24.9727 28.0468C25.4019 28.237 25.8864 28.3344 26.4217 28.3344Z" fill="white"/>
15
+ <path d="M65.4154 16.2014C65.1616 16.2014 64.9217 16.1572 64.7002 16.0643C64.4787 15.9714 64.2802 15.8475 64.1141 15.6838C63.9434 15.5201 63.8142 15.3343 63.7173 15.1219C63.6204 14.9095 63.5742 14.6795 63.5742 14.4362C63.5742 14.1928 63.6204 13.9628 63.7173 13.7504C63.8142 13.538 63.9434 13.3478 64.1141 13.1885C64.2849 13.0248 64.4787 12.901 64.7002 12.808C64.9217 12.7151 65.1616 12.6709 65.4154 12.6709C65.6692 12.6709 65.9092 12.7151 66.1307 12.808C66.3522 12.901 66.5506 13.0248 66.7167 13.1885C66.8875 13.3522 67.0167 13.538 67.1136 13.7504C67.2105 13.9628 67.2566 14.1928 67.2566 14.4362C67.2566 14.6795 67.2105 14.9095 67.1136 15.1219C67.0167 15.3343 66.8875 15.5245 66.7167 15.6838C66.546 15.8431 66.3522 15.9714 66.1307 16.0643C65.9092 16.1572 65.6692 16.2014 65.4154 16.2014ZM65.4154 15.874C65.6923 15.874 65.9461 15.8077 66.1722 15.6794C66.3983 15.5511 66.5783 15.3741 66.7167 15.1573C66.8505 14.9405 66.9198 14.6972 66.9198 14.4317C66.9198 14.1663 66.8505 13.9229 66.7167 13.7062C66.5829 13.4894 66.3983 13.3168 66.1722 13.1841C65.9461 13.0558 65.6923 12.9894 65.4154 12.9894C65.1385 12.9894 64.8847 13.0558 64.6586 13.1841C64.4325 13.3124 64.2526 13.4894 64.1141 13.7062C63.9803 13.9229 63.9111 14.1663 63.9111 14.4317C63.9111 14.6972 63.9803 14.9405 64.1141 15.1573C64.2479 15.3741 64.4325 15.5466 64.6586 15.6794C64.8847 15.8077 65.1385 15.874 65.4154 15.874ZM64.7878 15.2281V13.5956H65.6046C65.6923 13.5956 65.7754 13.6133 65.8538 13.6531C65.9369 13.6929 66.0015 13.7504 66.0522 13.8256C66.1076 13.9008 66.1307 13.9937 66.1307 14.1043C66.1307 14.2149 66.103 14.3123 66.0476 14.3919C65.9922 14.4715 65.923 14.5335 65.84 14.5777C65.7569 14.622 65.6692 14.6397 65.5815 14.6397H64.9494V14.4185H65.5031C65.5815 14.4185 65.6508 14.3919 65.7154 14.3388C65.7754 14.2857 65.8077 14.2061 65.8077 14.1088C65.8077 14.007 65.7754 13.9318 65.7154 13.8876C65.6554 13.8433 65.5862 13.8212 65.5123 13.8212H65.0832V15.2281H64.7878ZM65.78 14.4715L66.2045 15.2281H65.8723L65.4616 14.4715H65.78Z" fill="#00262B"/>
16
+ <path d="M57.4506 16.3271H52.2408L46.5649 23.0696H46.2834L43.2793 16.3271H38.0141L42.5272 26.1223L32.7812 37.1917H37.9172L44.1746 30.0776H44.5945L47.9769 37.1917H53.1452L48.1477 26.609L57.4506 16.3271Z" fill="white"/>
17
+ </g>
18
+ <defs>
19
+ <clipPath id="clip0_246_68287">
20
+ <rect width="67.2568" height="33.6284" fill="white" transform="translate(0 7.18555)"/>
21
+ </clipPath>
22
+ </defs>
23
+ </svg>
@@ -0,0 +1,3 @@
1
+ import { FC } from 'react';
2
+ import './index.scss';
3
+ export declare const CompletedRecordBanner: FC;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useIntl } from '@openedx/frontend-base';
3
+ import { Card, Button, Row, Col, Icon } from '@openedx/paragon';
4
+ import { OpenInNew } from '@openedx/paragon/icons';
5
+ import messages from '../../messages';
6
+ import './index.scss';
7
+ export const CompletedRecordBanner = () => {
8
+ const { formatMessage } = useIntl();
9
+ return (_jsx(Card, { className: "mb-3 mt-4 completed-banner-card", "data-testid": "completed-banner-card", children: _jsxs(Card.Section, { className: "pt-3 pb-3 px-4 border-top", children: [_jsx(Row, { children: _jsxs(Col, { xs: 12, children: [_jsx("h5", { className: "mb-1 font-weight-bold", children: formatMessage(messages.programProgressCompletedBannerTitle) }), _jsx("div", { className: "text-muted", children: formatMessage(messages.programProgressCompletedBannerDescription) })] }) }), _jsx(Row, { className: "mt-3", children: _jsxs(Col, { xs: 12, className: "d-flex justify-content-end", children: [_jsxs(Button, { variant: "outline-primary", className: "mr-2 d-flex align-items-center", children: [formatMessage(messages.programProgressCompletedBannerHelpCenterButton), _jsx(Icon, { src: OpenInNew, className: "ml-1" })] }), _jsx(Button, { variant: "primary", children: formatMessage(messages.programProgressCompletedBannerMyProgramRecordsButton) })] }) })] }) }));
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/containers/ProgramDashboard/ProgramProgress/CompletedTabData/CompletedRecordBanner/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,qBAAqB,GAAO,GAAG,EAAE;IAC5C,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAC,iCAAiC,iBAAa,uBAAuB,YACnF,MAAC,IAAI,CAAC,OAAO,IAAC,SAAS,EAAC,2BAA2B,aACjD,KAAC,GAAG,cACF,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,aACT,aAAI,SAAS,EAAC,uBAAuB,YAAE,aAAa,CAAC,QAAQ,CAAC,mCAAmC,CAAC,GAAM,EACxG,cAAK,SAAS,EAAC,YAAY,YACxB,aAAa,CAAC,QAAQ,CAAC,yCAAyC,CAAC,GAC9D,IACF,GACF,EAEN,KAAC,GAAG,IAAC,SAAS,EAAC,MAAM,YACnB,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,4BAA4B,aAKjD,MAAC,MAAM,IAAC,OAAO,EAAC,iBAAiB,EAAC,SAAS,EAAC,gCAAgC,aACzE,aAAa,CAAC,QAAQ,CAAC,8CAA8C,CAAC,EACvE,KAAC,IAAI,IAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAC,MAAM,GAAG,IAClC,EACT,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,YAAE,aAAa,CAAC,QAAQ,CAAC,oDAAoD,CAAC,GAAU,IAC7G,GACF,IACO,GACV,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FC } from 'react';\nimport { useIntl } from '@openedx/frontend-base';\nimport { Card, Button, Row, Col, Icon } from '@openedx/paragon';\nimport { OpenInNew } from '@openedx/paragon/icons';\n\nimport messages from '../../messages';\nimport './index.scss';\n\nexport const CompletedRecordBanner: FC = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Card className=\"mb-3 mt-4 completed-banner-card\" data-testid=\"completed-banner-card\">\n <Card.Section className=\"pt-3 pb-3 px-4 border-top\">\n <Row>\n <Col xs={12}>\n <h5 className=\"mb-1 font-weight-bold\">{formatMessage(messages.programProgressCompletedBannerTitle)}</h5>\n <div className=\"text-muted\">\n {formatMessage(messages.programProgressCompletedBannerDescription)}\n </div>\n </Col>\n </Row>\n\n <Row className=\"mt-3\">\n <Col xs={12} className=\"d-flex justify-content-end\">\n {/**\n * TODO: The buttons shown here do not do anything at the moment but are meant to link to the help center and the program records page respectively.\n * ACTION ITEM: Wire these buttons to the Help Center and Program Records URLs once they are available.\n */}\n <Button variant=\"outline-primary\" className=\"mr-2 d-flex align-items-center\">\n {formatMessage(messages.programProgressCompletedBannerHelpCenterButton)}\n <Icon src={OpenInNew} className=\"ml-1\" />\n </Button>\n <Button variant=\"primary\">{formatMessage(messages.programProgressCompletedBannerMyProgramRecordsButton)}</Button>\n </Col>\n </Row>\n </Card.Section>\n </Card>\n );\n};\n"]}
@@ -0,0 +1,3 @@
1
+ .completed-banner-card{
2
+ background-color: var(--pgn-color-light-200);
3
+ }
@@ -0,0 +1,2 @@
1
+ import { FC } from 'react';
2
+ export declare const CompletedTabData: FC;
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useProgressData } from '../../../../hooks';
3
+ import { useIntl } from '@openedx/frontend-base';
4
+ import { ProgressCard } from '../ProgressCard';
5
+ import messages from '../messages';
6
+ import { CompletedRecordBanner } from './CompletedRecordBanner';
7
+ export const CompletedTabData = () => {
8
+ const { programProgressData, isLoading } = useProgressData();
9
+ const { formatMessage } = useIntl();
10
+ const courseData = programProgressData === null || programProgressData === void 0 ? void 0 : programProgressData.courseData;
11
+ const completedData = (courseData === null || courseData === void 0 ? void 0 : courseData.completed) || [];
12
+ const buildProgressCard = () => (completedData.map((course) => {
13
+ const courseRuns = course.courseRuns || [];
14
+ const [{ pacingType = '', start = '', end = '', certificateUrl = '', courseUrl = '' } = {}] = Array.isArray(courseRuns) ? courseRuns : [];
15
+ const progressCardData = {
16
+ title: course.title,
17
+ start: start,
18
+ end: end || '',
19
+ pacingType: pacingType,
20
+ certificateUrl: certificateUrl || '',
21
+ courseUrl: courseUrl || '',
22
+ };
23
+ return (_jsx(ProgressCard, { progressCardData: progressCardData, isLoading: isLoading, tabType: formatMessage(messages.programProgressCompletedTab).toLowerCase() }, course.id));
24
+ }));
25
+ return (_jsxs("div", { children: [_jsx("h5", { children: formatMessage(messages.programProgressCompletedCourse) }), completedData.length > 0 ? (buildProgressCard()) : (_jsx("p", { children: formatMessage(messages.programProgressCompletedTabNoCourse) })), _jsx(CompletedRecordBanner, {})] }));
26
+ };
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/ProgramDashboard/ProgramProgress/CompletedTabData/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,CAAC,MAAM,gBAAgB,GAAO,GAAG,EAAE;IACvC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAC;IAC7D,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,UAAU,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,UAAU,CAAC;IACnD,MAAM,aAAa,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,KAAI,EAAE,CAAC;IAElD,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAC9B,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3C,MAAM,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1I,MAAM,gBAAgB,GAAG;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,GAAG,IAAI,EAAE;YACd,UAAU,EAAE,UAAU;YACtB,cAAc,EAAE,cAAc,IAAI,EAAE;YACpC,SAAS,EAAE,SAAS,IAAI,EAAE;SAC3B,CAAC;QAEF,OAAO,CACL,KAAC,YAAY,IAAiB,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,WAAW,EAAE,IAA/I,MAAM,CAAC,EAAE,CAA0I,CACvK,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,CACL,0BACE,uBAAK,aAAa,CAAC,QAAQ,CAAC,8BAA8B,CAAC,GAAM,EAChE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1B,iBAAiB,EAAE,CACpB,CAAC,CAAC,CAAC,CACF,sBAAI,aAAa,CAAC,QAAQ,CAAC,mCAAmC,CAAC,GAAK,CACrE,EAED,KAAC,qBAAqB,KAAG,IACrB,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FC } from 'react';\nimport { useProgressData } from '@src/hooks';\nimport { useIntl } from '@openedx/frontend-base';\n\nimport { ProgressCard } from '../ProgressCard';\nimport messages from '../messages';\nimport { CompletedRecordBanner } from './CompletedRecordBanner';\n\nexport const CompletedTabData: FC = () => {\n const { programProgressData, isLoading } = useProgressData();\n const { formatMessage } = useIntl();\n\n const courseData = programProgressData?.courseData;\n const completedData = courseData?.completed || [];\n\n const buildProgressCard = () => (\n completedData.map((course) => {\n const courseRuns = course.courseRuns || [];\n const [{ pacingType = '', start = '', end = '', certificateUrl = '', courseUrl = '' } = {}] = Array.isArray(courseRuns) ? courseRuns : [];\n\n const progressCardData = {\n title: course.title,\n start: start,\n end: end || '',\n pacingType: pacingType,\n certificateUrl: certificateUrl || '',\n courseUrl: courseUrl || '',\n };\n\n return (\n <ProgressCard key={course.id} progressCardData={progressCardData} isLoading={isLoading} tabType={formatMessage(messages.programProgressCompletedTab).toLowerCase()} />\n );\n })\n );\n\n return (\n <div>\n <h5>{formatMessage(messages.programProgressCompletedCourse)}</h5>\n {completedData.length > 0 ? (\n buildProgressCard()\n ) : (\n <p>{formatMessage(messages.programProgressCompletedTabNoCourse)}</p>\n )}\n\n <CompletedRecordBanner />\n </div>\n );\n};\n"]}
@@ -4,6 +4,7 @@ import { Tabs, Tab } from '@openedx/paragon';
4
4
  import { useIntl } from '@openedx/frontend-base';
5
5
  import messages from '../messages';
6
6
  import { RemainingTabData } from '../RemainingTabData';
7
+ import { CompletedTabData } from '../CompletedTabData';
7
8
  export const ProgramProgressTabs = ({ type, counts }) => {
8
9
  const { inProgress, remaining, completed } = counts;
9
10
  const { formatMessage } = useIntl();
@@ -24,7 +25,7 @@ export const ProgramProgressTabs = ({ type, counts }) => {
24
25
  key: 'completed',
25
26
  title: formatMessage(messages.programProgressCompletedTab),
26
27
  count: completed,
27
- panel: _jsx("span", { children: "Completed tab data will be available soon." }),
28
+ panel: _jsx(CompletedTabData, {}),
28
29
  },
29
30
  ...((type === null || type === void 0 ? void 0 : type.toLowerCase()) === 'micromasters'
30
31
  ? [{
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/ProgramDashboard/ProgramProgress/ProgramProgressTabs/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,CAAC,MAAM,mBAAmB,GAAiC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;IACpF,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACpD,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAA8B;QAC1C;YACE,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YAC3D,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,0EAAyD;SACjE;QACD;YACE,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC1D,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,KAAC,gBAAgB,KAAG;SAC5B;QACD;YACE,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC1D,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,wEAAuD;SAC/D;QACD,GAAG,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE,MAAK,cAAc;YACxC,CAAC,CAAC,CAAC;oBACC,GAAG,EAAE,UAAU;oBACf,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,0BAA0B,CAAC;oBACzD,KAAK,EAAE,uEAAsD;iBAC9D,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEpE,MAAM,eAAe,GAAG,CAAC,MAAqB,EAAE,EAAE;QAChD,IAAI,MAAM;YAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,IACH,EAAE,EAAC,uBAAuB,EAC1B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAC,MAAM,EAChB,YAAY,kBAEX,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACnB,KAAC,GAAG,IAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAgB,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,YAC7G,GAAG,CAAC,KAAK,IADiB,GAAG,CAAC,GAAG,CAE9B,CACP,CAAC,GACG,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FC, useState } from 'react';\nimport { Tabs, Tab } from '@openedx/paragon';\nimport { useIntl } from '@openedx/frontend-base';\n\nimport { ProgramProgressTabsProps, ProgramProgressTabItems } from '../../data/types';\nimport messages from '../messages';\nimport { RemainingTabData } from '../RemainingTabData';\n\nexport const ProgramProgressTabs: FC<ProgramProgressTabsProps> = ({ type, counts }) => {\n const { inProgress, remaining, completed } = counts;\n const { formatMessage } = useIntl();\n\n const tabsData: ProgramProgressTabItems[] = [\n {\n key: 'in-progress',\n title: formatMessage(messages.programProgressInProgressTab),\n count: inProgress,\n panel: <span>In progress tab data will be available soon.</span>,\n },\n {\n key: 'remaining',\n title: formatMessage(messages.programProgressRemainingTab),\n count: remaining,\n panel: <RemainingTabData />,\n },\n {\n key: 'completed',\n title: formatMessage(messages.programProgressCompletedTab),\n count: completed,\n panel: <span>Completed tab data will be available soon.</span>,\n },\n ...(type?.toLowerCase() === 'micromasters'\n ? [{\n key: 'pathways',\n title: formatMessage(messages.programProgressPathwaysTab),\n panel: <span>Pathways tab data will be available soon.</span>,\n }]\n : []),\n ];\n\n const [activeTab, setActiveTab] = useState<string>(tabsData[0].key);\n\n const handleTabSelect = (tabKey: string | null) => {\n if (tabKey) setActiveTab(tabKey);\n };\n\n return (\n <Tabs\n id=\"program-progress-tabs\"\n activeKey={activeTab}\n onSelect={handleTabSelect}\n className=\"mb-4\"\n mountOnEnter\n >\n {tabsData.map(tab => (\n <Tab eventKey={tab.key} key={tab.key} title={tab.count !== undefined ? `${tab.title} (${tab.count})` : tab.title}>\n {tab.panel}\n </Tab>\n ))}\n </Tabs>\n );\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/ProgramDashboard/ProgramProgress/ProgramProgressTabs/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,CAAC,MAAM,mBAAmB,GAAiC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;IACpF,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACpD,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAA8B;QAC1C;YACE,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YAC3D,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,0EAAyD;SACjE;QACD;YACE,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC1D,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,KAAC,gBAAgB,KAAG;SAC5B;QACD;YACE,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC1D,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,KAAC,gBAAgB,KAAG;SAC5B;QACD,GAAG,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE,MAAK,cAAc;YACxC,CAAC,CAAC,CAAC;oBACC,GAAG,EAAE,UAAU;oBACf,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,0BAA0B,CAAC;oBACzD,KAAK,EAAE,uEAAsD;iBAC9D,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEpE,MAAM,eAAe,GAAG,CAAC,MAAqB,EAAE,EAAE;QAChD,IAAI,MAAM;YAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,IACH,EAAE,EAAC,uBAAuB,EAC1B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAC,MAAM,EAChB,YAAY,kBAEX,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACnB,KAAC,GAAG,IAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAgB,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,YAC7G,GAAG,CAAC,KAAK,IADiB,GAAG,CAAC,GAAG,CAE9B,CACP,CAAC,GACG,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FC, useState } from 'react';\nimport { Tabs, Tab } from '@openedx/paragon';\nimport { useIntl } from '@openedx/frontend-base';\n\nimport { ProgramProgressTabsProps, ProgramProgressTabItems } from '../../data/types';\nimport messages from '../messages';\nimport { RemainingTabData } from '../RemainingTabData';\nimport { CompletedTabData } from '../CompletedTabData';\n\nexport const ProgramProgressTabs: FC<ProgramProgressTabsProps> = ({ type, counts }) => {\n const { inProgress, remaining, completed } = counts;\n const { formatMessage } = useIntl();\n\n const tabsData: ProgramProgressTabItems[] = [\n {\n key: 'in-progress',\n title: formatMessage(messages.programProgressInProgressTab),\n count: inProgress,\n panel: <span>In progress tab data will be available soon.</span>,\n },\n {\n key: 'remaining',\n title: formatMessage(messages.programProgressRemainingTab),\n count: remaining,\n panel: <RemainingTabData />,\n },\n {\n key: 'completed',\n title: formatMessage(messages.programProgressCompletedTab),\n count: completed,\n panel: <CompletedTabData />,\n },\n ...(type?.toLowerCase() === 'micromasters'\n ? [{\n key: 'pathways',\n title: formatMessage(messages.programProgressPathwaysTab),\n panel: <span>Pathways tab data will be available soon.</span>,\n }]\n : []),\n ];\n\n const [activeTab, setActiveTab] = useState<string>(tabsData[0].key);\n\n const handleTabSelect = (tabKey: string | null) => {\n if (tabKey) setActiveTab(tabKey);\n };\n\n return (\n <Tabs\n id=\"program-progress-tabs\"\n activeKey={activeTab}\n onSelect={handleTabSelect}\n className=\"mb-4\"\n mountOnEnter\n >\n {tabsData.map(tab => (\n <Tab eventKey={tab.key} key={tab.key} title={tab.count !== undefined ? `${tab.title} (${tab.count})` : tab.title}>\n {tab.panel}\n </Tab>\n ))}\n </Tabs>\n );\n};\n"]}
@@ -1,13 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Card, Button, Row, Col } from '@openedx/paragon';
2
+ import { Card, Row, Col } from '@openedx/paragon';
3
3
  import { useIntl } from '@openedx/frontend-base';
4
4
  import messages from '../messages';
5
5
  import './index.scss';
6
6
  import { ProgressCardActions } from '../ProgressCardActions';
7
+ import { dateFormatter } from '../../../../utils/dateFormatter';
8
+ import { ProgressCardButton } from '../ProgressCardActions/ProgressCardButton';
7
9
  export const ProgressCard = ({ progressCardData, isLoading, tabType }) => {
8
- const { formatMessage } = useIntl();
9
- const { title, certificateStatus, courseRuns } = progressCardData;
10
- const [{ pacingType = '', start = '' } = {}] = Array.isArray(courseRuns) ? courseRuns : [];
10
+ const { formatMessage, formatDate } = useIntl();
11
+ const { title, pacingType, start, end, certificateUrl, courseUrl } = progressCardData;
11
12
  /*
12
13
  - Formatting pacing type safely
13
14
  - replace underscores with spaces
@@ -24,18 +25,13 @@ export const ProgressCard = ({ progressCardData, isLoading, tabType }) => {
24
25
  }
25
26
  // add start date if exists
26
27
  if (start) {
27
- const startDate = new Date(start).toLocaleDateString('en-US', {
28
- month: 'short',
29
- day: 'numeric',
30
- year: 'numeric'
31
- });
28
+ const startDate = dateFormatter(formatDate, start, 'short');
32
29
  enrollmentInfo = enrollmentInfo
33
30
  ? `${enrollmentInfo} ${formatMessage(messages.programProgressCardStartText)} ${startDate}`
34
31
  : `${formatMessage(messages.programProgressCardStartText)} ${startDate}`;
35
32
  }
36
- return (_jsxs(Card, { className: "progress-card mb-3", "data-testid": "progress-card", isLoading: isLoading, children: [_jsx(Card.Section, { className: "pt-3 pb-2 px-4", children: _jsxs(Row, { children: [_jsxs(Col, { xs: 12, children: [_jsx("h4", { className: "mb-1 font-weight-bold", children: title }), _jsx("div", { className: "text-muted", children: enrollmentInfo })] }), _jsx(ProgressCardActions, {})] }) }), tabType !== 'remaining' && (_jsx(Card.Section, { className: "pt-3 pb-2 px-4", children: _jsxs(Row, { children: [_jsx(Col, { xs: 12, md: 9, children: _jsx("span", { children: formatMessage(messages.programProgressCardCertificate, {
37
- certificateStatus,
38
- bold: (chunks) => (_jsx("span", { className: "font-weight-bold", children: chunks })),
39
- }) }) }), _jsx(Col, { xs: 12, md: 3, className: "d-flex justify-content-md-end", children: _jsx(Button, { variant: "outline-brand", children: formatMessage(messages.programProgressCardUpgradeButton) }) })] }) }))] }));
33
+ return (_jsx(Card, { className: "progress-card mb-3", "data-testid": "progress-card", isLoading: isLoading, children: _jsxs(Card.Section, { className: "pt-3 pb-2 px-4", children: [_jsxs(Row, { className: "mb-2", children: [_jsxs(Col, { xs: 12, children: [_jsx("h4", { className: "mb-1 font-weight-bold", children: title }), _jsx("div", { className: "text-muted", children: enrollmentInfo })] }), _jsx(ProgressCardActions, { tabType: tabType, redirectUrl: courseUrl })] }), tabType === (formatMessage(messages.programProgressCompletedTab).toLowerCase()) && (_jsx(Row, { className: "pt-3 pb-2 px-2 border-top border-2 border-muted mb-2 align-items-center", children: _jsxs(Col, { xs: 12, className: "d-flex justify-content-between align-items-center px-0", children: [_jsx("span", { className: "text-start", children: end && (formatMessage(messages.programProgressCardCompletedCertificateText, {
34
+ certificateDate: (end ? dateFormatter(formatDate, end, 'short') : ''),
35
+ })) }), _jsx(ProgressCardButton, { variant: "brand", redirectUrl: certificateUrl || '', buttonText: formatMessage(messages.programProgressCardCompletedCertificateButton) })] }) }))] }) }));
40
36
  };
41
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/ProgramDashboard/ProgramProgress/ProgressCard/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FC } from 'react';\nimport { Card, Button, Row, Col } from '@openedx/paragon';\nimport { useIntl } from '@openedx/frontend-base';\n\nimport { ProgressCardProps } from '../../data/types';\nimport messages from '../messages';\nimport './index.scss';\nimport { ProgressCardActions } from '../ProgressCardActions';\n\nexport const ProgressCard: FC<ProgressCardProps> = ({ progressCardData, isLoading, tabType }) => {\n const { formatMessage } = useIntl();\n const { title, certificateStatus, courseRuns } = progressCardData;\n\n const [{ pacingType = '', start = '' } = {}] = Array.isArray(courseRuns) ? courseRuns : [];\n\n /*\n - Formatting pacing type safely\n - replace underscores with spaces\n - capitalize first letter of each word\n - example: 'self_paced' -> 'Self Paced'\n */\n const formattedPacing = pacingType\n ? pacingType.replace(/_/g, ' ').replace(/\\b\\w/g, c => c.toUpperCase())\n : '';\n\n // base string\n let enrollmentInfo = tabType !== 'remaining' ? formatMessage(messages.programProgressCardEnrollText) : '';\n\n if (formattedPacing) {\n enrollmentInfo += `${enrollmentInfo ? ' ' : ''}(${formattedPacing})`;\n }\n\n // add start date if exists\n if (start) {\n const startDate = new Date(start).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric'\n });\n\n enrollmentInfo = enrollmentInfo\n ? `${enrollmentInfo} ${formatMessage(messages.programProgressCardStartText)} ${startDate}`\n : `${formatMessage(messages.programProgressCardStartText)} ${startDate}`;\n }\n\n return (\n <Card className=\"progress-card mb-3\" data-testid=\"progress-card\" isLoading={isLoading}>\n <Card.Section className=\"pt-3 pb-2 px-4\">\n <Row>\n <Col xs={12}>\n <h4 className=\"mb-1 font-weight-bold\">{title}</h4>\n <div className=\"text-muted\">\n {enrollmentInfo}\n </div>\n </Col>\n <ProgressCardActions />\n </Row>\n </Card.Section>\n\n { tabType !== 'remaining' && (\n <Card.Section className=\"pt-3 pb-2 px-4\">\n <Row>\n <Col xs={12} md={9}>\n <span>\n {formatMessage(messages.programProgressCardCertificate, {\n certificateStatus,\n bold: (chunks: React.ReactNode) => (\n <span className=\"font-weight-bold\">{chunks}</span>\n ),\n })}\n </span>\n </Col>\n\n <Col xs={12} md={3} className=\"d-flex justify-content-md-end\">\n <Button variant=\"outline-brand\">\n {formatMessage(messages.programProgressCardUpgradeButton)}\n </Button>\n </Col>\n </Row>\n </Card.Section>\n )}\n </Card>\n );\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/ProgramDashboard/ProgramProgress/ProgressCard/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FC } from 'react';\nimport { Card, Row, Col } from '@openedx/paragon';\nimport { useIntl } from '@openedx/frontend-base';\n\nimport { ProgressCardProps } from '../../data/types';\nimport messages from '../messages';\nimport './index.scss';\nimport { ProgressCardActions } from '../ProgressCardActions';\nimport { dateFormatter } from '@src/utils/dateFormatter';\nimport { ProgressCardButton } from '../ProgressCardActions/ProgressCardButton';\n\nexport const ProgressCard: FC<ProgressCardProps> = ({ progressCardData, isLoading, tabType }) => {\n const { formatMessage, formatDate } = useIntl();\n\n const { title, pacingType, start, end, certificateUrl, courseUrl } = progressCardData;\n\n /*\n - Formatting pacing type safely\n - replace underscores with spaces\n - capitalize first letter of each word\n - example: 'self_paced' -> 'Self Paced'\n */\n const formattedPacing = pacingType\n ? pacingType.replace(/_/g, ' ').replace(/\\b\\w/g, c => c.toUpperCase())\n : '';\n\n // base string\n let enrollmentInfo = tabType !== 'remaining' ? formatMessage(messages.programProgressCardEnrollText) : '';\n\n if (formattedPacing) {\n enrollmentInfo += `${enrollmentInfo ? ' ' : ''}(${formattedPacing})`;\n }\n\n // add start date if exists\n if (start) {\n const startDate = dateFormatter(formatDate, start, 'short');\n\n enrollmentInfo = enrollmentInfo\n ? `${enrollmentInfo} ${formatMessage(messages.programProgressCardStartText)} ${startDate}`\n : `${formatMessage(messages.programProgressCardStartText)} ${startDate}`;\n }\n\n return (\n <Card className=\"progress-card mb-3\" data-testid=\"progress-card\" isLoading={isLoading}>\n <Card.Section className=\"pt-3 pb-2 px-4\">\n <Row className=\"mb-2\">\n <Col xs={12}>\n <h4 className=\"mb-1 font-weight-bold\">{title}</h4>\n <div className=\"text-muted\">\n {enrollmentInfo}\n </div>\n </Col>\n <ProgressCardActions tabType={tabType} redirectUrl={courseUrl} />\n </Row>\n\n { tabType === (formatMessage(messages.programProgressCompletedTab).toLowerCase()) && (\n <Row className=\"pt-3 pb-2 px-2 border-top border-2 border-muted mb-2 align-items-center\">\n <Col xs={12} className=\"d-flex justify-content-between align-items-center px-0\">\n <span className=\"text-start\">\n {end && (\n formatMessage(messages.programProgressCardCompletedCertificateText, {\n certificateDate: (end ? dateFormatter(formatDate, end, 'short') : ''),\n })\n )}\n </span>\n\n <ProgressCardButton variant=\"brand\" redirectUrl={certificateUrl || ''} buttonText={formatMessage(messages.programProgressCardCompletedCertificateButton)} />\n </Col>\n </Row>\n )}\n </Card.Section>\n </Card>\n );\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import { FC } from 'react';
2
+ import { ProgressCardButtonProps } from '../../data/types';
3
+ export declare const ProgressCardButton: FC<ProgressCardButtonProps>;
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Button } from '@openedx/paragon';
3
+ import { Link } from 'react-router-dom';
4
+ export const ProgressCardButton = ({ variant, redirectUrl, buttonText }) => {
5
+ return (redirectUrl
6
+ ? (_jsx(Button, { variant: variant, as: Link, to: redirectUrl, children: buttonText }))
7
+ : (_jsx(Button, { variant: variant, children: buttonText })));
8
+ };
9
+ //# sourceMappingURL=ProgressCardButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressCardButton.js","sourceRoot":"","sources":["../../../../../src/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/ProgressCardButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIxC,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE;IACtG,OAAO,CACL,WAAW;QACT,CAAC,CAAC,CACE,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,YAChD,UAAU,GACJ,CACV;QACH,CAAC,CAAC,CACE,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,YACrB,UAAU,GACJ,CACV,CACN,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FC } from 'react';\nimport { Button } from '@openedx/paragon';\nimport { Link } from 'react-router-dom';\n\nimport { ProgressCardButtonProps } from '../../data/types';\n\nexport const ProgressCardButton: FC<ProgressCardButtonProps> = ({ variant, redirectUrl, buttonText }) => {\n return (\n redirectUrl\n ? (\n <Button variant={variant} as={Link} to={redirectUrl}>\n {buttonText}\n </Button>\n )\n : (\n <Button variant={variant}>\n {buttonText}\n </Button>\n )\n );\n};\n"]}
@@ -1,2 +1,3 @@
1
1
  import { FC } from 'react';
2
- export declare const ProgressCardActions: FC;
2
+ import { ProgressCardActionsProps } from '../../data/types';
3
+ export declare const ProgressCardActions: FC<ProgressCardActionsProps>;
@@ -1,12 +1,16 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Col } from '@openedx/paragon';
3
+ import { useIntl } from '@openedx/frontend-base';
3
4
  import { useProgressData } from '../../../../hooks';
4
- import { ViewCourseDetailButton } from './ViewCourseDetailButton';
5
- export const ProgressCardActions = () => {
6
- var _a;
5
+ import { ProgressCardButton } from './ProgressCardButton';
6
+ import messages from '../messages';
7
+ export const ProgressCardActions = ({ tabType, redirectUrl }) => {
8
+ var _a, _b;
7
9
  const { programProgressData } = useProgressData();
10
+ const { formatMessage } = useIntl();
8
11
  const courseData = (programProgressData === null || programProgressData === void 0 ? void 0 : programProgressData.courseData) || {};
9
12
  const remainingCourseCount = ((_a = courseData === null || courseData === void 0 ? void 0 : courseData.notStarted) === null || _a === void 0 ? void 0 : _a.length) || 0;
10
- return (_jsx(Col, { xs: 12, className: "d-flex justify-content-md-end align-items-start mb-2", children: remainingCourseCount > 0 && _jsx(ViewCourseDetailButton, {}) }));
13
+ const completedCourseCount = ((_b = courseData === null || courseData === void 0 ? void 0 : courseData.completed) === null || _b === void 0 ? void 0 : _b.length) || 0;
14
+ return (_jsxs(Col, { xs: 12, className: "d-flex justify-content-md-end align-items-start mb-2", children: [tabType === formatMessage(messages.programProgressRemainingTab).toLowerCase() && remainingCourseCount > 0 && (_jsx(ProgressCardButton, { variant: "outline-primary", redirectUrl: redirectUrl || '', buttonText: formatMessage(messages.programProgressCardViewCourseDetailButton) })), tabType === formatMessage(messages.programProgressCompletedTab).toLowerCase() && completedCourseCount > 0 && (_jsx(ProgressCardButton, { variant: "primary", redirectUrl: redirectUrl || '', buttonText: formatMessage(messages.programProgressCardResumeCourseButton) }))] }));
11
15
  };
12
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAO,GAAG,EAAE;;IAC1C,MAAM,EAAE,mBAAmB,EAAE,GAAG,eAAe,EAAE,CAAC;IAElD,MAAM,UAAU,GAAG,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,UAAU,KAAI,EAAE,CAAC;IACzD,MAAM,oBAAoB,GAAG,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,0CAAE,MAAM,KAAI,CAAC,CAAC;IAEjE,OAAO,CACL,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,sDAAsD,YAK1E,oBAAoB,GAAG,CAAC,IAAI,KAAC,sBAAsB,KAAG,GACnD,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FC } from 'react';\nimport { Col } from '@openedx/paragon';\n\nimport { useProgressData } from '@src/hooks';\nimport { ViewCourseDetailButton } from './ViewCourseDetailButton';\n\nexport const ProgressCardActions: FC = () => {\n const { programProgressData } = useProgressData();\n\n const courseData = programProgressData?.courseData || {};\n const remainingCourseCount = courseData?.notStarted?.length || 0;\n\n return (\n <Col xs={12} className=\"d-flex justify-content-md-end align-items-start mb-2\">\n {/**\n * TODO: The button shown here does not do anything at the moment but is meant to link to the walled garden page.\n * ACTION ITEM: Add the correct link to the ViewCourseDetailButton component once the URL is available.\n */}\n {remainingCourseCount > 0 && <ViewCourseDetailButton /> }\n </Col>\n );\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,QAAQ,MAAM,aAAa,CAAC;AAEnC,MAAM,CAAC,MAAM,mBAAmB,GAAiC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;;IAC5F,MAAM,EAAE,mBAAmB,EAAE,GAAG,eAAe,EAAE,CAAC;IAClD,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,UAAU,GAAG,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,UAAU,KAAI,EAAE,CAAC;IACzD,MAAM,oBAAoB,GAAG,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,0CAAE,MAAM,KAAI,CAAC,CAAC;IACjE,MAAM,oBAAoB,GAAG,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,0CAAE,MAAM,KAAI,CAAC,CAAC;IAEhE,OAAO,CACL,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,sDAAsD,aAEzE,OAAO,KAAK,aAAa,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,WAAW,EAAE,IAAI,oBAAoB,GAAG,CAAC,IAAI,CAC7G,KAAC,kBAAkB,IAAC,OAAO,EAAC,iBAAiB,EAAC,WAAW,EAAE,WAAW,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,yCAAyC,CAAC,GAAI,CAChK,EAGC,OAAO,KAAK,aAAa,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,WAAW,EAAE,IAAI,oBAAoB,GAAG,CAAC,IAAI,CAC7G,KAAC,kBAAkB,IAAC,OAAO,EAAC,SAAS,EAAC,WAAW,EAAE,WAAW,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,qCAAqC,CAAC,GAAI,CACpJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FC } from 'react';\nimport { Col } from '@openedx/paragon';\nimport { useIntl } from '@openedx/frontend-base';\n\nimport { useProgressData } from '@src/hooks';\nimport { ProgressCardActionsProps } from '../../data/types';\nimport { ProgressCardButton } from './ProgressCardButton';\nimport messages from '../messages';\n\nexport const ProgressCardActions: FC<ProgressCardActionsProps> = ({ tabType, redirectUrl }) => {\n const { programProgressData } = useProgressData();\n const { formatMessage } = useIntl();\n\n const courseData = programProgressData?.courseData || {};\n const remainingCourseCount = courseData?.notStarted?.length || 0;\n const completedCourseCount = courseData?.completed?.length || 0;\n\n return (\n <Col xs={12} className=\"d-flex justify-content-md-end align-items-start mb-2\">\n {/** View course details button */}\n { tabType === formatMessage(messages.programProgressRemainingTab).toLowerCase() && remainingCourseCount > 0 && (\n <ProgressCardButton variant=\"outline-primary\" redirectUrl={redirectUrl || ''} buttonText={formatMessage(messages.programProgressCardViewCourseDetailButton)} />\n )}\n\n {/** Resume course button */}\n { tabType === formatMessage(messages.programProgressCompletedTab).toLowerCase() && completedCourseCount > 0 && (\n <ProgressCardButton variant=\"primary\" redirectUrl={redirectUrl || ''} buttonText={formatMessage(messages.programProgressCardResumeCourseButton)} />\n )}\n </Col>\n );\n};\n"]}
@@ -8,6 +8,18 @@ export const RemainingTabData = () => {
8
8
  const { formatMessage } = useIntl();
9
9
  const courseData = programProgressData === null || programProgressData === void 0 ? void 0 : programProgressData.courseData;
10
10
  const remainingData = (courseData === null || courseData === void 0 ? void 0 : courseData.notStarted) || [];
11
- return (_jsxs("div", { children: [_jsx("h5", { children: formatMessage(messages.programProgressRemainingCourse) }), remainingData.length > 0 ? (remainingData.map((course) => (_jsx(ProgressCard, { progressCardData: course, isLoading: isLoading, tabType: "remaining" }, course.id)))) : (_jsx("p", { children: formatMessage(messages.programProgressRemainingTabNoCourse) }))] }));
11
+ const buildProgressCard = () => (remainingData.map((course) => {
12
+ const courseRuns = course.courseRuns || [];
13
+ const [{ pacingType = '', start = '', end = '', courseUrl = '' } = {}] = Array.isArray(courseRuns) ? courseRuns : [];
14
+ const progressCardData = {
15
+ title: course.title,
16
+ start: start,
17
+ end: end || '',
18
+ pacingType: pacingType,
19
+ courseUrl: courseUrl || '',
20
+ };
21
+ return (_jsx(ProgressCard, { progressCardData: progressCardData, isLoading: isLoading, tabType: formatMessage(messages.programProgressRemainingTab).toLowerCase() }, course.id));
22
+ }));
23
+ return (_jsxs("div", { children: [_jsx("h5", { children: formatMessage(messages.programProgressRemainingCourse) }), remainingData.length > 0 ? (buildProgressCard()) : (_jsx("p", { children: formatMessage(messages.programProgressRemainingTabNoCourse) }))] }));
12
24
  };
13
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/ProgramDashboard/ProgramProgress/RemainingTabData/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,QAAQ,MAAM,aAAa,CAAC;AAEnC,MAAM,CAAC,MAAM,gBAAgB,GAAO,GAAG,EAAE;IACvC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAC;IAC7D,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,UAAU,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,UAAU,CAAC;IACnD,MAAM,aAAa,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,KAAI,EAAE,CAAC;IAEnD,OAAO,CACL,0BACE,uBAAK,aAAa,CAAC,QAAQ,CAAC,8BAA8B,CAAC,GAAM,EAChE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1B,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC5B,KAAC,YAAY,IAAiB,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,WAAW,IAA9E,MAAM,CAAC,EAAE,CAAwE,CACrG,CAAC,CACH,CAAC,CAAC,CAAC,CACF,sBAAI,aAAa,CAAC,QAAQ,CAAC,mCAAmC,CAAC,GAAK,CACrE,IACG,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FC } from 'react';\nimport { useProgressData } from '@src/hooks';\nimport { useIntl } from '@openedx/frontend-base';\n\nimport { ProgressCard } from '../ProgressCard';\nimport messages from '../messages';\n\nexport const RemainingTabData: FC = () => {\n const { programProgressData, isLoading } = useProgressData();\n const { formatMessage } = useIntl();\n\n const courseData = programProgressData?.courseData;\n const remainingData = courseData?.notStarted || [];\n\n return (\n <div>\n <h5>{formatMessage(messages.programProgressRemainingCourse)}</h5>\n {remainingData.length > 0 ? (\n remainingData.map((course) => (\n <ProgressCard key={course.id} progressCardData={course} isLoading={isLoading} tabType=\"remaining\" />\n ))\n ) : (\n <p>{formatMessage(messages.programProgressRemainingTabNoCourse)}</p>\n )}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/ProgramDashboard/ProgramProgress/RemainingTabData/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,QAAQ,MAAM,aAAa,CAAC;AAEnC,MAAM,CAAC,MAAM,gBAAgB,GAAO,GAAG,EAAE;IACvC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAC;IAC7D,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,UAAU,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,UAAU,CAAC;IACnD,MAAM,aAAa,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,KAAI,EAAE,CAAC;IAEnD,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,CAC9B,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3C,MAAM,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAErH,MAAM,gBAAgB,GAAG;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,GAAG,IAAI,EAAE;YACd,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,SAAS,IAAI,EAAE;SAC3B,CAAC;QAEF,OAAO,CACL,KAAC,YAAY,IAAiB,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,WAAW,EAAE,IAA/I,MAAM,CAAC,EAAE,CAA0I,CACvK,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,CACL,0BACE,uBAAK,aAAa,CAAC,QAAQ,CAAC,8BAA8B,CAAC,GAAM,EAChE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1B,iBAAiB,EAAE,CACpB,CAAC,CAAC,CAAC,CACF,sBAAI,aAAa,CAAC,QAAQ,CAAC,mCAAmC,CAAC,GAAK,CACrE,IACG,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FC } from 'react';\nimport { useProgressData } from '@src/hooks';\nimport { useIntl } from '@openedx/frontend-base';\n\nimport { ProgressCard } from '../ProgressCard';\nimport messages from '../messages';\n\nexport const RemainingTabData: FC = () => {\n const { programProgressData, isLoading } = useProgressData();\n const { formatMessage } = useIntl();\n\n const courseData = programProgressData?.courseData;\n const remainingData = courseData?.notStarted || [];\n\n const buildProgressCard = () => (\n remainingData.map((course) => {\n const courseRuns = course.courseRuns || [];\n const [{ pacingType = '', start = '', end = '', courseUrl = '' } = {}] = Array.isArray(courseRuns) ? courseRuns : [];\n\n const progressCardData = {\n title: course.title,\n start: start,\n end: end || '',\n pacingType: pacingType,\n courseUrl: courseUrl || '',\n };\n\n return (\n <ProgressCard key={course.id} progressCardData={progressCardData} isLoading={isLoading} tabType={formatMessage(messages.programProgressRemainingTab).toLowerCase()} />\n );\n })\n );\n\n return (\n <div>\n <h5>{formatMessage(messages.programProgressRemainingCourse)}</h5>\n {remainingData.length > 0 ? (\n buildProgressCard()\n ) : (\n <p>{formatMessage(messages.programProgressRemainingTabNoCourse)}</p>\n )}\n </div>\n );\n};\n"]}
@@ -29,12 +29,12 @@ declare const messages: {
29
29
  id: string;
30
30
  description: string;
31
31
  };
32
- programProgressCardCertificate: {
32
+ programProgressCardCompletedCertificateText: {
33
33
  defaultMessage: string;
34
34
  id: string;
35
35
  description: string;
36
36
  };
37
- programProgressCardResumeButton: {
37
+ programProgressCardCompletedCertificateButton: {
38
38
  defaultMessage: string;
39
39
  id: string;
40
40
  description: string;
@@ -44,6 +44,11 @@ declare const messages: {
44
44
  id: string;
45
45
  description: string;
46
46
  };
47
+ programProgressCardResumeCourseButton: {
48
+ defaultMessage: string;
49
+ id: string;
50
+ description: string;
51
+ };
47
52
  programProgressCardUpgradeButton: {
48
53
  defaultMessage: string;
49
54
  id: string;
@@ -89,5 +94,35 @@ declare const messages: {
89
94
  id: string;
90
95
  description: string;
91
96
  };
97
+ programProgressCompletedCourse: {
98
+ defaultMessage: string;
99
+ id: string;
100
+ description: string;
101
+ };
102
+ programProgressCompletedTabNoCourse: {
103
+ defaultMessage: string;
104
+ id: string;
105
+ description: string;
106
+ };
107
+ programProgressCompletedBannerTitle: {
108
+ defaultMessage: string;
109
+ id: string;
110
+ description: string;
111
+ };
112
+ programProgressCompletedBannerDescription: {
113
+ defaultMessage: string;
114
+ id: string;
115
+ description: string;
116
+ };
117
+ programProgressCompletedBannerHelpCenterButton: {
118
+ defaultMessage: string;
119
+ id: string;
120
+ description: string;
121
+ };
122
+ programProgressCompletedBannerMyProgramRecordsButton: {
123
+ defaultMessage: string;
124
+ id: string;
125
+ description: string;
126
+ };
92
127
  };
93
128
  export default messages;
@@ -30,21 +30,26 @@ const messages = defineMessages({
30
30
  id: 'program.progress.incomplete.text',
31
31
  description: 'text to display when a user has not completed all of the courses for a program',
32
32
  },
33
- programProgressCardCertificate: {
34
- defaultMessage: '<bold>Certificate Status:</bold> {certificateStatus}',
35
- id: 'program.progress.card.certificate.text',
36
- description: 'text to display on the progress card related to the certificate status for the course',
33
+ programProgressCardCompletedCertificateText: {
34
+ defaultMessage: 'You earned the certificate on {certificateDate}',
35
+ id: 'program.progress.card.completed.certificate.text',
36
+ description: 'text to display on the progress card completed tab related to the certificate status for the course',
37
37
  },
38
- programProgressCardResumeButton: {
39
- defaultMessage: 'Resume course',
40
- id: 'program.progress.card.resume.button.text',
41
- description: 'text to display on the progress card for the resume course button',
38
+ programProgressCardCompletedCertificateButton: {
39
+ defaultMessage: 'View certificate',
40
+ id: 'program.progress.card.completed.certificate.button.text',
41
+ description: 'text to display on the progress card on certificate button for completed courses',
42
42
  },
43
43
  programProgressCardViewCourseDetailButton: {
44
44
  defaultMessage: 'View course details',
45
45
  id: 'program.progress.card.view.course.detail.button.text',
46
46
  description: 'text to display on the progress card for the view course details button',
47
47
  },
48
+ programProgressCardResumeCourseButton: {
49
+ defaultMessage: 'Resume course',
50
+ id: 'program.progress.card.resume.course.button.text',
51
+ description: 'text to display on the progress card for the resume course button',
52
+ },
48
53
  programProgressCardUpgradeButton: {
49
54
  defaultMessage: 'Upgrade with your subscription',
50
55
  id: 'program.progress.card.upgrade.button.text',
@@ -90,6 +95,36 @@ const messages = defineMessages({
90
95
  id: 'program.progress.remaining.tab.no.course',
91
96
  description: 'Text to display on the Remaining tab of the program progress page when there is no course remaining for the user',
92
97
  },
98
+ programProgressCompletedCourse: {
99
+ defaultMessage: 'Completed courses',
100
+ id: 'program.progress.completed.course',
101
+ description: 'Header text to be displayed inside the Completed tab of the program progress page.',
102
+ },
103
+ programProgressCompletedTabNoCourse: {
104
+ defaultMessage: 'As you complete courses, you will see them listed here.',
105
+ id: 'program.progress.completed.tab.no.course',
106
+ description: 'Text to display on the Completed tab of the program progress page when no course is completed for the user',
107
+ },
108
+ programProgressCompletedBannerTitle: {
109
+ defaultMessage: 'Earning a program record',
110
+ id: 'program.progress.completed.banner.title',
111
+ description: 'Title text for the banner displayed on the Completed tab of the program progress page.',
112
+ },
113
+ programProgressCompletedBannerDescription: {
114
+ defaultMessage: 'Once you meet all course and program requirements, you will receive a program record and your professional certificate.',
115
+ id: 'program.progress.completed.banner.description',
116
+ description: 'Description text for the banner displayed on the Completed tab of the program progress page.',
117
+ },
118
+ programProgressCompletedBannerHelpCenterButton: {
119
+ defaultMessage: 'Help center',
120
+ id: 'program.progress.completed.banner.help.center.button',
121
+ description: 'Text for the Help Center button displayed on the banner in the Completed tab of the program progress page.',
122
+ },
123
+ programProgressCompletedBannerMyProgramRecordsButton: {
124
+ defaultMessage: 'My program records',
125
+ id: 'program.progress.completed.banner.my.program.records.button',
126
+ description: 'Text for the My Program Records button displayed on the banner in the Completed tab of the program progress page.',
127
+ }
93
128
  });
94
129
  export default messages;
95
130
  //# sourceMappingURL=messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../src/containers/ProgramDashboard/ProgramProgress/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC9B,2BAA2B,EAAE;QAC3B,cAAc,EAAE,cAAc;QAC9B,EAAE,EAAE,+BAA+B;QACnC,WAAW,EAAE,yCAAyC;KACvD;IACD,gBAAgB,EAAE;QAChB,cAAc,EAAE,uBAAuB;QACvC,EAAE,EAAE,qCAAqC;QACzC,WAAW,EAAE,qGAAqG;KACnH;IACD,6BAA6B,EAAE;QAC7B,cAAc,EAAE,kBAAkB;QAClC,EAAE,EAAE,kCAAkC;QACtC,WAAW,EAAE,yEAAyE;KACvF;IACD,2BAA2B,EAAE;QAC3B,cAAc,EAAE,0EAA0E;QAC1F,EAAE,EAAE,gCAAgC;QACpC,WAAW,EAAE,8EAA8E;KAC5F;IACD,+BAA+B,EAAE;QAC/B,cAAc,EAAE,sBAAsB;QACtC,EAAE,EAAE,oCAAoC;QACxC,WAAW,EAAE,sFAAsF;KACpG;IACD,6BAA6B,EAAE;QAC7B,cAAc,EAAE,0KAA0K;QAC1L,EAAE,EAAE,kCAAkC;QACtC,WAAW,EAAE,gFAAgF;KAC9F;IACD,8BAA8B,EAAE;QAC9B,cAAc,EAAE,sDAAsD;QACtE,EAAE,EAAE,wCAAwC;QAC5C,WAAW,EAAE,uFAAuF;KACrG;IACD,+BAA+B,EAAE;QAC/B,cAAc,EAAE,eAAe;QAC/B,EAAE,EAAE,0CAA0C;QAC9C,WAAW,EAAE,mEAAmE;KACjF;IACD,yCAAyC,EAAE;QACzC,cAAc,EAAE,qBAAqB;QACrC,EAAE,EAAE,sDAAsD;QAC1D,WAAW,EAAE,yEAAyE;KACvF;IACD,gCAAgC,EAAE;QAChC,cAAc,EAAE,gCAAgC;QAChD,EAAE,EAAE,2CAA2C;QAC/C,WAAW,EAAE,6DAA6D;KAC3E;IACD,6BAA6B,EAAE;QAC7B,cAAc,EAAE,WAAW;QAC3B,EAAE,EAAE,mCAAmC;QACvC,WAAW,EAAE,4EAA4E;KAC1F;IACD,4BAA4B,EAAE;QAC5B,cAAc,EAAE,SAAS;QACzB,EAAE,EAAE,kCAAkC;QACtC,WAAW,EAAE,uEAAuE;KACrF;IACD,4BAA4B,EAAE;QAC5B,cAAc,EAAE,aAAa;QAC7B,EAAE,EAAE,kCAAkC;QACtC,WAAW,EAAE,oIAAoI;KAClJ;IACD,2BAA2B,EAAE;QAC3B,cAAc,EAAE,WAAW;QAC3B,EAAE,EAAE,gCAAgC;QACpC,WAAW,EAAE,oHAAoH;KAClI;IACD,2BAA2B,EAAE;QAC3B,cAAc,EAAE,WAAW;QAC3B,EAAE,EAAE,gCAAgC;QACpC,WAAW,EAAE,8GAA8G;KAC5H;IACD,0BAA0B,EAAE;QAC1B,cAAc,EAAE,UAAU;QAC1B,EAAE,EAAE,+BAA+B;QACnC,WAAW,EAAE,oMAAoM;KAClN;IACD,8BAA8B,EAAE;QAC9B,cAAc,EAAE,mBAAmB;QACnC,EAAE,EAAE,mCAAmC;QACvC,WAAW,EAAE,oFAAoF;KAClG;IACD,mCAAmC,EAAE;QACnC,cAAc,EAAE,qDAAqD;QACrE,EAAE,EAAE,0CAA0C;QAC9C,WAAW,EAAE,kHAAkH;KAChI;CACF,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\nconst messages = defineMessages({\n programProgressInstitutions: {\n defaultMessage: 'Institutions',\n id: 'program.progress.institutions',\n description: 'Label text for organization image logos',\n },\n programTypeLabel: {\n defaultMessage: '{programType} program',\n id: 'program.progress.program.type.label',\n description: 'Label displaying the program type (e.g. \"MicroMasters program\", \"Professional Certificate program\")',\n },\n programProgressCompleteHeader: {\n defaultMessage: 'Congratulations!',\n id: 'program.progress.complete.header',\n description: 'header text for the program progress page when all courses are complete',\n },\n programProgressCompleteText: {\n defaultMessage: 'You have successfully completed all the requirements for {programTitle}.',\n id: 'program.progress.complete.text',\n description: 'text to display when a user has completed all of the courses for the program',\n },\n programProgressIncompleteHeader: {\n defaultMessage: 'Your Program Journey',\n id: 'program.progress.incomplete.header',\n description: 'header text to display when the user has remaining incomplete courses in the program',\n },\n programProgressIncompleteText: {\n defaultMessage: 'Track and plan your progress through the {totalCoursesInProgram} courses in this program. To complete the program, you must earn a verified certificate for each course.',\n id: 'program.progress.incomplete.text',\n description: 'text to display when a user has not completed all of the courses for a program',\n },\n programProgressCardCertificate: {\n defaultMessage: '<bold>Certificate Status:</bold> {certificateStatus}',\n id: 'program.progress.card.certificate.text',\n description: 'text to display on the progress card related to the certificate status for the course',\n },\n programProgressCardResumeButton: {\n defaultMessage: 'Resume course',\n id: 'program.progress.card.resume.button.text',\n description: 'text to display on the progress card for the resume course button',\n },\n programProgressCardViewCourseDetailButton: {\n defaultMessage: 'View course details',\n id: 'program.progress.card.view.course.detail.button.text',\n description: 'text to display on the progress card for the view course details button',\n },\n programProgressCardUpgradeButton: {\n defaultMessage: 'Upgrade with your subscription',\n id: 'program.progress.card.upgrade.button.text',\n description: 'text to display on the progress card for the upgrade button',\n },\n programProgressCardEnrollText: {\n defaultMessage: 'Enrolled:',\n id: 'program.progress.card.enroll.text',\n description: 'text to display on the progress card for the enrolled status of the course',\n },\n programProgressCardStartText: {\n defaultMessage: 'Started',\n id: 'program.progress.card.start.text',\n description: 'text to display on the progress card for the start date of the course',\n },\n programProgressInProgressTab: {\n defaultMessage: 'In progress',\n id: 'program.progress.in.progress.tab',\n description: 'Label for the \"In progress\" tab on the program progress page, which lists courses that the user has started but not yet completed.',\n },\n programProgressRemainingTab: {\n defaultMessage: 'Remaining',\n id: 'program.progress.remaining.tab',\n description: 'Label for the \"Remaining\" tab on the program progress page, which lists courses that the user has not yet started.',\n },\n programProgressCompletedTab: {\n defaultMessage: 'Completed',\n id: 'program.progress.completed.tab',\n description: 'Label for the \"Completed\" tab on the program progress page, which lists courses that the user has completed.',\n },\n programProgressPathwaysTab: {\n defaultMessage: 'Pathways',\n id: 'program.progress.pathways.tab',\n description: 'Label for the \"Pathways\" tab on the program progress page, which gives details of how the program can be used to further the learners education. This tab is only shown for MicroMasters programs.',\n },\n programProgressRemainingCourse: {\n defaultMessage: 'Remaining Courses',\n id: 'program.progress.remaining.course',\n description: 'Header text to be displayed inside the Remaining tab of the program progress page.',\n },\n programProgressRemainingTabNoCourse: {\n defaultMessage: \"You have enrolled in all of this program's courses.\",\n id: 'program.progress.remaining.tab.no.course',\n description: 'Text to display on the Remaining tab of the program progress page when there is no course remaining for the user',\n },\n});\n\nexport default messages;\n"]}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../src/containers/ProgramDashboard/ProgramProgress/messages.ts"],"names":[],"mappings":"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","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\nconst messages = defineMessages({\n programProgressInstitutions: {\n defaultMessage: 'Institutions',\n id: 'program.progress.institutions',\n description: 'Label text for organization image logos',\n },\n programTypeLabel: {\n defaultMessage: '{programType} program',\n id: 'program.progress.program.type.label',\n description: 'Label displaying the program type (e.g. \"MicroMasters program\", \"Professional Certificate program\")',\n },\n programProgressCompleteHeader: {\n defaultMessage: 'Congratulations!',\n id: 'program.progress.complete.header',\n description: 'header text for the program progress page when all courses are complete',\n },\n programProgressCompleteText: {\n defaultMessage: 'You have successfully completed all the requirements for {programTitle}.',\n id: 'program.progress.complete.text',\n description: 'text to display when a user has completed all of the courses for the program',\n },\n programProgressIncompleteHeader: {\n defaultMessage: 'Your Program Journey',\n id: 'program.progress.incomplete.header',\n description: 'header text to display when the user has remaining incomplete courses in the program',\n },\n programProgressIncompleteText: {\n defaultMessage: 'Track and plan your progress through the {totalCoursesInProgram} courses in this program. To complete the program, you must earn a verified certificate for each course.',\n id: 'program.progress.incomplete.text',\n description: 'text to display when a user has not completed all of the courses for a program',\n },\n programProgressCardCompletedCertificateText: {\n defaultMessage: 'You earned the certificate on {certificateDate}',\n id: 'program.progress.card.completed.certificate.text',\n description: 'text to display on the progress card completed tab related to the certificate status for the course',\n },\n programProgressCardCompletedCertificateButton: {\n defaultMessage: 'View certificate',\n id: 'program.progress.card.completed.certificate.button.text',\n description: 'text to display on the progress card on certificate button for completed courses',\n },\n programProgressCardViewCourseDetailButton: {\n defaultMessage: 'View course details',\n id: 'program.progress.card.view.course.detail.button.text',\n description: 'text to display on the progress card for the view course details button',\n },\n programProgressCardResumeCourseButton: {\n defaultMessage: 'Resume course',\n id: 'program.progress.card.resume.course.button.text',\n description: 'text to display on the progress card for the resume course button',\n },\n programProgressCardUpgradeButton: {\n defaultMessage: 'Upgrade with your subscription',\n id: 'program.progress.card.upgrade.button.text',\n description: 'text to display on the progress card for the upgrade button',\n },\n programProgressCardEnrollText: {\n defaultMessage: 'Enrolled:',\n id: 'program.progress.card.enroll.text',\n description: 'text to display on the progress card for the enrolled status of the course',\n },\n programProgressCardStartText: {\n defaultMessage: 'Started',\n id: 'program.progress.card.start.text',\n description: 'text to display on the progress card for the start date of the course',\n },\n programProgressInProgressTab: {\n defaultMessage: 'In progress',\n id: 'program.progress.in.progress.tab',\n description: 'Label for the \"In progress\" tab on the program progress page, which lists courses that the user has started but not yet completed.',\n },\n programProgressRemainingTab: {\n defaultMessage: 'Remaining',\n id: 'program.progress.remaining.tab',\n description: 'Label for the \"Remaining\" tab on the program progress page, which lists courses that the user has not yet started.',\n },\n programProgressCompletedTab: {\n defaultMessage: 'Completed',\n id: 'program.progress.completed.tab',\n description: 'Label for the \"Completed\" tab on the program progress page, which lists courses that the user has completed.',\n },\n programProgressPathwaysTab: {\n defaultMessage: 'Pathways',\n id: 'program.progress.pathways.tab',\n description: 'Label for the \"Pathways\" tab on the program progress page, which gives details of how the program can be used to further the learners education. This tab is only shown for MicroMasters programs.',\n },\n programProgressRemainingCourse: {\n defaultMessage: 'Remaining Courses',\n id: 'program.progress.remaining.course',\n description: 'Header text to be displayed inside the Remaining tab of the program progress page.',\n },\n programProgressRemainingTabNoCourse: {\n defaultMessage: \"You have enrolled in all of this program's courses.\",\n id: 'program.progress.remaining.tab.no.course',\n description: 'Text to display on the Remaining tab of the program progress page when there is no course remaining for the user',\n },\n programProgressCompletedCourse: {\n defaultMessage: 'Completed courses',\n id: 'program.progress.completed.course',\n description: 'Header text to be displayed inside the Completed tab of the program progress page.',\n },\n programProgressCompletedTabNoCourse: {\n defaultMessage: 'As you complete courses, you will see them listed here.',\n id: 'program.progress.completed.tab.no.course',\n description: 'Text to display on the Completed tab of the program progress page when no course is completed for the user',\n },\n programProgressCompletedBannerTitle: {\n defaultMessage: 'Earning a program record',\n id: 'program.progress.completed.banner.title',\n description: 'Title text for the banner displayed on the Completed tab of the program progress page.',\n },\n programProgressCompletedBannerDescription: {\n defaultMessage: 'Once you meet all course and program requirements, you will receive a program record and your professional certificate.',\n id: 'program.progress.completed.banner.description',\n description: 'Description text for the banner displayed on the Completed tab of the program progress page.',\n },\n programProgressCompletedBannerHelpCenterButton: {\n defaultMessage: 'Help center',\n id: 'program.progress.completed.banner.help.center.button',\n description: 'Text for the Help Center button displayed on the banner in the Completed tab of the program progress page.',\n },\n programProgressCompletedBannerMyProgramRecordsButton: {\n defaultMessage: 'My program records',\n id: 'program.progress.completed.banner.my.program.records.button',\n description: 'Text for the My Program Records button displayed on the banner in the Completed tab of the program progress page.',\n }\n});\n\nexport default messages;\n"]}
@@ -10,4 +10,29 @@ declare const messages: {
10
10
  description: string;
11
11
  defaultMessage: string;
12
12
  };
13
+ 'header.user.menu.lastCourse': {
14
+ id: string;
15
+ defaultMessage: string;
16
+ description: string;
17
+ };
18
+ 'header.user.menu.dashboard': {
19
+ id: string;
20
+ defaultMessage: string;
21
+ description: string;
22
+ };
23
+ 'header.user.menu.myCourses': {
24
+ id: string;
25
+ defaultMessage: string;
26
+ description: string;
27
+ };
28
+ 'header.user.menu.orderHistory': {
29
+ id: string;
30
+ defaultMessage: string;
31
+ description: string;
32
+ };
33
+ 'header.user.menu.help': {
34
+ id: string;
35
+ defaultMessage: string;
36
+ description: string;
37
+ };
13
38
  };
package/dist/messages.js CHANGED
@@ -10,6 +10,31 @@ const messages = defineMessages({
10
10
  description: 'Page title: Subscription Dashboard',
11
11
  defaultMessage: 'Subscription Dashboard',
12
12
  },
13
+ 'header.user.menu.lastCourse': {
14
+ id: 'header.user.menu.lastCourse',
15
+ defaultMessage: 'Resume your last course',
16
+ description: 'Link to resume last course',
17
+ },
18
+ 'header.user.menu.dashboard': {
19
+ id: 'header.user.menu.dashboard',
20
+ defaultMessage: 'Dashboard',
21
+ description: 'Link to the Dashboard',
22
+ },
23
+ 'header.user.menu.myCourses': {
24
+ id: 'header.user.menu.myCourses',
25
+ defaultMessage: 'My courses',
26
+ description: 'Link to the My Courses',
27
+ },
28
+ 'header.user.menu.orderHistory': {
29
+ id: 'header.user.menu.orderHistory',
30
+ defaultMessage: 'Order History',
31
+ description: 'Link to the Order History',
32
+ },
33
+ 'header.user.menu.help': {
34
+ id: 'header.user.menu.help',
35
+ defaultMessage: 'Help',
36
+ description: 'Link to the Help',
37
+ },
13
38
  });
14
39
  export default messages;
15
40
  //# sourceMappingURL=messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC9B,qBAAqB,EAAE;QACrB,EAAE,EAAE,qBAAqB;QACzB,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE,YAAY;KAC7B;IACD,iBAAiB,EAAE;QACjB,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,oCAAoC;QACjD,cAAc,EAAE,wBAAwB;KACzC;CACF,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\nconst messages = defineMessages({\n 'subs-dash.loadingSR': {\n id: 'subs-dash.loadingSR',\n description: 'Page loading screen-reader text',\n defaultMessage: 'Loading...',\n },\n 'subs-dash.title': {\n id: 'subs-dash.title',\n description: 'Page title: Subscription Dashboard',\n defaultMessage: 'Subscription Dashboard',\n },\n});\n\nexport default messages;\n"]}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC9B,qBAAqB,EAAE;QACrB,EAAE,EAAE,qBAAqB;QACzB,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE,YAAY;KAC7B;IACD,iBAAiB,EAAE;QACjB,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,oCAAoC;QACjD,cAAc,EAAE,wBAAwB;KACzC;IACD,6BAA6B,EAAE;QAC7B,EAAE,EAAE,6BAA6B;QACjC,cAAc,EAAE,yBAAyB;QACzC,WAAW,EAAE,4BAA4B;KAC1C;IACD,4BAA4B,EAAE;QAC5B,EAAE,EAAE,4BAA4B;QAChC,cAAc,EAAE,WAAW;QAC3B,WAAW,EAAE,uBAAuB;KACrC;IACD,4BAA4B,EAAE;QAC5B,EAAE,EAAE,4BAA4B;QAChC,cAAc,EAAE,YAAY;QAC5B,WAAW,EAAE,wBAAwB;KACtC;IACD,+BAA+B,EAAE;QAC/B,EAAE,EAAE,+BAA+B;QACnC,cAAc,EAAE,eAAe;QAC/B,WAAW,EAAE,2BAA2B;KACzC;IACD,uBAAuB,EAAE;QACvB,EAAE,EAAE,uBAAuB;QAC3B,cAAc,EAAE,MAAM;QACtB,WAAW,EAAE,kBAAkB;KAChC;CACF,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\nconst messages = defineMessages({\n 'subs-dash.loadingSR': {\n id: 'subs-dash.loadingSR',\n description: 'Page loading screen-reader text',\n defaultMessage: 'Loading...',\n },\n 'subs-dash.title': {\n id: 'subs-dash.title',\n description: 'Page title: Subscription Dashboard',\n defaultMessage: 'Subscription Dashboard',\n },\n 'header.user.menu.lastCourse': {\n id: 'header.user.menu.lastCourse',\n defaultMessage: 'Resume your last course',\n description: 'Link to resume last course',\n },\n 'header.user.menu.dashboard': {\n id: 'header.user.menu.dashboard',\n defaultMessage: 'Dashboard',\n description: 'Link to the Dashboard',\n },\n 'header.user.menu.myCourses': {\n id: 'header.user.menu.myCourses',\n defaultMessage: 'My courses',\n description: 'Link to the My Courses',\n },\n 'header.user.menu.orderHistory': {\n id: 'header.user.menu.orderHistory',\n defaultMessage: 'Order History',\n description: 'Link to the Order History',\n },\n 'header.user.menu.help': {\n id: 'header.user.menu.help',\n defaultMessage: 'Help',\n description: 'Link to the Help',\n },\n});\n\nexport default messages;\n"]}
@@ -1,2 +1,2 @@
1
- export function dateFormatter(formatDate: any, date: any): any;
1
+ export function dateFormatter(formatDate: any, date: any, monthFormat?: string): any;
2
2
  export default dateFormatter;
@@ -1,7 +1,7 @@
1
1
  import moment from 'moment';
2
- export const dateFormatter = (formatDate, date) => formatDate(moment(date).toDate(), {
2
+ export const dateFormatter = (formatDate, date, monthFormat = 'long') => formatDate(moment(date).toDate(), {
3
3
  year: 'numeric',
4
- month: 'long',
4
+ month: monthFormat,
5
5
  day: 'numeric',
6
6
  });
7
7
  export default dateFormatter;
@@ -1 +1 @@
1
- {"version":3,"file":"dateFormatter.js","sourceRoot":"","sources":["../../src/utils/dateFormatter.js"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;IACnF,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,SAAS;CACf,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC","sourcesContent":["import moment from 'moment';\n\nexport const dateFormatter = (formatDate, date) => formatDate(moment(date).toDate(), {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n});\n\nexport default dateFormatter;\n"]}
1
+ {"version":3,"file":"dateFormatter.js","sourceRoot":"","sources":["../../src/utils/dateFormatter.js"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;IACzG,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,WAAW;IAClB,GAAG,EAAE,SAAS;CACf,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC","sourcesContent":["import moment from 'moment';\n\nexport const dateFormatter = (formatDate, date, monthFormat = 'long') => formatDate(moment(date).toDate(), {\n year: 'numeric',\n month: monthFormat,\n day: 'numeric',\n});\n\nexport default dateFormatter;\n"]}
@@ -7,6 +7,7 @@ import DiscoverLinkMenuItem from './DiscoverLinkMenuItem';
7
7
  import ProgramsLinkMenuItem from './ProgramsLinkMenuItem';
8
8
  import SupportLinkMenuItem from './SupportLinkMenuItem';
9
9
  import OrderHistoryLinkMenuItem from './OrderHistoryLinkMenuItem';
10
+ import messages from '../../messages';
10
11
  const app = {
11
12
  appId: 'org.openedx.frontend.app.learnerDashboard.header',
12
13
  slots: [
@@ -56,6 +57,36 @@ const app = {
56
57
  callback: () => getAppConfig(appId).ORDER_HISTORY_URL ? true : false,
57
58
  }
58
59
  },
60
+ {
61
+ slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',
62
+ id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuOrderHistory.v1',
63
+ op: WidgetOperationTypes.PREPEND,
64
+ element: (_jsx(LinkMenuItem, { label: messages['header.user.menu.orderHistory'].defaultMessage, role: "org.openedx.frontend.role.account", variant: "dropdownItem" }))
65
+ },
66
+ {
67
+ slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',
68
+ id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuHelp.v1',
69
+ op: WidgetOperationTypes.PREPEND,
70
+ element: (_jsx(LinkMenuItem, { label: messages['header.user.menu.help'].defaultMessage, role: "org.openedx.frontend.role.account", variant: "dropdownItem" }))
71
+ },
72
+ {
73
+ slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',
74
+ id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuMyCourses.v1',
75
+ op: WidgetOperationTypes.PREPEND,
76
+ element: (_jsx(LinkMenuItem, { label: messages['header.user.menu.myCourses'].defaultMessage, role: "org.openedx.frontend.role.account", variant: "dropdownItem" }))
77
+ },
78
+ {
79
+ slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',
80
+ id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuDashboard.v1',
81
+ op: WidgetOperationTypes.PREPEND,
82
+ element: (_jsx(LinkMenuItem, { label: messages['header.user.menu.dashboard'].defaultMessage, role: "org.openedx.frontend.role.account", variant: "dropdownItem" }))
83
+ },
84
+ {
85
+ slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',
86
+ id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuLastCourse.v1',
87
+ op: WidgetOperationTypes.PREPEND,
88
+ element: (_jsx(LinkMenuItem, { label: messages['header.user.menu.lastCourse'].defaultMessage, role: "org.openedx.frontend.role.account", variant: "dropdownItem" }))
89
+ },
59
90
  ]
60
91
  };
61
92
  export default app;
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/app.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAO,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE/F,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAElE,MAAM,GAAG,GAAQ;IACf,KAAK,EAAE,kDAAkD;IACzD,KAAK,EAAE;QACL;YACE,MAAM,EAAE,0CAA0C;YAClD,EAAE,EAAE,oEAAoE;YACxE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,kBAAkB;SAC9B;QACD;YACE,MAAM,EAAE,kDAAkD;YAC1D,EAAE,EAAE,mEAAmE;YACvE,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,CACP,KAAC,YAAY,IACX,KAAK,EAAE,KAAC,WAAW,KAAG,EACtB,GAAG,EAAC,GAAG,EACP,OAAO,EAAC,SAAS,GACjB,CACH;SACF;QACD;YACE,MAAM,EAAE,kDAAkD;YAC1D,EAAE,EAAE,oEAAoE;YACxE,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,CACP,KAAC,oBAAoB,IACnB,OAAO,EAAC,SAAS,GACjB,CACH;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,eAAe,KAAK,IAAI;aAC7D;SACF;QACD;YACE,MAAM,EAAE,kDAAkD;YAC1D,EAAE,EAAE,oEAAoE;YACxE,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,CACP,KAAC,oBAAoB,IACnB,OAAO,EAAC,SAAS,GACjB,CACH;SACF;QACD;YACE,MAAM,EAAE,oDAAoD;YAC5D,EAAE,EAAE,mEAAmE;YACvE,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,CACP,KAAC,mBAAmB,IAClB,OAAO,EAAC,SAAS,GACjB,CACH;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;aAC/D;SACF;QACD;YACE,MAAM,EAAE,uDAAuD;YAC/D,EAAE,EAAE,wEAAwE;YAC5E,EAAE,EAAE,oBAAoB,CAAC,aAAa;YACtC,SAAS,EAAE,sEAAsE;YACjF,OAAO,EAAE,CACP,KAAC,wBAAwB,IACvB,OAAO,EAAC,SAAS,GACjB,CACH;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;aACrE;SACF;KACF;CACF,CAAC;AAEF,eAAe,GAAG,CAAC","sourcesContent":["import { App, LinkMenuItem, WidgetOperationTypes, getAppConfig } from '@openedx/frontend-base';\n\nimport { appId } from '../../constants';\n\nimport ConfirmEmailBanner from './ConfirmEmailBanner';\nimport CoursesLink from './CoursesLink';\nimport DiscoverLinkMenuItem from './DiscoverLinkMenuItem';\nimport ProgramsLinkMenuItem from './ProgramsLinkMenuItem';\nimport SupportLinkMenuItem from './SupportLinkMenuItem';\nimport OrderHistoryLinkMenuItem from './OrderHistoryLinkMenuItem';\n\nconst app: App = {\n appId: 'org.openedx.frontend.app.learnerDashboard.header',\n slots: [\n {\n slotId: 'org.openedx.frontend.slot.header.main.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerConfirmEmail.v1',\n op: WidgetOperationTypes.PREPEND,\n component: ConfirmEmailBanner,\n },\n {\n slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkCourses.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <LinkMenuItem\n label={<CoursesLink />}\n url=\"/\"\n variant=\"navLink\"\n />\n )\n },\n {\n slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkPrograms.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <ProgramsLinkMenuItem\n variant=\"navLink\"\n />\n ),\n condition: {\n callback: () => getAppConfig(appId).ENABLE_PROGRAMS === true,\n }\n },\n {\n slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkDiscover.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <DiscoverLinkMenuItem\n variant=\"navLink\"\n />\n ),\n },\n {\n slotId: 'org.openedx.frontend.slot.header.secondaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkSupport.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <SupportLinkMenuItem\n variant=\"navLink\"\n />\n ),\n condition: {\n callback: () => getAppConfig(appId).SUPPORT_URL ? true : false,\n }\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkOrderHistory.v1',\n op: WidgetOperationTypes.INSERT_BEFORE,\n relatedId: 'org.openedx.frontend.widget.header.desktopAuthenticatedMenuLogout.v1',\n element: (\n <OrderHistoryLinkMenuItem\n variant=\"navLink\"\n />\n ),\n condition: {\n callback: () => getAppConfig(appId).ORDER_HISTORY_URL ? true : false,\n }\n },\n ]\n};\n\nexport default app;\n"]}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/app.tsx"],"names":[],"mappings":"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","sourcesContent":["import { App, LinkMenuItem, WidgetOperationTypes, getAppConfig } from '@openedx/frontend-base';\n\nimport { appId } from '../../constants';\n\nimport ConfirmEmailBanner from './ConfirmEmailBanner';\nimport CoursesLink from './CoursesLink';\nimport DiscoverLinkMenuItem from './DiscoverLinkMenuItem';\nimport ProgramsLinkMenuItem from './ProgramsLinkMenuItem';\nimport SupportLinkMenuItem from './SupportLinkMenuItem';\nimport OrderHistoryLinkMenuItem from './OrderHistoryLinkMenuItem';\nimport messages from '@src/messages';\n\nconst app: App = {\n appId: 'org.openedx.frontend.app.learnerDashboard.header',\n slots: [\n {\n slotId: 'org.openedx.frontend.slot.header.main.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerConfirmEmail.v1',\n op: WidgetOperationTypes.PREPEND,\n component: ConfirmEmailBanner,\n },\n {\n slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkCourses.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <LinkMenuItem\n label={<CoursesLink />}\n url=\"/\"\n variant=\"navLink\"\n />\n )\n },\n {\n slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkPrograms.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <ProgramsLinkMenuItem\n variant=\"navLink\"\n />\n ),\n condition: {\n callback: () => getAppConfig(appId).ENABLE_PROGRAMS === true,\n }\n },\n {\n slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkDiscover.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <DiscoverLinkMenuItem\n variant=\"navLink\"\n />\n ),\n },\n {\n slotId: 'org.openedx.frontend.slot.header.secondaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkSupport.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <SupportLinkMenuItem\n variant=\"navLink\"\n />\n ),\n condition: {\n callback: () => getAppConfig(appId).SUPPORT_URL ? true : false,\n }\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkOrderHistory.v1',\n op: WidgetOperationTypes.INSERT_BEFORE,\n relatedId: 'org.openedx.frontend.widget.header.desktopAuthenticatedMenuLogout.v1',\n element: (\n <OrderHistoryLinkMenuItem\n variant=\"navLink\"\n />\n ),\n condition: {\n callback: () => getAppConfig(appId).ORDER_HISTORY_URL ? true : false,\n }\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuOrderHistory.v1',\n op: WidgetOperationTypes.PREPEND,\n element: (\n <LinkMenuItem\n label={messages['header.user.menu.orderHistory'].defaultMessage}\n role=\"org.openedx.frontend.role.account\"\n variant=\"dropdownItem\"\n />\n )\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuHelp.v1',\n op: WidgetOperationTypes.PREPEND,\n element: (\n <LinkMenuItem\n label={messages['header.user.menu.help'].defaultMessage}\n role=\"org.openedx.frontend.role.account\"\n variant=\"dropdownItem\"\n />\n )\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuMyCourses.v1',\n op: WidgetOperationTypes.PREPEND,\n element: (\n <LinkMenuItem\n label={messages['header.user.menu.myCourses'].defaultMessage}\n role=\"org.openedx.frontend.role.account\"\n variant=\"dropdownItem\"\n />\n )\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuDashboard.v1',\n op: WidgetOperationTypes.PREPEND,\n element: (\n <LinkMenuItem\n label={messages['header.user.menu.dashboard'].defaultMessage}\n role=\"org.openedx.frontend.role.account\"\n variant=\"dropdownItem\"\n />\n )\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuLastCourse.v1',\n op: WidgetOperationTypes.PREPEND,\n element: (\n <LinkMenuItem\n label={messages['header.user.menu.lastCourse'].defaultMessage}\n role=\"org.openedx.frontend.role.account\"\n variant=\"dropdownItem\"\n />\n )\n },\n ]\n};\n\nexport default app;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edx/frontend-app-subscription-learner-dashboard",
3
- "version": "1.8.5",
3
+ "version": "1.10.0",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,7 +22,7 @@
22
22
  "scripts": {
23
23
  "build": "make build",
24
24
  "clean": "make clean",
25
- "dev": "PORT=1996 PUBLIC_PATH=/subscription-learner-dashboard openedx dev",
25
+ "dev": "PORT=5000 PUBLIC_PATH=/subscription-learner-dashboard openedx dev",
26
26
  "i18n_extract": "openedx formatjs extract",
27
27
  "lint": "openedx lint .",
28
28
  "lint:fix": "openedx lint --fix .",
@@ -1,2 +0,0 @@
1
- import { FC } from 'react';
2
- export declare const ViewCourseDetailButton: FC;
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Button } from '@openedx/paragon';
3
- import { useIntl } from '@openedx/frontend-base';
4
- import messages from '../messages';
5
- export const ViewCourseDetailButton = () => {
6
- const { formatMessage } = useIntl();
7
- return (_jsx(Button, { variant: "outline-primary", children: formatMessage(messages.programProgressCardViewCourseDetailButton) }));
8
- };
9
- //# sourceMappingURL=ViewCourseDetailButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ViewCourseDetailButton.js","sourceRoot":"","sources":["../../../../../src/containers/ProgramDashboard/ProgramProgress/ProgressCardActions/ViewCourseDetailButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,QAAQ,MAAM,aAAa,CAAC;AAEnC,MAAM,CAAC,MAAM,sBAAsB,GAAO,GAAG,EAAE;IAC7C,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,OAAO,CACL,KAAC,MAAM,IAAC,OAAO,EAAC,iBAAiB,YAC9B,aAAa,CAAC,QAAQ,CAAC,yCAAyC,CAAC,GAC3D,CACV,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FC } from 'react';\nimport { Button } from '@openedx/paragon';\nimport { useIntl } from '@openedx/frontend-base';\n\nimport messages from '../messages';\n\nexport const ViewCourseDetailButton: FC = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Button variant=\"outline-primary\">\n {formatMessage(messages.programProgressCardViewCourseDetailButton)}\n </Button>\n );\n};\n"]}