@cuemath/leap 2.8.48-rj-beta-1 → 2.8.49
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/chapters/chapters-list/chapter-item/chapter-item.js +24 -24
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/circle-games/games/web-view/web-view-analytics-events.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-styled.js +2 -3
- package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +62 -56
- 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/milestone-tabs/milestone-tabs.js +102 -98
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +126 -117
- 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 +104 -98
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +1 -0
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js +7 -7
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/tests-list.js +12 -12
- package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +1 -1
- package/dist/features/sheets/resources-list/resource-item/resource-item.js +89 -87
- package/dist/features/sheets/resources-list/resource-item/resource-item.js.map +1 -1
- package/dist/index.d.ts +24 -5
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"milestone-tabs.js","sources":["../../../../../../../src/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.tsx"],"sourcesContent":["import type { IMilestoneTabConfig, IMilestoneTabsProps } from './milestone-tabs-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport ChaptersList from '../../../../../chapters/chapters-list/chapters-list';\nimport { useUIContext } from '../../../../../ui/context/context';\nimport Text from '../../../../../ui/text/text';\nimport MilestoneWidgetResources from '../../../../milestone-resources/resources-list/resources-list';\nimport MilestoneTestsList from '../../../../milestone-tests/tests-list/tests-list';\nimport { getGoalCategoryBasedColorTheme } from '../milestone-utils';\nimport * as Styled from './milestone-tabs-styled';\n\nconst MilestoneTabs: FC<IMilestoneTabsProps> = memo(props => {\n const {\n goalCategory,\n isDraftMilestone,\n isGoalCreation,\n isMilestoneActive,\n userMilestoneId,\n chapters,\n userType,\n canUpdatePlan,\n studentId,\n isOutcomeAdded,\n milestoneState,\n milestonePermissions,\n } = props;\n const {\n onAddChapter,\n onAssignResources,\n onChapterClick,\n onCreateMilestoneTest,\n onPreview,\n onReattempt,\n onReset,\n onResume,\n onReview,\n onStart,\n onTestPreview,\n onTestReview,\n onTestStart,\n onUnAssignSheet,\n } = props;\n const { visible_tabs: visibleTabs } = milestonePermissions;\n const { onEvent: trackEvent } = useUIContext();\n\n const { backgroundColor } = getGoalCategoryBasedColorTheme(\n goalCategory,\n isDraftMilestone,\n isOutcomeAdded,\n );\n\n const TAB_CONFIG: IMilestoneTabConfig = {\n chapters: {\n label: 'Chapters',\n component: (\n <ChaptersList\n milestoneId={userMilestoneId}\n chapters={chapters}\n userType={userType}\n isGoalCreation={isGoalCreation}\n onChapterClick={onChapterClick}\n onAddChapter={onAddChapter}\n canUpdatePlan={Boolean(milestoneState !== 'DRAFT' && canUpdatePlan)}\n isMilestoneActive={isMilestoneActive}\n />\n ),\n },\n tests: {\n label: 'Tests',\n component: (\n <MilestoneTestsList\n isDraftMilestone={isDraftMilestone}\n isChaptersAvailable={chapters.length > 0}\n isMilestoneActive={isMilestoneActive}\n studentId={studentId}\n userMilestoneId={userMilestoneId}\n userType={userType}\n canUpdatePlan={canUpdatePlan}\n onCreateMilestoneTest={onCreateMilestoneTest}\n onTestPreview={onTestPreview}\n onTestStart={onTestStart}\n onTestReview={onTestReview}\n />\n ),\n },\n resources: {\n label: 'Resources',\n component: (\n <MilestoneWidgetResources\n isDraftMilestone={isDraftMilestone}\n isMilestoneActive={isMilestoneActive}\n userMilestoneId={userMilestoneId}\n canUpdatePlan={canUpdatePlan}\n studentId={studentId}\n userType={userType}\n onAssignResources={onAssignResources}\n onUnAssignSheet={onUnAssignSheet}\n onStart={onStart}\n onReset={onReset}\n onPreview={onPreview}\n onReview={onReview}\n onResume={onResume}\n onReattempt={onReattempt}\n />\n ),\n },\n };\n\n const filteredTabConfig =\n (visibleTabs ?? []).length === 0\n ? Object.entries(TAB_CONFIG)\n : Object.entries(TAB_CONFIG).filter(([tabName]) =>\n (visibleTabs ?? []).includes(tabName.toUpperCase()),\n );\n
|
1
|
+
{"version":3,"file":"milestone-tabs.js","sources":["../../../../../../../src/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.tsx"],"sourcesContent":["import type { IMilestoneTabConfig, IMilestoneTabsProps } from './milestone-tabs-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport ChaptersList from '../../../../../chapters/chapters-list/chapters-list';\nimport { useUIContext } from '../../../../../ui/context/context';\nimport Text from '../../../../../ui/text/text';\nimport MilestoneWidgetResources from '../../../../milestone-resources/resources-list/resources-list';\nimport MilestoneTestsList from '../../../../milestone-tests/tests-list/tests-list';\nimport { getGoalCategoryBasedColorTheme } from '../milestone-utils';\nimport * as Styled from './milestone-tabs-styled';\n\nconst MilestoneTabs: FC<IMilestoneTabsProps> = memo(props => {\n const {\n goalCategory,\n isDraftMilestone,\n isGoalCreation,\n isMilestoneActive,\n userMilestoneId,\n chapters,\n userType,\n canUpdatePlan,\n studentId,\n isOutcomeAdded,\n milestoneState,\n milestonePermissions,\n activeMilestoneId,\n activeTabId,\n } = props;\n const {\n onAddChapter,\n onAssignResources,\n onChapterClick,\n onCreateMilestoneTest,\n onPreview,\n onReattempt,\n onReset,\n onResume,\n onReview,\n onStart,\n onTestPreview,\n onTestReview,\n onTestStart,\n onUnAssignSheet,\n onWidgetTabSelection,\n } = props;\n const { visible_tabs: visibleTabs } = milestonePermissions;\n const { onEvent: trackEvent } = useUIContext();\n\n const { backgroundColor } = getGoalCategoryBasedColorTheme(\n goalCategory,\n isDraftMilestone,\n isOutcomeAdded,\n );\n\n const TAB_CONFIG: IMilestoneTabConfig = {\n chapters: {\n label: 'Chapters',\n component: (\n <ChaptersList\n milestoneId={userMilestoneId}\n chapters={chapters}\n userType={userType}\n isGoalCreation={isGoalCreation}\n onChapterClick={onChapterClick}\n onAddChapter={onAddChapter}\n canUpdatePlan={Boolean(milestoneState !== 'DRAFT' && canUpdatePlan)}\n isMilestoneActive={isMilestoneActive}\n />\n ),\n },\n tests: {\n label: 'Tests',\n component: (\n <MilestoneTestsList\n isDraftMilestone={isDraftMilestone}\n isChaptersAvailable={chapters.length > 0}\n isMilestoneActive={isMilestoneActive}\n studentId={studentId}\n userMilestoneId={userMilestoneId}\n userType={userType}\n canUpdatePlan={canUpdatePlan}\n onCreateMilestoneTest={onCreateMilestoneTest}\n onTestPreview={onTestPreview}\n onTestStart={onTestStart}\n onTestReview={onTestReview}\n />\n ),\n },\n resources: {\n label: 'Resources',\n component: (\n <MilestoneWidgetResources\n isDraftMilestone={isDraftMilestone}\n isMilestoneActive={isMilestoneActive}\n userMilestoneId={userMilestoneId}\n canUpdatePlan={canUpdatePlan}\n studentId={studentId}\n userType={userType}\n onAssignResources={onAssignResources}\n onUnAssignSheet={onUnAssignSheet}\n onStart={onStart}\n onReset={onReset}\n onPreview={onPreview}\n onReview={onReview}\n onResume={onResume}\n onReattempt={onReattempt}\n />\n ),\n },\n };\n\n const filteredTabConfig =\n (visibleTabs ?? []).length === 0\n ? Object.entries(TAB_CONFIG)\n : Object.entries(TAB_CONFIG).filter(([tabName]) =>\n (visibleTabs ?? []).includes(tabName.toUpperCase()),\n );\n const [selectedTabName, setSelectedTabName] = useState(\n userMilestoneId === activeMilestoneId ? activeTabId : filteredTabConfig?.[0]?.[0] || 'chapters',\n );\n\n const handleTabChange = useCallback(\n (tabName: keyof IMilestoneTabConfig, ctaLabel: string) => {\n if (activeMilestoneId === userMilestoneId && tabName === selectedTabName) return null;\n\n setSelectedTabName(tabName);\n\n onWidgetTabSelection?.(userMilestoneId, tabName);\n\n trackEvent('clicked', {\n cta: ctaLabel,\n milestone_id: userMilestoneId,\n });\n },\n [activeMilestoneId, userMilestoneId, selectedTabName, onWidgetTabSelection, trackEvent],\n );\n\n if (isDraftMilestone && chapters.length === 0) {\n return (\n <Styled.NoPlanCardWrapper $gutterX={2} $background=\"WHITE_3\">\n <Text $renderAs=\"ab2\" $color=\"RED\">\n No chapter has been assigned\n </Text>\n </Styled.NoPlanCardWrapper>\n );\n }\n\n return (\n <>\n <Styled.TabsWrapper $backgroundColor={backgroundColor} $frames={filteredTabConfig.length}>\n {filteredTabConfig.map(tabConfig => {\n const [tabName, tabInfo] = tabConfig;\n const { label } = tabInfo;\n const isSelected = tabName === selectedTabName;\n\n return (\n <Styled.TabsText\n $renderAs={isSelected ? 'ub3-bold' : 'ub3'}\n $align=\"center\"\n key={tabName}\n $selected={isSelected}\n onClick={() => handleTabChange(tabName as keyof IMilestoneTabConfig, label)}\n >\n {label}\n </Styled.TabsText>\n );\n })}\n </Styled.TabsWrapper>\n\n {TAB_CONFIG[selectedTabName as keyof typeof TAB_CONFIG].component}\n </>\n );\n});\n\nexport default MilestoneTabs;\n"],"names":["MilestoneTabs","memo","props","goalCategory","isDraftMilestone","isGoalCreation","isMilestoneActive","userMilestoneId","chapters","userType","canUpdatePlan","studentId","isOutcomeAdded","milestoneState","milestonePermissions","activeMilestoneId","activeTabId","onAddChapter","onAssignResources","onChapterClick","onCreateMilestoneTest","onPreview","onReattempt","onReset","onResume","onReview","onStart","onTestPreview","onTestReview","onTestStart","onUnAssignSheet","onWidgetTabSelection","visibleTabs","trackEvent","useUIContext","backgroundColor","getGoalCategoryBasedColorTheme","TAB_CONFIG","jsx","ChaptersList","MilestoneTestsList","MilestoneWidgetResources","filteredTabConfig","tabName","selectedTabName","setSelectedTabName","useState","_a","handleTabChange","useCallback","ctaLabel","Styled.NoPlanCardWrapper","Text","jsxs","Fragment","Styled.TabsWrapper","tabConfig","tabInfo","label","isSelected","Styled.TabsText"],"mappings":"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"}
|
@@ -1,17 +1,17 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import { memo as
|
3
|
-
import { useTheme as
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
8
|
-
import
|
9
|
-
import { getGoalCategoryBasedColorTheme as
|
10
|
-
import
|
11
|
-
import { MainContainer as
|
12
|
-
import
|
13
|
-
import { differenceInCalendarDays as
|
14
|
-
const
|
1
|
+
import { jsxs as B, jsx as e } from "react/jsx-runtime";
|
2
|
+
import { memo as Te, useState as fe, useCallback as u, useMemo as W, useEffect as he } from "react";
|
3
|
+
import { useTheme as _e } from "styled-components";
|
4
|
+
import x from "../../../../ui/layout/flex-view.js";
|
5
|
+
import De from "../../../../ui/time-left-timeline/time-left-timeline.js";
|
6
|
+
import Ae from "./goals/goal-action-ctas.js";
|
7
|
+
import Ee from "./milestone-info.js";
|
8
|
+
import ye from "./milestone-tabs/milestone-tabs.js";
|
9
|
+
import { getGoalCategoryBasedColorTheme as Ie } from "./milestone-utils.js";
|
10
|
+
import be from "./milestone-widget-status.js";
|
11
|
+
import { MainContainer as Me, Wrapper as Re, ContentWrapper as Be, Content as We } from "./milestone-widget-styled.js";
|
12
|
+
import xe from "./outcome/outcome.js";
|
13
|
+
import { differenceInCalendarDays as P } from "../../../../../node_modules/date-fns/differenceInCalendarDays.js";
|
14
|
+
const Pe = {
|
15
15
|
primary: {
|
16
16
|
backgroundColor: "WHITE_3",
|
17
17
|
progressBarColor: "BLACK_T_87"
|
@@ -20,162 +20,171 @@ const Be = {
|
|
20
20
|
backgroundColor: "WHITE_3",
|
21
21
|
progressBarColor: "WHITE_5"
|
22
22
|
}
|
23
|
-
},
|
24
|
-
const { milestone:
|
25
|
-
isStudentPresent:
|
26
|
-
isClassOngoing:
|
23
|
+
}, je = Te((S) => {
|
24
|
+
const { milestone: d, studentId: C, isMilestoneActive: T, ...k } = S, {
|
25
|
+
isStudentPresent: c,
|
26
|
+
isClassOngoing: f,
|
27
27
|
userType: a,
|
28
|
-
studentName:
|
28
|
+
studentName: w,
|
29
29
|
parentName: O,
|
30
|
-
teacherName:
|
31
|
-
courseStream:
|
30
|
+
teacherName: v,
|
31
|
+
courseStream: $,
|
32
|
+
activeMilestoneId: h,
|
33
|
+
activeTabId: G,
|
32
34
|
onAddOutcome: m,
|
33
|
-
onChapterClick:
|
34
|
-
onEdit:
|
35
|
-
onCreateMilestoneTest:
|
36
|
-
onPreview:
|
37
|
-
onReattempt:
|
38
|
-
onReset:
|
39
|
-
onResume:
|
40
|
-
onReview:
|
41
|
-
onStart:
|
42
|
-
onDraftPublish:
|
43
|
-
onAddChapter:
|
44
|
-
onAssignResources:
|
45
|
-
onUnAssignSheet:
|
35
|
+
onChapterClick: N,
|
36
|
+
onEdit: _,
|
37
|
+
onCreateMilestoneTest: F,
|
38
|
+
onPreview: V,
|
39
|
+
onReattempt: H,
|
40
|
+
onReset: U,
|
41
|
+
onResume: L,
|
42
|
+
onReview: j,
|
43
|
+
onStart: X,
|
44
|
+
onDraftPublish: D,
|
45
|
+
onAddChapter: K,
|
46
|
+
onAssignResources: Y,
|
47
|
+
onUnAssignSheet: q,
|
46
48
|
onDelete: t,
|
49
|
+
onWidgetTabSelection: z,
|
47
50
|
//* Test sheet callbacks
|
48
|
-
onTestPreview:
|
49
|
-
onTestReview:
|
50
|
-
onTestStart:
|
51
|
-
milestoneType:
|
52
|
-
} =
|
51
|
+
onTestPreview: J,
|
52
|
+
onTestReview: Q,
|
53
|
+
onTestStart: Z,
|
54
|
+
milestoneType: A
|
55
|
+
} = k, {
|
53
56
|
id: n,
|
54
|
-
created_on_ts:
|
57
|
+
created_on_ts: E,
|
55
58
|
milestone_date_ts: r,
|
56
|
-
user_milestone_plan:
|
57
|
-
outcome_data:
|
59
|
+
user_milestone_plan: y,
|
60
|
+
outcome_data: ee,
|
58
61
|
milestone_state: o,
|
59
|
-
permissions:
|
62
|
+
permissions: I,
|
60
63
|
goal_code: s,
|
61
|
-
goal_category:
|
62
|
-
} =
|
63
|
-
|
64
|
-
),
|
65
|
-
|
66
|
-
}, []),
|
67
|
-
() =>
|
68
|
-
[
|
69
|
-
),
|
70
|
-
() =>
|
64
|
+
goal_category: p
|
65
|
+
} = d, [b, g] = fe(
|
66
|
+
T && o === "ACTIVE" || A === "DRAFT"
|
67
|
+
), oe = _e(), { layout: te } = oe, { gutter: ne } = te, re = !!y, { can_update_plan: se } = I, { outcomes: i } = ee || {}, { user_chapters: ae = [] } = y || {}, ie = u(() => {
|
68
|
+
g((l) => !l);
|
69
|
+
}, []), M = o === "DRAFT", R = o === "OUTCOME_ADDED", le = Date.now() > r * 1e3, { progressBarColor: de } = Pe[o === "ACTIVE" ? "primary" : "secondary"], { backgroundColor: ce, borderColor: me } = Ie(p, M, R), pe = W(
|
70
|
+
() => P(r * 1e3, E * 1e3),
|
71
|
+
[E, r]
|
72
|
+
), ge = W(
|
73
|
+
() => P(r * 1e3, Date.now()),
|
71
74
|
[r]
|
72
|
-
),
|
73
|
-
|
74
|
-
}, [
|
75
|
+
), ue = u(() => {
|
76
|
+
g(!0);
|
77
|
+
}, [g]), Ce = u(() => {
|
75
78
|
t == null || t({ milestoneId: n, isGoalCreation: typeof s == "string", milestoneState: o });
|
76
79
|
}, [t, s, n, o]);
|
77
|
-
return
|
78
|
-
|
79
|
-
|
80
|
+
return he(() => {
|
81
|
+
const l = document.getElementById(`milestone-${h}`);
|
82
|
+
l && l.scrollIntoView();
|
83
|
+
}, []), /* @__PURE__ */ B(Me, { id: `milestone-${n}`, children: [
|
84
|
+
/* @__PURE__ */ e(x, { $marginBottom: -ne * 0.875, children: o !== "DRAFT" && !le ? /* @__PURE__ */ e(
|
85
|
+
De,
|
80
86
|
{
|
81
|
-
unitsLeft:
|
82
|
-
totalUnits:
|
87
|
+
unitsLeft: ge,
|
88
|
+
totalUnits: pe,
|
83
89
|
unit: "day",
|
84
|
-
backgroundColor:
|
85
|
-
barBackgroundColor:
|
90
|
+
backgroundColor: de,
|
91
|
+
barBackgroundColor: me,
|
86
92
|
showRemainingTime: !0
|
87
93
|
}
|
88
94
|
) : /* @__PURE__ */ e(
|
89
|
-
|
95
|
+
be,
|
90
96
|
{
|
91
|
-
goalCategory:
|
97
|
+
goalCategory: p,
|
92
98
|
goalCode: s,
|
93
99
|
milestoneState: o,
|
94
100
|
userType: a,
|
95
101
|
milestoneId: n,
|
96
|
-
isStudentPresent:
|
97
|
-
onDraftPublish:
|
102
|
+
isStudentPresent: c,
|
103
|
+
onDraftPublish: D,
|
98
104
|
onAddOutcome: m
|
99
105
|
}
|
100
106
|
) }),
|
101
107
|
/* @__PURE__ */ e(
|
102
|
-
|
108
|
+
Re,
|
103
109
|
{
|
104
|
-
onClick:
|
105
|
-
$background:
|
110
|
+
onClick: ue,
|
111
|
+
$background: ce,
|
106
112
|
$gapX: 1.5,
|
107
113
|
$borderColor: "GREY_2",
|
108
|
-
children: /* @__PURE__ */
|
114
|
+
children: /* @__PURE__ */ B(x, { $flexGapX: s ? 1.5 : 1, children: [
|
109
115
|
/* @__PURE__ */ e(
|
110
|
-
|
116
|
+
Ee,
|
111
117
|
{
|
112
|
-
milestone:
|
113
|
-
onEdit:
|
118
|
+
milestone: d,
|
119
|
+
onEdit: _,
|
114
120
|
onDelete: t,
|
115
|
-
isExpanded:
|
116
|
-
toggleExpand:
|
121
|
+
isExpanded: b,
|
122
|
+
toggleExpand: ie,
|
117
123
|
userType: a,
|
118
|
-
isClassOngoing:
|
119
|
-
isStudentPresent:
|
124
|
+
isClassOngoing: f,
|
125
|
+
isStudentPresent: c,
|
120
126
|
onAddOutcome: m
|
121
127
|
}
|
122
128
|
),
|
123
|
-
a === "TEACHER" &&
|
124
|
-
|
129
|
+
a === "TEACHER" && A !== "DRAFT" && /* @__PURE__ */ e(
|
130
|
+
Ae,
|
125
131
|
{
|
126
|
-
milestone:
|
127
|
-
studentId:
|
128
|
-
studentName:
|
129
|
-
teacherName:
|
132
|
+
milestone: d,
|
133
|
+
studentId: C,
|
134
|
+
studentName: w,
|
135
|
+
teacherName: v ?? "",
|
130
136
|
parentName: O ?? "",
|
131
137
|
onAddOutcome: m,
|
132
|
-
isClassOngoing: !!
|
133
|
-
isStudentPresent: !!
|
134
|
-
onDraftPublish:
|
135
|
-
onEdit:
|
136
|
-
onDelete:
|
137
|
-
courseStream:
|
138
|
+
isClassOngoing: !!f,
|
139
|
+
isStudentPresent: !!c,
|
140
|
+
onDraftPublish: D,
|
141
|
+
onEdit: _,
|
142
|
+
onDelete: Ce,
|
143
|
+
courseStream: $
|
138
144
|
}
|
139
145
|
),
|
140
|
-
i != null && i.length ? /* @__PURE__ */ e(
|
146
|
+
i != null && i.length ? /* @__PURE__ */ e(xe, { outcomes: i }) : void 0
|
141
147
|
] })
|
142
148
|
}
|
143
149
|
),
|
144
|
-
/* @__PURE__ */ e(
|
145
|
-
|
150
|
+
/* @__PURE__ */ e(Be, { $expanded: b, children: /* @__PURE__ */ e(We, { children: /* @__PURE__ */ e(
|
151
|
+
ye,
|
146
152
|
{
|
147
|
-
goalCategory:
|
153
|
+
goalCategory: p,
|
148
154
|
isGoalCreation: !!s,
|
149
|
-
isDraftMilestone:
|
150
|
-
isOutcomeAdded:
|
151
|
-
isMilestoneActive:
|
152
|
-
isPlanAvailable:
|
155
|
+
isDraftMilestone: M,
|
156
|
+
isOutcomeAdded: R,
|
157
|
+
isMilestoneActive: T,
|
158
|
+
isPlanAvailable: re,
|
153
159
|
userMilestoneId: n,
|
154
|
-
chapters:
|
160
|
+
chapters: ae,
|
155
161
|
userType: a,
|
156
|
-
canUpdatePlan:
|
162
|
+
canUpdatePlan: se,
|
157
163
|
milestoneState: o,
|
158
|
-
studentId:
|
159
|
-
onAddChapter:
|
160
|
-
onAssignResources:
|
161
|
-
onChapterClick:
|
162
|
-
onCreateMilestoneTest:
|
163
|
-
onPreview:
|
164
|
-
onReattempt:
|
165
|
-
onReset:
|
166
|
-
onResume:
|
167
|
-
onReview:
|
168
|
-
onStart:
|
169
|
-
onTestPreview:
|
170
|
-
onTestReview:
|
171
|
-
onTestStart:
|
172
|
-
onUnAssignSheet:
|
173
|
-
milestonePermissions:
|
164
|
+
studentId: C,
|
165
|
+
onAddChapter: K,
|
166
|
+
onAssignResources: Y,
|
167
|
+
onChapterClick: N,
|
168
|
+
onCreateMilestoneTest: F,
|
169
|
+
onPreview: V,
|
170
|
+
onReattempt: H,
|
171
|
+
onReset: U,
|
172
|
+
onResume: L,
|
173
|
+
onReview: j,
|
174
|
+
onStart: X,
|
175
|
+
onTestPreview: J,
|
176
|
+
onTestReview: Q,
|
177
|
+
onTestStart: Z,
|
178
|
+
onUnAssignSheet: q,
|
179
|
+
milestonePermissions: I,
|
180
|
+
activeMilestoneId: h,
|
181
|
+
activeTabId: G,
|
182
|
+
onWidgetTabSelection: z
|
174
183
|
}
|
175
184
|
) }) })
|
176
185
|
] });
|
177
186
|
});
|
178
187
|
export {
|
179
|
-
|
188
|
+
je as default
|
180
189
|
};
|
181
190
|
//# sourceMappingURL=milestone-widget.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"milestone-widget.js","sources":["../../../../../../src/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.tsx"],"sourcesContent":["import type {\n IMilestoneVariantConfig,\n IMilestoneWidgetProps,\n TMilestoneWidgetVariant,\n} from './milestone-widget-types';\n\nimport { differenceInCalendarDays } from 'date-fns';\nimport React, { memo, useCallback, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\nimport TimeLeftTimeline from '../../../../ui/time-left-timeline/time-left-timeline';\nimport GoalActionCtas from './goals/goal-action-ctas';\nimport MilestoneInfoWrapper from './milestone-info';\nimport MilestoneTabs from './milestone-tabs/milestone-tabs';\nimport { getGoalCategoryBasedColorTheme } from './milestone-utils';\nimport MilestoneWidgetStatus from './milestone-widget-status';\nimport * as Styled from './milestone-widget-styled';\nimport OutcomeWrapper from './outcome/outcome';\n\nconst VARIANT_CONFIG: Record<TMilestoneWidgetVariant, IMilestoneVariantConfig> = {\n primary: {\n backgroundColor: 'WHITE_3',\n progressBarColor: 'BLACK_T_87',\n },\n secondary: {\n backgroundColor: 'WHITE_3',\n progressBarColor: 'WHITE_5',\n },\n};\n\nconst MilestoneWidget: React.FC<IMilestoneWidgetProps> = memo(props => {\n const { milestone, studentId, isMilestoneActive, ...restMilestoneWidgetProps } = props;\n const {\n isStudentPresent,\n isClassOngoing,\n userType,\n studentName,\n parentName,\n teacherName,\n courseStream,\n onAddOutcome,\n onChapterClick,\n onEdit,\n onCreateMilestoneTest,\n onPreview,\n onReattempt,\n onReset,\n onResume,\n onReview,\n onStart,\n onDraftPublish,\n onAddChapter,\n onAssignResources,\n onUnAssignSheet,\n onDelete,\n //* Test sheet callbacks\n onTestPreview,\n onTestReview,\n onTestStart,\n milestoneType,\n } = restMilestoneWidgetProps;\n\n const {\n id: milestoneId,\n created_on_ts: createdOn,\n milestone_date_ts: dueDate,\n user_milestone_plan: userMileStonePlan,\n outcome_data: outcomeData,\n milestone_state: milestoneState,\n permissions: milestonePermissions,\n goal_code: goalCode,\n goal_category: goalCategory,\n } = milestone;\n\n const [widgetExpanded, setWidgetExpanded] = useState(\n (isMilestoneActive && milestoneState === 'ACTIVE') || milestoneType === 'DRAFT',\n );\n\n const theme = useTheme();\n const { layout } = theme;\n const { gutter } = layout;\n\n const isPlanAvailable = Boolean(userMileStonePlan);\n\n const { can_update_plan: canUpdatePlan } = milestonePermissions;\n const { outcomes } = outcomeData || {};\n\n const { user_chapters: chaptersData = [] } = userMileStonePlan || {};\n\n const toggleExpand = useCallback(() => {\n setWidgetExpanded(prev => !prev);\n }, []);\n\n const isDraftMilestone = milestoneState === 'DRAFT';\n const isOutcomeAdded = milestoneState === 'OUTCOME_ADDED';\n const isDueDatePassed = Date.now() > dueDate * 1000;\n const { progressBarColor } =\n VARIANT_CONFIG[milestoneState === 'ACTIVE' ? 'primary' : 'secondary'];\n const { backgroundColor: goalBackgroundColor, borderColor: goalBorderColor } =\n getGoalCategoryBasedColorTheme(goalCategory, isDraftMilestone, isOutcomeAdded);\n\n const totalDays = useMemo(\n () => differenceInCalendarDays(dueDate * 1000, createdOn * 1000),\n [createdOn, dueDate],\n );\n const remainingDays = useMemo(\n () => differenceInCalendarDays(dueDate * 1000, Date.now()),\n [dueDate],\n );\n\n const handleOnWidgetExpand = useCallback(() => {\n setWidgetExpanded(true);\n }, [setWidgetExpanded]);\n\n const handleGoalDelete = useCallback(() => {\n onDelete?.({ milestoneId, isGoalCreation: typeof goalCode === 'string', milestoneState });\n }, [onDelete, goalCode, milestoneId, milestoneState]);\n\n return (\n <Styled.MainContainer id={`milestone-${milestoneId}`}>\n <FlexView $marginBottom={-gutter * 0.875}>\n {milestoneState !== 'DRAFT' && !isDueDatePassed ? (\n <TimeLeftTimeline\n unitsLeft={remainingDays}\n totalUnits={totalDays}\n unit=\"day\"\n backgroundColor={progressBarColor}\n barBackgroundColor={goalBorderColor}\n showRemainingTime={true}\n />\n ) : (\n <MilestoneWidgetStatus\n goalCategory={goalCategory}\n goalCode={goalCode}\n milestoneState={milestoneState}\n userType={userType}\n milestoneId={milestoneId}\n isStudentPresent={isStudentPresent}\n onDraftPublish={onDraftPublish}\n onAddOutcome={onAddOutcome}\n />\n )}\n </FlexView>\n\n <Styled.Wrapper\n onClick={handleOnWidgetExpand}\n $background={goalBackgroundColor}\n $gapX={1.5}\n $borderColor=\"GREY_2\"\n >\n <FlexView $flexGapX={goalCode ? 1.5 : 1}>\n <MilestoneInfoWrapper\n milestone={milestone}\n onEdit={onEdit}\n onDelete={onDelete}\n isExpanded={widgetExpanded}\n toggleExpand={toggleExpand}\n userType={userType}\n isClassOngoing={isClassOngoing}\n isStudentPresent={isStudentPresent}\n onAddOutcome={onAddOutcome}\n />\n\n {userType === 'TEACHER' && milestoneType !== 'DRAFT' && (\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 onDelete={handleGoalDelete}\n courseStream={courseStream}\n />\n )}\n\n {outcomes?.length ? <OutcomeWrapper outcomes={outcomes} /> : undefined}\n </FlexView>\n </Styled.Wrapper>\n\n <Styled.ContentWrapper $expanded={widgetExpanded}>\n <Styled.Content>\n <MilestoneTabs\n goalCategory={goalCategory}\n isGoalCreation={!!goalCode}\n isDraftMilestone={isDraftMilestone}\n isOutcomeAdded={isOutcomeAdded}\n isMilestoneActive={isMilestoneActive}\n isPlanAvailable={isPlanAvailable}\n userMilestoneId={milestoneId}\n chapters={chaptersData}\n userType={userType}\n canUpdatePlan={canUpdatePlan}\n milestoneState={milestoneState}\n studentId={studentId}\n onAddChapter={onAddChapter}\n onAssignResources={onAssignResources}\n onChapterClick={onChapterClick}\n onCreateMilestoneTest={onCreateMilestoneTest}\n onPreview={onPreview}\n onReattempt={onReattempt}\n onReset={onReset}\n onResume={onResume}\n onReview={onReview}\n onStart={onStart}\n onTestPreview={onTestPreview}\n onTestReview={onTestReview}\n onTestStart={onTestStart}\n onUnAssignSheet={onUnAssignSheet}\n milestonePermissions={milestonePermissions}\n />\n </Styled.Content>\n </Styled.ContentWrapper>\n </Styled.MainContainer>\n );\n});\n\nexport default MilestoneWidget;\n"],"names":["VARIANT_CONFIG","MilestoneWidget","memo","props","milestone","studentId","isMilestoneActive","restMilestoneWidgetProps","isStudentPresent","isClassOngoing","userType","studentName","parentName","teacherName","courseStream","onAddOutcome","onChapterClick","onEdit","onCreateMilestoneTest","onPreview","onReattempt","onReset","onResume","onReview","onStart","onDraftPublish","onAddChapter","onAssignResources","onUnAssignSheet","onDelete","onTestPreview","onTestReview","onTestStart","milestoneType","milestoneId","createdOn","dueDate","userMileStonePlan","outcomeData","milestoneState","milestonePermissions","goalCode","goalCategory","widgetExpanded","setWidgetExpanded","useState","theme","useTheme","layout","gutter","isPlanAvailable","canUpdatePlan","outcomes","chaptersData","toggleExpand","useCallback","prev","isDraftMilestone","isOutcomeAdded","isDueDatePassed","progressBarColor","goalBackgroundColor","goalBorderColor","getGoalCategoryBasedColorTheme","totalDays","useMemo","differenceInCalendarDays","remainingDays","handleOnWidgetExpand","handleGoalDelete","Styled.MainContainer","jsx","FlexView","TimeLeftTimeline","MilestoneWidgetStatus","Styled.Wrapper","jsxs","MilestoneInfoWrapper","GoalActionCtas","OutcomeWrapper","Styled.ContentWrapper","Styled.Content","MilestoneTabs"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"milestone-widget.js","sources":["../../../../../../src/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.tsx"],"sourcesContent":["import type {\n IMilestoneVariantConfig,\n IMilestoneWidgetProps,\n TMilestoneWidgetVariant,\n} from './milestone-widget-types';\n\nimport { differenceInCalendarDays } from 'date-fns';\nimport React, { memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\nimport TimeLeftTimeline from '../../../../ui/time-left-timeline/time-left-timeline';\nimport GoalActionCtas from './goals/goal-action-ctas';\nimport MilestoneInfoWrapper from './milestone-info';\nimport MilestoneTabs from './milestone-tabs/milestone-tabs';\nimport { getGoalCategoryBasedColorTheme } from './milestone-utils';\nimport MilestoneWidgetStatus from './milestone-widget-status';\nimport * as Styled from './milestone-widget-styled';\nimport OutcomeWrapper from './outcome/outcome';\n\nconst VARIANT_CONFIG: Record<TMilestoneWidgetVariant, IMilestoneVariantConfig> = {\n primary: {\n backgroundColor: 'WHITE_3',\n progressBarColor: 'BLACK_T_87',\n },\n secondary: {\n backgroundColor: 'WHITE_3',\n progressBarColor: 'WHITE_5',\n },\n};\n\nconst MilestoneWidget: React.FC<IMilestoneWidgetProps> = memo(props => {\n const { milestone, studentId, isMilestoneActive, ...restMilestoneWidgetProps } = props;\n const {\n isStudentPresent,\n isClassOngoing,\n userType,\n studentName,\n parentName,\n teacherName,\n courseStream,\n activeMilestoneId,\n activeTabId,\n onAddOutcome,\n onChapterClick,\n onEdit,\n onCreateMilestoneTest,\n onPreview,\n onReattempt,\n onReset,\n onResume,\n onReview,\n onStart,\n onDraftPublish,\n onAddChapter,\n onAssignResources,\n onUnAssignSheet,\n onDelete,\n onWidgetTabSelection,\n //* Test sheet callbacks\n onTestPreview,\n onTestReview,\n onTestStart,\n milestoneType,\n } = restMilestoneWidgetProps;\n\n const {\n id: milestoneId,\n created_on_ts: createdOn,\n milestone_date_ts: dueDate,\n user_milestone_plan: userMileStonePlan,\n outcome_data: outcomeData,\n milestone_state: milestoneState,\n permissions: milestonePermissions,\n goal_code: goalCode,\n goal_category: goalCategory,\n } = milestone;\n\n const [widgetExpanded, setWidgetExpanded] = useState(\n (isMilestoneActive && milestoneState === 'ACTIVE') || milestoneType === 'DRAFT',\n );\n\n const theme = useTheme();\n const { layout } = theme;\n const { gutter } = layout;\n\n const isPlanAvailable = Boolean(userMileStonePlan);\n\n const { can_update_plan: canUpdatePlan } = milestonePermissions;\n const { outcomes } = outcomeData || {};\n\n const { user_chapters: chaptersData = [] } = userMileStonePlan || {};\n\n const toggleExpand = useCallback(() => {\n setWidgetExpanded(prev => !prev);\n }, []);\n\n const isDraftMilestone = milestoneState === 'DRAFT';\n const isOutcomeAdded = milestoneState === 'OUTCOME_ADDED';\n const isDueDatePassed = Date.now() > dueDate * 1000;\n const { progressBarColor } =\n VARIANT_CONFIG[milestoneState === 'ACTIVE' ? 'primary' : 'secondary'];\n const { backgroundColor: goalBackgroundColor, borderColor: goalBorderColor } =\n getGoalCategoryBasedColorTheme(goalCategory, isDraftMilestone, isOutcomeAdded);\n\n const totalDays = useMemo(\n () => differenceInCalendarDays(dueDate * 1000, createdOn * 1000),\n [createdOn, dueDate],\n );\n\n const remainingDays = useMemo(\n () => differenceInCalendarDays(dueDate * 1000, Date.now()),\n [dueDate],\n );\n\n const handleOnWidgetExpand = useCallback(() => {\n setWidgetExpanded(true);\n }, [setWidgetExpanded]);\n\n const handleGoalDelete = useCallback(() => {\n onDelete?.({ milestoneId, isGoalCreation: typeof goalCode === 'string', milestoneState });\n }, [onDelete, goalCode, milestoneId, milestoneState]);\n\n useEffect(() => {\n const $element = document.getElementById(`milestone-${activeMilestoneId}`);\n\n if ($element) {\n $element.scrollIntoView();\n }\n //* Disabling the exhaustive-deps rule as we want to run this effect only once\n //* We don't want this to run when activeMilestoneId changes, as it will cause component to scroll into the view every time.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <Styled.MainContainer id={`milestone-${milestoneId}`}>\n <FlexView $marginBottom={-gutter * 0.875}>\n {milestoneState !== 'DRAFT' && !isDueDatePassed ? (\n <TimeLeftTimeline\n unitsLeft={remainingDays}\n totalUnits={totalDays}\n unit=\"day\"\n backgroundColor={progressBarColor}\n barBackgroundColor={goalBorderColor}\n showRemainingTime={true}\n />\n ) : (\n <MilestoneWidgetStatus\n goalCategory={goalCategory}\n goalCode={goalCode}\n milestoneState={milestoneState}\n userType={userType}\n milestoneId={milestoneId}\n isStudentPresent={isStudentPresent}\n onDraftPublish={onDraftPublish}\n onAddOutcome={onAddOutcome}\n />\n )}\n </FlexView>\n\n <Styled.Wrapper\n onClick={handleOnWidgetExpand}\n $background={goalBackgroundColor}\n $gapX={1.5}\n $borderColor=\"GREY_2\"\n >\n <FlexView $flexGapX={goalCode ? 1.5 : 1}>\n <MilestoneInfoWrapper\n milestone={milestone}\n onEdit={onEdit}\n onDelete={onDelete}\n isExpanded={widgetExpanded}\n toggleExpand={toggleExpand}\n userType={userType}\n isClassOngoing={isClassOngoing}\n isStudentPresent={isStudentPresent}\n onAddOutcome={onAddOutcome}\n />\n\n {userType === 'TEACHER' && milestoneType !== 'DRAFT' && (\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 onDelete={handleGoalDelete}\n courseStream={courseStream}\n />\n )}\n\n {outcomes?.length ? <OutcomeWrapper outcomes={outcomes} /> : undefined}\n </FlexView>\n </Styled.Wrapper>\n\n <Styled.ContentWrapper $expanded={widgetExpanded}>\n <Styled.Content>\n <MilestoneTabs\n goalCategory={goalCategory}\n isGoalCreation={!!goalCode}\n isDraftMilestone={isDraftMilestone}\n isOutcomeAdded={isOutcomeAdded}\n isMilestoneActive={isMilestoneActive}\n isPlanAvailable={isPlanAvailable}\n userMilestoneId={milestoneId}\n chapters={chaptersData}\n userType={userType}\n canUpdatePlan={canUpdatePlan}\n milestoneState={milestoneState}\n studentId={studentId}\n onAddChapter={onAddChapter}\n onAssignResources={onAssignResources}\n onChapterClick={onChapterClick}\n onCreateMilestoneTest={onCreateMilestoneTest}\n onPreview={onPreview}\n onReattempt={onReattempt}\n onReset={onReset}\n onResume={onResume}\n onReview={onReview}\n onStart={onStart}\n onTestPreview={onTestPreview}\n onTestReview={onTestReview}\n onTestStart={onTestStart}\n onUnAssignSheet={onUnAssignSheet}\n milestonePermissions={milestonePermissions}\n activeMilestoneId={activeMilestoneId}\n activeTabId={activeTabId}\n onWidgetTabSelection={onWidgetTabSelection}\n />\n </Styled.Content>\n </Styled.ContentWrapper>\n </Styled.MainContainer>\n );\n});\n\nexport default MilestoneWidget;\n"],"names":["VARIANT_CONFIG","MilestoneWidget","memo","props","milestone","studentId","isMilestoneActive","restMilestoneWidgetProps","isStudentPresent","isClassOngoing","userType","studentName","parentName","teacherName","courseStream","activeMilestoneId","activeTabId","onAddOutcome","onChapterClick","onEdit","onCreateMilestoneTest","onPreview","onReattempt","onReset","onResume","onReview","onStart","onDraftPublish","onAddChapter","onAssignResources","onUnAssignSheet","onDelete","onWidgetTabSelection","onTestPreview","onTestReview","onTestStart","milestoneType","milestoneId","createdOn","dueDate","userMileStonePlan","outcomeData","milestoneState","milestonePermissions","goalCode","goalCategory","widgetExpanded","setWidgetExpanded","useState","theme","useTheme","layout","gutter","isPlanAvailable","canUpdatePlan","outcomes","chaptersData","toggleExpand","useCallback","prev","isDraftMilestone","isOutcomeAdded","isDueDatePassed","progressBarColor","goalBackgroundColor","goalBorderColor","getGoalCategoryBasedColorTheme","totalDays","useMemo","differenceInCalendarDays","remainingDays","handleOnWidgetExpand","handleGoalDelete","useEffect","$element","Styled.MainContainer","jsx","FlexView","TimeLeftTimeline","MilestoneWidgetStatus","Styled.Wrapper","jsxs","MilestoneInfoWrapper","GoalActionCtas","OutcomeWrapper","Styled.ContentWrapper","Styled.Content","MilestoneTabs"],"mappings":"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"}
|