@cuemath/leap 3.3.1 → 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.
- package/dist/assets/gif/gif.js +3 -0
- package/dist/assets/gif/gif.js.map +1 -1
- package/dist/assets/illustrations/illustrations.js +10 -1
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/assets/images/images.js +10 -0
- package/dist/assets/images/images.js.map +1 -1
- package/dist/assets/line-icons/icons/cue-coin.js +182 -0
- package/dist/assets/line-icons/icons/cue-coin.js.map +1 -0
- package/dist/assets/line-icons/icons/wins-common-icon.js +26 -0
- package/dist/assets/line-icons/icons/wins-common-icon.js.map +1 -0
- package/dist/assets/line-icons/icons/wins-epic-icon.js +25 -0
- package/dist/assets/line-icons/icons/wins-epic-icon.js.map +1 -0
- package/dist/assets/line-icons/icons/wins-legendary-icon.js +25 -0
- package/dist/assets/line-icons/icons/wins-legendary-icon.js.map +1 -0
- package/dist/assets/line-icons/icons/wins-mystery-icon.js +105 -0
- package/dist/assets/line-icons/icons/wins-mystery-icon.js.map +1 -0
- package/dist/assets/line-icons/icons/wins-mythic-icon.js +28 -0
- package/dist/assets/line-icons/icons/wins-mythic-icon.js.map +1 -0
- package/dist/assets/line-icons/icons/wins-rare-icon.js +28 -0
- package/dist/assets/line-icons/icons/wins-rare-icon.js.map +1 -0
- package/dist/assets/lottie/lottie.js +10 -3
- package/dist/assets/lottie/lottie.js.map +1 -1
- package/dist/constants/config.js +5 -0
- package/dist/constants/config.js.map +1 -0
- package/dist/constants/country.js +9 -0
- package/dist/constants/country.js.map +1 -1
- package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js +6 -6
- package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js.map +1 -1
- package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar.js +4 -4
- package/dist/features/auth/comps/linear-progress-bar/linear-progress-bar.js.map +1 -1
- package/dist/features/auth/comps/otp-input/otp-input.js +19 -18
- package/dist/features/auth/comps/otp-input/otp-input.js.map +1 -1
- package/dist/features/auth/comps/pill-button/pill-button-styled.js +17 -17
- package/dist/features/auth/comps/pill-button/pill-button-styled.js.map +1 -1
- package/dist/features/auth/comps/pill-button/pill-button.js +26 -24
- package/dist/features/auth/comps/pill-button/pill-button.js.map +1 -1
- package/dist/features/auth/comps/user-list/user-item/user-item.js +32 -30
- package/dist/features/auth/comps/user-list/user-item/user-item.js.map +1 -1
- package/dist/features/auth/comps/user-list/user-list.js +20 -19
- package/dist/features/auth/comps/user-list/user-list.js.map +1 -1
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-constants.js +9 -9
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-constants.js.map +1 -1
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js +58 -29
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js.map +1 -1
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js +78 -41
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js.map +1 -1
- package/dist/features/auth/pla-signup/pla-analytics-events.js +5 -4
- package/dist/features/auth/pla-signup/pla-analytics-events.js.map +1 -1
- package/dist/features/auth/pla-signup/signup-header/signup-header.js +1 -1
- package/dist/features/auth/pla-signup/signup-header/signup-header.js.map +1 -1
- package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper-styled.js +37 -35
- package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper-styled.js.map +1 -1
- package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper.js +75 -70
- package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper.js.map +1 -1
- package/dist/features/auth/signup/custom-input-field/custom-input-field.js +55 -50
- package/dist/features/auth/signup/custom-input-field/custom-input-field.js.map +1 -1
- package/dist/features/auth/signup/custom-input-field/input-wrapper/input-wrapper.js +47 -25
- package/dist/features/auth/signup/custom-input-field/input-wrapper/input-wrapper.js.map +1 -1
- package/dist/features/auth/signup-unavailable/signup-unavailable-styled.js +16 -0
- package/dist/features/auth/signup-unavailable/signup-unavailable-styled.js.map +1 -0
- package/dist/features/auth/signup-unavailable/signup-unavailable-view.js +62 -0
- package/dist/features/auth/signup-unavailable/signup-unavailable-view.js.map +1 -0
- package/dist/features/auth/signup-unavailable/signup-unavailable.js +17 -0
- package/dist/features/auth/signup-unavailable/signup-unavailable.js.map +1 -0
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/question-overview.js +19 -18
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/question-overview.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary-styled.js +7 -7
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary-styled.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary.js +26 -24
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/sat-sheet-summary.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/summary-module.js +15 -13
- package/dist/features/chapters/lpar-chapter/block-section/sat-sheet-item/sat-sheet-summary/summary-module.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/constants/index.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +130 -69
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +43 -33
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/chapter-details.js +137 -95
- package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +36 -31
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -1
- package/dist/features/chapters-v2/comps/sat-mock-test/sat-mock-test-styled.js +22 -0
- package/dist/features/chapters-v2/comps/sat-mock-test/sat-mock-test-styled.js.map +1 -0
- package/dist/features/chapters-v2/comps/sat-mock-test/sat-mock-test.js +141 -0
- package/dist/features/chapters-v2/comps/sat-mock-test/sat-mock-test.js.map +1 -0
- package/dist/features/chapters-v2/constants/block-constants.js +7 -5
- package/dist/features/chapters-v2/constants/block-constants.js.map +1 -1
- package/dist/features/chapters-v2/utils/index.js +22 -12
- package/dist/features/chapters-v2/utils/index.js.map +1 -1
- package/dist/features/chapters-v2/utils/sat-sheet-utils.js +12 -0
- package/dist/features/chapters-v2/utils/sat-sheet-utils.js.map +1 -0
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js +86 -0
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js.map +1 -0
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js +140 -0
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js.map +1 -0
- package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +8 -4
- package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
- package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-dashboard-journey.js +23 -29
- package/dist/features/journey/hooks/use-puzzles-journey/use-puzzle-dashboard-journey.js.map +1 -1
- package/dist/features/journey/journey-id/journey-id-student.js +1 -1
- package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
- package/dist/features/journey/journey-id/journey-id-teacher.js +2 -2
- package/dist/features/journey/journey-id/journey-id-teacher.js.map +1 -1
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +400 -0
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
- package/dist/features/milestone/constants.js +13 -10
- package/dist/features/milestone/constants.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js +42 -40
- package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js +70 -64
- package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js +54 -29
- package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js +48 -28
- package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +79 -76
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/utils.js +97 -94
- package/dist/features/milestone/create/comps/chapters-selection-step/utils.js.map +1 -1
- package/dist/features/milestone/create/comps/class-details-step/class-details-step.js +160 -143
- package/dist/features/milestone/create/comps/class-details-step/class-details-step.js.map +1 -1
- package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js +22 -12
- package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js.map +1 -1
- package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js +6 -6
- package/dist/features/milestone/create/comps/test-type-step/test-type-step.js +64 -59
- package/dist/features/milestone/create/comps/test-type-step/test-type-step.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-container.js +17 -15
- package/dist/features/milestone/create/milestone-create-container.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-helpers.js +170 -153
- package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-styled.js +1 -1
- package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
- package/dist/features/milestone/create/milestone-create.js +19 -17
- package/dist/features/milestone/create/milestone-create.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js +19 -20
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
- package/dist/features/parent-dashboard/api/get-student-profile-summary.js +9 -0
- package/dist/features/parent-dashboard/api/get-student-profile-summary.js.map +1 -0
- package/dist/features/parent-dashboard/api/parent-home.js +10 -0
- package/dist/features/parent-dashboard/api/parent-home.js.map +1 -0
- package/dist/features/parent-dashboard/comps/compact-header/compact-header.js +30 -0
- package/dist/features/parent-dashboard/comps/compact-header/compact-header.js.map +1 -0
- package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features-constants.js +25 -0
- package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features-constants.js.map +1 -0
- package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features-styled.js +15 -0
- package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features-styled.js.map +1 -0
- package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features.js +90 -0
- package/dist/features/parent-dashboard/comps/cuemath-app-features/cuemath-app-features.js.map +1 -0
- package/dist/features/parent-dashboard/comps/math-practice/math-practice-constants.js +19 -0
- package/dist/features/parent-dashboard/comps/math-practice/math-practice-constants.js.map +1 -0
- package/dist/features/parent-dashboard/comps/math-practice/math-practice-styled.js +32 -0
- package/dist/features/parent-dashboard/comps/math-practice/math-practice-styled.js.map +1 -0
- package/dist/features/parent-dashboard/comps/math-practice/math-practice.js +67 -0
- package/dist/features/parent-dashboard/comps/math-practice/math-practice.js.map +1 -0
- package/dist/features/parent-dashboard/comps/parent-dashboard-faqs/parent-dashboard-faqs-constants.js +42 -0
- package/dist/features/parent-dashboard/comps/parent-dashboard-faqs/parent-dashboard-faqs-constants.js.map +1 -0
- package/dist/features/parent-dashboard/comps/parent-dashboard-faqs/parent-dashboard-faqs.js +20 -0
- package/dist/features/parent-dashboard/comps/parent-dashboard-faqs/parent-dashboard-faqs.js.map +1 -0
- package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction-styled.js +10 -0
- package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction-styled.js.map +1 -0
- package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js +42 -0
- package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js.map +1 -0
- package/dist/features/parent-dashboard/hooks/use-parent-home-data.js +67 -0
- package/dist/features/parent-dashboard/hooks/use-parent-home-data.js.map +1 -0
- package/dist/features/parent-dashboard/hooks/use-student-profile-summary-data.js +24 -0
- package/dist/features/parent-dashboard/hooks/use-student-profile-summary-data.js.map +1 -0
- package/dist/features/parent-dashboard/hooks/use-switch-user-journey.js +71 -0
- package/dist/features/parent-dashboard/hooks/use-switch-user-journey.js.map +1 -0
- package/dist/features/parent-dashboard/modals/help-and-support/help-and-support.js +40 -0
- package/dist/features/parent-dashboard/modals/help-and-support/help-and-support.js.map +1 -0
- package/dist/features/parent-dashboard/modals/student-login-info/student-login-info.js +44 -0
- package/dist/features/parent-dashboard/modals/student-login-info/student-login-info.js.map +1 -0
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-helpers.js +32 -0
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-helpers.js.map +1 -0
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js +12 -0
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js.map +1 -0
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary.js +44 -0
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary.js.map +1 -0
- package/dist/features/parent-dashboard/modals/trial-report/trial-report-styled.js +13 -0
- package/dist/features/parent-dashboard/modals/trial-report/trial-report-styled.js.map +1 -0
- package/dist/features/parent-dashboard/modals/trial-report/trial-report.js +28 -0
- package/dist/features/parent-dashboard/modals/trial-report/trial-report.js.map +1 -0
- package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-constants.js +43 -0
- package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-constants.js.map +1 -0
- package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js +59 -0
- package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js.map +1 -0
- package/dist/features/parent-dashboard/modals/tutor-change/tutor-change.js +86 -0
- package/dist/features/parent-dashboard/modals/tutor-change/tutor-change.js.map +1 -0
- package/dist/features/parent-dashboard/parent-dashboard-constants.js +26 -0
- package/dist/features/parent-dashboard/parent-dashboard-constants.js.map +1 -0
- package/dist/features/parent-dashboard/parent-dashboard-styled.js +33 -0
- package/dist/features/parent-dashboard/parent-dashboard-styled.js.map +1 -0
- package/dist/features/parent-dashboard/parent-dashboard-types.js +6 -0
- package/dist/features/parent-dashboard/parent-dashboard-types.js.map +1 -0
- package/dist/features/parent-dashboard/parent-dashboard-view.js +215 -0
- package/dist/features/parent-dashboard/parent-dashboard-view.js.map +1 -0
- package/dist/features/parent-dashboard/parent-dashboard.js +8 -0
- package/dist/features/parent-dashboard/parent-dashboard.js.map +1 -0
- package/dist/features/sentry/constants/ignored.js +10 -6
- package/dist/features/sentry/constants/ignored.js.map +1 -1
- package/dist/features/sheets/constants/sheet.js +23 -10
- package/dist/features/sheets/constants/sheet.js.map +1 -1
- package/dist/features/sheets/utils/is-v3-worksheet.js +17 -0
- package/dist/features/sheets/utils/is-v3-worksheet.js.map +1 -1
- package/dist/features/student-details/class-details/class-details-utils.js +6 -6
- package/dist/features/trial-session/api/course-stream.js.map +1 -1
- package/dist/features/trial-session/comps/about-cuemath/about-cuemath-constants.js +1 -1
- package/dist/features/trial-session/comps/about-cuemath/about-cuemath-constants.js.map +1 -1
- package/dist/features/trial-session/comps/background-grid/background-grid-utils.js +66 -60
- package/dist/features/trial-session/comps/background-grid/background-grid-utils.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/index.js +62 -88
- package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
- package/dist/features/trial-session/comps/offering-information/offering-information-constants.js +12 -12
- package/dist/features/trial-session/comps/offering-information/offering-information-constants.js.map +1 -1
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-constants.js +25 -0
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-constants.js.map +1 -0
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-styled.js +43 -0
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-styled.js.map +1 -0
- package/dist/features/trial-session/comps/pla/next-steps/next-steps.js +49 -0
- package/dist/features/trial-session/comps/pla/next-steps/next-steps.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js +29 -0
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js +132 -0
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js +11 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js +19 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-styled.js +17 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-styled.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status.js +127 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-summary/session-summary-constants.js +53 -0
- package/dist/features/trial-session/comps/pla/session-summary/session-summary-constants.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-summary/session-summary.js +53 -0
- package/dist/features/trial-session/comps/pla/session-summary/session-summary.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card-styled.js +17 -0
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card-styled.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js +56 -0
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js.map +1 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-constants.js +5 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-constants.js.map +1 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-styled.js +17 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-styled.js.map +1 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-types.js +5 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-types.js.map +1 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions.js +96 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions.js.map +1 -0
- package/dist/features/trial-session/comps/school-goals/school-goals.js +25 -24
- package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/report-404/report-404.js +34 -0
- package/dist/features/trial-session/comps/session-report/report-404/report-404.js.map +1 -0
- package/dist/features/trial-session/comps/session-report/report-information/report-card.js +41 -0
- package/dist/features/trial-session/comps/session-report/report-information/report-card.js.map +1 -0
- package/dist/features/trial-session/comps/session-report/report-information/report-information-styled.js +39 -0
- package/dist/features/trial-session/comps/session-report/report-information/report-information-styled.js.map +1 -0
- package/dist/features/trial-session/comps/session-report/report-information/report-information.js +179 -0
- package/dist/features/trial-session/comps/session-report/report-information/report-information.js.map +1 -0
- package/dist/features/trial-session/comps/session-report/session-report-styled.js +6 -29
- package/dist/features/trial-session/comps/session-report/session-report-styled.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/session-report.js +44 -174
- package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
- package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js +20 -5
- package/dist/features/trial-session/comps/student-personalization/student-personalization-styled.js.map +1 -1
- package/dist/features/trial-session/comps/student-personalization/student-personalization.js +59 -126
- package/dist/features/trial-session/comps/student-personalization/student-personalization.js.map +1 -1
- package/dist/features/trial-session/comps/student-profile/constant.js +10 -0
- package/dist/features/trial-session/comps/student-profile/constant.js.map +1 -0
- package/dist/features/trial-session/comps/student-profile/student-profile-highlights/student-profile-highlights.js +53 -0
- package/dist/features/trial-session/comps/student-profile/student-profile-highlights/student-profile-highlights.js.map +1 -0
- package/dist/features/trial-session/comps/student-profile/student-profile.js +93 -46
- package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-helpers.js +12 -0
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-helpers.js.map +1 -0
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js +121 -42
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js.map +1 -1
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js +174 -56
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -1
- package/dist/features/trial-session/comps/worksheet/worksheet.js +23 -23
- package/dist/features/trial-session/comps/worksheet/worksheet.js.map +1 -1
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js +65 -63
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
- package/dist/features/trial-session/left-panel/index.js +1 -1
- package/dist/features/trial-session/left-panel/index.js.map +1 -1
- package/dist/features/trial-session/right-panel/slide-components-map.js +32 -32
- package/dist/features/trial-session/right-panel/slide-components-map.js.map +1 -1
- package/dist/features/trial-session/trial-session-constants.js +3 -3
- package/dist/features/trial-session/trial-session-constants.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/ui/buttons/icon-button/icon-button.js +32 -29
- package/dist/features/ui/buttons/icon-button/icon-button.js.map +1 -1
- package/dist/features/ui/constants/z-index.js +5 -3
- package/dist/features/ui/constants/z-index.js.map +1 -1
- package/dist/features/ui/inputs/base-select-input/select-section/select-section.js +12 -11
- package/dist/features/ui/inputs/base-select-input/select-section/select-section.js.map +1 -1
- package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list-styled.js +2 -7
- package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list-styled.js.map +1 -1
- package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js +29 -27
- package/dist/features/ui/inputs/checkbox-input-list/checkbox-input-list.js.map +1 -1
- package/dist/features/ui/modals/modal.js +30 -28
- package/dist/features/ui/modals/modal.js.map +1 -1
- package/dist/features/wins-dashboard/belts-elements-stickers/belts-elements-stickers.js +109 -0
- package/dist/features/wins-dashboard/belts-elements-stickers/belts-elements-stickers.js.map +1 -0
- package/dist/features/wins-dashboard/belts-elements-stickers/belts.js +95 -0
- package/dist/features/wins-dashboard/belts-elements-stickers/belts.js.map +1 -0
- package/dist/features/wins-dashboard/belts-elements-stickers/elements.js +184 -0
- package/dist/features/wins-dashboard/belts-elements-stickers/elements.js.map +1 -0
- package/dist/features/wins-dashboard/belts-elements-stickers/progress-bar-horizontal.js +36 -0
- package/dist/features/wins-dashboard/belts-elements-stickers/progress-bar-horizontal.js.map +1 -0
- package/dist/features/wins-dashboard/belts-elements-stickers/reward-elements.js +83 -0
- package/dist/features/wins-dashboard/belts-elements-stickers/reward-elements.js.map +1 -0
- package/dist/features/wins-dashboard/constants.js +161 -0
- package/dist/features/wins-dashboard/constants.js.map +1 -0
- package/dist/features/wins-dashboard/header/wins-header.js +95 -0
- package/dist/features/wins-dashboard/header/wins-header.js.map +1 -0
- package/dist/features/wins-dashboard/student-badges/animated-tabbar.js +66 -0
- package/dist/features/wins-dashboard/student-badges/animated-tabbar.js.map +1 -0
- package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-list-hook.js +135 -0
- package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-list-hook.js.map +1 -0
- package/dist/features/wins-dashboard/student-badges/student-badge.js +168 -0
- package/dist/features/wins-dashboard/student-badges/student-badge.js.map +1 -0
- package/dist/features/wins-dashboard/student-badges/student-badges-lists.js +137 -0
- package/dist/features/wins-dashboard/student-badges/student-badges-lists.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js +86 -90
- package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +147 -0
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-container.js +62 -42
- package/dist/features/worksheet/worksheet/worksheet-container.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +197 -199
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js +228 -300
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-styled.js +34 -34
- package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet.js +206 -215
- package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +33 -33
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +30 -28
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +69 -73
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview.js +30 -79
- package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
- package/dist/index.d.ts +473 -45
- package/dist/index.js +695 -627
- package/dist/index.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/getRoundingMethod.js +10 -0
- package/dist/node_modules/date-fns/_lib/getRoundingMethod.js.map +1 -0
- package/dist/node_modules/date-fns/differenceInMilliseconds.js +9 -0
- package/dist/node_modules/date-fns/differenceInMilliseconds.js.map +1 -0
- package/dist/node_modules/date-fns/differenceInSeconds.js +11 -0
- package/dist/node_modules/date-fns/differenceInSeconds.js.map +1 -0
- package/dist/node_modules/date-fns/fromUnixTime.js +9 -0
- package/dist/node_modules/date-fns/fromUnixTime.js.map +1 -0
- package/dist/static/awesome.4239f583.json +1 -0
- package/dist/static/black-belt.81b3ebf9.png +0 -0
- package/dist/static/blue-belt.508a1b4b.png +0 -0
- package/dist/static/{book-checked-green.c275dbd9.svg → book-checked-green.0436b91e.svg} +1 -1
- package/dist/static/brown-belt.09bb7e93.png +0 -0
- package/dist/static/clapping-hands.17e7ecf0.json +1 -0
- package/dist/static/common.9e8ceef1.svg +1 -0
- package/dist/static/community-bulb-yellow-2.f89c30f9.svg +1 -0
- package/dist/static/cool.cd6921bb.json +1 -0
- package/dist/static/epic.37a0265a.svg +1 -0
- package/dist/static/error-responsive.9916ff66.json +1 -0
- package/dist/static/error.dd744fa5.json +1 -0
- package/dist/static/green-belt.5501296f.png +0 -0
- package/dist/static/learning-puzzle-bot.6fe93cf6.svg +1 -0
- package/dist/static/legendary.f15d09ca.svg +1 -0
- package/dist/static/like-button.281a2618.json +1 -0
- package/dist/static/mastered-badge.91d25e92.png +0 -0
- package/dist/static/mystery.81ada5fb.svg +1 -0
- package/dist/static/mythic.58ba0ae0.svg +1 -0
- package/dist/static/orange-belt.1fefcc8c.png +0 -0
- package/dist/static/personalization.7a6c33e8.svg +1 -0
- package/dist/static/personalized-session.b4fd7df8.gif +0 -0
- package/dist/static/purple-belt.e15611b4.png +0 -0
- package/dist/static/rare.1ffaa311.svg +1 -0
- package/dist/static/red-belt.11f841d9.png +0 -0
- package/dist/static/regular-practice.b15f24d9.gif +0 -0
- package/dist/static/star-strike-emoji.c0b31028.json +1 -0
- package/dist/static/stepup.321df6ed.gif +0 -0
- package/dist/static/trophy.5ef1853a.json +1 -0
- package/dist/static/username-responsive.787b5515.json +1 -0
- package/dist/static/username.2c755605.json +1 -0
- package/dist/static/white-belt.ea93103e.png +0 -0
- package/dist/static/yellow-belt.0c47b8cc.png +0 -0
- package/package.json +1 -1
- package/dist/features/trial-session/comps/session-report/report-card.js +0 -26
- package/dist/features/trial-session/comps/session-report/report-card.js.map +0 -1
- package/dist/features/worksheet/worksheet/hooks/use-worksheet-journey.js +0 -28
- package/dist/features/worksheet/worksheet/hooks/use-worksheet-journey.js.map +0 -1
- package/dist/static/error.cbe1ddde.json +0 -1
- 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":"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"}
|
|
@@ -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
|
|
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: "
|
|
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
|
-
|
|
21
|
-
|
|
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]: '
|
|
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
|
|
2
|
+
const S = (E) => {
|
|
3
3
|
if (!E) return 0;
|
|
4
|
-
const { mandatory:
|
|
5
|
-
return
|
|
6
|
-
},
|
|
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
|
-
},
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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 {
|
|
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;"}
|
|
@@ -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
|
package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js.map
ADDED
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-download-node-journey.js","sources":["../../../../../src/features/journey/hooks/use-chapter-page-journey/use-download-node-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 { getHasDownloadBlock } from '../../../chapters-v2/utils';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { JOURNEY_ID_STUDENT } from '../../journey-id/journey-id-student';\nimport {\n BLOCK_MOCKS_WITH_DOWNLOAD_NODE,\n DOWNLOAD_BLOCK_MOCKS,\n} 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 useDownloadNodeJourney = () => {\n const journeyId = JOURNEY_ID_STUDENT.DOWNLOAD_NODE_JOURNEY;\n\n const journeyRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n\n const downloadCoreBlockRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const blockSectionRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;\n const timerRefs = useRef<ReturnType<typeof setTimeout>[]>([]);\n\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 ({\n chapterDetails,\n userType,\n canStartDownloadBlockJourney,\n }: IChallengeArenaStartJourneyProps) => {\n if (!chapterDetails || !downloadCoreBlockRef.current) {\n return;\n }\n\n const { image_hue: imageHue, blocks } = chapterDetails;\n const hasDownloadBlock = canStartDownloadBlockJourney && getHasDownloadBlock(blocks);\n\n if (hasDownloadBlock && !blockSectionRef.current) return;\n\n const downloadNodeJourneySteps: TCoachmarkJourneyProps[] = [\n {\n originalElementToHighlightRef: downloadCoreBlockRef,\n elementToHighlight: (\n <FlexView $widthX={50} ref={journeyRef}>\n <BlockSectionView\n blockData={BLOCK_MOCKS_WITH_DOWNLOAD_NODE}\n userType={userType}\n isLastBlock={true}\n lessonIdx={0}\n imageHue={imageHue}\n isGoalBlock\n />\n </FlexView>\n ),\n type: IndicatorType.TOOLTIP,\n indicator: {\n position: 'bottom',\n tooltipYCoOrdinates: -84,\n tooltipXCoOrdinates: '127%',\n backgroundColor: 'PURPLE_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={hasDownloadBlock ? 'Next' : 'Got it'}\n onButtonClick={() => {\n if (hasDownloadBlock) {\n const $parentEle = document.getElementById('tooltip-root');\n\n if ($parentEle) {\n // Hide all direct children of tooltip-root\n Array.from($parentEle.children).forEach(child => {\n (child as HTMLElement).style.display = 'none';\n });\n }\n\n if (journeyRef.current) {\n journeyRef.current.style.display = 'none';\n }\n\n if (blockSectionRef.current) {\n blockSectionRef.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n });\n }\n\n const delayBeforeStart = setTimeout(() => {\n clearTimeout(delayBeforeStart);\n\n handleNextCoachmark();\n }, 800);\n\n timerRefs.current.push(delayBeforeStart);\n } else {\n handleEndJourney();\n }\n }}\n />\n ),\n } as IArrowTooltipProps,\n },\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\">Also available in the Downloads section.</Text>\n </FlexView>\n }\n buttonLabel=\"Got it\"\n onButtonClick={() => {\n handleEndJourney();\n endJourney(JOURNEY_ID_STUDENT.DOWNLOAD_BLOCK_JOURNEY);\n }}\n />\n ),\n } as IArrowTooltipProps,\n },\n ];\n\n setJourney(journeyId, downloadNodeJourneySteps);\n\n const delayBeforeStart = setTimeout(() => {\n clearTimeout(delayBeforeStart);\n\n document.body.style.overflow = 'hidden';\n handleNextCoachmark();\n }, 800);\n\n timerRefs.current.push(delayBeforeStart);\n },\n [endJourney, handleEndJourney, handleNextCoachmark, journeyId, setJourney],\n );\n\n const data = useMemo(\n () => ({\n blockSectionRef,\n downloadCoreBlockRef,\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":["useDownloadNodeJourney","journeyId","JOURNEY_ID_STUDENT","journeyRef","useRef","downloadCoreBlockRef","blockSectionRef","timerRefs","nextCoachmark","setJourney","endJourney","useJourney","handleNextCoachmark","useCallback","handleEndJourney","startJourney","chapterDetails","userType","canStartDownloadBlockJourney","imageHue","blocks","hasDownloadBlock","getHasDownloadBlock","downloadNodeJourneySteps","jsx","FlexView","BlockSectionView","BLOCK_MOCKS_WITH_DOWNLOAD_NODE","IndicatorType","TooltipItem","Text","$parentEle","child","delayBeforeStart","DOWNLOAD_BLOCK_MOCKS","data","useMemo","useEffect","timer"],"mappings":"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"}
|
|
@@ -50,7 +50,8 @@ const e = Math.floor(Date.now() / 1e3), a = e + 5 * 24 * 60 * 60, s = {
|
|
|
50
50
|
user_chapter_id: null,
|
|
51
51
|
is_turing: !1,
|
|
52
52
|
student_instructions_ref: null,
|
|
53
|
-
instructions_ref: null
|
|
53
|
+
instructions_ref: null,
|
|
54
|
+
user_block_id: null
|
|
54
55
|
},
|
|
55
56
|
{
|
|
56
57
|
accuracy: null,
|
|
@@ -102,7 +103,8 @@ const e = Math.floor(Date.now() / 1e3), a = e + 5 * 24 * 60 * 60, s = {
|
|
|
102
103
|
user_chapter_id: null,
|
|
103
104
|
is_turing: !1,
|
|
104
105
|
student_instructions_ref: null,
|
|
105
|
-
instructions_ref: null
|
|
106
|
+
instructions_ref: null,
|
|
107
|
+
user_block_id: null
|
|
106
108
|
},
|
|
107
109
|
{
|
|
108
110
|
accuracy: null,
|
|
@@ -154,7 +156,8 @@ const e = Math.floor(Date.now() / 1e3), a = e + 5 * 24 * 60 * 60, s = {
|
|
|
154
156
|
user_chapter_id: null,
|
|
155
157
|
is_turing: !1,
|
|
156
158
|
student_instructions_ref: null,
|
|
157
|
-
instructions_ref: null
|
|
159
|
+
instructions_ref: null,
|
|
160
|
+
user_block_id: null
|
|
158
161
|
},
|
|
159
162
|
{
|
|
160
163
|
accuracy: null,
|
|
@@ -206,7 +209,8 @@ const e = Math.floor(Date.now() / 1e3), a = e + 5 * 24 * 60 * 60, s = {
|
|
|
206
209
|
user_chapter_id: null,
|
|
207
210
|
is_turing: !1,
|
|
208
211
|
student_instructions_ref: null,
|
|
209
|
-
instructions_ref: null
|
|
212
|
+
instructions_ref: null,
|
|
213
|
+
user_block_id: null
|
|
210
214
|
}
|
|
211
215
|
],
|
|
212
216
|
queued_homeworks: []
|