@cuemath/leap 2.8.60-as4 → 2.8.60-beta-0.1
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/assets/line-icons/icons/bin2.js +8 -7
- package/dist/assets/line-icons/icons/bin2.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +2 -2
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/chapter-details.js +24 -24
- package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +16 -15
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +8 -12
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +72 -76
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -1
- package/dist/features/chapters-v2/utils/index.js +4 -5
- package/dist/features/chapters-v2/utils/index.js.map +1 -1
- package/dist/features/chapters-v2/utils/node-card-utils.js +34 -62
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +75 -62
- package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +110 -127
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +4 -12
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +105 -128
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
- package/dist/features/milestone/create/milestone-create.js +43 -49
- package/dist/features/milestone/create/milestone-create.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js.map +1 -1
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +40 -42
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
- package/dist/features/milestone/edit/goal-edit-container.js +62 -64
- package/dist/features/milestone/edit/goal-edit-container.js.map +1 -1
- package/dist/features/milestone/edit/milestone-edit-container.js +52 -54
- package/dist/features/milestone/edit/milestone-edit-container.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +89 -96
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +28 -28
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +111 -120
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +61 -59
- 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 +85 -83
- 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 +90 -88
- 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 +98 -82
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +18 -16
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js +71 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js +31 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js +38 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js +79 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js +18 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js +51 -0
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js +11 -0
- package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-list/tests-list.js +144 -0
- package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +1 -0
- package/dist/features/sheets/resources-list/resource-item/styled.js +1 -1
- package/dist/features/sheets/resources-list/resource-item/styled.js.map +1 -1
- package/dist/features/ui/lottie-animation/lottie-animation.js +24 -39
- package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
- package/dist/features/ui/theme/button.js +5 -5
- package/dist/features/ui/theme/button.js.map +1 -1
- package/dist/index.d.ts +13 -39
- package/dist/index.js +377 -381
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/line-icons/icons/skip-colored.js +0 -43
- package/dist/assets/line-icons/icons/skip-colored.js.map +0 -1
- package/dist/features/homework/card-menu-options.js +0 -25
- package/dist/features/homework/card-menu-options.js.map +0 -1
- package/dist/features/homework/homework-card.js +0 -210
- package/dist/features/homework/homework-card.js.map +0 -1
- package/dist/features/homework/styles.js +0 -114
- package/dist/features/homework/styles.js.map +0 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +0 -165
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +0 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js +0 -25
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js.map +0 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +0 -82
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +0 -1
- package/dist/features/recent-chapters/api/get-recent-chapters.js +0 -9
- package/dist/features/recent-chapters/api/get-recent-chapters.js.map +0 -1
- package/dist/features/recent-chapters/recent-chapters-styled.js +0 -16
- package/dist/features/recent-chapters/recent-chapters-styled.js.map +0 -1
- package/dist/features/recent-chapters/recent-chapters.js +0 -43
- package/dist/features/recent-chapters/recent-chapters.js.map +0 -1
- package/dist/features/sheet-v2/resource-list/resource-list.js +0 -52
- package/dist/features/sheet-v2/resource-list/resource-list.js.map +0 -1
@@ -1,46 +1,45 @@
|
|
1
|
-
import { jsx as e, jsxs as d, Fragment as
|
2
|
-
import { memo as
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
8
|
-
import { BLOCK_TYPE as
|
9
|
-
import { NODE_CARD_STATES as
|
10
|
-
import { getNodeTypeBasedBgImage as
|
11
|
-
import { getNodeCardBasedIcon as
|
12
|
-
import
|
13
|
-
import { NodeCardContainer as
|
14
|
-
import
|
15
|
-
import
|
16
|
-
const
|
1
|
+
import { jsx as e, jsxs as d, Fragment as G } from "react/jsx-runtime";
|
2
|
+
import { memo as K, useCallback as T } from "react";
|
3
|
+
import P from "../../../../../assets/line-icons/icons/eye2.js";
|
4
|
+
import X from "../../../../../assets/line-icons/icons/redo.js";
|
5
|
+
import j from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
|
6
|
+
import M from "../../../../ui/context-menu/context-menu.js";
|
7
|
+
import z from "../../../../ui/text/text.js";
|
8
|
+
import { BLOCK_TYPE as F } from "../../../constants/block-constants.js";
|
9
|
+
import { NODE_CARD_STATES as l } from "../../../constants/node-constants.js";
|
10
|
+
import { getNodeTypeBasedBgImage as Y } from "../../../utils/index.js";
|
11
|
+
import { getNodeCardBasedIcon as Z } from "../../../utils/node-card-utils.js";
|
12
|
+
import q from "../border-path-animation.js";
|
13
|
+
import { NodeCardContainer as J, NodeCardInfoWrapper as Q, IconWrapper as U, StyledImportantIcon as V, NodeCardContentWrapper as ee, NodeCardTitle as te } from "../node-card-styled.js";
|
14
|
+
import oe from "../node-card-tags.js";
|
15
|
+
import re from "../node-menu-options/node-menu-options.js";
|
16
|
+
const Ie = K((k) => {
|
17
17
|
const {
|
18
18
|
nodeData: t,
|
19
|
-
imageHue:
|
20
|
-
blockType:
|
19
|
+
imageHue: w,
|
20
|
+
blockType: A,
|
21
21
|
onNodeAttempt: r,
|
22
22
|
onNodeReattempt: n,
|
23
23
|
onNodeReview: a,
|
24
24
|
onNodeView: i
|
25
|
-
} =
|
26
|
-
accuracy:
|
27
|
-
attempt_location:
|
25
|
+
} = k, {
|
26
|
+
accuracy: S,
|
27
|
+
attempt_location: E,
|
28
28
|
node_type: s,
|
29
|
-
card_header:
|
30
|
-
title:
|
29
|
+
card_header: N,
|
30
|
+
title: y,
|
31
31
|
state: c,
|
32
|
-
is_optional:
|
33
|
-
sheet_statement:
|
34
|
-
permissions:
|
35
|
-
marked_as_completed: C
|
32
|
+
is_optional: p,
|
33
|
+
sheet_statement: h,
|
34
|
+
permissions: x
|
36
35
|
} = t, {
|
37
|
-
can_review:
|
38
|
-
can_reattempt:
|
39
|
-
can_start:
|
40
|
-
can_resume:
|
41
|
-
} =
|
42
|
-
(
|
43
|
-
switch (
|
36
|
+
can_review: u,
|
37
|
+
can_reattempt: f,
|
38
|
+
can_start: C,
|
39
|
+
can_resume: $
|
40
|
+
} = x, g = A === F.GOAL, o = c === l.LOCKED, B = c === l.NOT_STARTED, L = c === l.IN_PROGRESS, R = E === "INCLASS", W = !h || !g, I = !p && (L || B), m = f || u, v = Y(s), _ = Z(s), b = T(
|
41
|
+
(O) => {
|
42
|
+
switch (O) {
|
44
43
|
case "node-card-review":
|
45
44
|
a == null || a(t);
|
46
45
|
return;
|
@@ -48,71 +47,68 @@ const ke = P((A) => {
|
|
48
47
|
n == null || n(t);
|
49
48
|
return;
|
50
49
|
default:
|
51
|
-
throw new Error(`No callback function for ${
|
50
|
+
throw new Error(`No callback function for ${O}`);
|
52
51
|
}
|
53
52
|
},
|
54
53
|
[t, n, a]
|
55
|
-
),
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
o,
|
65
|
-
C
|
66
|
-
]), K = [
|
54
|
+
), D = T(() => {
|
55
|
+
if (!(m || o)) {
|
56
|
+
if (C || $) {
|
57
|
+
r == null || r(t);
|
58
|
+
return;
|
59
|
+
}
|
60
|
+
i == null || i(t);
|
61
|
+
}
|
62
|
+
}, [$, C, t, r, i, m, o]), H = [
|
67
63
|
{
|
68
64
|
id: "node-card-review",
|
69
65
|
label: "Review",
|
70
|
-
icon:
|
71
|
-
disabled:
|
72
|
-
onClick:
|
66
|
+
icon: P,
|
67
|
+
disabled: !u,
|
68
|
+
onClick: b
|
73
69
|
},
|
74
70
|
{
|
75
71
|
id: "node-card-reattempt",
|
76
72
|
label: "Reattempt",
|
77
|
-
icon:
|
78
|
-
disabled: !
|
79
|
-
onClick:
|
73
|
+
icon: X,
|
74
|
+
disabled: !f,
|
75
|
+
onClick: b
|
80
76
|
}
|
81
77
|
];
|
82
78
|
return /* @__PURE__ */ e(
|
83
|
-
|
79
|
+
M,
|
84
80
|
{
|
85
81
|
targetElement: /* @__PURE__ */ e(
|
86
|
-
|
82
|
+
J,
|
87
83
|
{
|
88
|
-
$showOutline: !
|
89
|
-
$background: `${
|
84
|
+
$showOutline: !I,
|
85
|
+
$background: `${w}_2`,
|
90
86
|
$disabled: o,
|
91
|
-
onClick:
|
87
|
+
onClick: D,
|
92
88
|
children: /* @__PURE__ */ d(
|
93
|
-
|
89
|
+
j,
|
94
90
|
{
|
95
91
|
renderAs: "primary",
|
96
|
-
tooltipItem:
|
92
|
+
tooltipItem: h,
|
97
93
|
position: "bottom",
|
98
94
|
zIndex: 5,
|
99
|
-
hidden:
|
95
|
+
hidden: W,
|
100
96
|
parentWidth: "100%",
|
101
97
|
widthX: 11.25,
|
102
98
|
children: [
|
103
99
|
/* @__PURE__ */ d(
|
104
|
-
|
100
|
+
Q,
|
105
101
|
{
|
106
102
|
$flexDirection: "row",
|
107
103
|
$alignItems: "center",
|
108
104
|
$heightX: 3.5,
|
109
|
-
$bgImage:
|
105
|
+
$bgImage: v,
|
110
106
|
$gutterX: 0.78125,
|
111
107
|
$flexGap: 8.5,
|
112
108
|
$opacity: o ? 0.5 : 1,
|
113
109
|
children: [
|
114
110
|
/* @__PURE__ */ d(
|
115
|
-
|
111
|
+
U,
|
116
112
|
{
|
117
113
|
$width: 31,
|
118
114
|
$height: 31,
|
@@ -121,28 +117,28 @@ const ke = P((A) => {
|
|
121
117
|
$alignItems: "center",
|
122
118
|
$justifyContent: "center",
|
123
119
|
children: [
|
124
|
-
|
125
|
-
!
|
120
|
+
_ && /* @__PURE__ */ e(_, { width: 20, height: 20 }),
|
121
|
+
!p && /* @__PURE__ */ e(V, {})
|
126
122
|
]
|
127
123
|
}
|
128
124
|
),
|
129
|
-
/* @__PURE__ */ d(
|
130
|
-
|
125
|
+
/* @__PURE__ */ d(z, { $renderAs: "ac4-black", $color: "BLACK", children: [
|
126
|
+
N,
|
131
127
|
" ",
|
132
|
-
|
128
|
+
R && ". CW"
|
133
129
|
] }),
|
134
|
-
|
130
|
+
I && /* @__PURE__ */ e(q, {})
|
135
131
|
]
|
136
132
|
}
|
137
133
|
),
|
138
|
-
/* @__PURE__ */ e(
|
139
|
-
!
|
140
|
-
|
134
|
+
/* @__PURE__ */ e(oe, { nodeType: s, state: c, accuracy: S }),
|
135
|
+
!g && /* @__PURE__ */ e(ee, { $background: "WHITE_1", $heightX: 4, children: /* @__PURE__ */ e(
|
136
|
+
te,
|
141
137
|
{
|
142
138
|
$renderAs: "ab3",
|
143
139
|
$color: "BLACK_1",
|
144
140
|
$opacity: o ? 0.5 : 1,
|
145
|
-
children:
|
141
|
+
children: y
|
146
142
|
}
|
147
143
|
) })
|
148
144
|
]
|
@@ -154,11 +150,11 @@ const ke = P((A) => {
|
|
154
150
|
menuWidth: "100%",
|
155
151
|
menuZIndex: 6,
|
156
152
|
menuOffset: 2,
|
157
|
-
menuElement: /* @__PURE__ */ e(
|
153
|
+
menuElement: /* @__PURE__ */ e(G, { children: m ? /* @__PURE__ */ e(re, { options: H }) : void 0 })
|
158
154
|
}
|
159
155
|
);
|
160
156
|
});
|
161
157
|
export {
|
162
|
-
|
158
|
+
Ie as default
|
163
159
|
};
|
164
160
|
//# sourceMappingURL=student-actions.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"student-actions.js","sources":["../../../../../../src/features/chapters-v2/comps/node-card/student-actions/student-actions.tsx"],"sourcesContent":["import type { INodeCardProps } from '../node-card-types';\nimport type { INodeMenuOption } from '../node-menu-options/node-menu-options-types';\n\nimport { memo, useCallback, type FC } from 'react';\n\nimport Eye2Icon from '../../../../../assets/line-icons/icons/eye2';\nimport RedoIcon from '../../../../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport ContextMenu from '../../../../ui/context-menu/context-menu';\nimport Text from '../../../../ui/text/text';\nimport { BLOCK_TYPE } from '../../../constants/block-constants';\nimport { NODE_CARD_STATES } from '../../../constants/node-constants';\nimport { getNodeTypeBasedBgImage } from '../../../utils';\nimport { getNodeCardBasedIcon } from '../../../utils/node-card-utils';\nimport BorderPathAnimation from '../border-path-animation';\nimport * as Styled from '../node-card-styled';\nimport NodeCardTags from '../node-card-tags';\nimport NodeMenuOptions from '../node-menu-options/node-menu-options';\n\nconst StudentActions: FC<Omit<INodeCardProps, 'userType'>> = memo(props => {\n const {\n nodeData,\n imageHue,\n blockType,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n } = props;\n const {\n accuracy,\n attempt_location: attemptLocation,\n node_type: nodeType,\n card_header: cardHeader,\n title,\n state,\n is_optional: isOptional,\n sheet_statement: sheetStatement,\n permissions,\n marked_as_completed: teacherMarkedAsCompleted,\n } = nodeData;\n\n const {\n can_review: canReview,\n can_reattempt: canReattempt,\n can_start: canStart,\n can_resume: canResume,\n } = permissions;\n\n const isGoalBlock = blockType === BLOCK_TYPE.GOAL;\n const sheetLocked = state === NODE_CARD_STATES.LOCKED;\n const sheetNotStarted = state === NODE_CARD_STATES.NOT_STARTED;\n const sheetInProgress = state === NODE_CARD_STATES.IN_PROGRESS;\n const inClassSheet = attemptLocation === 'INCLASS';\n const tooltipHidden = !sheetStatement || !isGoalBlock;\n const canStartOrResume = canStart || canResume;\n\n const showCardAnimation = !isOptional && (sheetInProgress || sheetNotStarted);\n const renderOptions = !canStartOrResume && (canReattempt || canReview);\n\n const nodeBgImage = getNodeTypeBasedBgImage(nodeType);\n const NodeCardIcon = getNodeCardBasedIcon(nodeType);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'node-card-review':\n onNodeReview?.(nodeData);\n\n return;\n\n case 'node-card-reattempt':\n onNodeReattempt?.(nodeData);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [nodeData, onNodeReattempt, onNodeReview],\n );\n\n const handleOnNodeCardClick = useCallback(() => {\n if (renderOptions || sheetLocked) return;\n\n if (canStart || canResume) {\n onNodeAttempt?.(nodeData);\n } else if (teacherMarkedAsCompleted) {\n onNodeView?.(nodeData);\n }\n }, [\n canResume,\n canStart,\n nodeData,\n onNodeAttempt,\n onNodeView,\n renderOptions,\n sheetLocked,\n teacherMarkedAsCompleted,\n ]);\n\n const menuOptions: INodeMenuOption[] = [\n {\n id: 'node-card-review',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'node-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReattempt,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return (\n <ContextMenu\n targetElement={\n <Styled.NodeCardContainer\n $showOutline={!showCardAnimation}\n $background={`${imageHue}_2`}\n $disabled={sheetLocked}\n onClick={handleOnNodeCardClick}\n >\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem={sheetStatement}\n position=\"bottom\"\n zIndex={5}\n hidden={tooltipHidden}\n parentWidth=\"100%\"\n widthX={11.25}\n >\n <Styled.NodeCardInfoWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $heightX={3.5}\n $bgImage={nodeBgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $opacity={sheetLocked ? 0.5 : 1}\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {NodeCardIcon && <NodeCardIcon width={20} height={20} />}\n {!isOptional && <Styled.StyledImportantIcon />}\n </Styled.IconWrapper>\n\n <Text $renderAs=\"ac4-black\" $color=\"BLACK\">\n {cardHeader} {inClassSheet && `. CW`}\n </Text>\n\n {showCardAnimation && <BorderPathAnimation />}\n </Styled.NodeCardInfoWrapper>\n\n <NodeCardTags nodeType={nodeType} state={state} accuracy={accuracy} />\n\n {!isGoalBlock && (\n <Styled.NodeCardContentWrapper $background=\"WHITE_1\" $heightX={4}>\n <Styled.NodeCardTitle\n $renderAs=\"ab3\"\n $color=\"BLACK_1\"\n $opacity={sheetLocked ? 0.5 : 1}\n >\n {title}\n </Styled.NodeCardTitle>\n </Styled.NodeCardContentWrapper>\n )}\n </ArrowTooltip>\n </Styled.NodeCardContainer>\n }\n startLeft\n menuWidth=\"100%\"\n menuZIndex={6}\n menuOffset={2}\n menuElement={<>{renderOptions ? <NodeMenuOptions options={menuOptions} /> : undefined}</>}\n />\n );\n});\n\nexport default StudentActions;\n"],"names":["StudentActions","memo","props","nodeData","imageHue","blockType","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeView","accuracy","attemptLocation","nodeType","cardHeader","title","state","isOptional","sheetStatement","permissions","teacherMarkedAsCompleted","canReview","canReattempt","canStart","canResume","isGoalBlock","BLOCK_TYPE","sheetLocked","NODE_CARD_STATES","sheetNotStarted","sheetInProgress","inClassSheet","tooltipHidden","canStartOrResume","showCardAnimation","renderOptions","nodeBgImage","getNodeTypeBasedBgImage","NodeCardIcon","getNodeCardBasedIcon","handleOnMenuOptionClick","useCallback","optionId","handleOnNodeCardClick","menuOptions","Eye2Icon","RedoIcon","jsx","ContextMenu","Styled.NodeCardContainer","jsxs","ArrowTooltip","Styled.NodeCardInfoWrapper","Styled.IconWrapper","Styled.StyledImportantIcon","Text","BorderPathAnimation","NodeCardTags","Styled.NodeCardContentWrapper","Styled.NodeCardTitle","NodeMenuOptions"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"student-actions.js","sources":["../../../../../../src/features/chapters-v2/comps/node-card/student-actions/student-actions.tsx"],"sourcesContent":["import type { INodeCardProps } from '../node-card-types';\nimport type { INodeMenuOption } from '../node-menu-options/node-menu-options-types';\n\nimport { memo, useCallback, type FC } from 'react';\n\nimport Eye2Icon from '../../../../../assets/line-icons/icons/eye2';\nimport RedoIcon from '../../../../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport ContextMenu from '../../../../ui/context-menu/context-menu';\nimport Text from '../../../../ui/text/text';\nimport { BLOCK_TYPE } from '../../../constants/block-constants';\nimport { NODE_CARD_STATES } from '../../../constants/node-constants';\nimport { getNodeTypeBasedBgImage } from '../../../utils';\nimport { getNodeCardBasedIcon } from '../../../utils/node-card-utils';\nimport BorderPathAnimation from '../border-path-animation';\nimport * as Styled from '../node-card-styled';\nimport NodeCardTags from '../node-card-tags';\nimport NodeMenuOptions from '../node-menu-options/node-menu-options';\n\nconst StudentActions: FC<Omit<INodeCardProps, 'userType'>> = memo(props => {\n const {\n nodeData,\n imageHue,\n blockType,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n } = props;\n const {\n accuracy,\n attempt_location: attemptLocation,\n node_type: nodeType,\n card_header: cardHeader,\n title,\n state,\n is_optional: isOptional,\n sheet_statement: sheetStatement,\n permissions,\n } = nodeData;\n\n const {\n can_review: canReview,\n can_reattempt: canReattempt,\n can_start: canStart,\n can_resume: canResume,\n } = permissions;\n\n const isGoalBlock = blockType === BLOCK_TYPE.GOAL;\n const sheetLocked = state === NODE_CARD_STATES.LOCKED;\n const sheetNotStarted = state === NODE_CARD_STATES.NOT_STARTED;\n const sheetInProgress = state === NODE_CARD_STATES.IN_PROGRESS;\n const inClassSheet = attemptLocation === 'INCLASS';\n const tooltipHidden = !sheetStatement || !isGoalBlock;\n\n const showCardAnimation = !isOptional && (sheetInProgress || sheetNotStarted);\n const renderOptions = canReattempt || canReview;\n\n const nodeBgImage = getNodeTypeBasedBgImage(nodeType);\n const NodeCardIcon = getNodeCardBasedIcon(nodeType);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'node-card-review':\n onNodeReview?.(nodeData);\n\n return;\n\n case 'node-card-reattempt':\n onNodeReattempt?.(nodeData);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [nodeData, onNodeReattempt, onNodeReview],\n );\n\n const handleOnNodeCardClick = useCallback(() => {\n if (renderOptions || sheetLocked) return;\n\n if (canStart || canResume) {\n onNodeAttempt?.(nodeData);\n\n return;\n }\n\n onNodeView?.(nodeData);\n }, [canResume, canStart, nodeData, onNodeAttempt, onNodeView, renderOptions, sheetLocked]);\n\n const menuOptions: INodeMenuOption[] = [\n {\n id: 'node-card-review',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'node-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReattempt,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return (\n <ContextMenu\n targetElement={\n <Styled.NodeCardContainer\n $showOutline={!showCardAnimation}\n $background={`${imageHue}_2`}\n $disabled={sheetLocked}\n onClick={handleOnNodeCardClick}\n >\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem={sheetStatement}\n position=\"bottom\"\n zIndex={5}\n hidden={tooltipHidden}\n parentWidth=\"100%\"\n widthX={11.25}\n >\n <Styled.NodeCardInfoWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $heightX={3.5}\n $bgImage={nodeBgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $opacity={sheetLocked ? 0.5 : 1}\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {NodeCardIcon && <NodeCardIcon width={20} height={20} />}\n {!isOptional && <Styled.StyledImportantIcon />}\n </Styled.IconWrapper>\n\n <Text $renderAs=\"ac4-black\" $color=\"BLACK\">\n {cardHeader} {inClassSheet && `. CW`}\n </Text>\n\n {showCardAnimation && <BorderPathAnimation />}\n </Styled.NodeCardInfoWrapper>\n\n <NodeCardTags nodeType={nodeType} state={state} accuracy={accuracy} />\n\n {!isGoalBlock && (\n <Styled.NodeCardContentWrapper $background=\"WHITE_1\" $heightX={4}>\n <Styled.NodeCardTitle\n $renderAs=\"ab3\"\n $color=\"BLACK_1\"\n $opacity={sheetLocked ? 0.5 : 1}\n >\n {title}\n </Styled.NodeCardTitle>\n </Styled.NodeCardContentWrapper>\n )}\n </ArrowTooltip>\n </Styled.NodeCardContainer>\n }\n startLeft\n menuWidth=\"100%\"\n menuZIndex={6}\n menuOffset={2}\n menuElement={<>{renderOptions ? <NodeMenuOptions options={menuOptions} /> : undefined}</>}\n />\n );\n});\n\nexport default StudentActions;\n"],"names":["StudentActions","memo","props","nodeData","imageHue","blockType","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeView","accuracy","attemptLocation","nodeType","cardHeader","title","state","isOptional","sheetStatement","permissions","canReview","canReattempt","canStart","canResume","isGoalBlock","BLOCK_TYPE","sheetLocked","NODE_CARD_STATES","sheetNotStarted","sheetInProgress","inClassSheet","tooltipHidden","showCardAnimation","renderOptions","nodeBgImage","getNodeTypeBasedBgImage","NodeCardIcon","getNodeCardBasedIcon","handleOnMenuOptionClick","useCallback","optionId","handleOnNodeCardClick","menuOptions","Eye2Icon","RedoIcon","jsx","ContextMenu","Styled.NodeCardContainer","jsxs","ArrowTooltip","Styled.NodeCardInfoWrapper","Styled.IconWrapper","Styled.StyledImportantIcon","Text","BorderPathAnimation","NodeCardTags","Styled.NodeCardContentWrapper","Styled.NodeCardTitle","NodeMenuOptions"],"mappings":"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"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { ILLUSTRATIONS as e } from "../../../assets/illustrations/illustrations.js";
|
2
2
|
const _ = (t) => {
|
3
3
|
if (!t) return 0;
|
4
|
-
const { mandatory: E } = t, { completed:
|
5
|
-
return Math.floor(
|
4
|
+
const { mandatory: E } = t, { completed: n, total: r } = E;
|
5
|
+
return Math.floor(n / r * 100);
|
6
6
|
}, o = (t) => {
|
7
7
|
switch (t) {
|
8
8
|
case "LEARNING":
|
@@ -15,7 +15,6 @@ const _ = (t) => {
|
|
15
15
|
case "PRACTICE":
|
16
16
|
case "EXTRA_PRACTICE":
|
17
17
|
case "TARGET_PRACTICE":
|
18
|
-
case "MASTERY":
|
19
18
|
return e.NODE_PRACTICE_BG;
|
20
19
|
case "PUZZLE_EASY":
|
21
20
|
case "PUZZLE_MEDIUM":
|
@@ -26,9 +25,9 @@ const _ = (t) => {
|
|
26
25
|
default:
|
27
26
|
return e.NODE_CUSTOM_TEST_BG;
|
28
27
|
}
|
29
|
-
}, T = (t, E,
|
28
|
+
}, T = (t, E, n, r) => {
|
30
29
|
if (!t) {
|
31
|
-
if (!
|
30
|
+
if (!n) return `(${E})`;
|
32
31
|
if (r !== void 0 && r > 0)
|
33
32
|
return `${r}`;
|
34
33
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/features/chapters-v2/utils/index.ts"],"sourcesContent":["import type { IChapterProgressStats } from '../chapter-details/chapter-details-types';\nimport type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\n\n// This function calculates the completion percentage of a chapter based on progress stats.\n// If no progress stats are provided, it returns 0.\n// It uses the `mandatory` field from the progress stats to determine the completed and total items.\n// It returns an integer representing the percentage of completion, rounded down to the nearest whole number.\nconst getChapterCompletionPercentage = (progressStats: IChapterProgressStats | null) => {\n if (!progressStats) return 0;\n\n const { mandatory } = progressStats;\n const { completed, total } = mandatory;\n\n const percentage = Math.floor((completed / total) * 100);\n\n return percentage;\n};\n\nconst getNodeTypeBasedBgImage = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEARNING':\n return ILLUSTRATIONS.NODE_LEARN_BG;\n case 'RECAP':\n return ILLUSTRATIONS.NODE_RECAP_BG;\n\n case 'ASSESSMENT':\n case 'DYNAMIC':\n return ILLUSTRATIONS.NODE_CUSTOM_TEST_BG;\n\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/features/chapters-v2/utils/index.ts"],"sourcesContent":["import type { IChapterProgressStats } from '../chapter-details/chapter-details-types';\nimport type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\n\n// This function calculates the completion percentage of a chapter based on progress stats.\n// If no progress stats are provided, it returns 0.\n// It uses the `mandatory` field from the progress stats to determine the completed and total items.\n// It returns an integer representing the percentage of completion, rounded down to the nearest whole number.\nconst getChapterCompletionPercentage = (progressStats: IChapterProgressStats | null) => {\n if (!progressStats) return 0;\n\n const { mandatory } = progressStats;\n const { completed, total } = mandatory;\n\n const percentage = Math.floor((completed / total) * 100);\n\n return percentage;\n};\n\nconst getNodeTypeBasedBgImage = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEARNING':\n return ILLUSTRATIONS.NODE_LEARN_BG;\n case 'RECAP':\n return ILLUSTRATIONS.NODE_RECAP_BG;\n\n case 'ASSESSMENT':\n case 'DYNAMIC':\n return ILLUSTRATIONS.NODE_CUSTOM_TEST_BG;\n\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n return ILLUSTRATIONS.NODE_PRACTICE_BG;\n\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return ILLUSTRATIONS.NODE_PUZZLE_BG;\n\n case 'VIDEO':\n return ILLUSTRATIONS.NODE_VIDEO_BG;\n\n default:\n return ILLUSTRATIONS.NODE_CUSTOM_TEST_BG;\n }\n};\n\nconst getSheetNLessonCount = (\n isSkipped: boolean,\n sheetsLength: number,\n isGoalBlock?: boolean,\n lessonIdx?: number,\n) => {\n if (isSkipped) return undefined;\n\n if (!isGoalBlock) return `(${sheetsLength})`;\n\n if (lessonIdx !== undefined && lessonIdx > 0) {\n return `${lessonIdx}`;\n }\n};\n\nexport { getChapterCompletionPercentage, getNodeTypeBasedBgImage, getSheetNLessonCount };\n"],"names":["getChapterCompletionPercentage","progressStats","mandatory","completed","total","getNodeTypeBasedBgImage","nodeType","ILLUSTRATIONS","getSheetNLessonCount","isSkipped","sheetsLength","isGoalBlock","lessonIdx"],"mappings":";AASM,MAAAA,IAAiC,CAACC,MAAgD;AAClF,MAAA,CAACA,EAAsB,QAAA;AAErB,QAAA,EAAE,WAAAC,EAAc,IAAAD,GAChB,EAAE,WAAAE,GAAW,OAAAC,EAAU,IAAAF;AAItB,SAFY,KAAK,MAAOC,IAAYC,IAAS,GAAG;AAGzD,GAEMC,IAA0B,CAACC,MAA0C;AACzE,UAAQA,GAAU;AAAA,IAChB,KAAK;AACH,aAAOC,EAAc;AAAA,IACvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB;AACE,aAAOA,EAAc;AAAA,EACzB;AACF,GAEMC,IAAuB,CAC3BC,GACAC,GACAC,GACAC,MACG;AACH,MAAI,CAAAH,GAEJ;AAAA,QAAI,CAACE,EAAoB,QAAA,IAAID,CAAY;AAErC,QAAAE,MAAc,UAAaA,IAAY;AACzC,aAAO,GAAGA,CAAS;AAAA;AAEvB;"}
|
@@ -1,63 +1,36 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
8
|
-
import
|
9
|
-
import
|
10
|
-
import
|
11
|
-
import
|
12
|
-
import
|
13
|
-
import
|
14
|
-
import
|
15
|
-
|
16
|
-
|
17
|
-
const g = 60 * 60 * 24, $ = ["NOT_STARTED", "IN_PROGRESS"], C = (r) => {
|
18
|
-
if (!r)
|
19
|
-
return { isOverdue: !1, daysText: "" };
|
20
|
-
const c = Math.floor(Date.now() / 1e3), n = r - c, o = Math.ceil(n / g), t = o < 0, a = o > 0 ? `${Math.abs(o)}D` : "";
|
21
|
-
return { isOverdue: t, daysText: a };
|
22
|
-
}, W = (r, c, n) => {
|
23
|
-
const { isOverdue: o, daysText: t } = C(n);
|
24
|
-
if (o && $.includes(r))
|
25
|
-
return {
|
26
|
-
icon: /* @__PURE__ */ e(h, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ e(s, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) }),
|
27
|
-
top: -10,
|
28
|
-
right: -10
|
29
|
-
};
|
30
|
-
switch (r) {
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
2
|
+
import c from "../../../assets/line-icons/icons/alarm.js";
|
3
|
+
import n from "../../../assets/line-icons/icons/bulb2.js";
|
4
|
+
import m from "../../../assets/line-icons/icons/check2.js";
|
5
|
+
import a from "../../../assets/line-icons/icons/dart.js";
|
6
|
+
import i from "../../../assets/line-icons/icons/exclamation.js";
|
7
|
+
import I from "../../../assets/line-icons/icons/lock2.js";
|
8
|
+
import s from "../../../assets/line-icons/icons/play2.js";
|
9
|
+
import p from "../../../assets/line-icons/icons/puzzle.js";
|
10
|
+
import E from "../../../assets/line-icons/icons/recap.js";
|
11
|
+
import f from "../../../assets/line-icons/icons/status.js";
|
12
|
+
import u from "../../../assets/line-icons/icons/testtube.js";
|
13
|
+
import { InProgressIconWrapper as A } from "../comps/node-card/node-card-styled.js";
|
14
|
+
import e from "../comps/tag/tag.js";
|
15
|
+
const M = (o, t) => {
|
16
|
+
switch (o) {
|
31
17
|
case "LOCKED":
|
32
18
|
return {
|
33
|
-
icon: /* @__PURE__ */
|
19
|
+
icon: /* @__PURE__ */ r(I, { width: 32, height: 32 }),
|
34
20
|
top: -12,
|
35
21
|
right: -12
|
36
22
|
};
|
37
23
|
case "IN_PROGRESS":
|
38
24
|
return {
|
39
|
-
icon: /* @__PURE__ */
|
40
|
-
S,
|
41
|
-
{
|
42
|
-
$flexDirection: "row",
|
43
|
-
$alignItems: "center",
|
44
|
-
$justifyContent: "center",
|
45
|
-
$gutterX: t ? 0.5 : 0,
|
46
|
-
$borderRadius: 16,
|
47
|
-
children: [
|
48
|
-
t && /* @__PURE__ */ e(s, { $renderAs: "ac4-black", $color: "WHITE", children: t }),
|
49
|
-
/* @__PURE__ */ e(A, {})
|
50
|
-
]
|
51
|
-
}
|
52
|
-
)
|
25
|
+
icon: /* @__PURE__ */ r(A, { children: /* @__PURE__ */ r(f, {}) })
|
53
26
|
};
|
54
27
|
case "COMPLETED":
|
55
28
|
return {
|
56
|
-
icon: /* @__PURE__ */
|
57
|
-
|
29
|
+
icon: /* @__PURE__ */ r(
|
30
|
+
e,
|
58
31
|
{
|
59
|
-
Icon:
|
60
|
-
label: typeof
|
32
|
+
Icon: m,
|
33
|
+
label: typeof t == "number" ? `${t}%` : void 0
|
61
34
|
}
|
62
35
|
),
|
63
36
|
top: -10,
|
@@ -65,7 +38,7 @@ const g = 60 * 60 * 24, $ = ["NOT_STARTED", "IN_PROGRESS"], C = (r) => {
|
|
65
38
|
};
|
66
39
|
case "WAIT_FOR_REVIEW":
|
67
40
|
return {
|
68
|
-
icon: /* @__PURE__ */ e
|
41
|
+
icon: /* @__PURE__ */ r(e, { Icon: i }),
|
69
42
|
//<AlertIcon width={32} height={32} fill="white" />,
|
70
43
|
top: -10,
|
71
44
|
right: -10
|
@@ -75,32 +48,31 @@ const g = 60 * 60 * 24, $ = ["NOT_STARTED", "IN_PROGRESS"], C = (r) => {
|
|
75
48
|
icon: void 0
|
76
49
|
};
|
77
50
|
}
|
78
|
-
},
|
79
|
-
switch (
|
51
|
+
}, O = (o) => {
|
52
|
+
switch (o) {
|
80
53
|
case "LEARNING":
|
81
|
-
return
|
54
|
+
return n;
|
82
55
|
case "RECAP":
|
83
|
-
return
|
56
|
+
return E;
|
84
57
|
case "DYNAMIC":
|
85
58
|
case "ASSESSMENT":
|
86
|
-
return
|
59
|
+
return c;
|
87
60
|
case "PRACTICE":
|
88
61
|
case "EXTRA_PRACTICE":
|
89
62
|
case "TARGET_PRACTICE":
|
90
|
-
|
91
|
-
return f;
|
63
|
+
return a;
|
92
64
|
case "PUZZLE_EASY":
|
93
65
|
case "PUZZLE_MEDIUM":
|
94
66
|
case "PUZZLE_HARD":
|
95
|
-
return
|
67
|
+
return p;
|
96
68
|
case "VIDEO":
|
97
|
-
return
|
69
|
+
return s;
|
98
70
|
default:
|
99
|
-
return
|
71
|
+
return u;
|
100
72
|
}
|
101
73
|
};
|
102
74
|
export {
|
103
|
-
|
104
|
-
|
75
|
+
O as getNodeCardBasedIcon,
|
76
|
+
M as getNodeStateBasedTagInfo
|
105
77
|
};
|
106
78
|
//# 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 AlarmIcon from '../../../assets/line-icons/icons/alarm';\nimport Bulb2Icon from '../../../assets/line-icons/icons/bulb2';\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport DartIcon from '../../../assets/line-icons/icons/dart';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport Play2Icon from '../../../assets/line-icons/icons/play2';\nimport PuzzleIcon from '../../../assets/line-icons/icons/puzzle';\nimport RecapIcon from '../../../assets/line-icons/icons/recap';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport TestTubeIcon from '../../../assets/line-icons/icons/testtube';\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 AlarmIcon from '../../../assets/line-icons/icons/alarm';\nimport Bulb2Icon from '../../../assets/line-icons/icons/bulb2';\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport DartIcon from '../../../assets/line-icons/icons/dart';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport Play2Icon from '../../../assets/line-icons/icons/play2';\nimport PuzzleIcon from '../../../assets/line-icons/icons/puzzle';\nimport RecapIcon from '../../../assets/line-icons/icons/recap';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport TestTubeIcon from '../../../assets/line-icons/icons/testtube';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport Tag from '../comps/tag/tag';\n\nconst getNodeStateBasedTagInfo = (nodeState: INodeDataProps['state'], accuracy?: number | null) => {\n switch (nodeState) {\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 <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: <Tag Icon={ExclamationIcon} />, //<AlertIcon width={32} height={32} fill=\"white\" />,\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 Bulb2Icon;\n case 'RECAP':\n return RecapIcon;\n case 'DYNAMIC':\n case 'ASSESSMENT':\n return AlarmIcon;\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n return DartIcon;\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return PuzzleIcon;\n case 'VIDEO':\n return Play2Icon;\n\n default:\n return TestTubeIcon;\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["getNodeStateBasedTagInfo","nodeState","accuracy","jsx","Lock2Icon","InProgressIconWrapper","StatusIcon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","Bulb2Icon","RecapIcon","AlarmIcon","DartIcon","PuzzleIcon","Play2Icon","TestTubeIcon"],"mappings":";;;;;;;;;;;;;;AAgBM,MAAAA,IAA2B,CAACC,GAAoCC,MAA6B;AACjG,UAAQD,GAAW;AAAA,IACjB,KAAK;AACI,aAAA;AAAA,QACL,MAAO,gBAAAE,EAAAC,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI;AAAA,QACxC,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAD,EAACE,GACC,EAAA,UAAA,gBAAAF,EAACG,IAAW,CAAA,GACd;AAAA,MAAA;AAAA,IAGN,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,MAAMC;AAAA,YACN,OAAO,OAAON,KAAa,WAAW,GAAGA,CAAQ,MAAM;AAAA,UAAA;AAAA,QACzD;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAM,gBAAAC,EAACI,GAAI,EAAA,MAAME,EAAiB,CAAA;AAAA;AAAA,QAClC,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,aAAAC;AAAA,IACT,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AACI,aAAAC;AAAA,IAET;AACS,aAAAC;AAAA,EACX;AACF;"}
|