@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.
Files changed (23) hide show
  1. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +24 -24
  2. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
  3. package/dist/features/circle-games/games/web-view/web-view-analytics-events.js.map +1 -1
  4. package/dist/features/milestone/create/milestone-create-styled.js +2 -3
  5. package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
  6. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +62 -56
  7. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  8. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +102 -98
  9. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  10. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +126 -117
  11. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  12. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +104 -98
  13. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  14. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +1 -0
  15. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  16. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js +7 -7
  17. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js.map +1 -1
  18. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js +12 -12
  19. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +1 -1
  20. package/dist/features/sheets/resources-list/resource-item/resource-item.js +89 -87
  21. package/dist/features/sheets/resources-list/resource-item/resource-item.js.map +1 -1
  22. package/dist/index.d.ts +24 -5
  23. 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\n const [selectedTab, setSelectedTab] = useState<keyof IMilestoneTabConfig | undefined>(\n filteredTabConfig?.[0]?.[0] as keyof IMilestoneTabConfig,\n );\n\n const handleTabChange = useCallback(\n (tabName: keyof IMilestoneTabConfig, ctaLabel: string) => {\n setSelectedTab(tabName);\n\n trackEvent('clicked', {\n cta: ctaLabel,\n milestone_id: userMilestoneId,\n });\n },\n [userMilestoneId, 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 === selectedTab;\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[selectedTab 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","onAddChapter","onAssignResources","onChapterClick","onCreateMilestoneTest","onPreview","onReattempt","onReset","onResume","onReview","onStart","onTestPreview","onTestReview","onTestStart","onUnAssignSheet","visibleTabs","trackEvent","useUIContext","backgroundColor","getGoalCategoryBasedColorTheme","TAB_CONFIG","jsx","ChaptersList","MilestoneTestsList","MilestoneWidgetResources","filteredTabConfig","tabName","selectedTab","setSelectedTab","useState","_a","handleTabChange","useCallback","ctaLabel","Styled.NoPlanCardWrapper","Text","jsxs","Fragment","Styled.TabsWrapper","tabConfig","tabInfo","label","isSelected","Styled.TabsText"],"mappings":"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"}
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 b, jsx as e } from "react/jsx-runtime";
2
- import { memo as ge, useState as ue, useCallback as g, useMemo as B } from "react";
3
- import { useTheme as Ce } from "styled-components";
4
- import I from "../../../../ui/layout/flex-view.js";
5
- import Te from "../../../../ui/time-left-timeline/time-left-timeline.js";
6
- import fe from "./goals/goal-action-ctas.js";
7
- import he from "./milestone-info.js";
8
- import _e from "./milestone-tabs/milestone-tabs.js";
9
- import { getGoalCategoryBasedColorTheme as De } from "./milestone-utils.js";
10
- import Ae from "./milestone-widget-status.js";
11
- import { MainContainer as Ee, Wrapper as ye, ContentWrapper as Re, Content as Me } from "./milestone-widget-styled.js";
12
- import be from "./outcome/outcome.js";
13
- import { differenceInCalendarDays as W } from "../../../../../node_modules/date-fns/differenceInCalendarDays.js";
14
- const Be = {
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
- }, He = ge((x) => {
24
- const { milestone: l, studentId: u, isMilestoneActive: C, ...P } = x, {
25
- isStudentPresent: d,
26
- isClassOngoing: T,
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: k,
28
+ studentName: w,
29
29
  parentName: O,
30
- teacherName: S,
31
- courseStream: w,
30
+ teacherName: v,
31
+ courseStream: $,
32
+ activeMilestoneId: h,
33
+ activeTabId: G,
32
34
  onAddOutcome: m,
33
- onChapterClick: G,
34
- onEdit: f,
35
- onCreateMilestoneTest: v,
36
- onPreview: N,
37
- onReattempt: $,
38
- onReset: F,
39
- onResume: H,
40
- onReview: U,
41
- onStart: V,
42
- onDraftPublish: h,
43
- onAddChapter: L,
44
- onAssignResources: j,
45
- onUnAssignSheet: X,
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: K,
49
- onTestReview: Y,
50
- onTestStart: q,
51
- milestoneType: _
52
- } = P, {
51
+ onTestPreview: J,
52
+ onTestReview: Q,
53
+ onTestStart: Z,
54
+ milestoneType: A
55
+ } = k, {
53
56
  id: n,
54
- created_on_ts: D,
57
+ created_on_ts: E,
55
58
  milestone_date_ts: r,
56
- user_milestone_plan: A,
57
- outcome_data: z,
59
+ user_milestone_plan: y,
60
+ outcome_data: ee,
58
61
  milestone_state: o,
59
- permissions: E,
62
+ permissions: I,
60
63
  goal_code: s,
61
- goal_category: c
62
- } = l, [y, p] = ue(
63
- C && o === "ACTIVE" || _ === "DRAFT"
64
- ), J = Ce(), { layout: Q } = J, { gutter: Z } = Q, ee = !!A, { can_update_plan: oe } = E, { outcomes: i } = z || {}, { user_chapters: te = [] } = A || {}, ne = g(() => {
65
- p((pe) => !pe);
66
- }, []), R = o === "DRAFT", M = o === "OUTCOME_ADDED", re = Date.now() > r * 1e3, { progressBarColor: se } = Be[o === "ACTIVE" ? "primary" : "secondary"], { backgroundColor: ae, borderColor: ie } = De(c, R, M), le = B(
67
- () => W(r * 1e3, D * 1e3),
68
- [D, r]
69
- ), de = B(
70
- () => W(r * 1e3, Date.now()),
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
- ), me = g(() => {
73
- p(!0);
74
- }, [p]), ce = g(() => {
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 /* @__PURE__ */ b(Ee, { id: `milestone-${n}`, children: [
78
- /* @__PURE__ */ e(I, { $marginBottom: -Z * 0.875, children: o !== "DRAFT" && !re ? /* @__PURE__ */ e(
79
- Te,
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: de,
82
- totalUnits: le,
87
+ unitsLeft: ge,
88
+ totalUnits: pe,
83
89
  unit: "day",
84
- backgroundColor: se,
85
- barBackgroundColor: ie,
90
+ backgroundColor: de,
91
+ barBackgroundColor: me,
86
92
  showRemainingTime: !0
87
93
  }
88
94
  ) : /* @__PURE__ */ e(
89
- Ae,
95
+ be,
90
96
  {
91
- goalCategory: c,
97
+ goalCategory: p,
92
98
  goalCode: s,
93
99
  milestoneState: o,
94
100
  userType: a,
95
101
  milestoneId: n,
96
- isStudentPresent: d,
97
- onDraftPublish: h,
102
+ isStudentPresent: c,
103
+ onDraftPublish: D,
98
104
  onAddOutcome: m
99
105
  }
100
106
  ) }),
101
107
  /* @__PURE__ */ e(
102
- ye,
108
+ Re,
103
109
  {
104
- onClick: me,
105
- $background: ae,
110
+ onClick: ue,
111
+ $background: ce,
106
112
  $gapX: 1.5,
107
113
  $borderColor: "GREY_2",
108
- children: /* @__PURE__ */ b(I, { $flexGapX: s ? 1.5 : 1, children: [
114
+ children: /* @__PURE__ */ B(x, { $flexGapX: s ? 1.5 : 1, children: [
109
115
  /* @__PURE__ */ e(
110
- he,
116
+ Ee,
111
117
  {
112
- milestone: l,
113
- onEdit: f,
118
+ milestone: d,
119
+ onEdit: _,
114
120
  onDelete: t,
115
- isExpanded: y,
116
- toggleExpand: ne,
121
+ isExpanded: b,
122
+ toggleExpand: ie,
117
123
  userType: a,
118
- isClassOngoing: T,
119
- isStudentPresent: d,
124
+ isClassOngoing: f,
125
+ isStudentPresent: c,
120
126
  onAddOutcome: m
121
127
  }
122
128
  ),
123
- a === "TEACHER" && _ !== "DRAFT" && /* @__PURE__ */ e(
124
- fe,
129
+ a === "TEACHER" && A !== "DRAFT" && /* @__PURE__ */ e(
130
+ Ae,
125
131
  {
126
- milestone: l,
127
- studentId: u,
128
- studentName: k,
129
- teacherName: S ?? "",
132
+ milestone: d,
133
+ studentId: C,
134
+ studentName: w,
135
+ teacherName: v ?? "",
130
136
  parentName: O ?? "",
131
137
  onAddOutcome: m,
132
- isClassOngoing: !!T,
133
- isStudentPresent: !!d,
134
- onDraftPublish: h,
135
- onEdit: f,
136
- onDelete: ce,
137
- courseStream: w
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(be, { outcomes: i }) : void 0
146
+ i != null && i.length ? /* @__PURE__ */ e(xe, { outcomes: i }) : void 0
141
147
  ] })
142
148
  }
143
149
  ),
144
- /* @__PURE__ */ e(Re, { $expanded: y, children: /* @__PURE__ */ e(Me, { children: /* @__PURE__ */ e(
145
- _e,
150
+ /* @__PURE__ */ e(Be, { $expanded: b, children: /* @__PURE__ */ e(We, { children: /* @__PURE__ */ e(
151
+ ye,
146
152
  {
147
- goalCategory: c,
153
+ goalCategory: p,
148
154
  isGoalCreation: !!s,
149
- isDraftMilestone: R,
150
- isOutcomeAdded: M,
151
- isMilestoneActive: C,
152
- isPlanAvailable: ee,
155
+ isDraftMilestone: M,
156
+ isOutcomeAdded: R,
157
+ isMilestoneActive: T,
158
+ isPlanAvailable: re,
153
159
  userMilestoneId: n,
154
- chapters: te,
160
+ chapters: ae,
155
161
  userType: a,
156
- canUpdatePlan: oe,
162
+ canUpdatePlan: se,
157
163
  milestoneState: o,
158
- studentId: u,
159
- onAddChapter: L,
160
- onAssignResources: j,
161
- onChapterClick: G,
162
- onCreateMilestoneTest: v,
163
- onPreview: N,
164
- onReattempt: $,
165
- onReset: F,
166
- onResume: H,
167
- onReview: U,
168
- onStart: V,
169
- onTestPreview: K,
170
- onTestReview: Y,
171
- onTestStart: q,
172
- onUnAssignSheet: X,
173
- milestonePermissions: E
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
- He as default
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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"}