@cuemath/leap 3.3.0 → 3.3.2-2.beta-guru-01

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 (399) hide show
  1. package/dist/assets/gif/gif.js +3 -0
  2. package/dist/assets/gif/gif.js.map +1 -1
  3. package/dist/assets/illustrations/illustrations.js +10 -1
  4. package/dist/assets/illustrations/illustrations.js.map +1 -1
  5. package/dist/assets/images/images.js +10 -0
  6. package/dist/assets/images/images.js.map +1 -1
  7. package/dist/assets/line-icons/icons/cue-coin.js +182 -0
  8. package/dist/assets/line-icons/icons/cue-coin.js.map +1 -0
  9. package/dist/assets/line-icons/icons/wins-common-icon.js +26 -0
  10. package/dist/assets/line-icons/icons/wins-common-icon.js.map +1 -0
  11. package/dist/assets/line-icons/icons/wins-epic-icon.js +25 -0
  12. package/dist/assets/line-icons/icons/wins-epic-icon.js.map +1 -0
  13. package/dist/assets/line-icons/icons/wins-legendary-icon.js +25 -0
  14. package/dist/assets/line-icons/icons/wins-legendary-icon.js.map +1 -0
  15. package/dist/assets/line-icons/icons/wins-mystery-icon.js +105 -0
  16. package/dist/assets/line-icons/icons/wins-mystery-icon.js.map +1 -0
  17. package/dist/assets/line-icons/icons/wins-mythic-icon.js +28 -0
  18. package/dist/assets/line-icons/icons/wins-mythic-icon.js.map +1 -0
  19. package/dist/assets/line-icons/icons/wins-rare-icon.js +28 -0
  20. package/dist/assets/line-icons/icons/wins-rare-icon.js.map +1 -0
  21. package/dist/assets/lottie/lottie.js +10 -3
  22. package/dist/assets/lottie/lottie.js.map +1 -1
  23. package/dist/constants/config.js +5 -0
  24. package/dist/constants/config.js.map +1 -0
  25. package/dist/constants/country.js +9 -0
  26. package/dist/constants/country.js.map +1 -1
  27. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js +6 -6
  28. package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js.map +1 -1
  29. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar.js +4 -4
  30. package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar.js.map +1 -1
  31. package/dist/features/auth/comps/otp-input/otp-input.js +19 -18
  32. package/dist/features/auth/comps/otp-input/otp-input.js.map +1 -1
  33. package/dist/features/auth/comps/pill-button/pill-button-styled.js +17 -17
  34. package/dist/features/auth/comps/pill-button/pill-button-styled.js.map +1 -1
  35. package/dist/features/auth/comps/pill-button/pill-button.js +26 -24
  36. package/dist/features/auth/comps/pill-button/pill-button.js.map +1 -1
  37. package/dist/features/auth/comps/user-list/user-item/user-item.js +32 -30
  38. package/dist/features/auth/comps/user-list/user-item/user-item.js.map +1 -1
  39. package/dist/features/auth/comps/user-list/user-list.js +20 -19
  40. package/dist/features/auth/comps/user-list/user-list.js.map +1 -1
  41. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-constants.js +9 -9
  42. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-constants.js.map +1 -1
  43. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js +58 -29
  44. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js.map +1 -1
  45. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js +78 -41
  46. package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js.map +1 -1
  47. package/dist/features/auth/pla-signup/pla-analytics-events.js +5 -4
  48. package/dist/features/auth/pla-signup/pla-analytics-events.js.map +1 -1
  49. package/dist/features/auth/pla-signup/signup-header/signup-header.js +1 -1
  50. package/dist/features/auth/pla-signup/signup-header/signup-header.js.map +1 -1
  51. package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper-styled.js +37 -35
  52. package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper-styled.js.map +1 -1
  53. package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper.js +75 -70
  54. package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper.js.map +1 -1
  55. package/dist/features/auth/signup/custom-input-field/custom-input-field.js +55 -50
  56. package/dist/features/auth/signup/custom-input-field/custom-input-field.js.map +1 -1
  57. package/dist/features/auth/signup/custom-input-field/input-wrapper/input-wrapper.js +47 -25
  58. package/dist/features/auth/signup/custom-input-field/input-wrapper/input-wrapper.js.map +1 -1
  59. package/dist/features/auth/signup-unavailable/signup-unavailable-styled.js +16 -0
  60. package/dist/features/auth/signup-unavailable/signup-unavailable-styled.js.map +1 -0
  61. package/dist/features/auth/signup-unavailable/signup-unavailable-view.js +62 -0
  62. package/dist/features/auth/signup-unavailable/signup-unavailable-view.js.map +1 -0
  63. package/dist/features/auth/signup-unavailable/signup-unavailable.js +17 -0
  64. package/dist/features/auth/signup-unavailable/signup-unavailable.js.map +1 -0
  65. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/question-overview.js +19 -18
  66. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/question-overview.js.map +1 -1
  67. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary-styled.js +7 -7
  68. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary-styled.js.map +1 -1
  69. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary.js +26 -24
  70. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary.js.map +1 -1
  71. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/summary-module.js +15 -13
  72. package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/summary-module.js.map +1 -1
  73. package/dist/features/chapters/lpar-chapter/constants/index.js.map +1 -1
  74. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +130 -69
  75. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -1
  76. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +43 -33
  77. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
  78. package/dist/features/chapters-v2/chapter-details/chapter-details.js +137 -95
  79. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
  80. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +36 -31
  81. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -1
  82. package/dist/features/chapters-v2/comps/sat-mock-test/sat-mock-test-styled.js +22 -0
  83. package/dist/features/chapters-v2/comps/sat-mock-test/sat-mock-test-styled.js.map +1 -0
  84. package/dist/features/chapters-v2/comps/sat-mock-test/sat-mock-test.js +141 -0
  85. package/dist/features/chapters-v2/comps/sat-mock-test/sat-mock-test.js.map +1 -0
  86. package/dist/features/chapters-v2/constants/block-constants.js +7 -5
  87. package/dist/features/chapters-v2/constants/block-constants.js.map +1 -1
  88. package/dist/features/chapters-v2/utils/index.js +22 -12
  89. package/dist/features/chapters-v2/utils/index.js.map +1 -1
  90. package/dist/features/chapters-v2/utils/sat-sheet-utils.js +12 -0
  91. package/dist/features/chapters-v2/utils/sat-sheet-utils.js.map +1 -0
  92. package/dist/features/circle-games/games/web-view/web-view.js +0 -1
  93. package/dist/features/circle-games/games/web-view/web-view.js.map +1 -1
  94. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js +86 -0
  95. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js.map +1 -0
  96. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js +140 -0
  97. package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js.map +1 -0
  98. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +8 -4
  99. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
  100. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-dashboard-journey.js +23 -29
  101. package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-dashboard-journey.js.map +1 -1
  102. package/dist/features/journey/journey-id/journey-id-student.js +1 -1
  103. package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
  104. package/dist/features/journey/journey-id/journey-id-teacher.js +2 -2
  105. package/dist/features/journey/journey-id/journey-id-teacher.js.map +1 -1
  106. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +400 -0
  107. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
  108. package/dist/features/milestone/constants.js +13 -10
  109. package/dist/features/milestone/constants.js.map +1 -1
  110. package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js +42 -40
  111. package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js.map +1 -1
  112. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js +70 -64
  113. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
  114. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js +54 -29
  115. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js.map +1 -1
  116. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js +48 -28
  117. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js.map +1 -1
  118. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +79 -76
  119. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
  120. package/dist/features/milestone/create/comps/chapters-selection-step/utils.js +97 -94
  121. package/dist/features/milestone/create/comps/chapters-selection-step/utils.js.map +1 -1
  122. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js +160 -143
  123. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js.map +1 -1
  124. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js +22 -12
  125. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js.map +1 -1
  126. package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js +6 -6
  127. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js +64 -59
  128. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js.map +1 -1
  129. package/dist/features/milestone/create/milestone-create-container.js +17 -15
  130. package/dist/features/milestone/create/milestone-create-container.js.map +1 -1
  131. package/dist/features/milestone/create/milestone-create-helpers.js +170 -153
  132. package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
  133. package/dist/features/milestone/create/milestone-create-styled.js +1 -1
  134. package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
  135. package/dist/features/milestone/create/milestone-create.js +19 -17
  136. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  137. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js +19 -20
  138. package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
  139. package/dist/features/parent-dashboard/api/get-student-profile-summary.js +9 -0
  140. package/dist/features/parent-dashboard/api/get-student-profile-summary.js.map +1 -0
  141. package/dist/features/parent-dashboard/api/parent-home.js +10 -0
  142. package/dist/features/parent-dashboard/api/parent-home.js.map +1 -0
  143. package/dist/features/parent-dashboard/comps/compact-header/compact-header.js +30 -0
  144. package/dist/features/parent-dashboard/comps/compact-header/compact-header.js.map +1 -0
  145. package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features-constants.js +25 -0
  146. package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features-constants.js.map +1 -0
  147. package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features-styled.js +15 -0
  148. package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features-styled.js.map +1 -0
  149. package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features.js +90 -0
  150. package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features.js.map +1 -0
  151. package/dist/features/parent-dashboard/comps/math-practice/math-practice-constants.js +19 -0
  152. package/dist/features/parent-dashboard/comps/math-practice/math-practice-constants.js.map +1 -0
  153. package/dist/features/parent-dashboard/comps/math-practice/math-practice-styled.js +32 -0
  154. package/dist/features/parent-dashboard/comps/math-practice/math-practice-styled.js.map +1 -0
  155. package/dist/features/parent-dashboard/comps/math-practice/math-practice.js +67 -0
  156. package/dist/features/parent-dashboard/comps/math-practice/math-practice.js.map +1 -0
  157. package/dist/features/parent-dashboard/comps/parent-dashboard-faqs/parent-dashboard-faqs-constants.js +42 -0
  158. package/dist/features/parent-dashboard/comps/parent-dashboard-faqs/parent-dashboard-faqs-constants.js.map +1 -0
  159. package/dist/features/parent-dashboard/comps/parent-dashboard-faqs/parent-dashboard-faqs.js +20 -0
  160. package/dist/features/parent-dashboard/comps/parent-dashboard-faqs/parent-dashboard-faqs.js.map +1 -0
  161. package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction-styled.js +10 -0
  162. package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction-styled.js.map +1 -0
  163. package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js +42 -0
  164. package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js.map +1 -0
  165. package/dist/features/parent-dashboard/hooks/use-parent-home-data.js +67 -0
  166. package/dist/features/parent-dashboard/hooks/use-parent-home-data.js.map +1 -0
  167. package/dist/features/parent-dashboard/hooks/use-student-profile-summary-data.js +24 -0
  168. package/dist/features/parent-dashboard/hooks/use-student-profile-summary-data.js.map +1 -0
  169. package/dist/features/parent-dashboard/hooks/use-switch-user-journey.js +71 -0
  170. package/dist/features/parent-dashboard/hooks/use-switch-user-journey.js.map +1 -0
  171. package/dist/features/parent-dashboard/modals/help-and-support/help-and-support.js +40 -0
  172. package/dist/features/parent-dashboard/modals/help-and-support/help-and-support.js.map +1 -0
  173. package/dist/features/parent-dashboard/modals/student-login-info/student-login-info.js +44 -0
  174. package/dist/features/parent-dashboard/modals/student-login-info/student-login-info.js.map +1 -0
  175. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-helpers.js +32 -0
  176. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-helpers.js.map +1 -0
  177. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js +12 -0
  178. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js.map +1 -0
  179. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary.js +44 -0
  180. package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary.js.map +1 -0
  181. package/dist/features/parent-dashboard/modals/trial-report/trial-report-styled.js +13 -0
  182. package/dist/features/parent-dashboard/modals/trial-report/trial-report-styled.js.map +1 -0
  183. package/dist/features/parent-dashboard/modals/trial-report/trial-report.js +28 -0
  184. package/dist/features/parent-dashboard/modals/trial-report/trial-report.js.map +1 -0
  185. package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-constants.js +43 -0
  186. package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-constants.js.map +1 -0
  187. package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js +59 -0
  188. package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js.map +1 -0
  189. package/dist/features/parent-dashboard/modals/tutor-change/tutor-change.js +86 -0
  190. package/dist/features/parent-dashboard/modals/tutor-change/tutor-change.js.map +1 -0
  191. package/dist/features/parent-dashboard/parent-dashboard-constants.js +26 -0
  192. package/dist/features/parent-dashboard/parent-dashboard-constants.js.map +1 -0
  193. package/dist/features/parent-dashboard/parent-dashboard-styled.js +33 -0
  194. package/dist/features/parent-dashboard/parent-dashboard-styled.js.map +1 -0
  195. package/dist/features/parent-dashboard/parent-dashboard-types.js +6 -0
  196. package/dist/features/parent-dashboard/parent-dashboard-types.js.map +1 -0
  197. package/dist/features/parent-dashboard/parent-dashboard-view.js +215 -0
  198. package/dist/features/parent-dashboard/parent-dashboard-view.js.map +1 -0
  199. package/dist/features/parent-dashboard/parent-dashboard.js +8 -0
  200. package/dist/features/parent-dashboard/parent-dashboard.js.map +1 -0
  201. package/dist/features/sentry/constants/ignored.js +10 -6
  202. package/dist/features/sentry/constants/ignored.js.map +1 -1
  203. package/dist/features/sheets/constants/sheet.js +23 -10
  204. package/dist/features/sheets/constants/sheet.js.map +1 -1
  205. package/dist/features/sheets/utils/is-v3-worksheet.js +17 -0
  206. package/dist/features/sheets/utils/is-v3-worksheet.js.map +1 -1
  207. package/dist/features/student-details/class-details/class-details-utils.js +6 -6
  208. package/dist/features/trial-session/api/course-stream.js.map +1 -1
  209. package/dist/features/trial-session/comps/about-cuemath/about-cuemath-constants.js +1 -1
  210. package/dist/features/trial-session/comps/about-cuemath/about-cuemath-constants.js.map +1 -1
  211. package/dist/features/trial-session/comps/background-grid/background-grid-utils.js +66 -60
  212. package/dist/features/trial-session/comps/background-grid/background-grid-utils.js.map +1 -1
  213. package/dist/features/trial-session/comps/learning-plan/index.js +62 -88
  214. package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
  215. package/dist/features/trial-session/comps/offering-information/offering-information-constants.js +12 -12
  216. package/dist/features/trial-session/comps/offering-information/offering-information-constants.js.map +1 -1
  217. package/dist/features/trial-session/comps/pla/next-steps/next-steps-constants.js +25 -0
  218. package/dist/features/trial-session/comps/pla/next-steps/next-steps-constants.js.map +1 -0
  219. package/dist/features/trial-session/comps/pla/next-steps/next-steps-styled.js +43 -0
  220. package/dist/features/trial-session/comps/pla/next-steps/next-steps-styled.js.map +1 -0
  221. package/dist/features/trial-session/comps/pla/next-steps/next-steps.js +49 -0
  222. package/dist/features/trial-session/comps/pla/next-steps/next-steps.js.map +1 -0
  223. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js +29 -0
  224. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js.map +1 -0
  225. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js +132 -0
  226. package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js.map +1 -0
  227. package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js +11 -0
  228. package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js.map +1 -0
  229. package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js +19 -0
  230. package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js.map +1 -0
  231. package/dist/features/trial-session/comps/pla/session-status/session-status-styled.js +17 -0
  232. package/dist/features/trial-session/comps/pla/session-status/session-status-styled.js.map +1 -0
  233. package/dist/features/trial-session/comps/pla/session-status/session-status.js +127 -0
  234. package/dist/features/trial-session/comps/pla/session-status/session-status.js.map +1 -0
  235. package/dist/features/trial-session/comps/pla/session-summary/session-summary-constants.js +53 -0
  236. package/dist/features/trial-session/comps/pla/session-summary/session-summary-constants.js.map +1 -0
  237. package/dist/features/trial-session/comps/pla/session-summary/session-summary.js +53 -0
  238. package/dist/features/trial-session/comps/pla/session-summary/session-summary.js.map +1 -0
  239. package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card-styled.js +17 -0
  240. package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card-styled.js.map +1 -0
  241. package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js +56 -0
  242. package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js.map +1 -0
  243. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-constants.js +5 -0
  244. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-constants.js.map +1 -0
  245. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-styled.js +17 -0
  246. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-styled.js.map +1 -0
  247. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-types.js +5 -0
  248. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-types.js.map +1 -0
  249. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions.js +96 -0
  250. package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions.js.map +1 -0
  251. package/dist/features/trial-session/comps/school-goals/school-goals.js +25 -24
  252. package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
  253. package/dist/features/trial-session/comps/session-report/report-404/report-404.js +34 -0
  254. package/dist/features/trial-session/comps/session-report/report-404/report-404.js.map +1 -0
  255. package/dist/features/trial-session/comps/session-report/report-information/report-card.js +41 -0
  256. package/dist/features/trial-session/comps/session-report/report-information/report-card.js.map +1 -0
  257. package/dist/features/trial-session/comps/session-report/report-information/report-information-styled.js +39 -0
  258. package/dist/features/trial-session/comps/session-report/report-information/report-information-styled.js.map +1 -0
  259. package/dist/features/trial-session/comps/session-report/report-information/report-information.js +179 -0
  260. package/dist/features/trial-session/comps/session-report/report-information/report-information.js.map +1 -0
  261. package/dist/features/trial-session/comps/session-report/session-report-styled.js +6 -29
  262. package/dist/features/trial-session/comps/session-report/session-report-styled.js.map +1 -1
  263. package/dist/features/trial-session/comps/session-report/session-report.js +44 -174
  264. package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
  265. package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js +20 -5
  266. package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js.map +1 -1
  267. package/dist/features/trial-session/comps/student-personalization/student-personalization.js +59 -126
  268. package/dist/features/trial-session/comps/student-personalization/student-personalization.js.map +1 -1
  269. package/dist/features/trial-session/comps/student-profile/constant.js +10 -0
  270. package/dist/features/trial-session/comps/student-profile/constant.js.map +1 -0
  271. package/dist/features/trial-session/comps/student-profile/student-profile-highlights/student-profile-highlights.js +53 -0
  272. package/dist/features/trial-session/comps/student-profile/student-profile-highlights/student-profile-highlights.js.map +1 -0
  273. package/dist/features/trial-session/comps/student-profile/student-profile.js +93 -46
  274. package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
  275. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-helpers.js +12 -0
  276. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-helpers.js.map +1 -0
  277. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js +121 -42
  278. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js.map +1 -1
  279. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js +174 -56
  280. package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -1
  281. package/dist/features/trial-session/comps/worksheet/worksheet.js +23 -23
  282. package/dist/features/trial-session/comps/worksheet/worksheet.js.map +1 -1
  283. package/dist/features/trial-session/hooks/use-trial-session-navigation.js +65 -63
  284. package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
  285. package/dist/features/trial-session/left-panel/index.js +1 -1
  286. package/dist/features/trial-session/left-panel/index.js.map +1 -1
  287. package/dist/features/trial-session/right-panel/slide-components-map.js +32 -32
  288. package/dist/features/trial-session/right-panel/slide-components-map.js.map +1 -1
  289. package/dist/features/trial-session/trial-session-constants.js +3 -3
  290. package/dist/features/trial-session/trial-session-constants.js.map +1 -1
  291. package/dist/features/trial-session/trial-session-types.js.map +1 -1
  292. package/dist/features/ui/buttons/icon-button/icon-button.js +32 -29
  293. package/dist/features/ui/buttons/icon-button/icon-button.js.map +1 -1
  294. package/dist/features/ui/constants/z-index.js +5 -3
  295. package/dist/features/ui/constants/z-index.js.map +1 -1
  296. package/dist/features/ui/inputs/base-select-input/select-section/select-section.js +12 -11
  297. package/dist/features/ui/inputs/base-select-input/select-section/select-section.js.map +1 -1
  298. package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list-styled.js +2 -7
  299. package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list-styled.js.map +1 -1
  300. package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js +29 -27
  301. package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js.map +1 -1
  302. package/dist/features/ui/modals/modal.js +30 -28
  303. package/dist/features/ui/modals/modal.js.map +1 -1
  304. package/dist/features/wins-dashboard/belts-elements-stickers/belts-elements-stickers.js +109 -0
  305. package/dist/features/wins-dashboard/belts-elements-stickers/belts-elements-stickers.js.map +1 -0
  306. package/dist/features/wins-dashboard/belts-elements-stickers/belts.js +95 -0
  307. package/dist/features/wins-dashboard/belts-elements-stickers/belts.js.map +1 -0
  308. package/dist/features/wins-dashboard/belts-elements-stickers/elements.js +184 -0
  309. package/dist/features/wins-dashboard/belts-elements-stickers/elements.js.map +1 -0
  310. package/dist/features/wins-dashboard/belts-elements-stickers/progress-bar-horizontal.js +36 -0
  311. package/dist/features/wins-dashboard/belts-elements-stickers/progress-bar-horizontal.js.map +1 -0
  312. package/dist/features/wins-dashboard/belts-elements-stickers/reward-elements.js +83 -0
  313. package/dist/features/wins-dashboard/belts-elements-stickers/reward-elements.js.map +1 -0
  314. package/dist/features/wins-dashboard/constants.js +161 -0
  315. package/dist/features/wins-dashboard/constants.js.map +1 -0
  316. package/dist/features/wins-dashboard/header/wins-header.js +95 -0
  317. package/dist/features/wins-dashboard/header/wins-header.js.map +1 -0
  318. package/dist/features/wins-dashboard/student-badges/animated-tabbar.js +66 -0
  319. package/dist/features/wins-dashboard/student-badges/animated-tabbar.js.map +1 -0
  320. package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-list-hook.js +135 -0
  321. package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-list-hook.js.map +1 -0
  322. package/dist/features/wins-dashboard/student-badges/student-badge.js +168 -0
  323. package/dist/features/wins-dashboard/student-badges/student-badge.js.map +1 -0
  324. package/dist/features/wins-dashboard/student-badges/student-badges-lists.js +137 -0
  325. package/dist/features/wins-dashboard/student-badges/student-badges-lists.js.map +1 -0
  326. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js +86 -90
  327. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
  328. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +147 -0
  329. package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -0
  330. package/dist/features/worksheet/worksheet/worksheet-container.js +62 -42
  331. package/dist/features/worksheet/worksheet/worksheet-container.js.map +1 -1
  332. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +197 -199
  333. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  334. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js +228 -300
  335. package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
  336. package/dist/features/worksheet/worksheet/worksheet-styled.js +34 -34
  337. package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
  338. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  339. package/dist/features/worksheet/worksheet/worksheet.js +206 -215
  340. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  341. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +33 -33
  342. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
  343. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +30 -28
  344. package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
  345. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +69 -73
  346. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
  347. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js +30 -79
  348. package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
  349. package/dist/index.d.ts +473 -45
  350. package/dist/index.js +695 -627
  351. package/dist/index.js.map +1 -1
  352. package/dist/node_modules/date-fns/_lib/getRoundingMethod.js +10 -0
  353. package/dist/node_modules/date-fns/_lib/getRoundingMethod.js.map +1 -0
  354. package/dist/node_modules/date-fns/differenceInMilliseconds.js +9 -0
  355. package/dist/node_modules/date-fns/differenceInMilliseconds.js.map +1 -0
  356. package/dist/node_modules/date-fns/differenceInSeconds.js +11 -0
  357. package/dist/node_modules/date-fns/differenceInSeconds.js.map +1 -0
  358. package/dist/node_modules/date-fns/fromUnixTime.js +9 -0
  359. package/dist/node_modules/date-fns/fromUnixTime.js.map +1 -0
  360. package/dist/static/awesome.4239f583.json +1 -0
  361. package/dist/static/black-belt.81b3ebf9.png +0 -0
  362. package/dist/static/blue-belt.508a1b4b.png +0 -0
  363. package/dist/static/{book-checked-green.c275dbd9.svg → book-checked-green.0436b91e.svg} +1 -1
  364. package/dist/static/brown-belt.09bb7e93.png +0 -0
  365. package/dist/static/clapping-hands.17e7ecf0.json +1 -0
  366. package/dist/static/common.9e8ceef1.svg +1 -0
  367. package/dist/static/community-bulb-yellow-2.f89c30f9.svg +1 -0
  368. package/dist/static/cool.cd6921bb.json +1 -0
  369. package/dist/static/epic.37a0265a.svg +1 -0
  370. package/dist/static/error-responsive.9916ff66.json +1 -0
  371. package/dist/static/error.dd744fa5.json +1 -0
  372. package/dist/static/green-belt.5501296f.png +0 -0
  373. package/dist/static/learning-puzzle-bot.6fe93cf6.svg +1 -0
  374. package/dist/static/legendary.f15d09ca.svg +1 -0
  375. package/dist/static/like-button.281a2618.json +1 -0
  376. package/dist/static/mastered-badge.91d25e92.png +0 -0
  377. package/dist/static/mystery.81ada5fb.svg +1 -0
  378. package/dist/static/mythic.58ba0ae0.svg +1 -0
  379. package/dist/static/orange-belt.1fefcc8c.png +0 -0
  380. package/dist/static/personalization.7a6c33e8.svg +1 -0
  381. package/dist/static/personalized-session.b4fd7df8.gif +0 -0
  382. package/dist/static/purple-belt.e15611b4.png +0 -0
  383. package/dist/static/rare.1ffaa311.svg +1 -0
  384. package/dist/static/red-belt.11f841d9.png +0 -0
  385. package/dist/static/regular-practice.b15f24d9.gif +0 -0
  386. package/dist/static/star-strike-emoji.c0b31028.json +1 -0
  387. package/dist/static/stepup.321df6ed.gif +0 -0
  388. package/dist/static/trophy.5ef1853a.json +1 -0
  389. package/dist/static/username-responsive.787b5515.json +1 -0
  390. package/dist/static/username.2c755605.json +1 -0
  391. package/dist/static/white-belt.ea93103e.png +0 -0
  392. package/dist/static/yellow-belt.0c47b8cc.png +0 -0
  393. package/package.json +1 -1
  394. package/dist/features/trial-session/comps/session-report/report-card.js +0 -26
  395. package/dist/features/trial-session/comps/session-report/report-card.js.map +0 -1
  396. package/dist/features/worksheet/worksheet/hooks/use-worksheet-journey.js +0 -28
  397. package/dist/features/worksheet/worksheet/hooks/use-worksheet-journey.js.map +0 -1
  398. package/dist/static/error.cbe1ddde.json +0 -1
  399. package/dist/static/username.9e034d51.json +0 -1
@@ -0,0 +1,141 @@
1
+ import { jsxs as e, jsx as t, Fragment as b } from "react/jsx-runtime";
2
+ import { memo as N, useRef as O, useMemo as T, useCallback as m } from "react";
3
+ import R from "../../../ui/arrow-tooltip/arrow-tooltip.js";
4
+ import X from "../../../ui/buttons/clickable/clickable.js";
5
+ import S from "../../../ui/layout/flex-view.js";
6
+ import j from "../../../ui/lottie-animation/lottie-animation.js";
7
+ import c from "../../../ui/text/text.js";
8
+ import { NodeCardContainer as G, NodeCardInfoWrapper as q, IconWrapper as F, StyledImportantIcon as H } from "../node-card/node-card-styled.js";
9
+ import { BLOCK_STATES as A } from "../../constants/block-constants.js";
10
+ import { getNodeTypeBasedBgImage as P } from "../../utils/index.js";
11
+ import { getNodeCardBasedIcon as z } from "../../utils/node-card-utils.js";
12
+ import { getSatSheetQuestionsCount as Q, getNextAccessibleSATSheet as U } from "../../utils/sat-sheet-utils.js";
13
+ import V from "../node-card/node-card-tags.js";
14
+ import { ScoreTextWrapper as J, StyledText as C } from "./sat-mock-test-styled.js";
15
+ const Y = { renderer: "canvas", autoplay: !1 }, pe = N((_) => {
16
+ const {
17
+ userType: h,
18
+ imageHue: x,
19
+ sheets: i,
20
+ blockStats: k,
21
+ blockState: r,
22
+ blockStatement: p,
23
+ blockPermissions: I,
24
+ onNodeAttempt: a,
25
+ onNodeReview: s
26
+ } = _, l = O(null), { can_resume: $, can_review: f, can_start: u } = I, n = T(() => r === A.LOCKED, [r]), g = T(() => r === A.COMPLETED, [r]), { sat_max_score: L, sat_total_score: w } = k || {}, y = i[0], { node_type: d } = y, B = P(d), { lottie: M } = z(d), { english: E, math: v } = Q(i), D = m(() => {
27
+ var o;
28
+ n || (o = l.current) == null || o.play();
29
+ }, [n]), K = m(() => {
30
+ var o;
31
+ (o = l.current) == null || o.stop();
32
+ }, []), W = m(() => {
33
+ const o = U(i);
34
+ if (!o)
35
+ throw new Error("Active SAT sheet is not available");
36
+ if (h === "STUDENT" && (u || $)) {
37
+ a == null || a(o);
38
+ return;
39
+ }
40
+ f && (s == null || s(o));
41
+ }, [$, f, u, a, s, i, h]);
42
+ return /* @__PURE__ */ e(S, { $flexDirection: "row", $flexGapX: 1.5, $alignItems: "center", children: [
43
+ /* @__PURE__ */ t(
44
+ X,
45
+ {
46
+ label: "",
47
+ analyticsLabel: "mock_test",
48
+ onClick: W,
49
+ disabled: n,
50
+ children: /* @__PURE__ */ t(G, { $minWidth: 180, $background: `${x}_2`, $disabled: n, children: /* @__PURE__ */ e(
51
+ R,
52
+ {
53
+ renderAs: "primary",
54
+ position: "bottom",
55
+ tooltipItem: p,
56
+ zIndex: 5,
57
+ hidden: !p,
58
+ parentWidth: "100%",
59
+ widthX: 11.25,
60
+ children: [
61
+ /* @__PURE__ */ e(
62
+ q,
63
+ {
64
+ $flexDirection: "row",
65
+ $alignItems: "center",
66
+ $width: "100%",
67
+ $heightX: 3.5,
68
+ $bgImage: B,
69
+ $gutterX: 0.78125,
70
+ $flexGap: 8.5,
71
+ $opacity: n ? 0.5 : 1,
72
+ onMouseEnter: D,
73
+ onMouseLeave: K,
74
+ children: [
75
+ /* @__PURE__ */ e(
76
+ F,
77
+ {
78
+ $width: 31,
79
+ $height: 31,
80
+ $background: "WHITE_1",
81
+ $position: "relative",
82
+ $alignItems: "center",
83
+ $justifyContent: "center",
84
+ children: [
85
+ /* @__PURE__ */ t(
86
+ j,
87
+ {
88
+ src: M,
89
+ ref: l,
90
+ settings: Y,
91
+ width: 31,
92
+ height: 31
93
+ }
94
+ ),
95
+ /* @__PURE__ */ t(H, {})
96
+ ]
97
+ }
98
+ ),
99
+ /* @__PURE__ */ t(c, { $renderAs: "ac4-black", $color: "BLACK", children: "Mock Test" })
100
+ ]
101
+ }
102
+ ),
103
+ /* @__PURE__ */ t(V, { nodeType: d, state: r })
104
+ ]
105
+ }
106
+ ) })
107
+ }
108
+ ),
109
+ /* @__PURE__ */ t(S, { $flexGap: g ? 8 : 4, children: g ? /* @__PURE__ */ e(b, { children: [
110
+ /* @__PURE__ */ t(c, { $renderAs: "ub3", $color: "BLACK_T_60", children: "Total Score" }),
111
+ /* @__PURE__ */ e(J, { $flexDirection: "row", $alignItems: "flex-end", children: [
112
+ /* @__PURE__ */ t(c, { $renderAs: "ah4-bold", children: w }),
113
+ /* @__PURE__ */ e(c, { $renderAs: "ac3-black", $color: "BLACK_T_38", children: [
114
+ "/",
115
+ L
116
+ ] })
117
+ ] })
118
+ ] }) : /* @__PURE__ */ e(b, { children: [
119
+ /* @__PURE__ */ e(C, { $renderAs: "ub3-bold", $color: "BLACK_T_60", children: [
120
+ /* @__PURE__ */ t("span", { children: "Reading & Writing:" }),
121
+ /* @__PURE__ */ e("span", { children: [
122
+ "2 Modules, ",
123
+ E,
124
+ " questions"
125
+ ] })
126
+ ] }),
127
+ /* @__PURE__ */ e(C, { $renderAs: "ub3-bold", $color: "BLACK_T_60", children: [
128
+ /* @__PURE__ */ t("span", { children: "Math:" }),
129
+ /* @__PURE__ */ e("span", { children: [
130
+ "2 Modules, ",
131
+ v,
132
+ " questions"
133
+ ] })
134
+ ] })
135
+ ] }) })
136
+ ] });
137
+ });
138
+ export {
139
+ pe as default
140
+ };
141
+ //# sourceMappingURL=sat-mock-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sat-mock-test.js","sources":["../../../../../src/features/chapters-v2/comps/sat-mock-test/sat-mock-test.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../../ui/lottie-animation/types';\nimport type { ISatMockTestProps } from './sat-mock-test-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useMemo, useRef } from 'react';\n\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../ui/lottie-animation/lottie-animation';\nimport Text from '../../../ui/text/text';\nimport {\n NodeCardContainer,\n NodeCardInfoWrapper,\n IconWrapper,\n StyledImportantIcon,\n} from '../../comps/node-card/node-card-styled';\nimport { BLOCK_STATES } from '../../constants/block-constants';\nimport { getNodeTypeBasedBgImage } from '../../utils';\nimport { getNodeCardBasedIcon } from '../../utils/node-card-utils';\nimport { getNextAccessibleSATSheet, getSatSheetQuestionsCount } from '../../utils/sat-sheet-utils';\nimport NodeCardTags from '../node-card/node-card-tags';\nimport * as Styled from './sat-mock-test-styled';\n\nconst renderSettings = { renderer: 'canvas', autoplay: false };\n\nconst SatMockTest: FC<ISatMockTestProps> = memo(props => {\n const {\n userType,\n imageHue,\n sheets,\n blockStats,\n blockState,\n blockStatement,\n blockPermissions,\n onNodeAttempt,\n onNodeReview,\n } = props;\n\n const animationRef = useRef<ILottieAnimationRef | null>(null);\n\n const { can_resume: canResume, can_review: canReview, can_start: canStart } = blockPermissions;\n\n const isBlockLocked = useMemo(() => blockState === BLOCK_STATES.LOCKED, [blockState]);\n const isBlockCompleted = useMemo(() => blockState === BLOCK_STATES.COMPLETED, [blockState]);\n const { sat_max_score: satMaxScore, sat_total_score: satTotalScore } = blockStats || {};\n const nodeData = sheets[0] as ISatMockTestProps['sheets'][0];\n\n const { node_type: nodeType } = nodeData;\n\n const nodeBgImage = getNodeTypeBasedBgImage(nodeType);\n const { lottie: nodeCardLottie } = getNodeCardBasedIcon(nodeType);\n const { english, math } = getSatSheetQuestionsCount(sheets);\n\n const handleOnMouseEnter = useCallback(() => {\n if (isBlockLocked) return;\n\n animationRef.current?.play();\n }, [isBlockLocked]);\n\n const handleOnMouseLeave = useCallback(() => {\n animationRef.current?.stop();\n }, []);\n\n const handleOnNodeAttempt = useCallback(() => {\n const nextAccessibleSATSheet = getNextAccessibleSATSheet(sheets);\n\n if (!nextAccessibleSATSheet) {\n throw new Error('Active SAT sheet is not available');\n }\n\n if (userType === 'STUDENT' && (canStart || canResume)) {\n onNodeAttempt?.(nextAccessibleSATSheet);\n\n return;\n }\n\n if (canReview) {\n onNodeReview?.(nextAccessibleSATSheet);\n }\n }, [canResume, canReview, canStart, onNodeAttempt, onNodeReview, sheets, userType]);\n\n return (\n <FlexView $flexDirection=\"row\" $flexGapX={1.5} $alignItems=\"center\">\n <Clickable\n label=\"\"\n analyticsLabel=\"mock_test\"\n onClick={handleOnNodeAttempt}\n disabled={isBlockLocked}\n >\n <NodeCardContainer $minWidth={180} $background={`${imageHue}_2`} $disabled={isBlockLocked}>\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={blockStatement}\n zIndex={5}\n hidden={!blockStatement}\n parentWidth=\"100%\"\n widthX={11.25}\n >\n <NodeCardInfoWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={nodeBgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $opacity={isBlockLocked ? 0.5 : 1}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleOnMouseLeave}\n >\n <IconWrapper\n $width={31}\n $height={31}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <LottieAnimation\n src={nodeCardLottie}\n ref={animationRef}\n settings={renderSettings}\n width={31}\n height={31}\n />\n <StyledImportantIcon />\n </IconWrapper>\n\n <Text $renderAs=\"ac4-black\" $color=\"BLACK\">\n Mock Test\n </Text>\n </NodeCardInfoWrapper>\n\n <NodeCardTags nodeType={nodeType} state={blockState} />\n </ArrowTooltip>\n </NodeCardContainer>\n </Clickable>\n\n <FlexView $flexGap={isBlockCompleted ? 8 : 4}>\n {isBlockCompleted ? (\n <>\n <Text $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n Total Score\n </Text>\n\n <Styled.ScoreTextWrapper $flexDirection=\"row\" $alignItems=\"flex-end\">\n <Text $renderAs=\"ah4-bold\">{satTotalScore}</Text>\n <Text $renderAs=\"ac3-black\" $color=\"BLACK_T_38\">\n /{satMaxScore}\n </Text>\n </Styled.ScoreTextWrapper>\n </>\n ) : (\n <>\n <Styled.StyledText $renderAs=\"ub3-bold\" $color=\"BLACK_T_60\">\n <span>Reading & Writing:</span>\n <span>2 Modules, {english} questions</span>\n </Styled.StyledText>\n\n <Styled.StyledText $renderAs=\"ub3-bold\" $color=\"BLACK_T_60\">\n <span>Math:</span>\n <span>2 Modules, {math} questions</span>\n </Styled.StyledText>\n </>\n )}\n </FlexView>\n </FlexView>\n );\n});\n\nexport default SatMockTest;\n"],"names":["renderSettings","SatMockTest","memo","props","userType","imageHue","sheets","blockStats","blockState","blockStatement","blockPermissions","onNodeAttempt","onNodeReview","animationRef","useRef","canResume","canReview","canStart","isBlockLocked","useMemo","BLOCK_STATES","isBlockCompleted","satMaxScore","satTotalScore","nodeData","nodeType","nodeBgImage","getNodeTypeBasedBgImage","nodeCardLottie","getNodeCardBasedIcon","english","math","getSatSheetQuestionsCount","handleOnMouseEnter","useCallback","_a","handleOnMouseLeave","handleOnNodeAttempt","nextAccessibleSATSheet","getNextAccessibleSATSheet","FlexView","jsx","Clickable","NodeCardContainer","jsxs","ArrowTooltip","NodeCardInfoWrapper","IconWrapper","LottieAnimation","StyledImportantIcon","Text","NodeCardTags","Fragment","Styled.ScoreTextWrapper","Styled.StyledText"],"mappings":";;;;;;;;;;;;;;AAwBA,MAAMA,IAAiB,EAAE,UAAU,UAAU,UAAU,GAAM,GAEvDC,KAAqCC,EAAK,CAASC,MAAA;AACjD,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,EACE,IAAAT,GAEEU,IAAeC,EAAmC,IAAI,GAEtD,EAAE,YAAYC,GAAW,YAAYC,GAAW,WAAWC,EAAa,IAAAP,GAExEQ,IAAgBC,EAAQ,MAAMX,MAAeY,EAAa,QAAQ,CAACZ,CAAU,CAAC,GAC9Ea,IAAmBF,EAAQ,MAAMX,MAAeY,EAAa,WAAW,CAACZ,CAAU,CAAC,GACpF,EAAE,eAAec,GAAa,iBAAiBC,EAAc,IAAIhB,KAAc,IAC/EiB,IAAWlB,EAAO,CAAC,GAEnB,EAAE,WAAWmB,EAAa,IAAAD,GAE1BE,IAAcC,EAAwBF,CAAQ,GAC9C,EAAE,QAAQG,EAAe,IAAIC,EAAqBJ,CAAQ,GAC1D,EAAE,SAAAK,GAAS,MAAAC,EAAK,IAAIC,EAA0B1B,CAAM,GAEpD2B,IAAqBC,EAAY,MAAM;;AAC3C,IAAIhB,MAEJiB,IAAAtB,EAAa,YAAb,QAAAsB,EAAsB;AAAA,EAAK,GAC1B,CAACjB,CAAa,CAAC,GAEZkB,IAAqBF,EAAY,MAAM;;AAC3C,KAAAC,IAAAtB,EAAa,YAAb,QAAAsB,EAAsB;AAAA,EACxB,GAAG,CAAE,CAAA,GAECE,IAAsBH,EAAY,MAAM;AACtC,UAAAI,IAAyBC,EAA0BjC,CAAM;AAE/D,QAAI,CAACgC;AACG,YAAA,IAAI,MAAM,mCAAmC;AAGjD,QAAAlC,MAAa,cAAca,KAAYF,IAAY;AACrD,MAAAJ,KAAA,QAAAA,EAAgB2B;AAEhB;AAAA,IACF;AAEA,IAAItB,MACFJ,KAAA,QAAAA,EAAe0B;AAAA,EACjB,GACC,CAACvB,GAAWC,GAAWC,GAAUN,GAAeC,GAAcN,GAAQF,CAAQ,CAAC;AAElF,2BACGoC,GAAS,EAAA,gBAAe,OAAM,WAAW,KAAK,aAAY,UACzD,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,gBAAe;AAAA,QACf,SAASL;AAAA,QACT,UAAUnB;AAAA,QAEV,UAAA,gBAAAuB,EAACE,KAAkB,WAAW,KAAK,aAAa,GAAGtC,CAAQ,MAAM,WAAWa,GAC1E,UAAA,gBAAA0B;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,aAAapC;AAAA,YACb,QAAQ;AAAA,YACR,QAAQ,CAACA;AAAA,YACT,aAAY;AAAA,YACZ,QAAQ;AAAA,YAER,UAAA;AAAA,cAAA,gBAAAmC;AAAA,gBAACE;AAAA,gBAAA;AAAA,kBACC,gBAAe;AAAA,kBACf,aAAY;AAAA,kBACZ,QAAO;AAAA,kBACP,UAAU;AAAA,kBACV,UAAUpB;AAAA,kBACV,UAAU;AAAA,kBACV,UAAU;AAAA,kBACV,UAAUR,IAAgB,MAAM;AAAA,kBAChC,cAAce;AAAA,kBACd,cAAcG;AAAA,kBAEd,UAAA;AAAA,oBAAA,gBAAAQ;AAAA,sBAACG;AAAA,sBAAA;AAAA,wBACC,QAAQ;AAAA,wBACR,SAAS;AAAA,wBACT,aAAY;AAAA,wBACZ,WAAU;AAAA,wBACV,aAAY;AAAA,wBACZ,iBAAgB;AAAA,wBAEhB,UAAA;AAAA,0BAAA,gBAAAN;AAAA,4BAACO;AAAA,4BAAA;AAAA,8BACC,KAAKpB;AAAA,8BACL,KAAKf;AAAA,8BACL,UAAUb;AAAA,8BACV,OAAO;AAAA,8BACP,QAAQ;AAAA,4BAAA;AAAA,0BACV;AAAA,4CACCiD,GAAoB,EAAA;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBACvB;AAAA,sCAECC,GAAK,EAAA,WAAU,aAAY,QAAO,SAAQ,UAE3C,aAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACF;AAAA,cAEC,gBAAAT,EAAAU,GAAA,EAAa,UAAA1B,GAAoB,OAAOjB,EAAY,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,GAEzD;AAAA,MAAA;AAAA,IACF;AAAA,sBAECgC,GAAS,EAAA,UAAUnB,IAAmB,IAAI,GACxC,cAEG,gBAAAuB,EAAAQ,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAAX,EAACS,GAAK,EAAA,WAAU,OAAM,QAAO,cAAa,UAE1C,eAAA;AAAA,wBAECG,GAAA,EAAwB,gBAAe,OAAM,aAAY,YACxD,UAAA;AAAA,QAAC,gBAAAZ,EAAAS,GAAA,EAAK,WAAU,YAAY,UAAc3B,GAAA;AAAA,QACzC,gBAAAqB,EAAAM,GAAA,EAAK,WAAU,aAAY,QAAO,cAAa,UAAA;AAAA,UAAA;AAAA,UAC5C5B;AAAA,QAAA,GACJ;AAAA,MAAA,GACF;AAAA,IAAA,EAAA,CACF,IAGE,gBAAAsB,EAAAQ,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAAR,EAACU,GAAA,EAAkB,WAAU,YAAW,QAAO,cAC7C,UAAA;AAAA,QAAA,gBAAAb,EAAC,UAAK,UAAkB,qBAAA,CAAA;AAAA,0BACvB,QAAK,EAAA,UAAA;AAAA,UAAA;AAAA,UAAYX;AAAA,UAAQ;AAAA,QAAA,GAAU;AAAA,MAAA,GACtC;AAAA,wBAECwB,GAAA,EAAkB,WAAU,YAAW,QAAO,cAC7C,UAAA;AAAA,QAAA,gBAAAb,EAAC,UAAK,UAAK,QAAA,CAAA;AAAA,0BACV,QAAK,EAAA,UAAA;AAAA,UAAA;AAAA,UAAYV;AAAA,UAAK;AAAA,QAAA,GAAU;AAAA,MAAA,GACnC;AAAA,IAAA,EAAA,CACF,EAEJ,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC;"}
@@ -1,5 +1,5 @@
1
- var A = /* @__PURE__ */ ((S) => (S.DEFAULT = "DEFAULT", S.PREREQ = "PREREQ", S.RECAP = "RECAP", S.GOAL = "GOAL", S.TESTS = "TESTS", S.PLAYLIST = "PLAYLIST", S.SOLUTIONS = "SOLUTIONS", S.NOTES = "NOTES", S.FLASHCARDS = "FLASHCARDS", S.SUBJECTIVES = "SUBJECTIVES", S.PUZZLE_CARDS = "PUZZLE_CARDS", S.SAT_MOCK_TEST = "SAT_MOCK_TEST", S.STEP_UP = "STEP_UP", S.CHALLENGE_ARENA = "CHALLENGE_ARENA", S.DOWNLOADS = "DOWNLOADS", S))(A || {});
2
- const E = {
1
+ var A = /* @__PURE__ */ ((S) => (S.DEFAULT = "DEFAULT", S.PREREQ = "PREREQ", S.RECAP = "RECAP", S.GOAL = "GOAL", S.TESTS = "TESTS", S.PLAYLIST = "PLAYLIST", S.SOLUTIONS = "SOLUTIONS", S.NOTES = "NOTES", S.FLASHCARDS = "FLASHCARDS", S.SUBJECTIVES = "SUBJECTIVES", S.PUZZLE_CARDS = "PUZZLE_CARDS", S.SAT_MOCK_TEST = "SAT_MOCK_TEST", S.STEP_UP = "STEP_UP", S.CHALLENGE_ARENA = "CHALLENGE_ARENA", S.DOWNLOADS = "DOWNLOADS", S))(A || {}), E = /* @__PURE__ */ ((S) => (S.READINESS = "READINESS", S.GOALS = "GOALS", S.TESTS = "TESTS", S.ENRICHMENT = "ENRICHMENT", S.SUBJECTIVE = "SUBJECTIVE", S.VIDEOS = "VIDEOS", S.NOTES = "NOTES", S.FLASHCARDS = "FLASHCARDS", S.PUZZLE_CARDS = "PUZZLE_CARDS", S))(E || {}), R = /* @__PURE__ */ ((S) => (S.LOCKED = "LOCKED", S.NOT_STARTED = "NOT_STARTED", S.IN_PROGRESS = "IN_PROGRESS", S.COMPLETED = "COMPLETED", S))(R || {});
2
+ const L = {
3
3
  DEFAULT: "Default",
4
4
  PREREQ: "Prerequisite",
5
5
  RECAP: "Recap",
@@ -11,13 +11,15 @@ const E = {
11
11
  FLASHCARDS: "Flashcards",
12
12
  SUBJECTIVES: "Subjective Questions",
13
13
  PUZZLE_CARDS: "Puzzles",
14
- SAT_MOCK_TEST: "SAT Mock Test",
14
+ SAT_MOCK_TEST: "Mock Test",
15
15
  STEP_UP: "Step Up",
16
16
  CHALLENGE_ARENA: "Challenge Arena",
17
17
  DOWNLOADS: "Downloads"
18
18
  };
19
19
  export {
20
- E as BLOCK_NAME,
21
- A as BLOCK_TYPE
20
+ L as BLOCK_NAME,
21
+ R as BLOCK_STATES,
22
+ A as BLOCK_TYPE,
23
+ E as SECTION_CODE
22
24
  };
23
25
  //# sourceMappingURL=block-constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"block-constants.js","sources":["../../../../src/features/chapters-v2/constants/block-constants.ts"],"sourcesContent":["export enum BLOCK_TYPE {\n DEFAULT = 'DEFAULT',\n PREREQ = 'PREREQ',\n RECAP = 'RECAP',\n GOAL = 'GOAL',\n TESTS = 'TESTS',\n PLAYLIST = 'PLAYLIST',\n SOLUTIONS = 'SOLUTIONS',\n NOTES = 'NOTES',\n FLASHCARDS = 'FLASHCARDS',\n SUBJECTIVES = 'SUBJECTIVES',\n PUZZLE_CARDS = 'PUZZLE_CARDS',\n SAT_MOCK_TEST = 'SAT_MOCK_TEST',\n STEP_UP = 'STEP_UP',\n CHALLENGE_ARENA = 'CHALLENGE_ARENA',\n DOWNLOADS = 'DOWNLOADS',\n}\n\nexport enum SECTION_CODE {\n READINESS = 'READINESS',\n GOALS = 'GOALS',\n TESTS = 'TESTS',\n ENRICHMENT = 'ENRICHMENT',\n SUBJECTIVE = 'SUBJECTIVE',\n VIDEOS = 'VIDEOS',\n NOTES = 'NOTES',\n FLASHCARDS = 'FLASHCARDS',\n PUZZLE_CARDS = 'PUZZLE_CARDS',\n}\n\nexport const BLOCK_NAME: Record<BLOCK_TYPE, string> = {\n [BLOCK_TYPE.DEFAULT]: 'Default',\n [BLOCK_TYPE.PREREQ]: 'Prerequisite',\n [BLOCK_TYPE.RECAP]: 'Recap',\n [BLOCK_TYPE.GOAL]: 'Lesson',\n [BLOCK_TYPE.TESTS]: 'Tests',\n [BLOCK_TYPE.PLAYLIST]: 'Videos',\n [BLOCK_TYPE.SOLUTIONS]: 'Solutions',\n [BLOCK_TYPE.NOTES]: 'Notes',\n [BLOCK_TYPE.FLASHCARDS]: 'Flashcards',\n [BLOCK_TYPE.SUBJECTIVES]: 'Subjective Questions',\n [BLOCK_TYPE.PUZZLE_CARDS]: 'Puzzles',\n [BLOCK_TYPE.SAT_MOCK_TEST]: 'SAT Mock Test',\n [BLOCK_TYPE.STEP_UP]: 'Step Up',\n [BLOCK_TYPE.CHALLENGE_ARENA]: 'Challenge Arena',\n [BLOCK_TYPE.DOWNLOADS]: 'Downloads',\n};\n"],"names":["BLOCK_TYPE","BLOCK_NAME"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,SAAS,UACTA,EAAA,QAAQ,SACRA,EAAA,OAAO,QACPA,EAAA,QAAQ,SACRA,EAAA,WAAW,YACXA,EAAA,YAAY,aACZA,EAAA,QAAQ,SACRA,EAAA,aAAa,cACbA,EAAA,cAAc,eACdA,EAAA,eAAe,gBACfA,EAAA,gBAAgB,iBAChBA,EAAA,UAAU,WACVA,EAAA,kBAAkB,mBAClBA,EAAA,YAAY,aAfFA,IAAAA,KAAA,CAAA,CAAA;AA8BL,MAAMC,IAAyC;AAAA,EACnD,SAAqB;AAAA,EACrB,QAAoB;AAAA,EACpB,OAAmB;AAAA,EACnB,MAAkB;AAAA,EAClB,OAAmB;AAAA,EACnB,UAAsB;AAAA,EACtB,WAAuB;AAAA,EACvB,OAAmB;AAAA,EACnB,YAAwB;AAAA,EACxB,aAAyB;AAAA,EACzB,cAA0B;AAAA,EAC1B,eAA2B;AAAA,EAC3B,SAAqB;AAAA,EACrB,iBAA6B;AAAA,EAC7B,WAAuB;AAC1B;"}
1
+ {"version":3,"file":"block-constants.js","sources":["../../../../src/features/chapters-v2/constants/block-constants.ts"],"sourcesContent":["export enum BLOCK_TYPE {\n DEFAULT = 'DEFAULT',\n PREREQ = 'PREREQ',\n RECAP = 'RECAP',\n GOAL = 'GOAL',\n TESTS = 'TESTS',\n PLAYLIST = 'PLAYLIST',\n SOLUTIONS = 'SOLUTIONS',\n NOTES = 'NOTES',\n FLASHCARDS = 'FLASHCARDS',\n SUBJECTIVES = 'SUBJECTIVES',\n PUZZLE_CARDS = 'PUZZLE_CARDS',\n SAT_MOCK_TEST = 'SAT_MOCK_TEST',\n STEP_UP = 'STEP_UP',\n CHALLENGE_ARENA = 'CHALLENGE_ARENA',\n DOWNLOADS = 'DOWNLOADS',\n}\n\nexport enum SECTION_CODE {\n READINESS = 'READINESS',\n GOALS = 'GOALS',\n TESTS = 'TESTS',\n ENRICHMENT = 'ENRICHMENT',\n SUBJECTIVE = 'SUBJECTIVE',\n VIDEOS = 'VIDEOS',\n NOTES = 'NOTES',\n FLASHCARDS = 'FLASHCARDS',\n PUZZLE_CARDS = 'PUZZLE_CARDS',\n}\n\nexport enum BLOCK_STATES {\n LOCKED = 'LOCKED',\n NOT_STARTED = 'NOT_STARTED',\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n}\n\nexport const BLOCK_NAME: Record<BLOCK_TYPE, string> = {\n [BLOCK_TYPE.DEFAULT]: 'Default',\n [BLOCK_TYPE.PREREQ]: 'Prerequisite',\n [BLOCK_TYPE.RECAP]: 'Recap',\n [BLOCK_TYPE.GOAL]: 'Lesson',\n [BLOCK_TYPE.TESTS]: 'Tests',\n [BLOCK_TYPE.PLAYLIST]: 'Videos',\n [BLOCK_TYPE.SOLUTIONS]: 'Solutions',\n [BLOCK_TYPE.NOTES]: 'Notes',\n [BLOCK_TYPE.FLASHCARDS]: 'Flashcards',\n [BLOCK_TYPE.SUBJECTIVES]: 'Subjective Questions',\n [BLOCK_TYPE.PUZZLE_CARDS]: 'Puzzles',\n [BLOCK_TYPE.SAT_MOCK_TEST]: 'Mock Test',\n [BLOCK_TYPE.STEP_UP]: 'Step Up',\n [BLOCK_TYPE.CHALLENGE_ARENA]: 'Challenge Arena',\n [BLOCK_TYPE.DOWNLOADS]: 'Downloads',\n};\n"],"names":["BLOCK_TYPE","SECTION_CODE","BLOCK_STATES","BLOCK_NAME"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,SAAS,UACTA,EAAA,QAAQ,SACRA,EAAA,OAAO,QACPA,EAAA,QAAQ,SACRA,EAAA,WAAW,YACXA,EAAA,YAAY,aACZA,EAAA,QAAQ,SACRA,EAAA,aAAa,cACbA,EAAA,cAAc,eACdA,EAAA,eAAe,gBACfA,EAAA,gBAAgB,iBAChBA,EAAA,UAAU,WACVA,EAAA,kBAAkB,mBAClBA,EAAA,YAAY,aAfFA,IAAAA,KAAA,CAAA,CAAA,GAkBAC,sBAAAA,OACVA,EAAA,YAAY,aACZA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SACRA,EAAA,aAAa,cACbA,EAAA,aAAa,cACbA,EAAA,SAAS,UACTA,EAAA,QAAQ,SACRA,EAAA,aAAa,cACbA,EAAA,eAAe,gBATLA,IAAAA,KAAA,CAAA,CAAA,GAYAC,sBAAAA,OACVA,EAAA,SAAS,UACTA,EAAA,cAAc,eACdA,EAAA,cAAc,eACdA,EAAA,YAAY,aAJFA,IAAAA,KAAA,CAAA,CAAA;AAOL,MAAMC,IAAyC;AAAA,EACnD,SAAqB;AAAA,EACrB,QAAoB;AAAA,EACpB,OAAmB;AAAA,EACnB,MAAkB;AAAA,EAClB,OAAmB;AAAA,EACnB,UAAsB;AAAA,EACtB,WAAuB;AAAA,EACvB,OAAmB;AAAA,EACnB,YAAwB;AAAA,EACxB,aAAyB;AAAA,EACzB,cAA0B;AAAA,EAC1B,eAA2B;AAAA,EAC3B,SAAqB;AAAA,EACrB,iBAA6B;AAAA,EAC7B,WAAuB;AAC1B;"}
@@ -1,9 +1,9 @@
1
1
  import { ILLUSTRATIONS as e } from "../../../assets/illustrations/illustrations.js";
2
- const A = (E) => {
2
+ const S = (E) => {
3
3
  if (!E) return 0;
4
- const { mandatory: c } = E, { completed: S, total: _ } = c;
5
- return _ === 0 ? 0 : Math.floor(S / _ * 100);
6
- }, r = (E) => {
4
+ const { mandatory: _ } = E, { completed: t, total: c } = _;
5
+ return c === 0 ? 0 : Math.floor(t / c * 100);
6
+ }, A = (E) => {
7
7
  switch (E) {
8
8
  case "LEVEL2":
9
9
  case "LEVEL3":
@@ -52,14 +52,24 @@ const A = (E) => {
52
52
  default:
53
53
  return e.NODE_PROJECT_BG;
54
54
  }
55
- }, t = (E, c, S, _) => {
56
- if (!S) return `(${c})`;
57
- if (!(E || !_))
58
- return `${_}`;
59
- };
55
+ }, r = ({
56
+ isSkipped: E,
57
+ sheetsLength: _,
58
+ isGoalBlock: t,
59
+ lessonIdx: c,
60
+ isSatMockTestBlock: a
61
+ }) => {
62
+ if (!t && !a) return `(${_})`;
63
+ if (!(E || !c))
64
+ return `${c}`;
65
+ }, T = (E) => E.some(
66
+ (_) => _.block_type !== "DOWNLOADS" && _.sheets.some((t) => t.node_type === "PDF")
67
+ ), N = (E) => E.some((_) => _.block_type === "DOWNLOADS");
60
68
  export {
61
- A as getChapterCompletionPercentage,
62
- r as getNodeTypeBasedBgImage,
63
- t as getSheetNLessonCount
69
+ S as getChapterCompletionPercentage,
70
+ N as getHasDownloadBlock,
71
+ T as getHasNonDownloadBlockWithPdfNode,
72
+ A as getNodeTypeBasedBgImage,
73
+ r as getSheetNLessonCount
64
74
  };
65
75
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/features/chapters-v2/utils/index.ts"],"sourcesContent":["import type { IChapterProgressStats } from '../chapter-details/chapter-details-types';\nimport type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\n\n// This function calculates the completion percentage of a chapter based on progress stats.\n// If no progress stats are provided, it returns 0.\n// It uses the `mandatory` field from the progress stats to determine the completed and total items.\n// It returns an integer representing the percentage of completion, rounded down to the nearest whole number.\nconst getChapterCompletionPercentage = (progressStats: IChapterProgressStats | null) => {\n if (!progressStats) return 0;\n\n const { mandatory } = progressStats;\n const { completed, total } = mandatory;\n\n if (total === 0) {\n return 0;\n }\n\n const percentage = Math.floor((completed / total) * 100);\n\n return percentage;\n};\n\nconst getNodeTypeBasedBgImage = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return ILLUSTRATIONS.NODE_TEST_PREP_BG;\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return ILLUSTRATIONS.NODE_LEARN_BG;\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return ILLUSTRATIONS.NODE_RECAP_BG;\n\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return ILLUSTRATIONS.NODE_CUSTOM_TEST_BG;\n\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return ILLUSTRATIONS.NODE_PRACTICE_BG;\n\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return ILLUSTRATIONS.NODE_PUZZLE_BG;\n\n case 'TURING_SUBJECTIVE':\n return ILLUSTRATIONS.NODE_SUBJECTIVE_BG;\n\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return ILLUSTRATIONS.NODE_ACTIVITY_BG;\n\n case 'VIDEO':\n return ILLUSTRATIONS.NODE_VIDEO_BG;\n\n case 'PDF':\n return ILLUSTRATIONS.NODE_DOWNLOAD_BG;\n\n default:\n return ILLUSTRATIONS.NODE_PROJECT_BG;\n }\n};\n\nconst getSheetNLessonCount = (\n isSkipped: boolean,\n sheetsLength: number,\n isGoalBlock?: boolean,\n lessonIdx?: number,\n) => {\n if (!isGoalBlock) return `(${sheetsLength})`;\n\n if (isSkipped || !lessonIdx) return undefined;\n\n return `${lessonIdx}`;\n};\n\nexport { getChapterCompletionPercentage, getNodeTypeBasedBgImage, getSheetNLessonCount };\n"],"names":["getChapterCompletionPercentage","progressStats","mandatory","completed","total","getNodeTypeBasedBgImage","nodeType","ILLUSTRATIONS","getSheetNLessonCount","isSkipped","sheetsLength","isGoalBlock","lessonIdx"],"mappings":";AASM,MAAAA,IAAiC,CAACC,MAAgD;AAClF,MAAA,CAACA,EAAsB,QAAA;AAErB,QAAA,EAAE,WAAAC,EAAc,IAAAD,GAChB,EAAE,WAAAE,GAAW,OAAAC,EAAU,IAAAF;AAE7B,SAAIE,MAAU,IACL,IAGU,KAAK,MAAOD,IAAYC,IAAS,GAAG;AAGzD,GAEMC,IAA0B,CAACC,MAA0C;AACzE,UAAQA,GAAU;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOC,EAAc;AAAA,IACvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IACvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB;AACE,aAAOA,EAAc;AAAA,EACzB;AACF,GAEMC,IAAuB,CAC3BC,GACAC,GACAC,GACAC,MACG;AACH,MAAI,CAACD,EAAoB,QAAA,IAAID,CAAY;AAErC,MAAA,EAAAD,KAAa,CAACG;AAElB,WAAO,GAAGA,CAAS;AACrB;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/features/chapters-v2/utils/index.ts"],"sourcesContent":["import type {\n IChapterBlockData,\n IChapterProgressStats,\n} from '../chapter-details/chapter-details-types';\nimport type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\n\n// This function calculates the completion percentage of a chapter based on progress stats.\n// If no progress stats are provided, it returns 0.\n// It uses the `mandatory` field from the progress stats to determine the completed and total items.\n// It returns an integer representing the percentage of completion, rounded down to the nearest whole number.\nconst getChapterCompletionPercentage = (progressStats: IChapterProgressStats | null) => {\n if (!progressStats) return 0;\n\n const { mandatory } = progressStats;\n const { completed, total } = mandatory;\n\n if (total === 0) {\n return 0;\n }\n\n const percentage = Math.floor((completed / total) * 100);\n\n return percentage;\n};\n\nconst getNodeTypeBasedBgImage = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return ILLUSTRATIONS.NODE_TEST_PREP_BG;\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return ILLUSTRATIONS.NODE_LEARN_BG;\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return ILLUSTRATIONS.NODE_RECAP_BG;\n\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return ILLUSTRATIONS.NODE_CUSTOM_TEST_BG;\n\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return ILLUSTRATIONS.NODE_PRACTICE_BG;\n\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return ILLUSTRATIONS.NODE_PUZZLE_BG;\n\n case 'TURING_SUBJECTIVE':\n return ILLUSTRATIONS.NODE_SUBJECTIVE_BG;\n\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return ILLUSTRATIONS.NODE_ACTIVITY_BG;\n\n case 'VIDEO':\n return ILLUSTRATIONS.NODE_VIDEO_BG;\n\n case 'PDF':\n return ILLUSTRATIONS.NODE_DOWNLOAD_BG;\n\n default:\n return ILLUSTRATIONS.NODE_PROJECT_BG;\n }\n};\n\ninterface IGetSheetNLessonCountParams {\n isSkipped: boolean;\n sheetsLength: number;\n isGoalBlock?: boolean;\n lessonIdx?: number;\n isSatMockTestBlock?: boolean;\n}\n\nconst getSheetNLessonCount = ({\n isSkipped,\n sheetsLength,\n isGoalBlock,\n lessonIdx,\n isSatMockTestBlock,\n}: IGetSheetNLessonCountParams) => {\n if (!isGoalBlock && !isSatMockTestBlock) return `(${sheetsLength})`;\n\n if (isSkipped || !lessonIdx) return undefined;\n\n return `${lessonIdx}`;\n};\n\nconst getHasNonDownloadBlockWithPdfNode = (blocks: IChapterBlockData[]) => {\n return blocks.some(\n blockInfo =>\n blockInfo.block_type !== 'DOWNLOADS' &&\n blockInfo.sheets.some(sheetInfo => sheetInfo.node_type === 'PDF'),\n );\n};\n\nconst getHasDownloadBlock = (blocks: IChapterBlockData[]) => {\n return blocks.some(blockInfo => blockInfo.block_type === 'DOWNLOADS');\n};\n\nexport {\n getChapterCompletionPercentage,\n getNodeTypeBasedBgImage,\n getSheetNLessonCount,\n getHasNonDownloadBlockWithPdfNode,\n getHasDownloadBlock,\n};\n"],"names":["getChapterCompletionPercentage","progressStats","mandatory","completed","total","getNodeTypeBasedBgImage","nodeType","ILLUSTRATIONS","getSheetNLessonCount","isSkipped","sheetsLength","isGoalBlock","lessonIdx","isSatMockTestBlock","getHasNonDownloadBlockWithPdfNode","blocks","blockInfo","sheetInfo","getHasDownloadBlock"],"mappings":";AAYM,MAAAA,IAAiC,CAACC,MAAgD;AAClF,MAAA,CAACA,EAAsB,QAAA;AAErB,QAAA,EAAE,WAAAC,EAAc,IAAAD,GAChB,EAAE,WAAAE,GAAW,OAAAC,EAAU,IAAAF;AAE7B,SAAIE,MAAU,IACL,IAGU,KAAK,MAAOD,IAAYC,IAAS,GAAG;AAGzD,GAEMC,IAA0B,CAACC,MAA0C;AACzE,UAAQA,GAAU;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOC,EAAc;AAAA,IACvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IACvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB;AACE,aAAOA,EAAc;AAAA,EACzB;AACF,GAUMC,IAAuB,CAAC;AAAA,EAC5B,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,oBAAAC;AACF,MAAmC;AACjC,MAAI,CAACF,KAAe,CAACE,EAAoB,QAAO,IAAIH,CAAY;AAE5D,MAAA,EAAAD,KAAa,CAACG;AAElB,WAAO,GAAGA,CAAS;AACrB,GAEME,IAAoC,CAACC,MAClCA,EAAO;AAAA,EACZ,CAAAC,MACEA,EAAU,eAAe,eACzBA,EAAU,OAAO,KAAK,CAAAC,MAAaA,EAAU,cAAc,KAAK;AAAA,GAIhEC,IAAsB,CAACH,MACpBA,EAAO,KAAK,CAAaC,MAAAA,EAAU,eAAe,WAAW;"}
@@ -0,0 +1,12 @@
1
+ import { SAT_NODE_TYPE as S } from "../../sheets/constants/sheet.js";
2
+ const u = (n) => {
3
+ if (!n || n.length === 0)
4
+ return { english: 0, math: 0 };
5
+ const o = n.reduce((t, r) => r.node_type === S.SAT_ENGLISH_ASSESSMENT ? t + (r.total_questions || 0) : t, 0), e = n.reduce((t, r) => r.node_type === S.SAT_MATH_ASSESSMENT ? t + (r.total_questions || 0) : t, 0);
6
+ return { english: o, math: e };
7
+ }, _ = (n) => n.find((e) => e.permissions.can_start || e.permissions.can_resume) ?? (n == null ? void 0 : n[0]);
8
+ export {
9
+ _ as getNextAccessibleSATSheet,
10
+ u as getSatSheetQuestionsCount
11
+ };
12
+ //# sourceMappingURL=sat-sheet-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sat-sheet-utils.js","sources":["../../../../src/features/chapters-v2/utils/sat-sheet-utils.ts"],"sourcesContent":["import type { ISatMockTestProps } from '../comps/sat-mock-test/sat-mock-test-types';\n\nimport { SAT_NODE_TYPE } from '../../sheets/constants/sheet';\n\nconst getSatSheetQuestionsCount = (sheets: ISatMockTestProps['sheets']) => {\n if (!sheets || sheets.length === 0) {\n return { english: 0, math: 0 };\n }\n\n const english = sheets.reduce((acc, sheet) => {\n if (sheet.node_type === SAT_NODE_TYPE.SAT_ENGLISH_ASSESSMENT) {\n return acc + (sheet.total_questions || 0);\n }\n\n return acc;\n }, 0);\n\n const math = sheets.reduce((acc, sheet) => {\n if (sheet.node_type === SAT_NODE_TYPE.SAT_MATH_ASSESSMENT) {\n return acc + (sheet.total_questions || 0);\n }\n\n return acc;\n }, 0);\n\n return { english, math };\n};\n\nconst getNextAccessibleSATSheet = (sheets: ISatMockTestProps['sheets']) => {\n const accessibleSheet =\n sheets.find(sheet => sheet.permissions.can_start || sheet.permissions.can_resume) ??\n sheets?.[0];\n\n return accessibleSheet;\n};\n\nexport { getSatSheetQuestionsCount, getNextAccessibleSATSheet };\n"],"names":["getSatSheetQuestionsCount","sheets","english","acc","sheet","SAT_NODE_TYPE","math","getNextAccessibleSATSheet"],"mappings":";AAIM,MAAAA,IAA4B,CAACC,MAAwC;AACzE,MAAI,CAACA,KAAUA,EAAO,WAAW;AAC/B,WAAO,EAAE,SAAS,GAAG,MAAM,EAAE;AAG/B,QAAMC,IAAUD,EAAO,OAAO,CAACE,GAAKC,MAC9BA,EAAM,cAAcC,EAAc,yBAC7BF,KAAOC,EAAM,mBAAmB,KAGlCD,GACN,CAAC,GAEEG,IAAOL,EAAO,OAAO,CAACE,GAAKC,MAC3BA,EAAM,cAAcC,EAAc,sBAC7BF,KAAOC,EAAM,mBAAmB,KAGlCD,GACN,CAAC;AAEG,SAAA,EAAE,SAAAD,GAAS,MAAAI;AACpB,GAEMC,IAA4B,CAACN,MAE/BA,EAAO,KAAK,CAAAG,MAASA,EAAM,YAAY,aAAaA,EAAM,YAAY,UAAU,MAChFH,KAAA,gBAAAA,EAAS;"}
@@ -103,7 +103,6 @@ const Y = G((V, h) => {
103
103
  return /* @__PURE__ */ P(F, { $height: "100%", $width: "100%", children: [
104
104
  /* @__PURE__ */ y(C, { height: window.ReactNativeTopInset || 0 }),
105
105
  /* @__PURE__ */ y("iframe", { ...M, ref: f, src: `${W}?version=2`, allow: "autoplay" }),
106
- ";",
107
106
  /* @__PURE__ */ y(C, { height: window.ReactNativeBottomInset || 0 })
108
107
  ] });
109
108
  });
@@ -1 +1 @@
1
- {"version":3,"file":"web-view.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view.tsx"],"sourcesContent":["import type {\n IInfoMessage,\n ILessonWebGameProps,\n IMessageProps,\n IMultiplayerWebGameProps,\n IPlayerStats,\n IPuzzleWebGameProps,\n ITableWebGameProps,\n ITrackEvent,\n IVibrationPattern,\n IWebViewProps,\n} from './web-view-types';\nimport type { ForwardedRef } from 'react';\n\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\n\nimport { useUIContext } from '../../../ui/context/context';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport { ALLOWED_ORIGIN } from './constants';\nimport { ProjectType, WebViewEvent } from './enums';\n\nexport const WebView = forwardRef((props: IWebViewProps, ref: ForwardedRef<HTMLIFrameElement>) => {\n const {\n baseUrl,\n projectDetails,\n playerDetails,\n onGameLoad,\n onGamePlayFinish,\n handleInfoMessage,\n onBack,\n parentDomain,\n ...rest\n } = props;\n const webViewRef = useRef<HTMLIFrameElement>(null);\n const memoizedPlayerDetails = useMemo(() => playerDetails, [playerDetails]);\n const memoizedProjectDetails = useMemo(() => projectDetails, [projectDetails]);\n\n let miniGameIdentifier = '';\n const { onEvent: trackEvent } = useUIContext();\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n miniGameIdentifier = (memoizedProjectDetails as ILessonWebGameProps).miniGameIdentifier;\n }\n\n const getProjectDetails = useCallback(() => {\n const { enableCloseButton = true } = memoizedProjectDetails;\n\n let payload = {\n enableCloseButton,\n } as IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;\n\n if (memoizedProjectDetails.projectType === ProjectType.GAME) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as IMultiplayerWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.PUZZLE) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as IPuzzleWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as ILessonWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.TABLE) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as ITableWebGameProps;\n }\n\n return payload;\n }, [memoizedProjectDetails]);\n\n const sendGamesData = useCallback(() => {\n const payload = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.GAME_DATA,\n payload,\n }),\n ALLOWED_ORIGIN,\n );\n }, [getProjectDetails]);\n\n const setConfig = useCallback(() => {\n const projectConfig = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.SET_CONFIG,\n payload: {\n user: memoizedPlayerDetails,\n projectConfig,\n parentDomain,\n },\n }),\n ALLOWED_ORIGIN,\n );\n }, [memoizedPlayerDetails, getProjectDetails, parentDomain]);\n\n const getValidObject = useCallback((str: string) => {\n let validObject = {};\n\n try {\n const parsed = JSON.parse(str);\n\n if (typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)) {\n validObject = parsed as IMessageProps;\n }\n } catch {\n validObject = {};\n\n // eslint-disable-next-line no-console\n console.log('Invalid JSON string:', str);\n }\n\n return validObject as IMessageProps;\n }, []);\n\n useImperativeHandle(ref, () => webViewRef.current as HTMLIFrameElement, []);\n\n useEffect(() => {\n const handleMessage = (e: MessageEvent) => {\n const data: string = e.data;\n\n const parsedData = typeof data === 'string' ? getValidObject(data) : (data as IMessageProps);\n\n const { event = null, payload = null } = parsedData;\n\n if (event === WebViewEvent.VIBRATE) {\n const { pattern } = payload as IVibrationPattern;\n\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(JSON.stringify(parsedData));\n } else {\n window.navigator.vibrate?.(pattern);\n }\n }\n\n if (event === WebViewEvent.GAME_BACK) {\n onBack?.();\n }\n\n if (event === WebViewEvent.HIDE_LOADER) {\n onGameLoad?.();\n }\n\n if (event === WebViewEvent.LOAD_DATA_FROM_APP) {\n sendGamesData?.();\n }\n\n if (event === WebViewEvent.GET_CONFIG) {\n setConfig();\n }\n\n if (event === WebViewEvent.UPDATE_STATS) {\n onGamePlayFinish?.(payload as IPlayerStats);\n }\n\n if (event === WebViewEvent.SHOW_SNACKBAR) {\n handleInfoMessage?.(payload as IInfoMessage);\n }\n\n if (event === WebViewEvent.TRACK_EVENT) {\n const { eventName, properties } = payload as ITrackEvent;\n\n trackEvent(eventName as unknown as string, properties);\n }\n };\n\n window.addEventListener('message', handleMessage);\n\n return () => {\n window.removeEventListener('message', handleMessage);\n };\n }, [\n handleInfoMessage,\n onBack,\n onGamePlayFinish,\n onGameLoad,\n setConfig,\n sendGamesData,\n trackEvent,\n getValidObject,\n ]);\n\n const url = playerDetails.isAdmin\n ? baseUrl\n : `${baseUrl}/play-game/${memoizedProjectDetails.projectId}/${memoizedProjectDetails.variant}${\n miniGameIdentifier ? `/${miniGameIdentifier}` : ''\n }`;\n\n return (\n <FlexView $height=\"100%\" $width=\"100%\">\n <Separator height={window.ReactNativeTopInset || 0} />\n <iframe {...rest} ref={webViewRef} src={`${url}?version=2`} allow=\"autoplay\" />;\n <Separator height={window.ReactNativeBottomInset || 0} />\n </FlexView>\n );\n});\n"],"names":["WebView","forwardRef","props","ref","baseUrl","projectDetails","playerDetails","onGameLoad","onGamePlayFinish","handleInfoMessage","onBack","parentDomain","rest","webViewRef","useRef","memoizedPlayerDetails","useMemo","memoizedProjectDetails","miniGameIdentifier","trackEvent","useUIContext","ProjectType","getProjectDetails","useCallback","enableCloseButton","payload","sendGamesData","_b","_a","WebViewEvent","ALLOWED_ORIGIN","setConfig","projectConfig","getValidObject","str","validObject","parsed","useImperativeHandle","useEffect","handleMessage","data","parsedData","event","pattern","eventName","properties","url","jsxs","FlexView","jsx","Separator"],"mappings":"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"}
1
+ {"version":3,"file":"web-view.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view.tsx"],"sourcesContent":["import type {\n IInfoMessage,\n ILessonWebGameProps,\n IMessageProps,\n IMultiplayerWebGameProps,\n IPlayerStats,\n IPuzzleWebGameProps,\n ITableWebGameProps,\n ITrackEvent,\n IVibrationPattern,\n IWebViewProps,\n} from './web-view-types';\nimport type { ForwardedRef } from 'react';\n\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\n\nimport { useUIContext } from '../../../ui/context/context';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport { ALLOWED_ORIGIN } from './constants';\nimport { ProjectType, WebViewEvent } from './enums';\n\nexport const WebView = forwardRef((props: IWebViewProps, ref: ForwardedRef<HTMLIFrameElement>) => {\n const {\n baseUrl,\n projectDetails,\n playerDetails,\n onGameLoad,\n onGamePlayFinish,\n handleInfoMessage,\n onBack,\n parentDomain,\n ...rest\n } = props;\n const webViewRef = useRef<HTMLIFrameElement>(null);\n const memoizedPlayerDetails = useMemo(() => playerDetails, [playerDetails]);\n const memoizedProjectDetails = useMemo(() => projectDetails, [projectDetails]);\n\n let miniGameIdentifier = '';\n const { onEvent: trackEvent } = useUIContext();\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n miniGameIdentifier = (memoizedProjectDetails as ILessonWebGameProps).miniGameIdentifier;\n }\n\n const getProjectDetails = useCallback(() => {\n const { enableCloseButton = true } = memoizedProjectDetails;\n\n let payload = {\n enableCloseButton,\n } as IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;\n\n if (memoizedProjectDetails.projectType === ProjectType.GAME) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as IMultiplayerWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.PUZZLE) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as IPuzzleWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as ILessonWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.TABLE) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as ITableWebGameProps;\n }\n\n return payload;\n }, [memoizedProjectDetails]);\n\n const sendGamesData = useCallback(() => {\n const payload = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.GAME_DATA,\n payload,\n }),\n ALLOWED_ORIGIN,\n );\n }, [getProjectDetails]);\n\n const setConfig = useCallback(() => {\n const projectConfig = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.SET_CONFIG,\n payload: {\n user: memoizedPlayerDetails,\n projectConfig,\n parentDomain,\n },\n }),\n ALLOWED_ORIGIN,\n );\n }, [memoizedPlayerDetails, getProjectDetails, parentDomain]);\n\n const getValidObject = useCallback((str: string) => {\n let validObject = {};\n\n try {\n const parsed = JSON.parse(str);\n\n if (typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)) {\n validObject = parsed as IMessageProps;\n }\n } catch {\n validObject = {};\n\n // eslint-disable-next-line no-console\n console.log('Invalid JSON string:', str);\n }\n\n return validObject as IMessageProps;\n }, []);\n\n useImperativeHandle(ref, () => webViewRef.current as HTMLIFrameElement, []);\n\n useEffect(() => {\n const handleMessage = (e: MessageEvent) => {\n const data: string = e.data;\n\n const parsedData = typeof data === 'string' ? getValidObject(data) : (data as IMessageProps);\n\n const { event = null, payload = null } = parsedData;\n\n if (event === WebViewEvent.VIBRATE) {\n const { pattern } = payload as IVibrationPattern;\n\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(JSON.stringify(parsedData));\n } else {\n window.navigator.vibrate?.(pattern);\n }\n }\n\n if (event === WebViewEvent.GAME_BACK) {\n onBack?.();\n }\n\n if (event === WebViewEvent.HIDE_LOADER) {\n onGameLoad?.();\n }\n\n if (event === WebViewEvent.LOAD_DATA_FROM_APP) {\n sendGamesData?.();\n }\n\n if (event === WebViewEvent.GET_CONFIG) {\n setConfig();\n }\n\n if (event === WebViewEvent.UPDATE_STATS) {\n onGamePlayFinish?.(payload as IPlayerStats);\n }\n\n if (event === WebViewEvent.SHOW_SNACKBAR) {\n handleInfoMessage?.(payload as IInfoMessage);\n }\n\n if (event === WebViewEvent.TRACK_EVENT) {\n const { eventName, properties } = payload as ITrackEvent;\n\n trackEvent(eventName as unknown as string, properties);\n }\n };\n\n window.addEventListener('message', handleMessage);\n\n return () => {\n window.removeEventListener('message', handleMessage);\n };\n }, [\n handleInfoMessage,\n onBack,\n onGamePlayFinish,\n onGameLoad,\n setConfig,\n sendGamesData,\n trackEvent,\n getValidObject,\n ]);\n\n const url = playerDetails.isAdmin\n ? baseUrl\n : `${baseUrl}/play-game/${memoizedProjectDetails.projectId}/${memoizedProjectDetails.variant}${\n miniGameIdentifier ? `/${miniGameIdentifier}` : ''\n }`;\n\n return (\n <FlexView $height=\"100%\" $width=\"100%\">\n <Separator height={window.ReactNativeTopInset || 0} />\n <iframe {...rest} ref={webViewRef} src={`${url}?version=2`} allow=\"autoplay\" />\n <Separator height={window.ReactNativeBottomInset || 0} />\n </FlexView>\n );\n});\n"],"names":["WebView","forwardRef","props","ref","baseUrl","projectDetails","playerDetails","onGameLoad","onGamePlayFinish","handleInfoMessage","onBack","parentDomain","rest","webViewRef","useRef","memoizedPlayerDetails","useMemo","memoizedProjectDetails","miniGameIdentifier","trackEvent","useUIContext","ProjectType","getProjectDetails","useCallback","enableCloseButton","payload","sendGamesData","_b","_a","WebViewEvent","ALLOWED_ORIGIN","setConfig","projectConfig","getValidObject","str","validObject","parsed","useImperativeHandle","useEffect","handleMessage","data","parsedData","event","pattern","eventName","properties","url","jsxs","FlexView","jsx","Separator"],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { useRef as f, useCallback as i, useMemo as w, useEffect as b } from "react";
3
+ import k from "../../../chapters-v2/chapter-details/block-sections/block-section-view.js";
4
+ import h from "../../../ui/layout/flex-view.js";
5
+ import B from "../../../ui/text/text.js";
6
+ import { JOURNEY_ID_STUDENT as L } from "../../journey-id/journey-id-student.js";
7
+ import { DOWNLOAD_BLOCK_MOCKS as g } from "../../mocks/chapter-page-journey-mock-data.js";
8
+ import { IndicatorType as I } from "../../use-journey/constants.js";
9
+ import { useJourney as J } from "../../use-journey/use-journey.js";
10
+ import E from "../use-home-page-journey/tooltip-item.js";
11
+ const H = () => {
12
+ const e = L.DOWNLOAD_BLOCK_JOURNEY, o = f(null), t = f([]), { nextCoachmark: l, setJourney: c, endJourney: s } = J(), u = i(() => {
13
+ l(e, !1, 0, !0);
14
+ }, [e, l]), m = i(() => {
15
+ document.body.style.overflow = "unset", s(e);
16
+ }, [s, e]), a = i(
17
+ ({ chapterDetails: n, userType: C }) => {
18
+ if (!(o != null && o.current) || !n)
19
+ return;
20
+ const { image_hue: T } = n, O = [
21
+ {
22
+ originalElementToHighlightRef: o,
23
+ elementToHighlight: /* @__PURE__ */ r(h, { $widthX: 50, children: /* @__PURE__ */ r(
24
+ k,
25
+ {
26
+ blockData: g,
27
+ userType: C,
28
+ isLastBlock: !0,
29
+ lessonIdx: 0,
30
+ imageHue: T
31
+ }
32
+ ) }),
33
+ type: I.TOOLTIP,
34
+ indicator: {
35
+ position: "top",
36
+ tooltipYCoOrdinates: 14,
37
+ tooltipXCoOrdinates: "-100%",
38
+ backgroundColor: "BLUE_4",
39
+ borderColor: "BLACK",
40
+ arrowColor: "BLACK",
41
+ arrowSize: 12,
42
+ arrowXCoOrdinates: -100,
43
+ width: 264,
44
+ children: null,
45
+ renderAs: "primary",
46
+ tooltipItem: /* @__PURE__ */ r(
47
+ E,
48
+ {
49
+ element: /* @__PURE__ */ r(h, { children: /* @__PURE__ */ r(B, { $renderAs: "ab2-black", children: "Introducing downloadable study material." }) }),
50
+ buttonLabel: "Got it",
51
+ onButtonClick: m
52
+ }
53
+ )
54
+ }
55
+ }
56
+ ];
57
+ c(e, O);
58
+ const d = setTimeout(() => {
59
+ clearTimeout(d), o.current && o.current.scrollIntoView({
60
+ behavior: "smooth",
61
+ block: "center",
62
+ inline: "center"
63
+ });
64
+ const p = setTimeout(() => {
65
+ clearTimeout(p), document.body.style.overflow = "hidden", u();
66
+ }, 800);
67
+ t.current.push(p);
68
+ }, 800);
69
+ t.current.push(d);
70
+ },
71
+ [m, u, e, c]
72
+ ), y = w(
73
+ () => ({
74
+ blockSectionRef: o,
75
+ startJourney: a
76
+ }),
77
+ [a]
78
+ );
79
+ return b(() => () => {
80
+ t.current.forEach((n) => clearTimeout(n)), t.current = [];
81
+ }, []), y;
82
+ };
83
+ export {
84
+ H as useDownloadBlockJourney
85
+ };
86
+ //# sourceMappingURL=use-download-block-journey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-download-block-journey.js","sources":["../../../../../src/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.tsx"],"sourcesContent":["import type { IArrowTooltipProps } from '../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type { TCoachmarkJourneyProps } from '../../use-journey/journey-context-types';\nimport type { IChallengeArenaStartJourneyProps } from './chapter-page-types';\n\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport BlockSectionView from '../../../chapters-v2/chapter-details/block-sections/block-section-view';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { JOURNEY_ID_STUDENT } from '../../journey-id/journey-id-student';\nimport { DOWNLOAD_BLOCK_MOCKS } from '../../mocks/chapter-page-journey-mock-data';\nimport { IndicatorType } from '../../use-journey/constants';\nimport { useJourney } from '../../use-journey/use-journey';\nimport TooltipItem from '../use-home-page-journey/tooltip-item';\n\nexport const useDownloadBlockJourney = () => {\n const journeyId = JOURNEY_ID_STUDENT.DOWNLOAD_BLOCK_JOURNEY;\n\n const blockSectionRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const timerRefs = useRef<ReturnType<typeof setTimeout>[]>([]);\n const { nextCoachmark, setJourney, endJourney } = useJourney();\n\n const handleNextCoachmark = useCallback(() => {\n nextCoachmark(journeyId, false, 0, true);\n }, [journeyId, nextCoachmark]);\n\n const handleEndJourney = useCallback(() => {\n document.body.style.overflow = 'unset';\n endJourney(journeyId);\n }, [endJourney, journeyId]);\n\n const startJourney = useCallback(\n ({ chapterDetails, userType }: IChallengeArenaStartJourneyProps) => {\n if (!blockSectionRef?.current || !chapterDetails) {\n return;\n }\n\n const { image_hue: imageHue } = chapterDetails;\n\n const downloadNodeJourneySteps: TCoachmarkJourneyProps[] = [\n {\n originalElementToHighlightRef: blockSectionRef,\n elementToHighlight: (\n <FlexView $widthX={50}>\n <BlockSectionView\n blockData={DOWNLOAD_BLOCK_MOCKS}\n userType={userType}\n isLastBlock={true}\n lessonIdx={0}\n imageHue={imageHue}\n />\n </FlexView>\n ),\n type: IndicatorType.TOOLTIP,\n indicator: {\n position: 'top',\n tooltipYCoOrdinates: 14,\n tooltipXCoOrdinates: '-100%',\n backgroundColor: 'BLUE_4',\n borderColor: 'BLACK',\n arrowColor: 'BLACK',\n arrowSize: 12,\n arrowXCoOrdinates: -100,\n width: 264,\n children: null,\n renderAs: 'primary',\n tooltipItem: (\n <TooltipItem\n element={\n <FlexView>\n <Text $renderAs=\"ab2-black\">Introducing downloadable study material.</Text>\n </FlexView>\n }\n buttonLabel=\"Got it\"\n onButtonClick={handleEndJourney}\n />\n ),\n } as IArrowTooltipProps,\n },\n ];\n\n setJourney(journeyId, downloadNodeJourneySteps);\n\n const delayBeforeStart = setTimeout(() => {\n clearTimeout(delayBeforeStart);\n\n // Scroll the element into view if it's not visible\n if (blockSectionRef.current) {\n blockSectionRef.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n });\n }\n\n // Wait for scroll to complete before starting the journey\n const scrollCompleteTimer = setTimeout(() => {\n clearTimeout(scrollCompleteTimer);\n document.body.style.overflow = 'hidden';\n handleNextCoachmark();\n }, 800); // Give time for smooth scroll to complete\n\n timerRefs.current.push(scrollCompleteTimer);\n }, 800);\n\n timerRefs.current.push(delayBeforeStart);\n },\n [handleEndJourney, handleNextCoachmark, journeyId, setJourney],\n );\n\n const data = useMemo(\n () => ({\n blockSectionRef,\n startJourney,\n }),\n [startJourney],\n );\n\n useEffect(() => {\n return () => {\n timerRefs.current.forEach(timer => clearTimeout(timer));\n timerRefs.current = [];\n };\n }, []);\n\n return data;\n};\n"],"names":["useDownloadBlockJourney","journeyId","JOURNEY_ID_STUDENT","blockSectionRef","useRef","timerRefs","nextCoachmark","setJourney","endJourney","useJourney","handleNextCoachmark","useCallback","handleEndJourney","startJourney","chapterDetails","userType","imageHue","downloadNodeJourneySteps","jsx","FlexView","BlockSectionView","DOWNLOAD_BLOCK_MOCKS","IndicatorType","TooltipItem","Text","delayBeforeStart","scrollCompleteTimer","data","useMemo","useEffect","timer"],"mappings":";;;;;;;;;;AAeO,MAAMA,IAA0B,MAAM;AAC3C,QAAMC,IAAYC,EAAmB,wBAE/BC,IAAkBC,EAAuB,IAAI,GAC7CC,IAAYD,EAAwC,CAAA,CAAE,GACtD,EAAE,eAAAE,GAAe,YAAAC,GAAY,YAAAC,MAAeC,EAAW,GAEvDC,IAAsBC,EAAY,MAAM;AAC9B,IAAAL,EAAAL,GAAW,IAAO,GAAG,EAAI;AAAA,EAAA,GACtC,CAACA,GAAWK,CAAa,CAAC,GAEvBM,IAAmBD,EAAY,MAAM;AAChC,aAAA,KAAK,MAAM,WAAW,SAC/BH,EAAWP,CAAS;AAAA,EAAA,GACnB,CAACO,GAAYP,CAAS,CAAC,GAEpBY,IAAeF;AAAA,IACnB,CAAC,EAAE,gBAAAG,GAAgB,UAAAC,QAAiD;AAClE,UAAI,EAACZ,KAAA,QAAAA,EAAiB,YAAW,CAACW;AAChC;AAGI,YAAA,EAAE,WAAWE,EAAa,IAAAF,GAE1BG,IAAqD;AAAA,QACzD;AAAA,UACE,+BAA+Bd;AAAA,UAC/B,oBACE,gBAAAe,EAACC,GAAS,EAAA,SAAS,IACjB,UAAA,gBAAAD;AAAA,YAACE;AAAA,YAAA;AAAA,cACC,WAAWC;AAAA,cACX,UAAAN;AAAA,cACA,aAAa;AAAA,cACb,WAAW;AAAA,cACX,UAAAC;AAAA,YAAA;AAAA,UAAA,GAEJ;AAAA,UAEF,MAAMM,EAAc;AAAA,UACpB,WAAW;AAAA,YACT,UAAU;AAAA,YACV,qBAAqB;AAAA,YACrB,qBAAqB;AAAA,YACrB,iBAAiB;AAAA,YACjB,aAAa;AAAA,YACb,YAAY;AAAA,YACZ,WAAW;AAAA,YACX,mBAAmB;AAAA,YACnB,OAAO;AAAA,YACP,UAAU;AAAA,YACV,UAAU;AAAA,YACV,aACE,gBAAAJ;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,2BACGJ,GACC,EAAA,UAAA,gBAAAD,EAACM,KAAK,WAAU,aAAY,sDAAwC,EACtE,CAAA;AAAA,gBAEF,aAAY;AAAA,gBACZ,eAAeZ;AAAA,cAAA;AAAA,YACjB;AAAA,UAEJ;AAAA,QACF;AAAA,MAAA;AAGF,MAAAL,EAAWN,GAAWgB,CAAwB;AAExC,YAAAQ,IAAmB,WAAW,MAAM;AACxC,qBAAaA,CAAgB,GAGzBtB,EAAgB,WAClBA,EAAgB,QAAQ,eAAe;AAAA,UACrC,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA,CACT;AAIG,cAAAuB,IAAsB,WAAW,MAAM;AAC3C,uBAAaA,CAAmB,GACvB,SAAA,KAAK,MAAM,WAAW,UACXhB;WACnB,GAAG;AAEI,QAAAL,EAAA,QAAQ,KAAKqB,CAAmB;AAAA,SACzC,GAAG;AAEI,MAAArB,EAAA,QAAQ,KAAKoB,CAAgB;AAAA,IACzC;AAAA,IACA,CAACb,GAAkBF,GAAqBT,GAAWM,CAAU;AAAA,EAAA,GAGzDoB,IAAOC;AAAA,IACX,OAAO;AAAA,MACL,iBAAAzB;AAAA,MACA,cAAAU;AAAA,IAAA;AAAA,IAEF,CAACA,CAAY;AAAA,EAAA;AAGf,SAAAgB,EAAU,MACD,MAAM;AACX,IAAAxB,EAAU,QAAQ,QAAQ,CAASyB,MAAA,aAAaA,CAAK,CAAC,GACtDzB,EAAU,UAAU;EAAC,GAEtB,CAAE,CAAA,GAEEsB;AACT;"}
@@ -0,0 +1,140 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { useRef as i, useCallback as f, useMemo as R, useEffect as J } from "react";
3
+ import B from "../../../chapters-v2/chapter-details/block-sections/block-section-view.js";
4
+ import { getHasDownloadBlock as S } from "../../../chapters-v2/utils/index.js";
5
+ import a from "../../../ui/layout/flex-view.js";
6
+ import L from "../../../ui/text/text.js";
7
+ import { JOURNEY_ID_STUDENT as T } from "../../journey-id/journey-id-student.js";
8
+ import { BLOCK_MOCKS_WITH_DOWNLOAD_NODE as x, DOWNLOAD_BLOCK_MOCKS as K } from "../../mocks/chapter-page-journey-mock-data.js";
9
+ import { IndicatorType as g } from "../../use-journey/constants.js";
10
+ import { useJourney as H } from "../../use-journey/use-journey.js";
11
+ import D from "../use-home-page-journey/tooltip-item.js";
12
+ const z = () => {
13
+ const e = T.DOWNLOAD_NODE_JOURNEY, c = i(null), s = i(null), t = i(null), r = i([]), { nextCoachmark: h, setJourney: p, endJourney: n } = H(), d = f(() => {
14
+ h(e, !1, 0, !0);
15
+ }, [e, h]), u = f(() => {
16
+ document.body.style.overflow = "unset", n(e);
17
+ }, [n, e]), O = f(
18
+ ({
19
+ chapterDetails: l,
20
+ userType: C,
21
+ canStartDownloadBlockJourney: _
22
+ }) => {
23
+ if (!l || !s.current)
24
+ return;
25
+ const { image_hue: y, blocks: A } = l, m = _ && S(A);
26
+ if (m && !t.current) return;
27
+ const I = [
28
+ {
29
+ originalElementToHighlightRef: s,
30
+ elementToHighlight: /* @__PURE__ */ o(a, { $widthX: 50, ref: c, children: /* @__PURE__ */ o(
31
+ B,
32
+ {
33
+ blockData: x,
34
+ userType: C,
35
+ isLastBlock: !0,
36
+ lessonIdx: 0,
37
+ imageHue: y,
38
+ isGoalBlock: !0
39
+ }
40
+ ) }),
41
+ type: g.TOOLTIP,
42
+ indicator: {
43
+ position: "bottom",
44
+ tooltipYCoOrdinates: -84,
45
+ tooltipXCoOrdinates: "127%",
46
+ backgroundColor: "PURPLE_4",
47
+ borderColor: "BLACK",
48
+ arrowColor: "BLACK",
49
+ arrowSize: 12,
50
+ arrowXCoOrdinates: -100,
51
+ width: 264,
52
+ children: null,
53
+ renderAs: "primary",
54
+ tooltipItem: /* @__PURE__ */ o(
55
+ D,
56
+ {
57
+ element: /* @__PURE__ */ o(a, { children: /* @__PURE__ */ o(L, { $renderAs: "ab2-black", children: "Introducing downloadable study material." }) }),
58
+ buttonLabel: m ? "Next" : "Got it",
59
+ onButtonClick: () => {
60
+ if (m) {
61
+ const w = document.getElementById("tooltip-root");
62
+ w && Array.from(w.children).forEach((N) => {
63
+ N.style.display = "none";
64
+ }), c.current && (c.current.style.display = "none"), t.current && t.current.scrollIntoView({
65
+ behavior: "smooth",
66
+ block: "center",
67
+ inline: "center"
68
+ });
69
+ const k = setTimeout(() => {
70
+ clearTimeout(k), d();
71
+ }, 800);
72
+ r.current.push(k);
73
+ } else
74
+ u();
75
+ }
76
+ }
77
+ )
78
+ }
79
+ },
80
+ {
81
+ originalElementToHighlightRef: t,
82
+ elementToHighlight: /* @__PURE__ */ o(a, { $widthX: 50, children: /* @__PURE__ */ o(
83
+ B,
84
+ {
85
+ blockData: K,
86
+ userType: C,
87
+ isLastBlock: !0,
88
+ lessonIdx: 0,
89
+ imageHue: y
90
+ }
91
+ ) }),
92
+ type: g.TOOLTIP,
93
+ indicator: {
94
+ position: "top",
95
+ tooltipYCoOrdinates: 14,
96
+ tooltipXCoOrdinates: "-100%",
97
+ backgroundColor: "BLUE_4",
98
+ borderColor: "BLACK",
99
+ arrowColor: "BLACK",
100
+ arrowSize: 12,
101
+ arrowXCoOrdinates: -100,
102
+ width: 264,
103
+ children: null,
104
+ renderAs: "primary",
105
+ tooltipItem: /* @__PURE__ */ o(
106
+ D,
107
+ {
108
+ element: /* @__PURE__ */ o(a, { children: /* @__PURE__ */ o(L, { $renderAs: "ab2-black", children: "Also available in the Downloads section." }) }),
109
+ buttonLabel: "Got it",
110
+ onButtonClick: () => {
111
+ u(), n(T.DOWNLOAD_BLOCK_JOURNEY);
112
+ }
113
+ }
114
+ )
115
+ }
116
+ }
117
+ ];
118
+ p(e, I);
119
+ const b = setTimeout(() => {
120
+ clearTimeout(b), document.body.style.overflow = "hidden", d();
121
+ }, 800);
122
+ r.current.push(b);
123
+ },
124
+ [n, u, d, e, p]
125
+ ), E = R(
126
+ () => ({
127
+ blockSectionRef: t,
128
+ downloadCoreBlockRef: s,
129
+ startJourney: O
130
+ }),
131
+ [O]
132
+ );
133
+ return J(() => () => {
134
+ r.current.forEach((l) => clearTimeout(l)), r.current = [];
135
+ }, []), E;
136
+ };
137
+ export {
138
+ z as useDownloadNodeJourney
139
+ };
140
+ //# sourceMappingURL=use-download-node-journey.js.map