@cuemath/leap 2.9.8-as4 → 2.9.8-as5
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-v2/chapter-details/block-sections/block-sections.js +9 -9
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
- package/dist/features/chapters-v2/utils/node-card-utils.js +37 -48
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
- package/dist/features/homework/styles.js +24 -24
- package/dist/features/homework/styles.js.map +1 -1
- package/dist/features/journey/hooks/use-chapter-journey.js +21 -21
- package/dist/features/journey/hooks/use-chapter-journey.js.map +1 -1
- package/dist/features/journey/hooks/use-home-page-journey.js +26 -26
- package/dist/features/journey/hooks/use-home-page-journey.js.map +1 -1
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +0 -3
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
- package/dist/features/journey/mocks/recent-chapters-mock.js +0 -18
- package/dist/features/journey/mocks/recent-chapters-mock.js.map +1 -1
- package/dist/index.d.ts +0 -11
- package/dist/index.js +495 -505
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/line-icons/icons/alarm.js +0 -41
- package/dist/assets/line-icons/icons/alarm.js.map +0 -1
- package/dist/assets/line-icons/icons/dart.js +0 -23
- package/dist/assets/line-icons/icons/dart.js.map +0 -1
- package/dist/assets/line-icons/icons/puzzle.js +0 -25
- package/dist/assets/line-icons/icons/puzzle.js.map +0 -1
- package/dist/assets/line-icons/icons/recap.js +0 -32
- package/dist/assets/line-icons/icons/recap.js.map +0 -1
- package/dist/assets/line-icons/icons/testtube.js +0 -33
- package/dist/assets/line-icons/icons/testtube.js.map +0 -1
@@ -2,12 +2,12 @@ import { jsxs as I, jsx as s } from "react/jsx-runtime";
|
|
2
2
|
import { memo as w, useMemo as x } from "react";
|
3
3
|
import h from "./block-section-view.js";
|
4
4
|
import { ChapterDetailsWrapper as L } from "./block-sections-styled.js";
|
5
|
-
const E = w((
|
5
|
+
const E = w((_) => {
|
6
6
|
const {
|
7
7
|
blocks: t,
|
8
8
|
imageHue: n,
|
9
9
|
userType: l,
|
10
|
-
coreBlocksRef:
|
10
|
+
coreBlocksRef: g,
|
11
11
|
onNodeAttempt: i,
|
12
12
|
onNodeAttemptLocationChange: r,
|
13
13
|
onNodeMarkAsDone: c,
|
@@ -15,7 +15,7 @@ const E = w((g) => {
|
|
15
15
|
onNodeReview: d,
|
16
16
|
onNodeView: k,
|
17
17
|
onBlockSkipUnskip: m
|
18
|
-
} =
|
18
|
+
} = _;
|
19
19
|
let a = 0;
|
20
20
|
const { goalBlocks: u, nonGoalBlocks: B } = x(
|
21
21
|
() => t.reduce(
|
@@ -30,16 +30,16 @@ const E = w((g) => {
|
|
30
30
|
$width: "100%",
|
31
31
|
$background: B.length ? "WHITE_1" : `${n}_1`,
|
32
32
|
children: [
|
33
|
-
/* @__PURE__ */ s("div", { ref:
|
34
|
-
const { block_type: N, block_id:
|
33
|
+
/* @__PURE__ */ s("div", { ref: g, children: u.map((o, e) => {
|
34
|
+
const { block_type: N, block_id: A, permissions: G } = o;
|
35
35
|
let f = 0;
|
36
|
-
const
|
37
|
-
return N === "GOAL" && (
|
36
|
+
const S = e === u.length - 1;
|
37
|
+
return N === "GOAL" && (G.can_un_skip || (a += 1), f = a), /* @__PURE__ */ s(
|
38
38
|
h,
|
39
39
|
{
|
40
40
|
blockData: o,
|
41
41
|
userType: l,
|
42
|
-
isLastBlock:
|
42
|
+
isLastBlock: S,
|
43
43
|
lessonIdx: f,
|
44
44
|
imageHue: n,
|
45
45
|
isGoalBlock: !0,
|
@@ -51,7 +51,7 @@ const E = w((g) => {
|
|
51
51
|
onNodeView: k,
|
52
52
|
onBlockSkipUnskip: m
|
53
53
|
},
|
54
|
-
|
54
|
+
A
|
55
55
|
);
|
56
56
|
}) }),
|
57
57
|
B.map((o) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"block-sections.js","sources":["../../../../../src/features/chapters-v2/chapter-details/block-sections/block-sections.tsx"],"sourcesContent":["import type { IBlockSectionsProps } from './block-sections-types';\nimport type { FC } from 'react';\n\nimport { memo, useMemo } from 'react';\n\nimport BlockSectionView from './block-section-view';\nimport * as Styled from './block-sections-styled';\n\nconst BlockSections: FC<IBlockSectionsProps> = memo(props => {\n const {\n blocks,\n imageHue,\n userType,\n coreBlocksRef,\n onNodeAttempt,\n onNodeAttemptLocationChange,\n onNodeMarkAsDone,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n onBlockSkipUnskip,\n } = props;\n\n let lessonCount = 0;\n\n const { goalBlocks, nonGoalBlocks } = useMemo(\n () =>\n blocks.reduce(\n (acc, block) => {\n if (block.section_code === 'GOALS' || block.section_code === 'READINESS') {\n acc.goalBlocks.push(block);\n } else {\n acc.nonGoalBlocks.push(block);\n }\n\n return acc;\n },\n { goalBlocks: [] as typeof blocks, nonGoalBlocks: [] as typeof blocks },\n ),\n [blocks],\n );\n\n return (\n <Styled.ChapterDetailsWrapper\n $width=\"100%\"\n $background={!nonGoalBlocks.length ? `${imageHue}_1` : 'WHITE_1'}\n >\n <div ref={coreBlocksRef}>\n {goalBlocks.map((blockData, idx) => {\n const { block_type: blockType, block_id: blockId,
|
1
|
+
{"version":3,"file":"block-sections.js","sources":["../../../../../src/features/chapters-v2/chapter-details/block-sections/block-sections.tsx"],"sourcesContent":["import type { IBlockSectionsProps } from './block-sections-types';\nimport type { FC } from 'react';\n\nimport { memo, useMemo } from 'react';\n\nimport BlockSectionView from './block-section-view';\nimport * as Styled from './block-sections-styled';\n\nconst BlockSections: FC<IBlockSectionsProps> = memo(props => {\n const {\n blocks,\n imageHue,\n userType,\n coreBlocksRef,\n onNodeAttempt,\n onNodeAttemptLocationChange,\n onNodeMarkAsDone,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n onBlockSkipUnskip,\n } = props;\n\n let lessonCount = 0;\n\n const { goalBlocks, nonGoalBlocks } = useMemo(\n () =>\n blocks.reduce(\n (acc, block) => {\n if (block.section_code === 'GOALS' || block.section_code === 'READINESS') {\n acc.goalBlocks.push(block);\n } else {\n acc.nonGoalBlocks.push(block);\n }\n\n return acc;\n },\n { goalBlocks: [] as typeof blocks, nonGoalBlocks: [] as typeof blocks },\n ),\n [blocks],\n );\n\n return (\n <Styled.ChapterDetailsWrapper\n $width=\"100%\"\n $background={!nonGoalBlocks.length ? `${imageHue}_1` : 'WHITE_1'}\n >\n <div ref={coreBlocksRef}>\n {goalBlocks.map((blockData, idx) => {\n const { block_type: blockType, block_id: blockId, permissions } = blockData;\n let lessonIdx = 0;\n\n const isLastBlock = idx === goalBlocks.length - 1;\n\n if (blockType === 'GOAL') {\n if (!permissions.can_un_skip) {\n lessonCount += 1;\n }\n\n lessonIdx = lessonCount;\n }\n\n return (\n <BlockSectionView\n blockData={blockData}\n userType={userType}\n isLastBlock={isLastBlock}\n key={blockId}\n lessonIdx={lessonIdx}\n imageHue={imageHue}\n isGoalBlock\n onNodeAttempt={onNodeAttempt}\n onNodeAttemptLocationChange={onNodeAttemptLocationChange}\n onNodeMarkAsDone={onNodeMarkAsDone}\n onNodeReattempt={onNodeReattempt}\n onNodeReview={onNodeReview}\n onNodeView={onNodeView}\n onBlockSkipUnskip={onBlockSkipUnskip}\n />\n );\n })}\n </div>\n\n {nonGoalBlocks.map(blockData => {\n const { block_id: blockId } = blockData;\n\n return (\n <BlockSectionView\n key={blockId}\n blockData={blockData}\n userType={userType}\n imageHue={imageHue}\n onNodeAttempt={onNodeAttempt}\n onNodeAttemptLocationChange={onNodeAttemptLocationChange}\n onNodeMarkAsDone={onNodeMarkAsDone}\n onNodeReattempt={onNodeReattempt}\n onNodeReview={onNodeReview}\n onNodeView={onNodeView}\n onBlockSkipUnskip={onBlockSkipUnskip}\n />\n );\n })}\n </Styled.ChapterDetailsWrapper>\n );\n});\n\nexport default BlockSections;\n"],"names":["BlockSections","memo","props","blocks","imageHue","userType","coreBlocksRef","onNodeAttempt","onNodeAttemptLocationChange","onNodeMarkAsDone","onNodeReattempt","onNodeReview","onNodeView","onBlockSkipUnskip","lessonCount","goalBlocks","nonGoalBlocks","useMemo","acc","block","jsxs","Styled.ChapterDetailsWrapper","jsx","blockData","idx","blockType","blockId","permissions","lessonIdx","isLastBlock","BlockSectionView"],"mappings":";;;;AAQM,MAAAA,IAAyCC,EAAK,CAASC,MAAA;AACrD,QAAA;AAAA,IACJ,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,6BAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,mBAAAC;AAAA,EACE,IAAAX;AAEJ,MAAIY,IAAc;AAEZ,QAAA,EAAE,YAAAC,GAAY,eAAAC,EAAA,IAAkBC;AAAA,IACpC,MACEd,EAAO;AAAA,MACL,CAACe,GAAKC,OACAA,EAAM,iBAAiB,WAAWA,EAAM,iBAAiB,cACvDD,EAAA,WAAW,KAAKC,CAAK,IAErBD,EAAA,cAAc,KAAKC,CAAK,GAGvBD;AAAA,MAET,EAAE,YAAY,CAAA,GAAqB,eAAe,GAAoB;AAAA,IACxE;AAAA,IACF,CAACf,CAAM;AAAA,EAAA;AAIP,SAAA,gBAAAiB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,aAAcL,EAAc,SAA2B,YAAlB,GAAGZ,CAAQ;AAAA,MAEhD,UAAA;AAAA,QAAA,gBAAAkB,EAAC,SAAI,KAAKhB,GACP,YAAW,IAAI,CAACiB,GAAWC,MAAQ;AAClC,gBAAM,EAAE,YAAYC,GAAW,UAAUC,GAAS,aAAAC,EAAgB,IAAAJ;AAClE,cAAIK,IAAY;AAEV,gBAAAC,IAAcL,MAAQT,EAAW,SAAS;AAEhD,iBAAIU,MAAc,WACXE,EAAY,gBACAb,KAAA,IAGLc,IAAAd,IAIZ,gBAAAQ;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,WAAAP;AAAA,cACA,UAAAlB;AAAA,cACA,aAAAwB;AAAA,cAEA,WAAAD;AAAA,cACA,UAAAxB;AAAA,cACA,aAAW;AAAA,cACX,eAAAG;AAAA,cACA,6BAAAC;AAAA,cACA,kBAAAC;AAAA,cACA,iBAAAC;AAAA,cACA,cAAAC;AAAA,cACA,YAAAC;AAAA,cACA,mBAAAC;AAAA,YAAA;AAAA,YAVKa;AAAA,UAAA;AAAA,QAaV,CAAA,GACH;AAAA,QAECV,EAAc,IAAI,CAAaO,MAAA;AACxB,gBAAA,EAAE,UAAUG,EAAY,IAAAH;AAG5B,iBAAA,gBAAAD;AAAA,YAACQ;AAAA,YAAA;AAAA,cAEC,WAAAP;AAAA,cACA,UAAAlB;AAAA,cACA,UAAAD;AAAA,cACA,eAAAG;AAAA,cACA,6BAAAC;AAAA,cACA,kBAAAC;AAAA,cACA,iBAAAC;AAAA,cACA,cAAAC;AAAA,cACA,YAAAC;AAAA,cACA,mBAAAC;AAAA,YAAA;AAAA,YAVKa;AAAA,UAAA;AAAA,QAWP,CAEH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
|
@@ -1,29 +1,22 @@
|
|
1
|
-
import { jsx as e, jsxs as
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import u from "../../../assets/line-icons/icons/
|
6
|
-
import
|
7
|
-
import
|
8
|
-
import h from "../../../assets/line-icons/icons/play2.js";
|
9
|
-
import $ from "../../../assets/line-icons/icons/puzzle.js";
|
10
|
-
import g from "../../../assets/line-icons/icons/recap.js";
|
11
|
-
import D from "../../../assets/line-icons/icons/status.js";
|
12
|
-
import C from "../../../assets/line-icons/icons/testtube.js";
|
13
|
-
import { LOTTIE as t } from "../../../assets/lottie/lottie.js";
|
14
|
-
import S from "../../ui/layout/flex-view.js";
|
1
|
+
import { jsx as e, jsxs as m } from "react/jsx-runtime";
|
2
|
+
import p from "../../../assets/line-icons/icons/check2.js";
|
3
|
+
import T from "../../../assets/line-icons/icons/exclamation.js";
|
4
|
+
import f from "../../../assets/line-icons/icons/lock2.js";
|
5
|
+
import u from "../../../assets/line-icons/icons/status.js";
|
6
|
+
import { LOTTIE as o } from "../../../assets/lottie/lottie.js";
|
7
|
+
import R from "../../ui/layout/flex-view.js";
|
15
8
|
import a from "../../ui/arrow-tooltip/arrow-tooltip.js";
|
16
9
|
import d from "../../ui/text/text.js";
|
17
10
|
import { InProgressIconWrapper as l } from "../comps/node-card/node-card-styled.js";
|
18
|
-
import
|
19
|
-
const
|
20
|
-
if (!
|
11
|
+
import I from "../comps/tag/tag.js";
|
12
|
+
const A = 60 * 60 * 24, h = ["NOT_STARTED", "IN_PROGRESS"], $ = (t) => {
|
13
|
+
if (!t)
|
21
14
|
return { isOverdue: !1, daysText: "", differenceInDays: 0 };
|
22
|
-
const i = Math.floor(Date.now() / 1e3), c =
|
15
|
+
const i = Math.floor(Date.now() / 1e3), c = t - i, n = Math.ceil(c / A), s = n < 0, r = n > 0 ? `${Math.abs(n)}D` : "";
|
23
16
|
return { isOverdue: s, daysText: r, differenceInDays: n };
|
24
|
-
},
|
25
|
-
const { isOverdue: s, daysText: r, differenceInDays:
|
26
|
-
if (s &&
|
17
|
+
}, L = (t, i, c, n) => {
|
18
|
+
const { isOverdue: s, daysText: r, differenceInDays: E } = $(n);
|
19
|
+
if (s && h.includes(t))
|
27
20
|
return {
|
28
21
|
icon: /* @__PURE__ */ e(
|
29
22
|
a,
|
@@ -34,13 +27,13 @@ const P = 60 * 60 * 24, b = ["NOT_STARTED", "IN_PROGRESS"], O = (o) => {
|
|
34
27
|
zIndex: 10,
|
35
28
|
hidden: !i,
|
36
29
|
parentWidth: "fit-content",
|
37
|
-
children: /* @__PURE__ */ e(
|
30
|
+
children: /* @__PURE__ */ e(R, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ e(d, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
|
38
31
|
}
|
39
32
|
),
|
40
33
|
top: -10,
|
41
34
|
right: -10
|
42
35
|
};
|
43
|
-
switch (
|
36
|
+
switch (t) {
|
44
37
|
case "NOT_STARTED":
|
45
38
|
return {
|
46
39
|
icon: /* @__PURE__ */ e(
|
@@ -48,7 +41,7 @@ const P = 60 * 60 * 24, b = ["NOT_STARTED", "IN_PROGRESS"], O = (o) => {
|
|
48
41
|
{
|
49
42
|
renderAs: "primary",
|
50
43
|
position: "bottom",
|
51
|
-
tooltipItem:
|
44
|
+
tooltipItem: E > 1 ? `${E} days left` : "Complete it today",
|
52
45
|
zIndex: 10,
|
53
46
|
hidden: !i,
|
54
47
|
children: /* @__PURE__ */ e(
|
@@ -70,13 +63,13 @@ const P = 60 * 60 * 24, b = ["NOT_STARTED", "IN_PROGRESS"], O = (o) => {
|
|
70
63
|
};
|
71
64
|
case "LOCKED":
|
72
65
|
return {
|
73
|
-
icon: /* @__PURE__ */ e(
|
66
|
+
icon: /* @__PURE__ */ e(f, { width: 32, height: 32 }),
|
74
67
|
top: -12,
|
75
68
|
right: -12
|
76
69
|
};
|
77
70
|
case "IN_PROGRESS":
|
78
71
|
return {
|
79
|
-
icon: /* @__PURE__ */
|
72
|
+
icon: /* @__PURE__ */ m(
|
80
73
|
l,
|
81
74
|
{
|
82
75
|
$flexDirection: "row",
|
@@ -87,7 +80,7 @@ const P = 60 * 60 * 24, b = ["NOT_STARTED", "IN_PROGRESS"], O = (o) => {
|
|
87
80
|
$paddingLeft: r ? 6 : 0,
|
88
81
|
children: [
|
89
82
|
r && /* @__PURE__ */ e(d, { $renderAs: "ub3-bold", $color: "WHITE", children: r }),
|
90
|
-
/* @__PURE__ */ e(
|
83
|
+
/* @__PURE__ */ e(u, {})
|
91
84
|
]
|
92
85
|
}
|
93
86
|
)
|
@@ -95,9 +88,9 @@ const P = 60 * 60 * 24, b = ["NOT_STARTED", "IN_PROGRESS"], O = (o) => {
|
|
95
88
|
case "COMPLETED":
|
96
89
|
return {
|
97
90
|
icon: /* @__PURE__ */ e(
|
98
|
-
|
91
|
+
I,
|
99
92
|
{
|
100
|
-
Icon:
|
93
|
+
Icon: p,
|
101
94
|
label: typeof c == "number" ? `${c}%` : void 0
|
102
95
|
}
|
103
96
|
),
|
@@ -113,7 +106,7 @@ const P = 60 * 60 * 24, b = ["NOT_STARTED", "IN_PROGRESS"], O = (o) => {
|
|
113
106
|
position: "bottom",
|
114
107
|
tooltipItem: i ? "Waiting for teacher to review" : "Needs your review",
|
115
108
|
zIndex: 10,
|
116
|
-
children: /* @__PURE__ */ e(
|
109
|
+
children: /* @__PURE__ */ e(I, { Icon: T })
|
117
110
|
}
|
118
111
|
),
|
119
112
|
top: -10,
|
@@ -124,54 +117,50 @@ const P = 60 * 60 * 24, b = ["NOT_STARTED", "IN_PROGRESS"], O = (o) => {
|
|
124
117
|
icon: void 0
|
125
118
|
};
|
126
119
|
}
|
127
|
-
},
|
128
|
-
switch (
|
120
|
+
}, w = (t) => {
|
121
|
+
switch (t) {
|
129
122
|
case "LEARNING":
|
130
123
|
return {
|
131
|
-
lottie:
|
132
|
-
icon: f
|
124
|
+
lottie: o.LEARN
|
133
125
|
};
|
134
126
|
case "RECAP":
|
127
|
+
case "REMEDIAL":
|
128
|
+
case "REVISION":
|
135
129
|
return {
|
136
|
-
lottie:
|
137
|
-
icon: g
|
130
|
+
lottie: o.RECAP
|
138
131
|
};
|
139
132
|
case "DYNAMIC":
|
140
133
|
case "ASSESSMENT":
|
141
134
|
case "CHAPTER_ASSESSMENT":
|
135
|
+
case "DIAGNOSTIC":
|
142
136
|
return {
|
143
|
-
lottie:
|
144
|
-
icon: I
|
137
|
+
lottie: o.TEST
|
145
138
|
};
|
146
139
|
case "PRACTICE":
|
147
140
|
case "EXTRA_PRACTICE":
|
148
141
|
case "TARGET_PRACTICE":
|
149
142
|
case "MASTERY":
|
150
143
|
return {
|
151
|
-
lottie:
|
152
|
-
icon: u
|
144
|
+
lottie: o.PRACTICE
|
153
145
|
};
|
154
146
|
case "PUZZLE_EASY":
|
155
147
|
case "PUZZLE_MEDIUM":
|
156
148
|
case "PUZZLE_HARD":
|
157
149
|
return {
|
158
|
-
lottie:
|
159
|
-
icon: $
|
150
|
+
lottie: o.PUZZLE
|
160
151
|
};
|
161
152
|
case "VIDEO":
|
162
153
|
return {
|
163
|
-
lottie:
|
164
|
-
icon: h
|
154
|
+
lottie: o.VIDEO
|
165
155
|
};
|
166
156
|
default:
|
167
157
|
return {
|
168
|
-
lottie:
|
169
|
-
icon: C
|
158
|
+
lottie: o.PROJECT
|
170
159
|
};
|
171
160
|
}
|
172
161
|
};
|
173
162
|
export {
|
174
|
-
|
175
|
-
|
163
|
+
w as getNodeCardBasedIcon,
|
164
|
+
L as getNodeStateBasedTagInfo
|
176
165
|
};
|
177
166
|
//# sourceMappingURL=node-card-utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport
|
1
|
+
{"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport Tag from '../comps/tag/tag';\n\ninterface DueDateInfo {\n isOverdue: boolean;\n daysText: string;\n differenceInDays: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED', 'IN_PROGRESS'];\n\nconst calculateDueDateInfo = (dueDateTs?: number | null): DueDateInfo => {\n if (!dueDateTs) {\n return { isOverdue: false, daysText: '', differenceInDays: 0 };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInDays = Math.ceil(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n\n return { isOverdue, daysText, differenceInDays };\n};\n\nconst getNodeStateBasedTagInfo = (\n nodeState: INodeDataProps['state'],\n isStudent: boolean,\n accuracy?: number | null,\n dueDateTs?: number | null,\n) => {\n const { isOverdue, daysText, differenceInDays } = calculateDueDateInfo(dueDateTs);\n\n if (isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={6}\n $paddingLeft={6}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n </InProgressIconWrapper>\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -12,\n right: -12,\n };\n case 'IN_PROGRESS':\n return {\n icon: (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={0}\n $paddingLeft={daysText ? 6 : 0}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n <StatusIcon />\n </InProgressIconWrapper>\n ),\n };\n case 'COMPLETED':\n return {\n icon: (\n <Tag\n Icon={Check2Icon}\n label={typeof accuracy === 'number' ? `${accuracy}%` : undefined}\n />\n ),\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEARNING':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","currentTimestamp","differenceInSeconds","differenceInDays","isOverdue","daysText","getNodeStateBasedTagInfo","nodeState","isStudent","accuracy","jsx","ArrowTooltip","FlexView","Text","InProgressIconWrapper","Lock2Icon","jsxs","StatusIcon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":";;;;;;;;;;;AAmBA,MAAMA,IAAkB,KAAK,KAAK,IAC5BC,IAAgD,CAAC,eAAe,aAAa,GAE7EC,IAAuB,CAACC,MAA2C;AACvE,MAAI,CAACA;AACH,WAAO,EAAE,WAAW,IAAO,UAAU,IAAI,kBAAkB;AAG7D,QAAMC,IAAmB,KAAK,MAAM,KAAK,IAAA,IAAQ,GAAI,GAC/CC,IAAsBF,IAAYC,GAClCE,IAAmB,KAAK,KAAKD,IAAsBL,CAAe,GAElEO,IAAYD,IAAmB,GAE/BE,IAAWF,IAAmB,IAAI,GAAG,KAAK,IAAIA,CAAgB,CAAC,MAAM;AAEpE,SAAA,EAAE,WAAAC,GAAW,UAAAC,GAAU,kBAAAF;AAChC,GAEMG,IAA2B,CAC/BC,GACAC,GACAC,GACAT,MACG;AACH,QAAM,EAAE,WAAAI,GAAW,UAAAC,GAAU,kBAAAF,EAAiB,IAAIJ,EAAqBC,CAAS;AAEhF,MAAII,KAAaN,EAAmB,SAASS,CAAS;AAC7C,WAAA;AAAA,MACL,MACE,gBAAAG;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,aAAY;AAAA,UACZ,QAAQ;AAAA,UACR,QAAQ,CAACH;AAAA,UACT,aAAY;AAAA,UAEZ,4BAACI,GAAS,EAAA,aAAY,OAAM,eAAe,IAAI,OAAO,MAAM,UAAU,KACpE,4BAACC,GAAK,EAAA,WAAU,aAAY,QAAO,SAAQ,oBAE3C,CAAA,GACF;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,KAAK;AAAA,MACL,OAAO;AAAA,IAAA;AAIX,UAAQN,GAAW;AAAA,IACjB,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAG;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,aACER,IAAmB,IAAI,GAAGA,CAAgB,eAAe;AAAA,YAE3D,QAAQ;AAAA,YACR,QAAQ,CAACK;AAAA,YAET,UAAA,gBAAAE;AAAA,cAACI;AAAA,cAAA;AAAA,gBACC,gBAAe;AAAA,gBACf,aAAY;AAAA,gBACZ,iBAAgB;AAAA,gBAChB,eAAe;AAAA,gBACf,eAAe;AAAA,gBACf,cAAc;AAAA,gBAEb,eACE,gBAAAJ,EAAAG,GAAA,EAAK,WAAU,YAAW,QAAO,SAC/B,UACHR,EAAA,CAAA;AAAA,cAAA;AAAA,YAEJ;AAAA,UAAA;AAAA,QACF;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAO,gBAAAK,EAAAK,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI;AAAA,QACxC,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAC;AAAA,UAACF;AAAA,UAAA;AAAA,YACC,gBAAe;AAAA,YACf,aAAY;AAAA,YACZ,iBAAgB;AAAA,YAChB,eAAe;AAAA,YACf,eAAe;AAAA,YACf,cAAcT,IAAW,IAAI;AAAA,YAE5B,UAAA;AAAA,cAAAA,uBACEQ,GAAK,EAAA,WAAU,YAAW,QAAO,SAC/B,UACHR,GAAA;AAAA,gCAEDY,GAAW,EAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,IAGN,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAP;AAAA,UAACQ;AAAA,UAAA;AAAA,YACC,MAAMC;AAAA,YACN,OAAO,OAAOV,KAAa,WAAW,GAAGA,CAAQ,MAAM;AAAA,UAAA;AAAA,QACzD;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,aAAaH,IAAY,kCAAkC;AAAA,YAC3D,QAAQ;AAAA,YAER,UAAA,gBAAAE,EAACQ,GAAI,EAAA,MAAME,EAAiB,CAAA;AAAA,UAAA;AAAA,QAC9B;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAGX;AACS,aAAA;AAAA,QACL,MAAM;AAAA,MAAA;AAAA,EAEZ;AACF,GAEMC,IAAuB,CAACC,MAA0C;AACtE,UAAQA,GAAU;AAAA,IAChB,KAAK;AACI,aAAA;AAAA,QACL,QAAQC,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB;AACS,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,EAErB;AACF;"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import r from "styled-components";
|
2
2
|
import n from "../../assets/line-icons/icons/minus2.js";
|
3
|
-
import
|
3
|
+
import t from "../ui/layout/flex-view.js";
|
4
4
|
import i from "../ui/text/text.js";
|
5
|
-
const l = r(
|
5
|
+
const l = r(t)(({ theme: o }) => `
|
6
6
|
cursor: pointer;
|
7
7
|
width: 24px;
|
8
8
|
height: 24px;
|
@@ -18,9 +18,9 @@ const l = r(e)(({ theme: o }) => `
|
|
18
18
|
-webkit-box-orient: vertical;
|
19
19
|
overflow: hidden;
|
20
20
|
text-overflow: ellipsis;
|
21
|
-
`,
|
21
|
+
`, x = r(t)(({
|
22
22
|
$shouldopenonright: o,
|
23
|
-
$visible:
|
23
|
+
$visible: e
|
24
24
|
}) => `
|
25
25
|
cursor: pointer;
|
26
26
|
position: absolute;
|
@@ -28,37 +28,37 @@ const l = r(e)(({ theme: o }) => `
|
|
28
28
|
top: calc(100% + 4px);
|
29
29
|
right: ${o ? 0 : "auto"};
|
30
30
|
transform-origin: top;
|
31
|
-
transform: scaleY(${
|
32
|
-
opacity: ${
|
31
|
+
transform: scaleY(${e ? 1 : 0});
|
32
|
+
opacity: ${e ? 1 : 0};
|
33
33
|
transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
|
34
34
|
box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);
|
35
35
|
z-index: 10;
|
36
|
-
`),
|
36
|
+
`), u = r(t)`
|
37
37
|
border: 1px solid ${({ theme: o }) => o.colors.BLACK_T_15};
|
38
|
-
|
39
38
|
&:hover {
|
40
39
|
border: 1px solid ${({ theme: o }) => o.colors.BLACK};
|
40
|
+
border-top-width: 2px;
|
41
41
|
}
|
42
|
-
`, b = r(
|
42
|
+
`, b = r(t)(({ $bgImage: o }) => o ? `
|
43
43
|
background-image: url(${o});
|
44
44
|
background-repeat: no-repeat;
|
45
45
|
background-size: cover;
|
46
46
|
background-position: center;
|
47
47
|
overflow: hidden;
|
48
|
-
` : "overflow: hidden;"), h = r(
|
48
|
+
` : "overflow: hidden;"), h = r(t)`
|
49
49
|
display: flex;
|
50
50
|
align-items: center;
|
51
51
|
justify-content: center;
|
52
|
-
`, w = r(
|
52
|
+
`, w = r(t)`
|
53
53
|
position: absolute;
|
54
54
|
right: -18px;
|
55
55
|
top: -4px;
|
56
56
|
`, f = r.img(({ theme: o }) => {
|
57
|
-
const { gutter:
|
57
|
+
const { gutter: e } = o.layout;
|
58
58
|
return `
|
59
59
|
border: 1px solid ${o.colors.BLACK_T_15};
|
60
|
-
width: ${
|
61
|
-
height: ${
|
60
|
+
width: ${e * 4}px;
|
61
|
+
height: ${e * 4}px;
|
62
62
|
border-radius: 50%;
|
63
63
|
`;
|
64
64
|
}), g = r(n)`
|
@@ -73,15 +73,15 @@ const l = r(e)(({ theme: o }) => `
|
|
73
73
|
text-overflow: ellipsis;
|
74
74
|
white-space: break-spaces;
|
75
75
|
`;
|
76
|
-
r(
|
77
|
-
const k = r(
|
76
|
+
r(t)``;
|
77
|
+
const k = r(t)(({
|
78
78
|
theme: o,
|
79
|
-
$disabled:
|
79
|
+
$disabled: e
|
80
80
|
}) => `
|
81
|
-
cursor: ${
|
81
|
+
cursor: ${e ? "not-allowed" : "pointer"};
|
82
82
|
|
83
83
|
&:hover {
|
84
|
-
background: ${
|
84
|
+
background: ${e ? "transparent" : o.colors.BLACK};
|
85
85
|
};
|
86
86
|
|
87
87
|
path {
|
@@ -91,21 +91,21 @@ const k = r(e)(({
|
|
91
91
|
white-space: nowrap;
|
92
92
|
overflow: hidden;
|
93
93
|
text-overflow: ellipsis;
|
94
|
-
`, C = r(
|
94
|
+
`, C = r(t)`
|
95
95
|
position: absolute;
|
96
96
|
z-index: 6;
|
97
97
|
top: calc(100% - 36px);
|
98
98
|
right: 12px;
|
99
99
|
transform-origin: top;
|
100
100
|
transform: scaleY(1);
|
101
|
-
`, $ = r(
|
101
|
+
`, $ = r(t)`
|
102
102
|
position: absolute;
|
103
103
|
top: 0;
|
104
104
|
left: 0;
|
105
105
|
width: 100%;
|
106
106
|
height: 100%;
|
107
107
|
opacity: 0.5;
|
108
|
-
`, y = r(
|
108
|
+
`, y = r(t)`
|
109
109
|
position: absolute;
|
110
110
|
right: 42px;
|
111
111
|
top: 24px;
|
@@ -115,9 +115,9 @@ export {
|
|
115
115
|
w as BannerImageWrapper,
|
116
116
|
$ as BlurContainer,
|
117
117
|
y as BlurFlexView,
|
118
|
-
|
118
|
+
u as CardContainer,
|
119
119
|
l as CardKebabMenuWrapper,
|
120
|
-
|
120
|
+
x as CardMenuOptionsWrapper,
|
121
121
|
k as CardOptionWrapper,
|
122
122
|
b as CardWrapper,
|
123
123
|
m as HeaderText,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../src/features/homework/styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport Minus2Icon from '../../assets/line-icons/icons/minus2';\nimport FlexView from '../ui/layout/flex-view';\nimport Text from '../ui/text/text';\n\ninterface ICardWrapperProps {\n $bgImage: string;\n}\ninterface ICardOptionsMenuWrapperProps {\n $visible: boolean;\n $shouldopenonright: boolean;\n}\n\nexport const CardKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n width: 24px;\n height: 24px;\n \n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport const SubHeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const CardMenuOptionsWrapper = styled(FlexView)<ICardOptionsMenuWrapperProps>(({\n $shouldopenonright,\n $visible,\n}) => {\n return `\n cursor: pointer;\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n right: ${$shouldopenonright ? 0 : 'auto'};\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);\n z-index: 10;\n `;\n});\n\nexport const CardContainer = styled(FlexView)`\n border: 1px solid ${({ theme }) => theme.colors.BLACK_T_15};\n
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../src/features/homework/styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport Minus2Icon from '../../assets/line-icons/icons/minus2';\nimport FlexView from '../ui/layout/flex-view';\nimport Text from '../ui/text/text';\n\ninterface ICardWrapperProps {\n $bgImage: string;\n}\ninterface ICardOptionsMenuWrapperProps {\n $visible: boolean;\n $shouldopenonright: boolean;\n}\n\nexport const CardKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n width: 24px;\n height: 24px;\n \n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport const SubHeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const CardMenuOptionsWrapper = styled(FlexView)<ICardOptionsMenuWrapperProps>(({\n $shouldopenonright,\n $visible,\n}) => {\n return `\n cursor: pointer;\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n right: ${$shouldopenonright ? 0 : 'auto'};\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, 0.4);\n z-index: 10;\n `;\n});\n\nexport const CardContainer = styled(FlexView)`\n border: 1px solid ${({ theme }) => theme.colors.BLACK_T_15};\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.BLACK};\n border-top-width: 2px;\n }\n`;\n\nexport const CardWrapper = styled(FlexView)<ICardWrapperProps>(({ $bgImage }) => {\n if ($bgImage) {\n return `\n background-image: url(${$bgImage});\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n overflow: hidden;\n `;\n }\n\n return 'overflow: hidden;';\n});\n\nexport const IconWrapper = styled(FlexView)`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const BannerImageWrapper = styled(FlexView)`\n position: absolute;\n right: -18px;\n top: -4px;\n`;\n\nexport const BannerImage = styled.img(({ theme }) => {\n const { gutter } = theme.layout;\n\n return `\n border: 1px solid ${theme.colors.BLACK_T_15};\n width: ${gutter * 4}px;\n height: ${gutter * 4}px;\n border-radius: 50%;\n `;\n});\n\nexport const StyledMinus2Icon = styled(Minus2Icon)`\n path {\n stroke: ${({ theme }) => theme.colors.WHITE};\n }\n`;\n\nexport const HeaderText = styled(Text)`\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: break-spaces;\n`;\n\ninterface ICardOptionWrapperProps {\n $disabled?: boolean;\n}\ninterface ICardOptionsProps {\n $top: number;\n $left: number;\n}\n\nexport const CardOptions = styled(FlexView)<ICardOptionsProps>``;\n\nexport const CardOptionWrapper = styled(FlexView)<ICardOptionWrapperProps>(({\n theme,\n $disabled,\n}) => {\n return `\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n \n &:hover {\n background: ${$disabled ? 'transparent' : theme.colors.BLACK};\n };\n \n path {\n fill: ${theme.colors.WHITE_1};\n }\n `;\n});\n\nexport const OptionText = styled(Text)`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const MenuWrapper = styled(FlexView)`\n position: absolute;\n z-index: 6;\n top: calc(100% - 36px);\n right: 12px;\n transform-origin: top;\n transform: scaleY(1);\n`;\n\nexport const BlurContainer = styled(FlexView)`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n`;\n\nexport const BlurFlexView = styled(FlexView)`\n position: absolute;\n right: 42px;\n top: 24px;\n`;\n"],"names":["CardKebabMenuWrapper","styled","FlexView","theme","SubHeaderText","Text","CardMenuOptionsWrapper","$shouldopenonright","$visible","CardContainer","CardWrapper","$bgImage","IconWrapper","BannerImageWrapper","BannerImage","gutter","StyledMinus2Icon","Minus2Icon","HeaderText","CardOptionWrapper","$disabled","OptionText","MenuWrapper","BlurContainer","BlurFlexView"],"mappings":";;;;AAcO,MAAMA,IAAuBC,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAQWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAEYC,IAAgBH,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ3BC,IAAyBL,EAAOC,CAAQ,EAAgC,CAAC;AAAA,EACpF,oBAAAK;AAAA,EACA,UAAAC;AACF,MACS;AAAA;AAAA;AAAA;AAAA;AAAA,aAKID,IAAqB,IAAI,MAAM;AAAA;AAAA,wBAEpBC,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,GAK9B,GAEYC,IAAgBR,EAAOC,CAAQ;AAAA,sBACtB,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,UAAU;AAAA;AAAA,wBAEpC,CAAC,EAAE,OAAAA,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA,GAK5CO,IAAcT,EAAOC,CAAQ,EAAqB,CAAC,EAAE,UAAAS,QAC5DA,IACK;AAAA,8BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAQ7B,mBACR,GAEYC,IAAcX,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAM7BW,IAAqBZ,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA,GAMpCY,IAAcb,EAAO,IAAI,CAAC,EAAE,OAAAE,QAAY;AAC7C,QAAA,EAAE,QAAAY,EAAO,IAAIZ,EAAM;AAElB,SAAA;AAAA,wBACeA,EAAM,OAAO,UAAU;AAAA,aAClCY,IAAS,CAAC;AAAA,cACTA,IAAS,CAAC;AAAA;AAAA;AAGxB,CAAC,GAEYC,IAAmBf,EAAOgB,CAAU;AAAA;AAAA,cAEnC,CAAC,EAAE,OAAAd,EAAA,MAAYA,EAAM,OAAO,KAAK;AAAA;AAAA,GAIlCe,IAAajB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBVJ,EAAOC,CAAQ;AAEnC,MAAMiB,IAAoBlB,EAAOC,CAAQ,EAA2B,CAAC;AAAA,EAC1E,OAAAC;AAAA,EACA,WAAAiB;AACF,MACS;AAAA,cACKA,IAAY,gBAAgB,SAAS;AAAA;AAAA;AAAA,oBAG/BA,IAAY,gBAAgBjB,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,cAIpDA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGjC,GAEYkB,IAAapB,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA,GAMxBiB,IAAcrB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS7BqB,IAAgBtB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS/BsB,IAAevB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;"}
|
@@ -1,23 +1,23 @@
|
|
1
1
|
import { jsx as e, jsxs as n } from "react/jsx-runtime";
|
2
2
|
import { useRef as s, useCallback as C, useMemo as P, useEffect as _ } from "react";
|
3
3
|
import X from "../../chapters-v2/chapter-details/block-sections/block-sections.js";
|
4
|
-
import
|
4
|
+
import x from "../../chapters-v2/chapter-details/chapter-banner/chapter-banner.js";
|
5
5
|
import I from "../../chapters-v2/chapter-details/chapter-details.js";
|
6
6
|
import a from "../../ui/buttons/button/button.js";
|
7
7
|
import l from "../../ui/layout/flex-view.js";
|
8
8
|
import c from "../../ui/text/text.js";
|
9
9
|
import { JOURNEY_ID_STUDENT as K } from "../journey-id/journey-id-student.js";
|
10
|
-
import { PROGRESS_STAT_MOCK as
|
10
|
+
import { PROGRESS_STAT_MOCK as y, BLOCK_MOCKS as H } from "../mocks/chapter-page-journey-mock-data.js";
|
11
11
|
import { IndicatorType as d } from "../use-journey/constants.js";
|
12
12
|
import { useJourney as $ } from "../use-journey/use-journey.js";
|
13
13
|
const q = () => {
|
14
14
|
const o = K.CHAPTER_PAGE_JOURNEY, t = s(null), r = s(null), m = s(null), h = s([]), { nextCoachmark: g, setJourney: f, endJourney: A } = $(), i = C(() => {
|
15
15
|
g(o, !1, 0, !0);
|
16
16
|
}, [o, g]), w = C(() => {
|
17
|
-
A(o)
|
18
|
-
}, [A, o]),
|
19
|
-
({ chapterDetails: p, userChapterId: B, studentId: L, userType:
|
20
|
-
const { name:
|
17
|
+
A(o);
|
18
|
+
}, [A, o]), T = C(
|
19
|
+
({ chapterDetails: p, userChapterId: B, studentId: L, userType: b }) => {
|
20
|
+
const { name: O, image_hue: u, image_url: R } = p;
|
21
21
|
if (!(t != null && t.current) || !(r != null && r.current) || !m.current)
|
22
22
|
return;
|
23
23
|
const S = t.current.getBoundingClientRect(), N = [
|
@@ -30,7 +30,7 @@ const q = () => {
|
|
30
30
|
{
|
31
31
|
userChapterId: B,
|
32
32
|
studentId: L,
|
33
|
-
userType:
|
33
|
+
userType: b,
|
34
34
|
onBlockSkipUnskip: () => null,
|
35
35
|
onNodeAttempt: () => null,
|
36
36
|
onNodeAttemptLocationChange: () => null,
|
@@ -67,11 +67,11 @@ const q = () => {
|
|
67
67
|
{
|
68
68
|
originalElementToHighlightRef: r,
|
69
69
|
elementToHighlight: /* @__PURE__ */ e(
|
70
|
-
|
70
|
+
x,
|
71
71
|
{
|
72
|
-
title:
|
73
|
-
progressStats:
|
74
|
-
imageUrl:
|
72
|
+
title: O,
|
73
|
+
progressStats: y,
|
74
|
+
imageUrl: R,
|
75
75
|
imageHue: u
|
76
76
|
}
|
77
77
|
),
|
@@ -104,11 +104,11 @@ const q = () => {
|
|
104
104
|
{
|
105
105
|
originalElementToHighlightRef: r,
|
106
106
|
elementToHighlight: /* @__PURE__ */ e(
|
107
|
-
|
107
|
+
x,
|
108
108
|
{
|
109
|
-
title:
|
110
|
-
progressStats:
|
111
|
-
imageUrl:
|
109
|
+
title: O,
|
110
|
+
progressStats: y,
|
111
|
+
imageUrl: R,
|
112
112
|
imageHue: u
|
113
113
|
}
|
114
114
|
),
|
@@ -140,7 +140,7 @@ const q = () => {
|
|
140
140
|
},
|
141
141
|
{
|
142
142
|
originalElementToHighlightRef: m,
|
143
|
-
elementToHighlight: /* @__PURE__ */ e(l, { $widthX: 50, children: /* @__PURE__ */ e(X, { userType:
|
143
|
+
elementToHighlight: /* @__PURE__ */ e(l, { $widthX: 50, children: /* @__PURE__ */ e(X, { userType: b, blocks: H, imageHue: u }) }),
|
144
144
|
type: d.TOOLTIP,
|
145
145
|
indicator: {
|
146
146
|
position: "top",
|
@@ -169,10 +169,10 @@ const q = () => {
|
|
169
169
|
}
|
170
170
|
];
|
171
171
|
f(o, N);
|
172
|
-
const
|
173
|
-
clearTimeout(
|
172
|
+
const k = setTimeout(() => {
|
173
|
+
clearTimeout(k), i();
|
174
174
|
}, 500);
|
175
|
-
h.current.push(
|
175
|
+
h.current.push(k);
|
176
176
|
},
|
177
177
|
[i, w, f, o]
|
178
178
|
), E = P(
|
@@ -180,9 +180,9 @@ const q = () => {
|
|
180
180
|
chapterPageRef: t,
|
181
181
|
bannerRef: r,
|
182
182
|
coreBlocksRef: m,
|
183
|
-
startJourney:
|
183
|
+
startJourney: T
|
184
184
|
}),
|
185
|
-
[
|
185
|
+
[T]
|
186
186
|
);
|
187
187
|
return _(() => () => {
|
188
188
|
h.current.forEach((p) => clearTimeout(p)), h.current = [];
|