@cuemath/leap 3.5.56-j1 → 3.5.56-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.
@@ -1,82 +1,83 @@
1
- import { jsx as a, jsxs as q } from "react/jsx-runtime";
2
- import { memo as z, useState as b, useCallback as l, useMemo as H, useEffect as P } from "react";
3
- import J from "../../../../../assets/line-icons/icons/draft.js";
4
- import K from "../../../../ui/buttons/button/button.js";
5
- import Q from "../../../../ui/buttons/icon-button/icon-button.js";
1
+ import { jsx as s, jsxs as z } from "react/jsx-runtime";
2
+ import { memo as H, useState as C, useCallback as l, useMemo as P, useEffect as J } from "react";
3
+ import K from "../../../../../assets/line-icons/icons/draft.js";
4
+ import Q from "../../../../ui/buttons/button/button.js";
5
+ import Z from "../../../../ui/buttons/icon-button/icon-button.js";
6
6
  import y from "../../../../ui/layout/flex-view.js";
7
- import Z from "../../../../ui/text/text.js";
8
- import { ONE_YEAR_TIMESTAMP_IN_MILLISECONDS as F } from "../../../constants.js";
9
- import ee from "../../../hooks/use-submit-goal-creation.js";
10
- import { useMilestoneContext as te } from "../../milestone-create-context.js";
11
- import oe from "../body-layout/body-layout.js";
12
- import { ButtonWrapper as v } from "./goal-completion-date-selector-styled.js";
7
+ import F from "../../../../ui/text/text.js";
8
+ import { ONE_YEAR_TIMESTAMP_IN_MILLISECONDS as ee } from "../../../constants.js";
9
+ import te from "../../../hooks/use-submit-goal-creation.js";
10
+ import { useMilestoneContext as oe } from "../../milestone-create-context.js";
11
+ import se from "../body-layout/body-layout.js";
12
+ import { ButtonWrapper as $ } from "./goal-completion-date-selector-styled.js";
13
13
  import ae from "./goal-completion-date-selector-view.js";
14
- import { lastDayOfMonth as S } from "../../../../../node_modules/date-fns/lastDayOfMonth.js";
14
+ import { lastDayOfMonth as v } from "../../../../../node_modules/date-fns/lastDayOfMonth.js";
15
15
  import { addDays as ne } from "../../../../../node_modules/date-fns/addDays.js";
16
- import { eachMonthOfInterval as se } from "../../../../../node_modules/date-fns/eachMonthOfInterval.js";
17
- import { addMonths as re } from "../../../../../node_modules/date-fns/addMonths.js";
16
+ import { eachMonthOfInterval as re } from "../../../../../node_modules/date-fns/eachMonthOfInterval.js";
17
+ import { addMonths as ie } from "../../../../../node_modules/date-fns/addMonths.js";
18
18
  import { formatDate as c } from "../../../../../node_modules/date-fns/format.js";
19
- const be = z(function({
19
+ const ve = H(function({
20
20
  formData: D,
21
- config: _,
22
- studentId: G,
21
+ config: S,
22
+ studentId: _,
23
23
  milestoneId: A = "",
24
- currentStep: O,
25
- onFormDataChange: s,
24
+ currentStep: G,
25
+ onFormDataChange: n,
26
26
  onPreSubmit: m,
27
- courseStream: B,
28
- useAbsoluteFooter: h,
29
- userType: L
27
+ courseStream: O,
28
+ useAbsoluteFooter: B,
29
+ userType: L,
30
+ disablePublish: N
30
31
  }) {
31
- const [f, d] = b(""), [E, N] = b(!1), { flow: n } = te(), {
32
+ const [f, d] = C(""), [h, j] = C(!1), { flow: a } = oe(), {
32
33
  share_message: {
33
34
  default: {
34
- create_message_template: M,
35
- update_message_template: g
35
+ create_message_template: E,
36
+ update_message_template: M
36
37
  }
37
38
  }
38
- } = _, p = l(
39
+ } = S, u = l(
39
40
  (e) => {
40
- if (n) {
41
- const o = n === "EDIT" ? g : M;
41
+ if (a) {
42
+ const o = a === "EDIT" ? M : E;
42
43
  m == null || m({
43
44
  isDraftPlan: !e,
44
- flow: n,
45
+ flow: a,
45
46
  submitBaseMessage: o
46
47
  });
47
48
  }
48
49
  },
49
- [n, M, g, m]
50
- ), { isProcessing: I, onSubmit: T } = ee({
50
+ [a, E, M, m]
51
+ ), { isProcessing: g, onSubmit: I } = te({
51
52
  formData: D,
52
- studentId: G,
53
- onSubmit: p,
53
+ studentId: _,
54
+ onSubmit: u,
54
55
  setError: d,
55
56
  milestoneId: A,
56
- flow: n ?? "CREATE",
57
- courseStream: B
58
- }), { testType: j, milestoneEndDate: t, committed: k } = D, { milestoneEndDate: w } = k, { title: R } = O, W = n === "EDIT" ? "Update goal" : "Create goal", x = /* @__PURE__ */ new Date(), r = c(x.setDate(x.getDate() + 1), "yyyy-MM-dd"), i = c(Date.now() + F, "yyyy-MM-dd"), U = H(() => {
59
- const e = /* @__PURE__ */ new Date(), o = S(e) ? ne(e, 1) : e;
60
- return se({
57
+ flow: a ?? "CREATE",
58
+ courseStream: O
59
+ }), { testType: k, milestoneEndDate: t, committed: R } = D, { milestoneEndDate: T } = R, { title: W } = G, U = a === "EDIT" ? "Update goal" : "Create goal", w = /* @__PURE__ */ new Date(), r = c(w.setDate(w.getDate() + 1), "yyyy-MM-dd"), i = c(Date.now() + ee, "yyyy-MM-dd"), V = P(() => {
60
+ const e = /* @__PURE__ */ new Date(), o = v(e) ? ne(e, 1) : e;
61
+ return re({
61
62
  start: o,
62
- end: re(o, 11)
63
- }).map((C) => {
64
- const $ = S(C);
63
+ end: ie(o, 11)
64
+ }).map((b) => {
65
+ const x = v(b);
65
66
  return {
66
- id: c($, "yyyy-MM-dd"),
67
- label: c(C, "MMMM yyyy"),
68
- value: $
67
+ id: c(x, "yyyy-MM-dd"),
68
+ label: c(b, "MMMM yyyy"),
69
+ value: x
69
70
  };
70
71
  });
71
- }, []), V = l(
72
+ }, []), X = l(
72
73
  (e) => {
73
- s({
74
+ n({
74
75
  milestoneEndDate: e,
75
76
  milestoneEndDateIsTentative: !0
76
77
  });
77
78
  },
78
- [s]
79
- ), X = l(
79
+ [n]
80
+ ), Y = l(
80
81
  (e) => {
81
82
  const o = e.target.value;
82
83
  if (o) {
@@ -84,76 +85,76 @@ const be = z(function({
84
85
  d("");
85
86
  return;
86
87
  }
87
- s({
88
+ n({
88
89
  milestoneEndDate: o,
89
90
  milestoneEndDateIsTentative: !0
90
91
  });
91
92
  }
92
93
  },
93
- [r, f, s, i]
94
- ), u = l(
94
+ [r, f, n, i]
95
+ ), p = l(
95
96
  (e) => {
96
- t && (t < r || t > i) ? t < r ? d("Please enter a future date") : d("Please select a date within the next year") : e ? T(!0) : (s({
97
+ t && (t < r || t > i) ? t < r ? d("Please enter a future date") : d("Please select a date within the next year") : e ? I(!0) : (n({
97
98
  milestoneEndDate: t,
98
99
  committed: {
99
100
  milestoneEndDate: !0,
100
101
  milestoneEndDateIsTentative: !0
101
102
  }
102
- }), N(!0));
103
+ }), j(!0));
103
104
  },
104
- [t, r, i, s, T]
105
- ), Y = l(() => {
106
- u(!0);
107
- }, [u]);
108
- return P(() => {
109
- w && E && p(!0);
110
- }, [w, E, p]), /* @__PURE__ */ a(
111
- oe,
105
+ [t, r, i, n, I]
106
+ ), q = l(() => {
107
+ p(!0);
108
+ }, [p]);
109
+ return J(() => {
110
+ T && h && u(!0);
111
+ }, [T, h, u]), /* @__PURE__ */ s(
112
+ se,
112
113
  {
113
- useAbsoluteFooter: h,
114
- headerElement: /* @__PURE__ */ a(y, { $flexDirection: "row", $alignItems: "center", $flexGapX: 1, children: /* @__PURE__ */ a(Z, { $renderAs: "ab2", children: R }) }),
114
+ useAbsoluteFooter: B,
115
+ headerElement: /* @__PURE__ */ s(y, { $flexDirection: "row", $alignItems: "center", $flexGapX: 1, children: /* @__PURE__ */ s(F, { $renderAs: "ab2", children: W }) }),
115
116
  bodyHeight: "100%",
116
- bodyElement: /* @__PURE__ */ a(y, { $width: "100%", $height: "100%", $alignItems: "center", $justifyContent: "center", children: /* @__PURE__ */ a(
117
+ bodyElement: /* @__PURE__ */ s(y, { $width: "100%", $height: "100%", $alignItems: "center", $justifyContent: "center", children: /* @__PURE__ */ s(
117
118
  ae,
118
119
  {
119
- testType: j,
120
+ testType: k,
120
121
  tomorrowsDate: r,
121
122
  oneYearFutureDate: i,
122
123
  errorMessage: f,
123
- durationOptions: U,
124
+ durationOptions: V,
124
125
  milestoneEndDate: t,
125
- handleDateChange: X,
126
- handleDurationChange: V
126
+ handleDateChange: Y,
127
+ handleDurationChange: X
127
128
  }
128
129
  ) }),
129
- footerElement: /* @__PURE__ */ q(y, { $flexDirection: "row", $flexGap: 12, $alignItems: "center", children: [
130
- n !== "EDIT" && L !== "STUDENT" && /* @__PURE__ */ a(v, { $borderRadius: 50, children: /* @__PURE__ */ a(
131
- Q,
130
+ footerElement: L !== "STUDENT" ? /* @__PURE__ */ z(y, { $flexDirection: "row", $flexGap: 12, $alignItems: "center", children: [
131
+ a !== "EDIT" && /* @__PURE__ */ s($, { $borderRadius: 50, children: /* @__PURE__ */ s(
132
+ Z,
132
133
  {
133
134
  renderAs: "secondary",
134
135
  analyticsLabel: "Save as draft",
135
- Icon: J,
136
- disabled: !t || I,
137
- onClick: Y
136
+ Icon: K,
137
+ disabled: !t || g,
138
+ onClick: q
138
139
  }
139
140
  ) }),
140
- !h && /* @__PURE__ */ a(v, { children: /* @__PURE__ */ a(
141
- K,
141
+ /* @__PURE__ */ s($, { children: /* @__PURE__ */ s(
142
+ Q,
142
143
  {
143
144
  renderAs: "primary",
144
145
  size: "small",
145
146
  shape: "square",
146
147
  widthX: 9,
147
- label: W,
148
- disabled: !t || I,
149
- onClick: u
148
+ label: U,
149
+ disabled: !t || g || !!N,
150
+ onClick: p
150
151
  }
151
152
  ) })
152
- ] })
153
+ ] }) : void 0
153
154
  }
154
155
  );
155
156
  });
156
157
  export {
157
- be as default
158
+ ve as default
158
159
  };
159
160
  //# sourceMappingURL=goal-completion-date-selector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"goal-completion-date-selector.js","sources":["../../../../../../src/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.tsx"],"sourcesContent":["import { addDays, addMonths, eachMonthOfInterval, format, lastDayOfMonth } from 'date-fns';\nimport { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport DraftIcon from '../../../../../assets/line-icons/icons/draft';\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 { ONE_YEAR_TIMESTAMP_IN_MILLISECONDS } from '../../../constants';\nimport useSubmitGoalCreation from '../../../hooks/use-submit-goal-creation';\nimport { useMilestoneContext } from '../../milestone-create-context';\nimport type { IFormStepProps } from '../../milestone-create-types';\nimport BodyLayout from '../body-layout/body-layout';\nimport * as Styled from './goal-completion-date-selector-styled';\nimport GoalCompletionDateSelectorView from './goal-completion-date-selector-view';\n\nconst GoalCompletionDateSelector: FC<IFormStepProps> = memo(function GoalCompletionDateSelector({\n formData,\n config,\n studentId,\n milestoneId = '',\n currentStep,\n onFormDataChange,\n onPreSubmit,\n courseStream,\n useAbsoluteFooter,\n userType,\n}) {\n const [errorMessage, setErrorMessage] = useState('');\n const [proceedingWithChanges, setProceedingWithChanges] = useState(false);\n\n const { flow } = useMilestoneContext();\n\n const {\n share_message: {\n default: {\n create_message_template: createMessageTemplate,\n update_message_template: updateMessageTemplate,\n },\n },\n } = config;\n\n const handleGoalCreationSubmission = useCallback(\n (isGoalCreation?: boolean) => {\n if (flow) {\n const submitBaseMessage = flow === 'EDIT' ? updateMessageTemplate : createMessageTemplate;\n\n onPreSubmit?.({\n isDraftPlan: !isGoalCreation,\n flow: flow,\n submitBaseMessage,\n });\n }\n },\n [flow, createMessageTemplate, updateMessageTemplate, onPreSubmit],\n );\n\n const { isProcessing, onSubmit } = useSubmitGoalCreation({\n formData,\n studentId,\n onSubmit: handleGoalCreationSubmission,\n setError: setErrorMessage,\n milestoneId,\n flow: flow ?? 'CREATE',\n courseStream,\n });\n\n const { testType, milestoneEndDate, committed } = formData;\n const { milestoneEndDate: committedMilestoneEndDate } = committed;\n const { title } = currentStep;\n const buttonLabel = flow === 'EDIT' ? 'Update goal' : 'Create goal';\n\n const newDate = new Date();\n const tomorrowsDate = format(newDate.setDate(newDate.getDate() + 1), 'yyyy-MM-dd');\n\n const oneYearFutureDate = format(Date.now() + ONE_YEAR_TIMESTAMP_IN_MILLISECONDS, 'yyyy-MM-dd');\n\n const durationOptions = useMemo(() => {\n const today = new Date();\n const startDay = lastDayOfMonth(today) ? addDays(today, 1) : today;\n const months = eachMonthOfInterval({\n start: startDay,\n end: addMonths(startDay, 11),\n });\n\n return months.map(date => {\n const lastDay = lastDayOfMonth(date);\n\n return {\n id: format(lastDay, 'yyyy-MM-dd'),\n label: format(date, 'MMMM yyyy'),\n value: lastDay,\n };\n });\n }, []);\n\n const handleDurationChange = useCallback(\n (date: string) => {\n onFormDataChange({\n milestoneEndDate: date,\n milestoneEndDateIsTentative: true,\n });\n },\n [onFormDataChange],\n );\n\n const handleDateChange = useCallback<\n NonNullable<React.InputHTMLAttributes<HTMLInputElement>['onChange']>\n >(\n event => {\n const value = event.target.value;\n\n if (!value) return;\n\n if (errorMessage && value >= tomorrowsDate && value < oneYearFutureDate) {\n setErrorMessage('');\n\n return;\n }\n\n onFormDataChange({\n milestoneEndDate: value,\n milestoneEndDateIsTentative: true,\n });\n },\n [tomorrowsDate, errorMessage, onFormDataChange, oneYearFutureDate],\n );\n\n const handleNext = useCallback(\n (isDraft?: boolean) => {\n if (\n milestoneEndDate &&\n (milestoneEndDate < tomorrowsDate || milestoneEndDate > oneYearFutureDate)\n ) {\n if (milestoneEndDate < tomorrowsDate) {\n setErrorMessage('Please enter a future date');\n } else {\n setErrorMessage('Please select a date within the next year');\n }\n } else if (isDraft) {\n onSubmit(true);\n } else {\n onFormDataChange({\n milestoneEndDate,\n committed: {\n milestoneEndDate: true,\n milestoneEndDateIsTentative: true,\n },\n });\n setProceedingWithChanges(true);\n }\n },\n [milestoneEndDate, tomorrowsDate, oneYearFutureDate, onFormDataChange, onSubmit],\n );\n\n const handleOnSaveAsDraft = useCallback(() => {\n handleNext(true);\n }, [handleNext]);\n\n useEffect(() => {\n if (committedMilestoneEndDate && proceedingWithChanges) {\n handleGoalCreationSubmission(true);\n }\n }, [committedMilestoneEndDate, proceedingWithChanges, handleGoalCreationSubmission]);\n\n return (\n <BodyLayout\n useAbsoluteFooter={useAbsoluteFooter}\n headerElement={\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={1}>\n <Text $renderAs=\"ab2\">{title}</Text>\n </FlexView>\n }\n bodyHeight=\"100%\"\n bodyElement={\n <FlexView $width=\"100%\" $height=\"100%\" $alignItems=\"center\" $justifyContent=\"center\">\n <GoalCompletionDateSelectorView\n testType={testType}\n tomorrowsDate={tomorrowsDate}\n oneYearFutureDate={oneYearFutureDate}\n errorMessage={errorMessage}\n durationOptions={durationOptions}\n milestoneEndDate={milestoneEndDate}\n handleDateChange={handleDateChange}\n handleDurationChange={handleDurationChange}\n />\n </FlexView>\n }\n footerElement={\n <FlexView $flexDirection=\"row\" $flexGap={12} $alignItems=\"center\">\n {flow !== 'EDIT' && userType !== 'STUDENT' && (\n <Styled.ButtonWrapper $borderRadius={50}>\n <IconButton\n renderAs=\"secondary\"\n analyticsLabel=\"Save as draft\"\n Icon={DraftIcon}\n disabled={!milestoneEndDate || isProcessing}\n onClick={handleOnSaveAsDraft}\n />\n </Styled.ButtonWrapper>\n )}\n\n {!useAbsoluteFooter && (\n <Styled.ButtonWrapper>\n <Button\n renderAs=\"primary\"\n size=\"small\"\n shape=\"square\"\n widthX={9}\n label={buttonLabel}\n disabled={!milestoneEndDate || isProcessing}\n onClick={handleNext}\n />\n </Styled.ButtonWrapper>\n )}\n </FlexView>\n }\n />\n );\n});\n\nexport default GoalCompletionDateSelector;\n"],"names":["GoalCompletionDateSelector","memo","formData","config","studentId","milestoneId","currentStep","onFormDataChange","onPreSubmit","courseStream","useAbsoluteFooter","userType","errorMessage","setErrorMessage","useState","proceedingWithChanges","setProceedingWithChanges","flow","useMilestoneContext","createMessageTemplate","updateMessageTemplate","handleGoalCreationSubmission","useCallback","isGoalCreation","submitBaseMessage","isProcessing","onSubmit","useSubmitGoalCreation","testType","milestoneEndDate","committed","committedMilestoneEndDate","title","buttonLabel","newDate","tomorrowsDate","format","oneYearFutureDate","ONE_YEAR_TIMESTAMP_IN_MILLISECONDS","durationOptions","useMemo","today","startDay","lastDayOfMonth","addDays","eachMonthOfInterval","addMonths","date","lastDay","handleDurationChange","handleDateChange","event","value","handleNext","isDraft","handleOnSaveAsDraft","useEffect","jsx","BodyLayout","FlexView","Text","GoalCompletionDateSelectorView","Styled.ButtonWrapper","IconButton","DraftIcon","Button"],"mappings":"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"}
1
+ {"version":3,"file":"goal-completion-date-selector.js","sources":["../../../../../../src/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.tsx"],"sourcesContent":["import { addDays, addMonths, eachMonthOfInterval, format, lastDayOfMonth } from 'date-fns';\nimport { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport DraftIcon from '../../../../../assets/line-icons/icons/draft';\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 { ONE_YEAR_TIMESTAMP_IN_MILLISECONDS } from '../../../constants';\nimport useSubmitGoalCreation from '../../../hooks/use-submit-goal-creation';\nimport { useMilestoneContext } from '../../milestone-create-context';\nimport type { IFormStepProps } from '../../milestone-create-types';\nimport BodyLayout from '../body-layout/body-layout';\nimport * as Styled from './goal-completion-date-selector-styled';\nimport GoalCompletionDateSelectorView from './goal-completion-date-selector-view';\n\nconst GoalCompletionDateSelector: FC<IFormStepProps> = memo(function GoalCompletionDateSelector({\n formData,\n config,\n studentId,\n milestoneId = '',\n currentStep,\n onFormDataChange,\n onPreSubmit,\n courseStream,\n useAbsoluteFooter,\n userType,\n disablePublish,\n}) {\n const [errorMessage, setErrorMessage] = useState('');\n const [proceedingWithChanges, setProceedingWithChanges] = useState(false);\n\n const { flow } = useMilestoneContext();\n\n const {\n share_message: {\n default: {\n create_message_template: createMessageTemplate,\n update_message_template: updateMessageTemplate,\n },\n },\n } = config;\n\n const handleGoalCreationSubmission = useCallback(\n (isGoalCreation?: boolean) => {\n if (flow) {\n const submitBaseMessage = flow === 'EDIT' ? updateMessageTemplate : createMessageTemplate;\n\n onPreSubmit?.({\n isDraftPlan: !isGoalCreation,\n flow: flow,\n submitBaseMessage,\n });\n }\n },\n [flow, createMessageTemplate, updateMessageTemplate, onPreSubmit],\n );\n\n const { isProcessing, onSubmit } = useSubmitGoalCreation({\n formData,\n studentId,\n onSubmit: handleGoalCreationSubmission,\n setError: setErrorMessage,\n milestoneId,\n flow: flow ?? 'CREATE',\n courseStream,\n });\n\n const { testType, milestoneEndDate, committed } = formData;\n const { milestoneEndDate: committedMilestoneEndDate } = committed;\n const { title } = currentStep;\n const buttonLabel = flow === 'EDIT' ? 'Update goal' : 'Create goal';\n\n const newDate = new Date();\n const tomorrowsDate = format(newDate.setDate(newDate.getDate() + 1), 'yyyy-MM-dd');\n\n const oneYearFutureDate = format(Date.now() + ONE_YEAR_TIMESTAMP_IN_MILLISECONDS, 'yyyy-MM-dd');\n\n const durationOptions = useMemo(() => {\n const today = new Date();\n const startDay = lastDayOfMonth(today) ? addDays(today, 1) : today;\n const months = eachMonthOfInterval({\n start: startDay,\n end: addMonths(startDay, 11),\n });\n\n return months.map(date => {\n const lastDay = lastDayOfMonth(date);\n\n return {\n id: format(lastDay, 'yyyy-MM-dd'),\n label: format(date, 'MMMM yyyy'),\n value: lastDay,\n };\n });\n }, []);\n\n const handleDurationChange = useCallback(\n (date: string) => {\n onFormDataChange({\n milestoneEndDate: date,\n milestoneEndDateIsTentative: true,\n });\n },\n [onFormDataChange],\n );\n\n const handleDateChange = useCallback<\n NonNullable<React.InputHTMLAttributes<HTMLInputElement>['onChange']>\n >(\n event => {\n const value = event.target.value;\n\n if (!value) return;\n\n if (errorMessage && value >= tomorrowsDate && value < oneYearFutureDate) {\n setErrorMessage('');\n\n return;\n }\n\n onFormDataChange({\n milestoneEndDate: value,\n milestoneEndDateIsTentative: true,\n });\n },\n [tomorrowsDate, errorMessage, onFormDataChange, oneYearFutureDate],\n );\n\n const handleNext = useCallback(\n (isDraft?: boolean) => {\n if (\n milestoneEndDate &&\n (milestoneEndDate < tomorrowsDate || milestoneEndDate > oneYearFutureDate)\n ) {\n if (milestoneEndDate < tomorrowsDate) {\n setErrorMessage('Please enter a future date');\n } else {\n setErrorMessage('Please select a date within the next year');\n }\n } else if (isDraft) {\n onSubmit(true);\n } else {\n onFormDataChange({\n milestoneEndDate,\n committed: {\n milestoneEndDate: true,\n milestoneEndDateIsTentative: true,\n },\n });\n setProceedingWithChanges(true);\n }\n },\n [milestoneEndDate, tomorrowsDate, oneYearFutureDate, onFormDataChange, onSubmit],\n );\n\n const handleOnSaveAsDraft = useCallback(() => {\n handleNext(true);\n }, [handleNext]);\n\n useEffect(() => {\n if (committedMilestoneEndDate && proceedingWithChanges) {\n handleGoalCreationSubmission(true);\n }\n }, [committedMilestoneEndDate, proceedingWithChanges, handleGoalCreationSubmission]);\n\n return (\n <BodyLayout\n useAbsoluteFooter={useAbsoluteFooter}\n headerElement={\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={1}>\n <Text $renderAs=\"ab2\">{title}</Text>\n </FlexView>\n }\n bodyHeight=\"100%\"\n bodyElement={\n <FlexView $width=\"100%\" $height=\"100%\" $alignItems=\"center\" $justifyContent=\"center\">\n <GoalCompletionDateSelectorView\n testType={testType}\n tomorrowsDate={tomorrowsDate}\n oneYearFutureDate={oneYearFutureDate}\n errorMessage={errorMessage}\n durationOptions={durationOptions}\n milestoneEndDate={milestoneEndDate}\n handleDateChange={handleDateChange}\n handleDurationChange={handleDurationChange}\n />\n </FlexView>\n }\n footerElement={\n userType !== 'STUDENT' ? (\n <FlexView $flexDirection=\"row\" $flexGap={12} $alignItems=\"center\">\n {flow !== 'EDIT' && (\n <Styled.ButtonWrapper $borderRadius={50}>\n <IconButton\n renderAs=\"secondary\"\n analyticsLabel=\"Save as draft\"\n Icon={DraftIcon}\n disabled={!milestoneEndDate || isProcessing}\n onClick={handleOnSaveAsDraft}\n />\n </Styled.ButtonWrapper>\n )}\n\n <Styled.ButtonWrapper>\n <Button\n renderAs=\"primary\"\n size=\"small\"\n shape=\"square\"\n widthX={9}\n label={buttonLabel}\n disabled={!milestoneEndDate || isProcessing || !!disablePublish}\n onClick={handleNext}\n />\n </Styled.ButtonWrapper>\n </FlexView>\n ) : undefined\n }\n />\n );\n});\n\nexport default GoalCompletionDateSelector;\n"],"names":["GoalCompletionDateSelector","memo","formData","config","studentId","milestoneId","currentStep","onFormDataChange","onPreSubmit","courseStream","useAbsoluteFooter","userType","disablePublish","errorMessage","setErrorMessage","useState","proceedingWithChanges","setProceedingWithChanges","flow","useMilestoneContext","createMessageTemplate","updateMessageTemplate","handleGoalCreationSubmission","useCallback","isGoalCreation","submitBaseMessage","isProcessing","onSubmit","useSubmitGoalCreation","testType","milestoneEndDate","committed","committedMilestoneEndDate","title","buttonLabel","newDate","tomorrowsDate","format","oneYearFutureDate","ONE_YEAR_TIMESTAMP_IN_MILLISECONDS","durationOptions","useMemo","today","startDay","lastDayOfMonth","addDays","eachMonthOfInterval","addMonths","date","lastDay","handleDurationChange","handleDateChange","event","value","handleNext","isDraft","handleOnSaveAsDraft","useEffect","jsx","BodyLayout","FlexView","Text","GoalCompletionDateSelectorView","jsxs","Styled.ButtonWrapper","IconButton","DraftIcon","Button"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { memo as A, useMemo as I, useEffect as J } from "react";
3
- import K from "./milestone-create-components-map.js";
4
- import L from "./milestone-create-context.js";
5
- import { useFormDataPrefiller as N, useMilestoneFormTree as O, useFormTreeTraversal as Q } from "./milestone-create-hooks.js";
6
- import { Container as U, BodyContainer as W } from "./milestone-create-styled.js";
7
- const te = A(function({
2
+ import { memo as I, useMemo as J, useEffect as K } from "react";
3
+ import L from "./milestone-create-components-map.js";
4
+ import N from "./milestone-create-context.js";
5
+ import { useFormDataPrefiller as O, useMilestoneFormTree as Q, useFormTreeTraversal as U } from "./milestone-create-hooks.js";
6
+ import { Container as W, BodyContainer as X } from "./milestone-create-styled.js";
7
+ const oe = I(function({
8
8
  studentName: M,
9
9
  studentId: l,
10
10
  height: x,
@@ -29,30 +29,31 @@ const te = A(function({
29
29
  isTeacherTrainingAccount: j,
30
30
  onDeleteGoal: k,
31
31
  userType: w,
32
- useAbsoluteFooter: H
32
+ useAbsoluteFooter: H,
33
+ disablePublish: R
33
34
  }) {
34
- const { formDataState: i, setFormData: R } = N(s, {
35
+ const { formDataState: i, setFormData: q } = O(s, {
35
36
  schoolData: P,
36
37
  board: F,
37
38
  grade: T,
38
39
  config: a,
39
40
  flow: t,
40
41
  currentCountryCode: B
41
- }), q = O({
42
+ }), y = Q({
42
43
  flow: t,
43
44
  formDataState: i,
44
45
  isGoalCreation: c
45
- }), o = e ? i : s, n = e ? "edit" : "view", u = n === "view", { currentStep: m, updateFormData: y, handleBack: p } = Q({
46
+ }), o = e ? i : s, n = e ? "edit" : "view", u = n === "view", { currentStep: m, updateFormData: z, handleBack: p } = U({
46
47
  flow: t,
47
- updatedFormTree: q,
48
+ updatedFormTree: y,
48
49
  formData: o,
49
50
  formDataState: i,
50
- setFormData: R,
51
+ setFormData: q,
51
52
  handleExit: $
52
- }), { name: f } = m || {}, v = f ? K[f] : void 0, z = I(() => ({ handleBack: p, mode: n, flow: t }), [p, n, t]);
53
- return J(() => {
53
+ }), { name: f } = m || {}, v = f ? L[f] : void 0, A = J(() => ({ handleBack: p, mode: n, flow: t }), [p, n, t]);
54
+ return K(() => {
54
55
  e && e(o);
55
- }, [o, e]), /* @__PURE__ */ r(L.Provider, { value: z, children: /* @__PURE__ */ r(U, { $height: x, $minHeight: S, $viewMode: u, children: /* @__PURE__ */ r(W, { $viewMode: u, children: v && m && d ? /* @__PURE__ */ r(
56
+ }, [o, e]), /* @__PURE__ */ r(N.Provider, { value: A, children: /* @__PURE__ */ r(W, { $height: x, $minHeight: S, $viewMode: u, children: /* @__PURE__ */ r(X, { $viewMode: u, children: v && m && d ? /* @__PURE__ */ r(
56
57
  v,
57
58
  {
58
59
  studentName: M,
@@ -60,7 +61,7 @@ const te = A(function({
60
61
  isGoalCreation: c,
61
62
  config: a,
62
63
  formData: o,
63
- onFormDataChange: y,
64
+ onFormDataChange: z,
64
65
  onChapterExitWarning: h,
65
66
  studentId: l,
66
67
  onPreSubmit: C,
@@ -72,11 +73,12 @@ const te = A(function({
72
73
  canDeleteGoal: V,
73
74
  onDeleteGoal: k,
74
75
  userType: w,
75
- useAbsoluteFooter: H
76
+ useAbsoluteFooter: H,
77
+ disablePublish: R
76
78
  }
77
79
  ) : void 0 }) }) });
78
80
  });
79
81
  export {
80
- te as default
82
+ oe as default
81
83
  };
82
84
  //# sourceMappingURL=milestone-create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"milestone-create.js","sources":["../../../../src/features/milestone/create/milestone-create.tsx"],"sourcesContent":["import { memo, useEffect, useMemo, type FC } from 'react';\n\nimport ComponentsMap from './milestone-create-components-map';\nimport MilestoneCreateContext, { type MileStoneJourneyMode } from './milestone-create-context';\nimport {\n useFormDataPrefiller,\n useFormTreeTraversal,\n useMilestoneFormTree,\n} from './milestone-create-hooks';\nimport { BodyContainer, Container } from './milestone-create-styled';\nimport type { IMileStoneCreateProps, IMilestoneFormData } from './milestone-create-types';\n\nconst MilestoneCreate: FC<IMileStoneCreateProps> = memo(function MilestoneCreate({\n studentName,\n studentId,\n height,\n minHeight,\n formData: formDataProp,\n config,\n onChapterExitWarning,\n onFormDataChange,\n onPreSubmit: handlePreSubmit,\n onExit: handleExit,\n board,\n schoolData,\n grade,\n flow,\n milestoneId,\n currentCountryCode,\n isGoalCreation,\n courseStream,\n classRatio,\n enrollmentType,\n canDeleteGoal,\n isTeacherTrainingAccount,\n onDeleteGoal,\n userType,\n useAbsoluteFooter,\n}) {\n const { formDataState, setFormData } = useFormDataPrefiller(formDataProp, {\n schoolData,\n board,\n grade,\n config,\n flow,\n currentCountryCode,\n });\n\n const updatedFormTree = useMilestoneFormTree({\n flow,\n formDataState,\n isGoalCreation,\n });\n\n const formData = (onFormDataChange ? formDataState : formDataProp) as IMilestoneFormData; //TODO: make better\n\n const mode: MileStoneJourneyMode = onFormDataChange ? 'edit' : 'view';\n const isViewMode = mode === 'view';\n\n const { currentStep, updateFormData, handleBack } = useFormTreeTraversal({\n flow,\n updatedFormTree,\n formData,\n formDataState,\n setFormData,\n handleExit,\n });\n\n const { name } = currentStep || {};\n const StepComponent = name ? ComponentsMap[name] : undefined;\n\n const contextValue = useMemo(() => ({ handleBack, mode, flow }), [handleBack, mode, flow]);\n\n useEffect(() => {\n if (onFormDataChange) {\n onFormDataChange(formData);\n }\n }, [formData, onFormDataChange]);\n\n return (\n <MilestoneCreateContext.Provider value={contextValue}>\n <Container $height={height} $minHeight={minHeight} $viewMode={isViewMode}>\n <BodyContainer $viewMode={isViewMode}>\n {StepComponent && currentStep && enrollmentType ? (\n <StepComponent\n studentName={studentName}\n currentStep={currentStep}\n isGoalCreation={isGoalCreation}\n config={config}\n formData={formData}\n onFormDataChange={updateFormData}\n onChapterExitWarning={onChapterExitWarning}\n studentId={studentId}\n onPreSubmit={handlePreSubmit}\n milestoneId={milestoneId}\n courseStream={courseStream}\n classRatio={classRatio || 0}\n enrollmentType={enrollmentType}\n isTeacherTrainingAccount={isTeacherTrainingAccount}\n canDeleteGoal={canDeleteGoal}\n onDeleteGoal={onDeleteGoal}\n userType={userType}\n useAbsoluteFooter={useAbsoluteFooter}\n />\n ) : undefined}\n </BodyContainer>\n </Container>\n </MilestoneCreateContext.Provider>\n );\n});\n\nexport default MilestoneCreate;\n"],"names":["MilestoneCreate","memo","studentName","studentId","height","minHeight","formDataProp","config","onChapterExitWarning","onFormDataChange","handlePreSubmit","handleExit","board","schoolData","grade","flow","milestoneId","currentCountryCode","isGoalCreation","courseStream","classRatio","enrollmentType","canDeleteGoal","isTeacherTrainingAccount","onDeleteGoal","userType","useAbsoluteFooter","formDataState","setFormData","useFormDataPrefiller","updatedFormTree","useMilestoneFormTree","formData","mode","isViewMode","currentStep","updateFormData","handleBack","useFormTreeTraversal","name","StepComponent","ComponentsMap","contextValue","useMemo","useEffect","jsx","MilestoneCreateContext","Container","BodyContainer"],"mappings":";;;;;;AAYM,MAAAA,KAA6CC,EAAK,SAAyB;AAAA,EAC/E,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAUC;AAAA,EACV,QAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,aAAaC;AAAA,EACb,QAAQC;AAAA,EACR,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC;AACF,GAAG;AACD,QAAM,EAAE,eAAAC,GAAe,aAAAC,MAAgBC,EAAqBvB,GAAc;AAAA,IACxE,YAAAO;AAAA,IACA,OAAAD;AAAA,IACA,OAAAE;AAAA,IACA,QAAAP;AAAA,IACA,MAAAQ;AAAA,IACA,oBAAAE;AAAA,EAAA,CACD,GAEKa,IAAkBC,EAAqB;AAAA,IAC3C,MAAAhB;AAAA,IACA,eAAAY;AAAA,IACA,gBAAAT;AAAA,EAAA,CACD,GAEKc,IAAYvB,IAAmBkB,IAAgBrB,GAE/C2B,IAA6BxB,IAAmB,SAAS,QACzDyB,IAAaD,MAAS,QAEtB,EAAE,aAAAE,GAAa,gBAAAC,GAAgB,YAAAC,EAAA,IAAeC,EAAqB;AAAA,IACvE,MAAAvB;AAAA,IACA,iBAAAe;AAAA,IACA,UAAAE;AAAA,IACA,eAAAL;AAAA,IACA,aAAAC;AAAA,IACA,YAAAjB;AAAA,EAAA,CACD,GAEK,EAAE,MAAA4B,EAAA,IAASJ,KAAe,IAC1BK,IAAgBD,IAAOE,EAAcF,CAAI,IAAI,QAE7CG,IAAeC,EAAQ,OAAO,EAAE,YAAAN,GAAY,MAAAJ,GAAM,MAAAlB,EAAK,IAAI,CAACsB,GAAYJ,GAAMlB,CAAI,CAAC;AAEzF,SAAA6B,EAAU,MAAM;AACd,IAAInC,KACFA,EAAiBuB,CAAQ;AAAA,EAC3B,GACC,CAACA,GAAUvB,CAAgB,CAAC,GAG7B,gBAAAoC,EAACC,EAAuB,UAAvB,EAAgC,OAAOJ,GACtC,UAAA,gBAAAG,EAACE,KAAU,SAAS3C,GAAQ,YAAYC,GAAW,WAAW6B,GAC5D,UAAC,gBAAAW,EAAAG,GAAA,EAAc,WAAWd,GACvB,UAAAM,KAAiBL,KAAed,IAC/B,gBAAAwB;AAAA,IAACL;AAAA,IAAA;AAAA,MACC,aAAAtC;AAAA,MACA,aAAAiC;AAAA,MACA,gBAAAjB;AAAA,MACA,QAAAX;AAAA,MACA,UAAAyB;AAAA,MACA,kBAAkBI;AAAA,MAClB,sBAAA5B;AAAA,MACA,WAAAL;AAAA,MACA,aAAaO;AAAA,MACb,aAAAM;AAAA,MACA,cAAAG;AAAA,MACA,YAAYC,KAAc;AAAA,MAC1B,gBAAAC;AAAA,MACA,0BAAAE;AAAA,MACA,eAAAD;AAAA,MACA,cAAAE;AAAA,MACA,UAAAC;AAAA,MACA,mBAAAC;AAAA,IAAA;AAAA,EACF,IACE,OACN,CAAA,EACF,CAAA,EACF,CAAA;AAEJ,CAAC;"}
1
+ {"version":3,"file":"milestone-create.js","sources":["../../../../src/features/milestone/create/milestone-create.tsx"],"sourcesContent":["import { memo, useEffect, useMemo, type FC } from 'react';\n\nimport ComponentsMap from './milestone-create-components-map';\nimport MilestoneCreateContext, { type MileStoneJourneyMode } from './milestone-create-context';\nimport {\n useFormDataPrefiller,\n useFormTreeTraversal,\n useMilestoneFormTree,\n} from './milestone-create-hooks';\nimport { BodyContainer, Container } from './milestone-create-styled';\nimport type { IMileStoneCreateProps, IMilestoneFormData } from './milestone-create-types';\n\nconst MilestoneCreate: FC<IMileStoneCreateProps> = memo(function MilestoneCreate({\n studentName,\n studentId,\n height,\n minHeight,\n formData: formDataProp,\n config,\n onChapterExitWarning,\n onFormDataChange,\n onPreSubmit: handlePreSubmit,\n onExit: handleExit,\n board,\n schoolData,\n grade,\n flow,\n milestoneId,\n currentCountryCode,\n isGoalCreation,\n courseStream,\n classRatio,\n enrollmentType,\n canDeleteGoal,\n isTeacherTrainingAccount,\n onDeleteGoal,\n userType,\n useAbsoluteFooter,\n disablePublish,\n}) {\n const { formDataState, setFormData } = useFormDataPrefiller(formDataProp, {\n schoolData,\n board,\n grade,\n config,\n flow,\n currentCountryCode,\n });\n\n const updatedFormTree = useMilestoneFormTree({\n flow,\n formDataState,\n isGoalCreation,\n });\n\n const formData = (onFormDataChange ? formDataState : formDataProp) as IMilestoneFormData; //TODO: make better\n\n const mode: MileStoneJourneyMode = onFormDataChange ? 'edit' : 'view';\n const isViewMode = mode === 'view';\n\n const { currentStep, updateFormData, handleBack } = useFormTreeTraversal({\n flow,\n updatedFormTree,\n formData,\n formDataState,\n setFormData,\n handleExit,\n });\n\n const { name } = currentStep || {};\n const StepComponent = name ? ComponentsMap[name] : undefined;\n\n const contextValue = useMemo(() => ({ handleBack, mode, flow }), [handleBack, mode, flow]);\n\n useEffect(() => {\n if (onFormDataChange) {\n onFormDataChange(formData);\n }\n }, [formData, onFormDataChange]);\n\n return (\n <MilestoneCreateContext.Provider value={contextValue}>\n <Container $height={height} $minHeight={minHeight} $viewMode={isViewMode}>\n <BodyContainer $viewMode={isViewMode}>\n {StepComponent && currentStep && enrollmentType ? (\n <StepComponent\n studentName={studentName}\n currentStep={currentStep}\n isGoalCreation={isGoalCreation}\n config={config}\n formData={formData}\n onFormDataChange={updateFormData}\n onChapterExitWarning={onChapterExitWarning}\n studentId={studentId}\n onPreSubmit={handlePreSubmit}\n milestoneId={milestoneId}\n courseStream={courseStream}\n classRatio={classRatio || 0}\n enrollmentType={enrollmentType}\n isTeacherTrainingAccount={isTeacherTrainingAccount}\n canDeleteGoal={canDeleteGoal}\n onDeleteGoal={onDeleteGoal}\n userType={userType}\n useAbsoluteFooter={useAbsoluteFooter}\n disablePublish={disablePublish}\n />\n ) : undefined}\n </BodyContainer>\n </Container>\n </MilestoneCreateContext.Provider>\n );\n});\n\nexport default MilestoneCreate;\n"],"names":["MilestoneCreate","memo","studentName","studentId","height","minHeight","formDataProp","config","onChapterExitWarning","onFormDataChange","handlePreSubmit","handleExit","board","schoolData","grade","flow","milestoneId","currentCountryCode","isGoalCreation","courseStream","classRatio","enrollmentType","canDeleteGoal","isTeacherTrainingAccount","onDeleteGoal","userType","useAbsoluteFooter","disablePublish","formDataState","setFormData","useFormDataPrefiller","updatedFormTree","useMilestoneFormTree","formData","mode","isViewMode","currentStep","updateFormData","handleBack","useFormTreeTraversal","name","StepComponent","ComponentsMap","contextValue","useMemo","useEffect","jsx","MilestoneCreateContext","Container","BodyContainer"],"mappings":";;;;;;AAYM,MAAAA,KAA6CC,EAAK,SAAyB;AAAA,EAC/E,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAUC;AAAA,EACV,QAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,aAAaC;AAAA,EACb,QAAQC;AAAA,EACR,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,gBAAAC;AACF,GAAG;AACD,QAAM,EAAE,eAAAC,GAAe,aAAAC,MAAgBC,EAAqBxB,GAAc;AAAA,IACxE,YAAAO;AAAA,IACA,OAAAD;AAAA,IACA,OAAAE;AAAA,IACA,QAAAP;AAAA,IACA,MAAAQ;AAAA,IACA,oBAAAE;AAAA,EAAA,CACD,GAEKc,IAAkBC,EAAqB;AAAA,IAC3C,MAAAjB;AAAA,IACA,eAAAa;AAAA,IACA,gBAAAV;AAAA,EAAA,CACD,GAEKe,IAAYxB,IAAmBmB,IAAgBtB,GAE/C4B,IAA6BzB,IAAmB,SAAS,QACzD0B,IAAaD,MAAS,QAEtB,EAAE,aAAAE,GAAa,gBAAAC,GAAgB,YAAAC,EAAA,IAAeC,EAAqB;AAAA,IACvE,MAAAxB;AAAA,IACA,iBAAAgB;AAAA,IACA,UAAAE;AAAA,IACA,eAAAL;AAAA,IACA,aAAAC;AAAA,IACA,YAAAlB;AAAA,EAAA,CACD,GAEK,EAAE,MAAA6B,EAAA,IAASJ,KAAe,IAC1BK,IAAgBD,IAAOE,EAAcF,CAAI,IAAI,QAE7CG,IAAeC,EAAQ,OAAO,EAAE,YAAAN,GAAY,MAAAJ,GAAM,MAAAnB,EAAK,IAAI,CAACuB,GAAYJ,GAAMnB,CAAI,CAAC;AAEzF,SAAA8B,EAAU,MAAM;AACd,IAAIpC,KACFA,EAAiBwB,CAAQ;AAAA,EAC3B,GACC,CAACA,GAAUxB,CAAgB,CAAC,GAG7B,gBAAAqC,EAACC,EAAuB,UAAvB,EAAgC,OAAOJ,GACtC,UAAA,gBAAAG,EAACE,KAAU,SAAS5C,GAAQ,YAAYC,GAAW,WAAW8B,GAC5D,UAAC,gBAAAW,EAAAG,GAAA,EAAc,WAAWd,GACvB,UAAAM,KAAiBL,KAAef,IAC/B,gBAAAyB;AAAA,IAACL;AAAA,IAAA;AAAA,MACC,aAAAvC;AAAA,MACA,aAAAkC;AAAA,MACA,gBAAAlB;AAAA,MACA,QAAAX;AAAA,MACA,UAAA0B;AAAA,MACA,kBAAkBI;AAAA,MAClB,sBAAA7B;AAAA,MACA,WAAAL;AAAA,MACA,aAAaO;AAAA,MACb,aAAAM;AAAA,MACA,cAAAG;AAAA,MACA,YAAYC,KAAc;AAAA,MAC1B,gBAAAC;AAAA,MACA,0BAAAE;AAAA,MACA,eAAAD;AAAA,MACA,cAAAE;AAAA,MACA,UAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,gBAAAC;AAAA,IAAA;AAAA,EACF,IACE,OACN,CAAA,EACF,CAAA,EACF,CAAA;AAEJ,CAAC;"}
@@ -1,12 +1,12 @@
1
1
  import { jsx as m } from "react/jsx-runtime";
2
- import { h as j } from "../../../../node_modules/humanize-plus/dist/humanize.js";
3
- import { memo as z, useEffect as l, useMemo as C } from "react";
4
- import { useGetMileStoneConfig as H } from "../../create/api/milestone-config.js";
5
- import L from "../../create/milestone-create.js";
6
- import { useMilestoneGet as T } from "../comps/edit-milestone-modal/api/get-milestone.js";
7
- import b from "../comps/milestone-edit-loader/milestone-edit-loader.js";
8
- import { transformGoalData as k } from "../goal-edit-helpers.js";
9
- const q = z(
2
+ import { h as z } from "../../../../node_modules/humanize-plus/dist/humanize.js";
3
+ import { memo as H, useEffect as l, useMemo as C } from "react";
4
+ import { useGetMileStoneConfig as L } from "../../create/api/milestone-config.js";
5
+ import T from "../../create/milestone-create.js";
6
+ import { useMilestoneGet as b } from "../comps/edit-milestone-modal/api/get-milestone.js";
7
+ import k from "../comps/milestone-edit-loader/milestone-edit-loader.js";
8
+ import { transformGoalData as q } from "../goal-edit-helpers.js";
9
+ const A = H(
10
10
  function({
11
11
  studentName: h,
12
12
  studentId: D,
@@ -25,25 +25,26 @@ const q = z(
25
25
  courseStream: s,
26
26
  classRatio: w,
27
27
  enrollmentType: a,
28
- onDeleteGoal: S,
29
- useAbsoluteFooter: f
28
+ useAbsoluteFooter: f,
29
+ disablePublish: S,
30
+ onDeleteGoal: v
30
31
  }) {
31
32
  const {
32
33
  get: c,
33
34
  data: o,
34
- isProcessing: v,
35
- isProcessingFailed: N
36
- } = H();
35
+ isProcessing: N,
36
+ isProcessingFailed: R
37
+ } = L();
37
38
  l(() => {
38
39
  c("", void 0);
39
40
  }, [c]);
40
41
  const {
41
42
  get: d,
42
43
  data: i,
43
- isProcessing: R,
44
- isProcessingFailed: U
45
- } = T(e), r = C(
46
- () => i && o && k({
44
+ isProcessing: U,
45
+ isProcessingFailed: W
46
+ } = b(e), r = C(
47
+ () => i && o && q({
47
48
  currentMilestoneData: i,
48
49
  config: o,
49
50
  courseStream: s,
@@ -54,20 +55,20 @@ const q = z(
54
55
  ), E = C(() => !t || !r ? t || r : {
55
56
  ...r,
56
57
  ...t
57
- }, [t, r]), { can_delete: W } = (i == null ? void 0 : i.permissions) || {};
58
+ }, [t, r]), { can_delete: j } = (i == null ? void 0 : i.permissions) || {};
58
59
  return l(() => {
59
60
  (n === "TEACHER" || f && n === "STUDENT") && d(e, {
60
61
  with_sheets: !0,
61
62
  with_recommended_chapters: !0
62
63
  });
63
- }, [d, f, e, n]), v || R ? /* @__PURE__ */ m(b, {}) : U || N ? /* @__PURE__ */ m("p", { children: "Error" }) : o && E ? /* @__PURE__ */ m(
64
- L,
64
+ }, [d, f, e, n]), N || U ? /* @__PURE__ */ m(k, {}) : W || R ? /* @__PURE__ */ m("p", { children: "Error" }) : o && E ? /* @__PURE__ */ m(
65
+ T,
65
66
  {
66
67
  flow: "DRAFT_EDIT",
67
68
  board: _,
68
69
  schoolData: F,
69
70
  studentId: D,
70
- studentName: j.titleCase(h),
71
+ studentName: z.titleCase(h),
71
72
  height: G,
72
73
  formData: E,
73
74
  config: o,
@@ -82,14 +83,15 @@ const q = z(
82
83
  courseStream: (i == null ? void 0 : i.course_stream) || s,
83
84
  classRatio: w,
84
85
  enrollmentType: a,
85
- canDeleteGoal: W,
86
- onDeleteGoal: S,
87
- useAbsoluteFooter: f
86
+ canDeleteGoal: j,
87
+ onDeleteGoal: v,
88
+ useAbsoluteFooter: f,
89
+ disablePublish: S
88
90
  }
89
91
  ) : null;
90
92
  }
91
- ), Z = q;
93
+ ), $ = A;
92
94
  export {
93
- Z as default
95
+ $ as default
94
96
  };
95
97
  //# sourceMappingURL=goal-draft-edit-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"goal-draft-edit-container.js","sources":["../../../../../src/features/milestone/edit/goal-drafts/goal-draft-edit-container.tsx"],"sourcesContent":["import { titleCase } from 'humanize-plus';\nimport { memo, useEffect, useMemo, type FC } from 'react';\n\nimport { useGetMileStoneConfig } from '../../create/api/milestone-config';\nimport MilestoneCreate from '../../create/milestone-create';\nimport { useMilestoneGet } from '../comps/edit-milestone-modal/api/get-milestone';\nimport MilestoneEditLoader from '../comps/milestone-edit-loader/milestone-edit-loader';\nimport { transformGoalData } from '../goal-edit-helpers';\nimport type { IMileStoneEditContainerProps } from '../milestone-edit-types';\n\nconst GoalDraftEditContainer: FC<IMileStoneEditContainerProps> = memo(\n function GoalDraftEditContainer({\n studentName,\n studentId,\n height,\n formData: formDataProp,\n onFormDataChange: handleFormDataChange,\n onPreSubmit: handlePreSubmit,\n onExit: handleExit,\n onChapterExitWarning: handleChapterExitWarning,\n userType,\n board,\n schoolData,\n grade,\n milestoneId,\n currentCountryCode,\n courseStream,\n classRatio,\n enrollmentType,\n onDeleteGoal,\n useAbsoluteFooter,\n }) {\n const {\n get: getConfig,\n data: configData,\n isProcessing: isConfigProcessing,\n isProcessingFailed: isConfigProcessingFailed,\n } = useGetMileStoneConfig();\n\n useEffect(() => {\n getConfig('', undefined);\n }, [getConfig]);\n\n const {\n get: getMilestone,\n data: currentMilestoneData,\n isProcessing: isMilestoneProcessing,\n isProcessingFailed: isMilestoneProcessingFailed,\n } = useMilestoneGet(milestoneId);\n\n const convertedData = useMemo(\n () =>\n currentMilestoneData &&\n configData &&\n transformGoalData({\n currentMilestoneData,\n config: configData,\n courseStream,\n enrollmentType,\n currentCountryCode,\n }),\n [configData, currentCountryCode, enrollmentType, currentMilestoneData, courseStream],\n );\n\n const formDataToUse = useMemo(() => {\n if (!formDataProp || !convertedData) return formDataProp || convertedData;\n\n return {\n ...convertedData,\n ...formDataProp,\n };\n }, [formDataProp, convertedData]);\n\n const { can_delete: canDeleteGoal } = currentMilestoneData?.permissions || {};\n\n useEffect(() => {\n if (userType === 'TEACHER' || (useAbsoluteFooter && userType === 'STUDENT'))\n getMilestone(milestoneId, {\n with_sheets: true,\n with_recommended_chapters: true,\n });\n }, [getMilestone, useAbsoluteFooter, milestoneId, userType]);\n\n if (isConfigProcessing || isMilestoneProcessing) return <MilestoneEditLoader />;\n\n if (isMilestoneProcessingFailed || isConfigProcessingFailed) {\n return <p>Error</p>;\n }\n\n return configData && formDataToUse ? (\n <MilestoneCreate\n flow=\"DRAFT_EDIT\"\n board={board}\n schoolData={schoolData}\n studentId={studentId}\n studentName={titleCase(studentName)}\n height={height}\n formData={formDataToUse}\n config={configData}\n onFormDataChange={handleFormDataChange}\n onPreSubmit={handlePreSubmit}\n onExit={handleExit}\n onChapterExitWarning={handleChapterExitWarning}\n userType={userType}\n grade={grade}\n milestoneId={milestoneId}\n isGoalCreation={true}\n courseStream={currentMilestoneData?.course_stream || courseStream}\n classRatio={classRatio}\n enrollmentType={enrollmentType}\n canDeleteGoal={canDeleteGoal}\n onDeleteGoal={onDeleteGoal}\n useAbsoluteFooter={useAbsoluteFooter}\n />\n ) : null;\n },\n);\n\nexport default GoalDraftEditContainer;\n"],"names":["GoalDraftEditContainer","memo","studentName","studentId","height","formDataProp","handleFormDataChange","handlePreSubmit","handleExit","handleChapterExitWarning","userType","board","schoolData","grade","milestoneId","currentCountryCode","courseStream","classRatio","enrollmentType","onDeleteGoal","useAbsoluteFooter","getConfig","configData","isConfigProcessing","isConfigProcessingFailed","useGetMileStoneConfig","useEffect","getMilestone","currentMilestoneData","isMilestoneProcessing","isMilestoneProcessingFailed","useMilestoneGet","convertedData","useMemo","transformGoalData","formDataToUse","canDeleteGoal","jsx","MilestoneEditLoader","MilestoneCreate","titleCase","GoalDraftEdit"],"mappings":";;;;;;;;AAUA,MAAMA,IAA2DC;AAAA,EAC/D,SAAgC;AAAA,IAC9B,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAUC;AAAA,IACV,kBAAkBC;AAAA,IAClB,aAAaC;AAAA,IACb,QAAQC;AAAA,IACR,sBAAsBC;AAAA,IACtB,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,mBAAAC;AAAA,EAAA,GACC;AACK,UAAA;AAAA,MACJ,KAAKC;AAAA,MACL,MAAMC;AAAA,MACN,cAAcC;AAAA,MACd,oBAAoBC;AAAA,QAClBC,EAAsB;AAE1B,IAAAC,EAAU,MAAM;AACd,MAAAL,EAAU,IAAI,MAAS;AAAA,IAAA,GACtB,CAACA,CAAS,CAAC;AAER,UAAA;AAAA,MACJ,KAAKM;AAAA,MACL,MAAMC;AAAA,MACN,cAAcC;AAAA,MACd,oBAAoBC;AAAA,IAAA,IAClBC,EAAgBjB,CAAW,GAEzBkB,IAAgBC;AAAA,MACpB,MACEL,KACAN,KACAY,EAAkB;AAAA,QAChB,sBAAAN;AAAA,QACA,QAAQN;AAAA,QACR,cAAAN;AAAA,QACA,gBAAAE;AAAA,QACA,oBAAAH;AAAA,MAAA,CACD;AAAA,MACH,CAACO,GAAYP,GAAoBG,GAAgBU,GAAsBZ,CAAY;AAAA,IAAA,GAG/EmB,IAAgBF,EAAQ,MACxB,CAAC5B,KAAgB,CAAC2B,IAAsB3B,KAAgB2B,IAErD;AAAA,MACL,GAAGA;AAAA,MACH,GAAG3B;AAAA,IAAA,GAEJ,CAACA,GAAc2B,CAAa,CAAC,GAE1B,EAAE,YAAYI,EAAA,KAAkBR,KAAA,gBAAAA,EAAsB,gBAAe,CAAA;AAU3E,WARAF,EAAU,MAAM;AACV,OAAAhB,MAAa,aAAcU,KAAqBV,MAAa,cAC/DiB,EAAab,GAAa;AAAA,QACxB,aAAa;AAAA,QACb,2BAA2B;AAAA,MAAA,CAC5B;AAAA,OACF,CAACa,GAAcP,GAAmBN,GAAaJ,CAAQ,CAAC,GAEvDa,KAAsBM,IAA8B,gBAAAQ,EAACC,GAAoB,CAAA,CAAA,IAEzER,KAA+BN,IAC1B,gBAAAa,EAAC,OAAE,UAAK,QAAA,CAAA,IAGVf,KAAca,IACnB,gBAAAE;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAA5B;AAAA,QACA,YAAAC;AAAA,QACA,WAAAT;AAAA,QACA,aAAaqC,YAAUtC,CAAW;AAAA,QAClC,QAAAE;AAAA,QACA,UAAU+B;AAAA,QACV,QAAQb;AAAA,QACR,kBAAkBhB;AAAA,QAClB,aAAaC;AAAA,QACb,QAAQC;AAAA,QACR,sBAAsBC;AAAA,QACtB,UAAAC;AAAA,QACA,OAAAG;AAAA,QACA,aAAAC;AAAA,QACA,gBAAgB;AAAA,QAChB,eAAcc,KAAA,gBAAAA,EAAsB,kBAAiBZ;AAAA,QACrD,YAAAC;AAAA,QACA,gBAAAC;AAAA,QACA,eAAAkB;AAAA,QACA,cAAAjB;AAAA,QACA,mBAAAC;AAAA,MAAA;AAAA,IAEA,IAAA;AAAA,EACN;AACF,GAEAqB,IAAezC;"}
1
+ {"version":3,"file":"goal-draft-edit-container.js","sources":["../../../../../src/features/milestone/edit/goal-drafts/goal-draft-edit-container.tsx"],"sourcesContent":["import { titleCase } from 'humanize-plus';\nimport { memo, useEffect, useMemo, type FC } from 'react';\n\nimport { useGetMileStoneConfig } from '../../create/api/milestone-config';\nimport MilestoneCreate from '../../create/milestone-create';\nimport { useMilestoneGet } from '../comps/edit-milestone-modal/api/get-milestone';\nimport MilestoneEditLoader from '../comps/milestone-edit-loader/milestone-edit-loader';\nimport { transformGoalData } from '../goal-edit-helpers';\nimport type { IMileStoneEditContainerProps } from '../milestone-edit-types';\n\nconst GoalDraftEditContainer: FC<IMileStoneEditContainerProps> = memo(\n function GoalDraftEditContainer({\n studentName,\n studentId,\n height,\n formData: formDataProp,\n onFormDataChange: handleFormDataChange,\n onPreSubmit: handlePreSubmit,\n onExit: handleExit,\n onChapterExitWarning: handleChapterExitWarning,\n userType,\n board,\n schoolData,\n grade,\n milestoneId,\n currentCountryCode,\n courseStream,\n classRatio,\n enrollmentType,\n useAbsoluteFooter,\n disablePublish,\n onDeleteGoal,\n }) {\n const {\n get: getConfig,\n data: configData,\n isProcessing: isConfigProcessing,\n isProcessingFailed: isConfigProcessingFailed,\n } = useGetMileStoneConfig();\n\n useEffect(() => {\n getConfig('', undefined);\n }, [getConfig]);\n\n const {\n get: getMilestone,\n data: currentMilestoneData,\n isProcessing: isMilestoneProcessing,\n isProcessingFailed: isMilestoneProcessingFailed,\n } = useMilestoneGet(milestoneId);\n\n const convertedData = useMemo(\n () =>\n currentMilestoneData &&\n configData &&\n transformGoalData({\n currentMilestoneData,\n config: configData,\n courseStream,\n enrollmentType,\n currentCountryCode,\n }),\n [configData, currentCountryCode, enrollmentType, currentMilestoneData, courseStream],\n );\n\n const formDataToUse = useMemo(() => {\n if (!formDataProp || !convertedData) return formDataProp || convertedData;\n\n return {\n ...convertedData,\n ...formDataProp,\n };\n }, [formDataProp, convertedData]);\n\n const { can_delete: canDeleteGoal } = currentMilestoneData?.permissions || {};\n\n useEffect(() => {\n if (userType === 'TEACHER' || (useAbsoluteFooter && userType === 'STUDENT'))\n getMilestone(milestoneId, {\n with_sheets: true,\n with_recommended_chapters: true,\n });\n }, [getMilestone, useAbsoluteFooter, milestoneId, userType]);\n\n if (isConfigProcessing || isMilestoneProcessing) return <MilestoneEditLoader />;\n\n if (isMilestoneProcessingFailed || isConfigProcessingFailed) {\n return <p>Error</p>;\n }\n\n return configData && formDataToUse ? (\n <MilestoneCreate\n flow=\"DRAFT_EDIT\"\n board={board}\n schoolData={schoolData}\n studentId={studentId}\n studentName={titleCase(studentName)}\n height={height}\n formData={formDataToUse}\n config={configData}\n onFormDataChange={handleFormDataChange}\n onPreSubmit={handlePreSubmit}\n onExit={handleExit}\n onChapterExitWarning={handleChapterExitWarning}\n userType={userType}\n grade={grade}\n milestoneId={milestoneId}\n isGoalCreation={true}\n courseStream={currentMilestoneData?.course_stream || courseStream}\n classRatio={classRatio}\n enrollmentType={enrollmentType}\n canDeleteGoal={canDeleteGoal}\n onDeleteGoal={onDeleteGoal}\n useAbsoluteFooter={useAbsoluteFooter}\n disablePublish={disablePublish}\n />\n ) : null;\n },\n);\n\nexport default GoalDraftEditContainer;\n"],"names":["GoalDraftEditContainer","memo","studentName","studentId","height","formDataProp","handleFormDataChange","handlePreSubmit","handleExit","handleChapterExitWarning","userType","board","schoolData","grade","milestoneId","currentCountryCode","courseStream","classRatio","enrollmentType","useAbsoluteFooter","disablePublish","onDeleteGoal","getConfig","configData","isConfigProcessing","isConfigProcessingFailed","useGetMileStoneConfig","useEffect","getMilestone","currentMilestoneData","isMilestoneProcessing","isMilestoneProcessingFailed","useMilestoneGet","convertedData","useMemo","transformGoalData","formDataToUse","canDeleteGoal","jsx","MilestoneEditLoader","MilestoneCreate","titleCase","GoalDraftEdit"],"mappings":";;;;;;;;AAUA,MAAMA,IAA2DC;AAAA,EAC/D,SAAgC;AAAA,IAC9B,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAUC;AAAA,IACV,kBAAkBC;AAAA,IAClB,aAAaC;AAAA,IACb,QAAQC;AAAA,IACR,sBAAsBC;AAAA,IACtB,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,GACC;AACK,UAAA;AAAA,MACJ,KAAKC;AAAA,MACL,MAAMC;AAAA,MACN,cAAcC;AAAA,MACd,oBAAoBC;AAAA,QAClBC,EAAsB;AAE1B,IAAAC,EAAU,MAAM;AACd,MAAAL,EAAU,IAAI,MAAS;AAAA,IAAA,GACtB,CAACA,CAAS,CAAC;AAER,UAAA;AAAA,MACJ,KAAKM;AAAA,MACL,MAAMC;AAAA,MACN,cAAcC;AAAA,MACd,oBAAoBC;AAAA,IAAA,IAClBC,EAAgBlB,CAAW,GAEzBmB,IAAgBC;AAAA,MACpB,MACEL,KACAN,KACAY,EAAkB;AAAA,QAChB,sBAAAN;AAAA,QACA,QAAQN;AAAA,QACR,cAAAP;AAAA,QACA,gBAAAE;AAAA,QACA,oBAAAH;AAAA,MAAA,CACD;AAAA,MACH,CAACQ,GAAYR,GAAoBG,GAAgBW,GAAsBb,CAAY;AAAA,IAAA,GAG/EoB,IAAgBF,EAAQ,MACxB,CAAC7B,KAAgB,CAAC4B,IAAsB5B,KAAgB4B,IAErD;AAAA,MACL,GAAGA;AAAA,MACH,GAAG5B;AAAA,IAAA,GAEJ,CAACA,GAAc4B,CAAa,CAAC,GAE1B,EAAE,YAAYI,EAAA,KAAkBR,KAAA,gBAAAA,EAAsB,gBAAe,CAAA;AAU3E,WARAF,EAAU,MAAM;AACV,OAAAjB,MAAa,aAAcS,KAAqBT,MAAa,cAC/DkB,EAAad,GAAa;AAAA,QACxB,aAAa;AAAA,QACb,2BAA2B;AAAA,MAAA,CAC5B;AAAA,OACF,CAACc,GAAcT,GAAmBL,GAAaJ,CAAQ,CAAC,GAEvDc,KAAsBM,IAA8B,gBAAAQ,EAACC,GAAoB,CAAA,CAAA,IAEzER,KAA+BN,IAC1B,gBAAAa,EAAC,OAAE,UAAK,QAAA,CAAA,IAGVf,KAAca,IACnB,gBAAAE;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAA7B;AAAA,QACA,YAAAC;AAAA,QACA,WAAAT;AAAA,QACA,aAAasC,YAAUvC,CAAW;AAAA,QAClC,QAAAE;AAAA,QACA,UAAUgC;AAAA,QACV,QAAQb;AAAA,QACR,kBAAkBjB;AAAA,QAClB,aAAaC;AAAA,QACb,QAAQC;AAAA,QACR,sBAAsBC;AAAA,QACtB,UAAAC;AAAA,QACA,OAAAG;AAAA,QACA,aAAAC;AAAA,QACA,gBAAgB;AAAA,QAChB,eAAce,KAAA,gBAAAA,EAAsB,kBAAiBb;AAAA,QACrD,YAAAC;AAAA,QACA,gBAAAC;AAAA,QACA,eAAAmB;AAAA,QACA,cAAAhB;AAAA,QACA,mBAAAF;AAAA,QACA,gBAAAC;AAAA,MAAA;AAAA,IAEA,IAAA;AAAA,EACN;AACF,GAEAsB,IAAe1C;"}
@@ -13,11 +13,11 @@ import { useLearningPlanScrollSync as Q } from "../../hooks/use-learning-plan-sc
13
13
  import { ELearningPlanView as i } from "../../trial-session-types.js";
14
14
  import { Container as ee, Wrapper as ne } from "./learning-plan-styled.js";
15
15
  const pe = () => {
16
- const { trialHomeData: O, studentId: a, formData: t, isTeacher: e, updateSlideConfig: r } = Y(), {
17
- demo_info: { student_classroom_id: c, stream: g, region_data: b },
18
- intel_student: h,
16
+ const { trialHomeData: b, studentId: a, formData: t, isTeacher: e, updateSlideConfig: r } = Y(), {
17
+ demo_info: { student_classroom_id: c, stream: g, region_data: O },
18
+ intel_student: f,
19
19
  student: x
20
- } = O || {}, { opportunity_country: A = "US" } = b || {}, { enrollment_type: _ } = x || {}, { name: S = "", grade: v = "" } = t || {}, R = z(null), V = q(h == null ? void 0 : h.source), m = t == null ? void 0 : t.learningPlanView, P = t == null ? void 0 : t.learningPlanChapterId, o = t == null ? void 0 : t.learningPlanActiveMilestoneId, d = e ? "TEACHER" : "STUDENT", { resetScrollPosition: E, closeScrollChannel: w } = Q({
20
+ } = b || {}, { opportunity_country: A = "US" } = O || {}, { enrollment_type: _ } = x || {}, { name: T = "", grade: v = "" } = t || {}, R = z(null), V = q(f == null ? void 0 : f.source), m = t == null ? void 0 : t.learningPlanView, P = t == null ? void 0 : t.learningPlanChapterId, o = t == null ? void 0 : t.learningPlanActiveMilestoneId, d = e ? "TEACHER" : "STUDENT", { resetScrollPosition: E, closeScrollChannel: w } = Q({
21
21
  studentClassroomId: c,
22
22
  containerRef: R,
23
23
  isTeacher: e
@@ -40,7 +40,7 @@ const pe = () => {
40
40
  ), D = s(
41
41
  (n) => {
42
42
  e && r({
43
- learningPlanView: i.ADD_TESTS,
43
+ learningPlanView: i.ADD_TEST,
44
44
  learningPlanActiveMilestoneId: n
45
45
  });
46
46
  },
@@ -48,7 +48,7 @@ const pe = () => {
48
48
  ), N = s(
49
49
  (n) => {
50
50
  e && r({
51
- learningPlanView: i.EDIT_MILESTONES,
51
+ learningPlanView: i.EDIT_MILESTONE,
52
52
  learningPlanActiveMilestoneId: n.milestoneId
53
53
  });
54
54
  },
@@ -73,22 +73,22 @@ const pe = () => {
73
73
  U(() => () => {
74
74
  w();
75
75
  }, [w]);
76
- const T = F(
76
+ const I = F(
77
77
  () => t == null ? void 0 : t.learningPlanWorksheetData,
78
78
  // eslint-disable-next-line react-hooks/exhaustive-deps
79
79
  [JSON.stringify(t == null ? void 0 : t.learningPlanWorksheetData)]
80
- ), I = s((n) => {
80
+ ), C = s((n) => {
81
81
  alert(`Error: ${n || "Unknown error"}`);
82
82
  }, []), p = s(
83
83
  (n) => {
84
- var f;
84
+ var h;
85
85
  if (!e) return;
86
- const C = n.node_type === X.PUZZLE_CARD ? "puzzle" : "test";
86
+ const S = n.node_type === X.PUZZLE_CARD ? "puzzle" : "test";
87
87
  r({
88
88
  learningPlanView: i.VIEW_WORKSHEET,
89
89
  learningPlanWorksheetData: {
90
- itemRefs: ((f = n.items) == null ? void 0 : f.map((y) => y.ref)) ?? [],
91
- activityReference: n.learnosity_activity_ref ?? C,
90
+ itemRefs: ((h = n.items) == null ? void 0 : h.map((y) => y.ref)) ?? [],
91
+ activityReference: n.learnosity_activity_ref ?? S,
92
92
  nodeType: n.node_type,
93
93
  worksheetName: n.title,
94
94
  activityType: n.activity_type
@@ -97,18 +97,18 @@ const pe = () => {
97
97
  },
98
98
  [e, r]
99
99
  ), H = s(() => {
100
- if (m === i.VIEW_WORKSHEET && T) {
101
- const { itemRefs: n, activityReference: $, nodeType: C, worksheetName: f, activityType: y } = T;
100
+ if (m === i.VIEW_WORKSHEET && I) {
101
+ const { itemRefs: n, activityReference: $, nodeType: S, worksheetName: h, activityType: y } = I;
102
102
  return /* @__PURE__ */ l(
103
103
  J,
104
104
  {
105
105
  activityReference: $,
106
106
  mode: "preview",
107
- nodeType: C,
107
+ nodeType: S,
108
108
  activityType: y,
109
109
  userType: d,
110
110
  studentId: a,
111
- worksheetName: f,
111
+ worksheetName: h,
112
112
  onBackIconClick: L,
113
113
  items: n,
114
114
  behaviorOverride: { navigationMode: "OPEN" },
@@ -136,9 +136,9 @@ const pe = () => {
136
136
  onResourceAssign: u,
137
137
  onExitResourceAssign: u,
138
138
  onViewResource: () => alert("View Resource"),
139
- onError: I
139
+ onError: C
140
140
  }
141
- ) : m === i.ADD_TESTS && o ? /* @__PURE__ */ l(
141
+ ) : m === i.ADD_TEST && o ? /* @__PURE__ */ l(
142
142
  j,
143
143
  {
144
144
  channelId: `a-t-s-${c}-${o}`,
@@ -149,10 +149,10 @@ const pe = () => {
149
149
  userType: d,
150
150
  onTestAssign: u,
151
151
  onExit: u,
152
- onError: I,
152
+ onError: C,
153
153
  useAbsoluteFooter: !0
154
154
  }
155
- ) : m === i.EDIT_MILESTONES && o ? /* @__PURE__ */ l(
155
+ ) : m === i.EDIT_MILESTONE && o ? /* @__PURE__ */ l(
156
156
  G,
157
157
  {
158
158
  channelId: `e-m-s-${c}-${o}`,
@@ -160,7 +160,7 @@ const pe = () => {
160
160
  height: "100%",
161
161
  grade: v || "",
162
162
  currentCountryCode: A,
163
- studentName: S,
163
+ studentName: T,
164
164
  onExit: u,
165
165
  onPreSubmit: u,
166
166
  userType: d,
@@ -169,14 +169,15 @@ const pe = () => {
169
169
  courseStream: g,
170
170
  classRatio: 1,
171
171
  enrollmentType: _,
172
- useAbsoluteFooter: !0
172
+ useAbsoluteFooter: !0,
173
+ disablePublish: !0
173
174
  }
174
175
  ) : /* @__PURE__ */ l(
175
176
  K,
176
177
  {
177
178
  channelId: `milestone-list-sync-${c}`,
178
179
  userType: d,
179
- studentName: S,
180
+ studentName: T,
180
181
  studentId: a,
181
182
  studentClassroomId: c,
182
183
  milestoneType: V ? "ACTIVE" : "DRAFT",
@@ -192,12 +193,12 @@ const pe = () => {
192
193
  );
193
194
  }, [
194
195
  m,
195
- T,
196
+ I,
196
197
  P,
197
198
  o,
198
199
  c,
199
200
  d,
200
- S,
201
+ T,
201
202
  a,
202
203
  V,
203
204
  g,
@@ -212,7 +213,7 @@ const pe = () => {
212
213
  L,
213
214
  k,
214
215
  u,
215
- I
216
+ C
216
217
  ]);
217
218
  return /* @__PURE__ */ l(ee, { ref: R, $isScrollable: e, children: /* @__PURE__ */ l(
218
219
  ne,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/learning-plan/index.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, type FC } from 'react';\n\nimport type { IChapterDataProps } from '../../../chapters/chapter/chapter-types';\nimport ChapterDetails from '../../../chapters-v2/chapter-details/chapter-details';\nimport type { INodeDataProps } from '../../../chapters-v2/comps/node-card/node-card-types';\nimport GoalDraftEditSync from '../../../milestone/edit/goal-draft-edit-sync';\nimport type { IMilestoneEditProps } from '../../../milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-types';\nimport MilestoneListSync from '../../../milestone/milestone-list-container/milestone-list-sync';\nimport EPResourceAssignSync from '../../../milestone/milestone-resources/resources-assign/resource-assign-sync';\nimport TestsCreationSync from '../../../milestone/milestone-tests/tests-creation/tests-creation-sync';\nimport PreviewWorksheet from '../../../worksheet/worksheet-preview/worksheet-preview';\nimport { NODE_TYPES, type TNodeTypes } from '../../../../types/models/worksheet';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { isPLASource } from '../../helper';\nimport { useLearningPlanScrollSync } from '../../hooks/use-learning-plan-scroll-sync';\nimport { ELearningPlanView } from '../../trial-session-types';\nimport * as Styled from './learning-plan-styled';\n\nconst LearningPlan: FC = () => {\n const { trialHomeData, studentId, formData, isTeacher, updateSlideConfig } =\n useTrialSessionContext();\n const {\n demo_info: { student_classroom_id: studentClassroomId, stream, region_data: regionData },\n intel_student: intelStudent,\n student,\n } = trialHomeData || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n const { enrollment_type: enrollmentType } = student || {};\n const { name = '', grade = '' } = formData || {};\n const containerRef = useRef<HTMLDivElement>(null);\n const isPLA = isPLASource(intelStudent?.source);\n const learningPlanView = formData?.learningPlanView;\n const learningPlanChapterId = formData?.learningPlanChapterId;\n const learningPlanActiveMilestoneId = formData?.learningPlanActiveMilestoneId;\n const userType = isTeacher ? 'TEACHER' : 'STUDENT';\n const { resetScrollPosition, closeScrollChannel } = useLearningPlanScrollSync({\n studentClassroomId,\n containerRef,\n isTeacher,\n });\n\n const handleChapterClick = useCallback(\n (chapter: IChapterDataProps) => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: ELearningPlanView.VIEW_CHAPTER_DETAILS,\n learningPlanChapterId: chapter.id,\n });\n },\n [isTeacher, updateSlideConfig],\n );\n\n const handleAssignResources = useCallback(\n (userMilestoneId: string) => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: ELearningPlanView.ADD_RESOURCE,\n learningPlanActiveMilestoneId: userMilestoneId,\n });\n },\n [isTeacher, updateSlideConfig],\n );\n\n const handleCreateTest = useCallback(\n (userMilestoneId: string) => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: ELearningPlanView.ADD_TESTS,\n learningPlanActiveMilestoneId: userMilestoneId,\n });\n },\n [isTeacher, updateSlideConfig],\n );\n\n const handleEditMilestone = useCallback(\n (editProps: IMilestoneEditProps) => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: ELearningPlanView.EDIT_MILESTONES,\n learningPlanActiveMilestoneId: editProps.milestoneId,\n });\n },\n [isTeacher, updateSlideConfig],\n );\n\n const handleBackToList = useCallback(() => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: undefined,\n learningPlanChapterId: undefined,\n learningPlanWorksheetData: undefined,\n });\n resetScrollPosition();\n }, [isTeacher, updateSlideConfig, resetScrollPosition]);\n\n const handleExitWorksheet = useCallback(() => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: learningPlanChapterId ? ELearningPlanView.VIEW_CHAPTER_DETAILS : undefined,\n learningPlanWorksheetData: undefined,\n });\n resetScrollPosition();\n }, [isTeacher, updateSlideConfig, learningPlanChapterId, resetScrollPosition]);\n\n const handleExitForm = useCallback(() => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: undefined,\n learningPlanActiveMilestoneId: undefined,\n });\n resetScrollPosition();\n }, [isTeacher, updateSlideConfig, resetScrollPosition]);\n\n useEffect(() => {\n return () => {\n closeScrollChannel();\n };\n }, [closeScrollChannel]);\n\n const syncedWorksheetData = useMemo(\n () => formData?.learningPlanWorksheetData,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(formData?.learningPlanWorksheetData)],\n );\n\n const handleError = useCallback((errorMessage?: string) => {\n alert(`Error: ${errorMessage || 'Unknown error'}`);\n }, []);\n\n const handleNodeView = useCallback(\n (worksheetData: INodeDataProps) => {\n if (!isTeacher) return;\n\n const isPuzzleSheet = worksheetData.node_type === NODE_TYPES.PUZZLE_CARD;\n const defaultActivityRef = isPuzzleSheet ? 'puzzle' : 'test';\n\n updateSlideConfig({\n learningPlanView: ELearningPlanView.VIEW_WORKSHEET,\n learningPlanWorksheetData: {\n itemRefs: worksheetData.items?.map(item => item.ref) ?? [],\n activityReference: worksheetData.learnosity_activity_ref ?? defaultActivityRef,\n nodeType: worksheetData.node_type,\n worksheetName: worksheetData.title,\n activityType: worksheetData.activity_type,\n },\n });\n },\n [isTeacher, updateSlideConfig],\n );\n\n const renderContent = useCallback(() => {\n if (learningPlanView === ELearningPlanView.VIEW_WORKSHEET && syncedWorksheetData) {\n const { itemRefs, activityReference, nodeType, worksheetName, activityType } =\n syncedWorksheetData;\n\n return (\n <PreviewWorksheet\n activityReference={activityReference!}\n mode=\"preview\"\n nodeType={nodeType as TNodeTypes}\n activityType={activityType}\n userType={userType}\n studentId={studentId}\n worksheetName={worksheetName}\n onBackIconClick={handleExitWorksheet}\n items={itemRefs}\n behaviorOverride={{ navigationMode: 'OPEN' }}\n layoutOverride={{ containerWidth: '100%' }}\n />\n );\n }\n\n if (learningPlanView === ELearningPlanView.VIEW_CHAPTER_DETAILS && learningPlanChapterId) {\n return (\n <ChapterDetails\n userChapterId={learningPlanChapterId}\n studentId={studentId}\n userType={userType}\n onExit={handleBackToList}\n onNodeView={handleNodeView}\n />\n );\n }\n\n if (learningPlanView === ELearningPlanView.ADD_RESOURCE && learningPlanActiveMilestoneId) {\n return (\n <EPResourceAssignSync\n channelId={`a-r-s-${studentClassroomId}-${learningPlanActiveMilestoneId}`}\n stream={stream}\n studentId={studentId}\n userMilestoneId={learningPlanActiveMilestoneId}\n userType={userType}\n onResourceAssign={handleExitForm}\n onExitResourceAssign={handleExitForm}\n onViewResource={() => alert('View Resource')}\n onError={handleError}\n />\n );\n }\n\n if (learningPlanView === ELearningPlanView.ADD_TESTS && learningPlanActiveMilestoneId) {\n return (\n <TestsCreationSync\n channelId={`a-t-s-${studentClassroomId}-${learningPlanActiveMilestoneId}`}\n courseStream={stream}\n milestoneId={learningPlanActiveMilestoneId}\n studentId={studentId}\n testNumber={1}\n userType={userType}\n onTestAssign={handleExitForm}\n onExit={handleExitForm}\n onError={handleError}\n useAbsoluteFooter\n />\n );\n }\n\n if (learningPlanView === ELearningPlanView.EDIT_MILESTONES && learningPlanActiveMilestoneId) {\n return (\n <GoalDraftEditSync\n channelId={`e-m-s-${studentClassroomId}-${learningPlanActiveMilestoneId}`}\n studentId={studentId}\n height=\"100%\"\n grade={grade || ''}\n currentCountryCode={countryCode}\n studentName={name}\n onExit={handleExitForm}\n onPreSubmit={handleExitForm}\n userType={userType}\n milestoneId={learningPlanActiveMilestoneId}\n isGoalCreation={false}\n courseStream={stream}\n classRatio={1}\n enrollmentType={enrollmentType}\n useAbsoluteFooter\n />\n );\n }\n\n return (\n <MilestoneListSync\n channelId={`milestone-list-sync-${studentClassroomId}`}\n userType={userType}\n studentName={name}\n studentId={studentId}\n studentClassroomId={studentClassroomId}\n milestoneType={isPLA ? 'ACTIVE' : 'DRAFT'}\n onChapterClick={handleChapterClick}\n onAssignResources={handleAssignResources}\n onCreateMilestoneTest={handleCreateTest}\n onEdit={handleEditMilestone}\n courseStream={stream}\n onNodeView={handleNodeView}\n onTestPreview={handleNodeView}\n isDraftModeEnabled\n />\n );\n }, [\n learningPlanView,\n syncedWorksheetData,\n learningPlanChapterId,\n learningPlanActiveMilestoneId,\n studentClassroomId,\n userType,\n name,\n studentId,\n isPLA,\n stream,\n grade,\n countryCode,\n enrollmentType,\n handleChapterClick,\n handleAssignResources,\n handleCreateTest,\n handleEditMilestone,\n handleNodeView,\n handleExitWorksheet,\n handleBackToList,\n handleExitForm,\n handleError,\n ]);\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 $height=\"100%\"\n >\n {renderContent()}\n </Styled.Wrapper>\n </Styled.Container>\n );\n};\n\nexport default LearningPlan;\n"],"names":["LearningPlan","trialHomeData","studentId","formData","isTeacher","updateSlideConfig","useTrialSessionContext","studentClassroomId","stream","regionData","intelStudent","student","countryCode","enrollmentType","name","grade","containerRef","useRef","isPLA","isPLASource","learningPlanView","learningPlanChapterId","learningPlanActiveMilestoneId","userType","resetScrollPosition","closeScrollChannel","useLearningPlanScrollSync","handleChapterClick","useCallback","chapter","ELearningPlanView","handleAssignResources","userMilestoneId","handleCreateTest","handleEditMilestone","editProps","handleBackToList","handleExitWorksheet","handleExitForm","useEffect","syncedWorksheetData","useMemo","handleError","errorMessage","handleNodeView","worksheetData","defaultActivityRef","NODE_TYPES","_a","item","renderContent","itemRefs","activityReference","nodeType","worksheetName","activityType","jsx","PreviewWorksheet","ChapterDetails","EPResourceAssignSync","TestsCreationSync","GoalDraftEditSync","MilestoneListSync","Styled.Container","Styled.Wrapper"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/learning-plan/index.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, type FC } from 'react';\n\nimport type { IChapterDataProps } from '../../../chapters/chapter/chapter-types';\nimport ChapterDetails from '../../../chapters-v2/chapter-details/chapter-details';\nimport type { INodeDataProps } from '../../../chapters-v2/comps/node-card/node-card-types';\nimport GoalDraftEditSync from '../../../milestone/edit/goal-draft-edit-sync';\nimport type { IMilestoneEditProps } from '../../../milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-types';\nimport MilestoneListSync from '../../../milestone/milestone-list-container/milestone-list-sync';\nimport EPResourceAssignSync from '../../../milestone/milestone-resources/resources-assign/resource-assign-sync';\nimport TestsCreationSync from '../../../milestone/milestone-tests/tests-creation/tests-creation-sync';\nimport PreviewWorksheet from '../../../worksheet/worksheet-preview/worksheet-preview';\nimport { NODE_TYPES, type TNodeTypes } from '../../../../types/models/worksheet';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { isPLASource } from '../../helper';\nimport { useLearningPlanScrollSync } from '../../hooks/use-learning-plan-scroll-sync';\nimport { ELearningPlanView } from '../../trial-session-types';\nimport * as Styled from './learning-plan-styled';\n\nconst LearningPlan: FC = () => {\n const { trialHomeData, studentId, formData, isTeacher, updateSlideConfig } =\n useTrialSessionContext();\n const {\n demo_info: { student_classroom_id: studentClassroomId, stream, region_data: regionData },\n intel_student: intelStudent,\n student,\n } = trialHomeData || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n const { enrollment_type: enrollmentType } = student || {};\n const { name = '', grade = '' } = formData || {};\n const containerRef = useRef<HTMLDivElement>(null);\n const isPLA = isPLASource(intelStudent?.source);\n const learningPlanView = formData?.learningPlanView;\n const learningPlanChapterId = formData?.learningPlanChapterId;\n const learningPlanActiveMilestoneId = formData?.learningPlanActiveMilestoneId;\n const userType = isTeacher ? 'TEACHER' : 'STUDENT';\n const { resetScrollPosition, closeScrollChannel } = useLearningPlanScrollSync({\n studentClassroomId,\n containerRef,\n isTeacher,\n });\n\n const handleChapterClick = useCallback(\n (chapter: IChapterDataProps) => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: ELearningPlanView.VIEW_CHAPTER_DETAILS,\n learningPlanChapterId: chapter.id,\n });\n },\n [isTeacher, updateSlideConfig],\n );\n\n const handleAssignResources = useCallback(\n (userMilestoneId: string) => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: ELearningPlanView.ADD_RESOURCE,\n learningPlanActiveMilestoneId: userMilestoneId,\n });\n },\n [isTeacher, updateSlideConfig],\n );\n\n const handleCreateTest = useCallback(\n (userMilestoneId: string) => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: ELearningPlanView.ADD_TEST,\n learningPlanActiveMilestoneId: userMilestoneId,\n });\n },\n [isTeacher, updateSlideConfig],\n );\n\n const handleEditMilestone = useCallback(\n (editProps: IMilestoneEditProps) => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: ELearningPlanView.EDIT_MILESTONE,\n learningPlanActiveMilestoneId: editProps.milestoneId,\n });\n },\n [isTeacher, updateSlideConfig],\n );\n\n const handleBackToList = useCallback(() => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: undefined,\n learningPlanChapterId: undefined,\n learningPlanWorksheetData: undefined,\n });\n resetScrollPosition();\n }, [isTeacher, updateSlideConfig, resetScrollPosition]);\n\n const handleExitWorksheet = useCallback(() => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: learningPlanChapterId ? ELearningPlanView.VIEW_CHAPTER_DETAILS : undefined,\n learningPlanWorksheetData: undefined,\n });\n resetScrollPosition();\n }, [isTeacher, updateSlideConfig, learningPlanChapterId, resetScrollPosition]);\n\n const handleExitForm = useCallback(() => {\n if (!isTeacher) return;\n\n updateSlideConfig({\n learningPlanView: undefined,\n learningPlanActiveMilestoneId: undefined,\n });\n resetScrollPosition();\n }, [isTeacher, updateSlideConfig, resetScrollPosition]);\n\n useEffect(() => {\n return () => {\n closeScrollChannel();\n };\n }, [closeScrollChannel]);\n\n const syncedWorksheetData = useMemo(\n () => formData?.learningPlanWorksheetData,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(formData?.learningPlanWorksheetData)],\n );\n\n const handleError = useCallback((errorMessage?: string) => {\n alert(`Error: ${errorMessage || 'Unknown error'}`);\n }, []);\n\n const handleNodeView = useCallback(\n (worksheetData: INodeDataProps) => {\n if (!isTeacher) return;\n\n const isPuzzleSheet = worksheetData.node_type === NODE_TYPES.PUZZLE_CARD;\n const defaultActivityRef = isPuzzleSheet ? 'puzzle' : 'test';\n\n updateSlideConfig({\n learningPlanView: ELearningPlanView.VIEW_WORKSHEET,\n learningPlanWorksheetData: {\n itemRefs: worksheetData.items?.map(item => item.ref) ?? [],\n activityReference: worksheetData.learnosity_activity_ref ?? defaultActivityRef,\n nodeType: worksheetData.node_type,\n worksheetName: worksheetData.title,\n activityType: worksheetData.activity_type,\n },\n });\n },\n [isTeacher, updateSlideConfig],\n );\n\n const renderContent = useCallback(() => {\n if (learningPlanView === ELearningPlanView.VIEW_WORKSHEET && syncedWorksheetData) {\n const { itemRefs, activityReference, nodeType, worksheetName, activityType } =\n syncedWorksheetData;\n\n return (\n <PreviewWorksheet\n activityReference={activityReference!}\n mode=\"preview\"\n nodeType={nodeType as TNodeTypes}\n activityType={activityType}\n userType={userType}\n studentId={studentId}\n worksheetName={worksheetName}\n onBackIconClick={handleExitWorksheet}\n items={itemRefs}\n behaviorOverride={{ navigationMode: 'OPEN' }}\n layoutOverride={{ containerWidth: '100%' }}\n />\n );\n }\n\n if (learningPlanView === ELearningPlanView.VIEW_CHAPTER_DETAILS && learningPlanChapterId) {\n return (\n <ChapterDetails\n userChapterId={learningPlanChapterId}\n studentId={studentId}\n userType={userType}\n onExit={handleBackToList}\n onNodeView={handleNodeView}\n />\n );\n }\n\n if (learningPlanView === ELearningPlanView.ADD_RESOURCE && learningPlanActiveMilestoneId) {\n return (\n <EPResourceAssignSync\n channelId={`a-r-s-${studentClassroomId}-${learningPlanActiveMilestoneId}`}\n stream={stream}\n studentId={studentId}\n userMilestoneId={learningPlanActiveMilestoneId}\n userType={userType}\n onResourceAssign={handleExitForm}\n onExitResourceAssign={handleExitForm}\n onViewResource={() => alert('View Resource')}\n onError={handleError}\n />\n );\n }\n\n if (learningPlanView === ELearningPlanView.ADD_TEST && learningPlanActiveMilestoneId) {\n return (\n <TestsCreationSync\n channelId={`a-t-s-${studentClassroomId}-${learningPlanActiveMilestoneId}`}\n courseStream={stream}\n milestoneId={learningPlanActiveMilestoneId}\n studentId={studentId}\n testNumber={1}\n userType={userType}\n onTestAssign={handleExitForm}\n onExit={handleExitForm}\n onError={handleError}\n useAbsoluteFooter\n />\n );\n }\n\n if (learningPlanView === ELearningPlanView.EDIT_MILESTONE && learningPlanActiveMilestoneId) {\n return (\n <GoalDraftEditSync\n channelId={`e-m-s-${studentClassroomId}-${learningPlanActiveMilestoneId}`}\n studentId={studentId}\n height=\"100%\"\n grade={grade || ''}\n currentCountryCode={countryCode}\n studentName={name}\n onExit={handleExitForm}\n onPreSubmit={handleExitForm}\n userType={userType}\n milestoneId={learningPlanActiveMilestoneId}\n isGoalCreation={false}\n courseStream={stream}\n classRatio={1}\n enrollmentType={enrollmentType}\n useAbsoluteFooter\n disablePublish\n />\n );\n }\n\n return (\n <MilestoneListSync\n channelId={`milestone-list-sync-${studentClassroomId}`}\n userType={userType}\n studentName={name}\n studentId={studentId}\n studentClassroomId={studentClassroomId}\n milestoneType={isPLA ? 'ACTIVE' : 'DRAFT'}\n onChapterClick={handleChapterClick}\n onAssignResources={handleAssignResources}\n onCreateMilestoneTest={handleCreateTest}\n onEdit={handleEditMilestone}\n courseStream={stream}\n onNodeView={handleNodeView}\n onTestPreview={handleNodeView}\n isDraftModeEnabled\n />\n );\n }, [\n learningPlanView,\n syncedWorksheetData,\n learningPlanChapterId,\n learningPlanActiveMilestoneId,\n studentClassroomId,\n userType,\n name,\n studentId,\n isPLA,\n stream,\n grade,\n countryCode,\n enrollmentType,\n handleChapterClick,\n handleAssignResources,\n handleCreateTest,\n handleEditMilestone,\n handleNodeView,\n handleExitWorksheet,\n handleBackToList,\n handleExitForm,\n handleError,\n ]);\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 $height=\"100%\"\n >\n {renderContent()}\n </Styled.Wrapper>\n </Styled.Container>\n );\n};\n\nexport default LearningPlan;\n"],"names":["LearningPlan","trialHomeData","studentId","formData","isTeacher","updateSlideConfig","useTrialSessionContext","studentClassroomId","stream","regionData","intelStudent","student","countryCode","enrollmentType","name","grade","containerRef","useRef","isPLA","isPLASource","learningPlanView","learningPlanChapterId","learningPlanActiveMilestoneId","userType","resetScrollPosition","closeScrollChannel","useLearningPlanScrollSync","handleChapterClick","useCallback","chapter","ELearningPlanView","handleAssignResources","userMilestoneId","handleCreateTest","handleEditMilestone","editProps","handleBackToList","handleExitWorksheet","handleExitForm","useEffect","syncedWorksheetData","useMemo","handleError","errorMessage","handleNodeView","worksheetData","defaultActivityRef","NODE_TYPES","_a","item","renderContent","itemRefs","activityReference","nodeType","worksheetName","activityType","jsx","PreviewWorksheet","ChapterDetails","EPResourceAssignSync","TestsCreationSync","GoalDraftEditSync","MilestoneListSync","Styled.Container","Styled.Wrapper"],"mappings":";;;;;;;;;;;;;;AAkBA,MAAMA,KAAmB,MAAM;AAC7B,QAAM,EAAE,eAAAC,GAAe,WAAAC,GAAW,UAAAC,GAAU,WAAAC,GAAW,mBAAAC,EAAA,IACrDC,KACI;AAAA,IACJ,WAAW,EAAE,sBAAsBC,GAAoB,QAAAC,GAAQ,aAAaC,EAAW;AAAA,IACvF,eAAeC;AAAA,IACf,SAAAC;AAAA,EAAA,IACEV,KAAiB,CAAA,GACf,EAAE,qBAAqBW,IAAc,KAAK,IAAIH,KAAc,CAAA,GAC5D,EAAE,iBAAiBI,MAAmBF,KAAW,CAAA,GACjD,EAAE,MAAAG,IAAO,IAAI,OAAAC,IAAQ,GAAG,IAAIZ,KAAY,IACxCa,IAAeC,EAAuB,IAAI,GAC1CC,IAAQC,EAAYT,KAAA,gBAAAA,EAAc,MAAM,GACxCU,IAAmBjB,KAAA,gBAAAA,EAAU,kBAC7BkB,IAAwBlB,KAAA,gBAAAA,EAAU,uBAClCmB,IAAgCnB,KAAA,gBAAAA,EAAU,+BAC1CoB,IAAWnB,IAAY,YAAY,WACnC,EAAE,qBAAAoB,GAAqB,oBAAAC,EAAmB,IAAIC,EAA0B;AAAA,IAC5E,oBAAAnB;AAAA,IACA,cAAAS;AAAA,IACA,WAAAZ;AAAA,EAAA,CACD,GAEKuB,IAAqBC;AAAA,IACzB,CAACC,MAA+B;AAC9B,MAAKzB,KAEaC,EAAA;AAAA,QAChB,kBAAkByB,EAAkB;AAAA,QACpC,uBAAuBD,EAAQ;AAAA,MAAA,CAChC;AAAA,IACH;AAAA,IACA,CAACzB,GAAWC,CAAiB;AAAA,EAAA,GAGzB0B,IAAwBH;AAAA,IAC5B,CAACI,MAA4B;AAC3B,MAAK5B,KAEaC,EAAA;AAAA,QAChB,kBAAkByB,EAAkB;AAAA,QACpC,+BAA+BE;AAAA,MAAA,CAChC;AAAA,IACH;AAAA,IACA,CAAC5B,GAAWC,CAAiB;AAAA,EAAA,GAGzB4B,IAAmBL;AAAA,IACvB,CAACI,MAA4B;AAC3B,MAAK5B,KAEaC,EAAA;AAAA,QAChB,kBAAkByB,EAAkB;AAAA,QACpC,+BAA+BE;AAAA,MAAA,CAChC;AAAA,IACH;AAAA,IACA,CAAC5B,GAAWC,CAAiB;AAAA,EAAA,GAGzB6B,IAAsBN;AAAA,IAC1B,CAACO,MAAmC;AAClC,MAAK/B,KAEaC,EAAA;AAAA,QAChB,kBAAkByB,EAAkB;AAAA,QACpC,+BAA+BK,EAAU;AAAA,MAAA,CAC1C;AAAA,IACH;AAAA,IACA,CAAC/B,GAAWC,CAAiB;AAAA,EAAA,GAGzB+B,IAAmBR,EAAY,MAAM;AACzC,IAAKxB,MAEaC,EAAA;AAAA,MAChB,kBAAkB;AAAA,MAClB,uBAAuB;AAAA,MACvB,2BAA2B;AAAA,IAAA,CAC5B,GACmBmB;EACnB,GAAA,CAACpB,GAAWC,GAAmBmB,CAAmB,CAAC,GAEhDa,IAAsBT,EAAY,MAAM;AAC5C,IAAKxB,MAEaC,EAAA;AAAA,MAChB,kBAAkBgB,IAAwBS,EAAkB,uBAAuB;AAAA,MACnF,2BAA2B;AAAA,IAAA,CAC5B,GACmBN;KACnB,CAACpB,GAAWC,GAAmBgB,GAAuBG,CAAmB,CAAC,GAEvEc,IAAiBV,EAAY,MAAM;AACvC,IAAKxB,MAEaC,EAAA;AAAA,MAChB,kBAAkB;AAAA,MAClB,+BAA+B;AAAA,IAAA,CAChC,GACmBmB;EACnB,GAAA,CAACpB,GAAWC,GAAmBmB,CAAmB,CAAC;AAEtD,EAAAe,EAAU,MACD,MAAM;AACQ,IAAAd;EAAA,GAEpB,CAACA,CAAkB,CAAC;AAEvB,QAAMe,IAAsBC;AAAA,IAC1B,MAAMtC,KAAA,gBAAAA,EAAU;AAAA;AAAA,IAEhB,CAAC,KAAK,UAAUA,KAAA,gBAAAA,EAAU,yBAAyB,CAAC;AAAA,EAAA,GAGhDuC,IAAcd,EAAY,CAACe,MAA0B;AACnD,UAAA,UAAUA,KAAgB,eAAe,EAAE;AAAA,EACnD,GAAG,CAAE,CAAA,GAECC,IAAiBhB;AAAA,IACrB,CAACiB,MAAkC;;AACjC,UAAI,CAACzC,EAAW;AAGV,YAAA0C,IADgBD,EAAc,cAAcE,EAAW,cAClB,WAAW;AAEpC,MAAA1C,EAAA;AAAA,QAChB,kBAAkByB,EAAkB;AAAA,QACpC,2BAA2B;AAAA,UACzB,YAAUkB,IAAAH,EAAc,UAAd,gBAAAG,EAAqB,IAAI,OAAQC,EAAK,SAAQ,CAAC;AAAA,UACzD,mBAAmBJ,EAAc,2BAA2BC;AAAA,UAC5D,UAAUD,EAAc;AAAA,UACxB,eAAeA,EAAc;AAAA,UAC7B,cAAcA,EAAc;AAAA,QAC9B;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACzC,GAAWC,CAAiB;AAAA,EAAA,GAGzB6C,IAAgBtB,EAAY,MAAM;AAClC,QAAAR,MAAqBU,EAAkB,kBAAkBU,GAAqB;AAChF,YAAM,EAAE,UAAAW,GAAU,mBAAAC,GAAmB,UAAAC,GAAU,eAAAC,GAAe,cAAAC,EAC5D,IAAAf;AAGA,aAAA,gBAAAgB;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,mBAAAL;AAAA,UACA,MAAK;AAAA,UACL,UAAAC;AAAA,UACA,cAAAE;AAAA,UACA,UAAAhC;AAAA,UACA,WAAArB;AAAA,UACA,eAAAoD;AAAA,UACA,iBAAiBjB;AAAA,UACjB,OAAOc;AAAA,UACP,kBAAkB,EAAE,gBAAgB,OAAO;AAAA,UAC3C,gBAAgB,EAAE,gBAAgB,OAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAG/C;AAEI,WAAA/B,MAAqBU,EAAkB,wBAAwBT,IAE/D,gBAAAmC;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,eAAerC;AAAA,QACf,WAAAnB;AAAA,QACA,UAAAqB;AAAA,QACA,QAAQa;AAAA,QACR,YAAYQ;AAAA,MAAA;AAAA,IAAA,IAKdxB,MAAqBU,EAAkB,gBAAgBR,IAEvD,gBAAAkC;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,WAAW,SAASpD,CAAkB,IAAIe,CAA6B;AAAA,QACvE,QAAAd;AAAA,QACA,WAAAN;AAAA,QACA,iBAAiBoB;AAAA,QACjB,UAAAC;AAAA,QACA,kBAAkBe;AAAA,QAClB,sBAAsBA;AAAA,QACtB,gBAAgB,MAAM,MAAM,eAAe;AAAA,QAC3C,SAASI;AAAA,MAAA;AAAA,IAAA,IAKXtB,MAAqBU,EAAkB,YAAYR,IAEnD,gBAAAkC;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,WAAW,SAASrD,CAAkB,IAAIe,CAA6B;AAAA,QACvE,cAAcd;AAAA,QACd,aAAac;AAAA,QACb,WAAApB;AAAA,QACA,YAAY;AAAA,QACZ,UAAAqB;AAAA,QACA,cAAce;AAAA,QACd,QAAQA;AAAA,QACR,SAASI;AAAA,QACT,mBAAiB;AAAA,MAAA;AAAA,IAAA,IAKnBtB,MAAqBU,EAAkB,kBAAkBR,IAEzD,gBAAAkC;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,WAAW,SAAStD,CAAkB,IAAIe,CAA6B;AAAA,QACvE,WAAApB;AAAA,QACA,QAAO;AAAA,QACP,OAAOa,KAAS;AAAA,QAChB,oBAAoBH;AAAA,QACpB,aAAaE;AAAA,QACb,QAAQwB;AAAA,QACR,aAAaA;AAAA,QACb,UAAAf;AAAA,QACA,aAAaD;AAAA,QACb,gBAAgB;AAAA,QAChB,cAAcd;AAAA,QACd,YAAY;AAAA,QACZ,gBAAAK;AAAA,QACA,mBAAiB;AAAA,QACjB,gBAAc;AAAA,MAAA;AAAA,IAAA,IAMlB,gBAAA2C;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,WAAW,uBAAuBvD,CAAkB;AAAA,QACpD,UAAAgB;AAAA,QACA,aAAaT;AAAA,QACb,WAAAZ;AAAA,QACA,oBAAAK;AAAA,QACA,eAAeW,IAAQ,WAAW;AAAA,QAClC,gBAAgBS;AAAA,QAChB,mBAAmBI;AAAA,QACnB,uBAAuBE;AAAA,QACvB,QAAQC;AAAA,QACR,cAAc1B;AAAA,QACd,YAAYoC;AAAA,QACZ,eAAeA;AAAA,QACf,oBAAkB;AAAA,MAAA;AAAA,IAAA;AAAA,EACpB,GAED;AAAA,IACDxB;AAAA,IACAoB;AAAA,IACAnB;AAAA,IACAC;AAAA,IACAf;AAAA,IACAgB;AAAA,IACAT;AAAA,IACAZ;AAAA,IACAgB;AAAA,IACAV;AAAA,IACAO;AAAA,IACAH;AAAA,IACAC;AAAA,IACAc;AAAA,IACAI;AAAA,IACAE;AAAA,IACAC;AAAA,IACAU;AAAA,IACAP;AAAA,IACAD;AAAA,IACAE;AAAA,IACAI;AAAA,EAAA,CACD;AAED,2BACGqB,IAAA,EAAiB,KAAK/C,GAAc,eAAeZ,GAClD,UAAA,gBAAAoD;AAAA,IAACQ;AAAAA,IAAA;AAAA,MACC,YAAY5D;AAAA,MACZ,UAAU;AAAA,MACV,eAAeA;AAAA,MACf,IAAG;AAAA,MACH,SAAQ;AAAA,MAEP,UAAc8C,EAAA;AAAA,IAAA;AAAA,EAEnB,EAAA,CAAA;AAEJ;"}
@@ -1,4 +1,4 @@
1
- var t = /* @__PURE__ */ ((E) => (E.FIVE_MIN = "5min", E.FIFTEEN_MIN = "15min", E))(t || {}), I = /* @__PURE__ */ ((E) => (E.ADD_RESOURCE = "add-resource", E.ADD_TESTS = "add-tests", E.EDIT_MILESTONES = "edit-milestones", E.VIEW_WORKSHEET = "view-worksheet", E.VIEW_CHAPTER_DETAILS = "view-chapter-details", E))(I || {});
1
+ var t = /* @__PURE__ */ ((E) => (E.FIVE_MIN = "5min", E.FIFTEEN_MIN = "15min", E))(t || {}), I = /* @__PURE__ */ ((E) => (E.ADD_RESOURCE = "add-resource", E.ADD_TEST = "add-test", E.EDIT_MILESTONE = "edit-milestone", E.VIEW_WORKSHEET = "view-worksheet", E.VIEW_CHAPTER_DETAILS = "view-chapter-details", E))(I || {});
2
2
  export {
3
3
  t as EClassTimeAlertLevel,
4
4
  I as ELearningPlanView
@@ -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 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';\nimport type { INodeDataProps } from '../chapters-v2/comps/node-card/node-card-types';\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 program_code?: string;\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 enrollmentType?: TEnrollmentTypes;\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 matchmakingId?: string;\n numberInNameError?: boolean;\n confirmationModalActive?: boolean;\n resetAttempt: boolean;\n // Learning Plan state\n learningPlanView?: ELearningPlanView;\n learningPlanChapterId?: string;\n learningPlanActiveMilestoneId?: string;\n learningPlanWorksheetData?: IWorksheetData;\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 goal_code?: string | null;\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 changeDemoLevel?: boolean;\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, goal?: 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, goal?: string) => void;\n}\n\nexport enum ELearningPlanView {\n ADD_RESOURCE = 'add-resource',\n ADD_TESTS = 'add-tests',\n EDIT_MILESTONES = 'edit-milestones',\n VIEW_WORKSHEET = 'view-worksheet',\n VIEW_CHAPTER_DETAILS = 'view-chapter-details',\n}\n\nexport interface IMilestoneWidgetState {\n selectedTab?: string;\n isExpanded?: boolean;\n}\n\nexport interface IMilestoneState {\n [milestoneId: string]: IMilestoneWidgetState;\n}\n\nexport interface IWorksheetData {\n itemRefs: string[];\n activityReference: string;\n nodeType: INodeDataProps['node_type'];\n worksheetName: string;\n activityType: INodeDataProps['activity_type'];\n}\n\nexport interface ILearningPlanSyncState {\n currentView?: ELearningPlanView;\n chapterId?: string;\n activeMilestoneId?: string;\n worksheetData?: IWorksheetData;\n}\n"],"names":["EClassTimeAlertLevel","ELearningPlanView"],"mappings":"AAkCY,IAAAA,sBAAAA,OACVA,EAAA,WAAW,QACXA,EAAA,cAAc,SAFJA,IAAAA,KAAA,CAAA,CAAA,GAuNAC,sBAAAA,OACVA,EAAA,eAAe,gBACfA,EAAA,YAAY,aACZA,EAAA,kBAAkB,mBAClBA,EAAA,iBAAiB,kBACjBA,EAAA,uBAAuB,wBALbA,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';\nimport type { INodeDataProps } from '../chapters-v2/comps/node-card/node-card-types';\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 program_code?: string;\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 enrollmentType?: TEnrollmentTypes;\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 matchmakingId?: string;\n numberInNameError?: boolean;\n confirmationModalActive?: boolean;\n resetAttempt: boolean;\n // Learning Plan state\n learningPlanView?: ELearningPlanView;\n learningPlanChapterId?: string;\n learningPlanActiveMilestoneId?: string;\n learningPlanWorksheetData?: IWorksheetData;\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 goal_code?: string | null;\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 changeDemoLevel?: boolean;\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, goal?: 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, goal?: string) => void;\n}\n\nexport enum ELearningPlanView {\n ADD_RESOURCE = 'add-resource',\n ADD_TEST = 'add-test',\n EDIT_MILESTONE = 'edit-milestone',\n VIEW_WORKSHEET = 'view-worksheet',\n VIEW_CHAPTER_DETAILS = 'view-chapter-details',\n}\n\nexport interface IMilestoneWidgetState {\n selectedTab?: string;\n isExpanded?: boolean;\n}\n\nexport interface IMilestoneState {\n [milestoneId: string]: IMilestoneWidgetState;\n}\n\nexport interface IWorksheetData {\n itemRefs: string[];\n activityReference: string;\n nodeType: INodeDataProps['node_type'];\n worksheetName: string;\n activityType: INodeDataProps['activity_type'];\n}\n\nexport interface ILearningPlanSyncState {\n currentView?: ELearningPlanView;\n chapterId?: string;\n activeMilestoneId?: string;\n worksheetData?: IWorksheetData;\n}\n"],"names":["EClassTimeAlertLevel","ELearningPlanView"],"mappings":"AAkCY,IAAAA,sBAAAA,OACVA,EAAA,WAAW,QACXA,EAAA,cAAc,SAFJA,IAAAA,KAAA,CAAA,CAAA,GAuNAC,sBAAAA,OACVA,EAAA,eAAe,gBACfA,EAAA,WAAW,YACXA,EAAA,iBAAiB,kBACjBA,EAAA,iBAAiB,kBACjBA,EAAA,uBAAuB,wBALbA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -2,15 +2,15 @@ import { EWorksheetActivity as E } from "../../../types/models/worksheet.js";
2
2
  import { TRIAL_V3_NODE_TYPES as N, ASSESSMENT_NODE_TYPES as R } from "../../sheets/utils/is-v3-worksheet.js";
3
3
  const l = (S) => {
4
4
  const {
5
- nodeType: n,
5
+ nodeType: A,
6
6
  activityType: c,
7
- inClass: A,
7
+ inClass: r,
8
8
  isDesmosEnabled: u = !1,
9
9
  userType: i,
10
- mode: r,
10
+ mode: n,
11
11
  worksheetCompleted: t,
12
12
  behaviorOverride: m
13
- } = S, o = N.includes(n), T = R.includes(n), s = r === "resume", a = {
13
+ } = S, o = N.includes(A), T = R.includes(A), s = n === "resume", a = {
14
14
  hints: s,
15
15
  navigationMode: "OPEN",
16
16
  initialQuestion: s || i === "TEACHER" && !t ? "CURRENT" : "FIRST",
@@ -18,7 +18,7 @@ const l = (S) => {
18
18
  minimumAccuracy: 100,
19
19
  teacherDiscussionEnabled: c === E.LESSON_V3_1,
20
20
  teacherValidationEnabled: c === E.LESSON_V3 || o,
21
- canTeacherValidate: !!A && (c === E.LESSON_V3 || o),
21
+ canTeacherValidate: !!r && (c === E.LESSON_V3 || o),
22
22
  validation: i === "STUDENT" && T ? !!t : !0,
23
23
  review: !1,
24
24
  canAttempt: i === "STUDENT" ? s : !1,
@@ -27,21 +27,22 @@ const l = (S) => {
27
27
  retryButtonLabel: "Retry",
28
28
  canMarkForReview: !1,
29
29
  canShowDesmosCalc: u,
30
- canvasEnabled: r !== "preview",
31
- canScribble: r !== "preview",
30
+ canvasEnabled: n !== "preview",
31
+ canScribble: n !== "preview",
32
32
  solutionHidden: !1
33
33
  };
34
34
  let e;
35
- switch (n) {
35
+ switch (A) {
36
36
  case "LEARNING":
37
37
  case "SAT_MATH_LEARNING":
38
38
  case "SAT_ENGLISH_LEARNING":
39
- return {
39
+ e = {
40
40
  ...a,
41
- navigationMode: c === E.LESSON_V3 && s && !A ? "OPEN" : "LINEAR",
41
+ navigationMode: c === E.LESSON_V3 && s && !r ? "OPEN" : "LINEAR",
42
42
  attemptsAfterTeacherInterventionNeeded: 2,
43
43
  review: !0
44
44
  };
45
+ break;
45
46
  case "GENERAL":
46
47
  case "REMEDIAL":
47
48
  case "RECAP":
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-behavior-helper.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-behavior-helper.ts"],"sourcesContent":["import { EWorksheetActivity, type TNodeTypes } from '../../../types/models/worksheet';\nimport { ASSESSMENT_NODE_TYPES, TRIAL_V3_NODE_TYPES } from '../../sheets/utils/is-v3-worksheet';\nimport type { TUserTypes } from '../../ui/types';\nimport type { IWorksheetBehavior } from './worksheet-types';\n\ninterface IGetWorksheetBehaviour {\n (params: {\n nodeType: TNodeTypes;\n activityType: EWorksheetActivity | null;\n inClass?: boolean;\n isDesmosEnabled?: boolean;\n userType: TUserTypes;\n mode: 'resume' | 'review' | 'preview';\n worksheetCompleted?: boolean;\n behaviorOverride?: Partial<IWorksheetBehavior>;\n }): IWorksheetBehavior;\n}\n\nexport const getWorksheetBehaviour: IGetWorksheetBehaviour = params => {\n const {\n nodeType,\n activityType,\n inClass,\n isDesmosEnabled = false,\n userType,\n mode,\n worksheetCompleted,\n behaviorOverride,\n } = params;\n const isTrialV3 = TRIAL_V3_NODE_TYPES.includes(nodeType);\n const isAssessment = ASSESSMENT_NODE_TYPES.includes(nodeType);\n const canAttempt = mode === 'resume';\n\n const baseBehavior: IWorksheetBehavior = {\n hints: canAttempt,\n navigationMode: 'OPEN',\n initialQuestion:\n canAttempt || (userType === 'TEACHER' && !worksheetCompleted) ? 'CURRENT' : 'FIRST',\n maximumAttempts: isAssessment ? -1 : 99999,\n minimumAccuracy: 100,\n teacherDiscussionEnabled: activityType === EWorksheetActivity.LESSON_V3_1,\n teacherValidationEnabled: activityType === EWorksheetActivity.LESSON_V3 || isTrialV3,\n canTeacherValidate: !!inClass && (activityType === EWorksheetActivity.LESSON_V3 || isTrialV3),\n validation: userType === 'STUDENT' && isAssessment ? !!worksheetCompleted : true,\n review: false,\n canAttempt: userType === 'STUDENT' ? canAttempt : false,\n canExceedAttempts: true,\n checkButtonLabel: 'Check',\n retryButtonLabel: 'Retry',\n canMarkForReview: false,\n canShowDesmosCalc: isDesmosEnabled,\n canvasEnabled: mode !== 'preview',\n canScribble: mode !== 'preview',\n solutionHidden: false,\n };\n\n let behavior: IWorksheetBehavior;\n\n switch (nodeType) {\n // LEARNING SHEETS\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING': {\n return {\n ...baseBehavior,\n navigationMode:\n activityType === EWorksheetActivity.LESSON_V3 && canAttempt && !inClass\n ? 'OPEN'\n : 'LINEAR',\n attemptsAfterTeacherInterventionNeeded: 2,\n review: true,\n };\n }\n\n // RECAP SHEETS\n case 'GENERAL':\n case 'REMEDIAL':\n case 'RECAP':\n case 'SAT_MATH_RECAP':\n behavior = {\n ...baseBehavior,\n maximumAttempts: 1,\n navigationMode: !worksheetCompleted ? 'LINEAR' : 'OPEN',\n review: true,\n };\n break;\n\n // PRACTICE SHEETS\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'PRACTICE':\n behavior = { ...baseBehavior, maximumAttempts: 1, review: true };\n break;\n\n case 'TURING_PRACTICE':\n behavior = { ...baseBehavior, maximumAttempts: 1 };\n break;\n\n //PUZZLE SHEETS\n case 'PUZZLE_CARD':\n behavior = {\n ...baseBehavior,\n navigationMode: 'LINEAR',\n maximumAttempts: -2,\n solutionHidden: true,\n validation: false,\n minimumAccuracy: 0,\n };\n break;\n\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n behavior = { ...baseBehavior, navigationMode: 'LINEAR' };\n break;\n\n // TRIAL SHEETS\n case 'TRIAL_DIAGNOSTIC':\n behavior = { ...baseBehavior, navigationMode: 'ADAPTIVE', review: true };\n break;\n\n case 'TRIAL_BASIC':\n case 'TRIAL_INTERMEDIATE':\n case 'TRIAL_ADVANCED':\n behavior = {\n ...baseBehavior,\n navigationMode: 'CURRENT',\n review: true,\n };\n break;\n\n // ASSESSMENT SHEETS\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'DYNAMIC':\n case 'TURING_ASSESSMENT':\n behavior = {\n ...baseBehavior,\n minimumAccuracy: 0,\n };\n break;\n\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n behavior = {\n ...baseBehavior,\n canMarkForReview: true,\n minimumAccuracy: 0,\n canvasEnabled: false,\n };\n break;\n\n case 'MASTERY':\n behavior = {\n ...baseBehavior,\n hintsTimer: userType === 'STUDENT' && canAttempt ? 90 : undefined,\n navigationMode: !worksheetCompleted ? 'LINEAR' : 'OPEN',\n skippable: true,\n skippableTime: 90,\n solutionHidden: !worksheetCompleted,\n minimumAccuracy: 0,\n canScribble: userType === 'TEACHER' ? worksheetCompleted : true,\n };\n break;\n\n // SUBJECTIVE SHEETS\n case 'SUBJECTIVE':\n case 'TURING_SUBJECTIVE':\n behavior = {\n ...baseBehavior,\n maximumAttempts: 1,\n minimumAccuracy: 0,\n validation: false,\n solutionHidden: !worksheetCompleted,\n };\n break;\n\n // REVISION SHEETS\n case 'LEGACY':\n case 'REVISION':\n behavior = {\n ...baseBehavior,\n maximumAttempts: 2,\n canExceedAttempts: false,\n minimumAccuracy: 0,\n review: true,\n };\n break;\n\n case 'LEVEL2':\n case 'LEVEL3':\n behavior = {\n ...baseBehavior,\n maximumAttempts: 1,\n canExceedAttempts: false,\n minimumAccuracy: 0,\n review: true,\n navigationMode: !worksheetCompleted ? 'LINEAR' : 'OPEN',\n };\n break;\n\n default:\n behavior = {\n ...baseBehavior,\n maximumAttempts: 1,\n navigationMode: !worksheetCompleted ? 'LINEAR' : 'OPEN',\n };\n }\n\n return behaviorOverride ? { ...behavior, ...behaviorOverride } : behavior;\n};\n"],"names":["getWorksheetBehaviour","params","nodeType","activityType","inClass","isDesmosEnabled","userType","mode","worksheetCompleted","behaviorOverride","isTrialV3","TRIAL_V3_NODE_TYPES","isAssessment","ASSESSMENT_NODE_TYPES","canAttempt","baseBehavior","EWorksheetActivity","behavior"],"mappings":"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"}
1
+ {"version":3,"file":"worksheet-behavior-helper.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-behavior-helper.ts"],"sourcesContent":["import { EWorksheetActivity, type TNodeTypes } from '../../../types/models/worksheet';\nimport { ASSESSMENT_NODE_TYPES, TRIAL_V3_NODE_TYPES } from '../../sheets/utils/is-v3-worksheet';\nimport type { TUserTypes } from '../../ui/types';\nimport type { IWorksheetBehavior } from './worksheet-types';\n\ninterface IGetWorksheetBehaviour {\n (params: {\n nodeType: TNodeTypes;\n activityType: EWorksheetActivity | null;\n inClass?: boolean;\n isDesmosEnabled?: boolean;\n userType: TUserTypes;\n mode: 'resume' | 'review' | 'preview';\n worksheetCompleted?: boolean;\n behaviorOverride?: Partial<IWorksheetBehavior>;\n }): IWorksheetBehavior;\n}\n\nexport const getWorksheetBehaviour: IGetWorksheetBehaviour = params => {\n const {\n nodeType,\n activityType,\n inClass,\n isDesmosEnabled = false,\n userType,\n mode,\n worksheetCompleted,\n behaviorOverride,\n } = params;\n const isTrialV3 = TRIAL_V3_NODE_TYPES.includes(nodeType);\n const isAssessment = ASSESSMENT_NODE_TYPES.includes(nodeType);\n const canAttempt = mode === 'resume';\n\n const baseBehavior: IWorksheetBehavior = {\n hints: canAttempt,\n navigationMode: 'OPEN',\n initialQuestion:\n canAttempt || (userType === 'TEACHER' && !worksheetCompleted) ? 'CURRENT' : 'FIRST',\n maximumAttempts: isAssessment ? -1 : 99999,\n minimumAccuracy: 100,\n teacherDiscussionEnabled: activityType === EWorksheetActivity.LESSON_V3_1,\n teacherValidationEnabled: activityType === EWorksheetActivity.LESSON_V3 || isTrialV3,\n canTeacherValidate: !!inClass && (activityType === EWorksheetActivity.LESSON_V3 || isTrialV3),\n validation: userType === 'STUDENT' && isAssessment ? !!worksheetCompleted : true,\n review: false,\n canAttempt: userType === 'STUDENT' ? canAttempt : false,\n canExceedAttempts: true,\n checkButtonLabel: 'Check',\n retryButtonLabel: 'Retry',\n canMarkForReview: false,\n canShowDesmosCalc: isDesmosEnabled,\n canvasEnabled: mode !== 'preview',\n canScribble: mode !== 'preview',\n solutionHidden: false,\n };\n\n let behavior: IWorksheetBehavior;\n\n switch (nodeType) {\n // LEARNING SHEETS\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n behavior = {\n ...baseBehavior,\n navigationMode:\n activityType === EWorksheetActivity.LESSON_V3 && canAttempt && !inClass\n ? 'OPEN'\n : 'LINEAR',\n attemptsAfterTeacherInterventionNeeded: 2,\n review: true,\n };\n break;\n\n // RECAP SHEETS\n case 'GENERAL':\n case 'REMEDIAL':\n case 'RECAP':\n case 'SAT_MATH_RECAP':\n behavior = {\n ...baseBehavior,\n maximumAttempts: 1,\n navigationMode: !worksheetCompleted ? 'LINEAR' : 'OPEN',\n review: true,\n };\n break;\n\n // PRACTICE SHEETS\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'PRACTICE':\n behavior = { ...baseBehavior, maximumAttempts: 1, review: true };\n break;\n\n case 'TURING_PRACTICE':\n behavior = { ...baseBehavior, maximumAttempts: 1 };\n break;\n\n //PUZZLE SHEETS\n case 'PUZZLE_CARD':\n behavior = {\n ...baseBehavior,\n navigationMode: 'LINEAR',\n maximumAttempts: -2,\n solutionHidden: true,\n validation: false,\n minimumAccuracy: 0,\n };\n break;\n\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n behavior = { ...baseBehavior, navigationMode: 'LINEAR' };\n break;\n\n // TRIAL SHEETS\n case 'TRIAL_DIAGNOSTIC':\n behavior = { ...baseBehavior, navigationMode: 'ADAPTIVE', review: true };\n break;\n\n case 'TRIAL_BASIC':\n case 'TRIAL_INTERMEDIATE':\n case 'TRIAL_ADVANCED':\n behavior = {\n ...baseBehavior,\n navigationMode: 'CURRENT',\n review: true,\n };\n break;\n\n // ASSESSMENT SHEETS\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'DYNAMIC':\n case 'TURING_ASSESSMENT':\n behavior = {\n ...baseBehavior,\n minimumAccuracy: 0,\n };\n break;\n\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n behavior = {\n ...baseBehavior,\n canMarkForReview: true,\n minimumAccuracy: 0,\n canvasEnabled: false,\n };\n break;\n\n case 'MASTERY':\n behavior = {\n ...baseBehavior,\n hintsTimer: userType === 'STUDENT' && canAttempt ? 90 : undefined,\n navigationMode: !worksheetCompleted ? 'LINEAR' : 'OPEN',\n skippable: true,\n skippableTime: 90,\n solutionHidden: !worksheetCompleted,\n minimumAccuracy: 0,\n canScribble: userType === 'TEACHER' ? worksheetCompleted : true,\n };\n break;\n\n // SUBJECTIVE SHEETS\n case 'SUBJECTIVE':\n case 'TURING_SUBJECTIVE':\n behavior = {\n ...baseBehavior,\n maximumAttempts: 1,\n minimumAccuracy: 0,\n validation: false,\n solutionHidden: !worksheetCompleted,\n };\n break;\n\n // REVISION SHEETS\n case 'LEGACY':\n case 'REVISION':\n behavior = {\n ...baseBehavior,\n maximumAttempts: 2,\n canExceedAttempts: false,\n minimumAccuracy: 0,\n review: true,\n };\n break;\n\n case 'LEVEL2':\n case 'LEVEL3':\n behavior = {\n ...baseBehavior,\n maximumAttempts: 1,\n canExceedAttempts: false,\n minimumAccuracy: 0,\n review: true,\n navigationMode: !worksheetCompleted ? 'LINEAR' : 'OPEN',\n };\n break;\n\n default:\n behavior = {\n ...baseBehavior,\n maximumAttempts: 1,\n navigationMode: !worksheetCompleted ? 'LINEAR' : 'OPEN',\n };\n }\n\n return behaviorOverride ? { ...behavior, ...behaviorOverride } : behavior;\n};\n"],"names":["getWorksheetBehaviour","params","nodeType","activityType","inClass","isDesmosEnabled","userType","mode","worksheetCompleted","behaviorOverride","isTrialV3","TRIAL_V3_NODE_TYPES","isAssessment","ASSESSMENT_NODE_TYPES","canAttempt","baseBehavior","EWorksheetActivity","behavior"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -587,8 +587,8 @@ export declare enum ELeaderboardType {
587
587
 
588
588
  declare enum ELearningPlanView {
589
589
  ADD_RESOURCE = "add-resource",
590
- ADD_TESTS = "add-tests",
591
- EDIT_MILESTONES = "edit-milestones",
590
+ ADD_TEST = "add-test",
591
+ EDIT_MILESTONE = "edit-milestone",
592
592
  VIEW_WORKSHEET = "view-worksheet",
593
593
  VIEW_CHAPTER_DETAILS = "view-chapter-details"
594
594
  }
@@ -2956,6 +2956,7 @@ declare interface IMileStoneCreateProps {
2956
2956
  onExit?: () => void;
2957
2957
  onPreSubmit?: TCreateOnPresubmit;
2958
2958
  useAbsoluteFooter?: boolean;
2959
+ disablePublish?: boolean;
2959
2960
  }
2960
2961
 
2961
2962
  export declare interface IMilestoneData {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "3.5.56-j1",
3
+ "version": "3.5.56-j3",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"