@cuemath/leap 3.0.2-as1 → 3.0.3-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.
Files changed (21) hide show
  1. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.js +15 -17
  2. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.js.map +1 -1
  3. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js +4 -4
  4. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +1 -1
  5. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +68 -66
  6. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -1
  7. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +111 -95
  8. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -1
  9. package/dist/features/chapters-v2/constants/node-constants.js +2 -1
  10. package/dist/features/chapters-v2/constants/node-constants.js.map +1 -1
  11. package/dist/features/homework/card-menu-option.js +11 -13
  12. package/dist/features/homework/card-menu-option.js.map +1 -1
  13. package/dist/features/homework/card-menu-options.js +8 -8
  14. package/dist/features/homework/card-menu-options.js.map +1 -1
  15. package/dist/features/homework/homework-card.js +82 -74
  16. package/dist/features/homework/homework-card.js.map +1 -1
  17. package/dist/features/ui/border-path-animation/border-path-animation-styled.js +51 -0
  18. package/dist/features/ui/border-path-animation/border-path-animation-styled.js.map +1 -0
  19. package/dist/features/ui/border-path-animation/border-path-animation.js +108 -0
  20. package/dist/features/ui/border-path-animation/border-path-animation.js.map +1 -0
  21. package/package.json +1 -1
@@ -1,135 +1,150 @@
1
1
  import { jsxs as i, jsx as e } from "react/jsx-runtime";
2
- import { memo as U, useRef as S, useCallback as $ } from "react";
3
- import Y from "../../../../../assets/line-icons/icons/check2.js";
4
- import q from "../../../../../assets/line-icons/icons/eye2.js";
5
- import J from "../../../../../assets/line-icons/icons/home2.js";
6
- import k from "../../../../../assets/line-icons/icons/more-vertical.js";
7
- import N from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
8
- import Q from "../../../../ui/hooks/use-context-menu-click-handler.js";
9
- import V from "../../../../ui/layout/flex-view.js";
10
- import Z from "../../../../ui/lottie-animation/lottie-animation.js";
11
- import D from "../../../../ui/text/text.js";
12
- import { BLOCK_TYPE as ee } from "../../../constants/block-constants.js";
13
- import { NODE_CARD_STATES as C, TEACHER_MENU_LABELS as te } from "../../../constants/node-constants.js";
14
- import { getNodeTypeBasedBgImage as re } from "../../../utils/index.js";
15
- import { getNodeCardBasedIcon as ne } from "../../../utils/node-card-utils.js";
16
- import { NodeCardContainer as ie, NodeCardInfoWrapper as oe, IconWrapper as ae, StyledImportantIcon as ce, NodeKebabMenuWrapper as O, NodeCardContentWrapper as se, NodeCardTitle as le, NodeMenuOptionsWrapper as de } from "../node-card-styled.js";
17
- import me from "../node-card-tags.js";
18
- import pe from "../node-menu-options/node-menu-options.js";
19
- const he = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: fe, REVIEW: ue, VIEW: $e, MARK_AS_DONE: Ce } = te, Ge = U(
2
+ import { memo as q, useRef as O, useCallback as C } from "react";
3
+ import J from "../../../../../assets/line-icons/icons/check2.js";
4
+ import Q from "../../../../../assets/line-icons/icons/eye2.js";
5
+ import V from "../../../../../assets/line-icons/icons/home2.js";
6
+ import y from "../../../../../assets/line-icons/icons/more-vertical.js";
7
+ import Z from "../../../../../assets/line-icons/icons/redo.js";
8
+ import D from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
9
+ import N from "../../../../ui/border-path-animation/border-path-animation.js";
10
+ import ee from "../../../../ui/hooks/use-context-menu-click-handler.js";
11
+ import re from "../../../../ui/layout/flex-view.js";
12
+ import te from "../../../../ui/lottie-animation/lottie-animation.js";
13
+ import ne from "../../../../ui/text/text.js";
14
+ import { BLOCK_TYPE as ie } from "../../../constants/block-constants.js";
15
+ import { NODE_CARD_STATES as _, TEACHER_MENU_LABELS as oe } from "../../../constants/node-constants.js";
16
+ import { getNodeTypeBasedBgImage as ce } from "../../../utils/index.js";
17
+ import { getNodeCardBasedIcon as ae } from "../../../utils/node-card-utils.js";
18
+ import { NodeCardContainer as se, NodeCardInfoWrapper as le, IconWrapper as de, StyledImportantIcon as me, NodeKebabMenuWrapper as A, NodeCardContentWrapper as pe, NodeCardTitle as he, NodeMenuOptionsWrapper as fe } from "../node-card-styled.js";
19
+ import ue from "../node-card-tags.js";
20
+ import $e from "../node-menu-options/node-menu-options.js";
21
+ const Ce = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: _e, REVIEW: Ie, VIEW: be, MARK_AS_DONE: ge, RESET: Ee } = oe, Fe = q(
20
22
  ({
21
- nodeData: r,
22
- imageHue: T,
23
- blockType: y,
24
- isSkipped: x,
23
+ nodeData: t,
24
+ imageHue: W,
25
+ blockType: x,
26
+ isSkipped: I,
25
27
  onNodeAttemptLocationChange: o,
26
- onNodeMarkAsDone: a,
27
- onNodeView: c,
28
- onNodeReview: s
28
+ onNodeMarkAsDone: c,
29
+ onNodeView: a,
30
+ onNodeReview: s,
31
+ onNodeReattempt: l
29
32
  }) => {
30
- const d = S(null), { menuVisible: A, onMenuClick: _ } = Q(d), {
31
- accuracy: W,
33
+ const p = O(null), { menuVisible: B, onMenuClick: b } = ee(p), {
34
+ accuracy: L,
32
35
  attempt_location: w,
33
- node_type: m,
34
- card_header: L,
35
- title: B,
36
- state: l,
37
- is_optional: I,
38
- sheet_statement: g,
39
- permissions: M,
40
- user_attempt_id: p
41
- } = r, { lottie: H } = ne(m), h = S(null), {
42
- can_change_attempt_location: G,
43
- can_mark_familiar: K,
44
- can_review: f
45
- } = M, b = y === ee.GOAL, n = l === C.LOCKED, R = l === C.NOT_STARTED, j = l === C.IN_PROGRESS, E = w === "INCLASS", v = !I && (j || R), X = re(m), u = $(
46
- (t) => {
47
- switch (t) {
36
+ node_type: h,
37
+ card_header: M,
38
+ title: H,
39
+ state: d,
40
+ is_optional: g,
41
+ sheet_statement: E,
42
+ permissions: K,
43
+ user_attempt_id: f
44
+ } = t, { lottie: G } = ae(h), u = O(null), {
45
+ can_change_attempt_location: j,
46
+ can_mark_familiar: v,
47
+ can_review: $,
48
+ can_reset: P
49
+ } = K, S = x === ie.GOAL, n = d === _.LOCKED, R = d === _.NOT_STARTED, X = d === _.IN_PROGRESS, k = w === "INCLASS", T = !g && (X || R), F = ce(h), m = C(
50
+ (r) => {
51
+ switch (r) {
48
52
  case "node-card-view":
49
- f && p ? s == null || s(r) : c == null || c(r);
53
+ $ && f ? s == null || s(t) : a == null || a(t);
50
54
  return;
51
55
  case "node-card-assign-as-hw":
52
- o == null || o(r);
56
+ o == null || o(t);
53
57
  return;
54
58
  case "node-card-mark-as-done":
55
- a == null || a(r);
59
+ c == null || c(t);
60
+ return;
61
+ case "node-card-reset":
62
+ l == null || l(t);
56
63
  return;
57
64
  default:
58
- throw new Error(`No callback function for ${t}`);
65
+ throw new Error(`No callback function for ${r}`);
59
66
  }
60
67
  },
61
68
  [
62
- f,
63
- r,
69
+ $,
70
+ t,
64
71
  o,
65
- a,
66
- s,
67
72
  c,
68
- p
73
+ l,
74
+ s,
75
+ a,
76
+ f
69
77
  ]
70
- ), P = $(() => {
71
- var t;
72
- n || (t = h.current) == null || t.play();
73
- }, [n]), F = $(() => {
74
- var t;
75
- (t = h.current) == null || t.stop();
76
- }, []), z = [
78
+ ), z = C(() => {
79
+ var r;
80
+ n || (r = u.current) == null || r.play();
81
+ }, [n]), U = C(() => {
82
+ var r;
83
+ (r = u.current) == null || r.stop();
84
+ }, []), Y = [
77
85
  {
78
86
  id: "node-card-view",
79
- label: f && p ? ue : $e,
80
- icon: q,
87
+ label: $ && f ? Ie : be,
88
+ icon: Q,
81
89
  disabled: !1,
82
- onClick: u
90
+ onClick: m
83
91
  },
84
92
  {
85
93
  id: "node-card-assign-as-hw",
86
- label: fe,
87
- icon: J,
88
- disabled: !G || !E,
89
- onClick: u
94
+ label: _e,
95
+ icon: V,
96
+ disabled: !j || !k,
97
+ onClick: m
98
+ },
99
+ {
100
+ id: "node-card-reset",
101
+ label: Ee,
102
+ icon: Z,
103
+ disabled: !P,
104
+ onClick: m
90
105
  },
91
106
  {
92
107
  id: "node-card-mark-as-done",
93
- label: Ce,
94
- icon: Y,
95
- disabled: !K,
96
- onClick: u
108
+ label: ge,
109
+ icon: J,
110
+ disabled: !v,
111
+ onClick: m
97
112
  }
98
113
  ];
99
114
  return /* @__PURE__ */ i(
100
- ie,
115
+ se,
101
116
  {
102
- $showOutline: !v,
117
+ $showOutline: !T,
103
118
  $isSheetLocked: n,
104
- $background: `${T}_2`,
105
- $disabled: !!x,
119
+ $background: `${W}_2`,
120
+ $disabled: !!I,
106
121
  children: [
107
122
  /* @__PURE__ */ i(
108
- N,
123
+ D,
109
124
  {
110
125
  renderAs: "primary",
111
- tooltipItem: g,
126
+ tooltipItem: E,
112
127
  position: "bottom",
113
128
  zIndex: 5,
114
- hidden: !g,
129
+ hidden: !E,
115
130
  parentWidth: "100%",
116
131
  widthX: 11.25,
117
132
  children: [
118
133
  /* @__PURE__ */ i(
119
- oe,
134
+ le,
120
135
  {
121
136
  $flexDirection: "row",
122
137
  $alignItems: "center",
123
138
  $width: "100%",
124
139
  $heightX: 3.5,
125
- $bgImage: X,
140
+ $bgImage: F,
126
141
  $gutterX: 0.78125,
127
142
  $flexGap: 8.5,
128
- onMouseEnter: P,
129
- onMouseLeave: F,
143
+ onMouseEnter: z,
144
+ onMouseLeave: U,
130
145
  children: [
131
146
  /* @__PURE__ */ i(
132
- ae,
147
+ de,
133
148
  {
134
149
  $width: 31,
135
150
  $height: 31,
@@ -139,23 +154,24 @@ const he = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: fe, REVIEW: ue,
139
154
  $justifyContent: "center",
140
155
  $opacity: n ? 0.5 : 1,
141
156
  children: [
142
- /* @__PURE__ */ e(Z, { src: H, ref: h, settings: he }),
143
- !I && /* @__PURE__ */ e(ce, {})
157
+ /* @__PURE__ */ e(te, { src: G, ref: u, settings: Ce }),
158
+ !g && /* @__PURE__ */ e(me, {})
144
159
  ]
145
160
  }
146
161
  ),
147
- /* @__PURE__ */ i(D, { $renderAs: "ac4-black", $color: "BLACK", $opacity: n ? 0.5 : 1, children: [
148
- L,
162
+ /* @__PURE__ */ i(ne, { $renderAs: "ac4-black", $color: "BLACK", $opacity: n ? 0.5 : 1, children: [
163
+ M,
149
164
  " ",
150
- E && "• CW"
165
+ k && "• CW"
151
166
  ] }),
152
- /* @__PURE__ */ e(V, { className: "context-menu", children: b && /* @__PURE__ */ e(O, { ref: d, onClick: _, children: /* @__PURE__ */ e(k, { width: 16, height: 16 }) }) })
167
+ /* @__PURE__ */ e(re, { className: "context-menu", children: S && /* @__PURE__ */ e(A, { ref: p, onClick: b, children: /* @__PURE__ */ e(y, { width: 16, height: 16 }) }) }),
168
+ T && !I && /* @__PURE__ */ e(N, { borderColor: "BLACK_1", borderWidth: 1 })
153
169
  ]
154
170
  }
155
171
  ),
156
- /* @__PURE__ */ e(me, { nodeType: m, state: l, accuracy: W }),
157
- !b && /* @__PURE__ */ i(
158
- se,
172
+ /* @__PURE__ */ e(ue, { nodeType: h, state: d, accuracy: L }),
173
+ !S && /* @__PURE__ */ i(
174
+ pe,
159
175
  {
160
176
  $flexDirection: "row",
161
177
  $alignItems: "center",
@@ -165,28 +181,28 @@ const he = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: fe, REVIEW: ue,
165
181
  $justifyContent: "space-between",
166
182
  children: [
167
183
  /* @__PURE__ */ e(
168
- le,
184
+ he,
169
185
  {
170
186
  $renderAs: "ab3",
171
187
  $color: "BLACK_1",
172
188
  $opacity: n ? 0.5 : 1,
173
- children: B
189
+ children: H
174
190
  }
175
191
  ),
176
- /* @__PURE__ */ e(O, { ref: d, onClick: _, children: /* @__PURE__ */ e(k, { width: 16, height: 16 }) })
192
+ /* @__PURE__ */ e(A, { ref: p, onClick: b, children: /* @__PURE__ */ e(y, { width: 16, height: 16 }) })
177
193
  ]
178
194
  }
179
195
  )
180
196
  ]
181
197
  }
182
198
  ),
183
- /* @__PURE__ */ e(de, { $visible: A, children: /* @__PURE__ */ e(pe, { options: z }) })
199
+ /* @__PURE__ */ e(fe, { $visible: B, children: /* @__PURE__ */ e($e, { options: Y }) })
184
200
  ]
185
201
  }
186
202
  );
187
203
  }
188
204
  );
189
205
  export {
190
- Ge as default
206
+ Fe as default
191
207
  };
192
208
  //# sourceMappingURL=teacher-actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"teacher-actions.js","sources":["../../../../../../src/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../../../ui/lottie-animation/types';\nimport type { INodeCardProps } from '../node-card-types';\nimport type { INodeMenuOption } from '../node-menu-options/node-menu-options-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useRef } from 'react';\n\nimport Check2Icon from '../../../../../assets/line-icons/icons/check2';\nimport Eye2Icon from '../../../../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../../../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../../../../assets/line-icons/icons/more-vertical';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport useContextMenuClickHandler from '../../../../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport Text from '../../../../ui/text/text';\nimport { BLOCK_TYPE } from '../../../constants/block-constants';\nimport { NODE_CARD_STATES, TEACHER_MENU_LABELS } from '../../../constants/node-constants';\nimport { getNodeTypeBasedBgImage } from '../../../utils';\nimport { getNodeCardBasedIcon } from '../../../utils/node-card-utils';\n// import 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 renderSettings = { renderer: 'canvas', autoplay: false };\nconst { ASSIGN_AS_HW, REVIEW, VIEW, MARK_AS_DONE } = TEACHER_MENU_LABELS;\n\nconst TeacherActions: FC<Omit<INodeCardProps, 'userType'>> = memo(\n ({\n nodeData,\n imageHue,\n blockType,\n isSkipped,\n onNodeAttemptLocationChange,\n onNodeMarkAsDone,\n onNodeView,\n onNodeReview,\n }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(containerRef);\n\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 user_attempt_id: userAttemptId,\n } = nodeData;\n\n const { lottie: nodeCardLottie } = getNodeCardBasedIcon(nodeType);\n const animationRef = useRef<ILottieAnimationRef | null>(null);\n\n const {\n can_change_attempt_location: canChangeAttemptLocation,\n can_mark_familiar: canMarkFamiliar,\n can_review: canReview,\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\n const showCardAnimation = !isOptional && (sheetInProgress || sheetNotStarted);\n\n const nodeBgImage = getNodeTypeBasedBgImage(nodeType);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'node-card-view':\n if (canReview && userAttemptId) {\n onNodeReview?.(nodeData);\n } else {\n onNodeView?.(nodeData);\n }\n\n return;\n\n case 'node-card-assign-as-hw':\n onNodeAttemptLocationChange?.(nodeData);\n\n return;\n\n case 'node-card-mark-as-done':\n onNodeMarkAsDone?.(nodeData);\n\n return;\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n canReview,\n nodeData,\n onNodeAttemptLocationChange,\n onNodeMarkAsDone,\n onNodeReview,\n onNodeView,\n userAttemptId,\n ],\n );\n\n const handleOnMouseEnter = useCallback(() => {\n if (sheetLocked) return;\n animationRef.current?.play();\n }, [sheetLocked]);\n\n const handleOnMouseLeave = useCallback(() => {\n animationRef.current?.stop();\n }, []);\n\n const menuOptions: INodeMenuOption[] = [\n {\n id: 'node-card-view',\n label: canReview && userAttemptId ? REVIEW : VIEW,\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'node-card-assign-as-hw',\n label: ASSIGN_AS_HW,\n icon: Home2Icon,\n disabled: !canChangeAttemptLocation || !inClassSheet,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'node-card-mark-as-done',\n label: MARK_AS_DONE,\n icon: Check2Icon,\n disabled: !canMarkFamiliar,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return (\n <Styled.NodeCardContainer\n $showOutline={!showCardAnimation}\n $isSheetLocked={sheetLocked}\n $background={`${imageHue}_2`}\n $disabled={Boolean(isSkipped)}\n >\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem={sheetStatement}\n position=\"bottom\"\n zIndex={5}\n hidden={!sheetStatement}\n parentWidth=\"100%\"\n widthX={11.25}\n >\n <Styled.NodeCardInfoWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={nodeBgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleOnMouseLeave}\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $opacity={sheetLocked ? 0.5 : 1}\n >\n <LottieAnimation src={nodeCardLottie} ref={animationRef} settings={renderSettings} />\n {!isOptional && <Styled.StyledImportantIcon />}\n </Styled.IconWrapper>\n\n <Text $renderAs=\"ac4-black\" $color=\"BLACK\" $opacity={sheetLocked ? 0.5 : 1}>\n {cardHeader} {inClassSheet && `• CW`}\n </Text>\n\n <FlexView className=\"context-menu\">\n {isGoalBlock && (\n <Styled.NodeKebabMenuWrapper ref={containerRef} onClick={onMenuClick}>\n <MoreVerticalIcon width={16} height={16} />\n </Styled.NodeKebabMenuWrapper>\n )}\n </FlexView>\n\n {/* {showCardAnimation && !isSkipped && <BorderPathAnimation />} */}\n </Styled.NodeCardInfoWrapper>\n\n <NodeCardTags nodeType={nodeType} state={state} accuracy={accuracy} />\n\n {!isGoalBlock && (\n <Styled.NodeCardContentWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $background=\"WHITE_1\"\n $flexGap={8}\n $heightX={4}\n $justifyContent=\"space-between\"\n >\n <Styled.NodeCardTitle\n $renderAs=\"ab3\"\n $color=\"BLACK_1\"\n $opacity={sheetLocked ? 0.5 : 1}\n >\n {title}\n </Styled.NodeCardTitle>\n\n <Styled.NodeKebabMenuWrapper ref={containerRef} onClick={onMenuClick}>\n <MoreVerticalIcon width={16} height={16} />\n </Styled.NodeKebabMenuWrapper>\n </Styled.NodeCardContentWrapper>\n )}\n </ArrowTooltip>\n\n <Styled.NodeMenuOptionsWrapper $visible={menuVisible}>\n <NodeMenuOptions options={menuOptions} />\n </Styled.NodeMenuOptionsWrapper>\n </Styled.NodeCardContainer>\n );\n },\n);\n\nexport default TeacherActions;\n"],"names":["renderSettings","ASSIGN_AS_HW","REVIEW","VIEW","MARK_AS_DONE","TEACHER_MENU_LABELS","TeacherActions","memo","nodeData","imageHue","blockType","isSkipped","onNodeAttemptLocationChange","onNodeMarkAsDone","onNodeView","onNodeReview","containerRef","useRef","menuVisible","onMenuClick","useContextMenuClickHandler","accuracy","attemptLocation","nodeType","cardHeader","title","state","isOptional","sheetStatement","permissions","userAttemptId","nodeCardLottie","getNodeCardBasedIcon","animationRef","canChangeAttemptLocation","canMarkFamiliar","canReview","isGoalBlock","BLOCK_TYPE","sheetLocked","NODE_CARD_STATES","sheetNotStarted","sheetInProgress","inClassSheet","showCardAnimation","nodeBgImage","getNodeTypeBasedBgImage","handleOnMenuOptionClick","useCallback","optionId","handleOnMouseEnter","_a","handleOnMouseLeave","menuOptions","Eye2Icon","Home2Icon","Check2Icon","jsxs","Styled.NodeCardContainer","ArrowTooltip","Styled.NodeCardInfoWrapper","Styled.IconWrapper","jsx","LottieAnimation","Styled.StyledImportantIcon","Text","FlexView","Styled.NodeKebabMenuWrapper","MoreVerticalIcon","NodeCardTags","Styled.NodeCardContentWrapper","Styled.NodeCardTitle","Styled.NodeMenuOptionsWrapper","NodeMenuOptions"],"mappings":"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"}
1
+ {"version":3,"file":"teacher-actions.js","sources":["../../../../../../src/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../../../ui/lottie-animation/types';\nimport type { INodeCardProps } from '../node-card-types';\nimport type { INodeMenuOption } from '../node-menu-options/node-menu-options-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useRef } from 'react';\n\nimport Check2Icon from '../../../../../assets/line-icons/icons/check2';\nimport Eye2Icon from '../../../../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../../../../assets/line-icons/icons/home2';\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 BorderPathAnimation from '../../../../ui/border-path-animation/border-path-animation';\nimport useContextMenuClickHandler from '../../../../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport Text from '../../../../ui/text/text';\nimport { BLOCK_TYPE } from '../../../constants/block-constants';\nimport { NODE_CARD_STATES, TEACHER_MENU_LABELS } from '../../../constants/node-constants';\nimport { getNodeTypeBasedBgImage } from '../../../utils';\nimport { getNodeCardBasedIcon } from '../../../utils/node-card-utils';\nimport * as Styled from '../node-card-styled';\nimport NodeCardTags from '../node-card-tags';\nimport NodeMenuOptions from '../node-menu-options/node-menu-options';\n\nconst renderSettings = { renderer: 'canvas', autoplay: false };\nconst { ASSIGN_AS_HW, REVIEW, VIEW, MARK_AS_DONE, RESET } = TEACHER_MENU_LABELS;\n\nconst TeacherActions: FC<Omit<INodeCardProps, 'userType'>> = memo(\n ({\n nodeData,\n imageHue,\n blockType,\n isSkipped,\n onNodeAttemptLocationChange,\n onNodeMarkAsDone,\n onNodeView,\n onNodeReview,\n onNodeReattempt,\n }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(containerRef);\n\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 user_attempt_id: userAttemptId,\n } = nodeData;\n\n const { lottie: nodeCardLottie } = getNodeCardBasedIcon(nodeType);\n const animationRef = useRef<ILottieAnimationRef | null>(null);\n\n const {\n can_change_attempt_location: canChangeAttemptLocation,\n can_mark_familiar: canMarkFamiliar,\n can_review: canReview,\n can_reset: canReset,\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\n const showCardAnimation = !isOptional && (sheetInProgress || sheetNotStarted);\n\n const nodeBgImage = getNodeTypeBasedBgImage(nodeType);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'node-card-view':\n if (canReview && userAttemptId) {\n onNodeReview?.(nodeData);\n } else {\n onNodeView?.(nodeData);\n }\n\n return;\n\n case 'node-card-assign-as-hw':\n onNodeAttemptLocationChange?.(nodeData);\n\n return;\n\n case 'node-card-mark-as-done':\n onNodeMarkAsDone?.(nodeData);\n\n return;\n\n case 'node-card-reset':\n onNodeReattempt?.(nodeData);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n canReview,\n nodeData,\n onNodeAttemptLocationChange,\n onNodeMarkAsDone,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n userAttemptId,\n ],\n );\n\n const handleOnMouseEnter = useCallback(() => {\n if (sheetLocked) return;\n animationRef.current?.play();\n }, [sheetLocked]);\n\n const handleOnMouseLeave = useCallback(() => {\n animationRef.current?.stop();\n }, []);\n\n const menuOptions: INodeMenuOption[] = [\n {\n id: 'node-card-view',\n label: canReview && userAttemptId ? REVIEW : VIEW,\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'node-card-assign-as-hw',\n label: ASSIGN_AS_HW,\n icon: Home2Icon,\n disabled: !canChangeAttemptLocation || !inClassSheet,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'node-card-reset',\n label: RESET,\n icon: RedoIcon,\n disabled: !canReset,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'node-card-mark-as-done',\n label: MARK_AS_DONE,\n icon: Check2Icon,\n disabled: !canMarkFamiliar,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return (\n <Styled.NodeCardContainer\n $showOutline={!showCardAnimation}\n $isSheetLocked={sheetLocked}\n $background={`${imageHue}_2`}\n $disabled={Boolean(isSkipped)}\n >\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem={sheetStatement}\n position=\"bottom\"\n zIndex={5}\n hidden={!sheetStatement}\n parentWidth=\"100%\"\n widthX={11.25}\n >\n <Styled.NodeCardInfoWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={nodeBgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleOnMouseLeave}\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $opacity={sheetLocked ? 0.5 : 1}\n >\n <LottieAnimation src={nodeCardLottie} ref={animationRef} settings={renderSettings} />\n {!isOptional && <Styled.StyledImportantIcon />}\n </Styled.IconWrapper>\n\n <Text $renderAs=\"ac4-black\" $color=\"BLACK\" $opacity={sheetLocked ? 0.5 : 1}>\n {cardHeader} {inClassSheet && `• CW`}\n </Text>\n\n <FlexView className=\"context-menu\">\n {isGoalBlock && (\n <Styled.NodeKebabMenuWrapper ref={containerRef} onClick={onMenuClick}>\n <MoreVerticalIcon width={16} height={16} />\n </Styled.NodeKebabMenuWrapper>\n )}\n </FlexView>\n\n {showCardAnimation && !isSkipped && (\n <BorderPathAnimation borderColor=\"BLACK_1\" borderWidth={1} />\n )}\n </Styled.NodeCardInfoWrapper>\n\n <NodeCardTags nodeType={nodeType} state={state} accuracy={accuracy} />\n\n {!isGoalBlock && (\n <Styled.NodeCardContentWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $background=\"WHITE_1\"\n $flexGap={8}\n $heightX={4}\n $justifyContent=\"space-between\"\n >\n <Styled.NodeCardTitle\n $renderAs=\"ab3\"\n $color=\"BLACK_1\"\n $opacity={sheetLocked ? 0.5 : 1}\n >\n {title}\n </Styled.NodeCardTitle>\n\n <Styled.NodeKebabMenuWrapper ref={containerRef} onClick={onMenuClick}>\n <MoreVerticalIcon width={16} height={16} />\n </Styled.NodeKebabMenuWrapper>\n </Styled.NodeCardContentWrapper>\n )}\n </ArrowTooltip>\n\n <Styled.NodeMenuOptionsWrapper $visible={menuVisible}>\n <NodeMenuOptions options={menuOptions} />\n </Styled.NodeMenuOptionsWrapper>\n </Styled.NodeCardContainer>\n );\n },\n);\n\nexport default TeacherActions;\n"],"names":["renderSettings","ASSIGN_AS_HW","REVIEW","VIEW","MARK_AS_DONE","RESET","TEACHER_MENU_LABELS","TeacherActions","memo","nodeData","imageHue","blockType","isSkipped","onNodeAttemptLocationChange","onNodeMarkAsDone","onNodeView","onNodeReview","onNodeReattempt","containerRef","useRef","menuVisible","onMenuClick","useContextMenuClickHandler","accuracy","attemptLocation","nodeType","cardHeader","title","state","isOptional","sheetStatement","permissions","userAttemptId","nodeCardLottie","getNodeCardBasedIcon","animationRef","canChangeAttemptLocation","canMarkFamiliar","canReview","canReset","isGoalBlock","BLOCK_TYPE","sheetLocked","NODE_CARD_STATES","sheetNotStarted","sheetInProgress","inClassSheet","showCardAnimation","nodeBgImage","getNodeTypeBasedBgImage","handleOnMenuOptionClick","useCallback","optionId","handleOnMouseEnter","_a","handleOnMouseLeave","menuOptions","Eye2Icon","Home2Icon","RedoIcon","Check2Icon","jsxs","Styled.NodeCardContainer","ArrowTooltip","Styled.NodeCardInfoWrapper","Styled.IconWrapper","jsx","LottieAnimation","Styled.StyledImportantIcon","Text","FlexView","Styled.NodeKebabMenuWrapper","MoreVerticalIcon","BorderPathAnimation","NodeCardTags","Styled.NodeCardContentWrapper","Styled.NodeCardTitle","Styled.NodeMenuOptionsWrapper","NodeMenuOptions"],"mappings":"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"}
@@ -4,7 +4,8 @@ const I = {
4
4
  SKIP: "Skip",
5
5
  REVERT_SKIP: "Revert Skip",
6
6
  REVIEW: "Review",
7
- VIEW: "View"
7
+ VIEW: "View",
8
+ RESET: "Reset"
8
9
  };
9
10
  var R = /* @__PURE__ */ ((E) => (E.LOCKED = "LOCKED", E.NOT_STARTED = "NOT_STARTED", E.WAIT_FOR_REVIEW = "WAIT_FOR_REVIEW", E.IN_PROGRESS = "IN_PROGRESS", E.COMPLETED = "COMPLETED", E))(R || {});
10
11
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"node-constants.js","sources":["../../../../src/features/chapters-v2/constants/node-constants.ts"],"sourcesContent":["export const TEACHER_MENU_LABELS = {\n ASSIGN_AS_HW: 'Assign as HW',\n MARK_AS_DONE: 'Mark as Done',\n SKIP: 'Skip',\n REVERT_SKIP: 'Revert Skip',\n REVIEW: 'Review',\n VIEW: 'View',\n};\n\nexport enum NODE_CARD_STATES {\n LOCKED = 'LOCKED',\n NOT_STARTED = 'NOT_STARTED',\n WAIT_FOR_REVIEW = 'WAIT_FOR_REVIEW',\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n}\n\nexport enum NODE_CARD_COURSE_TYPES {\n PROGRAM = 'PROGRAM',\n REMEDIAL = 'REMEDIAL',\n TEST_SERIES = 'TEST_SERIES',\n EXAM = 'EXAM',\n}\n"],"names":["TEACHER_MENU_LABELS","NODE_CARD_STATES"],"mappings":"AAAO,MAAMA,IAAsB;AAAA,EACjC,cAAc;AAAA,EACd,cAAc;AAAA,EACd,MAAM;AAAA,EACN,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AACR;AAEY,IAAAC,sBAAAA,OACVA,EAAA,SAAS,UACTA,EAAA,cAAc,eACdA,EAAA,kBAAkB,mBAClBA,EAAA,cAAc,eACdA,EAAA,YAAY,aALFA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"node-constants.js","sources":["../../../../src/features/chapters-v2/constants/node-constants.ts"],"sourcesContent":["export const TEACHER_MENU_LABELS = {\n ASSIGN_AS_HW: 'Assign as HW',\n MARK_AS_DONE: 'Mark as Done',\n SKIP: 'Skip',\n REVERT_SKIP: 'Revert Skip',\n REVIEW: 'Review',\n VIEW: 'View',\n RESET: 'Reset',\n};\n\nexport enum NODE_CARD_STATES {\n LOCKED = 'LOCKED',\n NOT_STARTED = 'NOT_STARTED',\n WAIT_FOR_REVIEW = 'WAIT_FOR_REVIEW',\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n}\n\nexport enum NODE_CARD_COURSE_TYPES {\n PROGRAM = 'PROGRAM',\n REMEDIAL = 'REMEDIAL',\n TEST_SERIES = 'TEST_SERIES',\n EXAM = 'EXAM',\n}\n"],"names":["TEACHER_MENU_LABELS","NODE_CARD_STATES"],"mappings":"AAAO,MAAMA,IAAsB;AAAA,EACjC,cAAc;AAAA,EACd,cAAc;AAAA,EACd,MAAM;AAAA,EACN,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AACT;AAEY,IAAAC,sBAAAA,OACVA,EAAA,SAAS,UACTA,EAAA,cAAc,eACdA,EAAA,kBAAkB,mBAClBA,EAAA,cAAc,eACdA,EAAA,YAAY,aALFA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1,28 +1,26 @@
1
- import { jsx as i, jsxs as c } from "react/jsx-runtime";
2
- import { memo as d, useCallback as p } from "react";
3
- import s from "../ui/buttons/clickable/clickable.js";
4
- import { CardOptionWrapper as m, OptionText as $ } from "./styles.js";
5
- const C = d((l) => {
6
- const { icon: t, label: n, id: e, onClick: r, disabled: o } = l, a = p(() => o ? null : r(e), [o, e, r]);
7
- return /* @__PURE__ */ i(s, { onClick: a, label: e, children: /* @__PURE__ */ c(
8
- m,
1
+ import { jsx as l, jsxs as a } from "react/jsx-runtime";
2
+ import { memo as p, useCallback as d } from "react";
3
+ import m from "../ui/buttons/clickable/clickable.js";
4
+ import { CardOptionWrapper as s, OptionText as u } from "./styles.js";
5
+ const b = p((i) => {
6
+ const { icon: n, label: t, id: e, onClick: o, disabled: r } = i, c = d(() => r ? null : o(e), [r, e, o]);
7
+ return r ? null : /* @__PURE__ */ l(m, { onClick: c, label: e, children: /* @__PURE__ */ a(
8
+ s,
9
9
  {
10
10
  $flexDirection: "row",
11
11
  $alignItems: "center",
12
12
  $flexGap: 8,
13
13
  $gapX: 0.5,
14
14
  $gutterX: 1,
15
- $opacity: o ? 0.5 : 1,
16
- $disabled: o,
17
15
  children: [
18
- /* @__PURE__ */ i(t, { width: 20, height: 20 }),
19
- /* @__PURE__ */ i($, { $renderAs: "ub3", $color: "WHITE", children: n })
16
+ /* @__PURE__ */ l(n, { width: 20, height: 20 }),
17
+ /* @__PURE__ */ l(u, { $renderAs: "ub3", $color: "WHITE", children: t })
20
18
  ]
21
19
  },
22
20
  e
23
21
  ) }, e);
24
22
  });
25
23
  export {
26
- C as default
24
+ b as default
27
25
  };
28
26
  //# sourceMappingURL=card-menu-option.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"card-menu-option.js","sources":["../../../src/features/homework/card-menu-option.tsx"],"sourcesContent":["import type { ICardMenuOption } from './card-menu-options';\n\nimport { memo, useCallback } from 'react';\n\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport * as Styled from './styles';\n\nconst CardMenuOption = memo((option: ICardMenuOption) => {\n const { icon: OptionIcon, label, id, onClick, disabled } = option;\n\n const handleClick = useCallback(() => (!disabled ? onClick(id) : null), [disabled, id, onClick]);\n\n return (\n <Clickable onClick={handleClick} label={id} key={id}>\n <Styled.CardOptionWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $flexGap={8}\n $gapX={0.5}\n $gutterX={1}\n $opacity={disabled ? 0.5 : 1}\n $disabled={disabled}\n key={id}\n >\n <OptionIcon width={20} height={20} />\n <Styled.OptionText $renderAs=\"ub3\" $color=\"WHITE\">\n {label}\n </Styled.OptionText>\n </Styled.CardOptionWrapper>\n </Clickable>\n );\n});\n\nexport default CardMenuOption;\n"],"names":["CardMenuOption","memo","option","OptionIcon","label","id","onClick","disabled","handleClick","useCallback","jsx","Clickable","jsxs","Styled.CardOptionWrapper","Styled.OptionText"],"mappings":";;;;AAOM,MAAAA,IAAiBC,EAAK,CAACC,MAA4B;AACvD,QAAM,EAAE,MAAMC,GAAY,OAAAC,GAAO,IAAAC,GAAI,SAAAC,GAAS,UAAAC,EAAa,IAAAL,GAErDM,IAAcC,EAAY,MAAQF,IAAyB,OAAdD,EAAQD,CAAE,GAAW,CAACE,GAAUF,GAAIC,CAAO,CAAC;AAE/F,SACG,gBAAAI,EAAAC,GAAA,EAAU,SAASH,GAAa,OAAOH,GACtC,UAAA,gBAAAO;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,UAAU;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,MACV,UAAUN,IAAW,MAAM;AAAA,MAC3B,WAAWA;AAAA,MAGX,UAAA;AAAA,QAAA,gBAAAG,EAACP,GAAW,EAAA,OAAO,IAAI,QAAQ,IAAI;AAAA,QACnC,gBAAAO,EAACI,GAAA,EAAkB,WAAU,OAAM,QAAO,SACvC,UACHV,GAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IALKC;AAAA,EAAA,KATwCA,CAgBjD;AAEJ,CAAC;"}
1
+ {"version":3,"file":"card-menu-option.js","sources":["../../../src/features/homework/card-menu-option.tsx"],"sourcesContent":["import type { ICardMenuOption } from './card-menu-options';\n\nimport { memo, useCallback } from 'react';\n\nimport Clickable from '../ui/buttons/clickable/clickable';\nimport * as Styled from './styles';\n\nconst CardMenuOption = memo((option: ICardMenuOption) => {\n const { icon: OptionIcon, label, id, onClick, disabled } = option;\n\n const handleClick = useCallback(() => (!disabled ? onClick(id) : null), [disabled, id, onClick]);\n\n if (disabled) return null;\n\n return (\n <Clickable onClick={handleClick} label={id} key={id}>\n <Styled.CardOptionWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $flexGap={8}\n $gapX={0.5}\n $gutterX={1}\n key={id}\n >\n <OptionIcon width={20} height={20} />\n <Styled.OptionText $renderAs=\"ub3\" $color=\"WHITE\">\n {label}\n </Styled.OptionText>\n </Styled.CardOptionWrapper>\n </Clickable>\n );\n});\n\nexport default CardMenuOption;\n"],"names":["CardMenuOption","memo","option","OptionIcon","label","id","onClick","disabled","handleClick","useCallback","jsx","Clickable","jsxs","Styled.CardOptionWrapper","Styled.OptionText"],"mappings":";;;;AAOM,MAAAA,IAAiBC,EAAK,CAACC,MAA4B;AACvD,QAAM,EAAE,MAAMC,GAAY,OAAAC,GAAO,IAAAC,GAAI,SAAAC,GAAS,UAAAC,EAAa,IAAAL,GAErDM,IAAcC,EAAY,MAAQF,IAAyB,OAAdD,EAAQD,CAAE,GAAW,CAACE,GAAUF,GAAIC,CAAO,CAAC;AAE/F,SAAIC,IAAiB,OAGlB,gBAAAG,EAAAC,GAAA,EAAU,SAASH,GAAa,OAAOH,GACtC,UAAA,gBAAAO;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,UAAU;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,MAGV,UAAA;AAAA,QAAA,gBAAAH,EAACP,GAAW,EAAA,OAAO,IAAI,QAAQ,IAAI;AAAA,QACnC,gBAAAO,EAACI,GAAA,EAAkB,WAAU,OAAM,QAAO,SACvC,UACHV,GAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IALKC;AAAA,EAAA,KAPwCA,CAcjD;AAEJ,CAAC;"}
@@ -1,20 +1,20 @@
1
1
  import { jsx as m } from "react/jsx-runtime";
2
- import { memo as p, createElement as a } from "react";
2
+ import { memo as a, createElement as d } from "react";
3
3
  import i from "./card-menu-option.js";
4
- import { CardMenuOptionsWrapper as d } from "./styles.js";
5
- const C = p(
6
- ({ options: e, shouldOpenOnRight: n, visible: r, $width: t }) => r ? /* @__PURE__ */ m(
7
- d,
4
+ import { CardMenuOptionsWrapper as p } from "./styles.js";
5
+ const C = a(
6
+ ({ options: e, shouldOpenOnRight: n, visible: o, $width: t }) => !o || !e.some((r) => !r.disabled) ? null : /* @__PURE__ */ m(
7
+ p,
8
8
  {
9
- $visible: r,
9
+ $visible: o,
10
10
  $background: "BLACK_2",
11
11
  $borderColor: "WHITE_T_38",
12
12
  $gapX: 0.5,
13
13
  $width: t,
14
14
  $shouldopenonright: n,
15
- children: e.map((o) => /* @__PURE__ */ a(i, { ...o, key: o.id }))
15
+ children: e.map((r) => /* @__PURE__ */ d(i, { ...r, key: r.id }))
16
16
  }
17
- ) : null
17
+ )
18
18
  );
19
19
  export {
20
20
  C as default
@@ -1 +1 @@
1
- {"version":3,"file":"card-menu-options.js","sources":["../../../src/features/homework/card-menu-options.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nimport { memo } from 'react';\n\nimport CardMenuOption from './card-menu-option';\nimport * as Styled from './styles';\n\nexport interface ICardMenuOption {\n id: string;\n label: string;\n icon: FC<SVGProps<SVGSVGElement>>;\n onClick: (id: string) => void;\n disabled: boolean;\n}\n\ninterface ICardMenuOptionsProps {\n $width?: string | number;\n options: ICardMenuOption[];\n triggerRef: React.RefObject<HTMLElement>;\n visible: boolean;\n shouldOpenOnRight: boolean;\n}\n\nconst CardMenuOptions: FC<ICardMenuOptionsProps> = memo(\n ({ options, shouldOpenOnRight, visible, $width }) => {\n if (!visible) return null;\n\n return (\n <Styled.CardMenuOptionsWrapper\n $visible={visible}\n $background=\"BLACK_2\"\n $borderColor=\"WHITE_T_38\"\n $gapX={0.5}\n $width={$width}\n $shouldopenonright={shouldOpenOnRight}\n >\n {options.map(option => (\n <CardMenuOption {...option} key={option.id} />\n ))}\n </Styled.CardMenuOptionsWrapper>\n );\n },\n);\n\nexport default CardMenuOptions;\n"],"names":["CardMenuOptions","memo","options","shouldOpenOnRight","visible","$width","jsx","Styled.CardMenuOptionsWrapper","option","createElement","CardMenuOption"],"mappings":";;;;AAuBA,MAAMA,IAA6CC;AAAA,EACjD,CAAC,EAAE,SAAAC,GAAS,mBAAAC,GAAmB,SAAAC,GAAS,QAAAC,QACjCD,IAGH,gBAAAE;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,UAAUH;AAAA,MACV,aAAY;AAAA,MACZ,cAAa;AAAA,MACb,OAAO;AAAA,MACP,QAAAC;AAAA,MACA,oBAAoBF;AAAA,MAEnB,UAAAD,EAAQ,IAAI,CAAAM,MACV,gBAAAC,EAAAC,GAAA,EAAgB,GAAGF,GAAQ,KAAKA,EAAO,GAAI,CAAA,CAC7C;AAAA,IAAA;AAAA,EAAA,IAbgB;AAiBzB;"}
1
+ {"version":3,"file":"card-menu-options.js","sources":["../../../src/features/homework/card-menu-options.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nimport { memo } from 'react';\n\nimport CardMenuOption from './card-menu-option';\nimport * as Styled from './styles';\n\nexport interface ICardMenuOption {\n id: string;\n label: string;\n icon: FC<SVGProps<SVGSVGElement>>;\n onClick: (id: string) => void;\n disabled: boolean;\n}\n\ninterface ICardMenuOptionsProps {\n $width?: string | number;\n options: ICardMenuOption[];\n triggerRef: React.RefObject<HTMLElement>;\n visible: boolean;\n shouldOpenOnRight: boolean;\n}\n\nconst CardMenuOptions: FC<ICardMenuOptionsProps> = memo(\n ({ options, shouldOpenOnRight, visible, $width }) => {\n if (!visible) return null;\n\n if (!options.some(item => !item.disabled)) return null;\n\n return (\n <Styled.CardMenuOptionsWrapper\n $visible={visible}\n $background=\"BLACK_2\"\n $borderColor=\"WHITE_T_38\"\n $gapX={0.5}\n $width={$width}\n $shouldopenonright={shouldOpenOnRight}\n >\n {options.map(option => (\n <CardMenuOption {...option} key={option.id} />\n ))}\n </Styled.CardMenuOptionsWrapper>\n );\n },\n);\n\nexport default CardMenuOptions;\n"],"names":["CardMenuOptions","memo","options","shouldOpenOnRight","visible","$width","item","jsx","Styled.CardMenuOptionsWrapper","option","createElement","CardMenuOption"],"mappings":";;;;AAuBA,MAAMA,IAA6CC;AAAA,EACjD,CAAC,EAAE,SAAAC,GAAS,mBAAAC,GAAmB,SAAAC,GAAS,QAAAC,QAClC,CAACD,KAED,CAACF,EAAQ,KAAK,CAAAI,MAAQ,CAACA,EAAK,QAAQ,IAAU,OAGhD,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,UAAUJ;AAAA,MACV,aAAY;AAAA,MACZ,cAAa;AAAA,MACb,OAAO;AAAA,MACP,QAAAC;AAAA,MACA,oBAAoBF;AAAA,MAEnB,UAAAD,EAAQ,IAAI,CAAAO,MACV,gBAAAC,EAAAC,GAAA,EAAgB,GAAGF,GAAQ,KAAKA,EAAO,GAAI,CAAA,CAC7C;AAAA,IAAA;AAAA,EAAA;AAIT;"}