@cuemath/leap 3.5.47-gg6 → 3.5.48-link.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/line-icons/icons/bulb.js +10 -10
- package/dist/assets/line-icons/icons/bulb.js.map +1 -1
- package/dist/assets/line-icons/icons/hand.js.map +1 -1
- package/dist/assets/line-icons/icons/scribble.js +36 -13
- package/dist/assets/line-icons/icons/scribble.js.map +1 -1
- package/dist/assets/line-icons/icons/sticker.js +9 -9
- package/dist/assets/line-icons/icons/sticker.js.map +1 -1
- package/dist/features/analytics-events/whitelist-events.js +14 -16
- package/dist/features/analytics-events/whitelist-events.js.map +1 -1
- package/dist/features/circle-games/games/web-view/web-view-analytics-events.js.map +1 -1
- package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +1 -1
- package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +6 -6
- package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
- package/dist/features/journey/hooks/use-home-page-journey/recent-chapters-mock.js +2 -2
- package/dist/features/journey/hooks/use-home-page-journey/recent-chapters-mock.js.map +1 -1
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +29 -64
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js +9 -9
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals-styled.js +8 -5
- package/dist/features/trial-session/comps/school-goals/school-goals-styled.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals-view.js +35 -32
- package/dist/features/trial-session/comps/school-goals/school-goals-view.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals.js +47 -45
- 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 -51
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
- package/dist/features/trial-session/comps/test-prep/test-prep.js +39 -46
- package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js +120 -144
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
- package/dist/features/trial-session/helper.js +49 -54
- package/dist/features/trial-session/helper.js.map +1 -1
- package/dist/features/trial-session/hooks/use-slide-config-update.js +65 -62
- package/dist/features/trial-session/hooks/use-slide-config-update.js.map +1 -1
- package/dist/features/trial-session/trial-session-view.js +45 -48
- package/dist/features/trial-session/trial-session-view.js.map +1 -1
- package/dist/features/ui/tabs/tabs.js +15 -15
- package/dist/features/ui/tabs/tabs.js.map +1 -1
- package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js +1 -0
- package/dist/features/worksheet/learnosity-preloader/learnosity-preloader.js.map +1 -1
- package/dist/features/worksheet/worksheet/constants.js +13 -12
- package/dist/features/worksheet/worksheet/constants.js.map +1 -1
- package/dist/features/worksheet/worksheet/question-tips.js +100 -0
- package/dist/features/worksheet/worksheet/question-tips.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js +109 -40
- package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +7 -7
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-calculator/worksheet-calculator.js +4 -4
- package/dist/features/worksheet/worksheet/worksheet-calculator/worksheet-calculator.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/subjective-styled.js +22 -17
- package/dist/features/worksheet/worksheet/worksheet-question/subjective-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js +24 -23
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +220 -192
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js +53 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +103 -73
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js +251 -213
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/worksheet-questions-controller.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-sidebar/navigator.js +20 -33
- package/dist/features/worksheet/worksheet/worksheet-sidebar/navigator.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js +112 -0
- package/dist/features/worksheet/worksheet/worksheet-sidebar/question-guide.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js +61 -0
- package/dist/features/worksheet/worksheet/worksheet-sidebar/sidebar.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js +91 -0
- package/dist/features/worksheet/worksheet/worksheet-sidebar/worksheet-sidebar-styled.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-store.js +132 -138
- package/dist/features/worksheet/worksheet/worksheet-store.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-styled.js +83 -29
- package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js +24 -45
- package/dist/features/worksheet/worksheet/worksheet-summary-controller/worksheet-summary-controller.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-types.js +2 -3
- package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-view.js +99 -88
- package/dist/features/worksheet/worksheet/worksheet-view.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet.js +95 -96
- package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +29 -29
- package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +1 -1
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +24 -24
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
- package/dist/index.d.ts +14 -32
- package/dist/index.js +745 -760
- package/dist/index.js.map +1 -1
- package/dist/types/models/worksheet.js +1 -2
- package/dist/types/models/worksheet.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/line-icons/icons/chevron-up.js +0 -28
- package/dist/assets/line-icons/icons/chevron-up.js.map +0 -1
- package/dist/assets/line-icons/icons/close.js +0 -28
- package/dist/assets/line-icons/icons/close.js.map +0 -1
- package/dist/assets/line-icons/icons/cursor2.js +0 -24
- package/dist/assets/line-icons/icons/cursor2.js.map +0 -1
- package/dist/assets/line-icons/icons/hints.js +0 -25
- package/dist/assets/line-icons/icons/hints.js.map +0 -1
- package/dist/assets/line-icons/icons/question-feedback.js +0 -30
- package/dist/assets/line-icons/icons/question-feedback.js.map +0 -1
- package/dist/assets/line-icons/icons/teaching-tools.js +0 -40
- package/dist/assets/line-icons/icons/teaching-tools.js.map +0 -1
- package/dist/assets/line-icons/icons/tval-question.js +0 -32
- package/dist/assets/line-icons/icons/tval-question.js.map +0 -1
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game-analytics-events.js +0 -11
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game-analytics-events.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js +0 -49
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js +0 -184
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/scribble-switch.js +0 -65
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/scribble-switch.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-styled.js +0 -9
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-styled.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js +0 -38
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/worksheet-questions-tools.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools-styled.js +0 -19
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools-styled.js.map +0 -1
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools.js +0 -66
- package/dist/features/worksheet/worksheet/worksheet-teaching-tools/worksheet-teaching-tools.js.map +0 -1
|
@@ -1,67 +1,62 @@
|
|
|
1
1
|
import { DAYS as R } from "../../constants/date-time.js";
|
|
2
|
-
import { getOffsetBetweenTimezone as
|
|
2
|
+
import { getOffsetBetweenTimezone as D, convertEpochToDateTime as x, getTimeUnits as H, convertToMilliseconds as M } from "../../helpers/date-time.js";
|
|
3
3
|
import { GOAL_CATEGORY as L } from "../milestone/constants.js";
|
|
4
4
|
import { getGoalsFromConfig as G } from "../milestone/create/milestone-create-helpers.js";
|
|
5
5
|
import { HIGH_ENROLLMENT_PROGRAMS_MAP as v, TrialPageId as s, TEACHER_TIMEZONE as w } from "./trial-session-constants.js";
|
|
6
|
-
const V = (n) => n === "PLA", j = (n, t,
|
|
7
|
-
const e = n ? [...n] : [],
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
e[r] = {
|
|
16
|
-
...e[r],
|
|
17
|
-
...o
|
|
18
|
-
};
|
|
19
|
-
return e;
|
|
6
|
+
const V = (n) => n === "PLA", j = (n, t, r) => {
|
|
7
|
+
const e = n ? [...n] : [], o = e.findIndex((i) => i.goal_category === t), c = {
|
|
8
|
+
...r,
|
|
9
|
+
goal_category: t
|
|
10
|
+
};
|
|
11
|
+
return o === -1 ? e.push(c) : e[o] = {
|
|
12
|
+
...e[o],
|
|
13
|
+
...c
|
|
14
|
+
}, e.filter((i) => i.goal_code);
|
|
20
15
|
}, B = (n, t) => {
|
|
21
16
|
if (!t) return [];
|
|
22
|
-
const
|
|
23
|
-
return n.length > 0 ? n.filter((
|
|
24
|
-
const { selectedDay:
|
|
17
|
+
const r = (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0), e = D(w, t), o = r + e, { day: c = "" } = x(o, t), i = R.indexOf(c);
|
|
18
|
+
return n.length > 0 ? n.filter((g) => g.selectedDay && g.selectedTime).map((g) => {
|
|
19
|
+
const { selectedDay: p, selectedTime: P } = g, { hours: y, minutes: m, period: u } = H(P), E = (R.indexOf(p) - i + 7) % 7;
|
|
25
20
|
return {
|
|
26
|
-
id:
|
|
27
|
-
value: `${
|
|
21
|
+
id: r + e + M({ days: E, hours: y, minutes: m }),
|
|
22
|
+
value: `${p}, ${P} - ${y + 1}:${m < 10 ? "0" : ""}${m} ${u}`
|
|
28
23
|
// Formatted the value string as required
|
|
29
24
|
};
|
|
30
25
|
}) : [];
|
|
31
|
-
},
|
|
32
|
-
const
|
|
33
|
-
return { weekday:
|
|
34
|
-
}),
|
|
26
|
+
}, W = (n) => n.filter((t) => typeof t.id == "number" && !isNaN(t.id)).map((t) => {
|
|
27
|
+
const r = new Date(t.id), e = R[r.getDay()], o = e ? e.toLowerCase() : "unknown", c = r.getHours(), i = r.getMinutes(), g = `${c.toString().padStart(2, "0")}:${i.toString().padStart(2, "0")}:00`;
|
|
28
|
+
return { weekday: o, start_time: g };
|
|
29
|
+
}), Y = ({
|
|
35
30
|
milestoneConfigData: n,
|
|
36
31
|
trialHomeData: t,
|
|
37
|
-
grade:
|
|
32
|
+
grade: r,
|
|
38
33
|
goal: e
|
|
39
34
|
}) => {
|
|
40
35
|
var O, h;
|
|
41
|
-
const { student:
|
|
36
|
+
const { student: o, demo_info: c } = t, { grade: i, enrollment_type: g } = o || {}, { stream: p, region_data: P } = c || {}, { opportunity_country: y = "US" } = P || {}, m = (d) => G(n, {
|
|
42
37
|
countryCode: y,
|
|
43
|
-
grade:
|
|
44
|
-
goalCategory:
|
|
45
|
-
courseStream:
|
|
46
|
-
enrollmentType:
|
|
47
|
-
}),
|
|
48
|
-
(
|
|
38
|
+
grade: r || i || "",
|
|
39
|
+
goalCategory: d,
|
|
40
|
+
courseStream: p,
|
|
41
|
+
enrollmentType: g
|
|
42
|
+
}), u = m(L.TEST_PREP), l = m(L.ENRICHMENT), E = m(L.SCHOOL_SUCCESS).some(
|
|
43
|
+
(d) => d.id === e && Object.keys(v).includes(d.programCode ?? "")
|
|
49
44
|
);
|
|
50
|
-
if ((
|
|
45
|
+
if ((u == null ? void 0 : u.length) > 0 && (l == null ? void 0 : l.length) > 0 && !E)
|
|
51
46
|
return t;
|
|
52
|
-
const f = { ...t }, T = Object.fromEntries(f.pages.map((
|
|
53
|
-
var
|
|
54
|
-
return ((N = (
|
|
55
|
-
})(), I =
|
|
56
|
-
if (I &&
|
|
57
|
-
const
|
|
47
|
+
const f = { ...t }, T = Object.fromEntries(f.pages.map((d) => [d.id, d])), _ = (() => {
|
|
48
|
+
var d, N, a, S, A, C;
|
|
49
|
+
return ((N = (d = T[s.SCHOOL_GOALS]) == null ? void 0 : d.nextPage) == null ? void 0 : N.pageId) === s.TEST_PREP && u.length === 0 ? s.SCHOOL_GOALS : u.length > 0 && ((S = (a = T[s.TEST_PREP]) == null ? void 0 : a.nextPage) == null ? void 0 : S.pageId) === s.STUDENT_ENRICHMENT && l.length === 0 ? s.TEST_PREP : E ? ((C = (A = T[s.LEARNING_LEVEL]) == null ? void 0 : A.prevPage) == null ? void 0 : C.pageId) ?? null : null;
|
|
50
|
+
})(), I = _ ? E ? (O = T[s.LEARNING_LEVEL]) == null ? void 0 : O.nextPage : (h = T[(l == null ? void 0 : l.length) === 0 ? s.STUDENT_ENRICHMENT : s.TEST_PREP]) == null ? void 0 : h.nextPage : null;
|
|
51
|
+
if (I && _) {
|
|
52
|
+
const d = (a) => u.length === 0 && a === s.TEST_PREP || l.length === 0 && a === s.STUDENT_ENRICHMENT || E && a === s.LEARNING_LEVEL, N = f.pages.filter((a) => !d(a.id));
|
|
58
53
|
f.pages = N.map((a) => {
|
|
59
|
-
var
|
|
60
|
-
return a.id ===
|
|
54
|
+
var S;
|
|
55
|
+
return a.id === _ ? { ...a, nextPage: I } : a.id === I.pageId ? {
|
|
61
56
|
...a,
|
|
62
57
|
prevPage: {
|
|
63
|
-
buttonLabel: ((
|
|
64
|
-
pageId:
|
|
58
|
+
buttonLabel: ((S = T[_]) == null ? void 0 : S.navigationLabel) ?? "",
|
|
59
|
+
pageId: _
|
|
65
60
|
}
|
|
66
61
|
} : a;
|
|
67
62
|
});
|
|
@@ -69,29 +64,29 @@ const V = (n) => n === "PLA", j = (n, t, o) => {
|
|
|
69
64
|
return f;
|
|
70
65
|
}, Z = (n, t) => {
|
|
71
66
|
var e;
|
|
72
|
-
const { preference_config:
|
|
73
|
-
return t.length > 0 ? ((e =
|
|
74
|
-
({ preference_code:
|
|
75
|
-
preference_code:
|
|
67
|
+
const { preference_config: r } = n;
|
|
68
|
+
return t.length > 0 ? ((e = r == null ? void 0 : r.filter((o) => t.includes(o.preference_code))) == null ? void 0 : e.map(
|
|
69
|
+
({ preference_code: o, preference_name: c, preference_category: i, preference_description: g }) => ({
|
|
70
|
+
preference_code: o,
|
|
76
71
|
preference_name: c,
|
|
77
|
-
preference_category:
|
|
78
|
-
preference_description:
|
|
72
|
+
preference_category: i,
|
|
73
|
+
preference_description: g
|
|
79
74
|
})
|
|
80
75
|
)) || [] : [];
|
|
81
|
-
}, q = (n, t,
|
|
76
|
+
}, q = (n, t, r = !1) => {
|
|
82
77
|
if (!(n != null && n.length)) return [];
|
|
83
|
-
if (
|
|
84
|
-
const e = n.find((
|
|
78
|
+
if (r) {
|
|
79
|
+
const e = n.find((o) => (o == null ? void 0 : o.preference_category) === t);
|
|
85
80
|
return e ? [e.preference_code] : [];
|
|
86
81
|
}
|
|
87
82
|
return n.filter((e) => (e == null ? void 0 : e.preference_category) === t).map((e) => e.preference_code);
|
|
88
83
|
};
|
|
89
84
|
export {
|
|
90
|
-
|
|
85
|
+
Y as filterAndUpdateSlideNavigation,
|
|
91
86
|
B as getFormattedPreferences,
|
|
92
87
|
Z as getFormattedStudentPersonalizedPreference,
|
|
93
88
|
q as getPreferenceCodesByCategory,
|
|
94
|
-
|
|
89
|
+
W as getWeekdayAndStartTimeFromPreference,
|
|
95
90
|
V as isPLASource,
|
|
96
91
|
j as updateGoalInFormData
|
|
97
92
|
};
|
|
@@ -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 {\n TrialPageId,\n TEACHER_TIMEZONE,\n HIGH_ENROLLMENT_PROGRAMS_MAP,\n} 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 goal,\n}: {\n milestoneConfigData: IMilestoneConfig;\n trialHomeData: ITrialHomeData;\n grade?: string;\n goal?: 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 const isHighEnrollmentProgramSelected = getGoals(GOAL_CATEGORY.SCHOOL_SUCCESS).some(\n g => g.id === goal && Object.keys(HIGH_ENROLLMENT_PROGRAMS_MAP).includes(g.programCode ?? ''),\n );\n\n if (\n testPrepGoals?.length > 0 &&\n enrichmentGoals?.length > 0 &&\n !isHighEnrollmentProgramSelected\n ) {\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 if (isHighEnrollmentProgramSelected) {\n return pagesMap[TrialPageId.LEARNING_LEVEL]?.prevPage?.pageId ?? null;\n }\n\n return null;\n })();\n\n // the new next page reference for slideIdToUpdate\n const updatedNextPageInfo = slideIdToUpdate\n ? isHighEnrollmentProgramSelected\n ? pagesMap[TrialPageId.LEARNING_LEVEL]?.nextPage\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 (isHighEnrollmentProgramSelected && slideId === TrialPageId.LEARNING_LEVEL);\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","isHighEnrollmentProgramSelected","g","HIGH_ENROLLMENT_PROGRAMS_MAP","updatedTrialHomeData","pagesMap","page","slideIdToUpdate","_b","_a","TrialPageId","_d","_c","_f","_e","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 {\n TrialPageId,\n TEACHER_TIMEZONE,\n HIGH_ENROLLMENT_PROGRAMS_MAP,\n} 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 updatedGoals = goals ? [...goals] : [];\n const goalIndex = updatedGoals.findIndex(goal => goal.goal_category === goalCategory);\n\n const goalWithCategory = {\n ...data,\n goal_category: goalCategory,\n };\n\n if (goalIndex === -1) {\n // Add new goal if it doesn't exist\n updatedGoals.push(goalWithCategory);\n } else {\n // Update existing goal\n updatedGoals[goalIndex] = {\n ...updatedGoals[goalIndex],\n ...goalWithCategory,\n };\n }\n\n // Filter out any goals without goal_code (cleanup existing data)\n return updatedGoals.filter(goal => goal.goal_code);\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 goal,\n}: {\n milestoneConfigData: IMilestoneConfig;\n trialHomeData: ITrialHomeData;\n grade?: string;\n goal?: 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 const isHighEnrollmentProgramSelected = getGoals(GOAL_CATEGORY.SCHOOL_SUCCESS).some(\n g => g.id === goal && Object.keys(HIGH_ENROLLMENT_PROGRAMS_MAP).includes(g.programCode ?? ''),\n );\n\n if (\n testPrepGoals?.length > 0 &&\n enrichmentGoals?.length > 0 &&\n !isHighEnrollmentProgramSelected\n ) {\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 if (isHighEnrollmentProgramSelected) {\n return pagesMap[TrialPageId.LEARNING_LEVEL]?.prevPage?.pageId ?? null;\n }\n\n return null;\n })();\n\n // the new next page reference for slideIdToUpdate\n const updatedNextPageInfo = slideIdToUpdate\n ? isHighEnrollmentProgramSelected\n ? pagesMap[TrialPageId.LEARNING_LEVEL]?.nextPage\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 (isHighEnrollmentProgramSelected && slideId === TrialPageId.LEARNING_LEVEL);\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","updatedGoals","goalIndex","goal","goalWithCategory","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","isHighEnrollmentProgramSelected","g","HIGH_ENROLLMENT_PROGRAMS_MAP","updatedTrialHomeData","pagesMap","page","slideIdToUpdate","_b","_a","TrialPageId","_d","_c","_f","_e","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,69 +1,72 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { PREFERENCE_CATEGORY as
|
|
3
|
-
import { getGradesFromConfig as
|
|
4
|
-
import { PREFERENCE_CODE_MAP as
|
|
5
|
-
import {
|
|
6
|
-
import { epochTimestampAfterOneYear as
|
|
7
|
-
import { HIGH_ENROLLMENT_PROGRAMS_MAP as
|
|
1
|
+
import { useRef as j, useCallback as E } from "react";
|
|
2
|
+
import { PREFERENCE_CATEGORY as T, GOAL_CATEGORY as Y, ENROLLMENT_TYPES as w } from "../../milestone/constants.js";
|
|
3
|
+
import { getGradesFromConfig as F } from "../../milestone/create/milestone-create-helpers.js";
|
|
4
|
+
import { PREFERENCE_CODE_MAP as k } from "../comps/student-feedback/student-feedback-constants.js";
|
|
5
|
+
import { getPreferenceCodesByCategory as S, isPLASource as x, updateGoalInFormData as z } from "../helper.js";
|
|
6
|
+
import { epochTimestampAfterOneYear as B } from "../../utils/utils.js";
|
|
7
|
+
import { HIGH_ENROLLMENT_PROGRAMS_MAP as D } from "../trial-session-constants.js";
|
|
8
8
|
const ee = ({
|
|
9
|
-
teacherClassroomId:
|
|
10
|
-
trialHomeData: s,
|
|
11
|
-
milestoneConfig: t,
|
|
9
|
+
teacherClassroomId: O,
|
|
12
10
|
studentTimezone: a,
|
|
13
|
-
updateSlideConfig:
|
|
11
|
+
updateSlideConfig: l
|
|
14
12
|
}) => {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
} = P || {}, A = z(o == null ? void 0 : o.source), L = !!k(t).find(
|
|
30
|
-
(r) => r.id === m
|
|
31
|
-
), N = t.goal_curriculum_map.find((r) => r.goal_code === I), u = E(i, C.OBJECTIVES), e = E(i, C.POSITION, !0), g = u.length > 0 ? u : null, p = e.length > 0 ? e : null, _ = e.length > 0 && e[0] ? [x[e[0]]] : null, {
|
|
32
|
-
goal_curriculum_standard: U,
|
|
33
|
-
goal_code: y,
|
|
34
|
-
goal_name: v,
|
|
35
|
-
program_code: f
|
|
36
|
-
} = N || {}, b = B(void 0, w.SCHOOL_SUCCESS, {
|
|
37
|
-
goal_code: y ?? "",
|
|
38
|
-
milestone_name: v ?? "",
|
|
39
|
-
milestone_date_ts: D(),
|
|
40
|
-
publish: A,
|
|
41
|
-
program_code: f
|
|
42
|
-
}), M = l.includes(f) ? F.HIGH : void 0, H = {
|
|
43
|
-
studentTimezone: a,
|
|
44
|
-
name: G,
|
|
45
|
-
goals: b,
|
|
46
|
-
curriculum: U,
|
|
47
|
-
grade: L ? m : "",
|
|
48
|
-
enrollmentType: M ?? h,
|
|
49
|
-
..._ && { personalizedLevel: _ },
|
|
50
|
-
...p && { personalizedPosition: p },
|
|
51
|
-
...g && { personalizedObjectives: g }
|
|
13
|
+
const c = Object.keys(D), n = `trialSessionConfigCache_${O}`, d = j(
|
|
14
|
+
(() => {
|
|
15
|
+
try {
|
|
16
|
+
return window.localStorage.getItem(n) === "true";
|
|
17
|
+
} catch {
|
|
18
|
+
return !1;
|
|
19
|
+
}
|
|
20
|
+
})()
|
|
21
|
+
), i = E((t) => {
|
|
22
|
+
const o = S(t, T.OBJECTIVES), e = S(t, T.POSITION, !0);
|
|
23
|
+
return {
|
|
24
|
+
objectivesToUpdate: o.length > 0 ? o : null,
|
|
25
|
+
positionToUpdate: e.length > 0 ? e : null,
|
|
26
|
+
levelToUpdate: e.length > 0 && e[0] ? [k[e[0]]] : null
|
|
52
27
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
28
|
+
}, []);
|
|
29
|
+
return { onRenderUpdateSlideConfig: E(
|
|
30
|
+
({ trialHomeData: t, milestoneConfig: o }) => {
|
|
31
|
+
var C;
|
|
32
|
+
if (d.current)
|
|
33
|
+
return;
|
|
34
|
+
const { demo_info: e, student: P, intel_student: r } = t, { goal_code: R } = e || {}, { student_preference: U } = r || {}, { preferences: h = [] } = U || {}, {
|
|
35
|
+
name: G,
|
|
36
|
+
grade: m,
|
|
37
|
+
enrollment_type: I
|
|
38
|
+
} = P || {}, A = x(r == null ? void 0 : r.source), L = F(o).some((s) => s.id === m), N = (C = o.goal_curriculum_map) == null ? void 0 : C.find(
|
|
39
|
+
(s) => s.goal_code === R
|
|
40
|
+
), { objectivesToUpdate: u, positionToUpdate: g, levelToUpdate: p } = i(h), {
|
|
41
|
+
goal_curriculum_standard: v,
|
|
42
|
+
goal_code: y,
|
|
43
|
+
goal_name: b,
|
|
44
|
+
program_code: _
|
|
45
|
+
} = N || {}, f = z(void 0, Y.SCHOOL_SUCCESS, {
|
|
46
|
+
goal_code: y,
|
|
47
|
+
milestone_name: b,
|
|
48
|
+
milestone_date_ts: B(),
|
|
49
|
+
publish: A,
|
|
50
|
+
program_code: _
|
|
51
|
+
}), H = c.includes(_) ? w.HIGH : I, M = {
|
|
52
|
+
studentTimezone: a,
|
|
53
|
+
name: G,
|
|
54
|
+
curriculum: v,
|
|
55
|
+
grade: L ? m : "",
|
|
56
|
+
enrollmentType: H,
|
|
57
|
+
...f.length > 0 && { goals: f },
|
|
58
|
+
...p && { personalizedLevel: p },
|
|
59
|
+
...g && { personalizedPosition: g },
|
|
60
|
+
...u && { personalizedObjectives: u }
|
|
61
|
+
};
|
|
62
|
+
try {
|
|
63
|
+
window.localStorage.setItem(n, "true"), d.current = !0;
|
|
64
|
+
} catch {
|
|
65
|
+
}
|
|
66
|
+
l(M);
|
|
67
|
+
},
|
|
68
|
+
[n, a, l, c, i]
|
|
69
|
+
) };
|
|
67
70
|
};
|
|
68
71
|
export {
|
|
69
72
|
ee as useSlideConfigUpdate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-slide-config-update.js","sources":["../../../../src/features/trial-session/hooks/use-slide-config-update.ts"],"sourcesContent":["import { useCallback,
|
|
1
|
+
{"version":3,"file":"use-slide-config-update.js","sources":["../../../../src/features/trial-session/hooks/use-slide-config-update.ts"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\nimport { ENROLLMENT_TYPES, GOAL_CATEGORY, PREFERENCE_CATEGORY } from '../../milestone/constants';\nimport { getGradesFromConfig } from '../../milestone/create/milestone-create-helpers';\nimport type { IMilestoneConfig } from '../../milestone/create/milestone-create-types';\nimport { PREFERENCE_CODE_MAP } from '../comps/student-feedback/student-feedback-constants';\nimport { getPreferenceCodesByCategory, isPLASource, updateGoalInFormData } from '../helper';\nimport type {\n ITrialHomeData,\n ITrialSessionFormFields,\n TPreferenceSchema,\n} from '../trial-session-types';\nimport { epochTimestampAfterOneYear } from '../../utils/utils';\nimport { HIGH_ENROLLMENT_PROGRAMS_MAP } from '../trial-session-constants';\n\ninterface UseSlideConfigUpdateProps {\n teacherClassroomId: string;\n studentTimezone?: string;\n updateSlideConfig: (config: Partial<ITrialSessionFormFields>) => void;\n}\n\ntype TRenderUpdateProps = {\n trialHomeData: ITrialHomeData;\n milestoneConfig: IMilestoneConfig;\n};\n\nexport const useSlideConfigUpdate = ({\n teacherClassroomId,\n studentTimezone,\n updateSlideConfig,\n}: UseSlideConfigUpdateProps) => {\n const highEnrollmentPrograms = Object.keys(HIGH_ENROLLMENT_PROGRAMS_MAP);\n const CACHE_KEY = `trialSessionConfigCache_${teacherClassroomId}`;\n\n // Use useRef to track if config was set without causing re-renders\n const isConfigSetRef = useRef<boolean>(\n (() => {\n try {\n return window.localStorage.getItem(CACHE_KEY) === 'true';\n } catch {\n return false;\n }\n })(),\n );\n\n // Memoize preference processing helper\n const processPreferences = useCallback((preferences: TPreferenceSchema[]) => {\n const objectives = getPreferenceCodesByCategory(preferences, PREFERENCE_CATEGORY.OBJECTIVES);\n const position = getPreferenceCodesByCategory(preferences, PREFERENCE_CATEGORY.POSITION, true);\n\n return {\n objectivesToUpdate: objectives.length > 0 ? objectives : null,\n positionToUpdate: position.length > 0 ? position : null,\n levelToUpdate:\n position.length > 0 && position[0]\n ? [PREFERENCE_CODE_MAP[position[0] as keyof typeof PREFERENCE_CODE_MAP]]\n : null,\n };\n }, []);\n\n const onRenderUpdateSlideConfig = useCallback(\n ({ trialHomeData, milestoneConfig }: TRenderUpdateProps) => {\n // If config was already set for this student in this session, skip update\n if (isConfigSetRef.current) {\n return;\n }\n\n const { demo_info: demoInfo, student, intel_student: intelStudent } = trialHomeData;\n const { goal_code: goalCode } = demoInfo || {};\n const { student_preference: studentPreference } = intelStudent || {};\n const { preferences = [] } = studentPreference || {};\n const {\n name: studentName,\n grade: studentGrade,\n enrollment_type: studentEnrollmentType,\n } = student || {};\n\n const isPLA = isPLASource(intelStudent?.source);\n const grades = getGradesFromConfig(milestoneConfig);\n const IsGradeExistInMilestoneConfig = grades.some(element => element.id === studentGrade);\n\n const goalToPreSelect = milestoneConfig.goal_curriculum_map?.find(\n g => g.goal_code === goalCode,\n );\n\n // Process preferences efficiently\n const { objectivesToUpdate, positionToUpdate, levelToUpdate } =\n processPreferences(preferences);\n\n const {\n goal_curriculum_standard: goalCurriculumStandard,\n goal_code: goalCodeToSelect,\n goal_name: goalNameToSelect,\n program_code: programCodeToSelect,\n } = goalToPreSelect || {};\n\n // Create goals data\n const updatedGoals = updateGoalInFormData(undefined, GOAL_CATEGORY.SCHOOL_SUCCESS, {\n goal_code: goalCodeToSelect,\n milestone_name: goalNameToSelect,\n milestone_date_ts: epochTimestampAfterOneYear(),\n publish: isPLA,\n program_code: programCodeToSelect as string,\n });\n\n const enrollmentToUpdate = highEnrollmentPrograms.includes(programCodeToSelect as string)\n ? ENROLLMENT_TYPES.HIGH\n : studentEnrollmentType;\n\n // Build config object efficiently\n const configToUpdate: Partial<ITrialSessionFormFields> = {\n studentTimezone,\n name: studentName,\n curriculum: goalCurriculumStandard,\n grade: IsGradeExistInMilestoneConfig ? studentGrade : '',\n enrollmentType: enrollmentToUpdate,\n ...(updatedGoals.length > 0 && { goals: updatedGoals }),\n ...(levelToUpdate && { personalizedLevel: levelToUpdate }),\n ...(positionToUpdate && { personalizedPosition: positionToUpdate }),\n ...(objectivesToUpdate && { personalizedObjectives: objectivesToUpdate }),\n };\n\n // Mark config as set and update\n try {\n window.localStorage.setItem(CACHE_KEY, 'true');\n isConfigSetRef.current = true;\n } catch {\n // Silent catch for localStorage errors\n }\n\n updateSlideConfig(configToUpdate);\n },\n [CACHE_KEY, studentTimezone, updateSlideConfig, highEnrollmentPrograms, processPreferences],\n );\n\n return { onRenderUpdateSlideConfig };\n};\n"],"names":["useSlideConfigUpdate","teacherClassroomId","studentTimezone","updateSlideConfig","highEnrollmentPrograms","HIGH_ENROLLMENT_PROGRAMS_MAP","CACHE_KEY","isConfigSetRef","useRef","processPreferences","useCallback","preferences","objectives","getPreferenceCodesByCategory","PREFERENCE_CATEGORY","position","PREFERENCE_CODE_MAP","trialHomeData","milestoneConfig","demoInfo","student","intelStudent","goalCode","studentPreference","studentName","studentGrade","studentEnrollmentType","isPLA","isPLASource","IsGradeExistInMilestoneConfig","getGradesFromConfig","element","goalToPreSelect","_a","g","objectivesToUpdate","positionToUpdate","levelToUpdate","goalCurriculumStandard","goalCodeToSelect","goalNameToSelect","programCodeToSelect","updatedGoals","updateGoalInFormData","GOAL_CATEGORY","epochTimestampAfterOneYear","enrollmentToUpdate","ENROLLMENT_TYPES","configToUpdate"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { memo as z, useState as J, useMemo as
|
|
1
|
+
import { jsx as h, jsxs as q } from "react/jsx-runtime";
|
|
2
|
+
import { memo as z, useState as J, useMemo as C, useCallback as K, useEffect as m } from "react";
|
|
3
3
|
import Q from "../ui/layout/flex-view.js";
|
|
4
4
|
import W from "./context/trial-session-context.js";
|
|
5
5
|
import { useButtonStateForLeftPanel as X } from "./hooks/use-left-panel-button-state.js";
|
|
@@ -8,14 +8,14 @@ import Z from "./left-panel/index.js";
|
|
|
8
8
|
import ee from "./right-panel/index.js";
|
|
9
9
|
const de = z(function(B) {
|
|
10
10
|
const {
|
|
11
|
-
userType:
|
|
12
|
-
teacherPanel:
|
|
13
|
-
studentPanel:
|
|
14
|
-
trialGameUrl:
|
|
15
|
-
formData:
|
|
11
|
+
userType: i,
|
|
12
|
+
teacherPanel: S,
|
|
13
|
+
studentPanel: D,
|
|
14
|
+
trialGameUrl: T,
|
|
15
|
+
formData: I,
|
|
16
16
|
height: G = "100vh",
|
|
17
|
-
trialHomeData:
|
|
18
|
-
milestoneConfig:
|
|
17
|
+
trialHomeData: e,
|
|
18
|
+
milestoneConfig: n,
|
|
19
19
|
onFormDataChange: f,
|
|
20
20
|
worksheet: v,
|
|
21
21
|
studentId: s,
|
|
@@ -34,96 +34,93 @@ const de = z(function(B) {
|
|
|
34
34
|
studentTimezone: c,
|
|
35
35
|
classTimeAlertConfig: M,
|
|
36
36
|
changeDemoLevel: V
|
|
37
|
-
} = B,
|
|
38
|
-
() => g.find((a) => a.id ===
|
|
39
|
-
[
|
|
40
|
-
), b =
|
|
37
|
+
} = B, t = i === "TEACHER", { pages: g = [] } = e, [d, N] = J(I), r = t ? d : I, p = r == null ? void 0 : r.id, $ = C(
|
|
38
|
+
() => g.find((a) => a.id === p) ?? g[0],
|
|
39
|
+
[p, g]
|
|
40
|
+
), b = C(() => {
|
|
41
41
|
const a = {
|
|
42
|
-
circleConfig:
|
|
42
|
+
circleConfig: e.circle_trial_game_config,
|
|
43
43
|
playerDetails: {
|
|
44
|
-
userId:
|
|
45
|
-
circle_username: t
|
|
46
|
-
user_avatar: t
|
|
47
|
-
playerType:
|
|
44
|
+
userId: t ? l : s,
|
|
45
|
+
circle_username: e[t ? "teacher" : "student"].circle_username,
|
|
46
|
+
user_avatar: e[t ? "teacher" : "student"].user_avatar,
|
|
47
|
+
playerType: i
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
-
return
|
|
51
|
-
}, [
|
|
50
|
+
return i === "STUDENT" && (a.playerDetails.grade = e.student.grade), a;
|
|
51
|
+
}, [t, s, l, e, i]), o = K((a) => {
|
|
52
52
|
N((U) => U ? { ...U, ...a } : a);
|
|
53
53
|
}, []), { buttonState: j, updateButtonState: k } = X(), { onRenderUpdateSlideConfig: L } = Y({
|
|
54
|
-
trialHomeData: t,
|
|
55
|
-
milestoneConfig: m,
|
|
56
54
|
studentTimezone: c,
|
|
57
55
|
teacherClassroomId: H,
|
|
58
|
-
updateSlideConfig:
|
|
59
|
-
}), O =
|
|
56
|
+
updateSlideConfig: o
|
|
57
|
+
}), O = C(
|
|
60
58
|
() => ({
|
|
61
|
-
teacherPanel:
|
|
62
|
-
studentPanel:
|
|
63
|
-
isTeacher:
|
|
59
|
+
teacherPanel: S,
|
|
60
|
+
studentPanel: D,
|
|
61
|
+
isTeacher: t,
|
|
64
62
|
slideConfig: $,
|
|
65
|
-
milestoneConfig:
|
|
66
|
-
formData:
|
|
67
|
-
updateSlideConfig:
|
|
63
|
+
milestoneConfig: n,
|
|
64
|
+
formData: r,
|
|
65
|
+
updateSlideConfig: o,
|
|
68
66
|
worksheet: v,
|
|
69
67
|
buttonState: j,
|
|
70
68
|
updateButtonState: k,
|
|
71
69
|
studentId: s,
|
|
72
70
|
teacherId: l,
|
|
73
71
|
classStartedOn: P,
|
|
74
|
-
trialHomeData:
|
|
72
|
+
trialHomeData: e,
|
|
75
73
|
worksheetNavigationPanel: x,
|
|
76
74
|
questionsRatingPanel: _,
|
|
77
75
|
onTrialInformationUpdate: E,
|
|
78
76
|
openEndClassModal: y,
|
|
79
77
|
studentAbsentInClass: w,
|
|
80
78
|
circleGames: b,
|
|
81
|
-
trialGameUrl:
|
|
79
|
+
trialGameUrl: T,
|
|
82
80
|
handleInfoMessage: R,
|
|
83
81
|
onRemoveOptionalSlides: A,
|
|
84
82
|
classDuration: F,
|
|
85
83
|
classTimeAlertConfig: M
|
|
86
84
|
}),
|
|
87
85
|
[
|
|
86
|
+
S,
|
|
88
87
|
D,
|
|
89
|
-
|
|
90
|
-
e,
|
|
88
|
+
t,
|
|
91
89
|
$,
|
|
92
|
-
m,
|
|
93
90
|
n,
|
|
94
|
-
i,
|
|
95
91
|
r,
|
|
92
|
+
o,
|
|
96
93
|
v,
|
|
97
94
|
j,
|
|
98
95
|
k,
|
|
99
96
|
s,
|
|
100
97
|
l,
|
|
101
98
|
P,
|
|
102
|
-
|
|
99
|
+
e,
|
|
103
100
|
x,
|
|
104
101
|
_,
|
|
105
102
|
E,
|
|
106
103
|
y,
|
|
107
104
|
w,
|
|
108
105
|
b,
|
|
109
|
-
|
|
106
|
+
T,
|
|
110
107
|
R,
|
|
111
108
|
A,
|
|
112
109
|
F,
|
|
113
110
|
M
|
|
114
111
|
]
|
|
115
112
|
);
|
|
116
|
-
return
|
|
117
|
-
|
|
118
|
-
}, [f,
|
|
113
|
+
return m(() => {
|
|
114
|
+
d && f && f(d);
|
|
115
|
+
}, [f, d]), m(() => {
|
|
119
116
|
c || u == null || u();
|
|
120
|
-
}, [
|
|
121
|
-
|
|
122
|
-
}, [
|
|
123
|
-
V &&
|
|
124
|
-
}, [V,
|
|
125
|
-
/* @__PURE__ */
|
|
126
|
-
/* @__PURE__ */
|
|
117
|
+
}, [p]), m(() => {
|
|
118
|
+
t && c && e && n && L({ trialHomeData: e, milestoneConfig: n });
|
|
119
|
+
}, [t, n, L, c, e]), m(() => {
|
|
120
|
+
V && o({ confirmationModalActive: !0 });
|
|
121
|
+
}, [V, o]), /* @__PURE__ */ h(W.Provider, { value: O, children: /* @__PURE__ */ q(Q, { $height: G, $flexDirection: "row", $justifyContent: "center", $alignItems: "center", children: [
|
|
122
|
+
/* @__PURE__ */ h(Z, {}),
|
|
123
|
+
/* @__PURE__ */ h(ee, {})
|
|
127
124
|
] }) });
|
|
128
125
|
});
|
|
129
126
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trial-session-view.js","sources":["../../../src/features/trial-session/trial-session-view.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport FlexView from '../ui/layout/flex-view';\nimport type { ITrialCircleGameParams } from './comps/trial-circle-game/trial-circle-game-types';\nimport TrialSessionContext from './context/trial-session-context';\nimport { useButtonStateForLeftPanel } from './hooks/use-left-panel-button-state';\nimport { useSlideConfigUpdate } from './hooks/use-slide-config-update';\nimport LeftPanel from './left-panel';\nimport RightPanel from './right-panel';\nimport type {\n ITrialSessionContext,\n ITrialSessionViewProps,\n ITrialSessionFormFields,\n} from './trial-session-types';\n\nconst TrialSessionView: FC<ITrialSessionViewProps> = memo(function TrialSessionView(props) {\n const {\n userType,\n teacherPanel,\n studentPanel,\n trialGameUrl,\n formData: formDataProps,\n height = '100vh',\n trialHomeData,\n milestoneConfig,\n onFormDataChange,\n worksheet,\n studentId,\n teacherId,\n classStartedOn,\n worksheetNavigationPanel,\n teacherClassroomId,\n questionsRatingPanel,\n studentAbsentInClass,\n openEndClassModal,\n onTrialInformationUpdate,\n onStudentTimezoneUpdate,\n handleInfoMessage,\n onRemoveOptionalSlides,\n classDuration,\n studentTimezone,\n classTimeAlertConfig,\n changeDemoLevel,\n } = props;\n const isTeacher = userType === 'TEACHER';\n const { pages: slides = [] } = trialHomeData;\n\n const [formData, setFormData] = useState<ITrialSessionFormFields | undefined>(formDataProps);\n const formDataToUse = isTeacher ? formData : formDataProps;\n const currentSlideId = formDataToUse?.id;\n\n const currentSlideConfig = useMemo(\n () => slides.find(config => config.id === currentSlideId) ?? slides[0]!,\n [currentSlideId, slides],\n );\n\n const circleGames = useMemo(() => {\n const data = {\n circleConfig: trialHomeData.circle_trial_game_config,\n playerDetails: {\n userId: isTeacher ? teacherId : studentId,\n circle_username: trialHomeData[isTeacher ? 'teacher' : 'student'].circle_username,\n user_avatar: trialHomeData[isTeacher ? 'teacher' : 'student'].user_avatar,\n playerType: userType,\n },\n } as ITrialCircleGameParams;\n\n if (userType === 'STUDENT') {\n data.playerDetails.grade = trialHomeData.student.grade;\n }\n\n return data;\n }, [isTeacher, studentId, teacherId, trialHomeData, userType]);\n\n const updateSlideConfig = useCallback((config: Partial<ITrialSessionFormFields>) => {\n setFormData(previousProps => {\n if (!previousProps) return config as ITrialSessionFormFields;\n\n return { ...previousProps, ...config };\n });\n }, []);\n const { buttonState, updateButtonState } = useButtonStateForLeftPanel();\n\n const { onRenderUpdateSlideConfig } = useSlideConfigUpdate({\n
|
|
1
|
+
{"version":3,"file":"trial-session-view.js","sources":["../../../src/features/trial-session/trial-session-view.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport FlexView from '../ui/layout/flex-view';\nimport type { ITrialCircleGameParams } from './comps/trial-circle-game/trial-circle-game-types';\nimport TrialSessionContext from './context/trial-session-context';\nimport { useButtonStateForLeftPanel } from './hooks/use-left-panel-button-state';\nimport { useSlideConfigUpdate } from './hooks/use-slide-config-update';\nimport LeftPanel from './left-panel';\nimport RightPanel from './right-panel';\nimport type {\n ITrialSessionContext,\n ITrialSessionViewProps,\n ITrialSessionFormFields,\n} from './trial-session-types';\n\nconst TrialSessionView: FC<ITrialSessionViewProps> = memo(function TrialSessionView(props) {\n const {\n userType,\n teacherPanel,\n studentPanel,\n trialGameUrl,\n formData: formDataProps,\n height = '100vh',\n trialHomeData,\n milestoneConfig,\n onFormDataChange,\n worksheet,\n studentId,\n teacherId,\n classStartedOn,\n worksheetNavigationPanel,\n teacherClassroomId,\n questionsRatingPanel,\n studentAbsentInClass,\n openEndClassModal,\n onTrialInformationUpdate,\n onStudentTimezoneUpdate,\n handleInfoMessage,\n onRemoveOptionalSlides,\n classDuration,\n studentTimezone,\n classTimeAlertConfig,\n changeDemoLevel,\n } = props;\n const isTeacher = userType === 'TEACHER';\n const { pages: slides = [] } = trialHomeData;\n\n const [formData, setFormData] = useState<ITrialSessionFormFields | undefined>(formDataProps);\n const formDataToUse = isTeacher ? formData : formDataProps;\n const currentSlideId = formDataToUse?.id;\n\n const currentSlideConfig = useMemo(\n () => slides.find(config => config.id === currentSlideId) ?? slides[0]!,\n [currentSlideId, slides],\n );\n\n const circleGames = useMemo(() => {\n const data = {\n circleConfig: trialHomeData.circle_trial_game_config,\n playerDetails: {\n userId: isTeacher ? teacherId : studentId,\n circle_username: trialHomeData[isTeacher ? 'teacher' : 'student'].circle_username,\n user_avatar: trialHomeData[isTeacher ? 'teacher' : 'student'].user_avatar,\n playerType: userType,\n },\n } as ITrialCircleGameParams;\n\n if (userType === 'STUDENT') {\n data.playerDetails.grade = trialHomeData.student.grade;\n }\n\n return data;\n }, [isTeacher, studentId, teacherId, trialHomeData, userType]);\n\n const updateSlideConfig = useCallback((config: Partial<ITrialSessionFormFields>) => {\n setFormData(previousProps => {\n if (!previousProps) return config as ITrialSessionFormFields;\n\n return { ...previousProps, ...config };\n });\n }, []);\n const { buttonState, updateButtonState } = useButtonStateForLeftPanel();\n\n const { onRenderUpdateSlideConfig } = useSlideConfigUpdate({\n studentTimezone,\n teacherClassroomId,\n updateSlideConfig,\n });\n\n const contextValue = useMemo<ITrialSessionContext>(\n () => ({\n teacherPanel,\n studentPanel,\n isTeacher,\n slideConfig: currentSlideConfig,\n milestoneConfig,\n formData: formDataToUse,\n updateSlideConfig,\n worksheet,\n buttonState,\n updateButtonState,\n studentId,\n teacherId,\n classStartedOn,\n trialHomeData,\n worksheetNavigationPanel,\n questionsRatingPanel,\n onTrialInformationUpdate,\n openEndClassModal,\n studentAbsentInClass,\n circleGames,\n trialGameUrl,\n handleInfoMessage,\n onRemoveOptionalSlides,\n classDuration,\n classTimeAlertConfig,\n }),\n [\n teacherPanel,\n studentPanel,\n isTeacher,\n currentSlideConfig,\n milestoneConfig,\n formDataToUse,\n updateSlideConfig,\n worksheet,\n buttonState,\n updateButtonState,\n studentId,\n teacherId,\n classStartedOn,\n trialHomeData,\n worksheetNavigationPanel,\n questionsRatingPanel,\n onTrialInformationUpdate,\n openEndClassModal,\n studentAbsentInClass,\n circleGames,\n trialGameUrl,\n handleInfoMessage,\n onRemoveOptionalSlides,\n classDuration,\n classTimeAlertConfig,\n ],\n );\n\n useEffect(() => {\n if (formData && onFormDataChange) {\n onFormDataChange(formData);\n }\n }, [onFormDataChange, formData]);\n\n useEffect(() => {\n if (!studentTimezone) onStudentTimezoneUpdate?.();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentSlideId]);\n\n useEffect(() => {\n if (isTeacher && studentTimezone && trialHomeData && milestoneConfig) {\n onRenderUpdateSlideConfig({ trialHomeData, milestoneConfig });\n }\n }, [isTeacher, milestoneConfig, onRenderUpdateSlideConfig, studentTimezone, trialHomeData]);\n\n useEffect(() => {\n if (changeDemoLevel) updateSlideConfig({ confirmationModalActive: true });\n }, [changeDemoLevel, updateSlideConfig]);\n\n return (\n <TrialSessionContext.Provider value={contextValue}>\n <FlexView $height={height} $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\">\n <LeftPanel />\n <RightPanel />\n </FlexView>\n </TrialSessionContext.Provider>\n );\n});\n\nexport default TrialSessionView;\n"],"names":["TrialSessionView","memo","props","userType","teacherPanel","studentPanel","trialGameUrl","formDataProps","height","trialHomeData","milestoneConfig","onFormDataChange","worksheet","studentId","teacherId","classStartedOn","worksheetNavigationPanel","teacherClassroomId","questionsRatingPanel","studentAbsentInClass","openEndClassModal","onTrialInformationUpdate","onStudentTimezoneUpdate","handleInfoMessage","onRemoveOptionalSlides","classDuration","studentTimezone","classTimeAlertConfig","changeDemoLevel","isTeacher","slides","formData","setFormData","useState","formDataToUse","currentSlideId","currentSlideConfig","useMemo","config","circleGames","data","updateSlideConfig","useCallback","previousProps","buttonState","updateButtonState","useButtonStateForLeftPanel","onRenderUpdateSlideConfig","useSlideConfigUpdate","contextValue","useEffect","jsx","TrialSessionContext","jsxs","FlexView","LeftPanel","RightPanel"],"mappings":"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"}
|