@cuemath/leap 3.3.35 → 3.3.36

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 (199) hide show
  1. package/dist/assets/gif/gif.js +4 -1
  2. package/dist/assets/gif/gif.js.map +1 -1
  3. package/dist/assets/illustrations/illustrations.js +1 -1
  4. package/dist/assets/illustrations/illustrations.js.map +1 -1
  5. package/dist/assets/line-icons/icons/chevron-right.js.map +1 -1
  6. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +1 -1
  7. package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +1 -1
  8. package/dist/features/auth/comps/otp-input/otp-input.js +35 -29
  9. package/dist/features/auth/comps/otp-input/otp-input.js.map +1 -1
  10. package/dist/features/auth/pla-signup/pla-analytics-events.js +12 -3
  11. package/dist/features/auth/pla-signup/pla-analytics-events.js.map +1 -1
  12. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +43 -34
  13. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
  14. package/dist/features/chapters-v2/chapter-details/chapter-details.js +140 -101
  15. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
  16. package/dist/features/chapters-v2/utils/index.js +20 -16
  17. package/dist/features/chapters-v2/utils/index.js.map +1 -1
  18. package/dist/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.js +6 -6
  19. package/dist/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.js.map +1 -1
  20. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +20 -21
  21. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -1
  22. package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
  23. package/dist/features/circle-games/sign-up/sign-up.js +6 -6
  24. package/dist/features/circle-games/sign-up/sign-up.js.map +1 -1
  25. package/dist/features/homework/hw-card-list/hw-card-list-view.js +17 -17
  26. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js +86 -0
  27. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js.map +1 -0
  28. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js +140 -0
  29. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js.map +1 -0
  30. package/dist/features/journey/journey-id/journey-id-student.js +1 -1
  31. package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
  32. package/dist/features/journey/journey-id/journey-id-teacher.js +2 -2
  33. package/dist/features/journey/journey-id/journey-id-teacher.js.map +1 -1
  34. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +400 -0
  35. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
  36. package/dist/features/milestone/constants.js +28 -15
  37. package/dist/features/milestone/constants.js.map +1 -1
  38. package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js +6 -6
  39. package/dist/features/milestone/create/comps/sheets-list/sheets-list-styled.js +2 -2
  40. package/dist/features/milestone/create/comps/test-type-step/test-type-utils.js +23 -16
  41. package/dist/features/milestone/create/comps/test-type-step/test-type-utils.js.map +1 -1
  42. package/dist/features/milestone/create/milestone-create-helpers.js +13 -7
  43. package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
  44. package/dist/features/parent-dashboard/api/cancel-subscription.js +9 -0
  45. package/dist/features/parent-dashboard/api/cancel-subscription.js.map +1 -0
  46. package/dist/features/parent-dashboard/comps/billing-information/billing-information-styled.js +20 -0
  47. package/dist/features/parent-dashboard/comps/billing-information/billing-information-styled.js.map +1 -0
  48. package/dist/features/parent-dashboard/comps/billing-information/billing-information.js +74 -0
  49. package/dist/features/parent-dashboard/comps/billing-information/billing-information.js.map +1 -0
  50. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps-constants.js +1 -1
  51. package/dist/features/parent-dashboard/comps/next-steps/next-steps-constants.js.map +1 -0
  52. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps-styled.js +1 -1
  53. package/dist/features/parent-dashboard/comps/next-steps/next-steps-styled.js.map +1 -0
  54. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps.js +5 -5
  55. package/dist/features/parent-dashboard/comps/next-steps/next-steps.js.map +1 -0
  56. package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js +28 -22
  57. package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js.map +1 -1
  58. package/dist/features/parent-dashboard/comps/session-status/hooks/use-countdown.js +34 -0
  59. package/dist/features/parent-dashboard/comps/session-status/hooks/use-countdown.js.map +1 -0
  60. package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js +137 -0
  61. package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js.map +1 -0
  62. package/dist/features/parent-dashboard/comps/session-status/session-status-constants.js +20 -0
  63. package/dist/features/parent-dashboard/comps/session-status/session-status-constants.js.map +1 -0
  64. package/dist/features/parent-dashboard/comps/session-status/session-status-helpers.js +19 -0
  65. package/dist/features/parent-dashboard/comps/session-status/session-status-helpers.js.map +1 -0
  66. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-status/session-status-styled.js +2 -2
  67. package/dist/features/parent-dashboard/comps/session-status/session-status-styled.js.map +1 -0
  68. package/dist/features/parent-dashboard/comps/session-status/session-status.js +124 -0
  69. package/dist/features/parent-dashboard/comps/session-status/session-status.js.map +1 -0
  70. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-summary/session-summary-constants.js +18 -12
  71. package/dist/features/parent-dashboard/comps/session-summary/session-summary-constants.js.map +1 -0
  72. package/dist/features/parent-dashboard/comps/session-summary/session-summary.js +54 -0
  73. package/dist/features/parent-dashboard/comps/session-summary/session-summary.js.map +1 -0
  74. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-summary/summary-card/summary-card-styled.js +1 -1
  75. package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card-styled.js.map +1 -0
  76. package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card.js +72 -0
  77. package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card.js.map +1 -0
  78. package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-constants.js.map +1 -0
  79. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-styled.js +1 -1
  80. package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-styled.js.map +1 -0
  81. package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-types.js.map +1 -0
  82. package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions.js +14 -14
  83. package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions.js.map +1 -0
  84. package/dist/features/parent-dashboard/hooks/use-fetch-parent-home.js +1 -1
  85. package/dist/features/parent-dashboard/hooks/use-fetch-parent-home.js.map +1 -1
  86. package/dist/features/parent-dashboard/hooks/use-parent-home-data.js +48 -46
  87. package/dist/features/parent-dashboard/hooks/use-parent-home-data.js.map +1 -1
  88. package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription-constants.js +21 -0
  89. package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription-constants.js.map +1 -0
  90. package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription.js +85 -0
  91. package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription.js.map +1 -0
  92. package/dist/features/parent-dashboard/modals/cancellation-confirmation/cancellation-confirmation.js +23 -0
  93. package/dist/features/parent-dashboard/modals/cancellation-confirmation/cancellation-confirmation.js.map +1 -0
  94. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-constant.js +55 -0
  95. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-constant.js.map +1 -0
  96. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-styled.js +71 -0
  97. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-styled.js.map +1 -0
  98. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js +119 -0
  99. package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js.map +1 -0
  100. package/dist/features/parent-dashboard/modals/hooks/use-pla-model-handlers.js +58 -0
  101. package/dist/features/parent-dashboard/modals/hooks/use-pla-model-handlers.js.map +1 -0
  102. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary.js +16 -17
  103. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary.js.map +1 -1
  104. package/dist/features/parent-dashboard/modals/trial-report/trial-report-styled.js +4 -8
  105. package/dist/features/parent-dashboard/modals/trial-report/trial-report-styled.js.map +1 -1
  106. package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js +3 -3
  107. package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js.map +1 -1
  108. package/dist/features/parent-dashboard/modals/view-payment-method/view-payment-method.js +76 -0
  109. package/dist/features/parent-dashboard/modals/view-payment-method/view-payment-method.js.map +1 -0
  110. package/dist/features/parent-dashboard/parent-dashboard-constants.js +45 -4
  111. package/dist/features/parent-dashboard/parent-dashboard-constants.js.map +1 -1
  112. package/dist/features/parent-dashboard/parent-dashboard-types.js +3 -3
  113. package/dist/features/parent-dashboard/parent-dashboard-types.js.map +1 -1
  114. package/dist/features/parent-dashboard/parent-dashboard-view.js +197 -174
  115. package/dist/features/parent-dashboard/parent-dashboard-view.js.map +1 -1
  116. package/dist/features/student-details/class-details/class-details-utils.js +6 -6
  117. package/dist/features/trial-session/api/teacher-availability.js +9 -0
  118. package/dist/features/trial-session/api/teacher-availability.js.map +1 -0
  119. package/dist/features/trial-session/comps/class-preference/class-preference.js +74 -58
  120. package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
  121. package/dist/features/trial-session/comps/class-preference/helpers.js +28 -0
  122. package/dist/features/trial-session/comps/class-preference/helpers.js.map +1 -0
  123. package/dist/features/trial-session/comps/learning-plan/index.js +47 -45
  124. package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
  125. package/dist/features/trial-session/comps/navigation-bar/index.js +41 -40
  126. package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
  127. package/dist/features/trial-session/comps/school-goals/school-goals.js +59 -57
  128. package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
  129. package/dist/features/trial-session/comps/session-report/session-report.js +15 -15
  130. package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
  131. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js +41 -40
  132. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
  133. package/dist/features/trial-session/comps/student-feedback/student-feedback-constants.js +5 -0
  134. package/dist/features/trial-session/comps/student-feedback/student-feedback-constants.js.map +1 -1
  135. package/dist/features/trial-session/comps/student-feedback/student-feedback.js +96 -51
  136. package/dist/features/trial-session/comps/student-feedback/student-feedback.js.map +1 -1
  137. package/dist/features/trial-session/comps/student-profile/student-profile.js +70 -63
  138. package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
  139. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js +43 -44
  140. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -1
  141. package/dist/features/trial-session/comps/test-prep/test-prep.js +41 -40
  142. package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
  143. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js +60 -61
  144. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
  145. package/dist/features/trial-session/helper.js +76 -61
  146. package/dist/features/trial-session/helper.js.map +1 -1
  147. package/dist/features/trial-session/hooks/use-slide-config-update.js +49 -0
  148. package/dist/features/trial-session/hooks/use-slide-config-update.js.map +1 -0
  149. package/dist/features/trial-session/hooks/use-trial-session-navigation.js +174 -144
  150. package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
  151. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  152. package/dist/features/trial-session/trial-session-view.js +99 -110
  153. package/dist/features/trial-session/trial-session-view.js.map +1 -1
  154. package/dist/features/ui/accordion/accordion-items/accordion-items.js +13 -13
  155. package/dist/features/ui/accordion/accordion-items/accordion-items.js.map +1 -1
  156. package/dist/features/utils/utils.js +1 -1
  157. package/dist/features/utils/utils.js.map +1 -1
  158. package/dist/index.d.ts +79 -78
  159. package/dist/index.js +316 -317
  160. package/dist/index.js.map +1 -1
  161. package/dist/static/learning-session-grid-bg-mobile.8d2b7258.gif +0 -0
  162. package/dist/static/way-forward-grid-bg-mobile.374043d7.gif +0 -0
  163. package/dist/static/your-goals-grid-bg-mobile.62557024.gif +0 -0
  164. package/package.json +1 -1
  165. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js +0 -12
  166. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js.map +0 -1
  167. package/dist/features/trial-session/comps/pla/next-steps/next-steps-constants.js.map +0 -1
  168. package/dist/features/trial-session/comps/pla/next-steps/next-steps-styled.js.map +0 -1
  169. package/dist/features/trial-session/comps/pla/next-steps/next-steps.js.map +0 -1
  170. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js +0 -29
  171. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js.map +0 -1
  172. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js +0 -132
  173. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js.map +0 -1
  174. package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js +0 -11
  175. package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js.map +0 -1
  176. package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js +0 -19
  177. package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js.map +0 -1
  178. package/dist/features/trial-session/comps/pla/session-status/session-status-styled.js.map +0 -1
  179. package/dist/features/trial-session/comps/pla/session-status/session-status.js +0 -127
  180. package/dist/features/trial-session/comps/pla/session-status/session-status.js.map +0 -1
  181. package/dist/features/trial-session/comps/pla/session-summary/session-summary-constants.js.map +0 -1
  182. package/dist/features/trial-session/comps/pla/session-summary/session-summary.js +0 -53
  183. package/dist/features/trial-session/comps/pla/session-summary/session-summary.js.map +0 -1
  184. package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card-styled.js.map +0 -1
  185. package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js +0 -56
  186. package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js.map +0 -1
  187. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-constants.js.map +0 -1
  188. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-styled.js.map +0 -1
  189. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-types.js.map +0 -1
  190. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions.js.map +0 -1
  191. package/dist/node_modules/date-fns/_lib/getRoundingMethod.js +0 -10
  192. package/dist/node_modules/date-fns/_lib/getRoundingMethod.js.map +0 -1
  193. package/dist/node_modules/date-fns/differenceInMilliseconds.js +0 -9
  194. package/dist/node_modules/date-fns/differenceInMilliseconds.js.map +0 -1
  195. package/dist/node_modules/date-fns/differenceInSeconds.js +0 -11
  196. package/dist/node_modules/date-fns/differenceInSeconds.js.map +0 -1
  197. package/dist/static/trophy.a8ea85ef.json +0 -6813
  198. /package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-constants.js +0 -0
  199. /package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"student-enrichment.js","sources":["../../../../../src/features/trial-session/comps/student-enrichment/student-enrichment.tsx"],"sourcesContent":["import type { ISelectOption } from '../../../ui/inputs/base-select-input/base-select-input-types';\n\nimport { memo, useCallback, useMemo } from 'react';\n\nimport { GIF } from '../../../../assets/gif/gif';\nimport { GOAL_CATEGORY } from '../../../milestone/constants';\nimport { getGoalsFromConfig } from '../../../milestone/create/milestone-create-helpers';\nimport Image from '../../../ui/image/image';\nimport SearchableSelectInput from '../../../ui/inputs/searchable-select-input/searchable-select-input';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { epochTimestampAfterOneYear } from '../../../utils/utils';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { updateGoalInFormData } from '../../helper';\nimport SlideHeader from '../slide-header';\nimport * as Styled from './student-enrichment-styled';\n\nconst StudentEnrichment = memo(() => {\n const { formData, milestoneConfig, updateSlideConfig, trialHomeData } = useTrialSessionContext();\n const { grade, goals } = formData || {};\n\n const { demo_info: demoInfo } = trialHomeData;\n const { stream, region_data: regionData } = demoInfo || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n\n const goalsList = useMemo(\n () =>\n getGoalsFromConfig(milestoneConfig, {\n countryCode,\n grade: grade ?? '',\n goalCategory: GOAL_CATEGORY.ENRICHMENT,\n courseStream: stream,\n enrollmentType: 'ONLINE',\n }),\n [milestoneConfig, countryCode, grade, stream],\n );\n\n const { goal_code: selectedGoal } = useMemo(\n () => goals?.find(goal => goal.goal_category === GOAL_CATEGORY.ENRICHMENT) ?? {},\n [goals],\n );\n\n const handleGoalChange = useCallback(\n (value: string, option: ISelectOption<string | number>) => {\n if (!value) {\n const goalsWithoutEnrichment = goals?.filter(\n goal => goal.goal_category !== GOAL_CATEGORY.ENRICHMENT,\n );\n\n updateSlideConfig({ goals: goalsWithoutEnrichment });\n\n return;\n }\n\n const { label } = option;\n\n const updatedGoals = updateGoalInFormData(goals, GOAL_CATEGORY.ENRICHMENT, {\n goal_code: value,\n milestone_name: label,\n milestone_date_ts: epochTimestampAfterOneYear(),\n });\n\n updateSlideConfig({ goals: updatedGoals });\n },\n [goals, updateSlideConfig],\n );\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader />\n <Styled.ContentWrapper $width={750} $flexDirection=\"row\" $justifyContent=\"center\">\n <Styled.ImageWrapper>\n <Image withLoader height={402} width={302} src={GIF.ENRICHMENT} className=\"image\" />\n </Styled.ImageWrapper>\n <Styled.InputContainer\n $flexGap={24}\n $justifyContent=\"center\"\n $background=\"PURPLE_1\"\n $borderColor=\"BLACK_1\"\n $gapX={2.5}\n $gutterX={2.5}\n >\n <SearchableSelectInput\n renderAs=\"primary\"\n label=\"Select a Goal\"\n value={selectedGoal}\n options={goalsList}\n shape=\"borderLess\"\n theme=\"dark\"\n onChange={handleGoalChange}\n isTransparent\n />\n </Styled.InputContainer>\n </Styled.ContentWrapper>\n <Separator heightX={1} />\n <Text $renderAs=\"ub3\" $align=\"center\">\n This is optional and can be skipped.\n </Text>\n </Styled.Container>\n );\n});\n\nexport default StudentEnrichment;\n"],"names":["StudentEnrichment","memo","formData","milestoneConfig","updateSlideConfig","trialHomeData","useTrialSessionContext","grade","goals","demoInfo","stream","regionData","countryCode","goalsList","useMemo","getGoalsFromConfig","GOAL_CATEGORY","selectedGoal","goal","handleGoalChange","useCallback","value","option","goalsWithoutEnrichment","label","updatedGoals","updateGoalInFormData","epochTimestampAfterOneYear","jsxs","Styled.Container","jsx","Separator","SlideHeader","Styled.ContentWrapper","Styled.ImageWrapper","Image","GIF","Styled.InputContainer","SearchableSelectInput","Text"],"mappings":";;;;;;;;;;;;;;AAiBM,MAAAA,IAAoBC,EAAK,MAAM;AACnC,QAAM,EAAE,UAAAC,GAAU,iBAAAC,GAAiB,mBAAAC,GAAmB,eAAAC,EAAA,IAAkBC,KAClE,EAAE,OAAAC,GAAO,OAAAC,MAAUN,KAAY,CAAA,GAE/B,EAAE,WAAWO,EAAa,IAAAJ,GAC1B,EAAE,QAAAK,GAAQ,aAAaC,EAAW,IAAIF,KAAY,CAAA,GAClD,EAAE,qBAAqBG,IAAc,KAAK,IAAID,KAAc,CAAA,GAE5DE,IAAYC;AAAA,IAChB,MACEC,EAAmBZ,GAAiB;AAAA,MAClC,aAAAS;AAAA,MACA,OAAOL,KAAS;AAAA,MAChB,cAAcS,EAAc;AAAA,MAC5B,cAAcN;AAAA,MACd,gBAAgB;AAAA,IAAA,CACjB;AAAA,IACH,CAACP,GAAiBS,GAAaL,GAAOG,CAAM;AAAA,EAAA,GAGxC,EAAE,WAAWO,EAAA,IAAiBH;AAAA,IAClC,OAAMN,KAAA,gBAAAA,EAAO,KAAK,CAAAU,MAAQA,EAAK,kBAAkBF,EAAc,gBAAe,CAAC;AAAA,IAC/E,CAACR,CAAK;AAAA,EAAA,GAGFW,IAAmBC;AAAA,IACvB,CAACC,GAAeC,MAA2C;AACzD,UAAI,CAACD,GAAO;AACV,cAAME,IAAyBf,KAAA,gBAAAA,EAAO;AAAA,UACpC,CAAAU,MAAQA,EAAK,kBAAkBF,EAAc;AAAA;AAG7B,QAAAZ,EAAA,EAAE,OAAOmB,EAAA,CAAwB;AAEnD;AAAA,MACF;AAEM,YAAA,EAAE,OAAAC,EAAU,IAAAF,GAEZG,IAAeC,EAAqBlB,GAAOQ,EAAc,YAAY;AAAA,QACzE,WAAWK;AAAA,QACX,gBAAgBG;AAAA,QAChB,mBAAmBG,EAA2B;AAAA,MAAA,CAC/C;AAEiB,MAAAvB,EAAA,EAAE,OAAOqB,EAAA,CAAc;AAAA,IAC3C;AAAA,IACA,CAACjB,GAAOJ,CAAiB;AAAA,EAAA;AAIzB,SAAA,gBAAAwB,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,sBACtBC,GAAY,EAAA;AAAA,IACb,gBAAAJ,EAACK,GAAA,EAAsB,QAAQ,KAAK,gBAAe,OAAM,iBAAgB,UACvE,UAAA;AAAA,MAAA,gBAAAH,EAACI,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EAAM,YAAU,IAAC,QAAQ,KAAK,OAAO,KAAK,KAAKC,EAAI,YAAY,WAAU,QAAQ,CAAA,GACpF;AAAA,MACA,gBAAAN;AAAA,QAACO;AAAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV,iBAAgB;AAAA,UAChB,aAAY;AAAA,UACZ,cAAa;AAAA,UACb,OAAO;AAAA,UACP,UAAU;AAAA,UAEV,UAAA,gBAAAP;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,OAAM;AAAA,cACN,OAAOrB;AAAA,cACP,SAASJ;AAAA,cACT,OAAM;AAAA,cACN,OAAM;AAAA,cACN,UAAUM;AAAA,cACV,eAAa;AAAA,YAAA;AAAA,UACf;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAW,EAACC,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,sBACtBQ,GAAK,EAAA,WAAU,OAAM,QAAO,UAAS,UAEtC,wCAAA;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC;"}
1
+ {"version":3,"file":"student-enrichment.js","sources":["../../../../../src/features/trial-session/comps/student-enrichment/student-enrichment.tsx"],"sourcesContent":["import type { ISelectOption } from '../../../ui/inputs/base-select-input/base-select-input-types';\n\nimport { memo, useCallback, useMemo } from 'react';\n\nimport { GIF } from '../../../../assets/gif/gif';\nimport { GOAL_CATEGORY } from '../../../milestone/constants';\nimport { getGoalsFromConfig } from '../../../milestone/create/milestone-create-helpers';\nimport Image from '../../../ui/image/image';\nimport SearchableSelectInput from '../../../ui/inputs/searchable-select-input/searchable-select-input';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { epochTimestampAfterOneYear } from '../../../utils/utils';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { isPLASource, updateGoalInFormData } from '../../helper';\nimport SlideHeader from '../slide-header';\nimport * as Styled from './student-enrichment-styled';\n\nconst StudentEnrichment = memo(() => {\n const { formData, milestoneConfig, updateSlideConfig, trialHomeData } = useTrialSessionContext();\n const { grade, goals } = formData || {};\n\n const { demo_info: demoInfo, intel_student: intelStudent } = trialHomeData;\n const { stream, region_data: regionData } = demoInfo || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n const isPLA = isPLASource(intelStudent?.source);\n\n const goalsList = useMemo(\n () =>\n getGoalsFromConfig(milestoneConfig, {\n countryCode,\n grade: grade ?? '',\n goalCategory: GOAL_CATEGORY.ENRICHMENT,\n courseStream: stream,\n enrollmentType: 'ONLINE',\n }),\n [milestoneConfig, countryCode, grade, stream],\n );\n\n const { goal_code: selectedGoal } = useMemo(\n () => goals?.find(goal => goal.goal_category === GOAL_CATEGORY.ENRICHMENT) ?? {},\n [goals],\n );\n\n const handleGoalChange = useCallback(\n (value: string, option: ISelectOption<string | number>) => {\n if (!value) {\n const goalsWithoutEnrichment = goals?.filter(\n goal => goal.goal_category !== GOAL_CATEGORY.ENRICHMENT,\n );\n\n updateSlideConfig({ goals: goalsWithoutEnrichment });\n\n return;\n }\n\n const { label } = option;\n\n const updatedGoals = updateGoalInFormData(goals, GOAL_CATEGORY.ENRICHMENT, {\n goal_code: value,\n milestone_name: label,\n milestone_date_ts: epochTimestampAfterOneYear(),\n publish: isPLA,\n });\n\n updateSlideConfig({ goals: updatedGoals });\n },\n [goals, isPLA, updateSlideConfig],\n );\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader />\n <Styled.ContentWrapper $width={750} $flexDirection=\"row\" $justifyContent=\"center\">\n <Styled.ImageWrapper>\n <Image withLoader height={402} width={302} src={GIF.ENRICHMENT} className=\"image\" />\n </Styled.ImageWrapper>\n <Styled.InputContainer\n $flexGap={24}\n $justifyContent=\"center\"\n $background=\"PURPLE_1\"\n $borderColor=\"BLACK_1\"\n $gapX={2.5}\n $gutterX={2.5}\n >\n <SearchableSelectInput\n renderAs=\"primary\"\n label=\"Select a Goal\"\n value={selectedGoal}\n options={goalsList}\n shape=\"borderLess\"\n theme=\"dark\"\n onChange={handleGoalChange}\n isTransparent\n />\n </Styled.InputContainer>\n </Styled.ContentWrapper>\n <Separator heightX={1} />\n <Text $renderAs=\"ub3\" $align=\"center\">\n This is optional and can be skipped.\n </Text>\n </Styled.Container>\n );\n});\n\nexport default StudentEnrichment;\n"],"names":["StudentEnrichment","memo","formData","milestoneConfig","updateSlideConfig","trialHomeData","useTrialSessionContext","grade","goals","demoInfo","intelStudent","stream","regionData","countryCode","isPLA","isPLASource","goalsList","useMemo","getGoalsFromConfig","GOAL_CATEGORY","selectedGoal","goal","handleGoalChange","useCallback","value","option","goalsWithoutEnrichment","label","updatedGoals","updateGoalInFormData","epochTimestampAfterOneYear","jsxs","Styled.Container","jsx","Separator","SlideHeader","Styled.ContentWrapper","Styled.ImageWrapper","Image","GIF","Styled.InputContainer","SearchableSelectInput","Text"],"mappings":";;;;;;;;;;;;;;AAiBM,MAAAA,KAAoBC,EAAK,MAAM;AACnC,QAAM,EAAE,UAAAC,GAAU,iBAAAC,GAAiB,mBAAAC,GAAmB,eAAAC,EAAA,IAAkBC,KAClE,EAAE,OAAAC,GAAO,OAAAC,MAAUN,KAAY,CAAA,GAE/B,EAAE,WAAWO,GAAU,eAAeC,MAAiBL,GACvD,EAAE,QAAAM,GAAQ,aAAaC,EAAW,IAAIH,KAAY,CAAA,GAClD,EAAE,qBAAqBI,IAAc,KAAK,IAAID,KAAc,CAAA,GAC5DE,IAAQC,EAAYL,KAAA,gBAAAA,EAAc,MAAM,GAExCM,IAAYC;AAAA,IAChB,MACEC,EAAmBf,GAAiB;AAAA,MAClC,aAAAU;AAAA,MACA,OAAON,KAAS;AAAA,MAChB,cAAcY,EAAc;AAAA,MAC5B,cAAcR;AAAA,MACd,gBAAgB;AAAA,IAAA,CACjB;AAAA,IACH,CAACR,GAAiBU,GAAaN,GAAOI,CAAM;AAAA,EAAA,GAGxC,EAAE,WAAWS,EAAA,IAAiBH;AAAA,IAClC,OAAMT,KAAA,gBAAAA,EAAO,KAAK,CAAAa,MAAQA,EAAK,kBAAkBF,EAAc,gBAAe,CAAC;AAAA,IAC/E,CAACX,CAAK;AAAA,EAAA,GAGFc,IAAmBC;AAAA,IACvB,CAACC,GAAeC,MAA2C;AACzD,UAAI,CAACD,GAAO;AACV,cAAME,IAAyBlB,KAAA,gBAAAA,EAAO;AAAA,UACpC,CAAAa,MAAQA,EAAK,kBAAkBF,EAAc;AAAA;AAG7B,QAAAf,EAAA,EAAE,OAAOsB,EAAA,CAAwB;AAEnD;AAAA,MACF;AAEM,YAAA,EAAE,OAAAC,EAAU,IAAAF,GAEZG,IAAeC,EAAqBrB,GAAOW,EAAc,YAAY;AAAA,QACzE,WAAWK;AAAA,QACX,gBAAgBG;AAAA,QAChB,mBAAmBG,EAA2B;AAAA,QAC9C,SAAShB;AAAA,MAAA,CACV;AAEiB,MAAAV,EAAA,EAAE,OAAOwB,EAAA,CAAc;AAAA,IAC3C;AAAA,IACA,CAACpB,GAAOM,GAAOV,CAAiB;AAAA,EAAA;AAIhC,SAAA,gBAAA2B,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,sBACtBC,GAAY,EAAA;AAAA,IACb,gBAAAJ,EAACK,GAAA,EAAsB,QAAQ,KAAK,gBAAe,OAAM,iBAAgB,UACvE,UAAA;AAAA,MAAA,gBAAAH,EAACI,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EAAM,YAAU,IAAC,QAAQ,KAAK,OAAO,KAAK,KAAKC,EAAI,YAAY,WAAU,QAAQ,CAAA,GACpF;AAAA,MACA,gBAAAN;AAAA,QAACO;AAAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV,iBAAgB;AAAA,UAChB,aAAY;AAAA,UACZ,cAAa;AAAA,UACb,OAAO;AAAA,UACP,UAAU;AAAA,UAEV,UAAA,gBAAAP;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,OAAM;AAAA,cACN,OAAOrB;AAAA,cACP,SAASJ;AAAA,cACT,OAAM;AAAA,cACN,OAAM;AAAA,cACN,UAAUM;AAAA,cACV,eAAa;AAAA,YAAA;AAAA,UACf;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAW,EAACC,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,sBACtBQ,GAAK,EAAA,WAAU,OAAM,QAAO,UAAS,UAEtC,wCAAA;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC;"}
@@ -15,8 +15,13 @@ const n = {
15
15
  description: "Student is ready to tackle challenging concepts and problems.",
16
16
  icon: e.GREEN_FACE
17
17
  }
18
+ }, i = {
19
+ "MATH.POS.PLA1": "MATH.LVL.BEGIN",
20
+ "MATH.POS.PLA2": "MATH.LVL.INTERMEDIATE",
21
+ "MATH.POS.PLA3": "MATH.LVL.ADVANCED"
18
22
  };
19
23
  export {
24
+ i as PREFERENCE_CODE_MAP,
20
25
  n as studentLevels
21
26
  };
22
27
  //# sourceMappingURL=student-feedback-constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"student-feedback-constants.js","sources":["../../../../../src/features/trial-session/comps/student-feedback/student-feedback-constants.ts"],"sourcesContent":["import { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\n\nexport const studentLevels: Record<string, { title: string; description: string; icon: string }> = {\n beginner: {\n title: 'Basic',\n description: 'Student needs to focus on foundational concepts and skills',\n icon: ILLUSTRATIONS.ORANGE_FACE,\n },\n intermediate: {\n title: 'Intermediate',\n description: 'Student is comfortable with the basics, and is ready to apply them in problems',\n icon: ILLUSTRATIONS.YELLOW_FACE,\n },\n advanced: {\n title: 'Advanced',\n description: 'Student is ready to tackle challenging concepts and problems.',\n icon: ILLUSTRATIONS.GREEN_FACE,\n },\n};\n"],"names":["studentLevels","ILLUSTRATIONS"],"mappings":";AAEO,MAAMA,IAAsF;AAAA,EACjG,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAMC,EAAc;AAAA,EACtB;AAAA,EACA,cAAc;AAAA,IACZ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAMA,EAAc;AAAA,EACtB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAMA,EAAc;AAAA,EACtB;AACF;"}
1
+ {"version":3,"file":"student-feedback-constants.js","sources":["../../../../../src/features/trial-session/comps/student-feedback/student-feedback-constants.ts"],"sourcesContent":["import { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\n\nexport const studentLevels: Record<string, { title: string; description: string; icon: string }> = {\n beginner: {\n title: 'Basic',\n description: 'Student needs to focus on foundational concepts and skills',\n icon: ILLUSTRATIONS.ORANGE_FACE,\n },\n intermediate: {\n title: 'Intermediate',\n description: 'Student is comfortable with the basics, and is ready to apply them in problems',\n icon: ILLUSTRATIONS.YELLOW_FACE,\n },\n advanced: {\n title: 'Advanced',\n description: 'Student is ready to tackle challenging concepts and problems.',\n icon: ILLUSTRATIONS.GREEN_FACE,\n },\n};\n\nexport const PREFERENCE_CODE_MAP = {\n 'MATH.POS.PLA1': 'MATH.LVL.BEGIN',\n 'MATH.POS.PLA2': 'MATH.LVL.INTERMEDIATE',\n 'MATH.POS.PLA3': 'MATH.LVL.ADVANCED',\n};\n"],"names":["studentLevels","ILLUSTRATIONS","PREFERENCE_CODE_MAP"],"mappings":";AAEO,MAAMA,IAAsF;AAAA,EACjG,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAMC,EAAc;AAAA,EACtB;AAAA,EACA,cAAc;AAAA,IACZ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAMA,EAAc;AAAA,EACtB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAMA,EAAc;AAAA,EACtB;AACF,GAEaC,IAAsB;AAAA,EACjC,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;"}
@@ -1,38 +1,52 @@
1
- import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
- import { memo as E, useMemo as T, useCallback as _, useEffect as b } from "react";
3
- import { ILLUSTRATIONS as p } from "../../../../assets/illustrations/illustrations.js";
4
- import { COURSE_STREAMS as x, PREFERENCE_CATEGORY as S } from "../../../milestone/constants.js";
5
- import { getPreferencesFromConfig as A } from "../../../milestone/create/milestone-create-helpers.js";
6
- import l from "../../../ui/image/image.js";
7
- import w from "../../../ui/layout/flex-view.js";
8
- import k from "../../../ui/separator/separator.js";
9
- import B from "../../../ui/text/text.js";
10
- import { useTrialSessionContext as I } from "../../context/use-trial-session-context.js";
11
- import R from "../slide-header/index.js";
12
- import { studentLevels as N } from "./student-feedback-constants.js";
13
- import { Container as F, FeedbackWrapper as O, BalloonWrapper as X, Feedback as G, InlineText as H } from "./student-feedback-styled.js";
14
- const J = E(() => {
15
- const { formData: h, milestoneConfig: s, updateSlideConfig: c, updateButtonState: d } = I(), { grade: m, personalizedLevel: r = [] } = h || {}, f = r.length > 0, o = T(
16
- () => A(s, {
17
- grade: m ?? "",
18
- courseStream: x.MATH,
19
- preferenceCategory: S.LEVEL
1
+ import { jsxs as r, jsx as e, Fragment as H } from "react/jsx-runtime";
2
+ import { memo as P, useMemo as E, useCallback as v, useEffect as D } from "react";
3
+ import { ILLUSTRATIONS as _ } from "../../../../assets/illustrations/illustrations.js";
4
+ import { LOTTIE as W } from "../../../../assets/lottie/lottie.js";
5
+ import { COURSE_STREAMS as C, PREFERENCE_CATEGORY as $ } from "../../../milestone/constants.js";
6
+ import { getPreferencesFromConfig as b } from "../../../milestone/create/milestone-create-helpers.js";
7
+ import c from "../../../ui/image/image.js";
8
+ import X from "../../../ui/layout/flex-view.js";
9
+ import K from "../../../ui/lottie-animation/lottie-animation.js";
10
+ import y from "../../../ui/separator/separator.js";
11
+ import d from "../../../ui/text/text.js";
12
+ import { useTrialSessionContext as z } from "../../context/use-trial-session-context.js";
13
+ import { TrialPageId as G } from "../../trial-session-constants.js";
14
+ import M from "../slide-header/index.js";
15
+ import { studentLevels as j, PREFERENCE_CODE_MAP as U } from "./student-feedback-constants.js";
16
+ import { Container as V, FeedbackWrapper as q, BalloonWrapper as Y, Feedback as J, InlineText as Q } from "./student-feedback-styled.js";
17
+ const he = P(() => {
18
+ const { slideConfig: A, formData: S, milestoneConfig: a, updateSlideConfig: m, updateButtonState: p } = z(), { id: I } = A || {}, { grade: l, personalizedLevel: f = [], personalizedPosition: g = [] } = S || {}, t = I === G.STUDENT_LEVEL, h = t ? g.length > 0 : f.length > 0, k = E(
19
+ () => b(a, {
20
+ grade: l ?? "",
21
+ courseStream: C.MATH,
22
+ preferenceCategory: $.LEVEL
20
23
  }),
21
- [m, s]
22
- ), g = _(
24
+ [l, a]
25
+ ), x = E(
26
+ () => b(a, {
27
+ grade: l ?? "",
28
+ courseStream: C.MATH,
29
+ preferenceCategory: $.POSITION
30
+ }),
31
+ [l, a]
32
+ ), s = t ? x : k, N = v(
23
33
  (i) => {
24
- c({ personalizedLevel: [i] });
34
+ const n = t ? {
35
+ personalizedPosition: [i],
36
+ personalizedLevel: [U[i]]
37
+ } : { personalizedLevel: [i] };
38
+ m(n);
25
39
  },
26
- [c]
40
+ [t, m]
27
41
  );
28
- return b(() => {
29
- d("right", { isDisabled: !f, isLoading: !1 });
30
- }, [f, d]), /* @__PURE__ */ t(F, { children: [
31
- /* @__PURE__ */ e(k, { height: 60 }),
32
- /* @__PURE__ */ e(R, {}),
33
- /* @__PURE__ */ t(O, { $flexGapX: 1, $gapX: 2.25, $gutterX: 3.125, children: [
34
- /* @__PURE__ */ t(
35
- X,
42
+ return D(() => {
43
+ p("right", { isDisabled: !h, isLoading: !1 });
44
+ }, [h, p]), /* @__PURE__ */ r(V, { children: [
45
+ /* @__PURE__ */ e(y, { height: 60 }),
46
+ /* @__PURE__ */ e(M, {}),
47
+ /* @__PURE__ */ r(q, { $flexGapX: 1, $gapX: 2.25, $gutterX: 3.125, children: [
48
+ /* @__PURE__ */ r(
49
+ Y,
36
50
  {
37
51
  $flexDirection: "row",
38
52
  $justifyContent: "space-between",
@@ -40,20 +54,20 @@ const J = E(() => {
40
54
  $gutterX: 0.75,
41
55
  children: [
42
56
  /* @__PURE__ */ e(
43
- l,
57
+ c,
44
58
  {
45
59
  withLoader: !0,
46
- src: p.GREEN_BALLOON,
60
+ src: _.GREEN_BALLOON,
47
61
  width: 28,
48
62
  height: 34,
49
63
  alt: "balloon"
50
64
  }
51
65
  ),
52
66
  /* @__PURE__ */ e(
53
- l,
67
+ c,
54
68
  {
55
69
  withLoader: !0,
56
- src: p.GREEN_BALLOON,
70
+ src: _.GREEN_BALLOON,
57
71
  width: 28,
58
72
  height: 34,
59
73
  alt: "balloon"
@@ -62,39 +76,70 @@ const J = E(() => {
62
76
  ]
63
77
  }
64
78
  ),
65
- o && o.length > 0 && o.map((i) => {
66
- const { id: a, label: u } = i, { title: C, description: $, icon: L } = N[u.toLowerCase()] || {}, n = r == null ? void 0 : r.includes(a);
67
- return /* @__PURE__ */ t(
68
- G,
79
+ !!(s && s.length > 0) && s.map((i) => {
80
+ var u;
81
+ const { id: n, label: T, lottie: L, description: w } = i, { title: B, description: O, icon: R } = j[T.toLowerCase()] || {}, o = (u = t ? g : f) == null ? void 0 : u.includes(n), F = {
82
+ loop: !1,
83
+ autoplay: o
84
+ };
85
+ return /* @__PURE__ */ r(
86
+ J,
69
87
  {
70
88
  $flexDirection: "row",
71
89
  $alignItems: "center",
72
90
  $justifyContent: "flex-start",
73
91
  $flexGapX: 1.25,
74
- onClick: () => g(a),
92
+ onClick: () => N(n),
75
93
  $gutterX: 0.75,
76
94
  $gapX: 1,
77
- $background: n ? "BLACK_T_87" : "WHITE_1",
95
+ $background: o ? "BLACK_T_87" : "WHITE_1",
78
96
  $borderColor: "BLACK_T_87",
79
97
  children: [
80
- /* @__PURE__ */ e(l, { withLoader: !0, src: L, height: 64, width: 64, alt: "icon" }),
81
- /* @__PURE__ */ e(w, { $flex: 1, children: /* @__PURE__ */ t(
82
- B,
98
+ L ? /* @__PURE__ */ e(
99
+ K,
100
+ {
101
+ src: W[L],
102
+ height: 64,
103
+ width: 64,
104
+ settings: F
105
+ }
106
+ ) : /* @__PURE__ */ e(c, { withLoader: !0, src: R, height: 64, width: 64, alt: "icon" }),
107
+ /* @__PURE__ */ e(X, { $flex: 1, children: t ? /* @__PURE__ */ r(H, { children: [
108
+ /* @__PURE__ */ e(
109
+ d,
110
+ {
111
+ className: "feedback-title",
112
+ $renderAs: "ac3-black",
113
+ $color: o ? "WHITE_T_87" : "BLACK_T_87",
114
+ children: T
115
+ }
116
+ ),
117
+ /* @__PURE__ */ e(
118
+ d,
119
+ {
120
+ className: "feedback-desc",
121
+ $renderAs: "ab2",
122
+ $color: o ? "WHITE_T_87" : "BLACK_T_87",
123
+ children: w
124
+ }
125
+ )
126
+ ] }) : /* @__PURE__ */ r(
127
+ d,
83
128
  {
84
129
  className: "feedback-title",
85
130
  $renderAs: "ac3-black",
86
- $color: n ? "WHITE_T_87" : "BLACK_T_87",
131
+ $color: o ? "WHITE_T_87" : "BLACK_T_87",
87
132
  children: [
88
- C,
133
+ B,
89
134
  ":",
90
135
  " ",
91
136
  /* @__PURE__ */ e(
92
- H,
137
+ Q,
93
138
  {
94
139
  className: "feedback-desc",
95
140
  $renderAs: "ab2",
96
- $color: n ? "WHITE_T_60" : "BLACK_T_60",
97
- children: $
141
+ $color: o ? "WHITE_T_60" : "BLACK_T_60",
142
+ children: O
98
143
  }
99
144
  )
100
145
  ]
@@ -102,13 +147,13 @@ const J = E(() => {
102
147
  ) })
103
148
  ]
104
149
  },
105
- a
150
+ n
106
151
  );
107
152
  })
108
153
  ] })
109
154
  ] });
110
155
  });
111
156
  export {
112
- J as default
157
+ he as default
113
158
  };
114
159
  //# sourceMappingURL=student-feedback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"student-feedback.js","sources":["../../../../../src/features/trial-session/comps/student-feedback/student-feedback.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport { COURSE_STREAMS, PREFERENCE_CATEGORY } from '../../../milestone/constants';\nimport { getPreferencesFromConfig } from '../../../milestone/create/milestone-create-helpers';\nimport Image from '../../../ui/image/image';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport SlideHeader from '../slide-header';\nimport { studentLevels } from './student-feedback-constants';\nimport * as Styled from './student-feedback-styled';\n\nconst StudentFeedback = memo(() => {\n const { formData, milestoneConfig, updateSlideConfig, updateButtonState } =\n useTrialSessionContext();\n\n const { grade, personalizedLevel = [] } = formData || {};\n const hasRequiredFields = Boolean(personalizedLevel.length > 0);\n\n const levelList = useMemo(\n () =>\n getPreferencesFromConfig(milestoneConfig, {\n grade: grade ?? '',\n courseStream: COURSE_STREAMS.MATH,\n preferenceCategory: PREFERENCE_CATEGORY.LEVEL,\n }),\n [grade, milestoneConfig],\n );\n\n const handleClick = useCallback(\n (id: string) => {\n updateSlideConfig({ personalizedLevel: [id] });\n },\n [updateSlideConfig],\n );\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: !hasRequiredFields, isLoading: false });\n }, [hasRequiredFields, updateButtonState]);\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader />\n <Styled.FeedbackWrapper $flexGapX={1} $gapX={2.25} $gutterX={3.125}>\n <Styled.BalloonWrapper\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n $gutterX={0.75}\n >\n <Image\n withLoader\n src={ILLUSTRATIONS.GREEN_BALLOON}\n width={28}\n height={34}\n alt=\"balloon\"\n />\n <Image\n withLoader\n src={ILLUSTRATIONS.GREEN_BALLOON}\n width={28}\n height={34}\n alt=\"balloon\"\n />\n </Styled.BalloonWrapper>\n {levelList &&\n levelList.length > 0 &&\n levelList.map(level => {\n const { id, label } = level;\n const { title, description, icon } = studentLevels[label.toLowerCase()] || {};\n const isSelected = personalizedLevel?.includes(id);\n\n return (\n <Styled.Feedback\n key={id}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"flex-start\"\n $flexGapX={1.25}\n onClick={() => handleClick(id)}\n $gutterX={0.75}\n $gapX={1}\n $background={isSelected ? 'BLACK_T_87' : 'WHITE_1'}\n $borderColor=\"BLACK_T_87\"\n >\n <Image withLoader src={icon} height={64} width={64} alt=\"icon\" />\n <FlexView $flex={1}>\n <Text\n className=\"feedback-title\"\n $renderAs=\"ac3-black\"\n $color={isSelected ? 'WHITE_T_87' : 'BLACK_T_87'}\n >\n {title}:{' '}\n <Styled.InlineText\n className=\"feedback-desc\"\n $renderAs=\"ab2\"\n $color={isSelected ? 'WHITE_T_60' : 'BLACK_T_60'}\n >\n {description}\n </Styled.InlineText>\n </Text>\n </FlexView>\n </Styled.Feedback>\n );\n })}\n </Styled.FeedbackWrapper>\n </Styled.Container>\n );\n});\n\nexport default StudentFeedback;\n"],"names":["StudentFeedback","memo","formData","milestoneConfig","updateSlideConfig","updateButtonState","useTrialSessionContext","grade","personalizedLevel","hasRequiredFields","levelList","useMemo","getPreferencesFromConfig","COURSE_STREAMS","PREFERENCE_CATEGORY","handleClick","useCallback","id","useEffect","jsxs","Styled.Container","jsx","Separator","SlideHeader","Styled.FeedbackWrapper","Styled.BalloonWrapper","Image","ILLUSTRATIONS","level","label","title","description","icon","studentLevels","isSelected","Styled.Feedback","FlexView","Text","Styled.InlineText"],"mappings":"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"}
1
+ {"version":3,"file":"student-feedback.js","sources":["../../../../../src/features/trial-session/comps/student-feedback/student-feedback.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport { LOTTIE } from '../../../../assets/lottie/lottie';\nimport { COURSE_STREAMS, PREFERENCE_CATEGORY } from '../../../milestone/constants';\nimport { getPreferencesFromConfig } from '../../../milestone/create/milestone-create-helpers';\nimport Image from '../../../ui/image/image';\nimport FlexView from '../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { TrialPageId } from '../../trial-session-constants';\nimport SlideHeader from '../slide-header';\nimport { PREFERENCE_CODE_MAP, studentLevels } from './student-feedback-constants';\nimport * as Styled from './student-feedback-styled';\n\nconst StudentFeedback = memo(() => {\n const { slideConfig, formData, milestoneConfig, updateSlideConfig, updateButtonState } =\n useTrialSessionContext();\n\n const { id: slideId } = slideConfig || {};\n const { grade, personalizedLevel = [], personalizedPosition = [] } = formData || {};\n const isStudentLevel = slideId === TrialPageId.STUDENT_LEVEL;\n const hasRequiredFields = Boolean(\n isStudentLevel ? personalizedPosition.length > 0 : personalizedLevel.length > 0,\n );\n\n const levelList = useMemo(\n () =>\n getPreferencesFromConfig(milestoneConfig, {\n grade: grade ?? '',\n courseStream: COURSE_STREAMS.MATH,\n preferenceCategory: PREFERENCE_CATEGORY.LEVEL,\n }),\n [grade, milestoneConfig],\n );\n\n const positionList = useMemo(\n () =>\n getPreferencesFromConfig(milestoneConfig, {\n grade: grade ?? '',\n courseStream: COURSE_STREAMS.MATH,\n preferenceCategory: PREFERENCE_CATEGORY.POSITION,\n }),\n [grade, milestoneConfig],\n );\n\n const studentOptions = isStudentLevel ? positionList : levelList;\n\n const handleClick = useCallback(\n (id: string) => {\n const configToUpdate = isStudentLevel\n ? {\n personalizedPosition: [id],\n personalizedLevel: [PREFERENCE_CODE_MAP[id as keyof typeof PREFERENCE_CODE_MAP]],\n }\n : { personalizedLevel: [id] };\n\n updateSlideConfig(configToUpdate);\n },\n [isStudentLevel, updateSlideConfig],\n );\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: !hasRequiredFields, isLoading: false });\n }, [hasRequiredFields, updateButtonState]);\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader />\n <Styled.FeedbackWrapper $flexGapX={1} $gapX={2.25} $gutterX={3.125}>\n <Styled.BalloonWrapper\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n $gutterX={0.75}\n >\n <Image\n withLoader\n src={ILLUSTRATIONS.GREEN_BALLOON}\n width={28}\n height={34}\n alt=\"balloon\"\n />\n <Image\n withLoader\n src={ILLUSTRATIONS.GREEN_BALLOON}\n width={28}\n height={34}\n alt=\"balloon\"\n />\n </Styled.BalloonWrapper>\n {Boolean(studentOptions && studentOptions.length > 0) &&\n studentOptions.map(level => {\n const { id, label, lottie, description: levelDescription } = level;\n const { title, description, icon } = studentLevels[label.toLowerCase()] || {};\n const isSelected = (\n isStudentLevel ? personalizedPosition : personalizedLevel\n )?.includes(id);\n\n const animationSettings = {\n loop: false,\n autoplay: isSelected,\n };\n\n return (\n <Styled.Feedback\n key={id}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"flex-start\"\n $flexGapX={1.25}\n onClick={() => handleClick(id)}\n $gutterX={0.75}\n $gapX={1}\n $background={isSelected ? 'BLACK_T_87' : 'WHITE_1'}\n $borderColor=\"BLACK_T_87\"\n >\n {lottie ? (\n <LottieAnimation\n src={LOTTIE[lottie]}\n height={64}\n width={64}\n settings={animationSettings}\n />\n ) : (\n <Image withLoader src={icon} height={64} width={64} alt=\"icon\" />\n )}\n <FlexView $flex={1}>\n {isStudentLevel ? (\n <>\n <Text\n className=\"feedback-title\"\n $renderAs=\"ac3-black\"\n $color={isSelected ? 'WHITE_T_87' : 'BLACK_T_87'}\n >\n {label}\n </Text>\n <Text\n className=\"feedback-desc\"\n $renderAs=\"ab2\"\n $color={isSelected ? 'WHITE_T_87' : 'BLACK_T_87'}\n >\n {levelDescription}\n </Text>\n </>\n ) : (\n <Text\n className=\"feedback-title\"\n $renderAs=\"ac3-black\"\n $color={isSelected ? 'WHITE_T_87' : 'BLACK_T_87'}\n >\n {title}:{' '}\n <Styled.InlineText\n className=\"feedback-desc\"\n $renderAs=\"ab2\"\n $color={isSelected ? 'WHITE_T_60' : 'BLACK_T_60'}\n >\n {description}\n </Styled.InlineText>\n </Text>\n )}\n </FlexView>\n </Styled.Feedback>\n );\n })}\n </Styled.FeedbackWrapper>\n </Styled.Container>\n );\n});\n\nexport default StudentFeedback;\n"],"names":["StudentFeedback","memo","slideConfig","formData","milestoneConfig","updateSlideConfig","updateButtonState","useTrialSessionContext","slideId","grade","personalizedLevel","personalizedPosition","isStudentLevel","TrialPageId","hasRequiredFields","levelList","useMemo","getPreferencesFromConfig","COURSE_STREAMS","PREFERENCE_CATEGORY","positionList","studentOptions","handleClick","useCallback","id","configToUpdate","PREFERENCE_CODE_MAP","useEffect","jsxs","Styled.Container","jsx","Separator","SlideHeader","Styled.FeedbackWrapper","Styled.BalloonWrapper","Image","ILLUSTRATIONS","level","label","lottie","levelDescription","title","description","icon","studentLevels","isSelected","_a","animationSettings","Styled.Feedback","LottieAnimation","LOTTIE","FlexView","Fragment","Text","Styled.InlineText"],"mappings":"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"}
@@ -1,95 +1,102 @@
1
- import { jsx as e, jsxs as a } from "react/jsx-runtime";
2
- import { memo as H, useMemo as L, useCallback as k, useEffect as d } from "react";
3
- import { ILLUSTRATIONS as f } from "../../../../assets/illustrations/illustrations.js";
4
- import { GOAL_CATEGORY as $ } from "../../../milestone/constants.js";
5
- import N from "../../../ui/error/error.js";
6
- import U from "../../../ui/image/image.js";
7
- import C from "../../../ui/layout/flex-view.js";
8
- import v from "../../../ui/loader/app-loader/app-loader.js";
9
- import M from "../../../ui/separator/separator.js";
10
- import I from "../../../ui/text/text.js";
11
- import { useGetStudentProfileSummary as W } from "../../api/student-profile-summary.js";
1
+ import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
+ import { memo as N, useMemo as C, useCallback as U, useEffect as f } from "react";
3
+ import { ILLUSTRATIONS as c } from "../../../../assets/illustrations/illustrations.js";
4
+ import { GOAL_CATEGORY as L } from "../../../milestone/constants.js";
5
+ import W from "../../../ui/error/error.js";
6
+ import v from "../../../ui/image/image.js";
7
+ import A from "../../../ui/layout/flex-view.js";
8
+ import K from "../../../ui/loader/app-loader/app-loader.js";
9
+ import I from "../../../ui/separator/separator.js";
10
+ import p from "../../../ui/text/text.js";
11
+ import { useGetStudentProfileSummary as M } from "../../api/student-profile-summary.js";
12
12
  import { useTrialSessionContext as X } from "../../context/use-trial-session-context.js";
13
- import { getFormattedStudentPersonalizedPreference as K } from "../../helper.js";
13
+ import { getFormattedStudentPersonalizedPreference as y } from "../../helper.js";
14
14
  import j from "../slide-header/index.js";
15
15
  import { GOAL_MAPPING as z } from "./constant.js";
16
16
  import F from "./student-profile-highlights/student-profile-highlights.js";
17
- import { Container as V, ContentWrapper as y, AbsoluteImage as Y, ImageWrapper as q } from "./student-profile-styled.js";
18
- import { getDummyProfileImage as J, getMilestoneGoalName as A } from "./student-profile-utils.js";
19
- const he = H(() => {
17
+ import { Container as V, ContentWrapper as b, AbsoluteImage as Y, ImageWrapper as q } from "./student-profile-styled.js";
18
+ import { getDummyProfileImage as J, getMilestoneGoalName as G } from "./student-profile-utils.js";
19
+ const he = N(() => {
20
20
  const {
21
- isTeacher: o,
21
+ isTeacher: n,
22
22
  studentId: u,
23
- formData: b,
24
- slideConfig: G,
25
- milestoneConfig: c,
26
- updateSlideConfig: p,
27
- updateButtonState: g
28
- } = X(), { showProfileHighlights: r } = G, {
29
- name: O,
23
+ formData: O,
24
+ slideConfig: T,
25
+ milestoneConfig: m,
26
+ updateSlideConfig: g,
27
+ updateButtonState: h
28
+ } = X(), { showProfileHighlights: r } = T, {
29
+ name: x,
30
30
  goals: t = [],
31
- studentProfile: i,
32
- personalizedLevel: h = [],
33
- personalizedObjectives: P = []
34
- } = b || {}, { dummyProfileImageIndex: x, profileSummary: R } = i || {}, T = J(x), m = L(() => t && t.length > 0 ? {
35
- school_success_goal: A(t, $.SCHOOL_SUCCESS),
36
- test_prep_goal: A(t, $.TEST_PREP)
31
+ studentProfile: a,
32
+ personalizedObjectives: P = [],
33
+ personalizedPosition: _ = []
34
+ } = O || {}, { dummyProfileImageIndex: R, profileSummary: w } = a || {}, B = J(R), l = C(() => t && t.length > 0 ? {
35
+ school_success_goal: G(t, L.SCHOOL_SUCCESS),
36
+ test_prep_goal: G(t, L.TEST_PREP)
37
37
  } : null, [t]), {
38
38
  get: S,
39
- data: w,
40
- isProcessing: l,
41
- isProcessed: _,
42
- isProcessingFailed: D
43
- } = W(), { profile_summary: E } = w || {}, s = k(() => {
44
- m && S(u, m);
45
- }, [S, m, u]);
46
- d(() => {
47
- g("right", { isDisabled: l, isLoading: !1 });
48
- }, [l, g]), d(() => {
49
- o && !i && !r && s();
50
- }, [s, o, i, r]), d(() => {
51
- o && _ && !r && p({
39
+ data: D,
40
+ isProcessing: s,
41
+ isProcessed: $,
42
+ isProcessingFailed: H
43
+ } = M(), { profile_summary: E } = D || {}, d = U(() => {
44
+ l && S(u, l);
45
+ }, [S, l, u]);
46
+ f(() => {
47
+ h("right", { isDisabled: s, isLoading: !1 });
48
+ }, [s, h]), f(() => {
49
+ n && !a && !r && d();
50
+ }, [d, n, a, r]), f(() => {
51
+ n && $ && !r && g({
52
52
  studentProfile: {
53
53
  profileSummary: E || "",
54
54
  dummyProfileImageIndex: Math.floor(Math.random() * 6)
55
55
  }
56
56
  });
57
- }, [_, o, r, E, p]);
58
- const B = L(
57
+ }, [$, n, r, E, g]);
58
+ const k = C(
59
59
  () => [
60
60
  {
61
- title: "Studnet Level",
62
- description: `Catching up: ${h[0]}`,
63
- illustration: f.KNOWLEDGE_BLUE,
61
+ title: "Student Level",
62
+ description: `Catching up: ${y(
63
+ m,
64
+ _
65
+ ).map((o) => o.preference_description)}`,
66
+ illustration: c.KNOWLEDGE_BLUE,
64
67
  background: "BLUE_1"
65
68
  },
66
69
  {
67
- illustration: f.ARROW_BOARD_GREEN,
70
+ illustration: c.ARROW_BOARD_GREEN,
68
71
  background: "GREEN_1",
69
72
  title: "Goals",
70
- description: K(
71
- c,
73
+ description: y(
74
+ m,
72
75
  P
73
- ).map((n) => n.preference_name)
76
+ ).map((o) => o.preference_name)
74
77
  },
75
78
  {
76
- illustration: f.BOOK_CHECKED_PURPLE,
79
+ illustration: c.BOOK_CHECKED_PURPLE,
77
80
  background: "PURPLE_1",
78
81
  title: "Learning Plan",
79
82
  description: t.map(
80
- (n) => `${z[n.goal_category]}: ${n.milestone_name}`
83
+ (o) => `${z[o.goal_category]}: ${o.milestone_name}`
81
84
  )
82
85
  }
83
86
  ],
84
- [t, c, h, P]
87
+ [t, m, P, _]
85
88
  );
86
- return D ? /* @__PURE__ */ e(N, { height: "70vh", onTryAgain: s }) : l || !i && !r ? /* @__PURE__ */ e(v, { height: "100vh" }) : /* @__PURE__ */ a(V, { children: [
87
- /* @__PURE__ */ e(M, { height: 60 }),
89
+ return H ? /* @__PURE__ */ e(W, { height: "70vh", onTryAgain: d }) : s || !a && !r ? /* @__PURE__ */ e(K, { height: "100vh" }) : /* @__PURE__ */ i(V, { children: [
90
+ /* @__PURE__ */ e(I, { height: 60 }),
88
91
  /* @__PURE__ */ e(j, { marginBottom: r ? 50 : 100 }),
89
- r ? /* @__PURE__ */ e(y, { $width: 650, children: /* @__PURE__ */ e(F, { profileHighlights: B }) }) : /* @__PURE__ */ a(y, { $widthX: 46.875, children: [
92
+ r ? /* @__PURE__ */ i(b, { $width: 650, children: [
93
+ /* @__PURE__ */ e(F, { profileHighlights: k }),
94
+ /* @__PURE__ */ e(I, { height: 16 }),
95
+ /* @__PURE__ */ e(p, { $renderAs: "ub3", $color: "BLACK_T_60", $align: "center", children: "We can always revisit this later" })
96
+ ] }) : /* @__PURE__ */ i(b, { $widthX: 46.875, children: [
90
97
  /* @__PURE__ */ e(Y, {}),
91
- /* @__PURE__ */ a(
92
- C,
98
+ /* @__PURE__ */ i(
99
+ A,
93
100
  {
94
101
  $width: "100%",
95
102
  $heightX: 21.875,
@@ -101,10 +108,10 @@ const he = H(() => {
101
108
  $borderColor: "BLACK_T_87",
102
109
  $borderRadiusX: 0.5,
103
110
  children: [
104
- /* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(U, { withLoader: !0, height: 200, width: 200, src: T }) }),
105
- /* @__PURE__ */ a(C, { $flexGap: 16, children: [
106
- /* @__PURE__ */ e(I, { $renderAs: "ac2-black", children: O }),
107
- /* @__PURE__ */ e(I, { $renderAs: "ab1", children: R || "" })
111
+ /* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(v, { withLoader: !0, height: 200, width: 200, src: B }) }),
112
+ /* @__PURE__ */ i(A, { $flexGap: 16, children: [
113
+ /* @__PURE__ */ e(p, { $renderAs: "ac2-black", children: x }),
114
+ /* @__PURE__ */ e(p, { $renderAs: "ab1", children: w || "" })
108
115
  ] })
109
116
  ]
110
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"student-profile.js","sources":["../../../../../src/features/trial-session/comps/student-profile/student-profile.tsx"],"sourcesContent":["import type { TGoalCategory } from '../../../milestone/create/milestone-create-types';\nimport type { TColorNames } from '../../../ui/types';\nimport type { IGetStudentProfileSummaryQuery } from '../../api/student-profile-summary';\n\nimport { memo, useCallback, useEffect, useMemo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport { GOAL_CATEGORY } from '../../../milestone/constants';\nimport Error from '../../../ui/error/error';\nimport Image from '../../../ui/image/image';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useGetStudentProfileSummary } from '../../api/student-profile-summary';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { getFormattedStudentPersonalizedPreference } from '../../helper';\nimport SlideHeader from '../slide-header';\nimport { GOAL_MAPPING } from './constant';\nimport StudentProfileHighlights from './student-profile-highlights/student-profile-highlights';\nimport * as Styled from './student-profile-styled';\nimport { getDummyProfileImage, getMilestoneGoalName } from './student-profile-utils';\n\ntype TProfileHighlight = {\n illustration: string;\n background: TColorNames;\n title: string;\n description: string | string[];\n};\n\nconst StudentProfile = memo(() => {\n const {\n isTeacher,\n studentId,\n formData,\n slideConfig,\n milestoneConfig,\n updateSlideConfig,\n updateButtonState,\n } = useTrialSessionContext();\n const { showProfileHighlights } = slideConfig;\n\n const {\n name,\n goals = [],\n studentProfile,\n personalizedLevel = [],\n personalizedObjectives = [],\n } = formData || {};\n const { dummyProfileImageIndex, profileSummary } = studentProfile || {};\n const dummyProfileImage = getDummyProfileImage(dummyProfileImageIndex);\n\n const payload = useMemo<IGetStudentProfileSummaryQuery | null>(() => {\n if (goals && goals.length > 0) {\n return {\n school_success_goal: getMilestoneGoalName(goals, GOAL_CATEGORY.SCHOOL_SUCCESS),\n test_prep_goal: getMilestoneGoalName(goals, GOAL_CATEGORY.TEST_PREP),\n };\n }\n\n return null;\n }, [goals]);\n\n const {\n get: getStudentProfileSummary,\n data,\n isProcessing,\n isProcessed,\n isProcessingFailed,\n } = useGetStudentProfileSummary();\n const { profile_summary: studentProfileSummary } = data || {};\n\n const fetchData = useCallback(() => {\n if (payload) {\n getStudentProfileSummary(studentId, payload);\n }\n }, [getStudentProfileSummary, payload, studentId]);\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: isProcessing, isLoading: false });\n }, [isProcessing, updateButtonState]);\n\n useEffect(() => {\n if (isTeacher && !studentProfile && !showProfileHighlights) {\n fetchData();\n }\n }, [fetchData, isTeacher, studentProfile, showProfileHighlights]);\n\n useEffect(() => {\n if (isTeacher && isProcessed && !showProfileHighlights) {\n updateSlideConfig({\n studentProfile: {\n profileSummary: studentProfileSummary || '',\n dummyProfileImageIndex: Math.floor(Math.random() * 6),\n },\n });\n }\n }, [isProcessed, isTeacher, showProfileHighlights, studentProfileSummary, updateSlideConfig]);\n\n const profileHighlights: TProfileHighlight[] = useMemo(\n () => [\n {\n title: 'Studnet Level',\n description: `Catching up: ${personalizedLevel[0]}`,\n illustration: ILLUSTRATIONS.KNOWLEDGE_BLUE,\n background: 'BLUE_1',\n },\n {\n illustration: ILLUSTRATIONS.ARROW_BOARD_GREEN,\n background: 'GREEN_1',\n title: 'Goals',\n description: getFormattedStudentPersonalizedPreference(\n milestoneConfig,\n personalizedObjectives,\n ).map(objectives => objectives.preference_name),\n },\n {\n illustration: ILLUSTRATIONS.BOOK_CHECKED_PURPLE,\n background: 'PURPLE_1',\n title: 'Learning Plan',\n description: goals.map(\n goal => `${GOAL_MAPPING[goal.goal_category as TGoalCategory]}: ${goal.milestone_name}`,\n ),\n },\n ],\n [goals, milestoneConfig, personalizedLevel, personalizedObjectives],\n );\n\n if (isProcessingFailed) {\n return <Error height=\"70vh\" onTryAgain={fetchData} />;\n }\n\n if (isProcessing || (!studentProfile && !showProfileHighlights)) {\n return <AppLoader height=\"100vh\" />;\n }\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader marginBottom={showProfileHighlights ? 50 : 100} />\n {showProfileHighlights ? (\n <Styled.ContentWrapper $width={650}>\n <StudentProfileHighlights profileHighlights={profileHighlights} />\n </Styled.ContentWrapper>\n ) : (\n <Styled.ContentWrapper $widthX={46.875}>\n <Styled.AbsoluteImage />\n <FlexView\n $width=\"100%\"\n $heightX={21.875}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $flexGapX={1.5}\n $gutterX={1.5}\n $background=\"WHITE_2\"\n $borderColor=\"BLACK_T_87\"\n $borderRadiusX={0.5}\n >\n <Styled.ImageWrapper>\n <Image withLoader height={200} width={200} src={dummyProfileImage} />\n </Styled.ImageWrapper>\n <FlexView $flexGap={16}>\n <Text $renderAs=\"ac2-black\">{name}</Text>\n <Text $renderAs=\"ab1\">{profileSummary || ''}</Text>\n </FlexView>\n </FlexView>\n </Styled.ContentWrapper>\n )}\n </Styled.Container>\n );\n});\n\nexport default StudentProfile;\n"],"names":["StudentProfile","memo","isTeacher","studentId","formData","slideConfig","milestoneConfig","updateSlideConfig","updateButtonState","useTrialSessionContext","showProfileHighlights","name","goals","studentProfile","personalizedLevel","personalizedObjectives","dummyProfileImageIndex","profileSummary","dummyProfileImage","getDummyProfileImage","payload","useMemo","getMilestoneGoalName","GOAL_CATEGORY","getStudentProfileSummary","data","isProcessing","isProcessed","isProcessingFailed","useGetStudentProfileSummary","studentProfileSummary","fetchData","useCallback","useEffect","profileHighlights","ILLUSTRATIONS","getFormattedStudentPersonalizedPreference","objectives","goal","GOAL_MAPPING","jsx","Error","AppLoader","jsxs","Styled.Container","Separator","SlideHeader","Styled.ContentWrapper","StudentProfileHighlights","Styled.AbsoluteImage","FlexView","Styled.ImageWrapper","Image","Text"],"mappings":"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"}
1
+ {"version":3,"file":"student-profile.js","sources":["../../../../../src/features/trial-session/comps/student-profile/student-profile.tsx"],"sourcesContent":["import type { TGoalCategory } from '../../../milestone/create/milestone-create-types';\nimport type { TColorNames } from '../../../ui/types';\nimport type { IGetStudentProfileSummaryQuery } from '../../api/student-profile-summary';\n\nimport { memo, useCallback, useEffect, useMemo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport { GOAL_CATEGORY } from '../../../milestone/constants';\nimport Error from '../../../ui/error/error';\nimport Image from '../../../ui/image/image';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useGetStudentProfileSummary } from '../../api/student-profile-summary';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { getFormattedStudentPersonalizedPreference } from '../../helper';\nimport SlideHeader from '../slide-header';\nimport { GOAL_MAPPING } from './constant';\nimport StudentProfileHighlights from './student-profile-highlights/student-profile-highlights';\nimport * as Styled from './student-profile-styled';\nimport { getDummyProfileImage, getMilestoneGoalName } from './student-profile-utils';\n\ntype TProfileHighlight = {\n illustration: string;\n background: TColorNames;\n title: string;\n description: string | string[];\n};\n\nconst StudentProfile = memo(() => {\n const {\n isTeacher,\n studentId,\n formData,\n slideConfig,\n milestoneConfig,\n updateSlideConfig,\n updateButtonState,\n } = useTrialSessionContext();\n const { showProfileHighlights } = slideConfig;\n\n const {\n name,\n goals = [],\n studentProfile,\n personalizedObjectives = [],\n personalizedPosition = [],\n } = formData || {};\n const { dummyProfileImageIndex, profileSummary } = studentProfile || {};\n const dummyProfileImage = getDummyProfileImage(dummyProfileImageIndex);\n\n const payload = useMemo<IGetStudentProfileSummaryQuery | null>(() => {\n if (goals && goals.length > 0) {\n return {\n school_success_goal: getMilestoneGoalName(goals, GOAL_CATEGORY.SCHOOL_SUCCESS),\n test_prep_goal: getMilestoneGoalName(goals, GOAL_CATEGORY.TEST_PREP),\n };\n }\n\n return null;\n }, [goals]);\n\n const {\n get: getStudentProfileSummary,\n data,\n isProcessing,\n isProcessed,\n isProcessingFailed,\n } = useGetStudentProfileSummary();\n const { profile_summary: studentProfileSummary } = data || {};\n\n const fetchData = useCallback(() => {\n if (payload) {\n getStudentProfileSummary(studentId, payload);\n }\n }, [getStudentProfileSummary, payload, studentId]);\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: isProcessing, isLoading: false });\n }, [isProcessing, updateButtonState]);\n\n useEffect(() => {\n if (isTeacher && !studentProfile && !showProfileHighlights) {\n fetchData();\n }\n }, [fetchData, isTeacher, studentProfile, showProfileHighlights]);\n\n useEffect(() => {\n if (isTeacher && isProcessed && !showProfileHighlights) {\n updateSlideConfig({\n studentProfile: {\n profileSummary: studentProfileSummary || '',\n dummyProfileImageIndex: Math.floor(Math.random() * 6),\n },\n });\n }\n }, [isProcessed, isTeacher, showProfileHighlights, studentProfileSummary, updateSlideConfig]);\n\n const profileHighlights: TProfileHighlight[] = useMemo(\n () => [\n {\n title: 'Student Level',\n description: `Catching up: ${getFormattedStudentPersonalizedPreference(\n milestoneConfig,\n personalizedPosition,\n ).map(objectives => objectives.preference_description)}`,\n illustration: ILLUSTRATIONS.KNOWLEDGE_BLUE,\n background: 'BLUE_1',\n },\n {\n illustration: ILLUSTRATIONS.ARROW_BOARD_GREEN,\n background: 'GREEN_1',\n title: 'Goals',\n description: getFormattedStudentPersonalizedPreference(\n milestoneConfig,\n personalizedObjectives,\n ).map(objectives => objectives.preference_name),\n },\n {\n illustration: ILLUSTRATIONS.BOOK_CHECKED_PURPLE,\n background: 'PURPLE_1',\n title: 'Learning Plan',\n description: goals.map(\n goal => `${GOAL_MAPPING[goal.goal_category as TGoalCategory]}: ${goal.milestone_name}`,\n ),\n },\n ],\n [goals, milestoneConfig, personalizedObjectives, personalizedPosition],\n );\n\n if (isProcessingFailed) {\n return <Error height=\"70vh\" onTryAgain={fetchData} />;\n }\n\n if (isProcessing || (!studentProfile && !showProfileHighlights)) {\n return <AppLoader height=\"100vh\" />;\n }\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader marginBottom={showProfileHighlights ? 50 : 100} />\n {showProfileHighlights ? (\n <Styled.ContentWrapper $width={650}>\n <StudentProfileHighlights profileHighlights={profileHighlights} />\n <Separator height={16} />\n <Text $renderAs=\"ub3\" $color=\"BLACK_T_60\" $align=\"center\">\n We can always revisit this later\n </Text>\n </Styled.ContentWrapper>\n ) : (\n <Styled.ContentWrapper $widthX={46.875}>\n <Styled.AbsoluteImage />\n <FlexView\n $width=\"100%\"\n $heightX={21.875}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $flexGapX={1.5}\n $gutterX={1.5}\n $background=\"WHITE_2\"\n $borderColor=\"BLACK_T_87\"\n $borderRadiusX={0.5}\n >\n <Styled.ImageWrapper>\n <Image withLoader height={200} width={200} src={dummyProfileImage} />\n </Styled.ImageWrapper>\n <FlexView $flexGap={16}>\n <Text $renderAs=\"ac2-black\">{name}</Text>\n <Text $renderAs=\"ab1\">{profileSummary || ''}</Text>\n </FlexView>\n </FlexView>\n </Styled.ContentWrapper>\n )}\n </Styled.Container>\n );\n});\n\nexport default StudentProfile;\n"],"names":["StudentProfile","memo","isTeacher","studentId","formData","slideConfig","milestoneConfig","updateSlideConfig","updateButtonState","useTrialSessionContext","showProfileHighlights","name","goals","studentProfile","personalizedObjectives","personalizedPosition","dummyProfileImageIndex","profileSummary","dummyProfileImage","getDummyProfileImage","payload","useMemo","getMilestoneGoalName","GOAL_CATEGORY","getStudentProfileSummary","data","isProcessing","isProcessed","isProcessingFailed","useGetStudentProfileSummary","studentProfileSummary","fetchData","useCallback","useEffect","profileHighlights","getFormattedStudentPersonalizedPreference","objectives","ILLUSTRATIONS","goal","GOAL_MAPPING","jsx","Error","AppLoader","jsxs","Styled.Container","Separator","SlideHeader","Styled.ContentWrapper","StudentProfileHighlights","Text","Styled.AbsoluteImage","FlexView","Styled.ImageWrapper","Image"],"mappings":"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"}