@cuemath/leap 3.3.28 → 3.3.29-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/line-icons/icons/chevron-right.js.map +1 -1
- package/dist/features/auth/pla-signup/pla-analytics-events.js +9 -3
- package/dist/features/auth/pla-signup/pla-analytics-events.js.map +1 -1
- 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 +8 -8
- package/dist/features/auth/signup/custom-input-field/custom-input-field.js.map +1 -1
- package/dist/features/circle-games/sign-up/sign-up.js +6 -6
- package/dist/features/circle-games/sign-up/sign-up.js.map +1 -1
- package/dist/features/homework/hw-card-list/hw-card-list-view.js +17 -17
- package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js +6 -6
- package/dist/features/milestone/create/comps/sheets-list/sheets-list-styled.js +2 -2
- package/dist/features/milestone/create/milestone-create-helpers.js +13 -7
- package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
- package/dist/features/parent-dashboard/api/cancel-subscription.js +9 -0
- package/dist/features/parent-dashboard/api/cancel-subscription.js.map +1 -0
- package/dist/features/parent-dashboard/comps/billing-information/billing-information-styled.js +20 -0
- package/dist/features/parent-dashboard/comps/billing-information/billing-information-styled.js.map +1 -0
- package/dist/features/parent-dashboard/comps/billing-information/billing-information.js +96 -0
- package/dist/features/parent-dashboard/comps/billing-information/billing-information.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps-constants.js +1 -1
- package/dist/features/parent-dashboard/comps/next-steps/next-steps-constants.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps-styled.js +1 -1
- package/dist/features/parent-dashboard/comps/next-steps/next-steps-styled.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps.js +5 -5
- package/dist/features/parent-dashboard/comps/next-steps/next-steps.js.map +1 -0
- package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js +28 -22
- package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js.map +1 -1
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-countdown.js +34 -0
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-countdown.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js +137 -0
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status-constants.js +20 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status-constants.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status-helpers.js +19 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status-helpers.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-status/session-status-styled.js +2 -2
- package/dist/features/parent-dashboard/comps/session-status/session-status-styled.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status.js +124 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-summary/session-summary-constants.js +2 -2
- package/dist/features/parent-dashboard/comps/session-summary/session-summary-constants.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-summary/session-summary.js +53 -0
- package/dist/features/parent-dashboard/comps/session-summary/session-summary.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-summary/summary-card/summary-card-styled.js +1 -1
- package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card-styled.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card.js +63 -0
- package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card.js.map +1 -0
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-constants.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-styled.js +1 -1
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-styled.js.map +1 -0
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-types.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions.js +14 -14
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions.js.map +1 -0
- package/dist/features/parent-dashboard/hooks/use-fetch-parent-home.js +1 -1
- package/dist/features/parent-dashboard/hooks/use-fetch-parent-home.js.map +1 -1
- package/dist/features/parent-dashboard/hooks/use-parent-home-data.js +48 -46
- package/dist/features/parent-dashboard/hooks/use-parent-home-data.js.map +1 -1
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription-constants.js +21 -0
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription-constants.js.map +1 -0
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription.js +85 -0
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription.js.map +1 -0
- package/dist/features/parent-dashboard/modals/cancellation-confirmation/cancellation-confirmation.js +23 -0
- package/dist/features/parent-dashboard/modals/cancellation-confirmation/cancellation-confirmation.js.map +1 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-constant.js +55 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-constant.js.map +1 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-styled.js +59 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-styled.js.map +1 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js +93 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js.map +1 -0
- package/dist/features/parent-dashboard/modals/hooks/use-pla-model-handlers.js +66 -0
- package/dist/features/parent-dashboard/modals/hooks/use-pla-model-handlers.js.map +1 -0
- package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js +3 -3
- package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js.map +1 -1
- package/dist/features/parent-dashboard/modals/view-payment-method/view-payment-method.js +76 -0
- package/dist/features/parent-dashboard/modals/view-payment-method/view-payment-method.js.map +1 -0
- package/dist/features/parent-dashboard/parent-dashboard-constants.js +45 -4
- package/dist/features/parent-dashboard/parent-dashboard-constants.js.map +1 -1
- package/dist/features/parent-dashboard/parent-dashboard-types.js +3 -3
- package/dist/features/parent-dashboard/parent-dashboard-types.js.map +1 -1
- package/dist/features/parent-dashboard/parent-dashboard-view.js +197 -173
- package/dist/features/parent-dashboard/parent-dashboard-view.js.map +1 -1
- package/dist/features/student-details/class-details/class-details-utils.js +6 -6
- package/dist/features/student-username/add/add-student-username-constants.js +6 -0
- package/dist/features/student-username/add/add-student-username-constants.js.map +1 -0
- package/dist/features/student-username/add/add-student-username-helpers.js +6 -0
- package/dist/features/student-username/add/add-student-username-helpers.js.map +1 -0
- package/dist/features/student-username/add/add-student-username-styled.js +10 -0
- package/dist/features/student-username/add/add-student-username-styled.js.map +1 -0
- package/dist/features/student-username/add/add-student-username.js +78 -0
- package/dist/features/student-username/add/add-student-username.js.map +1 -0
- package/dist/features/student-username/add/api/update-username.js +9 -0
- package/dist/features/student-username/add/api/update-username.js.map +1 -0
- package/dist/features/student-username/add/api/username-availability.js +10 -0
- package/dist/features/student-username/add/api/username-availability.js.map +1 -0
- package/dist/features/student-username/add/hooks/use-check-username-availability.js +41 -0
- package/dist/features/student-username/add/hooks/use-check-username-availability.js.map +1 -0
- package/dist/features/trial-session/api/teacher-availability.js +9 -0
- package/dist/features/trial-session/api/teacher-availability.js.map +1 -0
- package/dist/features/trial-session/comps/class-preference/class-preference.js +61 -49
- package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
- package/dist/features/trial-session/comps/class-preference/helpers.js +28 -0
- package/dist/features/trial-session/comps/class-preference/helpers.js.map +1 -0
- package/dist/features/trial-session/comps/navigation-bar/index.js +24 -24
- package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals.js +51 -50
- package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/session-report.js +15 -15
- package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js +39 -38
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
- package/dist/features/trial-session/comps/student-feedback/student-feedback-constants.js +5 -0
- package/dist/features/trial-session/comps/student-feedback/student-feedback-constants.js.map +1 -1
- package/dist/features/trial-session/comps/student-feedback/student-feedback.js +96 -51
- package/dist/features/trial-session/comps/student-feedback/student-feedback.js.map +1 -1
- package/dist/features/trial-session/comps/student-profile/student-profile.js +70 -63
- 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.js +43 -44
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -1
- package/dist/features/trial-session/comps/test-prep/test-prep.js +40 -39
- package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
- package/dist/features/trial-session/helper.js +69 -53
- package/dist/features/trial-session/helper.js.map +1 -1
- package/dist/features/trial-session/hooks/use-slide-config-update.js +49 -0
- package/dist/features/trial-session/hooks/use-slide-config-update.js.map +1 -0
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js +150 -130
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/trial-session/trial-session-view.js +103 -112
- package/dist/features/trial-session/trial-session-view.js.map +1 -1
- package/dist/features/utils/utils.js +1 -1
- package/dist/features/utils/utils.js.map +1 -1
- package/dist/index.d.ts +77 -77
- package/dist/index.js +310 -309
- package/package.json +2 -3
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-constants.js.map +0 -1
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-styled.js.map +0 -1
- package/dist/features/trial-session/comps/pla/next-steps/next-steps.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js +0 -29
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js +0 -132
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js +0 -11
- package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js +0 -19
- package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/session-status-styled.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/session-status.js +0 -127
- package/dist/features/trial-session/comps/pla/session-status/session-status.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-summary/session-summary-constants.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-summary/session-summary.js +0 -53
- package/dist/features/trial-session/comps/pla/session-summary/session-summary.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card-styled.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js +0 -56
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js.map +0 -1
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-constants.js.map +0 -1
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-styled.js.map +0 -1
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-types.js.map +0 -1
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/getRoundingMethod.js +0 -10
- package/dist/node_modules/date-fns/_lib/getRoundingMethod.js.map +0 -1
- package/dist/node_modules/date-fns/differenceInMilliseconds.js +0 -9
- package/dist/node_modules/date-fns/differenceInMilliseconds.js.map +0 -1
- package/dist/node_modules/date-fns/differenceInSeconds.js +0 -11
- package/dist/node_modules/date-fns/differenceInSeconds.js.map +0 -1
- /package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-constants.js +0 -0
- /package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-types.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chevron-right.js","sources":["../../../../src/assets/line-icons/icons/chevron-right.tsx"],"sourcesContent":["import React from 'react';\n\ninterface IconProps extends React.SVGProps<SVGSVGElement> {}\n\nconst ChevronRight: React.FC<IconProps> = props => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.666 12.6C13.3155 12.6 10.5993 15.3161 10.5993 18.6666H9.39935C9.39935 15.6827 11.1979 13.1188 13.77 12C11.1979 10.8811 9.39935 8.31722 9.39935 5.33329H10.5993C10.5993 8.68382 13.3155 11.4 16.666 11.4V12.6Z\"\n fill=\"currentColor\"\n fillOpacity=\"1\"\n />\n </svg>\n);\n\nexport default ChevronRight;\n"],"names":["ChevronRight","props","jsx","
|
|
1
|
+
{"version":3,"file":"chevron-right.js","sources":["../../../../src/assets/line-icons/icons/chevron-right.tsx"],"sourcesContent":["import React from 'react';\n\ninterface IconProps extends React.SVGProps<SVGSVGElement> {}\n\nconst ChevronRight: React.FC<IconProps> = props => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.666 12.6C13.3155 12.6 10.5993 15.3161 10.5993 18.6666H9.39935C9.39935 15.6827 11.1979 13.1188 13.77 12C11.1979 10.8811 9.39935 8.31722 9.39935 5.33329H10.5993C10.5993 8.68382 13.3155 11.4 16.666 11.4V12.6Z\"\n fill=\"currentColor\"\n fillOpacity=\"1\"\n />\n </svg>\n);\n\nexport default ChevronRight;\n"],"names":["ChevronRight","props","jsx","ChevronRightIcon"],"mappings":";AAIA,MAAMA,IAAoC,CACxCC,MAAA,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACL,GAAGD;AAAA,IAEJ,UAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA,QACL,aAAY;AAAA,MAAA;AAAA,IACd;AAAA,EAAA;AACF,GAGFC,IAAeH;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PLUGINS as _ } from "../../../node_modules/@cuemath/analytics-v2/dist/constants.js";
|
|
2
|
-
var
|
|
2
|
+
var t = /* @__PURE__ */ ((e) => (e.START_SIGNUP_CTA_CLICKED = "start_signup_cta_clicked", e.ECNA_STEP_VIEWED = "ecna_step_viewed", e.ECNA_RESPONSE_RECORDED_DEBUG = "ecna_response_recorded_debug", e.PARENT_SIGNUP_CTA_CLICKED = "parent_signup_cta_clicked", e.PARENT_SIGNUP_SUCCESSFUL = "parent_signup_successful", e.PARENT_SIGNUP_FAILED = "parent_signup_failed", e.STUDENT_SIGNUP_SUCCESSFUL = "signup_successful", e.STUDENT_SIGNUP_FAILED = "signup_failed", e.SIGNUP_OTP_ENTERED = "signup_otp_entered", e.SIGNUP_OTP_VERIFIED = "signup_otp_verified", e.SIGNUP_OTP_FAILED = "signup_otp_failed", e.SLOTS_SHOWN = "slots_shown", e.SLOT_DATE_SELECTED = "slot_date_selected", e.SLOT_TIME_SELECTED = "slot_time_selected", e.TUTOR_CHANGE_REASON_SELECTED = "tutor_change_reason_selected", e.SUBSCRIPTION_INTENT_FAILED = "subscription_intent_failed", e.SUBSCRIPTION_INTENT_CREATED = "subscription_intent_created", e.STRIPE_PAYMENT_ELEMENT_READY = "stripe_payment_element_ready", e.STRIPE_PAYMENT_FAILED = "stripe_payment_failed", e.STRIPE_PAYMENT_SUCCESS = "stripe_payment_success", e.PAYMENT_PLAN_SELECTED = "payment_plan_selected", e))(t || {});
|
|
3
3
|
const n = {
|
|
4
4
|
start_signup_cta_clicked: [_.MIXPANEL],
|
|
5
5
|
ecna_step_viewed: [_.MIXPANEL],
|
|
@@ -15,10 +15,16 @@ const n = {
|
|
|
15
15
|
slots_shown: [_.MIXPANEL],
|
|
16
16
|
slot_date_selected: [_.MIXPANEL],
|
|
17
17
|
slot_time_selected: [_.MIXPANEL],
|
|
18
|
-
tutor_change_reason_selected: [_.MIXPANEL]
|
|
18
|
+
tutor_change_reason_selected: [_.MIXPANEL],
|
|
19
|
+
subscription_intent_failed: [_.MIXPANEL],
|
|
20
|
+
subscription_intent_created: [_.MIXPANEL],
|
|
21
|
+
stripe_payment_element_ready: [_.MIXPANEL],
|
|
22
|
+
stripe_payment_failed: [_.MIXPANEL],
|
|
23
|
+
stripe_payment_success: [_.MIXPANEL],
|
|
24
|
+
payment_plan_selected: [_.MIXPANEL]
|
|
19
25
|
};
|
|
20
26
|
export {
|
|
21
|
-
|
|
27
|
+
t as PLA_ANALYTICS_EVENTS,
|
|
22
28
|
n as PLA_ANALYTICS_WHITELIST_EVENTS
|
|
23
29
|
};
|
|
24
30
|
//# sourceMappingURL=pla-analytics-events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pla-analytics-events.js","sources":["../../../../src/features/auth/pla-signup/pla-analytics-events.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\nexport enum PLA_ANALYTICS_EVENTS {\n START_SIGNUP_CTA_CLICKED = 'start_signup_cta_clicked',\n ECNA_STEP_VIEWED = 'ecna_step_viewed',\n ECNA_RESPONSE_RECORDED_DEBUG = 'ecna_response_recorded_debug',\n PARENT_SIGNUP_CTA_CLICKED = 'parent_signup_cta_clicked',\n PARENT_SIGNUP_SUCCESSFUL = 'parent_signup_successful',\n PARENT_SIGNUP_FAILED = 'parent_signup_failed',\n STUDENT_SIGNUP_SUCCESSFUL = 'signup_successful',\n STUDENT_SIGNUP_FAILED = 'signup_failed',\n SIGNUP_OTP_ENTERED = 'signup_otp_entered',\n SIGNUP_OTP_VERIFIED = 'signup_otp_verified',\n SIGNUP_OTP_FAILED = 'signup_otp_failed',\n SLOTS_SHOWN = 'slots_shown',\n SLOT_DATE_SELECTED = 'slot_date_selected',\n SLOT_TIME_SELECTED = 'slot_time_selected',\n TUTOR_CHANGE_REASON_SELECTED = 'tutor_change_reason_selected',\n}\n\nexport const PLA_ANALYTICS_WHITELIST_EVENTS = {\n [PLA_ANALYTICS_EVENTS.START_SIGNUP_CTA_CLICKED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.ECNA_STEP_VIEWED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.ECNA_RESPONSE_RECORDED_DEBUG]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.PARENT_SIGNUP_CTA_CLICKED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.PARENT_SIGNUP_SUCCESSFUL]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.PARENT_SIGNUP_FAILED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.STUDENT_SIGNUP_SUCCESSFUL]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.STUDENT_SIGNUP_FAILED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SIGNUP_OTP_ENTERED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SIGNUP_OTP_VERIFIED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SIGNUP_OTP_FAILED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SLOTS_SHOWN]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SLOT_DATE_SELECTED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SLOT_TIME_SELECTED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.TUTOR_CHANGE_REASON_SELECTED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["PLA_ANALYTICS_EVENTS","PLA_ANALYTICS_WHITELIST_EVENTS","PLUGINS"],"mappings":";AAEY,IAAAA,sBAAAA,OACVA,EAAA,2BAA2B,4BAC3BA,EAAA,mBAAmB,oBACnBA,EAAA,+BAA+B,gCAC/BA,EAAA,4BAA4B,6BAC5BA,EAAA,2BAA2B,4BAC3BA,EAAA,uBAAuB,wBACvBA,EAAA,4BAA4B,qBAC5BA,EAAA,wBAAwB,iBACxBA,EAAA,qBAAqB,sBACrBA,EAAA,sBAAsB,uBACtBA,EAAA,oBAAoB,qBACpBA,EAAA,cAAc,eACdA,EAAA,qBAAqB,sBACrBA,EAAA,qBAAqB,sBACrBA,EAAA,+BAA+B,
|
|
1
|
+
{"version":3,"file":"pla-analytics-events.js","sources":["../../../../src/features/auth/pla-signup/pla-analytics-events.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\nexport enum PLA_ANALYTICS_EVENTS {\n START_SIGNUP_CTA_CLICKED = 'start_signup_cta_clicked',\n ECNA_STEP_VIEWED = 'ecna_step_viewed',\n ECNA_RESPONSE_RECORDED_DEBUG = 'ecna_response_recorded_debug',\n PARENT_SIGNUP_CTA_CLICKED = 'parent_signup_cta_clicked',\n PARENT_SIGNUP_SUCCESSFUL = 'parent_signup_successful',\n PARENT_SIGNUP_FAILED = 'parent_signup_failed',\n STUDENT_SIGNUP_SUCCESSFUL = 'signup_successful',\n STUDENT_SIGNUP_FAILED = 'signup_failed',\n SIGNUP_OTP_ENTERED = 'signup_otp_entered',\n SIGNUP_OTP_VERIFIED = 'signup_otp_verified',\n SIGNUP_OTP_FAILED = 'signup_otp_failed',\n SLOTS_SHOWN = 'slots_shown',\n SLOT_DATE_SELECTED = 'slot_date_selected',\n SLOT_TIME_SELECTED = 'slot_time_selected',\n TUTOR_CHANGE_REASON_SELECTED = 'tutor_change_reason_selected',\n SUBSCRIPTION_INTENT_FAILED = 'subscription_intent_failed',\n SUBSCRIPTION_INTENT_CREATED = 'subscription_intent_created',\n STRIPE_PAYMENT_ELEMENT_READY = 'stripe_payment_element_ready',\n STRIPE_PAYMENT_FAILED = 'stripe_payment_failed',\n STRIPE_PAYMENT_SUCCESS = 'stripe_payment_success',\n PAYMENT_PLAN_SELECTED = 'payment_plan_selected',\n}\n\nexport const PLA_ANALYTICS_WHITELIST_EVENTS = {\n [PLA_ANALYTICS_EVENTS.START_SIGNUP_CTA_CLICKED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.ECNA_STEP_VIEWED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.ECNA_RESPONSE_RECORDED_DEBUG]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.PARENT_SIGNUP_CTA_CLICKED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.PARENT_SIGNUP_SUCCESSFUL]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.PARENT_SIGNUP_FAILED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.STUDENT_SIGNUP_SUCCESSFUL]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.STUDENT_SIGNUP_FAILED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SIGNUP_OTP_ENTERED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SIGNUP_OTP_VERIFIED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SIGNUP_OTP_FAILED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SLOTS_SHOWN]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SLOT_DATE_SELECTED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SLOT_TIME_SELECTED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.TUTOR_CHANGE_REASON_SELECTED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SUBSCRIPTION_INTENT_FAILED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SUBSCRIPTION_INTENT_CREATED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.STRIPE_PAYMENT_ELEMENT_READY]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.STRIPE_PAYMENT_FAILED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.STRIPE_PAYMENT_SUCCESS]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.PAYMENT_PLAN_SELECTED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["PLA_ANALYTICS_EVENTS","PLA_ANALYTICS_WHITELIST_EVENTS","PLUGINS"],"mappings":";AAEY,IAAAA,sBAAAA,OACVA,EAAA,2BAA2B,4BAC3BA,EAAA,mBAAmB,oBACnBA,EAAA,+BAA+B,gCAC/BA,EAAA,4BAA4B,6BAC5BA,EAAA,2BAA2B,4BAC3BA,EAAA,uBAAuB,wBACvBA,EAAA,4BAA4B,qBAC5BA,EAAA,wBAAwB,iBACxBA,EAAA,qBAAqB,sBACrBA,EAAA,sBAAsB,uBACtBA,EAAA,oBAAoB,qBACpBA,EAAA,cAAc,eACdA,EAAA,qBAAqB,sBACrBA,EAAA,qBAAqB,sBACrBA,EAAA,+BAA+B,gCAC/BA,EAAA,6BAA6B,8BAC7BA,EAAA,8BAA8B,+BAC9BA,EAAA,+BAA+B,gCAC/BA,EAAA,wBAAwB,yBACxBA,EAAA,yBAAyB,0BACzBA,EAAA,wBAAwB,yBArBdA,IAAAA,KAAA,CAAA,CAAA;AAwBL,MAAMC,IAAiC;AAAA,EAC3C,0BAAgD,CAACC,EAAQ,QAAQ;AAAA,EACjE,kBAAwC,CAACA,EAAQ,QAAQ;AAAA,EACzD,8BAAoD,CAACA,EAAQ,QAAQ;AAAA,EACrE,2BAAiD,CAACA,EAAQ,QAAQ;AAAA,EAClE,0BAAgD,CAACA,EAAQ,QAAQ;AAAA,EACjE,sBAA4C,CAACA,EAAQ,QAAQ;AAAA,EAC7D,mBAAiD,CAACA,EAAQ,QAAQ;AAAA,EAClE,eAA6C,CAACA,EAAQ,QAAQ;AAAA,EAC9D,oBAA0C,CAACA,EAAQ,QAAQ;AAAA,EAC3D,qBAA2C,CAACA,EAAQ,QAAQ;AAAA,EAC5D,mBAAyC,CAACA,EAAQ,QAAQ;AAAA,EAC1D,aAAmC,CAACA,EAAQ,QAAQ;AAAA,EACpD,oBAA0C,CAACA,EAAQ,QAAQ;AAAA,EAC3D,oBAA0C,CAACA,EAAQ,QAAQ;AAAA,EAC3D,8BAAoD,CAACA,EAAQ,QAAQ;AAAA,EACrE,4BAAkD,CAACA,EAAQ,QAAQ;AAAA,EACnE,6BAAmD,CAACA,EAAQ,QAAQ;AAAA,EACpE,8BAAoD,CAACA,EAAQ,QAAQ;AAAA,EACrE,uBAA6C,CAACA,EAAQ,QAAQ;AAAA,EAC9D,wBAA8C,CAACA,EAAQ,QAAQ;AAAA,EAC/D,uBAA6C,CAACA,EAAQ,QAAQ;AACjE;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circular-step-wrapper.js","sources":["../../../../../src/features/auth/signup/circular-step-wrapper/circular-step-wrapper.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../../ui/lottie-animation/types';\nimport type { ICircularStepRef, ICircularStepWrapperProps } from './circular-step-wrapper-types';\n\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n memo,\n type Ref,\n} from 'react';\nimport { useTheme } from 'styled-components';\n\nimport Back2Icon from '../../../../assets/line-icons/icons/back2';\nimport Next2Icon from '../../../../assets/line-icons/icons/next2';\nimport AnimatedArc from '../../../ui/animated-arc/animated-arc';\nimport IconButton from '../../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { EDeviceType } from '../../../ui/theme/constants';\nimport * as Styled from './circular-step-wrapper-styled';\n\nconst animationSettings = {\n autoplay: false,\n loop: false,\n renderer: 'canvas',\n rendererSettings: {\n preserveAspectRatio: 'xMidYMin slice',\n },\n};\n\nconst CircularStepWrapper = forwardRef<ICircularStepRef, ICircularStepWrapperProps>(\n (\n {\n children,\n onGoBack,\n onNext,\n label,\n showNext,\n showPrevious,\n animation,\n introFrames,\n outroFrames,\n isNextLoading,\n progressAngle,\n footerElement,\n isNextDisabled,\n animationSrcMobile,\n },\n ref: Ref<ICircularStepRef>,\n ) => {\n const animationRef = useRef<ILottieAnimationRef | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const [containerHeight, setContainerHeight] = useState<number | undefined>();\n const [showContent, setShowContent] = useState(false);\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n const { device } = useTheme();\n const isMobile = device <= EDeviceType.MOBILE;\n\n const onLottieRender = useCallback(() => {\n if (animation && animationRef.current) {\n animationRef.current.playSegments(introFrames, true);\n setShowContent(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animation]);\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, [animation]);\n\n useImperativeHandle(ref, () => ({\n playOutroAndFadeOut: async () => {\n return new Promise<void>(resolve => {\n const handleComplete = () => {\n resolve();\n animationRef.current?.removeEventListener('complete', handleComplete);\n };\n\n animationRef.current?.playSegments(outroFrames, true);\n timeoutRef.current = setTimeout(() => setShowContent(false), 400);\n animationRef.current?.addEventListener('complete', handleComplete);\n });\n },\n }));\n\n useLayoutEffect(() => {\n if (containerRef.current) {\n setContainerHeight(containerRef.current.offsetHeight);\n }\n }, []);\n\n return (\n <Styled.Container\n $flex={1}\n $flexDirection=\"column\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width=\"100%\"\n $height=\"100%\"\n ref={containerRef}\n >\n {containerHeight && (\n <LottieAnimation\n width={1280}\n height={containerHeight}\n src={isMobile ? animationSrcMobile ?? animation : animation}\n ref={animationRef}\n onRender={onLottieRender}\n settings={animationSettings}\n />\n )}\n <Styled.CircularStepContainer\n $width={isMobile ? 290 : 400}\n $height={isMobile ? 290 : 400}\n $background=\"REAL_BLACK\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {progressAngle && (\n <AnimatedArc\n radius={isMobile ? 145 : 200}\n strokeWidth={2}\n color=\"WHITE\"\n targetAngle={progressAngle}\n mode=\"fade\"\n duration={1}\n />\n )}\n <Styled.ContentWrapper $isVisible={showContent} $width=\"100%\">\n {label && (\n <FlexView $gutterX={isMobile ? 1.5 : 3.5}>\n <Text $renderAs=\"ab2\" $color=\"WHITE\" $align=\"center\">\n {label}\n </Text>\n <Separator heightX={1} />\n </FlexView>\n )}\n <Styled.InputContainer>{children}</Styled.InputContainer>\n </Styled.ContentWrapper>\n </Styled.CircularStepContainer>\n {footerElement && (\n <Styled.FooterWrapper $alignItems=\"center\" $justifyContent=\"center\">\n {footerElement}\n </Styled.FooterWrapper>\n )}\n {showPrevious && (\n <Styled.PrevButtonWrapper>\n <IconButton\n Icon={Back2Icon}\n renderAs=\"black-dark\"\n analyticsLabel=\"Prev\"\n onClick={onGoBack}\n disabled={isNextLoading}\n size=\"small\"\n />\n </Styled.PrevButtonWrapper>\n )}\n {showNext && (\n <Styled.NextButtonWrapper>\n <IconButton\n size=\"small\"\n Icon={Next2Icon}\n renderAs=\"secondary-dark\"\n analyticsLabel=\"Next\"\n onClick={onNext}\n busy={isNextLoading}\n disabled={isNextLoading || isNextDisabled}\n />\n </Styled.NextButtonWrapper>\n )}\n </Styled.Container>\n );\n },\n);\n\nexport default memo(CircularStepWrapper);\n"],"names":["animationSettings","CircularStepWrapper","forwardRef","children","onGoBack","onNext","label","showNext","showPrevious","animation","introFrames","outroFrames","isNextLoading","progressAngle","footerElement","isNextDisabled","animationSrcMobile","ref","animationRef","useRef","containerRef","containerHeight","setContainerHeight","useState","showContent","setShowContent","timeoutRef","device","useTheme","isMobile","EDeviceType","onLottieRender","useCallback","useEffect","useImperativeHandle","resolve","handleComplete","_a","_b","useLayoutEffect","jsxs","Styled.Container","jsx","LottieAnimation","Styled.CircularStepContainer","AnimatedArc","Styled.ContentWrapper","FlexView","Text","Separator","Styled.InputContainer","Styled.FooterWrapper","Styled.PrevButtonWrapper","IconButton","Back2Icon","Styled.NextButtonWrapper","Next2Icon","
|
|
1
|
+
{"version":3,"file":"circular-step-wrapper.js","sources":["../../../../../src/features/auth/signup/circular-step-wrapper/circular-step-wrapper.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../../ui/lottie-animation/types';\nimport type { ICircularStepRef, ICircularStepWrapperProps } from './circular-step-wrapper-types';\n\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n memo,\n type Ref,\n} from 'react';\nimport { useTheme } from 'styled-components';\n\nimport Back2Icon from '../../../../assets/line-icons/icons/back2';\nimport Next2Icon from '../../../../assets/line-icons/icons/next2';\nimport AnimatedArc from '../../../ui/animated-arc/animated-arc';\nimport IconButton from '../../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { EDeviceType } from '../../../ui/theme/constants';\nimport * as Styled from './circular-step-wrapper-styled';\n\nconst animationSettings = {\n autoplay: false,\n loop: false,\n renderer: 'canvas',\n rendererSettings: {\n preserveAspectRatio: 'xMidYMin slice',\n },\n};\n\nconst CircularStepWrapper = forwardRef<ICircularStepRef, ICircularStepWrapperProps>(\n (\n {\n children,\n onGoBack,\n onNext,\n label,\n showNext,\n showPrevious,\n animation,\n introFrames,\n outroFrames,\n isNextLoading,\n progressAngle,\n footerElement,\n isNextDisabled,\n animationSrcMobile,\n },\n ref: Ref<ICircularStepRef>,\n ) => {\n const animationRef = useRef<ILottieAnimationRef | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const [containerHeight, setContainerHeight] = useState<number | undefined>();\n const [showContent, setShowContent] = useState(false);\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n const { device } = useTheme();\n const isMobile = device <= EDeviceType.MOBILE;\n\n const onLottieRender = useCallback(() => {\n if (animation && animationRef.current) {\n animationRef.current.playSegments(introFrames, true);\n setShowContent(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animation]);\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, [animation]);\n\n useImperativeHandle(ref, () => ({\n playOutroAndFadeOut: async () => {\n return new Promise<void>(resolve => {\n const handleComplete = () => {\n resolve();\n animationRef.current?.removeEventListener('complete', handleComplete);\n };\n\n animationRef.current?.playSegments(outroFrames, true);\n timeoutRef.current = setTimeout(() => setShowContent(false), 400);\n animationRef.current?.addEventListener('complete', handleComplete);\n });\n },\n }));\n\n useLayoutEffect(() => {\n if (containerRef.current) {\n setContainerHeight(containerRef.current.offsetHeight);\n }\n }, []);\n\n return (\n <Styled.Container\n $flex={1}\n $flexDirection=\"column\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width=\"100%\"\n $height=\"100%\"\n ref={containerRef}\n >\n {containerHeight && (\n <LottieAnimation\n width={1280}\n height={containerHeight}\n src={isMobile ? animationSrcMobile ?? animation : animation}\n ref={animationRef}\n onRender={onLottieRender}\n settings={animationSettings}\n />\n )}\n <Styled.CircularStepContainer\n $width={isMobile ? 290 : 400}\n $height={isMobile ? 290 : 400}\n $background=\"REAL_BLACK\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {progressAngle && (\n <AnimatedArc\n radius={isMobile ? 145 : 200}\n strokeWidth={2}\n color=\"WHITE\"\n targetAngle={progressAngle}\n mode=\"fade\"\n duration={1}\n />\n )}\n <Styled.ContentWrapper $isVisible={showContent} $width=\"100%\">\n {label && (\n <FlexView $gutterX={isMobile ? 1.5 : 3.5}>\n <Text $renderAs=\"ab2\" $color=\"WHITE\" $align=\"center\">\n {label}\n </Text>\n <Separator heightX={1} />\n </FlexView>\n )}\n <Styled.InputContainer>{children}</Styled.InputContainer>\n </Styled.ContentWrapper>\n </Styled.CircularStepContainer>\n {footerElement && (\n <Styled.FooterWrapper $alignItems=\"center\" $justifyContent=\"center\">\n {footerElement}\n </Styled.FooterWrapper>\n )}\n {showPrevious && (\n <Styled.PrevButtonWrapper>\n <IconButton\n Icon={Back2Icon}\n renderAs=\"black-dark\"\n analyticsLabel=\"Prev\"\n onClick={onGoBack}\n disabled={isNextLoading}\n size=\"small\"\n />\n </Styled.PrevButtonWrapper>\n )}\n {showNext && (\n <Styled.NextButtonWrapper>\n <IconButton\n size=\"small\"\n Icon={Next2Icon}\n renderAs=\"secondary-dark\"\n analyticsLabel=\"Next\"\n onClick={onNext}\n busy={isNextLoading}\n disabled={isNextLoading || isNextDisabled}\n />\n </Styled.NextButtonWrapper>\n )}\n </Styled.Container>\n );\n },\n);\n\nexport default memo(CircularStepWrapper);\n"],"names":["animationSettings","CircularStepWrapper","forwardRef","children","onGoBack","onNext","label","showNext","showPrevious","animation","introFrames","outroFrames","isNextLoading","progressAngle","footerElement","isNextDisabled","animationSrcMobile","ref","animationRef","useRef","containerRef","containerHeight","setContainerHeight","useState","showContent","setShowContent","timeoutRef","device","useTheme","isMobile","EDeviceType","onLottieRender","useCallback","useEffect","useImperativeHandle","resolve","handleComplete","_a","_b","useLayoutEffect","jsxs","Styled.Container","jsx","LottieAnimation","Styled.CircularStepContainer","AnimatedArc","Styled.ContentWrapper","FlexView","Text","Separator","Styled.InputContainer","Styled.FooterWrapper","Styled.PrevButtonWrapper","IconButton","Back2Icon","Styled.NextButtonWrapper","Next2Icon","CircularStepWrapper$1","memo"],"mappings":"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"}
|
|
@@ -13,12 +13,12 @@ const q = ({
|
|
|
13
13
|
error: u,
|
|
14
14
|
helperText: b,
|
|
15
15
|
onEnter: n,
|
|
16
|
-
isLoading:
|
|
16
|
+
isLoading: $,
|
|
17
17
|
isValid: h,
|
|
18
18
|
type: t = "text",
|
|
19
|
-
placeholder:
|
|
20
|
-
actionElement:
|
|
21
|
-
maxLength:
|
|
19
|
+
placeholder: D,
|
|
20
|
+
actionElement: F,
|
|
21
|
+
maxLength: R,
|
|
22
22
|
width: E,
|
|
23
23
|
textTransform: P,
|
|
24
24
|
textAlign: v = "center",
|
|
@@ -56,8 +56,8 @@ const q = ({
|
|
|
56
56
|
X,
|
|
57
57
|
{
|
|
58
58
|
helperText: u || b,
|
|
59
|
-
isLoading:
|
|
60
|
-
actionElement:
|
|
59
|
+
isLoading: $,
|
|
60
|
+
actionElement: F,
|
|
61
61
|
children: /* @__PURE__ */ K(
|
|
62
62
|
B,
|
|
63
63
|
{
|
|
@@ -75,13 +75,13 @@ const q = ({
|
|
|
75
75
|
value: r,
|
|
76
76
|
onChange: G,
|
|
77
77
|
autoFocus: !0,
|
|
78
|
-
placeholder:
|
|
78
|
+
placeholder: D,
|
|
79
79
|
color: z,
|
|
80
80
|
autoCapitalize: "none",
|
|
81
81
|
textTransform: P,
|
|
82
82
|
type: y,
|
|
83
83
|
onKeyDown: k,
|
|
84
|
-
maxLength:
|
|
84
|
+
maxLength: R,
|
|
85
85
|
align: v,
|
|
86
86
|
fontSize: j
|
|
87
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-input-field.js","sources":["../../../../../src/features/auth/signup/custom-input-field/custom-input-field.tsx"],"sourcesContent":["import type { ICustomInputFieldProps } from './custom-input-field-types';\n\nimport {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n memo,\n type FC,\n type KeyboardEvent,\n type ChangeEvent,\n} from 'react';\nimport { useTheme } from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport { EDeviceType } from '../../../ui/theme/constants';\nimport PhoneCountrySelector from './country-selector/country-selector';\nimport * as Styled from './custom-input-field-styled';\nimport InputWrapper from './input-wrapper/input-wrapper';\nimport PasswordToggleIcon from './password-toggle/password-toggle';\n\nconst CustomInputField: FC<ICustomInputFieldProps> = ({\n value,\n onChange,\n error,\n helperText,\n onEnter,\n isLoading,\n isValid,\n type = 'text',\n placeholder,\n actionElement,\n maxLength,\n width,\n textTransform,\n textAlign = 'center',\n selectedCountry,\n onCountryChange,\n autoSize = false,\n}) => {\n const theme = useTheme();\n const isMobile = theme.device <= EDeviceType.MOBILE;\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\n const [fontSize, setFontSize] = useState(isMobile ? 24 : 32);\n const inputRef = useRef<HTMLInputElement>(null);\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n onEnter?.();\n }\n },\n [onEnter],\n );\n\n const inputType = useMemo(() => {\n if (type === 'password') return isPasswordVisible ? 'text' : 'password';\n\n if (type === 'phone') return 'number';\n\n return type;\n }, [type, isPasswordVisible]);\n\n const inputColor = useMemo(() => {\n if (error) return theme.colors.RED;\n\n if (isValid) return theme.colors.GREEN_4;\n\n return theme.colors.WHITE;\n }, [error, isValid, theme.colors]);\n\n const measureTextWidth = useCallback((text: string, font: string): number => {\n if (!canvasRef.current) {\n canvasRef.current = document.createElement('canvas');\n }\n\n const context = canvasRef.current.getContext('2d');\n\n if (!context) return 0;\n\n context.font = font;\n\n return context.measureText(text).width;\n }, []);\n\n useEffect(() => {\n if (!inputRef.current || !value || !autoSize) {\n return;\n }\n\n if (isMobile) {\n setFontSize(24);\n\n return;\n }\n\n const inputWidth = inputRef.current.clientWidth;\n\n const font32 = \"32px 'Athletics-Light'\";\n\n const textWidth32 = measureTextWidth(value, font32);\n\n if (textWidth32 > inputWidth) {\n setFontSize(24);\n } else {\n setFontSize(32);\n }\n }, [value, measureTextWidth, autoSize, isMobile]);\n\n useEffect(() => {\n return () => {\n canvasRef.current = null;\n };\n }, []);\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => onChange(event.target.value),\n [onChange],\n );\n\n return (\n <InputWrapper\n helperText={error || helperText}\n isLoading={isLoading}\n actionElement={actionElement}\n >\n <FlexView\n $width={width ?? '100%'}\n $flex={1}\n $alignItems=\"center\"\n $flexDirection=\"row\"\n $flexGapX={0.5}\n >\n {type === 'phone' && (\n <PhoneCountrySelector onChange={onCountryChange} value={selectedCountry} />\n )}\n <Styled.CustomInput\n ref={inputRef}\n value={value}\n onChange={handleChange}\n autoFocus\n placeholder={placeholder}\n color={inputColor}\n autoCapitalize=\"none\"\n textTransform={textTransform}\n type={inputType}\n onKeyDown={handleKeyDown}\n maxLength={maxLength}\n align={textAlign}\n fontSize={fontSize}\n />\n {type === 'password' && (\n <PasswordToggleIcon\n isVisible={isPasswordVisible}\n onToggle={() => setIsPasswordVisible(prev => !prev)}\n />\n )}\n </FlexView>\n </InputWrapper>\n );\n};\n\nexport default memo(CustomInputField);\n"],"names":["CustomInputField","value","onChange","error","helperText","onEnter","isLoading","isValid","type","placeholder","actionElement","maxLength","width","textTransform","textAlign","selectedCountry","onCountryChange","autoSize","theme","useTheme","isMobile","EDeviceType","isPasswordVisible","setIsPasswordVisible","useState","fontSize","setFontSize","inputRef","useRef","canvasRef","handleKeyDown","useCallback","event","inputType","useMemo","inputColor","measureTextWidth","text","font","context","useEffect","inputWidth","handleChange","jsx","InputWrapper","jsxs","FlexView","PhoneCountrySelector","Styled.CustomInput","PasswordToggleIcon","prev","
|
|
1
|
+
{"version":3,"file":"custom-input-field.js","sources":["../../../../../src/features/auth/signup/custom-input-field/custom-input-field.tsx"],"sourcesContent":["import type { ICustomInputFieldProps } from './custom-input-field-types';\n\nimport {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n memo,\n type FC,\n type KeyboardEvent,\n type ChangeEvent,\n} from 'react';\nimport { useTheme } from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport { EDeviceType } from '../../../ui/theme/constants';\nimport PhoneCountrySelector from './country-selector/country-selector';\nimport * as Styled from './custom-input-field-styled';\nimport InputWrapper from './input-wrapper/input-wrapper';\nimport PasswordToggleIcon from './password-toggle/password-toggle';\n\nconst CustomInputField: FC<ICustomInputFieldProps> = ({\n value,\n onChange,\n error,\n helperText,\n onEnter,\n isLoading,\n isValid,\n type = 'text',\n placeholder,\n actionElement,\n maxLength,\n width,\n textTransform,\n textAlign = 'center',\n selectedCountry,\n onCountryChange,\n autoSize = false,\n}) => {\n const theme = useTheme();\n const isMobile = theme.device <= EDeviceType.MOBILE;\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\n const [fontSize, setFontSize] = useState(isMobile ? 24 : 32);\n const inputRef = useRef<HTMLInputElement>(null);\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n onEnter?.();\n }\n },\n [onEnter],\n );\n\n const inputType = useMemo(() => {\n if (type === 'password') return isPasswordVisible ? 'text' : 'password';\n\n if (type === 'phone') return 'number';\n\n return type;\n }, [type, isPasswordVisible]);\n\n const inputColor = useMemo(() => {\n if (error) return theme.colors.RED;\n\n if (isValid) return theme.colors.GREEN_4;\n\n return theme.colors.WHITE;\n }, [error, isValid, theme.colors]);\n\n const measureTextWidth = useCallback((text: string, font: string): number => {\n if (!canvasRef.current) {\n canvasRef.current = document.createElement('canvas');\n }\n\n const context = canvasRef.current.getContext('2d');\n\n if (!context) return 0;\n\n context.font = font;\n\n return context.measureText(text).width;\n }, []);\n\n useEffect(() => {\n if (!inputRef.current || !value || !autoSize) {\n return;\n }\n\n if (isMobile) {\n setFontSize(24);\n\n return;\n }\n\n const inputWidth = inputRef.current.clientWidth;\n\n const font32 = \"32px 'Athletics-Light'\";\n\n const textWidth32 = measureTextWidth(value, font32);\n\n if (textWidth32 > inputWidth) {\n setFontSize(24);\n } else {\n setFontSize(32);\n }\n }, [value, measureTextWidth, autoSize, isMobile]);\n\n useEffect(() => {\n return () => {\n canvasRef.current = null;\n };\n }, []);\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => onChange(event.target.value),\n [onChange],\n );\n\n return (\n <InputWrapper\n helperText={error || helperText}\n isLoading={isLoading}\n actionElement={actionElement}\n >\n <FlexView\n $width={width ?? '100%'}\n $flex={1}\n $alignItems=\"center\"\n $flexDirection=\"row\"\n $flexGapX={0.5}\n >\n {type === 'phone' && (\n <PhoneCountrySelector onChange={onCountryChange} value={selectedCountry} />\n )}\n <Styled.CustomInput\n ref={inputRef}\n value={value}\n onChange={handleChange}\n autoFocus\n placeholder={placeholder}\n color={inputColor}\n autoCapitalize=\"none\"\n textTransform={textTransform}\n type={inputType}\n onKeyDown={handleKeyDown}\n maxLength={maxLength}\n align={textAlign}\n fontSize={fontSize}\n />\n {type === 'password' && (\n <PasswordToggleIcon\n isVisible={isPasswordVisible}\n onToggle={() => setIsPasswordVisible(prev => !prev)}\n />\n )}\n </FlexView>\n </InputWrapper>\n );\n};\n\nexport default memo(CustomInputField);\n"],"names":["CustomInputField","value","onChange","error","helperText","onEnter","isLoading","isValid","type","placeholder","actionElement","maxLength","width","textTransform","textAlign","selectedCountry","onCountryChange","autoSize","theme","useTheme","isMobile","EDeviceType","isPasswordVisible","setIsPasswordVisible","useState","fontSize","setFontSize","inputRef","useRef","canvasRef","handleKeyDown","useCallback","event","inputType","useMemo","inputColor","measureTextWidth","text","font","context","useEffect","inputWidth","handleChange","jsx","InputWrapper","jsxs","FlexView","PhoneCountrySelector","Styled.CustomInput","PasswordToggleIcon","prev","CustomInputField$1","memo"],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ const Xe = ({
|
|
|
35
35
|
}) => {
|
|
36
36
|
const [v, U] = o(0), [n, u] = o(l), [h, p] = o(""), [t, _] = o(
|
|
37
37
|
j.find((e) => e.key === L) ?? null
|
|
38
|
-
), [S, i] = o(!1),
|
|
38
|
+
), [S, i] = o(!1), $ = Re(G), f = se(null), [z, W] = o(!1), [J, O] = o(!1), P = (e) => {
|
|
39
39
|
i(!1), e ? (f.current = e, u(e.username), A && A(e), a()) : p(I.SOMETHING_WENT_WRONG);
|
|
40
40
|
}, Q = (e) => {
|
|
41
41
|
i(!1), e ? (f.current = e, u(e.username), B && B(e), a()) : p(I.SOMETHING_WENT_WRONG);
|
|
@@ -43,7 +43,7 @@ const Xe = ({
|
|
|
43
43
|
i(!1), e ? (u(e.username), f.current = e, a()) : p(I.SOMETHING_WENT_WRONG);
|
|
44
44
|
}, { createUser: D } = ge(P), { updateUser: H } = Ee(Q), { updateUsername: q } = Te(Z), ee = () => {
|
|
45
45
|
O(!0), setTimeout(() => {
|
|
46
|
-
|
|
46
|
+
W(!0);
|
|
47
47
|
}, 500);
|
|
48
48
|
}, re = async (e) => {
|
|
49
49
|
_(e);
|
|
@@ -102,7 +102,7 @@ const Xe = ({
|
|
|
102
102
|
width: 144,
|
|
103
103
|
isVisible: !0,
|
|
104
104
|
onClick: () => {
|
|
105
|
-
a(), O(!1),
|
|
105
|
+
a(), O(!1), W(!1);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
)
|
|
@@ -193,21 +193,21 @@ for your child` : "Claim your unique alias",
|
|
|
193
193
|
c ? /* @__PURE__ */ s(ie, { children: [
|
|
194
194
|
/* @__PURE__ */ r(d, { $renderAs: "ac4-black", $align: "center", $color: "GREEN_4", children: "Premium access unlocked!" }),
|
|
195
195
|
/* @__PURE__ */ r(ae, { height: 12 }),
|
|
196
|
-
/* @__PURE__ */ s(d, { $renderAs: "ub2", $color: "WHITE", children: [
|
|
196
|
+
/* @__PURE__ */ s(d, { $renderAs: "ub2", $color: "WHITE", $align: "center", children: [
|
|
197
197
|
"Your child can directly login to leap.cuemath.com using “",
|
|
198
198
|
/* @__PURE__ */ r(d, { $color: "GREEN_4", $renderAs: "ub2", $inline: !0, children: n }),
|
|
199
199
|
"” as both username and password."
|
|
200
200
|
] })
|
|
201
201
|
] }) : /* @__PURE__ */ s(Y, { children: [
|
|
202
202
|
/* @__PURE__ */ s(d, { $renderAs: "ab1", $color: "WHITE", children: [
|
|
203
|
-
|
|
203
|
+
$.primaryText,
|
|
204
204
|
k && /* @__PURE__ */ s(Ne, { children: [
|
|
205
205
|
" ",
|
|
206
206
|
k,
|
|
207
207
|
" days of FREE"
|
|
208
208
|
] })
|
|
209
209
|
] }),
|
|
210
|
-
/* @__PURE__ */ r(d, { $renderAs: "ab1", $color: "WHITE", children:
|
|
210
|
+
/* @__PURE__ */ r(d, { $renderAs: "ab1", $color: "WHITE", children: $.secondaryText })
|
|
211
211
|
] }),
|
|
212
212
|
w ? /* @__PURE__ */ r(de, { marginY: 24 }) : /* @__PURE__ */ r(
|
|
213
213
|
N,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign-up.js","sources":["../../../../src/features/circle-games/sign-up/sign-up.tsx"],"sourcesContent":["import type { IUpdateUsernameResponse } from './api/use-update-username-api/use-update-username-api-types';\nimport type {\n ICircularSteps,\n ICircularStepsProps,\n} from './comp/circular-steps/circular-steps-types';\nimport type { Grade } from './comp/grade-input/grade-input-types';\nimport type { ICreateUserResponseDal } from './dal/create-user-dal/create-user-dal-types';\nimport type { IUpdateUserPayloadDal } from './dal/update-user-dal/update-user-dal-types';\nimport type { ISignUpProps } from './sign-up-types';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport Image from '../../ui/image/image';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { CircularSteps } from './comp/circular-steps/circular-steps';\nimport { GradeInputBox, SelectUserGrade } from './comp/select-user-grade/select-user-grade';\nimport { Spinner } from './comp/spinner/spinner';\nimport { SplashScreen } from './comp/splash-screen/splash-screen';\nimport { ErrorMessage } from './comp/username-input/constants';\nimport { UsernameInput } from './comp/username-input/username-input';\nimport { CONTAINER_HEIGHT, CONTAINER_WIDTH, GRADES } from './constants';\nimport { useCreateUserDal } from './dal/create-user-dal/create-user-dal';\nimport { useUpdateUserDal } from './dal/update-user-dal/update-user-dal';\nimport { useUpdateUsernameDal } from './dal/update-username-dal/update-username-dal';\nimport { getSplashScreenText, getTrialScreenUsername } from './helper';\nimport * as Styled from './sign-up-styled';\n\nexport const SignUp = ({\n mathGymEnrolledUser,\n circleEnrolledUser,\n circleOnLeapPremiumDays,\n circleUsername,\n countryCode,\n grade: defaultGrade,\n state,\n circleOnLeapPremiumEnabled,\n studentId,\n isSignUpProcessing,\n onCreateUser,\n onUpdateUser,\n onSignupStepsComplete,\n isPLAStudent,\n}: ISignUpProps) => {\n const [currentStepIndex, setCurrentStepIndex] = useState(0);\n const [username, setUsername] = useState(circleUsername);\n const [error, setError] = useState('');\n const [grade, setGrade] = useState<Grade | null>(\n GRADES.find(g => g.key === defaultGrade) ?? null,\n );\n const [showSpinner, setShowSpinner] = useState(false);\n const trialScreenContent = getTrialScreenUsername(state);\n\n const userCreateUpdateResponseData = useRef<\n ICreateUserResponseDal | IUpdateUserPayloadDal | IUpdateUsernameResponse | null\n >(null);\n\n const [splashBtnVisible, setSplashBtnVisible] = useState(false);\n const [splashTxtVisible, setSplashTxtVisible] = useState(false);\n\n const handleCreateUserResponse = (data: ICreateUserResponseDal | null) => {\n setShowSpinner(false);\n if (data) {\n userCreateUpdateResponseData.current = data;\n setUsername(data.username);\n onCreateUser && onCreateUser(data);\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n const handleUpdateUserResponse = (data: IUpdateUserPayloadDal | null) => {\n setShowSpinner(false);\n if (data) {\n userCreateUpdateResponseData.current = data;\n setUsername(data.username);\n onUpdateUser && onUpdateUser(data);\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n const handleUpdateUsernameResponse = (data: IUpdateUsernameResponse | null) => {\n setShowSpinner(false);\n if (data) {\n setUsername(data.username);\n userCreateUpdateResponseData.current = data;\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n\n const { createUser } = useCreateUserDal(handleCreateUserResponse);\n const { updateUser } = useUpdateUserDal(handleUpdateUserResponse);\n const { updateUsername } = useUpdateUsernameDal(handleUpdateUsernameResponse);\n // Animate the text and btns a fter the splash animation is completed in splash screen\n const onSplashScreenBgAnimationComplete = () => {\n setSplashTxtVisible(true);\n setTimeout(() => {\n setSplashBtnVisible(true);\n }, 500);\n };\n\n const handleGradeSelect = async (_grade: Grade) => {\n setGrade(_grade);\n };\n\n const handleUsernameSubmit = useCallback(async () => {\n setShowSpinner(true);\n if (error !== '') {\n return;\n }\n\n if (isPLAStudent && username) {\n //TODO: The old API should be migrated to use this for both PLA and Non PLA students\n // PLA students can use the username as both the login username and password, and also set it as the Circle username.\n updateUsername({\n username,\n studentId,\n });\n\n return;\n }\n\n if (circleUsername === '' || circleUsername === undefined || circleUsername === null) {\n createUser({\n circleOnLeapPremiumEnabled,\n grade: grade?.key || '',\n username,\n countryCode,\n studentId,\n });\n } else {\n updateUser({\n circleOnLeapPremiumEnabled,\n grade: grade?.key || '',\n username,\n studentId,\n });\n }\n }, [\n circleOnLeapPremiumEnabled,\n circleUsername,\n countryCode,\n createUser,\n error,\n grade?.key,\n isPLAStudent,\n studentId,\n updateUser,\n updateUsername,\n username,\n ]);\n\n const goToNextStep = () => {\n setCurrentStepIndex(prev => {\n if (prev === SignupProps.steps.length - 1) {\n onSignupStepsComplete(userCreateUpdateResponseData.current);\n\n return prev;\n }\n\n return prev + 1;\n });\n };\n\n const goToPrevStep = () => {\n if (showSpinner) {\n return;\n }\n setCurrentStepIndex(prev => {\n if (prev === 0) {\n return prev;\n }\n\n return prev - 1;\n });\n };\n\n const splashScreenStep: ICircularSteps = {\n id: 'step-0',\n label: null,\n custEle: null,\n custEleInsideStep: null,\n background: <SplashScreen animationCompleted={onSplashScreenBgAnimationComplete} />,\n custEleBelowStep: (\n <Styled.BottomButtonContainer paddingX={mathGymEnrolledUser && circleEnrolledUser ? 1 : 2.5}>\n {splashTxtVisible && (\n <Styled.SignupText $renderAs=\"ab2\" $color=\"WHITE\" $align=\"center\">\n {getSplashScreenText({ state, circleEnrolledUser, mathGymEnrolledUser })}\n </Styled.SignupText>\n )}\n {splashBtnVisible && (\n <Styled.SignupBtn\n label=\"Let’s start\"\n renderAs=\"secondary\"\n marginTop={24}\n width={144}\n isVisible={true}\n onClick={() => {\n goToNextStep();\n setSplashTxtVisible(false);\n setSplashBtnVisible(false);\n }}\n />\n )}\n </Styled.BottomButtonContainer>\n ),\n isProgressAnimationRequired: false,\n };\n\n const gradeStep: ICircularSteps = {\n id: 'step-1',\n label: 'What’s your school grade?',\n custEle: null,\n custEleInsideStep: <GradeInputBox gradeInfo={grade} showSpinner={showSpinner} />,\n background: (\n <Image\n src={ILLUSTRATIONS.GRADE_GRID_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <SelectUserGrade\n grades={GRADES}\n selected={grade?.key || null}\n onSelect={_grade => handleGradeSelect(_grade)}\n onNext={goToNextStep}\n />\n ),\n onBack: goToPrevStep,\n isProgressAnimationRequired: true,\n };\n\n const usernameStep: ICircularSteps = {\n id: 'step-2',\n label: isPLAStudent ? `Create a unique username\\nfor your child` : 'Claim your unique alias',\n custEle: null,\n custEleInsideStep: (\n <UsernameInput\n username={username}\n circleUsername={circleUsername}\n isEdit={false}\n error={error}\n setError={setError}\n showSpinner={showSpinner}\n setShowSpinner={setShowSpinner}\n setUsername={setUsername}\n />\n ),\n background: (\n <Image\n src={ILLUSTRATIONS.USER_PROFILE_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <Styled.BottomButtonContainer>\n {username !== '' && (\n <Styled.SignupBtn\n label=\"Next\"\n disabled={showSpinner || error !== ''}\n renderAs=\"secondary\"\n onClick={() => handleUsernameSubmit()}\n marginTop={88}\n />\n )}\n </Styled.BottomButtonContainer>\n ),\n onBack: goToPrevStep,\n isProgressAnimationRequired: true,\n };\n\n const trialScreenStep: ICircularSteps = {\n id: 'step-3',\n label: null,\n custEle: null,\n custEleInsideStep: (\n <Styled.SmileyImage src={ILLUSTRATIONS.SMILEY} height={'100%'} width={'100%'} alt=\"play\" />\n ),\n background: (\n <Image\n src={ILLUSTRATIONS.USER_CROWN_GRID_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <Styled.BottomButtonContainer>\n {isPLAStudent ? (\n <FlexView>\n <Text $renderAs=\"ac4-black\" $align=\"center\" $color=\"GREEN_4\">\n Premium access unlocked!\n </Text>\n <Separator height={12} />\n <Text $renderAs=\"ub2\" $color=\"WHITE\">\n Your child can directly login to leap.cuemath.com using “\n <Text $color=\"GREEN_4\" $renderAs=\"ub2\" $inline>\n {username}\n </Text>\n ” as both username and password.\n </Text>\n </FlexView>\n ) : (\n <>\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n {trialScreenContent.primaryText}\n {circleOnLeapPremiumDays && (\n <Styled.ThemeText> {circleOnLeapPremiumDays} days of FREE</Styled.ThemeText>\n )}\n </Text>\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n {trialScreenContent.secondaryText}\n </Text>\n </>\n )}\n {isSignUpProcessing ? (\n <Spinner marginY={24} />\n ) : (\n <Styled.SignupBtn\n label=\"Woohoo! Let me in!\"\n renderAs=\"secondary\"\n marginTop={24}\n width={250}\n onClick={() => goToNextStep()}\n />\n )}\n </Styled.BottomButtonContainer>\n ),\n onBack: isSignUpProcessing ? undefined : goToPrevStep,\n isProgressAnimationRequired: true,\n };\n\n const SignupProps: ICircularStepsProps = {\n steps: isPLAStudent\n ? [splashScreenStep, usernameStep, trialScreenStep]\n : [splashScreenStep, gradeStep, usernameStep, trialScreenStep],\n currentStepIndex: 0,\n dimensions: { width: CONTAINER_WIDTH, height: CONTAINER_HEIGHT },\n };\n\n // Reset states on unmount\n useEffect(() => {\n return () => {\n setShowSpinner(false);\n setUsername('');\n setGrade(null);\n setError('');\n };\n }, []);\n\n return (\n <>\n <Styled.BackgroundOverlay />\n <Styled.SignUpWrapper>\n <Styled.SignUpContainer>\n <CircularSteps {...SignupProps} currentStepIndex={currentStepIndex} />\n </Styled.SignUpContainer>\n </Styled.SignUpWrapper>\n </>\n );\n};\n"],"names":["SignUp","mathGymEnrolledUser","circleEnrolledUser","circleOnLeapPremiumDays","circleUsername","countryCode","defaultGrade","state","circleOnLeapPremiumEnabled","studentId","isSignUpProcessing","onCreateUser","onUpdateUser","onSignupStepsComplete","isPLAStudent","currentStepIndex","setCurrentStepIndex","useState","username","setUsername","error","setError","grade","setGrade","GRADES","g","showSpinner","setShowSpinner","trialScreenContent","getTrialScreenUsername","userCreateUpdateResponseData","useRef","splashBtnVisible","setSplashBtnVisible","splashTxtVisible","setSplashTxtVisible","handleCreateUserResponse","data","goToNextStep","ErrorMessage","handleUpdateUserResponse","handleUpdateUsernameResponse","createUser","useCreateUserDal","updateUser","useUpdateUserDal","updateUsername","useUpdateUsernameDal","onSplashScreenBgAnimationComplete","handleGradeSelect","_grade","handleUsernameSubmit","useCallback","prev","SignupProps","goToPrevStep","splashScreenStep","jsx","SplashScreen","Styled.BottomButtonContainer","Styled.SignupText","Styled.SignupBtn","gradeStep","GradeInputBox","Image","ILLUSTRATIONS","SelectUserGrade","usernameStep","UsernameInput","trialScreenStep","Styled.SmileyImage","jsxs","FlexView","Text","Separator","Fragment","Styled.ThemeText","Spinner","CONTAINER_WIDTH","CONTAINER_HEIGHT","useEffect","Styled.BackgroundOverlay","Styled.SignUpWrapper","Styled.SignUpContainer","CircularSteps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sign-up.js","sources":["../../../../src/features/circle-games/sign-up/sign-up.tsx"],"sourcesContent":["import type { IUpdateUsernameResponse } from './api/use-update-username-api/use-update-username-api-types';\nimport type {\n ICircularSteps,\n ICircularStepsProps,\n} from './comp/circular-steps/circular-steps-types';\nimport type { Grade } from './comp/grade-input/grade-input-types';\nimport type { ICreateUserResponseDal } from './dal/create-user-dal/create-user-dal-types';\nimport type { IUpdateUserPayloadDal } from './dal/update-user-dal/update-user-dal-types';\nimport type { ISignUpProps } from './sign-up-types';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport Image from '../../ui/image/image';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { CircularSteps } from './comp/circular-steps/circular-steps';\nimport { GradeInputBox, SelectUserGrade } from './comp/select-user-grade/select-user-grade';\nimport { Spinner } from './comp/spinner/spinner';\nimport { SplashScreen } from './comp/splash-screen/splash-screen';\nimport { ErrorMessage } from './comp/username-input/constants';\nimport { UsernameInput } from './comp/username-input/username-input';\nimport { CONTAINER_HEIGHT, CONTAINER_WIDTH, GRADES } from './constants';\nimport { useCreateUserDal } from './dal/create-user-dal/create-user-dal';\nimport { useUpdateUserDal } from './dal/update-user-dal/update-user-dal';\nimport { useUpdateUsernameDal } from './dal/update-username-dal/update-username-dal';\nimport { getSplashScreenText, getTrialScreenUsername } from './helper';\nimport * as Styled from './sign-up-styled';\n\nexport const SignUp = ({\n mathGymEnrolledUser,\n circleEnrolledUser,\n circleOnLeapPremiumDays,\n circleUsername,\n countryCode,\n grade: defaultGrade,\n state,\n circleOnLeapPremiumEnabled,\n studentId,\n isSignUpProcessing,\n onCreateUser,\n onUpdateUser,\n onSignupStepsComplete,\n isPLAStudent,\n}: ISignUpProps) => {\n const [currentStepIndex, setCurrentStepIndex] = useState(0);\n const [username, setUsername] = useState(circleUsername);\n const [error, setError] = useState('');\n const [grade, setGrade] = useState<Grade | null>(\n GRADES.find(g => g.key === defaultGrade) ?? null,\n );\n const [showSpinner, setShowSpinner] = useState(false);\n const trialScreenContent = getTrialScreenUsername(state);\n\n const userCreateUpdateResponseData = useRef<\n ICreateUserResponseDal | IUpdateUserPayloadDal | IUpdateUsernameResponse | null\n >(null);\n\n const [splashBtnVisible, setSplashBtnVisible] = useState(false);\n const [splashTxtVisible, setSplashTxtVisible] = useState(false);\n\n const handleCreateUserResponse = (data: ICreateUserResponseDal | null) => {\n setShowSpinner(false);\n if (data) {\n userCreateUpdateResponseData.current = data;\n setUsername(data.username);\n onCreateUser && onCreateUser(data);\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n const handleUpdateUserResponse = (data: IUpdateUserPayloadDal | null) => {\n setShowSpinner(false);\n if (data) {\n userCreateUpdateResponseData.current = data;\n setUsername(data.username);\n onUpdateUser && onUpdateUser(data);\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n const handleUpdateUsernameResponse = (data: IUpdateUsernameResponse | null) => {\n setShowSpinner(false);\n if (data) {\n setUsername(data.username);\n userCreateUpdateResponseData.current = data;\n goToNextStep();\n } else {\n setError(ErrorMessage.SOMETHING_WENT_WRONG);\n }\n };\n\n const { createUser } = useCreateUserDal(handleCreateUserResponse);\n const { updateUser } = useUpdateUserDal(handleUpdateUserResponse);\n const { updateUsername } = useUpdateUsernameDal(handleUpdateUsernameResponse);\n // Animate the text and btns a fter the splash animation is completed in splash screen\n const onSplashScreenBgAnimationComplete = () => {\n setSplashTxtVisible(true);\n setTimeout(() => {\n setSplashBtnVisible(true);\n }, 500);\n };\n\n const handleGradeSelect = async (_grade: Grade) => {\n setGrade(_grade);\n };\n\n const handleUsernameSubmit = useCallback(async () => {\n setShowSpinner(true);\n if (error !== '') {\n return;\n }\n\n if (isPLAStudent && username) {\n //TODO: The old API should be migrated to use this for both PLA and Non PLA students\n // PLA students can use the username as both the login username and password, and also set it as the Circle username.\n updateUsername({\n username,\n studentId,\n });\n\n return;\n }\n\n if (circleUsername === '' || circleUsername === undefined || circleUsername === null) {\n createUser({\n circleOnLeapPremiumEnabled,\n grade: grade?.key || '',\n username,\n countryCode,\n studentId,\n });\n } else {\n updateUser({\n circleOnLeapPremiumEnabled,\n grade: grade?.key || '',\n username,\n studentId,\n });\n }\n }, [\n circleOnLeapPremiumEnabled,\n circleUsername,\n countryCode,\n createUser,\n error,\n grade?.key,\n isPLAStudent,\n studentId,\n updateUser,\n updateUsername,\n username,\n ]);\n\n const goToNextStep = () => {\n setCurrentStepIndex(prev => {\n if (prev === SignupProps.steps.length - 1) {\n onSignupStepsComplete(userCreateUpdateResponseData.current);\n\n return prev;\n }\n\n return prev + 1;\n });\n };\n\n const goToPrevStep = () => {\n if (showSpinner) {\n return;\n }\n setCurrentStepIndex(prev => {\n if (prev === 0) {\n return prev;\n }\n\n return prev - 1;\n });\n };\n\n const splashScreenStep: ICircularSteps = {\n id: 'step-0',\n label: null,\n custEle: null,\n custEleInsideStep: null,\n background: <SplashScreen animationCompleted={onSplashScreenBgAnimationComplete} />,\n custEleBelowStep: (\n <Styled.BottomButtonContainer paddingX={mathGymEnrolledUser && circleEnrolledUser ? 1 : 2.5}>\n {splashTxtVisible && (\n <Styled.SignupText $renderAs=\"ab2\" $color=\"WHITE\" $align=\"center\">\n {getSplashScreenText({ state, circleEnrolledUser, mathGymEnrolledUser })}\n </Styled.SignupText>\n )}\n {splashBtnVisible && (\n <Styled.SignupBtn\n label=\"Let’s start\"\n renderAs=\"secondary\"\n marginTop={24}\n width={144}\n isVisible={true}\n onClick={() => {\n goToNextStep();\n setSplashTxtVisible(false);\n setSplashBtnVisible(false);\n }}\n />\n )}\n </Styled.BottomButtonContainer>\n ),\n isProgressAnimationRequired: false,\n };\n\n const gradeStep: ICircularSteps = {\n id: 'step-1',\n label: 'What’s your school grade?',\n custEle: null,\n custEleInsideStep: <GradeInputBox gradeInfo={grade} showSpinner={showSpinner} />,\n background: (\n <Image\n src={ILLUSTRATIONS.GRADE_GRID_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <SelectUserGrade\n grades={GRADES}\n selected={grade?.key || null}\n onSelect={_grade => handleGradeSelect(_grade)}\n onNext={goToNextStep}\n />\n ),\n onBack: goToPrevStep,\n isProgressAnimationRequired: true,\n };\n\n const usernameStep: ICircularSteps = {\n id: 'step-2',\n label: isPLAStudent ? `Create a unique username\\nfor your child` : 'Claim your unique alias',\n custEle: null,\n custEleInsideStep: (\n <UsernameInput\n username={username}\n circleUsername={circleUsername}\n isEdit={false}\n error={error}\n setError={setError}\n showSpinner={showSpinner}\n setShowSpinner={setShowSpinner}\n setUsername={setUsername}\n />\n ),\n background: (\n <Image\n src={ILLUSTRATIONS.USER_PROFILE_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <Styled.BottomButtonContainer>\n {username !== '' && (\n <Styled.SignupBtn\n label=\"Next\"\n disabled={showSpinner || error !== ''}\n renderAs=\"secondary\"\n onClick={() => handleUsernameSubmit()}\n marginTop={88}\n />\n )}\n </Styled.BottomButtonContainer>\n ),\n onBack: goToPrevStep,\n isProgressAnimationRequired: true,\n };\n\n const trialScreenStep: ICircularSteps = {\n id: 'step-3',\n label: null,\n custEle: null,\n custEleInsideStep: (\n <Styled.SmileyImage src={ILLUSTRATIONS.SMILEY} height={'100%'} width={'100%'} alt=\"play\" />\n ),\n background: (\n <Image\n src={ILLUSTRATIONS.USER_CROWN_GRID_BACKGROUND}\n height={'100%'}\n width={'100%'}\n withLoader={false}\n alt=\"play\"\n />\n ),\n custEleBelowStep: (\n <Styled.BottomButtonContainer>\n {isPLAStudent ? (\n <FlexView>\n <Text $renderAs=\"ac4-black\" $align=\"center\" $color=\"GREEN_4\">\n Premium access unlocked!\n </Text>\n <Separator height={12} />\n <Text $renderAs=\"ub2\" $color=\"WHITE\" $align=\"center\">\n Your child can directly login to leap.cuemath.com using “\n <Text $color=\"GREEN_4\" $renderAs=\"ub2\" $inline>\n {username}\n </Text>\n ” as both username and password.\n </Text>\n </FlexView>\n ) : (\n <>\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n {trialScreenContent.primaryText}\n {circleOnLeapPremiumDays && (\n <Styled.ThemeText> {circleOnLeapPremiumDays} days of FREE</Styled.ThemeText>\n )}\n </Text>\n <Text $renderAs=\"ab1\" $color=\"WHITE\">\n {trialScreenContent.secondaryText}\n </Text>\n </>\n )}\n {isSignUpProcessing ? (\n <Spinner marginY={24} />\n ) : (\n <Styled.SignupBtn\n label=\"Woohoo! Let me in!\"\n renderAs=\"secondary\"\n marginTop={24}\n width={250}\n onClick={() => goToNextStep()}\n />\n )}\n </Styled.BottomButtonContainer>\n ),\n onBack: isSignUpProcessing ? undefined : goToPrevStep,\n isProgressAnimationRequired: true,\n };\n\n const SignupProps: ICircularStepsProps = {\n steps: isPLAStudent\n ? [splashScreenStep, usernameStep, trialScreenStep]\n : [splashScreenStep, gradeStep, usernameStep, trialScreenStep],\n currentStepIndex: 0,\n dimensions: { width: CONTAINER_WIDTH, height: CONTAINER_HEIGHT },\n };\n\n // Reset states on unmount\n useEffect(() => {\n return () => {\n setShowSpinner(false);\n setUsername('');\n setGrade(null);\n setError('');\n };\n }, []);\n\n return (\n <>\n <Styled.BackgroundOverlay />\n <Styled.SignUpWrapper>\n <Styled.SignUpContainer>\n <CircularSteps {...SignupProps} currentStepIndex={currentStepIndex} />\n </Styled.SignUpContainer>\n </Styled.SignUpWrapper>\n </>\n );\n};\n"],"names":["SignUp","mathGymEnrolledUser","circleEnrolledUser","circleOnLeapPremiumDays","circleUsername","countryCode","defaultGrade","state","circleOnLeapPremiumEnabled","studentId","isSignUpProcessing","onCreateUser","onUpdateUser","onSignupStepsComplete","isPLAStudent","currentStepIndex","setCurrentStepIndex","useState","username","setUsername","error","setError","grade","setGrade","GRADES","g","showSpinner","setShowSpinner","trialScreenContent","getTrialScreenUsername","userCreateUpdateResponseData","useRef","splashBtnVisible","setSplashBtnVisible","splashTxtVisible","setSplashTxtVisible","handleCreateUserResponse","data","goToNextStep","ErrorMessage","handleUpdateUserResponse","handleUpdateUsernameResponse","createUser","useCreateUserDal","updateUser","useUpdateUserDal","updateUsername","useUpdateUsernameDal","onSplashScreenBgAnimationComplete","handleGradeSelect","_grade","handleUsernameSubmit","useCallback","prev","SignupProps","goToPrevStep","splashScreenStep","jsx","SplashScreen","Styled.BottomButtonContainer","Styled.SignupText","Styled.SignupBtn","gradeStep","GradeInputBox","Image","ILLUSTRATIONS","SelectUserGrade","usernameStep","UsernameInput","trialScreenStep","Styled.SmileyImage","jsxs","FlexView","Text","Separator","Fragment","Styled.ThemeText","Spinner","CONTAINER_WIDTH","CONTAINER_HEIGHT","useEffect","Styled.BackgroundOverlay","Styled.SignUpWrapper","Styled.SignUpContainer","CircularSteps"],"mappings":"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"}
|
|
@@ -21,35 +21,35 @@ const U = ({
|
|
|
21
21
|
onNodeUnassign: A,
|
|
22
22
|
puzzleHWCardRef: T
|
|
23
23
|
}) => {
|
|
24
|
-
const [j, a] = y(!1), [D, I] = y(!1),
|
|
24
|
+
const [j, a] = y(!1), [D, I] = y(!1), o = V(null), { assigned_homeworks: h = [], queued_homeworks: f = [] } = s || {}, R = S(
|
|
25
25
|
() => h.length + f.length,
|
|
26
26
|
[h, f]
|
|
27
|
-
), G = S(() => Z(s), [s]),
|
|
28
|
-
if (
|
|
29
|
-
const { scrollLeft: e, scrollWidth: i, clientWidth: c } =
|
|
27
|
+
), G = S(() => Z(s), [s]), t = d(() => {
|
|
28
|
+
if (o.current) {
|
|
29
|
+
const { scrollLeft: e, scrollWidth: i, clientWidth: c } = o.current;
|
|
30
30
|
e > 1 && a(!0), e < i - c - 1 && I(!0);
|
|
31
31
|
}
|
|
32
32
|
}, []), M = d(() => {
|
|
33
|
-
|
|
34
|
-
}, [
|
|
33
|
+
o.current && t();
|
|
34
|
+
}, [t]), N = d(() => {
|
|
35
35
|
a(!1), I(!1);
|
|
36
36
|
}, []), X = d(() => {
|
|
37
|
-
|
|
38
|
-
}, [
|
|
39
|
-
|
|
40
|
-
}, [
|
|
37
|
+
o.current && (o.current.scrollBy({ left: -200, behavior: "smooth" }), t());
|
|
38
|
+
}, [t]), O = d(() => {
|
|
39
|
+
o.current && (o.current.scrollBy({ left: 200, behavior: "smooth" }), t());
|
|
40
|
+
}, [t]);
|
|
41
41
|
return B(() => {
|
|
42
|
-
if (s &&
|
|
43
|
-
const { scrollLeft: e } =
|
|
42
|
+
if (s && o.current) {
|
|
43
|
+
const { scrollLeft: e } = o.current;
|
|
44
44
|
e > 1 && a(!0);
|
|
45
45
|
}
|
|
46
46
|
}, [s]), B(() => {
|
|
47
|
-
const e =
|
|
47
|
+
const e = o.current;
|
|
48
48
|
if (e)
|
|
49
|
-
return e.addEventListener("scroll",
|
|
50
|
-
e.removeEventListener("scroll",
|
|
49
|
+
return e.addEventListener("scroll", t), () => {
|
|
50
|
+
e.removeEventListener("scroll", t);
|
|
51
51
|
};
|
|
52
|
-
}, [
|
|
52
|
+
}, [t]), R === 0 ? /* @__PURE__ */ l(u, { $flexRowGapX: 1, children: [
|
|
53
53
|
/* @__PURE__ */ r(g, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: "Homework (0)" }),
|
|
54
54
|
/* @__PURE__ */ r(g, { $renderAs: "ab2", $color: "BLACK_T_60", children: "No Homework assigned yet" })
|
|
55
55
|
] }) : /* @__PURE__ */ l(Y, { $flexRowGapX: 1, $disablePointerEvents: K, children: [
|
|
@@ -82,7 +82,7 @@ const U = ({
|
|
|
82
82
|
children: /* @__PURE__ */ r(F, { width: 24, height: 24 })
|
|
83
83
|
}
|
|
84
84
|
),
|
|
85
|
-
/* @__PURE__ */ r(z, { ref:
|
|
85
|
+
/* @__PURE__ */ r(z, { ref: o, children: /* @__PURE__ */ l(u, { $flexDirection: "row", $flexGapX: 1, children: [
|
|
86
86
|
h.map((e, i) => {
|
|
87
87
|
const {
|
|
88
88
|
node_id: c,
|
|
@@ -12,10 +12,10 @@ import ee from "../body-layout/body-layout.js";
|
|
|
12
12
|
import { ButtonWrapper as C } from "./goal-completion-date-selector-styled.js";
|
|
13
13
|
import te from "./goal-completion-date-selector-view.js";
|
|
14
14
|
import { lastDayOfMonth as v } from "../../../../../node_modules/date-fns/lastDayOfMonth.js";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
15
|
+
import { addDays as oe } from "../../../../../node_modules/date-fns/addDays.js";
|
|
16
|
+
import { eachMonthOfInterval as se } from "../../../../../node_modules/date-fns/eachMonthOfInterval.js";
|
|
17
|
+
import { addMonths as re } from "../../../../../node_modules/date-fns/addMonths.js";
|
|
17
18
|
import { formatDate as c } from "../../../../../node_modules/date-fns/format.js";
|
|
18
|
-
import { addDays as re } from "../../../../../node_modules/date-fns/addDays.js";
|
|
19
19
|
const be = q(
|
|
20
20
|
({
|
|
21
21
|
formData: D,
|
|
@@ -55,10 +55,10 @@ const be = q(
|
|
|
55
55
|
flow: r ?? "CREATE",
|
|
56
56
|
courseStream: O
|
|
57
57
|
}), { testType: L, milestoneEndDate: t, committed: N } = D, { milestoneEndDate: w } = N, { title: j } = G, k = r === "EDIT" ? "Update goal" : "Create goal", T = /* @__PURE__ */ new Date(), n = c(T.setDate(T.getDate() + 1), "yyyy-MM-dd"), i = c(Date.now() + Q, "yyyy-MM-dd"), R = z(() => {
|
|
58
|
-
const e = /* @__PURE__ */ new Date(), o = v(e) ?
|
|
59
|
-
return
|
|
58
|
+
const e = /* @__PURE__ */ new Date(), o = v(e) ? oe(e, 1) : e;
|
|
59
|
+
return se({
|
|
60
60
|
start: o,
|
|
61
|
-
end:
|
|
61
|
+
end: re(o, 11)
|
|
62
62
|
}).map((b) => {
|
|
63
63
|
const x = v(b);
|
|
64
64
|
return {
|
|
@@ -2,7 +2,7 @@ import t from "styled-components";
|
|
|
2
2
|
import p from "../../../../../assets/line-icons/icons/chevron-right.js";
|
|
3
3
|
import l from "../../../../ui/layout/flex-view.js";
|
|
4
4
|
import x from "../../../../ui/text/text.js";
|
|
5
|
-
const
|
|
5
|
+
const a = t(l)(({ theme: o }) => {
|
|
6
6
|
const { layout: r, colors: e } = o, { BLACK_T_38: i } = e;
|
|
7
7
|
return `
|
|
8
8
|
max-height: ${r.gutter * 15.75}px;
|
|
@@ -26,6 +26,6 @@ const w = t(x)(() => `
|
|
|
26
26
|
`);
|
|
27
27
|
export {
|
|
28
28
|
w as StyledText,
|
|
29
|
-
|
|
29
|
+
a as Wrapper
|
|
30
30
|
};
|
|
31
31
|
//# sourceMappingURL=sheets-list-styled.js.map
|
|
@@ -64,7 +64,7 @@ const F = (t, r) => {
|
|
|
64
64
|
id: l,
|
|
65
65
|
label: n
|
|
66
66
|
}), r;
|
|
67
|
-
}, []),
|
|
67
|
+
}, []), k = (t) => {
|
|
68
68
|
const {
|
|
69
69
|
currentGoalData: r,
|
|
70
70
|
enrollmentType: e,
|
|
@@ -120,7 +120,7 @@ const F = (t, r) => {
|
|
|
120
120
|
id: a,
|
|
121
121
|
label: _
|
|
122
122
|
})).sort((a, _) => a.label.toUpperCase() > _.label.toUpperCase() ? 1 : -1);
|
|
123
|
-
},
|
|
123
|
+
}, O = (t) => t.grades.reduce((r, e) => (e === "-1" || e === "0" ? r.push({
|
|
124
124
|
id: e,
|
|
125
125
|
label: e === "-1" ? "Pre-K" : "KG"
|
|
126
126
|
}) : r.push({
|
|
@@ -132,14 +132,20 @@ const F = (t, r) => {
|
|
|
132
132
|
return !(n.course_stream !== i || n.preference_category !== u || n.preference_grades.length > 0 && !n.preference_grades.includes(s) || !n.is_live);
|
|
133
133
|
};
|
|
134
134
|
return e == null ? void 0 : e.filter(l).map(
|
|
135
|
-
({
|
|
135
|
+
({
|
|
136
|
+
preference_code: n,
|
|
137
|
+
preference_name: s,
|
|
138
|
+
preference_description: i,
|
|
139
|
+
lottie_key: u
|
|
140
|
+
}) => ({
|
|
136
141
|
id: n,
|
|
137
142
|
label: s,
|
|
138
|
-
description: i
|
|
143
|
+
description: i,
|
|
144
|
+
lottie: u
|
|
139
145
|
})
|
|
140
146
|
);
|
|
141
147
|
}, W = (t, r, e, l, n) => {
|
|
142
|
-
const { goal_curriculum_map: s } = t, i =
|
|
148
|
+
const { goal_curriculum_map: s } = t, i = O(t), u = ({ id: c }) => s.filter((d) => d.course_stream === e && d.is_live).some((d) => {
|
|
143
149
|
const {
|
|
144
150
|
available_grades: m,
|
|
145
151
|
goal_category: a,
|
|
@@ -212,7 +218,7 @@ const F = (t, r) => {
|
|
|
212
218
|
}, Y = (t, r, e, l, n, s, i, u, c) => {
|
|
213
219
|
const { goal_curriculum_map: d } = t, m = r === "no-test", a = A(r);
|
|
214
220
|
return d.find((f) => {
|
|
215
|
-
const o =
|
|
221
|
+
const o = k({
|
|
216
222
|
currentGoalData: f,
|
|
217
223
|
grade: e,
|
|
218
224
|
currentCountryCode: i,
|
|
@@ -248,7 +254,7 @@ export {
|
|
|
248
254
|
$ as getDefaultBoard,
|
|
249
255
|
q as getGoalsFromConfig,
|
|
250
256
|
W as getGradesBasedOnGoalAvailability,
|
|
251
|
-
|
|
257
|
+
O as getGradesFromConfig,
|
|
252
258
|
j as getMajorsFromConfigBasedOnBoardAndGrade,
|
|
253
259
|
M as getPreferencesFromConfig,
|
|
254
260
|
I as getRegionCodeBasedOnCountryCode,
|