@cuemath/leap 2.8.62-aa0 → 2.8.62-aa1

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 (17) hide show
  1. package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/student-actions/student-actions.js +35 -36
  2. package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/student-actions/student-actions.js.map +1 -1
  3. package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/teacher-actions/teacher-actions.js +17 -18
  4. package/dist/features/chapters/lpar-chapter/block-section/sheet-item/rewards-n-actions/teacher-actions/teacher-actions.js.map +1 -1
  5. package/dist/features/sheets/lessons-list/lesson-item/lesson-item-cta-info.js +48 -49
  6. package/dist/features/sheets/lessons-list/lesson-item/lesson-item-cta-info.js.map +1 -1
  7. package/dist/features/sheets/resources-list/resource-item/resource-item.js +90 -91
  8. package/dist/features/sheets/resources-list/resource-item/resource-item.js.map +1 -1
  9. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/student-actions/student-actions.js +53 -54
  10. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/student-actions/student-actions.js.map +1 -1
  11. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions.js +41 -42
  12. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions.js.map +1 -1
  13. package/dist/features/sheets/utils/is-v3-worksheet.js +5 -10
  14. package/dist/features/sheets/utils/is-v3-worksheet.js.map +1 -1
  15. package/dist/index.d.ts +8 -12
  16. package/dist/index.js +73 -75
  17. package/package.json +1 -1
@@ -1,96 +1,95 @@
1
- import { jsxs as A, jsx as e } from "react/jsx-runtime";
2
- import { memo as J, useRef as Q, useState as Z, useMemo as ee, useCallback as d, useLayoutEffect as te } from "react";
3
- import oe from "../../../../assets/line-icons/icons/minus2.js";
4
- import re from "../../../../assets/line-icons/icons/plus2.js";
5
- import ne from "../../../../assets/line-icons/icons/redo.js";
6
- import k from "../../../ui/arrow-tooltip/arrow-tooltip.js";
7
- import ie from "../../../ui/context-menu/context-menu.js";
8
- import { useUIContext as ce } from "../../../ui/context/context.js";
9
- import se from "../../../ui/layout/flex-view.js";
10
- import ae from "../../comps/sheet-button/index.js";
11
- import ue from "../../lessons-list/lesson-item/context-menu-helper/target-element.js";
1
+ import { jsxs as $, jsx as e } from "react/jsx-runtime";
2
+ import { memo as z, useRef as J, useState as Q, useMemo as Z, useCallback as d, useLayoutEffect as ee } from "react";
3
+ import te from "../../../../assets/line-icons/icons/minus2.js";
4
+ import oe from "../../../../assets/line-icons/icons/plus2.js";
5
+ import re from "../../../../assets/line-icons/icons/redo.js";
6
+ import A from "../../../ui/arrow-tooltip/arrow-tooltip.js";
7
+ import ne from "../../../ui/context-menu/context-menu.js";
8
+ import { useUIContext as ie } from "../../../ui/context/context.js";
9
+ import ce from "../../../ui/layout/flex-view.js";
10
+ import se from "../../comps/sheet-button/index.js";
11
+ import ae from "../../lessons-list/lesson-item/context-menu-helper/target-element.js";
12
12
  import { SHEETS_ANALYTICS_EVENTS as v } from "../../sheets-analytics-events.js";
13
- import { TEACHER_MENU_OPTIONS as me } from "../../sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js";
14
- import { isV3Worksheet as h } from "../../utils/is-v3-worksheet.js";
13
+ import { TEACHER_MENU_OPTIONS as ue } from "../../sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js";
15
14
  import le from "./context-menu-helper/menu-element.js";
16
- import { ResourceItemCard as pe, ResourceItemTitle as fe, IconButtonWrapper as de } from "./styled.js";
17
- import { getResourceItemCtaState as he, getResourceItemCtaInfo as _e, getResourceItemBackgroundColor as we } from "./utils.js";
18
- const { UNASSIGN: x, REDO: N } = me, Me = J(
15
+ import { ResourceItemCard as me, ResourceItemTitle as pe, IconButtonWrapper as fe } from "./styled.js";
16
+ import { getResourceItemCtaState as de, getResourceItemCtaInfo as he, getResourceItemBackgroundColor as _e } from "./utils.js";
17
+ const { UNASSIGN: x, REDO: N } = ue, Oe = z(
19
18
  ({
20
19
  sheet: t,
21
- userType: O,
22
- isMilestoneWidget: _,
23
- userMilestoneId: w,
20
+ userType: k,
21
+ isMilestoneWidget: h,
22
+ userMilestoneId: _,
24
23
  onUnlock: i,
25
24
  onUnAssignSheet: u,
26
- onReset: m,
27
- onPreview: l,
25
+ onReset: l,
26
+ onPreview: m,
28
27
  onReview: p,
29
28
  onStart: f
30
29
  }) => {
31
- const { onClick: c } = ce(), r = Q(null), [D, M] = Z(!1), {
32
- accuracy: b,
33
- permissions: X,
34
- title: C,
35
- sheet_statement: j,
36
- state: E,
30
+ const { onClick: c } = ie(), r = J(null), [O, D] = Q(!1), {
31
+ accuracy: w,
32
+ permissions: M,
33
+ title: b,
34
+ sheet_statement: X,
35
+ state: C,
37
36
  node_id: o,
38
37
  user_node_id: s,
39
- node_sub_group: G,
40
- node_type: y
38
+ node_sub_group: j,
39
+ node_type: E
41
40
  } = t, {
42
- can_start: I,
43
- can_resume: S,
44
- can_unlock: g,
45
- can_review: H,
46
- can_teacher_review: L,
47
- can_unassign: B,
48
- can_reset: U
49
- } = X, V = typeof b == "number" ? `${b}%` : void 0, n = O === "STUDENT", R = n ? H : L, P = he(E), { label: W, Icon: F } = _e(G) || {}, a = ee(
41
+ can_start: y,
42
+ can_resume: I,
43
+ can_unlock: S,
44
+ can_review: G,
45
+ can_teacher_review: H,
46
+ can_unassign: L,
47
+ can_reset: B
48
+ } = M, U = typeof w == "number" ? `${w}%` : void 0, n = k === "STUDENT", g = n ? G : H, P = de(C), { label: V, Icon: F } = he(j) || {}, a = Z(
50
49
  () => ({
51
50
  node_id: o,
52
- node_type: y
51
+ node_type: E
53
52
  }),
54
- [o, y]
53
+ [o, E]
55
54
  ), K = d(() => {
56
55
  c({
57
56
  analyticsLabel: v.RESOURCE_ASSIGNED,
58
57
  props: a
59
58
  }), i == null || i(o);
60
- }, [i, o, c, a]), Y = d(() => {
61
- if (n && (I || S)) {
59
+ }, [i, o, c, a]), W = d(() => {
60
+ if (n && (y || I)) {
62
61
  if (typeof f == "function") {
63
- f(o, h(), s);
62
+ f(o, s);
64
63
  return;
65
64
  }
66
65
  throw new Error("No callback is available");
67
66
  }
68
- if (R) {
67
+ if (g) {
69
68
  if (typeof p != "function")
70
69
  throw new Error("onReview must be a function");
71
70
  if (!s)
72
71
  throw new Error("user node id must be present to review the sheet");
73
- p(s, h(), w);
72
+ p(s, _);
74
73
  return;
75
74
  }
76
- if (typeof l != "function")
75
+ if (typeof m != "function")
77
76
  throw new Error("onPreview must be a function");
78
- l(t, h());
77
+ m(t);
79
78
  }, [
80
- S,
81
- R,
82
79
  I,
80
+ g,
81
+ y,
83
82
  n,
84
83
  o,
85
84
  t,
86
- w,
85
+ _,
87
86
  s,
88
87
  f,
89
88
  p,
90
- l
91
- ]), T = d(
92
- (z) => {
93
- switch (z) {
89
+ m
90
+ ]), R = d(
91
+ (q) => {
92
+ switch (q) {
94
93
  case x:
95
94
  if (typeof u != "function")
96
95
  throw new Error("onUnassignSheet must be a function");
@@ -100,91 +99,91 @@ const { UNASSIGN: x, REDO: N } = me, Me = J(
100
99
  }), u(t);
101
100
  return;
102
101
  case N:
103
- if (typeof m != "function")
102
+ if (typeof l != "function")
104
103
  throw new Error("onReset must be a function");
105
- m(t);
104
+ l(t);
106
105
  return;
107
106
  }
108
107
  },
109
- [t, u, m, a, c]
108
+ [t, u, l, a, c]
110
109
  );
111
- te(() => {
112
- r.current && r.current.scrollHeight > r.current.clientHeight && M(!0);
110
+ ee(() => {
111
+ r.current && r.current.scrollHeight > r.current.clientHeight && D(!0);
113
112
  }, [r]);
114
- const q = [
113
+ const Y = [
115
114
  {
116
115
  id: "supplementary_resources_unassign",
117
116
  label: "Unassign",
118
- icon: /* @__PURE__ */ e(oe, { width: 20, height: 20 }),
117
+ icon: /* @__PURE__ */ e(te, { width: 20, height: 20 }),
119
118
  option: x,
120
- visible: B,
121
- onClick: T
119
+ visible: L,
120
+ onClick: R
122
121
  },
123
122
  {
124
123
  id: "supplementary_resources_redo",
125
124
  label: "Redo",
126
- icon: /* @__PURE__ */ e(ne, {}),
125
+ icon: /* @__PURE__ */ e(re, {}),
127
126
  option: N,
128
- visible: U,
129
- onClick: T
127
+ visible: B,
128
+ onClick: R
130
129
  }
131
- ], $ = we(
132
- E,
130
+ ], T = _e(
131
+ C,
133
132
  n,
134
- g,
135
- !!_
133
+ S,
134
+ !!h
136
135
  );
137
- return /* @__PURE__ */ A(
138
- pe,
136
+ return /* @__PURE__ */ $(
137
+ me,
139
138
  {
140
139
  $gapX: 1,
141
140
  $gutterX: 1,
142
141
  $flexGapX: 1.25,
143
- $background: $,
142
+ $background: T,
144
143
  $justifyContent: "space-between",
145
144
  $heightX: 8,
146
- $isMilestoneWidget: _,
145
+ $isMilestoneWidget: h,
147
146
  children: [
148
147
  /* @__PURE__ */ e(
149
- k,
148
+ A,
150
149
  {
151
150
  renderAs: "primary",
152
151
  position: "bottom",
153
- tooltipItem: C,
154
- hidden: !D,
152
+ tooltipItem: b,
153
+ hidden: !O,
155
154
  widthX: 21.75,
156
- children: /* @__PURE__ */ e(fe, { ref: r, $renderAs: "ab2", $color: "BLACK_T_87", children: C })
155
+ children: /* @__PURE__ */ e(pe, { ref: r, $renderAs: "ab2", $color: "BLACK_T_87", children: b })
157
156
  }
158
157
  ),
159
- /* @__PURE__ */ A(se, { $flexDirection: "row", $justifyContent: "space-between", $alignItems: "center", children: [
160
- /* @__PURE__ */ e(k, { position: "bottom", tooltipItem: j, renderAs: "secondary", children: /* @__PURE__ */ e(
161
- ae,
158
+ /* @__PURE__ */ $(ce, { $flexDirection: "row", $justifyContent: "space-between", $alignItems: "center", children: [
159
+ /* @__PURE__ */ e(A, { position: "bottom", tooltipItem: X, renderAs: "secondary", children: /* @__PURE__ */ e(
160
+ se,
162
161
  {
163
162
  renderAs: "primary",
164
- label: W ?? "",
163
+ label: V ?? "",
165
164
  Icon: F,
166
- backgroundColor: $,
165
+ backgroundColor: T,
167
166
  state: P,
168
167
  hoverActive: !1,
169
- onClick: Y,
170
- accuracy: V,
168
+ onClick: W,
169
+ accuracy: U,
171
170
  widthX: 8.5
172
171
  }
173
172
  ) }),
174
- !n && (g ? /* @__PURE__ */ e(
175
- de,
173
+ !n && (S ? /* @__PURE__ */ e(
174
+ fe,
176
175
  {
177
176
  $flexDirection: "row",
178
177
  $alignItems: "center",
179
178
  $justifyContent: "center",
180
179
  onClick: K,
181
- children: /* @__PURE__ */ e(re, {})
180
+ children: /* @__PURE__ */ e(oe, {})
182
181
  }
183
182
  ) : /* @__PURE__ */ e(
184
- ie,
183
+ ne,
185
184
  {
186
- targetElement: /* @__PURE__ */ e(ue, { invertHover: !0 }),
187
- menuElement: /* @__PURE__ */ e(le, { menuOptions: q })
185
+ targetElement: /* @__PURE__ */ e(ae, { invertHover: !0 }),
186
+ menuElement: /* @__PURE__ */ e(le, { menuOptions: Y })
188
187
  }
189
188
  ))
190
189
  ] })
@@ -194,6 +193,6 @@ const { UNASSIGN: x, REDO: N } = me, Me = J(
194
193
  }
195
194
  );
196
195
  export {
197
- Me as default
196
+ Oe as default
198
197
  };
199
198
  //# sourceMappingURL=resource-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-item.js","sources":["../../../../../src/features/sheets/resources-list/resource-item/resource-item.tsx"],"sourcesContent":["import type { IMenuOptionsProps } from './context-menu-helper/menu-element-types';\nimport type { IResourceItemProps } from './types';\nimport type { FC } from 'react';\n\nimport { useCallback, useLayoutEffect, useRef, memo, useState, useMemo } from 'react';\n\nimport Minus2Icon from '../../../../assets/line-icons/icons/minus2';\nimport Plus2Icon from '../../../../assets/line-icons/icons/plus2';\nimport RedoIcon from '../../../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport ContextMenu from '../../../ui/context-menu/context-menu';\nimport { useUIContext } from '../../../ui/context/context';\nimport FlexView from '../../../ui/layout/flex-view';\nimport SheetButton from '../../comps/sheet-button';\nimport ContextMenuTargetElement from '../../lessons-list/lesson-item/context-menu-helper/target-element';\nimport { SHEETS_ANALYTICS_EVENTS } from '../../sheets-analytics-events';\nimport { TEACHER_MENU_OPTIONS } from '../../sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant';\nimport { isV3Worksheet } from '../../utils/is-v3-worksheet';\nimport ContextMenuElement from './context-menu-helper/menu-element';\nimport * as Styled from './styled';\nimport {\n getResourceItemBackgroundColor,\n getResourceItemCtaInfo,\n getResourceItemCtaState,\n} from './utils';\n\nconst { UNASSIGN, REDO } = TEACHER_MENU_OPTIONS;\n\nconst ResourceItem: FC<IResourceItemProps> = memo(\n ({\n sheet,\n userType,\n isMilestoneWidget,\n userMilestoneId,\n onUnlock,\n onUnAssignSheet,\n onReset,\n onPreview,\n onReview,\n onStart,\n }) => {\n const { onClick: trackClick } = useUIContext();\n const titleTextRef = useRef<HTMLDivElement>(null);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const {\n accuracy,\n permissions,\n title,\n sheet_statement: sheetStatement,\n state: sheetState,\n node_id: nodeId,\n user_node_id: userNodeId,\n node_sub_group: nodeSubGroup,\n node_type: nodeType,\n } = sheet;\n const {\n can_start: canStart,\n can_resume: canResume,\n can_unlock: canUnlock,\n can_review: canReview,\n can_teacher_review: canTeacherReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n\n const sheetAccuracy = typeof accuracy === 'number' ? `${accuracy}%` : undefined;\n const isStudent = userType === 'STUDENT';\n const canReviewSheet = isStudent ? canReview : canTeacherReview;\n\n const ctaState = getResourceItemCtaState(sheetState);\n const { label, Icon } = getResourceItemCtaInfo(nodeSubGroup) || {};\n\n const analyticsProps = useMemo(\n () => ({\n node_id: nodeId,\n node_type: nodeType,\n }),\n [nodeId, nodeType],\n );\n\n const handleAssignSheet = useCallback(() => {\n trackClick({\n analyticsLabel: SHEETS_ANALYTICS_EVENTS.RESOURCE_ASSIGNED,\n props: analyticsProps,\n });\n\n onUnlock?.(nodeId);\n }, [onUnlock, nodeId, trackClick, analyticsProps]);\n\n const handleOnClick = useCallback(() => {\n if (isStudent && (canStart || canResume)) {\n if (typeof onStart === 'function') {\n onStart(nodeId, isV3Worksheet(sheet), userNodeId);\n\n return;\n }\n\n throw new Error('No callback is available');\n }\n\n if (canReviewSheet) {\n if (typeof onReview !== '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\n onReview(userNodeId, isV3Worksheet(sheet, 'review'), userMilestoneId);\n\n return;\n }\n\n if (typeof onPreview !== 'function') {\n throw new Error('onPreview must be a function');\n }\n\n onPreview(sheet, isV3Worksheet(sheet));\n }, [\n canResume,\n canReviewSheet,\n canStart,\n isStudent,\n nodeId,\n sheet,\n userMilestoneId,\n userNodeId,\n onStart,\n onReview,\n onPreview,\n ]);\n\n const handleMenuOptionClick = useCallback(\n (selectedOption: string) => {\n switch (selectedOption) {\n case UNASSIGN:\n if (typeof onUnAssignSheet !== 'function') {\n throw new Error('onUnassignSheet must be a function');\n }\n\n trackClick({\n analyticsLabel: SHEETS_ANALYTICS_EVENTS.RESOURCE_UNASSIGNED,\n props: analyticsProps,\n });\n\n onUnAssignSheet(sheet);\n\n return;\n\n case REDO:\n if (typeof onReset !== 'function') {\n throw new Error('onReset must be a function');\n }\n\n onReset(sheet);\n\n return;\n }\n },\n [sheet, onUnAssignSheet, onReset, analyticsProps, trackClick],\n );\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n const menuOptions: IMenuOptionsProps[] = [\n {\n id: 'supplementary_resources_unassign',\n label: 'Unassign',\n icon: <Minus2Icon width={20} height={20} />,\n option: UNASSIGN,\n visible: canUnassign,\n onClick: handleMenuOptionClick,\n },\n {\n id: 'supplementary_resources_redo',\n label: 'Redo',\n icon: <RedoIcon />,\n option: REDO,\n visible: canReset,\n onClick: handleMenuOptionClick,\n },\n ];\n\n const backgroundColor = getResourceItemBackgroundColor(\n sheetState,\n isStudent,\n canUnlock,\n !!isMilestoneWidget,\n );\n\n return (\n <Styled.ResourceItemCard\n $gapX={1}\n $gutterX={1}\n $flexGapX={1.25}\n $background={backgroundColor}\n $justifyContent=\"space-between\"\n $heightX={8}\n $isMilestoneWidget={isMilestoneWidget}\n >\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={title}\n hidden={!showTitleTooltip}\n widthX={21.75}\n >\n <Styled.ResourceItemTitle ref={titleTextRef} $renderAs=\"ab2\" $color=\"BLACK_T_87\">\n {title}\n </Styled.ResourceItemTitle>\n </ArrowTooltip>\n\n <FlexView $flexDirection=\"row\" $justifyContent=\"space-between\" $alignItems=\"center\">\n <ArrowTooltip position=\"bottom\" tooltipItem={sheetStatement} renderAs=\"secondary\">\n <SheetButton\n renderAs=\"primary\"\n label={label ?? ''}\n Icon={Icon}\n backgroundColor={backgroundColor}\n state={ctaState}\n hoverActive={false}\n onClick={handleOnClick}\n accuracy={sheetAccuracy}\n widthX={8.5}\n />\n </ArrowTooltip>\n\n {!isStudent &&\n (canUnlock ? (\n <Styled.IconButtonWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n onClick={handleAssignSheet}\n >\n <Plus2Icon />\n </Styled.IconButtonWrapper>\n ) : (\n <ContextMenu\n targetElement={<ContextMenuTargetElement invertHover />}\n menuElement={<ContextMenuElement menuOptions={menuOptions} />}\n />\n ))}\n </FlexView>\n </Styled.ResourceItemCard>\n );\n },\n);\n\nexport default ResourceItem;\n"],"names":["UNASSIGN","REDO","TEACHER_MENU_OPTIONS","ResourceItem","memo","sheet","userType","isMilestoneWidget","userMilestoneId","onUnlock","onUnAssignSheet","onReset","onPreview","onReview","onStart","trackClick","useUIContext","titleTextRef","useRef","showTitleTooltip","setShowTitleTooltip","useState","accuracy","permissions","title","sheetStatement","sheetState","nodeId","userNodeId","nodeSubGroup","nodeType","canStart","canResume","canUnlock","canReview","canTeacherReview","canUnassign","canReset","sheetAccuracy","isStudent","canReviewSheet","ctaState","getResourceItemCtaState","label","Icon","getResourceItemCtaInfo","analyticsProps","useMemo","handleAssignSheet","useCallback","SHEETS_ANALYTICS_EVENTS","handleOnClick","isV3Worksheet","handleMenuOptionClick","selectedOption","useLayoutEffect","menuOptions","jsx","Minus2Icon","RedoIcon","backgroundColor","getResourceItemBackgroundColor","jsxs","Styled.ResourceItemCard","ArrowTooltip","Styled.ResourceItemTitle","FlexView","SheetButton","Styled.IconButtonWrapper","Plus2Icon","ContextMenu","ContextMenuTargetElement","ContextMenuElement"],"mappings":";;;;;;;;;;;;;;;;;AA0BA,MAAM,EAAE,UAAAA,GAAU,MAAAC,EAAS,IAAAC,IAErBC,KAAuCC;AAAA,EAC3C,CAAC;AAAA,IACC,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,EAAA,MACI;AACJ,UAAM,EAAE,SAASC,EAAW,IAAIC,GAAa,GACvCC,IAAeC,EAAuB,IAAI,GAC1C,CAACC,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GAExD;AAAA,MACJ,UAAAC;AAAA,MACA,aAAAC;AAAA,MACA,OAAAC;AAAA,MACA,iBAAiBC;AAAA,MACjB,OAAOC;AAAA,MACP,SAASC;AAAA,MACT,cAAcC;AAAA,MACd,gBAAgBC;AAAA,MAChB,WAAWC;AAAA,IACT,IAAAzB,GACE;AAAA,MACJ,WAAW0B;AAAA,MACX,YAAYC;AAAA,MACZ,YAAYC;AAAA,MACZ,YAAYC;AAAA,MACZ,oBAAoBC;AAAA,MACpB,cAAcC;AAAA,MACd,WAAWC;AAAA,IACT,IAAAd,GAEEe,IAAgB,OAAOhB,KAAa,WAAW,GAAGA,CAAQ,MAAM,QAChEiB,IAAYjC,MAAa,WACzBkC,IAAiBD,IAAYL,IAAYC,GAEzCM,IAAWC,GAAwBhB,CAAU,GAC7C,EAAE,OAAAiB,GAAO,MAAAC,EAAA,IAASC,GAAuBhB,CAAY,KAAK,IAE1DiB,IAAiBC;AAAA,MACrB,OAAO;AAAA,QACL,SAASpB;AAAA,QACT,WAAWG;AAAA,MAAA;AAAA,MAEb,CAACH,GAAQG,CAAQ;AAAA,IAAA,GAGbkB,IAAoBC,EAAY,MAAM;AAC/B,MAAAlC,EAAA;AAAA,QACT,gBAAgBmC,EAAwB;AAAA,QACxC,OAAOJ;AAAA,MAAA,CACR,GAEDrC,KAAA,QAAAA,EAAWkB;AAAA,OACV,CAAClB,GAAUkB,GAAQZ,GAAY+B,CAAc,CAAC,GAE3CK,IAAgBF,EAAY,MAAM;AAClC,UAAAV,MAAcR,KAAYC,IAAY;AACpC,YAAA,OAAOlB,KAAY,YAAY;AACjC,UAAAA,EAAQa,GAAQyB,EAAmB,GAAGxB,CAAU;AAEhD;AAAA,QACF;AAEM,cAAA,IAAI,MAAM,0BAA0B;AAAA,MAC5C;AAEA,UAAIY,GAAgB;AACd,YAAA,OAAO3B,KAAa;AAChB,gBAAA,IAAI,MAAM,6BAA6B;AAG/C,YAAI,CAACe;AACG,gBAAA,IAAI,MAAM,kDAAkD;AAGpE,QAAAf,EAASe,GAAYwB,EAA6B,GAAG5C,CAAe;AAEpE;AAAA,MACF;AAEI,UAAA,OAAOI,KAAc;AACjB,cAAA,IAAI,MAAM,8BAA8B;AAGtC,MAAAA,EAAAP,GAAO+C,EAAmB,CAAC;AAAA,IAAA,GACpC;AAAA,MACDpB;AAAA,MACAQ;AAAA,MACAT;AAAA,MACAQ;AAAA,MACAZ;AAAA,MACAtB;AAAA,MACAG;AAAA,MACAoB;AAAA,MACAd;AAAA,MACAD;AAAA,MACAD;AAAA,IAAA,CACD,GAEKyC,IAAwBJ;AAAA,MAC5B,CAACK,MAA2B;AAC1B,gBAAQA,GAAgB;AAAA,UACtB,KAAKtD;AACC,gBAAA,OAAOU,KAAoB;AACvB,oBAAA,IAAI,MAAM,oCAAoC;AAG3C,YAAAK,EAAA;AAAA,cACT,gBAAgBmC,EAAwB;AAAA,cACxC,OAAOJ;AAAA,YAAA,CACR,GAEDpC,EAAgBL,CAAK;AAErB;AAAA,UAEF,KAAKJ;AACC,gBAAA,OAAOU,KAAY;AACf,oBAAA,IAAI,MAAM,4BAA4B;AAG9C,YAAAA,EAAQN,CAAK;AAEb;AAAA,QACJ;AAAA,MACF;AAAA,MACA,CAACA,GAAOK,GAAiBC,GAASmC,GAAgB/B,CAAU;AAAA,IAAA;AAG9D,IAAAwC,GAAgB,MAAM;AACpB,MACEtC,EAAa,WACbA,EAAa,QAAQ,eAAeA,EAAa,QAAQ,gBAEzDG,EAAoB,EAAI;AAAA,IAC1B,GACC,CAACH,CAAY,CAAC;AAEjB,UAAMuC,IAAmC;AAAA,MACvC;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAO,gBAAAC,EAAAC,IAAA,EAAW,OAAO,IAAI,QAAQ,IAAI;AAAA,QACzC,QAAQ1D;AAAA,QACR,SAASoC;AAAA,QACT,SAASiB;AAAA,MACX;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,wBAAOM,IAAS,EAAA;AAAA,QAChB,QAAQ1D;AAAA,QACR,SAASoC;AAAA,QACT,SAASgB;AAAA,MACX;AAAA,IAAA,GAGIO,IAAkBC;AAAA,MACtBnC;AAAA,MACAa;AAAA,MACAN;AAAA,MACA,CAAC,CAAC1B;AAAA,IAAA;AAIF,WAAA,gBAAAuD;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU;AAAA,QACV,WAAW;AAAA,QACX,aAAaH;AAAA,QACb,iBAAgB;AAAA,QAChB,UAAU;AAAA,QACV,oBAAoBrD;AAAA,QAEpB,UAAA;AAAA,UAAA,gBAAAkD;AAAA,YAACO;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,UAAS;AAAA,cACT,aAAaxC;AAAA,cACb,QAAQ,CAACL;AAAA,cACT,QAAQ;AAAA,cAER,UAAA,gBAAAsC,EAACQ,IAAA,EAAyB,KAAKhD,GAAc,WAAU,OAAM,QAAO,cACjE,UACHO,EAAA,CAAA;AAAA,YAAA;AAAA,UACF;AAAA,4BAEC0C,IAAS,EAAA,gBAAe,OAAM,iBAAgB,iBAAgB,aAAY,UACzE,UAAA;AAAA,YAAA,gBAAAT,EAACO,KAAa,UAAS,UAAS,aAAavC,GAAgB,UAAS,aACpE,UAAA,gBAAAgC;AAAA,cAACU;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,OAAOxB,KAAS;AAAA,gBAChB,MAAAC;AAAA,gBACA,iBAAAgB;AAAA,gBACA,OAAOnB;AAAA,gBACP,aAAa;AAAA,gBACb,SAASU;AAAA,gBACT,UAAUb;AAAA,gBACV,QAAQ;AAAA,cAAA;AAAA,YAAA,GAEZ;AAAA,YAEC,CAACC,MACCN,IACC,gBAAAwB;AAAA,cAACW;AAAAA,cAAA;AAAA,gBACC,gBAAe;AAAA,gBACf,aAAY;AAAA,gBACZ,iBAAgB;AAAA,gBAChB,SAASpB;AAAA,gBAET,4BAACqB,IAAU,EAAA;AAAA,cAAA;AAAA,YAAA,IAGb,gBAAAZ;AAAA,cAACa;AAAA,cAAA;AAAA,gBACC,eAAe,gBAAAb,EAACc,IAAyB,EAAA,aAAW,GAAC,CAAA;AAAA,gBACrD,aAAc,gBAAAd,EAAAe,IAAA,EAAmB,aAAAhB,EAA0B,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAC7D,GAEN;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
1
+ {"version":3,"file":"resource-item.js","sources":["../../../../../src/features/sheets/resources-list/resource-item/resource-item.tsx"],"sourcesContent":["import type { IMenuOptionsProps } from './context-menu-helper/menu-element-types';\nimport type { IResourceItemProps } from './types';\nimport type { FC } from 'react';\n\nimport { useCallback, useLayoutEffect, useRef, memo, useState, useMemo } from 'react';\n\nimport Minus2Icon from '../../../../assets/line-icons/icons/minus2';\nimport Plus2Icon from '../../../../assets/line-icons/icons/plus2';\nimport RedoIcon from '../../../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport ContextMenu from '../../../ui/context-menu/context-menu';\nimport { useUIContext } from '../../../ui/context/context';\nimport FlexView from '../../../ui/layout/flex-view';\nimport SheetButton from '../../comps/sheet-button';\nimport ContextMenuTargetElement from '../../lessons-list/lesson-item/context-menu-helper/target-element';\nimport { SHEETS_ANALYTICS_EVENTS } from '../../sheets-analytics-events';\nimport { TEACHER_MENU_OPTIONS } from '../../sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant';\nimport ContextMenuElement from './context-menu-helper/menu-element';\nimport * as Styled from './styled';\nimport {\n getResourceItemBackgroundColor,\n getResourceItemCtaInfo,\n getResourceItemCtaState,\n} from './utils';\n\nconst { UNASSIGN, REDO } = TEACHER_MENU_OPTIONS;\n\nconst ResourceItem: FC<IResourceItemProps> = memo(\n ({\n sheet,\n userType,\n isMilestoneWidget,\n userMilestoneId,\n onUnlock,\n onUnAssignSheet,\n onReset,\n onPreview,\n onReview,\n onStart,\n }) => {\n const { onClick: trackClick } = useUIContext();\n const titleTextRef = useRef<HTMLDivElement>(null);\n const [showTitleTooltip, setShowTitleTooltip] = useState(false);\n\n const {\n accuracy,\n permissions,\n title,\n sheet_statement: sheetStatement,\n state: sheetState,\n node_id: nodeId,\n user_node_id: userNodeId,\n node_sub_group: nodeSubGroup,\n node_type: nodeType,\n } = sheet;\n const {\n can_start: canStart,\n can_resume: canResume,\n can_unlock: canUnlock,\n can_review: canReview,\n can_teacher_review: canTeacherReview,\n can_unassign: canUnassign,\n can_reset: canReset,\n } = permissions;\n\n const sheetAccuracy = typeof accuracy === 'number' ? `${accuracy}%` : undefined;\n const isStudent = userType === 'STUDENT';\n const canReviewSheet = isStudent ? canReview : canTeacherReview;\n\n const ctaState = getResourceItemCtaState(sheetState);\n const { label, Icon } = getResourceItemCtaInfo(nodeSubGroup) || {};\n\n const analyticsProps = useMemo(\n () => ({\n node_id: nodeId,\n node_type: nodeType,\n }),\n [nodeId, nodeType],\n );\n\n const handleAssignSheet = useCallback(() => {\n trackClick({\n analyticsLabel: SHEETS_ANALYTICS_EVENTS.RESOURCE_ASSIGNED,\n props: analyticsProps,\n });\n\n onUnlock?.(nodeId);\n }, [onUnlock, nodeId, trackClick, analyticsProps]);\n\n const handleOnClick = useCallback(() => {\n if (isStudent && (canStart || canResume)) {\n if (typeof onStart === 'function') {\n onStart(nodeId, userNodeId);\n\n return;\n }\n\n throw new Error('No callback is available');\n }\n\n if (canReviewSheet) {\n if (typeof onReview !== '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\n onReview(userNodeId, userMilestoneId);\n\n return;\n }\n\n if (typeof onPreview !== 'function') {\n throw new Error('onPreview must be a function');\n }\n\n onPreview(sheet);\n }, [\n canResume,\n canReviewSheet,\n canStart,\n isStudent,\n nodeId,\n sheet,\n userMilestoneId,\n userNodeId,\n onStart,\n onReview,\n onPreview,\n ]);\n\n const handleMenuOptionClick = useCallback(\n (selectedOption: string) => {\n switch (selectedOption) {\n case UNASSIGN:\n if (typeof onUnAssignSheet !== 'function') {\n throw new Error('onUnassignSheet must be a function');\n }\n\n trackClick({\n analyticsLabel: SHEETS_ANALYTICS_EVENTS.RESOURCE_UNASSIGNED,\n props: analyticsProps,\n });\n\n onUnAssignSheet(sheet);\n\n return;\n\n case REDO:\n if (typeof onReset !== 'function') {\n throw new Error('onReset must be a function');\n }\n\n onReset(sheet);\n\n return;\n }\n },\n [sheet, onUnAssignSheet, onReset, analyticsProps, trackClick],\n );\n\n useLayoutEffect(() => {\n if (\n titleTextRef.current &&\n titleTextRef.current.scrollHeight > titleTextRef.current.clientHeight\n ) {\n setShowTitleTooltip(true);\n }\n }, [titleTextRef]);\n\n const menuOptions: IMenuOptionsProps[] = [\n {\n id: 'supplementary_resources_unassign',\n label: 'Unassign',\n icon: <Minus2Icon width={20} height={20} />,\n option: UNASSIGN,\n visible: canUnassign,\n onClick: handleMenuOptionClick,\n },\n {\n id: 'supplementary_resources_redo',\n label: 'Redo',\n icon: <RedoIcon />,\n option: REDO,\n visible: canReset,\n onClick: handleMenuOptionClick,\n },\n ];\n\n const backgroundColor = getResourceItemBackgroundColor(\n sheetState,\n isStudent,\n canUnlock,\n !!isMilestoneWidget,\n );\n\n return (\n <Styled.ResourceItemCard\n $gapX={1}\n $gutterX={1}\n $flexGapX={1.25}\n $background={backgroundColor}\n $justifyContent=\"space-between\"\n $heightX={8}\n $isMilestoneWidget={isMilestoneWidget}\n >\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={title}\n hidden={!showTitleTooltip}\n widthX={21.75}\n >\n <Styled.ResourceItemTitle ref={titleTextRef} $renderAs=\"ab2\" $color=\"BLACK_T_87\">\n {title}\n </Styled.ResourceItemTitle>\n </ArrowTooltip>\n\n <FlexView $flexDirection=\"row\" $justifyContent=\"space-between\" $alignItems=\"center\">\n <ArrowTooltip position=\"bottom\" tooltipItem={sheetStatement} renderAs=\"secondary\">\n <SheetButton\n renderAs=\"primary\"\n label={label ?? ''}\n Icon={Icon}\n backgroundColor={backgroundColor}\n state={ctaState}\n hoverActive={false}\n onClick={handleOnClick}\n accuracy={sheetAccuracy}\n widthX={8.5}\n />\n </ArrowTooltip>\n\n {!isStudent &&\n (canUnlock ? (\n <Styled.IconButtonWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n onClick={handleAssignSheet}\n >\n <Plus2Icon />\n </Styled.IconButtonWrapper>\n ) : (\n <ContextMenu\n targetElement={<ContextMenuTargetElement invertHover />}\n menuElement={<ContextMenuElement menuOptions={menuOptions} />}\n />\n ))}\n </FlexView>\n </Styled.ResourceItemCard>\n );\n },\n);\n\nexport default ResourceItem;\n"],"names":["UNASSIGN","REDO","TEACHER_MENU_OPTIONS","ResourceItem","memo","sheet","userType","isMilestoneWidget","userMilestoneId","onUnlock","onUnAssignSheet","onReset","onPreview","onReview","onStart","trackClick","useUIContext","titleTextRef","useRef","showTitleTooltip","setShowTitleTooltip","useState","accuracy","permissions","title","sheetStatement","sheetState","nodeId","userNodeId","nodeSubGroup","nodeType","canStart","canResume","canUnlock","canReview","canTeacherReview","canUnassign","canReset","sheetAccuracy","isStudent","canReviewSheet","ctaState","getResourceItemCtaState","label","Icon","getResourceItemCtaInfo","analyticsProps","useMemo","handleAssignSheet","useCallback","SHEETS_ANALYTICS_EVENTS","handleOnClick","handleMenuOptionClick","selectedOption","useLayoutEffect","menuOptions","jsx","Minus2Icon","RedoIcon","backgroundColor","getResourceItemBackgroundColor","jsxs","Styled.ResourceItemCard","ArrowTooltip","Styled.ResourceItemTitle","FlexView","SheetButton","Styled.IconButtonWrapper","Plus2Icon","ContextMenu","ContextMenuTargetElement","ContextMenuElement"],"mappings":"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"}
@@ -1,111 +1,110 @@
1
- import { jsxs as A, Fragment as g, jsx as s } from "react/jsx-runtime";
2
- import { useMemo as v, useCallback as C } from "react";
3
- import V from "../../../../../ui/buttons/button/button.js";
4
- import W from "../../../../../ui/context-menu/context-menu.js";
5
- import { useUIContext as j } from "../../../../../ui/context/context.js";
6
- import { NODE_TYPE as U } from "../../../../constants/sheet.js";
7
- import { isV3Worksheet as a } from "../../../../utils/is-v3-worksheet.js";
8
- import Y from "../context-menu-helper/menu-element/menu-element.js";
9
- import z from "../context-menu-helper/target-element/target-element.js";
10
- import { MENU_OPTIONS as R } from "./student-actions-constant.js";
11
- const $ = ({
12
- sheet: m,
1
+ import { jsxs as q, Fragment as A, jsx as s } from "react/jsx-runtime";
2
+ import { useMemo as y, useCallback as I } from "react";
3
+ import g from "../../../../../ui/buttons/button/button.js";
4
+ import j from "../../../../../ui/context-menu/context-menu.js";
5
+ import { useUIContext as U } from "../../../../../ui/context/context.js";
6
+ import { NODE_TYPE as V } from "../../../../constants/sheet.js";
7
+ import W from "../context-menu-helper/menu-element/menu-element.js";
8
+ import Y from "../context-menu-helper/target-element/target-element.js";
9
+ import { MENU_OPTIONS as E } from "./student-actions-constant.js";
10
+ const K = ({
11
+ sheet: v,
13
12
  isDefocused: o,
14
- isLastSheet: N,
15
- ...x
13
+ isLastSheet: C,
14
+ ...N
16
15
  }) => {
17
- const { teacherId: b, milestoneId: d, section: c, onStart: u, onResume: p, onReattempt: l, onReview: f } = x, { permissions: M, node_id: h, user_node_id: e, node_type: T } = m, {
16
+ const { teacherId: _, milestoneId: a, section: m, onStart: d, onResume: c, onReattempt: u, onReview: p } = N, { permissions: x, node_id: l, user_node_id: e, node_type: M } = v, {
18
17
  can_start: r,
19
- can_resume: w,
20
- can_review: E,
21
- can_reattempt: _,
22
- is_review_disabled: y
23
- } = M, t = T === U.DYNAMIC ? e : h, { onEvent: I } = j(), i = v(() => {
18
+ can_resume: f,
19
+ can_review: h,
20
+ can_reattempt: w,
21
+ is_review_disabled: R
22
+ } = x, t = M === V.DYNAMIC ? e : l, { onEvent: b } = U(), i = y(() => {
24
23
  const n = {
25
- teacher_id: b,
26
- node_id: h,
24
+ teacher_id: _,
25
+ node_id: l,
27
26
  user_node_id: e
28
27
  };
29
- return d && (n.milestone_id = d), c && (n.section = c), n;
30
- }, [d, h, c, b, e]), k = C(() => {
28
+ return a && (n.milestone_id = a), m && (n.section = m), n;
29
+ }, [a, l, m, _, e]), T = I(() => {
31
30
  if (!t)
32
31
  throw new Error("No required id is present to open the sheet.");
33
- if (r && typeof u == "function") {
34
- u(t, a(), e);
32
+ if (r && typeof d == "function") {
33
+ d(t, e);
35
34
  return;
36
35
  }
37
- if (w && typeof p == "function") {
38
- p(t, a(), e);
36
+ if (f && typeof c == "function") {
37
+ c(t, e);
39
38
  return;
40
39
  }
41
40
  throw new Error("No callback provided. If provided it must be a function");
42
- }, [w, r, t, p, u, m, e]), S = C(
41
+ }, [f, r, t, c, d, e]), S = I(
43
42
  (n) => {
44
- if (I("clicked", {
43
+ if (b("clicked", {
45
44
  ...i,
46
45
  cta: n
47
- }), n === R.REVIEW) {
46
+ }), n === E.REVIEW) {
48
47
  if (!e)
49
48
  throw new Error("No required id is present to open the sheet.");
50
- if (typeof f != "function")
49
+ if (typeof p != "function")
51
50
  throw new Error("onReview must be a function");
52
- f(e, a());
51
+ p(e);
53
52
  return;
54
53
  }
55
54
  if (!t)
56
55
  throw new Error("No required id is present to open the sheet.");
57
- if (typeof l != "function")
56
+ if (typeof u != "function")
58
57
  throw new Error("onReattempt must be a function");
59
- l(t, a(), e);
58
+ u(t, e);
60
59
  },
61
- [i, t, l, f, m, I, e]
62
- ), O = r || w, P = !o && _ || E, q = v(
60
+ [i, t, u, p, b, e]
61
+ ), k = r || f, O = !o && w || h, P = y(
63
62
  () => [
64
63
  {
65
- show: E,
66
- label: R.REVIEW,
67
- disable: y
64
+ show: h,
65
+ label: E.REVIEW,
66
+ disable: R
68
67
  },
69
68
  {
70
- show: !o && _,
71
- label: R.REATTEMPT
69
+ show: !o && w,
70
+ label: E.REATTEMPT
72
71
  }
73
72
  ],
74
- [_, E, o, y]
73
+ [w, h, o, R]
75
74
  );
76
- return /* @__PURE__ */ A(g, { children: [
77
- O && /* @__PURE__ */ s(
78
- V,
75
+ return /* @__PURE__ */ q(A, { children: [
76
+ k && /* @__PURE__ */ s(
77
+ g,
79
78
  {
80
79
  label: r ? "Start" : "Resume",
81
80
  widthX: 7,
82
81
  renderAs: "primary",
83
82
  size: "xsmall",
84
- onClick: k,
83
+ onClick: T,
85
84
  disabled: o,
86
85
  analyticsProps: i,
87
86
  shape: "square"
88
87
  }
89
88
  ),
90
- P && /* @__PURE__ */ s(
91
- W,
89
+ O && /* @__PURE__ */ s(
90
+ j,
92
91
  {
93
- targetElement: /* @__PURE__ */ s(z, { analyticsLabel: "Sheet menu", analyticsProps: i }),
92
+ targetElement: /* @__PURE__ */ s(Y, { analyticsLabel: "Sheet menu", analyticsProps: i }),
94
93
  menuElement: /* @__PURE__ */ s(
95
- Y,
94
+ W,
96
95
  {
97
- options: q,
96
+ options: P,
98
97
  handleOnMenuOptionSelection: S
99
98
  }
100
99
  ),
101
100
  menuOffset: 10,
102
101
  menuZIndex: 1,
103
- placeTop: N
102
+ placeTop: C
104
103
  }
105
104
  )
106
105
  ] });
107
106
  };
108
107
  export {
109
- $ as default
108
+ K as default
110
109
  };
111
110
  //# sourceMappingURL=student-actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"student-actions.js","sources":["../../../../../../../src/features/sheets/sheets-list/sheet-item/reward-n-actions/student-actions/student-actions.tsx"],"sourcesContent":["import type { IRewardNActionsProps, TTrackEventPayloadProps } from '../reward-n-actions-types';\nimport type { FC } from 'react';\n\nimport { useCallback, useMemo } from 'react';\n\nimport Button from '../../../../../ui/buttons/button/button';\nimport ContextMenu from '../../../../../ui/context-menu/context-menu';\nimport { useUIContext } from '../../../../../ui/context/context';\nimport { NODE_TYPE } from '../../../../constants/sheet';\nimport { isV3Worksheet } from '../../../../utils/is-v3-worksheet';\nimport MenuElement from '../context-menu-helper/menu-element/menu-element';\nimport TargetElement from '../context-menu-helper/target-element/target-element';\nimport { MENU_OPTIONS } from './student-actions-constant';\n\nconst StudentActions: FC<IRewardNActionsProps> = ({\n sheet,\n isDefocused,\n isLastSheet,\n ...restStudentActionProps\n}) => {\n const { teacherId, milestoneId, section, onStart, onResume, onReattempt, onReview } =\n restStudentActionProps;\n const { permissions, node_id: nodeId, user_node_id: userNodeId, node_type: nodeType } = sheet;\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_reattempt: canReattempt,\n is_review_disabled: isReviewHidden,\n } = permissions;\n\n const id = nodeType === NODE_TYPE.DYNAMIC ? userNodeId : nodeId;\n\n const { onEvent: trackEvent } = useUIContext();\n\n const analyticsProps = useMemo(() => {\n const payload: TTrackEventPayloadProps = {\n teacher_id: teacherId,\n node_id: nodeId,\n user_node_id: userNodeId,\n };\n\n if (milestoneId) {\n payload.milestone_id = milestoneId;\n }\n\n if (section) {\n payload.section = section;\n }\n\n return payload;\n }, [milestoneId, nodeId, section, teacherId, userNodeId]);\n\n const handleOnPrimaryCtaClick = useCallback(() => {\n if (!id) {\n throw new Error('No required id is present to open the sheet.');\n }\n\n if (canStart && typeof onStart === 'function') {\n onStart(id, isV3Worksheet(sheet), userNodeId);\n\n return;\n }\n\n if (canResume && typeof onResume === 'function') {\n onResume(id, isV3Worksheet(sheet), userNodeId);\n\n return;\n }\n\n throw new Error('No callback provided. If provided it must be a function');\n }, [canResume, canStart, id, onResume, onStart, sheet, userNodeId]);\n\n const handleOnMenuOptionSelection = useCallback(\n (selectedOption: string) => {\n trackEvent('clicked', {\n ...analyticsProps,\n cta: selectedOption,\n });\n if (selectedOption === MENU_OPTIONS.REVIEW) {\n if (!userNodeId) {\n throw new Error('No required id is present to open the sheet.');\n }\n\n if (typeof onReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n onReview(userNodeId, isV3Worksheet(sheet, 'review'));\n\n return;\n }\n\n if (!id) {\n throw new Error('No required id is present to open the sheet.');\n }\n\n if (typeof onReattempt !== 'function') {\n throw new Error('onReattempt must be a function');\n }\n\n onReattempt(id, isV3Worksheet(sheet), userNodeId);\n\n return;\n },\n [analyticsProps, id, onReattempt, onReview, sheet, trackEvent, userNodeId],\n );\n\n const renderPrimaryCta = canStart || canResume;\n const renderContextMenu = (!isDefocused && canReattempt) || canReview;\n\n const options = useMemo(\n () => [\n {\n show: canReview,\n label: MENU_OPTIONS.REVIEW,\n disable: isReviewHidden,\n },\n {\n show: !isDefocused && canReattempt,\n label: MENU_OPTIONS.REATTEMPT,\n },\n ],\n [canReattempt, canReview, isDefocused, isReviewHidden],\n );\n\n return (\n <>\n {renderPrimaryCta && (\n <Button\n label={canStart ? 'Start' : 'Resume'}\n widthX={7}\n renderAs=\"primary\"\n size=\"xsmall\"\n onClick={handleOnPrimaryCtaClick}\n disabled={isDefocused}\n analyticsProps={analyticsProps}\n shape=\"square\"\n />\n )}\n\n {renderContextMenu && (\n <ContextMenu\n targetElement={\n <TargetElement analyticsLabel=\"Sheet menu\" analyticsProps={analyticsProps} />\n }\n menuElement={\n <MenuElement\n options={options}\n handleOnMenuOptionSelection={handleOnMenuOptionSelection}\n />\n }\n menuOffset={10}\n menuZIndex={1}\n placeTop={isLastSheet}\n />\n )}\n </>\n );\n};\n\nexport default StudentActions;\n"],"names":["StudentActions","sheet","isDefocused","isLastSheet","restStudentActionProps","teacherId","milestoneId","section","onStart","onResume","onReattempt","onReview","permissions","nodeId","userNodeId","nodeType","canStart","canResume","canReview","canReattempt","isReviewHidden","id","NODE_TYPE","trackEvent","useUIContext","analyticsProps","useMemo","payload","handleOnPrimaryCtaClick","useCallback","isV3Worksheet","handleOnMenuOptionSelection","selectedOption","MENU_OPTIONS","renderPrimaryCta","renderContextMenu","options","jsxs","Fragment","jsx","Button","ContextMenu","TargetElement","MenuElement"],"mappings":"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"}
1
+ {"version":3,"file":"student-actions.js","sources":["../../../../../../../src/features/sheets/sheets-list/sheet-item/reward-n-actions/student-actions/student-actions.tsx"],"sourcesContent":["import type { IRewardNActionsProps, TTrackEventPayloadProps } from '../reward-n-actions-types';\nimport type { FC } from 'react';\n\nimport { useCallback, useMemo } from 'react';\n\nimport Button from '../../../../../ui/buttons/button/button';\nimport ContextMenu from '../../../../../ui/context-menu/context-menu';\nimport { useUIContext } from '../../../../../ui/context/context';\nimport { NODE_TYPE } from '../../../../constants/sheet';\nimport MenuElement from '../context-menu-helper/menu-element/menu-element';\nimport TargetElement from '../context-menu-helper/target-element/target-element';\nimport { MENU_OPTIONS } from './student-actions-constant';\n\nconst StudentActions: FC<IRewardNActionsProps> = ({\n sheet,\n isDefocused,\n isLastSheet,\n ...restStudentActionProps\n}) => {\n const { teacherId, milestoneId, section, onStart, onResume, onReattempt, onReview } =\n restStudentActionProps;\n const { permissions, node_id: nodeId, user_node_id: userNodeId, node_type: nodeType } = sheet;\n\n const {\n can_start: canStart,\n can_resume: canResume,\n can_review: canReview,\n can_reattempt: canReattempt,\n is_review_disabled: isReviewHidden,\n } = permissions;\n\n const id = nodeType === NODE_TYPE.DYNAMIC ? userNodeId : nodeId;\n\n const { onEvent: trackEvent } = useUIContext();\n\n const analyticsProps = useMemo(() => {\n const payload: TTrackEventPayloadProps = {\n teacher_id: teacherId,\n node_id: nodeId,\n user_node_id: userNodeId,\n };\n\n if (milestoneId) {\n payload.milestone_id = milestoneId;\n }\n\n if (section) {\n payload.section = section;\n }\n\n return payload;\n }, [milestoneId, nodeId, section, teacherId, userNodeId]);\n\n const handleOnPrimaryCtaClick = useCallback(() => {\n if (!id) {\n throw new Error('No required id is present to open the sheet.');\n }\n\n if (canStart && typeof onStart === 'function') {\n onStart(id, userNodeId);\n\n return;\n }\n\n if (canResume && typeof onResume === 'function') {\n onResume(id, userNodeId);\n\n return;\n }\n\n throw new Error('No callback provided. If provided it must be a function');\n }, [canResume, canStart, id, onResume, onStart, userNodeId]);\n\n const handleOnMenuOptionSelection = useCallback(\n (selectedOption: string) => {\n trackEvent('clicked', {\n ...analyticsProps,\n cta: selectedOption,\n });\n if (selectedOption === MENU_OPTIONS.REVIEW) {\n if (!userNodeId) {\n throw new Error('No required id is present to open the sheet.');\n }\n\n if (typeof onReview !== 'function') {\n throw new Error('onReview must be a function');\n }\n\n onReview(userNodeId);\n\n return;\n }\n\n if (!id) {\n throw new Error('No required id is present to open the sheet.');\n }\n\n if (typeof onReattempt !== 'function') {\n throw new Error('onReattempt must be a function');\n }\n\n onReattempt(id, userNodeId);\n\n return;\n },\n [analyticsProps, id, onReattempt, onReview, trackEvent, userNodeId],\n );\n\n const renderPrimaryCta = canStart || canResume;\n const renderContextMenu = (!isDefocused && canReattempt) || canReview;\n\n const options = useMemo(\n () => [\n {\n show: canReview,\n label: MENU_OPTIONS.REVIEW,\n disable: isReviewHidden,\n },\n {\n show: !isDefocused && canReattempt,\n label: MENU_OPTIONS.REATTEMPT,\n },\n ],\n [canReattempt, canReview, isDefocused, isReviewHidden],\n );\n\n return (\n <>\n {renderPrimaryCta && (\n <Button\n label={canStart ? 'Start' : 'Resume'}\n widthX={7}\n renderAs=\"primary\"\n size=\"xsmall\"\n onClick={handleOnPrimaryCtaClick}\n disabled={isDefocused}\n analyticsProps={analyticsProps}\n shape=\"square\"\n />\n )}\n\n {renderContextMenu && (\n <ContextMenu\n targetElement={\n <TargetElement analyticsLabel=\"Sheet menu\" analyticsProps={analyticsProps} />\n }\n menuElement={\n <MenuElement\n options={options}\n handleOnMenuOptionSelection={handleOnMenuOptionSelection}\n />\n }\n menuOffset={10}\n menuZIndex={1}\n placeTop={isLastSheet}\n />\n )}\n </>\n );\n};\n\nexport default StudentActions;\n"],"names":["StudentActions","sheet","isDefocused","isLastSheet","restStudentActionProps","teacherId","milestoneId","section","onStart","onResume","onReattempt","onReview","permissions","nodeId","userNodeId","nodeType","canStart","canResume","canReview","canReattempt","isReviewHidden","id","NODE_TYPE","trackEvent","useUIContext","analyticsProps","useMemo","payload","handleOnPrimaryCtaClick","useCallback","handleOnMenuOptionSelection","selectedOption","MENU_OPTIONS","renderPrimaryCta","renderContextMenu","options","jsxs","Fragment","jsx","Button","ContextMenu","TargetElement","MenuElement"],"mappings":"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"}