@cuemath/leap 3.0.27-beta-0.4 → 3.0.27-beta-0.6

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,35 +1,35 @@
1
- import { jsxs as S, Fragment as h, jsx as G } from "react/jsx-runtime";
2
- import { memo as z, useMemo as O, useCallback as A, useEffect as E } from "react";
3
- import j from "../../../../ui/inputs/select-input/select-input.js";
4
- import { GOAL_CATEGORY as M } from "../../../constants.js";
5
- import { useMilestoneContext as H } from "../../milestone-create-context.js";
6
- import { getCurriculumStandardsFromConfig as P } from "../../milestone-create-helpers.js";
7
- import { getGradeBoardAndMajorBasedProgramCode as X } from "../chapters-selection-step/utils.js";
8
- import { useCatalogHelpers as g } from "./hooks/use-catalog-helpers.js";
9
- const W = z(
1
+ import { jsxs as b, Fragment as v, jsx as f } from "react/jsx-runtime";
2
+ import { memo as L, useMemo as A, useCallback as G, useEffect as S } from "react";
3
+ import E from "../../../../ui/inputs/select-input/select-input.js";
4
+ import { GOAL_CATEGORY as h } from "../../../constants.js";
5
+ import { useMilestoneContext as z } from "../../milestone-create-context.js";
6
+ import { getCurriculumStandardsFromConfig as H } from "../../milestone-create-helpers.js";
7
+ import { getGradeBoardAndMajorBasedProgramCode as P } from "../chapters-selection-step/utils.js";
8
+ import { useCatalogHelpers as R } from "./hooks/use-catalog-helpers.js";
9
+ const Q = L(
10
10
  ({
11
11
  config: s,
12
12
  region: t = "",
13
13
  courseStream: o,
14
14
  classRatio: C,
15
15
  searchChapterFields: e,
16
- getCatalogChapters: x,
16
+ getCatalogChapters: O,
17
17
  onFormDataChange: r,
18
18
  enrollmentType: u
19
19
  }) => {
20
- const { mode: _, flow: a } = H(), {
21
- selectedCurriculum: n = "",
20
+ const { mode: j } = z(), {
21
+ selectedCurriculum: a = "",
22
22
  selectedGrade: m = "",
23
- selectedCourse: p = ""
24
- } = e, { grades: k, boards: w, majors: f } = g({
23
+ selectedCourse: n = ""
24
+ } = e, { grades: w, boards: M, majors: p } = R({
25
25
  config: s,
26
26
  region: t,
27
27
  searchChapterFields: e,
28
28
  courseStream: o,
29
29
  classRatio: C,
30
30
  enrollmentType: u,
31
- flow: a
32
- }), c = O(() => f.length > 1, [f]), y = A(
31
+ flow: "CREATE"
32
+ }), c = A(() => p.length > 1, [p]), k = G(
33
33
  (d) => {
34
34
  r({
35
35
  searchChapterFields: {
@@ -39,23 +39,23 @@ const W = z(
39
39
  });
40
40
  },
41
41
  [e, r]
42
- ), B = A(
42
+ ), y = G(
43
43
  (d) => {
44
- var v;
45
- let b = e.selectedCurriculum;
46
- (d === "-1" || d === "0") && (b = (v = P(s, {
44
+ var _;
45
+ let x = e.selectedCurriculum;
46
+ (d === "-1" || d === "0") && (x = (_ = H(s, {
47
47
  countryCode: t ?? "",
48
48
  grade: d,
49
- goalCategory: M.SCHOOL_SUCCESS,
49
+ goalCategory: h.SCHOOL_SUCCESS,
50
50
  courseStream: o,
51
51
  enrollmentType: u,
52
52
  classRatio: C,
53
- flow: a
54
- })[0]) == null ? void 0 : v.id), r({
53
+ flow: "CREATE"
54
+ })[0]) == null ? void 0 : _.id), r({
55
55
  searchChapterFields: {
56
56
  ...e,
57
57
  selectedGrade: d,
58
- selectedCurriculum: b
58
+ selectedCurriculum: x
59
59
  }
60
60
  });
61
61
  },
@@ -66,10 +66,9 @@ const W = z(
66
66
  t,
67
67
  o,
68
68
  u,
69
- C,
70
- a
69
+ C
71
70
  ]
72
- ), L = A(
71
+ ), B = G(
73
72
  (d) => {
74
73
  r({
75
74
  searchChapterFields: {
@@ -79,14 +78,14 @@ const W = z(
79
78
  });
80
79
  },
81
80
  [r, e]
82
- ), i = O(
83
- () => X(s, {
81
+ ), i = A(
82
+ () => P(s, {
84
83
  grade: m,
85
- board: n,
86
- major: p,
84
+ board: a,
85
+ major: n,
87
86
  majorsPresent: c,
88
87
  countryCode: t ?? "",
89
- selectedCategory: M.SCHOOL_SUCCESS,
88
+ selectedCategory: h.SCHOOL_SUCCESS,
90
89
  courseStream: o,
91
90
  enrollmentType: u
92
91
  }),
@@ -96,38 +95,38 @@ const W = z(
96
95
  u,
97
96
  c,
98
97
  t,
99
- p,
100
98
  n,
99
+ a,
101
100
  m
102
101
  ]
103
- ), l = O(() => (i == null ? void 0 : i.program_code) ?? "", [i]);
104
- return E(() => {
105
- l && _ === "edit" && x({
102
+ ), l = A(() => (i == null ? void 0 : i.program_code) ?? "", [i]);
103
+ return S(() => {
104
+ l && j === "edit" && O({
106
105
  filter_type: "PROGRAM_CODE",
107
106
  program_code: l
108
107
  });
109
- }, [x, _, l, c]), E(() => {
108
+ }, [O, j, l, c]), S(() => {
110
109
  l || r({
111
110
  searchedChaptersList: []
112
111
  });
113
- }, [l, r]), /* @__PURE__ */ S(h, { children: [
114
- /* @__PURE__ */ G(
115
- j,
112
+ }, [l, r]), /* @__PURE__ */ b(v, { children: [
113
+ /* @__PURE__ */ f(
114
+ E,
116
115
  {
117
116
  renderAs: "primary",
118
117
  label: "Grade",
119
118
  value: m,
120
- options: k,
121
- onChange: B,
119
+ options: w,
120
+ onChange: y,
122
121
  widthX: 9,
123
122
  size: "xsmall",
124
123
  theme: "dark",
125
124
  shape: "curved"
126
125
  }
127
126
  ),
128
- m && /* @__PURE__ */ S(h, { children: [
129
- /* @__PURE__ */ G(
130
- j,
127
+ m && /* @__PURE__ */ b(v, { children: [
128
+ /* @__PURE__ */ f(
129
+ E,
131
130
  {
132
131
  widthX: 18,
133
132
  renderAs: "primary",
@@ -135,20 +134,20 @@ const W = z(
135
134
  theme: "dark",
136
135
  size: "xsmall",
137
136
  label: "Curriculum",
138
- options: w,
137
+ options: M,
139
138
  renderOptionsAs: "section-list",
140
- value: n,
141
- onChange: y
139
+ value: a,
140
+ onChange: k
142
141
  }
143
142
  ),
144
- c && /* @__PURE__ */ G(
145
- j,
143
+ c && /* @__PURE__ */ f(
144
+ E,
146
145
  {
147
146
  renderAs: "primary",
148
147
  label: "Course",
149
- options: f,
150
- value: p,
151
- onChange: L,
148
+ options: p,
149
+ value: n,
150
+ onChange: B,
152
151
  widthX: 9,
153
152
  size: "xsmall",
154
153
  theme: "dark",
@@ -160,6 +159,6 @@ const W = z(
160
159
  }
161
160
  );
162
161
  export {
163
- W as default
162
+ Q as default
164
163
  };
165
164
  //# sourceMappingURL=course-catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"course-catalog.js","sources":["../../../../../../src/features/milestone/create/comps/add-custom-chapter/course-catalog.tsx"],"sourcesContent":["import type { ICourseCatalog } from './add-custom-chapters';\nimport type { FC } from 'react';\n\nimport { useEffect, useMemo, useCallback, memo } from 'react';\n\nimport SelectInput from '../../../../ui/inputs/select-input/select-input';\nimport { GOAL_CATEGORY } from '../../../constants';\nimport { useMilestoneContext } from '../../milestone-create-context';\nimport { getCurriculumStandardsFromConfig } from '../../milestone-create-helpers';\nimport { getGradeBoardAndMajorBasedProgramCode } from '../chapters-selection-step/utils';\nimport { useCatalogHelpers } from './hooks/use-catalog-helpers';\n\nconst CourseCatalog: FC<ICourseCatalog> = memo(\n ({\n config,\n region = '',\n courseStream,\n classRatio,\n searchChapterFields,\n getCatalogChapters,\n onFormDataChange,\n enrollmentType,\n }) => {\n const { mode, flow } = useMilestoneContext();\n\n const {\n selectedCurriculum = '',\n selectedGrade = '',\n selectedCourse = '',\n } = searchChapterFields;\n\n const { grades, boards, majors } = useCatalogHelpers({\n config,\n region,\n searchChapterFields,\n courseStream,\n classRatio,\n enrollmentType,\n flow,\n });\n\n const majorsPresent = useMemo(() => majors.length > 1, [majors]);\n\n const handleCurriculumChange = useCallback(\n (curriculumValue: string) => {\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedCurriculum: curriculumValue,\n },\n });\n },\n [searchChapterFields, onFormDataChange],\n );\n\n const handleGradeChange = useCallback(\n (gradeValue: string) => {\n let updatedCurriculum = searchChapterFields.selectedCurriculum;\n\n if (gradeValue === '-1' || gradeValue === '0') {\n const currentGradeBoards = getCurriculumStandardsFromConfig(config, {\n countryCode: region ?? '',\n grade: gradeValue,\n goalCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream,\n enrollmentType,\n classRatio,\n flow,\n });\n\n updatedCurriculum = currentGradeBoards[0]?.id;\n }\n\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedGrade: gradeValue,\n selectedCurriculum: updatedCurriculum,\n },\n });\n },\n [\n searchChapterFields,\n onFormDataChange,\n config,\n region,\n courseStream,\n enrollmentType,\n classRatio,\n flow,\n ],\n );\n\n const handleMajorChange = useCallback(\n (majorValue: string) => {\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedCourse: majorValue,\n },\n });\n },\n [onFormDataChange, searchChapterFields],\n );\n\n const programInfo = useMemo(\n () =>\n getGradeBoardAndMajorBasedProgramCode(config, {\n grade: selectedGrade,\n board: selectedCurriculum,\n major: selectedCourse,\n majorsPresent,\n countryCode: region ?? '',\n selectedCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream,\n enrollmentType,\n }),\n [\n config,\n courseStream,\n enrollmentType,\n majorsPresent,\n region,\n selectedCourse,\n selectedCurriculum,\n selectedGrade,\n ],\n );\n\n const programCode = useMemo(() => programInfo?.program_code ?? '', [programInfo]);\n\n useEffect(() => {\n if (programCode && mode === 'edit') {\n getCatalogChapters({\n filter_type: 'PROGRAM_CODE',\n program_code: programCode,\n });\n }\n }, [getCatalogChapters, mode, programCode, majorsPresent]);\n\n useEffect(() => {\n if (!programCode) {\n onFormDataChange({\n searchedChaptersList: [],\n });\n }\n }, [programCode, onFormDataChange]);\n\n return (\n <>\n <SelectInput\n renderAs=\"primary\"\n label=\"Grade\"\n value={selectedGrade}\n options={grades}\n onChange={handleGradeChange}\n widthX={9}\n size=\"xsmall\"\n theme=\"dark\"\n shape=\"curved\"\n />\n\n {selectedGrade && (\n <>\n <SelectInput\n widthX={18}\n renderAs=\"primary\"\n shape=\"curved\"\n theme=\"dark\"\n size=\"xsmall\"\n label=\"Curriculum\"\n options={boards}\n renderOptionsAs=\"section-list\"\n value={selectedCurriculum}\n onChange={handleCurriculumChange}\n />\n\n {majorsPresent && (\n <SelectInput\n renderAs=\"primary\"\n label=\"Course\"\n options={majors}\n value={selectedCourse}\n onChange={handleMajorChange}\n widthX={9}\n size=\"xsmall\"\n theme=\"dark\"\n shape=\"curved\"\n />\n )}\n </>\n )}\n </>\n );\n },\n);\n\nexport default CourseCatalog;\n"],"names":["CourseCatalog","memo","config","region","courseStream","classRatio","searchChapterFields","getCatalogChapters","onFormDataChange","enrollmentType","mode","flow","useMilestoneContext","selectedCurriculum","selectedGrade","selectedCourse","grades","boards","majors","useCatalogHelpers","majorsPresent","useMemo","handleCurriculumChange","useCallback","curriculumValue","handleGradeChange","gradeValue","updatedCurriculum","_a","getCurriculumStandardsFromConfig","GOAL_CATEGORY","handleMajorChange","majorValue","programInfo","getGradeBoardAndMajorBasedProgramCode","programCode","useEffect","jsxs","Fragment","jsx","SelectInput"],"mappings":"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"}
1
+ {"version":3,"file":"course-catalog.js","sources":["../../../../../../src/features/milestone/create/comps/add-custom-chapter/course-catalog.tsx"],"sourcesContent":["import type { ICourseCatalog } from './add-custom-chapters';\nimport type { FC } from 'react';\n\nimport { useEffect, useMemo, useCallback, memo } from 'react';\n\nimport SelectInput from '../../../../ui/inputs/select-input/select-input';\nimport { GOAL_CATEGORY } from '../../../constants';\nimport { useMilestoneContext } from '../../milestone-create-context';\nimport { getCurriculumStandardsFromConfig } from '../../milestone-create-helpers';\nimport { getGradeBoardAndMajorBasedProgramCode } from '../chapters-selection-step/utils';\nimport { useCatalogHelpers } from './hooks/use-catalog-helpers';\n\nconst CourseCatalog: FC<ICourseCatalog> = memo(\n ({\n config,\n region = '',\n courseStream,\n classRatio,\n searchChapterFields,\n getCatalogChapters,\n onFormDataChange,\n enrollmentType,\n }) => {\n const { mode } = useMilestoneContext();\n\n const {\n selectedCurriculum = '',\n selectedGrade = '',\n selectedCourse = '',\n } = searchChapterFields;\n\n const { grades, boards, majors } = useCatalogHelpers({\n config,\n region,\n searchChapterFields,\n courseStream,\n classRatio,\n enrollmentType,\n flow: 'CREATE',\n });\n\n const majorsPresent = useMemo(() => majors.length > 1, [majors]);\n\n const handleCurriculumChange = useCallback(\n (curriculumValue: string) => {\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedCurriculum: curriculumValue,\n },\n });\n },\n [searchChapterFields, onFormDataChange],\n );\n\n const handleGradeChange = useCallback(\n (gradeValue: string) => {\n let updatedCurriculum = searchChapterFields.selectedCurriculum;\n\n if (gradeValue === '-1' || gradeValue === '0') {\n const currentGradeBoards = getCurriculumStandardsFromConfig(config, {\n countryCode: region ?? '',\n grade: gradeValue,\n goalCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream,\n enrollmentType,\n classRatio,\n flow: 'CREATE',\n });\n\n updatedCurriculum = currentGradeBoards[0]?.id;\n }\n\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedGrade: gradeValue,\n selectedCurriculum: updatedCurriculum,\n },\n });\n },\n [\n searchChapterFields,\n onFormDataChange,\n config,\n region,\n courseStream,\n enrollmentType,\n classRatio,\n ],\n );\n\n const handleMajorChange = useCallback(\n (majorValue: string) => {\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedCourse: majorValue,\n },\n });\n },\n [onFormDataChange, searchChapterFields],\n );\n\n const programInfo = useMemo(\n () =>\n getGradeBoardAndMajorBasedProgramCode(config, {\n grade: selectedGrade,\n board: selectedCurriculum,\n major: selectedCourse,\n majorsPresent,\n countryCode: region ?? '',\n selectedCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream,\n enrollmentType,\n }),\n [\n config,\n courseStream,\n enrollmentType,\n majorsPresent,\n region,\n selectedCourse,\n selectedCurriculum,\n selectedGrade,\n ],\n );\n\n const programCode = useMemo(() => programInfo?.program_code ?? '', [programInfo]);\n\n useEffect(() => {\n if (programCode && mode === 'edit') {\n getCatalogChapters({\n filter_type: 'PROGRAM_CODE',\n program_code: programCode,\n });\n }\n }, [getCatalogChapters, mode, programCode, majorsPresent]);\n\n useEffect(() => {\n if (!programCode) {\n onFormDataChange({\n searchedChaptersList: [],\n });\n }\n }, [programCode, onFormDataChange]);\n\n return (\n <>\n <SelectInput\n renderAs=\"primary\"\n label=\"Grade\"\n value={selectedGrade}\n options={grades}\n onChange={handleGradeChange}\n widthX={9}\n size=\"xsmall\"\n theme=\"dark\"\n shape=\"curved\"\n />\n\n {selectedGrade && (\n <>\n <SelectInput\n widthX={18}\n renderAs=\"primary\"\n shape=\"curved\"\n theme=\"dark\"\n size=\"xsmall\"\n label=\"Curriculum\"\n options={boards}\n renderOptionsAs=\"section-list\"\n value={selectedCurriculum}\n onChange={handleCurriculumChange}\n />\n\n {majorsPresent && (\n <SelectInput\n renderAs=\"primary\"\n label=\"Course\"\n options={majors}\n value={selectedCourse}\n onChange={handleMajorChange}\n widthX={9}\n size=\"xsmall\"\n theme=\"dark\"\n shape=\"curved\"\n />\n )}\n </>\n )}\n </>\n );\n },\n);\n\nexport default CourseCatalog;\n"],"names":["CourseCatalog","memo","config","region","courseStream","classRatio","searchChapterFields","getCatalogChapters","onFormDataChange","enrollmentType","mode","useMilestoneContext","selectedCurriculum","selectedGrade","selectedCourse","grades","boards","majors","useCatalogHelpers","majorsPresent","useMemo","handleCurriculumChange","useCallback","curriculumValue","handleGradeChange","gradeValue","updatedCurriculum","_a","getCurriculumStandardsFromConfig","GOAL_CATEGORY","handleMajorChange","majorValue","programInfo","getGradeBoardAndMajorBasedProgramCode","programCode","useEffect","jsxs","Fragment","jsx","SelectInput"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { jsx as c } from "react/jsx-runtime";
2
- import { memo as E, useCallback as f, useMemo as M } from "react";
2
+ import { memo as E, useCallback as h, useMemo as M } from "react";
3
3
  import O from "../../../../../../ui/layout/flex-view.js";
4
4
  import { WARNING_MESSAGES as $ } from "../../../../../constants.js";
5
5
  import { useMilestoneContext as x } from "../../../../milestone-create-context.js";
6
6
  import { getSelectedGoalCategoryData as F, computeChangeDetection as R, computeChapterGoalCategoryOnGradeNBoard as T } from "../../utils.js";
7
- import h from "./category-card.js";
7
+ import G from "./category-card.js";
8
8
  import { CategoryContainerWrapper as b } from "./chapter-category-styled.js";
9
- const X = E((G) => {
10
- const { onFormDataChange: s, config: t, formData: y, onChapterExitWarning: r, courseStream: a, enrollmentType: n } = G, { flow: _ } = x(), { chapterGoalCategory: D, grade: p, board: C, testType: g, region: d, primaryChaptersList: u } = y, { primaryGoalCategory: e } = D || {}, i = f(
9
+ const X = E((y) => {
10
+ const { onFormDataChange: p, config: t, formData: _, onChapterExitWarning: r, courseStream: a, enrollmentType: n } = y, { flow: i } = x(), { chapterGoalCategory: D, grade: C, board: g, testType: d, region: u, primaryChaptersList: f } = _, { primaryGoalCategory: e } = D || {}, m = h(
11
11
  (o) => {
12
12
  const l = F({
13
13
  goalCode: o,
@@ -15,48 +15,49 @@ const X = E((G) => {
15
15
  courseStream: a,
16
16
  enrollmentType: n
17
17
  });
18
- s({
18
+ p({
19
19
  chapterGoalCategory: {
20
20
  primaryGoalCategory: l
21
21
  }
22
22
  });
23
23
  },
24
- [t, a, n, s]
25
- ), N = f(
24
+ [t, a, n, p]
25
+ ), N = h(
26
26
  (o) => {
27
27
  if (o === (e == null ? void 0 : e.goal_code)) return null;
28
- R(u, e) ? r == null || r({
28
+ R(f, e) ? r == null || r({
29
29
  description: $.GOAL_CHANGE_WARNING,
30
30
  onSuccess: () => {
31
- i(o);
31
+ m(o);
32
32
  }
33
- }) : i(o);
33
+ }) : m(o);
34
34
  },
35
- [i, u, e, r]
35
+ [m, f, e, r]
36
36
  ), S = M(
37
37
  () => T({
38
38
  config: t,
39
- testType: g,
39
+ testType: d,
40
40
  courseStream: a,
41
41
  enrollmentType: n,
42
- grade: p,
43
- board: C,
44
- region: d
42
+ grade: C,
43
+ board: g,
44
+ region: u,
45
+ flow: i
45
46
  }),
46
- [t, g, p, n, C, d, a]
47
+ [t, d, a, n, C, g, u, i]
47
48
  );
48
- return e ? /* @__PURE__ */ c(b, { $widthX: 12.25, children: _ === "CREATE" ? S.map((o, l) => {
49
- const { goal_name: A, goal_code: m } = o, w = m === e.goal_code;
49
+ return e ? /* @__PURE__ */ c(b, { $widthX: 12.25, children: i === "CREATE" ? S.map((o, l) => {
50
+ const { goal_name: A, goal_code: s } = o, w = s === e.goal_code;
50
51
  return /* @__PURE__ */ c(
51
52
  O,
52
53
  {
53
- onClick: () => N(m),
54
+ onClick: () => N(s),
54
55
  $width: "100%",
55
- children: /* @__PURE__ */ c(h, { selected: w, title: A })
56
+ children: /* @__PURE__ */ c(G, { selected: w, title: A })
56
57
  },
57
- `${m}_${l}`
58
+ `${s}_${l}`
58
59
  );
59
- }) : /* @__PURE__ */ c(h, { selected: !0, title: e.goal_name }) }) : null;
60
+ }) : /* @__PURE__ */ c(G, { selected: !0, title: e.goal_name }) }) : null;
60
61
  });
61
62
  export {
62
63
  X as default
@@ -1 +1 @@
1
- {"version":3,"file":"chapter-category-container.js","sources":["../../../../../../../../src/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.tsx"],"sourcesContent":["import type { IChapterSelectionWrapper } from '../chapter-selection-step-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useMemo } from 'react';\n\nimport FlexView from '../../../../../../ui/layout/flex-view';\nimport { WARNING_MESSAGES } from '../../../../../constants';\nimport { useMilestoneContext } from '../../../../milestone-create-context';\nimport {\n computeChangeDetection,\n computeChapterGoalCategoryOnGradeNBoard,\n getSelectedGoalCategoryData,\n} from '../../utils';\nimport CategoryCard from './category-card';\nimport * as Styled from './chapter-category-styled';\n\nconst ChapterCategoryContainer: FC<IChapterSelectionWrapper> = memo(props => {\n const { onFormDataChange, config, formData, onChapterExitWarning, courseStream, enrollmentType } =\n props;\n\n const { flow } = useMilestoneContext();\n\n const { chapterGoalCategory, grade, board, testType, region, primaryChaptersList } = formData;\n const { primaryGoalCategory } = chapterGoalCategory || {};\n\n const handleOnFormDataChange = useCallback(\n (goalCode: string) => {\n const goalCategoryData = getSelectedGoalCategoryData({\n goalCode,\n config,\n courseStream,\n enrollmentType,\n });\n\n onFormDataChange({\n chapterGoalCategory: {\n primaryGoalCategory: goalCategoryData,\n },\n });\n },\n [config, courseStream, enrollmentType, onFormDataChange],\n );\n\n const handleOnGoalSelection = useCallback(\n (goalCode: string) => {\n if (goalCode === primaryGoalCategory?.goal_code) return null;\n\n const isChangeDetected = computeChangeDetection(primaryChaptersList, primaryGoalCategory);\n\n if (isChangeDetected) {\n onChapterExitWarning?.({\n description: WARNING_MESSAGES.GOAL_CHANGE_WARNING,\n onSuccess: () => {\n handleOnFormDataChange(goalCode);\n },\n });\n } else {\n handleOnFormDataChange(goalCode);\n }\n },\n [handleOnFormDataChange, primaryChaptersList, primaryGoalCategory, onChapterExitWarning],\n );\n\n const filteredGoalCurriculumMap = useMemo(\n () =>\n computeChapterGoalCategoryOnGradeNBoard({\n config,\n testType,\n courseStream,\n enrollmentType,\n grade,\n board,\n region,\n }),\n [config, testType, grade, enrollmentType, board, region, courseStream],\n );\n\n if (!primaryGoalCategory) return null;\n\n return (\n <Styled.CategoryContainerWrapper $widthX={12.25}>\n {flow === 'CREATE' ? (\n filteredGoalCurriculumMap.map((goalCurriculum, idx) => {\n const { goal_name: goalName, goal_code: goalCode } = goalCurriculum;\n const selected = goalCode === primaryGoalCategory.goal_code;\n\n return (\n <FlexView\n key={`${goalCode}_${idx}`}\n onClick={() => handleOnGoalSelection(goalCode)}\n $width=\"100%\"\n >\n <CategoryCard selected={selected} title={goalName} />\n </FlexView>\n );\n })\n ) : (\n <CategoryCard selected={true} title={primaryGoalCategory.goal_name} />\n )}\n </Styled.CategoryContainerWrapper>\n );\n});\n\nexport default ChapterCategoryContainer;\n"],"names":["ChapterCategoryContainer","memo","props","onFormDataChange","config","formData","onChapterExitWarning","courseStream","enrollmentType","flow","useMilestoneContext","chapterGoalCategory","grade","board","testType","region","primaryChaptersList","primaryGoalCategory","handleOnFormDataChange","useCallback","goalCode","goalCategoryData","getSelectedGoalCategoryData","handleOnGoalSelection","computeChangeDetection","WARNING_MESSAGES","filteredGoalCurriculumMap","useMemo","computeChapterGoalCategoryOnGradeNBoard","jsx","Styled.CategoryContainerWrapper","goalCurriculum","idx","goalName","selected","FlexView","CategoryCard"],"mappings":";;;;;;;;AAgBM,MAAAA,IAAyDC,EAAK,CAASC,MAAA;AAC3E,QAAM,EAAE,kBAAAC,GAAkB,QAAAC,GAAQ,UAAAC,GAAU,sBAAAC,GAAsB,cAAAC,GAAc,gBAAAC,EAC9E,IAAAN,GAEI,EAAE,MAAAO,MAASC,KAEX,EAAE,qBAAAC,GAAqB,OAAAC,GAAO,OAAAC,GAAO,UAAAC,GAAU,QAAAC,GAAQ,qBAAAC,EAAwB,IAAAX,GAC/E,EAAE,qBAAAY,EAAA,IAAwBN,KAAuB,IAEjDO,IAAyBC;AAAA,IAC7B,CAACC,MAAqB;AACpB,YAAMC,IAAmBC,EAA4B;AAAA,QACnD,UAAAF;AAAA,QACA,QAAAhB;AAAA,QACA,cAAAG;AAAA,QACA,gBAAAC;AAAA,MAAA,CACD;AAEgB,MAAAL,EAAA;AAAA,QACf,qBAAqB;AAAA,UACnB,qBAAqBkB;AAAA,QACvB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACjB,GAAQG,GAAcC,GAAgBL,CAAgB;AAAA,EAAA,GAGnDoB,IAAwBJ;AAAA,IAC5B,CAACC,MAAqB;AAChB,UAAAA,OAAaH,KAAA,gBAAAA,EAAqB,WAAkB,QAAA;AAIxD,MAFyBO,EAAuBR,GAAqBC,CAAmB,IAG/DX,KAAA,QAAAA,EAAA;AAAA,QACrB,aAAamB,EAAiB;AAAA,QAC9B,WAAW,MAAM;AACf,UAAAP,EAAuBE,CAAQ;AAAA,QACjC;AAAA,MAAA,KAGFF,EAAuBE,CAAQ;AAAA,IAEnC;AAAA,IACA,CAACF,GAAwBF,GAAqBC,GAAqBX,CAAoB;AAAA,EAAA,GAGnFoB,IAA4BC;AAAA,IAChC,MACEC,EAAwC;AAAA,MACtC,QAAAxB;AAAA,MACA,UAAAU;AAAA,MACA,cAAAP;AAAA,MACA,gBAAAC;AAAA,MACA,OAAAI;AAAA,MACA,OAAAC;AAAA,MACA,QAAAE;AAAA,IAAA,CACD;AAAA,IACH,CAACX,GAAQU,GAAUF,GAAOJ,GAAgBK,GAAOE,GAAQR,CAAY;AAAA,EAAA;AAGnE,SAACU,IAGF,gBAAAY,EAAAC,GAAA,EAAgC,SAAS,OACvC,UAASrB,MAAA,WACRiB,EAA0B,IAAI,CAACK,GAAgBC,MAAQ;AACrD,UAAM,EAAE,WAAWC,GAAU,WAAWb,MAAaW,GAC/CG,IAAWd,MAAaH,EAAoB;AAGhD,WAAA,gBAAAY;AAAA,MAACM;AAAA,MAAA;AAAA,QAEC,SAAS,MAAMZ,EAAsBH,CAAQ;AAAA,QAC7C,QAAO;AAAA,QAEP,UAAC,gBAAAS,EAAAO,GAAA,EAAa,UAAAF,GAAoB,OAAOD,GAAU;AAAA,MAAA;AAAA,MAJ9C,GAAGb,CAAQ,IAAIY,CAAG;AAAA,IAAA;AAAA,EAO5B,CAAA,IAEA,gBAAAH,EAAAO,GAAA,EAAa,UAAU,IAAM,OAAOnB,EAAoB,WAAW,EAExE,CAAA,IAtB+B;AAwBnC,CAAC;"}
1
+ {"version":3,"file":"chapter-category-container.js","sources":["../../../../../../../../src/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.tsx"],"sourcesContent":["import type { IChapterSelectionWrapper } from '../chapter-selection-step-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useMemo } from 'react';\n\nimport FlexView from '../../../../../../ui/layout/flex-view';\nimport { WARNING_MESSAGES } from '../../../../../constants';\nimport { useMilestoneContext } from '../../../../milestone-create-context';\nimport {\n computeChangeDetection,\n computeChapterGoalCategoryOnGradeNBoard,\n getSelectedGoalCategoryData,\n} from '../../utils';\nimport CategoryCard from './category-card';\nimport * as Styled from './chapter-category-styled';\n\nconst ChapterCategoryContainer: FC<IChapterSelectionWrapper> = memo(props => {\n const { onFormDataChange, config, formData, onChapterExitWarning, courseStream, enrollmentType } =\n props;\n\n const { flow } = useMilestoneContext();\n\n const { chapterGoalCategory, grade, board, testType, region, primaryChaptersList } = formData;\n const { primaryGoalCategory } = chapterGoalCategory || {};\n\n const handleOnFormDataChange = useCallback(\n (goalCode: string) => {\n const goalCategoryData = getSelectedGoalCategoryData({\n goalCode,\n config,\n courseStream,\n enrollmentType,\n });\n\n onFormDataChange({\n chapterGoalCategory: {\n primaryGoalCategory: goalCategoryData,\n },\n });\n },\n [config, courseStream, enrollmentType, onFormDataChange],\n );\n\n const handleOnGoalSelection = useCallback(\n (goalCode: string) => {\n if (goalCode === primaryGoalCategory?.goal_code) return null;\n\n const isChangeDetected = computeChangeDetection(primaryChaptersList, primaryGoalCategory);\n\n if (isChangeDetected) {\n onChapterExitWarning?.({\n description: WARNING_MESSAGES.GOAL_CHANGE_WARNING,\n onSuccess: () => {\n handleOnFormDataChange(goalCode);\n },\n });\n } else {\n handleOnFormDataChange(goalCode);\n }\n },\n [handleOnFormDataChange, primaryChaptersList, primaryGoalCategory, onChapterExitWarning],\n );\n\n const filteredGoalCurriculumMap = useMemo(\n () =>\n computeChapterGoalCategoryOnGradeNBoard({\n config,\n testType,\n courseStream,\n enrollmentType,\n grade,\n board,\n region,\n flow,\n }),\n [config, testType, courseStream, enrollmentType, grade, board, region, flow],\n );\n\n if (!primaryGoalCategory) return null;\n\n return (\n <Styled.CategoryContainerWrapper $widthX={12.25}>\n {flow === 'CREATE' ? (\n filteredGoalCurriculumMap.map((goalCurriculum, idx) => {\n const { goal_name: goalName, goal_code: goalCode } = goalCurriculum;\n const selected = goalCode === primaryGoalCategory.goal_code;\n\n return (\n <FlexView\n key={`${goalCode}_${idx}`}\n onClick={() => handleOnGoalSelection(goalCode)}\n $width=\"100%\"\n >\n <CategoryCard selected={selected} title={goalName} />\n </FlexView>\n );\n })\n ) : (\n <CategoryCard selected={true} title={primaryGoalCategory.goal_name} />\n )}\n </Styled.CategoryContainerWrapper>\n );\n});\n\nexport default ChapterCategoryContainer;\n"],"names":["ChapterCategoryContainer","memo","props","onFormDataChange","config","formData","onChapterExitWarning","courseStream","enrollmentType","flow","useMilestoneContext","chapterGoalCategory","grade","board","testType","region","primaryChaptersList","primaryGoalCategory","handleOnFormDataChange","useCallback","goalCode","goalCategoryData","getSelectedGoalCategoryData","handleOnGoalSelection","computeChangeDetection","WARNING_MESSAGES","filteredGoalCurriculumMap","useMemo","computeChapterGoalCategoryOnGradeNBoard","jsx","Styled.CategoryContainerWrapper","goalCurriculum","idx","goalName","selected","FlexView","CategoryCard"],"mappings":";;;;;;;;AAgBM,MAAAA,IAAyDC,EAAK,CAASC,MAAA;AAC3E,QAAM,EAAE,kBAAAC,GAAkB,QAAAC,GAAQ,UAAAC,GAAU,sBAAAC,GAAsB,cAAAC,GAAc,gBAAAC,EAC9E,IAAAN,GAEI,EAAE,MAAAO,MAASC,KAEX,EAAE,qBAAAC,GAAqB,OAAAC,GAAO,OAAAC,GAAO,UAAAC,GAAU,QAAAC,GAAQ,qBAAAC,EAAwB,IAAAX,GAC/E,EAAE,qBAAAY,EAAA,IAAwBN,KAAuB,IAEjDO,IAAyBC;AAAA,IAC7B,CAACC,MAAqB;AACpB,YAAMC,IAAmBC,EAA4B;AAAA,QACnD,UAAAF;AAAA,QACA,QAAAhB;AAAA,QACA,cAAAG;AAAA,QACA,gBAAAC;AAAA,MAAA,CACD;AAEgB,MAAAL,EAAA;AAAA,QACf,qBAAqB;AAAA,UACnB,qBAAqBkB;AAAA,QACvB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACjB,GAAQG,GAAcC,GAAgBL,CAAgB;AAAA,EAAA,GAGnDoB,IAAwBJ;AAAA,IAC5B,CAACC,MAAqB;AAChB,UAAAA,OAAaH,KAAA,gBAAAA,EAAqB,WAAkB,QAAA;AAIxD,MAFyBO,EAAuBR,GAAqBC,CAAmB,IAG/DX,KAAA,QAAAA,EAAA;AAAA,QACrB,aAAamB,EAAiB;AAAA,QAC9B,WAAW,MAAM;AACf,UAAAP,EAAuBE,CAAQ;AAAA,QACjC;AAAA,MAAA,KAGFF,EAAuBE,CAAQ;AAAA,IAEnC;AAAA,IACA,CAACF,GAAwBF,GAAqBC,GAAqBX,CAAoB;AAAA,EAAA,GAGnFoB,IAA4BC;AAAA,IAChC,MACEC,EAAwC;AAAA,MACtC,QAAAxB;AAAA,MACA,UAAAU;AAAA,MACA,cAAAP;AAAA,MACA,gBAAAC;AAAA,MACA,OAAAI;AAAA,MACA,OAAAC;AAAA,MACA,QAAAE;AAAA,MACA,MAAAN;AAAA,IAAA,CACD;AAAA,IACH,CAACL,GAAQU,GAAUP,GAAcC,GAAgBI,GAAOC,GAAOE,GAAQN,CAAI;AAAA,EAAA;AAGzE,SAACQ,IAGF,gBAAAY,EAAAC,GAAA,EAAgC,SAAS,OACvC,UAASrB,MAAA,WACRiB,EAA0B,IAAI,CAACK,GAAgBC,MAAQ;AACrD,UAAM,EAAE,WAAWC,GAAU,WAAWb,MAAaW,GAC/CG,IAAWd,MAAaH,EAAoB;AAGhD,WAAA,gBAAAY;AAAA,MAACM;AAAA,MAAA;AAAA,QAEC,SAAS,MAAMZ,EAAsBH,CAAQ;AAAA,QAC7C,QAAO;AAAA,QAEP,UAAC,gBAAAS,EAAAO,GAAA,EAAa,UAAAF,GAAoB,OAAOD,GAAU;AAAA,MAAA;AAAA,MAJ9C,GAAGb,CAAQ,IAAIY,CAAG;AAAA,IAAA;AAAA,EAO5B,CAAA,IAEA,gBAAAH,EAAAO,GAAA,EAAa,UAAU,IAAM,OAAOnB,EAAoB,WAAW,EAExE,CAAA,IAtB+B;AAwBnC,CAAC;"}
@@ -1,20 +1,20 @@
1
1
  import { GOAL_CATEGORY as M } from "../../../constants.js";
2
- import { checkEnrollmentAvailable as E, getTestTypeBasedCategory as O } from "../test-type-step/test-type-utils.js";
3
- const h = (e, t, o) => {
2
+ import { checkEnrollmentAvailable as h, getTestTypeBasedCategory as R } from "../test-type-step/test-type-utils.js";
3
+ const T = (e, t, o) => {
4
4
  const a = e.some(
5
5
  (l) => l === o
6
6
  ), n = t.length > 0 ? t.some(
7
7
  (l) => l === o
8
8
  ) : !0;
9
9
  return !a && n;
10
- }, I = ({
10
+ }, N = ({
11
11
  goalCode: e,
12
12
  config: t,
13
13
  courseStream: o,
14
14
  enrollmentType: a
15
15
  }) => {
16
16
  const { goal_curriculum_map: n } = t;
17
- return n.find((r) => r.goal_code !== e || r.course_stream !== o ? !1 : E(r, a));
17
+ return n.find((r) => r.goal_code !== e || r.course_stream !== o ? !1 : h(r, a));
18
18
  }, B = ({
19
19
  goalCurriculumStandard: e,
20
20
  referenceStandard: t
@@ -25,28 +25,30 @@ const h = (e, t, o) => {
25
25
  enrollmentType: a,
26
26
  grade: n,
27
27
  board: l,
28
- region: r
28
+ region: r,
29
+ flow: _
29
30
  }) => {
30
- const { goal_curriculum_map: g } = e, c = O(t);
31
- return g.filter((u) => {
31
+ const { goal_curriculum_map: u } = e, c = R(t);
32
+ return u.filter((C) => {
32
33
  const {
33
- available_grades: G,
34
- available_countries: d,
35
- goal_curriculum_standard: _,
36
- goal_category: b,
37
- blocked_enrollment_types: C,
38
- available_enrollment_types: f
39
- } = u, s = G.some((m) => m === n), i = d.some((m) => m === r), A = B({
40
- goalCurriculumStandard: _,
34
+ available_grades: d,
35
+ available_countries: g,
36
+ goal_curriculum_standard: b,
37
+ goal_category: f,
38
+ blocked_enrollment_types: v,
39
+ available_enrollment_types: s,
40
+ is_live: i
41
+ } = C, A = _ === "CREATE" ? i : !0, p = d.some((m) => m === n), E = g.some((m) => m === r), k = B({
42
+ goalCurriculumStandard: b,
41
43
  referenceStandard: l
42
- }), p = b === c, v = u.course_stream === o, S = h(
43
- C,
44
- f,
44
+ }), S = f === c, y = C.course_stream === o, G = T(
45
+ v,
46
+ s,
45
47
  a
46
48
  );
47
- return c === M.SCHOOL_SUCCESS ? S && v && s && A && p : S && v && s && p && (d.length > 0 ? i : !0);
49
+ return c === M.SCHOOL_SUCCESS ? A && G && y && p && k && S : A && G && y && p && S && (g.length > 0 ? E : !0);
48
50
  });
49
- }, P = (e, t, o) => {
51
+ }, O = (e, t, o) => {
50
52
  if (!e)
51
53
  return {
52
54
  customChaptersList: [],
@@ -73,51 +75,51 @@ const h = (e, t, o) => {
73
75
  majorsPresent: n,
74
76
  countryCode: l,
75
77
  selectedCategory: r,
76
- courseStream: g,
77
- enrollmentType: c
78
+ courseStream: _,
79
+ enrollmentType: u
78
80
  }) => {
79
- const { goal_curriculum_map: u } = e;
80
- return u.find((d) => {
81
+ const { goal_curriculum_map: c } = e;
82
+ return c.find((d) => {
81
83
  const {
82
- goal_curriculum_standard: _,
84
+ goal_curriculum_standard: g,
83
85
  available_grades: b,
84
- program_code: C,
85
- available_countries: f,
86
+ program_code: f,
87
+ available_countries: v,
86
88
  goal_category: s,
87
89
  available_enrollment_types: i,
88
90
  blocked_enrollment_types: A
89
91
  } = d;
90
92
  if (s !== r) return;
91
- const p = h(
93
+ const p = T(
92
94
  A,
93
95
  i,
94
- c
95
- ), v = b.some((k) => k === t), S = f.length > 0 ? f.some((k) => k === l) : !0, m = B({
96
- goalCurriculumStandard: _,
96
+ u
97
+ ), E = b.some((m) => m === t), k = v.length > 0 ? v.some((m) => m === l) : !0, S = B({
98
+ goalCurriculumStandard: g,
97
99
  referenceStandard: o
98
- }), T = a === C, y = d.course_stream === g;
99
- return n ? a ? p && y && S && v && m && T : void 0 : p && y && S && v && m;
100
+ }), y = a === f, G = d.course_stream === _;
101
+ return n ? a ? p && G && k && E && S && y : void 0 : p && G && k && E && S;
100
102
  });
101
103
  }, D = (e, t, o, a, n, l) => {
102
104
  if (!n && !o) return {};
103
- const { country_code_to_name_map: r, goal_curriculum_map: g } = t;
104
- let c = {};
105
- return g.filter((u) => u.course_stream !== e ? !1 : E(u, a)).forEach((u) => {
105
+ const { country_code_to_name_map: r, goal_curriculum_map: _ } = t;
106
+ let u = {};
107
+ return _.filter((c) => c.course_stream !== e ? !1 : h(c, a)).forEach((c) => {
106
108
  const {
107
- available_grades: G,
109
+ available_grades: C,
108
110
  available_countries: d,
109
- blocked_countries: _,
111
+ blocked_countries: g,
110
112
  goal_category: b
111
- } = u, C = G.some((s) => s === n);
112
- !_.some(
113
+ } = c, f = C.some((s) => s === n);
114
+ !g.some(
113
115
  (s) => s === l
114
- ) && C && b === o && (d.length > 0 ? d.reduce((s, i) => (s[i] || (s[i] = r[i] ?? ""), s), c) : c = {
116
+ ) && f && b === o && (d.length > 0 ? d.reduce((s, i) => (s[i] || (s[i] = r[i] ?? ""), s), u) : u = {
115
117
  ...r,
116
- ...c
118
+ ...u
117
119
  });
118
- }), c;
120
+ }), u;
119
121
  }, H = (e, t) => {
120
- const { recommendedChaptersList: o, customChaptersList: a } = P(
122
+ const { recommendedChaptersList: o, customChaptersList: a } = O(
121
123
  e,
122
124
  t,
123
125
  !0
@@ -127,11 +129,11 @@ const h = (e, t, o) => {
127
129
  export {
128
130
  H as computeChangeDetection,
129
131
  j as computeChapterGoalCategoryOnGradeNBoard,
130
- P as computeRecommendedNCustomChapters,
132
+ O as computeRecommendedNCustomChapters,
131
133
  D as getCountriesWhereCurrentGradeNCategoryIsAvailable,
132
134
  x as getGradeBoardAndMajorBasedProgramCode,
133
135
  B as getIfGoalCurriculumStandardIsAccessible,
134
- I as getSelectedGoalCategoryData,
135
- h as getStudentEnrollmentSupported
136
+ N as getSelectedGoalCategoryData,
137
+ T as getStudentEnrollmentSupported
136
138
  };
137
139
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../src/features/milestone/create/comps/chapters-selection-step/utils.ts"],"sourcesContent":["import type { TTestType } from '../../../types';\nimport type {\n IGoalCurriculumMap,\n IMilestoneConfig,\n TCourseStream,\n TEnrollmentTypes,\n TGoalCategory,\n} from '../../milestone-create-types';\nimport type { IChapter } from '../chapter-item/chapter-item-types';\nimport type { TGradeBasedBoardInfo } from './types';\n\nimport { GOAL_CATEGORY } from '../../../constants';\nimport {\n getTestTypeBasedCategory,\n checkEnrollmentAvailable,\n} from '../test-type-step/test-type-utils';\n\nconst getStudentEnrollmentSupported = (\n blockedEnrollmentTypes: TEnrollmentTypes[],\n availableEnrollmentTypes: TEnrollmentTypes[],\n enrollmentType: TEnrollmentTypes,\n) => {\n const isBlocked = blockedEnrollmentTypes.some(\n blockedEnrollment => blockedEnrollment === enrollmentType,\n );\n\n const isAvailable =\n availableEnrollmentTypes.length > 0\n ? availableEnrollmentTypes.some(\n availableEnrollmentType => availableEnrollmentType === enrollmentType,\n )\n : true;\n\n return !isBlocked && isAvailable;\n};\n\ninterface IgetSelectedGoalCategoryData {\n goalCode: string;\n config: IMilestoneConfig;\n courseStream: TCourseStream;\n enrollmentType: TEnrollmentTypes;\n}\n\nconst getSelectedGoalCategoryData = ({\n goalCode,\n config,\n courseStream,\n enrollmentType,\n}: IgetSelectedGoalCategoryData) => {\n const { goal_curriculum_map: goalCurriculumMap } = config;\n\n const selectedGoalCategoryInfo = goalCurriculumMap.find(goalInfo => {\n if (goalInfo.goal_code !== goalCode) return false;\n\n if (goalInfo.course_stream !== courseStream) return false;\n\n return checkEnrollmentAvailable(goalInfo, enrollmentType);\n });\n\n return selectedGoalCategoryInfo;\n};\n\nconst getIfGoalCurriculumStandardIsAccessible = ({\n goalCurriculumStandard,\n referenceStandard,\n}: {\n goalCurriculumStandard?: string;\n referenceStandard?: string;\n}) => {\n if (!goalCurriculumStandard) return true;\n\n return goalCurriculumStandard === referenceStandard;\n};\n\ninterface IcomputeChapterGoalCategoryOnGradeNBoard {\n config: IMilestoneConfig;\n testType: TTestType;\n courseStream: TCourseStream;\n enrollmentType: TEnrollmentTypes;\n grade?: string;\n board?: string;\n region?: string;\n}\n\nconst computeChapterGoalCategoryOnGradeNBoard = ({\n config,\n testType,\n courseStream,\n enrollmentType,\n grade,\n board,\n region,\n}: IcomputeChapterGoalCategoryOnGradeNBoard) => {\n const { goal_curriculum_map: goalCurriculumMap } = config;\n const selectedGoalCategory = getTestTypeBasedCategory(testType);\n\n return goalCurriculumMap.filter(goalInfo => {\n const {\n available_grades: availableGrades,\n available_countries: availableCountries,\n goal_curriculum_standard: goalCurriculumStandard,\n goal_category: goalCategory,\n blocked_enrollment_types: blockedEnrollmentTypes,\n available_enrollment_types: availableEnrollmentTypes,\n } = goalInfo;\n const gradePresent = availableGrades.some(gradeInfo => gradeInfo === grade);\n const regionPresent = availableCountries.some(country => country === region);\n const boardPreset = getIfGoalCurriculumStandardIsAccessible({\n goalCurriculumStandard,\n referenceStandard: board,\n });\n const selectedCategoryIsPresent = goalCategory === selectedGoalCategory;\n const isSameCourse = goalInfo.course_stream === courseStream;\n const isStudentEnrollmentTypeSupported = getStudentEnrollmentSupported(\n blockedEnrollmentTypes,\n availableEnrollmentTypes,\n enrollmentType,\n );\n\n if (selectedGoalCategory === GOAL_CATEGORY.SCHOOL_SUCCESS) {\n return (\n isStudentEnrollmentTypeSupported &&\n isSameCourse &&\n gradePresent &&\n boardPreset &&\n selectedCategoryIsPresent\n );\n }\n\n return (\n isStudentEnrollmentTypeSupported &&\n isSameCourse &&\n gradePresent &&\n selectedCategoryIsPresent &&\n (availableCountries.length > 0 ? regionPresent : true)\n );\n });\n};\n\nconst computeRecommendedNCustomChapters = (\n primaryChaptersList?: IChapter[],\n primaryGoalCategory?: IGoalCurriculumMap,\n isGoalCreation?: boolean,\n) => {\n if (!primaryChaptersList) {\n return {\n customChaptersList: [],\n recommendedChaptersList: [],\n };\n }\n\n //* To compensate old milestone flow during edit stage.\n if (!isGoalCreation) {\n return {\n customChaptersList: primaryChaptersList.filter(chapter => chapter.search_and_added),\n recommendedChaptersList: primaryChaptersList.filter(chapter => !chapter.search_and_added),\n };\n }\n\n const { program_id: programId } = primaryGoalCategory || {};\n\n const customChaptersList = primaryChaptersList?.filter(\n chapter => chapter.program_id !== programId,\n );\n const recommendedChaptersList = primaryChaptersList?.filter(\n chapter => chapter.program_id === programId,\n );\n\n return {\n customChaptersList,\n recommendedChaptersList,\n };\n};\n\ninterface IGetGradeBoardAndMajorBasedProgramCode {\n (\n config: IMilestoneConfig,\n props: {\n grade: string;\n board: string;\n major: string;\n countryCode: string;\n majorsPresent: boolean;\n selectedCategory: TGoalCategory;\n courseStream: TCourseStream;\n enrollmentType: TEnrollmentTypes;\n },\n ): IGoalCurriculumMap | undefined;\n}\n\nconst getGradeBoardAndMajorBasedProgramCode: IGetGradeBoardAndMajorBasedProgramCode = (\n config,\n {\n grade,\n board,\n major,\n majorsPresent,\n countryCode,\n selectedCategory,\n courseStream,\n enrollmentType,\n },\n) => {\n const { goal_curriculum_map: goalCurriculumMap } = config;\n\n const programInfo = goalCurriculumMap.find(goalData => {\n const {\n goal_curriculum_standard: goalCurriculumStandard,\n available_grades: availableGrades,\n program_code: programCode,\n available_countries: availableCountries,\n goal_category: goalCategory,\n available_enrollment_types: availableEnrollmentTypes,\n blocked_enrollment_types: blockedEnrollmentTypes,\n } = goalData;\n\n if (goalCategory !== selectedCategory) return undefined;\n\n const isStudentEnrollmentTypeSupported = getStudentEnrollmentSupported(\n blockedEnrollmentTypes,\n availableEnrollmentTypes,\n enrollmentType,\n );\n\n const isGradeAvailable = availableGrades.some(availableGrade => availableGrade === grade);\n const isRegionAvailable =\n availableCountries.length > 0\n ? availableCountries.some(country => country === countryCode)\n : true;\n const isBoardAvailable = getIfGoalCurriculumStandardIsAccessible({\n goalCurriculumStandard,\n referenceStandard: board,\n });\n const isMajorAvailable = major === programCode;\n const isSameCourse = goalData.course_stream === courseStream;\n\n if (majorsPresent) {\n if (major)\n return (\n isStudentEnrollmentTypeSupported &&\n isSameCourse &&\n isRegionAvailable &&\n isGradeAvailable &&\n isBoardAvailable &&\n isMajorAvailable\n );\n\n return undefined;\n }\n\n return (\n isStudentEnrollmentTypeSupported &&\n isSameCourse &&\n isRegionAvailable &&\n isGradeAvailable &&\n isBoardAvailable\n );\n });\n\n return programInfo;\n};\n\nconst getProgramCodeBasedOnGradeAndBoard = (\n gradeBasedBoardInfo: TGradeBasedBoardInfo,\n grade: string,\n board: string,\n course?: string,\n) => {\n const { gradeSyllabusMap } = gradeBasedBoardInfo[board] || {};\n\n if (gradeSyllabusMap) {\n const programInfo = gradeSyllabusMap[grade];\n\n if (programInfo) {\n if (programInfo.majors) {\n return course;\n }\n\n return programInfo.program_code;\n }\n }\n\n return undefined;\n};\n\nconst getCountriesWhereCurrentGradeNCategoryIsAvailable = (\n courseStream: TCourseStream,\n config: IMilestoneConfig,\n selectedGoalCategory: string | undefined,\n enrollmentType: TEnrollmentTypes,\n grade?: string,\n currentCountryCode?: string,\n) => {\n if (!grade && !selectedGoalCategory) return {};\n\n const { country_code_to_name_map: countryCodeToNameMap, goal_curriculum_map: goalCurriculumMap } =\n config;\n let countries: Record<string, string> = {};\n\n goalCurriculumMap\n .filter(goalInfo => {\n if (goalInfo.course_stream !== courseStream) return false;\n\n return checkEnrollmentAvailable(goalInfo, enrollmentType);\n })\n .forEach(goalData => {\n const {\n available_grades: availableGrades,\n available_countries: availableCountries,\n blocked_countries: blockedCountries,\n goal_category: goalCategory,\n } = goalData;\n const isGradeAvailable = availableGrades.some(availableGrade => availableGrade === grade);\n const isStudentRegionBlocked = blockedCountries.some(\n country => country === currentCountryCode,\n );\n\n if (!isStudentRegionBlocked && isGradeAvailable && goalCategory === selectedGoalCategory) {\n if (availableCountries.length > 0) {\n availableCountries.reduce((acc, countryInfo) => {\n if (!acc[countryInfo]) {\n acc[countryInfo] = countryCodeToNameMap[countryInfo] ?? '';\n }\n\n return acc;\n }, countries);\n } else {\n countries = {\n ...countryCodeToNameMap,\n ...countries,\n };\n }\n }\n });\n\n return countries;\n};\n\nconst computeChangeDetection = (\n primaryProgramList?: IChapter[],\n primaryGoalCategory?: IGoalCurriculumMap,\n) => {\n const { recommendedChaptersList, customChaptersList } = computeRecommendedNCustomChapters(\n primaryProgramList,\n primaryGoalCategory,\n true,\n );\n\n //* This will compensate if any new chapter was added.\n if (customChaptersList.length > 0) return true;\n\n //* This will compensate if any chapter was deselected.\n return recommendedChaptersList.some(chapter => !chapter.added);\n};\n\nexport {\n getSelectedGoalCategoryData,\n computeChapterGoalCategoryOnGradeNBoard,\n computeRecommendedNCustomChapters,\n getGradeBoardAndMajorBasedProgramCode,\n getProgramCodeBasedOnGradeAndBoard,\n getCountriesWhereCurrentGradeNCategoryIsAvailable,\n computeChangeDetection,\n getIfGoalCurriculumStandardIsAccessible,\n getStudentEnrollmentSupported,\n};\n"],"names":["getStudentEnrollmentSupported","blockedEnrollmentTypes","availableEnrollmentTypes","enrollmentType","isBlocked","blockedEnrollment","isAvailable","availableEnrollmentType","getSelectedGoalCategoryData","goalCode","config","courseStream","goalCurriculumMap","goalInfo","checkEnrollmentAvailable","getIfGoalCurriculumStandardIsAccessible","goalCurriculumStandard","referenceStandard","computeChapterGoalCategoryOnGradeNBoard","testType","grade","board","region","selectedGoalCategory","getTestTypeBasedCategory","availableGrades","availableCountries","goalCategory","gradePresent","gradeInfo","regionPresent","country","boardPreset","selectedCategoryIsPresent","isSameCourse","isStudentEnrollmentTypeSupported","GOAL_CATEGORY","computeRecommendedNCustomChapters","primaryChaptersList","primaryGoalCategory","isGoalCreation","chapter","programId","customChaptersList","recommendedChaptersList","getGradeBoardAndMajorBasedProgramCode","major","majorsPresent","countryCode","selectedCategory","goalData","programCode","isGradeAvailable","availableGrade","isRegionAvailable","isBoardAvailable","isMajorAvailable","getCountriesWhereCurrentGradeNCategoryIsAvailable","currentCountryCode","countryCodeToNameMap","countries","blockedCountries","acc","countryInfo","computeChangeDetection","primaryProgramList"],"mappings":";;AAiBA,MAAMA,IAAgC,CACpCC,GACAC,GACAC,MACG;AACH,QAAMC,IAAYH,EAAuB;AAAA,IACvC,OAAqBI,MAAsBF;AAAA,EAAA,GAGvCG,IACJJ,EAAyB,SAAS,IAC9BA,EAAyB;AAAA,IACvB,OAA2BK,MAA4BJ;AAAA,EAEzD,IAAA;AAEN,SAAO,CAACC,KAAaE;AACvB,GASME,IAA8B,CAAC;AAAA,EACnC,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAR;AACF,MAAoC;AAC5B,QAAA,EAAE,qBAAqBS,EAAsB,IAAAF;AAU5C,SAR0BE,EAAkB,KAAK,CAAYC,MAC9DA,EAAS,cAAcJ,KAEvBI,EAAS,kBAAkBF,IAAqB,KAE7CG,EAAyBD,GAAUV,CAAc,CACzD;AAGH,GAEMY,IAA0C,CAAC;AAAA,EAC/C,wBAAAC;AAAA,EACA,mBAAAC;AACF,MAIOD,IAEEA,MAA2BC,IAFE,IAehCC,IAA0C,CAAC;AAAA,EAC/C,QAAAR;AAAA,EACA,UAAAS;AAAA,EACA,cAAAR;AAAA,EACA,gBAAAR;AAAA,EACA,OAAAiB;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AACF,MAAgD;AACxC,QAAA,EAAE,qBAAqBV,EAAsB,IAAAF,GAC7Ca,IAAuBC,EAAyBL,CAAQ;AAEvD,SAAAP,EAAkB,OAAO,CAAYC,MAAA;AACpC,UAAA;AAAA,MACJ,kBAAkBY;AAAA,MAClB,qBAAqBC;AAAA,MACrB,0BAA0BV;AAAA,MAC1B,eAAeW;AAAA,MACf,0BAA0B1B;AAAA,MAC1B,4BAA4BC;AAAA,IAC1B,IAAAW,GACEe,IAAeH,EAAgB,KAAK,CAAAI,MAAaA,MAAcT,CAAK,GACpEU,IAAgBJ,EAAmB,KAAK,CAAAK,MAAWA,MAAYT,CAAM,GACrEU,IAAcjB,EAAwC;AAAA,MAC1D,wBAAAC;AAAA,MACA,mBAAmBK;AAAA,IAAA,CACpB,GACKY,IAA4BN,MAAiBJ,GAC7CW,IAAerB,EAAS,kBAAkBF,GAC1CwB,IAAmCnC;AAAA,MACvCC;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA;AAGE,WAAAoB,MAAyBa,EAAc,iBAEvCD,KACAD,KACAN,KACAI,KACAC,IAKFE,KACAD,KACAN,KACAK,MACCP,EAAmB,SAAS,IAAII,IAAgB;AAAA,EAAA,CAEpD;AACH,GAEMO,IAAoC,CACxCC,GACAC,GACAC,MACG;AACH,MAAI,CAACF;AACI,WAAA;AAAA,MACL,oBAAoB,CAAC;AAAA,MACrB,yBAAyB,CAAC;AAAA,IAAA;AAK9B,MAAI,CAACE;AACI,WAAA;AAAA,MACL,oBAAoBF,EAAoB,OAAO,CAAAG,MAAWA,EAAQ,gBAAgB;AAAA,MAClF,yBAAyBH,EAAoB,OAAO,CAAWG,MAAA,CAACA,EAAQ,gBAAgB;AAAA,IAAA;AAI5F,QAAM,EAAE,YAAYC,MAAcH,KAAuB,CAAA,GAEnDI,IAAqBL,KAAA,gBAAAA,EAAqB;AAAA,IAC9C,CAAAG,MAAWA,EAAQ,eAAeC;AAAA,KAE9BE,IAA0BN,KAAA,gBAAAA,EAAqB;AAAA,IACnD,CAAAG,MAAWA,EAAQ,eAAeC;AAAA;AAG7B,SAAA;AAAA,IACL,oBAAAC;AAAA,IACA,yBAAAC;AAAA,EAAA;AAEJ,GAkBMC,IAAgF,CACpFnC,GACA;AAAA,EACE,OAAAU;AAAA,EACA,OAAAC;AAAA,EACA,OAAAyB;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,cAAAtC;AAAA,EACA,gBAAAR;AACF,MACG;AACG,QAAA,EAAE,qBAAqBS,EAAsB,IAAAF;AAwD5C,SAtDaE,EAAkB,KAAK,CAAYsC,MAAA;AAC/C,UAAA;AAAA,MACJ,0BAA0BlC;AAAA,MAC1B,kBAAkBS;AAAA,MAClB,cAAc0B;AAAA,MACd,qBAAqBzB;AAAA,MACrB,eAAeC;AAAA,MACf,4BAA4BzB;AAAA,MAC5B,0BAA0BD;AAAA,IACxB,IAAAiD;AAEA,QAAAvB,MAAiBsB,EAAyB;AAE9C,UAAMd,IAAmCnC;AAAA,MACvCC;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA,GAGIiD,IAAmB3B,EAAgB,KAAK,CAAA4B,MAAkBA,MAAmBjC,CAAK,GAClFkC,IACJ5B,EAAmB,SAAS,IACxBA,EAAmB,KAAK,CAAAK,MAAWA,MAAYiB,CAAW,IAC1D,IACAO,IAAmBxC,EAAwC;AAAA,MAC/D,wBAAAC;AAAA,MACA,mBAAmBK;AAAA,IAAA,CACpB,GACKmC,IAAmBV,MAAUK,GAC7BjB,IAAegB,EAAS,kBAAkBvC;AAEhD,WAAIoC,IACED,IAEAX,KACAD,KACAoB,KACAF,KACAG,KACAC,IAGG,SAIPrB,KACAD,KACAoB,KACAF,KACAG;AAAA,EAAA,CAEH;AAGH,GAyBME,IAAoD,CACxD9C,GACAD,GACAa,GACApB,GACAiB,GACAsC,MACG;AACH,MAAI,CAACtC,KAAS,CAACG,UAA6B,CAAA;AAE5C,QAAM,EAAE,0BAA0BoC,GAAsB,qBAAqB/C,MAC3EF;AACF,MAAIkD,IAAoC,CAAA;AAExC,SAAAhD,EACG,OAAO,CAAYC,MACdA,EAAS,kBAAkBF,IAAqB,KAE7CG,EAAyBD,GAAUV,CAAc,CACzD,EACA,QAAQ,CAAY+C,MAAA;AACb,UAAA;AAAA,MACJ,kBAAkBzB;AAAA,MAClB,qBAAqBC;AAAA,MACrB,mBAAmBmC;AAAA,MACnB,eAAelC;AAAA,IACb,IAAAuB,GACEE,IAAmB3B,EAAgB,KAAK,CAAA4B,MAAkBA,MAAmBjC,CAAK;AAKxF,IAAI,CAJ2ByC,EAAiB;AAAA,MAC9C,OAAW9B,MAAY2B;AAAA,IAAA,KAGMN,KAAoBzB,MAAiBJ,MAC9DG,EAAmB,SAAS,IACXA,EAAA,OAAO,CAACoC,GAAKC,OACzBD,EAAIC,CAAW,MAClBD,EAAIC,CAAW,IAAIJ,EAAqBI,CAAW,KAAK,KAGnDD,IACNF,CAAS,IAEAA,IAAA;AAAA,MACV,GAAGD;AAAA,MACH,GAAGC;AAAA,IAAA;AAAA,EAGT,CACD,GAEIA;AACT,GAEMI,IAAyB,CAC7BC,GACA1B,MACG;AACG,QAAA,EAAE,yBAAAK,GAAyB,oBAAAD,EAAA,IAAuBN;AAAA,IACtD4B;AAAA,IACA1B;AAAA,IACA;AAAA,EAAA;AAIE,SAAAI,EAAmB,SAAS,IAAU,KAGnCC,EAAwB,KAAK,CAAWH,MAAA,CAACA,EAAQ,KAAK;AAC/D;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/features/milestone/create/comps/chapters-selection-step/utils.ts"],"sourcesContent":["import type { TTestType } from '../../../types';\nimport type {\n IGoalCurriculumMap,\n IMilestoneConfig,\n TCourseStream,\n TEnrollmentTypes,\n TGoalCategory,\n TMilestoneFormFlow,\n} from '../../milestone-create-types';\nimport type { IChapter } from '../chapter-item/chapter-item-types';\nimport type { TGradeBasedBoardInfo } from './types';\n\nimport { GOAL_CATEGORY } from '../../../constants';\nimport {\n getTestTypeBasedCategory,\n checkEnrollmentAvailable,\n} from '../test-type-step/test-type-utils';\n\nconst getStudentEnrollmentSupported = (\n blockedEnrollmentTypes: TEnrollmentTypes[],\n availableEnrollmentTypes: TEnrollmentTypes[],\n enrollmentType: TEnrollmentTypes,\n) => {\n const isBlocked = blockedEnrollmentTypes.some(\n blockedEnrollment => blockedEnrollment === enrollmentType,\n );\n\n const isAvailable =\n availableEnrollmentTypes.length > 0\n ? availableEnrollmentTypes.some(\n availableEnrollmentType => availableEnrollmentType === enrollmentType,\n )\n : true;\n\n return !isBlocked && isAvailable;\n};\n\ninterface IgetSelectedGoalCategoryData {\n goalCode: string;\n config: IMilestoneConfig;\n courseStream: TCourseStream;\n enrollmentType: TEnrollmentTypes;\n}\n\nconst getSelectedGoalCategoryData = ({\n goalCode,\n config,\n courseStream,\n enrollmentType,\n}: IgetSelectedGoalCategoryData) => {\n const { goal_curriculum_map: goalCurriculumMap } = config;\n\n const selectedGoalCategoryInfo = goalCurriculumMap.find(goalInfo => {\n if (goalInfo.goal_code !== goalCode) return false;\n\n if (goalInfo.course_stream !== courseStream) return false;\n\n return checkEnrollmentAvailable(goalInfo, enrollmentType);\n });\n\n return selectedGoalCategoryInfo;\n};\n\nconst getIfGoalCurriculumStandardIsAccessible = ({\n goalCurriculumStandard,\n referenceStandard,\n}: {\n goalCurriculumStandard?: string;\n referenceStandard?: string;\n}) => {\n if (!goalCurriculumStandard) return true;\n\n return goalCurriculumStandard === referenceStandard;\n};\n\ninterface IcomputeChapterGoalCategoryOnGradeNBoard {\n config: IMilestoneConfig;\n testType: TTestType;\n courseStream: TCourseStream;\n enrollmentType: TEnrollmentTypes;\n grade?: string;\n board?: string;\n region?: string;\n flow?: TMilestoneFormFlow | null;\n}\n\nconst computeChapterGoalCategoryOnGradeNBoard = ({\n config,\n testType,\n courseStream,\n enrollmentType,\n grade,\n board,\n region,\n flow,\n}: IcomputeChapterGoalCategoryOnGradeNBoard) => {\n const { goal_curriculum_map: goalCurriculumMap } = config;\n const selectedGoalCategory = getTestTypeBasedCategory(testType);\n\n return goalCurriculumMap.filter(goalInfo => {\n const {\n available_grades: availableGrades,\n available_countries: availableCountries,\n goal_curriculum_standard: goalCurriculumStandard,\n goal_category: goalCategory,\n blocked_enrollment_types: blockedEnrollmentTypes,\n available_enrollment_types: availableEnrollmentTypes,\n is_live: isLive,\n } = goalInfo;\n const canIncludeGoal = flow === 'CREATE' ? isLive : true;\n const gradePresent = availableGrades.some(gradeInfo => gradeInfo === grade);\n const regionPresent = availableCountries.some(country => country === region);\n const boardPreset = getIfGoalCurriculumStandardIsAccessible({\n goalCurriculumStandard,\n referenceStandard: board,\n });\n const selectedCategoryIsPresent = goalCategory === selectedGoalCategory;\n const isSameCourse = goalInfo.course_stream === courseStream;\n const isStudentEnrollmentTypeSupported = getStudentEnrollmentSupported(\n blockedEnrollmentTypes,\n availableEnrollmentTypes,\n enrollmentType,\n );\n\n if (selectedGoalCategory === GOAL_CATEGORY.SCHOOL_SUCCESS) {\n return (\n canIncludeGoal &&\n isStudentEnrollmentTypeSupported &&\n isSameCourse &&\n gradePresent &&\n boardPreset &&\n selectedCategoryIsPresent\n );\n }\n\n return (\n canIncludeGoal &&\n isStudentEnrollmentTypeSupported &&\n isSameCourse &&\n gradePresent &&\n selectedCategoryIsPresent &&\n (availableCountries.length > 0 ? regionPresent : true)\n );\n });\n};\n\nconst computeRecommendedNCustomChapters = (\n primaryChaptersList?: IChapter[],\n primaryGoalCategory?: IGoalCurriculumMap,\n isGoalCreation?: boolean,\n) => {\n if (!primaryChaptersList) {\n return {\n customChaptersList: [],\n recommendedChaptersList: [],\n };\n }\n\n //* To compensate old milestone flow during edit stage.\n if (!isGoalCreation) {\n return {\n customChaptersList: primaryChaptersList.filter(chapter => chapter.search_and_added),\n recommendedChaptersList: primaryChaptersList.filter(chapter => !chapter.search_and_added),\n };\n }\n\n const { program_id: programId } = primaryGoalCategory || {};\n\n const customChaptersList = primaryChaptersList?.filter(\n chapter => chapter.program_id !== programId,\n );\n const recommendedChaptersList = primaryChaptersList?.filter(\n chapter => chapter.program_id === programId,\n );\n\n return {\n customChaptersList,\n recommendedChaptersList,\n };\n};\n\ninterface IGetGradeBoardAndMajorBasedProgramCode {\n (\n config: IMilestoneConfig,\n props: {\n grade: string;\n board: string;\n major: string;\n countryCode: string;\n majorsPresent: boolean;\n selectedCategory: TGoalCategory;\n courseStream: TCourseStream;\n enrollmentType: TEnrollmentTypes;\n },\n ): IGoalCurriculumMap | undefined;\n}\n\nconst getGradeBoardAndMajorBasedProgramCode: IGetGradeBoardAndMajorBasedProgramCode = (\n config,\n {\n grade,\n board,\n major,\n majorsPresent,\n countryCode,\n selectedCategory,\n courseStream,\n enrollmentType,\n },\n) => {\n const { goal_curriculum_map: goalCurriculumMap } = config;\n\n const programInfo = goalCurriculumMap.find(goalData => {\n const {\n goal_curriculum_standard: goalCurriculumStandard,\n available_grades: availableGrades,\n program_code: programCode,\n available_countries: availableCountries,\n goal_category: goalCategory,\n available_enrollment_types: availableEnrollmentTypes,\n blocked_enrollment_types: blockedEnrollmentTypes,\n } = goalData;\n\n if (goalCategory !== selectedCategory) return undefined;\n\n const isStudentEnrollmentTypeSupported = getStudentEnrollmentSupported(\n blockedEnrollmentTypes,\n availableEnrollmentTypes,\n enrollmentType,\n );\n\n const isGradeAvailable = availableGrades.some(availableGrade => availableGrade === grade);\n const isRegionAvailable =\n availableCountries.length > 0\n ? availableCountries.some(country => country === countryCode)\n : true;\n const isBoardAvailable = getIfGoalCurriculumStandardIsAccessible({\n goalCurriculumStandard,\n referenceStandard: board,\n });\n const isMajorAvailable = major === programCode;\n const isSameCourse = goalData.course_stream === courseStream;\n\n if (majorsPresent) {\n if (major)\n return (\n isStudentEnrollmentTypeSupported &&\n isSameCourse &&\n isRegionAvailable &&\n isGradeAvailable &&\n isBoardAvailable &&\n isMajorAvailable\n );\n\n return undefined;\n }\n\n return (\n isStudentEnrollmentTypeSupported &&\n isSameCourse &&\n isRegionAvailable &&\n isGradeAvailable &&\n isBoardAvailable\n );\n });\n\n return programInfo;\n};\n\nconst getProgramCodeBasedOnGradeAndBoard = (\n gradeBasedBoardInfo: TGradeBasedBoardInfo,\n grade: string,\n board: string,\n course?: string,\n) => {\n const { gradeSyllabusMap } = gradeBasedBoardInfo[board] || {};\n\n if (gradeSyllabusMap) {\n const programInfo = gradeSyllabusMap[grade];\n\n if (programInfo) {\n if (programInfo.majors) {\n return course;\n }\n\n return programInfo.program_code;\n }\n }\n\n return undefined;\n};\n\nconst getCountriesWhereCurrentGradeNCategoryIsAvailable = (\n courseStream: TCourseStream,\n config: IMilestoneConfig,\n selectedGoalCategory: string | undefined,\n enrollmentType: TEnrollmentTypes,\n grade?: string,\n currentCountryCode?: string,\n) => {\n if (!grade && !selectedGoalCategory) return {};\n\n const { country_code_to_name_map: countryCodeToNameMap, goal_curriculum_map: goalCurriculumMap } =\n config;\n let countries: Record<string, string> = {};\n\n goalCurriculumMap\n .filter(goalInfo => {\n if (goalInfo.course_stream !== courseStream) return false;\n\n return checkEnrollmentAvailable(goalInfo, enrollmentType);\n })\n .forEach(goalData => {\n const {\n available_grades: availableGrades,\n available_countries: availableCountries,\n blocked_countries: blockedCountries,\n goal_category: goalCategory,\n } = goalData;\n const isGradeAvailable = availableGrades.some(availableGrade => availableGrade === grade);\n const isStudentRegionBlocked = blockedCountries.some(\n country => country === currentCountryCode,\n );\n\n if (!isStudentRegionBlocked && isGradeAvailable && goalCategory === selectedGoalCategory) {\n if (availableCountries.length > 0) {\n availableCountries.reduce((acc, countryInfo) => {\n if (!acc[countryInfo]) {\n acc[countryInfo] = countryCodeToNameMap[countryInfo] ?? '';\n }\n\n return acc;\n }, countries);\n } else {\n countries = {\n ...countryCodeToNameMap,\n ...countries,\n };\n }\n }\n });\n\n return countries;\n};\n\nconst computeChangeDetection = (\n primaryProgramList?: IChapter[],\n primaryGoalCategory?: IGoalCurriculumMap,\n) => {\n const { recommendedChaptersList, customChaptersList } = computeRecommendedNCustomChapters(\n primaryProgramList,\n primaryGoalCategory,\n true,\n );\n\n //* This will compensate if any new chapter was added.\n if (customChaptersList.length > 0) return true;\n\n //* This will compensate if any chapter was deselected.\n return recommendedChaptersList.some(chapter => !chapter.added);\n};\n\nexport {\n getSelectedGoalCategoryData,\n computeChapterGoalCategoryOnGradeNBoard,\n computeRecommendedNCustomChapters,\n getGradeBoardAndMajorBasedProgramCode,\n getProgramCodeBasedOnGradeAndBoard,\n getCountriesWhereCurrentGradeNCategoryIsAvailable,\n computeChangeDetection,\n getIfGoalCurriculumStandardIsAccessible,\n getStudentEnrollmentSupported,\n};\n"],"names":["getStudentEnrollmentSupported","blockedEnrollmentTypes","availableEnrollmentTypes","enrollmentType","isBlocked","blockedEnrollment","isAvailable","availableEnrollmentType","getSelectedGoalCategoryData","goalCode","config","courseStream","goalCurriculumMap","goalInfo","checkEnrollmentAvailable","getIfGoalCurriculumStandardIsAccessible","goalCurriculumStandard","referenceStandard","computeChapterGoalCategoryOnGradeNBoard","testType","grade","board","region","flow","selectedGoalCategory","getTestTypeBasedCategory","availableGrades","availableCountries","goalCategory","isLive","canIncludeGoal","gradePresent","gradeInfo","regionPresent","country","boardPreset","selectedCategoryIsPresent","isSameCourse","isStudentEnrollmentTypeSupported","GOAL_CATEGORY","computeRecommendedNCustomChapters","primaryChaptersList","primaryGoalCategory","isGoalCreation","chapter","programId","customChaptersList","recommendedChaptersList","getGradeBoardAndMajorBasedProgramCode","major","majorsPresent","countryCode","selectedCategory","goalData","programCode","isGradeAvailable","availableGrade","isRegionAvailable","isBoardAvailable","isMajorAvailable","getCountriesWhereCurrentGradeNCategoryIsAvailable","currentCountryCode","countryCodeToNameMap","countries","blockedCountries","acc","countryInfo","computeChangeDetection","primaryProgramList"],"mappings":"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"}