@cuemath/leap 3.0.2 → 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.
@@ -1,30 +1,28 @@
1
- import { jsxs as d, jsx as t } from "react/jsx-runtime";
2
- import { memo as p, useCallback as a } from "react";
1
+ import { jsx as e, jsxs as p } from "react/jsx-runtime";
2
+ import { memo as d, useCallback as a } from "react";
3
+ import m from "../../../../ui/buttons/clickable/clickable.js";
3
4
  import s from "../../../../ui/text/text.js";
4
- import { NodeOptionWrapper as m } from "./node-menu-options-styled.js";
5
- const $ = ({ option: n }) => {
6
- const { icon: r, label: l, id: e, disabled: o, onClick: i } = n, c = a(() => {
7
- o || i(e);
8
- }, [o, e, i]);
9
- return /* @__PURE__ */ d(
10
- m,
5
+ import { NodeOptionWrapper as f } from "./node-menu-options-styled.js";
6
+ const u = ({ option: i }) => {
7
+ const { icon: n, label: t, id: o, disabled: l, onClick: r } = i, c = a(() => {
8
+ r(o);
9
+ }, [o, r]);
10
+ return l ? null : /* @__PURE__ */ e(m, { onClick: c, label: o, children: /* @__PURE__ */ p(
11
+ f,
11
12
  {
12
13
  $flexDirection: "row",
13
14
  $alignItems: "center",
14
15
  $flexGap: 8,
15
16
  $gapX: 0.5,
16
17
  $gutterX: 1,
17
- $opacity: o ? 0.5 : 1,
18
- $disabled: o,
19
- onClick: c,
20
18
  children: [
21
- /* @__PURE__ */ t(r, { width: 20, height: 20 }),
22
- /* @__PURE__ */ t(s, { $renderAs: "ub3", $color: "WHITE", children: l })
19
+ /* @__PURE__ */ e(n, { width: 20, height: 20 }),
20
+ /* @__PURE__ */ e(s, { $renderAs: "ub3", $color: "WHITE", children: t })
23
21
  ]
24
22
  }
25
- );
26
- }, b = p($);
23
+ ) }, o);
24
+ }, C = d(u);
27
25
  export {
28
- b as default
26
+ C as default
29
27
  };
30
28
  //# sourceMappingURL=node-menu-option.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-menu-option.js","sources":["../../../../../../src/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.tsx"],"sourcesContent":["import type { INodeMenuOption } from './node-menu-options-types';\n\nimport { memo, useCallback } from 'react';\n\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './node-menu-options-styled';\n\nconst NodeMenuOption = ({ option }: { option: INodeMenuOption }) => {\n const { icon: OptionIcon, label, id, disabled, onClick } = option;\n\n const handleNodeOptionClick = useCallback(() => {\n if (!disabled) {\n onClick(id);\n }\n }, [disabled, id, onClick]);\n\n return (\n <Styled.NodeOptionWrapper\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 onClick={handleNodeOptionClick}\n >\n <OptionIcon width={20} height={20} />\n <Text $renderAs=\"ub3\" $color=\"WHITE\">\n {label}\n </Text>\n </Styled.NodeOptionWrapper>\n );\n};\n\nexport default memo(NodeMenuOption);\n"],"names":["NodeMenuOption","option","OptionIcon","label","id","disabled","onClick","handleNodeOptionClick","useCallback","jsxs","Styled.NodeOptionWrapper","jsx","Text","NodeMenuOption$1","memo"],"mappings":";;;;AAOA,MAAMA,IAAiB,CAAC,EAAE,QAAAC,QAA0C;AAClE,QAAM,EAAE,MAAMC,GAAY,OAAAC,GAAO,IAAAC,GAAI,UAAAC,GAAU,SAAAC,EAAY,IAAAL,GAErDM,IAAwBC,EAAY,MAAM;AAC9C,IAAKH,KACHC,EAAQF,CAAE;AAAA,EAEX,GAAA,CAACC,GAAUD,GAAIE,CAAO,CAAC;AAGxB,SAAA,gBAAAG;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,UAAU;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,MACV,UAAUL,IAAW,MAAM;AAAA,MAC3B,WAAWA;AAAA,MACX,SAASE;AAAA,MAET,UAAA;AAAA,QAAA,gBAAAI,EAACT,GAAW,EAAA,OAAO,IAAI,QAAQ,IAAI;AAAA,0BAClCU,GAAK,EAAA,WAAU,OAAM,QAAO,SAC1B,UACHT,GAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEeU,IAAAC,EAAKd,CAAc;"}
1
+ {"version":3,"file":"node-menu-option.js","sources":["../../../../../../src/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.tsx"],"sourcesContent":["import type { INodeMenuOption } from './node-menu-options-types';\n\nimport { memo, useCallback } from 'react';\n\nimport Clickable from '../../../../ui/buttons/clickable/clickable';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './node-menu-options-styled';\n\nconst NodeMenuOption = ({ option }: { option: INodeMenuOption }) => {\n const { icon: OptionIcon, label, id, disabled, onClick } = option;\n\n const handleNodeOptionClick = useCallback(() => {\n onClick(id);\n }, [id, onClick]);\n\n if (disabled) return null;\n\n return (\n <Clickable onClick={handleNodeOptionClick} label={id} key={id}>\n <Styled.NodeOptionWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $flexGap={8}\n $gapX={0.5}\n $gutterX={1}\n >\n <OptionIcon width={20} height={20} />\n <Text $renderAs=\"ub3\" $color=\"WHITE\">\n {label}\n </Text>\n </Styled.NodeOptionWrapper>\n </Clickable>\n );\n};\n\nexport default memo(NodeMenuOption);\n"],"names":["NodeMenuOption","option","OptionIcon","label","id","disabled","onClick","handleNodeOptionClick","useCallback","jsx","Clickable","jsxs","Styled.NodeOptionWrapper","Text","NodeMenuOption$1","memo"],"mappings":";;;;;AAQA,MAAMA,IAAiB,CAAC,EAAE,QAAAC,QAA0C;AAClE,QAAM,EAAE,MAAMC,GAAY,OAAAC,GAAO,IAAAC,GAAI,UAAAC,GAAU,SAAAC,EAAY,IAAAL,GAErDM,IAAwBC,EAAY,MAAM;AAC9C,IAAAF,EAAQF,CAAE;AAAA,EAAA,GACT,CAACA,GAAIE,CAAO,CAAC;AAEhB,SAAID,IAAiB,OAGlB,gBAAAI,EAAAC,GAAA,EAAU,SAASH,GAAuB,OAAOH,GAChD,UAAA,gBAAAO;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,UAAU;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,MAEV,UAAA;AAAA,QAAA,gBAAAH,EAACP,GAAW,EAAA,OAAO,IAAI,QAAQ,IAAI;AAAA,0BAClCW,GAAK,EAAA,WAAU,OAAM,QAAO,SAC1B,UACHV,GAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,KAXuDC,CAa3D;AAEJ,GAEeU,IAAAC,EAAKf,CAAc;"}
@@ -1,9 +1,9 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import { memo as t } from "react";
3
- import m from "./node-menu-option.js";
2
+ import { memo as m } from "react";
3
+ import t from "./node-menu-option.js";
4
4
  import { NodeOptions as n } from "./node-menu-options-styled.js";
5
- const l = t(({ options: o }) => o.length === 0 ? null : /* @__PURE__ */ e(n, { $background: "BLACK_2", $borderColor: "WHITE_T_38", $gapX: 0.5, children: o.map((r) => /* @__PURE__ */ e(m, { option: r }, r.id)) }));
5
+ const p = m(({ options: o }) => o.length === 0 || !o.some((r) => !r.disabled) ? null : /* @__PURE__ */ e(n, { $background: "BLACK_2", $borderColor: "WHITE_T_38", $gapX: 0.5, children: o.map((r) => /* @__PURE__ */ e(t, { option: r }, r.id)) }));
6
6
  export {
7
- l as default
7
+ p as default
8
8
  };
9
9
  //# sourceMappingURL=node-menu-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-menu-options.js","sources":["../../../../../../src/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.tsx"],"sourcesContent":["import type { INodeMenuOptions } from './node-menu-options-types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport NodeMenuOption from './node-menu-option';\nimport * as Styled from './node-menu-options-styled';\n\nconst NodeMenuOptions: FC<INodeMenuOptions> = memo(({ options }) => {\n if (options.length === 0) return null;\n\n return (\n <Styled.NodeOptions $background=\"BLACK_2\" $borderColor=\"WHITE_T_38\" $gapX={0.5}>\n {options.map(optionInfo => (\n <NodeMenuOption option={optionInfo} key={optionInfo.id} />\n ))}\n </Styled.NodeOptions>\n );\n});\n\nexport default NodeMenuOptions;\n"],"names":["NodeMenuOptions","memo","options","jsx","Styled.NodeOptions","optionInfo","NodeMenuOption"],"mappings":";;;;AAQA,MAAMA,IAAwCC,EAAK,CAAC,EAAE,SAAAC,QAChDA,EAAQ,WAAW,IAAU,OAG/B,gBAAAC,EAACC,GAAA,EAAmB,aAAY,WAAU,cAAa,cAAa,OAAO,KACxE,YAAQ,IAAI,CAAAC,wBACVC,GAAe,EAAA,QAAQD,KAAiBA,EAAW,EAAI,CACzD,EACH,CAAA,CAEH;"}
1
+ {"version":3,"file":"node-menu-options.js","sources":["../../../../../../src/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.tsx"],"sourcesContent":["import type { INodeMenuOptions } from './node-menu-options-types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport NodeMenuOption from './node-menu-option';\nimport * as Styled from './node-menu-options-styled';\n\nconst NodeMenuOptions: FC<INodeMenuOptions> = memo(({ options }) => {\n if (options.length === 0) return null;\n\n if (!options.some(item => !item.disabled)) return null;\n\n return (\n <Styled.NodeOptions $background=\"BLACK_2\" $borderColor=\"WHITE_T_38\" $gapX={0.5}>\n {options.map(optionInfo => (\n <NodeMenuOption option={optionInfo} key={optionInfo.id} />\n ))}\n </Styled.NodeOptions>\n );\n});\n\nexport default NodeMenuOptions;\n"],"names":["NodeMenuOptions","memo","options","item","jsx","Styled.NodeOptions","optionInfo","NodeMenuOption"],"mappings":";;;;AAQA,MAAMA,IAAwCC,EAAK,CAAC,EAAE,SAAAC,QAChDA,EAAQ,WAAW,KAEnB,CAACA,EAAQ,KAAK,CAAAC,MAAQ,CAACA,EAAK,QAAQ,IAAU,OAGhD,gBAAAC,EAACC,GAAA,EAAmB,aAAY,WAAU,cAAa,cAAa,OAAO,KACxE,YAAQ,IAAI,CAAAC,wBACVC,GAAe,EAAA,QAAQD,KAAiBA,EAAW,EAAI,CACzD,EACH,CAAA,CAEH;"}
@@ -1,136 +1,150 @@
1
- import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
- import { memo as U, useRef as O, 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 T from "../../../../../assets/line-icons/icons/more-vertical.js";
7
- import N from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
8
- import Q from "../../../../ui/border-path-animation/border-path-animation.js";
9
- import V from "../../../../ui/hooks/use-context-menu-click-handler.js";
10
- import Z from "../../../../ui/layout/flex-view.js";
11
- import D from "../../../../ui/lottie-animation/lottie-animation.js";
12
- import ee from "../../../../ui/text/text.js";
13
- import { BLOCK_TYPE as re } from "../../../constants/block-constants.js";
14
- import { NODE_CARD_STATES as C, TEACHER_MENU_LABELS as te } from "../../../constants/node-constants.js";
15
- import { getNodeTypeBasedBgImage as ne } from "../../../utils/index.js";
16
- import { getNodeCardBasedIcon as oe } from "../../../utils/node-card-utils.js";
17
- import { NodeCardContainer as ie, NodeCardInfoWrapper as ae, IconWrapper as ce, StyledImportantIcon as se, NodeKebabMenuWrapper as y, NodeCardContentWrapper as le, NodeCardTitle as de, NodeMenuOptionsWrapper as me } from "../node-card-styled.js";
18
- import pe from "../node-card-tags.js";
19
- import he from "../node-menu-options/node-menu-options.js";
20
- const fe = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: ue, REVIEW: $e, VIEW: Ce, MARK_AS_DONE: _e } = te, Re = U(
1
+ import { jsxs as i, jsx as e } from "react/jsx-runtime";
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(
21
22
  ({
22
23
  nodeData: t,
23
- imageHue: A,
24
- blockType: W,
25
- isSkipped: _,
26
- onNodeAttemptLocationChange: i,
27
- onNodeMarkAsDone: a,
28
- onNodeView: c,
29
- onNodeReview: s
24
+ imageHue: W,
25
+ blockType: x,
26
+ isSkipped: I,
27
+ onNodeAttemptLocationChange: o,
28
+ onNodeMarkAsDone: c,
29
+ onNodeView: a,
30
+ onNodeReview: s,
31
+ onNodeReattempt: l
30
32
  }) => {
31
- const d = O(null), { menuVisible: x, onMenuClick: I } = V(d), {
32
- accuracy: B,
33
- attempt_location: L,
34
- node_type: m,
35
- card_header: w,
36
- title: M,
37
- state: l,
38
- is_optional: b,
39
- sheet_statement: g,
40
- permissions: H,
41
- user_attempt_id: p
42
- } = t, { lottie: K } = oe(m), h = O(null), {
43
- can_change_attempt_location: G,
44
- can_mark_familiar: R,
45
- can_review: f
46
- } = H, E = W === re.GOAL, n = l === C.LOCKED, j = l === C.NOT_STARTED, v = l === C.IN_PROGRESS, S = L === "INCLASS", k = !b && (v || j), P = ne(m), u = $(
33
+ const p = O(null), { menuVisible: B, onMenuClick: b } = ee(p), {
34
+ accuracy: L,
35
+ attempt_location: w,
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(
47
50
  (r) => {
48
51
  switch (r) {
49
52
  case "node-card-view":
50
- f && p ? s == null || s(t) : c == null || c(t);
53
+ $ && f ? s == null || s(t) : a == null || a(t);
51
54
  return;
52
55
  case "node-card-assign-as-hw":
53
- i == null || i(t);
56
+ o == null || o(t);
54
57
  return;
55
58
  case "node-card-mark-as-done":
56
- a == null || a(t);
59
+ c == null || c(t);
60
+ return;
61
+ case "node-card-reset":
62
+ l == null || l(t);
57
63
  return;
58
64
  default:
59
65
  throw new Error(`No callback function for ${r}`);
60
66
  }
61
67
  },
62
68
  [
63
- f,
69
+ $,
64
70
  t,
65
- i,
66
- a,
67
- s,
71
+ o,
68
72
  c,
69
- p
73
+ l,
74
+ s,
75
+ a,
76
+ f
70
77
  ]
71
- ), X = $(() => {
78
+ ), z = C(() => {
72
79
  var r;
73
- n || (r = h.current) == null || r.play();
74
- }, [n]), F = $(() => {
80
+ n || (r = u.current) == null || r.play();
81
+ }, [n]), U = C(() => {
75
82
  var r;
76
- (r = h.current) == null || r.stop();
77
- }, []), z = [
83
+ (r = u.current) == null || r.stop();
84
+ }, []), Y = [
78
85
  {
79
86
  id: "node-card-view",
80
- label: f && p ? $e : Ce,
81
- icon: q,
87
+ label: $ && f ? Ie : be,
88
+ icon: Q,
82
89
  disabled: !1,
83
- onClick: u
90
+ onClick: m
84
91
  },
85
92
  {
86
93
  id: "node-card-assign-as-hw",
87
- label: ue,
88
- icon: J,
89
- disabled: !G || !S,
90
- 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
91
105
  },
92
106
  {
93
107
  id: "node-card-mark-as-done",
94
- label: _e,
95
- icon: Y,
96
- disabled: !R,
97
- onClick: u
108
+ label: ge,
109
+ icon: J,
110
+ disabled: !v,
111
+ onClick: m
98
112
  }
99
113
  ];
100
- return /* @__PURE__ */ o(
101
- ie,
114
+ return /* @__PURE__ */ i(
115
+ se,
102
116
  {
103
- $showOutline: !k,
117
+ $showOutline: !T,
104
118
  $isSheetLocked: n,
105
- $background: `${A}_2`,
106
- $disabled: !!_,
119
+ $background: `${W}_2`,
120
+ $disabled: !!I,
107
121
  children: [
108
- /* @__PURE__ */ o(
109
- N,
122
+ /* @__PURE__ */ i(
123
+ D,
110
124
  {
111
125
  renderAs: "primary",
112
- tooltipItem: g,
126
+ tooltipItem: E,
113
127
  position: "bottom",
114
128
  zIndex: 5,
115
- hidden: !g,
129
+ hidden: !E,
116
130
  parentWidth: "100%",
117
131
  widthX: 11.25,
118
132
  children: [
119
- /* @__PURE__ */ o(
120
- ae,
133
+ /* @__PURE__ */ i(
134
+ le,
121
135
  {
122
136
  $flexDirection: "row",
123
137
  $alignItems: "center",
124
138
  $width: "100%",
125
139
  $heightX: 3.5,
126
- $bgImage: P,
140
+ $bgImage: F,
127
141
  $gutterX: 0.78125,
128
142
  $flexGap: 8.5,
129
- onMouseEnter: X,
130
- onMouseLeave: F,
143
+ onMouseEnter: z,
144
+ onMouseLeave: U,
131
145
  children: [
132
- /* @__PURE__ */ o(
133
- ce,
146
+ /* @__PURE__ */ i(
147
+ de,
134
148
  {
135
149
  $width: 31,
136
150
  $height: 31,
@@ -140,24 +154,24 @@ const fe = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: ue, REVIEW: $e,
140
154
  $justifyContent: "center",
141
155
  $opacity: n ? 0.5 : 1,
142
156
  children: [
143
- /* @__PURE__ */ e(D, { src: K, ref: h, settings: fe }),
144
- !b && /* @__PURE__ */ e(se, {})
157
+ /* @__PURE__ */ e(te, { src: G, ref: u, settings: Ce }),
158
+ !g && /* @__PURE__ */ e(me, {})
145
159
  ]
146
160
  }
147
161
  ),
148
- /* @__PURE__ */ o(ee, { $renderAs: "ac4-black", $color: "BLACK", $opacity: n ? 0.5 : 1, children: [
149
- w,
162
+ /* @__PURE__ */ i(ne, { $renderAs: "ac4-black", $color: "BLACK", $opacity: n ? 0.5 : 1, children: [
163
+ M,
150
164
  " ",
151
- S && "• CW"
165
+ k && "• CW"
152
166
  ] }),
153
- /* @__PURE__ */ e(Z, { className: "context-menu", children: E && /* @__PURE__ */ e(y, { ref: d, onClick: I, children: /* @__PURE__ */ e(T, { width: 16, height: 16 }) }) }),
154
- k && !_ && /* @__PURE__ */ e(Q, { borderColor: "BLACK_1", borderWidth: 1 })
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 })
155
169
  ]
156
170
  }
157
171
  ),
158
- /* @__PURE__ */ e(pe, { nodeType: m, state: l, accuracy: B }),
159
- !E && /* @__PURE__ */ o(
160
- le,
172
+ /* @__PURE__ */ e(ue, { nodeType: h, state: d, accuracy: L }),
173
+ !S && /* @__PURE__ */ i(
174
+ pe,
161
175
  {
162
176
  $flexDirection: "row",
163
177
  $alignItems: "center",
@@ -167,28 +181,28 @@ const fe = { renderer: "canvas", autoplay: !1 }, { ASSIGN_AS_HW: ue, REVIEW: $e,
167
181
  $justifyContent: "space-between",
168
182
  children: [
169
183
  /* @__PURE__ */ e(
170
- de,
184
+ he,
171
185
  {
172
186
  $renderAs: "ab3",
173
187
  $color: "BLACK_1",
174
188
  $opacity: n ? 0.5 : 1,
175
- children: M
189
+ children: H
176
190
  }
177
191
  ),
178
- /* @__PURE__ */ e(y, { ref: d, onClick: I, children: /* @__PURE__ */ e(T, { width: 16, height: 16 }) })
192
+ /* @__PURE__ */ e(A, { ref: p, onClick: b, children: /* @__PURE__ */ e(y, { width: 16, height: 16 }) })
179
193
  ]
180
194
  }
181
195
  )
182
196
  ]
183
197
  }
184
198
  ),
185
- /* @__PURE__ */ e(me, { $visible: x, children: /* @__PURE__ */ e(he, { options: z }) })
199
+ /* @__PURE__ */ e(fe, { $visible: B, children: /* @__PURE__ */ e($e, { options: Y }) })
186
200
  ]
187
201
  }
188
202
  );
189
203
  }
190
204
  );
191
205
  export {
192
- Re as default
206
+ Fe as default
193
207
  };
194
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 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 } = 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 && (\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","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","BorderPathAnimation","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;"}
@@ -1,47 +1,47 @@
1
- import { jsxs as O, jsx as r } from "react/jsx-runtime";
2
- import { memo as Z, useRef as T, useCallback as w, useMemo as Q } from "react";
3
- import x from "../../assets/line-icons/icons/eye2.js";
4
- import U from "../../assets/line-icons/icons/more-vertical.js";
5
- import D from "../../assets/line-icons/icons/redo.js";
6
- import W from "../ui/arrow-tooltip/arrow-tooltip.js";
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 H from "../ui/hooks/use-context-menu-click-handler.js";
8
+ import X from "../ui/hooks/use-context-menu-click-handler.js";
9
9
  import ee from "../ui/layout/flex-view.js";
10
- import A from "./card-menu-options.js";
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 le } from "./utils.js";
14
- const ae = ({
13
+ import { getCardAnalyticProps as ae } from "./utils.js";
14
+ const le = ({
15
15
  // callbacks
16
16
  nodeData: e,
17
17
  onNodeAttempt: b,
18
- onNodeReattempt: u,
18
+ onNodeReattempt: d,
19
19
  onNodeReview: n,
20
20
  onNodeUnassign: m,
21
21
  onNodeView: C,
22
- header: X,
22
+ header: j,
23
23
  isInQueue: E,
24
- renderAs: I,
25
- shouldOpenOnRight: j,
24
+ renderAs: F,
25
+ shouldOpenOnRight: L,
26
26
  studentId: v,
27
- subHeader: F,
27
+ subHeader: P,
28
28
  userMilestoneId: t,
29
29
  userType: g
30
30
  }) => {
31
- const i = I === "homework", {
31
+ const i = F === "homework", {
32
32
  node_type: k,
33
- state: L,
34
- permissions: P,
33
+ state: B,
34
+ permissions: z,
35
35
  user_node_id: o,
36
- user_milestone_id: l,
36
+ user_milestone_id: a,
37
37
  homework_id: c
38
- } = e, y = T(null), $ = T(null), { menuVisible: R, onMenuClick: B } = H(y), { menuVisible: z, onMenuClick: V } = H($), {
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: K,
43
- can_reset: Y
44
- } = P, a = g === "STUDENT", d = w(() => {
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]), q = w(() => {
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
- d();
64
+ p();
65
65
  }, [
66
66
  h,
67
67
  f,
68
68
  i,
69
- d,
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 || l, c);
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 || l);
85
+ C(e, t || a);
86
86
  }, [
87
87
  s,
88
88
  C,
89
89
  e,
90
90
  t,
91
- l,
91
+ a,
92
92
  n,
93
93
  o,
94
94
  c
95
- ]), p = w(
96
- (M) => {
97
- switch (M) {
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
- d();
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
- u == null || u(e, t);
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 ${M}`);
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
- ), G = [
123
+ ), J = [
123
124
  {
124
125
  id: "teacher-card-view",
125
126
  label: s ? "Review" : "View",
126
- icon: x,
127
+ icon: W,
127
128
  disabled: !1,
128
- onClick: p
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" : !K,
135
- onClick: p
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
- ], J = [
145
+ ], Z = [
138
146
  {
139
147
  id: "student-card-view",
140
148
  label: "Review",
141
- icon: x,
149
+ icon: W,
142
150
  disabled: !s,
143
- onClick: p
151
+ onClick: u
144
152
  },
145
153
  {
146
154
  id: "student-card-reattempt",
147
155
  label: "Reattempt",
148
- icon: D,
149
- disabled: !Y,
150
- onClick: p
156
+ icon: H,
157
+ disabled: !S,
158
+ onClick: u
151
159
  }
152
- ], S = Q(
153
- () => le({
160
+ ], M = U(
161
+ () => ae({
154
162
  canResume: f,
155
163
  canStart: h,
156
164
  homeworkId: c,
157
165
  isHomeWork: i,
158
- isStudent: a,
159
- milestoneId: l,
166
+ isStudent: l,
167
+ milestoneId: a,
160
168
  nodeType: k,
161
169
  studentId: v,
162
170
  userNodeId: o
163
171
  }),
164
172
  [
165
- a,
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
- l
181
+ a
174
182
  ]
175
183
  );
176
- return /* @__PURE__ */ O(te, { $position: "relative", $width: "fit-content", children: [
184
+ return /* @__PURE__ */ T(te, { $position: "relative", $width: "fit-content", children: [
177
185
  /* @__PURE__ */ r(
178
186
  N,
179
187
  {
180
- onClick: a ? q : _,
188
+ onClick: l ? G : _,
181
189
  label: "homework-card",
182
- analyticsLabel: S.analyticsLabel,
183
- analyticsProps: S.analyticsProps,
190
+ analyticsLabel: M.analyticsLabel,
191
+ analyticsProps: M.analyticsProps,
184
192
  children: /* @__PURE__ */ r(
185
193
  re,
186
194
  {
187
- header: X,
195
+ header: j,
188
196
  isInQueue: E,
189
197
  nodeData: e,
190
198
  studentContainerRef: $,
191
- subHeader: F,
199
+ subHeader: P,
192
200
  userType: g
193
201
  }
194
202
  )
195
203
  }
196
204
  ),
197
- a && !i && /* @__PURE__ */ r(
198
- A,
205
+ l && !i && /* @__PURE__ */ r(
206
+ I,
199
207
  {
200
208
  $width: 200,
201
- options: J,
209
+ options: Z,
202
210
  triggerRef: $,
203
- visible: z,
211
+ visible: Y,
204
212
  shouldOpenOnRight: !1
205
213
  }
206
214
  ),
207
- !a && /* @__PURE__ */ O(ie, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
215
+ !l && /* @__PURE__ */ T(ie, { $position: "absolute", $width: "fit-content", $borderRadiusX: 2, children: [
208
216
  /* @__PURE__ */ r(
209
- W,
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 || L !== "WAIT_FOR_REVIEW" && i,
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: B,
224
- children: /* @__PURE__ */ r(U, { width: 16, height: 16 })
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
- A,
238
+ I,
231
239
  {
232
- options: G,
240
+ options: J,
233
241
  triggerRef: y,
234
242
  visible: R,
235
- shouldOpenOnRight: j
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(W, { renderAs: "primary", tooltipItem: "Not visible to student", position: "bottom", children: /* @__PURE__ */ r(ee, { $heightX: 1, $widthX: 6 }) }) }) })
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 = Z(ae);
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "3.0.2",
3
+ "version": "3.0.3-as1",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"