@cuemath/leap 3.0.7-hg2 → 3.0.8-as1
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/comps/node-card/node-menu-options/node-menu-option.js +15 -17
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js +3 -3
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +108 -94
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -1
- package/dist/features/chapters-v2/constants/node-constants.js +2 -1
- package/dist/features/chapters-v2/constants/node-constants.js.map +1 -1
- package/dist/features/homework/card-menu-options.js +13 -13
- package/dist/features/homework/card-menu-options.js.map +1 -1
- package/dist/features/homework/homework-card.js +82 -74
- package/dist/features/homework/homework-card.js.map +1 -1
- package/dist/features/homework/styles.js +30 -30
- package/dist/features/homework/styles.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +68 -68
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/ui/lottie-animation/lottie-animation.js +51 -56
- package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/package.json +2 -2
- package/dist/features/homework/card-menu-option.js +0 -28
- package/dist/features/homework/card-menu-option.js.map +0 -1
@@ -1,47 +1,47 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import { memo as
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
1
|
+
import { jsxs as T, jsx as r } from "react/jsx-runtime";
|
2
|
+
import { memo as Q, useRef as x, useCallback as w, useMemo as U } from "react";
|
3
|
+
import W from "../../assets/line-icons/icons/eye2.js";
|
4
|
+
import D from "../../assets/line-icons/icons/more-vertical.js";
|
5
|
+
import H from "../../assets/line-icons/icons/redo.js";
|
6
|
+
import A from "../ui/arrow-tooltip/arrow-tooltip.js";
|
7
7
|
import N from "../ui/buttons/clickable/clickable.js";
|
8
|
-
import
|
8
|
+
import X from "../ui/hooks/use-context-menu-click-handler.js";
|
9
9
|
import ee from "../ui/layout/flex-view.js";
|
10
|
-
import
|
10
|
+
import I from "./card-menu-options.js";
|
11
11
|
import re from "./homework-card-view.js";
|
12
12
|
import { CardContainer as te, MenuWrapper as ie, CardKebabMenuWrapper as ne, BlurContainer as oe, BlurFlexView as ce, StyledMinus2Icon as se } from "./styles.js";
|
13
|
-
import { getCardAnalyticProps as
|
14
|
-
const
|
13
|
+
import { getCardAnalyticProps as ae } from "./utils.js";
|
14
|
+
const le = ({
|
15
15
|
// callbacks
|
16
16
|
nodeData: e,
|
17
17
|
onNodeAttempt: b,
|
18
|
-
onNodeReattempt:
|
18
|
+
onNodeReattempt: d,
|
19
19
|
onNodeReview: n,
|
20
20
|
onNodeUnassign: m,
|
21
21
|
onNodeView: C,
|
22
|
-
header:
|
22
|
+
header: j,
|
23
23
|
isInQueue: E,
|
24
|
-
renderAs:
|
25
|
-
shouldOpenOnRight:
|
24
|
+
renderAs: F,
|
25
|
+
shouldOpenOnRight: L,
|
26
26
|
studentId: v,
|
27
|
-
subHeader:
|
27
|
+
subHeader: P,
|
28
28
|
userMilestoneId: t,
|
29
29
|
userType: g
|
30
30
|
}) => {
|
31
|
-
const i =
|
31
|
+
const i = F === "homework", {
|
32
32
|
node_type: k,
|
33
|
-
state:
|
34
|
-
permissions:
|
33
|
+
state: B,
|
34
|
+
permissions: z,
|
35
35
|
user_node_id: o,
|
36
|
-
user_milestone_id:
|
36
|
+
user_milestone_id: a,
|
37
37
|
homework_id: c
|
38
|
-
} = e, y =
|
38
|
+
} = e, y = x(null), $ = x(null), { menuVisible: R, onMenuClick: K } = X(y), { menuVisible: Y, onMenuClick: V } = X($), {
|
39
39
|
can_start: h,
|
40
40
|
can_resume: f,
|
41
41
|
can_review: s,
|
42
|
-
can_unassign:
|
43
|
-
can_reset:
|
44
|
-
} =
|
42
|
+
can_unassign: q,
|
43
|
+
can_reset: S
|
44
|
+
} = z, l = g === "STUDENT", p = w(() => {
|
45
45
|
if (s) {
|
46
46
|
if (typeof n != "function")
|
47
47
|
throw new Error("onReview must be a function");
|
@@ -50,7 +50,7 @@ const ae = ({
|
|
50
50
|
n(e, t);
|
51
51
|
return;
|
52
52
|
}
|
53
|
-
}, [s, n, o, e, t]),
|
53
|
+
}, [s, n, o, e, t]), G = w(() => {
|
54
54
|
if (h || f) {
|
55
55
|
if (typeof b != "function")
|
56
56
|
throw new Error("onNodeAttempt must be a function");
|
@@ -61,12 +61,12 @@ const ae = ({
|
|
61
61
|
V();
|
62
62
|
return;
|
63
63
|
}
|
64
|
-
|
64
|
+
p();
|
65
65
|
}, [
|
66
66
|
h,
|
67
67
|
f,
|
68
68
|
i,
|
69
|
-
|
69
|
+
p,
|
70
70
|
b,
|
71
71
|
e,
|
72
72
|
c,
|
@@ -77,92 +77,100 @@ const ae = ({
|
|
77
77
|
throw new Error("onNodeReview must be a function");
|
78
78
|
if (!o)
|
79
79
|
throw new Error("user node id must be present to review the sheet");
|
80
|
-
n(e, t ||
|
80
|
+
n(e, t || a, c);
|
81
81
|
return;
|
82
82
|
}
|
83
83
|
if (typeof C != "function")
|
84
84
|
throw new Error("onNodeView must be a function");
|
85
|
-
C(e, t ||
|
85
|
+
C(e, t || a);
|
86
86
|
}, [
|
87
87
|
s,
|
88
88
|
C,
|
89
89
|
e,
|
90
90
|
t,
|
91
|
-
|
91
|
+
a,
|
92
92
|
n,
|
93
93
|
o,
|
94
94
|
c
|
95
|
-
]),
|
96
|
-
(
|
97
|
-
switch (
|
95
|
+
]), u = w(
|
96
|
+
(O) => {
|
97
|
+
switch (O) {
|
98
98
|
case "teacher-card-view":
|
99
99
|
_();
|
100
100
|
return;
|
101
101
|
case "student-card-view":
|
102
|
-
|
102
|
+
p();
|
103
103
|
return;
|
104
104
|
case "teacher-card-unassign":
|
105
105
|
m == null || m(e, t);
|
106
106
|
return;
|
107
107
|
case "student-card-reattempt":
|
108
|
-
|
108
|
+
case "teacher-card-redo":
|
109
|
+
d == null || d(e, t);
|
109
110
|
return;
|
110
111
|
default:
|
111
|
-
throw new Error(`No callback function for ${
|
112
|
+
throw new Error(`No callback function for ${O}`);
|
112
113
|
}
|
113
114
|
},
|
114
115
|
[
|
115
116
|
e,
|
116
|
-
u,
|
117
|
-
m,
|
118
117
|
d,
|
118
|
+
m,
|
119
|
+
p,
|
119
120
|
_,
|
120
121
|
t
|
121
122
|
]
|
122
|
-
),
|
123
|
+
), J = [
|
123
124
|
{
|
124
125
|
id: "teacher-card-view",
|
125
126
|
label: s ? "Review" : "View",
|
126
|
-
icon:
|
127
|
+
icon: W,
|
127
128
|
disabled: !1,
|
128
|
-
onClick:
|
129
|
+
onClick: u
|
129
130
|
},
|
130
131
|
{
|
131
132
|
id: "teacher-card-unassign",
|
132
133
|
label: "Unassign",
|
133
134
|
icon: se,
|
134
|
-
disabled: i ? k === "MASTERY" : !
|
135
|
-
onClick:
|
135
|
+
disabled: i ? k === "MASTERY" : !q,
|
136
|
+
onClick: u
|
137
|
+
},
|
138
|
+
{
|
139
|
+
id: "teacher-card-redo",
|
140
|
+
label: "Redo",
|
141
|
+
icon: H,
|
142
|
+
disabled: !S,
|
143
|
+
onClick: u
|
136
144
|
}
|
137
|
-
],
|
145
|
+
], Z = [
|
138
146
|
{
|
139
147
|
id: "student-card-view",
|
140
148
|
label: "Review",
|
141
|
-
icon:
|
149
|
+
icon: W,
|
142
150
|
disabled: !s,
|
143
|
-
onClick:
|
151
|
+
onClick: u
|
144
152
|
},
|
145
153
|
{
|
146
154
|
id: "student-card-reattempt",
|
147
155
|
label: "Reattempt",
|
148
|
-
icon:
|
149
|
-
disabled: !
|
150
|
-
onClick:
|
156
|
+
icon: H,
|
157
|
+
disabled: !S,
|
158
|
+
onClick: u
|
151
159
|
}
|
152
|
-
],
|
153
|
-
() =>
|
160
|
+
], M = U(
|
161
|
+
() => ae({
|
154
162
|
canResume: f,
|
155
163
|
canStart: h,
|
156
164
|
homeworkId: c,
|
157
165
|
isHomeWork: i,
|
158
|
-
isStudent:
|
159
|
-
milestoneId:
|
166
|
+
isStudent: l,
|
167
|
+
milestoneId: a,
|
160
168
|
nodeType: k,
|
161
169
|
studentId: v,
|
162
170
|
userNodeId: o
|
163
171
|
}),
|
164
172
|
[
|
165
|
-
|
173
|
+
l,
|
166
174
|
i,
|
167
175
|
v,
|
168
176
|
k,
|
@@ -170,75 +178,75 @@ const ae = ({
|
|
170
178
|
f,
|
171
179
|
c,
|
172
180
|
o,
|
173
|
-
|
181
|
+
a
|
174
182
|
]
|
175
183
|
);
|
176
|
-
return /* @__PURE__ */
|
184
|
+
return /* @__PURE__ */ T(te, { $position: "relative", $width: "fit-content", children: [
|
177
185
|
/* @__PURE__ */ r(
|
178
186
|
N,
|
179
187
|
{
|
180
|
-
onClick:
|
188
|
+
onClick: l ? G : _,
|
181
189
|
label: "homework-card",
|
182
|
-
analyticsLabel:
|
183
|
-
analyticsProps:
|
190
|
+
analyticsLabel: M.analyticsLabel,
|
191
|
+
analyticsProps: M.analyticsProps,
|
184
192
|
children: /* @__PURE__ */ r(
|
185
193
|
re,
|
186
194
|
{
|
187
|
-
header:
|
195
|
+
header: j,
|
188
196
|
isInQueue: E,
|
189
197
|
nodeData: e,
|
190
198
|
studentContainerRef: $,
|
191
|
-
subHeader:
|
199
|
+
subHeader: P,
|
192
200
|
userType: g
|
193
201
|
}
|
194
202
|
)
|
195
203
|
}
|
196
204
|
),
|
197
|
-
|
198
|
-
|
205
|
+
l && !i && /* @__PURE__ */ r(
|
206
|
+
I,
|
199
207
|
{
|
200
208
|
$width: 200,
|
201
|
-
options:
|
209
|
+
options: Z,
|
202
210
|
triggerRef: $,
|
203
|
-
visible:
|
211
|
+
visible: Y,
|
204
212
|
shouldOpenOnRight: !1
|
205
213
|
}
|
206
214
|
),
|
207
|
-
!
|
215
|
+
!l && /* @__PURE__ */ T(ie, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
|
208
216
|
/* @__PURE__ */ r(
|
209
|
-
|
217
|
+
A,
|
210
218
|
{
|
211
219
|
renderAs: "primary",
|
212
220
|
tooltipItem: "Review",
|
213
221
|
position: "bottom",
|
214
222
|
zIndex: 6,
|
215
223
|
parentWidth: "100%",
|
216
|
-
hidden: R ||
|
224
|
+
hidden: R || B !== "WAIT_FOR_REVIEW" && i,
|
217
225
|
children: /* @__PURE__ */ r(
|
218
226
|
ne,
|
219
227
|
{
|
220
228
|
$alignItems: "center",
|
221
229
|
$justifyContent: "center",
|
222
230
|
ref: y,
|
223
|
-
onClick:
|
224
|
-
children: /* @__PURE__ */ r(
|
231
|
+
onClick: K,
|
232
|
+
children: /* @__PURE__ */ r(D, { width: 16, height: 16 })
|
225
233
|
}
|
226
234
|
)
|
227
235
|
}
|
228
236
|
),
|
229
237
|
/* @__PURE__ */ r(
|
230
|
-
|
238
|
+
I,
|
231
239
|
{
|
232
|
-
options:
|
240
|
+
options: J,
|
233
241
|
triggerRef: y,
|
234
242
|
visible: R,
|
235
|
-
shouldOpenOnRight:
|
243
|
+
shouldOpenOnRight: L
|
236
244
|
}
|
237
245
|
)
|
238
246
|
] }),
|
239
|
-
E && /* @__PURE__ */ r(oe, { $background: "WHITE_5", children: /* @__PURE__ */ r(ce, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ r(
|
247
|
+
E && /* @__PURE__ */ r(oe, { $background: "WHITE_5", children: /* @__PURE__ */ r(ce, { $heightX: 1, $widthX: 6, children: /* @__PURE__ */ r(A, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ r(ee, { $heightX: 1, $widthX: 6 }) }) }) })
|
240
248
|
] });
|
241
|
-
}, Ee =
|
249
|
+
}, Ee = Q(le);
|
242
250
|
export {
|
243
251
|
Ee as default
|
244
252
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../ui/types';\n\nimport { memo, useCallback, useMemo, useRef } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: TUserTypes;\n studentId: string;\n userMilestoneId?: string;\n renderAs: 'homework' | 'milestone';\n shouldOpenOnRight: boolean;\n isInQueue?: boolean;\n}\n\nconst HomeworkCard = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n\n header,\n isInQueue,\n renderAs,\n shouldOpenOnRight,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}: IHomeworkCardProps) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n state,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: milestoneId,\n homework_id: homeworkId,\n } = nodeData;\n\n const teacherContainerRef = useRef<HTMLDivElement>(null);\n const studentContainerRef = useRef<HTMLDivElement>(null);\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, userMilestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canStart,\n canResume,\n isHomeWork,\n onStudentViewSheet,\n onNodeAttempt,\n nodeData,\n homeworkId,\n onStudentMenuClick,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId || milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId || milestoneId);\n }, [\n canReview,\n onNodeView,\n nodeData,\n userMilestoneId,\n milestoneId,\n onNodeReview,\n userNodeId,\n homeworkId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, userMilestoneId);\n\n return;\n case 'student-card-reattempt':\n onNodeReattempt?.(nodeData, userMilestoneId);\n\n return;\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n nodeData,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n userMilestoneId,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n }),\n [\n isStudent,\n isHomeWork,\n studentId,\n nodeType,\n canStart,\n canResume,\n homeworkId,\n userNodeId,\n milestoneId,\n ],\n );\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n >\n <HomeworkView\n header={header}\n isInQueue={isInQueue}\n nodeData={nodeData}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n />\n </Clickable>\n {isStudent && !isHomeWork && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","header","isInQueue","renderAs","shouldOpenOnRight","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","state","permissions","userNodeId","milestoneId","homeworkId","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","studentOptions","RedoIcon","analyticsLabel","useMemo","getCardAnalyticProps","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"homework-card.js","sources":["../../../src/features/homework/homework-card.tsx"],"sourcesContent":["import type {\n INodeCardCallbacks,\n INodeDataProps,\n} from '../chapters-v2/comps/node-card/node-card-types';\nimport type { TUserTypes } from '../ui/types';\n\nimport { memo, useCallback, useMemo, useRef } from 'react';\n\nimport Eye2Icon from '../../assets/line-icons/icons/eye2';\nimport MoreVerticalIcon from '../../assets/line-icons/icons/more-vertical';\nimport RedoIcon from '../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../ui/arrow-tooltip/arrow-tooltip';\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../ui/layout/flex-view';\nimport CardMenuOptions from './card-menu-options';\nimport HomeworkView from './homework-card-view';\nimport * as Styled from './styles';\nimport { getCardAnalyticProps } from './utils';\n\ninterface IHomeworkCardProps extends INodeCardCallbacks {\n header: string;\n nodeData: INodeDataProps;\n subHeader: string;\n userType: TUserTypes;\n studentId: string;\n userMilestoneId?: string;\n renderAs: 'homework' | 'milestone';\n shouldOpenOnRight: boolean;\n isInQueue?: boolean;\n}\n\nconst HomeworkCard = ({\n // callbacks\n nodeData,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeUnassign,\n onNodeView,\n\n header,\n isInQueue,\n renderAs,\n shouldOpenOnRight,\n studentId,\n subHeader,\n userMilestoneId,\n userType,\n}: IHomeworkCardProps) => {\n const isHomeWork = renderAs === 'homework';\n const {\n node_type: nodeType,\n state,\n permissions,\n user_node_id: userNodeId,\n user_milestone_id: milestoneId,\n homework_id: homeworkId,\n } = nodeData;\n\n const teacherContainerRef = useRef<HTMLDivElement>(null);\n const studentContainerRef = useRef<HTMLDivElement>(null);\n const { menuVisible: teacherMenuVisible, onMenuClick: onTeacherMenuClick } =\n useContextMenuClickHandler(teacherContainerRef);\n const { menuVisible: studentMenuVisible, onMenuClick: onStudentMenuClick } =\n useContextMenuClickHandler(studentContainerRef);\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n const isStudent = userType === 'STUDENT';\n\n const onStudentViewSheet = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId);\n\n return;\n }\n }, [canReview, onNodeReview, userNodeId, nodeData, userMilestoneId]);\n\n const onStudentCardClick = useCallback(() => {\n if (canStart || canResume) {\n if (typeof onNodeAttempt !== 'function') {\n throw new Error('onNodeAttempt must be a function');\n }\n\n onNodeAttempt(nodeData, homeworkId);\n\n return;\n }\n\n if (!isHomeWork) {\n onStudentMenuClick();\n\n return;\n }\n onStudentViewSheet();\n }, [\n canStart,\n canResume,\n isHomeWork,\n onStudentViewSheet,\n onNodeAttempt,\n nodeData,\n homeworkId,\n onStudentMenuClick,\n ]);\n\n const onTeacherCardClick = useCallback(() => {\n if (canReview) {\n if (typeof onNodeReview !== 'function') {\n throw new Error('onNodeReview must be a function');\n }\n\n if (!userNodeId) {\n throw new Error('user node id must be present to review the sheet');\n }\n onNodeReview(nodeData, userMilestoneId || milestoneId, homeworkId);\n\n return;\n }\n\n if (typeof onNodeView !== 'function') {\n throw new Error('onNodeView must be a function');\n }\n\n onNodeView(nodeData, userMilestoneId || milestoneId);\n }, [\n canReview,\n onNodeView,\n nodeData,\n userMilestoneId,\n milestoneId,\n onNodeReview,\n userNodeId,\n homeworkId,\n ]);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'teacher-card-view':\n onTeacherCardClick();\n\n return;\n case 'student-card-view':\n onStudentViewSheet();\n\n return;\n case 'teacher-card-unassign':\n onNodeUnassign?.(nodeData, userMilestoneId);\n\n return;\n case 'student-card-reattempt':\n case 'teacher-card-redo':\n onNodeReattempt?.(nodeData, userMilestoneId);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n nodeData,\n onNodeReattempt,\n onNodeUnassign,\n onStudentViewSheet,\n onTeacherCardClick,\n userMilestoneId,\n ],\n );\n\n const teacherOptions = [\n {\n id: 'teacher-card-view',\n label: canReview ? 'Review' : 'View',\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-unassign',\n label: 'Unassign',\n icon: Styled.StyledMinus2Icon,\n disabled: isHomeWork ? nodeType === 'MASTERY' : !canUnassign,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'teacher-card-redo',\n label: 'Redo',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const studentOptions = [\n {\n id: 'student-card-view',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'student-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n const analyticsLabel = useMemo(\n () =>\n getCardAnalyticProps({\n canResume,\n canStart,\n homeworkId,\n isHomeWork,\n isStudent,\n milestoneId,\n nodeType,\n studentId,\n userNodeId,\n }),\n [\n isStudent,\n isHomeWork,\n studentId,\n nodeType,\n canStart,\n canResume,\n homeworkId,\n userNodeId,\n milestoneId,\n ],\n );\n\n return (\n <Styled.CardContainer $position=\"relative\" $width=\"fit-content\">\n <Clickable\n onClick={isStudent ? onStudentCardClick : onTeacherCardClick}\n label=\"homework-card\"\n analyticsLabel={analyticsLabel.analyticsLabel}\n analyticsProps={analyticsLabel.analyticsProps}\n >\n <HomeworkView\n header={header}\n isInQueue={isInQueue}\n nodeData={nodeData}\n studentContainerRef={studentContainerRef}\n subHeader={subHeader}\n userType={userType}\n />\n </Clickable>\n {isStudent && !isHomeWork && (\n <CardMenuOptions\n $width={200}\n options={studentOptions}\n triggerRef={studentContainerRef}\n visible={studentMenuVisible}\n shouldOpenOnRight={false}\n />\n )}\n {!isStudent && (\n <Styled.MenuWrapper $position=\"absolute\" $width=\"fit-content\" $borderRadiusX={2}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Review\"\n position=\"bottom\"\n zIndex={6}\n parentWidth=\"100%\"\n hidden={teacherMenuVisible || (state !== 'WAIT_FOR_REVIEW' && isHomeWork)}\n >\n <Styled.CardKebabMenuWrapper\n $alignItems=\"center\"\n $justifyContent=\"center\"\n ref={teacherContainerRef}\n onClick={onTeacherMenuClick}\n >\n <MoreVerticalIcon width={16} height={16} />\n </Styled.CardKebabMenuWrapper>\n </ArrowTooltip>\n <CardMenuOptions\n options={teacherOptions}\n triggerRef={teacherContainerRef}\n visible={teacherMenuVisible}\n shouldOpenOnRight={shouldOpenOnRight}\n />\n </Styled.MenuWrapper>\n )}\n {isInQueue && (\n <Styled.BlurContainer $background=\"WHITE_5\">\n <Styled.BlurFlexView $heightX={1} $widthX={6}>\n <ArrowTooltip renderAs=\"primary\" tooltipItem=\"Not visible to student\" position=\"bottom\">\n <FlexView $heightX={1} $widthX={6} />\n </ArrowTooltip>\n </Styled.BlurFlexView>\n </Styled.BlurContainer>\n )}\n </Styled.CardContainer>\n );\n};\n\nexport default memo(HomeworkCard);\n"],"names":["HomeworkCard","nodeData","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeUnassign","onNodeView","header","isInQueue","renderAs","shouldOpenOnRight","studentId","subHeader","userMilestoneId","userType","isHomeWork","nodeType","state","permissions","userNodeId","milestoneId","homeworkId","teacherContainerRef","useRef","studentContainerRef","teacherMenuVisible","onTeacherMenuClick","useContextMenuClickHandler","studentMenuVisible","onStudentMenuClick","canStart","canResume","canReview","canUnassign","canReset","isStudent","onStudentViewSheet","useCallback","onStudentCardClick","onTeacherCardClick","handleOnMenuOptionClick","optionId","teacherOptions","Eye2Icon","Styled.StyledMinus2Icon","RedoIcon","studentOptions","analyticsLabel","useMemo","getCardAnalyticProps","Styled.CardContainer","jsx","Clickable","HomeworkView","CardMenuOptions","jsxs","Styled.MenuWrapper","ArrowTooltip","Styled.CardKebabMenuWrapper","MoreVerticalIcon","Styled.BlurContainer","Styled.BlurFlexView","FlexView","HomeworkCard$1","memo"],"mappings":"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"}
|
@@ -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 e from "../ui/layout/flex-view.js";
|
4
4
|
import i from "../ui/text/text.js";
|
5
|
-
const
|
5
|
+
const c = r(e)(({ theme: o }) => `
|
6
6
|
cursor: pointer;
|
7
7
|
width: 24px;
|
8
8
|
height: 24px;
|
@@ -18,9 +18,9 @@ const l = r(t)(({ theme: o }) => `
|
|
18
18
|
-webkit-box-orient: vertical;
|
19
19
|
overflow: hidden;
|
20
20
|
text-overflow: ellipsis;
|
21
|
-
`,
|
21
|
+
`, u = r(e)(({
|
22
22
|
$shouldopenonright: o,
|
23
|
-
$visible:
|
23
|
+
$visible: t
|
24
24
|
}) => `
|
25
25
|
cursor: pointer;
|
26
26
|
position: absolute;
|
@@ -28,37 +28,37 @@ const l = r(t)(({ 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(${t ? 1 : 0});
|
32
|
+
opacity: ${t ? 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
|
+
`), x = r(e)`
|
37
37
|
border: 1px solid ${({ theme: o }) => o.colors.BLACK_T_15};
|
38
38
|
&:hover {
|
39
39
|
border: 1px solid ${({ theme: o }) => o.colors.BLACK};
|
40
40
|
border-top-width: 2px;
|
41
41
|
}
|
42
|
-
`, b = r(
|
42
|
+
`, b = r(e)(({ $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(e)`
|
49
49
|
display: flex;
|
50
50
|
align-items: center;
|
51
51
|
justify-content: center;
|
52
|
-
`, w = r(
|
52
|
+
`, w = r(e)`
|
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: t } = o.layout;
|
58
58
|
return `
|
59
59
|
border: 1px solid ${o.colors.BLACK_T_15};
|
60
|
-
width: ${
|
61
|
-
height: ${
|
60
|
+
width: ${t * 4}px;
|
61
|
+
height: ${t * 4}px;
|
62
62
|
border-radius: 50%;
|
63
63
|
`;
|
64
64
|
}), g = r(n)`
|
@@ -73,39 +73,41 @@ const l = r(t)(({ theme: o }) => `
|
|
73
73
|
text-overflow: ellipsis;
|
74
74
|
white-space: break-spaces;
|
75
75
|
`;
|
76
|
-
r(
|
77
|
-
|
76
|
+
r(e)``;
|
77
|
+
r(e)(({
|
78
78
|
theme: o,
|
79
|
-
$disabled:
|
79
|
+
$disabled: t
|
80
80
|
}) => `
|
81
|
-
cursor: ${
|
81
|
+
cursor: ${t ? "not-allowed" : "pointer"};
|
82
82
|
|
83
83
|
&:hover {
|
84
|
-
background: ${
|
84
|
+
background: ${t ? "transparent" : o.colors.BLACK};
|
85
85
|
};
|
86
86
|
|
87
87
|
path {
|
88
88
|
fill: ${o.colors.WHITE_1};
|
89
89
|
}
|
90
|
-
`)
|
90
|
+
`);
|
91
|
+
r(i)`
|
91
92
|
white-space: nowrap;
|
92
93
|
overflow: hidden;
|
93
94
|
text-overflow: ellipsis;
|
94
|
-
|
95
|
+
`;
|
96
|
+
const k = r(e)`
|
95
97
|
position: absolute;
|
96
98
|
z-index: 6;
|
97
99
|
top: calc(100% - 36px);
|
98
100
|
right: 12px;
|
99
101
|
transform-origin: top;
|
100
102
|
transform: scaleY(1);
|
101
|
-
`,
|
103
|
+
`, v = r(e)`
|
102
104
|
position: absolute;
|
103
105
|
top: 0;
|
104
106
|
left: 0;
|
105
107
|
width: 100%;
|
106
108
|
height: 100%;
|
107
109
|
opacity: 0.5;
|
108
|
-
`,
|
110
|
+
`, $ = r(e)`
|
109
111
|
position: absolute;
|
110
112
|
right: 42px;
|
111
113
|
top: 24px;
|
@@ -113,17 +115,15 @@ const k = r(t)(({
|
|
113
115
|
export {
|
114
116
|
f as BannerImage,
|
115
117
|
w as BannerImageWrapper,
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
k as CardOptionWrapper,
|
118
|
+
v as BlurContainer,
|
119
|
+
$ as BlurFlexView,
|
120
|
+
x as CardContainer,
|
121
|
+
c as CardKebabMenuWrapper,
|
122
|
+
u as CardMenuOptionsWrapper,
|
122
123
|
b as CardWrapper,
|
123
124
|
m as HeaderText,
|
124
125
|
h as IconWrapper,
|
125
|
-
|
126
|
-
v as OptionText,
|
126
|
+
k as MenuWrapper,
|
127
127
|
g as StyledMinus2Icon,
|
128
128
|
d as SubHeaderText
|
129
129
|
};
|
@@ -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 &: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","
|
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","$disabled","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;AAETD,EAAOC,CAAQ,EAA2B,CAAC;AAAA,EAC1E,OAAAC;AAAA,EACA,WAAAgB;AACF,MACS;AAAA,cACKA,IAAY,gBAAgB,SAAS;AAAA;AAAA;AAAA,oBAG/BA,IAAY,gBAAgBhB,EAAM,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,cAIpDA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGjC;AAEyBF,EAAOI,CAAI;AAAA;AAAA;AAAA;AAAA;AAMxB,MAAAe,IAAcnB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS7BmB,IAAgBpB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS/BoB,IAAerB,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;"}
|