@cuemath/leap 3.3.32-j2 → 3.3.32-j3

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.
Files changed (39) hide show
  1. package/dist/features/trial-session/comps/class-preference/class-preference.js +70 -66
  2. package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
  3. package/dist/features/trial-session/comps/learning-plan/index.js +47 -45
  4. package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
  5. package/dist/features/trial-session/comps/navigation-bar/index.js +39 -38
  6. package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
  7. package/dist/features/trial-session/comps/school-goals/school-goals.js +58 -58
  8. package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
  9. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js +34 -34
  10. package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
  11. package/dist/features/trial-session/comps/student-feedback/student-feedback.js +10 -10
  12. package/dist/features/trial-session/comps/student-feedback/student-feedback.js.map +1 -1
  13. package/dist/features/trial-session/comps/test-prep/test-prep.js +35 -35
  14. package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
  15. package/dist/features/trial-session/helper.js +69 -70
  16. package/dist/features/trial-session/helper.js.map +1 -1
  17. package/dist/features/trial-session/hooks/use-slide-config-update.js +9 -9
  18. package/dist/features/trial-session/hooks/use-slide-config-update.js.map +1 -1
  19. package/dist/features/trial-session/hooks/use-trial-session-navigation.js +146 -136
  20. package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
  21. package/dist/features/trial-session/trial-session-view.js +61 -61
  22. package/dist/features/trial-session/trial-session-view.js.map +1 -1
  23. package/dist/node_modules/query-string/base.js +1 -1
  24. package/dist/node_modules/query-string/node_modules/decode-uri-component/index.js.map +1 -0
  25. package/dist/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  26. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  27. package/dist/node_modules/uuid/dist/esm-browser/rng.js +2 -3
  28. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  29. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +10 -6
  30. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  31. package/dist/node_modules/uuid/dist/esm-browser/v4.js +9 -12
  32. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  33. package/dist/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  34. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  35. package/package.json +2 -3
  36. package/dist/node_modules/decode-uri-component/index.js.map +0 -1
  37. package/dist/node_modules/uuid/dist/esm-browser/native.js +0 -7
  38. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
  39. /package/dist/node_modules/{decode-uri-component → query-string/node_modules/decode-uri-component}/index.js +0 -0
@@ -1,61 +1,65 @@
1
- import { jsxs as d, jsx as i } from "react/jsx-runtime";
2
- import { memo as H, useMemo as j, useCallback as F, useEffect as P } from "react";
3
- import { DAYS as f } from "../../../../constants/date-time.js";
4
- import { getTimeUnits as W, getOffsetBetweenTimezone as z, convertEpochToDateTime as $, convertToMilliseconds as B } from "../../../../helpers/date-time.js";
5
- import C from "../../../ui/inputs/select-input/select-input.js";
6
- import u from "../../../ui/layout/flex-view.js";
7
- import M from "../../../ui/separator/separator.js";
8
- import Y from "../../../ui/text/text.js";
9
- import { useTrialSessionContext as K } from "../../context/use-trial-session-context.js";
10
- import { TEACHER_TIMEZONE as x } from "../../trial-session-constants.js";
11
- import G from "../slide-header/index.js";
12
- import { timeSlots as N } from "./class-preference-constants.js";
13
- import { Container as R, PreferenceWrapper as U, FixedLineSeparator as Z } from "./class-preference-styled.js";
14
- import { extractDayAndTimeFromEpoch as q } from "./helpers.js";
15
- const h = [
1
+ import { jsxs as m, jsx as c } from "react/jsx-runtime";
2
+ import { memo as j, useMemo as W, useCallback as z, useEffect as _ } from "react";
3
+ import { DAYS as h } from "../../../../constants/date-time.js";
4
+ import { getTimeUnits as M, getOffsetBetweenTimezone as Y, convertEpochToDateTime as b, convertToMilliseconds as K } from "../../../../helpers/date-time.js";
5
+ import A from "../../../ui/inputs/select-input/select-input.js";
6
+ import T from "../../../ui/layout/flex-view.js";
7
+ import R from "../../../ui/separator/separator.js";
8
+ import q from "../../../ui/text/text.js";
9
+ import { useTrialSessionContext as G } from "../../context/use-trial-session-context.js";
10
+ import { isPLASource as N } from "../../helper.js";
11
+ import { TEACHER_TIMEZONE as L } from "../../trial-session-constants.js";
12
+ import U from "../slide-header/index.js";
13
+ import { timeSlots as Z } from "./class-preference-constants.js";
14
+ import { Container as J, PreferenceWrapper as Q, FixedLineSeparator as V } from "./class-preference-styled.js";
15
+ import { extractDayAndTimeFromEpoch as ee } from "./helpers.js";
16
+ const y = [
16
17
  { id: 1, selectedDay: "", selectedTime: "" },
17
18
  { id: 2, selectedDay: "", selectedTime: "" }
18
- ], pe = H(({ miniScreenDevice: _ }) => {
19
- const { isTeacher: o, formData: b, trialHomeData: S, updateSlideConfig: T } = K(), { preferences: m, studentTimezone: n = "Asia/Calcutta" } = b || {}, { demo_info: E } = S || {}, { scheduled_start_time: y } = E || {}, A = f.map((e) => ({ id: e, label: e })), g = o ? x : n, l = j(
20
- () => o ? q(y, n) : void 0,
21
- [o, y, n]
22
- ), D = (e, t, s) => {
23
- T({
24
- preferences: (m ?? h).map(
25
- (r) => r.id === e ? { ...r, [t]: s } : r
19
+ ], ge = j(({ miniScreenDevice: S }) => {
20
+ const { isTeacher: o, formData: E, trialHomeData: I, updateSlideConfig: f, updateButtonState: g } = G(), { preferences: r, studentTimezone: s } = E || {}, { demo_info: P, intel_student: u } = I || {}, { scheduled_start_time: D } = P || {}, X = h.map((e) => ({ id: e, label: e })), $ = o ? L : s, l = W(
21
+ () => o && s ? ee(D, s) : void 0,
22
+ [o, D, s]
23
+ ), C = !!(!N(u == null ? void 0 : u.source) || r && r.length > 0 && r.every((e) => e.selectedDay && e.selectedTime)), x = (e, t, i) => {
24
+ f({
25
+ preferences: (r ?? y).map(
26
+ (n) => n.id === e ? { ...n, [t]: i } : n
26
27
  )
27
28
  });
28
- }, I = (e, t) => {
29
- D(e, "selectedDay", t);
30
- }, L = (e, t) => {
31
- D(e, "selectedTime", t);
32
- }, X = F(
29
+ }, k = (e, t) => {
30
+ x(e, "selectedDay", t);
31
+ }, w = (e, t) => {
32
+ x(e, "selectedTime", t);
33
+ }, O = z(
33
34
  (e, t) => {
34
- if (e && t && n) {
35
- const { hours: s, minutes: r } = W(t), c = (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0), p = z(x, n), a = o ? c + p : c, { day: k = "" } = $(a, n), O = f.indexOf(k), w = (f.indexOf(e) - O + 7) % 7, v = a + B({ days: w, hours: s, minutes: r });
36
- return $(v, g);
35
+ if (e && t && s) {
36
+ const { hours: i, minutes: n } = M(t), d = (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0), p = Y(L, s), a = o ? d + p : d, { day: v = "" } = b(a, s), B = h.indexOf(v), F = (h.indexOf(e) - B + 7) % 7, H = a + K({ days: F, hours: i, minutes: n });
37
+ return b(H, $);
37
38
  }
38
39
  return {};
39
40
  },
40
- [o, n, g]
41
+ [o, s, $]
41
42
  );
42
- return P(() => {
43
- o && !m && T({
44
- preferences: l ? h.map(
45
- (e) => e.id === 1 ? {
46
- ...e,
43
+ return _(() => {
44
+ if (o && (!r || !Array.isArray(r) || r.length === 0)) {
45
+ let e = y;
46
+ l && (e = y.map(
47
+ (t) => t.id === 1 ? {
48
+ ...t,
47
49
  selectedDay: l.day,
48
50
  selectedTime: l.time
49
- } : e
50
- ) : h
51
- });
52
- }, [l]), /* @__PURE__ */ d(R, { children: [
53
- /* @__PURE__ */ i(M, { height: 60 }),
54
- /* @__PURE__ */ i(G, {}),
55
- /* @__PURE__ */ d(
56
- U,
51
+ } : t
52
+ )), f({ preferences: e });
53
+ }
54
+ }, [o, r, l, f]), _(() => {
55
+ g("right", { isDisabled: !C, isLoading: !1 });
56
+ }, [C, g]), /* @__PURE__ */ m(J, { children: [
57
+ /* @__PURE__ */ c(R, { height: 60 }),
58
+ /* @__PURE__ */ c(U, {}),
59
+ /* @__PURE__ */ m(
60
+ Q,
57
61
  {
58
- $gapX: _ ? 2.2 : 3.75,
62
+ $gapX: S ? 2.2 : 3.75,
59
63
  $gutterX: 4.6875,
60
64
  $background: "YELLOW_4",
61
65
  $borderColor: "BLACK_1",
@@ -63,47 +67,47 @@ const h = [
63
67
  $justifyContent: "space-between",
64
68
  $alignItems: "center",
65
69
  children: [
66
- /* @__PURE__ */ i(Z, {}),
67
- m == null ? void 0 : m.map((e) => {
68
- const { id: t, selectedDay: s, selectedTime: r } = e, { day: c, time: p } = X(s, r);
69
- return /* @__PURE__ */ d(u, { $widthX: 15, $background: "YELLOW_1", $borderColor: "BLACK_1", children: [
70
- /* @__PURE__ */ d(u, { $gapX: 1.65, $gutterX: 2, $flexGapX: 0.25, children: [
71
- /* @__PURE__ */ i(
72
- C,
70
+ /* @__PURE__ */ c(V, {}),
71
+ r == null ? void 0 : r.map((e) => {
72
+ const { id: t, selectedDay: i, selectedTime: n } = e, { day: d, time: p } = O(i, n);
73
+ return /* @__PURE__ */ m(T, { $widthX: 15, $background: "YELLOW_1", $borderColor: "BLACK_1", children: [
74
+ /* @__PURE__ */ m(T, { $gapX: 1.65, $gutterX: 2, $flexGapX: 0.25, children: [
75
+ /* @__PURE__ */ c(
76
+ A,
73
77
  {
74
78
  renderAs: "primary",
75
79
  label: `Day ${t}`,
76
- value: s,
77
- options: A,
80
+ value: i,
81
+ options: X,
78
82
  theme: "dark",
79
83
  shape: "borderLess",
80
84
  isTransparent: !0,
81
- onChange: (a) => I(t, a)
85
+ onChange: (a) => k(t, a)
82
86
  }
83
87
  ),
84
- /* @__PURE__ */ i(
85
- C,
88
+ /* @__PURE__ */ c(
89
+ A,
86
90
  {
87
91
  renderAs: "primary",
88
92
  label: "Time",
89
- value: r,
90
- options: N,
93
+ value: n,
94
+ options: Z,
91
95
  shape: "borderLess",
92
96
  isTransparent: !0,
93
97
  theme: "dark",
94
- onChange: (a) => L(t, a)
98
+ onChange: (a) => w(t, a)
95
99
  }
96
100
  )
97
101
  ] }),
98
- /* @__PURE__ */ i(
99
- u,
102
+ /* @__PURE__ */ c(
103
+ T,
100
104
  {
101
105
  $heightX: 3.125,
102
106
  $gutterX: 2,
103
107
  $justifyContent: "center",
104
108
  $background: "WHITE_T_60",
105
- children: o ? /* @__PURE__ */ d(Y, { $renderAs: "ac4-black", $align: "center", children: [
106
- c ? c.slice(0, 3) : "__",
109
+ children: o ? /* @__PURE__ */ m(q, { $renderAs: "ac4-black", $align: "center", children: [
110
+ d ? d.slice(0, 3) : "__",
107
111
  ", ",
108
112
  p || "__",
109
113
  " ",
@@ -119,6 +123,6 @@ const h = [
119
123
  ] });
120
124
  });
121
125
  export {
122
- pe as default
126
+ ge as default
123
127
  };
124
128
  //# sourceMappingURL=class-preference.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"class-preference.js","sources":["../../../../../src/features/trial-session/comps/class-preference/class-preference.tsx"],"sourcesContent":["import type { IClassPreference, TPreference } from './class-preference-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useMemo } from 'react';\n\nimport { DAYS } from '../../../../constants/date-time';\nimport {\n convertEpochToDateTime,\n convertToMilliseconds,\n getOffsetBetweenTimezone,\n getTimeUnits,\n} from '../../../../helpers/date-time';\nimport SelectInput from '../../../ui/inputs/select-input/select-input';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { TEACHER_TIMEZONE as teacherTimezone } from '../../trial-session-constants';\nimport SlideHeader from '../slide-header';\nimport { timeSlots } from './class-preference-constants';\nimport * as Styled from './class-preference-styled';\nimport { extractDayAndTimeFromEpoch } from './helpers';\n\nconst defaultPreferences = [\n { id: 1, selectedDay: '', selectedTime: '' },\n { id: 2, selectedDay: '', selectedTime: '' },\n];\n\nconst ClassPreference: FC<IClassPreference> = memo(({ miniScreenDevice }) => {\n const { isTeacher, formData, trialHomeData, updateSlideConfig } = useTrialSessionContext();\n const { preferences, studentTimezone = 'Asia/Calcutta' } = formData || {};\n const { demo_info: demoInfo } = trialHomeData || {};\n const { scheduled_start_time: scheduledStartTime } = demoInfo || {};\n\n const daySlots = DAYS.map(day => ({ id: day, label: day }));\n const timezone = isTeacher ? teacherTimezone : studentTimezone;\n\n const preSelectedDateTimeFromEpoch = useMemo(\n () => (isTeacher ? extractDayAndTimeFromEpoch(scheduledStartTime, studentTimezone) : undefined),\n [isTeacher, scheduledStartTime, studentTimezone],\n );\n\n const handlePreferenceChange = (\n id: number,\n field: 'selectedDay' | 'selectedTime',\n value: string,\n ) => {\n updateSlideConfig({\n preferences: (preferences ?? defaultPreferences).map((preference: TPreference) =>\n preference.id === id ? { ...preference, [field]: value } : preference,\n ),\n });\n };\n\n const handleDayChange = (id: number, value: string) => {\n handlePreferenceChange(id, 'selectedDay', value);\n };\n\n const handleTimeChange = (id: number, value: string) => {\n handlePreferenceChange(id, 'selectedTime', value);\n };\n\n const getDisplayDateTimeValue = useCallback(\n (dayValue: string, timeValue: string) => {\n if (dayValue && timeValue && studentTimezone) {\n // Extracting hours, minutes, and period from the selected time.\n const { hours, minutes } = getTimeUnits(timeValue);\n const todayTimestamp = new Date().setHours(0, 0, 0, 0); // Setting current date to midnight\n\n // Calculating offset between the teacher's and student's timezone.\n const timestampOffset = getOffsetBetweenTimezone(teacherTimezone, studentTimezone);\n const studentTimestamp = isTeacher ? todayTimestamp + timestampOffset : todayTimestamp; // Current timestamp at student's timezone\n const { day: today = '' } = convertEpochToDateTime(studentTimestamp, studentTimezone); // Current day at student's timezone.\n\n // Calculating current and selected day index to get day difference.\n const currentDayIndex = DAYS.indexOf(today);\n const selectedDayIndex = DAYS.indexOf(dayValue);\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 studentTimestamp + convertToMilliseconds({ days: dayDifference, hours, minutes });\n\n // Returning date, time value with respect to both teacher and student timezone.\n return convertEpochToDateTime(epochTimestamp, timezone);\n }\n\n return {};\n },\n [isTeacher, studentTimezone, timezone],\n );\n\n useEffect(() => {\n if (isTeacher && !preferences) {\n updateSlideConfig({\n preferences: preSelectedDateTimeFromEpoch\n ? defaultPreferences.map((preference: TPreference) =>\n preference.id === 1\n ? {\n ...preference,\n selectedDay: preSelectedDateTimeFromEpoch.day,\n selectedTime: preSelectedDateTimeFromEpoch.time,\n }\n : preference,\n )\n : defaultPreferences,\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [preSelectedDateTimeFromEpoch]);\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader />\n <Styled.PreferenceWrapper\n $gapX={miniScreenDevice ? 2.2 : 3.75}\n $gutterX={4.6875}\n $background=\"YELLOW_4\"\n $borderColor=\"BLACK_1\"\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n >\n <Styled.FixedLineSeparator />\n {preferences?.map(preference => {\n const { id, selectedDay, selectedTime } = preference;\n const { day, time } = getDisplayDateTimeValue(selectedDay, selectedTime);\n\n return (\n <FlexView key={`slot-${id}`} $widthX={15} $background=\"YELLOW_1\" $borderColor=\"BLACK_1\">\n <FlexView $gapX={1.65} $gutterX={2} $flexGapX={0.25}>\n <SelectInput\n renderAs=\"primary\"\n label={`Day ${id}`}\n value={selectedDay}\n options={daySlots}\n theme=\"dark\"\n shape=\"borderLess\"\n isTransparent\n onChange={value => handleDayChange(id, value)}\n />\n <SelectInput\n renderAs=\"primary\"\n label=\"Time\"\n value={selectedTime}\n options={timeSlots}\n shape=\"borderLess\"\n isTransparent\n theme=\"dark\"\n onChange={value => handleTimeChange(id, value)}\n />\n </FlexView>\n <FlexView\n $heightX={3.125}\n $gutterX={2}\n $justifyContent=\"center\"\n $background=\"WHITE_T_60\"\n >\n {isTeacher ? (\n <Text $renderAs=\"ac4-black\" $align=\"center\">\n {day ? day.slice(0, 3) : '__'}, {time ? time : '__'} {isTeacher ? '(IST)' : ''}\n </Text>\n ) : null}\n </FlexView>\n </FlexView>\n );\n })}\n </Styled.PreferenceWrapper>\n </Styled.Container>\n );\n});\n\nexport default ClassPreference;\n"],"names":["defaultPreferences","ClassPreference","memo","miniScreenDevice","isTeacher","formData","trialHomeData","updateSlideConfig","useTrialSessionContext","preferences","studentTimezone","demoInfo","scheduledStartTime","daySlots","DAYS","day","timezone","teacherTimezone","preSelectedDateTimeFromEpoch","useMemo","extractDayAndTimeFromEpoch","handlePreferenceChange","id","field","value","preference","handleDayChange","handleTimeChange","getDisplayDateTimeValue","useCallback","dayValue","timeValue","hours","minutes","getTimeUnits","todayTimestamp","timestampOffset","getOffsetBetweenTimezone","studentTimestamp","today","convertEpochToDateTime","currentDayIndex","dayDifference","epochTimestamp","convertToMilliseconds","useEffect","jsxs","Styled.Container","jsx","Separator","SlideHeader","Styled.PreferenceWrapper","Styled.FixedLineSeparator","selectedDay","selectedTime","time","FlexView","SelectInput","timeSlots","Text"],"mappings":"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"}
1
+ {"version":3,"file":"class-preference.js","sources":["../../../../../src/features/trial-session/comps/class-preference/class-preference.tsx"],"sourcesContent":["import type { IClassPreference, TPreference } from './class-preference-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useMemo } from 'react';\n\nimport { DAYS } from '../../../../constants/date-time';\nimport {\n convertEpochToDateTime,\n convertToMilliseconds,\n getOffsetBetweenTimezone,\n getTimeUnits,\n} from '../../../../helpers/date-time';\nimport SelectInput from '../../../ui/inputs/select-input/select-input';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { isPLASource } from '../../helper';\nimport { TEACHER_TIMEZONE as teacherTimezone } from '../../trial-session-constants';\nimport SlideHeader from '../slide-header';\nimport { timeSlots } from './class-preference-constants';\nimport * as Styled from './class-preference-styled';\nimport { extractDayAndTimeFromEpoch } from './helpers';\n\nconst defaultPreferences = [\n { id: 1, selectedDay: '', selectedTime: '' },\n { id: 2, selectedDay: '', selectedTime: '' },\n];\n\nconst ClassPreference: FC<IClassPreference> = memo(({ miniScreenDevice }) => {\n const { isTeacher, formData, trialHomeData, updateSlideConfig, updateButtonState } =\n useTrialSessionContext();\n const { preferences, studentTimezone } = formData || {};\n const { demo_info: demoInfo, intel_student: intelStudent } = trialHomeData || {};\n const { scheduled_start_time: scheduledStartTime } = demoInfo || {};\n\n const daySlots = DAYS.map(day => ({ id: day, label: day }));\n const timezone = isTeacher ? teacherTimezone : studentTimezone;\n\n const preSelectedDateTimeFromEpoch = useMemo(\n () =>\n isTeacher && studentTimezone\n ? extractDayAndTimeFromEpoch(scheduledStartTime, studentTimezone)\n : undefined,\n [isTeacher, scheduledStartTime, studentTimezone],\n );\n\n const isPLA = isPLASource(intelStudent?.source);\n const hasRequiredFields = Boolean(\n isPLA\n ? preferences &&\n preferences.length > 0 &&\n preferences.every(preference => preference.selectedDay && preference.selectedTime)\n : true,\n );\n\n const handlePreferenceChange = (\n id: number,\n field: 'selectedDay' | 'selectedTime',\n value: string,\n ) => {\n updateSlideConfig({\n preferences: (preferences ?? defaultPreferences).map((preference: TPreference) =>\n preference.id === id ? { ...preference, [field]: value } : preference,\n ),\n });\n };\n\n const handleDayChange = (id: number, value: string) => {\n handlePreferenceChange(id, 'selectedDay', value);\n };\n\n const handleTimeChange = (id: number, value: string) => {\n handlePreferenceChange(id, 'selectedTime', value);\n };\n\n const getDisplayDateTimeValue = useCallback(\n (dayValue: string, timeValue: string) => {\n if (dayValue && timeValue && studentTimezone) {\n // Extracting hours, minutes, and period from the selected time.\n const { hours, minutes } = getTimeUnits(timeValue);\n const todayTimestamp = new Date().setHours(0, 0, 0, 0); // Setting current date to midnight\n\n // Calculating offset between the teacher's and student's timezone.\n const timestampOffset = getOffsetBetweenTimezone(teacherTimezone, studentTimezone);\n const studentTimestamp = isTeacher ? todayTimestamp + timestampOffset : todayTimestamp; // Current timestamp at student's timezone\n const { day: today = '' } = convertEpochToDateTime(studentTimestamp, studentTimezone); // Current day at student's timezone.\n\n // Calculating current and selected day index to get day difference.\n const currentDayIndex = DAYS.indexOf(today);\n const selectedDayIndex = DAYS.indexOf(dayValue);\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 studentTimestamp + convertToMilliseconds({ days: dayDifference, hours, minutes });\n\n // Returning date, time value with respect to both teacher and student timezone.\n return convertEpochToDateTime(epochTimestamp, timezone);\n }\n\n return {};\n },\n [isTeacher, studentTimezone, timezone],\n );\n\n useEffect(() => {\n // Only set preferences if teacher and preferences are not set\n if (isTeacher && (!preferences || !Array.isArray(preferences) || preferences.length === 0)) {\n let newPreferences = defaultPreferences;\n\n if (preSelectedDateTimeFromEpoch) {\n newPreferences = defaultPreferences.map((preference: TPreference) =>\n preference.id === 1\n ? {\n ...preference,\n selectedDay: preSelectedDateTimeFromEpoch.day,\n selectedTime: preSelectedDateTimeFromEpoch.time,\n }\n : preference,\n );\n }\n updateSlideConfig({ preferences: newPreferences });\n }\n }, [isTeacher, preferences, preSelectedDateTimeFromEpoch, updateSlideConfig]);\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.PreferenceWrapper\n $gapX={miniScreenDevice ? 2.2 : 3.75}\n $gutterX={4.6875}\n $background=\"YELLOW_4\"\n $borderColor=\"BLACK_1\"\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n >\n <Styled.FixedLineSeparator />\n {preferences?.map(preference => {\n const { id, selectedDay, selectedTime } = preference;\n const { day, time } = getDisplayDateTimeValue(selectedDay, selectedTime);\n\n return (\n <FlexView key={`slot-${id}`} $widthX={15} $background=\"YELLOW_1\" $borderColor=\"BLACK_1\">\n <FlexView $gapX={1.65} $gutterX={2} $flexGapX={0.25}>\n <SelectInput\n renderAs=\"primary\"\n label={`Day ${id}`}\n value={selectedDay}\n options={daySlots}\n theme=\"dark\"\n shape=\"borderLess\"\n isTransparent\n onChange={value => handleDayChange(id, value)}\n />\n <SelectInput\n renderAs=\"primary\"\n label=\"Time\"\n value={selectedTime}\n options={timeSlots}\n shape=\"borderLess\"\n isTransparent\n theme=\"dark\"\n onChange={value => handleTimeChange(id, value)}\n />\n </FlexView>\n <FlexView\n $heightX={3.125}\n $gutterX={2}\n $justifyContent=\"center\"\n $background=\"WHITE_T_60\"\n >\n {isTeacher ? (\n <Text $renderAs=\"ac4-black\" $align=\"center\">\n {day ? day.slice(0, 3) : '__'}, {time ? time : '__'} {isTeacher ? '(IST)' : ''}\n </Text>\n ) : null}\n </FlexView>\n </FlexView>\n );\n })}\n </Styled.PreferenceWrapper>\n </Styled.Container>\n );\n});\n\nexport default ClassPreference;\n"],"names":["defaultPreferences","ClassPreference","memo","miniScreenDevice","isTeacher","formData","trialHomeData","updateSlideConfig","updateButtonState","useTrialSessionContext","preferences","studentTimezone","demoInfo","intelStudent","scheduledStartTime","daySlots","DAYS","day","timezone","teacherTimezone","preSelectedDateTimeFromEpoch","useMemo","extractDayAndTimeFromEpoch","hasRequiredFields","isPLASource","preference","handlePreferenceChange","id","field","value","handleDayChange","handleTimeChange","getDisplayDateTimeValue","useCallback","dayValue","timeValue","hours","minutes","getTimeUnits","todayTimestamp","timestampOffset","getOffsetBetweenTimezone","studentTimestamp","today","convertEpochToDateTime","currentDayIndex","dayDifference","epochTimestamp","convertToMilliseconds","useEffect","newPreferences","jsxs","Styled.Container","jsx","Separator","SlideHeader","Styled.PreferenceWrapper","Styled.FixedLineSeparator","selectedDay","selectedTime","time","FlexView","SelectInput","timeSlots","Text"],"mappings":"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"}
@@ -1,63 +1,65 @@
1
- import { jsx as o, Fragment as _ } from "react/jsx-runtime";
2
- import k from "../../../../node_modules/lodash.throttle/index.js";
3
- import { useRef as h, useCallback as l, useMemo as D, useEffect as m } from "react";
4
- import N from "../../../chapters-v2/chapter-details/chapter-details.js";
5
- import O from "../../../milestone/milestone-list-container/milestone-list-container.js";
6
- import { useTrialSessionContext as x } from "../../context/use-trial-session-context.js";
7
- import { Container as $, Wrapper as H, ChapterWrapper as M } from "./learning-plan-styled.js";
8
- import { useLearningPlanScrollSync as F } from "./use-learning-plan-scroll-sync.js";
9
- const z = () => {
10
- const { trialHomeData: P, studentId: s, formData: L, isTeacher: r, updateSlideConfig: c } = x(), {
11
- demo_info: { student_classroom_id: S, stream: g }
12
- } = P || {}, { name: I = "", chapterId: i } = L || {}, t = h(null), a = h([]), d = h(!1), {
13
- publishScrollEvents: p,
14
- closeChannel: C,
1
+ import { jsx as o, Fragment as D } from "react/jsx-runtime";
2
+ import N from "../../../../node_modules/lodash.throttle/index.js";
3
+ import { useRef as S, useCallback as s, useMemo as O, useEffect as m } from "react";
4
+ import x from "../../../chapters-v2/chapter-details/chapter-details.js";
5
+ import $ from "../../../milestone/milestone-list-container/milestone-list-container.js";
6
+ import { useTrialSessionContext as H } from "../../context/use-trial-session-context.js";
7
+ import { isPLASource as M } from "../../helper.js";
8
+ import { Container as F, Wrapper as U, ChapterWrapper as W } from "./learning-plan-styled.js";
9
+ import { useLearningPlanScrollSync as j } from "./use-learning-plan-scroll-sync.js";
10
+ const Q = () => {
11
+ const { trialHomeData: v, studentId: l, formData: A, isTeacher: r, updateSlideConfig: c } = H(), {
12
+ demo_info: { student_classroom_id: C, stream: I },
13
+ intel_student: d
14
+ } = v || {}, { name: g = "", chapterId: i } = A || {}, t = S(null), a = S([]), p = S(!1), R = M(d == null ? void 0 : d.source), {
15
+ publishScrollEvents: f,
16
+ closeChannel: T,
15
17
  scrollPoints: n
16
- } = F(S), T = l(() => {
17
- if (i && s) {
18
+ } = j(C), E = s(() => {
19
+ if (i && l) {
18
20
  const e = t.current;
19
21
  e == null || e.scrollTo({
20
22
  top: 0,
21
23
  behavior: "smooth"
22
24
  });
23
25
  }
24
- }, [s, i]), R = l(
26
+ }, [l, i]), _ = s(
25
27
  (e) => {
26
28
  c({
27
29
  chapterId: e.id
28
30
  });
29
31
  },
30
32
  [c]
31
- ), A = l(() => {
33
+ ), b = s(() => {
32
34
  c({
33
35
  chapterId: void 0
34
36
  });
35
- }, [c]), E = l(() => {
36
- a.current.length === 0 || d.current || (d.current = !0, p && p({
37
+ }, [c]), P = s(() => {
38
+ a.current.length === 0 || p.current || (p.current = !0, f && f({
37
39
  eventName: "TRIAL_SESSION_GOAL_PLAN_SCROLL",
38
40
  eventPayload: {
39
41
  scrollPoints: a.current
40
42
  }
41
- }), a.current = [], d.current = !1);
42
- }, [p]), v = D(() => k(E, 500), [E]), f = l(() => {
43
+ }), a.current = [], p.current = !1);
44
+ }, [f]), L = O(() => N(P, 500), [P]), h = s(() => {
43
45
  var u;
44
46
  const e = ((u = t.current) == null ? void 0 : u.scrollTop) || 0;
45
- a.current.push(e), v();
46
- }, [v]);
47
+ a.current.push(e), L();
48
+ }, [L]);
47
49
  return m(() => {
48
- T();
49
- }, [T]), m(() => {
50
+ E();
51
+ }, [E]), m(() => {
50
52
  if (t.current && r) {
51
53
  const e = t.current;
52
- return e.addEventListener("scroll", f), () => {
53
- e && e.removeEventListener("scroll", f);
54
+ return e.addEventListener("scroll", h), () => {
55
+ e && e.removeEventListener("scroll", h);
54
56
  };
55
57
  }
56
- }, [r, f]), m(() => {
58
+ }, [r, h]), m(() => {
57
59
  const e = t.current;
58
60
  if (n && Array.isArray(n) && !r && e) {
59
61
  const u = Math.floor(
60
- n.reduce((b, y) => b + y, 0) / n.length
62
+ n.reduce((y, k) => y + k, 0) / n.length
61
63
  );
62
64
  e.scrollTo({
63
65
  top: u,
@@ -65,32 +67,32 @@ const z = () => {
65
67
  });
66
68
  }
67
69
  }, [n, r]), m(() => () => {
68
- C();
69
- }, [C]), /* @__PURE__ */ o($, { ref: t, $isScrollable: r, children: /* @__PURE__ */ o(
70
- H,
70
+ T();
71
+ }, [T]), /* @__PURE__ */ o(F, { ref: t, $isScrollable: r, children: /* @__PURE__ */ o(
72
+ U,
71
73
  {
72
74
  $clickable: r,
73
75
  $gutterX: 2,
74
76
  $isScrollable: r,
75
77
  id: "milestone-list-element-container",
76
- children: i ? /* @__PURE__ */ o(_, { children: /* @__PURE__ */ o(M, { children: /* @__PURE__ */ o(
77
- N,
78
+ children: i ? /* @__PURE__ */ o(D, { children: /* @__PURE__ */ o(W, { children: /* @__PURE__ */ o(
79
+ x,
78
80
  {
79
81
  userChapterId: i,
80
- studentId: s,
82
+ studentId: l,
81
83
  userType: r ? "TEACHER" : "STUDENT",
82
- onExit: A
84
+ onExit: b
83
85
  }
84
86
  ) }) }) : /* @__PURE__ */ o(
85
- O,
87
+ $,
86
88
  {
87
89
  userType: r ? "TEACHER" : "STUDENT",
88
- studentName: I,
89
- studentId: s,
90
- studentClassroomId: S,
91
- milestoneType: "DRAFT",
92
- onChapterClick: R,
93
- courseStream: g,
90
+ studentName: g,
91
+ studentId: l,
92
+ studentClassroomId: C,
93
+ milestoneType: R ? "ACTIVE" : "DRAFT",
94
+ onChapterClick: _,
95
+ courseStream: I,
94
96
  isTrialSession: !0
95
97
  }
96
98
  )
@@ -98,6 +100,6 @@ const z = () => {
98
100
  ) });
99
101
  };
100
102
  export {
101
- z as default
103
+ Q as default
102
104
  };
103
105
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/learning-plan/index.tsx"],"sourcesContent":["import type { IChapterDataProps } from '../../../chapters/chapter/chapter-types';\n\nimport throttle from 'lodash.throttle';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport ChapterDetails from '../../../chapters-v2/chapter-details/chapter-details';\nimport MilestoneList from '../../../milestone/milestone-list-container/milestone-list-container';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport * as Styled from './learning-plan-styled';\nimport { useLearningPlanScrollSync } from './use-learning-plan-scroll-sync';\n\nconst LearningPlan: React.FC = () => {\n const { trialHomeData, studentId, formData, isTeacher, updateSlideConfig } =\n useTrialSessionContext();\n const {\n demo_info: { student_classroom_id: studentClassroomId, stream },\n } = trialHomeData || {};\n const { name = '', chapterId } = formData || {};\n\n const containerRef = useRef<HTMLDivElement>(null);\n const scrollPointsRef = useRef<number[]>([]);\n const isSendingScrollPointsRef = useRef(false);\n\n const {\n publishScrollEvents,\n closeChannel,\n scrollPoints: receivedScrollPoints,\n } = useLearningPlanScrollSync(studentClassroomId);\n\n const fetchChapter = useCallback(() => {\n if (chapterId && studentId) {\n const scrollElement = containerRef.current;\n\n scrollElement?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n }, [studentId, chapterId]);\n\n const handleOnChapterClick = useCallback(\n (chapter: IChapterDataProps) => {\n updateSlideConfig({\n chapterId: chapter.id,\n });\n },\n [updateSlideConfig],\n );\n\n const handleOnBackIconClick = useCallback(() => {\n updateSlideConfig({\n chapterId: undefined,\n });\n }, [updateSlideConfig]);\n\n const sendScrollPoints = useCallback(() => {\n if (scrollPointsRef.current.length === 0 || isSendingScrollPointsRef.current) return;\n\n isSendingScrollPointsRef.current = true;\n\n if (publishScrollEvents) {\n publishScrollEvents({\n eventName: 'TRIAL_SESSION_GOAL_PLAN_SCROLL',\n eventPayload: {\n scrollPoints: scrollPointsRef.current,\n },\n });\n }\n\n scrollPointsRef.current = [];\n isSendingScrollPointsRef.current = false;\n }, [publishScrollEvents]);\n\n const throttleSend = useMemo(() => throttle(sendScrollPoints, 500), [sendScrollPoints]);\n\n const handleScroll = useCallback(() => {\n const scrollPoint = containerRef.current?.scrollTop || 0;\n\n scrollPointsRef.current.push(scrollPoint);\n\n throttleSend();\n }, [throttleSend]);\n\n useEffect(() => {\n fetchChapter();\n }, [fetchChapter]);\n\n useEffect(() => {\n if (containerRef.current) {\n if (isTeacher) {\n const scrollElement = containerRef.current;\n\n scrollElement.addEventListener('scroll', handleScroll);\n\n return () => {\n if (scrollElement) {\n scrollElement.removeEventListener('scroll', handleScroll);\n }\n };\n }\n }\n }, [isTeacher, handleScroll]);\n\n useEffect(() => {\n const scrollElement = containerRef.current;\n\n if (\n receivedScrollPoints &&\n Array.isArray(receivedScrollPoints) &&\n !isTeacher &&\n scrollElement\n ) {\n const averageScroll = Math.floor(\n receivedScrollPoints.reduce((a, b) => a + b, 0) / receivedScrollPoints.length,\n );\n\n scrollElement.scrollTo({\n top: averageScroll,\n behavior: 'smooth',\n });\n }\n }, [receivedScrollPoints, isTeacher]);\n\n useEffect(() => {\n return () => {\n closeChannel();\n };\n }, [closeChannel]);\n\n return (\n <Styled.Container ref={containerRef} $isScrollable={isTeacher}>\n <Styled.Wrapper\n $clickable={isTeacher}\n $gutterX={2}\n $isScrollable={isTeacher}\n id=\"milestone-list-element-container\"\n >\n {chapterId ? (\n <>\n <Styled.ChapterWrapper>\n <ChapterDetails\n userChapterId={chapterId}\n studentId={studentId}\n userType={isTeacher ? 'TEACHER' : 'STUDENT'}\n onExit={handleOnBackIconClick}\n />\n </Styled.ChapterWrapper>\n </>\n ) : (\n <MilestoneList\n userType={isTeacher ? 'TEACHER' : 'STUDENT'}\n studentName={name}\n studentId={studentId}\n studentClassroomId={studentClassroomId}\n milestoneType=\"DRAFT\"\n onChapterClick={handleOnChapterClick}\n courseStream={stream}\n isTrialSession\n />\n )}\n </Styled.Wrapper>\n </Styled.Container>\n );\n};\n\nexport default LearningPlan;\n"],"names":["LearningPlan","trialHomeData","studentId","formData","isTeacher","updateSlideConfig","useTrialSessionContext","studentClassroomId","stream","name","chapterId","containerRef","useRef","scrollPointsRef","isSendingScrollPointsRef","publishScrollEvents","closeChannel","receivedScrollPoints","useLearningPlanScrollSync","fetchChapter","useCallback","scrollElement","handleOnChapterClick","chapter","handleOnBackIconClick","sendScrollPoints","throttleSend","useMemo","throttle","handleScroll","scrollPoint","_a","useEffect","averageScroll","a","b","Styled.Container","jsx","Styled.Wrapper","Fragment","Styled.ChapterWrapper","ChapterDetails","MilestoneList"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/learning-plan/index.tsx"],"sourcesContent":["import type { IChapterDataProps } from '../../../chapters/chapter/chapter-types';\n\nimport throttle from 'lodash.throttle';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport ChapterDetails from '../../../chapters-v2/chapter-details/chapter-details';\nimport MilestoneList from '../../../milestone/milestone-list-container/milestone-list-container';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { isPLASource } from '../../helper';\nimport * as Styled from './learning-plan-styled';\nimport { useLearningPlanScrollSync } from './use-learning-plan-scroll-sync';\n\nconst LearningPlan: React.FC = () => {\n const { trialHomeData, studentId, formData, isTeacher, updateSlideConfig } =\n useTrialSessionContext();\n const {\n demo_info: { student_classroom_id: studentClassroomId, stream },\n intel_student: intelStudent,\n } = trialHomeData || {};\n const { name = '', chapterId } = formData || {};\n\n const containerRef = useRef<HTMLDivElement>(null);\n const scrollPointsRef = useRef<number[]>([]);\n const isSendingScrollPointsRef = useRef(false);\n const isPLA = isPLASource(intelStudent?.source);\n\n const {\n publishScrollEvents,\n closeChannel,\n scrollPoints: receivedScrollPoints,\n } = useLearningPlanScrollSync(studentClassroomId);\n\n const fetchChapter = useCallback(() => {\n if (chapterId && studentId) {\n const scrollElement = containerRef.current;\n\n scrollElement?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n }, [studentId, chapterId]);\n\n const handleOnChapterClick = useCallback(\n (chapter: IChapterDataProps) => {\n updateSlideConfig({\n chapterId: chapter.id,\n });\n },\n [updateSlideConfig],\n );\n\n const handleOnBackIconClick = useCallback(() => {\n updateSlideConfig({\n chapterId: undefined,\n });\n }, [updateSlideConfig]);\n\n const sendScrollPoints = useCallback(() => {\n if (scrollPointsRef.current.length === 0 || isSendingScrollPointsRef.current) return;\n\n isSendingScrollPointsRef.current = true;\n\n if (publishScrollEvents) {\n publishScrollEvents({\n eventName: 'TRIAL_SESSION_GOAL_PLAN_SCROLL',\n eventPayload: {\n scrollPoints: scrollPointsRef.current,\n },\n });\n }\n\n scrollPointsRef.current = [];\n isSendingScrollPointsRef.current = false;\n }, [publishScrollEvents]);\n\n const throttleSend = useMemo(() => throttle(sendScrollPoints, 500), [sendScrollPoints]);\n\n const handleScroll = useCallback(() => {\n const scrollPoint = containerRef.current?.scrollTop || 0;\n\n scrollPointsRef.current.push(scrollPoint);\n\n throttleSend();\n }, [throttleSend]);\n\n useEffect(() => {\n fetchChapter();\n }, [fetchChapter]);\n\n useEffect(() => {\n if (containerRef.current) {\n if (isTeacher) {\n const scrollElement = containerRef.current;\n\n scrollElement.addEventListener('scroll', handleScroll);\n\n return () => {\n if (scrollElement) {\n scrollElement.removeEventListener('scroll', handleScroll);\n }\n };\n }\n }\n }, [isTeacher, handleScroll]);\n\n useEffect(() => {\n const scrollElement = containerRef.current;\n\n if (\n receivedScrollPoints &&\n Array.isArray(receivedScrollPoints) &&\n !isTeacher &&\n scrollElement\n ) {\n const averageScroll = Math.floor(\n receivedScrollPoints.reduce((a, b) => a + b, 0) / receivedScrollPoints.length,\n );\n\n scrollElement.scrollTo({\n top: averageScroll,\n behavior: 'smooth',\n });\n }\n }, [receivedScrollPoints, isTeacher]);\n\n useEffect(() => {\n return () => {\n closeChannel();\n };\n }, [closeChannel]);\n\n return (\n <Styled.Container ref={containerRef} $isScrollable={isTeacher}>\n <Styled.Wrapper\n $clickable={isTeacher}\n $gutterX={2}\n $isScrollable={isTeacher}\n id=\"milestone-list-element-container\"\n >\n {chapterId ? (\n <>\n <Styled.ChapterWrapper>\n <ChapterDetails\n userChapterId={chapterId}\n studentId={studentId}\n userType={isTeacher ? 'TEACHER' : 'STUDENT'}\n onExit={handleOnBackIconClick}\n />\n </Styled.ChapterWrapper>\n </>\n ) : (\n <MilestoneList\n userType={isTeacher ? 'TEACHER' : 'STUDENT'}\n studentName={name}\n studentId={studentId}\n studentClassroomId={studentClassroomId}\n milestoneType={isPLA ? 'ACTIVE' : 'DRAFT'}\n onChapterClick={handleOnChapterClick}\n courseStream={stream}\n isTrialSession\n />\n )}\n </Styled.Wrapper>\n </Styled.Container>\n );\n};\n\nexport default LearningPlan;\n"],"names":["LearningPlan","trialHomeData","studentId","formData","isTeacher","updateSlideConfig","useTrialSessionContext","studentClassroomId","stream","intelStudent","name","chapterId","containerRef","useRef","scrollPointsRef","isSendingScrollPointsRef","isPLA","isPLASource","publishScrollEvents","closeChannel","receivedScrollPoints","useLearningPlanScrollSync","fetchChapter","useCallback","scrollElement","handleOnChapterClick","chapter","handleOnBackIconClick","sendScrollPoints","throttleSend","useMemo","throttle","handleScroll","scrollPoint","_a","useEffect","averageScroll","a","b","Styled.Container","jsx","Styled.Wrapper","Fragment","Styled.ChapterWrapper","ChapterDetails","MilestoneList"],"mappings":"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"}
@@ -1,86 +1,87 @@
1
- import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
- import { useCallback as l } from "react";
3
- import D from "../../../ui/arrow-tooltip/arrow-tooltip.js";
4
- import P from "../../../ui/buttons/button/button.js";
5
- import d from "../../../ui/buttons/icon-button/icon-button.js";
6
- import c from "../../../ui/layout/flex-view.js";
7
- import m from "../../../ui/text/text.js";
8
- import { useTrialSessionContext as j } from "../../context/use-trial-session-context.js";
1
+ import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
+ import { useCallback as d } from "react";
3
+ import w from "../../../ui/arrow-tooltip/arrow-tooltip.js";
4
+ import D from "../../../ui/buttons/button/button.js";
5
+ import c from "../../../ui/buttons/icon-button/icon-button.js";
6
+ import m from "../../../ui/layout/flex-view.js";
7
+ import p from "../../../ui/text/text.js";
8
+ import { useTrialSessionContext as P } from "../../context/use-trial-session-context.js";
9
+ import { isPLASource as j } from "../../helper.js";
9
10
  import { useTrialSessionNavigation as T } from "../../hooks/use-trial-session-navigation.js";
10
- import { Container as k, ForwardArrow as S } from "./navigation-bar-styled.js";
11
- import _ from "../../../../assets/line-icons/icons/back2.js";
12
- const W = () => {
13
- const { slideConfig: p, buttonState: f, openEndClassModal: u, studentAbsentInClass: a, trialHomeData: b } = j(), {
14
- left: { isDisabled: g, isLoading: h },
15
- right: { isDisabled: x, isLoading: L }
16
- } = f || {}, { prevPage: $, nextPage: C } = p || {}, { buttonLabel: i, pageId: t } = $ || {}, { buttonLabel: r, pageId: n } = C || {}, { handleNavigation: o } = T(), I = t && !n, { intel_student: A } = b, { source: B } = A || {}, y = B === "PLA", v = l(() => {
11
+ import { Container as k, ForwardArrow as _ } from "./navigation-bar-styled.js";
12
+ import z from "../../../../assets/line-icons/icons/back2.js";
13
+ const X = () => {
14
+ const { slideConfig: f, buttonState: b, openEndClassModal: g, studentAbsentInClass: l, trialHomeData: u } = P(), {
15
+ left: { isDisabled: h, isLoading: x },
16
+ right: { isDisabled: L, isLoading: $ }
17
+ } = b || {}, { prevPage: C, nextPage: I } = f || {}, { buttonLabel: i, pageId: t } = C || {}, { buttonLabel: r, pageId: n } = I || {}, { handleNavigation: o } = T(), A = t && !n, { intel_student: s } = u, B = j(s == null ? void 0 : s.source), y = d(() => {
17
18
  o("next", n);
18
- }, [o, n]), w = l(() => {
19
+ }, [o, n]), v = d(() => {
19
20
  o("prev", t);
20
21
  }, [o, t]);
21
- return /* @__PURE__ */ s(
22
+ return /* @__PURE__ */ a(
22
23
  k,
23
24
  {
24
25
  $flexDirection: "row-reverse",
25
26
  $justifyContent: "space-between",
26
27
  $alignItems: "center",
27
28
  children: [
28
- I && /* @__PURE__ */ e(
29
- P,
29
+ A && /* @__PURE__ */ e(
30
+ D,
30
31
  {
31
32
  renderAs: "tertiary",
32
33
  size: "small",
33
- label: y ? "End the session" : "End the class",
34
+ label: B ? "End the session" : "End the class",
34
35
  shape: "square",
35
- onClick: u
36
+ onClick: g
36
37
  }
37
38
  ),
38
- n && r && /* @__PURE__ */ s(c, { $flexDirection: "row", $alignItems: "center", $justifyContent: "center", $flexGap: 12, children: [
39
- /* @__PURE__ */ e(m, { $renderAs: "ab2", $color: "BLACK_T_60", children: r }),
39
+ n && r && /* @__PURE__ */ a(m, { $flexDirection: "row", $alignItems: "center", $justifyContent: "center", $flexGap: 12, children: [
40
+ /* @__PURE__ */ e(p, { $renderAs: "ab2", $color: "BLACK_T_60", children: r }),
40
41
  /* @__PURE__ */ e(
41
- D,
42
+ w,
42
43
  {
43
44
  widthX: 8,
44
45
  zIndex: 2,
45
46
  position: "top-left",
46
47
  renderAs: "primary",
47
48
  tooltipItem: "Waiting for student to join...",
48
- hidden: !a,
49
+ hidden: !l,
49
50
  children: /* @__PURE__ */ e(
50
- d,
51
+ c,
51
52
  {
52
- Icon: S,
53
+ Icon: _,
53
54
  renderAs: "primary",
54
55
  analyticsLabel: r,
55
56
  size: "small",
56
- onClick: v,
57
- disabled: x || a,
58
- busy: L
57
+ onClick: y,
58
+ disabled: L || l,
59
+ busy: $
59
60
  }
60
61
  )
61
62
  }
62
63
  )
63
64
  ] }),
64
- t && i && /* @__PURE__ */ s(c, { $flexDirection: "row", $alignItems: "center", $justifyContent: "center", $flexGap: 12, children: [
65
+ t && i && /* @__PURE__ */ a(m, { $flexDirection: "row", $alignItems: "center", $justifyContent: "center", $flexGap: 12, children: [
65
66
  /* @__PURE__ */ e(
66
- d,
67
+ c,
67
68
  {
68
- Icon: _,
69
+ Icon: z,
69
70
  renderAs: "secondary",
70
71
  analyticsLabel: i,
71
72
  size: "small",
72
- onClick: w,
73
- disabled: g,
74
- busy: h
73
+ onClick: v,
74
+ disabled: h,
75
+ busy: x
75
76
  }
76
77
  ),
77
- /* @__PURE__ */ e(m, { $renderAs: "ab2", $color: "BLACK_T_60", children: i })
78
+ /* @__PURE__ */ e(p, { $renderAs: "ab2", $color: "BLACK_T_60", children: i })
78
79
  ] })
79
80
  ]
80
81
  }
81
82
  );
82
83
  };
83
84
  export {
84
- W as default
85
+ X as default
85
86
  };
86
87
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/navigation-bar/index.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\n\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../ui/buttons/button/button';\nimport IconButton from '../../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { useTrialSessionNavigation } from '../../hooks/use-trial-session-navigation';\nimport * as Styled from './navigation-bar-styled';\n\nconst NavigationBar: React.FC = () => {\n const { slideConfig, buttonState, openEndClassModal, studentAbsentInClass, trialHomeData } =\n useTrialSessionContext();\n const {\n left: { isDisabled: isLeftBtnDisabled, isLoading: isLeftBtnLoading },\n right: { isDisabled: isRightBtnDisabled, isLoading: isRightBtnLoading },\n } = buttonState || {};\n const { prevPage, nextPage } = slideConfig || {};\n const { buttonLabel: prevButtonLabel, pageId: prevPageId } = prevPage || {};\n const { buttonLabel: nextButtonLabel, pageId: nextPageId } = nextPage || {};\n const { handleNavigation } = useTrialSessionNavigation();\n const isLastPage = prevPageId && !nextPageId;\n\n const { intel_student: intelStudent } = trialHomeData;\n const { source } = intelStudent || {};\n const isPLASource = source === 'PLA';\n\n const handleNext = useCallback(() => {\n handleNavigation('next', nextPageId);\n }, [handleNavigation, nextPageId]);\n\n const handlePrev = useCallback(() => {\n handleNavigation('prev', prevPageId);\n }, [handleNavigation, prevPageId]);\n\n return (\n <Styled.Container\n $flexDirection=\"row-reverse\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n >\n {isLastPage && (\n <Button\n renderAs=\"tertiary\"\n size=\"small\"\n label={isPLASource ? 'End the session' : 'End the class'}\n shape=\"square\"\n onClick={openEndClassModal}\n />\n )}\n {nextPageId && nextButtonLabel && (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGap={12}>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n {nextButtonLabel}\n </Text>\n <ArrowTooltip\n widthX={8}\n zIndex={2}\n position=\"top-left\"\n renderAs=\"primary\"\n tooltipItem=\"Waiting for student to join...\"\n hidden={!studentAbsentInClass}\n children={\n <IconButton\n Icon={Styled.ForwardArrow}\n renderAs=\"primary\"\n analyticsLabel={nextButtonLabel}\n size=\"small\"\n onClick={handleNext}\n disabled={isRightBtnDisabled || studentAbsentInClass}\n busy={isRightBtnLoading}\n />\n }\n />\n </FlexView>\n )}\n {prevPageId && prevButtonLabel && (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGap={12}>\n <IconButton\n Icon={Styled.BackwardArrow}\n renderAs=\"secondary\"\n analyticsLabel={prevButtonLabel}\n size=\"small\"\n onClick={handlePrev}\n disabled={isLeftBtnDisabled}\n busy={isLeftBtnLoading}\n />\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n {prevButtonLabel}\n </Text>\n </FlexView>\n )}\n </Styled.Container>\n );\n};\n\nexport default NavigationBar;\n"],"names":["NavigationBar","slideConfig","buttonState","openEndClassModal","studentAbsentInClass","trialHomeData","useTrialSessionContext","isLeftBtnDisabled","isLeftBtnLoading","isRightBtnDisabled","isRightBtnLoading","prevPage","nextPage","prevButtonLabel","prevPageId","nextButtonLabel","nextPageId","handleNavigation","useTrialSessionNavigation","isLastPage","intelStudent","source","isPLASource","handleNext","useCallback","handlePrev","jsxs","Styled.Container","jsx","Button","FlexView","Text","ArrowTooltip","IconButton","Styled.ForwardArrow","Styled.BackwardArrow"],"mappings":";;;;;;;;;;;AAWA,MAAMA,IAA0B,MAAM;AACpC,QAAM,EAAE,aAAAC,GAAa,aAAAC,GAAa,mBAAAC,GAAmB,sBAAAC,GAAsB,eAAAC,EAAA,IACzEC,KACI;AAAA,IACJ,MAAM,EAAE,YAAYC,GAAmB,WAAWC,EAAiB;AAAA,IACnE,OAAO,EAAE,YAAYC,GAAoB,WAAWC,EAAkB;AAAA,EAAA,IACpER,KAAe,CAAA,GACb,EAAE,UAAAS,GAAU,UAAAC,MAAaX,KAAe,CAAA,GACxC,EAAE,aAAaY,GAAiB,QAAQC,EAAW,IAAIH,KAAY,IACnE,EAAE,aAAaI,GAAiB,QAAQC,EAAW,IAAIJ,KAAY,IACnE,EAAE,kBAAAK,MAAqBC,KACvBC,IAAaL,KAAc,CAACE,GAE5B,EAAE,eAAeI,EAAiB,IAAAf,GAClC,EAAE,QAAAgB,EAAA,IAAWD,KAAgB,IAC7BE,IAAcD,MAAW,OAEzBE,IAAaC,EAAY,MAAM;AACnC,IAAAP,EAAiB,QAAQD,CAAU;AAAA,EAAA,GAClC,CAACC,GAAkBD,CAAU,CAAC,GAE3BS,IAAaD,EAAY,MAAM;AACnC,IAAAP,EAAiB,QAAQH,CAAU;AAAA,EAAA,GAClC,CAACG,GAAkBH,CAAU,CAAC;AAG/B,SAAA,gBAAAY;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,iBAAgB;AAAA,MAChB,aAAY;AAAA,MAEX,UAAA;AAAA,QACCR,KAAA,gBAAAS;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,MAAK;AAAA,YACL,OAAOP,IAAc,oBAAoB;AAAA,YACzC,OAAM;AAAA,YACN,SAASnB;AAAA,UAAA;AAAA,QACX;AAAA,QAEDa,KAAcD,KACb,gBAAAW,EAACI,GAAS,EAAA,gBAAe,OAAM,aAAY,UAAS,iBAAgB,UAAS,UAAU,IACrF,UAAA;AAAA,UAAA,gBAAAF,EAACG,GAAK,EAAA,WAAU,OAAM,QAAO,cAC1B,UACHhB,GAAA;AAAA,UACA,gBAAAa;AAAA,YAACI;AAAA,YAAA;AAAA,cACC,QAAQ;AAAA,cACR,QAAQ;AAAA,cACR,UAAS;AAAA,cACT,UAAS;AAAA,cACT,aAAY;AAAA,cACZ,QAAQ,CAAC5B;AAAA,cACT,UACE,gBAAAwB;AAAA,gBAACK;AAAA,gBAAA;AAAA,kBACC,MAAMC;AAAAA,kBACN,UAAS;AAAA,kBACT,gBAAgBnB;AAAA,kBAChB,MAAK;AAAA,kBACL,SAASQ;AAAA,kBACT,UAAUd,KAAsBL;AAAA,kBAChC,MAAMM;AAAA,gBAAA;AAAA,cACR;AAAA,YAAA;AAAA,UAEJ;AAAA,QAAA,GACF;AAAA,QAEDI,KAAcD,KACb,gBAAAa,EAACI,GAAS,EAAA,gBAAe,OAAM,aAAY,UAAS,iBAAgB,UAAS,UAAU,IACrF,UAAA;AAAA,UAAA,gBAAAF;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,MAAME;AAAAA,cACN,UAAS;AAAA,cACT,gBAAgBtB;AAAA,cAChB,MAAK;AAAA,cACL,SAASY;AAAA,cACT,UAAUlB;AAAA,cACV,MAAMC;AAAA,YAAA;AAAA,UACR;AAAA,4BACCuB,GAAK,EAAA,WAAU,OAAM,QAAO,cAC1B,UACHlB,GAAA;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/navigation-bar/index.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\n\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../ui/buttons/button/button';\nimport IconButton from '../../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { isPLASource } from '../../helper';\nimport { useTrialSessionNavigation } from '../../hooks/use-trial-session-navigation';\nimport * as Styled from './navigation-bar-styled';\n\nconst NavigationBar: React.FC = () => {\n const { slideConfig, buttonState, openEndClassModal, studentAbsentInClass, trialHomeData } =\n useTrialSessionContext();\n const {\n left: { isDisabled: isLeftBtnDisabled, isLoading: isLeftBtnLoading },\n right: { isDisabled: isRightBtnDisabled, isLoading: isRightBtnLoading },\n } = buttonState || {};\n const { prevPage, nextPage } = slideConfig || {};\n const { buttonLabel: prevButtonLabel, pageId: prevPageId } = prevPage || {};\n const { buttonLabel: nextButtonLabel, pageId: nextPageId } = nextPage || {};\n const { handleNavigation } = useTrialSessionNavigation();\n const isLastPage = prevPageId && !nextPageId;\n\n const { intel_student: intelStudent } = trialHomeData;\n const isPLA = isPLASource(intelStudent?.source);\n\n const handleNext = useCallback(() => {\n handleNavigation('next', nextPageId);\n }, [handleNavigation, nextPageId]);\n\n const handlePrev = useCallback(() => {\n handleNavigation('prev', prevPageId);\n }, [handleNavigation, prevPageId]);\n\n return (\n <Styled.Container\n $flexDirection=\"row-reverse\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n >\n {isLastPage && (\n <Button\n renderAs=\"tertiary\"\n size=\"small\"\n label={isPLA ? 'End the session' : 'End the class'}\n shape=\"square\"\n onClick={openEndClassModal}\n />\n )}\n {nextPageId && nextButtonLabel && (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGap={12}>\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n {nextButtonLabel}\n </Text>\n <ArrowTooltip\n widthX={8}\n zIndex={2}\n position=\"top-left\"\n renderAs=\"primary\"\n tooltipItem=\"Waiting for student to join...\"\n hidden={!studentAbsentInClass}\n children={\n <IconButton\n Icon={Styled.ForwardArrow}\n renderAs=\"primary\"\n analyticsLabel={nextButtonLabel}\n size=\"small\"\n onClick={handleNext}\n disabled={isRightBtnDisabled || studentAbsentInClass}\n busy={isRightBtnLoading}\n />\n }\n />\n </FlexView>\n )}\n {prevPageId && prevButtonLabel && (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGap={12}>\n <IconButton\n Icon={Styled.BackwardArrow}\n renderAs=\"secondary\"\n analyticsLabel={prevButtonLabel}\n size=\"small\"\n onClick={handlePrev}\n disabled={isLeftBtnDisabled}\n busy={isLeftBtnLoading}\n />\n <Text $renderAs=\"ab2\" $color=\"BLACK_T_60\">\n {prevButtonLabel}\n </Text>\n </FlexView>\n )}\n </Styled.Container>\n );\n};\n\nexport default NavigationBar;\n"],"names":["NavigationBar","slideConfig","buttonState","openEndClassModal","studentAbsentInClass","trialHomeData","useTrialSessionContext","isLeftBtnDisabled","isLeftBtnLoading","isRightBtnDisabled","isRightBtnLoading","prevPage","nextPage","prevButtonLabel","prevPageId","nextButtonLabel","nextPageId","handleNavigation","useTrialSessionNavigation","isLastPage","intelStudent","isPLA","isPLASource","handleNext","useCallback","handlePrev","jsxs","Styled.Container","jsx","Button","FlexView","Text","ArrowTooltip","IconButton","Styled.ForwardArrow","Styled.BackwardArrow"],"mappings":";;;;;;;;;;;;AAYA,MAAMA,IAA0B,MAAM;AACpC,QAAM,EAAE,aAAAC,GAAa,aAAAC,GAAa,mBAAAC,GAAmB,sBAAAC,GAAsB,eAAAC,EAAA,IACzEC,KACI;AAAA,IACJ,MAAM,EAAE,YAAYC,GAAmB,WAAWC,EAAiB;AAAA,IACnE,OAAO,EAAE,YAAYC,GAAoB,WAAWC,EAAkB;AAAA,EAAA,IACpER,KAAe,CAAA,GACb,EAAE,UAAAS,GAAU,UAAAC,MAAaX,KAAe,CAAA,GACxC,EAAE,aAAaY,GAAiB,QAAQC,EAAW,IAAIH,KAAY,IACnE,EAAE,aAAaI,GAAiB,QAAQC,EAAW,IAAIJ,KAAY,IACnE,EAAE,kBAAAK,MAAqBC,KACvBC,IAAaL,KAAc,CAACE,GAE5B,EAAE,eAAeI,EAAiB,IAAAf,GAClCgB,IAAQC,EAAYF,KAAA,gBAAAA,EAAc,MAAM,GAExCG,IAAaC,EAAY,MAAM;AACnC,IAAAP,EAAiB,QAAQD,CAAU;AAAA,EAAA,GAClC,CAACC,GAAkBD,CAAU,CAAC,GAE3BS,IAAaD,EAAY,MAAM;AACnC,IAAAP,EAAiB,QAAQH,CAAU;AAAA,EAAA,GAClC,CAACG,GAAkBH,CAAU,CAAC;AAG/B,SAAA,gBAAAY;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,iBAAgB;AAAA,MAChB,aAAY;AAAA,MAEX,UAAA;AAAA,QACCR,KAAA,gBAAAS;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,MAAK;AAAA,YACL,OAAOR,IAAQ,oBAAoB;AAAA,YACnC,OAAM;AAAA,YACN,SAASlB;AAAA,UAAA;AAAA,QACX;AAAA,QAEDa,KAAcD,KACb,gBAAAW,EAACI,GAAS,EAAA,gBAAe,OAAM,aAAY,UAAS,iBAAgB,UAAS,UAAU,IACrF,UAAA;AAAA,UAAA,gBAAAF,EAACG,GAAK,EAAA,WAAU,OAAM,QAAO,cAC1B,UACHhB,GAAA;AAAA,UACA,gBAAAa;AAAA,YAACI;AAAA,YAAA;AAAA,cACC,QAAQ;AAAA,cACR,QAAQ;AAAA,cACR,UAAS;AAAA,cACT,UAAS;AAAA,cACT,aAAY;AAAA,cACZ,QAAQ,CAAC5B;AAAA,cACT,UACE,gBAAAwB;AAAA,gBAACK;AAAA,gBAAA;AAAA,kBACC,MAAMC;AAAAA,kBACN,UAAS;AAAA,kBACT,gBAAgBnB;AAAA,kBAChB,MAAK;AAAA,kBACL,SAASQ;AAAA,kBACT,UAAUd,KAAsBL;AAAA,kBAChC,MAAMM;AAAA,gBAAA;AAAA,cACR;AAAA,YAAA;AAAA,UAEJ;AAAA,QAAA,GACF;AAAA,QAEDI,KAAcD,KACb,gBAAAa,EAACI,GAAS,EAAA,gBAAe,OAAM,aAAY,UAAS,iBAAgB,UAAS,UAAU,IACrF,UAAA;AAAA,UAAA,gBAAAF;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,MAAME;AAAAA,cACN,UAAS;AAAA,cACT,gBAAgBtB;AAAA,cAChB,MAAK;AAAA,cACL,SAASY;AAAA,cACT,UAAUlB;AAAA,cACV,MAAMC;AAAA,YAAA;AAAA,UACR;AAAA,4BACCuB,GAAK,EAAA,WAAU,OAAM,QAAO,cAC1B,UACHlB,GAAA;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}