@cuemath/leap 3.2.30 → 3.2.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/features/homework/homework-card-view.js +21 -20
- package/dist/features/homework/homework-card-view.js.map +1 -1
- package/dist/features/homework/styles.js +6 -7
- package/dist/features/homework/styles.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +48 -46
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +39 -38
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +43 -41
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +61 -59
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +91 -89
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/puzzles/comps/puzzle-card-styled.js +6 -5
- package/dist/features/puzzles/comps/puzzle-card-styled.js.map +1 -1
- package/dist/features/puzzles/comps/puzzle-card.js +33 -31
- package/dist/features/puzzles/comps/puzzle-card.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/index.js +22 -21
- package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/package.json +1 -1
- package/dist/features/chapters/api/chapter.js +0 -10
- package/dist/features/chapters/api/chapter.js.map +0 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { jsxs as A, jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
2
|
+
import { memo as R, useState as V, useCallback as m } from "react";
|
|
3
|
+
import q from "../../../../../../assets/line-icons/icons/edit2.js";
|
|
4
4
|
import y from "../../../../../ui/arrow-tooltip/arrow-tooltip.js";
|
|
5
5
|
import I from "../../../../../ui/buttons/button/button.js";
|
|
6
|
-
import
|
|
7
|
-
import { useUIContext as
|
|
6
|
+
import B from "../../../../../ui/buttons/icon-button/icon-button.js";
|
|
7
|
+
import { useUIContext as H } from "../../../../../ui/context/context.js";
|
|
8
8
|
import w from "../../../../../ui/layout/flex-view.js";
|
|
9
|
-
import
|
|
10
|
-
import { EVENT_NAMES as
|
|
11
|
-
import { invalidateMilestonesData as
|
|
12
|
-
import { useDraftPublish as
|
|
13
|
-
const
|
|
9
|
+
import J from "../../../../../ui/text/text.js";
|
|
10
|
+
import { EVENT_NAMES as K } from "../../../../create/milestone-create-constants.js";
|
|
11
|
+
import { invalidateMilestonesData as Q } from "../../../api/get-milestones.js";
|
|
12
|
+
import { useDraftPublish as W } from "./use-goal-draft-publish.js";
|
|
13
|
+
const me = R((x) => {
|
|
14
14
|
const {
|
|
15
15
|
milestone: c,
|
|
16
16
|
studentId: p,
|
|
@@ -20,42 +20,43 @@ const de = L((x) => {
|
|
|
20
20
|
teacherName: N,
|
|
21
21
|
parentName: T,
|
|
22
22
|
onAddOutcome: s,
|
|
23
|
-
onDraftPublish:
|
|
24
|
-
onEdit:
|
|
25
|
-
courseStream: u
|
|
23
|
+
onDraftPublish: i,
|
|
24
|
+
onEdit: n,
|
|
25
|
+
courseStream: u,
|
|
26
|
+
isTrialSession: k
|
|
26
27
|
} = x, {
|
|
27
28
|
id: e,
|
|
28
29
|
milestone_name: h,
|
|
29
30
|
milestone_date_ts: f,
|
|
30
31
|
milestone_state: a,
|
|
31
|
-
permissions:
|
|
32
|
+
permissions: O,
|
|
32
33
|
goal_category: b,
|
|
33
|
-
goal_code:
|
|
34
|
+
goal_code: r
|
|
34
35
|
} = c, {
|
|
35
36
|
can_delete: _,
|
|
36
37
|
can_update_date: E,
|
|
37
38
|
can_update_plan: d
|
|
38
|
-
} =
|
|
39
|
-
(
|
|
40
|
-
const { id:
|
|
41
|
-
|
|
39
|
+
} = O, { onEvent: C } = H(), [D, g] = V(""), S = a === "OUTCOME_PENDING", X = r && a === "DRAFT", o = k ? !1 : !G || P, M = m(
|
|
40
|
+
(l, F) => {
|
|
41
|
+
const { id: L } = F || {};
|
|
42
|
+
l ? g(l) : (e && Q({
|
|
42
43
|
milestone_state_group: "LIVE",
|
|
43
44
|
course_stream: u,
|
|
44
45
|
student_id: p
|
|
45
|
-
}),
|
|
46
|
-
milestone_id: e ||
|
|
46
|
+
}), i == null || i(e, !0), C(K.DRAFT_EDIT.completed, {
|
|
47
|
+
milestone_id: e || L
|
|
47
48
|
}));
|
|
48
49
|
},
|
|
49
|
-
[e, p,
|
|
50
|
-
), { onPublish:
|
|
50
|
+
[e, p, i, g, C, u]
|
|
51
|
+
), { onPublish: j, isProcessing: v } = W({
|
|
51
52
|
handleGoalPublishComplete: M,
|
|
52
53
|
milestone: c,
|
|
53
54
|
milestoneId: e,
|
|
54
55
|
studentName: $,
|
|
55
56
|
parentName: T,
|
|
56
57
|
teacherName: N
|
|
57
|
-
}),
|
|
58
|
-
|
|
58
|
+
}), U = m(() => {
|
|
59
|
+
n == null || n({
|
|
59
60
|
milestoneId: e,
|
|
60
61
|
milestoneName: h,
|
|
61
62
|
milestoneDueDate: f,
|
|
@@ -64,7 +65,7 @@ const de = L((x) => {
|
|
|
64
65
|
milestoneState: a,
|
|
65
66
|
canDelete: _,
|
|
66
67
|
goalCategory: b,
|
|
67
|
-
goalCode:
|
|
68
|
+
goalCode: r
|
|
68
69
|
});
|
|
69
70
|
}, [
|
|
70
71
|
_,
|
|
@@ -72,12 +73,12 @@ const de = L((x) => {
|
|
|
72
73
|
d,
|
|
73
74
|
f,
|
|
74
75
|
b,
|
|
75
|
-
|
|
76
|
+
r,
|
|
76
77
|
e,
|
|
77
78
|
h,
|
|
78
79
|
a,
|
|
79
|
-
|
|
80
|
-
]),
|
|
80
|
+
n
|
|
81
|
+
]), z = m(() => {
|
|
81
82
|
s == null || s(e);
|
|
82
83
|
}, [s, e]);
|
|
83
84
|
return /* @__PURE__ */ A(w, { $justifyContent: "center", $flexGap: 8, children: [
|
|
@@ -88,9 +89,9 @@ const de = L((x) => {
|
|
|
88
89
|
$flexGapX: 1.5,
|
|
89
90
|
$alignItems: "center",
|
|
90
91
|
$width: "fit-content",
|
|
91
|
-
onClick: (
|
|
92
|
+
onClick: (l) => l.stopPropagation(),
|
|
92
93
|
children: [
|
|
93
|
-
|
|
94
|
+
S && /* @__PURE__ */ t(
|
|
94
95
|
I,
|
|
95
96
|
{
|
|
96
97
|
renderAs: "primary",
|
|
@@ -98,7 +99,7 @@ const de = L((x) => {
|
|
|
98
99
|
label: "Add outcome",
|
|
99
100
|
shape: "square",
|
|
100
101
|
widthX: 10,
|
|
101
|
-
onClick:
|
|
102
|
+
onClick: z
|
|
102
103
|
}
|
|
103
104
|
),
|
|
104
105
|
X && /* @__PURE__ */ t(
|
|
@@ -117,8 +118,8 @@ const de = L((x) => {
|
|
|
117
118
|
widthX: 10,
|
|
118
119
|
label: "Publish",
|
|
119
120
|
size: "small",
|
|
120
|
-
onClick:
|
|
121
|
-
busy:
|
|
121
|
+
onClick: j,
|
|
122
|
+
busy: v,
|
|
122
123
|
disabled: !o
|
|
123
124
|
}
|
|
124
125
|
)
|
|
@@ -132,12 +133,12 @@ const de = L((x) => {
|
|
|
132
133
|
widthX: o ? 5 : 15,
|
|
133
134
|
tooltipItem: o ? "Edit goal" : "Goals can only be edited for students in class.",
|
|
134
135
|
children: /* @__PURE__ */ t(
|
|
135
|
-
|
|
136
|
+
B,
|
|
136
137
|
{
|
|
137
138
|
renderAs: "secondary",
|
|
138
|
-
Icon:
|
|
139
|
+
Icon: q,
|
|
139
140
|
analyticsLabel: "Edit Goal",
|
|
140
|
-
onClick:
|
|
141
|
+
onClick: U,
|
|
141
142
|
size: "xsmall",
|
|
142
143
|
disabled: !o
|
|
143
144
|
}
|
|
@@ -147,10 +148,10 @@ const de = L((x) => {
|
|
|
147
148
|
]
|
|
148
149
|
}
|
|
149
150
|
),
|
|
150
|
-
D && /* @__PURE__ */ t(
|
|
151
|
+
D && /* @__PURE__ */ t(J, { $widthX: 12.5, $renderAs: "ub3-bold", $color: "RED", $align: "center", children: D })
|
|
151
152
|
] });
|
|
152
153
|
});
|
|
153
154
|
export {
|
|
154
|
-
|
|
155
|
+
me as default
|
|
155
156
|
};
|
|
156
157
|
//# sourceMappingURL=goal-action-ctas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goal-action-ctas.js","sources":["../../../../../../../src/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.tsx"],"sourcesContent":["import type { IGoalActionCtas } from './goal-action-ctas-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport Edit2Icon from '../../../../../../assets/line-icons/icons/edit2';\nimport ArrowTooltip from '../../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../../ui/buttons/button/button';\nimport IconButton from '../../../../../ui/buttons/icon-button/icon-button';\nimport { useUIContext } from '../../../../../ui/context/context';\nimport FlexView from '../../../../../ui/layout/flex-view';\nimport Text from '../../../../../ui/text/text';\nimport { EVENT_NAMES } from '../../../../create/milestone-create-constants';\nimport { invalidateMilestonesData } from '../../../api/get-milestones';\nimport { useDraftPublish } from './use-goal-draft-publish';\n\nconst GoalActionCtas: FC<IGoalActionCtas> = memo(props => {\n const {\n milestone,\n studentId,\n isClassOngoing,\n isStudentPresent,\n studentName,\n teacherName,\n parentName,\n onAddOutcome,\n onDraftPublish,\n onEdit,\n courseStream,\n } = props;\n const {\n id: milestoneId,\n milestone_name: milestoneName,\n milestone_date_ts: dueDate,\n milestone_state: milestoneState,\n permissions: milestonePermissions,\n goal_category: goalCategory,\n goal_code: goalCode,\n } = milestone;\n\n const {\n can_delete: canDelete,\n can_update_date: canUpdateDate,\n can_update_plan: canUpdatePlan,\n } = milestonePermissions;\n\n const { onEvent: trackEvent } = useUIContext();\n const [error, setError] = useState('');\n\n const canAddOutcome = milestoneState === 'OUTCOME_PENDING';\n const isDraftMilestone = goalCode && milestoneState === 'DRAFT';\n const canPublishOrEditGoal = !isClassOngoing || isStudentPresent;\n\n const handleGoalPublishComplete = useCallback(\n (errorMessage: string | null, data?: { id: string }) => {\n const { id } = data || {};\n\n if (errorMessage) {\n setError(errorMessage);\n } else {\n if (milestoneId) {\n invalidateMilestonesData({\n milestone_state_group: 'LIVE',\n course_stream: courseStream,\n student_id: studentId,\n });\n }\n onDraftPublish?.(milestoneId, true);\n trackEvent(EVENT_NAMES.DRAFT_EDIT.completed, {\n milestone_id: milestoneId || id,\n });\n }\n },\n [milestoneId, studentId, onDraftPublish, setError, trackEvent, courseStream],\n );\n\n const { onPublish, isProcessing } = useDraftPublish({\n handleGoalPublishComplete,\n milestone,\n milestoneId,\n studentName,\n parentName,\n teacherName,\n });\n\n const handleGoalEdit = useCallback(() => {\n onEdit?.({\n milestoneId,\n milestoneName,\n milestoneDueDate: dueDate,\n isMilestoneChaptersListEditable: canUpdatePlan,\n isMilestoneDateEditable: canUpdateDate,\n milestoneState,\n canDelete,\n goalCategory,\n goalCode,\n });\n }, [\n canDelete,\n canUpdateDate,\n canUpdatePlan,\n dueDate,\n goalCategory,\n goalCode,\n milestoneId,\n milestoneName,\n milestoneState,\n onEdit,\n ]);\n\n const handleOnAddOutcome = useCallback(() => {\n onAddOutcome?.(milestoneId);\n }, [onAddOutcome, milestoneId]);\n\n return (\n <FlexView $justifyContent=\"center\" $flexGap={8}>\n <FlexView\n $flexDirection=\"row\"\n $flexGapX={1.5}\n $alignItems=\"center\"\n $width=\"fit-content\"\n onClick={e => e.stopPropagation()}\n >\n {canAddOutcome && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label=\"Add outcome\"\n shape=\"square\"\n widthX={10}\n onClick={handleOnAddOutcome}\n />\n )}\n\n {isDraftMilestone && (\n <ArrowTooltip\n position=\"bottom\"\n renderAs=\"primary\"\n tooltipItem=\"Goals can only be added for students who have joined the class\"\n hidden={canPublishOrEditGoal}\n widthX={15}\n >\n <Button\n renderAs=\"primary\"\n shape=\"square\"\n widthX={10}\n label=\"Publish\"\n size=\"small\"\n onClick={onPublish}\n busy={isProcessing}\n disabled={!canPublishOrEditGoal}\n />\n </ArrowTooltip>\n )}\n\n {canUpdatePlan && (\n <ArrowTooltip\n position=\"bottom\"\n renderAs=\"primary\"\n widthX={!canPublishOrEditGoal ? 15 : 5}\n tooltipItem={\n !canPublishOrEditGoal\n ? 'Goals can only be edited for students in class.'\n : 'Edit goal'\n }\n >\n <IconButton\n renderAs=\"secondary\"\n Icon={Edit2Icon}\n analyticsLabel=\"Edit Goal\"\n onClick={handleGoalEdit}\n size=\"xsmall\"\n disabled={!canPublishOrEditGoal}\n />\n </ArrowTooltip>\n )}\n </FlexView>\n\n {error && (\n <Text $widthX={12.5} $renderAs=\"ub3-bold\" $color=\"RED\" $align=\"center\">\n {error}\n </Text>\n )}\n </FlexView>\n );\n});\n\nexport default GoalActionCtas;\n"],"names":["GoalActionCtas","memo","props","milestone","studentId","isClassOngoing","isStudentPresent","studentName","teacherName","parentName","onAddOutcome","onDraftPublish","onEdit","courseStream","milestoneId","milestoneName","dueDate","milestoneState","milestonePermissions","goalCategory","goalCode","canDelete","canUpdateDate","canUpdatePlan","trackEvent","useUIContext","error","setError","useState","canAddOutcome","isDraftMilestone","canPublishOrEditGoal","handleGoalPublishComplete","useCallback","errorMessage","data","id","invalidateMilestonesData","EVENT_NAMES","onPublish","isProcessing","useDraftPublish","handleGoalEdit","handleOnAddOutcome","jsxs","FlexView","e","jsx","Button","ArrowTooltip","IconButton","Edit2Icon","Text"],"mappings":";;;;;;;;;;;;AAgBM,MAAAA,KAAsCC,EAAK,CAASC,MAAA;AAClD,QAAA;AAAA,IACJ,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,QAAAC;AAAA,IACA,cAAAC;AAAA,EACE,
|
|
1
|
+
{"version":3,"file":"goal-action-ctas.js","sources":["../../../../../../../src/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.tsx"],"sourcesContent":["import type { IGoalActionCtas } from './goal-action-ctas-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport Edit2Icon from '../../../../../../assets/line-icons/icons/edit2';\nimport ArrowTooltip from '../../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../../ui/buttons/button/button';\nimport IconButton from '../../../../../ui/buttons/icon-button/icon-button';\nimport { useUIContext } from '../../../../../ui/context/context';\nimport FlexView from '../../../../../ui/layout/flex-view';\nimport Text from '../../../../../ui/text/text';\nimport { EVENT_NAMES } from '../../../../create/milestone-create-constants';\nimport { invalidateMilestonesData } from '../../../api/get-milestones';\nimport { useDraftPublish } from './use-goal-draft-publish';\n\nconst GoalActionCtas: FC<IGoalActionCtas> = memo(props => {\n const {\n milestone,\n studentId,\n isClassOngoing,\n isStudentPresent,\n studentName,\n teacherName,\n parentName,\n onAddOutcome,\n onDraftPublish,\n onEdit,\n courseStream,\n isTrialSession,\n } = props;\n const {\n id: milestoneId,\n milestone_name: milestoneName,\n milestone_date_ts: dueDate,\n milestone_state: milestoneState,\n permissions: milestonePermissions,\n goal_category: goalCategory,\n goal_code: goalCode,\n } = milestone;\n\n const {\n can_delete: canDelete,\n can_update_date: canUpdateDate,\n can_update_plan: canUpdatePlan,\n } = milestonePermissions;\n\n const { onEvent: trackEvent } = useUIContext();\n const [error, setError] = useState('');\n\n const canAddOutcome = milestoneState === 'OUTCOME_PENDING';\n const isDraftMilestone = goalCode && milestoneState === 'DRAFT';\n const canPublishOrEditGoal = isTrialSession ? false : !isClassOngoing || isStudentPresent;\n\n const handleGoalPublishComplete = useCallback(\n (errorMessage: string | null, data?: { id: string }) => {\n const { id } = data || {};\n\n if (errorMessage) {\n setError(errorMessage);\n } else {\n if (milestoneId) {\n invalidateMilestonesData({\n milestone_state_group: 'LIVE',\n course_stream: courseStream,\n student_id: studentId,\n });\n }\n onDraftPublish?.(milestoneId, true);\n trackEvent(EVENT_NAMES.DRAFT_EDIT.completed, {\n milestone_id: milestoneId || id,\n });\n }\n },\n [milestoneId, studentId, onDraftPublish, setError, trackEvent, courseStream],\n );\n\n const { onPublish, isProcessing } = useDraftPublish({\n handleGoalPublishComplete,\n milestone,\n milestoneId,\n studentName,\n parentName,\n teacherName,\n });\n\n const handleGoalEdit = useCallback(() => {\n onEdit?.({\n milestoneId,\n milestoneName,\n milestoneDueDate: dueDate,\n isMilestoneChaptersListEditable: canUpdatePlan,\n isMilestoneDateEditable: canUpdateDate,\n milestoneState,\n canDelete,\n goalCategory,\n goalCode,\n });\n }, [\n canDelete,\n canUpdateDate,\n canUpdatePlan,\n dueDate,\n goalCategory,\n goalCode,\n milestoneId,\n milestoneName,\n milestoneState,\n onEdit,\n ]);\n\n const handleOnAddOutcome = useCallback(() => {\n onAddOutcome?.(milestoneId);\n }, [onAddOutcome, milestoneId]);\n\n return (\n <FlexView $justifyContent=\"center\" $flexGap={8}>\n <FlexView\n $flexDirection=\"row\"\n $flexGapX={1.5}\n $alignItems=\"center\"\n $width=\"fit-content\"\n onClick={e => e.stopPropagation()}\n >\n {canAddOutcome && (\n <Button\n renderAs=\"primary\"\n size=\"small\"\n label=\"Add outcome\"\n shape=\"square\"\n widthX={10}\n onClick={handleOnAddOutcome}\n />\n )}\n\n {isDraftMilestone && (\n <ArrowTooltip\n position=\"bottom\"\n renderAs=\"primary\"\n tooltipItem=\"Goals can only be added for students who have joined the class\"\n hidden={canPublishOrEditGoal}\n widthX={15}\n >\n <Button\n renderAs=\"primary\"\n shape=\"square\"\n widthX={10}\n label=\"Publish\"\n size=\"small\"\n onClick={onPublish}\n busy={isProcessing}\n disabled={!canPublishOrEditGoal}\n />\n </ArrowTooltip>\n )}\n\n {canUpdatePlan && (\n <ArrowTooltip\n position=\"bottom\"\n renderAs=\"primary\"\n widthX={!canPublishOrEditGoal ? 15 : 5}\n tooltipItem={\n !canPublishOrEditGoal\n ? 'Goals can only be edited for students in class.'\n : 'Edit goal'\n }\n >\n <IconButton\n renderAs=\"secondary\"\n Icon={Edit2Icon}\n analyticsLabel=\"Edit Goal\"\n onClick={handleGoalEdit}\n size=\"xsmall\"\n disabled={!canPublishOrEditGoal}\n />\n </ArrowTooltip>\n )}\n </FlexView>\n\n {error && (\n <Text $widthX={12.5} $renderAs=\"ub3-bold\" $color=\"RED\" $align=\"center\">\n {error}\n </Text>\n )}\n </FlexView>\n );\n});\n\nexport default GoalActionCtas;\n"],"names":["GoalActionCtas","memo","props","milestone","studentId","isClassOngoing","isStudentPresent","studentName","teacherName","parentName","onAddOutcome","onDraftPublish","onEdit","courseStream","isTrialSession","milestoneId","milestoneName","dueDate","milestoneState","milestonePermissions","goalCategory","goalCode","canDelete","canUpdateDate","canUpdatePlan","trackEvent","useUIContext","error","setError","useState","canAddOutcome","isDraftMilestone","canPublishOrEditGoal","handleGoalPublishComplete","useCallback","errorMessage","data","id","invalidateMilestonesData","EVENT_NAMES","onPublish","isProcessing","useDraftPublish","handleGoalEdit","handleOnAddOutcome","jsxs","FlexView","e","jsx","Button","ArrowTooltip","IconButton","Edit2Icon","Text"],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { jsxs as t, jsx as e, Fragment as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
import { jsxs as t, jsx as e, Fragment as W } from "react/jsx-runtime";
|
|
2
|
+
import { memo as X, useRef as j, useState as H, useMemo as F, useLayoutEffect as K } from "react";
|
|
3
|
+
import V from "../../../../../assets/line-icons/icons/check2.js";
|
|
4
|
+
import v from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
|
|
5
|
+
import U from "../../../../ui/image/image.js";
|
|
6
6
|
import r from "../../../../ui/layout/flex-view.js";
|
|
7
|
-
import
|
|
7
|
+
import Y from "../../../../ui/separator/separator.js";
|
|
8
8
|
import s from "../../../../ui/text/text.js";
|
|
9
|
-
import
|
|
10
|
-
import { GOAL_CATEGORY_BASED_IMAGES as
|
|
11
|
-
import { getRemainingDaysToCompleteGoal as
|
|
12
|
-
import { ChapterProgressSVG as
|
|
13
|
-
import
|
|
14
|
-
const
|
|
15
|
-
({ isClassOngoing: C, isStudentPresent: T, isExpanded:
|
|
9
|
+
import q from "./goals/goal-action-ctas.js";
|
|
10
|
+
import { GOAL_CATEGORY_BASED_IMAGES as z } from "./milestone-constants.js";
|
|
11
|
+
import { getRemainingDaysToCompleteGoal as J, getGoalCategoryBasedColorTheme as Q, getMilestoneWidgetStatusInfo as Z } from "./milestone-utils.js";
|
|
12
|
+
import { ChapterProgressSVG as ee, ChapterProgressSVGCircle as u, StyledCheckIconWrapper as te, MilestoneTitle as re } from "./milestone-widget-styled.js";
|
|
13
|
+
import oe from "./outcome/outcome.js";
|
|
14
|
+
const Ce = X(
|
|
15
|
+
({ isClassOngoing: C, isStudentPresent: T, isExpanded: ne, ...x }) => {
|
|
16
16
|
const {
|
|
17
17
|
milestone: d,
|
|
18
18
|
studentId: A,
|
|
@@ -22,19 +22,20 @@ const ue = W(
|
|
|
22
22
|
userType: y,
|
|
23
23
|
courseStream: G,
|
|
24
24
|
outcomes: i,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
isTrialSession: D,
|
|
26
|
+
onEdit: E,
|
|
27
|
+
onDraftPublish: b,
|
|
28
|
+
onAddOutcome: S
|
|
28
29
|
} = x, {
|
|
29
30
|
milestone_name: m,
|
|
30
|
-
milestone_date_ts:
|
|
31
|
+
milestone_date_ts: k,
|
|
31
32
|
milestone_state: o,
|
|
32
33
|
goal_category: l,
|
|
33
34
|
goal_code: g,
|
|
34
|
-
progress_stat:
|
|
35
|
-
} = d, { completed: p = 0, total: h = 0 } =
|
|
36
|
-
return
|
|
37
|
-
n.current && n.current.scrollHeight > n.current.clientHeight &&
|
|
35
|
+
progress_stat: B
|
|
36
|
+
} = d, { completed: p = 0, total: h = 0 } = B || {}, $ = o === "OUTCOME_PENDING", a = p > 0 ? Math.floor((p / h || 1) * 100) : 0, n = j(null), [O, N] = H(!1), { textColor: R, borderColor: f } = Q(l), c = Z(o), L = ($ ? c == null ? void 0 : c.progressBackgroundColor : f) || "WHITE_5", M = F(() => typeof g == "string", [g]), P = J(k);
|
|
37
|
+
return K(() => {
|
|
38
|
+
n.current && n.current.scrollHeight > n.current.clientHeight && N(!0);
|
|
38
39
|
}, [n]), l ? /* @__PURE__ */ t(
|
|
39
40
|
r,
|
|
40
41
|
{
|
|
@@ -55,7 +56,7 @@ const ue = W(
|
|
|
55
56
|
$alignItems: "center",
|
|
56
57
|
$borderRadiusX: 2,
|
|
57
58
|
children: [
|
|
58
|
-
/* @__PURE__ */ t(
|
|
59
|
+
/* @__PURE__ */ t(ee, { width: "64px", height: "64px", children: [
|
|
59
60
|
/* @__PURE__ */ e(u, { $progress: 0, r: "31", cx: "32", cy: "32" }),
|
|
60
61
|
/* @__PURE__ */ e(
|
|
61
62
|
u,
|
|
@@ -70,22 +71,22 @@ const ue = W(
|
|
|
70
71
|
)
|
|
71
72
|
] }),
|
|
72
73
|
/* @__PURE__ */ e(r, { $widthX: 4, $heightX: 4, $justifyContent: "center", $alignItems: "center", children: /* @__PURE__ */ e(
|
|
73
|
-
|
|
74
|
+
U,
|
|
74
75
|
{
|
|
75
|
-
src:
|
|
76
|
+
src: z[l],
|
|
76
77
|
withLoader: !0,
|
|
77
78
|
width: 40,
|
|
78
79
|
height: 40
|
|
79
80
|
}
|
|
80
81
|
) }),
|
|
81
|
-
a === 100 && /* @__PURE__ */ e(
|
|
82
|
+
a === 100 && /* @__PURE__ */ e(te, { children: /* @__PURE__ */ e(V, { width: 20, height: 20 }) })
|
|
82
83
|
]
|
|
83
84
|
}
|
|
84
85
|
),
|
|
85
86
|
/* @__PURE__ */ t(r, { $flexGap: 16, children: [
|
|
86
87
|
/* @__PURE__ */ t(r, { $flexGap: 4, children: [
|
|
87
88
|
/* @__PURE__ */ t(r, { $flexDirection: "row", $alignItems: "center", $flexGap: 4, children: [
|
|
88
|
-
/* @__PURE__ */ e(s, { $renderAs: "ac4-black", $color:
|
|
89
|
+
/* @__PURE__ */ e(s, { $renderAs: "ac4-black", $color: R, children: l.split("_").join(" ") }),
|
|
89
90
|
$ && /* @__PURE__ */ e(
|
|
90
91
|
r,
|
|
91
92
|
{
|
|
@@ -93,7 +94,7 @@ const ue = W(
|
|
|
93
94
|
$gap: 4,
|
|
94
95
|
$gutter: 4,
|
|
95
96
|
$alignItems: "center",
|
|
96
|
-
$background:
|
|
97
|
+
$background: L,
|
|
97
98
|
children: /* @__PURE__ */ e(s, { $renderAs: "ac4", $color: "WHITE", children: "Outcome pending" })
|
|
98
99
|
}
|
|
99
100
|
),
|
|
@@ -110,17 +111,17 @@ const ue = W(
|
|
|
110
111
|
)
|
|
111
112
|
] }),
|
|
112
113
|
/* @__PURE__ */ e(
|
|
113
|
-
|
|
114
|
+
v,
|
|
114
115
|
{
|
|
115
116
|
renderAs: "primary",
|
|
116
117
|
position: "bottom",
|
|
117
118
|
tooltipItem: m,
|
|
118
|
-
hidden: !
|
|
119
|
+
hidden: !O,
|
|
119
120
|
children: /* @__PURE__ */ e(
|
|
120
|
-
|
|
121
|
+
re,
|
|
121
122
|
{
|
|
122
123
|
ref: n,
|
|
123
|
-
$renderAs:
|
|
124
|
+
$renderAs: M ? "ah4" : "ab1",
|
|
124
125
|
$color: "BLACK_1",
|
|
125
126
|
children: m
|
|
126
127
|
}
|
|
@@ -129,29 +130,30 @@ const ue = W(
|
|
|
129
130
|
),
|
|
130
131
|
!!h && o !== "DRAFT" && /* @__PURE__ */ t(s, { $renderAs: "ub3", $color: "BLACK_T_60", children: [
|
|
131
132
|
`${a}% complete`,
|
|
132
|
-
o === "ACTIVE" &&
|
|
133
|
+
o === "ACTIVE" && P
|
|
133
134
|
] })
|
|
134
135
|
] }),
|
|
135
|
-
!!(i != null && i.length) && /* @__PURE__ */ t(
|
|
136
|
-
/* @__PURE__ */ e(
|
|
137
|
-
/* @__PURE__ */ e(
|
|
136
|
+
!!(i != null && i.length) && /* @__PURE__ */ t(W, { children: [
|
|
137
|
+
/* @__PURE__ */ e(Y, { width: 40, height: 1, background: "BLACK_T_15" }),
|
|
138
|
+
/* @__PURE__ */ e(oe, { outcomes: i })
|
|
138
139
|
] })
|
|
139
140
|
] })
|
|
140
141
|
] }),
|
|
141
142
|
y === "TEACHER" && /* @__PURE__ */ e(
|
|
142
|
-
|
|
143
|
+
q,
|
|
143
144
|
{
|
|
144
145
|
milestone: d,
|
|
145
146
|
studentId: A,
|
|
146
147
|
studentName: _,
|
|
147
148
|
teacherName: I ?? "",
|
|
148
149
|
parentName: w ?? "",
|
|
149
|
-
onAddOutcome:
|
|
150
|
+
onAddOutcome: S,
|
|
150
151
|
isClassOngoing: !!C,
|
|
151
152
|
isStudentPresent: !!T,
|
|
152
|
-
onDraftPublish:
|
|
153
|
-
onEdit:
|
|
154
|
-
courseStream: G
|
|
153
|
+
onDraftPublish: b,
|
|
154
|
+
onEdit: E,
|
|
155
|
+
courseStream: G,
|
|
156
|
+
isTrialSession: D
|
|
155
157
|
}
|
|
156
158
|
)
|
|
157
159
|
]
|
|
@@ -160,6 +162,6 @@ const ue = W(
|
|
|
160
162
|
}
|
|
161
163
|
);
|
|
162
164
|
export {
|
|
163
|
-
|
|
165
|
+
Ce as default
|
|
164
166
|
};
|
|
165
167
|
//# sourceMappingURL=milestone-info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"milestone-info.js","sources":["../../../../../../src/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.tsx"],"sourcesContent":["import type { IMileStoneInfoWrapperProps } from './milestone-widget-types';\n\nimport React, { memo, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport Check2Icon from '../../../../../assets/line-icons/icons/check2';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Image from '../../../../ui/image/image';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport GoalActionCtas from './goals/goal-action-ctas';\nimport { GOAL_CATEGORY_BASED_IMAGES } from './milestone-constants';\nimport {\n getGoalCategoryBasedColorTheme,\n getMilestoneWidgetStatusInfo,\n getRemainingDaysToCompleteGoal,\n} from './milestone-utils';\nimport * as Styled from './milestone-widget-styled';\nimport OutcomeWrapper from './outcome/outcome';\n\nconst MilestoneInfoWrapper: React.FC<IMileStoneInfoWrapperProps> = memo(\n ({ isClassOngoing, isStudentPresent, isExpanded, ...restMilestoneInfoWrapperProps }) => {\n const {\n milestone,\n studentId,\n studentName,\n teacherName,\n parentName,\n userType,\n courseStream,\n outcomes,\n onEdit,\n onDraftPublish,\n onAddOutcome,\n } = restMilestoneInfoWrapperProps;\n\n const {\n milestone_name: milestoneName,\n milestone_date_ts: dueDate,\n milestone_state: milestoneState,\n goal_category: goalCategory,\n goal_code: goalCode,\n progress_stat: progressStat,\n } = milestone;\n\n const { completed = 0, total = 0 } = progressStat || {};\n const isOutcomePending = milestoneState === 'OUTCOME_PENDING';\n const progressCompletionPercentage =\n completed > 0 ? Math.floor((completed / total || 1) * 100) : 0;\n\n const titleTextRef = useRef<HTMLDivElement>(null);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const { textColor: goalCategoryTextColor, borderColor } =\n getGoalCategoryBasedColorTheme(goalCategory);\n\n const outcomeStatusInfo = getMilestoneWidgetStatusInfo(milestoneState);\n const backgroundColor =\n (isOutcomePending ? outcomeStatusInfo?.progressBackgroundColor : borderColor) || 'WHITE_5';\n\n const isGoalCreation = useMemo(() => typeof goalCode === 'string', [goalCode]);\n const remainingDays = getRemainingDaysToCompleteGoal(dueDate);\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n if (!goalCategory) return null;\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n $flexGapX={1}\n >\n <FlexView $flexDirection=\"row\" $flexGapX={1.5}>\n <FlexView\n $widthX={4}\n $heightX={4}\n $background=\"WHITE_T_38\"\n $position=\"relative\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $borderRadiusX={2}\n >\n <Styled.ChapterProgressSVG width=\"64px\" height=\"64px\">\n <Styled.ChapterProgressSVGCircle $progress={0} r=\"31\" cx=\"32\" cy=\"32\" />\n <Styled.ChapterProgressSVGCircle\n $progressCircle\n $progressBackground=\"BLACK_1\"\n $progress={progressCompletionPercentage * 2}\n r=\"31\"\n cx=\"32\"\n cy=\"32\"\n />\n </Styled.ChapterProgressSVG>\n\n <FlexView $widthX={4} $heightX={4} $justifyContent=\"center\" $alignItems=\"center\">\n <Image\n src={GOAL_CATEGORY_BASED_IMAGES[goalCategory]}\n withLoader\n width={40}\n height={40}\n />\n </FlexView>\n\n {progressCompletionPercentage === 100 && (\n <Styled.StyledCheckIconWrapper>\n <Check2Icon width={20} height={20} />\n </Styled.StyledCheckIconWrapper>\n )}\n </FlexView>\n\n <FlexView $flexGap={16}>\n <FlexView $flexGap={4}>\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGap={4}>\n <Text $renderAs=\"ac4-black\" $color={goalCategoryTextColor}>\n {goalCategory.split('_').join(' ')}\n </Text>\n\n {isOutcomePending && (\n <FlexView\n $flexDirection=\"row\"\n $gap={4}\n $gutter={4}\n $alignItems=\"center\"\n $background={backgroundColor}\n >\n <Text $renderAs=\"ac4\" $color=\"WHITE\">\n Outcome pending\n </Text>\n </FlexView>\n )}\n\n {milestoneState === 'DRAFT' && (\n <FlexView\n $flexDirection=\"row\"\n $gap={4}\n $gutter={4}\n $alignItems=\"center\"\n $background={borderColor}\n >\n <Text $renderAs=\"ac4\">Draft</Text>\n </FlexView>\n )}\n </FlexView>\n\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={milestoneName}\n hidden={!showTitleTooltip}\n >\n <Styled.MilestoneTitle\n ref={titleTextRef}\n $renderAs={!isGoalCreation ? 'ab1' : 'ah4'}\n $color=\"BLACK_1\"\n >\n {milestoneName}\n </Styled.MilestoneTitle>\n </ArrowTooltip>\n\n {!!total && milestoneState !== 'DRAFT' && (\n <Text $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {`${progressCompletionPercentage}% complete`}\n {milestoneState === 'ACTIVE' && remainingDays}\n </Text>\n )}\n </FlexView>\n\n {!!outcomes?.length && (\n <>\n <Separator width={40} height={1} background=\"BLACK_T_15\" />\n <OutcomeWrapper outcomes={outcomes} />\n </>\n )}\n </FlexView>\n </FlexView>\n\n {userType === 'TEACHER' && (\n <GoalActionCtas\n milestone={milestone}\n studentId={studentId}\n studentName={studentName}\n teacherName={teacherName ?? ''}\n parentName={parentName ?? ''}\n onAddOutcome={onAddOutcome}\n isClassOngoing={Boolean(isClassOngoing)}\n isStudentPresent={Boolean(isStudentPresent)}\n onDraftPublish={onDraftPublish}\n onEdit={onEdit}\n courseStream={courseStream}\n />\n )}\n </FlexView>\n );\n },\n);\n\nexport default MilestoneInfoWrapper;\n"],"names":["MilestoneInfoWrapper","memo","isClassOngoing","isStudentPresent","isExpanded","restMilestoneInfoWrapperProps","milestone","studentId","studentName","teacherName","parentName","userType","courseStream","outcomes","onEdit","onDraftPublish","onAddOutcome","milestoneName","dueDate","milestoneState","goalCategory","goalCode","progressStat","completed","total","isOutcomePending","progressCompletionPercentage","titleTextRef","useRef","showTitleTooltip","setShowTitleTooltip","useState","goalCategoryTextColor","borderColor","getGoalCategoryBasedColorTheme","outcomeStatusInfo","getMilestoneWidgetStatusInfo","backgroundColor","isGoalCreation","useMemo","remainingDays","getRemainingDaysToCompleteGoal","useLayoutEffect","jsxs","FlexView","Styled.ChapterProgressSVG","jsx","Styled.ChapterProgressSVGCircle","Image","GOAL_CATEGORY_BASED_IMAGES","Styled.StyledCheckIconWrapper","Check2Icon","Text","ArrowTooltip","Styled.MilestoneTitle","Fragment","Separator","OutcomeWrapper","GoalActionCtas"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"milestone-info.js","sources":["../../../../../../src/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.tsx"],"sourcesContent":["import type { IMileStoneInfoWrapperProps } from './milestone-widget-types';\n\nimport React, { memo, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport Check2Icon from '../../../../../assets/line-icons/icons/check2';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Image from '../../../../ui/image/image';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport GoalActionCtas from './goals/goal-action-ctas';\nimport { GOAL_CATEGORY_BASED_IMAGES } from './milestone-constants';\nimport {\n getGoalCategoryBasedColorTheme,\n getMilestoneWidgetStatusInfo,\n getRemainingDaysToCompleteGoal,\n} from './milestone-utils';\nimport * as Styled from './milestone-widget-styled';\nimport OutcomeWrapper from './outcome/outcome';\n\nconst MilestoneInfoWrapper: React.FC<IMileStoneInfoWrapperProps> = memo(\n ({ isClassOngoing, isStudentPresent, isExpanded, ...restMilestoneInfoWrapperProps }) => {\n const {\n milestone,\n studentId,\n studentName,\n teacherName,\n parentName,\n userType,\n courseStream,\n outcomes,\n isTrialSession,\n onEdit,\n onDraftPublish,\n onAddOutcome,\n } = restMilestoneInfoWrapperProps;\n\n const {\n milestone_name: milestoneName,\n milestone_date_ts: dueDate,\n milestone_state: milestoneState,\n goal_category: goalCategory,\n goal_code: goalCode,\n progress_stat: progressStat,\n } = milestone;\n\n const { completed = 0, total = 0 } = progressStat || {};\n const isOutcomePending = milestoneState === 'OUTCOME_PENDING';\n const progressCompletionPercentage =\n completed > 0 ? Math.floor((completed / total || 1) * 100) : 0;\n\n const titleTextRef = useRef<HTMLDivElement>(null);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const { textColor: goalCategoryTextColor, borderColor } =\n getGoalCategoryBasedColorTheme(goalCategory);\n\n const outcomeStatusInfo = getMilestoneWidgetStatusInfo(milestoneState);\n const backgroundColor =\n (isOutcomePending ? outcomeStatusInfo?.progressBackgroundColor : borderColor) || 'WHITE_5';\n\n const isGoalCreation = useMemo(() => typeof goalCode === 'string', [goalCode]);\n const remainingDays = getRemainingDaysToCompleteGoal(dueDate);\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n if (!goalCategory) return null;\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n $flexGapX={1}\n >\n <FlexView $flexDirection=\"row\" $flexGapX={1.5}>\n <FlexView\n $widthX={4}\n $heightX={4}\n $background=\"WHITE_T_38\"\n $position=\"relative\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $borderRadiusX={2}\n >\n <Styled.ChapterProgressSVG width=\"64px\" height=\"64px\">\n <Styled.ChapterProgressSVGCircle $progress={0} r=\"31\" cx=\"32\" cy=\"32\" />\n <Styled.ChapterProgressSVGCircle\n $progressCircle\n $progressBackground=\"BLACK_1\"\n $progress={progressCompletionPercentage * 2}\n r=\"31\"\n cx=\"32\"\n cy=\"32\"\n />\n </Styled.ChapterProgressSVG>\n\n <FlexView $widthX={4} $heightX={4} $justifyContent=\"center\" $alignItems=\"center\">\n <Image\n src={GOAL_CATEGORY_BASED_IMAGES[goalCategory]}\n withLoader\n width={40}\n height={40}\n />\n </FlexView>\n\n {progressCompletionPercentage === 100 && (\n <Styled.StyledCheckIconWrapper>\n <Check2Icon width={20} height={20} />\n </Styled.StyledCheckIconWrapper>\n )}\n </FlexView>\n\n <FlexView $flexGap={16}>\n <FlexView $flexGap={4}>\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGap={4}>\n <Text $renderAs=\"ac4-black\" $color={goalCategoryTextColor}>\n {goalCategory.split('_').join(' ')}\n </Text>\n\n {isOutcomePending && (\n <FlexView\n $flexDirection=\"row\"\n $gap={4}\n $gutter={4}\n $alignItems=\"center\"\n $background={backgroundColor}\n >\n <Text $renderAs=\"ac4\" $color=\"WHITE\">\n Outcome pending\n </Text>\n </FlexView>\n )}\n\n {milestoneState === 'DRAFT' && (\n <FlexView\n $flexDirection=\"row\"\n $gap={4}\n $gutter={4}\n $alignItems=\"center\"\n $background={borderColor}\n >\n <Text $renderAs=\"ac4\">Draft</Text>\n </FlexView>\n )}\n </FlexView>\n\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={milestoneName}\n hidden={!showTitleTooltip}\n >\n <Styled.MilestoneTitle\n ref={titleTextRef}\n $renderAs={!isGoalCreation ? 'ab1' : 'ah4'}\n $color=\"BLACK_1\"\n >\n {milestoneName}\n </Styled.MilestoneTitle>\n </ArrowTooltip>\n\n {!!total && milestoneState !== 'DRAFT' && (\n <Text $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {`${progressCompletionPercentage}% complete`}\n {milestoneState === 'ACTIVE' && remainingDays}\n </Text>\n )}\n </FlexView>\n\n {!!outcomes?.length && (\n <>\n <Separator width={40} height={1} background=\"BLACK_T_15\" />\n <OutcomeWrapper outcomes={outcomes} />\n </>\n )}\n </FlexView>\n </FlexView>\n\n {userType === 'TEACHER' && (\n <GoalActionCtas\n milestone={milestone}\n studentId={studentId}\n studentName={studentName}\n teacherName={teacherName ?? ''}\n parentName={parentName ?? ''}\n onAddOutcome={onAddOutcome}\n isClassOngoing={Boolean(isClassOngoing)}\n isStudentPresent={Boolean(isStudentPresent)}\n onDraftPublish={onDraftPublish}\n onEdit={onEdit}\n courseStream={courseStream}\n isTrialSession={isTrialSession}\n />\n )}\n </FlexView>\n );\n },\n);\n\nexport default MilestoneInfoWrapper;\n"],"names":["MilestoneInfoWrapper","memo","isClassOngoing","isStudentPresent","isExpanded","restMilestoneInfoWrapperProps","milestone","studentId","studentName","teacherName","parentName","userType","courseStream","outcomes","isTrialSession","onEdit","onDraftPublish","onAddOutcome","milestoneName","dueDate","milestoneState","goalCategory","goalCode","progressStat","completed","total","isOutcomePending","progressCompletionPercentage","titleTextRef","useRef","showTitleTooltip","setShowTitleTooltip","useState","goalCategoryTextColor","borderColor","getGoalCategoryBasedColorTheme","outcomeStatusInfo","getMilestoneWidgetStatusInfo","backgroundColor","isGoalCreation","useMemo","remainingDays","getRemainingDaysToCompleteGoal","useLayoutEffect","jsxs","FlexView","Styled.ChapterProgressSVG","jsx","Styled.ChapterProgressSVGCircle","Image","GOAL_CATEGORY_BASED_IMAGES","Styled.StyledCheckIconWrapper","Check2Icon","Text","ArrowTooltip","Styled.MilestoneTitle","Fragment","Separator","OutcomeWrapper","GoalActionCtas"],"mappings":"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"}
|