@cuemath/leap 3.5.67-link2 → 3.5.67-link3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"milestone-config.js","sources":["../../../../../src/features/milestone/create/api/milestone-config.ts"],"sourcesContent":["import { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3 } from '../../../../constants/api';\nimport { stringify } from '../../../../helpers/query-string';\nimport type { IMilestoneConfig } from '../milestone-create-types';\n\nconst { useGet: useGetMileStoneConfig } = createGetAPI<\n IMilestoneConfig,\n { demo_type?: string } | undefined\n>({\n getURL: (_, query) => `${BASE_URL_V3}/milestone/config/${query ? `?${stringify(query)}` : ''}`,\n});\n\nexport { useGetMileStoneConfig };\n"],"names":["useGetMileStoneConfig","createGetAPI","_","query","BASE_URL_V3","stringify"],"mappings":";;;AAMA,MAAM,EAAE,QAAQA,EAAsB,IAAIC,EAGxC;AAAA,EACA,QAAQ,CAACC,GAAGC,MAAU,GAAGC,CAAW,qBAAqBD,IAAQ,IAAIE,EAAUF,CAAK,CAAC,KAAK,EAAE;AAC9F,CAAC;"}
1
+ {"version":3,"file":"milestone-config.js","sources":["../../../../../src/features/milestone/create/api/milestone-config.ts"],"sourcesContent":["import { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3 } from '../../../../constants/api';\nimport { stringify } from '../../../../helpers/query-string';\nimport type { IMilestoneConfig } from '../milestone-create-types';\nimport { type DemoType } from '../../../trial-session/trial-session-constants';\n\nconst { useGet: useGetMileStoneConfig } = createGetAPI<\n IMilestoneConfig,\n { demo_type?: DemoType } | undefined\n>({\n getURL: (_, query) => `${BASE_URL_V3}/milestone/config/${query ? `?${stringify(query)}` : ''}`,\n});\n\nexport { useGetMileStoneConfig };\n"],"names":["useGetMileStoneConfig","createGetAPI","_","query","BASE_URL_V3","stringify"],"mappings":";;;AAOA,MAAM,EAAE,QAAQA,EAAsB,IAAIC,EAGxC;AAAA,EACA,QAAQ,CAACC,GAAGC,MAAU,GAAGC,CAAW,qBAAqBD,IAAQ,IAAIE,EAAUF,CAAK,CAAC,KAAK,EAAE;AAC9F,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-student-profile-summary-data.js","sources":["../../../../src/features/parent-dashboard/hooks/use-student-profile-summary-data.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from 'react';\n\nimport { useGetMileStoneConfig } from '../../milestone/create/api/milestone-config';\nimport { useStudentProfileSummaryGet } from '../api/get-student-profile-summary';\nimport { getLearningProfileSummary } from '../modals/student-profile-summary/student-profile-summary-helpers';\n\nconst DEFAULT_DEMO_TYPE = { demo_type: 'TRIAL_V3' } as const;\n\nconst useStudentProfileSummaryData = (studentId: string) => {\n const { get: getStudentProfileSummary, data: summaryData } =\n useStudentProfileSummaryGet(studentId);\n\n const { get: getMilestoneConfig, data: milestoneConfigData } = useGetMileStoneConfig(\n studentId,\n DEFAULT_DEMO_TYPE,\n );\n\n const fetchSummaryData = useCallback(() => {\n getStudentProfileSummary(studentId);\n getMilestoneConfig(studentId, DEFAULT_DEMO_TYPE);\n }, [getStudentProfileSummary, studentId, getMilestoneConfig]);\n\n useEffect(() => {\n fetchSummaryData();\n }, [fetchSummaryData]);\n\n const summaryInfo = useMemo(() => {\n return getLearningProfileSummary(milestoneConfigData, summaryData);\n }, [milestoneConfigData, summaryData]);\n\n const result = useMemo(\n () => ({ summaryInfo, fetchSummaryData }),\n [summaryInfo, fetchSummaryData],\n );\n\n return result;\n};\n\nexport default useStudentProfileSummaryData;\n"],"names":["DEFAULT_DEMO_TYPE","useStudentProfileSummaryData","studentId","getStudentProfileSummary","summaryData","useStudentProfileSummaryGet","getMilestoneConfig","milestoneConfigData","useGetMileStoneConfig","fetchSummaryData","useCallback","useEffect","summaryInfo","useMemo","getLearningProfileSummary"],"mappings":";;;;AAMA,MAAMA,IAAoB,EAAE,WAAW,cAEjCC,IAA+B,CAACC,MAAsB;AAC1D,QAAM,EAAE,KAAKC,GAA0B,MAAMC,MAC3CC,EAA4BH,CAAS,GAEjC,EAAE,KAAKI,GAAoB,MAAMC,EAAwB,IAAAC;AAAA,IAC7DN;AAAA,IACAF;AAAA,EAAA,GAGIS,IAAmBC,EAAY,MAAM;AACzC,IAAAP,EAAyBD,CAAS,GAClCI,EAAmBJ,GAAWF,CAAiB;AAAA,EAC9C,GAAA,CAACG,GAA0BD,GAAWI,CAAkB,CAAC;AAE5D,EAAAK,EAAU,MAAM;AACG,IAAAF;EAAA,GAChB,CAACA,CAAgB,CAAC;AAEf,QAAAG,IAAcC,EAAQ,MACnBC,EAA0BP,GAAqBH,CAAW,GAChE,CAACG,GAAqBH,CAAW,CAAC;AAO9B,SALQS;AAAA,IACb,OAAO,EAAE,aAAAD,GAAa,kBAAAH;IACtB,CAACG,GAAaH,CAAgB;AAAA,EAAA;AAIlC;"}
1
+ {"version":3,"file":"use-student-profile-summary-data.js","sources":["../../../../src/features/parent-dashboard/hooks/use-student-profile-summary-data.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from 'react';\n\nimport { useGetMileStoneConfig } from '../../milestone/create/api/milestone-config';\nimport { useStudentProfileSummaryGet } from '../api/get-student-profile-summary';\nimport { getLearningProfileSummary } from '../modals/student-profile-summary/student-profile-summary-helpers';\nimport { type DemoType } from '../../trial-session/trial-session-constants';\n\nconst DEFAULT_DEMO_TYPE = { demo_type: 'TRIAL_V3' as DemoType };\n\nconst useStudentProfileSummaryData = (studentId: string) => {\n const { get: getStudentProfileSummary, data: summaryData } =\n useStudentProfileSummaryGet(studentId);\n\n const { get: getMilestoneConfig, data: milestoneConfigData } = useGetMileStoneConfig(\n studentId,\n DEFAULT_DEMO_TYPE,\n );\n\n const fetchSummaryData = useCallback(() => {\n getStudentProfileSummary(studentId);\n getMilestoneConfig(studentId, DEFAULT_DEMO_TYPE);\n }, [getStudentProfileSummary, studentId, getMilestoneConfig]);\n\n useEffect(() => {\n fetchSummaryData();\n }, [fetchSummaryData]);\n\n const summaryInfo = useMemo(() => {\n return getLearningProfileSummary(milestoneConfigData, summaryData);\n }, [milestoneConfigData, summaryData]);\n\n const result = useMemo(\n () => ({ summaryInfo, fetchSummaryData }),\n [summaryInfo, fetchSummaryData],\n );\n\n return result;\n};\n\nexport default useStudentProfileSummaryData;\n"],"names":["DEFAULT_DEMO_TYPE","useStudentProfileSummaryData","studentId","getStudentProfileSummary","summaryData","useStudentProfileSummaryGet","getMilestoneConfig","milestoneConfigData","useGetMileStoneConfig","fetchSummaryData","useCallback","useEffect","summaryInfo","useMemo","getLearningProfileSummary"],"mappings":";;;;AAOA,MAAMA,IAAoB,EAAE,WAAW,cAEjCC,IAA+B,CAACC,MAAsB;AAC1D,QAAM,EAAE,KAAKC,GAA0B,MAAMC,MAC3CC,EAA4BH,CAAS,GAEjC,EAAE,KAAKI,GAAoB,MAAMC,EAAwB,IAAAC;AAAA,IAC7DN;AAAA,IACAF;AAAA,EAAA,GAGIS,IAAmBC,EAAY,MAAM;AACzC,IAAAP,EAAyBD,CAAS,GAClCI,EAAmBJ,GAAWF,CAAiB;AAAA,EAC9C,GAAA,CAACG,GAA0BD,GAAWI,CAAkB,CAAC;AAE5D,EAAAK,EAAU,MAAM;AACG,IAAAF;EAAA,GAChB,CAACA,CAAgB,CAAC;AAEf,QAAAG,IAAcC,EAAQ,MACnBC,EAA0BP,GAAqBH,CAAW,GAChE,CAACG,GAAqBH,CAAW,CAAC;AAO9B,SALQS;AAAA,IACb,OAAO,EAAE,aAAAD,GAAa,kBAAAH;IACtB,CAACG,GAAaH,CAAgB;AAAA,EAAA;AAIlC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"school-goals-view.js","sources":["../../../../../src/features/trial-session/comps/school-goals/school-goals-view.tsx"],"sourcesContent":["import type { ChangeEvent } from 'react';\n\nimport * as Styled from './school-goals-styled';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Image from '../../../ui/image/image';\nimport SearchableSelectInput from '../../../ui/inputs/searchable-select-input/searchable-select-input';\nimport SelectInput from '../../../ui/inputs/select-input/select-input';\nimport Separator from '../../../ui/separator/separator';\nimport SlideHeader from '../slide-header';\nimport TextInput from '../../../ui/inputs/text-input/text-input';\nimport type { IButtonState } from '../../trial-session-types';\nimport type { ISectionOption } from '../../../ui/section-list/section-list-types';\nimport type { ISelectOption } from '../../../ui/inputs/base-select-input/base-select-input-types';\nimport type { TCurriculumStandardOption } from '../../../milestone/create/milestone-create-types';\nimport { GIF } from '../../../../assets/gif/gif';\n\ninterface ISchoolGoals {\n header?: string;\n name?: string;\n grade?: string;\n curriculum?: string;\n grades: ISelectOption<string>[];\n demoType: string;\n curriculumStandards: ISectionOption<TCurriculumStandardOption>[];\n goalsList: ISelectOption<string>[];\n selectedGoal?: string;\n numberInNameError?: boolean;\n buttonState: { left: IButtonState; right: IButtonState };\n onNameChange: (event: ChangeEvent<HTMLInputElement>) => void;\n onGradeChange: (value: string) => void;\n onCurriculumChange: (value: string) => void;\n onGoalChange: (value: string, option: ISelectOption<string | number>) => void;\n}\n\nconst SchoolGoalsView = (props: ISchoolGoals) => {\n const {\n name,\n grade,\n grades,\n demoType,\n goalsList,\n curriculum,\n buttonState,\n selectedGoal,\n numberInNameError,\n curriculumStandards,\n onNameChange,\n onGoalChange,\n onGradeChange,\n onCurriculumChange,\n } = props;\n\n const {\n right: { isLoading = false },\n } = buttonState || {};\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader />\n <Styled.ContentWrapper $readOnly={isLoading} $flexDirection=\"row\" $justifyContent=\"center\">\n <Styled.ImageWrapper>\n <Image withLoader height={402} width={302} src={GIF.SCHOOL_SUCCESS} className=\"image\" />\n </Styled.ImageWrapper>\n <Styled.InputContainer\n $flexGap={24}\n $justifyContent=\"center\"\n $background=\"PURPLE_1\"\n $borderColor=\"BLACK_1\"\n $gapX={2.5}\n $gutterX={2.5}\n >\n <FlexView $flexDirection=\"row\" $flexColumnGapX={1.5}>\n {demoType === 'TRIAL_V3' ? (\n <TextInput\n renderAs=\"primary\"\n label=\"Name\"\n value={name}\n type=\"text\"\n name=\"name\"\n shape=\"borderLess\"\n onChange={onNameChange}\n width=\"100%\"\n isTransparent\n errorMessage={numberInNameError ? 'Please enter a valid name' : undefined}\n />\n ) : null}\n <SelectInput\n renderAs=\"primary\"\n label=\"Grade\"\n value={grade}\n options={grades}\n shape=\"borderLess\"\n onChange={onGradeChange}\n theme=\"dark\"\n widthX={10}\n isTransparent\n />\n </FlexView>\n <SelectInput\n renderAs=\"primary\"\n label=\"Curriculum\"\n value={curriculum}\n options={curriculumStandards}\n disabled={!grade}\n shape=\"borderLess\"\n renderOptionsAs=\"section-list\"\n theme=\"dark\"\n onChange={onCurriculumChange}\n isTransparent\n />\n <SearchableSelectInput\n renderAs=\"primary\"\n label=\"Goal\"\n value={selectedGoal}\n options={goalsList}\n shape=\"borderLess\"\n theme=\"dark\"\n onChange={onGoalChange}\n isTransparent\n disabled={!grade || !curriculum}\n />\n </Styled.InputContainer>\n </Styled.ContentWrapper>\n </Styled.Container>\n );\n};\n\nexport default SchoolGoalsView;\n"],"names":["SchoolGoalsView","props","name","grade","grades","demoType","goalsList","curriculum","buttonState","selectedGoal","numberInNameError","curriculumStandards","onNameChange","onGoalChange","onGradeChange","onCurriculumChange","isLoading","jsxs","Styled.Container","jsx","Separator","SlideHeader","Styled.ContentWrapper","Styled.ImageWrapper","Image","GIF","Styled.InputContainer","FlexView","TextInput","SelectInput","SearchableSelectInput"],"mappings":";;;;;;;;;;AAkCM,MAAAA,IAAkB,CAACC,MAAwB;AACzC,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,oBAAAC;AAAA,EACE,IAAAd,GAEE;AAAA,IACJ,OAAO,EAAE,WAAAe,IAAY,GAAM;AAAA,EAAA,IACzBR,KAAe,CAAA;AAGjB,SAAA,gBAAAS,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,sBACtBC,GAAY,EAAA;AAAA,IACb,gBAAAJ,EAACK,GAAA,EAAsB,WAAWN,GAAW,gBAAe,OAAM,iBAAgB,UAChF,UAAA;AAAA,MAAA,gBAAAG,EAACI,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EAAM,YAAU,IAAC,QAAQ,KAAK,OAAO,KAAK,KAAKC,EAAI,gBAAgB,WAAU,QAAQ,CAAA,GACxF;AAAA,MACA,gBAAAR;AAAA,QAACS;AAAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV,iBAAgB;AAAA,UAChB,aAAY;AAAA,UACZ,cAAa;AAAA,UACb,OAAO;AAAA,UACP,UAAU;AAAA,UAEV,UAAA;AAAA,YAAA,gBAAAT,EAACU,GAAS,EAAA,gBAAe,OAAM,iBAAiB,KAC7C,UAAA;AAAA,cAAAtB,MAAa,aACZ,gBAAAc;AAAA,gBAACS;AAAA,gBAAA;AAAA,kBACC,UAAS;AAAA,kBACT,OAAM;AAAA,kBACN,OAAO1B;AAAA,kBACP,MAAK;AAAA,kBACL,MAAK;AAAA,kBACL,OAAM;AAAA,kBACN,UAAUU;AAAA,kBACV,OAAM;AAAA,kBACN,eAAa;AAAA,kBACb,cAAcF,IAAoB,8BAA8B;AAAA,gBAAA;AAAA,cAAA,IAEhE;AAAA,cACJ,gBAAAS;AAAA,gBAACU;AAAA,gBAAA;AAAA,kBACC,UAAS;AAAA,kBACT,OAAM;AAAA,kBACN,OAAO1B;AAAA,kBACP,SAASC;AAAA,kBACT,OAAM;AAAA,kBACN,UAAUU;AAAA,kBACV,OAAM;AAAA,kBACN,QAAQ;AAAA,kBACR,eAAa;AAAA,gBAAA;AAAA,cACf;AAAA,YAAA,GACF;AAAA,YACA,gBAAAK;AAAA,cAACU;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,OAAM;AAAA,gBACN,OAAOtB;AAAA,gBACP,SAASI;AAAA,gBACT,UAAU,CAACR;AAAA,gBACX,OAAM;AAAA,gBACN,iBAAgB;AAAA,gBAChB,OAAM;AAAA,gBACN,UAAUY;AAAA,gBACV,eAAa;AAAA,cAAA;AAAA,YACf;AAAA,YACA,gBAAAI;AAAA,cAACW;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,OAAM;AAAA,gBACN,OAAOrB;AAAA,gBACP,SAASH;AAAA,gBACT,OAAM;AAAA,gBACN,OAAM;AAAA,gBACN,UAAUO;AAAA,gBACV,eAAa;AAAA,gBACb,UAAU,CAACV,KAAS,CAACI;AAAA,cAAA;AAAA,YACvB;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"school-goals-view.js","sources":["../../../../../src/features/trial-session/comps/school-goals/school-goals-view.tsx"],"sourcesContent":["import type { ChangeEvent } from 'react';\n\nimport * as Styled from './school-goals-styled';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Image from '../../../ui/image/image';\nimport SearchableSelectInput from '../../../ui/inputs/searchable-select-input/searchable-select-input';\nimport SelectInput from '../../../ui/inputs/select-input/select-input';\nimport Separator from '../../../ui/separator/separator';\nimport SlideHeader from '../slide-header';\nimport TextInput from '../../../ui/inputs/text-input/text-input';\nimport type { IButtonState } from '../../trial-session-types';\nimport type { ISectionOption } from '../../../ui/section-list/section-list-types';\nimport type { ISelectOption } from '../../../ui/inputs/base-select-input/base-select-input-types';\nimport type { TCurriculumStandardOption } from '../../../milestone/create/milestone-create-types';\nimport { GIF } from '../../../../assets/gif/gif';\nimport { type DemoType } from '../../trial-session-constants';\n\ninterface ISchoolGoals {\n header?: string;\n name?: string;\n grade?: string;\n curriculum?: string;\n grades: ISelectOption<string>[];\n demoType: DemoType;\n curriculumStandards: ISectionOption<TCurriculumStandardOption>[];\n goalsList: ISelectOption<string>[];\n selectedGoal?: string;\n numberInNameError?: boolean;\n buttonState: { left: IButtonState; right: IButtonState };\n onNameChange: (event: ChangeEvent<HTMLInputElement>) => void;\n onGradeChange: (value: string) => void;\n onCurriculumChange: (value: string) => void;\n onGoalChange: (value: string, option: ISelectOption<string | number>) => void;\n}\n\nconst SchoolGoalsView = (props: ISchoolGoals) => {\n const {\n name,\n grade,\n grades,\n demoType,\n goalsList,\n curriculum,\n buttonState,\n selectedGoal,\n numberInNameError,\n curriculumStandards,\n onNameChange,\n onGoalChange,\n onGradeChange,\n onCurriculumChange,\n } = props;\n\n const {\n right: { isLoading = false },\n } = buttonState || {};\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader />\n <Styled.ContentWrapper $readOnly={isLoading} $flexDirection=\"row\" $justifyContent=\"center\">\n <Styled.ImageWrapper>\n <Image withLoader height={402} width={302} src={GIF.SCHOOL_SUCCESS} className=\"image\" />\n </Styled.ImageWrapper>\n <Styled.InputContainer\n $flexGap={24}\n $justifyContent=\"center\"\n $background=\"PURPLE_1\"\n $borderColor=\"BLACK_1\"\n $gapX={2.5}\n $gutterX={2.5}\n >\n <FlexView $flexDirection=\"row\" $flexColumnGapX={1.5}>\n {demoType === 'TRIAL_V3' ? (\n <TextInput\n renderAs=\"primary\"\n label=\"Name\"\n value={name}\n type=\"text\"\n name=\"name\"\n shape=\"borderLess\"\n onChange={onNameChange}\n width=\"100%\"\n isTransparent\n errorMessage={numberInNameError ? 'Please enter a valid name' : undefined}\n />\n ) : null}\n <SelectInput\n renderAs=\"primary\"\n label=\"Grade\"\n value={grade}\n options={grades}\n shape=\"borderLess\"\n onChange={onGradeChange}\n theme=\"dark\"\n widthX={10}\n isTransparent\n />\n </FlexView>\n <SelectInput\n renderAs=\"primary\"\n label=\"Curriculum\"\n value={curriculum}\n options={curriculumStandards}\n disabled={!grade}\n shape=\"borderLess\"\n renderOptionsAs=\"section-list\"\n theme=\"dark\"\n onChange={onCurriculumChange}\n isTransparent\n />\n <SearchableSelectInput\n renderAs=\"primary\"\n label=\"Goal\"\n value={selectedGoal}\n options={goalsList}\n shape=\"borderLess\"\n theme=\"dark\"\n onChange={onGoalChange}\n isTransparent\n disabled={!grade || !curriculum}\n />\n </Styled.InputContainer>\n </Styled.ContentWrapper>\n </Styled.Container>\n );\n};\n\nexport default SchoolGoalsView;\n"],"names":["SchoolGoalsView","props","name","grade","grades","demoType","goalsList","curriculum","buttonState","selectedGoal","numberInNameError","curriculumStandards","onNameChange","onGoalChange","onGradeChange","onCurriculumChange","isLoading","jsxs","Styled.Container","jsx","Separator","SlideHeader","Styled.ContentWrapper","Styled.ImageWrapper","Image","GIF","Styled.InputContainer","FlexView","TextInput","SelectInput","SearchableSelectInput"],"mappings":";;;;;;;;;;AAmCM,MAAAA,IAAkB,CAACC,MAAwB;AACzC,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,oBAAAC;AAAA,EACE,IAAAd,GAEE;AAAA,IACJ,OAAO,EAAE,WAAAe,IAAY,GAAM;AAAA,EAAA,IACzBR,KAAe,CAAA;AAGjB,SAAA,gBAAAS,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,sBACtBC,GAAY,EAAA;AAAA,IACb,gBAAAJ,EAACK,GAAA,EAAsB,WAAWN,GAAW,gBAAe,OAAM,iBAAgB,UAChF,UAAA;AAAA,MAAA,gBAAAG,EAACI,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EAAM,YAAU,IAAC,QAAQ,KAAK,OAAO,KAAK,KAAKC,EAAI,gBAAgB,WAAU,QAAQ,CAAA,GACxF;AAAA,MACA,gBAAAR;AAAA,QAACS;AAAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV,iBAAgB;AAAA,UAChB,aAAY;AAAA,UACZ,cAAa;AAAA,UACb,OAAO;AAAA,UACP,UAAU;AAAA,UAEV,UAAA;AAAA,YAAA,gBAAAT,EAACU,GAAS,EAAA,gBAAe,OAAM,iBAAiB,KAC7C,UAAA;AAAA,cAAAtB,MAAa,aACZ,gBAAAc;AAAA,gBAACS;AAAA,gBAAA;AAAA,kBACC,UAAS;AAAA,kBACT,OAAM;AAAA,kBACN,OAAO1B;AAAA,kBACP,MAAK;AAAA,kBACL,MAAK;AAAA,kBACL,OAAM;AAAA,kBACN,UAAUU;AAAA,kBACV,OAAM;AAAA,kBACN,eAAa;AAAA,kBACb,cAAcF,IAAoB,8BAA8B;AAAA,gBAAA;AAAA,cAAA,IAEhE;AAAA,cACJ,gBAAAS;AAAA,gBAACU;AAAA,gBAAA;AAAA,kBACC,UAAS;AAAA,kBACT,OAAM;AAAA,kBACN,OAAO1B;AAAA,kBACP,SAASC;AAAA,kBACT,OAAM;AAAA,kBACN,UAAUU;AAAA,kBACV,OAAM;AAAA,kBACN,QAAQ;AAAA,kBACR,eAAa;AAAA,gBAAA;AAAA,cACf;AAAA,YAAA,GACF;AAAA,YACA,gBAAAK;AAAA,cAACU;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,OAAM;AAAA,gBACN,OAAOtB;AAAA,gBACP,SAASI;AAAA,gBACT,UAAU,CAACR;AAAA,gBACX,OAAM;AAAA,gBACN,iBAAgB;AAAA,gBAChB,OAAM;AAAA,gBACN,UAAUY;AAAA,gBACV,eAAa;AAAA,cAAA;AAAA,YACf;AAAA,YACA,gBAAAI;AAAA,cAACW;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,OAAM;AAAA,gBACN,OAAOrB;AAAA,gBACP,SAASH;AAAA,gBACT,OAAM;AAAA,gBACN,OAAM;AAAA,gBACN,UAAUO;AAAA,gBACV,eAAa;AAAA,gBACb,UAAU,CAACV,KAAS,CAACI;AAAA,cAAA;AAAA,YACvB;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-overview-utils.js","sources":["../../../../../src/features/trial-session/comps/session-overview/session-overview-utils.tsx"],"sourcesContent":["import { GIF } from '../../../../assets/gif/gif';\nimport { TrialPageId } from '../../trial-session-constants';\n\ntype TSessionItem = {\n title: string;\n image: string;\n period?: string;\n archived?: boolean;\n};\n\nconst sessionOverview = [\n {\n title: 'Your goals',\n period: '10 min',\n image: GIF.YOUR_GOALS,\n },\n {\n title: 'learning session',\n period: '30 min',\n image: GIF.LEARNING_SESSION,\n },\n {\n title: 'way forward',\n period: '15 min',\n image: GIF.WAY_FORWARD,\n },\n];\n\nconst sessionOverviewV3 = [\n {\n title: 'Personalize \\nthe session',\n period: '5 min',\n image: GIF.YOUR_GOALS,\n },\n {\n title: 'Interactive \\nLearning',\n period: '40 min',\n image: GIF.LEARNING_SESSION,\n },\n {\n title: 'way \\nforward',\n period: '15 min',\n image: GIF.WAY_FORWARD,\n },\n];\n\nconst sessionSummary = [\n {\n title: 'Your goals',\n image: GIF.YOUR_GOALS,\n archived: true,\n },\n {\n title: 'learning session',\n image: GIF.LEARNING_SESSION,\n archived: true,\n },\n {\n title: 'way forward',\n image: GIF.WAY_FORWARD,\n archived: true,\n },\n];\n\nexport const getSessionConfig = (pageId: TrialPageId, demoType: string) => {\n if (!pageId) return;\n\n const sessions: Partial<Record<TrialPageId, TSessionItem[]>> = {\n [TrialPageId.SESSION_OVERVIEW]: demoType === 'TRIAL_V3' ? sessionOverview : sessionOverviewV3,\n [TrialPageId.SESSION_SUMMARY]: sessionSummary,\n };\n\n return sessions[pageId];\n};\n"],"names":["sessionOverview","GIF","sessionOverviewV3","sessionSummary","getSessionConfig","pageId","demoType","TrialPageId"],"mappings":";;AAUA,MAAMA,IAAkB;AAAA,EACtB;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAOC,EAAI;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAOA,EAAI;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAOA,EAAI;AAAA,EACb;AACF,GAEMC,IAAoB;AAAA,EACxB;AAAA,IACE,OAAO;AAAA;AAAA,IACP,QAAQ;AAAA,IACR,OAAOD,EAAI;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA;AAAA,IACP,QAAQ;AAAA,IACR,OAAOA,EAAI;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA;AAAA,IACP,QAAQ;AAAA,IACR,OAAOA,EAAI;AAAA,EACb;AACF,GAEME,IAAiB;AAAA,EACrB;AAAA,IACE,OAAO;AAAA,IACP,OAAOF,EAAI;AAAA,IACX,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAOA,EAAI;AAAA,IACX,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAOA,EAAI;AAAA,IACX,UAAU;AAAA,EACZ;AACF,GAEaG,IAAmB,CAACC,GAAqBC,MAC/CD,IAE0D;AAAA,EAC7D,CAACE,EAAY,gBAAgB,GAAGD,MAAa,aAAaN,IAAkBE;AAAA,EAC5E,CAACK,EAAY,eAAe,GAAGJ;AAAA,EAGjBE,CAAM,IAPT;"}
1
+ {"version":3,"file":"session-overview-utils.js","sources":["../../../../../src/features/trial-session/comps/session-overview/session-overview-utils.tsx"],"sourcesContent":["import { GIF } from '../../../../assets/gif/gif';\nimport { type DemoType, TrialPageId } from '../../trial-session-constants';\n\ntype TSessionItem = {\n title: string;\n image: string;\n period?: string;\n archived?: boolean;\n};\n\nconst sessionOverview = [\n {\n title: 'Your goals',\n period: '10 min',\n image: GIF.YOUR_GOALS,\n },\n {\n title: 'learning session',\n period: '30 min',\n image: GIF.LEARNING_SESSION,\n },\n {\n title: 'way forward',\n period: '15 min',\n image: GIF.WAY_FORWARD,\n },\n];\n\nconst sessionOverviewV3 = [\n {\n title: 'Personalize \\nthe session',\n period: '5 min',\n image: GIF.YOUR_GOALS,\n },\n {\n title: 'Interactive \\nLearning',\n period: '40 min',\n image: GIF.LEARNING_SESSION,\n },\n {\n title: 'way \\nforward',\n period: '15 min',\n image: GIF.WAY_FORWARD,\n },\n];\n\nconst sessionSummary = [\n {\n title: 'Your goals',\n image: GIF.YOUR_GOALS,\n archived: true,\n },\n {\n title: 'learning session',\n image: GIF.LEARNING_SESSION,\n archived: true,\n },\n {\n title: 'way forward',\n image: GIF.WAY_FORWARD,\n archived: true,\n },\n];\n\nexport const getSessionConfig = (pageId: TrialPageId, demoType: DemoType) => {\n if (!pageId) return;\n\n const sessions: Partial<Record<TrialPageId, TSessionItem[]>> = {\n [TrialPageId.SESSION_OVERVIEW]: demoType === 'TRIAL_V3' ? sessionOverview : sessionOverviewV3,\n [TrialPageId.SESSION_SUMMARY]: sessionSummary,\n };\n\n return sessions[pageId];\n};\n"],"names":["sessionOverview","GIF","sessionOverviewV3","sessionSummary","getSessionConfig","pageId","demoType","TrialPageId"],"mappings":";;AAUA,MAAMA,IAAkB;AAAA,EACtB;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAOC,EAAI;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAOA,EAAI;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAOA,EAAI;AAAA,EACb;AACF,GAEMC,IAAoB;AAAA,EACxB;AAAA,IACE,OAAO;AAAA;AAAA,IACP,QAAQ;AAAA,IACR,OAAOD,EAAI;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA;AAAA,IACP,QAAQ;AAAA,IACR,OAAOA,EAAI;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA;AAAA,IACP,QAAQ;AAAA,IACR,OAAOA,EAAI;AAAA,EACb;AACF,GAEME,IAAiB;AAAA,EACrB;AAAA,IACE,OAAO;AAAA,IACP,OAAOF,EAAI;AAAA,IACX,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAOA,EAAI;AAAA,IACX,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAOA,EAAI;AAAA,IACX,UAAU;AAAA,EACZ;AACF,GAEaG,IAAmB,CAACC,GAAqBC,MAC/CD,IAE0D;AAAA,EAC7D,CAACE,EAAY,gBAAgB,GAAGD,MAAa,aAAaN,IAAkBE;AAAA,EAC5E,CAACK,EAAY,eAAe,GAAGJ;AAAA,EAGjBE,CAAM,IAPT;"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
- import { memo as D, useMemo as B, useCallback as d, useEffect as f } from "react";
2
+ import { memo as D, useMemo as B, useCallback as d, useEffect as h } from "react";
3
3
  import { getGradesFromConfig as E } from "../../../milestone/create/milestone-create-helpers.js";
4
4
  import G from "../../../ui/image/image.js";
5
5
  import C from "../../../ui/inputs/select-input/select-input.js";
@@ -17,33 +17,33 @@ const se = D(function() {
17
17
  const {
18
18
  formData: b,
19
19
  milestoneConfig: I,
20
- trialTopics: a,
20
+ trialTopics: i,
21
21
  trialHomeData: T,
22
- updateSlideConfig: r,
22
+ updateSlideConfig: o,
23
23
  updateButtonState: u,
24
- onRemoveOptionalSlides: i
25
- } = H(), { name: p, grade: o, course: t, studentProfile: $, numberInNameError: x } = b || {}, { dummyProfileImageIndex: y } = $ || {}, { demo_info: _ } = T, { region_data: w } = _, { opportunity_country: c = "US" } = w || {}, S = E(I), L = F(y), s = M(Number(o)), g = !!(p && o && (!(s.length > 0) || t)), h = B(() => a ? q(a, { countryCode: c, grade: o, course: t }) : [], [c, t, o, a]), v = d(
24
+ onRemoveOptionalSlides: a
25
+ } = H(), { name: p, grade: r, course: t, studentProfile: $, numberInNameError: x } = b || {}, { dummyProfileImageIndex: y } = $ || {}, { demo_info: _ } = T, { region_data: w } = _, { opportunity_country: c = "US" } = w || {}, S = E(I), L = F(y), s = M(Number(r)), g = !!(p && r && (!(s.length > 0) || t)), f = B(() => i ? q(i, { countryCode: c, grade: r, course: t }) : [], [c, t, r, i]), v = d(
26
26
  (n) => {
27
- r({
27
+ o({
28
28
  name: n.target.value,
29
29
  numberInNameError: !1
30
30
  });
31
31
  },
32
- [r]
32
+ [o]
33
33
  ), A = d(
34
34
  (n) => {
35
- r({ grade: n, course: "" });
35
+ o({ grade: n, course: "" });
36
36
  },
37
- [r]
37
+ [o]
38
38
  ), N = d(
39
39
  (n) => {
40
- r({ course: n });
40
+ o({ course: n });
41
41
  },
42
- [r]
42
+ [o]
43
43
  );
44
- return f(() => {
45
- i == null || i(void 0, void 0, h.length === 0);
46
- }, [h.length, o, t]), f(() => {
44
+ return h(() => {
45
+ r && t && (a == null || a(void 0, void 0, f.length === 0));
46
+ }, [f.length, r, t, a]), h(() => {
47
47
  u("right", { isDisabled: !g, isLoading: !1 });
48
48
  }, [g, u]), /* @__PURE__ */ m(l, { $justifyContent: "center", $alignItems: "center", children: [
49
49
  /* @__PURE__ */ e(k, { height: 60 }),
@@ -87,7 +87,7 @@ const se = D(function() {
87
87
  {
88
88
  renderAs: "primary",
89
89
  label: "Grade",
90
- value: o,
90
+ value: r,
91
91
  options: S,
92
92
  shape: "borderLess",
93
93
  onChange: A,
@@ -1 +1 @@
1
- {"version":3,"file":"student-info.js","sources":["../../../../../src/features/trial-session/comps/student-info/student-info.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, type InputHTMLAttributes } from 'react';\n\nimport { getGradesFromConfig } from '../../../milestone/create/milestone-create-helpers';\nimport Image from '../../../ui/image/image';\nimport SelectInput from '../../../ui/inputs/select-input/select-input';\nimport TextInput from '../../../ui/inputs/text-input/text-input';\nimport Separator from '../../../ui/separator/separator';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport SlideHeader from '../slide-header';\nimport * as Styled from './student-info-styled';\nimport FlexView from '../../../ui/layout/flex-view';\nimport { getDummyProfileImage } from '../student-profile/student-profile-utils';\nimport { RIGHT_PANEL_CONTENT_WIDTH } from '../../trial-session-constants';\nimport { getCourseOptions } from './student-info-helpers';\nimport { getTopicsToShow } from '../topic-selection/topic-selection-helpers';\n\nconst StudentInformation = memo(function StudentInformation() {\n const {\n formData,\n milestoneConfig,\n trialTopics,\n trialHomeData,\n updateSlideConfig,\n updateButtonState,\n onRemoveOptionalSlides,\n } = useTrialSessionContext();\n\n const { name, grade, course, studentProfile, numberInNameError } = formData || {};\n const { dummyProfileImageIndex } = studentProfile || {};\n const { demo_info: demoInfo } = trialHomeData;\n const { region_data: regionData } = demoInfo;\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n\n const grades = getGradesFromConfig(milestoneConfig);\n const dummyProfileImage = getDummyProfileImage(dummyProfileImageIndex);\n const courses = getCourseOptions(Number(grade));\n const hasRequiredFields = Boolean(name && grade && (courses.length > 0 ? course : true));\n\n const topicsToShow = useMemo(() => {\n if (!trialTopics) return [];\n\n return getTopicsToShow(trialTopics, { countryCode, grade, course });\n }, [countryCode, course, grade, trialTopics]);\n\n const handleNameChange = useCallback<\n NonNullable<InputHTMLAttributes<HTMLInputElement>['onChange']>\n >(\n event => {\n updateSlideConfig({\n name: event.target.value,\n numberInNameError: false,\n });\n },\n [updateSlideConfig],\n );\n\n const handleGradeChange = useCallback(\n (value: string) => {\n updateSlideConfig({ grade: value, course: '' });\n },\n [updateSlideConfig],\n );\n\n const handleCourseChange = useCallback(\n (value: string) => {\n updateSlideConfig({ course: value });\n },\n [updateSlideConfig],\n );\n\n useEffect(() => {\n onRemoveOptionalSlides?.(undefined, undefined, topicsToShow.length === 0);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [topicsToShow.length, grade, course]);\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: !hasRequiredFields, isLoading: false });\n }, [hasRequiredFields, updateButtonState]);\n\n return (\n <FlexView $justifyContent=\"center\" $alignItems=\"center\">\n <Separator height={60} />\n <SlideHeader marginBottom={100} />\n <FlexView\n $position=\"relative\"\n $width={RIGHT_PANEL_CONTENT_WIDTH - 100}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $flexGapX={2}\n $gutterX={1.5}\n $gapX={3.125}\n $background=\"WHITE_2\"\n $borderColor=\"BLACK_T_87\"\n $borderRadiusX={0.5}\n >\n <Styled.AbsoluteImage />\n <Image withLoader height={200} width={200} src={dummyProfileImage} borderColor=\"BLACK_1\" />\n\n <FlexView $flexGap={16}>\n <TextInput\n renderAs=\"primary\"\n label=\"Name\"\n placeholder=\"Student name\"\n value={name}\n type=\"text\"\n name=\"name\"\n shape=\"borderLess\"\n onChange={handleNameChange}\n width=\"216px\"\n isTransparent\n stickyLabel\n errorMessage={numberInNameError ? 'Please enter a valid name' : undefined}\n />\n <SelectInput\n renderAs=\"primary\"\n label=\"Grade\"\n value={grade}\n options={grades}\n shape=\"borderLess\"\n onChange={handleGradeChange}\n theme=\"dark\"\n widthX={10}\n isTransparent\n />\n {courses.length > 0 ? (\n <SelectInput\n width=\"216px\"\n renderAs=\"primary\"\n label=\"Course\"\n value={course}\n options={courses}\n shape=\"borderLess\"\n onChange={handleCourseChange}\n theme=\"dark\"\n isTransparent\n />\n ) : null}\n </FlexView>\n\n <Styled.MetaTextWrapper\n $renderAs=\"ub3-bold\"\n color=\"BLACK_T_60\"\n $align=\"right\"\n $width=\"100%\"\n >\n We’ll solve questions from the selected grade\n </Styled.MetaTextWrapper>\n </FlexView>\n </FlexView>\n );\n});\n\nexport default StudentInformation;\n"],"names":["StudentInformation","memo","formData","milestoneConfig","trialTopics","trialHomeData","updateSlideConfig","updateButtonState","onRemoveOptionalSlides","useTrialSessionContext","name","grade","course","studentProfile","numberInNameError","dummyProfileImageIndex","demoInfo","regionData","countryCode","grades","getGradesFromConfig","dummyProfileImage","getDummyProfileImage","courses","getCourseOptions","hasRequiredFields","topicsToShow","useMemo","getTopicsToShow","handleNameChange","useCallback","event","handleGradeChange","value","handleCourseChange","useEffect","jsxs","FlexView","jsx","Separator","SlideHeader","RIGHT_PANEL_CONTENT_WIDTH","Styled.AbsoluteImage","Image","TextInput","SelectInput","Styled.MetaTextWrapper"],"mappings":"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"}
1
+ {"version":3,"file":"student-info.js","sources":["../../../../../src/features/trial-session/comps/student-info/student-info.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, type InputHTMLAttributes } from 'react';\n\nimport { getGradesFromConfig } from '../../../milestone/create/milestone-create-helpers';\nimport Image from '../../../ui/image/image';\nimport SelectInput from '../../../ui/inputs/select-input/select-input';\nimport TextInput from '../../../ui/inputs/text-input/text-input';\nimport Separator from '../../../ui/separator/separator';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport SlideHeader from '../slide-header';\nimport * as Styled from './student-info-styled';\nimport FlexView from '../../../ui/layout/flex-view';\nimport { getDummyProfileImage } from '../student-profile/student-profile-utils';\nimport { RIGHT_PANEL_CONTENT_WIDTH } from '../../trial-session-constants';\nimport { getCourseOptions } from './student-info-helpers';\nimport { getTopicsToShow } from '../topic-selection/topic-selection-helpers';\n\nconst StudentInformation = memo(function StudentInformation() {\n const {\n formData,\n milestoneConfig,\n trialTopics,\n trialHomeData,\n updateSlideConfig,\n updateButtonState,\n onRemoveOptionalSlides,\n } = useTrialSessionContext();\n\n const { name, grade, course, studentProfile, numberInNameError } = formData || {};\n const { dummyProfileImageIndex } = studentProfile || {};\n const { demo_info: demoInfo } = trialHomeData;\n const { region_data: regionData } = demoInfo;\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n\n const grades = getGradesFromConfig(milestoneConfig);\n const dummyProfileImage = getDummyProfileImage(dummyProfileImageIndex);\n const courses = getCourseOptions(Number(grade));\n const hasRequiredFields = Boolean(name && grade && (courses.length > 0 ? course : true));\n\n const topicsToShow = useMemo(() => {\n if (!trialTopics) return [];\n\n return getTopicsToShow(trialTopics, { countryCode, grade, course });\n }, [countryCode, course, grade, trialTopics]);\n\n const handleNameChange = useCallback<\n NonNullable<InputHTMLAttributes<HTMLInputElement>['onChange']>\n >(\n event => {\n updateSlideConfig({\n name: event.target.value,\n numberInNameError: false,\n });\n },\n [updateSlideConfig],\n );\n\n const handleGradeChange = useCallback(\n (value: string) => {\n updateSlideConfig({ grade: value, course: '' });\n },\n [updateSlideConfig],\n );\n\n const handleCourseChange = useCallback(\n (value: string) => {\n updateSlideConfig({ course: value });\n },\n [updateSlideConfig],\n );\n\n useEffect(() => {\n if (grade && course) {\n onRemoveOptionalSlides?.(undefined, undefined, topicsToShow.length === 0);\n }\n }, [topicsToShow.length, grade, course, onRemoveOptionalSlides]);\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: !hasRequiredFields, isLoading: false });\n }, [hasRequiredFields, updateButtonState]);\n\n return (\n <FlexView $justifyContent=\"center\" $alignItems=\"center\">\n <Separator height={60} />\n <SlideHeader marginBottom={100} />\n <FlexView\n $position=\"relative\"\n $width={RIGHT_PANEL_CONTENT_WIDTH - 100}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $flexGapX={2}\n $gutterX={1.5}\n $gapX={3.125}\n $background=\"WHITE_2\"\n $borderColor=\"BLACK_T_87\"\n $borderRadiusX={0.5}\n >\n <Styled.AbsoluteImage />\n <Image withLoader height={200} width={200} src={dummyProfileImage} borderColor=\"BLACK_1\" />\n\n <FlexView $flexGap={16}>\n <TextInput\n renderAs=\"primary\"\n label=\"Name\"\n placeholder=\"Student name\"\n value={name}\n type=\"text\"\n name=\"name\"\n shape=\"borderLess\"\n onChange={handleNameChange}\n width=\"216px\"\n isTransparent\n stickyLabel\n errorMessage={numberInNameError ? 'Please enter a valid name' : undefined}\n />\n <SelectInput\n renderAs=\"primary\"\n label=\"Grade\"\n value={grade}\n options={grades}\n shape=\"borderLess\"\n onChange={handleGradeChange}\n theme=\"dark\"\n widthX={10}\n isTransparent\n />\n {courses.length > 0 ? (\n <SelectInput\n width=\"216px\"\n renderAs=\"primary\"\n label=\"Course\"\n value={course}\n options={courses}\n shape=\"borderLess\"\n onChange={handleCourseChange}\n theme=\"dark\"\n isTransparent\n />\n ) : null}\n </FlexView>\n\n <Styled.MetaTextWrapper\n $renderAs=\"ub3-bold\"\n color=\"BLACK_T_60\"\n $align=\"right\"\n $width=\"100%\"\n >\n We’ll solve questions from the selected grade\n </Styled.MetaTextWrapper>\n </FlexView>\n </FlexView>\n );\n});\n\nexport default StudentInformation;\n"],"names":["StudentInformation","memo","formData","milestoneConfig","trialTopics","trialHomeData","updateSlideConfig","updateButtonState","onRemoveOptionalSlides","useTrialSessionContext","name","grade","course","studentProfile","numberInNameError","dummyProfileImageIndex","demoInfo","regionData","countryCode","grades","getGradesFromConfig","dummyProfileImage","getDummyProfileImage","courses","getCourseOptions","hasRequiredFields","topicsToShow","useMemo","getTopicsToShow","handleNameChange","useCallback","event","handleGradeChange","value","handleCourseChange","useEffect","jsxs","FlexView","jsx","Separator","SlideHeader","RIGHT_PANEL_CONTENT_WIDTH","Styled.AbsoluteImage","Image","TextInput","SelectInput","Styled.MetaTextWrapper"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { jsxs as l, jsx as o } from "react/jsx-runtime";
2
+ import { memo as m, useCallback as p } from "react";
3
+ import { TopicWrapper as a, CheckIcon as s } from "./topic-selection-styled.js";
4
+ import d from "../../../ui/image/image.js";
5
+ import h from "../../../ui/text/text.js";
6
+ import { MAXIMUM_TOPICS_TO_SELECT as _ } from "../../trial-session-constants.js";
7
+ const T = m((r) => {
8
+ const { topic: e, selectedTopics: i, onClick: c } = r, t = i.includes(e.topic_name), n = p(() => {
9
+ c(e.topic_name);
10
+ }, [c, e.topic_name]);
11
+ return /* @__PURE__ */ l(
12
+ a,
13
+ {
14
+ $width: 200,
15
+ $height: 200,
16
+ $flexDirection: "column",
17
+ $alignItems: "center",
18
+ $justifyContent: "center",
19
+ $borderColor: t ? "BLACK" : "BLACK_T_38",
20
+ $background: t ? "WHITE_4" : "WHITE",
21
+ $flexGap: 2,
22
+ $position: "relative",
23
+ $selected: t,
24
+ $preventSelection: !t && i.length >= _,
25
+ onClick: n,
26
+ children: [
27
+ t ? /* @__PURE__ */ o(s, { color: "WHITE", height: 20, width: 20 }) : null,
28
+ /* @__PURE__ */ o(d, { width: 88, height: 88, src: e.topic_image_url, alt: e.topic_name }),
29
+ /* @__PURE__ */ o(h, { $renderAs: "ab2", children: e.topic_name })
30
+ ]
31
+ },
32
+ e.topic_name
33
+ );
34
+ });
35
+ T.displayName = "TopicItem";
36
+ export {
37
+ T as default
38
+ };
39
+ //# sourceMappingURL=topic-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topic-item.js","sources":["../../../../../src/features/trial-session/comps/topic-selection/topic-item.tsx"],"sourcesContent":["import { type FC, memo, useCallback } from 'react';\n\nimport * as Styled from './topic-selection-styled';\nimport Image from '../../../ui/image/image';\nimport Text from '../../../ui/text/text';\nimport { MAXIMUM_TOPICS_TO_SELECT } from '../../trial-session-constants';\nimport { type ITopicItemProps } from './topic-selection-types';\n\nconst TopicItem: FC<ITopicItemProps> = memo(props => {\n const { topic, selectedTopics, onClick } = props;\n const isSelected = selectedTopics.includes(topic.topic_name);\n\n const handleClick = useCallback(() => {\n onClick(topic.topic_name);\n }, [onClick, topic.topic_name]);\n\n return (\n <Styled.TopicWrapper\n key={topic.topic_name}\n $width={200}\n $height={200}\n $flexDirection=\"column\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderColor={isSelected ? 'BLACK' : 'BLACK_T_38'}\n $background={isSelected ? 'WHITE_4' : 'WHITE'}\n $flexGap={2}\n $position=\"relative\"\n $selected={isSelected}\n $preventSelection={!isSelected && selectedTopics.length >= MAXIMUM_TOPICS_TO_SELECT}\n onClick={handleClick}\n >\n {isSelected ? <Styled.CheckIcon color=\"WHITE\" height={20} width={20} /> : null}\n <Image width={88} height={88} src={topic.topic_image_url} alt={topic.topic_name} />\n <Text $renderAs=\"ab2\">{topic.topic_name}</Text>\n </Styled.TopicWrapper>\n );\n});\n\nTopicItem.displayName = 'TopicItem';\n\nexport default TopicItem;\n"],"names":["TopicItem","memo","props","topic","selectedTopics","onClick","isSelected","handleClick","useCallback","jsxs","Styled.TopicWrapper","MAXIMUM_TOPICS_TO_SELECT","jsx","Styled.CheckIcon","Image","Text"],"mappings":";;;;;;AAQM,MAAAA,IAAiCC,EAAK,CAASC,MAAA;AACnD,QAAM,EAAE,OAAAC,GAAO,gBAAAC,GAAgB,SAAAC,EAAA,IAAYH,GACrCI,IAAaF,EAAe,SAASD,EAAM,UAAU,GAErDI,IAAcC,EAAY,MAAM;AACpC,IAAAH,EAAQF,EAAM,UAAU;AAAA,EACvB,GAAA,CAACE,GAASF,EAAM,UAAU,CAAC;AAG5B,SAAA,gBAAAM;AAAA,IAACC;AAAAA,IAAA;AAAA,MAEC,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,cAAcJ,IAAa,UAAU;AAAA,MACrC,aAAaA,IAAa,YAAY;AAAA,MACtC,UAAU;AAAA,MACV,WAAU;AAAA,MACV,WAAWA;AAAA,MACX,mBAAmB,CAACA,KAAcF,EAAe,UAAUO;AAAA,MAC3D,SAASJ;AAAA,MAER,UAAA;AAAA,QAAaD,IAAA,gBAAAM,EAACC,GAAA,EAAiB,OAAM,SAAQ,QAAQ,IAAI,OAAO,GAAA,CAAI,IAAK;AAAA,QAC1E,gBAAAD,EAACE,GAAM,EAAA,OAAO,IAAI,QAAQ,IAAI,KAAKX,EAAM,iBAAiB,KAAKA,EAAM,WAAY,CAAA;AAAA,QAChF,gBAAAS,EAAAG,GAAA,EAAK,WAAU,OAAO,YAAM,YAAW;AAAA,MAAA;AAAA,IAAA;AAAA,IAhBnCZ,EAAM;AAAA,EAAA;AAmBjB,CAAC;AAEDH,EAAU,cAAc;"}
@@ -1,67 +1,48 @@
1
- import { jsxs as p, jsx as r } from "react/jsx-runtime";
2
- import { memo as I, useMemo as x, useCallback as w, useEffect as y } from "react";
3
- import f from "../../../ui/layout/flex-view.js";
4
- import E from "../../../ui/separator/separator.js";
5
- import D from "../slide-header/index.js";
6
- import { MAXIMUM_TOPICS_TO_SELECT as n, RIGHT_PANEL_CONTENT_WIDTH as H } from "../../trial-session-constants.js";
7
- import { TopicWrapper as A, CheckIcon as W } from "./topic-selection-styled.js";
8
- import b from "../../../ui/image/image.js";
9
- import j from "../../../ui/text/text.js";
10
- import { useTrialSessionContext as k } from "../../context/use-trial-session-context.js";
11
- import { getTopicsToShow as L } from "./topic-selection-helpers.js";
12
- const B = I(() => {
13
- const { formData: u, trialHomeData: h, trialTopics: i, updateSlideConfig: c, updateButtonState: s } = k(), { grade: a, course: l, selectedTopics: t = [] } = u || {}, { demo_info: T } = h, { region_data: g } = T, { opportunity_country: m = "US" } = g || {}, d = t.length === n, _ = x(() => i ? L(i, { countryCode: m, grade: a, course: l }) : [], [m, l, a, i]), $ = w(
14
- (e) => {
15
- const o = t.includes(e), C = o ? t.filter((S) => S !== e) : [...t, e];
16
- !o && t.length >= n || c({ selectedTopics: C });
1
+ import { jsxs as I, jsx as t } from "react/jsx-runtime";
2
+ import { memo as x, useMemo as y, useCallback as $, useEffect as D } from "react";
3
+ import d from "../../../ui/layout/flex-view.js";
4
+ import w from "../../../ui/separator/separator.js";
5
+ import E from "../slide-header/index.js";
6
+ import { MAXIMUM_TOPICS_TO_SELECT as p, RIGHT_PANEL_CONTENT_WIDTH as j } from "../../trial-session-constants.js";
7
+ import { useTrialSessionContext as H } from "../../context/use-trial-session-context.js";
8
+ import { getTopicsToShow as M } from "./topic-selection-helpers.js";
9
+ import N from "./topic-item.js";
10
+ const k = x(() => {
11
+ const { formData: f, trialHomeData: u, trialTopics: r, updateSlideConfig: i, updateButtonState: n } = H(), { grade: s, course: c, selectedTopics: e = [] } = f || {}, { demo_info: T } = u, { region_data: S } = T, { opportunity_country: a = "US" } = S || {}, l = e.length === p, g = y(() => r ? M(r, { countryCode: a, grade: s, course: c }) : [], [a, c, s, r]), h = $(
12
+ (o) => {
13
+ const m = e.includes(o), C = m ? e.filter((_) => _ !== o) : [...e, o];
14
+ !m && e.length >= p || i({ selectedTopics: C });
17
15
  },
18
- [t, c]
16
+ [e, i]
19
17
  );
20
- return y(() => {
21
- s("right", { isDisabled: !d, isLoading: !1 });
22
- }, [d, s]), /* @__PURE__ */ p(f, { $justifyContent: "center", $alignItems: "center", children: [
23
- /* @__PURE__ */ r(E, { height: 60 }),
24
- /* @__PURE__ */ r(D, {}),
25
- /* @__PURE__ */ r(
26
- f,
18
+ return D(() => {
19
+ n("right", { isDisabled: !l, isLoading: !1 });
20
+ }, [l, n]), /* @__PURE__ */ I(d, { $justifyContent: "center", $alignItems: "center", children: [
21
+ /* @__PURE__ */ t(w, { height: 60 }),
22
+ /* @__PURE__ */ t(E, {}),
23
+ /* @__PURE__ */ t(
24
+ d,
27
25
  {
28
- $width: H - 100,
26
+ $width: j - 100,
29
27
  $justifyContent: "center",
30
28
  $alignItems: "center",
31
29
  $flexDirection: "row",
32
30
  $flexWrap: !0,
33
- children: _.map((e) => {
34
- const o = t.includes(e.topic_name);
35
- return /* @__PURE__ */ p(
36
- A,
37
- {
38
- $width: 200,
39
- $height: 200,
40
- $flexDirection: "column",
41
- $alignItems: "center",
42
- $justifyContent: "center",
43
- $borderColor: o ? "BLACK" : "BLACK_T_38",
44
- $background: o ? "WHITE_4" : "WHITE",
45
- $flexGap: 2,
46
- $position: "relative",
47
- $selected: o,
48
- $preventSelection: !o && t.length >= n,
49
- onClick: () => $(e.topic_name),
50
- children: [
51
- o ? /* @__PURE__ */ r(W, { color: "WHITE", height: 20, width: 20 }) : null,
52
- /* @__PURE__ */ r(b, { width: 88, height: 88, src: e.topic_image_url, alt: e.topic_name }),
53
- /* @__PURE__ */ r(j, { $renderAs: "ab2", children: e.topic_name })
54
- ]
55
- },
56
- e.topic_name
57
- );
58
- })
31
+ children: g.map((o) => /* @__PURE__ */ t(
32
+ N,
33
+ {
34
+ selectedTopics: e,
35
+ topic: o,
36
+ onClick: h
37
+ },
38
+ o.topic_name
39
+ ))
59
40
  }
60
41
  )
61
42
  ] });
62
43
  });
63
- B.displayName = "TopicSelection";
44
+ k.displayName = "TopicSelection";
64
45
  export {
65
- B as default
46
+ k as default
66
47
  };
67
48
  //# sourceMappingURL=topic-selection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"topic-selection.js","sources":["../../../../../src/features/trial-session/comps/topic-selection/topic-selection.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo } from 'react';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport SlideHeader from '../slide-header';\nimport { MAXIMUM_TOPICS_TO_SELECT, RIGHT_PANEL_CONTENT_WIDTH } from '../../trial-session-constants';\nimport * as Styled from './topic-selection-styled';\nimport Image from '../../../ui/image/image';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { getTopicsToShow } from './topic-selection-helpers';\n\nconst TopicSelection = memo(() => {\n const { formData, trialHomeData, trialTopics, updateSlideConfig, updateButtonState } =\n useTrialSessionContext();\n const { grade, course, selectedTopics = [] } = formData || {};\n const { demo_info: demoInfo } = trialHomeData;\n const { region_data: regionData } = demoInfo;\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n\n const hasRequiredFields = Boolean(selectedTopics.length === MAXIMUM_TOPICS_TO_SELECT);\n\n const topicsToShow = useMemo(() => {\n if (!trialTopics) return [];\n\n return getTopicsToShow(trialTopics, { countryCode, grade, course });\n }, [countryCode, course, grade, trialTopics]);\n\n const handleClick = useCallback(\n (topicTitle: string) => {\n const isAlreadySelected = selectedTopics.includes(topicTitle);\n const updatedTopics = isAlreadySelected\n ? selectedTopics.filter(topic => topic !== topicTitle)\n : [...selectedTopics, topicTitle];\n\n if (!isAlreadySelected && selectedTopics.length >= MAXIMUM_TOPICS_TO_SELECT) return;\n\n updateSlideConfig({ selectedTopics: updatedTopics });\n },\n [selectedTopics, updateSlideConfig],\n );\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: !hasRequiredFields, isLoading: false });\n }, [hasRequiredFields, updateButtonState]);\n\n return (\n <FlexView $justifyContent=\"center\" $alignItems=\"center\">\n <Separator height={60} />\n <SlideHeader />\n <FlexView\n $width={RIGHT_PANEL_CONTENT_WIDTH - 100}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $flexDirection=\"row\"\n $flexWrap\n >\n {topicsToShow.map(topic => {\n const isSelected = selectedTopics.includes(topic.topic_name);\n\n return (\n <Styled.TopicWrapper\n key={topic.topic_name}\n $width={200}\n $height={200}\n $flexDirection=\"column\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderColor={isSelected ? 'BLACK' : 'BLACK_T_38'}\n $background={isSelected ? 'WHITE_4' : 'WHITE'}\n $flexGap={2}\n $position=\"relative\"\n $selected={isSelected}\n $preventSelection={!isSelected && selectedTopics.length >= MAXIMUM_TOPICS_TO_SELECT}\n onClick={() => handleClick(topic.topic_name)}\n >\n {isSelected ? <Styled.CheckIcon color=\"WHITE\" height={20} width={20} /> : null}\n <Image width={88} height={88} src={topic.topic_image_url} alt={topic.topic_name} />\n <Text $renderAs=\"ab2\">{topic.topic_name}</Text>\n </Styled.TopicWrapper>\n );\n })}\n </FlexView>\n </FlexView>\n );\n});\n\nTopicSelection.displayName = 'TopicSelection';\n\nexport default TopicSelection;\n"],"names":["TopicSelection","memo","formData","trialHomeData","trialTopics","updateSlideConfig","updateButtonState","useTrialSessionContext","grade","course","selectedTopics","demoInfo","regionData","countryCode","hasRequiredFields","MAXIMUM_TOPICS_TO_SELECT","topicsToShow","useMemo","getTopicsToShow","handleClick","useCallback","topicTitle","isAlreadySelected","updatedTopics","topic","useEffect","jsxs","FlexView","jsx","Separator","SlideHeader","RIGHT_PANEL_CONTENT_WIDTH","isSelected","Styled.TopicWrapper","Styled.CheckIcon","Image","Text"],"mappings":";;;;;;;;;;;AAYM,MAAAA,IAAiBC,EAAK,MAAM;AAChC,QAAM,EAAE,UAAAC,GAAU,eAAAC,GAAe,aAAAC,GAAa,mBAAAC,GAAmB,mBAAAC,EAAA,IAC/DC,KACI,EAAE,OAAAC,GAAO,QAAAC,GAAQ,gBAAAC,IAAiB,CAAA,EAAG,IAAIR,KAAY,IACrD,EAAE,WAAWS,EAAa,IAAAR,GAC1B,EAAE,aAAaS,EAAe,IAAAD,GAC9B,EAAE,qBAAqBE,IAAc,KAAK,IAAID,KAAc,CAAA,GAE5DE,IAA4BJ,EAAe,WAAWK,GAEtDC,IAAeC,EAAQ,MACtBb,IAEEc,EAAgBd,GAAa,EAAE,aAAAS,GAAa,OAAAL,GAAO,QAAAC,GAAQ,IAFzC,IAGxB,CAACI,GAAaJ,GAAQD,GAAOJ,CAAW,CAAC,GAEtCe,IAAcC;AAAA,IAClB,CAACC,MAAuB;AAChB,YAAAC,IAAoBZ,EAAe,SAASW,CAAU,GACtDE,IAAgBD,IAClBZ,EAAe,OAAO,CAAAc,MAASA,MAAUH,CAAU,IACnD,CAAC,GAAGX,GAAgBW,CAAU;AAElC,MAAI,CAACC,KAAqBZ,EAAe,UAAUK,KAEjCV,EAAA,EAAE,gBAAgBkB,EAAA,CAAe;AAAA,IACrD;AAAA,IACA,CAACb,GAAgBL,CAAiB;AAAA,EAAA;AAGpC,SAAAoB,EAAU,MAAM;AACd,IAAAnB,EAAkB,SAAS,EAAE,YAAY,CAACQ,GAAmB,WAAW,IAAO;AAAA,EAAA,GAC9E,CAACA,GAAmBR,CAAiB,CAAC,GAGtC,gBAAAoB,EAAAC,GAAA,EAAS,iBAAgB,UAAS,aAAY,UAC7C,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,sBACtBC,GAAY,EAAA;AAAA,IACb,gBAAAF;AAAA,MAACD;AAAA,MAAA;AAAA,QACC,QAAQI,IAA4B;AAAA,QACpC,iBAAgB;AAAA,QAChB,aAAY;AAAA,QACZ,gBAAe;AAAA,QACf,WAAS;AAAA,QAER,UAAAf,EAAa,IAAI,CAASQ,MAAA;AACzB,gBAAMQ,IAAatB,EAAe,SAASc,EAAM,UAAU;AAGzD,iBAAA,gBAAAE;AAAA,YAACO;AAAAA,YAAA;AAAA,cAEC,QAAQ;AAAA,cACR,SAAS;AAAA,cACT,gBAAe;AAAA,cACf,aAAY;AAAA,cACZ,iBAAgB;AAAA,cAChB,cAAcD,IAAa,UAAU;AAAA,cACrC,aAAaA,IAAa,YAAY;AAAA,cACtC,UAAU;AAAA,cACV,WAAU;AAAA,cACV,WAAWA;AAAA,cACX,mBAAmB,CAACA,KAActB,EAAe,UAAUK;AAAA,cAC3D,SAAS,MAAMI,EAAYK,EAAM,UAAU;AAAA,cAE1C,UAAA;AAAA,gBAAaQ,IAAA,gBAAAJ,EAACM,GAAA,EAAiB,OAAM,SAAQ,QAAQ,IAAI,OAAO,GAAA,CAAI,IAAK;AAAA,gBAC1E,gBAAAN,EAACO,GAAM,EAAA,OAAO,IAAI,QAAQ,IAAI,KAAKX,EAAM,iBAAiB,KAAKA,EAAM,WAAY,CAAA;AAAA,gBAChF,gBAAAI,EAAAQ,GAAA,EAAK,WAAU,OAAO,YAAM,YAAW;AAAA,cAAA;AAAA,YAAA;AAAA,YAhBnCZ,EAAM;AAAA,UAAA;AAAA,QAiBb,CAEH;AAAA,MAAA;AAAA,IACH;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC;AAEDxB,EAAe,cAAc;"}
1
+ {"version":3,"file":"topic-selection.js","sources":["../../../../../src/features/trial-session/comps/topic-selection/topic-selection.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo } from 'react';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport SlideHeader from '../slide-header';\nimport { MAXIMUM_TOPICS_TO_SELECT, RIGHT_PANEL_CONTENT_WIDTH } from '../../trial-session-constants';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { getTopicsToShow } from './topic-selection-helpers';\nimport TopicItem from './topic-item';\n\nconst TopicSelection = memo(() => {\n const { formData, trialHomeData, trialTopics, updateSlideConfig, updateButtonState } =\n useTrialSessionContext();\n const { grade, course, selectedTopics = [] } = formData || {};\n const { demo_info: demoInfo } = trialHomeData;\n const { region_data: regionData } = demoInfo;\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n\n const hasRequiredFields = Boolean(selectedTopics.length === MAXIMUM_TOPICS_TO_SELECT);\n\n const topicsToShow = useMemo(() => {\n if (!trialTopics) return [];\n\n return getTopicsToShow(trialTopics, { countryCode, grade, course });\n }, [countryCode, course, grade, trialTopics]);\n\n const handleClick = useCallback(\n (topicTitle: string) => {\n const isAlreadySelected = selectedTopics.includes(topicTitle);\n const updatedTopics = isAlreadySelected\n ? selectedTopics.filter(topic => topic !== topicTitle)\n : [...selectedTopics, topicTitle];\n\n if (!isAlreadySelected && selectedTopics.length >= MAXIMUM_TOPICS_TO_SELECT) return;\n\n updateSlideConfig({ selectedTopics: updatedTopics });\n },\n [selectedTopics, updateSlideConfig],\n );\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: !hasRequiredFields, isLoading: false });\n }, [hasRequiredFields, updateButtonState]);\n\n return (\n <FlexView $justifyContent=\"center\" $alignItems=\"center\">\n <Separator height={60} />\n <SlideHeader />\n <FlexView\n $width={RIGHT_PANEL_CONTENT_WIDTH - 100}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $flexDirection=\"row\"\n $flexWrap\n >\n {topicsToShow.map(topic => (\n <TopicItem\n key={topic.topic_name}\n selectedTopics={selectedTopics}\n topic={topic}\n onClick={handleClick}\n />\n ))}\n </FlexView>\n </FlexView>\n );\n});\n\nTopicSelection.displayName = 'TopicSelection';\n\nexport default TopicSelection;\n"],"names":["TopicSelection","memo","formData","trialHomeData","trialTopics","updateSlideConfig","updateButtonState","useTrialSessionContext","grade","course","selectedTopics","demoInfo","regionData","countryCode","hasRequiredFields","MAXIMUM_TOPICS_TO_SELECT","topicsToShow","useMemo","getTopicsToShow","handleClick","useCallback","topicTitle","isAlreadySelected","updatedTopics","topic","useEffect","jsxs","FlexView","jsx","Separator","SlideHeader","RIGHT_PANEL_CONTENT_WIDTH","TopicItem"],"mappings":";;;;;;;;;AAUM,MAAAA,IAAiBC,EAAK,MAAM;AAChC,QAAM,EAAE,UAAAC,GAAU,eAAAC,GAAe,aAAAC,GAAa,mBAAAC,GAAmB,mBAAAC,EAAA,IAC/DC,KACI,EAAE,OAAAC,GAAO,QAAAC,GAAQ,gBAAAC,IAAiB,CAAA,EAAG,IAAIR,KAAY,IACrD,EAAE,WAAWS,EAAa,IAAAR,GAC1B,EAAE,aAAaS,EAAe,IAAAD,GAC9B,EAAE,qBAAqBE,IAAc,KAAK,IAAID,KAAc,CAAA,GAE5DE,IAA4BJ,EAAe,WAAWK,GAEtDC,IAAeC,EAAQ,MACtBb,IAEEc,EAAgBd,GAAa,EAAE,aAAAS,GAAa,OAAAL,GAAO,QAAAC,GAAQ,IAFzC,IAGxB,CAACI,GAAaJ,GAAQD,GAAOJ,CAAW,CAAC,GAEtCe,IAAcC;AAAA,IAClB,CAACC,MAAuB;AAChB,YAAAC,IAAoBZ,EAAe,SAASW,CAAU,GACtDE,IAAgBD,IAClBZ,EAAe,OAAO,CAAAc,MAASA,MAAUH,CAAU,IACnD,CAAC,GAAGX,GAAgBW,CAAU;AAElC,MAAI,CAACC,KAAqBZ,EAAe,UAAUK,KAEjCV,EAAA,EAAE,gBAAgBkB,EAAA,CAAe;AAAA,IACrD;AAAA,IACA,CAACb,GAAgBL,CAAiB;AAAA,EAAA;AAGpC,SAAAoB,EAAU,MAAM;AACd,IAAAnB,EAAkB,SAAS,EAAE,YAAY,CAACQ,GAAmB,WAAW,IAAO;AAAA,EAAA,GAC9E,CAACA,GAAmBR,CAAiB,CAAC,GAGtC,gBAAAoB,EAAAC,GAAA,EAAS,iBAAgB,UAAS,aAAY,UAC7C,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,sBACtBC,GAAY,EAAA;AAAA,IACb,gBAAAF;AAAA,MAACD;AAAA,MAAA;AAAA,QACC,QAAQI,IAA4B;AAAA,QACpC,iBAAgB;AAAA,QAChB,aAAY;AAAA,QACZ,gBAAe;AAAA,QACf,WAAS;AAAA,QAER,UAAAf,EAAa,IAAI,CAChBQ,MAAA,gBAAAI;AAAA,UAACI;AAAA,UAAA;AAAA,YAEC,gBAAAtB;AAAA,YACA,OAAAc;AAAA,YACA,SAASL;AAAA,UAAA;AAAA,UAHJK,EAAM;AAAA,QAAA,CAKd;AAAA,MAAA;AAAA,IACH;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC;AAEDxB,EAAe,cAAc;"}
@@ -1,15 +1,15 @@
1
1
  import { createContext as e } from "react";
2
- import { DEFAULT_BUTTON_STATE as t } from "../trial-session-constants.js";
3
- const s = e({
2
+ import { DemoType as t, DEFAULT_BUTTON_STATE as o } from "../trial-session-constants.js";
3
+ const i = e({
4
4
  isTeacher: !1,
5
5
  slideConfig: {},
6
6
  formData: void 0,
7
- demoType: "",
7
+ demoType: t.TRIAL_V3,
8
8
  teacherClassroomId: "",
9
9
  milestoneConfig: {},
10
10
  updateSlideConfig: () => {
11
11
  },
12
- buttonState: t,
12
+ buttonState: o,
13
13
  updateButtonState: () => {
14
14
  },
15
15
  teacherId: "",
@@ -26,6 +26,6 @@ const s = e({
26
26
  classDuration: 0
27
27
  });
28
28
  export {
29
- s as default
29
+ i as default
30
30
  };
31
31
  //# sourceMappingURL=trial-session-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trial-session-context.js","sources":["../../../../src/features/trial-session/context/trial-session-context.tsx"],"sourcesContent":["import { createContext } from 'react';\n\nimport type { IMilestoneConfig } from '../../milestone/create/milestone-create-types';\nimport type { ITrialCircleGameParams } from '../comps/trial-circle-game/trial-circle-game-types';\nimport { DEFAULT_BUTTON_STATE } from '../trial-session-constants';\nimport type {\n IClassTimeAlertConfig,\n ISlide,\n ITrialHomeData,\n ITrialSessionContext,\n} from '../trial-session-types';\n\nconst TrialSessionContext = createContext<ITrialSessionContext>({\n isTeacher: false,\n slideConfig: {} as ISlide,\n formData: undefined,\n demoType: '',\n teacherClassroomId: '',\n milestoneConfig: {} as IMilestoneConfig,\n updateSlideConfig: () => undefined,\n buttonState: DEFAULT_BUTTON_STATE,\n updateButtonState: () => undefined,\n teacherId: '',\n studentId: '',\n trialHomeData: {} as ITrialHomeData,\n openEndClassModal: () => undefined,\n studentAbsentInClass: false,\n circleGames: {} as ITrialCircleGameParams,\n trialGameUrl: '',\n handleInfoMessage: () => undefined,\n classTimeAlertConfig: {} as IClassTimeAlertConfig,\n classDuration: 0,\n});\n\nexport default TrialSessionContext;\n"],"names":["TrialSessionContext","createContext","DEFAULT_BUTTON_STATE"],"mappings":";;AAYA,MAAMA,IAAsBC,EAAoC;AAAA,EAC9D,WAAW;AAAA,EACX,aAAa,CAAC;AAAA,EACd,UAAU;AAAA,EACV,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,iBAAiB,CAAC;AAAA,EAClB,mBAAmB,MAAM;AAAA;AAAA,EACzB,aAAaC;AAAA,EACb,mBAAmB,MAAM;AAAA;AAAA,EACzB,WAAW;AAAA,EACX,WAAW;AAAA,EACX,eAAe,CAAC;AAAA,EAChB,mBAAmB,MAAM;AAAA;AAAA,EACzB,sBAAsB;AAAA,EACtB,aAAa,CAAC;AAAA,EACd,cAAc;AAAA,EACd,mBAAmB,MAAM;AAAA;AAAA,EACzB,sBAAsB,CAAC;AAAA,EACvB,eAAe;AACjB,CAAC;"}
1
+ {"version":3,"file":"trial-session-context.js","sources":["../../../../src/features/trial-session/context/trial-session-context.tsx"],"sourcesContent":["import { createContext } from 'react';\n\nimport type { IMilestoneConfig } from '../../milestone/create/milestone-create-types';\nimport type { ITrialCircleGameParams } from '../comps/trial-circle-game/trial-circle-game-types';\nimport { DEFAULT_BUTTON_STATE, DemoType } from '../trial-session-constants';\nimport type {\n IClassTimeAlertConfig,\n ISlide,\n ITrialHomeData,\n ITrialSessionContext,\n} from '../trial-session-types';\n\nconst TrialSessionContext = createContext<ITrialSessionContext>({\n isTeacher: false,\n slideConfig: {} as ISlide,\n formData: undefined,\n demoType: DemoType.TRIAL_V3,\n teacherClassroomId: '',\n milestoneConfig: {} as IMilestoneConfig,\n updateSlideConfig: () => undefined,\n buttonState: DEFAULT_BUTTON_STATE,\n updateButtonState: () => undefined,\n teacherId: '',\n studentId: '',\n trialHomeData: {} as ITrialHomeData,\n openEndClassModal: () => undefined,\n studentAbsentInClass: false,\n circleGames: {} as ITrialCircleGameParams,\n trialGameUrl: '',\n handleInfoMessage: () => undefined,\n classTimeAlertConfig: {} as IClassTimeAlertConfig,\n classDuration: 0,\n});\n\nexport default TrialSessionContext;\n"],"names":["TrialSessionContext","createContext","DemoType","DEFAULT_BUTTON_STATE"],"mappings":";;AAYA,MAAMA,IAAsBC,EAAoC;AAAA,EAC9D,WAAW;AAAA,EACX,aAAa,CAAC;AAAA,EACd,UAAU;AAAA,EACV,UAAUC,EAAS;AAAA,EACnB,oBAAoB;AAAA,EACpB,iBAAiB,CAAC;AAAA,EAClB,mBAAmB,MAAM;AAAA;AAAA,EACzB,aAAaC;AAAA,EACb,mBAAmB,MAAM;AAAA;AAAA,EACzB,WAAW;AAAA,EACX,WAAW;AAAA,EACX,eAAe,CAAC;AAAA,EAChB,mBAAmB,MAAM;AAAA;AAAA,EACzB,sBAAsB;AAAA,EACtB,aAAa,CAAC;AAAA,EACd,cAAc;AAAA,EACd,mBAAmB,MAAM;AAAA;AAAA,EACzB,sBAAsB,CAAC;AAAA,EACvB,eAAe;AACjB,CAAC;"}
@@ -1,262 +1,258 @@
1
- import { useCallback as i, useEffect as re } from "react";
1
+ import { useCallback as r, useEffect as re } from "react";
2
2
  import { COURSE_STREAMS as ce } from "../../milestone/constants.js";
3
3
  import { useMilestoneBulkPost as le } from "../../milestone/create/api/milestone-bulk.js";
4
4
  import { usePostStudentPreferences as de } from "../api/course-stream.js";
5
5
  import { usePatchStudentInformation as me } from "../api/student-information.js";
6
6
  import { usePostTeacherAvailability as fe } from "../api/teacher-availability.js";
7
7
  import { usePatchTrialHome as ue } from "../api/trial-home.js";
8
- import { useTrialSessionContext as _e } from "../context/use-trial-session-context.js";
9
- import { getFormattedPreferences as Y, getWeekdayAndStartTimeFromPreference as pe, getFormattedStudentPersonalizedPreference as Ee } from "../helper.js";
10
- import { TrialPageId as t, DEFAULT_BUTTON_STATE as _ } from "../trial-session-constants.js";
11
- import $ from "../../../node_modules/uuid/dist/esm-browser/v4.js";
12
- const ve = () => {
8
+ import { useTrialSessionContext as pe } from "../context/use-trial-session-context.js";
9
+ import { getFormattedPreferences as X, getWeekdayAndStartTimeFromPreference as _e, getFormattedStudentPersonalizedPreference as Ee } from "../helper.js";
10
+ import { TrialPageId as t, DEFAULT_BUTTON_STATE as p, CIRCLE_GAME_SLIDES as he } from "../trial-session-constants.js";
11
+ import Y from "../../../node_modules/uuid/dist/esm-browser/v4.js";
12
+ const Re = () => {
13
13
  const {
14
14
  updateSlideConfig: a,
15
- slideConfig: ee,
16
- demoType: d,
17
- formData: te,
15
+ slideConfig: $,
16
+ demoType: m,
17
+ formData: ee,
18
18
  updateButtonState: s,
19
- teacherId: r,
20
- studentId: c,
19
+ teacherId: c,
20
+ studentId: l,
21
21
  milestoneConfig: D,
22
- handleInfoMessage: I,
23
- onTrialInformationUpdate: C,
22
+ handleInfoMessage: L,
23
+ onTrialInformationUpdate: T,
24
24
  trialHomeData: v,
25
- worksheetNavigationPanel: R
26
- } = _e(), { nextPage: oe, id: m } = ee || {}, { demo_info: se } = v, { stream: G, region_data: ae } = se, { opportunity_country: x = "US" } = ae || {}, { pageId: n } = oe || {}, {
27
- name: L,
28
- grade: E,
29
- goals: U,
30
- curriculum: S,
25
+ worksheetNavigationPanel: C
26
+ } = pe(), { nextPage: te, id: f } = $ || {}, { demo_info: oe } = v, { stream: y, region_data: se } = oe, { opportunity_country: G = "US" } = se || {}, { pageId: i } = te || {}, {
27
+ name: h,
28
+ grade: _,
29
+ goals: x,
30
+ curriculum: I,
31
31
  selectedTopics: z = [],
32
- studentTimezone: g,
33
- preferences: P = [],
32
+ studentTimezone: S,
33
+ preferences: g = [],
34
34
  personalizedLevel: M = [],
35
- personalizedFocus: V = [],
36
- personalizedBehaviors: B = [],
37
- personalizedObjectives: F = [],
38
- personalizedPosition: w = []
39
- } = te || {}, k = n === t.LEARNING_PLAN && d === "TRIAL_V3_3", l = i(() => {
35
+ personalizedFocus: U = [],
36
+ personalizedBehaviors: V = [],
37
+ personalizedObjectives: B = [],
38
+ personalizedPosition: F = []
39
+ } = ee || {}, R = i === t.LEARNING_PLAN && m === "TRIAL_V3_3", d = r(() => {
40
40
  s("both", {
41
41
  left: { isDisabled: !0, isLoading: !1 },
42
42
  right: { isDisabled: !0, isLoading: !0 }
43
43
  });
44
- }, [s]), b = (o) => {
44
+ }, [s]), P = (o) => {
45
45
  if (!o) {
46
46
  const e = {};
47
- (n === t.CIRCLE_GAME || n === t.CIRCLE_PUZZLE || n === t.CIRCLE_SKILL) && (e.matchmakingId = $(), e.showCircleGameScreen = !0), a({ id: n, ...e });
47
+ (i === t.CIRCLE_GAME || i === t.CIRCLE_PUZZLE || i === t.CIRCLE_SKILL) && (e.matchmakingId = Y(), e.showCircleGameScreen = !0), a({ id: i, ...e });
48
48
  }
49
- s("both", _), m === t.LEARNING_LEVEL && (C == null || C());
50
- }, { patch: A } = ue({ onComplete: b }), { patch: H } = me({
51
- onComplete: b,
52
- triggerOnComplete: !k
53
- }), { post: W } = le({
54
- onComplete: b
55
- }), { post: K } = de({
56
- onComplete: b
57
- }), ne = i(
49
+ s("both", p), f === t.LEARNING_LEVEL && (T == null || T());
50
+ }, { patch: b } = ue({ onComplete: P }), { patch: w } = me({
51
+ onComplete: P,
52
+ triggerOnComplete: !R
53
+ }), { post: H } = le({
54
+ onComplete: P
55
+ }), { post: W } = de({
56
+ onComplete: P
57
+ }), ae = r(
58
58
  (o, e) => {
59
- if ((e ?? []).some((u) => !u.is_available)) {
60
- const p = (e ?? []).filter((y) => !y.is_available).map((y) => y.reason).join(`
59
+ if ((e ?? []).some((n) => !n.is_available)) {
60
+ const ie = (e ?? []).filter((O) => !O.is_available).map((O) => O.reason).join(`
61
61
  `);
62
- I == null || I({ message: p, position: "bottom" }), s("both", _);
62
+ L == null || L({ message: ie, position: "bottom" }), s("both", p);
63
63
  return;
64
64
  }
65
- const N = Y(P, g);
66
- N.length > 0 ? A("trial-v3-patch", {
65
+ const N = X(g, S);
66
+ N.length > 0 ? b("trial-v3-patch", {
67
67
  action: "UPDATE_DEMO",
68
68
  action_data: {
69
69
  trial_details: {
70
70
  selected_regular_slots: N
71
71
  }
72
72
  },
73
- teacher_id: r,
74
- student_id: c
75
- }) : s("both", _);
73
+ teacher_id: c,
74
+ student_id: l
75
+ }) : s("both", p);
76
76
  },
77
77
  [
78
- I,
79
- A,
80
- P,
81
- c,
78
+ L,
79
+ b,
82
80
  g,
83
- r,
81
+ l,
82
+ S,
83
+ c,
84
84
  s
85
85
  ]
86
- ), { post: Z } = fe({
87
- onComplete: ne
88
- }), h = i(() => {
86
+ ), { post: K } = fe({
87
+ onComplete: ae
88
+ }), E = r(() => {
89
89
  const o = {
90
- course_stream: G,
91
- grade: E,
92
- teacher_id: r,
93
- board: S,
94
- goals: U,
95
- delete_existing_draft: d === "TRIAL_V3_3"
90
+ course_stream: y,
91
+ grade: _,
92
+ teacher_id: c,
93
+ board: I,
94
+ goals: x,
95
+ delete_existing_draft: m === "TRIAL_V3_3"
96
96
  };
97
- l(), W(o, {
98
- studentId: c
97
+ d(), H(o, {
98
+ studentId: l
99
99
  });
100
100
  }, [
101
- S,
101
+ I,
102
+ m,
102
103
  d,
104
+ x,
105
+ _,
106
+ H,
107
+ y,
103
108
  l,
104
- U,
105
- E,
106
- W,
107
- G,
108
- c,
109
- r
110
- ]), j = i(() => {
111
- var u;
112
- const [o, e] = ((u = L == null ? void 0 : L.trim()) == null ? void 0 : u.split(" ")) || [], f = {
109
+ c
110
+ ]), j = r(() => {
111
+ var n;
112
+ const [o, e] = ((n = h == null ? void 0 : h.trim()) == null ? void 0 : n.split(" ")) || [], u = {
113
113
  first_name: o,
114
114
  last_name: e,
115
- grade: E,
116
- board: S,
117
- demo_type: d,
118
- teacher_id: r,
119
- country_alpha_2: x
115
+ grade: _,
116
+ board: I,
117
+ demo_type: m,
118
+ teacher_id: c,
119
+ country_alpha_2: G
120
120
  };
121
- /\d/.test(L || "") ? a({ numberInNameError: !0 }) : (l(), H(c, f), k && h());
121
+ /\d/.test(h || "") ? a({ numberInNameError: !0 }) : (d(), w(l, u), R && E());
122
122
  }, [
123
- L,
124
- E,
125
- S,
126
- d,
127
- r,
128
- x,
123
+ h,
124
+ _,
125
+ I,
126
+ m,
127
+ c,
128
+ G,
129
129
  a,
130
+ d,
131
+ w,
130
132
  l,
131
- H,
132
- c,
133
- k,
134
- h
135
- ]), q = i(() => {
136
- const o = Y(P, g), e = pe(o);
133
+ R,
134
+ E
135
+ ]), Z = r(() => {
136
+ const o = X(g, S), e = _e(o);
137
137
  if (o.length > 0) {
138
- const f = {
139
- teacher_id: r,
138
+ const u = {
139
+ teacher_id: c,
140
140
  session_list: e
141
141
  };
142
- l(), Z(f);
142
+ d(), K(u);
143
143
  } else
144
- a({ id: n }), s("both", _);
144
+ a({ id: i }), s("both", p);
145
145
  }, [
146
- P,
147
146
  g,
148
- r,
149
- Z,
150
- l,
147
+ S,
148
+ c,
149
+ K,
150
+ d,
151
151
  a,
152
- n,
152
+ i,
153
153
  s
154
- ]), J = i(() => {
155
- l(), A("trial-v3-patch", {
154
+ ]), q = r(() => {
155
+ d(), b("trial-v3-patch", {
156
156
  action: "UPDATE_DEMO",
157
157
  action_data: { selected_topics: z },
158
- teacher_id: r,
159
- student_id: c
158
+ teacher_id: c,
159
+ student_id: l
160
160
  });
161
- }, [z, l, A, r, c]), Q = i(
161
+ }, [z, d, b, c, l]), J = r(
162
162
  (o) => {
163
- d === "TRIAL_V3" ? h() : o && (a({ id: o }), s("both", _));
163
+ m === "TRIAL_V3" ? E() : o && (a({ id: o }), s("both", p));
164
164
  },
165
- [d, h, s, a]
166
- ), T = i(() => {
165
+ [m, E, s, a]
166
+ ), A = r(() => {
167
167
  const e = { preferences: Ee(D, [
168
168
  ...M,
169
+ ...U,
169
170
  ...V,
170
171
  ...B,
171
- ...F,
172
- ...w
173
- ]), grade: E }, f = { stream: ce.MATH, studentId: c };
174
- l(), K(e, f);
172
+ ...F
173
+ ]), grade: _ }, u = { stream: ce.MATH, studentId: l };
174
+ d(), W(e, u);
175
175
  }, [
176
- E,
177
- c,
176
+ _,
177
+ l,
178
178
  D,
179
179
  M,
180
+ U,
180
181
  V,
181
182
  B,
182
183
  F,
183
- w,
184
- l,
185
- K
186
- ]), X = i(() => {
187
- !!v.pages.find((e) => e.id === t.LEARNING_LEVEL) ? (a({ id: n }), s("both", _)) : T();
184
+ d,
185
+ W
186
+ ]), Q = r(() => {
187
+ !!v.pages.find((e) => e.id === t.LEARNING_LEVEL) ? (a({ id: i }), s("both", p)) : A();
188
188
  }, [
189
- n,
189
+ i,
190
190
  v,
191
191
  a,
192
192
  s,
193
- T
194
- ]), O = i(
193
+ A
194
+ ]), k = r(
195
195
  (o, e) => {
196
196
  if (!a) return;
197
- const f = [
198
- t.CIRCLE_GAME,
199
- t.CIRCLE_PUZZLE,
200
- t.CIRCLE_SKILL
201
- ], N = m === t.STUDENT_PROFILE, u = m === t.LEARNING_PLAN, p = { numberInNameError: !1 };
202
- if (m === t.LEARNING_PLAN && (p.chapterId = void 0), e && f.includes(e) && (p.matchmakingId = $(), p.showCircleGameScreen = !0), o === "prev" && (a({
197
+ const u = f === t.STUDENT_PROFILE, N = f === t.LEARNING_PLAN, n = { numberInNameError: !1 };
198
+ if (f === t.LEARNING_PLAN && (n.chapterId = void 0), e && he.includes(e) && (n.matchmakingId = Y(), n.showCircleGameScreen = !0), o === "prev" && (a({
203
199
  id: e,
204
- ...N && { studentProfile: void 0 },
205
- ...u && {
200
+ ...u && { studentProfile: void 0 },
201
+ ...N && {
206
202
  chapterId: void 0
207
203
  },
208
- ...p
209
- }), s("both", _)), o === "next")
210
- switch (m) {
204
+ ...n
205
+ }), s("both", p)), o === "next")
206
+ switch (f) {
211
207
  case t.STUDENT_INFORMATION:
212
208
  case t.SCHOOL_GOALS:
213
209
  j();
214
210
  break;
215
211
  case t.LEARNING_WORKSHEET:
216
- Q(e);
212
+ J(e);
217
213
  break;
218
214
  case t.CLASS_PREFERENCE:
219
- q();
215
+ Z();
220
216
  break;
221
217
  case t.TOPIC_SELECTION:
222
- J();
218
+ q();
223
219
  break;
224
220
  case t.STUDENT_INTRO:
225
- X();
221
+ Q();
226
222
  break;
227
223
  case t.LEARNING_LEVEL:
228
- T();
224
+ A();
229
225
  break;
230
226
  default: {
231
- if (e === t.LEARNING_PLAN && d !== "TRIAL_V3") {
232
- h();
227
+ if (e === t.LEARNING_PLAN && m !== "TRIAL_V3") {
228
+ E();
233
229
  return;
234
230
  }
235
- a({ id: e, ...p }), s("both", _);
231
+ a({ id: e, ...n }), s("both", p);
236
232
  }
237
233
  }
238
234
  },
239
235
  [
240
236
  a,
241
- m,
237
+ f,
242
238
  s,
243
- d,
244
- h,
239
+ m,
240
+ E,
245
241
  j,
246
- Q,
247
- q,
248
242
  J,
249
- X,
250
- T
243
+ Z,
244
+ q,
245
+ Q,
246
+ A
251
247
  ]
252
- ), ie = i(() => {
253
- !R && m === t.LEARNING_WORKSHEET && O("next", n);
254
- }, [m, O, n, R]);
248
+ ), ne = r(() => {
249
+ !C && f === t.LEARNING_WORKSHEET && k("next", i);
250
+ }, [f, k, i, C]);
255
251
  return re(() => {
256
- ie();
257
- }, [R]), { handleNavigation: O };
252
+ ne();
253
+ }, [C]), { handleNavigation: k };
258
254
  };
259
255
  export {
260
- ve as useTrialSessionNavigation
256
+ Re as useTrialSessionNavigation
261
257
  };
262
258
  //# sourceMappingURL=use-trial-session-navigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-trial-session-navigation.js","sources":["../../../../src/features/trial-session/hooks/use-trial-session-navigation.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { COURSE_STREAMS } from '../../milestone/constants';\nimport { useMilestoneBulkPost } from '../../milestone/create/api/milestone-bulk';\nimport { usePostStudentPreferences } from '../api/course-stream';\nimport { usePatchStudentInformation } from '../api/student-information';\nimport {\n usePostTeacherAvailability,\n type TTeacherAvailabilityResponse,\n} from '../api/teacher-availability';\nimport { usePatchTrialHome } from '../api/trial-home';\nimport { useTrialSessionContext } from '../context/use-trial-session-context';\nimport {\n getFormattedPreferences,\n getFormattedStudentPersonalizedPreference,\n getWeekdayAndStartTimeFromPreference,\n} from '../helper';\nimport { DEFAULT_BUTTON_STATE, TrialPageId } from '../trial-session-constants';\nimport type { ITrialSessionFormFields } from '../trial-session-types';\n\nconst useTrialSessionNavigation = () => {\n const {\n updateSlideConfig,\n slideConfig,\n demoType,\n formData,\n updateButtonState,\n teacherId,\n studentId,\n milestoneConfig,\n handleInfoMessage,\n onTrialInformationUpdate,\n trialHomeData,\n worksheetNavigationPanel,\n } = useTrialSessionContext();\n const { nextPage, id: currentPageId } = slideConfig || {};\n const { demo_info: demoInfo } = trialHomeData;\n const { stream, region_data: regionData } = demoInfo;\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n const { pageId: nextPageId } = nextPage || {};\n const {\n name,\n grade,\n goals,\n curriculum,\n selectedTopics = [],\n studentTimezone,\n preferences = [],\n personalizedLevel = [],\n personalizedFocus = [],\n personalizedBehaviors = [],\n personalizedObjectives = [],\n personalizedPosition = [],\n } = formData || {};\n\n const trialV3New = nextPageId === TrialPageId.LEARNING_PLAN && demoType === 'TRIAL_V3_3';\n\n const disableNavButtons = useCallback(() => {\n updateButtonState('both', {\n left: { isDisabled: true, isLoading: false },\n right: { isDisabled: true, isLoading: true },\n });\n }, [updateButtonState]);\n\n const onAcknowledge = (errorMessage: string | null) => {\n if (!errorMessage) {\n const overrides: Partial<ITrialSessionFormFields> = {};\n\n if (\n nextPageId === TrialPageId.CIRCLE_GAME ||\n nextPageId === TrialPageId.CIRCLE_PUZZLE ||\n nextPageId === TrialPageId.CIRCLE_SKILL\n ) {\n overrides.matchmakingId = uuidv4();\n overrides.showCircleGameScreen = true;\n }\n\n updateSlideConfig({ id: nextPageId, ...overrides });\n }\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n\n if (currentPageId === TrialPageId.LEARNING_LEVEL) {\n onTrialInformationUpdate?.();\n }\n };\n\n // API specifications\n const { patch: patchTrialSession } = usePatchTrialHome({ onComplete: onAcknowledge });\n const { patch: patchStudentInformation } = usePatchStudentInformation({\n onComplete: onAcknowledge,\n triggerOnComplete: !trialV3New,\n });\n const { post: postMilestoneBulk } = useMilestoneBulkPost({\n onComplete: onAcknowledge,\n });\n const { post: postStudentPreferences } = usePostStudentPreferences({\n onComplete: onAcknowledge,\n });\n\n const onTeacherAvailabilityValidate = useCallback(\n (_: string | null, data?: TTeacherAvailabilityResponse) => {\n const hasNotAvailable = (data ?? []).some(item => !item.is_available);\n\n if (hasNotAvailable) {\n const notAvailable = (data ?? []).filter(item => !item.is_available);\n const reason = notAvailable.map(item => item.reason).join('\\n');\n\n handleInfoMessage?.({ message: reason, position: 'bottom' });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n\n return;\n }\n\n const selectedRegularSlots = getFormattedPreferences(preferences, studentTimezone);\n\n if (selectedRegularSlots.length > 0) {\n const actionData = {\n trial_details: {\n selected_regular_slots: selectedRegularSlots,\n },\n };\n\n patchTrialSession('trial-v3-patch', {\n action: 'UPDATE_DEMO',\n action_data: actionData,\n teacher_id: teacherId,\n student_id: studentId,\n });\n } else updateButtonState('both', DEFAULT_BUTTON_STATE);\n },\n [\n handleInfoMessage,\n patchTrialSession,\n preferences,\n studentId,\n studentTimezone,\n teacherId,\n updateButtonState,\n ],\n );\n\n const { post: postTeacherAvailability } = usePostTeacherAvailability({\n onComplete: onTeacherAvailabilityValidate,\n });\n\n const handleMileStoneBulkPost = useCallback(() => {\n const payload = {\n course_stream: stream,\n grade,\n teacher_id: teacherId,\n board: curriculum,\n goals,\n delete_existing_draft: demoType === 'TRIAL_V3_3',\n };\n\n disableNavButtons();\n postMilestoneBulk(payload, {\n studentId,\n });\n }, [\n curriculum,\n demoType,\n disableNavButtons,\n goals,\n grade,\n postMilestoneBulk,\n stream,\n studentId,\n teacherId,\n ]);\n\n // Function to call API and updates states\n const handleStudentInformation = useCallback(() => {\n const [firstName, lastName] = name?.trim()?.split(' ') || [];\n const payload = {\n first_name: firstName,\n last_name: lastName,\n grade,\n board: curriculum,\n demo_type: demoType,\n teacher_id: teacherId,\n country_alpha_2: countryCode,\n };\n const isNumberExistsInName = /\\d/.test(name || '');\n\n if (isNumberExistsInName) {\n updateSlideConfig({ numberInNameError: true });\n } else {\n disableNavButtons();\n patchStudentInformation(studentId, payload);\n if (trialV3New) {\n handleMileStoneBulkPost();\n }\n }\n }, [\n name,\n grade,\n curriculum,\n demoType,\n teacherId,\n countryCode,\n updateSlideConfig,\n disableNavButtons,\n patchStudentInformation,\n studentId,\n trialV3New,\n handleMileStoneBulkPost,\n ]);\n\n const handleClassPreferences = useCallback(() => {\n const selectedRegularSlots = getFormattedPreferences(preferences, studentTimezone);\n const sessionList = getWeekdayAndStartTimeFromPreference(selectedRegularSlots);\n\n if (selectedRegularSlots.length > 0) {\n const availabilityPayload = {\n teacher_id: teacherId,\n session_list: sessionList,\n };\n\n disableNavButtons();\n postTeacherAvailability(availabilityPayload);\n } else {\n updateSlideConfig({ id: nextPageId });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n }, [\n preferences,\n studentTimezone,\n teacherId,\n postTeacherAvailability,\n disableNavButtons,\n updateSlideConfig,\n nextPageId,\n updateButtonState,\n ]);\n\n const handleTopicSelection = useCallback(() => {\n disableNavButtons();\n patchTrialSession('trial-v3-patch', {\n action: 'UPDATE_DEMO',\n action_data: { selected_topics: selectedTopics },\n teacher_id: teacherId,\n student_id: studentId,\n });\n }, [selectedTopics, disableNavButtons, patchTrialSession, teacherId, studentId]);\n\n const handleWorksheetNavigation = useCallback(\n (id?: TrialPageId) => {\n if (demoType === 'TRIAL_V3') {\n handleMileStoneBulkPost();\n } else if (id) {\n updateSlideConfig({ id });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n },\n [demoType, handleMileStoneBulkPost, updateButtonState, updateSlideConfig],\n );\n\n const handleStudentPreferencesPatch = useCallback(() => {\n const personalizedPreferences = getFormattedStudentPersonalizedPreference(milestoneConfig, [\n ...personalizedLevel,\n ...personalizedFocus,\n ...personalizedBehaviors,\n ...personalizedObjectives,\n ...personalizedPosition,\n ]);\n\n const payload = { preferences: personalizedPreferences, grade };\n const meta = { stream: COURSE_STREAMS.MATH, studentId };\n\n disableNavButtons();\n postStudentPreferences(payload, meta);\n }, [\n grade,\n studentId,\n milestoneConfig,\n personalizedLevel,\n personalizedFocus,\n personalizedBehaviors,\n personalizedObjectives,\n personalizedPosition,\n disableNavButtons,\n postStudentPreferences,\n ]);\n\n const handleStudentIntroduction = useCallback(() => {\n const isLearningLevelExisted = Boolean(\n trialHomeData.pages.find(page => page.id === TrialPageId.LEARNING_LEVEL),\n );\n\n if (isLearningLevelExisted) {\n updateSlideConfig({ id: nextPageId });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n } else {\n handleStudentPreferencesPatch();\n }\n }, [\n nextPageId,\n trialHomeData,\n updateSlideConfig,\n updateButtonState,\n handleStudentPreferencesPatch,\n ]);\n\n // Navigation logic\n const handleNavigation = useCallback(\n (dir: string, id?: TrialPageId) => {\n if (!updateSlideConfig) return;\n\n const circleGameSlide = [\n TrialPageId.CIRCLE_GAME,\n TrialPageId.CIRCLE_PUZZLE,\n TrialPageId.CIRCLE_SKILL,\n ];\n const isStudentProfilePage = currentPageId === TrialPageId.STUDENT_PROFILE;\n const isLearningPlanSlide = currentPageId === TrialPageId.LEARNING_PLAN;\n const overrides: Partial<ITrialSessionFormFields> = { numberInNameError: false };\n\n if (currentPageId === TrialPageId.LEARNING_PLAN) overrides.chapterId = undefined;\n\n if (id && circleGameSlide.includes(id)) {\n overrides.matchmakingId = uuidv4();\n overrides.showCircleGameScreen = true;\n }\n\n if (dir === 'prev') {\n updateSlideConfig({\n id,\n ...(isStudentProfilePage && { studentProfile: undefined }),\n ...(isLearningPlanSlide && {\n chapterId: undefined,\n }),\n ...overrides,\n });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n\n if (dir === 'next') {\n switch (currentPageId) {\n case TrialPageId.STUDENT_INFORMATION:\n case TrialPageId.SCHOOL_GOALS:\n handleStudentInformation();\n break;\n case TrialPageId.LEARNING_WORKSHEET:\n handleWorksheetNavigation(id);\n break;\n case TrialPageId.CLASS_PREFERENCE:\n handleClassPreferences();\n break;\n case TrialPageId.TOPIC_SELECTION:\n handleTopicSelection();\n break;\n case TrialPageId.STUDENT_INTRO:\n handleStudentIntroduction();\n break;\n case TrialPageId.LEARNING_LEVEL:\n handleStudentPreferencesPatch();\n break;\n default: {\n if (id === TrialPageId.LEARNING_PLAN && demoType !== 'TRIAL_V3') {\n handleMileStoneBulkPost();\n\n return;\n }\n updateSlideConfig({ id, ...overrides });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n }\n }\n },\n [\n updateSlideConfig,\n currentPageId,\n updateButtonState,\n demoType,\n handleMileStoneBulkPost,\n handleStudentInformation,\n handleWorksheetNavigation,\n handleClassPreferences,\n handleTopicSelection,\n handleStudentIntroduction,\n handleStudentPreferencesPatch,\n ],\n );\n\n const sessionWorksheetNavigation = useCallback(() => {\n if (!worksheetNavigationPanel && currentPageId === TrialPageId.LEARNING_WORKSHEET) {\n handleNavigation('next', nextPageId);\n }\n }, [currentPageId, handleNavigation, nextPageId, worksheetNavigationPanel]);\n\n useEffect(() => {\n sessionWorksheetNavigation();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [worksheetNavigationPanel]);\n\n return { handleNavigation };\n};\n\nexport { useTrialSessionNavigation };\n"],"names":["useTrialSessionNavigation","updateSlideConfig","slideConfig","demoType","formData","updateButtonState","teacherId","studentId","milestoneConfig","handleInfoMessage","onTrialInformationUpdate","trialHomeData","worksheetNavigationPanel","useTrialSessionContext","nextPage","currentPageId","demoInfo","stream","regionData","countryCode","nextPageId","name","grade","goals","curriculum","selectedTopics","studentTimezone","preferences","personalizedLevel","personalizedFocus","personalizedBehaviors","personalizedObjectives","personalizedPosition","trialV3New","TrialPageId","disableNavButtons","useCallback","onAcknowledge","errorMessage","overrides","uuidv4","DEFAULT_BUTTON_STATE","patchTrialSession","usePatchTrialHome","patchStudentInformation","usePatchStudentInformation","postMilestoneBulk","useMilestoneBulkPost","postStudentPreferences","usePostStudentPreferences","onTeacherAvailabilityValidate","_","data","item","reason","selectedRegularSlots","getFormattedPreferences","postTeacherAvailability","usePostTeacherAvailability","handleMileStoneBulkPost","payload","handleStudentInformation","firstName","lastName","_a","handleClassPreferences","sessionList","getWeekdayAndStartTimeFromPreference","availabilityPayload","handleTopicSelection","handleWorksheetNavigation","id","handleStudentPreferencesPatch","getFormattedStudentPersonalizedPreference","meta","COURSE_STREAMS","handleStudentIntroduction","page","handleNavigation","dir","circleGameSlide","isStudentProfilePage","isLearningPlanSlide","sessionWorksheetNavigation","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"use-trial-session-navigation.js","sources":["../../../../src/features/trial-session/hooks/use-trial-session-navigation.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { COURSE_STREAMS } from '../../milestone/constants';\nimport { useMilestoneBulkPost } from '../../milestone/create/api/milestone-bulk';\nimport { usePostStudentPreferences } from '../api/course-stream';\nimport { usePatchStudentInformation } from '../api/student-information';\nimport {\n usePostTeacherAvailability,\n type TTeacherAvailabilityResponse,\n} from '../api/teacher-availability';\nimport { usePatchTrialHome } from '../api/trial-home';\nimport { useTrialSessionContext } from '../context/use-trial-session-context';\nimport {\n getFormattedPreferences,\n getFormattedStudentPersonalizedPreference,\n getWeekdayAndStartTimeFromPreference,\n} from '../helper';\nimport { CIRCLE_GAME_SLIDES, DEFAULT_BUTTON_STATE, TrialPageId } from '../trial-session-constants';\nimport type { ITrialSessionFormFields } from '../trial-session-types';\n\nconst useTrialSessionNavigation = () => {\n const {\n updateSlideConfig,\n slideConfig,\n demoType,\n formData,\n updateButtonState,\n teacherId,\n studentId,\n milestoneConfig,\n handleInfoMessage,\n onTrialInformationUpdate,\n trialHomeData,\n worksheetNavigationPanel,\n } = useTrialSessionContext();\n const { nextPage, id: currentPageId } = slideConfig || {};\n const { demo_info: demoInfo } = trialHomeData;\n const { stream, region_data: regionData } = demoInfo;\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n const { pageId: nextPageId } = nextPage || {};\n const {\n name,\n grade,\n goals,\n curriculum,\n selectedTopics = [],\n studentTimezone,\n preferences = [],\n personalizedLevel = [],\n personalizedFocus = [],\n personalizedBehaviors = [],\n personalizedObjectives = [],\n personalizedPosition = [],\n } = formData || {};\n\n const trialV3New = nextPageId === TrialPageId.LEARNING_PLAN && demoType === 'TRIAL_V3_3';\n\n const disableNavButtons = useCallback(() => {\n updateButtonState('both', {\n left: { isDisabled: true, isLoading: false },\n right: { isDisabled: true, isLoading: true },\n });\n }, [updateButtonState]);\n\n const onAcknowledge = (errorMessage: string | null) => {\n if (!errorMessage) {\n const overrides: Partial<ITrialSessionFormFields> = {};\n\n if (\n nextPageId === TrialPageId.CIRCLE_GAME ||\n nextPageId === TrialPageId.CIRCLE_PUZZLE ||\n nextPageId === TrialPageId.CIRCLE_SKILL\n ) {\n overrides.matchmakingId = uuidv4();\n overrides.showCircleGameScreen = true;\n }\n\n updateSlideConfig({ id: nextPageId, ...overrides });\n }\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n\n if (currentPageId === TrialPageId.LEARNING_LEVEL) {\n onTrialInformationUpdate?.();\n }\n };\n\n // API specifications\n const { patch: patchTrialSession } = usePatchTrialHome({ onComplete: onAcknowledge });\n const { patch: patchStudentInformation } = usePatchStudentInformation({\n onComplete: onAcknowledge,\n triggerOnComplete: !trialV3New,\n });\n const { post: postMilestoneBulk } = useMilestoneBulkPost({\n onComplete: onAcknowledge,\n });\n const { post: postStudentPreferences } = usePostStudentPreferences({\n onComplete: onAcknowledge,\n });\n\n const onTeacherAvailabilityValidate = useCallback(\n (_: string | null, data?: TTeacherAvailabilityResponse) => {\n const hasNotAvailable = (data ?? []).some(item => !item.is_available);\n\n if (hasNotAvailable) {\n const notAvailable = (data ?? []).filter(item => !item.is_available);\n const reason = notAvailable.map(item => item.reason).join('\\n');\n\n handleInfoMessage?.({ message: reason, position: 'bottom' });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n\n return;\n }\n\n const selectedRegularSlots = getFormattedPreferences(preferences, studentTimezone);\n\n if (selectedRegularSlots.length > 0) {\n const actionData = {\n trial_details: {\n selected_regular_slots: selectedRegularSlots,\n },\n };\n\n patchTrialSession('trial-v3-patch', {\n action: 'UPDATE_DEMO',\n action_data: actionData,\n teacher_id: teacherId,\n student_id: studentId,\n });\n } else updateButtonState('both', DEFAULT_BUTTON_STATE);\n },\n [\n handleInfoMessage,\n patchTrialSession,\n preferences,\n studentId,\n studentTimezone,\n teacherId,\n updateButtonState,\n ],\n );\n\n const { post: postTeacherAvailability } = usePostTeacherAvailability({\n onComplete: onTeacherAvailabilityValidate,\n });\n\n const handleMileStoneBulkPost = useCallback(() => {\n const payload = {\n course_stream: stream,\n grade,\n teacher_id: teacherId,\n board: curriculum,\n goals,\n delete_existing_draft: demoType === 'TRIAL_V3_3',\n };\n\n disableNavButtons();\n postMilestoneBulk(payload, {\n studentId,\n });\n }, [\n curriculum,\n demoType,\n disableNavButtons,\n goals,\n grade,\n postMilestoneBulk,\n stream,\n studentId,\n teacherId,\n ]);\n\n // Function to call API and updates states\n const handleStudentInformation = useCallback(() => {\n const [firstName, lastName] = name?.trim()?.split(' ') || [];\n const payload = {\n first_name: firstName,\n last_name: lastName,\n grade,\n board: curriculum,\n demo_type: demoType,\n teacher_id: teacherId,\n country_alpha_2: countryCode,\n };\n const isNumberExistsInName = /\\d/.test(name || '');\n\n if (isNumberExistsInName) {\n updateSlideConfig({ numberInNameError: true });\n } else {\n disableNavButtons();\n patchStudentInformation(studentId, payload);\n if (trialV3New) {\n handleMileStoneBulkPost();\n }\n }\n }, [\n name,\n grade,\n curriculum,\n demoType,\n teacherId,\n countryCode,\n updateSlideConfig,\n disableNavButtons,\n patchStudentInformation,\n studentId,\n trialV3New,\n handleMileStoneBulkPost,\n ]);\n\n const handleClassPreferences = useCallback(() => {\n const selectedRegularSlots = getFormattedPreferences(preferences, studentTimezone);\n const sessionList = getWeekdayAndStartTimeFromPreference(selectedRegularSlots);\n\n if (selectedRegularSlots.length > 0) {\n const availabilityPayload = {\n teacher_id: teacherId,\n session_list: sessionList,\n };\n\n disableNavButtons();\n postTeacherAvailability(availabilityPayload);\n } else {\n updateSlideConfig({ id: nextPageId });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n }, [\n preferences,\n studentTimezone,\n teacherId,\n postTeacherAvailability,\n disableNavButtons,\n updateSlideConfig,\n nextPageId,\n updateButtonState,\n ]);\n\n const handleTopicSelection = useCallback(() => {\n disableNavButtons();\n patchTrialSession('trial-v3-patch', {\n action: 'UPDATE_DEMO',\n action_data: { selected_topics: selectedTopics },\n teacher_id: teacherId,\n student_id: studentId,\n });\n }, [selectedTopics, disableNavButtons, patchTrialSession, teacherId, studentId]);\n\n const handleWorksheetNavigation = useCallback(\n (id?: TrialPageId) => {\n if (demoType === 'TRIAL_V3') {\n handleMileStoneBulkPost();\n } else if (id) {\n updateSlideConfig({ id });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n },\n [demoType, handleMileStoneBulkPost, updateButtonState, updateSlideConfig],\n );\n\n const handleStudentPreferencesPatch = useCallback(() => {\n const personalizedPreferences = getFormattedStudentPersonalizedPreference(milestoneConfig, [\n ...personalizedLevel,\n ...personalizedFocus,\n ...personalizedBehaviors,\n ...personalizedObjectives,\n ...personalizedPosition,\n ]);\n\n const payload = { preferences: personalizedPreferences, grade };\n const meta = { stream: COURSE_STREAMS.MATH, studentId };\n\n disableNavButtons();\n postStudentPreferences(payload, meta);\n }, [\n grade,\n studentId,\n milestoneConfig,\n personalizedLevel,\n personalizedFocus,\n personalizedBehaviors,\n personalizedObjectives,\n personalizedPosition,\n disableNavButtons,\n postStudentPreferences,\n ]);\n\n const handleStudentIntroduction = useCallback(() => {\n const isLearningLevelExisted = Boolean(\n trialHomeData.pages.find(page => page.id === TrialPageId.LEARNING_LEVEL),\n );\n\n if (isLearningLevelExisted) {\n updateSlideConfig({ id: nextPageId });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n } else {\n handleStudentPreferencesPatch();\n }\n }, [\n nextPageId,\n trialHomeData,\n updateSlideConfig,\n updateButtonState,\n handleStudentPreferencesPatch,\n ]);\n\n // Navigation logic\n const handleNavigation = useCallback(\n (dir: string, id?: TrialPageId) => {\n if (!updateSlideConfig) return;\n\n const isStudentProfilePage = currentPageId === TrialPageId.STUDENT_PROFILE;\n const isLearningPlanSlide = currentPageId === TrialPageId.LEARNING_PLAN;\n const overrides: Partial<ITrialSessionFormFields> = { numberInNameError: false };\n\n if (currentPageId === TrialPageId.LEARNING_PLAN) overrides.chapterId = undefined;\n\n if (id && CIRCLE_GAME_SLIDES.includes(id)) {\n overrides.matchmakingId = uuidv4();\n overrides.showCircleGameScreen = true;\n }\n\n if (dir === 'prev') {\n updateSlideConfig({\n id,\n ...(isStudentProfilePage && { studentProfile: undefined }),\n ...(isLearningPlanSlide && {\n chapterId: undefined,\n }),\n ...overrides,\n });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n\n if (dir === 'next') {\n switch (currentPageId) {\n case TrialPageId.STUDENT_INFORMATION:\n case TrialPageId.SCHOOL_GOALS:\n handleStudentInformation();\n break;\n case TrialPageId.LEARNING_WORKSHEET:\n handleWorksheetNavigation(id);\n break;\n case TrialPageId.CLASS_PREFERENCE:\n handleClassPreferences();\n break;\n case TrialPageId.TOPIC_SELECTION:\n handleTopicSelection();\n break;\n case TrialPageId.STUDENT_INTRO:\n handleStudentIntroduction();\n break;\n case TrialPageId.LEARNING_LEVEL:\n handleStudentPreferencesPatch();\n break;\n default: {\n if (id === TrialPageId.LEARNING_PLAN && demoType !== 'TRIAL_V3') {\n handleMileStoneBulkPost();\n\n return;\n }\n updateSlideConfig({ id, ...overrides });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n }\n }\n },\n [\n updateSlideConfig,\n currentPageId,\n updateButtonState,\n demoType,\n handleMileStoneBulkPost,\n handleStudentInformation,\n handleWorksheetNavigation,\n handleClassPreferences,\n handleTopicSelection,\n handleStudentIntroduction,\n handleStudentPreferencesPatch,\n ],\n );\n\n const sessionWorksheetNavigation = useCallback(() => {\n if (!worksheetNavigationPanel && currentPageId === TrialPageId.LEARNING_WORKSHEET) {\n handleNavigation('next', nextPageId);\n }\n }, [currentPageId, handleNavigation, nextPageId, worksheetNavigationPanel]);\n\n useEffect(() => {\n sessionWorksheetNavigation();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [worksheetNavigationPanel]);\n\n return { handleNavigation };\n};\n\nexport { useTrialSessionNavigation };\n"],"names":["useTrialSessionNavigation","updateSlideConfig","slideConfig","demoType","formData","updateButtonState","teacherId","studentId","milestoneConfig","handleInfoMessage","onTrialInformationUpdate","trialHomeData","worksheetNavigationPanel","useTrialSessionContext","nextPage","currentPageId","demoInfo","stream","regionData","countryCode","nextPageId","name","grade","goals","curriculum","selectedTopics","studentTimezone","preferences","personalizedLevel","personalizedFocus","personalizedBehaviors","personalizedObjectives","personalizedPosition","trialV3New","TrialPageId","disableNavButtons","useCallback","onAcknowledge","errorMessage","overrides","uuidv4","DEFAULT_BUTTON_STATE","patchTrialSession","usePatchTrialHome","patchStudentInformation","usePatchStudentInformation","postMilestoneBulk","useMilestoneBulkPost","postStudentPreferences","usePostStudentPreferences","onTeacherAvailabilityValidate","_","data","item","reason","selectedRegularSlots","getFormattedPreferences","postTeacherAvailability","usePostTeacherAvailability","handleMileStoneBulkPost","payload","handleStudentInformation","firstName","lastName","_a","handleClassPreferences","sessionList","getWeekdayAndStartTimeFromPreference","availabilityPayload","handleTopicSelection","handleWorksheetNavigation","id","handleStudentPreferencesPatch","getFormattedStudentPersonalizedPreference","meta","COURSE_STREAMS","handleStudentIntroduction","page","handleNavigation","dir","isStudentProfilePage","isLearningPlanSlide","CIRCLE_GAME_SLIDES","sessionWorksheetNavigation","useEffect"],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  var s = /* @__PURE__ */ ((E) => (E.WELCOME_CUEMATH = "welcome-cuemath", E.CIRCLE_GAME = "circle-game", E.TEACHER_INTRO = "teacher-intro", E.SESSION_OVERVIEW = "session-overview", E.STUDENT_LEVEL = "student-level", E.STUDENT_INFORMATION = "student-information", E.SCHOOL_GOALS = "school-goals", E.TEST_PREP = "test-prep", E.STUDENT_ENRICHMENT = "student-enrichment", E.STUDENT_PERSONALIZATION = "student-personalization", E.ADDITIONAL_INFO = "additional-info", E.STUDENT_PROFILE = "student-profile", E.STUDENT_INTRO = "student-intro", E.LEARNING_LEVEL = "learning-level", E.LEARNING_WORKSHEET = "learning-worksheet", E.COMPLETED_WORKSHEET = "completed-worksheet", E.WELCOME_BACK = "welcome-back", E.SESSION_INSIGHTS = "session-insights", E.SESSION_REPORT = "session-report", E.LEARNING_PLAN = "learning-plan", E.SESSION_SUMMARY = "session-summary", E.GOAL_DETAILS = "goal-details", E.GOAL_PLANS = "goal-plans", E.PARENT_APP = "parent-app", E.CIRCLE_INFORMATION = "circle-information", E.PRICING = "pricing", E.CLASS_PREFERENCE = "class-preference", E.THANK_YOU = "thank-you", E.CIRCLE_PUZZLE = "circle-puzzle", E.CIRCLE_SKILL = "circle-skill", E.WHITEBOARD = "whiteboard", E.SESSION_PROGRESS_SUMMARY = "session-progress-summary", E.TOPIC_SELECTION = "topic-selection", E))(s || {});
2
- const n = [
2
+ const e = [
3
3
  "learning-worksheet",
4
4
  "learning-plan",
5
5
  "circle-game",
6
6
  "circle-puzzle",
7
7
  "circle-skill"
8
8
  /* CIRCLE_SKILL */
9
- ], e = [
9
+ ], n = [
10
10
  "learning-worksheet",
11
11
  "circle-game",
12
12
  "learning-plan",
13
13
  "circle-puzzle",
14
14
  "circle-skill"
15
15
  /* CIRCLE_SKILL */
16
- ], _ = [
16
+ ], t = [
17
17
  "pricing",
18
18
  "student-intro",
19
19
  "completed-worksheet",
@@ -22,10 +22,17 @@ const n = [
22
22
  "whiteboard",
23
23
  "session-progress-summary"
24
24
  /* SESSION_PROGRESS_SUMMARY */
25
- ], t = {
25
+ ], c = [
26
+ "circle-game",
27
+ "circle-puzzle",
28
+ "circle-skill"
29
+ /* CIRCLE_SKILL */
30
+ ];
31
+ var _ = /* @__PURE__ */ ((E) => (E.TRIAL_V3 = "TRIAL_V3", E.TRIAL_V3_3 = "TRIAL_V3_3", E))(_ || {});
32
+ const o = {
26
33
  left: { isDisabled: !1, isLoading: !1 },
27
34
  right: { isDisabled: !1, isLoading: !1 }
28
- }, o = 800, N = 700, S = 480, c = 360, A = 64, L = 540, O = "Asia/Calcutta", C = 3, R = {
35
+ }, A = 800, S = 700, L = 480, N = 360, R = 64, C = 540, O = "Asia/Calcutta", l = 3, i = {
29
36
  "USCC.ALGBRA1": "algebra_i",
30
37
  "USCC.ALGBRA2": "algebra_ii",
31
38
  "USCC.GEOMRY": "geometry",
@@ -34,18 +41,20 @@ const n = [
34
41
  "USCC.APPRECAL": "precalculus"
35
42
  };
36
43
  export {
37
- e as ACTIONABLE_COMPONENT_IDS,
38
- t as DEFAULT_BUTTON_STATE,
39
- R as HIGH_ENROLLMENT_PROGRAMS_MAP,
40
- C as MAXIMUM_TOPICS_TO_SELECT,
41
- L as MINIMUM_SCREEN_HEIGHT,
42
- A as NAVIGATION_BAR_HEIGHT,
43
- n as PAGES_WITHOUT_GRID,
44
- N as RIGHT_PANEL_CONTENT_WIDTH,
45
- o as RIGHT_PANEL_WIDTH,
46
- _ as SCROLLABLE_COMPONENT_IDS,
47
- c as STUDENT_LEFT_PANEL_MAX_WIDTH,
48
- S as TEACHER_LEFT_PANEL_MAX_WIDTH,
44
+ n as ACTIONABLE_COMPONENT_IDS,
45
+ c as CIRCLE_GAME_SLIDES,
46
+ o as DEFAULT_BUTTON_STATE,
47
+ _ as DemoType,
48
+ i as HIGH_ENROLLMENT_PROGRAMS_MAP,
49
+ l as MAXIMUM_TOPICS_TO_SELECT,
50
+ C as MINIMUM_SCREEN_HEIGHT,
51
+ R as NAVIGATION_BAR_HEIGHT,
52
+ e as PAGES_WITHOUT_GRID,
53
+ S as RIGHT_PANEL_CONTENT_WIDTH,
54
+ A as RIGHT_PANEL_WIDTH,
55
+ t as SCROLLABLE_COMPONENT_IDS,
56
+ N as STUDENT_LEFT_PANEL_MAX_WIDTH,
57
+ L as TEACHER_LEFT_PANEL_MAX_WIDTH,
49
58
  O as TEACHER_TIMEZONE,
50
59
  s as TrialPageId
51
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"trial-session-constants.js","sources":["../../../src/features/trial-session/trial-session-constants.ts"],"sourcesContent":["export enum TrialPageId {\n WELCOME_CUEMATH = 'welcome-cuemath',\n CIRCLE_GAME = 'circle-game',\n TEACHER_INTRO = 'teacher-intro',\n SESSION_OVERVIEW = 'session-overview',\n STUDENT_LEVEL = 'student-level',\n STUDENT_INFORMATION = 'student-information',\n SCHOOL_GOALS = 'school-goals',\n TEST_PREP = 'test-prep',\n STUDENT_ENRICHMENT = 'student-enrichment',\n STUDENT_PERSONALIZATION = 'student-personalization',\n ADDITIONAL_INFO = 'additional-info',\n STUDENT_PROFILE = 'student-profile',\n STUDENT_INTRO = 'student-intro',\n LEARNING_LEVEL = 'learning-level',\n LEARNING_WORKSHEET = 'learning-worksheet',\n COMPLETED_WORKSHEET = 'completed-worksheet',\n WELCOME_BACK = 'welcome-back',\n SESSION_INSIGHTS = 'session-insights', // FYI: Not In Use\n SESSION_REPORT = 'session-report',\n LEARNING_PLAN = 'learning-plan',\n SESSION_SUMMARY = 'session-summary',\n GOAL_DETAILS = 'goal-details',\n GOAL_PLANS = 'goal-plans',\n PARENT_APP = 'parent-app',\n CIRCLE_INFORMATION = 'circle-information',\n PRICING = 'pricing',\n CLASS_PREFERENCE = 'class-preference',\n THANK_YOU = 'thank-you',\n CIRCLE_PUZZLE = 'circle-puzzle',\n CIRCLE_SKILL = 'circle-skill',\n WHITEBOARD = 'whiteboard',\n SESSION_PROGRESS_SUMMARY = 'session-progress-summary',\n TOPIC_SELECTION = 'topic-selection',\n}\n\nexport const PAGES_WITHOUT_GRID = [\n TrialPageId.LEARNING_WORKSHEET,\n TrialPageId.LEARNING_PLAN,\n TrialPageId.CIRCLE_GAME,\n TrialPageId.CIRCLE_PUZZLE,\n TrialPageId.CIRCLE_SKILL,\n];\n\nexport const ACTIONABLE_COMPONENT_IDS = [\n TrialPageId.LEARNING_WORKSHEET,\n TrialPageId.CIRCLE_GAME,\n TrialPageId.LEARNING_PLAN,\n TrialPageId.CIRCLE_PUZZLE,\n TrialPageId.CIRCLE_SKILL,\n];\n\nexport const SCROLLABLE_COMPONENT_IDS = [\n TrialPageId.PRICING,\n TrialPageId.STUDENT_INTRO,\n TrialPageId.COMPLETED_WORKSHEET,\n TrialPageId.PARENT_APP,\n TrialPageId.GOAL_DETAILS,\n TrialPageId.WHITEBOARD,\n TrialPageId.SESSION_PROGRESS_SUMMARY,\n];\n\nexport const DEFAULT_BUTTON_STATE = {\n left: { isDisabled: false, isLoading: false },\n right: { isDisabled: false, isLoading: false },\n};\n\nexport const RIGHT_PANEL_WIDTH = 800;\nexport const RIGHT_PANEL_CONTENT_WIDTH = 700;\nexport const TEACHER_LEFT_PANEL_MAX_WIDTH = 480;\nexport const STUDENT_LEFT_PANEL_MAX_WIDTH = 360;\nexport const NAVIGATION_BAR_HEIGHT = 64;\nexport const MINIMUM_SCREEN_HEIGHT = 540;\nexport const TEACHER_TIMEZONE = 'Asia/Calcutta';\nexport const MAXIMUM_TOPICS_TO_SELECT = 3;\n\nexport const HIGH_ENROLLMENT_PROGRAMS_MAP = {\n 'USCC.ALGBRA1': 'algebra_i',\n 'USCC.ALGBRA2': 'algebra_ii',\n 'USCC.GEOMRY': 'geometry',\n 'USCC.PRECAL': 'precalculus',\n 'USCC.CLCULS': 'calculus',\n 'USCC.APPRECAL': 'precalculus',\n};\n"],"names":["TrialPageId","PAGES_WITHOUT_GRID","ACTIONABLE_COMPONENT_IDS","SCROLLABLE_COMPONENT_IDS","DEFAULT_BUTTON_STATE","RIGHT_PANEL_WIDTH","RIGHT_PANEL_CONTENT_WIDTH","TEACHER_LEFT_PANEL_MAX_WIDTH","STUDENT_LEFT_PANEL_MAX_WIDTH","NAVIGATION_BAR_HEIGHT","MINIMUM_SCREEN_HEIGHT","TEACHER_TIMEZONE","MAXIMUM_TOPICS_TO_SELECT","HIGH_ENROLLMENT_PROGRAMS_MAP"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,kBAAkB,mBAClBA,EAAA,cAAc,eACdA,EAAA,gBAAgB,iBAChBA,EAAA,mBAAmB,oBACnBA,EAAA,gBAAgB,iBAChBA,EAAA,sBAAsB,uBACtBA,EAAA,eAAe,gBACfA,EAAA,YAAY,aACZA,EAAA,qBAAqB,sBACrBA,EAAA,0BAA0B,2BAC1BA,EAAA,kBAAkB,mBAClBA,EAAA,kBAAkB,mBAClBA,EAAA,gBAAgB,iBAChBA,EAAA,iBAAiB,kBACjBA,EAAA,qBAAqB,sBACrBA,EAAA,sBAAsB,uBACtBA,EAAA,eAAe,gBACfA,EAAA,mBAAmB,oBACnBA,EAAA,iBAAiB,kBACjBA,EAAA,gBAAgB,iBAChBA,EAAA,kBAAkB,mBAClBA,EAAA,eAAe,gBACfA,EAAA,aAAa,cACbA,EAAA,aAAa,cACbA,EAAA,qBAAqB,sBACrBA,EAAA,UAAU,WACVA,EAAA,mBAAmB,oBACnBA,EAAA,YAAY,aACZA,EAAA,gBAAgB,iBAChBA,EAAA,eAAe,gBACfA,EAAA,aAAa,cACbA,EAAA,2BAA2B,4BAC3BA,EAAA,kBAAkB,mBAjCRA,IAAAA,KAAA,CAAA,CAAA;AAoCL,MAAMC,IAAqB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AACF,GAEaC,IAA2B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AACF,GAEaC,IAA2B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AACF,GAEaC,IAAuB;AAAA,EAClC,MAAM,EAAE,YAAY,IAAO,WAAW,GAAM;AAAA,EAC5C,OAAO,EAAE,YAAY,IAAO,WAAW,GAAM;AAC/C,GAEaC,IAAoB,KACpBC,IAA4B,KAC5BC,IAA+B,KAC/BC,IAA+B,KAC/BC,IAAwB,IACxBC,IAAwB,KACxBC,IAAmB,iBACnBC,IAA2B,GAE3BC,IAA+B;AAAA,EAC1C,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,iBAAiB;AACnB;"}
1
+ {"version":3,"file":"trial-session-constants.js","sources":["../../../src/features/trial-session/trial-session-constants.ts"],"sourcesContent":["export enum TrialPageId {\n WELCOME_CUEMATH = 'welcome-cuemath',\n CIRCLE_GAME = 'circle-game',\n TEACHER_INTRO = 'teacher-intro',\n SESSION_OVERVIEW = 'session-overview',\n STUDENT_LEVEL = 'student-level',\n STUDENT_INFORMATION = 'student-information',\n SCHOOL_GOALS = 'school-goals',\n TEST_PREP = 'test-prep',\n STUDENT_ENRICHMENT = 'student-enrichment',\n STUDENT_PERSONALIZATION = 'student-personalization',\n ADDITIONAL_INFO = 'additional-info',\n STUDENT_PROFILE = 'student-profile',\n STUDENT_INTRO = 'student-intro',\n LEARNING_LEVEL = 'learning-level',\n LEARNING_WORKSHEET = 'learning-worksheet',\n COMPLETED_WORKSHEET = 'completed-worksheet',\n WELCOME_BACK = 'welcome-back',\n SESSION_INSIGHTS = 'session-insights', // FYI: Not In Use\n SESSION_REPORT = 'session-report',\n LEARNING_PLAN = 'learning-plan',\n SESSION_SUMMARY = 'session-summary',\n GOAL_DETAILS = 'goal-details',\n GOAL_PLANS = 'goal-plans',\n PARENT_APP = 'parent-app',\n CIRCLE_INFORMATION = 'circle-information',\n PRICING = 'pricing',\n CLASS_PREFERENCE = 'class-preference',\n THANK_YOU = 'thank-you',\n CIRCLE_PUZZLE = 'circle-puzzle',\n CIRCLE_SKILL = 'circle-skill',\n WHITEBOARD = 'whiteboard',\n SESSION_PROGRESS_SUMMARY = 'session-progress-summary',\n TOPIC_SELECTION = 'topic-selection',\n}\n\nexport const PAGES_WITHOUT_GRID = [\n TrialPageId.LEARNING_WORKSHEET,\n TrialPageId.LEARNING_PLAN,\n TrialPageId.CIRCLE_GAME,\n TrialPageId.CIRCLE_PUZZLE,\n TrialPageId.CIRCLE_SKILL,\n];\n\nexport const ACTIONABLE_COMPONENT_IDS = [\n TrialPageId.LEARNING_WORKSHEET,\n TrialPageId.CIRCLE_GAME,\n TrialPageId.LEARNING_PLAN,\n TrialPageId.CIRCLE_PUZZLE,\n TrialPageId.CIRCLE_SKILL,\n];\n\nexport const SCROLLABLE_COMPONENT_IDS = [\n TrialPageId.PRICING,\n TrialPageId.STUDENT_INTRO,\n TrialPageId.COMPLETED_WORKSHEET,\n TrialPageId.PARENT_APP,\n TrialPageId.GOAL_DETAILS,\n TrialPageId.WHITEBOARD,\n TrialPageId.SESSION_PROGRESS_SUMMARY,\n];\n\nexport const CIRCLE_GAME_SLIDES = [\n TrialPageId.CIRCLE_GAME,\n TrialPageId.CIRCLE_PUZZLE,\n TrialPageId.CIRCLE_SKILL,\n];\n\nexport enum DemoType {\n TRIAL_V3 = 'TRIAL_V3',\n TRIAL_V3_3 = 'TRIAL_V3_3',\n}\n\nexport const DEFAULT_BUTTON_STATE = {\n left: { isDisabled: false, isLoading: false },\n right: { isDisabled: false, isLoading: false },\n};\n\nexport const RIGHT_PANEL_WIDTH = 800;\nexport const RIGHT_PANEL_CONTENT_WIDTH = 700;\nexport const TEACHER_LEFT_PANEL_MAX_WIDTH = 480;\nexport const STUDENT_LEFT_PANEL_MAX_WIDTH = 360;\nexport const NAVIGATION_BAR_HEIGHT = 64;\nexport const MINIMUM_SCREEN_HEIGHT = 540;\nexport const TEACHER_TIMEZONE = 'Asia/Calcutta';\nexport const MAXIMUM_TOPICS_TO_SELECT = 3;\n\nexport const HIGH_ENROLLMENT_PROGRAMS_MAP = {\n 'USCC.ALGBRA1': 'algebra_i',\n 'USCC.ALGBRA2': 'algebra_ii',\n 'USCC.GEOMRY': 'geometry',\n 'USCC.PRECAL': 'precalculus',\n 'USCC.CLCULS': 'calculus',\n 'USCC.APPRECAL': 'precalculus',\n};\n"],"names":["TrialPageId","PAGES_WITHOUT_GRID","ACTIONABLE_COMPONENT_IDS","SCROLLABLE_COMPONENT_IDS","CIRCLE_GAME_SLIDES","DemoType","DEFAULT_BUTTON_STATE","RIGHT_PANEL_WIDTH","RIGHT_PANEL_CONTENT_WIDTH","TEACHER_LEFT_PANEL_MAX_WIDTH","STUDENT_LEFT_PANEL_MAX_WIDTH","NAVIGATION_BAR_HEIGHT","MINIMUM_SCREEN_HEIGHT","TEACHER_TIMEZONE","MAXIMUM_TOPICS_TO_SELECT","HIGH_ENROLLMENT_PROGRAMS_MAP"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,kBAAkB,mBAClBA,EAAA,cAAc,eACdA,EAAA,gBAAgB,iBAChBA,EAAA,mBAAmB,oBACnBA,EAAA,gBAAgB,iBAChBA,EAAA,sBAAsB,uBACtBA,EAAA,eAAe,gBACfA,EAAA,YAAY,aACZA,EAAA,qBAAqB,sBACrBA,EAAA,0BAA0B,2BAC1BA,EAAA,kBAAkB,mBAClBA,EAAA,kBAAkB,mBAClBA,EAAA,gBAAgB,iBAChBA,EAAA,iBAAiB,kBACjBA,EAAA,qBAAqB,sBACrBA,EAAA,sBAAsB,uBACtBA,EAAA,eAAe,gBACfA,EAAA,mBAAmB,oBACnBA,EAAA,iBAAiB,kBACjBA,EAAA,gBAAgB,iBAChBA,EAAA,kBAAkB,mBAClBA,EAAA,eAAe,gBACfA,EAAA,aAAa,cACbA,EAAA,aAAa,cACbA,EAAA,qBAAqB,sBACrBA,EAAA,UAAU,WACVA,EAAA,mBAAmB,oBACnBA,EAAA,YAAY,aACZA,EAAA,gBAAgB,iBAChBA,EAAA,eAAe,gBACfA,EAAA,aAAa,cACbA,EAAA,2BAA2B,4BAC3BA,EAAA,kBAAkB,mBAjCRA,IAAAA,KAAA,CAAA,CAAA;AAoCL,MAAMC,IAAqB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AACF,GAEaC,IAA2B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AACF,GAEaC,IAA2B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AACF,GAEaC,IAAqB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA;AACF;AAEY,IAAAC,sBAAAA,OACVA,EAAA,WAAW,YACXA,EAAA,aAAa,cAFHA,IAAAA,KAAA,CAAA,CAAA;AAKL,MAAMC,IAAuB;AAAA,EAClC,MAAM,EAAE,YAAY,IAAO,WAAW,GAAM;AAAA,EAC5C,OAAO,EAAE,YAAY,IAAO,WAAW,GAAM;AAC/C,GAEaC,IAAoB,KACpBC,IAA4B,KAC5BC,IAA+B,KAC/BC,IAA+B,KAC/BC,IAAwB,IACxBC,IAAwB,KACxBC,IAAmB,iBACnBC,IAA2B,GAE3BC,IAA+B;AAAA,EAC1C,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,iBAAiB;AACnB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"trial-session-types.js","sources":["../../../src/features/trial-session/trial-session-types.ts"],"sourcesContent":["import type { Dispatch, ReactElement, SetStateAction } from 'react';\n\nimport type { TNodeTypes } from '../../types/models/worksheet';\nimport type { IInfoMessage } from '../circle-games/games/web-view/web-view-types';\nimport type {\n IMilestoneConfig,\n TCourseStream,\n TEnrollmentTypes,\n TPreferenceCategory,\n} from '../milestone/create/milestone-create-types';\nimport type { IAvatarLayer } from '../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { TPreference } from './comps/class-preference/class-preference-types';\nimport type {\n ITrialCircleConfig,\n ITrialCircleGameParams,\n} from './comps/trial-circle-game/trial-circle-game-types';\nimport type { TrialPageId } from './trial-session-constants';\nimport { type ITrialTopicsData } from './comps/topic-selection/topic-selection-types';\n\nexport type { TSessionReportData as TSessionReport } from './comps/session-report/session-report-types';\n\nexport type TSlideId = TrialPageId;\n\nexport type TRegionData = {\n opportunity_country: string;\n};\n\nexport type TPreferenceSchema = {\n preference_code: string;\n preference_name: string;\n preference_category: TPreferenceCategory;\n};\n\nexport enum EClassTimeAlertLevel {\n FIVE_MIN = '5min',\n FIFTEEN_MIN = '15min',\n}\ninterface IButtonConfig {\n buttonLabel: string;\n pageId: TrialPageId;\n}\n\nexport interface ISolution {\n media?: string;\n media_type?: 'image' | 'video';\n text?: string;\n}\n\nexport type TDegreeInformation = {\n degree_name?: string;\n field_of_study?: string;\n degree_code?: string;\n};\n\nexport interface ITeacherProfileDetails {\n lower_grade: string;\n higher_grade: string;\n header_image: string;\n years_of_experience: number;\n number_of_students_taught: number;\n countries: string[];\n degree: TDegreeInformation;\n first_name: string;\n last_name: string;\n teacher_profile_url?: string;\n}\n\nexport interface ISlide {\n id: TrialPageId;\n renderAs: 'split' | 'full';\n renderAVIn: 'left' | 'right';\n header: string;\n subHeader?: string;\n prevPage?: IButtonConfig;\n nextPage?: IButtonConfig;\n cues?: string[];\n dos?: string[];\n donts?: string[];\n navigationLabel?: string;\n slideTag?: string;\n teacher_profile?: ITeacherProfileDetails;\n solutions?: ISolution[];\n enableSessionPerk?: boolean;\n showProfileHighlights?: boolean;\n}\n\nexport interface TGoals {\n goal_code?: string;\n milestone_date_ts?: number;\n goal_category?: string;\n milestone_name?: string;\n publish?: boolean;\n program_code?: string;\n}\n\nexport interface ITrialSessionFormFields {\n id: string;\n name?: string;\n grade?: string;\n course?: string;\n curriculum?: string;\n goals?: TGoals[];\n studentProfile?: {\n profileSummary?: string;\n dummyProfileImageIndex?: number;\n summaryFetched?: boolean;\n summaryFetchFailed?: boolean;\n };\n enrollmentType?: TEnrollmentTypes;\n userNodeId?: string;\n nodeId?: string;\n nodeType?: TNodeTypes;\n attemptId?: string;\n preferences?: TPreference[];\n personalizedLevel?: string[];\n personalizedFocus?: string[];\n personalizedBehaviors?: string[];\n personalizedObjectives?: string[];\n personalizedPosition?: string[];\n isCircleGamePlayed?: boolean;\n isCirclePuzzleSolved?: boolean;\n isCircleSkillCompleted?: boolean;\n studentTimezone?: string;\n showCircleGameScreen?: boolean;\n accuracyStr?: string;\n totalTimeTaken?: number;\n chapterId?: string;\n matchmakingId?: string;\n numberInNameError?: boolean;\n confirmationModalActive?: boolean;\n resetAttempt: boolean;\n selectedTopics?: string[];\n}\n\nexport interface IButtonState {\n isDisabled: boolean;\n isLoading: boolean;\n}\n\nexport interface ITrialHomeData {\n pages: ISlide[];\n demo_info: {\n student_classroom_id: string;\n stream: TCourseStream;\n region_data: TRegionData;\n scheduled_start_time: number;\n course?: string;\n goal_code?: string | null;\n };\n parent: {\n name: string;\n };\n student: {\n grade: string;\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n enrollment_type: TEnrollmentTypes;\n };\n teacher: {\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n intel_student?: {\n source?: string;\n student_preference?: {\n preferences?: TPreferenceSchema[];\n };\n };\n circle_trial_game_config: ITrialCircleConfig;\n}\n\nexport interface IClassTimeAlertConfig {\n alertLevel: EClassTimeAlertLevel | null;\n isVisible: boolean;\n onComplete: () => void;\n}\n\nexport interface ITrialSessionProps {\n classStartedOn?: Date;\n demoType: string;\n height?: string | number;\n userType: TUserTypes;\n studentId: string;\n teacherId: string;\n teacherClassroomId: string;\n teacherPanel?: ReactElement;\n studentPanel?: ReactElement;\n formData?: ITrialSessionFormFields;\n onFormDataChange?: Dispatch<SetStateAction<ITrialSessionFormFields | undefined>>;\n worksheet?: ReactElement;\n worksheetNavigationPanel?: ReactElement;\n questionsRatingPanel?: ReactElement;\n studentAbsentInClass?: boolean;\n openEndClassModal?: () => void;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n classTimeAlertConfig?: IClassTimeAlertConfig;\n classDuration?: number;\n changeDemoLevel?: boolean;\n}\n\nexport interface ITrialSessionViewProps extends ITrialSessionProps {\n trialHomeData: ITrialHomeData;\n milestoneConfig: IMilestoneConfig;\n studentTimezone?: string;\n onStudentTimezoneUpdate?: () => void;\n onTrialInformationUpdate?: () => void;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string, goal?: string, removeTopicSelection?: boolean) => void;\n trialTopics?: ITrialTopicsData;\n}\n\nexport interface ITrialSessionContext\n extends Pick<\n ITrialSessionProps,\n | 'classStartedOn'\n | 'formData'\n | 'teacherPanel'\n | 'studentId'\n | 'teacherId'\n | 'studentPanel'\n | 'worksheet'\n | 'worksheetNavigationPanel'\n | 'questionsRatingPanel'\n | 'openEndClassModal'\n | 'studentAbsentInClass'\n | 'classDuration'\n | 'classTimeAlertConfig'\n | 'teacherClassroomId'\n | 'demoType'\n | 'trialGameUrl'\n >,\n Pick<\n ITrialSessionViewProps,\n | 'trialTopics'\n | 'onRemoveOptionalSlides'\n | 'handleInfoMessage'\n | 'onTrialInformationUpdate'\n | 'trialHomeData'\n | 'milestoneConfig'\n > {\n buttonState: { left: IButtonState; right: IButtonState };\n isTeacher: boolean;\n milestoneConfig: IMilestoneConfig;\n slideConfig: ISlide;\n updateButtonState: (\n btnNavDir: 'left' | 'right' | 'both',\n currentState: IButtonState | { left: IButtonState; right: IButtonState },\n ) => void;\n updateSlideConfig: (config: Partial<ITrialSessionFormFields>) => void;\n circleGames: ITrialCircleGameParams;\n}\n"],"names":["EClassTimeAlertLevel"],"mappings":"AAkCY,IAAAA,sBAAAA,OACVA,EAAA,WAAW,QACXA,EAAA,cAAc,SAFJA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"trial-session-types.js","sources":["../../../src/features/trial-session/trial-session-types.ts"],"sourcesContent":["import type { Dispatch, ReactElement, SetStateAction } from 'react';\n\nimport type { TNodeTypes } from '../../types/models/worksheet';\nimport type { IInfoMessage } from '../circle-games/games/web-view/web-view-types';\nimport type {\n IMilestoneConfig,\n TCourseStream,\n TEnrollmentTypes,\n TPreferenceCategory,\n} from '../milestone/create/milestone-create-types';\nimport type { IAvatarLayer } from '../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { TPreference } from './comps/class-preference/class-preference-types';\nimport type {\n ITrialCircleConfig,\n ITrialCircleGameParams,\n} from './comps/trial-circle-game/trial-circle-game-types';\nimport type { DemoType, TrialPageId } from './trial-session-constants';\nimport { type ITrialTopicsData } from './comps/topic-selection/topic-selection-types';\n\nexport type { TSessionReportData as TSessionReport } from './comps/session-report/session-report-types';\n\nexport type TSlideId = TrialPageId;\n\nexport type TRegionData = {\n opportunity_country: string;\n};\n\nexport type TPreferenceSchema = {\n preference_code: string;\n preference_name: string;\n preference_category: TPreferenceCategory;\n};\n\nexport enum EClassTimeAlertLevel {\n FIVE_MIN = '5min',\n FIFTEEN_MIN = '15min',\n}\ninterface IButtonConfig {\n buttonLabel: string;\n pageId: TrialPageId;\n}\n\nexport interface ISolution {\n media?: string;\n media_type?: 'image' | 'video';\n text?: string;\n}\n\nexport type TDegreeInformation = {\n degree_name?: string;\n field_of_study?: string;\n degree_code?: string;\n};\n\nexport interface ITeacherProfileDetails {\n lower_grade: string;\n higher_grade: string;\n header_image: string;\n years_of_experience: number;\n number_of_students_taught: number;\n countries: string[];\n degree: TDegreeInformation;\n first_name: string;\n last_name: string;\n teacher_profile_url?: string;\n}\n\nexport interface ISlide {\n id: TrialPageId;\n renderAs: 'split' | 'full';\n renderAVIn: 'left' | 'right';\n header: string;\n subHeader?: string;\n prevPage?: IButtonConfig;\n nextPage?: IButtonConfig;\n cues?: string[];\n dos?: string[];\n donts?: string[];\n navigationLabel?: string;\n slideTag?: string;\n teacher_profile?: ITeacherProfileDetails;\n solutions?: ISolution[];\n enableSessionPerk?: boolean;\n showProfileHighlights?: boolean;\n}\n\nexport interface TGoals {\n goal_code?: string;\n milestone_date_ts?: number;\n goal_category?: string;\n milestone_name?: string;\n publish?: boolean;\n program_code?: string;\n}\n\nexport interface ITrialSessionFormFields {\n id: string;\n name?: string;\n grade?: string;\n course?: string;\n curriculum?: string;\n goals?: TGoals[];\n studentProfile?: {\n profileSummary?: string;\n dummyProfileImageIndex?: number;\n summaryFetched?: boolean;\n summaryFetchFailed?: boolean;\n };\n enrollmentType?: TEnrollmentTypes;\n userNodeId?: string;\n nodeId?: string;\n nodeType?: TNodeTypes;\n attemptId?: string;\n preferences?: TPreference[];\n personalizedLevel?: string[];\n personalizedFocus?: string[];\n personalizedBehaviors?: string[];\n personalizedObjectives?: string[];\n personalizedPosition?: string[];\n isCircleGamePlayed?: boolean;\n isCirclePuzzleSolved?: boolean;\n isCircleSkillCompleted?: boolean;\n studentTimezone?: string;\n showCircleGameScreen?: boolean;\n accuracyStr?: string;\n totalTimeTaken?: number;\n chapterId?: string;\n matchmakingId?: string;\n numberInNameError?: boolean;\n confirmationModalActive?: boolean;\n resetAttempt: boolean;\n selectedTopics?: string[];\n}\n\nexport interface IButtonState {\n isDisabled: boolean;\n isLoading: boolean;\n}\n\nexport interface ITrialHomeData {\n pages: ISlide[];\n demo_info: {\n student_classroom_id: string;\n stream: TCourseStream;\n region_data: TRegionData;\n scheduled_start_time: number;\n course?: string;\n goal_code?: string | null;\n };\n parent: {\n name: string;\n };\n student: {\n grade: string;\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n enrollment_type: TEnrollmentTypes;\n };\n teacher: {\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n intel_student?: {\n source?: string;\n student_preference?: {\n preferences?: TPreferenceSchema[];\n };\n };\n circle_trial_game_config: ITrialCircleConfig;\n}\n\nexport interface IClassTimeAlertConfig {\n alertLevel: EClassTimeAlertLevel | null;\n isVisible: boolean;\n onComplete: () => void;\n}\n\nexport interface ITrialSessionProps {\n classStartedOn?: Date;\n demoType: DemoType;\n height?: string | number;\n userType: TUserTypes;\n studentId: string;\n teacherId: string;\n teacherClassroomId: string;\n teacherPanel?: ReactElement;\n studentPanel?: ReactElement;\n formData?: ITrialSessionFormFields;\n onFormDataChange?: Dispatch<SetStateAction<ITrialSessionFormFields | undefined>>;\n worksheet?: ReactElement;\n worksheetNavigationPanel?: ReactElement;\n questionsRatingPanel?: ReactElement;\n studentAbsentInClass?: boolean;\n openEndClassModal?: () => void;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n classTimeAlertConfig?: IClassTimeAlertConfig;\n classDuration?: number;\n changeDemoLevel?: boolean;\n}\n\nexport interface ITrialSessionViewProps extends ITrialSessionProps {\n trialHomeData: ITrialHomeData;\n milestoneConfig: IMilestoneConfig;\n studentTimezone?: string;\n onStudentTimezoneUpdate?: () => void;\n onTrialInformationUpdate?: () => void;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string, goal?: string, removeTopicSelection?: boolean) => void;\n trialTopics?: ITrialTopicsData;\n}\n\nexport interface ITrialSessionContext\n extends Pick<\n ITrialSessionProps,\n | 'classStartedOn'\n | 'formData'\n | 'teacherPanel'\n | 'studentId'\n | 'teacherId'\n | 'studentPanel'\n | 'worksheet'\n | 'worksheetNavigationPanel'\n | 'questionsRatingPanel'\n | 'openEndClassModal'\n | 'studentAbsentInClass'\n | 'classDuration'\n | 'classTimeAlertConfig'\n | 'teacherClassroomId'\n | 'demoType'\n | 'trialGameUrl'\n >,\n Pick<\n ITrialSessionViewProps,\n | 'trialTopics'\n | 'onRemoveOptionalSlides'\n | 'handleInfoMessage'\n | 'onTrialInformationUpdate'\n | 'trialHomeData'\n | 'milestoneConfig'\n > {\n buttonState: { left: IButtonState; right: IButtonState };\n isTeacher: boolean;\n milestoneConfig: IMilestoneConfig;\n slideConfig: ISlide;\n updateButtonState: (\n btnNavDir: 'left' | 'right' | 'both',\n currentState: IButtonState | { left: IButtonState; right: IButtonState },\n ) => void;\n updateSlideConfig: (config: Partial<ITrialSessionFormFields>) => void;\n circleGames: ITrialCircleGameParams;\n}\n"],"names":["EClassTimeAlertLevel"],"mappings":"AAkCY,IAAAA,sBAAAA,OACVA,EAAA,WAAW,QACXA,EAAA,cAAc,SAFJA,IAAAA,KAAA,CAAA,CAAA;"}
package/dist/index.d.ts CHANGED
@@ -530,6 +530,11 @@ export declare const DashArrowIcon: FC<SVGProps<SVGSVGElement>>;
530
530
 
531
531
  export declare const DatePickerInput: NamedExoticComponent<IDatePickerInputProps>;
532
532
 
533
+ declare enum DemoType {
534
+ TRIAL_V3 = "TRIAL_V3",
535
+ TRIAL_V3_3 = "TRIAL_V3_3"
536
+ }
537
+
533
538
  export declare const DesmosCalculator: FC<IDesmosCalculatorProps>;
534
539
 
535
540
  export declare const DigitalMeter: FC<IDigitalMeterProps>;
@@ -4766,7 +4771,7 @@ declare interface ITrialSessionMetadata {
4766
4771
 
4767
4772
  declare interface ITrialSessionProps {
4768
4773
  classStartedOn?: Date;
4769
- demoType: string;
4774
+ demoType: DemoType;
4770
4775
  height?: string | number;
4771
4776
  userType: TUserTypes;
4772
4777
  studentId: string;
@@ -7749,10 +7754,10 @@ export declare const useGetLeaderboardDal: (userId: string) => Omit<ReturnType<t
7749
7754
  };
7750
7755
 
7751
7756
  export declare const useGetMileStoneConfig: (initialId?: string, initialQuery?: {
7752
- demo_type?: string;
7757
+ demo_type?: DemoType;
7753
7758
  } | undefined) => {
7754
7759
  get: (id: string, query: {
7755
- demo_type?: string;
7760
+ demo_type?: DemoType;
7756
7761
  } | undefined, meta: void) => Promise<void>;
7757
7762
  resource: ResourceModel<IMilestoneConfig> | undefined;
7758
7763
  data: IMilestoneConfig | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "3.5.67-link2",
3
+ "version": "3.5.67-link3",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"