@cuemath/leap 3.0.27-beta-0.1 → 3.0.27-beta-0.2

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":"class-details-step.js","sources":["../../../../../../src/features/milestone/create/comps/class-details-step/class-details-step.tsx"],"sourcesContent":["import type { IFormStepProps } from '../../milestone-create-types';\n\nimport React, { memo, useCallback, useMemo } from 'react';\n\nimport { convertToTitleCase } from '../../../../../helpers/label-text';\nimport { useUIContext } from '../../../../ui/context/context';\nimport { WARNING_MESSAGES } from '../../../constants';\nimport {\n appendPrimaryGoalCategoryToFormState,\n getGradesBasedOnGoalAvailability,\n} from '../../milestone-create-helpers';\nimport {\n computeChangeDetection,\n getCountriesWhereCurrentGradeNCategoryIsAvailable,\n} from '../chapters-selection-step/utils';\nimport { getTestTypeBasedCategory } from '../test-type-step/test-type-utils';\nimport ClassDetailsSelectors from './class-details-selectors';\nimport { getCategorizedCurriculumStandards } from './class-details-utils';\n\nconst ClassDetailsStep: React.FC<IFormStepProps> = memo(\n ({\n config,\n formData,\n currentStep,\n courseStream,\n classRatio,\n onChapterExitWarning,\n onFormDataChange,\n enrollmentType,\n }) => {\n const { onEvent: trackEvent } = useUIContext();\n\n const {\n testType,\n grade,\n board,\n schoolInfo,\n region,\n primaryChaptersList,\n chapterGoalCategory = {},\n } = formData;\n\n const { primaryGoalCategory } = chapterGoalCategory;\n\n const selectedGoalCategory = getTestTypeBasedCategory(testType);\n const { countryCode: schoolInfoCountryCode } = schoolInfo || {};\n const currentCountryCode = region || schoolInfoCountryCode; //TODO: remove all school related code, this might lead to some drafts (which were created earlier) asking user to fill country/board again but if they carry on with same details data will be prefilled\n const { name } = currentStep;\n\n const changesDetected = computeChangeDetection(primaryChaptersList, primaryGoalCategory);\n\n const analyticsProps = useMemo(\n () => ({\n step: name,\n }),\n [name],\n );\n\n const boards = useMemo(\n () =>\n getCategorizedCurriculumStandards(config, {\n grade: grade ?? '',\n countryCode: currentCountryCode ?? '',\n goalCategory: selectedGoalCategory,\n courseStream,\n classRatio,\n enrollmentType,\n }),\n [\n classRatio,\n config,\n courseStream,\n currentCountryCode,\n grade,\n enrollmentType,\n selectedGoalCategory,\n ],\n );\n\n const filteredCountryCodeToNameMap = useMemo(\n () =>\n getCountriesWhereCurrentGradeNCategoryIsAvailable(\n courseStream,\n config,\n selectedGoalCategory,\n enrollmentType,\n grade,\n currentCountryCode,\n ),\n [courseStream, config, selectedGoalCategory, enrollmentType, grade, currentCountryCode],\n );\n\n const grades = useMemo(() => {\n return getGradesBasedOnGoalAvailability(\n config,\n selectedGoalCategory,\n courseStream,\n enrollmentType,\n );\n }, [config, courseStream, enrollmentType, selectedGoalCategory]);\n\n const countries = useMemo(() => {\n return Object.entries(filteredCountryCodeToNameMap)\n ?.map(([countryCode, countryName]) => ({\n id: countryCode,\n label: convertToTitleCase(countryName),\n }))\n .sort((a, b) => {\n return a.label.localeCompare(b.label);\n });\n }, [filteredCountryCodeToNameMap]);\n\n const countryLabel = useMemo(() => {\n return currentCountryCode && filteredCountryCodeToNameMap[currentCountryCode]\n ? convertToTitleCase(filteredCountryCodeToNameMap[currentCountryCode] ?? '')\n : '';\n }, [filteredCountryCodeToNameMap, currentCountryCode]);\n\n const handleOnFormDataChange = useCallback(\n ({\n updatedData,\n gradeUpdated,\n boardUpdated,\n countryUpdated,\n }: {\n updatedData: string;\n gradeUpdated?: boolean;\n boardUpdated?: boolean;\n countryUpdated?: boolean;\n majorUpdated?: boolean;\n }) => {\n let updatedPrimaryGoalCategory;\n let updatedFormData;\n\n if (gradeUpdated) {\n updatedPrimaryGoalCategory = appendPrimaryGoalCategoryToFormState(\n config,\n testType,\n updatedData,\n courseStream,\n enrollmentType,\n board,\n currentCountryCode,\n );\n\n updatedFormData = {\n grade: updatedData,\n };\n } else if (boardUpdated) {\n updatedPrimaryGoalCategory = appendPrimaryGoalCategoryToFormState(\n config,\n testType,\n grade,\n courseStream,\n enrollmentType,\n updatedData,\n currentCountryCode,\n );\n\n updatedFormData = {\n board: updatedData,\n major: undefined,\n };\n } else if (countryUpdated) {\n updatedPrimaryGoalCategory = appendPrimaryGoalCategoryToFormState(\n config,\n testType,\n grade,\n courseStream,\n enrollmentType,\n board,\n updatedData,\n );\n\n updatedFormData = {\n region: updatedData,\n };\n }\n\n trackEvent('onchange', analyticsProps);\n\n onFormDataChange({\n ...updatedFormData,\n chapterGoalCategory: {\n primaryGoalCategory: updatedPrimaryGoalCategory,\n },\n primaryChaptersList: undefined,\n });\n },\n [\n analyticsProps,\n board,\n config,\n courseStream,\n currentCountryCode,\n enrollmentType,\n grade,\n onFormDataChange,\n testType,\n trackEvent,\n ],\n );\n\n const handleGradeSelect = useCallback(\n (selectedGrade: string) => {\n if (selectedGrade === grade) return null;\n\n if (!changesDetected) {\n handleOnFormDataChange({\n updatedData: selectedGrade,\n gradeUpdated: true,\n });\n } else {\n onChapterExitWarning?.({\n description: WARNING_MESSAGES.GOAL_CHANGE_WARNING,\n onSuccess: () => {\n handleOnFormDataChange({\n updatedData: selectedGrade,\n gradeUpdated: true,\n });\n },\n });\n }\n },\n [onChapterExitWarning, handleOnFormDataChange, grade, changesDetected],\n );\n\n const handleBoardChange = useCallback(\n (boardCode: string) => {\n if (boardCode === board) return null;\n\n if (!changesDetected) {\n handleOnFormDataChange({\n updatedData: boardCode,\n boardUpdated: true,\n });\n } else {\n onChapterExitWarning?.({\n description: WARNING_MESSAGES.GOAL_CHANGE_WARNING,\n onSuccess: () => {\n handleOnFormDataChange({\n updatedData: boardCode,\n boardUpdated: true,\n });\n },\n });\n }\n },\n [onChapterExitWarning, handleOnFormDataChange, board, changesDetected],\n );\n\n const handleCountryChange = useCallback(\n (updatedCountryCode: string) => {\n if (updatedCountryCode === currentCountryCode) return null;\n\n if (!changesDetected) {\n handleOnFormDataChange({\n updatedData: updatedCountryCode,\n countryUpdated: true,\n });\n } else {\n onChapterExitWarning?.({\n description: WARNING_MESSAGES.GOAL_CHANGE_WARNING,\n onSuccess: () => {\n handleOnFormDataChange({\n updatedData: updatedCountryCode,\n countryUpdated: true,\n });\n },\n });\n }\n },\n [onChapterExitWarning, handleOnFormDataChange, currentCountryCode, changesDetected],\n );\n\n return (\n <ClassDetailsSelectors\n testType={testType}\n grade={grade}\n grades={grades}\n board={board}\n boards={boards}\n countryLabel={countryLabel}\n countries={countries}\n currentCountryCode={currentCountryCode}\n handleCountryChange={handleCountryChange}\n handleBoardChange={handleBoardChange}\n handleGradeSelect={handleGradeSelect}\n />\n );\n },\n);\n\nexport default ClassDetailsStep;\n"],"names":["ClassDetailsStep","memo","config","formData","currentStep","courseStream","classRatio","onChapterExitWarning","onFormDataChange","enrollmentType","trackEvent","useUIContext","testType","grade","board","schoolInfo","region","primaryChaptersList","chapterGoalCategory","primaryGoalCategory","selectedGoalCategory","getTestTypeBasedCategory","schoolInfoCountryCode","currentCountryCode","name","changesDetected","computeChangeDetection","analyticsProps","useMemo","boards","getCategorizedCurriculumStandards","filteredCountryCodeToNameMap","getCountriesWhereCurrentGradeNCategoryIsAvailable","grades","getGradesBasedOnGoalAvailability","countries","_a","countryCode","countryName","convertToTitleCase","a","b","countryLabel","handleOnFormDataChange","useCallback","updatedData","gradeUpdated","boardUpdated","countryUpdated","updatedPrimaryGoalCategory","updatedFormData","appendPrimaryGoalCategoryToFormState","handleGradeSelect","selectedGrade","WARNING_MESSAGES","handleBoardChange","boardCode","handleCountryChange","updatedCountryCode","jsx","ClassDetailsSelectors"],"mappings":"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"}
1
+ {"version":3,"file":"class-details-step.js","sources":["../../../../../../src/features/milestone/create/comps/class-details-step/class-details-step.tsx"],"sourcesContent":["import type { IFormStepProps } from '../../milestone-create-types';\n\nimport React, { memo, useCallback, useContext, useMemo } from 'react';\n\nimport { convertToTitleCase } from '../../../../../helpers/label-text';\nimport { useUIContext } from '../../../../ui/context/context';\nimport { WARNING_MESSAGES } from '../../../constants';\nimport MilestoneCreateContext from '../../milestone-create-context';\nimport {\n appendPrimaryGoalCategoryToFormState,\n getGradesBasedOnGoalAvailability,\n} from '../../milestone-create-helpers';\nimport {\n computeChangeDetection,\n getCountriesWhereCurrentGradeNCategoryIsAvailable,\n} from '../chapters-selection-step/utils';\nimport { getTestTypeBasedCategory } from '../test-type-step/test-type-utils';\nimport ClassDetailsSelectors from './class-details-selectors';\nimport { getCategorizedCurriculumStandards } from './class-details-utils';\n\nconst ClassDetailsStep: React.FC<IFormStepProps> = memo(\n ({\n config,\n formData,\n currentStep,\n courseStream,\n classRatio,\n onChapterExitWarning,\n onFormDataChange,\n enrollmentType,\n }) => {\n const { onEvent: trackEvent } = useUIContext();\n const { flow } = useContext(MilestoneCreateContext);\n\n const {\n testType,\n grade,\n board,\n schoolInfo,\n region,\n primaryChaptersList,\n chapterGoalCategory = {},\n } = formData;\n\n const { primaryGoalCategory } = chapterGoalCategory;\n\n const selectedGoalCategory = getTestTypeBasedCategory(testType);\n const { countryCode: schoolInfoCountryCode } = schoolInfo || {};\n const currentCountryCode = region || schoolInfoCountryCode; //TODO: remove all school related code, this might lead to some drafts (which were created earlier) asking user to fill country/board again but if they carry on with same details data will be prefilled\n const { name } = currentStep;\n\n const changesDetected = computeChangeDetection(primaryChaptersList, primaryGoalCategory);\n\n const analyticsProps = useMemo(\n () => ({\n step: name,\n }),\n [name],\n );\n\n const boards = useMemo(\n () =>\n getCategorizedCurriculumStandards(config, {\n grade: grade ?? '',\n countryCode: currentCountryCode ?? '',\n goalCategory: selectedGoalCategory,\n courseStream,\n classRatio,\n enrollmentType,\n flow,\n }),\n [\n classRatio,\n config,\n courseStream,\n currentCountryCode,\n grade,\n enrollmentType,\n selectedGoalCategory,\n flow,\n ],\n );\n\n const filteredCountryCodeToNameMap = useMemo(\n () =>\n getCountriesWhereCurrentGradeNCategoryIsAvailable(\n courseStream,\n config,\n selectedGoalCategory,\n enrollmentType,\n grade,\n currentCountryCode,\n ),\n [courseStream, config, selectedGoalCategory, enrollmentType, grade, currentCountryCode],\n );\n\n const grades = useMemo(() => {\n return getGradesBasedOnGoalAvailability(\n config,\n selectedGoalCategory,\n courseStream,\n enrollmentType,\n );\n }, [config, courseStream, enrollmentType, selectedGoalCategory]);\n\n const countries = useMemo(() => {\n return Object.entries(filteredCountryCodeToNameMap)\n ?.map(([countryCode, countryName]) => ({\n id: countryCode,\n label: convertToTitleCase(countryName),\n }))\n .sort((a, b) => {\n return a.label.localeCompare(b.label);\n });\n }, [filteredCountryCodeToNameMap]);\n\n const countryLabel = useMemo(() => {\n return currentCountryCode && filteredCountryCodeToNameMap[currentCountryCode]\n ? convertToTitleCase(filteredCountryCodeToNameMap[currentCountryCode] ?? '')\n : '';\n }, [filteredCountryCodeToNameMap, currentCountryCode]);\n\n const handleOnFormDataChange = useCallback(\n ({\n updatedData,\n gradeUpdated,\n boardUpdated,\n countryUpdated,\n }: {\n updatedData: string;\n gradeUpdated?: boolean;\n boardUpdated?: boolean;\n countryUpdated?: boolean;\n majorUpdated?: boolean;\n }) => {\n let updatedPrimaryGoalCategory;\n let updatedFormData;\n\n if (gradeUpdated) {\n updatedPrimaryGoalCategory = appendPrimaryGoalCategoryToFormState(\n config,\n testType,\n updatedData,\n courseStream,\n enrollmentType,\n board,\n currentCountryCode,\n );\n\n updatedFormData = {\n grade: updatedData,\n };\n } else if (boardUpdated) {\n updatedPrimaryGoalCategory = appendPrimaryGoalCategoryToFormState(\n config,\n testType,\n grade,\n courseStream,\n enrollmentType,\n updatedData,\n currentCountryCode,\n );\n\n updatedFormData = {\n board: updatedData,\n major: undefined,\n };\n } else if (countryUpdated) {\n updatedPrimaryGoalCategory = appendPrimaryGoalCategoryToFormState(\n config,\n testType,\n grade,\n courseStream,\n enrollmentType,\n board,\n updatedData,\n );\n\n updatedFormData = {\n region: updatedData,\n };\n }\n\n trackEvent('onchange', analyticsProps);\n\n onFormDataChange({\n ...updatedFormData,\n chapterGoalCategory: {\n primaryGoalCategory: updatedPrimaryGoalCategory,\n },\n primaryChaptersList: undefined,\n });\n },\n [\n analyticsProps,\n board,\n config,\n courseStream,\n currentCountryCode,\n enrollmentType,\n grade,\n onFormDataChange,\n testType,\n trackEvent,\n ],\n );\n\n const handleGradeSelect = useCallback(\n (selectedGrade: string) => {\n if (selectedGrade === grade) return null;\n\n if (!changesDetected) {\n handleOnFormDataChange({\n updatedData: selectedGrade,\n gradeUpdated: true,\n });\n } else {\n onChapterExitWarning?.({\n description: WARNING_MESSAGES.GOAL_CHANGE_WARNING,\n onSuccess: () => {\n handleOnFormDataChange({\n updatedData: selectedGrade,\n gradeUpdated: true,\n });\n },\n });\n }\n },\n [onChapterExitWarning, handleOnFormDataChange, grade, changesDetected],\n );\n\n const handleBoardChange = useCallback(\n (boardCode: string) => {\n if (boardCode === board) return null;\n\n if (!changesDetected) {\n handleOnFormDataChange({\n updatedData: boardCode,\n boardUpdated: true,\n });\n } else {\n onChapterExitWarning?.({\n description: WARNING_MESSAGES.GOAL_CHANGE_WARNING,\n onSuccess: () => {\n handleOnFormDataChange({\n updatedData: boardCode,\n boardUpdated: true,\n });\n },\n });\n }\n },\n [onChapterExitWarning, handleOnFormDataChange, board, changesDetected],\n );\n\n const handleCountryChange = useCallback(\n (updatedCountryCode: string) => {\n if (updatedCountryCode === currentCountryCode) return null;\n\n if (!changesDetected) {\n handleOnFormDataChange({\n updatedData: updatedCountryCode,\n countryUpdated: true,\n });\n } else {\n onChapterExitWarning?.({\n description: WARNING_MESSAGES.GOAL_CHANGE_WARNING,\n onSuccess: () => {\n handleOnFormDataChange({\n updatedData: updatedCountryCode,\n countryUpdated: true,\n });\n },\n });\n }\n },\n [onChapterExitWarning, handleOnFormDataChange, currentCountryCode, changesDetected],\n );\n\n return (\n <ClassDetailsSelectors\n testType={testType}\n grade={grade}\n grades={grades}\n board={board}\n boards={boards}\n countryLabel={countryLabel}\n countries={countries}\n currentCountryCode={currentCountryCode}\n handleCountryChange={handleCountryChange}\n handleBoardChange={handleBoardChange}\n handleGradeSelect={handleGradeSelect}\n />\n );\n },\n);\n\nexport default ClassDetailsStep;\n"],"names":["ClassDetailsStep","memo","config","formData","currentStep","courseStream","classRatio","onChapterExitWarning","onFormDataChange","enrollmentType","trackEvent","useUIContext","flow","useContext","MilestoneCreateContext","testType","grade","board","schoolInfo","region","primaryChaptersList","chapterGoalCategory","primaryGoalCategory","selectedGoalCategory","getTestTypeBasedCategory","schoolInfoCountryCode","currentCountryCode","name","changesDetected","computeChangeDetection","analyticsProps","useMemo","boards","getCategorizedCurriculumStandards","filteredCountryCodeToNameMap","getCountriesWhereCurrentGradeNCategoryIsAvailable","grades","getGradesBasedOnGoalAvailability","countries","_a","countryCode","countryName","convertToTitleCase","a","b","countryLabel","handleOnFormDataChange","useCallback","updatedData","gradeUpdated","boardUpdated","countryUpdated","updatedPrimaryGoalCategory","updatedFormData","appendPrimaryGoalCategoryToFormState","handleGradeSelect","selectedGrade","WARNING_MESSAGES","handleBoardChange","boardCode","handleCountryChange","updatedCountryCode","jsx","ClassDetailsSelectors"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"class-details-utils.js","sources":["../../../../../../src/features/milestone/create/comps/class-details-step/class-details-utils.tsx"],"sourcesContent":["import type { ISectionOption } from '../../../../ui/section-list/section-list-types';\nimport type {\n IMilestoneConfig,\n TCourseStream,\n TCurriculumStandardOption,\n TEnrollmentTypes,\n TGoalCategory,\n} from '../../milestone-create-types';\n\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport { getCurriculumStandardsFromConfig } from '../../milestone-create-helpers';\nimport * as Styled from './class-details-styled';\n\ninterface IGetCategorizedCurriculumStandards {\n (\n config: IMilestoneConfig,\n options: {\n grade: string;\n countryCode: string;\n goalCategory: TGoalCategory;\n courseStream: TCourseStream;\n classRatio?: number;\n enrollmentType: TEnrollmentTypes;\n },\n ): ISectionOption<TCurriculumStandardOption>[];\n}\n\nconst getCategorizedCurriculumStandards: IGetCategorizedCurriculumStandards = (\n config,\n { grade, countryCode, goalCategory, courseStream, classRatio, enrollmentType },\n) => {\n const curriculumStandards = getCurriculumStandardsFromConfig(config, {\n grade,\n countryCode,\n goalCategory,\n courseStream,\n classRatio,\n enrollmentType,\n });\n\n const addTagToSectionOption = (option: TCurriculumStandardOption) => {\n const { isDefault } = option;\n\n if (isDefault) {\n return {\n ...option,\n tag: (\n <ArrowTooltip renderAs=\"secondary\" position=\"top\" tooltipItem=\"Default\" zIndex={4}>\n <FlexView $width={20} $height={20} $alignItems=\"center\">\n <Styled.StyledStarIcon />\n </FlexView>\n </ArrowTooltip>\n ),\n };\n }\n\n return option;\n };\n\n const prioritySortByDefaultAndLabel = (\n a: TCurriculumStandardOption,\n b: TCurriculumStandardOption,\n ) => {\n //* If a has tag, It should come before b\n if (a.isDefault && !b.isDefault) return -1;\n\n //* If b has tag, It should come before a\n if (!a.isDefault && b.isDefault) return 1;\n\n //* Else we sort based on alphabetic order of label\n if (a.label.toUpperCase() > b.label.toUpperCase()) {\n return 1;\n }\n\n return -1;\n };\n\n const recommendedCurriculumStandards = curriculumStandards\n .filter(option => option.isRecommended)\n .map(addTagToSectionOption)\n .sort(prioritySortByDefaultAndLabel);\n const otherCurriculumStandards = curriculumStandards\n .filter(option => !option.isRecommended)\n .map(addTagToSectionOption)\n .sort(prioritySortByDefaultAndLabel);\n\n const categorizedCurriculumStandards = [\n { title: 'recommended', data: recommendedCurriculumStandards },\n { title: 'others', data: otherCurriculumStandards },\n ].filter(option => option.data.length > 0);\n\n return categorizedCurriculumStandards;\n};\n\nexport { getCategorizedCurriculumStandards };\n"],"names":["getCategorizedCurriculumStandards","config","grade","countryCode","goalCategory","courseStream","classRatio","enrollmentType","curriculumStandards","getCurriculumStandardsFromConfig","addTagToSectionOption","option","isDefault","jsx","ArrowTooltip","FlexView","Styled.StyledStarIcon","prioritySortByDefaultAndLabel","a","b","recommendedCurriculumStandards","otherCurriculumStandards"],"mappings":";;;;;AA4BM,MAAAA,IAAwE,CAC5EC,GACA,EAAE,OAAAC,GAAO,aAAAC,GAAa,cAAAC,GAAc,cAAAC,GAAc,YAAAC,GAAY,gBAAAC,QAC3D;AACG,QAAAC,IAAsBC,EAAiCR,GAAQ;AAAA,IACnE,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,CACD,GAEKG,IAAwB,CAACC,MAAsC;AAC7D,UAAA,EAAE,WAAAC,EAAc,IAAAD;AAEtB,WAAIC,IACK;AAAA,MACL,GAAGD;AAAA,MACH,KACG,gBAAAE,EAAAC,GAAA,EAAa,UAAS,aAAY,UAAS,OAAM,aAAY,WAAU,QAAQ,GAC9E,UAAA,gBAAAD,EAACE,KAAS,QAAQ,IAAI,SAAS,IAAI,aAAY,UAC7C,4BAACC,GAAA,CAAA,CAAsB,EAAA,CACzB,EACF,CAAA;AAAA,IAAA,IAKCL;AAAA,EAAA,GAGHM,IAAgC,CACpCC,GACAC,MAGID,EAAE,aAAa,CAACC,EAAE,YAAkB,KAGpC,CAACD,EAAE,aAAaC,EAAE,aAGlBD,EAAE,MAAM,YAAA,IAAgBC,EAAE,MAAM,gBAC3B,IAGF,IAGHC,IAAiCZ,EACpC,OAAO,CAAUG,MAAAA,EAAO,aAAa,EACrC,IAAID,CAAqB,EACzB,KAAKO,CAA6B,GAC/BI,IAA2Bb,EAC9B,OAAO,CAAAG,MAAU,CAACA,EAAO,aAAa,EACtC,IAAID,CAAqB,EACzB,KAAKO,CAA6B;AAO9B,SALgC;AAAA,IACrC,EAAE,OAAO,eAAe,MAAMG,EAA+B;AAAA,IAC7D,EAAE,OAAO,UAAU,MAAMC,EAAyB;AAAA,EAAA,EAClD,OAAO,CAAAV,MAAUA,EAAO,KAAK,SAAS,CAAC;AAG3C;"}
1
+ {"version":3,"file":"class-details-utils.js","sources":["../../../../../../src/features/milestone/create/comps/class-details-step/class-details-utils.tsx"],"sourcesContent":["import type { ISectionOption } from '../../../../ui/section-list/section-list-types';\nimport type {\n IMilestoneConfig,\n TCourseStream,\n TCurriculumStandardOption,\n TEnrollmentTypes,\n TGoalCategory,\n TMilestoneFormFlow,\n} from '../../milestone-create-types';\n\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport { getCurriculumStandardsFromConfig } from '../../milestone-create-helpers';\nimport * as Styled from './class-details-styled';\n\ninterface IGetCategorizedCurriculumStandards {\n (\n config: IMilestoneConfig,\n options: {\n grade: string;\n countryCode: string;\n goalCategory: TGoalCategory;\n courseStream: TCourseStream;\n classRatio?: number;\n enrollmentType: TEnrollmentTypes;\n flow?: TMilestoneFormFlow | null;\n },\n ): ISectionOption<TCurriculumStandardOption>[];\n}\n\nconst getCategorizedCurriculumStandards: IGetCategorizedCurriculumStandards = (\n config,\n { grade, countryCode, goalCategory, courseStream, classRatio, enrollmentType },\n) => {\n const curriculumStandards = getCurriculumStandardsFromConfig(config, {\n grade,\n countryCode,\n goalCategory,\n courseStream,\n classRatio,\n enrollmentType,\n });\n\n const addTagToSectionOption = (option: TCurriculumStandardOption) => {\n const { isDefault } = option;\n\n if (isDefault) {\n return {\n ...option,\n tag: (\n <ArrowTooltip renderAs=\"secondary\" position=\"top\" tooltipItem=\"Default\" zIndex={4}>\n <FlexView $width={20} $height={20} $alignItems=\"center\">\n <Styled.StyledStarIcon />\n </FlexView>\n </ArrowTooltip>\n ),\n };\n }\n\n return option;\n };\n\n const prioritySortByDefaultAndLabel = (\n a: TCurriculumStandardOption,\n b: TCurriculumStandardOption,\n ) => {\n //* If a has tag, It should come before b\n if (a.isDefault && !b.isDefault) return -1;\n\n //* If b has tag, It should come before a\n if (!a.isDefault && b.isDefault) return 1;\n\n //* Else we sort based on alphabetic order of label\n if (a.label.toUpperCase() > b.label.toUpperCase()) {\n return 1;\n }\n\n return -1;\n };\n\n const recommendedCurriculumStandards = curriculumStandards\n .filter(option => option.isRecommended)\n .map(addTagToSectionOption)\n .sort(prioritySortByDefaultAndLabel);\n const otherCurriculumStandards = curriculumStandards\n .filter(option => !option.isRecommended)\n .map(addTagToSectionOption)\n .sort(prioritySortByDefaultAndLabel);\n\n const categorizedCurriculumStandards = [\n { title: 'recommended', data: recommendedCurriculumStandards },\n { title: 'others', data: otherCurriculumStandards },\n ].filter(option => option.data.length > 0);\n\n return categorizedCurriculumStandards;\n};\n\nexport { getCategorizedCurriculumStandards };\n"],"names":["getCategorizedCurriculumStandards","config","grade","countryCode","goalCategory","courseStream","classRatio","enrollmentType","curriculumStandards","getCurriculumStandardsFromConfig","addTagToSectionOption","option","isDefault","jsx","ArrowTooltip","FlexView","Styled.StyledStarIcon","prioritySortByDefaultAndLabel","a","b","recommendedCurriculumStandards","otherCurriculumStandards"],"mappings":";;;;;AA8BM,MAAAA,IAAwE,CAC5EC,GACA,EAAE,OAAAC,GAAO,aAAAC,GAAa,cAAAC,GAAc,cAAAC,GAAc,YAAAC,GAAY,gBAAAC,QAC3D;AACG,QAAAC,IAAsBC,EAAiCR,GAAQ;AAAA,IACnE,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,CACD,GAEKG,IAAwB,CAACC,MAAsC;AAC7D,UAAA,EAAE,WAAAC,EAAc,IAAAD;AAEtB,WAAIC,IACK;AAAA,MACL,GAAGD;AAAA,MACH,KACG,gBAAAE,EAAAC,GAAA,EAAa,UAAS,aAAY,UAAS,OAAM,aAAY,WAAU,QAAQ,GAC9E,UAAA,gBAAAD,EAACE,KAAS,QAAQ,IAAI,SAAS,IAAI,aAAY,UAC7C,4BAACC,GAAA,CAAA,CAAsB,EAAA,CACzB,EACF,CAAA;AAAA,IAAA,IAKCL;AAAA,EAAA,GAGHM,IAAgC,CACpCC,GACAC,MAGID,EAAE,aAAa,CAACC,EAAE,YAAkB,KAGpC,CAACD,EAAE,aAAaC,EAAE,aAGlBD,EAAE,MAAM,YAAA,IAAgBC,EAAE,MAAM,gBAC3B,IAGF,IAGHC,IAAiCZ,EACpC,OAAO,CAAUG,MAAAA,EAAO,aAAa,EACrC,IAAID,CAAqB,EACzB,KAAKO,CAA6B,GAC/BI,IAA2Bb,EAC9B,OAAO,CAAAG,MAAU,CAACA,EAAO,aAAa,EACtC,IAAID,CAAqB,EACzB,KAAKO,CAA6B;AAO9B,SALgC;AAAA,IACrC,EAAE,OAAO,eAAe,MAAMG,EAA+B;AAAA,IAC7D,EAAE,OAAO,UAAU,MAAMC,EAAyB;AAAA,EAAA,EAClD,OAAO,CAAAV,MAAUA,EAAO,KAAK,SAAS,CAAC;AAG3C;"}
@@ -8,35 +8,37 @@ import P from "../../milestone-create-context.js";
8
8
  import { getCurriculumStandardsFromConfig as S, getDefaultBoard as F, appendPrimaryGoalCategoryToFormState as O } from "../../milestone-create-helpers.js";
9
9
  import T from "../body-layout/body-layout.js";
10
10
  import { getCategorizedCurriculumStandards as X } from "../class-details-step/class-details-utils.js";
11
- import { getGoalCategories as j, getTestTypeBasedCategory as g } from "./test-type-utils.js";
11
+ import { getGoalCategories as j, getTestTypeBasedCategory as l } from "./test-type-utils.js";
12
12
  const Z = _(
13
13
  ({
14
14
  currentStep: f,
15
15
  formData: b,
16
16
  config: t,
17
17
  courseStream: o,
18
- classRatio: s,
19
- onFormDataChange: l,
18
+ classRatio: d,
19
+ onFormDataChange: C,
20
20
  enrollmentType: r
21
21
  }) => {
22
- const { name: C, title: h } = f, x = {
23
- step: C
24
- }, { testType: d, grade: i, board: n, region: m } = b, { flow: p } = L(P), { onEvent: c } = w(x), E = j(d, t, o, r), G = k(
22
+ const { name: p, title: h } = f, x = {
23
+ step: p
24
+ }, { testType: g, grade: i, board: n, region: m } = b, { flow: s } = L(P), { onEvent: c } = w(x), E = j(g, t, o, r), G = k(
25
25
  (a) => {
26
26
  const $ = X(t, {
27
27
  grade: i ?? "",
28
- goalCategory: g(a),
28
+ goalCategory: l(a),
29
29
  countryCode: m ?? "",
30
30
  courseStream: o,
31
- classRatio: s,
32
- enrollmentType: r
31
+ classRatio: d,
32
+ enrollmentType: r,
33
+ flow: s
33
34
  }), v = S(t, {
34
35
  grade: i ?? "",
35
- goalCategory: g(a),
36
+ goalCategory: l(a),
36
37
  countryCode: m ?? "",
37
38
  courseStream: o,
38
- classRatio: s,
39
- enrollmentType: r
39
+ classRatio: d,
40
+ enrollmentType: r,
41
+ flow: s
40
42
  }), u = n && v.some((I) => I.id === n) ? n : F($), A = O(
41
43
  t,
42
44
  a,
@@ -47,9 +49,9 @@ const Z = _(
47
49
  m
48
50
  );
49
51
  c("SELECTED_GOAL_CATEGORY", {
50
- goal_category: g(a),
51
- flow: p
52
- }), l({
52
+ goal_category: l(a),
53
+ flow: s
54
+ }), C({
53
55
  testType: a,
54
56
  board: u,
55
57
  chapterGoalCategory: {
@@ -64,12 +66,12 @@ const Z = _(
64
66
  [
65
67
  r,
66
68
  n,
67
- s,
69
+ d,
68
70
  t,
69
71
  o,
70
- p,
72
+ s,
71
73
  i,
72
- l,
74
+ C,
73
75
  m,
74
76
  c
75
77
  ]
@@ -77,16 +79,16 @@ const Z = _(
77
79
  return /* @__PURE__ */ e(
78
80
  T,
79
81
  {
80
- stepName: C,
82
+ stepName: p,
81
83
  headerElement: /* @__PURE__ */ e(D, { $renderAs: "ab2", children: h }),
82
84
  bodyElement: /* @__PURE__ */ e(y, { $alignItems: "center", $height: "100%", $gapX: 5, children: /* @__PURE__ */ e(y, { $flexDirection: "row", $flexGapX: 1.5, children: /* @__PURE__ */ e(
83
85
  B,
84
86
  {
85
87
  options: E,
86
- value: d,
88
+ value: g,
87
89
  onChange: G,
88
90
  analyticsLabel: "goal_category",
89
- analyticsProps: { test_type: d },
91
+ analyticsProps: { test_type: g },
90
92
  type: "radio"
91
93
  }
92
94
  ) }) })
@@ -1 +1 @@
1
- {"version":3,"file":"test-type-step.js","sources":["../../../../../../src/features/milestone/create/comps/test-type-step/test-type-step.tsx"],"sourcesContent":["import type { IFormStepProps, IMileStoneFormFields } from '../../milestone-create-types';\n\nimport React, { memo, useCallback, useContext } from 'react';\n\nimport useTrackingContext from '../../../../ui/context/use-tracking-context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport SelectionCards from '../../../../ui/selection-cards/selection-cards';\nimport Text from '../../../../ui/text/text';\nimport MilestoneCreateContext from '../../milestone-create-context';\nimport {\n appendPrimaryGoalCategoryToFormState,\n getCurriculumStandardsFromConfig,\n getDefaultBoard,\n} from '../../milestone-create-helpers';\nimport BodyLayout from '../body-layout/body-layout';\nimport { getCategorizedCurriculumStandards } from '../class-details-step/class-details-utils';\nimport { getGoalCategories, getTestTypeBasedCategory } from './test-type-utils';\n\nconst TestTypeStep: React.FC<IFormStepProps> = memo(\n ({\n currentStep,\n formData,\n config,\n courseStream,\n classRatio,\n onFormDataChange,\n enrollmentType,\n }) => {\n const { name, title } = currentStep;\n const analyticsProps = {\n step: name,\n };\n const { testType, grade, board, region } = formData;\n\n const { flow } = useContext(MilestoneCreateContext);\n const { onEvent: trackEvent } = useTrackingContext(analyticsProps);\n\n const goalCategories = getGoalCategories(testType, config, courseStream, enrollmentType);\n\n const handleTestTypeChange = useCallback(\n (selectedTestType: NonNullable<IMileStoneFormFields['testType']>) => {\n //* This is to compensate for kids with no board.\n //* ref: https://www.notion.so/cuemath/FE-Goal-Creator-15a8897caec780f3ae21e34ce6f34371?p=1758897caec7803689f8cfc7acf5f5fc&pm=s\n const boards = getCategorizedCurriculumStandards(config, {\n grade: grade ?? '',\n goalCategory: getTestTypeBasedCategory(selectedTestType),\n countryCode: region ?? '',\n courseStream,\n classRatio,\n enrollmentType,\n });\n\n const curriculumStandards = getCurriculumStandardsFromConfig(config, {\n grade: grade ?? '',\n goalCategory: getTestTypeBasedCategory(selectedTestType),\n countryCode: region ?? '',\n courseStream,\n classRatio,\n enrollmentType,\n });\n\n const boardIsAvailableInCurriculum =\n board && curriculumStandards.some(boardData => boardData.id === board);\n\n const boardData = boardIsAvailableInCurriculum ? board : getDefaultBoard(boards);\n\n const primaryGoalCategory = appendPrimaryGoalCategoryToFormState(\n config,\n selectedTestType,\n grade,\n courseStream,\n enrollmentType,\n boardData,\n region,\n );\n\n trackEvent('SELECTED_GOAL_CATEGORY', {\n goal_category: getTestTypeBasedCategory(selectedTestType),\n flow,\n });\n\n onFormDataChange({\n testType: selectedTestType,\n board: boardData,\n chapterGoalCategory: {\n primaryGoalCategory,\n },\n committed: {\n testType: true,\n chapterGoalCategory: true,\n },\n });\n },\n [\n enrollmentType,\n board,\n classRatio,\n config,\n courseStream,\n flow,\n grade,\n onFormDataChange,\n region,\n trackEvent,\n ],\n );\n\n return (\n <BodyLayout\n stepName={name}\n headerElement={<Text $renderAs=\"ab2\">{title}</Text>}\n bodyElement={\n <FlexView $alignItems=\"center\" $height=\"100%\" $gapX={5}>\n <FlexView $flexDirection=\"row\" $flexGapX={1.5}>\n <SelectionCards\n options={goalCategories}\n value={testType}\n onChange={handleTestTypeChange}\n analyticsLabel=\"goal_category\"\n analyticsProps={{ test_type: testType }}\n type=\"radio\"\n />\n </FlexView>\n </FlexView>\n }\n />\n );\n },\n);\n\nexport default TestTypeStep;\n"],"names":["TestTypeStep","memo","currentStep","formData","config","courseStream","classRatio","onFormDataChange","enrollmentType","name","title","analyticsProps","testType","grade","board","region","flow","useContext","MilestoneCreateContext","trackEvent","useTrackingContext","goalCategories","getGoalCategories","handleTestTypeChange","useCallback","selectedTestType","boards","getCategorizedCurriculumStandards","getTestTypeBasedCategory","curriculumStandards","getCurriculumStandardsFromConfig","boardData","getDefaultBoard","primaryGoalCategory","appendPrimaryGoalCategoryToFormState","jsx","BodyLayout","Text","FlexView","SelectionCards"],"mappings":";;;;;;;;;;;AAkBA,MAAMA,IAAyCC;AAAA,EAC7C,CAAC;AAAA,IACC,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,MACI;AACE,UAAA,EAAE,MAAAC,GAAM,OAAAC,EAAU,IAAAR,GAClBS,IAAiB;AAAA,MACrB,MAAMF;AAAA,IAAA,GAEF,EAAE,UAAAG,GAAU,OAAAC,GAAO,OAAAC,GAAO,QAAAC,MAAWZ,GAErC,EAAE,MAAAa,EAAA,IAASC,EAAWC,CAAsB,GAC5C,EAAE,SAASC,EAAW,IAAIC,EAAmBT,CAAc,GAE3DU,IAAiBC,EAAkBV,GAAUR,GAAQC,GAAcG,CAAc,GAEjFe,IAAuBC;AAAA,MAC3B,CAACC,MAAoE;AAG7D,cAAAC,IAASC,EAAkCvB,GAAQ;AAAA,UACvD,OAAOS,KAAS;AAAA,UAChB,cAAce,EAAyBH,CAAgB;AAAA,UACvD,aAAaV,KAAU;AAAA,UACvB,cAAAV;AAAA,UACA,YAAAC;AAAA,UACA,gBAAAE;AAAA,QAAA,CACD,GAEKqB,IAAsBC,EAAiC1B,GAAQ;AAAA,UACnE,OAAOS,KAAS;AAAA,UAChB,cAAce,EAAyBH,CAAgB;AAAA,UACvD,aAAaV,KAAU;AAAA,UACvB,cAAAV;AAAA,UACA,YAAAC;AAAA,UACA,gBAAAE;AAAA,QAAA,CACD,GAKKuB,IAFJjB,KAASe,EAAoB,KAAK,CAAAE,MAAaA,EAAU,OAAOjB,CAAK,IAEtBA,IAAQkB,EAAgBN,CAAM,GAEzEO,IAAsBC;AAAA,UAC1B9B;AAAA,UACAqB;AAAA,UACAZ;AAAA,UACAR;AAAA,UACAG;AAAA,UACAuB;AAAA,UACAhB;AAAA,QAAA;AAGF,QAAAI,EAAW,0BAA0B;AAAA,UACnC,eAAeS,EAAyBH,CAAgB;AAAA,UACxD,MAAAT;AAAA,QAAA,CACD,GAEgBT,EAAA;AAAA,UACf,UAAUkB;AAAA,UACV,OAAOM;AAAA,UACP,qBAAqB;AAAA,YACnB,qBAAAE;AAAA,UACF;AAAA,UACA,WAAW;AAAA,YACT,UAAU;AAAA,YACV,qBAAqB;AAAA,UACvB;AAAA,QAAA,CACD;AAAA,MACH;AAAA,MACA;AAAA,QACEzB;AAAA,QACAM;AAAA,QACAR;AAAA,QACAF;AAAA,QACAC;AAAA,QACAW;AAAA,QACAH;AAAA,QACAN;AAAA,QACAQ;AAAA,QACAI;AAAA,MACF;AAAA,IAAA;AAIA,WAAA,gBAAAgB;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAU3B;AAAA,QACV,eAAe,gBAAA0B,EAACE,GAAK,EAAA,WAAU,OAAO,UAAM3B,GAAA;AAAA,QAC5C,aACE,gBAAAyB,EAACG,GAAS,EAAA,aAAY,UAAS,SAAQ,QAAO,OAAO,GACnD,UAAC,gBAAAH,EAAAG,GAAA,EAAS,gBAAe,OAAM,WAAW,KACxC,UAAA,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,SAASlB;AAAA,YACT,OAAOT;AAAA,YACP,UAAUW;AAAA,YACV,gBAAe;AAAA,YACf,gBAAgB,EAAE,WAAWX,EAAS;AAAA,YACtC,MAAK;AAAA,UAAA;AAAA,WAET,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;"}
1
+ {"version":3,"file":"test-type-step.js","sources":["../../../../../../src/features/milestone/create/comps/test-type-step/test-type-step.tsx"],"sourcesContent":["import type { IFormStepProps, IMileStoneFormFields } from '../../milestone-create-types';\n\nimport React, { memo, useCallback, useContext } from 'react';\n\nimport useTrackingContext from '../../../../ui/context/use-tracking-context';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport SelectionCards from '../../../../ui/selection-cards/selection-cards';\nimport Text from '../../../../ui/text/text';\nimport MilestoneCreateContext from '../../milestone-create-context';\nimport {\n appendPrimaryGoalCategoryToFormState,\n getCurriculumStandardsFromConfig,\n getDefaultBoard,\n} from '../../milestone-create-helpers';\nimport BodyLayout from '../body-layout/body-layout';\nimport { getCategorizedCurriculumStandards } from '../class-details-step/class-details-utils';\nimport { getGoalCategories, getTestTypeBasedCategory } from './test-type-utils';\n\nconst TestTypeStep: React.FC<IFormStepProps> = memo(\n ({\n currentStep,\n formData,\n config,\n courseStream,\n classRatio,\n onFormDataChange,\n enrollmentType,\n }) => {\n const { name, title } = currentStep;\n const analyticsProps = {\n step: name,\n };\n const { testType, grade, board, region } = formData;\n\n const { flow } = useContext(MilestoneCreateContext);\n const { onEvent: trackEvent } = useTrackingContext(analyticsProps);\n\n const goalCategories = getGoalCategories(testType, config, courseStream, enrollmentType);\n\n const handleTestTypeChange = useCallback(\n (selectedTestType: NonNullable<IMileStoneFormFields['testType']>) => {\n //* This is to compensate for kids with no board.\n //* ref: https://www.notion.so/cuemath/FE-Goal-Creator-15a8897caec780f3ae21e34ce6f34371?p=1758897caec7803689f8cfc7acf5f5fc&pm=s\n const boards = getCategorizedCurriculumStandards(config, {\n grade: grade ?? '',\n goalCategory: getTestTypeBasedCategory(selectedTestType),\n countryCode: region ?? '',\n courseStream,\n classRatio,\n enrollmentType,\n flow,\n });\n\n const curriculumStandards = getCurriculumStandardsFromConfig(config, {\n grade: grade ?? '',\n goalCategory: getTestTypeBasedCategory(selectedTestType),\n countryCode: region ?? '',\n courseStream,\n classRatio,\n enrollmentType,\n flow,\n });\n\n const boardIsAvailableInCurriculum =\n board && curriculumStandards.some(boardData => boardData.id === board);\n\n const boardData = boardIsAvailableInCurriculum ? board : getDefaultBoard(boards);\n\n const primaryGoalCategory = appendPrimaryGoalCategoryToFormState(\n config,\n selectedTestType,\n grade,\n courseStream,\n enrollmentType,\n boardData,\n region,\n );\n\n trackEvent('SELECTED_GOAL_CATEGORY', {\n goal_category: getTestTypeBasedCategory(selectedTestType),\n flow,\n });\n\n onFormDataChange({\n testType: selectedTestType,\n board: boardData,\n chapterGoalCategory: {\n primaryGoalCategory,\n },\n committed: {\n testType: true,\n chapterGoalCategory: true,\n },\n });\n },\n [\n enrollmentType,\n board,\n classRatio,\n config,\n courseStream,\n flow,\n grade,\n onFormDataChange,\n region,\n trackEvent,\n ],\n );\n\n return (\n <BodyLayout\n stepName={name}\n headerElement={<Text $renderAs=\"ab2\">{title}</Text>}\n bodyElement={\n <FlexView $alignItems=\"center\" $height=\"100%\" $gapX={5}>\n <FlexView $flexDirection=\"row\" $flexGapX={1.5}>\n <SelectionCards\n options={goalCategories}\n value={testType}\n onChange={handleTestTypeChange}\n analyticsLabel=\"goal_category\"\n analyticsProps={{ test_type: testType }}\n type=\"radio\"\n />\n </FlexView>\n </FlexView>\n }\n />\n );\n },\n);\n\nexport default TestTypeStep;\n"],"names":["TestTypeStep","memo","currentStep","formData","config","courseStream","classRatio","onFormDataChange","enrollmentType","name","title","analyticsProps","testType","grade","board","region","flow","useContext","MilestoneCreateContext","trackEvent","useTrackingContext","goalCategories","getGoalCategories","handleTestTypeChange","useCallback","selectedTestType","boards","getCategorizedCurriculumStandards","getTestTypeBasedCategory","curriculumStandards","getCurriculumStandardsFromConfig","boardData","getDefaultBoard","primaryGoalCategory","appendPrimaryGoalCategoryToFormState","jsx","BodyLayout","Text","FlexView","SelectionCards"],"mappings":";;;;;;;;;;;AAkBA,MAAMA,IAAyCC;AAAA,EAC7C,CAAC;AAAA,IACC,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,MACI;AACE,UAAA,EAAE,MAAAC,GAAM,OAAAC,EAAU,IAAAR,GAClBS,IAAiB;AAAA,MACrB,MAAMF;AAAA,IAAA,GAEF,EAAE,UAAAG,GAAU,OAAAC,GAAO,OAAAC,GAAO,QAAAC,MAAWZ,GAErC,EAAE,MAAAa,EAAA,IAASC,EAAWC,CAAsB,GAC5C,EAAE,SAASC,EAAW,IAAIC,EAAmBT,CAAc,GAE3DU,IAAiBC,EAAkBV,GAAUR,GAAQC,GAAcG,CAAc,GAEjFe,IAAuBC;AAAA,MAC3B,CAACC,MAAoE;AAG7D,cAAAC,IAASC,EAAkCvB,GAAQ;AAAA,UACvD,OAAOS,KAAS;AAAA,UAChB,cAAce,EAAyBH,CAAgB;AAAA,UACvD,aAAaV,KAAU;AAAA,UACvB,cAAAV;AAAA,UACA,YAAAC;AAAA,UACA,gBAAAE;AAAA,UACA,MAAAQ;AAAA,QAAA,CACD,GAEKa,IAAsBC,EAAiC1B,GAAQ;AAAA,UACnE,OAAOS,KAAS;AAAA,UAChB,cAAce,EAAyBH,CAAgB;AAAA,UACvD,aAAaV,KAAU;AAAA,UACvB,cAAAV;AAAA,UACA,YAAAC;AAAA,UACA,gBAAAE;AAAA,UACA,MAAAQ;AAAA,QAAA,CACD,GAKKe,IAFJjB,KAASe,EAAoB,KAAK,CAAAE,MAAaA,EAAU,OAAOjB,CAAK,IAEtBA,IAAQkB,EAAgBN,CAAM,GAEzEO,IAAsBC;AAAA,UAC1B9B;AAAA,UACAqB;AAAA,UACAZ;AAAA,UACAR;AAAA,UACAG;AAAA,UACAuB;AAAA,UACAhB;AAAA,QAAA;AAGF,QAAAI,EAAW,0BAA0B;AAAA,UACnC,eAAeS,EAAyBH,CAAgB;AAAA,UACxD,MAAAT;AAAA,QAAA,CACD,GAEgBT,EAAA;AAAA,UACf,UAAUkB;AAAA,UACV,OAAOM;AAAA,UACP,qBAAqB;AAAA,YACnB,qBAAAE;AAAA,UACF;AAAA,UACA,WAAW;AAAA,YACT,UAAU;AAAA,YACV,qBAAqB;AAAA,UACvB;AAAA,QAAA,CACD;AAAA,MACH;AAAA,MACA;AAAA,QACEzB;AAAA,QACAM;AAAA,QACAR;AAAA,QACAF;AAAA,QACAC;AAAA,QACAW;AAAA,QACAH;AAAA,QACAN;AAAA,QACAQ;AAAA,QACAI;AAAA,MACF;AAAA,IAAA;AAIA,WAAA,gBAAAgB;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAU3B;AAAA,QACV,eAAe,gBAAA0B,EAACE,GAAK,EAAA,WAAU,OAAO,UAAM3B,GAAA;AAAA,QAC5C,aACE,gBAAAyB,EAACG,GAAS,EAAA,aAAY,UAAS,SAAQ,QAAO,OAAO,GACnD,UAAC,gBAAAH,EAAAG,GAAA,EAAS,gBAAe,OAAM,WAAW,KACxC,UAAA,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,SAASlB;AAAA,YACT,OAAOT;AAAA,YACP,UAAUW;AAAA,YACV,gBAAe;AAAA,YACf,gBAAgB,EAAE,WAAWX,EAAS;AAAA,YACtC,MAAK;AAAA,UAAA;AAAA,WAET,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;"}
@@ -2,235 +2,235 @@ import { COUNTRY_MAP as p } from "../../../constants/country.js";
2
2
  import { getStudentEnrollmentSupported as y, getIfGoalCurriculumStandardIsAccessible as h } from "./comps/chapters-selection-step/utils.js";
3
3
  import { checkEnrollmentAvailable as b, getTestTypeBasedCategory as S } from "./comps/test-type-step/test-type-utils.js";
4
4
  import { GOAL_EDIT_FLOWS as G } from "./milestone-create-constants.js";
5
- const A = (n, t) => {
6
- t.forEach((e) => {
5
+ const A = (n, r) => {
6
+ r.forEach((e) => {
7
7
  n[e] = void 0;
8
8
  });
9
- }, F = (n, t, e, o, a = []) => {
10
- const { isLeafNode: s, next: i, reset: c } = n, u = { ...t };
11
- if (s)
12
- return A(u, [...c, ...a]), u;
13
- if (i) {
14
- let d = o, f;
15
- if (i.every((r) => {
16
- var m;
17
- let l = !1;
18
- return r.when !== void 0 ? l = r.when.every(([_, g]) => u[_] === g) : l = !0, l ? (d ? (m = r == null ? void 0 : r.reset) == null || m.forEach((_) => {
9
+ }, E = (n, r, e, l, a = []) => {
10
+ const { isLeafNode: i, next: o, reset: u } = n, s = { ...r };
11
+ if (i)
12
+ return A(s, [...u, ...a]), s;
13
+ if (o) {
14
+ let f = l, m;
15
+ if (o.every((t) => {
16
+ var c;
17
+ let d = !1;
18
+ return t.when !== void 0 ? d = t.when.every(([_, g]) => s[_] === g) : d = !0, d ? (f ? (c = t == null ? void 0 : t.reset) == null || c.forEach((_) => {
19
19
  a.push(_);
20
- }) : e === (r == null ? void 0 : r.name) && (d = !0), f = r, !1) : !0;
21
- }), f)
22
- return F(
23
- f,
24
- u,
20
+ }) : e === (t == null ? void 0 : t.name) && (f = !0), m = t, !1) : !0;
21
+ }), m)
22
+ return E(
23
+ m,
24
+ s,
25
25
  e,
26
- d,
26
+ f,
27
27
  a
28
28
  );
29
29
  }
30
- }, E = (n, t, e) => {
31
- const { isLeafNode: o, required: a, next: s } = n;
32
- if (o)
30
+ }, F = (n, r, e) => {
31
+ const { isLeafNode: l, required: a, next: i } = n;
32
+ if (l)
33
33
  return n;
34
- const i = a.every((c) => t[c] !== void 0);
34
+ const o = a.every((u) => r[u] !== void 0);
35
35
  if (G.includes(e)) {
36
- const c = a.every(
37
- (u) => t.reviewed[u] === !0
36
+ const u = a.every(
37
+ (s) => r.reviewed[s] === !0
38
38
  );
39
- if (!i || !c)
39
+ if (!o || !u)
40
40
  return {
41
41
  ...n,
42
42
  next: void 0
43
43
  };
44
44
  } else {
45
- const c = a.every(
46
- (u) => t.committed[u] === !0
45
+ const u = a.every(
46
+ (s) => r.committed[s] === !0
47
47
  );
48
- if (!i || !c)
48
+ if (!o || !u)
49
49
  return {
50
50
  ...n,
51
51
  next: void 0
52
52
  };
53
53
  }
54
- if (s) {
55
- let c;
56
- if (s.every((u) => u.when === void 0 || u.when.every(
57
- ([f, r]) => t[f] === r
58
- ) ? (c = u, !1) : !0), c)
59
- return E(c, t, e);
54
+ if (i) {
55
+ let u;
56
+ if (i.every((s) => s.when === void 0 || s.when.every(
57
+ ([m, t]) => r[m] === t
58
+ ) ? (u = s, !1) : !0), u)
59
+ return F(u, r, e);
60
60
  }
61
- }, L = (n) => n.academic_events.reduce((t, e) => {
62
- const { id: o, event_name: a, event_type: s } = e;
63
- return s === "SCHOOL_TEST" && t.push({
64
- id: o,
61
+ }, L = (n) => n.academic_events.reduce((r, e) => {
62
+ const { id: l, event_name: a, event_type: i } = e;
63
+ return i === "SCHOOL_TEST" && r.push({
64
+ id: l,
65
65
  label: a
66
- }), t;
66
+ }), r;
67
67
  }, []), T = (n) => {
68
- const { currentGoalData: t, enrollmentType: e, currentCountryCode: o, grade: a, selectedCategory: s } = n, {
69
- blocked_countries: i,
70
- available_countries: c,
71
- available_grades: u,
72
- goal_category: d,
73
- available_enrollment_types: f,
74
- blocked_enrollment_types: r
75
- } = t, l = y(
76
- r,
77
- f,
68
+ const { currentGoalData: r, enrollmentType: e, currentCountryCode: l, grade: a, selectedCategory: i } = n, {
69
+ blocked_countries: o,
70
+ available_countries: u,
71
+ available_grades: s,
72
+ goal_category: f,
73
+ available_enrollment_types: m,
74
+ blocked_enrollment_types: t
75
+ } = r, d = y(
76
+ t,
77
+ m,
78
78
  e
79
- ), m = i.some(
80
- (v) => v === o
81
- ), _ = c.length > 0 ? c.some((v) => v === o) : !0, g = u.some((v) => v === a);
82
- return l && !m && _ && g && s === d;
83
- }, N = (n, { grade: t, countryCode: e, goalCategory: o, courseStream: a, classRatio: s, enrollmentType: i }) => {
84
- const { goal_curriculum_map: c, curriculum_standards: u } = n, d = c.filter((r) => r.course_stream === a), f = (r) => d.some((l) => !l.is_live || l.goal_category !== o || s && l.available_class_ratios.length > 0 && !l.available_class_ratios.includes(s) || l.goal_curriculum_standard && l.goal_curriculum_standard !== r.code || o === "SCHOOL_SUCCESS" && !l.goal_curriculum_standard || l.available_countries.length > 0 && !l.available_countries.includes(e) || l.available_countries.length === 0 && l.blocked_countries.includes(e) || !l.available_grades.includes(t) ? !1 : b(l, i));
85
- return u.filter(f).map(
79
+ ), c = o.some(
80
+ (v) => v === l
81
+ ), _ = u.length > 0 ? u.some((v) => v === l) : !0, g = s.some((v) => v === a);
82
+ return d && !c && _ && g && i === f;
83
+ }, R = (n, { grade: r, countryCode: e, goalCategory: l, courseStream: a, classRatio: i, enrollmentType: o, flow: u }) => {
84
+ const { goal_curriculum_map: s, curriculum_standards: f } = n, m = s.filter((d) => d.course_stream === a), t = (d) => m.some((c) => u === "CREATE" && c.is_live || c.goal_category !== l || i && c.available_class_ratios.length > 0 && !c.available_class_ratios.includes(i) || c.goal_curriculum_standard && c.goal_curriculum_standard !== d.code || l === "SCHOOL_SUCCESS" && !c.goal_curriculum_standard || c.available_countries.length > 0 && !c.available_countries.includes(e) || c.available_countries.length === 0 && c.blocked_countries.includes(e) || !c.available_grades.includes(r) ? !1 : b(c, o));
85
+ return f.filter(t).map(
86
86
  ({
87
- code: r,
88
- name: l,
89
- default_in_countries: m,
90
- recommended_in_countries: _
87
+ code: d,
88
+ name: c,
89
+ default_in_countries: _,
90
+ recommended_in_countries: g
91
91
  }) => ({
92
- id: r,
93
- label: l,
94
- isDefault: m.includes(e),
95
- isRecommended: _.includes(e)
92
+ id: d,
93
+ label: c,
94
+ isDefault: _.includes(e),
95
+ isRecommended: g.includes(e)
96
96
  })
97
- ).sort((r, l) => r.label.toUpperCase() > l.label.toUpperCase() ? 1 : -1);
98
- }, P = (n, t) => {
99
- const { goal_curriculum_map: e } = n, { grade: o, countryCode: a, goalCategory: s, curriculumStandard: i, courseStream: c, enrollmentType: u } = t, d = e.filter((r) => r.course_stream === c), f = (r) => r.goal_category !== s || i && r.goal_curriculum_standard !== i || r.available_countries.length > 0 && !r.available_countries.includes(a) || r.available_countries.length === 0 && r.blocked_countries.includes(a) || !r.available_grades.includes(o) ? !1 : b(r, u);
100
- return d == null ? void 0 : d.filter(f).map(({ goal_code: r, goal_name: l }) => ({
101
- id: r,
102
- label: l
103
- })).sort((r, l) => r.label.toUpperCase() > l.label.toUpperCase() ? 1 : -1);
104
- }, B = (n) => n.grades.reduce((t, e) => (e === "-1" || e === "0" ? t.push({
97
+ ).sort((d, c) => d.label.toUpperCase() > c.label.toUpperCase() ? 1 : -1);
98
+ }, N = (n, r) => {
99
+ const { goal_curriculum_map: e } = n, { grade: l, countryCode: a, goalCategory: i, curriculumStandard: o, courseStream: u, enrollmentType: s } = r, f = e.filter((t) => t.course_stream === u), m = (t) => t.goal_category !== i || o && t.goal_curriculum_standard !== o || t.available_countries.length > 0 && !t.available_countries.includes(a) || t.available_countries.length === 0 && t.blocked_countries.includes(a) || !t.available_grades.includes(l) ? !1 : b(t, s);
100
+ return f == null ? void 0 : f.filter(m).map(({ goal_code: t, goal_name: d }) => ({
101
+ id: t,
102
+ label: d
103
+ })).sort((t, d) => t.label.toUpperCase() > d.label.toUpperCase() ? 1 : -1);
104
+ }, B = (n) => n.grades.reduce((r, e) => (e === "-1" || e === "0" ? r.push({
105
105
  id: e,
106
106
  label: e === "-1" ? "Pre-K" : "KG"
107
- }) : t.push({
107
+ }) : r.push({
108
108
  id: e,
109
109
  label: `Grade ${e}`
110
- }), t), []), R = (n, t) => {
111
- const { preference_config: e } = n, o = (a) => {
112
- const { grade: s, courseStream: i, preferenceCategory: c } = t;
113
- return !(a.course_stream !== i || a.preference_category !== c || a.preference_grades.length > 0 && !a.preference_grades.includes(s) || !a.is_live);
110
+ }), r), []), P = (n, r) => {
111
+ const { preference_config: e } = n, l = (a) => {
112
+ const { grade: i, courseStream: o, preferenceCategory: u } = r;
113
+ return !(a.course_stream !== o || a.preference_category !== u || a.preference_grades.length > 0 && !a.preference_grades.includes(i) || !a.is_live);
114
114
  };
115
- return e == null ? void 0 : e.filter(o).map(
116
- ({ preference_code: a, preference_name: s, preference_description: i }) => ({
115
+ return e == null ? void 0 : e.filter(l).map(
116
+ ({ preference_code: a, preference_name: i, preference_description: o }) => ({
117
117
  id: a,
118
- label: s,
119
- description: i
118
+ label: i,
119
+ description: o
120
120
  })
121
121
  );
122
- }, U = (n, t, e, o) => {
123
- const { goal_curriculum_map: a } = n, s = B(n), i = ({ id: c }) => a.filter((u) => u.course_stream === e).some((u) => {
122
+ }, U = (n, r, e, l) => {
123
+ const { goal_curriculum_map: a } = n, i = B(n), o = ({ id: u }) => a.filter((s) => s.course_stream === e).some((s) => {
124
124
  const {
125
- available_grades: d,
126
- goal_category: f,
127
- available_enrollment_types: r,
128
- blocked_enrollment_types: l
129
- } = u;
130
- return r.length > 0 && !r.includes(o) || r.length === 0 && l.includes(o) ? !1 : f === t && d.includes(c);
125
+ available_grades: f,
126
+ goal_category: m,
127
+ available_enrollment_types: t,
128
+ blocked_enrollment_types: d
129
+ } = s;
130
+ return t.length > 0 && !t.includes(l) || t.length === 0 && d.includes(l) ? !1 : m === r && f.includes(u);
131
131
  });
132
- return s.filter(i);
133
- }, q = (n, t, e, o, a) => {
132
+ return i.filter(o);
133
+ }, q = (n, r, e, l, a) => {
134
134
  if (e === "KG" || Number(e) < 7) return [];
135
- const { goal_curriculum_map: s } = n, i = (u) => u.course_stream !== o ? !1 : b(u, a);
136
- return s.filter(i).reduce((u, d) => {
135
+ const { goal_curriculum_map: i } = n, o = (s) => s.course_stream !== l ? !1 : b(s, a);
136
+ return i.filter(o).reduce((s, f) => {
137
137
  const {
138
- available_grades: f,
139
- goal_curriculum_standard: r,
140
- program_name: l,
141
- program_code: m
142
- } = d;
143
- return f.some((C) => C === e) && r === t && u.push({
144
- id: m,
145
- label: l
146
- }), u;
138
+ available_grades: m,
139
+ goal_curriculum_standard: t,
140
+ program_name: d,
141
+ program_code: c
142
+ } = f;
143
+ return m.some((C) => C === e) && t === r && s.push({
144
+ id: c,
145
+ label: d
146
+ }), s;
147
147
  }, []);
148
148
  }, O = (n) => {
149
149
  var e;
150
- return (e = p.find((o) => o.country_code === n)) == null ? void 0 : e.region_code;
151
- }, M = (n, t, e, o) => {
150
+ return (e = p.find((l) => l.country_code === n)) == null ? void 0 : e.region_code;
151
+ }, M = (n, r, e, l) => {
152
152
  if (n && e) {
153
- const { country_code: s, place_id: i } = n;
153
+ const { country_code: i, place_id: o } = n;
154
154
  return {
155
155
  committed: {},
156
156
  reviewed: {},
157
157
  grade: e,
158
158
  schoolInfo: {
159
- countryCode: s,
159
+ countryCode: i,
160
160
  stateCode: "",
161
- id: i
161
+ id: o
162
162
  },
163
- region: s,
164
- board: t ?? void 0
163
+ region: i,
164
+ board: r ?? void 0
165
165
  };
166
166
  }
167
- const a = o ? O(o) : void 0;
167
+ const a = l ? O(l) : void 0;
168
168
  return e ? {
169
169
  committed: {},
170
170
  reviewed: {},
171
171
  grade: e,
172
172
  region: a,
173
- board: t ?? void 0
173
+ board: r ?? void 0
174
174
  } : {
175
175
  committed: {},
176
176
  reviewed: {}
177
177
  };
178
- }, W = (n, t, e, o) => {
179
- if (t && o) {
180
- const { country_code: a, place_id: s } = t;
178
+ }, W = (n, r, e, l) => {
179
+ if (r && l) {
180
+ const { country_code: a, place_id: i } = r;
181
181
  return {
182
182
  ...n,
183
- grade: o,
183
+ grade: l,
184
184
  schoolInfo: {
185
185
  countryCode: a,
186
186
  stateCode: "",
187
- id: s
187
+ id: i
188
188
  },
189
189
  board: n.board ?? e ?? void 0
190
190
  };
191
191
  }
192
192
  return n;
193
- }, j = (n, t, e, o, a, s, i) => {
194
- const { goal_curriculum_map: c } = n, u = t === "no-test", d = S(t);
195
- return c.find((r) => {
196
- const l = T({
197
- currentGoalData: r,
193
+ }, j = (n, r, e, l, a, i, o) => {
194
+ const { goal_curriculum_map: u } = n, s = r === "no-test", f = S(r);
195
+ return u.find((t) => {
196
+ const d = T({
197
+ currentGoalData: t,
198
198
  grade: e,
199
- currentCountryCode: i,
200
- selectedCategory: d,
199
+ currentCountryCode: o,
200
+ selectedCategory: f,
201
201
  enrollmentType: a
202
- }), { goal_curriculum_standard: m } = r, _ = h({
203
- goalCurriculumStandard: m,
204
- referenceStandard: s
205
- }), g = r.course_stream === o;
206
- return u ? g && l && _ : g && l;
202
+ }), { goal_curriculum_standard: c } = t, _ = h({
203
+ goalCurriculumStandard: c,
204
+ referenceStandard: i
205
+ }), g = t.course_stream === l;
206
+ return s ? g && d && _ : g && d;
207
207
  });
208
208
  }, K = (n) => {
209
- var a, s;
210
- let t = [], e = [];
211
- for (const i of n)
212
- i.title === "recommended" ? t = i.data : i.title === "others" && (e = i.data);
213
- const o = t.find((i) => i.isDefault && i.isRecommended);
214
- if (o)
215
- return o.id;
216
- if (t.length > 0)
217
- return (a = t[0]) == null ? void 0 : a.id;
209
+ var a, i;
210
+ let r = [], e = [];
211
+ for (const o of n)
212
+ o.title === "recommended" ? r = o.data : o.title === "others" && (e = o.data);
213
+ const l = r.find((o) => o.isDefault && o.isRecommended);
214
+ if (l)
215
+ return l.id;
216
+ if (r.length > 0)
217
+ return (a = r[0]) == null ? void 0 : a.id;
218
218
  if (e.length > 0)
219
- return (s = e[0]) == null ? void 0 : s.id;
219
+ return (i = e[0]) == null ? void 0 : i.id;
220
220
  };
221
221
  export {
222
222
  j as appendPrimaryGoalCategoryToFormState,
223
223
  W as appendSchoolDataToFormState,
224
- F as clearNextFields,
224
+ E as clearNextFields,
225
225
  M as generateFormStateWithPrefilledSchoolData,
226
- E as getCurrenStep,
227
- N as getCurriculumStandardsFromConfig,
226
+ F as getCurrenStep,
227
+ R as getCurriculumStandardsFromConfig,
228
228
  K as getDefaultBoard,
229
- P as getGoalsFromConfig,
229
+ N as getGoalsFromConfig,
230
230
  U as getGradesBasedOnGoalAvailability,
231
231
  B as getGradesFromConfig,
232
232
  q as getMajorsFromConfigBasedOnBoardAndGrade,
233
- R as getPreferencesFromConfig,
233
+ P as getPreferencesFromConfig,
234
234
  O as getRegionCodeBasedOnCountryCode,
235
235
  L as getSchoolTestsFromConfig
236
236
  };