@cuemath/leap 3.5.1 → 3.5.2

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