@cuemath/leap 3.5.1 → 3.5.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.
- package/dist/features/auth/comps/animated-avatar-message/animated-text/animated-text.js.map +1 -1
- package/dist/features/auth/comps/resend-otp/resend-otp.js.map +1 -1
- package/dist/features/chapters/lpar-chapter/constants/block-icons.js.map +1 -1
- package/dist/features/chapters-v2/comps/tag/tag.js.map +1 -1
- package/dist/features/circle-games/comps/info-bar/info-bar.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/infinite-button/infinite-mode-launcher-button.js +5 -5
- package/dist/features/circle-games/game-launcher/comps/tables-card/infinite-button/infinite-mode-launcher-button.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text.js +7 -7
- package/dist/features/circle-games/game-launcher/comps/tables-card/spl-events-text/spl-events-text.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode-star/table-mode-star.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/table-segment-star/table-segment-star.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +38 -38
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/leaderboard-item/leaderboard-item.js.map +1 -1
- package/dist/features/circle-games/leaderboard/comps/navigation-button/navigation-button.js.map +1 -1
- package/dist/features/circle-games/sign-up/api/use-validate-username-api/use-username-availability-get.js +4 -4
- package/dist/features/circle-games/sign-up/api/use-validate-username-api/use-username-availability-get.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/input-wrapper/input-wrapper.js +8 -8
- package/dist/features/circle-games/sign-up/comp/input-wrapper/input-wrapper.js.map +1 -1
- package/dist/features/communication/hooks/use-inclass-message-broker/use-inclass-message-broker.js +4 -4
- package/dist/features/communication/hooks/use-inclass-message-broker/use-inclass-message-broker.js.map +1 -1
- package/dist/features/communication/hooks/use-trial-session-message-broker/use-trial-session-message-broker.js +4 -4
- package/dist/features/communication/hooks/use-trial-session-message-broker/use-trial-session-message-broker.js.map +1 -1
- package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
- package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +4 -4
- package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/color-palette.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/grid-menu.js.map +1 -1
- package/dist/features/cue-canvas/toolbar/toolbar.js.map +1 -1
- package/dist/features/homework/homework-card.js.map +1 -1
- package/dist/features/homework/hw-card-list/hw-card-list.js.map +1 -1
- package/dist/features/homework/node-progress.js.map +1 -1
- package/dist/features/milestone/constants.js +15 -28
- package/dist/features/milestone/constants.js.map +1 -1
- package/dist/features/milestone/create/comps/info-points/info-points.js +12 -12
- package/dist/features/milestone/create/comps/info-points/info-points.js.map +1 -1
- package/dist/features/milestone/create/comps/test-type-step/test-type-utils.js +16 -23
- package/dist/features/milestone/create/comps/test-type-step/test-type-utils.js.map +1 -1
- package/dist/features/milestone/create/submit-modal/submit-modal.js.map +1 -1
- package/dist/features/milestone/create/submit-modal/submit-with-plan-modal/submit-with-plan-modal.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js.map +1 -1
- package/dist/features/milestone/outcome/comps/outcome-collection/input-descriptor.js +1 -5
- package/dist/features/milestone/outcome/comps/outcome-collection/input-descriptor.js.map +1 -1
- package/dist/features/notification/notification.js.map +1 -1
- package/dist/features/parent-dashboard/comps/next-steps/next-steps.js.map +1 -1
- package/dist/features/pointer-sync/hooks/use-pointer-sync.js +6 -6
- package/dist/features/pointer-sync/hooks/use-pointer-sync.js.map +1 -1
- package/dist/features/post-game-stats/digital-meter/digital-meter.js +26 -26
- package/dist/features/post-game-stats/digital-meter/digital-meter.js.map +1 -1
- package/dist/features/talk-meter/hooks/use-talk-meter.js +4 -4
- package/dist/features/talk-meter/hooks/use-talk-meter.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js +5 -5
- package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js.map +1 -1
- package/dist/features/trial-session/comps/navigation-bar/index.js +13 -13
- package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals.js +60 -60
- package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js +44 -44
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
- package/dist/features/trial-session/comps/student-info/student-info.js +35 -35
- package/dist/features/trial-session/comps/student-info/student-info.js.map +1 -1
- package/dist/features/trial-session/comps/test-prep/test-prep.js +45 -45
- package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
- package/dist/features/trial-session/helper.js +49 -49
- package/dist/features/trial-session/helper.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-list-hook.js +1 -1
- package/dist/features/wins-dashboard/student-badges/hooks/use-student-badge-list-hook.js.map +1 -1
- package/dist/features/worksheet/user-pointer-pin/hooks/use-user-location.js +5 -5
- package/dist/features/worksheet/user-pointer-pin/hooks/use-user-location.js.map +1 -1
- package/dist/index.d.ts +6 -14
- package/package.json +3 -4
|
@@ -1,46 +1,46 @@
|
|
|
1
1
|
import { jsxs as i, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { memo as
|
|
3
|
-
import { ILLUSTRATIONS as
|
|
4
|
-
import { GOAL_CATEGORY as
|
|
2
|
+
import { memo as x, useCallback as t, useEffect as B } from "react";
|
|
3
|
+
import { ILLUSTRATIONS as E } from "../../../../assets/illustrations/illustrations.js";
|
|
4
|
+
import { GOAL_CATEGORY as G } from "../../../milestone/constants.js";
|
|
5
5
|
import { getCategorizedCurriculumStandards as O } from "../../../milestone/create/comps/class-details-step/class-details-utils.js";
|
|
6
|
-
import { getGradesFromConfig as
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import { useTrialSessionContext as
|
|
13
|
-
import
|
|
14
|
-
import { Container as
|
|
15
|
-
const
|
|
16
|
-
const { formData: c, milestoneConfig: m, updateSlideConfig: a, updateButtonState: s, trialHomeData: f } =
|
|
17
|
-
countryCode:
|
|
6
|
+
import { getGradesFromConfig as U } from "../../../milestone/create/milestone-create-helpers.js";
|
|
7
|
+
import $ from "../../../ui/image/image.js";
|
|
8
|
+
import D from "../../../ui/inputs/searchable-select-input/searchable-select-input.js";
|
|
9
|
+
import H from "../../../ui/inputs/select-input/select-input.js";
|
|
10
|
+
import W from "../../../ui/inputs/text-input/text-input.js";
|
|
11
|
+
import k from "../../../ui/separator/separator.js";
|
|
12
|
+
import { useTrialSessionContext as v } from "../../context/use-trial-session-context.js";
|
|
13
|
+
import R from "../slide-header/index.js";
|
|
14
|
+
import { Container as j, StudentInfoWrapper as w, ImageWrapper as F, InformationWrapper as K } from "./student-info-styled.js";
|
|
15
|
+
const te = x(() => {
|
|
16
|
+
const { formData: c, milestoneConfig: m, updateSlideConfig: a, updateButtonState: s, trialHomeData: f } = v(), { name: d, grade: n, curriculum: l } = c || {}, g = U(m), { demo_info: h, student: C } = f, { enrollment_type: S } = C || {}, { stream: I, region_data: L } = h || {}, { opportunity_country: b = "US" } = L || {}, _ = O(m, {
|
|
17
|
+
countryCode: b,
|
|
18
18
|
grade: n ?? "",
|
|
19
|
-
goalCategory:
|
|
20
|
-
courseStream:
|
|
21
|
-
enrollmentType:
|
|
19
|
+
goalCategory: G.SCHOOL_SUCCESS,
|
|
20
|
+
courseStream: I,
|
|
21
|
+
enrollmentType: S
|
|
22
22
|
}), u = !!(d && n && l), o = t(
|
|
23
23
|
(e, p) => {
|
|
24
24
|
a(e === "grade" ? { [e]: p, goals: [] } : { [e]: p });
|
|
25
25
|
},
|
|
26
26
|
[a]
|
|
27
|
-
),
|
|
27
|
+
), A = t((e) => o("name", e.target.value), [o]), T = t(
|
|
28
28
|
(e) => o("grade", e),
|
|
29
29
|
[o]
|
|
30
|
-
),
|
|
30
|
+
), y = t(
|
|
31
31
|
(e) => o("curriculum", e),
|
|
32
32
|
[o]
|
|
33
33
|
);
|
|
34
|
-
return
|
|
34
|
+
return B(() => {
|
|
35
35
|
s("right", { isDisabled: !u, isLoading: !1 });
|
|
36
|
-
}, [u, s]), /* @__PURE__ */ i(
|
|
37
|
-
/* @__PURE__ */ r(
|
|
38
|
-
/* @__PURE__ */ r(
|
|
39
|
-
/* @__PURE__ */ i(
|
|
40
|
-
/* @__PURE__ */ r(
|
|
41
|
-
/* @__PURE__ */ i(
|
|
36
|
+
}, [u, s]), /* @__PURE__ */ i(j, { children: [
|
|
37
|
+
/* @__PURE__ */ r(k, { height: 60 }),
|
|
38
|
+
/* @__PURE__ */ r(R, {}),
|
|
39
|
+
/* @__PURE__ */ i(w, { $background: "BLUE_4", $borderColor: "BLACK_T_87", children: [
|
|
40
|
+
/* @__PURE__ */ r(F, { children: /* @__PURE__ */ r($, { withLoader: !1, src: E.BLUE_CLIP, width: 261, height: 31 }) }),
|
|
41
|
+
/* @__PURE__ */ i(K, { $flexGapX: 2.75, $background: "WHITE_1", $borderColor: "BLACK_T_87", children: [
|
|
42
42
|
/* @__PURE__ */ r(
|
|
43
|
-
|
|
43
|
+
W,
|
|
44
44
|
{
|
|
45
45
|
renderAs: "primary",
|
|
46
46
|
label: "Student name",
|
|
@@ -48,32 +48,32 @@ const re = T(() => {
|
|
|
48
48
|
type: "text",
|
|
49
49
|
name: "name",
|
|
50
50
|
shape: "borderLess",
|
|
51
|
-
onChange:
|
|
51
|
+
onChange: A
|
|
52
52
|
}
|
|
53
53
|
),
|
|
54
54
|
/* @__PURE__ */ r(
|
|
55
|
-
|
|
55
|
+
D,
|
|
56
56
|
{
|
|
57
57
|
renderAs: "primary",
|
|
58
58
|
label: "Grade",
|
|
59
59
|
value: n,
|
|
60
60
|
options: g,
|
|
61
61
|
shape: "borderLess",
|
|
62
|
-
onChange:
|
|
62
|
+
onChange: T,
|
|
63
63
|
theme: "dark"
|
|
64
64
|
}
|
|
65
65
|
),
|
|
66
66
|
/* @__PURE__ */ r(
|
|
67
|
-
|
|
67
|
+
H,
|
|
68
68
|
{
|
|
69
69
|
renderAs: "primary",
|
|
70
70
|
label: "Curriculum",
|
|
71
71
|
value: l,
|
|
72
|
-
options:
|
|
72
|
+
options: _,
|
|
73
73
|
shape: "borderLess",
|
|
74
74
|
renderOptionsAs: "section-list",
|
|
75
75
|
theme: "dark",
|
|
76
|
-
onChange:
|
|
76
|
+
onChange: y
|
|
77
77
|
}
|
|
78
78
|
)
|
|
79
79
|
] })
|
|
@@ -81,6 +81,6 @@ const re = T(() => {
|
|
|
81
81
|
] });
|
|
82
82
|
});
|
|
83
83
|
export {
|
|
84
|
-
|
|
84
|
+
te as default
|
|
85
85
|
};
|
|
86
86
|
//# sourceMappingURL=student-info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"student-info.js","sources":["../../../../../src/features/trial-session/comps/student-info/student-info.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, type InputHTMLAttributes } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport { GOAL_CATEGORY } from '../../../milestone/constants';\nimport { getCategorizedCurriculumStandards } from '../../../milestone/create/comps/class-details-step/class-details-utils';\nimport { getGradesFromConfig } from '../../../milestone/create/milestone-create-helpers';\nimport Image from '../../../ui/image/image';\nimport SearchableSelectInput from '../../../ui/inputs/searchable-select-input/searchable-select-input';\nimport SelectInput from '../../../ui/inputs/select-input/select-input';\nimport TextInput from '../../../ui/inputs/text-input/text-input';\nimport Separator from '../../../ui/separator/separator';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport SlideHeader from '../slide-header';\nimport * as Styled from './student-info-styled';\n\nconst StudentInformation = memo(() => {\n const { formData, milestoneConfig, updateSlideConfig, updateButtonState, trialHomeData } =\n useTrialSessionContext();\n\n const { name, grade, curriculum } = formData || {};\n const grades = getGradesFromConfig(milestoneConfig);\n\n const { demo_info: demoInfo } = trialHomeData;\n const { stream, region_data: regionData } = demoInfo || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n\n const curriculumStandards = getCategorizedCurriculumStandards(milestoneConfig, {\n countryCode,\n grade: grade ?? '',\n goalCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream: stream,\n enrollmentType:
|
|
1
|
+
{"version":3,"file":"student-info.js","sources":["../../../../../src/features/trial-session/comps/student-info/student-info.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, type InputHTMLAttributes } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport { GOAL_CATEGORY } from '../../../milestone/constants';\nimport { getCategorizedCurriculumStandards } from '../../../milestone/create/comps/class-details-step/class-details-utils';\nimport { getGradesFromConfig } from '../../../milestone/create/milestone-create-helpers';\nimport Image from '../../../ui/image/image';\nimport SearchableSelectInput from '../../../ui/inputs/searchable-select-input/searchable-select-input';\nimport SelectInput from '../../../ui/inputs/select-input/select-input';\nimport TextInput from '../../../ui/inputs/text-input/text-input';\nimport Separator from '../../../ui/separator/separator';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport SlideHeader from '../slide-header';\nimport * as Styled from './student-info-styled';\n\nconst StudentInformation = memo(() => {\n const { formData, milestoneConfig, updateSlideConfig, updateButtonState, trialHomeData } =\n useTrialSessionContext();\n\n const { name, grade, curriculum } = formData || {};\n const grades = getGradesFromConfig(milestoneConfig);\n\n const { demo_info: demoInfo, student } = trialHomeData;\n const { enrollment_type: enrollmentType } = student || {};\n const { stream, region_data: regionData } = demoInfo || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n\n const curriculumStandards = getCategorizedCurriculumStandards(milestoneConfig, {\n countryCode,\n grade: grade ?? '',\n goalCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream: stream,\n enrollmentType: enrollmentType,\n });\n const hasRequiredFields = Boolean(name && grade && curriculum);\n\n const updateStudentInformation = useCallback(\n (key: string, value: string) => {\n if (key === 'grade') {\n // reset goals as well if grade changes\n updateSlideConfig({ [key]: value, goals: [] });\n } else {\n updateSlideConfig({ [key]: value });\n }\n },\n [updateSlideConfig],\n );\n\n const handleNameChange = useCallback<\n NonNullable<InputHTMLAttributes<HTMLInputElement>['onChange']>\n >(event => updateStudentInformation('name', event.target.value), [updateStudentInformation]);\n\n const handleGradeChange = useCallback(\n (value: string) => updateStudentInformation('grade', value),\n [updateStudentInformation],\n );\n\n const handleCurriculumChange = useCallback(\n (value: string) => updateStudentInformation('curriculum', value),\n [updateStudentInformation],\n );\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: !hasRequiredFields, isLoading: false });\n }, [hasRequiredFields, updateButtonState]);\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader />\n <Styled.StudentInfoWrapper $background=\"BLUE_4\" $borderColor=\"BLACK_T_87\">\n <Styled.ImageWrapper>\n <Image withLoader={false} src={ILLUSTRATIONS.BLUE_CLIP} width={261} height={31} />\n </Styled.ImageWrapper>\n <Styled.InformationWrapper $flexGapX={2.75} $background=\"WHITE_1\" $borderColor=\"BLACK_T_87\">\n <TextInput\n renderAs=\"primary\"\n label=\"Student name\"\n value={name}\n type=\"text\"\n name=\"name\"\n shape=\"borderLess\"\n onChange={handleNameChange}\n />\n <SearchableSelectInput\n renderAs=\"primary\"\n label=\"Grade\"\n value={grade}\n options={grades}\n shape=\"borderLess\"\n onChange={handleGradeChange}\n theme=\"dark\"\n />\n <SelectInput\n renderAs=\"primary\"\n label=\"Curriculum\"\n value={curriculum}\n options={curriculumStandards}\n shape=\"borderLess\"\n renderOptionsAs=\"section-list\"\n theme=\"dark\"\n onChange={handleCurriculumChange}\n />\n </Styled.InformationWrapper>\n </Styled.StudentInfoWrapper>\n </Styled.Container>\n );\n});\n\nexport default StudentInformation;\n"],"names":["StudentInformation","memo","formData","milestoneConfig","updateSlideConfig","updateButtonState","trialHomeData","useTrialSessionContext","name","grade","curriculum","grades","getGradesFromConfig","demoInfo","student","enrollmentType","stream","regionData","countryCode","curriculumStandards","getCategorizedCurriculumStandards","GOAL_CATEGORY","hasRequiredFields","updateStudentInformation","useCallback","key","value","handleNameChange","event","handleGradeChange","handleCurriculumChange","useEffect","jsxs","Styled.Container","jsx","Separator","SlideHeader","Styled.StudentInfoWrapper","Styled.ImageWrapper","Image","ILLUSTRATIONS","Styled.InformationWrapper","TextInput","SearchableSelectInput","SelectInput"],"mappings":"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"}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { memo as
|
|
3
|
-
import { GIF as
|
|
1
|
+
import { jsxs as d, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { memo as A, useMemo as L, useCallback as x } from "react";
|
|
3
|
+
import { GIF as I } from "../../../../assets/gif/gif.js";
|
|
4
4
|
import { GOAL_CATEGORY as r } from "../../../milestone/constants.js";
|
|
5
|
-
import { getGoalsFromConfig as
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import { epochTimestampAfterOneYear as
|
|
11
|
-
import { useTrialSessionContext as
|
|
12
|
-
import { isPLASource as O, updateGoalInFormData as
|
|
13
|
-
import
|
|
14
|
-
import { Container as
|
|
15
|
-
const
|
|
16
|
-
const { milestoneConfig: i, formData:
|
|
17
|
-
() =>
|
|
18
|
-
countryCode:
|
|
19
|
-
grade:
|
|
5
|
+
import { getGoalsFromConfig as R } from "../../../milestone/create/milestone-create-helpers.js";
|
|
6
|
+
import D from "../../../ui/image/image.js";
|
|
7
|
+
import j from "../../../ui/inputs/searchable-select-input/searchable-select-input.js";
|
|
8
|
+
import f from "../../../ui/separator/separator.js";
|
|
9
|
+
import k from "../../../ui/text/text.js";
|
|
10
|
+
import { epochTimestampAfterOneYear as w } from "../../../utils/utils.js";
|
|
11
|
+
import { useTrialSessionContext as F } from "../../context/use-trial-session-context.js";
|
|
12
|
+
import { isPLASource as O, updateGoalInFormData as W } from "../../helper.js";
|
|
13
|
+
import X from "../slide-header/index.js";
|
|
14
|
+
import { Container as B, ContentWrapper as H, ImageWrapper as U, InputContainer as Y } from "./test-prep-styled.js";
|
|
15
|
+
const ne = A(() => {
|
|
16
|
+
const { milestoneConfig: i, formData: g, updateSlideConfig: n, trialHomeData: u } = F(), { demo_info: h, intel_student: a, student: T } = u, { enrollment_type: s } = T || {}, { stream: m, region_data: _ } = h || {}, { opportunity_country: l = "US" } = _ || {}, { grade: p, goals: e } = g || {}, c = O(a == null ? void 0 : a.source), C = L(
|
|
17
|
+
() => R(i, {
|
|
18
|
+
countryCode: l,
|
|
19
|
+
grade: p ?? "",
|
|
20
20
|
goalCategory: r.TEST_PREP,
|
|
21
|
-
courseStream:
|
|
22
|
-
enrollmentType:
|
|
21
|
+
courseStream: m,
|
|
22
|
+
enrollmentType: s
|
|
23
23
|
}),
|
|
24
|
-
[
|
|
25
|
-
), { goal_code:
|
|
26
|
-
(t,
|
|
24
|
+
[l, s, p, i, m]
|
|
25
|
+
), { goal_code: P } = (e == null ? void 0 : e.find((t) => t.goal_category === r.TEST_PREP)) ?? {}, S = x(
|
|
26
|
+
(t, E) => {
|
|
27
27
|
if (!t) {
|
|
28
|
-
const
|
|
29
|
-
(
|
|
28
|
+
const $ = e == null ? void 0 : e.filter(
|
|
29
|
+
(G) => G.goal_category !== r.TEST_PREP
|
|
30
30
|
);
|
|
31
|
-
|
|
31
|
+
n({ goals: $ });
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
|
-
const { label:
|
|
34
|
+
const { label: y } = E, b = W(e, r.TEST_PREP, {
|
|
35
35
|
goal_code: t,
|
|
36
|
-
milestone_name:
|
|
37
|
-
milestone_date_ts:
|
|
38
|
-
publish:
|
|
36
|
+
milestone_name: y,
|
|
37
|
+
milestone_date_ts: w(),
|
|
38
|
+
publish: c
|
|
39
39
|
});
|
|
40
|
-
|
|
40
|
+
n({ goals: b });
|
|
41
41
|
},
|
|
42
|
-
[e,
|
|
42
|
+
[e, c, n]
|
|
43
43
|
);
|
|
44
|
-
return /* @__PURE__ */
|
|
45
|
-
/* @__PURE__ */ o(
|
|
46
|
-
/* @__PURE__ */ o(
|
|
47
|
-
/* @__PURE__ */
|
|
48
|
-
/* @__PURE__ */ o(
|
|
44
|
+
return /* @__PURE__ */ d(B, { children: [
|
|
45
|
+
/* @__PURE__ */ o(f, { height: 60 }),
|
|
46
|
+
/* @__PURE__ */ o(X, {}),
|
|
47
|
+
/* @__PURE__ */ d(H, { $flexDirection: "row", $justifyContent: "center", children: [
|
|
48
|
+
/* @__PURE__ */ o(U, { children: /* @__PURE__ */ o(D, { withLoader: !0, height: 402, width: 302, src: I.TEST_PREP, className: "image" }) }),
|
|
49
49
|
/* @__PURE__ */ o(
|
|
50
|
-
|
|
50
|
+
Y,
|
|
51
51
|
{
|
|
52
52
|
$flexGap: 40,
|
|
53
53
|
$justifyContent: "center",
|
|
@@ -56,26 +56,26 @@ const te = $(() => {
|
|
|
56
56
|
$gapX: 2.5,
|
|
57
57
|
$gutterX: 2.5,
|
|
58
58
|
children: /* @__PURE__ */ o(
|
|
59
|
-
|
|
59
|
+
j,
|
|
60
60
|
{
|
|
61
61
|
renderAs: "primary",
|
|
62
62
|
label: "Select a Test",
|
|
63
|
-
value:
|
|
64
|
-
options:
|
|
63
|
+
value: P,
|
|
64
|
+
options: C,
|
|
65
65
|
shape: "borderLess",
|
|
66
66
|
theme: "dark",
|
|
67
|
-
onChange:
|
|
67
|
+
onChange: S,
|
|
68
68
|
isTransparent: !0
|
|
69
69
|
}
|
|
70
70
|
)
|
|
71
71
|
}
|
|
72
72
|
)
|
|
73
73
|
] }),
|
|
74
|
-
/* @__PURE__ */ o(
|
|
75
|
-
/* @__PURE__ */ o(
|
|
74
|
+
/* @__PURE__ */ o(f, { heightX: 1 }),
|
|
75
|
+
/* @__PURE__ */ o(k, { $renderAs: "ub3", $align: "center", children: "This is optional and can be skipped." })
|
|
76
76
|
] });
|
|
77
77
|
});
|
|
78
78
|
export {
|
|
79
|
-
|
|
79
|
+
ne as default
|
|
80
80
|
};
|
|
81
81
|
//# sourceMappingURL=test-prep.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-prep.js","sources":["../../../../../src/features/trial-session/comps/test-prep/test-prep.tsx"],"sourcesContent":["import { memo, useCallback, useMemo } from 'react';\n\nimport { GIF } from '../../../../assets/gif/gif';\nimport { GOAL_CATEGORY } from '../../../milestone/constants';\nimport { getGoalsFromConfig } from '../../../milestone/create/milestone-create-helpers';\nimport Image from '../../../ui/image/image';\nimport type { ISelectOption } from '../../../ui/inputs/base-select-input/base-select-input-types';\nimport SearchableSelectInput from '../../../ui/inputs/searchable-select-input/searchable-select-input';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { epochTimestampAfterOneYear } from '../../../utils/utils';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { isPLASource, updateGoalInFormData } from '../../helper';\nimport SlideHeader from '../slide-header';\nimport * as Styled from './test-prep-styled';\n\nconst TestPrep = memo(() => {\n const { milestoneConfig, formData, updateSlideConfig, trialHomeData } = useTrialSessionContext();\n\n const { demo_info: demoInfo, intel_student: intelStudent } = trialHomeData;\n const { stream, region_data: regionData } = demoInfo || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n const { grade, goals } = formData || {};\n const isPLA = isPLASource(intelStudent?.source);\n\n const goalsList = useMemo(\n () =>\n getGoalsFromConfig(milestoneConfig, {\n countryCode,\n grade: grade ?? '',\n goalCategory: GOAL_CATEGORY.TEST_PREP,\n courseStream: stream,\n enrollmentType:
|
|
1
|
+
{"version":3,"file":"test-prep.js","sources":["../../../../../src/features/trial-session/comps/test-prep/test-prep.tsx"],"sourcesContent":["import { memo, useCallback, useMemo } from 'react';\n\nimport { GIF } from '../../../../assets/gif/gif';\nimport { GOAL_CATEGORY } from '../../../milestone/constants';\nimport { getGoalsFromConfig } from '../../../milestone/create/milestone-create-helpers';\nimport Image from '../../../ui/image/image';\nimport type { ISelectOption } from '../../../ui/inputs/base-select-input/base-select-input-types';\nimport SearchableSelectInput from '../../../ui/inputs/searchable-select-input/searchable-select-input';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { epochTimestampAfterOneYear } from '../../../utils/utils';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { isPLASource, updateGoalInFormData } from '../../helper';\nimport SlideHeader from '../slide-header';\nimport * as Styled from './test-prep-styled';\n\nconst TestPrep = memo(() => {\n const { milestoneConfig, formData, updateSlideConfig, trialHomeData } = useTrialSessionContext();\n\n const { demo_info: demoInfo, intel_student: intelStudent, student } = trialHomeData;\n const { enrollment_type: enrollmentType } = student || {};\n const { stream, region_data: regionData } = demoInfo || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n const { grade, goals } = formData || {};\n const isPLA = isPLASource(intelStudent?.source);\n\n const goalsList = useMemo(\n () =>\n getGoalsFromConfig(milestoneConfig, {\n countryCode,\n grade: grade ?? '',\n goalCategory: GOAL_CATEGORY.TEST_PREP,\n courseStream: stream,\n enrollmentType: enrollmentType,\n }),\n [countryCode, enrollmentType, grade, milestoneConfig, stream],\n );\n\n const { goal_code: selectedGoal } =\n goals?.find(goal => goal.goal_category === GOAL_CATEGORY.TEST_PREP) ?? {};\n\n const handleGoalChange = useCallback(\n (value: string, option: ISelectOption<string | number>) => {\n if (!value) {\n const goalsWithoutTestPrep = goals?.filter(\n goal => goal.goal_category !== GOAL_CATEGORY.TEST_PREP,\n );\n\n updateSlideConfig({ goals: goalsWithoutTestPrep });\n\n return;\n }\n\n const { label } = option;\n\n const updatedGoals = updateGoalInFormData(goals, GOAL_CATEGORY.TEST_PREP, {\n goal_code: value,\n milestone_name: label,\n milestone_date_ts: epochTimestampAfterOneYear(),\n publish: isPLA,\n });\n\n updateSlideConfig({ goals: updatedGoals });\n },\n [goals, isPLA, updateSlideConfig],\n );\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader />\n <Styled.ContentWrapper $flexDirection=\"row\" $justifyContent=\"center\">\n <Styled.ImageWrapper>\n <Image withLoader height={402} width={302} src={GIF.TEST_PREP} className=\"image\" />\n </Styled.ImageWrapper>\n <Styled.InputContainer\n $flexGap={40}\n $justifyContent=\"center\"\n $background=\"BLUE_1\"\n $borderColor=\"BLACK_1\"\n $gapX={2.5}\n $gutterX={2.5}\n >\n <SearchableSelectInput\n renderAs=\"primary\"\n label=\"Select a Test\"\n value={selectedGoal}\n options={goalsList}\n shape=\"borderLess\"\n theme=\"dark\"\n onChange={handleGoalChange}\n isTransparent\n />\n </Styled.InputContainer>\n </Styled.ContentWrapper>\n <Separator heightX={1} />\n <Text $renderAs=\"ub3\" $align=\"center\">\n This is optional and can be skipped.\n </Text>\n </Styled.Container>\n );\n});\n\nexport default TestPrep;\n"],"names":["TestPrep","memo","milestoneConfig","formData","updateSlideConfig","trialHomeData","useTrialSessionContext","demoInfo","intelStudent","student","enrollmentType","stream","regionData","countryCode","grade","goals","isPLA","isPLASource","goalsList","useMemo","getGoalsFromConfig","GOAL_CATEGORY","selectedGoal","goal","handleGoalChange","useCallback","value","option","goalsWithoutTestPrep","label","updatedGoals","updateGoalInFormData","epochTimestampAfterOneYear","jsxs","Styled.Container","jsx","Separator","SlideHeader","Styled.ContentWrapper","Styled.ImageWrapper","Image","GIF","Styled.InputContainer","SearchableSelectInput","Text"],"mappings":";;;;;;;;;;;;;;AAgBM,MAAAA,KAAWC,EAAK,MAAM;AAC1B,QAAM,EAAE,iBAAAC,GAAiB,UAAAC,GAAU,mBAAAC,GAAmB,eAAAC,EAAA,IAAkBC,KAElE,EAAE,WAAWC,GAAU,eAAeC,GAAc,SAAAC,EAAY,IAAAJ,GAChE,EAAE,iBAAiBK,MAAmBD,KAAW,CAAA,GACjD,EAAE,QAAAE,GAAQ,aAAaC,EAAW,IAAIL,KAAY,CAAA,GAClD,EAAE,qBAAqBM,IAAc,KAAK,IAAID,KAAc,CAAA,GAC5D,EAAE,OAAAE,GAAO,OAAAC,MAAUZ,KAAY,CAAA,GAC/Ba,IAAQC,EAAYT,KAAA,gBAAAA,EAAc,MAAM,GAExCU,IAAYC;AAAA,IAChB,MACEC,EAAmBlB,GAAiB;AAAA,MAClC,aAAAW;AAAA,MACA,OAAOC,KAAS;AAAA,MAChB,cAAcO,EAAc;AAAA,MAC5B,cAAcV;AAAA,MACd,gBAAAD;AAAA,IAAA,CACD;AAAA,IACH,CAACG,GAAaH,GAAgBI,GAAOZ,GAAiBS,CAAM;AAAA,EAAA,GAGxD,EAAE,WAAWW,OACjBP,KAAA,gBAAAA,EAAO,KAAK,CAAQQ,MAAAA,EAAK,kBAAkBF,EAAc,eAAc,CAAA,GAEnEG,IAAmBC;AAAA,IACvB,CAACC,GAAeC,MAA2C;AACzD,UAAI,CAACD,GAAO;AACV,cAAME,IAAuBb,KAAA,gBAAAA,EAAO;AAAA,UAClC,CAAAQ,MAAQA,EAAK,kBAAkBF,EAAc;AAAA;AAG7B,QAAAjB,EAAA,EAAE,OAAOwB,EAAA,CAAsB;AAEjD;AAAA,MACF;AAEM,YAAA,EAAE,OAAAC,EAAU,IAAAF,GAEZG,IAAeC,EAAqBhB,GAAOM,EAAc,WAAW;AAAA,QACxE,WAAWK;AAAA,QACX,gBAAgBG;AAAA,QAChB,mBAAmBG,EAA2B;AAAA,QAC9C,SAAShB;AAAA,MAAA,CACV;AAEiB,MAAAZ,EAAA,EAAE,OAAO0B,EAAA,CAAc;AAAA,IAC3C;AAAA,IACA,CAACf,GAAOC,GAAOZ,CAAiB;AAAA,EAAA;AAIhC,SAAA,gBAAA6B,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,sBACtBC,GAAY,EAAA;AAAA,sBACZC,GAAA,EAAsB,gBAAe,OAAM,iBAAgB,UAC1D,UAAA;AAAA,MAAA,gBAAAH,EAACI,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EAAM,YAAU,IAAC,QAAQ,KAAK,OAAO,KAAK,KAAKC,EAAI,WAAW,WAAU,QAAQ,CAAA,GACnF;AAAA,MACA,gBAAAN;AAAA,QAACO;AAAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV,iBAAgB;AAAA,UAChB,aAAY;AAAA,UACZ,cAAa;AAAA,UACb,OAAO;AAAA,UACP,UAAU;AAAA,UAEV,UAAA,gBAAAP;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,OAAM;AAAA,cACN,OAAOrB;AAAA,cACP,SAASJ;AAAA,cACT,OAAM;AAAA,cACN,OAAM;AAAA,cACN,UAAUM;AAAA,cACV,eAAa;AAAA,YAAA;AAAA,UACf;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAW,EAACC,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,sBACtBQ,GAAK,EAAA,WAAU,OAAM,QAAO,UAAS,UAEtC,wCAAA;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC;"}
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
import { DAYS as
|
|
2
|
-
import { getOffsetBetweenTimezone as
|
|
1
|
+
import { DAYS as I } from "../../constants/date-time.js";
|
|
2
|
+
import { getOffsetBetweenTimezone as D, convertEpochToDateTime as O, getTimeUnits as R, convertToMilliseconds as x } from "../../helpers/date-time.js";
|
|
3
3
|
import { GOAL_CATEGORY as N } from "../milestone/constants.js";
|
|
4
|
-
import { getGoalsFromConfig as
|
|
5
|
-
import { TrialPageId as
|
|
6
|
-
const
|
|
7
|
-
const t = n ? [...n] : [], r = t == null ? void 0 : t.findIndex((
|
|
4
|
+
import { getGoalsFromConfig as A } from "../milestone/create/milestone-create-helpers.js";
|
|
5
|
+
import { TrialPageId as u, TEACHER_TIMEZONE as C } from "./trial-session-constants.js";
|
|
6
|
+
const v = (n) => n === "PLA", U = (n, e, o) => {
|
|
7
|
+
const t = n ? [...n] : [], r = t == null ? void 0 : t.findIndex((s) => s.goal_category === e);
|
|
8
8
|
if (r === -1) {
|
|
9
|
-
const
|
|
9
|
+
const s = {
|
|
10
10
|
...o,
|
|
11
11
|
goal_category: e
|
|
12
12
|
};
|
|
13
|
-
t.push(
|
|
13
|
+
t.push(s);
|
|
14
14
|
} else
|
|
15
15
|
t[r] = {
|
|
16
16
|
...t[r],
|
|
17
17
|
...o
|
|
18
18
|
};
|
|
19
19
|
return t;
|
|
20
|
-
},
|
|
20
|
+
}, b = (n, e) => {
|
|
21
21
|
if (!e) return [];
|
|
22
|
-
const o = (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0), t =
|
|
23
|
-
return n.length > 0 ? n.filter((
|
|
24
|
-
const { selectedDay:
|
|
22
|
+
const o = (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0), t = D(C, e), r = o + t, { day: s = "" } = O(r, e), l = I.indexOf(s);
|
|
23
|
+
return n.length > 0 ? n.filter((i) => i.selectedDay && i.selectedTime).map((i) => {
|
|
24
|
+
const { selectedDay: _, selectedTime: p } = i, { hours: f, minutes: c, period: d } = R(p), m = (I.indexOf(_) - l + 7) % 7;
|
|
25
25
|
return {
|
|
26
|
-
id: o + t +
|
|
27
|
-
value: `${
|
|
26
|
+
id: o + t + x({ days: m, hours: f, minutes: c }),
|
|
27
|
+
value: `${_}, ${p} - ${f + 1}:${c < 10 ? "0" : ""}${c} ${d}`
|
|
28
28
|
// Formatted the value string as required
|
|
29
29
|
};
|
|
30
30
|
}) : [];
|
|
31
|
-
},
|
|
32
|
-
const o = new Date(e.id), t =
|
|
33
|
-
return { weekday: r, start_time:
|
|
34
|
-
}),
|
|
31
|
+
}, F = (n) => n.filter((e) => typeof e.id == "number" && !isNaN(e.id)).map((e) => {
|
|
32
|
+
const o = new Date(e.id), t = I[o.getDay()], r = t ? t.toLowerCase() : "unknown", s = o.getHours(), l = o.getMinutes(), i = `${s.toString().padStart(2, "0")}:${l.toString().padStart(2, "0")}:00`;
|
|
33
|
+
return { weekday: r, start_time: i };
|
|
34
|
+
}), k = ({
|
|
35
35
|
milestoneConfigData: n,
|
|
36
36
|
trialHomeData: e,
|
|
37
37
|
grade: o
|
|
38
38
|
}) => {
|
|
39
|
-
var
|
|
40
|
-
const { student: t, demo_info: r } = e, { grade:
|
|
41
|
-
countryCode:
|
|
42
|
-
grade: o ||
|
|
39
|
+
var h;
|
|
40
|
+
const { student: t, demo_info: r } = e, { grade: s, enrollment_type: l } = t || {}, { stream: i, region_data: _ } = r || {}, { opportunity_country: p = "US" } = _ || {}, f = (g) => A(n, {
|
|
41
|
+
countryCode: p,
|
|
42
|
+
grade: o || s || "",
|
|
43
43
|
goalCategory: g,
|
|
44
|
-
courseStream:
|
|
45
|
-
enrollmentType:
|
|
46
|
-
}),
|
|
47
|
-
if ((
|
|
44
|
+
courseStream: i,
|
|
45
|
+
enrollmentType: l
|
|
46
|
+
}), c = f(N.TEST_PREP), d = f(N.ENRICHMENT);
|
|
47
|
+
if ((c == null ? void 0 : c.length) > 0 && (d == null ? void 0 : d.length) > 0)
|
|
48
48
|
return e;
|
|
49
|
-
const
|
|
50
|
-
var g,
|
|
51
|
-
return ((
|
|
52
|
-
})(),
|
|
53
|
-
if (
|
|
54
|
-
const g = (a) =>
|
|
55
|
-
|
|
49
|
+
const E = { ...e }, m = Object.fromEntries(E.pages.map((g) => [g.id, g])), T = (() => {
|
|
50
|
+
var g, P, a, S;
|
|
51
|
+
return ((P = (g = m[u.SCHOOL_GOALS]) == null ? void 0 : g.nextPage) == null ? void 0 : P.pageId) === u.TEST_PREP && c.length === 0 ? u.SCHOOL_GOALS : c.length > 0 && ((S = (a = m[u.TEST_PREP]) == null ? void 0 : a.nextPage) == null ? void 0 : S.pageId) === u.STUDENT_ENRICHMENT && d.length === 0 ? u.TEST_PREP : null;
|
|
52
|
+
})(), y = T ? (h = m[(d == null ? void 0 : d.length) === 0 ? u.STUDENT_ENRICHMENT : u.TEST_PREP]) == null ? void 0 : h.nextPage : null;
|
|
53
|
+
if (y && T) {
|
|
54
|
+
const g = (a) => c.length === 0 && a === u.TEST_PREP || d.length === 0 && a === u.STUDENT_ENRICHMENT, P = E.pages.filter((a) => !g(a.id));
|
|
55
|
+
E.pages = P.map((a) => {
|
|
56
56
|
var S;
|
|
57
|
-
return a.id ===
|
|
57
|
+
return a.id === T ? { ...a, nextPage: y } : a.id === y.pageId ? {
|
|
58
58
|
...a,
|
|
59
59
|
prevPage: {
|
|
60
|
-
buttonLabel: ((S =
|
|
61
|
-
pageId:
|
|
60
|
+
buttonLabel: ((S = m[T]) == null ? void 0 : S.navigationLabel) ?? "",
|
|
61
|
+
pageId: T
|
|
62
62
|
}
|
|
63
63
|
} : a;
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
|
-
return
|
|
67
|
-
},
|
|
66
|
+
return E;
|
|
67
|
+
}, G = (n, e) => {
|
|
68
68
|
var t;
|
|
69
69
|
const { preference_config: o } = n;
|
|
70
70
|
return e.length > 0 ? ((t = o == null ? void 0 : o.filter((r) => e.includes(r.preference_code))) == null ? void 0 : t.map(
|
|
71
|
-
({ preference_code: r, preference_name:
|
|
71
|
+
({ preference_code: r, preference_name: s, preference_category: l, preference_description: i }) => ({
|
|
72
72
|
preference_code: r,
|
|
73
|
-
preference_name:
|
|
73
|
+
preference_name: s,
|
|
74
74
|
preference_category: l,
|
|
75
|
-
preference_description:
|
|
75
|
+
preference_description: i
|
|
76
76
|
})
|
|
77
77
|
)) || [] : [];
|
|
78
|
-
},
|
|
78
|
+
}, B = (n, e, o = !1) => {
|
|
79
79
|
if (!(n != null && n.length)) return [];
|
|
80
80
|
if (o) {
|
|
81
81
|
const t = n.find((r) => (r == null ? void 0 : r.preference_category) === e);
|
|
@@ -84,12 +84,12 @@ const $ = (n) => n === "PLA", v = (n, e, o) => {
|
|
|
84
84
|
return n.filter((t) => (t == null ? void 0 : t.preference_category) === e).map((t) => t.preference_code);
|
|
85
85
|
};
|
|
86
86
|
export {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
k as filterAndUpdateSlideNavigation,
|
|
88
|
+
b as getFormattedPreferences,
|
|
89
|
+
G as getFormattedStudentPersonalizedPreference,
|
|
90
|
+
B as getPreferenceCodesByCategory,
|
|
91
|
+
F as getWeekdayAndStartTimeFromPreference,
|
|
92
|
+
v as isPLASource,
|
|
93
|
+
U as updateGoalInFormData
|
|
94
94
|
};
|
|
95
95
|
//# sourceMappingURL=helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sources":["../../../src/features/trial-session/helper.ts"],"sourcesContent":["import { DAYS } from '../../constants/date-time';\nimport {\n convertEpochToDateTime,\n convertToMilliseconds,\n getOffsetBetweenTimezone,\n getTimeUnits,\n} from '../../helpers/date-time';\nimport { GOAL_CATEGORY } from '../milestone/constants';\nimport { getGoalsFromConfig } from '../milestone/create/milestone-create-helpers';\nimport type { IMilestoneConfig } from '../milestone/create/milestone-create-types';\nimport type { TPreference } from './comps/class-preference/class-preference-types';\nimport { TEACHER_TIMEZONE, TrialPageId } from './trial-session-constants';\nimport type { ITrialHomeData, TGoals, TPreferenceSchema } from './trial-session-types';\n\nconst isPLASource = (source?: string): boolean => {\n return source === 'PLA';\n};\n\nconst updateGoalInFormData = (goals: TGoals[] | undefined, goalCategory: string, data: TGoals) => {\n const updateGoals = goals ? [...goals] : [];\n const goalIndex = updateGoals?.findIndex(goal => goal.goal_category === goalCategory);\n\n if (goalIndex === -1) {\n const schoolSuccessGoal = {\n ...data,\n goal_category: goalCategory,\n };\n\n updateGoals.push(schoolSuccessGoal);\n } else {\n updateGoals[goalIndex] = {\n ...updateGoals[goalIndex],\n ...data,\n };\n }\n\n return updateGoals;\n};\n\nconst getFormattedPreferences = (preferences: TPreference[], studentTimezone?: string) => {\n if (!studentTimezone) return [];\n\n const todayTimestamp = new Date().setHours(0, 0, 0, 0); // Set the current date to midnight.\n const timestampOffset = getOffsetBetweenTimezone(TEACHER_TIMEZONE, studentTimezone); // Offset between the teacher's and student's timezone.\n const studentTimestamp = todayTimestamp + timestampOffset; // Adjusting the current date to the student's timezone.\n const { day: today = '' } = convertEpochToDateTime(studentTimestamp, studentTimezone); // Current day at student's timezone.\n const currentDayIndex = DAYS.indexOf(today); // Current day index.\n\n return preferences.length > 0\n ? preferences\n .filter(preference => preference.selectedDay && preference.selectedTime)\n .map(preference => {\n const { selectedDay, selectedTime } = preference;\n // Extracting hours, minutes, and period from the selected time.\n const { hours, minutes, period } = getTimeUnits(selectedTime);\n\n // Calculating the index of the selected day in the DAYS array.\n const selectedDayIndex = DAYS.indexOf(selectedDay);\n const dayDifference = (selectedDayIndex - currentDayIndex + 7) % 7;\n\n // Calculate the epoch timestamp for the selected day and time in the student's timezone.\n const epochTimestamp =\n todayTimestamp +\n timestampOffset +\n convertToMilliseconds({ days: dayDifference, hours, minutes });\n\n return {\n id: epochTimestamp,\n value: `${selectedDay}, ${selectedTime} - ${hours + 1}:${\n minutes < 10 ? '0' : ''\n }${minutes} ${period}`, // Formatted the value string as required\n };\n })\n : [];\n};\n\n/**\n * Converts a list of epoch timestamps to normalized weekday and start_time.\n * @param epochs Array of epoch timestamps (number)\n * @returns Array of { weekday, start_time }\n */\nconst getWeekdayAndStartTimeFromPreference = (\n preference: Array<{ id: number; value: string }>,\n): Array<{ weekday: string; start_time: string }> => {\n return preference\n .filter(pref => typeof pref.id === 'number' && !isNaN(pref.id))\n .map(pref => {\n const date = new Date(pref.id);\n // Get weekday in lowercase\n const weekdayRaw = DAYS[date.getDay()];\n const weekday = weekdayRaw ? weekdayRaw.toLowerCase() : 'unknown';\n // Get time in HH:MM:SS format\n const hour = date.getHours();\n const minute = date.getMinutes();\n const start_time = `${hour.toString().padStart(2, '0')}:${minute\n .toString()\n .padStart(2, '0')}:00`;\n\n return { weekday, start_time };\n });\n};\n\nconst filterAndUpdateSlideNavigation = ({\n milestoneConfigData,\n trialHomeData,\n grade,\n}: {\n milestoneConfigData: IMilestoneConfig;\n trialHomeData: ITrialHomeData;\n grade?: string;\n}) => {\n const { student, demo_info: demoInfo } = trialHomeData;\n const { grade: studentGrade } = student || {};\n const { stream, region_data: regionData } = demoInfo || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n\n const getGoals = (goalCategory: keyof typeof GOAL_CATEGORY) =>\n getGoalsFromConfig(milestoneConfigData, {\n countryCode,\n grade: grade || studentGrade || '',\n goalCategory,\n courseStream: stream,\n enrollmentType: 'ONLINE',\n });\n\n const testPrepGoals = getGoals(GOAL_CATEGORY.TEST_PREP);\n const enrichmentGoals = getGoals(GOAL_CATEGORY.ENRICHMENT);\n\n if (testPrepGoals?.length > 0 && enrichmentGoals?.length > 0) {\n return trialHomeData;\n }\n\n const updatedTrialHomeData = { ...trialHomeData };\n\n const pagesMap = Object.fromEntries(updatedTrialHomeData.pages.map(page => [page.id, page]));\n\n //slide whose nextPage reference needs to be updated\n const slideIdToUpdate = (() => {\n if (\n pagesMap[TrialPageId.SCHOOL_GOALS]?.nextPage?.pageId === TrialPageId.TEST_PREP &&\n testPrepGoals.length === 0\n ) {\n return TrialPageId.SCHOOL_GOALS;\n }\n\n if (\n testPrepGoals.length > 0 &&\n pagesMap[TrialPageId.TEST_PREP]?.nextPage?.pageId === TrialPageId.STUDENT_ENRICHMENT &&\n enrichmentGoals.length === 0\n ) {\n return TrialPageId.TEST_PREP;\n }\n\n return null;\n })();\n\n // the new next page reference for slideIdToUpdate\n const updatedNextPageInfo = slideIdToUpdate\n ? pagesMap[\n enrichmentGoals?.length === 0 ? TrialPageId.STUDENT_ENRICHMENT : TrialPageId.TEST_PREP\n ]?.nextPage\n : null;\n\n // updating the nextPage and prevPage references\n if (updatedNextPageInfo && slideIdToUpdate) {\n const shouldRemoveSlide = (slideId: TrialPageId) =>\n (testPrepGoals.length === 0 && slideId === TrialPageId.TEST_PREP) ||\n (enrichmentGoals.length === 0 && slideId === TrialPageId.STUDENT_ENRICHMENT);\n\n const filteredSlides = updatedTrialHomeData.pages.filter(page => !shouldRemoveSlide(page.id));\n\n updatedTrialHomeData.pages = filteredSlides.map(page => {\n if (page.id === slideIdToUpdate) {\n return { ...page, nextPage: updatedNextPageInfo };\n }\n\n if (page.id === updatedNextPageInfo.pageId) {\n return {\n ...page,\n prevPage: {\n buttonLabel: pagesMap[slideIdToUpdate]?.navigationLabel ?? '',\n pageId: slideIdToUpdate,\n },\n };\n }\n\n return page;\n });\n }\n\n return updatedTrialHomeData;\n};\n\nconst getFormattedStudentPersonalizedPreference = (\n config: IMilestoneConfig,\n selectedCodes: string[],\n) => {\n const { preference_config: preferenceConfig } = config;\n\n if (selectedCodes.length > 0) {\n return (\n preferenceConfig\n ?.filter(pref => selectedCodes.includes(pref.preference_code))\n ?.map(\n ({ preference_code, preference_name, preference_category, preference_description }) => ({\n preference_code,\n preference_name,\n preference_category,\n preference_description,\n }),\n ) || []\n );\n }\n\n return [];\n};\n\nconst getPreferenceCodesByCategory = (\n preferences: TPreferenceSchema[],\n category: string,\n returnFirstOnly: boolean = false,\n): string[] => {\n if (!preferences?.length) return [];\n\n if (returnFirstOnly) {\n const firstMatch = preferences.find(pref => pref?.preference_category === category);\n\n return firstMatch ? [firstMatch.preference_code] : [];\n }\n\n return preferences\n .filter(pref => pref?.preference_category === category)\n .map(pref => pref.preference_code);\n};\n\nexport {\n isPLASource,\n filterAndUpdateSlideNavigation,\n updateGoalInFormData,\n getFormattedPreferences,\n getWeekdayAndStartTimeFromPreference,\n getFormattedStudentPersonalizedPreference,\n getPreferenceCodesByCategory,\n};\n"],"names":["isPLASource","source","updateGoalInFormData","goals","goalCategory","data","updateGoals","goalIndex","goal","schoolSuccessGoal","getFormattedPreferences","preferences","studentTimezone","todayTimestamp","timestampOffset","getOffsetBetweenTimezone","TEACHER_TIMEZONE","studentTimestamp","today","convertEpochToDateTime","currentDayIndex","DAYS","preference","selectedDay","selectedTime","hours","minutes","period","getTimeUnits","dayDifference","convertToMilliseconds","getWeekdayAndStartTimeFromPreference","pref","date","weekdayRaw","weekday","hour","minute","start_time","filterAndUpdateSlideNavigation","milestoneConfigData","trialHomeData","grade","student","demoInfo","studentGrade","stream","regionData","countryCode","getGoals","getGoalsFromConfig","testPrepGoals","GOAL_CATEGORY","enrichmentGoals","updatedTrialHomeData","pagesMap","page","slideIdToUpdate","_b","_a","TrialPageId","_d","_c","updatedNextPageInfo","shouldRemoveSlide","slideId","filteredSlides","getFormattedStudentPersonalizedPreference","config","selectedCodes","preferenceConfig","preference_code","preference_name","preference_category","preference_description","getPreferenceCodesByCategory","category","returnFirstOnly","firstMatch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helper.js","sources":["../../../src/features/trial-session/helper.ts"],"sourcesContent":["import { DAYS } from '../../constants/date-time';\nimport {\n convertEpochToDateTime,\n convertToMilliseconds,\n getOffsetBetweenTimezone,\n getTimeUnits,\n} from '../../helpers/date-time';\nimport { GOAL_CATEGORY } from '../milestone/constants';\nimport { getGoalsFromConfig } from '../milestone/create/milestone-create-helpers';\nimport type { IMilestoneConfig } from '../milestone/create/milestone-create-types';\nimport type { TPreference } from './comps/class-preference/class-preference-types';\nimport { TEACHER_TIMEZONE, TrialPageId } from './trial-session-constants';\nimport type { ITrialHomeData, TGoals, TPreferenceSchema } from './trial-session-types';\n\nconst isPLASource = (source?: string): boolean => {\n return source === 'PLA';\n};\n\nconst updateGoalInFormData = (goals: TGoals[] | undefined, goalCategory: string, data: TGoals) => {\n const updateGoals = goals ? [...goals] : [];\n const goalIndex = updateGoals?.findIndex(goal => goal.goal_category === goalCategory);\n\n if (goalIndex === -1) {\n const schoolSuccessGoal = {\n ...data,\n goal_category: goalCategory,\n };\n\n updateGoals.push(schoolSuccessGoal);\n } else {\n updateGoals[goalIndex] = {\n ...updateGoals[goalIndex],\n ...data,\n };\n }\n\n return updateGoals;\n};\n\nconst getFormattedPreferences = (preferences: TPreference[], studentTimezone?: string) => {\n if (!studentTimezone) return [];\n\n const todayTimestamp = new Date().setHours(0, 0, 0, 0); // Set the current date to midnight.\n const timestampOffset = getOffsetBetweenTimezone(TEACHER_TIMEZONE, studentTimezone); // Offset between the teacher's and student's timezone.\n const studentTimestamp = todayTimestamp + timestampOffset; // Adjusting the current date to the student's timezone.\n const { day: today = '' } = convertEpochToDateTime(studentTimestamp, studentTimezone); // Current day at student's timezone.\n const currentDayIndex = DAYS.indexOf(today); // Current day index.\n\n return preferences.length > 0\n ? preferences\n .filter(preference => preference.selectedDay && preference.selectedTime)\n .map(preference => {\n const { selectedDay, selectedTime } = preference;\n // Extracting hours, minutes, and period from the selected time.\n const { hours, minutes, period } = getTimeUnits(selectedTime);\n\n // Calculating the index of the selected day in the DAYS array.\n const selectedDayIndex = DAYS.indexOf(selectedDay);\n const dayDifference = (selectedDayIndex - currentDayIndex + 7) % 7;\n\n // Calculate the epoch timestamp for the selected day and time in the student's timezone.\n const epochTimestamp =\n todayTimestamp +\n timestampOffset +\n convertToMilliseconds({ days: dayDifference, hours, minutes });\n\n return {\n id: epochTimestamp,\n value: `${selectedDay}, ${selectedTime} - ${hours + 1}:${\n minutes < 10 ? '0' : ''\n }${minutes} ${period}`, // Formatted the value string as required\n };\n })\n : [];\n};\n\n/**\n * Converts a list of epoch timestamps to normalized weekday and start_time.\n * @param epochs Array of epoch timestamps (number)\n * @returns Array of { weekday, start_time }\n */\nconst getWeekdayAndStartTimeFromPreference = (\n preference: Array<{ id: number; value: string }>,\n): Array<{ weekday: string; start_time: string }> => {\n return preference\n .filter(pref => typeof pref.id === 'number' && !isNaN(pref.id))\n .map(pref => {\n const date = new Date(pref.id);\n // Get weekday in lowercase\n const weekdayRaw = DAYS[date.getDay()];\n const weekday = weekdayRaw ? weekdayRaw.toLowerCase() : 'unknown';\n // Get time in HH:MM:SS format\n const hour = date.getHours();\n const minute = date.getMinutes();\n const start_time = `${hour.toString().padStart(2, '0')}:${minute\n .toString()\n .padStart(2, '0')}:00`;\n\n return { weekday, start_time };\n });\n};\n\nconst filterAndUpdateSlideNavigation = ({\n milestoneConfigData,\n trialHomeData,\n grade,\n}: {\n milestoneConfigData: IMilestoneConfig;\n trialHomeData: ITrialHomeData;\n grade?: string;\n}) => {\n const { student, demo_info: demoInfo } = trialHomeData;\n const { grade: studentGrade, enrollment_type: enrollmentType } = student || {};\n const { stream, region_data: regionData } = demoInfo || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n\n const getGoals = (goalCategory: keyof typeof GOAL_CATEGORY) =>\n getGoalsFromConfig(milestoneConfigData, {\n countryCode,\n grade: grade || studentGrade || '',\n goalCategory,\n courseStream: stream,\n enrollmentType: enrollmentType,\n });\n\n const testPrepGoals = getGoals(GOAL_CATEGORY.TEST_PREP);\n const enrichmentGoals = getGoals(GOAL_CATEGORY.ENRICHMENT);\n\n if (testPrepGoals?.length > 0 && enrichmentGoals?.length > 0) {\n return trialHomeData;\n }\n\n const updatedTrialHomeData = { ...trialHomeData };\n\n const pagesMap = Object.fromEntries(updatedTrialHomeData.pages.map(page => [page.id, page]));\n\n //slide whose nextPage reference needs to be updated\n const slideIdToUpdate = (() => {\n if (\n pagesMap[TrialPageId.SCHOOL_GOALS]?.nextPage?.pageId === TrialPageId.TEST_PREP &&\n testPrepGoals.length === 0\n ) {\n return TrialPageId.SCHOOL_GOALS;\n }\n\n if (\n testPrepGoals.length > 0 &&\n pagesMap[TrialPageId.TEST_PREP]?.nextPage?.pageId === TrialPageId.STUDENT_ENRICHMENT &&\n enrichmentGoals.length === 0\n ) {\n return TrialPageId.TEST_PREP;\n }\n\n return null;\n })();\n\n // the new next page reference for slideIdToUpdate\n const updatedNextPageInfo = slideIdToUpdate\n ? pagesMap[\n enrichmentGoals?.length === 0 ? TrialPageId.STUDENT_ENRICHMENT : TrialPageId.TEST_PREP\n ]?.nextPage\n : null;\n\n // updating the nextPage and prevPage references\n if (updatedNextPageInfo && slideIdToUpdate) {\n const shouldRemoveSlide = (slideId: TrialPageId) =>\n (testPrepGoals.length === 0 && slideId === TrialPageId.TEST_PREP) ||\n (enrichmentGoals.length === 0 && slideId === TrialPageId.STUDENT_ENRICHMENT);\n\n const filteredSlides = updatedTrialHomeData.pages.filter(page => !shouldRemoveSlide(page.id));\n\n updatedTrialHomeData.pages = filteredSlides.map(page => {\n if (page.id === slideIdToUpdate) {\n return { ...page, nextPage: updatedNextPageInfo };\n }\n\n if (page.id === updatedNextPageInfo.pageId) {\n return {\n ...page,\n prevPage: {\n buttonLabel: pagesMap[slideIdToUpdate]?.navigationLabel ?? '',\n pageId: slideIdToUpdate,\n },\n };\n }\n\n return page;\n });\n }\n\n return updatedTrialHomeData;\n};\n\nconst getFormattedStudentPersonalizedPreference = (\n config: IMilestoneConfig,\n selectedCodes: string[],\n) => {\n const { preference_config: preferenceConfig } = config;\n\n if (selectedCodes.length > 0) {\n return (\n preferenceConfig\n ?.filter(pref => selectedCodes.includes(pref.preference_code))\n ?.map(\n ({ preference_code, preference_name, preference_category, preference_description }) => ({\n preference_code,\n preference_name,\n preference_category,\n preference_description,\n }),\n ) || []\n );\n }\n\n return [];\n};\n\nconst getPreferenceCodesByCategory = (\n preferences: TPreferenceSchema[],\n category: string,\n returnFirstOnly: boolean = false,\n): string[] => {\n if (!preferences?.length) return [];\n\n if (returnFirstOnly) {\n const firstMatch = preferences.find(pref => pref?.preference_category === category);\n\n return firstMatch ? [firstMatch.preference_code] : [];\n }\n\n return preferences\n .filter(pref => pref?.preference_category === category)\n .map(pref => pref.preference_code);\n};\n\nexport {\n isPLASource,\n filterAndUpdateSlideNavigation,\n updateGoalInFormData,\n getFormattedPreferences,\n getWeekdayAndStartTimeFromPreference,\n getFormattedStudentPersonalizedPreference,\n getPreferenceCodesByCategory,\n};\n"],"names":["isPLASource","source","updateGoalInFormData","goals","goalCategory","data","updateGoals","goalIndex","goal","schoolSuccessGoal","getFormattedPreferences","preferences","studentTimezone","todayTimestamp","timestampOffset","getOffsetBetweenTimezone","TEACHER_TIMEZONE","studentTimestamp","today","convertEpochToDateTime","currentDayIndex","DAYS","preference","selectedDay","selectedTime","hours","minutes","period","getTimeUnits","dayDifference","convertToMilliseconds","getWeekdayAndStartTimeFromPreference","pref","date","weekdayRaw","weekday","hour","minute","start_time","filterAndUpdateSlideNavigation","milestoneConfigData","trialHomeData","grade","student","demoInfo","studentGrade","enrollmentType","stream","regionData","countryCode","getGoals","getGoalsFromConfig","testPrepGoals","GOAL_CATEGORY","enrichmentGoals","updatedTrialHomeData","pagesMap","page","slideIdToUpdate","_b","_a","TrialPageId","_d","_c","updatedNextPageInfo","shouldRemoveSlide","slideId","filteredSlides","getFormattedStudentPersonalizedPreference","config","selectedCodes","preferenceConfig","preference_code","preference_name","preference_category","preference_description","getPreferenceCodesByCategory","category","returnFirstOnly","firstMatch"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trial-session-types.js","sources":["../../../src/features/trial-session/trial-session-types.ts"],"sourcesContent":["import type { Dispatch, ReactElement, SetStateAction } from 'react';\n\nimport type { TNodeTypes } from '../../types/models/worksheet';\nimport type { IInfoMessage } from '../circle-games/games/web-view/web-view-types';\nimport type {\n IMilestoneConfig,\n TCourseStream,\n TPreferenceCategory,\n} from '../milestone/create/milestone-create-types';\nimport type { IAvatarLayer } from '../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { TPreference } from './comps/class-preference/class-preference-types';\nimport type {\n ITrialCircleConfig,\n ITrialCircleGameParams,\n} from './comps/trial-circle-game/trial-circle-game-types';\nimport type { TrialPageId } from './trial-session-constants';\n\nexport type { TSessionReportData as TSessionReport } from './comps/session-report/session-report-types';\n\nexport type TSlideId = TrialPageId;\n\nexport type TRegionData = {\n opportunity_country: string;\n};\n\nexport type TPreferenceSchema = {\n preference_code: string;\n preference_name: string;\n preference_category: TPreferenceCategory;\n};\n\nexport enum EClassTimeAlertLevel {\n FIVE_MIN = '5min',\n FIFTEEN_MIN = '15min',\n}\ninterface IButtonConfig {\n buttonLabel: string;\n pageId: string;\n}\n\nexport interface ISolution {\n media?: string;\n media_type?: 'image' | 'video';\n text?: string;\n}\n\nexport type TDegreeInformation = {\n degree_name?: string;\n field_of_study?: string;\n degree_code?: string;\n};\n\nexport interface ITeacherProfileDetails {\n lower_grade: string;\n higher_grade: string;\n header_image: string;\n years_of_experience: number;\n number_of_students_taught: number;\n countries: string[];\n degree: TDegreeInformation;\n first_name: string;\n last_name: string;\n teacher_profile_url?: string;\n}\n\nexport interface ISlide {\n id: TrialPageId;\n renderAs: 'split' | 'full';\n renderAVIn: 'left' | 'right';\n header: string;\n subHeader?: string;\n prevPage?: IButtonConfig;\n nextPage?: IButtonConfig;\n cues?: string[];\n dos?: string[];\n donts?: string[];\n navigationLabel?: string;\n slideTag?: string;\n teacher_profile?: ITeacherProfileDetails;\n solutions?: ISolution[];\n enableSessionPerk?: boolean;\n showProfileHighlights?: boolean;\n}\n\nexport interface TGoals {\n goal_code?: string;\n milestone_date_ts?: number;\n goal_category?: string;\n milestone_name?: string;\n publish?: boolean;\n}\n\nexport interface ITrialSessionFormFields {\n id: string;\n name?: string;\n grade?: string;\n curriculum?: string;\n goals?: TGoals[];\n studentProfile?: {\n profileSummary?: string;\n dummyProfileImageIndex?: number;\n summaryFetched?: boolean;\n summaryFetchFailed?: boolean;\n };\n userNodeId?: string;\n nodeId?: string;\n nodeType?: TNodeTypes;\n attemptId?: string;\n preferences?: TPreference[];\n personalizedLevel?: string[];\n personalizedFocus?: string[];\n personalizedBehaviors?: string[];\n personalizedObjectives?: string[];\n personalizedPosition?: string[];\n isCircleGamePlayed?: boolean;\n isCirclePuzzleSolved?: boolean;\n isCircleSkillCompleted?: boolean;\n studentTimezone?: string;\n showCircleGameScreen?: boolean;\n accuracyStr?: string;\n totalTimeTaken?: number;\n chapterId?: string;\n matchmakingId?: string;\n numberInNameError?: boolean;\n}\n\nexport interface IButtonState {\n isDisabled: boolean;\n isLoading: boolean;\n}\n\nexport interface ITrialHomeData {\n pages: ISlide[];\n demo_info: {\n student_classroom_id: string;\n stream: TCourseStream;\n region_data: TRegionData;\n scheduled_start_time: number;\n course?: string;\n };\n parent: {\n name: string;\n };\n student: {\n grade: string;\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n teacher: {\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n intel_student?: {\n source?: string;\n student_preference?: {\n preferences?: TPreferenceSchema[];\n };\n };\n circle_trial_game_config: ITrialCircleConfig;\n}\n\nexport interface IClassTimeAlertConfig {\n alertLevel: EClassTimeAlertLevel | null;\n isVisible: boolean;\n onComplete: () => void;\n}\n\nexport interface ITrialSessionProps {\n classStartedOn?: Date;\n height?: string | number;\n userType: TUserTypes;\n studentId: string;\n teacherId: string;\n teacherClassroomId: string;\n teacherPanel?: ReactElement;\n studentPanel?: ReactElement;\n formData?: ITrialSessionFormFields;\n onFormDataChange?: Dispatch<SetStateAction<ITrialSessionFormFields | undefined>>;\n worksheet?: ReactElement;\n worksheetNavigationPanel?: ReactElement;\n questionsRatingPanel?: ReactElement;\n studentAbsentInClass?: boolean;\n openEndClassModal?: () => void;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n classTimeAlertConfig?: IClassTimeAlertConfig;\n classDuration?: number;\n}\n\nexport interface ITrialSessionContext\n extends Pick<\n ITrialSessionProps,\n | 'classStartedOn'\n | 'formData'\n | 'teacherPanel'\n | 'studentId'\n | 'teacherId'\n | 'studentPanel'\n | 'worksheet'\n | 'worksheetNavigationPanel'\n | 'questionsRatingPanel'\n | 'openEndClassModal'\n | 'studentAbsentInClass'\n | 'classDuration'\n | 'classTimeAlertConfig'\n > {\n buttonState: { left: IButtonState; right: IButtonState };\n isTeacher: boolean;\n milestoneConfig: IMilestoneConfig;\n slideConfig: ISlide;\n updateButtonState: (\n btnNavDir: 'left' | 'right' | 'both',\n currentState: IButtonState | { left: IButtonState; right: IButtonState },\n ) => void;\n updateSlideConfig: (config: Partial<ITrialSessionFormFields>) => void;\n trialHomeData: ITrialHomeData;\n onTrialInformationUpdate?: () => void;\n circleGames: ITrialCircleGameParams;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n\nexport interface ITrialSessionViewProps extends ITrialSessionProps {\n trialHomeData: ITrialHomeData;\n milestoneConfig: IMilestoneConfig;\n studentTimezone?: string;\n onStudentTimezoneUpdate?: () => void;\n onTrialInformationUpdate?: () => void;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n"],"names":["EClassTimeAlertLevel"],"mappings":"
|
|
1
|
+
{"version":3,"file":"trial-session-types.js","sources":["../../../src/features/trial-session/trial-session-types.ts"],"sourcesContent":["import type { Dispatch, ReactElement, SetStateAction } from 'react';\n\nimport type { TNodeTypes } from '../../types/models/worksheet';\nimport type { IInfoMessage } from '../circle-games/games/web-view/web-view-types';\nimport type {\n IMilestoneConfig,\n TCourseStream,\n TEnrollmentTypes,\n TPreferenceCategory,\n} from '../milestone/create/milestone-create-types';\nimport type { IAvatarLayer } from '../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { TPreference } from './comps/class-preference/class-preference-types';\nimport type {\n ITrialCircleConfig,\n ITrialCircleGameParams,\n} from './comps/trial-circle-game/trial-circle-game-types';\nimport type { TrialPageId } from './trial-session-constants';\n\nexport type { TSessionReportData as TSessionReport } from './comps/session-report/session-report-types';\n\nexport type TSlideId = TrialPageId;\n\nexport type TRegionData = {\n opportunity_country: string;\n};\n\nexport type TPreferenceSchema = {\n preference_code: string;\n preference_name: string;\n preference_category: TPreferenceCategory;\n};\n\nexport enum EClassTimeAlertLevel {\n FIVE_MIN = '5min',\n FIFTEEN_MIN = '15min',\n}\ninterface IButtonConfig {\n buttonLabel: string;\n pageId: string;\n}\n\nexport interface ISolution {\n media?: string;\n media_type?: 'image' | 'video';\n text?: string;\n}\n\nexport type TDegreeInformation = {\n degree_name?: string;\n field_of_study?: string;\n degree_code?: string;\n};\n\nexport interface ITeacherProfileDetails {\n lower_grade: string;\n higher_grade: string;\n header_image: string;\n years_of_experience: number;\n number_of_students_taught: number;\n countries: string[];\n degree: TDegreeInformation;\n first_name: string;\n last_name: string;\n teacher_profile_url?: string;\n}\n\nexport interface ISlide {\n id: TrialPageId;\n renderAs: 'split' | 'full';\n renderAVIn: 'left' | 'right';\n header: string;\n subHeader?: string;\n prevPage?: IButtonConfig;\n nextPage?: IButtonConfig;\n cues?: string[];\n dos?: string[];\n donts?: string[];\n navigationLabel?: string;\n slideTag?: string;\n teacher_profile?: ITeacherProfileDetails;\n solutions?: ISolution[];\n enableSessionPerk?: boolean;\n showProfileHighlights?: boolean;\n}\n\nexport interface TGoals {\n goal_code?: string;\n milestone_date_ts?: number;\n goal_category?: string;\n milestone_name?: string;\n publish?: boolean;\n}\n\nexport interface ITrialSessionFormFields {\n id: string;\n name?: string;\n grade?: string;\n curriculum?: string;\n goals?: TGoals[];\n studentProfile?: {\n profileSummary?: string;\n dummyProfileImageIndex?: number;\n summaryFetched?: boolean;\n summaryFetchFailed?: boolean;\n };\n userNodeId?: string;\n nodeId?: string;\n nodeType?: TNodeTypes;\n attemptId?: string;\n preferences?: TPreference[];\n personalizedLevel?: string[];\n personalizedFocus?: string[];\n personalizedBehaviors?: string[];\n personalizedObjectives?: string[];\n personalizedPosition?: string[];\n isCircleGamePlayed?: boolean;\n isCirclePuzzleSolved?: boolean;\n isCircleSkillCompleted?: boolean;\n studentTimezone?: string;\n showCircleGameScreen?: boolean;\n accuracyStr?: string;\n totalTimeTaken?: number;\n chapterId?: string;\n matchmakingId?: string;\n numberInNameError?: boolean;\n}\n\nexport interface IButtonState {\n isDisabled: boolean;\n isLoading: boolean;\n}\n\nexport interface ITrialHomeData {\n pages: ISlide[];\n demo_info: {\n student_classroom_id: string;\n stream: TCourseStream;\n region_data: TRegionData;\n scheduled_start_time: number;\n course?: string;\n };\n parent: {\n name: string;\n };\n student: {\n grade: string;\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n enrollment_type: TEnrollmentTypes;\n };\n teacher: {\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n intel_student?: {\n source?: string;\n student_preference?: {\n preferences?: TPreferenceSchema[];\n };\n };\n circle_trial_game_config: ITrialCircleConfig;\n}\n\nexport interface IClassTimeAlertConfig {\n alertLevel: EClassTimeAlertLevel | null;\n isVisible: boolean;\n onComplete: () => void;\n}\n\nexport interface ITrialSessionProps {\n classStartedOn?: Date;\n height?: string | number;\n userType: TUserTypes;\n studentId: string;\n teacherId: string;\n teacherClassroomId: string;\n teacherPanel?: ReactElement;\n studentPanel?: ReactElement;\n formData?: ITrialSessionFormFields;\n onFormDataChange?: Dispatch<SetStateAction<ITrialSessionFormFields | undefined>>;\n worksheet?: ReactElement;\n worksheetNavigationPanel?: ReactElement;\n questionsRatingPanel?: ReactElement;\n studentAbsentInClass?: boolean;\n openEndClassModal?: () => void;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n classTimeAlertConfig?: IClassTimeAlertConfig;\n classDuration?: number;\n}\n\nexport interface ITrialSessionContext\n extends Pick<\n ITrialSessionProps,\n | 'classStartedOn'\n | 'formData'\n | 'teacherPanel'\n | 'studentId'\n | 'teacherId'\n | 'studentPanel'\n | 'worksheet'\n | 'worksheetNavigationPanel'\n | 'questionsRatingPanel'\n | 'openEndClassModal'\n | 'studentAbsentInClass'\n | 'classDuration'\n | 'classTimeAlertConfig'\n > {\n buttonState: { left: IButtonState; right: IButtonState };\n isTeacher: boolean;\n milestoneConfig: IMilestoneConfig;\n slideConfig: ISlide;\n updateButtonState: (\n btnNavDir: 'left' | 'right' | 'both',\n currentState: IButtonState | { left: IButtonState; right: IButtonState },\n ) => void;\n updateSlideConfig: (config: Partial<ITrialSessionFormFields>) => void;\n trialHomeData: ITrialHomeData;\n onTrialInformationUpdate?: () => void;\n circleGames: ITrialCircleGameParams;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n\nexport interface ITrialSessionViewProps extends ITrialSessionProps {\n trialHomeData: ITrialHomeData;\n milestoneConfig: IMilestoneConfig;\n studentTimezone?: string;\n onStudentTimezoneUpdate?: () => void;\n onTrialInformationUpdate?: () => void;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n"],"names":["EClassTimeAlertLevel"],"mappings":"AAiCY,IAAAA,sBAAAA,OACVA,EAAA,WAAW,QACXA,EAAA,cAAc,SAFJA,IAAAA,KAAA,CAAA,CAAA;"}
|